Date: Thu, 22 Jan 2004 02:47:29 -0500 From: Tom Rhodes <trhodes@FreeBSD.org> To: FreeBSD-doc@FreeBSD.org Subject: RFC: Automated process for documenting tunables/variables. Message-ID: <20040122024729.2944fada@localhost>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --Multipart=_Thu__22_Jan_2004_02_47_29_-0500_FgA_kUaO8e4__3SQ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Greetings, About three weeks ago Marc Silver kicked me in the butt to start working on this project again. First off, I did not drop the front page; only working on that and other projects at the same time. But anyway, onward to the subject at hand. Enclosed in this email is three files: run.sh, the main file which builds the manual page; sysctl.sh, the file that sets up the structure of the tunables section in our manual page; and tunables.mdoc, a list of all the tunables that I threw together along with documentation that is more user-friendly than the sysctl -d output. This was designed to mainly work with a make universe, using nm(1) to parse the LINT kernels and grab all the tunables from them. If you don't wish to run make universe, don't worry. The -installed option will parse the installed kernel in /boot/kernel. As it stands now, a default manual page will be committed with the work we have done. The tunables/sysctls without descriptions and which I cannot find documentation for will be left blank in hopes that someone can document it or submit documentation to me. I will then update the manual page(s) once a month/bi-monthly or before a release is cut. We also support multi-architecture LINT kernels using the nm(1) built for that architecture. David O'Brien informed me that the nm(1) does not like working on different architectures than it was built for, thanks David. There are some Caveats to this method: We are using hard coded paths in the script in place of detecting them. I'm not sure how it could be integrated with or why it should be integrated with a buildworld. On a slow machine the make universe target could take hours, an overnight project for some machines. Duplication of documentation may occur, i'm unsure of how to handle this other than just adding either an Xref from the generated manual page or the ones that tunables are documented in. Special cases given to manual pages like security(7). Some duplication cannot be avoided as we have tunables/sysctls which can go in rc.conf, sysctl.conf, and passed on the command line. There is already duplication there and it isn't my job to redesign that part of FreeBSD. :) Positives: A central manual page for all architectures which hold many of the tunable options FreeBSD has. We avoid making substantial changes to sysctl(8) and the build in general by not adding the extra C macros that the original idea offered. Users are more happy because we have (hopefully) good documentation in place on hacks that are either undocumented or have difficult to comprehend documentation provided by sysctl -d. We aren't adding line upon line of documentation in source files. Bruce Evans will be happy that no mdoc(7) exists in source files, which is a style violation. (This is just a little inside joke between him and I.) Apologies in advance for the length of this email, mistakes i've made in this implementation, and the lack of a README or Makefile. :) Thank you in advance for comments/suggestions. -- Tom Rhodes --Multipart=_Thu__22_Jan_2004_02_47_29_-0500_FgA_kUaO8e4__3SQ Content-Type: application/octet-stream; name="run.sh" Content-Disposition: attachment; filename="run.sh" Content-Transfer-Encoding: base64 IyEvYmluL3NoCiMKIyAkUGl0dGdvdGg6IHByb2plY3RzL3NjcmlwdHMvZG9jdHVuZS9ydW4uc2gs diAxLjIxIDIwMDQvMDEvMjIgMDc6MzA6MDYgZGFya2xvZ2lrIEV4cCAkCiMgJEZyZWVCU0QkCiMK IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKIyBNaXNzaW5nIEZlYXR1cmVzOgojIEl0IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBP SURzIHNlcGFyYXRlZCBpbnRvIGNvbXBvc2l0ZSBncm91cHMKIyB1c2luZyB0aGUgc3Vic2VjdGlv biBtZG9jKDcpIGZlYXR1cmUgKC5Tcykgd2l0aG91dCBhZGRpbmcgZXh0cmEKIyBmaWxlcy4KIwoj IFRoZSBhYmlsaXR5IHRvIG5vdGljZSB3aGVuIG5ldyBPSURzIGFyZSBhZGRlZCB0byBGcmVlQlNE LCBhbmQKIyBhbmQgdGhlIGF1dG9tYXRpb24gb2YgdGhlaXIgc29ydGluZyBhbmQgYWRkaXRpb24g aW50byB0aGUKIyB0dW5hYmxlcy5tZG9jIGZpbGUuCiMKIyBQZXJoYXBzIGEgcmUtaW1wbGVtZW50 YXRpb24gaW4gQz8gIFRoaXMgd291bGRuJ3QgYmUgbXVjaCBvZgojIGEgY2hhbGxlbmdlIGZvciB0 aGUgcmlnaHQgaW5kaXZpZHVhbCBidXQgaXQgbWF5IHJlcXVpcmUgYSBsb3QKIyBvZiBjaGFuZ2Vz IHRvIHN5c2N0bC5oLgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyBTZXQgb3VyIHBhdGggdXAuClBBVEg9L2JpbjovdXNy L2Jpbjovc2JpbjovdXNyL3NiaW4KCiMgV2UgbmVlZCBhIHVzYWdlIHN0YXRlbWVudCBjb3JyZWN0 PwpVU0FHRT0iVXNhZ2U6IHJ1bi5zaCAtW2FsbHxhbHBoYXxjbGVhbnxpMzg2fGlhNjR8aW5zdGFs bGVkfHBjOTh8c3BhcmM2NF0iCgojIFRoZSBlbmRtYW4gZnVuY3Rpb24gY2xvc2VzIHRoZSBsaXN0 IGFuZCBhZGRzIHRoZSBib3R0b20KIyBwYXJ0IG9mIG91ciBtYW51YWwgcGFnZS4KZW5kbWFuKCkg ewpjYXQgPDxFT0Y+PiAuL3R1bmFibGVzLjgKLkVsCi5TaCBJTVBMRU1FTlRBVElPTiBOT1RFUwpN dWNoLCBpZiBub3QgYWxsIG9mIHRoaXMgbWFudWFsIHBhZ2UgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5 CmEgc2ltcGxlIHNjcmlwdCB3cml0dGVuIGluCi5YciBzaCAxCndoaWNoIGdlbmVyYXRlcyB0aGUK LlhyIG1kb2MgNwptYXJrdXAuCkZvciBpbmZvcm1hdGlvbiBvbgouWHIgc3lzY3RsIDgKaW1wbGVt ZW50YXRpb24gbm90ZXMsIHNlZSB0aGUgcmVzcGVjdGluZyBtYW51YWwgcGFnZXMuCi5TaCBTRUUg QUxTTwouWHIgbG9hZGVyLmNvbmYgNSAsCi5YciBzeXNjdGwuY29uZiA1ICwKLlhyIGJvb3QgOCAs Ci5YciBsb2FkZXIgOCAsCi5YciBzeXNjdGwgOCAsCi5YciBzeXNjdGxfYWRkX29pZCA5ICwKLlhy IHN5c2N0bF9jdHhfaW5pdCA5Ci5TaCBBVVRIT1JTClRoaXMgbWFudWFsIHBhZ2UgYXV0b21hdGlj YWxseSBnZW5lcmF0ZWQgb25jZSBhIG1vbnRoCmJ5IGEgc2NyaXB0IHdyaXR0ZW4gYnkKLkFuIC1u b3NwbGl0Ci5BbiBUb20gUmhvZGVzIEFxIHRyaG9kZXNARnJlZUJTRC5vcmcgLAp3aXRoIHNpZ25p ZmljYW50IGNvbnRyaWJ1dGlvbnMgZnJvbQouQW4gR2lvcmdvcyBLZXJhbWlkYXMgQXEga2VyYW1p ZGFARnJlZUJTRC5vcmcgLAouQW4gUnVzbGFuIEVybWlsb3YgQXEgcnVARnJlZUJTRC5vcmcgLAph bmQKLkFuIE1hcmMgU2lsdmVyIEFxIG1hcmNzQGRyYWVub3Iub3JnIC4KLlNoIEJVR1MKU29tZXRp bWVzCi5GeAouTm0KY2FuIGJlIGxlZnQgdW5kb2N1bWVudGVkIGJ5IHRoZSBpbmRpdmlkdWFscyB3 aG8gb3JpZ2luYWxseQppbXBsZW1lbnRlZCB0aGVtOwp0aHVzIHRoaXMgc2NyaXB0IHdhcyBmb3Jn ZWQgYXMgYSB3YXkgdG8gYXV0b21hdGljYWxseQpwcm9kdWNlIGEgbWFudWFsIHBhZ2UgdG8gYWlk IGluIHRoZSBhZG1pbmlzdHJhdGlvbiBhbmQKY29uZmlndXJhdGlvbiBvZiBhCi5GeApzeXN0ZW0u CkVPRgp9CgojIFRoZSBtYXJrdXBfY3JlYXRlKCkgZnVuY3Rpb24gYnVpbGRzIHRoZSBhY3R1YWwK IyBtYXJrdXAgZmlsZSB0byBiZSBkcm9wcGVkIGludG8uICBJbiBlc3NlbmNlLAojIGNvbXBhcmUg b3VyIGxpc3Qgb2YgdHVuYWJsZXMgd2l0aCB0aGUgZG9jdW1lbnRlZAojIHR1bmFibGVzIGluIG91 ciB0dW5hYmxlcy5tZG9jIGZpbGUgYW5kIGdlbmVyYXRlCiMgdGhlIGZpbmFsICdpbm5lciBjaXJj bGUnIG9mIG91ciBtYW51YWwgcGFnZS4KbWFya3VwX2NyZWF0ZSgpIHsKCXNvcnQgIDwgX25hbWVz IHwJCVwKCXhhcmdzIC1uIDEgL2Jpbi9zaCAuL3N5c2N0bC5zaCAgXAoJCT4gbWFya3VwLmZpbGUJ CVwKCQkyPiB0dW5hYmxlcy5UT0RPCglybSBfbmFtZXMKfQoKIyBGaW5hbGx5LCB0aGUgZm9sbG93 aW5nIGxpbmVzIHdpbGwgY2FsbCBvdXIgZnVuY3Rpb25zIGFuZAojIGFuZCBjcmVhdGUgb3VyIGRv Y3VtZW50IHVzaW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CnBhZ2VfY3JlYXRlKCkgewoJc3Rh cnRtYW4KCS9iaW4vY2F0IC4vbWFya3VwLmZpbGUgPj4gdHVuYWJsZXMuOAoJZW5kbWFuCn0KCiMg VGhlIHN0YXJ0bWFuIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIGluaXRpYWwgbWRvYyg3KSBmb3JtYXR0 ZWQKIyBtYW51YWwgcGFnZS4gIFRoaXMgaXMgcmVxdWlyZWQgYmVmb3JlIHdlIHBvcHVsYXRlIGl0 IHdpdGgKIyB0dW5hYmxlcyBib3RoIGxvYWRlciBhbmQgc3lzY3RsKDgpIG9pZHMuCnN0YXJ0bWFu KCkgewpjYXQgPDxFT0Y+PiAuL3R1bmFibGVzLjgKLlwiCi5cIiBDb3B5cmlnaHQgKGMpIDIwMDMg VG9tIFJob2RlcwouXCIgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLlwiCi5cIiBSZWRpc3RyaWJ1dGlv biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLlwi IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucwouXCIgYXJlIG1ldDoKLlwiIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci5cIiAgICBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi5cIiAyLiBS ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv cHlyaWdodAouXCIgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQouXCIgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLlwiCi5cIiBUSElT IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFT IElTJycgQU5ECi5cIiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLlwiIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi5cIiBBUkUg RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JT IEJFIExJQUJMRQouXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLlwiIERBTUFHRVMgKElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi5cIiBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO VEVSUlVQVElPTikKLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi5cIiBMSUFCSUxJVFksIE9SIFRPUlQg KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi5c IiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF IFBPU1NJQklMSVRZIE9GCi5cIiBTVUNIIERBTUFHRS4KLlwiCi5cIgouRGQgSmFudWFyeSAwNSwg MjAwNAouRHQgVFVOQUJMRVMgOAouT3MKLlNoIE5BTUUKLk5tIHR1bmFibGVzCi5OZCBsaXN0IG9m IHN5c3RlbSB0dW5hYmxlcwouU2ggREVTQ1JJUFRJT04KLkZ4CnN1cHBvcnRzIGtlcm5lbCBhbHRl cmF0aW9ucyBvbiB0aGUgZmx5IG9yIGF0CnN5c3RlbSBpbml0aWFsaXphdGlvbiBieSB1c2luZyBh IGZlYXR1cmUKa25vd24gYXMgdGhlCi5EcSBNYW5hZ2VtZW50IEluZm9ybWF0aW9uIEJhc2UKb3IK LkRxIE1JQnMKZm9yIHNob3J0LgouUHAKVGhlCi5GeAprZXJuZWwgZW52aXJvbm1lbnQgaXMgaW5p dGlhbGl6ZWQgZnJvbSB0aGUKLlhyIGxvYWRlciA4CnZhcmlhYmxlcywgYW5kIGNhbiBsYXRlciBi ZSB2aWV3ZWQgYW5kIG1vZGlmaWVkIHdpdGggdGhlCi5YciBrZW52IDEKdXRpbGl0eS4KU29tZSBv Zgp0aGVzZSB2YXJpYWJsZXMgYWxsb3cgYW4gYWRtaW5pc3RyYXRvciB0bwouRHEgdHVuZQpzb21l IGFzcGVjdCBvZiBzeXN0ZW0ncwpiZWhhdmlvciBhdCBzdGFydHVwLCBoZW5jZQouRHEgdHVuYWJs ZXMgLgpNb3N0IHR1bmFibGVzCmhhdmUgY29ycmVzcG9uZGluZyBzeXNjdGxzLgpXaGlsZSBzb21l IHN5c2N0bHMgbWF5IGJlIHVzZWQKdG8gYWx0ZXIgdGhlIHN5c3RlbSBiZWhhdmlvciBvbi10aGUt Zmx5LApzb21lIGFzcGVjdHMgb2YgdGhlCnN5c3RlbSwgZm9yIGV4YW1wbGUgdGhlIHNpemUgb2Yg c29tZSBjcml0aWNhbCBidWZmZXJzLAptYXkgYmUgY2hhbmdlZApvbmx5IGF0IHRoZSBzeXN0ZW0g aW5pdGlhbGl6YXRpb24gdGltZSwgaGVuY2UgdGhlCm5lZWQgZm9yIHR1bmFibGVzLgouUHAKV2hl biB0aGUgbmVlZCB0byBhbHRlciBhIHJlYWQtb25seSB2YXJpYWJsZQphcmlzZXMsIHRoZXkgY2Fu IGJlIGFkZGVkIHRvIHRoZQouWHIgbG9hZGVyLmNvbmYgNQpjb25maWd1cmF0aW9uIGZpbGUuCkZv ciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0aGlzIGZpbGUgaXMgc3RydWN0dXJlZCwKc2VlIHRo ZSBtYW51YWwgcGFnZS4KLlBwCkZ1cnRoZXJtb3JlLCBjaGFuZ2VzIHRvIGNlcnRhaW4KLk5tCmNh biBiZSBtYWRlIGJ5IHVzaW5nIAouUGEgL2V0Yy9yYy5jb25mICwKYXMgbWFueSAKLk5tCmFyZSBz ZXQgZHVyaW5nIHRoZSBib290IHN0YWdlIHdoaWxlIHJlYWRpbmcgdmFsdWVzIGZyb20gdGhpcyBm aWxlLiAKU2VlCi5YciByYy5jb25mIDUKZm9yIG1vcmUgaW5mb3JtYXRpb24uCi5QcApUaGUKLk5t CnN1cHBvcnRlZCBieQouWHIgc3lzY3RsIDgKYXJlOgouUHAKLkJsIC1vaGFuZyAtb2Zmc2V0IGlu ZGVudApFT0YKfQoKIyBDYXNlIHRoZSBhcmNoaXRlY3R1cmUgYW5kIGdlbmVyYXRlIGEgX25hbWVz IGZpbGUgYmFzZWQKIyBvbiAke01BQ0hJTkVfQVJDSH0gaW4gdGhlIE1ha2VmaWxlLiAgV2UgZ2V0 IG1vc3Qgb2YgdGhlCiMgdHVuYWJsZXMgYnkgcnVubmluZyBubSgxKSB0aHJvdWdoIHRoZSBidWls dCBrZXJuZWwgYW5kCiMgbW9kdWxlcy4gIFRodXMgb3VyIGRvd25mYWxsIGlzIHRoYXQgd2UgZXhw ZWN0IHRoZSB1c2VyCiMgdG8gaGF2ZSByYW4gYSAnbWFrZSB1bml2ZXJzZScgZmlyc3QuICBVc2Vy cyBjYW4gc3RpbGwKIyBnZW5lcmF0ZSBhIHR1bmFibGVzLjggbWFudWFsIHBhZ2UgZm9yIGEgZGlm ZmVyZW50IENQVQojIGFyY2hpdGVjdHVyZSBieSBjYWxsaW5nIHJ1bi5zaCBkaXJlY3RseS4KIwoj IFRoZSBmb3Igc3RhdGVtZW50IHdpbGwgZW5zdXJlIHRoYXQgd2Ugb25seSB3b3JrIHdpdGggdGhl CiMga2VybmVsIGFuZCBpdHMgbW9kdWxlcy4KIwojIEFsbCBvZiB0aGUga2VybmVscy93b3JsZHMg ZnJvbSAnbWFrZSB1bml2ZXJzZScgZ2V0IGEgc3BlY2lhbAojICR7QVJDSH0gZGlyZWN0b3J5LiAg VGhlIGRlZmF1bHQgb25lIGRvZXNuJ3QuICBTaW5jZSBJIGd1ZXNzCiMgTWFpbnRhaW5lcnNoaXAg YmVsb25ncyB0byBtZSwgaWdub3JlIHRoZSAke0FSQ0h9IGRpcmVjdG9yeQojIGZvciBpMzg2IGNh c2VzIGFzIGl0IHdvbid0IGJlIHRoZXJlIG9uIG15IHA0IG1hY2hpbmUuCiMKIyBUaGUgbm0oMSkg dXRpbGl0eSBtdXN0IG9ubHkgYmUgdXNlZCBvbiB0aGUgYXJjaGl0ZWN0dXJlIHdoaWNoCiMgd2Ug YnVpbGQgaXQgZm9yLiAgQWx0aG91Z2ggaTM4NiBhbmQgcGM5OCBhcmUgc28gc2ltaWxhciB3ZSBj YW4KIyB1c2UgdGhlIGkzODYgdmVyc2lvbiBmb3IgYm90aC4KCmNhc2UgIiQxIiBpbgoKCS1hbGwp CgkJc2ggLi9ydW4uc2ggLWFscGhhICYmIHNoIC4vcnVuLnNoIC1pMzg2ICYmIHNoIC4vcnVuLnNo IC1pYTY0ICYmIFwKCQlzaCAuL3J1bi5zaCAtaW5zdGFsbGVkICYmIHNoIC4vcnVuLnNoIC1wYzk4 ICYmCQlcCgkJc2ggLi9ydW4uc2ggLXNwYXJjNjQgJiYgZWNobyAiTWFudWFsIHBhZ2VzIGJ1aWx0 IGZvciBhbGwJXAoJCWFyY2hpdGVjdHVyZXMuIiA7OwoKCS1hbHBoYSkKCQlmb3IgeCBpbiBgZmlu ZCAvdXNyL29iai9hbHBoYS91c3Ivc3JjL3N5cy9MSU5UIC1uYW1lICcqLmtsZCdgCVwKCQkJICAv dXNyL29iai9hbHBoYS91c3Ivc3JjL3N5cy9MSU5UL2tlcm5lbDsKCQkJICBkbyAvdXNyL29iai9h bHBoYS91c3Ivc3JjL2kzODYvdXNyL2Jpbi9ubQkJXAoJCQkgICR4IHwgZ3JlcCAnIHN5c2N0bF9f XycgfCB1bmlxIHwJCQlcCgkJCSAgc2VkICdzL3N5c2N0bF9fXy8vZycgfCBzZWQgJ3MvXy8uL2cn IHwJCVwKCQkJICBhd2sgeydwcmludCAkMyd9ID4gX25hbWVzOwoJCWRvbmU7CgkJbWFya3VwX2Ny ZWF0ZQoJCXBhZ2VfY3JlYXRlCgkJbXYgLi90dW5hYmxlcy44IGFscGhhX3R1bmFibGVzLjggOzsK CgktY2xlYW4pCgkJcm0gdHVuYWJsZXMuVE9ETyBtYXJrdXAuZmlsZSB0dW5hYmxlcy44IF9uYW1l cwkJCVwKCQkgICBhbHBoYV90dW5hYmxlcy44IGkzODZfdHVuYWJsZXMuOCBpYTY0X3R1bmFibGVz LjgJCVwKCQkgICBpbnN0YWxsZWRfdHVuYWJsZXMuOCBwYzk4X3R1bmFibGVzLjggc3BhcmM2NF90 dW5hYmxlcy44CVwKCQkgICAyPiAvZGV2L251bGw7CgkJZXhpdCAwIDs7CgoJLWkzODYpCgkJZm9y IHggaW4gYGZpbmQgL3Vzci9vYmovdXNyL3NyYy9zeXMvTElOVCAtbmFtZSAnKi5rbGQnYCAJXAoJ CQkgIC91c3Ivb2JqL3Vzci9zcmMvc3lzL0xJTlQva2VybmVsOwoJCQkgIGRvIG5tICR4IHwgZ3Jl cCAnIHN5c2N0bF9fXycgfCB1bmlxIHwJCQlcCgkJCSAgc2VkICdzL3N5c2N0bF9fXy8vZycgfCBz ZWQgJ3MvXy8uL2cnIHwJCVwKCQkJICBhd2sgeydwcmludCAkMyd9ID4gX25hbWVzOwoJCWRvbmU7 CgkJbWFya3VwX2NyZWF0ZQoJCXBhZ2VfY3JlYXRlCgkJbXYgLi90dW5hYmxlcy44IGkzODZfdHVu YWJsZXMuOCA7OwoKCS1pYTY0KQoJCWZvciB4IGluIGBmaW5kIC91c3Ivb2JqL2lhNjQvdXNyL3Ny Yy9zeXMvTElOVCAtbmFtZSAnKi5rbGQnYAlcCgkJCSAgL3Vzci9vYmovaWE2NC91c3Ivc3JjL3N5 cy9MSU5UL2tlcm5lbDsKCQkJICBkbyAvdXNyL29iai9pYTY0L3Vzci9zcmMvaTM4Ni91c3IvYmlu L25tICR4IHwJCVwKCQkJICBncmVwICcgc3lzY3RsX19fJyB8IHVuaXEgfAkJCQlcCgkJCSAgc2Vk ICdzL3N5c2N0bF9fXy8vZycgfCBzZWQgJ3MvXy8uL2cnIHwJCVwKCQkJICBhd2sgeydwcmludCAk Myd9ID4gX25hbWVzOwoJCWRvbmU7CgkJbWFya3VwX2NyZWF0ZQoJCXBhZ2VfY3JlYXRlCgkJbXYg Li90dW5hYmxlcy44IGlhNjRfdHVuYWJsZXMuOCA7OwoKCS1pbnN0YWxsZWQpCgkJZm9yIHggaW4g L2Jvb3Qva2VybmVsLyoua28gL2Jvb3Qva2VybmVsL2tlcm5lbDsKCQkJZG8gbm0gJHggfCBncmVw ICcgc3lzY3RsX19fJyB8IHVuaXEgfAkJCVwKCQkJc2VkICdzL3N5c2N0bF9fXy8vZycgfCBzZWQg J3MvXy8uL2cnIHwJCQlcCgkJCWF3ayB7J3ByaW50ICQzJ30gPiBfbmFtZXM7CgkJZG9uZTsKCQlt YXJrdXBfY3JlYXRlCgkJcGFnZV9jcmVhdGUKCQltdiAuL3R1bmFibGVzLjggaW5zdGFsbGVkX3R1 bmFibGVzLjggOzsKCgktcGM5OCkKCQlmb3IgeCBpbiBgZmluZCAvdXNyL29iai9wYzk4L3Vzci9z cmMvc3lzL0xJTlQgLW5hbWUgJyoua2xkJ2AJXAoJCQkgIC91c3Ivb2JqL3BjOTgvdXNyL3NyYy9z eXMvTElOVC9rZXJuZWw7CgkJCSAgZG8gbm0gJHggfCBncmVwICcgc3lzY3RsX19fJyB8IHVuaXEg fAkJCVwKCQkJICBzZWQgJ3Mvc3lzY3RsX19fLy9nJyB8IHNlZCAncy9fLy4vZycgfAkJXAoJCQkg IGF3ayB7J3ByaW50ICQzJ30gPiBfbmFtZXM7CgkJZG9uZTsKCQltYXJrdXBfY3JlYXRlCgkJcGFn ZV9jcmVhdGUKCQltdiAuL3R1bmFibGVzLjggcGM5OF90dW5hYmxlcy44IDs7CgoJLXNwYXJjNjQp CgkJZm9yIHggaW4gYGZpbmQgL3Vzci9vYmovc3BhcmM2NC91c3Ivc3JjL3N5cy9MSU5UIC1uYW1l ICcqLmtsZCdgIFwKCQkJICAvdXNyL29iai9zcGFyYzY0L3Vzci9zcmMvc3lzL0xJTlQva2VybmVs OwoJCQkgIGRvIC91c3Ivb2JqL3NwYXJjNjQvdXNyL3NyYy9pMzg2L3Vzci9iaW4vbm0gJHggfAlc CgkJCSAgZ3JlcCAnIHN5c2N0bF9fXycgfCB1bmlxIHwJCQkJXAoJCQkgIHNlZCAncy9zeXNjdGxf X18vL2cnIHwgc2VkICdzL18vLi9nJyB8CQlcCgkJCSAgYXdrIHsncHJpbnQgJDMnfSA+IF9uYW1l czsKCQlkb25lOwoJCW1hcmt1cF9jcmVhdGUKCQlwYWdlX2NyZWF0ZQoJCW12IC4vdHVuYWJsZXMu OCBzcGFyYzY0X3R1bmFibGVzLjggOzsKCgkqKSBlY2hvICIkVVNBR0UiCgkJZXhpdCAwIDs7Cgpl c2FjCg== --Multipart=_Thu__22_Jan_2004_02_47_29_-0500_FgA_kUaO8e4__3SQ Content-Type: application/octet-stream; name="sysctl.sh" Content-Disposition: attachment; filename="sysctl.sh" Content-Transfer-Encoding: base64 IyEvYmluL3NoCiMKIyAkUGl0dGdvdGg6IHByb2plY3RzL3NjcmlwdHMvZG9jdHVuZS9zeXNjdGwu c2gsdiAxLjcgMjAwNC8wMS8yMCAwODoxODozNiBkYXJrbG9naWsgRXhwICQKIyAkRnJlZUJTRCQK IwojIEZvciBlYWNoIHN5c2N0bCwgcmVwZWF0OgojCWlmIGl0IGhhcyBhIHNob3J0IGRlc2NyaXB0 aW9uCiMJCXN5c2N0bC5zaCBuYW1lICJkZXNjciIKIwllbHNlCiMJCXdyaXRlIGl0cyBuYW1lIHRv IHR1bmFibGVzLlRPRE8gd2l0aCAnbmFtZSBtaXNzaW5nIGRlc2NyaXB0aW9uJwojCgpuYW1lPSIk MSIKaWYgWyBYIiR7bmFtZX0iID0gWCIiIF07IHRoZW4KCWVjaG8gInVzYWdlOiAkKGJhc2VuYW1l ICQwKSBzeXNjdGwtbmFtZSIgPiYyCglleGl0IDEKZmkKCgojIExvb2sgdXAgJG5hbWUgaW4gdHVu YWJsZXMubWRvYwoKPCB0dW5hYmxlcy5tZG9jIFwKc2VkIC1uZSAiL14ke25hbWV9W1s6c3BhY2U6 XV0qJC8sL14tLS1bWzpzcGFjZTpdXSokL3AiIHwJXApzZWQgLWUgJy9eLS0tW1s6c3BhY2U6XV0q JC9kJyB8CQkJCQlcCgp7CQkJCQkJCQlcCglyZWFkIHRtcG5hbWUgX2p1bms7CQkJCQlcCglpZiBb IFgiJHt0bXBuYW1lfSIgPSBYIiIgXTsgdGhlbgkJCVwKCQlleGl0IDA7CQkJCQkJXAoJZmkgOwkJ CQkJCQlcCglyZWFkIHR5cGUgdmFsdWUgX2p1bms7CQkJCQlcCgl1bnNldCBfanVuazsJCQkJCQlc CglpZiBbIFgiJHt0eXBlfSIgPSBYIiIgXTsgdGhlbgkJCQlcCgkJZWNobyAiIiA+JjIgOwkJCQkJ XAoJCWVjaG8gIkVSUk9SOiBNaXNzaW5nIHR5cGUgZm9yICR7bmFtZX0iID4mMiA7CVwKCWZpIDsJ CQkJCQkJXAoJaWYgWyBYIiR7dmFsdWV9IiA9IFgiIiBdOyB0aGVuCQkJCVwKCQllY2hvICIiID4m MiA7CQkJCQlcCgkJZWNobyAiRVJST1I6IE1pc3NpbmcgZGVmYXVsdCBmb3IgJHtuYW1lfSIgPiYy IDsJXAoJZmkgOwkJCQkJCQlcCgkJCQkJCQkJXAoJZWNobyAiLkl0IFZhICR7dG1wbmFtZX0iIDsJ CQkJXAoJZWNobyAiLlBxIFZ0ICR7dHlwZX0iIDsJCQkJCVwKCWdyZXAgLXYgJ15bWzpzcGFjZTpd XSokJyB8CQkJCVwKCXNlZCAtZSAicy9AZGVmYXVsdEAvJHt2YWx1ZX0vZyIgfAkJCVwKCXNlZCAt ZSAicy9AdHlwZUAvJHt0eXBlfS9nIiA7CQkJCVwKfQ== --Multipart=_Thu__22_Jan_2004_02_47_29_-0500_FgA_kUaO8e4__3SQ Content-Type: application/octet-stream; name="tunables.mdoc" Content-Disposition: attachment; filename="tunables.mdoc" Content-Transfer-Encoding: base64 IyAkRnJlZUJTRCQKIyAkUGl0dGdvdGg6IHByb2plY3RzL3NjcmlwdHMvZG9jdHVuZS90dW5hYmxl cy5tZG9jLHYgMS4xMSAyMDA0LzAxLzIwIDA3OjA3OjI0IG1hcmNzIEV4cCAkCi0tLQpkZWJ1Zy5k aXNhYmxlY3dkCmJvb2wKCkRldGVybWluZXMgd2hldGhlciBvciBub3QgdGhlCi5YciBnZXR3Y2Qg MwpzeXNjYWxsIHNob3VsZCBiZSBhbGxvd2VkLiAgCi5QcAoKLS0tCmRlYnVnLmRpc2FibGVmdWxs cGF0aAoKLS0tCmRlYnVnLmRvYmtncmR3cml0ZQpib29sCgpEZXRlcm1pbmVzIGlmIGJhY2tncm91 bmQgd3JpdGVzIHNob3VsZCBiZSBwZXJmb3JtZWQuCi5QcAoKLS0tCmRlYnVnLmhhc2hzdGF0Lm5j aGFzaAoKLS0tCmRlYnVnLmhhc2hzdGF0LnJhd25jaGFzaAoKLS0tCmRlYnVnLmllZWU4MDIxMQpi b29sCgpUaGlzIAouTm0KYWxsb3dzIHlvdSB0byBlbmFibGUgb3IgZGlzYWJsZSBkZWJ1Z2dpbmcg Zm9yIDgwMi4xMSBkZXZpY2VzLgouUHAKCi0tLQpkZWJ1Zy5tYWxsb2MuZmFpbHVyZV9jb3VudApi b29sCgpOdW1iZXIgb2YgdGltZXMgYSBjb2VyY2VkIG1hbGxvYyBmYWlsdXJlIGhhcyBvY2N1cnJl ZCBhcyBhCnJlc3VsdCBvZiBkZWJ1Zy5tYWxsb2MuZmFpbHVyZV9yYXRlLgpVc2VmdWwgZm9yIHRy YWNraW5nIHdoYXQgbWlnaHQgaGF2ZSBoYXBwZW5lZAphbmQgd2hldGhlciBmYWlsdXJlcyBhcmUg YmVpbmcgZ2VuZXJhdGVkLgouUHAKCi0tLQpkZWJ1Zy5tYWxsb2MuZmFpbHVyZV9yYXRlCmJvb2wK CkRlYnVnZ2luZyBmZWF0dXJlIGNhdXNpbmcgTV9OT1dBSVQgYWxsb2NhdGlvbnMgdG8gZmFpbCBh dAphIHNwZWNpZmllZCByYXRlLgpIb3cgb2Z0ZW4gdG8gZ2VuZXJhdGUgYSBmYWlsdXJlOiBpZiBz ZXQgdG8gMCAoZGVmYXVsdCksIHRoaXMKZmVhdHVyZSBpcyBkaXNhYmxlZC4KSW4gb3RoZXIgd29y ZHMgaWYgc2V0IHRvIDEwIChvbmUgaW4gdGVuIG1hbGxvY3MgZmFpbHMpLgouUHAKCi0tLQpkZWJ1 Zy5ybWFuX2RlYnVnCmJvb2wKClRoaXMKLk5tCmFsbG93cyB5b3UgdG8gZW5hYmxlIG9yIGRpc2Fi bGUgZGVidWdnaW5nIGZvciAKLlhyIHJtYW4gOSAsCnRoZSBGcmVlQlNEIHJlc291cmNlIG1hbmFn ZXIuCi5QcAoKLS0tCmRlYnVnLnNpemVvZi5iaW8KCi0tLQpkZWJ1Zy5zaXplb2YuYnVmCgotLS0K ZGVidWcuc2l6ZW9mLmNkZXYKCi0tLQpkZWJ1Zy5zaXplb2YuZGV2c3RhdAoKLS0tCmRlYnVnLnNp emVvZi5raW5mb19wcm9jCgotLS0KZGVidWcuc2l6ZW9mLnByb2MKCi0tLQpkZWJ1Zy5zaXplb2Yu dm5vZGUKCi0tLQpkZWJ1Zy52bmxydV9ub3doZXJlCgotLS0KaHcuYWNwaS5jcHUuY3VycmVudF9z cGVlZApib29sCgpEaXNwbGF5IHRoZSBjdXJyZW50IENQVSBzcGVlZC4KVGhpcyBpcyBhZGp1c3Rh YmxlLCBidXQgZG9pbmcgc28gaXMgaGlnaGx5IHVucmVjb21tZW5kZWQuCi5QcAoKLS0tCmh3LmFj cGkuY3B1Lm1heF9zcGVlZAppbnQKCkFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBzdGVwcGluZyBm b3IgcHJvY2Vzc29yIHNwZWVkCm9uIG1hY2hpbmVzIHdoaWNoIHN1cHBvcnQKLlhyIGFjcGkgNCAu Ci5QcAoKLS0tCmh3LmFjcGkuZGlzYWJsZV9vbl9wb3dlcm9mZgpib29sCgpTb21lIHN5c3RlbXMg dXNpbmcgCi5YciBhY3BpIDQKaGF2ZSBwcm9ibGVtcyBwb3dlcmluZyBvZmYgd2hlbiBzaHV0dGlu ZyBkb3duIHdpdGgKLlhyIGFjcGkgNAplbmFibGVkLiAgVGhpcyAKLk5tCmRpc2FibGVzIAouWHIg YWNwaSA0CndoZW4gcmVib290aW5nIGFuZCBzaHV0dGluZyBkb3duLgouUHAKCi0tLQpody5hY3Bp LnM0Ymlvcwpib29sCgpUaGlzCi5ObQpkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBTNEJJ T1Mgc2xlZXAgaW1wbGVtZW50YXRpb24gCnNob3VsZCBiZSB1c2VkLgouUHAKCi0tLQpody5hY3Bp LnNsZWVwX2RlbGF5CmludAoKU2V0IHRoZSBzbGVlcCBkZWxheSBmb3IgCi5YciBhY3BpIDQgLgou UHAKCi0tLQpody5hY3BpLnN1cHBvcnRlZF9zbGVlcF9zdGF0ZQpib29sCgpMaXN0IHN1cHBvcnRl ZAouVG4gQUNQSQpzbGVlcCBzdGF0ZXMKLlBwCgotLS0KaHcuYWNwaS50aGVybWFsLm1pbl9ydW50 aW1lCgotLS0KaHcuYWNwaS50aGVybWFsLnBvbGxpbmdfcmF0ZQppbnQKClRoZSBpbnRlcnZhbCAo aW4gc2Vjb25kcykgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjaGVjawp0aGUgY3VycmVudCBzeXN0 ZW0gdGVtcGVyYXR1cmUuCi5QcAoKLS0tCmh3LmFjcGkudGhlcm1hbC50ejAudGVtcGVyYXR1cmUK c3RyCgpEaXNwbGF5cyB0aGUgY3VycmVudCB0ZW1wZXJhdHVyZS4gIFRoaXMgaXMgYSByZWFkLW9u bHkKdmFyaWFibGUuCi5QcAoKLS0tCmh3LmFjcGkudGhlcm1hbC50ejAudGhlcm1hbF9mbGFncwoK LS0tCmh3LmFjcGkudmVyYm9zZQpib29sCgpEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IAouWHIg YWNwaSA0CnNob3VsZCBiZSB2ZXJib3NlLgouUHAKCi0tLQpody5hdGEuYXRhX2RtYQpib29sCgpB bGxvd3MgdGhlIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgb2YgRE1BIGZvcgpBVEEgZGV2aWNlcy4g IAouUHAKCi0tLQpody5hdGEuYXRhcGlfZG1hCmJvb2wKCkFsbG93cyB0aGUgZW5hYmxpbmcgYW5k IGRpc2FibGluZyBvZiBETUEgZm9yCmF0YXBpIGRldmljZXMsIHN1Y2ggYXMgQ0QtUk9NIGRyaXZl cy4KLlBwCgotLS0KaHcuYXRhLnRhZ3MKCi0tLQpody5hdGEud2MKCi0tLQpody5idXMuZGV2Y3Rs X2Rpc2FibGUKCi0tLQpody5idXMuZGV2aWNlcwoKLS0tCmh3LmJ1cy5pbmZvCgotLS0KaHcuYnVz LnJtYW4KCi0tLQpody5ieXRlb3JkZXIKCi0tLQpody5jYXJkYnVzLmNpc19kZWJ1ZwoKLS0tCmh3 LmNhcmRidXMuZGVidWcKCi0tLQpody5jYmIuZGVidWcKCi0tLQpody5jYmIuc3RhcnRfMTZfaW8K Ci0tLQpody5jYmIuc3RhcnRfMzJfaW8KCi0tLQpody5jYmIuc3RhcnRfbWVtb3J5CgotLS0KaHcu ZmxvYXRpbmdwb2ludApib29sCgpSZXBvcnRzIHRydWUgaWYgdGhlIG1hY2hpbmUgaGFzIGEgZmxv YXRpbmcgcG9pbnQgcHJvY2Vzc29yLgpUaGlzIGlzIGEgcmVhZC1vbmx5IHZhcmlhYmxlLgouUHAK Ci0tLQpody5meHAwLmJ1bmRsZV9tYXgKaW50CgpDb250cm9scyB0aGUgcmVjZWl2ZSBpbnRlcnJ1 cHQgbWljcm9jb2RlIGJ1bmRsZSBzaXplIGxpbWl0IApmb3IgdGhlCi5YciBmeHAgNApkZXZpY2Uu Ci5QcAoKLS0tCmh3LmZ4cDAuaW50X2RlbGF5CmludAoKQ29udHJvbHMgdGhlIHJlY2VpdmUgaW50 ZXJydXB0IG1pY3JvY29kZSBidW5kbGluZyBkZWxheSAKZm9yIHRoZQouWHIgZnhwIDQKZGV2aWNl LgouUHAKCi0tLQpody5meHBfbm9mbG93CmJvb2wKCkRpc2FibGVzIGZsb3cgY29udHJvbCBzdXBw b3J0IG9uCi5YciBmeHAgNApjYXJkcy4KV2hlbiBmbG93IGNvbnRyb2wgaXMgZW5hYmxlZCwgYW5k IGlmIHRoZSBvcGVyYXRpbmcgc3lzdGVtCmRvZXMgbm90IGFja25vd2xlZGdlIHRoZSBwYWNrZXQg YnVmZmVyIGZpbGxpbmcsCnRoZSBjYXJkIHdpbGwgYmVnaW4gdG8gZ2VuZXJhdGUgZXRoZXJuZXQg cXVlbmNoCnBhY2tldHMsIGJ1dCBhcHBlYXJzIHRvIGdldCBpbnRvIGEgZmVlZGJhY2sKbG9vcCBv ZiBzb21lIHNvcnQsIGhvc2luZyBsb2NhbCBzd2l0Y2hlcy4KVGhpcyBpcyBhIHdvcmthcm91bmQg Zm9yIHRoaXMgaXNzdWUuCi5QcAoKLS0tCmh3LmZ4cF9ybnIKaW50CgpTZXQgdGhlIGFtb3VudCBv ZiB0aW1lcyB0aGF0IGEgbm8tcmVzb3VyY2UgCmNvbmRpdGlvbiBtYXkgb2NjdXIgYmVmb3JlIHRo ZSAKLlhyIGZ4cCA0CmRldmljZSBtYXkgcmVzdGFydC4KLlBwCgotLS0KaHcuaW5zdHJ1Y3Rpb25f c3NlCmJvb2wKClJldHVybnMgdHJ1ZSBpZiBTU0Ugc3VwcG9ydCBpcyBlbmFibGVkIGluIHRoZSBr ZXJuZWwuClRoaXMgaXMgYSByZWFkLW9ubHkgdmFyaWFibGUuCi5QcAoKLS0tCmh3LmludHJjbnQK Ym9vbAoKRGlzcGxheXMgYSBsaXN0IG9mIGludGVycnVwdCBjb3VudGVycy4KVGhpcyBpcyBhIHJl YWQtb25seSB2YXJpYWJsZS4KLlBwCgotLS0KaHcuaW50cm5hbWVzCnN0cgoKRGlzcGxheXMgYSBs aXN0IG9mIHplcm8tdGVybWluYXRlZCBpbnRlcnJ1cHQKbmFtZXMuICBUaGlzIGlzIGEgcmVhZC1v bmx5IHZhcmlhYmxlLgouUHAKCi0tLQpody5rYmQua2V5bWFwX3Jlc3RyaWN0X2NoYW5nZQpib29s CgpUaGlzIHN5c2N0bCBhY3RzIGFzIGEgc29ydCBvZiBzZWN1cmUtbGV2ZWwsIGFsbG93aW5nCmNv bnRyb2wgb2YgdGhlIGNvbnNvbGUga2V5bWFwLgpHaXZpbmcgdGhpcyBhIHZhbHVlIG9mIDEgbWVh bnMgdGhhdCBvbmx5IHRoZQpyb290IHVzZXIgY2FuIGNoYW5nZSByZXN0cmljdGVkIGtleXMKKGxp a2UgYm9vdCwgcGFuaWMuLi4pLgpBIHZhbHVlIG9mIDIgbWVhbnMgdGhhdCBvbmx5IHJvb3QKY2Fu IGNoYW5nZSByZXN0cmljdGVkIGtleXMgYW5kIHJlZ3VsYXIga2V5cy4KUmVndWxhciB1c2VycyBz dGlsbCBjYW4gY2hhbmdlIGFjY2VudHMgYW5kIGZ1bmN0aW9uIGtleXMuCkEgdmFsdWUgb2YgMyBt ZWFucyBvbmx5IHJvb3QgY2FuIGNoYW5nZSByZXN0cmljdGVkLApyZWd1bGFyIGFuZCBhY2NlbnQg a2V5cywgd2hpbGUgYSB2YWx1ZSBvZiA0IG1lYW5zIHRoYXQKbm8gY2hhbmdlcyB0byB0aGUga2V5 bWFwIGFyZQphbGxvd2VkIGJ5IGFueW9uZSBvdGhlciB0aGFuIHRoZSByb290IHVzZXIuCi5QcAoK LS0tCmh3Lm1hY2hpbmUKc3RyCgpEaXNwbGF5cyB0aGUgbWFjaGluZSBjbGFzcy4gIFRoaXMgaXMg YSByZWFkLW9ubHkgdmFyaWFibGUuCi5QcAoKLS0tCmh3Lm1hY2hpbmVfYXJjaApzdHIKCkRpc3Bs YXlzIHRoZSBjdXJyZW50IGFyY2hpdGVjdHVyZS4gIFRoaXMgaXMgYSByZWFkLW9ubHkKdmFyaWFi bGUuCi5QcAoKLS0tCmh3Lm1vZGVsCnN0cgoKRGlzcGxheXMgdGhlIG1vZGVsIGluZm9ybWF0aW9u IG9mIHRoZSBjdXJyZW50IHJ1bm5pbmcgaGFyZHdhcmUuClRoaXMgaXMgYSByZWFkLW9ubHkgdmFy aWFibGUuCi5QcAoKLS0tCmh3Lm5jcHUKYm9vbAoKUmVwb3J0IHRoZSBudW1iZXIgb2YgQ1BVJ3Mg aW4gdGhlIHN5c3RlbS4gIFRoaXMgaXMKYSByZWFkLW9ubHkgdmFyaWFibGUuCi5QcAoKLS0tCmh3 LnBhZ2VzaXplCmludAoKRGlzcGxheXMgdGhlIGN1cnJlbnQgCi5YciBwYWdlc2l6ZSAxIC4KVGhp cyBpcyBhIHJlYWQtb25seSB2YXJpYWJsZS4KLlBwCgotLS0KaHcucGNjYXJkLmNpc19kZWJ1Zwpp bnQKCkFsbG93cyBkZWJ1Z2dpbmcgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBmb3IKQ0lTLgouUHAK Ci0tLQpody5wY2NhcmQuZGVidWcKYm9vbAoKRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0byB1 c2UgZGVidWdnaW5nIGZvciB0aGUKUEMgQ2FyZCBidXMgZHJpdmVyLgouUHAKCi0tLQpody5wY2ku YWxsb3dfdW5zdXBwb3J0ZWRfaW9fcmFuZ2UKYm9vbAoKU29tZSBtYWNoaW5lcyBkbyBub3QgZGV0 ZWN0IHRoZWlyIENhcmRCdXMgc2xvdHMgY29ycmVjdGx5CmJlY2F1c2UgdGhleSB1c2UgdW5zdXBw b3J0ZWQgSS9PIHJhbmdlcy4gIFRoaXMgCi5ObQphbGxvd3MgRnJlZUJTRCB0byB1c2UgdGhvc2Ug cmFuZ2VzLgouUHAKCi0tLQpody5wY2kuZW5hYmxlX2lvX21vZGVzCgotLS0KaHcuc25kLnBjbTAu YWM5N3JhdGUKCi0tLQpody5zbmQucmVwb3J0X3NvZnRfZm9ybWF0cwoKLS0tCmh3LnN5c2NvbnMu YmVsbApib29sCgpBbGxvd3MgeW91IHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgdG8gdXNlIHRo ZSAnYmVsbCcKd2hpbGUgdXNpbmcgdGhlIGNvbnNvbGUuICBUaGlzIGlzIHR1cm5lZCBvbiBieSBk ZWZhdWx0LgouUHAKCi0tLQpody5zeXNjb25zLnNhdmVyLmtleWJvbmx5CmJvb2wKClRoaXMgdmFy aWFibGUgdGVsbHMgdGhlIHN5c3RlbSB0aGF0IHRoZSBzY3JlZW4gc2F2ZXIKbWF5IG9ubHkgd2Fr ZSB1cCBpZiB0aGUga2V5Ym9hcmQgaXMgdXNlZC4gIFRoaXMgbWVhbnMKdGhhdCBsb2cgbWVzc2Fn ZXMgdGhhdCBhcmUgcHVzaGVkIHRvIHRoZSBjb25zb2xlIHdpbGwKbm90IGNhdXNlIHRoZSBzY3Jl ZW4gc2F2ZXIgdG8gc3RvcCwgYW5kIGRpc3BsYXkgdGhlIGxvZwptZXNzYWdlIHdpbGwgbm90IGRp c3BsYXkuICBUaGlzIGNhbiBiZSBkaXNhYmxlZCB0byBtaW1pYwp0aGUgYmVoYXZpb3Igb2Ygb2xk ZXIgc3lzY29ucy4KLlBwCgotLS0KaHcuc3lzY29ucy5zY19ub19zdXNwZW5kX3Z0c3dpdGNoCmJv b2wKCkRpc2FibGVzIHN3aXRjaGluZyBiZXR3ZWVuIHZpcnR1YWwgdGVybWluYWxzIGR1cmluZyBz dXNwZW5kCm9yIHJlc3VtZS4gIFNlZSAKLlhyIHN5c2NvbnMgNApmb3IgbW9yZSBpbmZvcm1hdGlv bi4KLlBwCgotLS0KaHcud2kuZGVidWcKCi0tLQpody53aS50eGVyYXRlCgotLS0Ka2Vybi5hY2N0 X2Noa2ZyZXEKCi0tLQprZXJuLmFjY3RfcmVzdW1lCgotLS0Ka2Vybi5hY2N0X3N1c3BlbmQKCi0t LQprZXJuLmFyZ21heApib29sCgpUaGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBjYW4g YmUKdXNlZCBpbiBhbiBhcmd1bWVudCB0bwouWHIgZXhlY3ZlIDIgLgpUaGlzIGlzIGJhc2ljYWxs eSB0aGUgbWF4aW11bSBudW1iZXIgb2YKY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgdXNlZCBpbiBh IHNpbmdsZQpjb21tYW5kIGxpbmUuCk9uIHNvbWUgcmFyZSBvY2Nhc2lvbnMsIHRoaXMgdmFsdWUg bmVlZHMKYWx0ZXJpbmcuCklmIHNvLCBwbGVhc2UgY2hlY2sgb3V0IHRoZQouWHIgeGFyZ3MgMQp1 dGlsaXR5LgouUHAKCi0tLQprZXJuLmJvb3RmaWxlCnN0cgoKVGhlIGtlcm5lbCB3aGljaCB3YXMg dXNlZCB0byBib290IHRoZSBzeXN0ZW0uCi5QcAoKLS0tCmtlcm4uYm9vdHRpbWUKc3RyCgpUaGUg dGltZSBhdCB3aGljaCB0aGUgY3VycmVudCBrZXJuZWwgYmVjYW1lIAphY3RpdmUgYWZ0ZXIgdGhl IHN5c3RlbSBib290ZWQuICBUaGlzIGlzIGEKcmVhZC1vbmx5IHZhcmlhYmxlLgouUHAKCi0tLQpr ZXJuLmNocm9vdF9hbGxvd19vcGVuX2RpcmVjdG9yaWVzCmJvb2wKCkRlcGVuZGluZyBvbiB0aGUg c2V0dGluZyBvZiB0aGlzIHZhcmlhYmxlLCBvcGVuCmZpbGUgZGVzY3JpcHRvcnMgd2hpY2ggcmVm ZXJlbmNlIGRpcmVjdG9yaWVzIHdpbGwKZmFpbC4KSWYgc2V0IHRvCi5FbSAwICwKLlhyIGNocm9v dCA4CndpbGwgYWx3YXlzIGZhaWwgd2l0aAouRXIgRVBFUk0KaWYgdGhlcmUgYXJlIGFueSBkaXJl Y3RvcmllcyBvcGVuLgpJZiBzZXQgdG8KLkVtIDEKKHRoZSBkZWZhdWx0KSwKLlhyIGNocm9vdCA4 CndpbGwgZmFpbCB3aXRoCi5FciBFUEVSTQppZiB0aGVyZSBhcmUgYW55IGRpcmVjdG9yaWVzIG9w ZW4gYW5kIHRoZQpwcm9jZXNzIGlzIGFscmVhZHkgc3ViamVjdCB0byB0aGUKLlhyIGNocm9vdCA4 CnN5c3RlbSBjYWxsLgpBbnkgb3RoZXIgdmFsdWUgd2lsbCBieXBhc3MgdGhlIGNoZWNrIGZvciBv cGVuIGRpcmVjdG9yaWVzLgpQbGVhc2Ugc2VlIHRoZQouWHIgY2hyb290IDIKbWFuIHBhZ2UgZm9y IG1vcmUgaW5mb3JtYXRpb24uCi5QcAoKLS0tCmtlcm4uY2xvY2tyYXRlCnN0cnVjdAoKRGlzcGxh eXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5c3RlbSBjbG9jay4gIFRoaXMgaXMgYQpyZWFkLW9u bHkgdmFyaWFibGUuCi5QcAoKLS0tCmtlcm4uY29uc29sZQoKLS0tCmtlcm4uY29yZWR1bXAKYm9v bAoKRGV0ZXJtaW5lcyB3aGVyZSB0aGUga2VybmVsIHNob3VsZCBkdW1wIGEgY29yZSBmaWxlCmlu IHRoZSBldmVudCBvZiBhIGtlcm5lbCBwYW5pYy4KLlBwCgotLS0Ka2Vybi5jb3JlZmlsZQpzdHIK CkRlc2NyaWJlcyB0aGUgZmlsZW5hbWUgdGhhdCBhIGNvcmUgaW1hZ2Ugc2hvdWxkIGJlIHN0b3Jl ZCB0by4KU2VlIHRoZQouWHIgY29yZSA1Cm1hbiBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9u IHRoaXMgdmFyaWFibGUuCi5QcAoKLS0tCmtlcm4uY3BfdGltZQoKLS0tCmtlcm4uZGV2bmFtZQoK LS0tCmtlcm4uZGV2c3RhdC5hbGwKCi0tLQprZXJuLmRldnN0YXQuZ2VuZXJhdGlvbgoKLS0tCmtl cm4uZGV2c3RhdC5udW1kZXZzCgotLS0Ka2Vybi5kZXZzdGF0LnZlcnNpb24KCi0tLQprZXJuLmRp c2tzCnN0cgoKRGlzcGxheSBkaXNrIGRldmljZXMgdGhhdCB0aGUga2VybmVsIGlzIGN1cnJlbnRs eSAKYXdhcmUgb2YuClRoaXMgaXMgYSByZWFkLW9ubHkgdmFyaWFibGUuCi5QcAoKLS0tCmtlcm4u ZG9tYWlubmFtZQpzdHIKClRoaXMgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgWVAvTklT IGRvbWFpbi4KLlBwCgotLS0Ka2Vybi5kcmFpbndhaXQKCi0tLQprZXJuLmVsZjMyLmZhbGxiYWNr X2JyYW5kCgotLS0Ka2Vybi5mYWxsYmFja19lbGZfYnJhbmQKCi0tLQprZXJuLmZpbGUKc3RydWN0 CgpSZXR1cm5zIHRoZSBlbnRpcmUgZmlsZSBzdHJ1Y3R1cmUuCi5QcAoKLS0tCmtlcm4uZnVuY3Rp b25fbGlzdApzdHJ1Y3QKClJldHVybnMgYWxsIGZ1bmN0aW9ucyBuYW1lcyBpbiB0aGUga2VybmVs LgouUHAKCi0tLQprZXJuLmdlb20uY29uZmRvdAoKLS0tCmtlcm4uZ2VvbS5jb25mdHh0CgotLS0K a2Vybi5nZW9tLmNvbmZ4bWwKCi0tLQprZXJuLmhvc3RpZAoKLS0tCmtlcm4uaG9zdG5hbWUKc3Ry CgpEaXNwbGF5IHRoZSBzeXN0ZW0gaG9zdG5hbWUuClRoaXMgY2FuIGJlIG1vZGlmaWVkIHdpdGgg dGhlCi5YciBob3N0bmFtZSAxCnV0aWxpdHkuCi5QcAoKLS0tCmtlcm4uaW5pdF9wYXRoCgotLS0K a2Vybi5pb3ZfbWF4CgotLS0Ka2Vybi5pcGMuY2x1c3RfaGl3bQoKLS0tCmtlcm4uaXBjLmNsdXN0 X2xvd20KCi0tLQprZXJuLmlwYy5tYXhzb2NrYnVmCgotLS0Ka2Vybi5pcGMubWF4c29ja2V0cwoK LS0tCmtlcm4uaXBjLm1iX3N0YXRwY3B1CgotLS0Ka2Vybi5pcGMubWJzdGF0CgotLS0Ka2Vybi5p cGMubWJ1Zl9oaXdtCgotLS0Ka2Vybi5pcGMubWJ1Zl9sb3dtCgotLS0Ka2Vybi5pcGMubWJ1Zl93 YWl0CgotLS0Ka2Vybi5pcGMubXNxaWRzCgotLS0Ka2Vybi5pcGMubm1iY2x1c3RlcnMKYm9vbAoK TWF4aW11bSBudW1iZXIgb2YgbWJ1ZiBjbHVzdGVycyBhdmFpbGFibGUuClRoZSBrZXJuZWwgdXNl cyBhIHByZWFsbG9jYXRlZCBwb29sIG9mCi5EcSBtYnVmIGNsdXN0ZXJzCmZvciB0aGUKLlhyIG1i dWYgOQphbGxvY2F0b3IuClRoZSBwb29sIHNpemUgaXMgdHVuZWQgYnkgdGhlIGtlcm5lbCBkdXJp bmcgYm9vdC4KVGhhdCBzaXplIGlzIHNldCB0byBhIHZhbHVlIHdoaWNoIHNlZW1zIGFwcHJvcHJp YXRlCmZvciB0aGUgY3VycmVudCBzeXN0ZW0uCi5QcAoKLS0tCmtlcm4uaXBjLm5tYmNudAoKLS0t Cmtlcm4uaXBjLm5tYnVmcwoKLS0tCmtlcm4uaXBjLm5zZmJ1ZnMKCi0tLQprZXJuLmlwYy5udW1v cGVuc29ja2V0cwoKLS0tCmtlcm4uaXBjLnNvbWF4Y29ubgppbnQKClRoZSBtYXhpbXVtIHBlbmRp bmcgc29ja2V0IGNvbm5lY3Rpb24gcXVldWUgc2l6ZS4KLlBwCgotLS0Ka2Vybi5pcGMuemVyb19j b3B5LnJlY2VpdmUKYm9vbAoKV2hlbiBzZXQgdG8gYSBub24temVybyB2YWx1ZSwgemVybyBjb3B5 IGlzCmVuYWJsZWQgZm9yIHJlY2VpdmVkIHBhY2tldHMuClRoaXMgcmVkdWNlcyBjb3B5aW5nIG9m IGRhdGEgYXJvdW5kIGZvcgpvdXRnb2luZyBwYWNrZXRzIGFuZCBjYW4gc2lnbmlmaWNhbnRseQpp bXByb3ZlIHRocm91Z2hwdXQgZm9yIG5ldHdvcmsgY29ubmVjdGlvbnMuCi5QcAoKLS0tCmtlcm4u aXBjLnplcm9fY29weS5zZW5kCmJvb2wKCldoZW4gc2V0IHRvIGEgbm9uLXplcm8gdmFsdWUsIHpl cm8gY29weSBpcwplbmFibGVkIGZvciBzZW50IHBhY2tldHMuClRoaXMgcmVkdWNlcyBjb3B5aW5n IG9mIGRhdGEgYXJvdW5kIGZvciBvdXRnb2luZwpwYWNrZXRzIGFuZCBjYW4gc2lnbmlmaWNhbnRs eSBpbXByb3ZlIHRocm91Z2hwdXQKZm9yIG5ldHdvcmsgY29ubmVjdGlvbnMuCi5QcAoKLS0tCmtl cm4uam9iX2NvbnRyb2wKCi0tLQprZXJuLmtxX2NhbGxvdXRtYXgKCi0tLQprZXJuLmxhc3RwaWQK Ym9vbAoKRGlzcGxheXMgdGhlIGxhc3QgUElEIHVzZWQgYnkgYSBwcm9jZXNzLiAgClRoaXMgaXMg YSByZWFkLW9ubHkgdmFyaWFibGUuCi5QcAoKLS0tCmtlcm4ubG9nc2lnZXhpdApib29sCgpUZWxs cyB0aGUga2VybmVsIHdoZXRoZXIgb3Igbm90IHRvIGxvZyBmYXRhbCBzaWduYWwgZXhpdHMuCi5Q cAoKLS0tCmtlcm4ubWFsbG9jCnN0cgoKRGlzcGxheXMgaG93IG1lbW9yeSBpcyBjdXJyZW50bHkg YmVpbmcgYWxsb2NhdGVkLgpUaGlzIGlzIGEgcmVhZC1vbmx5IHZhcmlhYmxlLgouUHAKCi0tLQpr ZXJuLm1heGZpbGVzCmJvb2wKClRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWxlcyBhbGxvd2VkIGZv ciBhbGwgdGhlCnByb2Nlc3NlcyBvZiB0aGUgcnVubmluZyBrZXJuZWwuCllvdSBjYW4gb3ZlcnJp ZGUgdGhlIGRlZmF1bHQgdmFsdWUgd2hpY2ggdGhlIAprZXJuZWwgY2FsY3VsYXRlcyBieSBleHBs aWNpdGx5IHNldHRpbmcgdGhpcyB0bwphIG5vbi16ZXJvIHZhbHVlLgpBbHNvIHNlZSB0aGUKLlhy IHR1bmluZyA3Cm1hbiBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAKCi0tLQprZXJuLm1h eGZpbGVzcGVycHJvYwpib29sCgpUaGUgbWF4aW11bSBudW1iZXIgb2YgZmlsZXMgYW55IG9uZSBw cm9jZXNzIGNhbiBvcGVuLgpTZWUgdGhlCi5YciBwcyAxCnV0aWxpdHkgZm9yIG1vcmUgaW5mb3Jt YXRpb24gb24gbW9uaXRvcmluZyBwcm9jZXNzZXMuCi5QcAoKLS0tCmtlcm4ubWF4cHJvYwppbnQK ClRoZSBtYXhpbXVtIG51bWJlciBvZiBwcm9jZXNzZXMgdGhhdCB0aGUgc3lzdGVtCmNhbiBiZSBy dW5uaW5nIGF0IGFueSB0aW1lLgpTZWUgdGhlCi5YciBwcyAxCnV0aWxpdHkgZm9yIG1vcmUgaW5m b3JtYXRpb24gb24gbW9uaXRvcmluZyBwcm9jZXNzZXMuCi5QcAoKLS0tCmtlcm4ubWF4cHJvY3Bl cnVpZAppbnQKClRoZSBtYXhpbXVtIG51bWJlciBvZiBwcm9jZXNzZXMgb25lIHVzZXIgSUQgY2Fu IHJ1bi4KU2VlIHRoZQouWHIgcHMgMQp1dGlsaXR5IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIG1v bml0b3JpbmcgcHJvY2Vzc2VzLgouUHAKCi0tLQprZXJuLm1heHVzZXJzCmludAoKQ29udHJvbHMg dGhlIHNjYWxpbmcgb2YgYSBudW1iZXIgb2Ygc3RhdGljIHN5c3RlbSB0YWJsZXMsIGluY2x1ZGlu ZwpkZWZhdWx0cyBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZW4gZmlsZXMsIHNpemluZyBv ZiBuZXR3b3JrCm1lbW9yeSByZXNvdXJjZXMsIGV0Yy4KU2VlIHRoZQouWHIgdHVuaW5nIDcKbWFu IHBhZ2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uClRoaXMKLk5tCmNhbm5vdCBiZSBzZXQgdXNpbmcK LlhyIHN5c2N0bCA4IC4KVXNlIAouWHIgbG9hZGVyIDgKaW5zdGVhZCB0byBzZXQgdGhpcyBhdCBi b290IHRpbWUuCi5QcAoKLS0tCmtlcm4ubWF4dm5vZGVzCmJvb2wKClRoZSBtYXhpbXVtIG51bWJl ciBvZgouRW0gdm5vZGVzCih2aXJ0dWFsIGZpbGUgc3lzdGVtIG5vZGVzKQp0aGUgc3lzdGVtIGNh biBoYXZlIG9wZW4gc2ltdWx0YW5lb3VzbHkuCi5QcAoKLS0tCmtlcm4ubWludm5vZGVzCmJvb2wK ClRoZSBtaW5pbXVuIG51bWJlciBvZgouRW0gdm5vZGVzCih2aXJ0dWFsIGZpbGUgc3lzdGVtIG5v ZGVzKQp0aGUgc3lzdGVtIGNhbiBoYXZlIG9wZW4gc2ltdWx0YW5lb3VzbHkuCi5QcAoKLS0tCmtl cm4ubW9kdWxlX3BhdGgKc3RyCgpUaGlzIAouTm0KaG9sZHMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlz dCBvZiBkaXJlY3RvcmllcyBpbiB3aGljaCB0aGUKa2VybmVsIHdpbGwgc2VhcmNoIGZvciBsb2Fk YWJsZSBrZXJuZWwgbW9kdWxlcy4KVGhpcyBwYXRoIGlzIHNlYXJjaCB3aGVuIHVzaW5nIGNvbW1h bmRzIHN1Y2ggYXMKLlhyIGtsZGxvYWQgOCAKYW5kIAouWHIga2xkdW5sb2FkIDggLgouUHAKCi0t LQprZXJuLm1zZ2J1ZgoKLS0tCmtlcm4ubXNnYnVmX2NsZWFyCgotLS0Ka2Vybi5uZ3JvdXBzCmlu dAoKQ29udGFpbnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGdyb3VwcyB0aGF0IGEKdXNlciBtYXkg YmVsb25nIHRvLgpUaGlzIGlzIGEgcmVhZC1vbmx5IHZhcmlhYmxlLgouUHAKCi0tLQprZXJuLm9w ZW5maWxlcwpib29sCgpTaG93cyB0aGUgY3VycmVudCBhbW91bnQgb2Ygc3lzdGVtLXdpZGUKb3Bl biBmaWxlcy4KVGhpcyBpcyB1c2VmdWwgd2hlbiB1c2VkIGluIGNvbmp1bmN0aW9uCndpdGgKLlZh IGtlcm4ubWF4ZmlsZXMKZm9yIHR1bmluZyB5b3VyIHN5c3RlbS4KVGhpcyBpcyBhIHJlYWQtb25s eSB2YXJpYWJsZS4KLlBwCgotLS0Ka2Vybi5vc3JlbGRhdGUKCi0tLQprZXJuLm9zcmVsZWFzZQpz dHIKCkRpc3BsYXlzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YKLkZ4CnJ1bm5pbmcuClRoaXMgaXMg YSByZWFkLW9ubHkgdmFyaWFibGUuCgotLS0Ka2Vybi5vc3JldmlzaW9uCgotLS0Ka2Vybi5vc3R5 cGUKc3RyCgpBbHRlciB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBvcGVyYXRpbmcgc3lzdGVtLgpD aGFuZ2luZyB0aGlzIHdpbGwgY2hhbmdlIHRoZSBvdXRwdXQgZnJvbQp0aGUKLlhyIHVuYW1lIDEK dXRpbGl0eS4KQ2hhbmdpbmcgdGhlIGRlZmF1bHQgaXMgbm90IHJlY29tbWVuZGVkLgouUHAKCi0t LQprZXJuLnBvc2l4MXZlcnNpb24KCi0tLQprZXJuLnByb2MuYWxsCgotLS0Ka2Vybi5wcm9jLmFy Z3MKaW50CgpBbGxvd3MgYSBwcm9jZXNzIHRvIHJldHJpZXZlIHRoZSBhcmd1bWVudCBsaXN0Cm9y IHByb2Nlc3MgdGl0bGUgZm9yIGFub3RoZXIgcHJvY2VzcyB3aXRob3V0IApsb29raW5nIGluIHRo ZSBhZGRyZXNzIHNwYWNlIG9mIGFub3RoZXIgcHJvZ3JhbS4KVGhpcyBpcyBhIHJlYWQtb25seSB2 YXJpYWJsZS4KLlBwCgotLS0Ka2Vybi5wcm9jLnBncnAKCi0tLQprZXJuLnByb2MucGlkCgotLS0K a2Vybi5wcm9jLnJ1aWQKCi0tLQprZXJuLnByb2MudHR5CgotLS0Ka2Vybi5wcm9jLnVpZAoKLS0t Cmtlcm4ucHNfYXJnc29wZW4KYm9vbAoKQnkgc2V0dGluZyB0aGlzIHRvIDAsIGNvbW1hbmQgbGlu ZSBhcmd1bWVudHMgYXJlIGhpZGRlbiAKZm9yIHByb2Nlc3NlcyB3aGljaCB5b3UgYXJlIG5vdCBy dW5uaW5nLgpUaGlzIGlzIHVzZWZ1bCBvbiBtdWx0aS11c2VyIG1hY2hpbmVzIHdoZXJlIHRoaW5n cwpsaWtlIHBhc3N3b3JkcyBtaWdodCBhY2NpZGVudGFsbHkgYmUgYWRkZWQgdG8gY29tbWFuZAps aW5lIHByb2dyYW1zLgouUHAKCi0tLQoKa2Vybi5xdWFudHVtCgotLS0Ka2Vybi5yYW5kb20uc3lz LmJ1cnN0CgotLS0Ka2Vybi5yYW5kb20uc3lzLmhhcnZlc3QuZXRoZXJuZXQKCi0tLQprZXJuLnJh bmRvbS5zeXMuaGFydmVzdC5pbnRlcnJ1cHQKCi0tLQprZXJuLnJhbmRvbS5zeXMuaGFydmVzdC5w b2ludF90b19wb2ludAoKLS0tCmtlcm4ucmFuZG9tLnN5cy5oYXJ2ZXN0LnN3aQoKLS0tCmtlcm4u cmFuZG9tLnN5cy5zZWVkZWQKCi0tLQprZXJuLnJhbmRvbS55YXJyb3cuYmlucwoKLS0tCmtlcm4u cmFuZG9tLnlhcnJvdy5mYXN0dGhyZXNoCgotLS0Ka2Vybi5yYW5kb20ueWFycm93LmdlbmdhdGVp bnRlcnZhbAoKLS0tCmtlcm4ucmFuZG9tLnlhcnJvdy5zbG93b3ZlcnRocmVzaAoKLS0tCmtlcm4u cmFuZG9tLnlhcnJvdy5zbG93dGhyZXNoCgotLS0Ka2Vybi5yYW5kb21waWQKCi0tLQprZXJuLnJv b3RkZXYKCi0tLQprZXJuLnNhdmVkX2lkcwoKLS0tCmtlcm4uc2VjdXJlbGV2ZWwKYm9vbAoKVGhl IGN1cnJlbnQga2VybmVsIHNlY3VyaXR5IGxldmVsLgpTZWUgdGhlCi5YciBpbml0IDgKbWFudWFs IHBhZ2UgZm9yIGEgZ29vZCBkZXNjcmlwdGlvbgphYm91dCB3aGF0IGEgc2VjdXJpdHkgbGV2ZWwg aXMuCi5QcAoKLS0tCmtlcm4uc3VnaWRfY29yZWR1bXAKYm9vbAoKQnkgZGVmYXVsdCwgYSBwcm9j ZXNzIHRoYXQgY2hhbmdlcyB1c2VyIG9yIGdyb3VwIGNyZWRlbnRpYWxzIHdoZXRoZXIKcmVhbCBv ciBlZmZlY3RpdmUgd2lsbCBub3QgY3JlYXRlIGEgY29yZWZpbGUuClRoaXMgYmVoYXZpb3IgY2Fu IGJlIGNoYW5nZWQgdG8gZ2VuZXJhdGUgYSBjb3JlIGR1bXAgYnkKc2V0dGluZyB0aGlzIHZhcmlh YmxlIHRvIDEuCi5QcAoKLS0tCmtlcm4uc3luY19vbl9wYW5pYwpib29sCgpJbiB0aGUgZXZlbnQg b2YgYSBwYW5pYywgdGhpcyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCB0aGUKc3lz dGVtIHNob3VsZCB0cnkgYW5kIAouWHIgc3luYyA4IC4KSW4gc29tZSBjaXJjdW1zdGFuY2VzLCB0 aGlzIGNvdWxkIGNhdXNlIGEgZG91YmxlIHBhbmljLCBhbmQgYXMgYSByZXN1bHQsCnRoaXMgbWF5 IGJlIHR1cm5lZCBvZmYgaWYgbmVlZGVkLgouUHAKCi0tLQprZXJuLnRocmVhZHMuZGVidWcKYm9v bAoKRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHVzZSBkZWJ1Z2dpbmcgZm9yIGtlcm5lbCB0aHJlYWRz LgpUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdGluZy4KLlBwCgotLS0Ka2Vybi50aHJlYWRzLm1heF9n cm91cHNfcGVyX3Byb2MKCi0tLQprZXJuLnRocmVhZHMubWF4X3RocmVhZHNfaGl0cwoKLS0tCmtl cm4udGhyZWFkcy5tYXhfdGhyZWFkc19wZXJfcHJvYwoKLS0tCmtlcm4udGhyZWFkcy52aXJ0dWFs X2NwdQoKLS0tCmtlcm4udHR5X25pbgoKLS0tCmtlcm4udHR5X25vdXQKCi0tLQprZXJuLnR0eXMK Ym9vbAoKVXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSAKLlhyIHBzdGF0IDgKY29tbWFuZC4KVGhpcyBp cyBhIHJlYWQtb25seSB2YXJpYWJsZS4KLlBwCgotLS0Ka2Vybi52ZXJzaW9uCnN0cgoKRGlzcGxh eXMgdGhlIGN1cnJlbnQga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24uClRoaXMgaXMgYSByZWFk LW9ubHkgdmFyaWFibGUuCi5QcAoKLS0tCm1hY2hkZXAuYWNwaV9yb290CgotLS0KbWFjaGRlcC5j cHVfaWRsZV9obHQKYm9vbAoKSGFsdCBpZGxlIENQVXMuClRoaXMgaXMgZ29vZCBmb3IgYW4gU01Q IHN5c3RlbS4KLlBwCgotLS0KbWFjaGRlcC5kaXNhYmxlX210cnJzCgotLS0KbWFjaGRlcC5ndWVz c2VkX2Jvb3RkZXYKCi0tLQptYWNoZGVwLmhsdF9jcHVzCmJvb2wKClRoaXMgb3B0aW9uIHdpbGwg cGVybWl0IHRoZSBoYWx0aW5nCm9mIENQVXMuCkZvciBpbnN0YW5jZSwgdG8gaGFsdCBDUFUgMCwK bWFjaGRlcC5odGxfY3B1cz0xIGNhbiBiZSB1c2VkLgpJdCBpcyBwb3NzaWJsZSB0byBoYWx0IHR3 byBDUFVzIGJ5IHByb3ZpZGluZwphIGNvbW1hIHNlcGFyYXRlZCBsaXN0IChpLmU6IGNwdTEsY3B1 MikuCi5QcAoKLS0tCm1hY2hkZXAuaGx0X2xvZ2ljYWxfY3B1cwpib29sCgpUaGlzIGtlZXBzIHRo ZSBsb2dpY2FsIENQVXMgaGFsdGVkIGluIHRoZSBpZGxlIGxvb3AuCkJ5IGRlZmF1bHQgdGhlIGxv Z2ljYWwgQ1BVcyBhcmUgaGFsdGVkIGF0IHN0YXJ0dXAuCkl0IGlzIGFsc28gcG9zc2libGUgdG8g aGFsdCBhbnkgY3B1IGluIHRoZSBpZGxlIGxvb3Agbm93CnVzaW5nIG1hY2hkZXAuaGx0X2NwdXMu Ci5QcAoKLS0tCm1hY2hkZXAucGFuaWNfb25fbm1pCgotLS0KbWFjaGRlcC5zaW90cwoKLS0tCm5l dC5pbmV0LmFjY2YudW5sb2FkYWJsZQoKLS0tCm5ldC5pbmV0LmljbXAuYm1jYXN0ZWNobwoKLS0t Cm5ldC5pbmV0LmljbXAuZHJvcF9yZWRpcmVjdAoKLS0tCm5ldC5pbmV0LmljbXAuaWNtcGxpbQoK LS0tCm5ldC5pbmV0LmljbXAuaWNtcGxpbV9vdXRwdXQKCi0tLQpuZXQuaW5ldC5pY21wLmxvZ19y ZWRpcmVjdAoKLS0tCm5ldC5pbmV0LmljbXAubWFza2Zha2UKCi0tLQpuZXQuaW5ldC5pY21wLm1h c2tyZXBsCgotLS0KbmV0LmluZXQuaXAuYWNjZXB0X3NvdXJjZXJvdXRlCmJvb2wKCkNvbnRyb2xz IGZvcndhcmRpbmcgb2Ygc291cmNlLXJvdXRlZCBJUCBwYWNrZXRzLgouUHAKCi0tLQpuZXQuaW5l dC5pcC5jaGVja19pbnRlcmZhY2UKYm9vbAoKVGhpcwouTm0gCnZlcmlmaWVzIHRoYXQgcGFja2V0 cyBhcnJpdmUgb24gdGhlIGNvcnJlY3QgaW50ZXJmYWNlcy4gIAouUHAKCi0tLQpuZXQuaW5ldC5p cC5mYXN0Zm9yd2FyZGluZwpib29sCgpXaGVuIGZhc3QgZm9yd2FyZGluZyBpcyBlbmFibGVkLCBJ UCBwYWNrZXRzIGFyZSBmb3J3YXJkZWQgZGlyZWN0bHkgdG8KdGhlIGFwcHJvcHJpYXRlIG5ldHdv cmsgaW50ZXJmYWNlIHdpdGggYSBtaW5pbWFsIHZhbGlkaXR5IGNoZWNraW5nLAp3aGljaCBncmVh dGx5IGltcHJvdmVzIHRocm91Z2hwdXQuClBsZWFzZSBzZWUgdGhlCi5YciBpbmV0IDQKbWFuIHBh Z2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi5QcAoKLS0tCm5ldC5pbmV0LmlwLmZvcndhcmRpbmcK Ym9vbAoKQWN0IGFzIGEgZ2F0ZXdheSBtYWNoaW5lIGFuZCBmb3J3YXJkIHBhY2tldHMuClRoaXMg Y2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUKZ2F0ZXdheV9lbmFibGUgdmFsdWUgaW4g Ci5QYSAvZXRjL3JjLmNvbmYKLlBwCgotLS0KbmV0LmluZXQuaXAuaW50cl9xdWV1ZV9kcm9wcwoK LS0tCm5ldC5pbmV0LmlwLmludHJfcXVldWVfbWF4bGVuCgotLS0KbmV0LmluZXQuaXAua2VlcGZh aXRoCmJvb2wKClRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIAouWHIgZmFpdGhkIDgK dG8gY29udHJvbCB0aGUgRkFJVEggSVB2Ni92NCB0cmFuc2xhdG9yIGRhZW1vbi4KLlBwCgotLS0K bmV0LmluZXQuaXAubWF4ZnJhZ3BhY2tldHMKCi0tLQpuZXQuaW5ldC5pcC5tYXhmcmFnc3BlcnBh Y2tldAoKLS0tCm5ldC5pbmV0LmlwLnJlZGlyZWN0CmJvb2wKCkNvbnRyb2xzIHRoZSBzZW5kaW5n IG9mIElDTVAgcmVkaXJlY3RzIGluIHJlc3BvbnNlIHRvIHVuZm9yd2FyZGFibGUgSVAKcGFja2V0 cy4KLlBwCgotLS0KbmV0LmluZXQuaXAucnRleHBpcmUKaW50CgpMaWZldGltZSBpbiBzZWNvbmRz IG9mIHByb3RvY29sLWNsb25lZCBJUCByb3V0ZXMgYWZ0ZXIgdGhlIGxhc3QKcmVmZXJlbmNlIGRy b3BzIChkZWZhdWx0IG9uZSBob3VyKS4gIAouUHAKCi0tLQpuZXQuaW5ldC5pcC5ydG1heGNhY2hl CmludAoKVHJpZ2dlciBsZXZlbCBvZiBjYWNoZWQsIHVucmVmZXJlbmNlZCwgcHJvdG9jb2wtY2xv bmVkIApyb3V0ZXMgd2hpY2ggaW5pdGlhdGVzIGR5bmFtaWMgYWRhcHRhdGlvbi4KLlBwCgotLS0K bmV0LmluZXQuaXAucnRtaW5leHBpcmUKaW50CgpTZWUgCi5YciBpbmV0IDQKZm9yIG1vcmUgaW5m b3JtYXRpb24uCi5QcAoKLS0tCm5ldC5pbmV0LmlwLnNlbmRzb3VyY2VxdWVuY2gKYm9vbAoKVGhp cyAKLk5tCmVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHRyYW5zbWlzc2lvbiBvZgpzb3VyY2UgcXVl bmNoIHBhY2tldHMuCi5QcAoKLS0tCm5ldC5pbmV0LmlwLnNvdXJjZXJvdXRlCmJvb2wKCkRldGVy bWluZXMgd2hldGhlciBvciBub3Qgc291cmNlIHJvdXRlZCBJUCBwYWNrZXRzCnNob3VsZCBiZSBm b3J3YXJkZWQuCi5QcAoKLS0tCm5ldC5pbmV0LmlwLnN0YXRzCgotLS0KbmV0LmluZXQuaXAudHRs CmludAoKVGhlIFRUTCAodGltZS10by1saXZlKSB0byB1c2UgZm9yIG91dGdvaW5nIHBhY2tldHMu Ci5QcAoKLS0tCm5ldC5pbmV0LnJhdy5tYXhkZ3JhbQoKLS0tCm5ldC5pbmV0LnJhdy5vbGRkaXZl cnRlcnJvcgoKLS0tCm5ldC5pbmV0LnJhdy5wY2JsaXN0CgotLS0KbmV0LmluZXQucmF3LnJlY3Zz cGFjZQoKLS0tCm5ldC5pbmV0LnRjcC5hbHdheXNfa2VlcGFsaXZlCmJvb2wKCkRldGVybWluZXMg d2hldGhlciBvciBub3QgdG8gYXR0ZW1wdCB0byBkZXRlY3QgZGVhZCBUQ1AKY29ubmVjdGlvbnMg Ynkgc2VuZGluZyAna2VlcGFsaXZlcycgaW50ZXJtaXR0ZW50bHkuICBUaGlzIAppcyBlbmFibGVk IGJ5IGRlZmF1bHQgYW5kIGNhbiBhbHNvIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlCnRjcF9rZWVw YWxpdmUgdmFsdWUgaW4gCi5QYSAvZXRjL3JjLmNvbmYKLlBwCgotLS0KbmV0LmluZXQudGNwLmJs YWNraG9sZQpib29sCgpNYW5pcHVsYXRlcyBzeXN0ZW0gYmVoYXZpb3Igd2hlbgpjb25uZWN0aW9u IHJlcXVlc3RzIGFyZSByZWNlaXZlZCBvbiBhIApUQ1AgcG9ydCB3aXRob3V0IGEgc29ja2V0IGxp c3RlbmluZy4KU2VlIHRoZSAKLlhyIGJsYWNraG9sZSA0Cm1hbiBwYWdlIGZvciBtb3JlIGluZm9y bWF0aW9uLgouUHAKCi0tLQpuZXQuaW5ldC50Y3AuZGVsYWNrdGltZQoKLS0tCm5ldC5pbmV0LnRj cC5kZWxheWVkX2Fjawpib29sCgpIaXN0b3JpY2FsbHkgc3BlYWtpbmcsIHRoaXMgZmVhdHVyZSB3 YXMgZGVzaWduZWQgdG8gYWxsb3cgdGhlCmFja25vd2xlZGdtZW50IHRvIHRyYW5zbWl0dGVkIGRh dGEgdG8gYmUgcmV0dXJuZWQgYWxvbmcgd2l0aCB0aGUKcmVzcG9uc2UuICBTZWUgdGhlCi5YciB0 dW5pbmcgNwptYW4gcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLlBwCgotLS0KbmV0LmluZXQu dGNwLmRvX3RjcGRyYWluCgotLS0KbmV0LmluZXQudGNwLmdldGNyZWQKCi0tLQpuZXQuaW5ldC50 Y3AuaWNtcF9tYXlfcnN0CgotLS0KbmV0LmluZXQudGNwLmluZmxpZ2h0X2RlYnVnCmJvb2wKCkNv bnRyb2wgZGVidWdnaW5nIGZvciB0aGUKLlZhIG5ldC5pbmV0LnRjcC5pbmZsaWdodF9lbmFibGUK Lk5tIC4KUGxlYXNlIHNlZSB0aGUKLlhyIHR1bmluZyA3Cm1hbiBwYWdlIGZvciBtb3JlIGluZm9y bWF0aW9uLgouUHAKCi0tLQpuZXQuaW5ldC50Y3AuaW5mbGlnaHRfZW5hYmxlCmJvb2wKClR1cm5z IG9uIGJhbmR3aWR0aCBkZWxheSBwcm9kdWN0IGxpbWl0aW5nIGZvciBhbGwKVENQIGNvbm5lY3Rp b25zLiAgUGxlYXNlIHNlZSB0aGUKLlhyIHR1bmluZyA3Cm1hbiBwYWdlIGZvciBtb3JlIGluZm9y bWF0aW9uLgouUHAKCi0tLQpuZXQuaW5ldC50Y3AuaW5mbGlnaHRfbWF4CmJvb2wKCi5FbSBkb3Vi bGUgY2hlY2sKVGhlIG1heGltdW0gYW1vdW50IG9mIGRhdGEgdGhhdCBtYXkgYmUgcXVldWVkIGZv ciAKYmFuZHdpZHRoIGRlbGF5IHByb2R1Y3QgbGltaXRpbmcuCi5QcAoKLS0tCm5ldC5pbmV0LnRj cC5pbmZsaWdodF9taW4KYm9vbAoKLkVtIGRvdWJsZSBjaGVjawpUaGUgbWluaW11bSBhbW91bnQg b2YgZGF0YSB0aGF0IG1heSBiZSBxdWV1ZWQgZm9yIApiYW5kd2lkdGggZGVsYXkgcHJvZHVjdCBs aW1pdGluZy4KLlBwCgotLS0KbmV0LmluZXQudGNwLmluZmxpZ2h0X3N0YWIKYm9vbAoKVGhpcyBw YXJhbWV0ZXIgcmVwcmVzZW50cyB0aGUgbWF4aW1hbCBwYWNrZXRzIAphZGRlZCB0byB0aGUgYmFu ZHdpZHRoIGRlbGF5IHByb2R1Y3Qgd2luZG93CmNhbGN1bGF0aW9uLiAgQ2hhbmdpbmcgdGhpcyBp cyBub3QgcmVjb21tZW5kZWQuCi5QcAoKLS0tCm5ldC5pbmV0LnRjcC5pc25fcmVzZWVkX2ludGVy dmFsCgotLS0KbmV0LmluZXQudGNwLmxvY2FsX3Nsb3dzdGFydF9mbGlnaHRzaXplCgotLS0KbmV0 LmluZXQudGNwLmxvZ19pbl92YWluCmJvb2wKCkFsbG93cyB0aGUgc3lzdGVtIHRvIGxvZyBjb25u ZWN0aW9ucyB0byBUQ1AKcG9ydHMgdGhhdCBkbyBub3QgaGF2ZSBzb2NrZXRzIGxpc3RlbmluZy4K VGhpcyB2YXJpYWJsZSBjYW4gYWxzbyBiZSB0dW5lZCBieSBjaGFuZ2luZyAKdGhlIHZhbHVlIGZv ciBsb2dfaW5fdmFpbgppbiAKLlBhIC9ldGMvcmMuY29uZgouUHAKCi0tLQpuZXQuaW5ldC50Y3Au bWlubXNzCmJvb2wKCkVuYWJsZSBmb3IgbmV0d29yayBsaW5rIG9wdGltaXphdGlvbiBUQ1AgY2Fu IGFkanVzdCBpdHMgTVNTIGFuZCB0aHVzCnBhY2tldCBzaXplIGFjY29yZGluZyB0byB0aGUgb2Jz ZXJ2ZWQgcGF0aCBNVFUuICBUaGlzIGlzIGRvbmUKZHluYW1pY2FsbHkgYmFzZWQgb24gZmVlZGJh Y2sgZnJvbSB0aGUgcmVtb3RlIGhvc3QgYW5kIG5ldHdvcmsKY29tcG9uZW50cyBhbG9uZyB0aGUg cGFja2V0IHBhdGguICBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZQphYnVzZWQgdG8gcHJldGVuZCBh biBleHRyZW1lbHkgbG93IHBhdGggTVRVLgouUHAKCi0tLQpuZXQuaW5ldC50Y3AubWlubXNzb3Zl cmxvYWQKYm9vbAoKVGhlIFBTUyByYXRlIGZvciB0aGUKLlZhIG5ldC5pbmV0LnRjcC5taW5tc3MK c3lzY3RsLgpTZXR0aW5nIHRoaXMgd2lsbCBmb3JjZSBwYWNrZXRzIHRvIGJlIHJlc2V0CmFuZCBk cm9wcGVkLCB0aGlzIHNob3VsZCBoaW5kZXIgdGhlIGF2YWlsYWJpbGl0eQpvZiBEb1MgYXR0YWNr cyBvbiBXV1cgc2VydmVycyB1c2luZyBQT1NUIGF0dGFja3MuCi5QcAoKLS0tCm5ldC5pbmV0LnRj cC5tc2wKCi0tLQpuZXQuaW5ldC50Y3AubXNzZGZsdApib29sCgpUaGlzIGlzIHRoZSBkZWZhdWx0 IFRDUCBNYXhpbXVtIFNlZ21lbnQgU2l6ZQpmb3IgVENQIHBhY2tldHMuICBUaGUgZGVmYXVsdCBz ZXR0aW5nIGlzIHJlY29tbWVuZGVkCmluIG1vc3QgY2FzZXMuCi5QcAoKLS0tCm5ldC5pbmV0LnRj cC52Nm1zc2RmbHQKYm9vbAoKVGhpcyBpcyB0aGUgZGVmYXVsdCBUQ1AgTWF4aW11bSBTZWdtZW50 IFNpemUKZm9yIFRDUCBJUHY2IHBhY2tldHMuICBUaGUgZGVmYXVsdCBzZXR0aW5nIGlzIHJlY29t bWVuZAppbiBtb3N0IGNhc2VzLgouUHAKCi0tLQpuZXQuaW5ldC50Y3AubmV3cmVubwoKLS0tCm5l dC5pbmV0LnRjcC5wYXRoX210dV9kaXNjb3ZlcnkKCi0tLQpuZXQuaW5ldC50Y3AucGNiY291bnQK Ci0tLQpuZXQuaW5ldC50Y3AucGNibGlzdAoKLS0tCm5ldC5pbmV0LnRjcC5yZWN2c3BhY2UKYm9v bAoKVGhpcyB2YXJpYWJsZXMgY29udHJvbHMgdGhlIGFtb3VudCBvZiByZWNlaXZlIApidWZmZXIg c3BhY2UgZm9yIGFueSBnaXZlbiBUQ1AgY29ubmVjdGlvbi4gIFRoaXMKY2FuIGJlIHBhcnRpY3Vs YXJseSB1c2VmdWwgd2hlbiB0dW5pbmcgbmV0d29yayAKYXBwbGljYXRpb25zLiAgU2VlIHRoZSAK LlhyIHR1bmluZyA3Cm1hbiBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAKCi0tLQpuZXQu aW5ldC50Y3AucmV4bWl0X21pbgoKLS0tCm5ldC5pbmV0LnRjcC5yZXhtaXRfc2xvcAoKLS0tCm5l dC5pbmV0LnRjcC5yZmMxMzIzCmJvb2wKCkRldGVybWluZXMgd2hldGhlciBzdXBwb3J0IGZvciBS RkMxMzIzIChUQ1AgRXh0ZW5zaW9ucyAKZm9yIEhpZ2ggUGVyZm9ybWFuY2UpIHNob3VsZCBiZSBl bmFibGVkLgpUaGlzIHZhcmlhYmxlIGNhbiBhbHNvIGJlIHR1bmVkIGJ5IGNoYW5naW5nIHRoZSB2 YWx1ZQpmb3IgdGNwX2V4dGVuc2lvbnMgaW4KLlBhIC9ldGMvcmMuY29uZgouUHAKCi0tLQpuZXQu aW5ldC50Y3AucmZjMTY0NAoKLS0tCm5ldC5pbmV0LnRjcC5yZmMzMDQyCgotLS0KbmV0LmluZXQu dGNwLnJmYzMzOTAKCi0tLQpuZXQuaW5ldC50Y3Auc2VuZHNwYWNlCmJvb2wKClRoaXMgdmFyaWFi bGVzIGNvbnRyb2xzIHRoZSBhbW91bnQgb2Ygc2VuZCAKYnVmZmVyIHNwYWNlIGZvciBhbnkgZ2l2 ZW4gVENQIGNvbm5lY3Rpb24uICBUaGlzCmNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4g dHVuaW5nIG5ldHdvcmsgCmFwcGxpY2F0aW9ucy4gIFNlZSB0aGUgCi5YciB0dW5pbmcgNwptYW51 YWwgcGFnZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLlBwCgoKLS0tCm5ldC5pbmV0LnRjcC5zbG93 c3RhcnRfZmxpZ2h0c2l6ZQoKLS0tCm5ldC5pbmV0LnRjcC5zdGF0cwoKLS0tCm5ldC5pbmV0LnRj cC5zeW5jYWNoZS5idWNrZXRsaW1pdAoKLS0tCm5ldC5pbmV0LnRjcC5zeW5jYWNoZS5jYWNoZWxp bWl0CgotLS0KbmV0LmluZXQudGNwLnN5bmNhY2hlLmNvdW50CgotLS0KbmV0LmluZXQudGNwLnN5 bmNhY2hlLmhhc2hzaXplCgotLS0KbmV0LmluZXQudGNwLnN5bmNhY2hlLnJleG10bGltaXQKCi0t LQpuZXQuaW5ldC50Y3Auc3luY29va2llcwoKLS0tCm5ldC5pbmV0LnRjcC50Y2JoYXNoc2l6ZQoK LS0tCm5ldC5pbmV0LnRjcC52Nm1zc2RmbHQKCi0tLQpuZXQuaW5ldC51ZHAuYmxhY2tob2xlCmJv b2wKCk1hbmlwdWxhdGVzIHN5c3RlbSBiZWhhdmlvciB3aGVuIApjb25uZWN0aW9uIHJlcXVlc3Rz IGFyZSByZWNlaXZlZCBvbiBhIApVRFAgcG9ydC4KU2VlIHRoZSAKLlhyIGJsYWNraG9sZSA0Cm1h biBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAKCi0tLQpuZXQuaW5ldC51ZHAuZ2V0Y3Jl ZAoKLS0tCm5ldC5pbmV0LnVkcC5sb2dfaW5fdmFpbgpib29sCgpBbGxvd3MgdGhlIHN5c3RlbSB0 byBsb2cgY29ubmVjdGlvbnMgdG8gVURQCnBvcnRzIHRoYXQgZG8gbm90IGhhdmUgc29ja2V0cyBs aXN0ZW5pbmcuClRoaXMgdmFyaWFibGUgY2FuIGFsc28gYmUgdHVuZWQgYnkgY2hhbmdpbmcgCnRo ZSB2YWx1ZSBmb3IgbG9nX2luX3ZhaW4KaW4gCi5QYSAvZXRjL3JjLmNvbmYKLlBwCgotLS0KbmV0 LmluZXQudWRwLm1heGRncmFtCgotLS0KbmV0LmluZXQudWRwLnBjYmxpc3QKCi0tLQpuZXQuaW5l dC51ZHAucmVjdnNwYWNlCgotLS0KbmV0LmluZXQudWRwLnN0YXRzCgotLS0KbmV0LmluZXQ2Lmlj bXA2LmVycnBwc2xpbWl0CgotLS0KbmV0LmluZXQ2LmljbXA2Lm5kNl9kZWJ1ZwoKLS0tCm5ldC5p bmV0Ni5pY21wNi5uZDZfZGVsYXkKCi0tLQpuZXQuaW5ldDYuaWNtcDYubmQ2X21heG51ZGhpbnQK Ci0tLQpuZXQuaW5ldDYuaWNtcDYubmQ2X21tYXh0cmllcwoKLS0tCm5ldC5pbmV0Ni5pY21wNi5u ZDZfcHJ1bmUKCi0tLQpuZXQuaW5ldDYuaWNtcDYubmQ2X3VtYXh0cmllcwoKLS0tCm5ldC5pbmV0 Ni5pY21wNi5uZDZfdXNlbG9vcGJhY2sKCi0tLQpuZXQuaW5ldDYuaWNtcDYubm9kZWluZm8KCi0t LQpuZXQuaW5ldDYuaWNtcDYucmVkaXJhY2NlcHQKCi0tLQpuZXQuaW5ldDYuaWNtcDYucmVkaXJ0 aW1lb3V0CgotLS0KbmV0LmluZXQ2LnRjcDYuZ2V0Y3JlZAoKLS0tCm5ldC5pbmV0Ni51ZHA2Lmdl dGNyZWQKCi0tLQpuZXQuaXNyLmVuYWJsZQoKLS0tCm5ldC5saW5rLmV0aGVyLmluZXQubG9nX2Fy cF9tb3ZlbWVudHMKCi0tLQpuZXQubGluay5ldGhlci5pbmV0LmxvZ19hcnBfd3JvbmdfaWZhY2UK Ci0tLQpuZXQubGluay5ldGhlci5pcGZ3CgotLS0KbmV0LmxpbmsuZ2VuZXJpYy5pZmRhdGEKCi0t LQpuZXQubGluay5nZW5lcmljLnN5c3RlbS5pZmNvdW50CgotLS0KbmV0LmxpbmsuZ2lmLm1heF9u ZXN0aW5nCmJvb2wKCkRldGVybWluZXMgd2hldGhlciB0byBhbGxvdyByZWN1cnNpdmUgdHVubmVs cyBvciBub3QuCi5QcAoKLS0tCm5ldC5saW5rLmdpZi5wYXJhbGxlbF90dW5uZWxzCmJvb2wKCkRl dGVybWluZXMgd2hldGhlciB0byBhbGxvdyBwYXJhbGxlbCB0dW5uZWxzIG9yIG5vdC4KLlBwCgot LS0KbmV0LmxvY2FsLmRncmFtLnBjYmxpc3QKCi0tLQpuZXQubG9jYWwuc3RyZWFtLnBjYmxpc3QK Ci0tLQpzZWN1cml0eS5ic2Quc2VlX290aGVyX3VpZHMKYm9vbAoKVHVybmluZyB0aGlzIG9wdGlv biBvbiB3aWxsIHByZXZlbnQgdXNlcnMgZnJvbSB2aWV3aW5nIGluZm9ybWF0aW9uCmFib3V0IHBy b2Nlc3NlcyBydW5uaW5nIHVuZGVyIG90aGVyIHVzZXIgaWQgbnVtYmVycyAoVUlEcykuCi5QcAoK LS0tCnNlY3VyaXR5LmJzZC5zdXNlcl9lbmFibGVkCgotLS0Kc2VjdXJpdHkuYnNkLnVucHJpdmls ZWdlZF9wcm9jX2RlYnVnCgotLS0Kc2VjdXJpdHkuYnNkLnVucHJpdmlsZWdlZF9yZWFkX21zZ2J1 ZgoKLS0tCnNlY3VyaXR5LmphaWwuc2V0X2hvc3RuYW1lX2FsbG93ZWQKYm9vbAoKRGV0ZXJtaW5l cyB3aGV0aGVyIG9yIG5vdCB0aGUgcm9vdCB1c2VyCndpdGhpbiB0aGUgamFpbCBjYW4gc2V0IHRo ZSBob3N0bmFtZS4KLlBwCgotLS0Kc2VjdXJpdHkuamFpbC5zb2NrZXRfdW5peGlwcm91dGVfb25s eQoKLS0tCnNlY3VyaXR5LmphaWwuc3lzdmlwY19hbGxvd2VkCgotLS0Kc2VjdXJpdHkubWFjLmJp YmEuZW5hYmxlZApib29sCgpFbmFibGVzIGVuZm9yY2VtZW50IG9mIHRoZSBCaWJhIGludGVncml0 eSBwb2xpY3kuCi5QcAoKLS0tCnNlY3VyaXR5Lm1hYy5iaWJhLnB0eXNfZXF1YWwKYm9vbAoKTGFi ZWwKLlNtIG9mZgouWHIgcHR5IDQKcwouU20gb24KYXMKLkRxIGJpYmEvZXF1YWwKdXBvbiBjcmVh dGlvbi4KLlBwCgotLS0Kc2VjdXJpdHkubWFjLmJpYmEucmV2b2NhdGlvbl9lbmFibGVkCmJvb2wK ClJldm9rZSBhY2Nlc3MgdG8gb2JqZWN0cyBpZiB0aGUgbGFiZWwgaXMgY2hhbmdlZCB0byBkb21p bmF0ZSB0aGUgc3ViamVjdC4KLlBwCgotLS0Kc2VjdXJpdHkubWFjLmVuZm9yY2VfZnMKYm9vbAoK RW5mb3JjZSBNQUMgcG9saWNpZXMgZm9yIGZpbGUgc3lzdGVtIGFjY2Vzc2VzLgouUHAKCi0tLQpz ZWN1cml0eS5tYWMuZW5mb3JjZV9rbGQKYm9vbAoKRW5mb3JjZSBNQUMgcG9saWNpZXMgb24KLlhy IGtsZCA0IC4KLlBwCgotLS0Kc2VjdXJpdHkubWFjLmVuZm9yY2VfbmV0d29yawpib29sCgpFbmZv cmNlIE1BQyBwb2xpY2llcyBvbiBuZXR3b3JrIGludGVyZmFjZXMuCi5QcAoKLS0tCnNlY3VyaXR5 Lm1hYy5lbmZvcmNlX3BpcGUKYm9vbAoKRW5mb3JjZSBNQUMgcG9saWNpZXMgb24gcGlwZXMuCi5Q cAoKLS0tCnNlY3VyaXR5Lm1hYy5lbmZvcmNlX3Byb2Nlc3MKYm9vbAoKRW5mb3JjZSBNQUMgcG9s aWNpZXMgYmV0d2VlbiBzeXN0ZW0gcHJvY2Vzc2VzCihlLmcuCi5YciBwcyAxICwKLlhyIGt0cmFj ZSAyICkuCi5QcAoKLS0tCnNlY3VyaXR5Lm1hYy5lbmZvcmNlX3NvY2tldApib29sCgpFbmZvcmNl IE1BQyBwb2xpY2llcyBvbiBzb2NrZXRzLgouUHAKCi0tLQpzZWN1cml0eS5tYWMuZW5mb3JjZV9z eXN0ZW0KYm9vbAoKRW5mb3JjZSBNQUMgcG9saWNpZXMgb24gc3lzdGVtLXJlbGF0ZWQgaXRlbXMK KGUuZy4KLlhyIGtlbnYgMSAsCi5YciBhY2N0IDIgLAouWHIgcmVib290IDIgKS4KLlBwCgotLS0K c2VjdXJpdHkubWFjLmVuZm9yY2Vfdm0KYm9vbAoKRW5mb3JjZSBNQUMgcG9saWNpZXMgb24KLlhy IG1tYXAgMgphbmQKLlhyIG1wcm90ZWN0IDIgLgouUHAKCi0tLQpzZWN1cml0eS5tYWMuaWZvZmYu bG9fZW5hYmxlZApib29sCgpVc2UgdGhpcyB0b28gZGlzYWJsZSBuZXR3b3JrIHRyYWZmaWMgb3Zl ciB0aGUgbG9vcGJhY2sKLlhyIGxvIDQKaW50ZXJmYWNlLgpTZWUKLlhyIG1hY19pZm9mZiA0CmZv ciBtb3JlIGluZm9ybWF0aW9uLgouUHAKCi0tLQpzZWN1cml0eS5tYWMuaWZvZmYub3RoZXJfZW5h YmxlZApib29sCgpVc2UgdGhpcyB0byBlbmFibGUgbmV0d29yayB0cmFmZmljIG92ZXIgb3RoZXIg aW50ZXJmYWNlcy4KU2VlCi5YciBtYWNfaWZvZmYgNApmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLlBw CgotLS0Kc2VjdXJpdHkubWFjLmlmb2ZmLmJwZnJlY3ZfZW5hYmxlZApib29sCgpVc2UgdGhpcyB0 b28gYWxsb3cKLlhyIGJwZiA0CnRyYWZmaWMgdG8gYmUgcmVjZWl2ZWQsCmV2ZW4gd2hpbGUgb3Ro ZXIgdHJhZmZpYyBpcyBkaXNhYmxlZC4KLlBwCgotLS0Kc2VjdXJpdHkubWFjLm1scy5lbmFibGVk CmJvb2wKCkVuYWJsZXMgdGhlIGVuZm9yY2VtZW50IG9mIHRoZSBNTFMgY29uZmlkZW50aWFsaXR5 IHBvbGljeSwKc2VlCi5YciBtYWNfbWxzIDQKZm9yIG1vcmUgaW5mb3JtYXRpb24uCi5QcAoKLS0t CnNlY3VyaXR5Lm1hYy5tbHMucHR5c19lcXVhbApib29sCgpMYWJlbAouU20gb2ZmCi5YciBwdHkg NApzCi5TbSBvbgphcwouRHEgbWxzL2VxdWFsCnVwb24gY3JlYXRpb24uCi5QcAoKLS0tCnNlY3Vy aXR5Lm1hYy5tbHMucmV2b2NhdGlvbl9lbmFibGVkCmJvb2wKClJldm9rZSBhY2Nlc3MgdG8gb2Jq ZWN0cyBpZiB0aGUgbGFiZWwgaXMgY2hhbmdlZCB0byBhIG1vcmUgc2Vuc2l0aXZlCmxldmVsIHRo YW4gdGhlIHN1YmplY3QuCi5QcAoKLS0tCnNlY3VyaXR5Lm1hYy5wb3J0YWNsLnJ1bGVzCnN0cgoK VGhlIHBvcnQgYWNjZXNzIGNvbnRyb2wgbGlzdCBpcyBzcGVjaWZpZWQgaW4gdGhlIGZvbGxvd2lu ZyBmb3JtYXQ6Ci5QcAouU3kgaWR0eXBlCi5MaSA6Ci5TeSBpZAouTGkgOgouU3kgcHJvdG9jb2wK LkxpIDoKLlN5IHBvcnQKLkxpIFssCi5TeSBpZHR5cGUKLkxpIDoKLlN5IGlkCi5MaSA6Ci5TeSBw cm90b2NvbAouTGkgOgouU3kgcG9ydAouTGkgLC4uLl0KLlBwCi5TeSBpZHR5cGUKRGVzY3JpYmVz IHRoZSB0eXBlIG9mIHN1YmplY3QgbWF0Y2ggdG8gYmUgcGVyZm9ybWVkLgpFaXRoZXIKLkxpIHVp ZApmb3IgdXNlcmlkIG1hdGNoaW5nLCBvcgouTGkgZ2lkCmZvciBncm91cCBJRCBtYXRjaGluZy4K LlN5IGlkClRoZSB1c2VyIG9yIGdyb3VwIElEIChkZXBlbmRpbmcgb24KLlN5IGlkdHlwZSApCmFs bG93ZWQgdG8gYmluZCB0byB0aGUgc3BlY2lmaWVkIHBvcnQuCi5CZiAtZW1waGFzaXMKTk9URTog VXNlciBhbmQgZ3JvdXAgbmFtZXMgYXJlIG5vdCB2YWxpZDsgb25seSB0aGUgYWN0dWFsIElEIG51 bWJlcnMKbWF5IGJlIHVzZWQuCi5FZgouU3kgcHJvdG9jb2wKRGVzY3JpYmVzIHdoaWNoIHByb3Rv Y29sIHRoaXMgZW50cnkgYXBwbGllcyB0by4KRWl0aGVyCi5MaSB0Y3AKb3IKLkxpIHVkcAphcmUg c3VwcG9ydGVkLgouU3kgcG9ydApEZXNjcmliZXMgd2hpY2ggcG9ydCB0aGlzIGVudHJ5IGFwcGxp ZXMgdG8uCi5CZiAtZW1waGFzaXMKTk9URTogTUFDIHNlY3VyaXR5IHBvbGljaWVzIG1heSBub3Qg b3ZlcnJpZGUgb3RoZXIgc2VjdXJpdHkgc3lzdGVtIHBvbGljaWVzCmJ5IGFsbG93aW5nIGFjY2Vz c2VzIHRoYXQgdGhleSBtYXkgZGVueSwgc3VjaCBhcwouVmEgbmV0LmluZXQuaXAucG9ydHJhbmdl LnJlc2VydmVkbG93IC8KLlZhIG5ldC5pbmV0LmlwLnBvcnRyYW5nZS5yZXNlcnZlZGhpZ2ggLgou RWYKLlBwCgotLS0Kc2VjdXJpdHkubWFjLnNlZW90aGVydWlkcy5lbmFibGVkCmJvb2wKCkVuYWJs ZS9kaXNhYmxlCi5WYSBzZWN1cml0eS5tYWMuc2Vlb3RoZXJ1aWRzClNlZQouWHIgbWFjX3NlZW90 aGVydWlkcyA0CmZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAKCi0tLQpzZWN1cml0eS5tYWMuc2Vl b3RoZXJ1aWRzLnByaW1hcnlncm91cF9lbmFibGVkCmJvb2wKCkFsbG93IHVzZXJzIHRvIHNlZSBw cm9jZXNzZXMgYW5kIHNvY2tldHMgb3duZWQgYnkgdGhlIHNhbWUgcHJpbWFyeQpncm91cC4KLlBw CgotLS0Kc2VjdXJpdHkubWFjLnNlZW90aGVydWlkcy5zcGVjaWZpY2dpZF9lbmFibGVkCmJvb2wK CkFsbG93IHByb2Nlc3NlcyB3aXRoIGEgc3BlY2lmaWMgZ3JvdXAgSUQgdG8gYmUgZXhlbXB0IGZy b20gdGhlIHBvbGljeSwKc2V0IHRoaXMgdG8KLkxpIDEKYW5kIHNldAouVmEgc2VjdXJpdHkubWFj LnNlZW90aGVydWlkcy5zcGVjaWZpY2dpZAp0byB0aGUgZ2lkIHRvIGJlIGV4ZW1wdGVkLgouUHAK Ci0tLQpzZWN1cml0eS5tYWNfdGVzdApzdHIKClVzZWQgZm9yIGRlYnVnZ2luZy4KU2VlCi5YciBt YWNfdGVzdCA0CmZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAKCi0tLQp1c2VyLmJjX2Jhc2VfbWF4 CgotLS0KdXNlci5iY19kaW1fbWF4CgotLS0KdXNlci5iY19zY2FsZV9tYXgKCi0tLQp1c2VyLmJj X3N0cmluZ19tYXgKCi0tLQp1c2VyLmNvbGxfd2VpZ2h0c19tYXgKCi0tLQp1c2VyLmNzX3BhdGgK Ci0tLQp1c2VyLmxpbmVfbWF4CgotLS0KdXNlci5wb3NpeDJfY19iaW5kCgotLS0KdXNlci5wb3Np eDJfY19kZXYKCi0tLQp1c2VyLnBvc2l4Ml9mb3J0X2RldgoKLS0tCnVzZXIucG9zaXgyX2ZvcnRf cnVuCgotLS0KdXNlci5wb3NpeDJfbG9jYWxlZGVmCgotLS0KdXNlci5wb3NpeDJfc3dfZGV2Cgot LS0KdXNlci5wb3NpeDJfdXBlCgotLS0KdXNlci5wb3NpeDJfdmVyc2lvbgoKLS0tCnVzZXIucmVf ZHVwX21heAoKLS0tCnVzZXIuc3RyZWFtX21heAoKLS0tCnVzZXIudHpuYW1lX21heAoKLS0tCnZm cy5hbHRidWZmZXJmbHVzaGVzCgotLS0KdmZzLmJ1ZmRlZnJhZ2NudAoKLS0tCnZmcy5idWZmcmVl a3ZhY250CgotLS0KdmZzLmJ1Zm1hbGxvY3NwYWNlCgotLS0KdmZzLmJ1ZnJldXNlY250CgotLS0K dmZzLmJ1ZnNwYWNlCgotLS0KdmZzLmNhY2hlLm5jaHN0YXRzCgotLS0KdmZzLmNvbmZsaXN0Cgot LS0KdmZzLmRldmZzLmdlbmVyYXRpb24KCi0tLQp2ZnMuZGV2ZnMuaW5vZGVzCgotLS0KdmZzLmRl dmZzLm5vdmVyZmxvdwoKLS0tCnZmcy5kZXZmcy50b3Bpbm9kZQoKLS0tCnZmcy5kaXJ0eWJ1ZmZl cmZsdXNoZXMKCi0tLQp2ZnMuZGlydHlidWZ0aHJlc2gKCi0tLQp2ZnMuZmZzLmFkamJsa2NudAoK LS0tCnZmcy5mZnMuYWRqcmVmY250CgotLS0KdmZzLmZmcy5mcmVlYmxrcwoKLS0tCnZmcy5mZnMu ZnJlZWRpcnMKCi0tLQp2ZnMuZmZzLmZyZWVmaWxlcwoKLS0tCnZmcy5mZnMuc2V0ZmxhZ3MKCi0t LQp2ZnMuZmx1c2h3aXRoZGVwcwoKLS0tCnZmcy5nZXRuZXdidWZjYWxscwoKLS0tCnZmcy5nZXRu ZXdidWZyZXN0YXJ0cwoKLS0tCnZmcy5oaWJ1ZnNwYWNlCgotLS0KdmZzLmhpZGlydHlidWZmZXJz CgotLS0KdmZzLmhpZnJlZWJ1ZmZlcnMKCi0tLQp2ZnMuaGlydW5uaW5nc3BhY2UKCi0tLQp2ZnMu bG9idWZzcGFjZQoKLS0tCnZmcy5sb2RpcnR5YnVmZmVycwoKLS0tCnZmcy5sb2ZyZWVidWZmZXJz CgotLS0KdmZzLmxvcnVubmluZ3NwYWNlCgotLS0KdmZzLm1heGJ1ZnNwYWNlCgotLS0KdmZzLm1h eG1hbGxvY2J1ZnNwYWNlCgotLS0KdmZzLm51bWRpcnR5YnVmZmVycwoKLS0tCnZmcy5udW1mcmVl YnVmZmVycwoKLS0tCnZmcy5vcHZfbnVtb3BzCgotLS0KdmZzLnBmcy52bmNhY2hlLmVudHJpZXMK Ci0tLQp2ZnMucGZzLnZuY2FjaGUuaGl0cwoKLS0tCnZmcy5wZnMudm5jYWNoZS5tYXhlbnRyaWVz CgotLS0KdmZzLnBmcy52bmNhY2hlLm1pc3NlcwoKLS0tCnZmcy5yZWFkX21heAoKLS0tCnZmcy5y ZWN1cnNpdmVmbHVzaGVzCgotLS0KdmZzLnJ1bm5pbmdidWZzcGFjZQoKLS0tCnZmcy51ZnMuZGly aGFzaF9kb2NoZWNrCgotLS0KdmZzLnVmcy5kaXJoYXNoX21heG1lbQoKLS0tCnZmcy51ZnMuZGly aGFzaF9tZW0KCi0tLQp2ZnMudWZzLmRpcmhhc2hfbWluc2l6ZQoKLS0tCnZmcy51c2VybW91bnQK Ym9vbAoKVGhpcwouTm0KYWxsb3dzIHRoZSByb290IHVzZXIgdG8gZ3JhbnQgYWNjZXNzIHRvIG5v bi1yb290IHVzZXJzCnNvIHRoYXQgdGhleSBtYXkgbW91bnQgZmxvcHB5IGFuZCBDRC1ST00gZHJp dmVzLgouUHAKCi0tLQp2ZnMudm1pb2RpcmVuYWJsZQpib29sCgpDb250cm9scyBob3cgZGlyZWN0 b3JpZXMgYXJlIGNhY2hlZCBieSB0aGUgc3lzdGVtLgpUaGlzIGlzIHR1cm5lZCBvbiBieSBkZWZh dWx0LiAgU2VlIHRoZSAKLlhyIHR1bmluZyA3Cm1hbiBwYWdlIGZvciBhIG1vcmUgZGV0YWlsZWQg ZXhwbGFuYXRpb24gb24gdGhpcwp2YXJpYWJsZS4KLlBwCgotLS0KdmZzLndyaXRlX2JlaGluZApi b29sCgpUZWxscyB0aGUgZmlsZSBzeXN0ZW0gdG8gaXNzdWUgbWVkaWEgd3JpdGVzIGFzCmZ1bGwg Y2x1c3RlcnMgYXJlIGNvbGxlY3RlZCwgd2hpY2ggdHlwaWNhbGx5IApvY2N1cnMgd2hlbiB3cml0 aW5nIGxhcmdlIHNlcXVlbnRpYWwgZmlsZXMuClRoaXMgaXMgdHVybmVkIG9uIGJ5IGRlZmF1bHQs IGJ1dCB1bmRlciBjZXJ0YWluCmNpcmN1bXN0YW5jZXMgbWF5IHN0YWxsIHByb2Nlc3NlcyBhbmQg Y2FuIHRoZXJlZm9yZQpiZSB0dXJuZWQgb2ZmLgouUHAKCi0tLQp2bS5kZWZlcl9zd2Fwc3BhY2Vf cGFnZW91dHMKCi0tLQp2bS5kaXNhYmxlX3N3YXBzcGFjZV9wYWdlb3V0cwoKLS0tCnZtLmRtbWF4 CgotLS0Kdm0ua3ZtX2ZyZWUKCi0tLQp2bS5rdm1fc2l6ZQoKLS0tCnZtLmxvYWRhdmcKc3RydWN0 CgpEaXNwbGF5cyB0aGUgbG9hZCBhdmVyYWdlIGhpc3RvcnkuICBUaGlzIGlzIGEgCnJlYWQtb25s eSB2YXJpYWJsZS4KLlBwCgotLS0Kdm0ubWF4X2xhdW5kZXIKCi0tLQp2bS5uc3dhcGRldgoKLS0t CnZtLnBhZ2VvdXRfYWxnb3JpdGhtCgotLS0Kdm0ucGFnZW91dF9mdWxsX3N0YXRzX2ludGVydmFs CgotLS0Kdm0ucGFnZW91dF9sb2NrX21pc3MKCi0tLQp2bS5wYWdlb3V0X3N0YXRzX2ZyZWVfbWF4 CgotLS0Kdm0ucGFnZW91dF9zdGF0c19pbnRlcnZhbAoKLS0tCnZtLnBhZ2VvdXRfc3RhdHNfbWF4 CgotLS0Kdm0uc3RhdHMuc3lzLnZfaW50cgoKLS0tCnZtLnN0YXRzLnN5cy52X3NvZnQKCi0tLQp2 bS5zdGF0cy5zeXMudl9zd3RjaAoKLS0tCnZtLnN0YXRzLnN5cy52X3N5c2NhbGwKCi0tLQp2bS5z dGF0cy5zeXMudl90cmFwCgotLS0Kdm0uc3RhdHMudm0udl9jb3dfZmF1bHRzCgotLS0Kdm0uc3Rh dHMudm0udl9jb3dfb3B0aW0KCi0tLQp2bS5zdGF0cy52bS52X2ZvcmtwYWdlcwoKLS0tCnZtLnN0 YXRzLnZtLnZfZm9ya3MKCi0tLQp2bS5zdGF0cy52bS52X2ludHJhbnMKCi0tLQp2bS5zdGF0cy52 bS52X2t0aHJlYWRwYWdlcwoKLS0tCnZtLnN0YXRzLnZtLnZfa3RocmVhZHMKCi0tLQp2bS5zdGF0 cy52bS52X296Zm9kCgotLS0Kdm0uc3RhdHMudm0udl9wZHBhZ2VzCgotLS0Kdm0uc3RhdHMudm0u dl9wZHdha2V1cHMKCi0tLQp2bS5zdGF0cy52bS52X3JlYWN0aXZhdGVkCgotLS0Kdm0uc3RhdHMu dm0udl9yZm9ya3BhZ2VzCgotLS0Kdm0uc3RhdHMudm0udl9yZm9ya3MKCi0tLQp2bS5zdGF0cy52 bS52X3N3YXBpbgoKLS0tCnZtLnN0YXRzLnZtLnZfc3dhcG91dAoKLS0tCnZtLnN0YXRzLnZtLnZf c3dhcHBnc2luCgotLS0Kdm0uc3RhdHMudm0udl9zd2FwcGdzb3V0CgotLS0Kdm0uc3RhdHMudm0u dl92Zm9ya3BhZ2VzCgotLS0Kdm0uc3RhdHMudm0udl92Zm9ya3MKCi0tLQp2bS5zdGF0cy52bS52 X3ZtX2ZhdWx0cwoKLS0tCnZtLnN0YXRzLnZtLnZfdm5vZGVpbgoKLS0tCnZtLnN0YXRzLnZtLnZf dm5vZGVvdXQKCi0tLQp2bS5zdGF0cy52bS52X3Zub2RlcGdzaW4KCi0tLQp2bS5zdGF0cy52bS52 X3Zub2RlcGdzb3V0CgotLS0Kdm0uc3RhdHMudm0udl96Zm9kCgotLS0Kdm0uc3dhcF9hc3luY19t YXgKCi0tLQp2bS5zd2FwX2VuYWJsZWQKCi0tLQp2bS5zd2FwX2lkbGVfZW5hYmxlZAoKLS0tCnZt LnN3YXBfaW5mbwoKLS0tCnZtLnZtdG90YWwKCi0tLQp2bS56b25lCgotLS0KCg== --Multipart=_Thu__22_Jan_2004_02_47_29_-0500_FgA_kUaO8e4__3SQ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040122024729.2944fada>