FreeBSD Quarterly Status Report, April-June, 2013

看板FB_current作者時間12年前 (2013/07/16 10:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
RnJlZUJTRCBRdWFydGVybHkgU3RhdHVzIFJlcG9ydCwgQXByaWwtSnVuZSAyMDEzCgpJbnRyb2R1 Y3Rpb24KCiAgIFRoaXMgcmVwb3J0IGNvdmVycyBGcmVlQlNELXJlbGF0ZWQgcHJvamVjdHMgYmV0 d2VlbiBBcHJpbCBhbmQgSnVuZSwKICAgMjAxMy4gVGhpcyBpcyB0aGUgc2Vjb25kIG9mIGZvdXIg cmVwb3J0cyBwbGFubmVkIGZvciAyMDEzLgoKICAgVGhlIGxhc3QgdGhyZWUgbW9udGhzIGhhdmUg YmVlbiB2ZXJ5IGFjdGl2ZSBmb3IgdGhlIEZyZWVCU0QgZGV2ZWxvcGVyCiAgIGNvbW11bml0eSwg aW5jbHVkaW5nIGV2ZW50cyBzdWNoIGFzIEJTRENhbiBhbmQgdGhlIEZyZWVCU0QgRGV2ZWxvcGVy CiAgIFN1bW1pdCBjb2xsb2NhdGVkIHdpdGggaXQgKGNvdmVyZWQgaW4gYSBzZXBhcmF0ZSByZXBv cnQsIHNlZSB0aGUgQlNEQ2FuCiAgIERldmVsb3BlciBTdW1taXQgU3BlY2lhbCkgYW5kIEJTRC1E YXkgMjAxMy4gSXQgaGFzIGFsc28gc2VlbgogICBpbXByb3ZlbWVudHMgZnJvbSB0aGUgdG9wIHRv IHRoZSBib3R0b20gb2YgdGhlIEZyZWVCU0Qgc3lzdGVtLiBEZXNrdG9wCiAgIHVzZXJzIHdpbGwg YmUgcGxlYXNlZCB0byBub3RlIHdvcmsgb24gaW1wcm92aW5nIHRoZSBzdGF0ZSBvZiBBTUQgR1BV cwogICBhbmQgbWFraW5nIHRoZSBjb25zb2xlIGludGVyYWN0aW9uIHdpdGgga2VybmVsIG1vZGUg c2V0dGluZyAtLSByZXF1aXJlZAogICBmb3IgcmVjZW50IHhvcmcgZHJpdmVycyAtLSBjbGVhbmVy IGFuZCBmcm9tIGNvbnRpbnVlZCB3b3JrIHRvIG1ha2UKICAgYmluYXJ5IHBhY2thZ2VzIGVhc2ll ciB0byB1c2UuIERldmVsb3BlcnMgd2lsbCBub3RlIGNvbnRpbnVlZAogICBpbXByb3ZlbWVudHMg dG8gb3VyIHRvb2xjaGFpbiwgd2l0aCBhIG5ldyBkZWJ1Z2dlciBiZWluZyBwcmVwYXJlZCBmb3IK ICAgaW50ZWdyYXRpb24uIFNlcnZlciB1c2VycyB3aWxsIGJlbmVmaXQgZnJvbSB2YXJpb3VzIGlt cHJvdmVtZW50cyB0bwogICB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0IGFuZCBzY2FsYWJpbGl0eSBp biB0aGUga2VybmVsLiBPZiBjb3Vyc2UsIHRoZQogICBGcmVlQlNEIHN5c3RlbSBpcyBub3RoaW5n IHdpdGhvdXQgYXBwbGljYXRpb25zIHRvIHJ1biBhdG9wIGl0LCBhbmQgdGhpcwogICBxdWFydGVy IGhhcyBzZWVuIHNvbWUgdGlyZWxlc3Mgd29yayBieSBtZW1iZXJzIG9mIHRoZSBwb3J0cyB0ZWFt IHRvCiAgIGVuc3VyZSB0aGF0IHVzZXJzIGhhdmUgYSB3aWRlIGNob2ljZSBvZiBkZXNrdG9wIGFu ZCBkZXZlbG9wbWVudAogICBlbnZpcm9ubWVudHMsIHdpdGggaGlnaGxpZ2h0cyBmcm9tIHRoZSBH Tk9NRSwgS0RFLCBYZmNlLCBhbmQgSGFza2VsbAogICB0ZWFtcyBpbiB0aGlzIHJlcG9ydC4KCiAg IFRoYW5rcyB0byBhbGwgdGhlIHJlcG9ydGVycyBmb3IgdGhlIGV4Y2VsbGVudCB3b3JrISBUaGlz IHJlcG9ydAogICBjb250YWlucyAzMyBlbnRyaWVzIGFuZCB3ZSBob3BlIHlvdSBlbmpveSByZWFk aW5nIGl0LgoKICAgVGhlIGRlYWRsaW5lIGZvciBzdWJtaXNzaW9ucyBjb3ZlcmluZyBiZXR3ZWVu IEp1bHkgYW5kIFNlcHRlbWJlciwgMjAxMwogICBpcyBPY3RvYmVyIDd0aCwgMjAxMy4KICAgICBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KCkZyZWVCU0QgVGVhbSBSZXBvcnRzCgogICAgICogRnJlZUJTRCBDb3JlIFRlYW0K ICAgICAqIEZyZWVCU0QgUG9zdG1hc3RlciBUZWFtCiAgICAgKiBGcmVlQlNEIFJlbGVhc2UgRW5n aW5lZXJpbmcgVGVhbQogICAgICogRnJlZUJTRCBTZWN1cml0eSBUZWFtCgpQcm9qZWN0cwoKICAg ICAqIFBDLUJTRAogICAgICogVmlydHVhbCBQcml2YXRlIFN5c3RlbXMKCktlcm5lbAoKICAgICAq IEFNRCBHUFUgS2VybmVsIE1vZGUtc2V0dGluZyBTdXBwb3J0CiAgICAgKiBJbXByb3ZlZCBUQ1Ag U1lOIENvb2tpZXMKICAgICAqIE11bHRpLXRocmVhZGVkIFBhZ2VkYWVtb24KICAgICAqIE5hdGl2 ZSBpU0NTSSBTdGFjawogICAgICogTmV3Y29ucyBSZWJvb3QKICAgICAqIFJlYWx0ZWsgUlRMODE4 OENVL1JUTDgxOTJDVSBVU0IgV2lyZWxlc3MgRHJpdmVyCiAgICAgKiBTRElPIERyaXZlcgogICAg ICogVjRMMiBVcGRhdGUgaW4gdGhlIExpbnV4dWxhdG9yCiAgICAgKiBXaXJlbGVzcyBOZXR3b3Jr aW5nIEltcHJvdmVtZW50cwogICAgICogWGVuIFN1cHBvcnQgSW1wcm92ZW1lbnRzCiAgICAgKiBa RlMgVFJJTSBhbmQgRW5oYW5jZWQgQklPX0RFTEVURSBTdXBwb3J0CgpBcmNoaXRlY3R1cmVzCgog ICAgICogSW50ZWwgSU9NTVUgKFZULWQsIERNQVIpIFN1cHBvcnQKICAgICAqIFN1cGVycGFnZXMg Zm9yIEFSTXY3CgpVc2VybGFuZCBQcm9ncmFtcwoKICAgICAqIGJzZGNvbmZpZyg4KSBhbmQgc3lz cmMoOCkKICAgICAqIGJzbm1wZCgxKSBTdXBwb3J0IGluIGhhc3RkKDgpCiAgICAgKiBDYXBzaWN1 bQogICAgICogTExEQiBEZWJ1Z2dlciBQb3J0CgpQb3J0cwoKICAgICAqIEZyZWVCU0QgSGFza2Vs bCBQb3J0cwogICAgICogR05PTUUvRnJlZUJTRAogICAgICogS0RFL0ZyZWVCU0QKICAgICAqIFhm Y2UvRnJlZUJTRAogICAgICogeG9yZyBvbiBGcmVlQlNECgpEb2N1bWVudGF0aW9uCgogICAgICog VXBncmFkaW5nIHRoZSBEb2N1bWVudGF0aW9uIFNldCB0byBEb2NCb29rIDUuMAoKRXZlbnRzCgog ICAgICogQlNELURheSAyMDEzCgpHb29nbGUgU3VtbWVyIG9mIENvZGUKCiAgICAgKiBOZXcgQ2Fw c2ljdW0gRmVhdHVyZXMKICAgICAqIFF0IGFuZCBHVEsrIEZyb250ZW5kcyBmb3IgcGtnKDgpCgpN aXNjZWxsYW5lb3VzCgogICAgICogVGhlIEZyZWVCU0QgRm91bmRhdGlvbgogICAgIF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwoKQU1EIEdQVSBLZXJuZWwgTW9kZS1zZXR0aW5nIFN1cHBvcnQKCiAgIFVSTDogaHR0cHM6Ly93 aWtpLmZyZWVic2Qub3JnL0FNRF9HUFUKCiAgIENvbnRhY3Q6IEplYW4tU8OpYmFzdGllbiBQw6lk cm9uIDxkdW1iYmVsbEBGcmVlQlNELm9yZz4KICAgQ29udGFjdDogS29uc3RhbnRpbiBCZWxvdXNv diA8a2liQEZyZWVCU0Qub3JnPgoKICAgRHVlIHRvIG5vbi1GcmVlQlNELXJlbGF0ZWQgYWN0aXZp dGllcyBmcm9tIEFwcmlsIHRvIGVuZCBvZiBKdW5lLCB0aGUKICAgcHJvamVjdCBwcm9ncmVzc2Vk IHNsb3dseToKCiAgICAgKiBTb21lIGltcG9ydGFudCBwcm9ibGVtcyBpbiBUVE0gd2VyZSBmaXhl ZCBhbmQgc2V2ZXJhbCBvdGhlcnMgYXJlCiAgICAgICBiZWluZyB3b3JrZWQgb3V0LiBBcHBsaWNh dGlvbnMgYWZmZWN0ZWQgYnkgdGhlc2UgYnVncyBhcmUKICAgICAgIG5vbi1saW5lYXIgdmlkZW8g ZWRpdGluZyBzb2Z0d2FyZSAod2hpY2ggZG8gbm90IHVzZSBYdiB0byBwcmV2aWV3CiAgICAgICB0 aGUgdmlkZW8pIG9yICJzY3JlZW4iIG9mIFZpcnR1YWxCb3gsIGZvciBpbnN0YW5jZS4KICAgICAq IFJlZ2FyZGluZyB0aGUgbG9ja2luZyBpc3N1ZSB3aXRoIE9wZW5HTCwgbm8gd29yayBoYXMgYmVl biBkb25lIHlldC4KICAgICAgIGdseGdlYXJzIHdvcmtzIGJ1dCBzb21lIG1vZGVybiBkZXNrdG9w IGVudmlyb25tZW50cyBvciBXZWJHTCBkZW1vcwogICAgICAgaGFuZy4gT25jZSBUVE0gYnVncyBk ZXNjcmliZWQgYWJvdmUgYXJlIGZpeGVkLCB0aGlzIGlzIHRoZSBuZXh0CiAgICAgICB0YXJnZXQu CiAgICAgKiBQYXRjaGVzIHRvIE1lc2EgdG8gbWFrZSBpdCBidWlsZCBvdXQtb2YtdGhlLWJveCB3 ZXJlIHN1Ym1pdHRlZAogICAgICAgdXBzdHJlYW0uIEFzIG9mIHdyaXRpbmcsIHNvbWUgd2VyZSBj b21taXR0ZWQgYnV0IG5vdCBhbGwgb2YgdGhlbS4KICAgICAgIEFkZGl0aW9uYWxseSwgYXMgcmVz dWx0IG9mIGEgam9pbnQgd29yayB3aXRoIEpvbmF0aGFuIEdyYXkgKG9mCiAgICAgICBPcGVuQlNE KSwgTWVzYSBzaG91bGQgd29yayBvbiBGcmVlQlNELCBPcGVuQlNELCBhbmQgaG9wZWZ1bGx5IG9u CiAgICAgICBvdGhlciBCU0QgZmxhdm9ycyB3aXRob3V0IGFkZGl0aW9uYWwgcGF0Y2hlcy4KCiAg IFNldmVyYWwgdXNlcnMgdGVzdGVkIHRoZSBkcml2ZXIuIEFuZHJpeSBHYXBvbiwgSm9uYXRoYW4g R3JheSwgYW5kIE1hcmsKICAgS2V0dGVuaXMgKG9mIE9wZW5CU0QpIHN1Ym1pdHRlZCBwYXRjaGVz LiBreXpoIGtpbmRseSBkb25hdGVkIHNldmVyYWwKICAgZGlzY3JldGUgY2FyZHMgZnJvbSBkaWZm ZXJlbnQgc2VyaWVzLiBBIGJpZyB0aGFua3MgdG8gYWxsIHRob3NlCiAgIGNvbnRyaWJ1dG9ycyEK CiAgIFRoZSBkcml2ZXIgaXMgc3RpbGwgbm90IHN0YWJsZSBlbm91Z2ggZm9yIGEgd2lkZXIgY2Fs bCBmb3IgdGVzdGVycy4KCk9wZW4gdGFza3M6CgogICAgMS4gV3JpdGUgaW5zdHJ1Y3Rpb25zIGZv ciB0aGUgd2lraSB0byBleHBsYWluIGhvdyB0byB0ZXN0IHRoZSBkcml2ZXIuCiAgICAgX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCgpCU0QtRGF5IDIwMTMKCiAgIFVSTDogaHR0cDovL2JzZGRheS5ldS8yMDEzCiAgIFVSTDog aHR0cDovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMSkpIZmhqYjVUT2pCLXNIUndK QkdXZDhYQTduYzFna18KICAgVVJMOiBodHRwczovL3BpY2FzYXdlYi5nb29nbGUuY29tLzExNjQ1 Mjg0ODg4MDc0NjU2MDE3MC9CU0REYXkyMDEzP2F1dGhrZXk9R3Yxc1JnQ052SW9NV294TlRSWXcK CiAgIENvbnRhY3Q6IEfDoWJvciBQw6FsaSA8cGdqQEZyZWVCU0Qub3JnPgoKICAgVGhlIEJTRC1E YXkgaXMgYSBub3cgcmVjdXJyaW5nIGV4Y3VzZSBmb3IgQlNEIGRldmVsb3BlcnMgYW5kIHVzZXJz IHRvCiAgIG1lZXQgdXAgaW4gcGVyc29uLCBzaGFyZSBzb21lIGJlZXJzIGFuZCB0YWxrIGFib3V0 IHdoYXQgdGhleSBhcmUKICAgd29ya2luZyBvbiB0aGVzZSBkYXlzLiBUaGVyZSB3YXMgYSBkZXRv dXIgdGhpcyB5ZWFyIHRvIHZpc2l0IHRoZQogICBiZWF1dGlmdWwgY2l0eSBvZiBOYXBsZXMgb2Yg SXRhbHksIHRoZSBob21lIG9mIHBpenphLiBGb3J0dW5hdGVseSwgdGhlCiAgIGV2ZW50IGhhcyBh Z2FpbiBnYWluZWQgc3VwcG9ydCBmcm9tIG51bWVyb3VzIGFuZCBnZW5lcm91cyBzcG9uc29ycywK ICAgc3VjaCBhcyBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uLCB0aGUgRU1DIENvcnBvcmF0aW9uLCBp WHN5c3RlbXMsCiAgIEZyZWVCU0RNYWxsLCBCU0QgTWFnYXppbmUsIGFuZCBtYW55IG90aGVycyB3 aGljaCBlbmFibGVkIHVzIHRvIGNvdmVyCiAgIHRoZSBjb3N0cyBvZiB0cmF2ZWwgYW5kIGFjY29t bW9kYXRpb24gZm9yIHRoZSBzcGVha2Vycy4gV2UgYXJlIHJlYWxseQogICBncmF0ZWZ1bCBmb3Ig dGhpcy4KCiAgIFNpbWlsYXJseSB0byB0aGUgcHJldmlvdXMgeWVhcnMsIHRoZSB3aG9sZSBldmVu dCBzdGFydGVkIHdpdGggYSBkaW5uZXIKICAgaW4gdGhlIGRvd250b3duIChzb21ld2hlcmUgYXJv dW5kIHRoZSBJcmlzaCBQdWIpIG9uIEZyaWRheSB3aGljaAogICBzdWRkZW5seSB0dXJuZWQgaW50 byBhIGRvLWl0LXlvdXJzZWxmIHBpenphLWZlc3QuIFRoZW4gaXQgd2FzIGZvbGxvd2VkCiAgIGJ5 IHRoZSBTYXR1cmRheSBldmVudCBhdCB0aGUgSW5zdGl0dXRlIG9mIEJpb3N0cnVjdHVyZXMgYW5k IEJpb2ltYWdpbmcuCiAgIFRoZXJlIHdlIGhhZCBhIGxvdCBvZiBhdHRlbmRlZXMgZm9yIHRoZSBh c3NvY2lhdGVkIEJTREEgZXhhbSBpbiB0aGUKICAgbW9ybmluZyAtLSA4IHBlcnNvbnMuIFRoZSBl dmVudCBpdHNlbGYgaGFkIG1hbnkgaW50ZXJlc3RpbmcgdG9waWNzIGFzCiAgIHdlbGwsIGZvciBl eGFtcGxlIG1vdmluZyBNQ0xpbmtlciBpbnRvIHRoZSBCU0Qgd29ybGQsIG9yZ2FuaXphdGlvbiBh bmQKICAgY3VsdHVyZSBvZiB0aGUgRnJlZUJTRCBQcm9qZWN0LCB0aGUgbmV3IGNhbGxvdXQoOSkg ZnJhbWV3b3JrLCBidWlsZGluZwogICBhbmQgdGVzdGluZyBwb3J0cyB3aXRoIFBvdWRyaWVyZSBh bmQgVGluZGVyYm94LCBGcmVlQlNEIGluIHRoZSBlbWJlZGRlZAogICBzcGFjZSwgb3IgYnVpbGRp bmcgcmVsaWFibGUgVlBOIG5ldHdvcmtzIHdpdGggT3BlbkJTRC4gU2VlIHRoZSBsaW5rcyBpbgog ICB0aGUgcmVwb3J0IGZvciBtb3JlLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKYnNkY29uZmlnKDgpIGFuZCBz eXNyYyg4KQoKICAgVVJMOiBodHRwOi8vZHJ1aWRic2Quc291cmNlZm9yZ2UubmV0LwoKICAgQ29u dGFjdDogRGV2aW4gVGVza2UgPGR0ZXNrZUBGcmVlQlNELm9yZz4KCiAgIE5ldyB1dGlsaXRpZXMg aGF2ZSBiZWVuIGludHJvZHVjZWQgaW4gRnJlZUJTRCBiYXNlIHN5c3RlbTogYnNkY29uZmlnKDgp CiAgIGFuZCBzeXNyYyg4KS4gYnNkY29uZmlnKDgpIGlzIGEgcmVwbGFjZW1lbnQgZm9yIHRoZSBw b3N0LWluc3RhbGwKICAgYWJpbGl0aWVzIG9mIGRlcHJlY2F0ZWQgc3lzaW5zdGFsbCg4KSwgd2hp bGUgc3lzcmMoOCkgaXMgYSByb2J1c3QKICAgdXRpbGl0eSBmb3IgbWFuYWdpbmcgcmMuY29uZig1 KSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgd2l0aG91dCBhIHRleHQKICAgZWRpdG9yLgogICAgIF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwoKYnNubXBkKDEpIFN1cHBvcnQgaW4gaGFzdGQoOCkKCiAgIENvbnRhY3Q6IE1pa29s YWogR29sdWIgPHRyb2NpbnlARnJlZUJTRC5vcmc+CgogICBBIGhhc3RkKDgpIG1vZHVsZSBmb3Ig YnNubXBkKDEpIGhhcyBiZWVuIGNvbW1pdHRlZCB0byBGcmVlQlNEIGhlYWQgYW5kCiAgIG1lcmdl ZCB0byB0aGUgc3RhYmxlLzggYW5kIHN0YWJsZS85IGJyYW5jaGVzIHJlY2VudGx5LiBUaGlzIG1v ZHVsZQogICBtYWtlcyBpdCBwb3NzaWJsZSB0byBtb25pdG9yIGFuZCBtYW5hZ2UgaGFzdGQoOCkg dmlhIHRoZSBTTk1QIHByb3RvY29sLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKQ2Fwc2ljdW0KCiAgIFVSTDog aHR0cDovL3d3dy5jbC5jYW0uYWMudWsvcmVzZWFyY2gvc2VjdXJpdHkvY2Fwc2ljdW0vCiAgIFVS TDogaHR0cHM6Ly9saXN0cy5jYW0uYWMudWsvbWFpbG1hbi9saXN0aW5mby9jbC1jYXBzaWN1bS1k aXNjdXNzCgogICBDb250YWN0OiBQYXdlbCBKYWt1YiBEYXdpZGVrIDxwamRARnJlZUJTRC5vcmc+ CiAgIENvbnRhY3Q6IENhcHNpY3VtIE1haWxpbmcgTGlzdCA8Y2wtY2Fwc2ljdW0tZGlzY3Vzc0Bs aXN0cy5jYW0uYWMudWs+CgogICBDYXBzaWN1bSwgYSBsaWdodHdlaWdodCBPUyBjYXBhYmlsaXR5 IGFuZCBzYW5kYm94aW5nIGZyYW1ld29yaywgaXMKICAgYmVpbmcgYWN0aXZlbHkgd29ya2VkIG9u LiBJbiB0aGUgbGFzdCBmZXcgbW9udGhzIHRoZSBmb2xsb3dpbmcgdGFza3MKICAgaGF2ZSBiZWVu IGNvbXBsZXRlZDoKCiAgICAgKiBDb21taXR0ZWQgQ2Fwc2ljdW0gb3ZlcmhhdWwgdG8gRnJlZUJT RCBoZWFkIChyMjQ3NjAyKS4gVGhpcyBhbGxvd3MKICAgICAgIHRvIHVzZSBjYXBhYmlsaXR5IHJp Z2h0cyBpbiBtb3JlIHBsYWNlcywgc2ltcGxpZmllcyBrZXJuZWwgY29kZSBhbmQKICAgICAgIGlt cGxlbWVudHMgYWJpbGl0eSB0byBsaW1pdCBpb2N0bCgyKSBhbmQgZmNudGwoMikgc3lzdGVtIGNh bGxzLgogICAgICogaGFzdGQoOCkgaXMgbm93IHVzaW5nIENhcHNpY3VtIGZvciBzYW5kYm94aW5n LCBhcyB3aGl0ZWxpc3RpbmcKICAgICAgIGlvY3RscyBpcyBwb3NzaWJsZSAocjI0ODI5NykuCiAg ICAgKiBhdWRpdGRpc3RkKDgpIGlzIG5vdyB1c2luZyBDYXBzaWN1bSBmb3Igc2FuZGJveGluZywg YXMgaXQgaXMgbm93CiAgICAgICBwb3NzaWJsZSB0byBzZXR1cCBhcHBlbmQtb25seSByZXN0cmlj dGlvbiBvbiBmaWxlIGRlc2NyaXB0b3IKICAgICAgIChhdmFpbGFibGUgaW4gUGVyZm9yY2UpLgog ICAgICogSW1wbGVtZW50ZWQgY29ubmVjdGF0KDIpIGFuZCBiaW5kYXQoMikgc3lzdGVtIGNhbGxz IGZvciBVTklYIGRvbWFpbgogICAgICAgc29ja2V0cyB0aGF0IGFyZSBhbGxvd2VkIGluIGNhcGFi aWxpdHkgbW9kZSAocjI0NzY2NykuCiAgICAgKiBJbXBsZW1lbnRlZCBjaGZsYWdzYXQoMikgc3lz dGVtIGNhbGwgKHIyNDg1OTkpLgogICAgICogUmV2aXNlZCB0aGUgQ2FzcGVyIGRhZW1vbiBmb3Ig YXBwbGljYXRpb24gY2FwYWJpbGl0aWVzLgogICAgICogSW1wbGVtZW50ZWQgbGliY2Fwc2ljdW0g Zm9yIGFwcGxpY2F0aW9uIGNhcGFiaWxpdGllcy4KICAgICAqIEltcGxlbWVudGVkIHZhcmlvdXMg Q2FzcGVyIHNlcnZpY2VzIHRvIGJlIGFibGUgdG8gdXNlIG1vcmUKICAgICAgIGZ1bmN0aW9uYWxp dHkgd2l0aGluIGEgc2FuZGJveDogc3lzdGVtLmRucywgc3lzdGVtLnB3ZCwgc3lzdGVtLmdycCwK ICAgICAgIHN5c3RlbS5yYW5kb20sIHN5c3RlbS5maWxlc3lzdGVtLCBzeXN0ZW0uc29ja2V0LCBz eXN0ZW0uc3lzY3RsLgogICAgICogSW1wbGVtZW50ZWQgQ2Fwc2ljdW0gc2FuZGJveGluZyBmb3Ig a2R1bXAoMSkgKGZyb20gcjI1MTA3MyB0bwogICAgICAgcjI1MTE2NykuIFRoZSB2ZXJzaW9uIGlu IFBlcmZvcmNlIGFsc28gc3VwcG9ydHMgc2FuZGJveGluZyBmb3IgdGhlCiAgICAgICAtciBmbGFn LCB1c2luZyBDYXNwZXIgc2VydmljZXMuCiAgICAgKiBJbXBsZW1lbnRlZCBDYXBzaWN1bSBzYW5k Ym94aW5nIGZvciBkaGNsaWVudCg4KSAoZnJvbSByMjUyNjEyIHRvCiAgICAgICByMjUyNjk3KS4K ICAgICAqIEltcGxlbWVudGVkIENhcHNpY3VtIHNhbmRib3hpbmcgZm9yIHRjcGR1bXAoOCkgKGF2 YWlsYWJsZSBpbgogICAgICAgUGVyZm9yY2UpLgogICAgICogSW1wbGVtZW50ZWQgQ2Fwc2ljdW0g c2FuZGJveGluZyBmb3IgbGlibWFnaWMoMykgKGF2YWlsYWJsZSBpbgogICAgICAgUGVyZm9yY2Up LgogICAgICogSW1wbGVtZW50ZWQgdGhlIGxpYm52IGxpYnJhcnkgZm9yIG5hbWUvdmFsdWUgcGFp cnMgaGFuZGxpbmcgaW4gdGhlCiAgICAgICBob3BlIG9mIHdpZGVyIGFkYXB0YXRpb24gYWNyb3Nz IEZyZWVCU0QuCgogICBGb3IgQ2Fwc2ljdW0tYmFzZWQgc2FuZGJveGluZyBpbiB0aGUgRnJlZUJT RCBiYXNlIHN5c3RlbSwgdGhlIGNvbW1pdHMKICAgcmVmZXJlbmNlZCBhYm92ZSBhbmQgdGhlIHBy b3ZpZGVkIGNvZGUgYWltIHRvIHNlcnZlIGFzIGV4YW1wbGVzLiBXZQogICB3b3VsZCBsaWtlIHRv IHNlZSBtb3JlIEZyZWVCU0QgdG9vbHMgdG8gYmUgc2FuZGJveGVkIC0tIGV2ZXJ5IHRvb2wgdGhh dAogICBjYW4gcGFyc2UgZGF0YSBmcm9tIHVudHJ1c3RlZCBzb3VyY2VzLCBmb3IgZXhhbXBsZS4g VGhpcyByZXF1aXJlcyBkZWVwCiAgIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSB0b29sIGluIHF1 ZXN0aW9uIHdvcmtzLCBub3QgbmVjZXNzYXJpbHkgb25seQogICBDYXBzaWN1bS4KCiAgIFRoaXMg d29yayBpcyBiZWluZyBzcG9uc29yZWQgYnkgVGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KCk9wZW4g dGFza3M6CgogICAgMS4gR2V0IGludm9sdmVkLCBtYWtlIHRoZSBJbnRlcm5ldCBmaW5hbGx5KCEp IGEgc2VjdXJlIHBsYWNlLiBDb250YWN0CiAgICAgICB1cyBhdCB0aGUgY2wtY2Fwc2ljdW0tZGlz Y3VzcyBtYWlsaW5nIGxpc3QsIHdoZXJlIHdlIGNhbiBwcm92aWRlCiAgICAgICBndWlkZWxpbmVz IG9uIGhvdyB0byBkbyBzYW5kYm94aW5nIHByb3Blcmx5LiBUaGUgZmFtZSBpcyB0aGVyZSwKICAg ICAgIHdhaXRpbmcuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEIENvcmUgVGVhbQoKICAgQ29udGFj dDogRnJlZUJTRCBDb3JlIFRlYW0gPGNvcmVARnJlZUJTRC5vcmc+CgogICBJbiB0aGUgc2Vjb25k IHF1YXJ0ZXIgb2YgMjAxMywgdGhlIENvcmUgVGVhbSBhcHByb3ZlZCBhIG5ldyBTZWN1cml0eQog ICBPZmZpY2VyLCBEYWctRXJsaW5nIFNtw7hyZ3JhdiBhbmQgaGlzIGRlcHV0eSwgWGluIExpLiBU aGUgQ29yZSBUZWFtCiAgIGFja25vd2xlZGdlcyBTaW1vbiBOaWVsc2VuLCB0aGUgb3V0Z29pbmcg U2VjdXJpdHkgT2ZmaWNlciwgZm9yIGhpcyB3b3JrCiAgIGluIHRoZSByb2xlLiBQZXRlciBXZW1t IHRvb2sgdGhlIGxlYWQgb24gdGhlIHJlb3JnYW5pemF0aW9uIGFuZAogICBhZG1pbmlzdHJhdGlv biBvZiB0aGUgRnJlZUJTRCBjbHVzdGVyLCBhbmQgd2l0aCB0aGUgQ29yZSBUZWFtJ3MKICAgYXBw cm92YWwsIEdsZW4gQmFyYmVyIGFuZCBSeWFuIFN0ZWlubWV0eiB3ZXJlIHdlbGNvbWVkIHRvIHRo ZSBjbHVzdGVyCiAgIGFkbWluaXN0cmF0aW9uIHRlYW0uCgogICBCYXNlZCBvbiB0aGUgcmVjb21t ZW5kYXRpb24gYW5kIGV4cGVyaWVuY2VzIG9mIE1hcnRpbiBXaWxrZSwgdGhlIENvcmUKICAgVGVh bSBhbHNvIHN1cHBvcnRlZCBlc3RhYmxpc2hpbmcgYSBsaWFpc29uIHJvbGUgYmV0d2VlbiBwb3J0 IG1hbmFnZXJzCiAgIGFuZCByZWxlYXNlIGVuZ2luZWVycyBpbiBvcmRlciB0byBpbXByb3ZlIHRo ZWlyIGNvbW11bmljYXRpb24sCiAgIGVzcGVjaWFsbHkgZm9yIHByZXBhcmluZyByZWxlYXNlcy4g VGhlIENvcmUgVGVhbSB3ZWxjb21lcyBCcnlhbiBEcmV3ZXJ5CiAgIHRvIHRoaXMgcm9sZS4KCiAg IEZvbGxvd2luZyB1cCBvbiB0aGUgcmVxdWVzdCBmcm9tIEVpdGFuIEFkbGVyLCB0aGUgQ29yZSBU ZWFtIGFncmVlZCB0bwogICByZW1vdmUgQ1ZTIGZyb20gdGhlIGJhc2Ugc3lzdGVtLCB3aGljaCB3 YXMgc29vbiBmb2xsb3dlZCBieSBpbXBvcnRpbmcgYQogICBsaWdodHdlaWdodCB2ZXJzaW9uIG9m IFN1YnZlcnNpb24gdG9vbHMsIGltcGxlbWVudGVkIGJ5IFBldGVyIFdlbW0uCgogICBUaGVyZSB3 ZXJlIHNyYyBjb21taXQgYml0cyBpc3N1ZWQgZm9yIDMgbmV3IGRldmVsb3BlcnMgYW5kIDEgZXhp c3RpbmcKICAgY29tbWl0dGVyIHJlY2VpdmVkIGV4dGVuc2lvbiBpbiB0aGlzIHF1YXJ0ZXIuCiAg ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCgpGcmVlQlNEIEhhc2tlbGwgUG9ydHMKCiAgIFVSTDogaHR0cDovL3dpa2ku ZnJlZWJzZC5vcmcvSGFza2VsbAogICBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9mcmVlYnNkLWhh c2tlbGwvcG9ydHMvCiAgIFVSTDogaHR0cDovL2hhc2tlbGwuaW5mLmVsdGUuaHUvcGFja2FnZXMv CgogICBDb250YWN0OiBHw6Fib3IgUMOhbGkgPHBnakBGcmVlQlNELm9yZz4KICAgQ29udGFjdDog QXNoaXNoIFNIVUtMQSA8YXNoaXNoQEZyZWVCU0Qub3JnPgoKICAgV2UgYXJlIHByb3VkIHRvIGFu bm91bmNlIHRoYXQgdGhlIEZyZWVCU0QgSGFza2VsbCBUZWFtIGhhcyB1cGRhdGVkIHRoZQogICBI YXNrZWxsIFBsYXRmb3JtIHRvIDIwMTMuMi4wLjAsIEdIQyB0byA3LjYuMywgYXMgd2VsbCBhcyB1 cGRhdGVkCiAgIGV4aXN0aW5nIHBvcnRzIHRvIHRoZWlyIGxhdGVzdCBzdGFibGUgdmVyc2lvbnMu IEluIHRoaXMgdXBkYXRlLCB3ZQogICBwcm92aWRlZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3Ig TExWTS1iYXNlZCBjb2RlIGdlbmVyYXRpb24gKGRpc2FibGVkCiAgIGJ5IGRlZmF1bHQpIHRvIEhh c2tlbGwgcG9ydHMuIFdlIGFsc28gYWRkZWQgYSBudW1iZXIgb2YgbmV3IHBvcnRzLAogICB3aGlj aCBicmluZ3MgdGhlaXIgY291bnQgaW4gdGhlIEZyZWVCU0QgUG9ydHMgQ29sbGVjdGlvbiB0byA0 MDIsIGFuZAogICBub3cgSGFza2VsbCBwb3J0cyBwbGF5IG5pY2VyIHdpdGggcG9ydG1hc3Rlcig4 KS1iYXNlZCB1cGdyYWRlcy4KCiAgIEluIGNvb3BlcmF0aW9uIHdpdGggS29uc3RhbnRpbiBCZWxv dXNvdiBhbmQgRGltaXRyeSBBbmRyaWMsIHdlIGhhdmUKICAgbWFuYWdlZCB0byB1bmJyZWFrIHRo ZSBidWlsZCBvZiBHSEMgb24gMzItYml0IDEwLnggc3lzdGVtcywgc28gd2UgaGF2ZQogICBwYWNr YWdlcyBmb3IgMTAueCBhZ2Fpbi4gSG93ZXZlciwgaXQgdHVybmVkIG91dCB0aGF0IHRoaXMgYnVn IChpbgogICB0aHJlYWQgc2lnbmFsIGRlbGl2ZXJ5KSBjYW4gYWxzbyBhZmZlY3QgdGhlIGJ1aWxk aW5nIHByb2Nlc3MgZm9yIG90aGVyCiAgIHBsYXRmb3JtcyBhcyB3ZWxsLCB3aGljaCBleHBsYWlu cyBzb21lIG9mIHRoZSBzdHJhbmdlIGJ1aWxkIGJyZWFrYWdlcwogICBvdXIgdXNlcnMgZXhwZXJp ZW5jZWQgaW4gdGhlIHBhc3QuCgogICBXZSBoYXZlIGFsc28gbGVhcm5lZCB0aGF0IHRoZXJlIGlz IG9uZ29pbmcgd29yayBpbiB0aGUgR0hDIHVwc3RyZWFtCiAgIHdoaWNoIHdpbGwgYWxsb3cgdXMg dG8gcHJvdmlkZSBzdXBwb3J0IGZvciBidWlsZGluZyB3aXRoIENsYW5nIG5hdGl2ZWx5CiAgIG9u Y2UgR0hDIDcuOCBiZWNvbWVzIHBhcnQgb2YgdGhlIEhhc2tlbGwgUGxhdGZvcm0uCgpPcGVuIHRh c2tzOgoKICAgIDEuIFRlc3QgZXhwZXJpbWVudGFsIENsYW5nL0xMVk0gY29kZSBnZW5lcmF0aW9u IHN1cHBvcnQgdG8gZW5hYmxlIGl0CiAgICAgICBieSBkZWZhdWx0LgogICAgMi4gQ29tbWl0IHBl bmRpbmcgSGFza2VsbCBwb3J0cyB0byB0aGUgcG9ydHMgdHJlZS4KICAgIDMuIFBvcnQgbW9yZSAo cG9wdWxhcikgQ2FiYWwgcGFja2FnZXMuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEIFBvc3RtYXN0 ZXIgVGVhbQoKICAgQ29udGFjdDogRnJlZUJTRCBQb3N0bWFzdGVyIFRlYW0gPHBvc3RtYXN0ZXJA RnJlZUJTRC5vcmc+CgogICBJbiB0aGUgc2Vjb25kIHF1YXJ0ZXIgb2YgMjAxMywgdGhlIEZyZWVC U0QgUG9zdG1hc3RlciBUZWFtIGhhcwogICBpbXBsZW1lbnRlZCB0aGUgZm9sbG93aW5nIGl0ZW1z IHRoYXQgbWF5IGJlIGludGVyZXN0IG9mIHRoZSBnZW5lcmFsCiAgIHB1YmxpYzoKCiAgICAgKiBX aXRoIGhlbHAgZnJvbSBjbHVzdGVyYWRtLCBmb3VuZCB0aGF0IHVuYm91bmQgKHRoZSByZXNvbHZl ciB1c2VkIG9uCiAgICAgICBteDEgYW5kIG14MikgaXMgY29uZmlndXJlZCB0byBwZXJmb3JtIERO U1NFQyB2YWxpZGF0aW9uIHdoaWNoCiAgICAgICBpbXBsaWVzIHRoYXQgaWYgYSBzaWduZWQgem9u ZSBmYWlscyB2YWxpZGF0aW9uLCB1bmJvdW5kIHJlZnVzZXMgdG8KICAgICAgIHVzZSB0aGUgaW5m b3JtYXRpb24uIFRoaXMgaGFkIGNhdXNlZCBvbmUgcGVyc29uIHRvIGJlIHVuYWJsZSB0bwogICAg ICAgZXhjaGFuZ2UgZW1haWwgd2l0aCBGcmVlQlNELm9yZyB1bnRpbCB0aGUgem9uZSBzaWduYXR1 cmVzIHdlcmUKICAgICAgIHJlZnJlc2hlZC4KICAgICAqIENyZWF0ZWQgdGhlIGZyZWVic2QtZHRy YWNlIG1haWxpbmcgbGlzdCwgcmVxdWVzdGVkIGJ5IEdlb3JnZQogICAgICAgTmV2aWxsZS1OZWls LgogICAgICogUmVzdXJyZWN0ZWQgdGhlIGZyZWVic2QtdGVzdGluZyBtYWlsaW5nIGxpc3QsIHJl cXVlc3RlZCBieSBHYXJyZXR0CiAgICAgICBDb29wZXIuCiAgICAgKiBDcmVhdGVkIHRoZSBmcmVl YnNkLXRleCBtYWlsaW5nIGxpc3QsIHJlcXVlc3RlZCBieSBIaXJva2kgU2F0by4KICAgICAqIElu IHJlc3BvbnNlIHRvIGFub3RoZXIgY29tbWVudCB0aGF0IG91ciBtZXNzYWdlIHJlamVjdGlvbiBt ZXNzYWdlCiAgICAgICB3YXMgdW5jbGVhciBpbiB0aGUgY2FzZSB0aGF0IGdyZXlsaXN0aW5nIHdh cyB0aGUgcmVhc29uLCByZS13b3JkZWQKICAgICAgIHRoYXQgbWVzc2FnZS4KICAgICAqIEF1Z21l bnRlZCB0aGUgYWxsb3dhYmxlIE1JTUUgdHlwZXMgZm9yIHNlY3RlYW0gd2l0aCB0aGUgZm9sbG93 aW5nCiAgICAgICB0byBwZXJtaXQgc2VuZGluZyBlbmNyeXB0ZWQgbWVzc2FnZXM6CiAgICAgICAg ICArIGFwcGxpY2F0aW9uL3BncC1lbmNyeXB0ZWQKICAgICAgICAgICsgYXBwbGljYXRpb24vcGtj czctZW5jcnlwdGVkCiAgICAgICAgICArIGFwcGxpY2F0aW9uL3gtcGtjczctZW5jcnlwdGVkCiAg ICAgICAgICArIG11bHRpcGFydC9lbmNyeXB0ZWQKICAgICAqIEJlZ2FuIHJlcGxhY2luZyBmcmVl YnNkLW1vemlsbGEgd2l0aCBmcmVlYnNkLWdlY2tvLgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJTRCBS ZWxlYXNlIEVuZ2luZWVyaW5nIFRlYW0KCiAgIFVSTDogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9y ZWxlYXNlcy84LjRSL2VycmF0YS5odG1sCiAgIFVSTDogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9y ZWxlYXNlcy85LjJSL3NjaGVkdWxlLmh0bWwKCiAgIENvbnRhY3Q6IEZyZWVCU0QgUmVsZWFzZSBF bmdpbmVlcmluZyBUZWFtIDxyZUBGcmVlQlNELm9yZz4KCiAgIFRoZSBGcmVlQlNEIDguNC1SRUxF QVNFIGN5Y2xlIGNvbXBsZXRlZCBvbiBKdW5lIDcsIDIwMTMsIGFwcHJveGltYXRlbHkKICAgdHdv IG1vbnRocyBiZWhpbmQgdGhlIG9yaWdpbmFsIHNjaGVkdWxlLiBQbGVhc2UgYmUgc3VyZSB0byBy ZWFkIHRoZQogICBFcnJhdGEgTm90aWNlcyBmb3IgYW55IHBvc3QtcmVsZWFzZSBpc3N1ZXMgZGlz Y292ZXJlZCBhZnRlcgogICA4LjQtUkVMRUFTRS4KCiAgIFRoZSBGcmVlQlNEIDkuMi1SRUxFQVNF IHByb2Nlc3Mgd2lsbCBiZWdpbiBKdWx5IDYsIDIwMTMuIFVubGVzcyBhbnkKICAgY3JpdGljYWwg aXNzdWVzIGFyaXNlLCBGcmVlQlNEIDkuMi1SRUxFQVNFIGlzIGV4cGVjdGVkIHRvIGJlIGF2YWls YWJsZQogICBsYXRlIEF1Z3VzdCBvciBlYXJseSBTZXB0ZW1iZXIuCgogICBVc2VycyB0cmFja2lu ZyB0aGUgRnJlZUJTRCA5LlggYnJhbmNoIGFyZSBlbmNvdXJhZ2VkIHRvIHRlc3QgdGhlIC1CRVRB CiAgIGFuZCAtUkMgYnVpbGRzIHdoZW5ldmVyIHBvc3NpYmxlLCBhbmQgcHJvdmlkZSBmZWVkYmFj ayBhbmQgcmVwb3J0CiAgIGlzc3VlcyB0byB0aGUgZnJlZWJzZC1zdGFibGUgbWFpbGluZyBsaXN0 LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwoKRnJlZUJTRCBTZWN1cml0eSBUZWFtCgogICBDb250YWN0OiBGcmVl QlNEIFNlY3VyaXR5IFRlYW0gPHNlY3RlYW1ARnJlZUJTRC5vcmc+CgogICBPbiBBcHJpbCAxNXRo IERhZy1FcmxpbmcgU23DuHJncmF2IGFuZCBYaW4gTGkgdG9vayBvdmVyIGFzIHNlY3VyaXR5CiAg IG9mZmljZXJzIGZvciB0aGUgRnJlZUJTRCBQcm9qZWN0LCBhbmQgdGhlIHRlYW0gd2VsY29tZWQg UWluZyBMaSBiYWNrIHRvCiAgIHRoZSB0ZWFtIGluIEp1bmUuIFRoaXMgcmVwb3J0IGJyaWVmbHkg c3VtbWFyaXplcyB0aGUgd29yayBvZiB0aGUKICAgU2VjdXJpdHkgVGVhbSBmcm9tIEFwcmlsIHVu dGlsIHRoZSBlbmQgb2YgSnVuZS4KCiAgIFRoZSBTZWN1cml0eSBUZWFtIGhhcyByZWxlYXNlZCB0 aGUgZm9sbG93aW5nIGFkdmlzb3JpZXM6CgogICAgICogRnJlZUJTRC1TQS0xMzowNS5uZnNzZXJ2 ZXI6IEluc3VmZmljaWVudCBpbnB1dCB2YWxpZGF0aW9uIGluIHRoZQogICAgICAgTkZTIHNlcnZl ciAobmZzZCg4KSksIHJlcG9ydGVkIGJ5IEFkYW0gTm93YWNraS4KICAgICAqIEZyZWVCU0QtU0Et MTM6MDYubW1hcDogUHJpdmlsZWdlIGVzY2FsYXRpb24gdmlhIG1tYXAoKSwgcmVwb3J0ZWQgYnkK ICAgICAgIEtvbnN0YW50aW4gQmVsb3Vzb3YuCgogICBUaGUgU2VjdXJpdHkgVGVhbSBoYXMgY29u dHJpYnV0ZWQgdG8gdGhlIGZvbGxvd2luZyBlcnJhdGEgbm90aWNlczoKCiAgICAgKiBGcmVlQlNE LUVOLTEzOjAyLnZ0bmV0OiBGcmFtZXMgYXJlIG5vdCBwcm9wZXJseSBmb3J3YXJkZWQgdG8KICAg ICAgIHZ0bmV0KDQpIHdoZW4gdHdvIG9yIG1vcmUgTUFDIGFkZHJlc3NlcyBhcmUgY29uZmlndXJl ZCBvbiBRRU1VCiAgICAgICAxLjQuMCBhbmQgbGF0ZXIgaW4gOC40LVJFTEVBU0UsIHJlcG9ydGVk IGJ5IEp1bGlhbiBTdGVja2xpbmEuCiAgICAgKiBGcmVlQlNELUVOLTEzOjAxLmZ4cDogSW5pdGlh bGl6YXRpb24gb2YgZnhwKDQpIG5ldHdvcmsgaW50ZXJmYWNlcwogICAgICAgcmVzdWx0cyBpbiBh biBpbmZpbml0ZSBsb29wIHdpdGggZGhjbGllbnQoOCkgaW4gOC40LVJFTEVBU0UsCiAgICAgICBy ZXBvcnRlZCBieSBNaWNoYWVsIEwuIFNxdWlyZXMuCgogICBQZXIgdGhlIHJlcXVlc3Qgb2YgQmFw dGlzdGUgRGFyb3Vzc2luLCB0aGUgU2VjdXJpdHkgVGVhbSBoYXMgYWxzbwogICByZXZpZXdlZCB0 aGUgc291cmNlIGNvZGUgb2YgUG91ZHJpZXJlLCB0aGUgcG9ydCBidWlsZCBhbmQgdGVzdCBzeXN0 ZW0KICAgd2hpY2ggaXMgcGxhbm5lZCB0byBiZSB1c2VkIGZvciBwcm9kdWNpbmcgcGtnKDgpICgi bmV3LXN0eWxlIikgcGFja2FnZXMKICAgb24gdGhlIEZyZWVCU0QgY2x1c3Rlci4KICAgICBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KCkdOT01FL0ZyZWVCU0QKCiAgIFVSTDogaHR0cDovL3d3dy5GcmVlQlNELm9yZy9nbm9t ZS8KCiAgIENvbnRhY3Q6IEZyZWVCU0QgR05PTUUgVGVhbSA8Z25vbWVARnJlZUJTRC5vcmc+Cgog ICBUaGUgR05PTUUgMy42IHdvcmsgaXMgbW92aW5nIGFsb25nIHNsb3dseSBidXQgc3RlYWRpbHku IEFsbW9zdCBhbGwgdGhlCiAgIEdOT01FIDMgZGVza3RvcCBwb3J0cyB3ZXJlIHVwZGF0ZWQgdG8g dGhlaXIgY29ycmVzcG9uZGluZyAzLjYgdmVyc2lvbnMuCgogICBBIGJpZyBjaGFsbGVuZ2Ugd2Fz IHRha2VuIGJ5IGdldHRpbmcgdGhlIHdlYmtpdC1ndGszIHBvcnQgdXBkYXRlZCB0bwogICAyLjAu My4gQ3VycmVudGx5IHByb2dyYW1zIHVzaW5nIHdlYmtpdC1ndGszIGNyYXNoIG9uIGxhdW5jaC4g SXQgaXMgaGFyZAogICB0byBmaW5kIHRoZSBjYXVzZXMgYXMgdGhlIGRlYnVnIGJ1aWxkIG9mIHdl YmtpdC1ndGsgZWl0aGVyIHJ1bnMgb3V0IG9mCiAgIG1lbW9yeSBvciBkaXNrIHNwYWNlIG9uIHRo ZSBkZXZlbG9wZW1lbnQgc3lzdGVtIHVzZWQuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFVwZGF0ZSB0 aGUgRnJlZUJTRCBHTk9NRSB3ZWJzaXRlIHdpdGggcmVjZW50IGNoYW5nZXMgaW4gdGhlIHBvcnRz CiAgICAgICB0cmVlLCBhZGQgbmV3IGl0ZW1zIGluIHByZXBhcmF0aW9uIGZvciBHTk9NRSAzIGFu ZCBNYXRlLCBldGMuCiAgICAyLiBNZXJnZSBHbGliIDIuMzYsIEdUSysgMy44IGFuZCByZWxhdGVk IHBvcnRzIGJhY2sgdG8gdGhlIFBvcnRzCiAgICAgICBDb2xsZWN0aW9uLgogICAgMy4gQ29udGlu dWUgd29yayBvbiBHTk9NRSAzLjYsIGZpeCBidWdzIGFuZCB3cml0ZSBjb2RlIGZvciBtaXNzaW5n CiAgICAgICBmZWF0dXJlcy4KICAgIDQuIENvbXBsZXRlIHRoZSBwb3J0IG9mIE1BVEUuCiAgICAg X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCgpJbXByb3ZlZCBUQ1AgU1lOIENvb2tpZXMKCiAgIFVSTDogaHR0cDovL2RvY3Mu ZnJlZWJzZC5vcmcvY2dpL2dldG1zZy5jZ2k/ZmV0Y2g9Mjg4MzgrMCtjdXJyZW50L2ZyZWVic2Qt bmV0CiAgIFVSTDogaHR0cDovL3Blb3BsZS5mcmVlYnNkLm9yZy9+YW5kcmUvc3luY29va2llLTIw MTMwNzA4LmRpZmYKCiAgIENvbnRhY3Q6IEFuZHJlIE9wcGVybWFubiA8YW5kcmVARnJlZUJTRC5v cmc+CgogICBXZSBoYXZlIGhhZCBhIFNZTiBjb29raWUgaW1wbGVtZW50YXRpb24gZm9yIHF1aXRl IHNvbWUgdGltZSBub3cgYnV0IGl0CiAgIGhhcyBzb21lIGxpbWl0YXRpb25zIHdpdGggY3VycmVu dCByZWFsaXRpZXMgZm9yIHdpbmRvdyBzY2FsaW5nIGFuZCBTQUNLCiAgIGVuY29kaW5nIHRoZSBp biB0aGUgZmV3IGF2YWlsYWJsZSBiaXRzLgoKICAgVGhpcyBwYXRjaCB1cGRhdGVzIGFuZCBpbXBy b3ZlcyBTWU4gY29va2llcyBtYWlubHkgYnk6CgogICAgMS4gRW5jb2Rpbmcgb2YgTVNTLCBXU0NB TEUgKHdpbmRvdyBzY2FsaW5nKSBhbmQgU0FDSyBpbnRvIHRoZSBJU04KICAgICAgIChpbml0aWFs IHNlcXVlbmNlIG51bWJlcikgd2l0aG91dCB0aGUgdXNlIG9mIHRpbWVzdGFtcCBiaXRzLgogICAg Mi4gU3dpdGNoaW5nIHRvIHRoZSB2ZXJ5IGZhc3QgYW5kIGNyeXB0b2dyYXBoaWNhbGx5IHN0cm9u ZyBTaXBIYXNoLTItNAogICAgICAgaGFzaCBNQUMgYWxnb3JpdGhtIHRvIHByb3RlY3QgdGhlIFNZ TiBjb29raWUgYWdhaW5zdCBmb3JnZXJ5LgoKICAgVGhlIGNvbW1vbiBwYXJhbWV0ZXJzIHVzZWQg b24gVENQIHNlc3Npb25zIGhhdmUgY2hhbmdlZCBxdWl0ZSBhIGJpdAogICBzaW5jZSBTWU4gY29v a2llcyB3ZXJlIGludmVudGVkIHNvbWUgMTcgeWVhcnMgYWdvLiBUb2RheSB3ZSBoYXZlIGEgbG90 CiAgIG1vcmUgYmFuZHdpZHRoIHdoaWNoIG1ha2VzIHVzZSBvZiB3aW5kb3cgc2NhbGluZyBhbG1v c3QgbWFuZGF0b3J5LiBBbHNvCiAgIFNBQ0sgaGFzIGJlY29tZSBzdGFuZGFyZCBhcyBpdCBtYWtl cyByZWNvdmVyaW5nIGZyb20gcGFja2V0IGxvc3MgbXVjaAogICBtb3JlIGVmZmljaWVudC4KCiAg IFRoZSBvcmlnaW5hbCBTWU4gY29va2llcyBtZXRob2Qgb25seSBzdG9yZWQgYW4gaW5kZXhlZCBN U1MgdmFsdWUgaW4gdGhlCiAgIGNvb2tpZS4gVGhpcyBvYnZpb3VzbHkgaXMgbm90IHN1ZmZpY2ll bnQgYW55IG1vcmUgYW5kIGJyZWFrcyBpbiB0aGUKICAgcHJlc2VuY2Ugb2YgV1NDQUxFLiBXU0NB TEUgaW5mb3JtYXRpb24gaXMgb25seSBleGNoYW5nZWQgZHVyaW5nIFNZTiBhbmQKICAgU1lOLUFD Sy4gSWYgd2UgY2Fubm90IGtlZXAgdHJhY2sgb2YgaXQgdGhlbiB3ZSBzZXZlcmVseSB1bmRlcmVz dGltYXRlCiAgIHRoZSBhdmFpbGFibGUgc2VuZCBvciByZWNlaXZlIHdpbmRvdywgY29tcG91bmRl ZCB3aXRoIHRoZSBmYWN0IHRoYXQKICAgd2l0aCBsYXJnZSB3aW5kb3cgc2NhbGluZyB0aGUgd2lu ZG93IHNpemUgaW5mb3JtYXRpb24gb24gdGhlIFRDUAogICBzZWdtZW50IGhlYWRlciB3b3VsZCBi ZSBldmVuIGxvd2VyIG51bWVyaWNhbGx5LgoKICAgQSBudW1iZXIgb2YgeWVhcnMgYmFjaywgU1lO IGNvb2tpZXMgd2VyZSBleHRlbmRlZCB0byBzdG9yZSB0aGUKICAgYWRkaXRpb25hbCBzdGF0ZSBp biB0aGUgVENQIHRpbWVzdGFtcCBmaWVsZHMsIGlmIGF2YWlsYWJsZSBvbiBhCiAgIGNvbm5lY3Rp b24uIEl0IGhhcyBiZWVuIGFkb3B0ZWQgYnkgTGludXggYXMgd2VsbC4gV2hpbGUgdGltZXN0YW1w cyBhcmUKICAgY29tbW9uIGFtb25nIHRoZSBCU0QsIExpbnV4IGFuZCBvdGhlciBVbml4IHN5c3Rl bXMsIFdpbmRvd3MgbmV2ZXIKICAgZW5hYmxlZCB0aGVtIGJ5IGRlZmF1bHQsIHRodXMgdGhleSBh cmUgbm90IHByZXNlbnQgZm9yIHRoZSB2YXN0CiAgIG1ham9yaXR5IG9mIGNsaWVudHMgc2VlbiBv biB0aGUgSW50ZXJuZXQuCgogICBUaGUgbmV3IGltcHJvdmVtZW50IGluIHRoaXMgcGF0Y2ggbW92 ZXMgYWxsIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBpbnRvCiAgIHRoZSBJU04gYWdhaW4sIHJlbW92 aW5nIHRoZSBuZWVkIGZvciB0aW1lc3RhbXBzLiBCb3RoIHRoZSBNU1MgYW5kIHNlbmQKICAgV1ND QUxFIGFyZSBzdG9yZWQgaW4gMyBiaXQgaW5kZXhlZCBmb3JtIHRvZ2V0aGVyIHdpdGggYSBzaW5n bGUgYml0IGZvcgogICBTQUNLLiBXaGlsZSB3ZSBjYW5ub3QgcmVwcmVzZW50IGFsbCBwb3NzaWJs ZSBNU1MgYW5kIFdTQ0FMRSB2YWx1ZXMgaW4KICAgb25seSAzIGJpdHMgZWFjaCAoYm90aCBhcmUg MTYtYml0IGZpZWxkcyBpbiB0aGUgVENQIGhlYWRlciksIGl0IHR1cm5zCiAgIG91dCB0aGF0IGlz IG5vdCBhY3R1YWxseSBuZWNlc3NhcnkuCgogICBUaGVzZSBpbXByb3ZlbWVudHMgYWxsb3cgb25l IHRvIHJ1biB3aXRoIFNZTiBjb29raWVzIG9ubHkgb24KICAgSW50ZXJuZXQtZmFjaW5nIHNlcnZl cnMuIEhvd2V2ZXIgd2hpbGUgU1lOIGNvb2tpZXMgYXJlIGNhbGN1bGF0ZWQgYW5kCiAgIHNlbnQg YWxsIHRoZSB0aW1lLCB0aGV5IGFyZSBvbmx5IHVzZWQgd2hlbiB0aGUgc3luIGNhY2hlIG92ZXJm bG93cyBkdWUKICAgdG8gYXR0YWNrcyBvciBvdmVybG9hZC4gSW4gdGhhdCBjYXNlIHRob3VnaCwg eW91IGNhbiByZXN0IGFzc3VyZWQgdGhhdAogICBubyBzaWduaWZpY2FudCBkZWdyYWRhdGlvbiBp biBUQ1AgY29ubmVjdGlvbiBzZXR1cCBoYXBwZW5zIGFueSBtb3JlIGFuZAogICB0aGF0IGV2ZW4g V2luZG93cyBjbGllbnRzIGNhbiBtYWtlIHVzZSBvZiB3aW5kb3cgc2NhbGluZyBhbmQgU0FDSy4K Ck9wZW4gdGFza3M6CgogICAgMS4gQWRkaXRpb25hbCB0ZXN0aW5nIG9uIGJ1c3kgc2VydmVycy4K ICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KCkludGVsIElPTU1VIChWVC1kLCBETUFSKSBTdXBwb3J0CgogICBVUkw6 IGh0dHA6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL2ludGVsbGlnZW50LXN5c3Rl bXMvaW50ZWwtdGVjaG5vbG9neS92dC1kaXJlY3RlZC1pby1zcGVjLmh0bWwKICAgVVJMOiBodHRw Oi8vbGlzdHMuZnJlZWJzZC5vcmcvcGlwZXJtYWlsL2ZyZWVic2QtYXJjaC8yMDEzLU1heS8wMTQz NjguaHRtbAogICBVUkw6IGh0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfmtpYi9taXNjL2RtYXIu MS5wYXRjaAoKICAgQ29udGFjdDogS29uc3RhbnRpbiBCZWxvdXNvdiA8a2liQEZyZWVCU0Qub3Jn PgoKICAgSW50ZWwgVlQtZCBpcyBhIHNldCBvZiBleHRlbnNpb25zIHRoYXQgd2VyZSBvcmlnaW5h bGx5IGRlc2lnbmVkIHRvCiAgIGFsbG93IHZpcnR1YWxpemluZyBkZXZpY2VzLiBJdCBhbGxvd3Mg c2FmZSBhY2Nlc3MgdG8gcGh5c2ljYWwgZGV2aWNlcwogICBmcm9tIHZpcnR1YWwgbWFjaGluZXMg YW5kIGNhbiBhbHNvIGJlIHVzZWQgZm9yIGJldHRlciBpc29sYXRpb24gYW5kCiAgIHBlcmZvcm1h bmNlIGluY3JlYXNlcy4gQSBWVC1kIGRyaXZlciB3YXMgZGV2ZWxvcGVkIHRoYXQgaW1wbGVtZW50 cyB0aGUKICAgYnVzZG1hKDkpIGludGVyZmFjZSB1c2luZyB0aGUgRE1BIFJlbWFwIHVuaXRzIChE TUFScykgZm91bmQgaW4gY3VycmVudAogICBJbnRlbCBjaGlwc2V0cy4gVGhlIGRyaXZlciBwcm92 aWRlcyByZWxpYWJpbGl0eSBhbmQgc2VjdXJpdHkKICAgaW1wcm92ZW1lbnRzIGZvciB0aGUgc3lz dGVtIGJ5IGZhY2lsaXRhdGluZyByZXN0cmljdGVkIGFjY2VzcyB0byBtYWluCiAgIG1lbW9yeSBm cm9tIGJ1c21hc3RlcmluZyBkZXZpY2VzLgoKICAgSXQgYWxzbyBlbGltaW5hdGVzIGJvdW5jZSBi dWZmZXJpbmcgKGNvcHlpbmcpIGJ5IGFsbG9jYXRpbmcgcmVtYXBwZWQKICAgcmVnaW9ucyB0aGF0 IHNhdGlzZnkgYSBkZXZpY2UncyBhY2Nlc3MgbGltaXRhdGlvbnMuCgogICBXaXRoIGFkZGl0aW9u YWwgd29yayB0byBkZWZpbmUgYSBzdWl0YWJsZSBpbnRlcmZhY2UgdGhlIFZULWQgZHJpdmVyCiAg IHdpbGwgYWxzbyBwcm92aWRlIFBDSSBwYXNzLXRocm91Z2ggZnVuY3Rpb25hbGl0eSBmb3IgaHlw ZXJ2aXNvcnMuCgogICBUaGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IFRoZSBGcmVlQlNEIEZv dW5kYXRpb24uCgpPcGVuIHRhc2tzOgoKICAgIDEuIEltcGxlbWVudCB3b3JrYXJvdW5kcyBmb3Ig Y2hpcHNldCBlcnJhdGEuCiAgICAyLiBDb21taXQgdG8gSEVBRCBhZnRlciBhZGRpdGlvbmFsIHRl c3RpbmcuCiAgICAzLiBSZWJhbGFuY2UgTVNJL01TSS1YIHVzaW5nIGludGVycnVwdCByZW1hcHBp bmcgdW5pdCwgYWxzbyByZXF1aXJlZAogICAgICAgZm9yIHgyQVBJQyB1c2Ugb24gYmlnIG1hY2hp bmVzLgogICAgNC4gSW50ZWdyYXRlIHdpdGggdGhlIEludGVsIEdQVSBNTVUgYW5kIGhhbmRsZSBJ cm9ubGFrZSBhbmQKICAgICAgIFNhbmR5QnJpZGdlIGVycmF0YSBmb3IgdGhlIEdGWFZUZCB1bml0 LgogICAgNS4gUHJvdmlkZSBhbiBpbnRlcmZhY2UgZm9yIFZNTSAoaHlwZXJ2aXNvcnMpLgogICAg Ni4gQ29uc2lkZXIgaW1wbGVtZW50aW5nIGEgZHJpdmVyIGZvciBBTUQncyBJT01NVS4KICAgICBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KCktERS9GcmVlQlNECgogICBVUkw6IGh0dHA6Ly9GcmVlQlNELmtkZS5vcmcKICAg VVJMOiBodHRwOi8vRnJlZUJTRC5rZGUub3JnL2FyZWE1MS5waHAKCiAgIENvbnRhY3Q6IEtERSBG cmVlQlNEIDxrZGVARnJlZUJTRC5vcmc+CgogICBUaGUgS0RFL0ZyZWVCU0QgVGVhbSBoYXMgY29u dGludWVkIHRvIGltcHJvdmUgdGhlIGV4cGVyaWVuY2Ugb2YgS0RFCiAgIHNvZnR3YXJlIGFuZCBR dCB1bmRlciBGcmVlQlNELiBEdXJpbmcgdGhpcyBxdWFydGVyLCB0aGUgdGVhbSBoYXMga2VwdAog ICBtb3N0IG9mIHRoZSBLREUgYW5kIFF0IHBvcnRzIHVwLXRvLWRhdGUsIHdvcmtpbmcgb24gdGhl IGZvbGxvd2luZwogICByZWxlYXNlczoKCiAgICAgKiBLREUgU0M6IDQuMTAuMiwgNC4xMC4zLCA0 LjEwLjQKICAgICAqIFF0OiA1LjAuMiAoYXJlYTUxKQogICAgICogUHlRdDogNC4xMC4yOyBRU2Np bnRpbGxhIDIuNy4yOyBTSVA6IDQuMTQuNwogICAgICogS0RldmVsb3A6IDQuNS4xCiAgICAgKiBD YWxsaWdyYTogMi42LjIKICAgICAqIENNYWtlOiAyLjguMTEuMQogICAgICogRGlnaWthbSAoYW5k IEtJUEktcGx1Z2lucyk6IDMuMS4wLCAzLjIuMAogICAgICogS0RFIFRlbGVwYXRoeTogMC42LjAs IDAuNi4xCgogICBBcyBhIHJlc3VsdCAtLSBhY2NvcmRpbmcgdG8gUG9ydFNjb3V0IC0tIGtkZUAg aGFzIDQ3MyBwb3J0cyAodXAgZnJvbQogICA0MzEpLCBvZiB3aGljaCA5OC43MyUgYXJlIHVwLXRv LWRhdGUgKHVwIGZyb20gOTMuNSUpLiBpWHN5c3RlbXMgSW5jLgogICBjb250aW51ZXMgdG8gcHJv dmlkZWQgYSBtYWNoaW5lIGZvciB0aGUgdGVhbSB0byBidWlsZCBwYWNrYWdlcyBhbmQgdG8KICAg dGVzdCB1cGRhdGVzLiBpWHN5c3RlbXMgSW5jLiBoYXMgYmVlbiBwcm92aWRpbmcgdGhlIEtERS9G cmVlQlNEIFRlYW0KICAgd2l0aCBzdXBwb3J0IGZvciBxdWl0ZSBhIGxvbmcgdGltZSBhbmQgd2Ug YXJlIHZlcnkgZ3JhdGVmdWwgZm9yIHRoYXQuCiAgIFRoaXMgcXVhcnRlciwgd2Ugd291bGQgYWxz byBsaWtlIHRvIHRoYW5rIFN0ZXZlIFdpbGxzIChzd2lsbHNAKSBmb3IKICAgcHJvdmlkaW5nIGFj Y2VzcyB0byBhbm90aGVyIG1hY2hpbmUgc28gdGhhdCB3ZSBjYW4gZG8gb3VyIHdvcmsgZXZlbgog ICBmYXN0ZXIuCgogICBXaGlsZSBhIGdyZWF0IGRlYWwgb2YgdGhlIHRlYW0ncyBlZmZvcnRzIGFy ZSBmb2N1c2VkIHRvd2FyZHMgcGFja2FnaW5nCiAgIHJlbGVhc2VkIGNvZGUsIHdlIGFsc28gdGFr ZSBhIHByb2FjdGl2ZSBzdGFuZCBpbiBtYWtpbmcgc3VyZSBmdXR1cmUKICAgdmVyc2lvbnMgb2Yg dGhlIHNvZnR3YXJlIHdlIHBvcnQgaXMgYWxzbyBnb2luZyB0byB3b3JrIHdlbGwgb24gRnJlZUJT RC4KICAgVGhpcyBpbnZvbHZlcyBiZWluZyBpbiBjbG9zZSBjb250YWN0IHdpdGggdXBzdHJlYW0s IHJhaXNpbmcgYXdhcmVuZXNzCiAgIG9mIEZyZWVCU0QgYXMgYW4gYWN0aXZlIHByb2plY3QgYW5k IGFsc28gc2VuZGluZyBhY3R1YWwgcGF0Y2hlcyB0aGF0CiAgIG1vc3Qgb2YgdGhlIHRpbWUgYmVu ZWZpdCBtYW55IG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGJlc2lkZXMgRnJlZUJTRAogICBpdHNl bGYuIEluIHRoaXMgcmVnYXJkLCB3ZSBoYXZlIGJlZW4gZGVkaWNhdGluZyBhIGxvdCBvZiB0aW1l IG1ha2luZwogICBzdXJlIGJvdGggY2xhbmcgYW5kIGxpYmMrKyBhcmUgZnVsbHkgc3VwcG9ydGVk IGluIEtERSBhbmQgUXQuIE5vdCBvbmx5CiAgIGhhcyB0aGlzIHJlc3VsdGVkIGluIG1hbnkgcGF0 Y2hlcyBiZWluZyBzZW50IHRvIHRoZXNlIHByb2plY3RzLCBidXQgdGhlCiAgIGV4cG9zdXJlIHRv IHRoZXNlIGxhcmdlIGNvZGUgYmFzZXMgaGF2ZSBiZWVuIGJlbmVmaWNpYWwgdG8gdGhlCiAgIENs YW5nLW9uLUZyZWVCU0QgcHJvamVjdCBhcyB3ZWxsLiBEaW1pdHJ5IEFuZHJpYyAoZGltQCkgaGFz IGJlZW4gb2YKICAgZ3JlYXQgaGVscCBhcyBhIHBvaW50IG9mIGNvbnRhY3QgZm9yIGFsbCB0aGUg aXNzdWVzIHdlIGhhdmUgZmFjZWQuCgogICBBcyB1c3VhbCwgdGhlIHRlYW0gaXMgYWx3YXlzIGxv b2tpbmcgZm9yIG1vcmUgdGVzdGVycyBhbmQgcG9ydGVycyBzbwogICBwbGVhc2UgY29udGFjdCB1 cyBhbmQgdmlzaXQgb3VyIGhvbWUgcGFnZS4gSXQgd291bGQgYmUgZXNwZWNpYWxseQogICB1c2Vm dWwgdG8gaGF2ZSBtb3JlIGhlbHBpbmcgaGFuZHMgb24gdGFza3Mgc3VjaCBhcyBnZXR0aW5nIHJp ZCBvZiB0aGUKICAgZGVwZW5kZW5jeSBvbiB0aGUgZGVmdW5jdCBIQUwgcHJvamVjdCBhbmQgcHJv dmlkaW5nIGludGVncmF0aW9uIHdpdGgKICAgS0RFJ3MgQmx1ZWRldmlsIEJsdWV0b290aCBpbnRl cmZhY2UuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFVwZGF0ZSBvdXQtb2YtZGF0ZSBwb3J0cywgc2Vl IFBvcnRTY291dCBmb3IgYSBsaXN0LgogICAgMi4gV29yayBvbiBLREUgNC4xMSBhbmQgUXQgNS4K ICAgIDMuIE1ha2Ugc3VyZSB0aGUgd2hvbGUgS0RFIHN0YWNrIChpbmNsdWRpbmcgUXQpIGJ1aWxk cyBhbmQgd29ya3MKICAgICAgIGNvcnJlY3RseSB3aXRoIGNsYW5nIGFuZCBsaWJjKysuCiAgICA0 LiBSZW1vdmUgdGhlIGRlcGVuZGVuY3kgb24gSEFMLgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTExEQiBEZWJ1 Z2dlciBQb3J0CgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9sbGRiCgogICBDb250 YWN0OiBFZCBNYXN0ZSA8ZW1hc3RlQEZyZWVCU0Qub3JnPgoKICAgTExEQiBpcyB0aGUgdGhlIGRl YnVnZ2VyIHByb2plY3QgaW4gdGhlIExMVk0gZmFtaWx5LiBJdCBzdXBwb3J0cyB0aGUKICAgTWFj IE9TIFgsIExpbnV4LCBhbmQgRnJlZUJTRCBwbGF0Zm9ybXMsIGJ1dCB0aGUgbGF0dGVyIGhhcyBy ZWNlbnRseQogICBzdWZmZXJlZCB1bmRlciBhIGxhY2sgb2YgbWFpbnRlbmFuY2UuCgogICBBZnRl ciBjbGVhbmluZyBiaXQgcm90IGluIExMREIncyBGcmVlQlNEIHN1cHBvcnQsIGl0IGFnYWluIGJ1 aWxkcyBhbmQKICAgY2FuIGJlIHVzZWQgZm9yIGJhc2ljIGRlYnVnZ2luZyBvZiBzaW5nbGUtdGhy ZWFkZWQgYXBwbGljYXRpb25zLiBUaGUKICAgdGVzdCBzdWl0ZSBhbHNvIHJ1bnMgdG8gY29tcGxl dGlvbiwgYWx0aG91Z2ggaXQgZXhwZXJpZW5jZXMgYSBsYXJnZQogICBudW1iZXIgb2YgZmFpbHVy ZXMuCgogICBFZCBNYXN0ZSBoYXMgYmVlbiBncmFudGVkIGFuIExMREIgY29tbWl0IGJpdCwgYW5k IGlzIG5vdyBjb21taXR0aW5nCiAgIG9uZ29pbmcgYnVnIGZpeGVzIGFuZCBkZXZlbG9wbWVudCBk aXJlY3RseSB0byB0aGUgdXBzdHJlYW0gcmVwb3NpdG9yeS4KICAgVGhlcmUgaXMgYSBzaWduaWZp Y2FudCBhbW91bnQgb2Ygd29yayBzdGlsbCB0byBiZSBkb25lLCB3aXRoIG9uZSBnb2FsCiAgIGJl aW5nIHRoZSBpbmNvcnBvcmF0aW9uIG9mIGxsZGIgaW50byB0aGUgYmFzZSBzeXN0ZW0uCgogICBU aGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IERBUlBBL0FGUkwgaW4gY29sbGFib3JhdGlvbiB3 aXRoIFNSSQogICBJbnRlcm5hdGlvbmFsIGFuZCB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Uu CgpPcGVuIHRhc2tzOgoKICAgIDEuIEFkZCBzdXBwb3J0IGZvciBtdWx0aXRocmVhZGVkIHByb2Nl c3Nlcy4KICAgIDIuIEZpeCB3YXRjaHBvaW50cy4KICAgIDMuIEFkZCBzdXBwb3J0IGZvciByZW1v dGUgZGVidWdpbmcgKGdkYnNlcnZlciAvIGRlYnVnc2VydmVyKS4KICAgIDQuIEFkZCBzdXBwb3J0 IGZvciBjb3JlIGZpbGVzLgogICAgNS4gQWRkIHN1cHBvcnQgZm9yIGtlcm5lbCBkZWJ1Z2dpbmcu CiAgICA2LiBWZXJpZnkgaTM4NiBhbmQgQVJNIGFyY2hpdGVjdHVyZXMuCiAgICA3LiBJbXBsZW1l bnQgTUlQUyB0YXJnZXQgc3VwcG9ydC4KICAgIDguIFZlcmlmeSBjcm9zcy1kZWJ1Z2dpbmcuCiAg ICA5LiBJbnZlc3RpZ2F0ZSBhbmQgZml4IHRlc3Qgc3VpdGUgZmFpbHVyZXMuCiAgIDEwLiBQcmVw YXJlIGxsZGIgZm9yIGluY29ycG9yYXRpb24gaW50byB0aGUgYmFzZSBzeXN0ZW0uCiAgICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCgpNdWx0aS10aHJlYWRlZCBQYWdlZGFlbW9uCgogICBVUkw6IGh0dHA6Ly9wZW9wbGUu ZnJlZWJzZC5vcmcvfmtpYi9taXNjL3BhZ2VkYWVtb24tbnVtYS4xLnBhdGNoCgogICBDb250YWN0 OiBLb25zdGFudGluIEJlbG91c292IDxraWJARnJlZUJTRC5vcmc+CgogICBUaGlzIHByb2plY3Qg YWltcyB0byBpbXByb3ZlIHNjYWxhYmlsaXR5IG9mIHRoZSB2aXJ0dWFsIG1lbW9yeQogICBzdWJz eXN0ZW0uIEJhc2VkIG9uIGEgcHJvdG90eXBlIGNoYW5nZSBmcm9tIEplZmYgUm9iZXJzb24sIHBl ci1kb21haW4KICAgcGFnZSBxdWV1ZXMgYW5kIHBlci1kb21haW4gcGFnZWRhZW1vbiB3b3JraW5n IHRocmVhZHMgaGF2ZSBiZWVuCiAgIGltcGxlbWVudGVkIHRvIGVuYWJsZSB0aGlzLiBBdCB0aGUg bW9tZW50LCB0aGUgZG9tYWlucyBjb2luY2lkZSB3aXRoCiAgIHRoZSBOVU1BIHByb3hpbWl0eSBk b21haW5zLCBidXQgdGhpcyBpcyBub3QgbmVjY2Vzc2FyeSBhbmQgY291bGQgYmUKICAgaW1wcm92 ZWQgd2l0aCBmdXJ0aGVyIHNlcGFyYXRpb24gdG8gYWxsb3cgbW9yZSBwYXJhbGxlbGlzbSBpbiB0 aGUKICAgcGFnZWRhZW1vbi4KCiAgIFRoZSBwYXRjaCBpcyByZWxhdGl2ZWx5IHNpbXBsZSwgd2l0 aCB0aGUgbW9zdCBkZWxpY2F0ZSBwYXJ0cyBiZWluZyB0aGUKICAgcGFnZSBsYXVuZHJ5IGFuZCBP T00gbG9naWMsIHdoaWNoIHJlcXVpcmVzIGNvb3JkaW5hdGlvbiBiZXR3ZWVuIGFsbAogICBwYWdl ZGFlbW9uIHRocmVhZHMgdG8gcHJldmVudCBmYWxzZSB0cmlnZ2VyaW5nLgoKICAgVGVzdGluZyBv biBkaXZlcnNlIHdvcmtsb2FkcyBhbmQgb24gcmVhbCBtdWx0aS1zb2NrZXQgbWFjaGluZXMgaXMK ICAgcmVxdWlyZWQuCgogICBUaGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IFRoZSBGcmVlQlNE IEZvdW5kYXRpb24uCgpPcGVuIHRhc2tzOgoKICAgIDEuIERlYnVnIG9uIG11bHRpLWRvbWFpbiBO VU1BIG1hY2hpbmUuCiAgICAyLiBUZXN0LCBnZXQgcmV2aWV3IGFuZCBjb21taXQuCiAgICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCgpOYXRpdmUgaVNDU0kgU3RhY2sKCiAgIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qu b3JnL05hdGl2ZSUyMGlTQ1NJJTIwdGFyZ2V0CgogICBDb250YWN0OiBFZHdhcmQgVG9tYXN6IE5h cGllcmHFgmEgPHRyYXN6QEZyZWVCU0Qub3JnPgoKICAgVGhlIG5hdGl2ZSBrZXJuZWwgaVNDU0kg dGFyZ2V0IGFuZCBpbml0aWF0b3IgcHJvamVjdCBwcm9ncmVzc2VkIHdlbGwKICAgb3ZlciB0aGUg QXByaWwgdG8gSnVuZSBwZXJpb2QuIFRoZSBwcmltYXJ5IGZvY3VzIHdhcyB0byBpbnRyb2R1Y2UK ICAgc3VwcG9ydCBmb3IgaVNFUiAoaVNDU0kgb3ZlciBSRE1BKSBpbiBib3RoIHRoZSBpbml0aWF0 b3IgYW5kIHRoZQogICB0YXJnZXQuIFByZXJlcXVpc2l0ZSBmb3IgdGhpcyB3YXMgbWVyZ2luZyBz b21lIGNvbW1vbiBwYXJ0cyB0b2dldGhlcgogICBhbmQgaW1wbGVtZW50aW5nIGEgd29ya2Fyb3Vu ZCBmb3IgdGhlIGxhY2sgb2YgaVNFUiBzdXBwb3J0IGluCiAgIHVzZXJzcGFjZS4gQXBhcnQgZnJv bSB0aGF0LCB0aGVyZSB3ZXJlIGEgbXlyaWFkIG9mIHNtYWxsZXIKICAgaW1wcm92ZW1lbnRzLiBT dWNoIGFzIGNyZWF0aW5nIG1vcmUgdXNlci1mcmllbmRseSBhZG1pbmlzdHJhdGlvbgogICB1dGls aXRpZXMsIGZvciBleGFtcGxlIGlzY3NpY3RsKDgpIHdoaWNoIGRpc3BsYXlzIFNDU0kgZGV2aWNl IG5vZGVzIGZvcgogICBlYWNoIGlTQ1NJIHNlc3Npb24uIFRoaXMgZnJlZXMgdGhlIHVzZXIgZnJv bSBnZXR0aW5nIHRoZSBzYW1lCiAgIGluZm9ybWF0aW9uIHRocm91Z2ggY2FtY29udHJvbCg4KS4g VGhlcmUgYXJlIGFsc28gaW1wcm92ZW1lbnRzIGluCiAgIGxvZ2dpbmcgYW5kIG1hbnVhbCBwYWdl cy4KCiAgIE9uY2UgdGhlIGlTRVIgc3VwcG9ydCBiZWNvbWVzIHN0YWJsZSwgdGhlIHdvcmsgd2ls bCBmb2N1cyBvbgogICBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25zLiBUaGUgcGxhbiBpcyB0byBj b21taXQgYm90aCB0aGUgbmV3IGluaXRpYXRvcgogICBhbmQgdGFyZ2V0IGluIEF1Z3VzdCB0byBh bGxvdyBzaGlwcGluZyB0aGVtIGluIDEwLjAuIFRoZSBwcm9qZWN0IHdpbGwKICAgY29udGludWUg d2l0aCBpbXBsZW1lbnRpbmcgc3VwcG9ydCBmb3Igc29mdHdhcmUgaVdBUlAgc3RhY2sgKHVzZWZ1 bAogICBtb3N0bHkgZm9yIHRlc3RpbmcgYW5kIGRldmVsb3BtZW50KSwgU0NTSSBwYXNzdGhyb3Vn aCBhbmQgdmFyaW91cyBvdGhlcgogICBpbXByb3ZlbWVudHMuCgogICBUaGlzIHByb2plY3QgaXMg YmVpbmcgc3BvbnNvcmVkIGJ5IFRoZSBGcmVlQlNEIEZvdW5kYXRpb24uCgpPcGVuIHRhc2tzOgoK ICAgIDEuIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4KICAgIDIuIE1lcmdlIHRvIEZyZWVCU0Qg aGVhZC4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KCk5ldyBDYXBzaWN1bSBGZWF0dXJlcwoKICAgVVJMOiBodHRw czovL3dpa2kuZnJlZWJzZC5vcmcvU3VtbWVyT2ZDb2RlMjAxMy9DYXBzaWN1bUZlYXR1cmVzCgog ICBDb250YWN0OiBNYXJpdXN6IFphYm9yc2tpIDxvc2hvZ2JvQEZyZWVCU0Qub3JnPgogICBDb250 YWN0OiBQYXdlbCBKYWt1YiBEYXdpZGVrIDxwamRARnJlZUJTRC5vcmc+CgogICBDYXBzaWN1bSBp cyBhIGxpZ2h0d2VpZ2h0IE9TIGNhcGFiaWxpdHkgYW5kIHNhbmRib3hpbmcgZnJhbWV3b3JrCiAg IGltcGxlbWVudGVkIGluIEZyZWVCU0QuIFRoaXMgaXMgc3RpbGwgYSBuZXcgdGVjaG5vbG9neSwg c28gdGhlcmUgaXMgYQogICBsb3Qgb2Ygc3BhY2UgZm9yIGltcHJvdmVtZW50cy4gVGhhbmtzIHRv IHRoZSBHb29nbGUgU3VtbWVyIG9mIENvZGUKICAgcHJvZ3JhbSBhbmQgUGF3ZWwgSmFrdWIgRGF3 aWRlayBmb3Igdm9sdW50ZWVyaW5nIGFzIG1lbnRvciwgTWFyaXVzegogICB3aWxsIGhhdmUgdGhl IGNoYW5jZSB0byB3b3JrIG9uIHRoaXMgcHJvamVjdCBpbiB0aGUgc3VtbWVyLgoKICAgVGhlIHdv cmsgb24gc2FuZGJveGluZyB0aGUgcndobygxKSBhbmQgcndob2QoOCkgdXRpbGl0aWVzIHdhcyBj b21wbGV0ZWQKICAgcmVjZW50bHkuIFRoZXJlIGlzIGFsc28gYSBwbGFuIHRvIGltcGxlbWVudCB0 d28gbmV3IG1vZHVsZXMgZm9yIENhc3Blci4KICAgQ2FzcGVyIGlzIGEgZGFlbW9uIHRvIHByb3Zp ZGUgc2VydmljZXMgZm9yIGFwcGxpY2F0aW9ucyB1c2luZwogICBDYXBzaWN1bSdzIGNhcGFiaWxp dHkgbW9kZS4gU29tZSBleHBlcmltZW50YXRpb24gd2l0aCBpbXBsZW1lbnRpbmcgdHdvCiAgIG5l dyBjYXBhYmlsaXR5IHJpZ2h0cyBpcyBpbiBwcm9ncmVzcywgc28gaXMgcG9ydGluZyBvbmUgbW9y ZSBwcm9ncmFtIHRvCiAgIHVzZSB0aGUgZXhpc3RpbmcgZmVhdHVyZXMgb2YgdGhlIENhcHNpY3Vt IGZyYW1ld29yay4KCk9wZW4gdGFza3M6CgogICAgMS4gc3lzdGVtLnVuaXggLS0gYSBDYXNwZXIg bW9kdWxlIHByb3ZpZGVzIGNvbm5lY3QgYW5kIGxpc3RlbiBvbiBVbml4CiAgICAgICBkb21haW4g c29ja2V0LgogICAgMi4gc3lzdGVtLnVkcCAtLSBhIENhc3BlciBtb2R1bGUgZW5hYmxpbmcgY29u bmVjdCwgbGlzdGVuLCBzZW5kLCBhbmQKICAgICAgIHJlY2VpdmUgb2YgVURQIHBhY2tldHMuCiAg ICAzLiBJbXBsZW1lbnRpbmcgc2FuZGJveGluZyBmb3IgZmV0Y2goMSkuCiAgICA0LiBJbnRyb2R1 Y2UgbmV3IGNhcGFiaWxpdHkgcmlnaHRzOiBDQVBfU0VORF9SSUdIVFMgYW5kCiAgICAgICBDQVBf UkVDVl9SSUdIVFMuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCgpOZXdjb25zIFJlYm9vdAoKICAgQ29udGFjdDog QWxla3NhbmRyIFJ5YmFsa28gPHJheUBGcmVlQlNELm9yZz4KCiAgIFRoZSBwdXJwb3NlIG9mIHRo ZSBOZXdjb25zIHByb2plY3QgaXMgdG8gcHJvdmlkZSBhIG5ldyBpbnRlcmZhY2UgZm9yCiAgIGNv bnNvbGUgYW5kIHZpZGVvIG91dHB1dCB0byBncmFwaGljIGRldmljZXMuIFRoaXMgd2lsbCBhbGxv dyBzaW1wbGUKICAgZHJpdmVycyBhY2Nlc3MgdGhlIGNvbnNvbGUgYW5kIHRlcm1pbmFsIG1vZGUg ZWFybHksIGFuZCBmcmFtZWJ1ZmZlcgogICBhY2Nlc3MgZm9yIHhvcmcuIERyaXZlcnMgd2lsbCBu b3QgbmVlZCBlbWJlZGRlZCBmb250IGJpdG1hcHMsIGNvbG9yCiAgIG1hcHMsIG9yIG1vdXNlIGN1 cnNvciBiaXRtYXBzLCBhcyB0aGUgd2hvbGUgaW5mcmFzdHJ1Y3R1cmUgd2lsbCBiZQogICBwcm92 aWRlZCBieSB0aGUgdnQoNCkgTmV3Y29ucyBkcml2ZXIuCgogICBBcyB0aGUgcHJvamVjdCBpbmNs dWRlcyBLZXJuZWwgTW9kZSBTZXR0aW5nIChLTVMpIGludGVncmF0aW9uLCBvbmUgb2YKICAgdGhl IGdvYWxzIGlzIHN1cHBvcnQgZm9yIG1vZGVybiBYb3JnIHJlbGVhc2VzLCBhbGxvd2luZyB0aGUg a2VybmVsIHRvCiAgIHN3aXRjaCBiYWNrIHRvIHZpcnR1YWwgdGVybWluYWwgbW9kZSBhZnRlciBn cmFwaGljcyBtb2RlIG9yIHJlc29sdXRpb24KICAgdXNlZCB3aXRoIHhvcmcgY2hhbmdlcy4KCiAg IFRoZXJlIGFyZSBhIGxvdCBvZiBjaGFuZ2VzIGludm9sdmVkIGluIHRoZSBwcm9qZWN0LiBNYWlu IHRhc2tzIGluY2x1ZGU6CgogICAgICogQ29yZSBmdW5jdGlvbmFsaXR5IChhbG1vc3QgZG9uZSku CiAgICAgKiBNb3VzZSBzdXBwb3J0LgogICAgICogS01TIChrZXJuZWwgbW9kZSBzZXR0aW5nKSBz dXBwb3J0LgogICAgICogVVNCIGtleWJvYXJkIHN1cHBvcnQuCiAgICAgKiBTcGxhc2ggc2NyZWVu IHN1cHBvcnQgKHBhcnRpYWxseSB3b3JraW5nKS4KICAgICAqIERyaXZlciBzdXBwb3J0LgogICAg ICogdmlkY29udHJvbCgxKSBzdXBwb3J0LgoKICAgVGhlIGZpcnN0IGRlbGl2ZXJhYmxlcyBvZiB0 aGUgcHJvamVjdCwgaW5jbHVkaW5nIG1vdXNlZCg4KSwgdWtiZCg0KSwKICAgYW5kIEtNUyBzdXBw b3J0IGFyZSBleHBlY3RlZCB0byBhcnJpdmUgYXJvdW5kIHRoZSBtaWRkbGUgb3IgZW5kIG9mCiAg IEF1Z3VzdCAyMDEzLiBUaGUgd2hvbGUgcHJvamVjdCBpcyBleHBlY3RlZCB0byBjb21wbGV0ZSBp biBOb3ZlbWJlcgogICAyMDEzLgoKICAgVGhpcyBwcm9qZWN0IGlzIGJlaW5nIHNwb25zb3JlZCBi eSBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uLgoKICAgTWFueSB0aGFua3MgdG8gRWQgU2Nob3V0ZW4g d2hvIHN0YXJ0ZWQgTmV3Y29ucyBwcm9qZWN0IGFuZCBkaWQgbW9zdCBvZgogICB0aGUgd29yay4K Ck9wZW4gdGFza3M6CgogICAgMS4gUHJvdmlkZSBkaWZmZXJlbnQgZmxhdm9ycyBvZiBoYXJkd2Fy ZSBmb3IgdGVzdGluZyB0aGUKICAgICAgIGltcGxlbWVudGF0aW9uLiBEbyBub3QgaGVzaXRhdGUg dG8gdm9sdW50ZWVyIHdoZW4gYSBjYWxsIGZvcgogICAgICAgdGVzdGluZyBpcyBhbm5vdW5jZWQu CiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCgpQQy1CU0QKCiAgIFVSTDogaHR0cDovL3d3dy5wY2JzZC5vcmcKCiAg IENvbnRhY3Q6IEtyaXMgTW9vcmUgPGttb29yZUBGcmVlQlNELm9yZz4KCiAgIFByb2dyZXNzIG9u IG1vdmluZyBQQy1CU0QgJiBUcnVlT1MgdG8gYSAicm9sbGluZyByZWxlYXNlIiBpcyBoYXBwZW5p bmcKICAgcXVpY2tseS4gV2UgaGF2ZSBpbXBsZW1lbnRlZCBvdXIgb3duIHBhY2thZ2UgcmVwb3Np dG9yeSwgZnVsbHkgYmFzZWQgb24KICAgcGtnKDgpLCB3aGljaCBpcyB1cGRhdGVkIHR3aWNlIG1v bnRobHksIGFuZCBhcmUgbm93IGhvc3RpbmcgZGVkaWNhdGVkCiAgIGZyZWVic2QtdXBkYXRlKDgp IHN5c3RlbXMuIEluIGFkZGl0aW9uIHRvIHRoZSA5LjEtUkVMRUFTRSBJU08gaW1hZ2VzLAogICB3 ZSBoYXZlIGJlZ3VuIHRvIGNyZWF0ZSBhIDktU1RBQkxFIGJyYW5jaCBhcyB3ZWxsLCB1c2luZwog ICBmcmVlYnNkLXVwZGF0ZSg4KSB0byBwdXNoIG91dCB0aGUgbGF0ZXN0IHdvcmxkIGFuZCBrZXJu ZWwgYmluYXJpZXMgb24gYQogICBtb250aGx5IGJhc2lzLgoKICAgV2UgYXJlIGN1cnJlbnRseSB3 b3JraW5nIG9uIGFuIGltcGxlbWVudGF0aW9uIG9mIFpGUyBCb290IEVudmlyb25tZW50cwogICBm b3IgZGVza3RvcHMgYW5kIHNlcnZlcnMuIFRoZXNlIHVzZXJzIHRvIGluc3RhbGwgdXBkYXRlcyBv cgogICBleHBlcmltZW50YWwgdmVyc2lvbnMgaW4gc2VwYXJhdGUgWkZTIGNsb25lcyBhbmQgc2Vs ZWN0IHRoZSBvbmUgdG8gcnVuCiAgIGF0IGJvb3QgdGltZSwgcHJvdmlkaW5nIGFuIGVhc3kgd2F5 IG9mIHRlc3RpbmcgdXBncmFkZXMgYmVmb3JlCiAgIGRlcGxveW1lbnQuCiAgICAgX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CgpRdCBhbmQgR1RLKyBGcm9udGVuZHMgZm9yIHBrZyg4KQoKICAgVVJMOiBodHRwczovL3dpa2ku ZnJlZWJzZC5vcmcvU3VtbWVyT2ZDb2RlMjAxMy9wa2dRdEd0awoKICAgQ29udGFjdDogSnVzdGlu IE11bml6IDxqbXVuaXpARnJlZUJTRC5vcmc+CiAgIENvbnRhY3Q6IEVpdGFuIEFkbGVyIDxlYWRs ZXJARnJlZUJTRC5vcmc+CgogICBUaGlzIHByb2plY3QgaXMgcGFydCBvZiBHb29nbGUgU3VtbWVy IG9mIENvZGUuIFdvcmsgaGFzIG9ubHkganVzdAogICBiZWd1biwgYW5kIHRoZSBjb2RlIGlzIGlu IGl0cyBpbmZhbmN5LiBUaGUgU3VidmVyc2lvbiByZXBvc2l0b3J5IGhvbGRzCiAgIGV4cGVyaW1l bnRhbCBjb2RlIHRoYXQgaXMgYWN0aXZlbHkgYmVpbmcgZGV2ZWxvcGVkLiBEZXZlbG9wbWVudCBz aG91bGQKICAgYmUgY29uY2x1ZGVkIGJlZm9yZSB0aGUgZW5kIG9mIFNlcHRlbWJlciwgYW5kIHRo ZSBwcm9qZWN0IHdpbGwgZW50ZXIKICAgdGhlIG1haW50ZW5hbmNlIHBoYXNlIG9mIGl0cyBsaWZl IGN5Y2xlLgoKT3BlbiB0YXNrczoKCiAgICAxLiBXb3JrIHdpdGggTWF0dCBXaW5kc29yIHRvIGNy ZWF0ZSBhIHBrZyg4KSBiYWNrZW5kIGZvciBQYWNrYWdlS2l0LgogICAgMi4gRXh0ZW5kIFBhY2th Z2VLaXQncyBRdCBmcm9udGVuZCB0byBvZmZlciBtb3JlIGZ1bmN0aW9uYWxpdHkgdGhyb3VnaAog ICAgICAgcGtnKDgpLgogICAgMy4gRXh0ZW5kIFBhY2thZ2VLaXQncyBHS1QrIGZyb250ZW5kIHRv IG9mZmVyIG1vcmUgZnVuY3Rpb25hbGl0eQogICAgICAgdGhyb3VnaCBwa2coOCkuCiAgICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCgpSZWFsdGVrIFJUTDgxODhDVS9SVEw4MTkyQ1UgVVNCIFdpcmVsZXNzIERyaXZlcgoK ICAgQ29udGFjdDogUnVpIFBhdWxvIDxycGF1bG9ARnJlZUJTRC5vcmc+CiAgIENvbnRhY3Q6IEtl dmluIExvIDxrZXZsb0BGcmVlQlNELm9yZz4KCiAgIFRoZSB1cnR3big0KSBkcml2ZXIgd2FzIGlt cG9ydGVkIGZyb20gT3BlbkJTRC4gVGhpcyBpcyBhIGRyaXZlciBmb3IKICAgdmVyeSBzbWFsbCBS ZWFsdGVrIFVTQiBXaUZpIGNhcmRzIHdoaWNoIGFyZSBwcmV0dHkgaW5leHBlbnNpdmUgYW5kIGNh bgogICBkbyA4MDIuMTFuIGF0IHRoZSBtYXhpbXVtIHRoZW9yZXRpY2FsIHNwZWVkIG9mIDE1MCBN YnBzLiBUaGV5IG1ha2UgYQogICBnb29kIGFkZGl0aW9uIHRvIGVtYmVkZGVkIHN5c3RlbXMgc3Vj aCBhcyB0aGUgUmFzcGJlcnJ5IFBpIGFuZCB0aGUKICAgQmVhZ2xlQm9uZS4gVGhlIGRyaXZlciBy ZXF1aXJlcyBmaXJtd2FyZSB0aGF0IGlzIGF2YWlsYWJsZSBpbiB0aGUKICAgRnJlZUJTRCBQb3J0 cyBDb2xsZWN0aW9uIChuZXQvdXJ0d24tZmlybXdhcmUta21vZCkuIE5vdGUgdGhhdCA4MDIuMTFu CiAgIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKU0RJTyBEcml2ZXIKCiAg IFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL1NESU8KICAgVVJMOiBodHRwczovL2dpdGh1 Yi5jb20va2liYWIvZnJlZWJzZC90cmVlL2tpYmFiLWRwbHVnCgogICBDb250YWN0OiBJbHlhIEJh a3VsaW4gPGlseWFAYmFrdWxpbi5kZT4KCiAgIFNESU8gaXMgYW4gaW50ZXJmYWNlIGRlc2lnbmVk IGFzIGFuIGV4dGVuc2lvbiBmb3IgdGhlIGV4aXN0aW5nIFNEIGNhcmQKICAgc3RhbmRhcmQsIHRv IGFsbG93IGNvbm5lY3RpbmcgZGlmZmVyZW50IHBlcmlwaGVyYWxzIHRvIHRoZSBob3N0IHdpdGgK ICAgdGhlIHN0YW5kYXJkIFNEIGNvbnRyb2xsZXIuIFBlcmlwaGVyYWxzIGN1cnJlbnRseSBzb2xk IGF0IHRoZSBnZW5lcmFsCiAgIG1hcmtldCBpbmNsdWRlIFdMQU4vQlQgbW9kdWxlcywgY2FtZXJh cywgZmluZ2VycHJpbnQgcmVhZGVycywgYmFyY29kZQogICBzY2FubmVycy4gVGhlIGRyaXZlciBp cyBpbXBsZW1lbnRlZCBhcyBhbiBleHRlbnNpb24gdG8gdGhlIGV4aXN0aW5nIE1NQwogICBidXMs IGFkZGluZyBhIGxvdCBvZiBuZXcgU0RJTy1zcGVjaWZpYyBidXMgbWV0aG9kcy4gR2V0dGluZyBp bmZvcm1hdGlvbgogICBhYm91dCB0aGUgY2FyZCB3b3JrcywgaW5jbHVkaW5nIHF1ZXJ5aW5nIGFs bCB0aGUgc3VwcG9ydGVkIEkvTwogICBmdW5jdGlvbnMuIFNpbXBsZSBieXRlIHRyYW5zZmVycyBh bmQgbXVsdGktYnl0ZSByZWFkcyB3b3JrLgoKICAgQSBwcm90b3R5cGUgb2YgdGhlIGRyaXZlciBm b3IgTWFydmVsbCBTRElPIFdMQU4vQlQgbW9kdWxlIGlzIGFsc28gYmVpbmcKICAgZGV2ZWxvcGVk LCB1c2luZyB0aGUgZXhpc3RpbmcgTGludXggZHJpdmVyIGFzIGEgcmVmZXJlbmNlLgoKT3BlbiB0 YXNrczoKCiAgICAxLiBFeHRlbmQgTU1DIGJ1cyBpbnRlcmZhY2Ugd2l0aCBtb3JlIFNESU8tc3Bl Y2lmaWMgYnVzIG1ldGhvZHMgdG8KICAgICAgIGFsbG93IGNoaWxkIGRyaXZlcnMgdG8gcGVyZm9y bSBtdWx0aS1ieXRlIGluL291dCB0cmFuc2ZlcnMuCiAgICAyLiBXcml0ZSBmaXJtd2FyZSBsb2Fk aW5nIGNvZGUgZm9yIHRoZSBwcm90b3R5cGUgb2YgdGhlIFdMQU4gZHJpdmVyLgogICAgICAgRnVy dGhlciB3b3JrIG9uIHRoZSBXTEFOIGRyaXZlciBzaG91bGQgcHJvYmFibHkgYmUgZG9uZSBhcyBh CiAgICAgICBzZXBhcmF0ZSBwcm9qZWN0LgogICAgMy4gSW1wbGVtZW50IGRldGFjaCBwYXRoLiBJ dCBoYXMgbm90IGJlZW4gdGVzdGVkIHlldCBiZWNhdXNlIHRoZQogICAgICAgRHJlYW1QbHVnIGhh cmR3YXJlIGF2YWlsYWJsZSBkb2VzIG5vdCBoYXZlIGFuIGV4dGVybmFsIFNESU8tY2FwYWJsZQog ICAgICAgc2xvdC4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KClN1cGVycGFnZXMgZm9yIEFSTXY3CgogICBVUkw6 IGh0dHA6Ly9zdGF0aWMudXNlbml4Lm9yZy9ldmVudHMvb3NkaTAyL3RlY2gvZnVsbF9wYXBlcnMv bmF2YXJyby9uYXZhcnJvLnBkZgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9BUk1T dXBlcnBhZ2VzCiAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL3NlbWloYWxmLWJvZGVrLXpiaWdu aWV3L2ZyZWVic2QtYXJtLXN1cGVycGFnZXMuZ2l0CgogICBDb250YWN0OiBaYmlnbmlldyBCb2Rl ayA8emJiQHNlbWloYWxmLmNvbT4KICAgQ29udGFjdDogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBz ZW1paGFsZi5jb20+CiAgIENvbnRhY3Q6IFJhZmHFgiBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYu Y29tPgoKICAgVGhlIEFSTSBhcmNoaXRlY3R1cmUgaXMgYmVjb21pbmcgbW9yZSBhbmQgbW9yZSBw cmV2YWxlbnQsIHdpdGgKICAgaW5jcmVhc2luZyB1c2FnZSBiZXlvbmQgdGhlIG1vYmlsZSBhbmQg ZW1iZWRkZWQgc3BhY2UuIEFtb25nIHRoZSBtb3JlCiAgIGludGVyZXN0aW5nIGluZHVzdHJ5IHRy ZW5kcyBlbWVyZ2luZyBpbiB0aGUgcmVjZW50IG1vbnRocywgdGhlcmUgaGFzCiAgIGJlZW4gdGhl IGNvbmNlcHQgb2YgIkFSTSBzZXJ2ZXIiLiBTb21lIHRvcC10aWVyIGNvbXBhbmllcywgZS5nLiBE ZWxsCiAgIGFuZCBIUCwgaGF2ZSBhbHJlYWR5IHN0YXJ0ZWQgdG8gZGV2ZWxvcCBzdWNoIHN5c3Rl bXMuCgogICBLZXkgdG8gc3VjY2VzcyBvZiBGcmVlQlNEIGluIHRoZXNlIG5ldyBhcmVhcyBpcyBk ZWFsaW5nIHdpdGggdGhlCiAgIHNvcGhpc3RpY2F0ZWQgZmVhdHVyZXMgb2YgdGhlIHBsYXRmb3Jt LCBmb3IgZXhhbXBsZSBhZGRpbmcgc3VwcG9ydCBmb3IKICAgc3VwZXJwYWdlcy4KCiAgIFRoZSBv YmplY3RpdmUgb2YgdGhpcyBwcm9qZWN0IGlzIHRvIGVuYWJsZSBGcmVlQlNEL2FybSB0byB1dGls aXplCiAgIHN1cGVycGFnZXMgd2hpY2ggd291bGQgYWxsb3cgZWZmaWNpZW50IHVzZSBvZiBUTEIg dHJhbnNsYXRpb25zIChieQogICBlbmxhcmdpbmcgVExCIGNvdmVyYWdlKSwgbGVhZGluZyB0byBp bXByb3ZlZCBwZXJmb3JtYW5jZSBpbiBtYW55CiAgIGFwcGxpY2F0aW9ucyBhbmQgc2NhbGFiaWxp dHkuIFRoaXMgaXMgaW50ZW5kZWQgdG8gd29yayBvbiBBUk12Ny1iYXNlZAogICBwcm9jZXNzb3Jz LCBob3dldmVyIGNvbXBhdGliaWxpdHkgd2l0aCBBUk12NiB3aWxsIGJlIHByZXNlcnZlZC4KCiAg IFRoZSBmb2xsb3dpbmcgc3RlcHMgaGF2ZSBiZWVuIG1hZGUgc2luY2UgdGhlIGxhc3Qgc3RhdHVz IHJlcG9ydDoKCiAgICAgKiBJbXBsZW1lbnQgcG1hcF9jb3B5KCkgdG8gc3VwcG9ydCBmb3JrKCkg c3lzdGVtIGNhbGxzLgogICAgICogU3VwcG9ydCBmb3IgbXVsdGlwbGUgcGFnZSBzaXplcy4KICAg ICAqIEltcGxlbWVudCBzdXBlcnBhZ2UgY3JlYXRpb24sIHByb21vdGlvbiwgZGVtb3Rpb24sIGFu ZCBldmljdGlvbgogICAgICAgbWVjaGFuaXNtcy4KICAgICAqIEltcGxlbWVudCBQViBlbnRyeSBt YW5hZ2VtZW50IGZvciBzdXBlcnBhZ2VzLgogICAgICogUGFydGlhbGx5IGludGVncmF0ZSBjb2Rl IHRvIHRoZSBoZWFkIGJyYW5jaC4KCiAgIE5leHQgc3RlcHM6CiAgICAgKiBUZXN0IGFuZCBiZW5j aG1hcmsuCiAgICAgKiBDb21wbGV0ZSBpbnRlZ3JhdGlvbiBpbnRvIEZyZWVCU0QgaGVhZC4KCiAg IFRoaXMgcHJvamVjdCBpcyBqb2ludGx5IHNwb25zb3JlZCBieSBUaGUgRnJlZUJTRCBGb3VuZGF0 aW9uIGFuZAogICBTZW1paGFsZi4KCk9wZW4gdGFza3M6CgogICAgMS4gU3RhcnQgdXRpbGl6aW5n IHN1cGVycGFnZXMgb24gQVJNdjYvdjcuCiAgICAyLiBGaW5kIGJ1Z3MgYW5kIGRlYnVnLgogICAg IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwoKVGhlIEZyZWVCU0QgRm91bmRhdGlvbgoKICAgVVJMOiBodHRwOi8vd3d3LkZy ZWVCU0RGb3VuZGF0aW9uLm9yZy8KCiAgIENvbnRhY3Q6IERlYiBHb29ka2luIDxkZWJARnJlZUJT REZvdW5kYXRpb24ub3JnPgoKICAgV2Ugc3RhcnRlZCB0aGUgcXVhcnRlciB3aXRoIG91ciAiUmFp c2UgYSBNaWxsaW9uIC0tIFNwZW5kIGEgTWlsbGlvbiIKICAgU3ByaW5nIEZ1bmRyYWlzZXIuIFRo aXMgd2FzIHRoZSBmaXJzdCBvZiB0aHJlZSBtYWpvciBmdW5kcmFpc2VycwogICBzY2hlZHVsZWQg Zm9yIHRoZSB5ZWFyLiBXZSB3ZXJlIHBsZWFzZWQgdG8gaGF2ZSByYWlzZWQgJDM2NSwyOTEgYnkg dGhlCiAgIGVuZCBvZiB0aGUgY2FtcGFpZ24gLS0gTWF5IDMxLiBMYXN0IHllYXIsIGJ5IHRoZSBz YW1lIHRpbWUsIHdlIGhhZAogICByYWlzZWQgb25seSAkNTYsMTk2LiBXZSBoYXZlIHN0YXJ0ZWQg dGhpcyB5ZWFyIG9mZiB3aXRoIGEgbXVjaCBiZXR0ZXIKICAgZnVuZHJhaXNpbmcgc3RyYXRlZ3ku IFdlIHdhbnQgdG8gc2VuZCBhIGJpZyB0aGFuayB5b3UgdG8gZXZlcnlvbmUgb3V0CiAgIHRoZXJl IHRoYXQgaGFzIG1hZGUgYSBkb25hdGlvbiBpbiAyMDEzLiBZb3VyIGVhcmx5IGRvbmF0aW9ucyBo YXZlIG1hZGUKICAgYSBzaWduaWZpY2FudCBpbXBhY3Qgb24gb3VyIGZ1bmRyYWlzaW5nIGVuZGVh dm9ycyBzbyBmYXIgdGhpcyB5ZWFyLgoKICAgU29tZSB0aGluZ3Mgd2UgYWNjb21wbGlzaGVkIHRo aXMgbGFzdCBxdWFydGVyIGFyZToKCiAgICAgKiBBdHRlbmRlZCBCU0RDYW4gaW4gT3R0YXdhLCBU ZXhhcyBMaW51eEZlc3QgaW4gQXVzdGluLCBTb3V0aEVhc3QKICAgICAgIExpbnV4RmVzdCBpbiBD aGFybG90dGUsIGFuZCBJQ0FOTiA0NiBtZWV0aW5nIGluIEJlaWppbmcuCiAgICAgKiBXZSB3ZXJl IGEgR29sZCBTcG9uc29yIGZvciBCU0RDYW4gMjAxMyBhbmQgc3BvbnNvcmVkIDcgZGV2ZWxvcGVy cwogICAgICAgdG8gYXR0ZW5kIHRoZSBjb25mZXJlbmNlLgogICAgICogV2Ugc2lnbmVkIHVwIHRv IGJlIGEgUGxhdGludW0gU3BvbnNvciBmb3IgRXVyb0JTRENvbiAyMDEzLgogICAgICogV2Ugc3Bv bnNvcmVkIDEgZGV2ZWxvcGVyIHRvIGF0dGVuZCBPcGVuSGVscC4KICAgICAqIFJlY29nbml6ZWQg TWFyayBMaW5pbW9uLCBTaW1vbiBMLiBCLiBOaWVsc2VuLCBCam9lcm4gQS4gWmVlYiwgYW5kCiAg ICAgICBLZW4gU21pdGgsIGF0IEJTRENhbiwgZm9yIHRoZWlyIHNpZ25pZmljYW50IGNvbnRyaWJ1 dGlvbnMgdG8KICAgICAgIEZyZWVCU0QuIFdlIGFsc28gcmVjb2duaXplZCBEYW4gTGFuZ2lsbGUg Zm9yIGhpcyB0aXJlbGVzcyBlZmZvcnQgb2YKICAgICAgIHB1dHRpbmcgb24gQlNEQ2FuIGZvciAx MCB5ZWFycy4KICAgICAqIFdlIHNwb25zb3JlZCB0aGUgZGV2ZWxvcGVyIGFuZCB2ZW5kb3Igc3Vt bWl0cyBhdCBCU0RDYW4sIHdpdGggMTAwCiAgICAgICBhbmQgMzAgYXR0ZW5kZWVzIHJlc3BlY3Rp dmVseS4KICAgICAqIFdlIHNwb25zb3JlZCBCU0QtRGF5IDIwMTMgdGhhdCB3YXMgaGVsZCBpbiBO YXBsZXMsIEl0YWx5IG9uIEFwcmlsIDYuCiAgICAgKiBXZSBoZWxkIG91ciBhbm51YWwgYm9hcmQg bWVldGluZyBpbiBPdHRhd2EuCiAgICAgKiBXZSBzcG9uc29yZWQgdGhlIGZvbGxvd2luZyBwcm9q ZWN0czogQ2Fwc2ljdW0sIEFSTSBTdXBlcnBhZ2VzLAogICAgICAgaVNDU0ksIFBhZ2UgUXVldWUg TG9ja2luZywgSW5wdXQvT3V0cHV0IE1lbW9yeSBNYW5hZ2VtZW50IFVuaXQsCiAgICAgICBEb2N1 bWVudGF0aW9uIHByb2plY3QgaW5mcmFzdHJ1Y3R1cmUsIGFuZCB3cml0aW5nIHdoaXRlIHBhcGVy cy4KICAgICAqIFdlIGhpcmVkIEVkd2FyZCBUb21hc3ogTmFwaWVyYWwvYSBhcyB0aGUgc2Vjb25k IG1lbWJlciBvZiBvdXIKICAgICAgIHRlY2huaWNhbCBzdGFmZiB0byB3b3JrIG9uIEZyZWVCU0Qg cHJvamVjdHMgZnVsbC10aW1lLgogICAgICogV2UgaGlyZWQgRWQgTWFzdGUgYXMgRGlyZWN0b3Ig b2YgUHJvamVjdCBEZXZlbG9wbWVudC4KICAgICAqIFdpdGggb3VyIGNvbnRpbnVlZCBzdXBwb3J0 IG9mIGJ1aWxkaW5nIG91dCB0aGUgRnJlZUJTRAogICAgICAgaW5mcmFzdHJ1Y3R1cmUsIHdlIHB1 cmNoYXNlZCBoaWdoLWVuZCBzZXJ2ZXJzIGZvciB0aGUgU2VudGV4IExhYiB0bwogICAgICAgYmUg dXNlZCB3aXRoIHRoZSBsYXRlc3QgNDAgR2JwcyBFdGhlcm5ldCBjYXJkcyBmcm9tIENoZWxzaW8g dG8gZG8KICAgICAgIHBlcmZvcm1hbmNlIHRlc3RpbmcgYW5kIGFuYWx5c2lzLCBzbWFsbGVyIHNl cnZlcnMgZm9yIGZpcmV3YWxscyBmb3IKICAgICAgIE5ZSSBhbmQgSVNDLCBhbmQgY2FibGVzIHRv IGNvbm5lY3Qgb3VyIEp1bmlwZXIgc3dpdGNoZXMgdG9nZXRoZXIKICAgICAgIGludG8gYSBiaWdn ZXIgSnVuaXBlciBzd2l0Y2ggd2UgcHVyY2hhc2VkIGZvciBOWUkuCiAgICAgX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpV cGdyYWRpbmcgdGhlIERvY3VtZW50YXRpb24gU2V0IHRvIERvY0Jvb2sgNS4wCgogICBDb250YWN0 OiBHw6Fib3IgS8O2dmVzZMOhbiA8Z2Fib3JARnJlZUJTRC5vcmc+CgogICBUaGUgRG9jdW1lbnRh dGlvbiBQcm9qZWN0IGhhcyBiZWVuIHVzaW5nIG9sZCB2ZXJzaW9ucyBvZiBtYXJrdXAKICAgc3Rh bmRhcmRzIHVudGlsIHJlY2VudGx5IHdoZW4gd2Ugc3dpdGNoZWQgdG8gYSByZWFsIFhNTCB0b29s Y2hhaW4gYW5kCiAgIERvY0Jvb2sgNC41LiBIb3dldmVyLCB3ZSBzdGlsbCBkZXBlbmQgb24gb2Jz b2xldGUgdGVjaG5vbG9naWVzIC0tIERTU1NMCiAgIGFuZCBKYWRlLiBEb2NCb29rIDUuMCBwcm92 aWRlcyBjbGVhbmVyIG1hcmt1cCBhbmQgc29tZSBuaWNlIG5ldwogICBmZWF0dXJlcy4KCiAgIFRo ZSBvYmplY3RpdmUgb2YgdGhpcyBwcm9qZWN0IGlzIHRvIHVwZ3JhZGUgdGhlIGRvY3VtZW50YXRp b24gc2V0IHRvCiAgIERvY0Jvb2sgNS4wIGFuZCB0byBmaW5kIGEgd2F5IHRvIHByb3Blcmx5IHJl bmRlciBvdXIgc291cmNlcyB3aXRob3V0CiAgIHVzaW5nIERTU1NMLCBzaW5jZSB0aGUgRFNTU0wg c3R5bGVzaGVldHMgYXJlIGRpc2NvbnRpbnVlZCBhbmQgY2Fubm90CiAgIHJlbmRlciBEb2NCb29r IDUuMC4gVGhlIGRvY3VtZW50YXRpb24gc291cmNlcyBoYXZlIGFscmVhZHkgYmVlbgogICBzdWNj ZXNzZnVsbHkgdHJhbnNmb3JtZWQgdG8gRG9jQm9vayA1LjAgYW5kIHVwZGF0ZXMgdG8gdGhlIHJl bmRlcmluZwogICBwcm9jZXNzIGFyZSB1bmRlciBkZXZlbG9wbWVudC4gVGhlIGNvbW1vbiBvcGlu aW9uIGFtb25nIEZyZWVCU0QKICAgZGV2ZWxvcGVycyBpcyB0aGF0IEphdmEgaXMgYSBoZWF2eSBk ZXBlbmRlbmN5IHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQuCiAgIFRoaXMgaGFzIHN1Z2dlc3RlZCB0 aGUgdHJhbnNmb3JtYXRpb24gb2YgRG9jQm9vayBzb3VyY2VzIHRvIFRlWCBhbmQgdXNlCiAgIFRl WCBhcyBhIHJlbmRlcmluZyBiYWNrZW5kLiBUaGVyZSBhcmUgdHdvIHdheXMgdG8gZG8gdGhpczsg dGhlIHNvdXJjZXMKICAgY2FuIGJlIHRyYW5zZm9ybWVkIGVpdGhlciBkaXJlY3RseSBvciB0aHJv dWdoIHRoZSBYU0wgRk8gb3V0cHV0CiAgIGdlbmVyYXRlZCBieSB0aGUgc3R5bGVzaGVldHMgcHJv dmlkZWQgZm9yIHRoZSBEb2NCb29rIFByb2plY3QuIFRoZQogICBsYXR0ZXIgYXBwcm9hY2ggaGFz IGJlZW4gY2hvc2VuIGFzIGEgcHJlZmVycmVkIHdheSBzaW5jZSBpdCBiZXR0ZXIgZml0cwogICB0 aGUgZXhpc3RpbmcgZG9jdW1lbnRhdGlvbiBpbmZyYXN0cnVjdHVyZSBhbmQgcHJvdmlkZXMgZWFz aWVyCiAgIGN1c3RvbWl6YXRpb24uCgogICBUaGlzIHByb2plY3QgaXMgZ2VuZXJvdXNseSBmdW5k ZWQgYnkgVGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KCk9wZW4gdGFza3M6CgogICAgMS4gRmluaXNo IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcmVuZGVyaW5nIHByb2Nlc3MuCiAgICAyLiBJbnRl Z3JhdGUgdGhlIHJlbmRlcmluZyBzb2x1dGlvbiBpbnRvIHRoZSBpbmZyYXN0cnVjdHVyZS4KICAg IDMuIE1lcmdlIGJhY2sgY2hhbmdlcyB0byBoZWFkLgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKVjRMMiBVcGRh dGUgaW4gdGhlIExpbnV4dWxhdG9yCgogICBDb250YWN0OiBBbGV4YW5kZXIgTGVpZGluZ2VyIDxu ZXRjaGlsZEBGcmVlQlNELm9yZz4KCiAgIFRoZSBWNEwyIHN1cHBvcnQgaW4gdGhlIGxpbnV4dWxh dG9yIHdhcyB1cGRhdGVkIGluIEZyZWVCU0QgaGVhZC4gVGhpcwogICBsZXRzIFNreXBlIHY0IGRp c3BsYXkgdmlkZW8uCgpPcGVuIHRhc2tzOgoKICAgIDEuIEZpbmQgb3V0IHdoeSBhdWRpbyBpbiBT a3lwZSB2NCBzdG9wcyB3b3JraW5nIGFmdGVyIHNvbWUgY2FsbHMuCiAgICAgX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpW aXJ0dWFsIFByaXZhdGUgU3lzdGVtcwoKICAgVVJMOiBodHRwOi8vd3d3LjdoZS5hdC9mcmVlYnNk L3Zwcy8KICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2Jhc2UvcHJvamVjdHMvdnBz LwoKICAgQ29udGFjdDogS2xhdXMgT2hyaGFsbGluZ2VyIDxrQDdoZS5hdD4KCiAgIFZQUyBmb3Ig RnJlZUJTRCBpcyBhbiBPUy1sZXZlbCBiYXNlZCB2aXJ0dWFsaXphdGlvbiBpbXBsZW1lbnRhdGlv biB0aGF0CiAgIHN1cHBvcnRzIGFkdmFuY2VkIGZlYXR1cmVzIGxpa2UgbGl2ZSBtaWdyYXRpb24u IEl0IGhhcyBiZWVuIHJlY2VudGx5CiAgIGltcG9ydGVkIGludG8gdGhlIFByb2plY3QncyBTdWJ2 ZXJzaW9uIHJlcG9zaXRvcnkgYXMgYSBwcm9qZWN0IGJyYW5jaC4KICAgVGhlIGNvZGUgaXMgY3Vy cmVudGx5IG9mIGFscGhhIHF1YWxpdHkuCgpPcGVuIHRhc2tzOgoKICAgIDEuIFRlc3Qgd2l0aCBt YW55IGRpZmZlcmVudCBndWVzdCBzZXR1cHMvYXBwbGljYXRpb25zLiBBbGwgZmVlZGJhY2sgaXMK ICAgICAgIGhpZ2hseSBhcHByZWNpYXRlZC4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCldpcmVsZXNzIE5ldHdv cmtpbmcgSW1wcm92ZW1lbnRzCgogICBDb250YWN0OiBBZHJpYW4gQ2hhZGQgPGFkcmlhbkBGcmVl QlNELm9yZz4KCiAgIFJlY2VudGx5IHRoZSBGcmVlQlNEIHdpcmVsZXNzIG5ldHdvcmtpbmcgc3Rh Y2sgaGFzIHJlY2VpdmVkIHVwZGF0ZXMgaW4KICAgdGhlIGZvbGxvd2luZyBhcmVhczoKCiAgICAg KiBJbXByb3ZlZCB0cmFuc21pdCBsb2NraW5nIGluIG5ldDgwMjExKDQpIHRvIGVsaW1pbmF0ZSBh IHdob2xlIGNsYXNzCiAgICAgICBvZiBzdWJ0bGUgcmFjZSBjb25kaXRpb25zIGxlYWRpbmcgdG8g b3V0LW9mLW9yZGVyIHBhY2tldHMgYmVpbmcKICAgICAgIGhhbmRlZCB0byB0aGUgZHJpdmVyLgog ICAgICogU3BlY3RyYWwgc2NhbiAoRkZUKSBpbmZvcm1hdGlvbiBpcyBub3cgYXZhaWxhYmxlIGZv ciB0aGUgQVI5MjgwLAogICAgICAgQVI5Mjg1LCBBUjkyODcgc2VyaWVzIE5JQ3MuCiAgICAgKiBB ZGRlZCBzdXBwb3J0IGZvciBBUjkzeHgsIEFSOTR4eCwgQVI5NXh4IE5JQ3MgLS0gaG9zdGFwLCBh ZGhvYyBhbmQKICAgICAgIHN0YXRpb24gbW9kZXMgaGF2ZSBiZWVuIHRlc3RlZCwgaW5jbHVkaW5n IDN4MyBzdHJlYW0gc3VwcG9ydCBmb3IKICAgICAgIHRoZSB0aG9zZSBOSUNzIHdoZXJlIGFwcHJv cHJpYXRlLgogICAgICogSW1wbGVtZW50ZWQgcHMtcG9sbCBoYW5kbGluZyBpbiBob3N0YXAgbW9k ZS4gVGhpcyB3YXMgcmVxdWlyZWQgZm9yCiAgICAgICBjb3JyZWN0IGJlaGF2aW91ciB3aXRoIHN0 YXRpb25zIHRoYXQgaW1wbGVtZW50IGFnZ3Jlc3NpdmUgcG93ZXIKICAgICAgIHNhdmUuCiAgICAg KiBBZGRlZCBBUjkzM3ggU29DIHN1cHBvcnQgLS0gaW5jbHVkaW5nIGFsbCBvbi1ib2FyZCBwZXJp cGhlcmFscyAtLQogICAgICAgdGhlIDhkZXZpY2VzLmNvbSBDYXJhbWJvbGEtMiBib2FyZCBpcyBu b3cgZnVsbHkgc3VwcG9ydGVkIGFuZCB3aWxsCiAgICAgICBydW4gRnJlZUJTRCBmcm9tIE5PUiBm bGFzaC4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KClhlbiBTdXBwb3J0IEltcHJvdmVtZW50cwoKICAgVVJMOiBo dHRwOi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD1wZW9wbGUvcm95Z2VyL2ZyZWVic2QuZ2l0 O2E9c3VtbWFyeQoKICAgQ29udGFjdDogSnVzdGluIFQuIEdpYmJzIDxnaWJic0BGcmVlQlNELm9y Zz4KICAgQ29udGFjdDogV2lsbCBBbmRyZXdzIDx3aWxsQEZyZWVCU0Qub3JnPgogICBDb250YWN0 OiBBbmRyZSBPcHBlcm1hbm4gPGFuZHJlQEZyZWVCU0Qub3JnPgogICBDb250YWN0OiBSb2dlciBQ YXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KCiAgIEZyZWVCU0QgWGVuIEhWTSBjYW4g YmUgZnVydGhlciBpbXByb3ZlZCBieSB1c2luZyBtb3JlIFBWIGludGVyZmFjZXMKICAgaW5zaWRl IGEgSFZNIGd1ZXN0LiBTbyBmYXIgdGhlIGZvbGxvd2luZyBpdGVtcyBoYXZlIGJlZW4gY29tcGxl dGVkOgoKICAgICAqIFVwZGF0ZSBYZW4gaW50ZXJmYWNlIGZpbGVzLiAoTWVyZ2VkIGludG8gaGVh ZCkKICAgICAqIEFkZCBzdXBwb3J0IGZvciB0aGUgdmVjdG9yIGNhbGxiYWNrIGluamVjdGlvbiBt ZWNoYW5pc20uIFRoaXMKICAgICAgIHJlcGxhY2VzIHRoZSBQQ0kgaW50ZXJydXB0IGFuZCBwcm92 aWRlcyBhIHBlci1jcHUgY2FsbGJhY2ssIHdoaWNoCiAgICAgICB3YXMgbm90IHBvc3NpYmxlIHdo ZW4gdXNpbmcgdGhlIFBDSSBpbnRlcnJ1cHQuCiAgICAgKiBSZXdvcmsgZXZlbnQgY2hhbm5lbCBp bXBsZW1lbnRhdGlvbiBhbmQgdXNlIHRoZSBzYW1lIGNvZGUgcGF0aHMgZm9yCiAgICAgICBib3Ro IFBWIGFuZCBQVkhWTS4KICAgICAqIEltcGxlbWVudCBQViBvbmUtc2hvdCBldmVudCB0aW1lcnMg YW5kIHRpbWVjb3VudGVycy4KICAgICAqIEltcGxlbWVudCBQViBJUElzLgogICAgICogTGl2ZSBt aWdyYXRpb24gc3VwcG9ydCBmb3IgUFYgdGltZXJzIGFuZCBQViBJUElzLgoKICAgV2l0aCB0aGlz IGNoYW5nZXMsIEZyZWVCU0Qgd2lsbCBoYXZlIGEgY29tcGxldGUgUFZIVk0gcG9ydCwgdGhpcyB3 aWxsCiAgIGFsc28gc2V0IHRoZSBncm91bmQgZm9yIGEgZnV0dXJlIFBWSCBwb3J0ICh3aGVuIFBW SCBzdXBwb3J0IGlzIG1lcmdlZAogICBpbnRvIFhlbikuCgogICBQVkhWTSBhbGxvd3MgYSB2aXJ0 dWFsIG1hY2hpbmUgdGhhdCBib290cyBhcyBhIG5hdGl2ZSBndWVzdCB0byBiZSBhYmxlCiAgIHRv IHRha2UgZnVsbCBhZHZhbnRhZ2Ugb2YgcGFyYXZpcnR1YWxpemVkIGRyaXZlcnMsIGdpdmluZyBh IHBlcmZvcm1hbmNlCiAgIGltcHJvdmVtZW50IGluIG1vc3QgSS9PIHJlbGF0ZWQgdGFza3MuIFBW SCBhbGxvd3MgYSBndWVzdCB0byB0YWtlCiAgIGFkdmFudGFnZSBvZiBoYXJkd2FyZSBhc3Npc3Rh bmNlIGZvciBtZW1vcnkgbWFuYWdlbWVudCwgYnV0IHVzZXMgZnVsbHkKICAgcGFyYXZpcnR1YWxp emVkIGV2ZW50cyBhbmQgYm9vdCBwcm9jZWR1cmUsIHdoaWNoIGJyaW5ncyB0d28gc2lnbmlmaWNh bnQKICAgYWR2YW50YWdlcyBiZXlvbmQgcGVyZm9ybWFuY2UuIFRoZSBmaXJzdCBpcyB0aGF0IGRv bWFpbiAwIGRvZXMgbm90IGhhdmUKICAgdG8gcnVuIGEgUUVNVSBpbnN0YW5jZSBmb3IgZW11bGF0 ZWQgYm9vdCBmb3IgUFZIIGd1ZXN0cywgd2hpY2ggaXMgYQogICBjb21tb24gcmVhc29uIGZvciBo b3N0aW5nIHByb3ZpZGVycyB0byBjaGFyZ2UgbW9yZSBmb3IgV2luZG93cyBhbmQKICAgb3RoZXIg SFZNIGd1ZXN0cy4gVGhlIHNlY29uZCBpcyB0aGF0IFBWSCBkb21haW5zIGNhbiBiZSB1c2VkIGFz IGRvbWFpbgogICAwLCB3aXRob3V0IHJlcXVpcmluZyBkaWZmZXJlbnQgcG1hcCAobWVtb3J5IG1h bmFnZW1lbnQpIGNvZGUgZnJvbSB0aGUKICAgY29udmVudGlvbmFsIGtlcm5lbC4gVGhpcyB3aWxs IGFsbG93IHVzIHRvIHNoaXAgYSBzaW5nbGUga2VybmVsIGJpbmFyeQogICBzdXBwb3J0aW5nIGJh cmUgbWV0YWwgaGFyZHdhcmUsIHJ1bm5pbmcgYXMgYSBYZW4gdW5wcml2aWxlZ2VkIGd1ZXN0LAog ICBhbmQgZXZlbnR1YWxseSBhcyBYZW4gZG9tYWluIDAuCgogICBGdXJ0aGVyIGltcHJvdmVtZW50 cyBvbiBibGtmcm9udCBhbmQgbmV0ZnJvbnQgaGF2ZSBhbHNvIGJlZW4gY29tbWl0ZWQ6CgogICAg ICogRml4IG5ldGZyb250IGNyYXNoIHdoZW4gZGV0YWNoaW5nIGFuIGludGVyZmFjZS4KICAgICAq IEVuYWJsZSBuZXRmcm9udCB0byBzcGVjaWZ5IGEgbWF4aW11bSBUU08gbGVuZ3RoIGxpbWl0aW5n IHRoZQogICAgICAgc2VnbWVudCBjaGFpbiB0byB3aGF0IHRoZSBYZW4gaG9zdCBzaWRlIGNhbiBo YW5kbGUgYWZ0ZXIKICAgICAgIGRlZnJhZ21lbnRhdGlvbi4KICAgICAqIEFkZCBiYXJyaWVycyBh bmQgZmx1c2ggc3VwcG9ydCB0byBibGtmcm9udC4KCiAgIE5ldGZyb250IGNoYW5nZXMgaGF2ZSBi ZWVuIG1lcmdlZCB0byBzdGFibGUgYnJhbmNoZXMsIGJsa2Zyb250IGNoYW5nZXMKICAgYXJlIG9u bHkgaW4gaGVhZC4KCk9wZW4gdGFza3M6CgogICAgMS4gTWVyZ2UgcmVtYWluaW5nIGNoYW5nZXMg aW50byBoZWFkLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwoKWGZjZS9GcmVlQlNECgogICBVUkw6IGh0dHBzOi8v d2lraS5mcmVlYnNkLm9yZy9YZmNlCgogICBDb250YWN0OiBGcmVlQlNEIFhmY2UgVGVhbSA8eGZj ZUBGcmVlQlNELm9yZz4KCiAgIFRoZSBGcmVlQlNEIFhmY2UgVGVhbSBoYXMgdXBkYXRlZCBpdHMg cG9ydHMgdG8gdGhlIGxhdGVzdCBzdGFibGUKICAgcmVsZWFzZXMsIGVzcGVjaWFsbHk6CgogICAg ICogQ29yZSAobW9zdGx5IGJ1Z2ZpeGVzIGFuZCB0cmFuc2xhdGlvbiB1cGRhdGVzKToKCiAgICAg KiBkZXNrdXRpbHMveGZjZTQtdHVtYmxlciAoMC4xLjI5KQogICAgICogeDExLXdtL3hmY2U0LXBh bmVsICg0LjEwLjEpCiAgICAgKiBzeXN1dGlscy94ZmNlNC1zZXR0aW5ncyAoNC4xMC4xKQogICAg ICogeDExLXdtL3hmY2U0LXNlc3Npb24gKDQuMTAuMSkKICAgICAqIHN5c3V0aWxzL2dhcmNvbiAo MC4yLjEpCiAgICAgKiB4MTEvbGlieGZjZTR1dGlsICg0LjEwLjEpCiAgICAgKiB4MTEtd20veGZj ZTQtd20gKDQuMTAuMSkKCiAgICAgQXBwbGljYXRpb25zOgoKICAgICAqIG11bHRpbWVkaWEveGZj ZTQtcGFyb2xlICgwLjUuMSkKICAgICAqIHd3dy9taWRvcmkgKDAuNS4yKQogICAgICogZGVza3V0 aWxzL3hmY2U0LW5vdGlmeWQgKDAuMi40KQogICAgICogbWlzYy94ZmNlNC1hcHBmaW5kZXIgKDQu MTAuMSkKICAgICAqIHgxMS94ZmNlNC10ZXJtaW5hbCAoMC42LjIpCiAgICAgKiB4MTEtZm0vdGh1 bmFyICgxLjYuMykKCiAgICAgUGFuZWwgcGx1Z2luczoKCiAgICAgKiBkZXNrdXRpbHMveGZjZTQt eGtiLXBsdWdpbiAoMC41LjYpCiAgICAgKiB0ZXh0cHJvYy94ZmNlNC1kaWN0LXBsdWdpbiAoMC43 LjApCiAgICAgKiB4MTEtY2xvY2tzL3hmY2U0LXRpbWVyLXBsdWdpbiAoMS41LjApCiAgICAgKiB4 MTEveGZjZTQtZW1iZWQtcGx1Z2luIChuZXcpCgogICAgIFRodW5hciBwbHVnaW5zOgoKICAgICAq IGF1ZGlvL3RodW5hci1tZWRpYS10YWdzLXBsdWdpbiAoMC4yLjEpCiAgICAgKiBhcmNoaXZlcnMv dGh1bmFyLWFyY2hpdmUtcGx1Z2luICgwLjMuMSkKCiAgICAgeDExL3hmY2U0LWVtYmVkLXBsdWdp biBjYW4gaW50ZWdyYXRlIGFueSBhcHBsaWNhdGlvbiB3aW5kb3cgaW50byB0aGUKICAgWGZjZSBw YW5lbC4KCiAgICAgQSBuZXcgcGx1Z2luIGlzIGFsc28gYXZhaWxhYmxlIHdoaWNoIG1vbml0b3Jz IGFuZCBkaXNwbGF5cwogICBlYXJ0aHF1YWtlcywgaXQgaXMgY2FsbGVkIHhmY2U0LWVxdWFrZS1w bHVnaW4uCgogIE9wZW4gdGFza3M6CgogICAgMS4gRml4IENQVSBpc3N1ZSB3aXRoIHRleHRwcm9j L3hmY2U0LWRpY3QtcGx1Z2luIChidWcgIzEwMTAzKS4KICAgIDIuIEludmVzdGlnYXRlIHdoeSBt aWRvcmktZ3RrMyBjcmFzaGVzIHRvbyBvZnRlbi4gKFRoZSBwb3J0IGlzCiAgICAgICBmaW5pc2hl ZCwgYnV0IHNvbWUgbGlicmFyaWVzIGFyZSBub3QgcHJlc2VudCBieSBkZWZhdWx0IGluIHBvcnRz CiAgICAgICB0cmVlKS4KICAgIDMuIEZpeCB4MTEtdGhlbWVzL2d0ay14ZmNlLWVuZ2luZSB3aXRo IEd0aysgPj0zLjYuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCgp4b3JnIG9uIEZyZWVCU0QKCiAgIFVSTDogaHR0 cDovL3dpa2kuZnJlZWJzZC5vcmcvWG9yZwogICBVUkw6IGh0dHA6Ly90cmlsbGlhbi5jaHJ1ZXRl cnRlZS5jaC9wb3J0cy9icm93c2VyL3RydW5rCgogICBDb250YWN0OiA8eDExQEZyZWVCU0Qub3Jn PgogICBDb250YWN0OiBOaWNsYXMgWmVpc2luZyA8emVpc2luZ0BGcmVlQlNELm9yZz4KICAgQ29u dGFjdDogS29vcCBNYXN0IDxrd21ARnJlZUJTRC5vcmc+CgogICBEdXJpbmcgdGhlIGJlZ2lubmlu ZyBvZiB0aGlzIHF1YXJ0ZXIsIHdvcmsgZm9jdXNlZCBvbiBtYWtpbmcgdGhlIHhvcmcKICAgdXBk YXRlIGFzIHJvYnVzdCBhbmQgc3RhYmxlIGFzIHBvc3NpYmxlIGluIHByZXBhcmF0aW9uIGZvciB0 aGUgbWVyZ2UgdG8KICAgcG9ydHMuIEFzIGEgcGFydCBvZiB0aGlzLCBwb3J0cyBleHAtcnVucyB3 ZXJlIHBlcmZvcm1lZCB0byBmaW5kIGFuZAogICByZXNvbHZlIHJlZ3Jlc3Npb25zIGFuZCBvdGhl ciBpc3N1ZXMuIE9uY2UgdGhpcyB3YXMgY29tcGxldGVkLCB4b3JnIHdhcwogICB1cGRhdGVkIHRv IHZlcnNpb24gNy43IG9uIE1heSAyNSwgYWZ0ZXIgbW9yZSB0aGFuIGEgeWVhciBvZiBoYXJkIHdv cmsuCgogICBBZnRlciB0aGUgdXBkYXRlLCB3b3JrIGltbWVkaWF0ZWx5IHNoaWZ0ZWQgdG8gZm9j dXMgb24gdXBkYXRpbmcgYW5kCiAgIHBhdGNoaW5nIHhvcmcgY2xpZW50IGxpYnJhcmllcywgc2lu Y2UgbnVtZXJvdXMgc2VjdXJpdHkgaXNzdWVzIGhhZCBiZWVuCiAgIGlkZW50aWZpZWQgaW4gdGhv c2UuIFVuZm9ydHVuYXRlbHksIHRoaXMgdG9vayBhIGxpdHRsZSBsb25nZXIgdGhhbgogICBhbnRp Y2lwYXRlZCwgYnV0IGFsbCBmaXhlcyB3ZXJlIGNvbWl0dGVkIGV2ZW50dWFsbHkuCgogICBUaGVy ZSBoYXMgYWxzbyBiZWVuIHdvcmsgb24gbWFraW5nIHRoZSBuZXcgeG9yZyBkaXN0cmlidXRpb24g dGhlCiAgIGRlZmF1bHQgZm9yIEZyZWVCU0QgOS4xIGFuZCBsYXRlci4gQSBwYXRjaCB3YXMgc2Vu dCBvdXQgYW5kIHRlc3RlZCB3aXRoCiAgIGdvb2QgcmVzdWx0cywgYnV0IHRoaXMgaXMgY3VycmVu dGx5IHBvc3Rwb25lZCBiZWNhdXNlIHN3aXRjaGluZyB2aXJ0dWFsCiAgIHRlcm1pbmFscyBpcyBu b3Qgd29ya2luZyB3aXRoIHRoZSBLTVMgZHJpdmVyLgoKICAgQ3VycmVudGx5LCB3b3JrIGlzIGZv Y3VzaW5nIG9uIGtlZXBpbmcgeG9yZyBkcml2ZXJzIGFuZCBsaWJyYXJpZXMgdXAgdG8KICAgZGF0 ZS4gSW5zdGVhZCBvZiBtYWtpbmcgYmlnIHVwZGF0ZXMgZXZlcnkgeWVhciBvciBsZXNzLCBtaW5v ciB1cGRhdGVzCiAgIHRvIHNvbWUgbGlicmFyaWVzLCBhcHBsaWNhdGlvbnMgYW5kIGRyaXZlcnMg aGFwcGVuIGZhaXJseSByZWd1bGFybHkuCiAgIEZvY3VzIGlzIGFsc28gc3RhcnRpbmcgdG8gc2hp ZnQgdG93YXJkcyBuZXdlciB2ZXJzaW9ucyBvZiBNRVNBIGFuZAogICB4b3JnLXNlcnZlciwgYnV0 IHRoaXMgaXMgc3RpbGwgdmVyeSBleHBlcmltZW50YWwuCgogIE9wZW4gdGFza3M6CgogICAgMS4g Q29udGludWUgdGhlIHBvcnRpbmcgZWZmb3J0IG9mIHJlY2VudCB2ZXJzaW9ucyBvZiBNRVNBLiBU aGlzIGlzCiAgICAgICBvbmdvaW5nIHdvcmssIGJ1dCBpbnRlZ3JhdGluZyB0aGlzIGludG8gdGhl IGRldmVsb3BtZW50IHJlcG8gaXMKICAgICAgIGhhcmQgd29yay4gT25jZSB0aGlzIGlzIGNvbXBs ZXRlZCwgYW5kIEtNUyBzdXBwb3J0IGZvciBBVEkgaXMgbW9yZQogICAgICAgbWF0dXJlLCBtb3Jl IHRlc3RpbmcgY2FuIGJlIGRvbmUuCiAgICAyLiBQb3J0IFdheWxhbmQuIFRoZSBmdXR1cmUgb2Yg Z3JhcGhpY2FsIGVudmlyb25tZW50cyBpbiBvcGVuIHNvdXJjZQogICAgICAgb3BlcmF0aW5nIHN5 c3RlbSBzZWVtcyB0byBiZSBXYXlsYW5kLiBUaGlzIG5lZWRzIHRvIGJlIHBvcnRlZCB0bwogICAg ICAgRnJlZUJTRCBzbyB0aGF0IGEgd2lkZXIgYXVkaWVuY2UgY2FuIHRlc3QgaXQsIGFuZCBzbyB0 aGF0IGl0CiAgICAgICBldmVudHVhbGx5IGNhbiBiZSBpbnRlZ3JhdGVkIGludG8gdGhlIHBvcnRz IHRyZWUsIHBlcmhhcHMgYXMgYQogICAgICAgcmVwbGFjZW1lbnQgZm9yIHRoZSBjdXJyZW50IHhv cmcuCiAgICAzLiBMb29rIGludG8gcmVwbGFjZW1lbnRzIGZvciBIQUwuIEhBTCBpcyB1c2VkIGZv ciBob3QtcGx1Z2dpbmcgb2YKICAgICAgIGRldmljZXMsIGJ1dCBpdCBoYXMgYmVlbiBsb25nIGFi YW5kb25lZCBieSBMaW51eC4gQSByZXBsYWNlbWVudCwKICAgICAgIHBlcmhhcHMgYnVpbHQgb24g dG9wIG9mIGRldmQoOCksIHdvdWxkIGJlIG5pY2UgdG8gaGF2ZS4gVGhpcyB3b3JrCiAgICAgICBz aG91bGQgYmUgY29vcmRpbmF0ZWQgd2l0aCB0aGUgRnJlZUJTRCBHTk9NRSBhbmQgS0RFIHRlYW1z LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwoKWkZTIFRSSU0gYW5kIEVuaGFuY2VkIEJJT19ERUxFVEUgU3VwcG9y dAoKICAgQ29udGFjdDogUGF3ZWwgSmFrdWIgRGF3aWRlayA8cGpkQEZyZWVCU0Qub3JnPgogICBD b250YWN0OiBTdGV2ZW4gSGFydGxhbmQgPHNtaEBGcmVlQlNELm9yZz4KCiAgIEFzIG9mIHRoZSBl bmQgb2YgSnVuZSwgRnJlZUJTRCdzIFpGUyBpbXBsZW1lbnRhdGlvbiBub3cgaW5jbHVkZXMgVFJJ TQogICBzdXBwb3J0IGluIGhlYWQsIHN0YWJsZS85LCBhbmQgc3RhYmxlLzggYnJhbmNoZXMuIFRo aXMgYWxsb3dzIFpGUyB0bwogICBoZWxwIG1haW50YWluIGhpZ2ggcGVyZm9ybWFuY2Ugb24gZmxh c2gtYmFzZWQgZGV2aWNlcyBzdWNoIGFzIFNTRCdzCiAgIGV2ZW4gdW5kZXIgaGlnaC1sb2FkIGNv bmRpdGlvbnMuCgogICBXaGVuIGNyZWF0aW5nIG5ldyBwb29scyBhbmQgYWRkaW5nIG5ldyBkZXZp Y2VzIHRvIGV4aXN0aW5nIHBvb2xzIGl0CiAgIGZpcnN0IHBlcmZvcm1zIGEgZnVsbC1kZXZpY2Ug bGV2ZWwgVFJJTSB0byBoZWxwIGVuc3VyZSBvcHRpbXVtIHN0YXJ0aW5nCiAgIHBlcmZvcm1hbmNl LiBUaGlzIGJlaGF2aW91ciBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzZXR0aW5nIHRoZQogICB2ZnMu emZzLnZkZXYudHJpbV9vbl9pbml0IHN5c2N0bCB2YXJpYWJsZSB0byAwIGlmIGZvciBleGFtcGxl IHRoZSBkaXNrcwogICBhcmUgbmV3IG9yIGhhdmUgYWxyZWFkeSBiZWVuIHNlY3VyZSBlcmFzZWQs IHdoaWNoIGNhbiBhbHNvIG5vdyBiZSBkb25lCiAgIHVzaW5nIGNhbWNvbnRyb2woOCkgc2VjdXJp dHkgYWN0aW9ucy4KCiAgIEluIG9yZGVyIHRvIHN1cHBvcnQgVFJJTSwgdGhlIGtlcm5lbCByZXF1 aXJlcyB0aGUgdW5kZXJseWluZyBkZXZpY2UKICAgZHJpdmVyIHN1cHBvcnRzIEJJT19ERUxFVEUu IFRoaXMgaXMgY3VycmVudGx5IG1hcHBlZCB0aHJvdWdoIHRvCiAgIGhhcmR3YXJlIG1ldGhvZHMg c3VjaCBhcyBBVEEgVFJJTSBhbmQgU0NTSSBVTk1BUCwgd2hpY2ggYXJlIGNvbW1vbmx5CiAgIHN1 cHBvcnRlZCBieSBTU0RzIHZpYSBDQU0uCgogICBJbiBvcmRlciB0byBpbmNyZWFzZSB0aGUgc3Vw cG9ydGVkIGhhcmR3YXJlIGJhc2UsIENBTSdzIFNDU0kgbGF5ZXIgd2FzCiAgIGFsc28gZW5oYW5j ZWQgdG8gYWxsb3cgQVRBIFRSSU0gdmlhIFNBVEwgQVRBIFBhc3N0aHJvdWdoIHRvIGJlIHVzZWQg aW4KICAgYWRkaXRpb24gdG8gdGhlIGV4aXN0aW5nIFVOTUFQIGFuZCBXUyBtZXRob2RzLiBUaGlz IGFsbG93cyBTQVRBIGRpc2tzCiAgIGF0dGFjaGVkIHRvIFNDU0kgY29udHJvbGxlcnMgd2l0aCBD QU0gYmFzZWQgZHJpdmVycyBzdWNoIGFzIG1wcyg0KSBhbmQKICAgbXB0KDQpIHRvIHByb3ZpZGUg ZGVsZXRlIHN1cHBvcnQuCgogICBTdGF0cyBmb3IgWkZTIFRSSU0gY2FuIGJlIG1vbml0b3JlZCBi eSBsb29raW5nIGF0IHRoZSBzeXNjdGwgdmFyaWFibGVzCiAgIHVuZGVyIGtzdGF0Lnpmcy5taXNj Lnppb190cmltIGluIGFkZGl0aW9uIHRvIGxpdmUgR0VPTSBkZWxldGUgc3RhdHMgdmlhCiAgIHRo ZSBnc3RhdCAtZCBjb21tYW5kLgoKICAgVGhpcyBwcm9qZWN0IHdhcyBzcG9uc29yZWQgYnkgTXVs dGlwbGF5IGFuZCBpbXBsZW1lbnRlZCBieSBQYXdlbCBKYWt1YgogICBEYXdpZGVrLgogICAgIF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpm cmVlYnNkLWN1cnJlbnRAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5mcmVl YnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtY3VycmVudApUbyB1bnN1YnNjcmliZSwg c2VuZCBhbnkgbWFpbCB0byAiZnJlZWJzZC1jdXJyZW50LXVuc3Vic2NyaWJlQGZyZWVic2Qub3Jn Ig==
文章代碼(AID): #1HvAbVLP (FB_current)