LlwiIExJQ0VOU0UKLlwiCi5cIiBUaGlzIHNvZnR3YXJlIHByb2dyYW0gaXMgcmVsZWFzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEgbGljZW5zZSBhZ3JlZW1lbnQgYmV0d2VlbiB5b3UgKCdMaWNlbnNlZScpIGFuZCBJbnRlbC4gIERvIG5vdCB1c2Ugb3IgbG9hZCB0aGlzIHNvZnR3YXJlIG9yIGFueSBhc3NvY2lhdGVkIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5LCB0aGUgJ1NvZnR3YXJlJykgdW50aWwgeW91IGhhdmUgY2FyZWZ1bGx5IHJlYWQgdGhlIGZ1bGwgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIExJQ0VOU0UgbG9jYXRlZCBpbiB0aGlzIHNvZnR3YXJlIHBhY2thZ2UuICBCeSBsb2FkaW5nIG9yIHVzaW5nIHRoZSBTb2Z0d2FyZSwgeW91IGFncmVlIHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudC4gIElmIHlvdSBkbyBub3QgYWdyZWUgd2l0aCB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGRvIG5vdCBpbnN0YWxsIG9yIHVzZSB0aGUgU29mdHdhcmUuCi5cIgouXCIgKiBPdGhlciBuYW1lcyBhbmQgYnJhbmRzIG1heSBiZSBjbGFpbWVkIGFzIHRoZSBwcm9wZXJ0eSBvZiBvdGhlcnMuCi5cIgouVEggaWdiIDEgIkphbnVhcnkgNSwgMjAxMiIKCi5TSCBOQU1FCmlnYiBcLVRoaXMgZmlsZSBkZXNjcmliZXMgdGhlIExpbnV4KiBCYXNlIERyaXZlciBmb3IgdGhlIEdpZ2FiaXQgRmFtaWx5IG9mIEFkYXB0ZXJzLgouU0ggU1lOT1BTSVMKLlBEIDAuNHYKbW9kcHJvYmUgaWdiIFs8b3B0aW9uPj08VkFMMT4sPFZBTDI+LC4uLl0KLlBEIDF2Ci5TSCBERVNDUklQVElPTgpUaGlzIGRyaXZlciBpcyBpbnRlbmRlZCBmb3IgXGZCMi40LnhcZlIgYW5kIFxmQjIuNi54XGZSIGtlcm5lbHMuICBUaGlzIGRyaXZlciBpbmNsdWRlcyBzdXBwb3J0IGZvciBJbnRlbChSKSBJdGFuaXVtKFIpMi1iYXNlZCBzeXN0ZW1zLgouTFAKVGhpcyBkcml2ZXIgaXMgb25seSBzdXBwb3J0ZWQgYXMgYSBsb2FkYWJsZSBtb2R1bGUgYXQgdGhpcyB0aW1lLiAgSW50ZWwgaXMgbm90IHN1cHBseWluZyBwYXRjaGVzIGFnYWluc3QgdGhlIGtlcm5lbCBzb3VyY2UgdG9hbGxvdyBmb3Igc3RhdGljIGxpbmtpbmcgb2YgdGhlIGRyaXZlci4gIEZvciBxdWVzdGlvbnMgcmVsYXRlZCB0byBoYXJkd2FyZSByZXF1aXJlbWVudHMsIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIHN1cHBsaWVkIHdpdGggeW91ciBJbnRlbCBhZGFwdGVyLiAgQWxsIGhhcmR3YXJlIHJlcXVpcmVtZW50cyBsaXN0ZWQgYXBwbHkgdG8gdXNlIHdpdGggTGludXguCi5TSCBPUFRJT05TClRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgcGFyYW1ldGVycyBhcmUgdXNlZCBieSBlbnRlcmluZyB0aGVtIG9uIHRoZSBjb21tYW5kIGxpbmUgd2l0aCB0aGUgbW9kcHJvYmUgY29tbWFuZC4gIApGb3IgZXhhbXBsZToKLklQCm1vZHByb2JlIGlnYiBJbnRlcnJ1cHRUaHJvdHRsZVJhdGU9MTYwMDAsMTYwMDAKLklQCi5CIEludGVycnVwdFRocm90dGxlUmF0ZQouSVAKLkIgVmFsaWQgUmFuZ2U6IAowLDEsMywxMDAtMTAwMDAwICgwPW9mZiwgMT1keW5hbWljLCAzPWR5bmFtaWMgY29uc2VydmF0aXZlKQouSVAKLkIgRGVmYXVsdCBWYWx1ZTogCjMKVGhpcyByZXByZXNlbnRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlcnJ1cHRzIHBlciBzZWNvbmQgdGhlIGNvbnRyb2xsZXIgZ2VuZXJhdGVzLiAgSW50ZXJydXB0VGhyb3R0bGVSYXRlIGlzIGFub3RoZXIgc2V0dGluZyB1c2VkIGluIGludGVycnVwdCBtb2RlcmF0aW9uLiAgRHluYW1pYyBtb2RlIHVzZXMgYSBoZXVyaXN0aWMgYWxnb3JpdGhtIHRvIGFkanVzdCBJbnRlcnJ1cHRUaHJvdHRsZVJhdGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdHJhZmZpYyBsb2FkLgouSVAKVGhlIGRlZmF1bHQgc2V0dGluZyBpcyBjb25maWd1cmVkIHRvIG9wdGltaXplIGludGVycnVwdHMgZm9yIGJ1bGsgCnRocm91Z2hwdXQgd2hpbGUga2VlcGluZyBDUFUgdXRpbGl6YXRpb24gbG93LiAgSG93ZXZlciB0aGlzIHNldHRpbmcgbWF5IApyZXN1bHQgaW4gc2xvd2VyIG92ZXJhbGwgdHJhbnNmZXIgc3BlZWRzIGlmIG5ldHdvcmsgdHJhZmZpYyBjb25zaXN0cyAKbW9zdGx5IG9mIHNtYWxsIHBhY2tldHMuICBJZiB0aGlzIGlzIHRoZSBjYXNlLCBjaGFuZ2UgdGhpcyB2YWx1ZSB0byAwLiAKLklQClVuLXN1cHBvcnRlZCBBZGFwdGVyczogSW50ZXJydXB0VGhyb3R0bGVSYXRlIGlzIE5PVCBzdXBwb3J0ZWQgYnkgODI1NDIsIDgyNTQzIG9yIDgyNTQ0LWJhc2VkIGFkYXB0ZXJzLgouSVAKLkIgTk9URTogCkludGVycnVwdFRocm90dGxlUmF0ZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIFR4QWJzSW50RGVsYXkgYW5kIFJ4QWJzSW50RGVsYXkgcGFyYW1ldGVycy4gIElub3RoZXIgd29yZHMsIG1pbmltaXppbmcgdGhlIHJlY2VpdmUgYW5kL29yIHRyYW5zbWl0IGFic29sdXRlIGRlbGF5cyBkb2VzIG5vdCBmb3JjZSB0aGUgY29udHJvbGxlciB0byBnZW5lcmF0ZSBtb3JlIGludGVycnVwdHMgdGhhbiB3aGF0IHRoZSBJbnRlcnJ1cHQgVGhyb3R0bGUgUmF0ZSBhbGxvd3MuCi5JUApTZWUgdGhlIHNlY3Rpb24gIkludGVycnVwdFRocm90dGxlUmF0ZSIgaW4gUkVBRE1FLgouSVAKLkIgTExJUG9ydAouSVAKLkIgVmFsaWQgUmFuZ2U6CjAtNjU1MzUgKDA9b2ZmKQouSVAKLkIgRGVmYXVsdCBWYWx1ZToKMAouSVAKTExJIGlzIGNvbmZpZ3VyZWQgd2l0aCB0aGUgTExJUG9ydCBjb21tYW5kLWxpbmUgcGFyYW1ldGVyLCB3aGljaCBzcGVjaWZpZXMgd2hpY2ggVENQIHBvcnQgc2hvdWxkIGdlbmVyYXRlIExvdyBMYXRlbmN5IEludGVycnVwdHMuCi5JUApGb3IgZXhhbXBsZSwgdXNpbmcgTExJUG9ydD04MCB3b3VsZCBjYXVzZSB0aGUgYm9hcmQgdG8gZ2VuZXJhdGUgYW4gaW1tZWRpYXRlIGludGVycnVwdCB1cG9uIHJlY2VpcHQgb2YgYW55IHBhY2tldCBzZW50IHRvIFRDUHBvcnQgODAgb24gdGhlIGxvY2FsIG1hY2hpbmUuCi5JUAouQiBMTElQdXNoCi5JUAouQiBWYWxpZCBSYW5nZToKMC0xICgwPW9mZikKLklQCi5CIERlZmF1bHQgVmFsdWU6CjAKLklQCkNhbiBiZSBzZXQgdG8gYmUgZW5hYmxlZCBvciBkaXNhYmxlZCAoZGVmYXVsdCkuIEl0IGlzIG1vc3QgZWZmZWN0aXZlIGluIGFuIGVudmlyb25tZW50IHdpdGggbWFueSBzbWFsbCB0cmFuc2FjdGlvbnMuCi5JUApOT1RFOiBFbmFibGluZyBMTElQdXNoIG1heSBhbGxvdyBhIGRlbmlhbCBvZiBzZXJ2aWNlIGF0dGFjay4KLklQCi5CIExMSVNpemUKLklQCi5CIFZhbGlkIFJhbmdlOgowLTE1MDAgKDA9b2ZmKQouSVAKLkIgRGVmYXVsdCBWYWx1ZToKMAouSVAKQ2F1c2VzIGFuIGltbWVkaWF0ZSBpbnRlcnJ1cHQgaWYgdGhlIGJvYXJkIHJlY2VpdmVzIGEgcGFja2V0IHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUuIAouSVAKLkIgSW50TW9kZQouSVAKLkIgVmFsaWQgUmFuZ2U6ICAgIAowLTIgKDAgPSBMZWdhY3kgSW50LCAxID0gTVNJIGFuZCAyID0gTVNJLVgpCi5JUAouQiBEZWZhdWx0IFZhbHVlOgoyCi5JUApJbnRNb2RlIGNvbnRyb2xzIGFsbG93IGxvYWQgdGltZSBjb250cm9sIG92ZXIgdGhlIHR5cGUgb2YgaW50ZXJydXB0CnJlZ2lzdGVyZWQgZm9yIGJ5IHRoZSBkcml2ZXIuICBNU0ktWCBpcyByZXF1aXJlZCBmb3IgbXVsdGlwbGUgcXVldWUKc3VwcG9ydCwgYW5kIHNvbWUga2VybmVscyBhbmQgY29tYmluYXRpb25zIG9mIGtlcm5lbCAuY29uZmlnIG9wdGlvbnMgd2lsbApmb3JjZSBhIGxvd2VyIGxldmVsIG9mIGludGVycnVwdCBzdXBwb3J0LiAgJ2NhdCAvcHJvYy9pbnRlcnJ1cHRzJyB3aWxsIHNob3cKZGlmZmVyZW50IHZhbHVlcyBmb3IgZWFjaCB0eXBlIG9mIGludGVycnVwdC4KLklQCi5CIFJTUwouSVAKLkIgVmFsaWQgUmFuZ2U6ICAgCjAtOAouSVAKLkIgRGVmYXVsdCBWYWx1ZTogCjEKLklQCjAgLSBBc3NpZ24gdXAgdG8gd2hpY2hldmVyIGlzIGxlc3MsIG51bWJlciBvZiBDUFVTIG9yIG51bWJlciBvZiBxdWV1ZXMKWCAtIEFzc2lnbiBYIHF1ZXVlcyB3aGVyZSBYIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBtYXhpbXVtIG51bWJlciBvZiBxdWV1ZXMuCiAgICBUaGUgZHJpdmVyIGFsbG93cyBtYXhpbXVtIHN1cHBvcnRlZCBxdWV1ZSB2YWx1ZS4gRm9yIGV4YW1wbGUsIEkzNTAtYmFzZWQgCiAgICBhZGFwdGVycyBhbGxvdyBSU1M9OCAod2hlcmUgOC1xdWV1ZXMgaXMgdGhlIG1heGltdW0gYWxsb3dhYmxlIHF1ZXVlcykuCi5JUApOb3RlOiBmb3IgODI1NzUtYmFzZWQgYWRhcHRlcnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHF1ZXVlcyBpcyA0OyBmb3IgCjgyNTc2LWJhc2VkIGFuZCBuZXdlciBhZGFwdGVycyBpdCBpcyA4OyBmb3IgSTIxMC1iYXNlZCBhZGFwdGVycyBpdCBpcyA0IHF1ZXVlczsKYW5kIGZvciBJMjExLWJhc2VkIGFkYXB0ZXJzIGl0IGlzIDIgcXVldWVzLgouSVAKVGhpcyBwYXJhbWV0ZXIgaXMgYWxzbyBhZmZlY3RlZCBieSB0aGUgVk1EcSBwYXJhbWV0ZXIgaW4gdGhhdCBpdCB3aWxsIGxpbWl0IHRoZQpxdWV1ZXMgbW9yZS4KLklQClZNRFEKLklQCk1vZGVsIDAgIDEgIDIgIDMrCjgyNTc1IDQgIDQgIDMgIDEKODI1NzYgOCAgMiAgMiAgMgo4MjU4MCA4ICAxICAxICAxCi5JUAouQiBWTURRCi5JUAouQiBWYWxpZCBSYW5nZTogIAowIC0gNCBvbiA4MjU3NS1iYXNlZCBhZGFwdGVyczsgYW5kIDAgLSA4IGZvciA4MjU3NiBhbmQgCjgyNTgwLWJhc2VkIGFkYXB0ZXJzLgouSVAKLkIgRGVmYXVsdCBWYWx1ZTogCjAKLklQClN1cHBvcnRzIGVuYWJsaW5nIFZNRHEgcG9vbHMgYXMgdGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBTUi1JT1YuCi5JUAowID0gZGlzYWJsZWQKMSA9IHNldHMgdGhlIG5ldGRldiBhcyBwb29sIDAKMisgPSBhZGQgYWRkaXRpb25hbCBxdWV1ZXMgYnV0IHRoZXkgY3VycmVudGx5IGFyZSBub3QgdXNlZC4KLklQClRoaXMgcGFyYW1ldGVyIGlzIGZvcmNlZCB0byAxIG9yIG1vcmUgaWYgdGhlIG1heF92ZnMgbW9kdWxlIHBhcmFtZXRlciBpcyB1c2VkLiAKSW4gYWRkaXRpb24gdGhlIG51bWJlciBvZiBxdWV1ZXMgYXZhaWxhYmxlIGZvciBSU1MgaXMgbGltaXRlZCBpZiB0aGlzIGlzIHNldCB0byAxIG9yIGdyZWF0ZXIuCi5JUAouQiBtYXhfdmZzCi5JUAouQiBWYWxpZCBSYW5nZTogICAKMC03Ci5JUAouQiBEZWZhdWx0IFZhbHVlOiAKMAouSVAKSWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiAwIGl0IHdpbGwgYWxzbyBmb3JjZSB0aGUgVk1EcSBwYXJhbWV0ZXIgdG8gYmUgMSBvcgptb3JlLgouSVAKVGhpcyBwYXJhbWV0ZXIgYWRkcyBzdXBwb3J0IGZvciBTUi1JT1YuICBJdCBjYXVzZXMgdGhlIGRyaXZlciB0byBzcGF3biB1cCB0byAKbWF4X3ZmcyB3b3J0aCBvZiB2aXJ0dWFsIGZ1bmN0aW9uLiAgCi5JUAouQiBRdWV1ZVBhaXJzCi5JUAouQiBWYWxpZCBSYW5nZTogIAowLTEKLklQCi5CIERlZmF1bHQgVmFsdWU6ICAKMSAoVFggYW5kIFJYIHdpbGwgYmUgcGFpcmVkIG9udG8gb25lIGludGVycnVwdCB2ZWN0b3IpCi5JUApJZiBzZXQgdG8gMCwgd2hlbiBNU0ktWCBpcyBlbmFibGVkLCB0aGUgVFggYW5kIFJYIHdpbGwgYXR0ZW1wdCB0byBvY2N1cHkKc2VwYXJhdGUgdmVjdG9ycy4gICAgCi5JUApUaGlzIG9wdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiB0byAxIGlmIHRoZXJlIGFyZSBub3Qgc3VmZmljaWVudCBpbnRlcnJ1cHRzCmF2YWlsYWJsZS4gIFRoaXMgY2FuIG9jY3VyIGlmIGFueSBjb21iaW5hdGlvbiBvZiBSU1MsIFZNRFEsIGFuZCBtYXhfdmZzIApyZXN1bHRzIGluIG1vcmUgdGhhbiA0IHF1ZXVlcyBiZWluZyB1c2VkLiAKLklQCi5CIE5vZGUKLklQCi5CIFZhbGlkIFJhbmdlOiAgIAowLW4KLklQCi5CIERlZmF1bHQgVmFsdWU6IAotMSAob2ZmKQouSVAKMCAtIG46IHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiB0aGUgTlVNQSBub2RlIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciB0aGlzIGFkYXB0ZXIgcG9ydC4KLklQCi0xOiB1c2VzIHRoZSBkcml2ZXIgZGVmYXVsdCBvZiBhbGxvY2F0aW5nIG1lbW9yeSBvbiB3aGljaGV2ZXIgcHJvY2Vzc29yIGlzIHJ1bm5pbmcgaW5zbW9kL21vZHByb2JlLiAKLklQClRoZSBOb2RlIHBhcmFtZXRlciB3aWxsIGFsbG93IHlvdSB0byBwaWNrIHdoaWNoIE5VTUEgbm9kZSB5b3Ugd2FudCB0byBoYXZlIAp0aGUgYWRhcHRlciBhbGxvY2F0ZSBtZW1vcnkgZnJvbS4gIEFsbCBkcml2ZXIgc3RydWN0dXJlcywgaW4tbWVtb3J5IHF1ZXVlcywgYW5kIHJlY2VpdmUgYnVmZmVycyB3aWxsIGJlIGFsbG9jYXRlZCBvbiB0aGUgbm9kZSBzcGVjaWZpZWQuICBUaGlzIHBhcmFtZXRlciBpcyBvbmx5dXNlZnVsIHdoZW4gaW50ZXJydXB0IGFmZmluaXR5IGlzIHNwZWNpZmllZCwgb3RoZXJ3aXNlIHNvbWUgcG9ydGlvbiBvZiB0aGUgdGltZSB0aGUgaW50ZXJydXB0IGNvdWxkIHJ1biBvbiBhIGRpZmZlcmVudCBjb3JlIHRoYW4gdGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgb24sIGNhdXNpbmcgc2xvd2VyIG1lbW9yeSBhY2Nlc3MgYW5kIGltcGFjdGluZyB0aHJvdWdocHV0LCBDUFUsIG9yIGJvdGguCi5JUAouQiBFRUUKLklQCi5CIFZhbGlkIFJhbmdlOgowLTEKLklQCi5CIERlZmF1bHQgVmFsdWU6IAoxIChlbmFibGVkKQouSVAKQSBsaW5rIGJldHdlZW4gdHdvIEVFRS1jb21wbGlhbnQgZGV2aWNlcyB3aWxsIHJlc3VsdCBpbiBwZXJpb2RpYyBidXJzdHMgb2YgCmRhdGEgZm9sbG93ZWQgYnkgcGVyaW9kcyB3aGVyZSB0aGUgbGluayBpcyBpbiBhbiBpZGxlIHN0YXRlLiBUaGlzIExvdwpQb3dlciBJZGxlIChMUEkpIHN0YXRlIGlzIHN1cHBvcnRlZCBpbiBib3RoIDFHYnBzIGFuZCAxMDBNYnBzIGxpbmsgc3BlZWRzLgouSVAKTk9URTogRUVFIHN1cHBvcnQgcmVxdWlyZXMgYXV0b25lZ290aWF0aW9uLgouSVAKLkIgRE1BQwouSVAKLkIgVmFsaWQgUmFuZ2U6IAowLCAyNTAsIDUwMCwgMTAwMCwgMjAwMCwgMzAwMCwgNDAwMCwgNTAwMCwgNjAwMCwgNzAwMCwgODAwMCwgOTAwMCwgMTAwMDAuCi5JUAouQiBEZWZhdWx0IFZhbHVlOiAKMCAoZGlzYWJsZWQpCi5JUApFbmFibGVzIG9yIGRpc2FibGVzIERNQSBDb2FsZXNjaW5nIGZlYXR1cmUuIFZhbHVlcyBhcmUgaW4gdXNlY5JzIGFuZCBpbmNyZWFzZSB0aGUgaW50ZXJuYWwgRE1BIENvYWxlc2NpbmcgZmVhdHVyZZJzIGludGVybmFsIHRpbWVyLiBETUEgKERpcmVjdCBNZW1vcnkgQWNjZXNzKSBhbGxvd3MgdGhlIG5ldHdvcmsgZGV2aWNlIHRvIG1vdmUgcGFja2V0IGRhdGEgZGlyZWN0bHkgdG8gdGhlIHN5c3RlbSdzIG1lbW9yeSwgCiAgcmVkdWNpbmcgQ1BVIHV0aWxpdHphdGlvbi4gSG93ZXZlciwgdGhlIGZyZXF1ZW5jeSBhbmQgcmFuZG9tIGludGVydmFscyBhdAogIHdoaWNoIHBhY2tldHMgYXJyaXZlIGRvIG5vdCBhbGxvdyB0aGUgc3lzdGVtIHRvIGVudGVyIGEgbG93ZXIgcG93ZXIgc3RhdGUuIAogIERNQSBDb2FsZXNjaW5nIGFsbG93cyB0aGUgYWRhcHRlciB0byBjb2xsZWN0IHBhY2tldHMgYmVmb3JlIGl0IGluaXRpYXRlcyBhIAogIERNQSBldmVudC4gVGhpcyBtYXkgaW5jcmVhc2UgbmV0d29yayBsYXRlbmN5IGJ1dCBhbHNvIGluY3JlYXNlcyB0aGUgY2hhbmNlcyAKICB0aGF0IHRoZSBzeXN0ZW0gd2lsbCBlbnRlciBhIGxvd2VyIHBvd2VyIHN0YXRlLgouSVAKVHVybmluZyBvbiBETUEgQ29hbGVzY2luZyBtYXkgc2F2ZSBlbmVyZ3kgd2l0aCBrZXJuZWwgMi42LjMyIGFuZCBsYXRlci4gVGhpcwogIHdpbGwgaW1wYXJ0IHRoZSBncmVhdGVzdCBjaGFuY2UgZm9yIHlvdXIgc3lzdGVtIHRvIGNvbnN1bWUgbGVzcyBwb3dlci4gRE1BIAogIENvYWxlc2NpbmcgaXMgZWZmZWN0aXZlIGluIGhlbHBpbmcgcG90ZW50aWFsbHkgc2F2aW5nIHRoZSBwbGF0Zm9ybSBwb3dlciBvbmx5CiAgd2hlbiBpdCBpcyBlbmFibGVkIGFjcm9zcyBhbGwgYWN0aXZlIHBvcnRzLgouSVAKSW50ZXJydXB0VGhyb3R0bGVSYXRlIChJVFIpIHNob3VsZCBiZSBzZXQgdG8gZHluYW1pYy4gV2hlbiBJVFI9MCwgRE1BIAogIENvYWxlc2NpbmcgaXMgYXV0b21hdGljYWxseSBkaXNhYmxlZC4gQSB3aGl0ZXBhcGVyIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb24gaG93IHRvIGJlc3QgY29uZmlndXJlIHlvdXIgcGxhdGZvcm0gCiAgaXMgYXZhaWxhYmxlIG9uIHRoZSBJbnRlbCB3ZWJzaXRlLgouQiBNREQgKE1hbGljaW91cyBEcml2ZXIgRGV0ZWN0aW9uKQouSVAKLkIgVmFsaWQgUmFuZ2U6IAowLCAxOyAwID0gRGlzYWJsZSwgMSA9IEVuYWJsZQouQiBEZWZhdWx0IFZhbHVlOgoxCi5JUApUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHJlbGV2YW50IGZvciBJMzUwIGRldmljZXMgb3BlcmF0aW5nIGluIFNSLUlPViBtb2RlLiBXaGVuCnRoaXMgcGFyYW1ldGVyIGlzIHNldCwgdGhlIGRyaXZlciBkZXRlY3RzIG1hbGljaW91cyBWRiBkcml2ZXIgYW5kIGRpc2FibGVzIGl0cwpUWC9SWCBxdWV1ZXMgdW50aWwgYSBWRiBkcml2ZXIgcmVzZXQgb2NjdXJzLgouU0ggSlVNQk8gRlJBTUVTCkp1bWJvIEZyYW1lcyBzdXBwb3J0IGlzIGVuYWJsZWQgYnkgY2hhbmdpbmcgdGhlIE1UVSB0byBhIHZhbHVlIGxhcmdlciB0aGFuIHRoZSBkZWZhdWx0IG9mIDE1MDAuVXNlIHRoZSBpZmNvbmZpZyBjb21tYW5kIHRvIGluY3JlYXNlIHRoZSBNVFUgc2l6ZS4gIEZvciBleGFtcGxlOgouSVAKaWZjb25maWcgZXRoeCBtdHUgOTAwMCB1cAouTFAKLkIgTk9URTogClVzaW5nIEp1bWJvIGZyYW1lcyBhdCAxMCBvciAxMDAgTWJwcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCBtYXkgcmVzdWx0IGluIHBvb3IgcGVyZm9ybWFuY2Ugb3IgbG9zcyBvZiBsaW5rLgouTFAKU29tZSBJbnRlbCBnaWdhYml0IGFkYXB0ZXJzIHRoYXQgc3VwcG9ydCBKdW1ibyBGcmFtZXMgaGF2ZSBhIGZyYW1lIHNpemUgbGltaXQgb2YgOTIzOCBieXRlcywgd2l0aCBhIGNvcnJlc3BvbmRpbmcgTVRVIHNpemUgbGltaXQgb2YgOTIxNiBieXRlcy4gCi5MUApTZWUgdGhlIHNlY3Rpb24gIkp1bWJvIEZyYW1lcyIgaW4gUkVBRE1FLgouU0ggZXRodG9vbApUaGUgZHJpdmVyIHV0aWxpemVzIHRoZSBldGh0b29sIGludGVyZmFjZSBmb3IgZHJpdmVyIGNvbmZpZ3VyYXRpb24gYW5kIGRpYWdub3N0aWNzLCBhcyB3ZWxsIGFzIGRpc3BsYXlpbmcgc3RhdGlzdGljYWwgaW5mb3JtYXRpb24uICBldGh0b29sIHZlcnNpb24gMS44LjEgb3IgbGF0ZXIgaXMgcmVxdWlyZWQgZm9yIHRoaXMgZnVuY3Rpb25hbGl0eS4KLkxQClRoZSBsYXRlc3QgcmVsZWFzZSBvZiBldGh0b29sIGNhbiBiZSBmb3VuZCBmcm9tIGh0dHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvc29mdHdhcmUvbmV0d29yay9ldGh0b29sLy4gIFRoZSBkcml2ZXIgdGhlbiBtdXN0IGJlIHJlY29tcGlsZWQgaW4gb3JkZXIgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGxhdGVzdCBldGh0b29sIGZlYXR1cmVzLgouTFAKZXRodG9vbCAxLjYgb25seSBzdXBwb3J0cyBhIGxpbWl0ZWQgc2V0IG9mIGV0aHRvb2wgb3B0aW9ucy4gIFN1cHBvcnQgZm9yIGEgbW9yZSBjb21wbGV0ZSBldGh0b29sIGZlYXR1cmUgc2V0IGNhbiBiZSBlbmFibGVkIGJ5IHVwZ3JhZGluZyBldGh0b29sIHRvIGV0aHRvb2wtMS44LjEuICAKLlNIIFNVUFBPUlQKRm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIGluY2x1ZGluZyBzdXBwb3J0ZWQgYWRhcHRlcnMsIGJ1aWxkaW5nLCBhbmQgaW5zdGFsbGF0aW9uLCBzZWUgdGhlIFJFQURNRSBmaWxlIGluY2x1ZGVkIHdpdGggdGhlIGRyaXZlci4KLkxQCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uLCBnbyB0byB0aGUgSW50ZWwgc3VwcG9ydCB3ZWJzaXRlIGF0OgouSVAKLkIgaHR0cDovL3N1cHBvcnQuaW50ZWwuY29tCi5MUAo=