MjAxMC0xMi0yOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBVc2Ugb3BlbmdsIHRvIHJlYWQgc2NyZWVuIG9uIG1hY29zeC4gRXhwZXJpbWVudGFsCgkgIHVzZSBvZiBub24tZGVwcmVjYXRlZCBtYWNvc3ggaW50ZXJmYWNlcyBmb3IgaW5wdXQgaW5qZWN0aW9uLgoJICBGaXggY3Vyc29ycyBmb3IgNjRiaXQgbWFjb3N4LiBBZGQgLXVuaXhzb2NrIG9wdGlvbi4gIFdvcmsgYXJvdW5kCgkgIGdyZXAgaXNzdWUgb24gT3BlbkJTRCBpbiBjcmVhdGVfZGlzcGxheS4KCjIwMTAtMTItMjEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogQWRkIFJFTEVBU0UtTk9URVMuIENhbGwgc2h1dGRvd25fdWlucHV0KCkgd2hlbiBleGl0aW5nLgoJICBGcmVlIHNvbWUgbWlub3IgbWVtb3J5LiAgRG8gbm90IHVzZSBHZXRNYWluRGV2aWNlKCkgb24gbWFjb3N4LgoJICBBZGQgdXRpbGl0eSBzY3JpcHRzIHF0X3RzbGliX2luamVjdC5wbCBhbmQgdWlucHV0LnBsLiBPcHRpb24KCSAgLXVuZ3JhYmJvdGggKG5vdCB1c2VmdWwuKSAgWDExVk5DX1NCX0ZBQ1RPUiAtc2IgdXNlciB0d2Vhay4KCSAgWDExVk5DX1JFRkxFQ1Rfe2JpdHNQZXJTYW1wbGUsc2FtcGxlc1BlclBpeGVsLGJ5dGVzUGVyUGl4ZWx9CgkgIGZvciAtcmVmbGVjdCB2bmNjbGllbnQuICBGaXggbWlub3IgZmQgbGVha3MuIEZvciAtY3JlYXRlIG1vZGUKCSAgcHJlc2VydmUgTENfQUxMOyBGSU5EX0RJU1BMQVlfTk9fVlRfRklORCwgRklORF9ESVNQTEFZX05PX0xTT0YsCgkgIGFuZCBYMTFWTkNfQ1JFQVRFX0xDX0FMTF9DX09LLiAgU3BlZWQgdXAgLWZpbmQgYW5kICAtY3JlYXRlIHNjcmlwdHMKCSAgZm9yIGxhcmdlIGluc3RhbGxhdGlvbnMuICBFbmFibGUgZGlyZWN0IGV2ZW50IGlucHV0IG1vZGVzIHRvCgkgIGJ5cGFzcyB1aW5wdXQuICBUU0xJQiBzdXBwb3J0IGZvciB1aW5wdXQgdG91Y2hzY3JlZW5zLiAgSGFuZGxlCgkgIHByZXNzdXJlIGV2ZW50cyBvbiB0b3VjaHNjcmVlbnMuICBVc2VyIGNhbiBzZXQgWDExVk5DX1VJTlBVVF9CVVMKCSAgYW5kIFgxMVZOQ19VSU5QVVRfVkVSU0lPTi4gIEFsbG93IFRhYiBzd2l0Y2ggaW4gLWNyZWF0ZSBsb2dpbjoKCSAgcHJvbXB0LiAgRml4IGJ1ZyBpbiBzZXR0aW5nIGJwcCBmb3IgLXJhd2ZiLiAgSmF2YSB2aWV3ZXJzIG5vdwoJICBoYW5kbGUgbW91c2V3aGVlbCBldmVudHMuIE5vIHZhcnMgbmFtZWQgbmV3LgoKMjAxMC0wOS0xMCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiB1cGRhdGUgY2xhc3Nlcy9zc2wgamFycywgcGF0Y2hlcywgYW5kIHNjcmlwdC4gCgkgIHVwZGF0ZSBwcmVwYXJlX3gxMXZuY19kaXN0LnNoIHRvIDAuOS4xMy4gTWFrZWZpbGUuYW0gbm8gdG9wX3NyY2RpcgoJICBBbGxvdyB1c2VyIHRvIHNldCBhdmFoaSBuYW1lIGFuZCBwb3J0IHZpYSBlbnYuIHZhcnMuICBBZGQKCSAgYXZhaGlfdGltZW91dCgpIHNpZ2FsYXJtLiAgUmVuYW1lIHBvaW50ZXIoKSB0byBwb2ludGVyX2V2ZW50KCkKCSAgYmVjYXVzZSBYZGVmcy5oIGlzIGluY2x1ZGVkIGZvciBzb21lIHVua25vd24gcmVhc29uLiBBZGQKCSAgLWFsd2F5c19pbmplY3Qgb3B0aW9uLiAgQWRkIHZuY19yZWZsZWN0X2N1cnNvcl9wb3MoKSBmb3IgLXJlZmxlY3QKCSAgbW9kZS4gIEF0dGVtcHQgYXQgbGlidm5jY2xpZW50IFZlTkNyeXB0IChkaXNhYmxlZC4pICBGaXggYnVnCgkgIHdpdGggLS13aXRoLXN5c3RlbS1saWJ2bmNzZXJ2ZXIgbWlzc2luZyBGaW5pc2hlZEZyYW1lQnVmZmVyVXBkYXRlLgoJICBNb3JlIGluZm8gaW4gVm5jVmlld2VyLmNsYXNzIGh0dHAgd2FybmluZy4gIExvb2sgZm9yIGdkbSogaW4KCSAgZmluZCBkaXNwbGF5IGhldXJpc3RpY3MgKGUuZy4gZ2RtMykuICBNb3JlIGhldXJpc3RpY3Mgd2l0aAoJICBYQVVUSExPQ0FMSE9TVE5BTUUgYXR0ZW1wdHMuICBYMTFWTkNfQ1JFQVRFX01BWF9ESVNQTEFZUzogbGV0IHVzZXIKCSAgc3BlY2lmeSBtYXggbnVtYmVyIG9mIC1jcmVhdGUgZGlzcGxheXMuICBGRF9VU0VSUFJFRlMgbW9kZXMgZm9yCgkgIC11bml4cHcgKHVzZXIgY29uZiBmaWxlLikgRG9jdW1lbnQgYWxsIGV4aXRpbmcgYmVoYXZpb3IuICBMZXQKCSAgdXNlciBzZXQgWDExVk5DX05PX0xJTUlUX1NITSB0byBhdm9pZCBhdXRvcmVkdWN0aW9uLiAgTG9vayBmb3IKCSAga2RtIHdoZW4gYXZvaWRpbmcgYmVpbmcga2lsbGVkIGJ5IGRtLCBjaGFuZ2UgdGltaW5ncyB0b28uCgoyMDEwLTA1LTA4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IHNldCBjZC0+dW5peG5hbWUgaW4gYXBwbHlfb3B0cy4gIFByaW50IG1lc3NhZ2UgaW4KCSAgdm5jX3JlZmxlY3RfcmVzaXplLiAgU29tZSB0d2Vha3MgdG8gcHJlcGFyZV94MTF2bmNfZGlzdC5zaAoKMjAxMC0wNS0wMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBYMTFWTkNfRElTQUJMRV9TU0xfQ0xJRU5UX01PREUgb3B0aW9uIHRvIGRpc2FibGUgU1NMCgkgIGNsaWVudCByb2xlIGluIHJldmVyc2UgY29ubmVjdGlvbnMuICBJbXByb3ZlbWVudHMgdG8gbG9nZ2luZyBpbgoJICB1bHRyYXZuY19yZXBlYXRlciwgVUxUUkFWTkNfUkVQRUFURVJfTk9fUkZCIG9wdGlvbi4gIEluY3JlYXNlCgkgIFNTTCB0aW1lb3V0IGFuZCBwcmludCBtZXNzYWdlIGlmICdyZXBlYXRlcicgbW9kZSBpcyBkZXRlY3RlZCBmb3IKCSAgcmV2ZXJzZSBTU0wgY29ubmVjdGlvbi4gIEZpeCBSRUNPUkQgc2Nyb2xsIFhDb3B5QXJlYSBkZXRlY3Rpb24KCSAgd2l0aCByZWNlbnQgZ3RrL2dkayBsaWJyYXJ5OyBzZXQgWDExVk5DX1NDUk9MTF9NVVNUX0VRVUFMCgkgIHRvIGRpc2FibGUuICBMaW1pdCBsb2dnaW5nIG9mIFJFQ09SRCBlcnJvciBtZXNzYWdlcy4KCjIwMTAtMDQtMjUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogaW5jb3Jwb3JhdGUgbmV3IHVsdHJhdm5jX2RzbV9oZWxwZXIuYywgYWRkIHBvaW50ZXJfbWFzawoJICByZW1vdGUgY29udHJvbCBxdWVyeS4gIEN1dCBvcGVuc3NsIGRlZmF1bHQgLXBpbmcgZGVsYXkuCgoyMDEwLTA0LTE4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmMvbWlzYzogaW1wcm92ZW1lbnRzIHRvIGRlbW8gc2NyaXB0cwoJKiB4MTF2bmM6IEFsaWFzIC1jb2UgZm9yIC1jb25uZWN0X29yX2V4aXQuICBtb3JlIGFjY3VyYXRlCgkgIGRvdHRlZF9pcCgpIGFuZCAtbGlzdGVuNi4gIEltcHJvdmVtZW50cyB0byBpcHY2IG1vZGUuCgkgIGh0dHAgaW50ZXJmYWNlIGZvciBYMTFWTkNfSFRUUF9MSVNURU5fTE9DQUxIT1NULiAgUHJpbnQKCSAgd2FybmluZyBhYm91dCBtaXNzaW5nIFh2ZmIsIFhkdW1teSwgb3IgWHZuYyBpbiAtY3JlYXRlLgoJICBGaXggX19MSU5VWF9WSURFT0RFVjJfSCAvIEhBVkVfVjRMMi4gQWx3YXlzIHByaW50IG91dCBpbmZvCgkgIGFib3V0IFhpbmVyYW1hIHNjcmVlbnMuCgkqIHgxMXZuYy9taXNjL2VuaGFuY2VkX3RpZ2h0dm5jX3ZpZXdlcjogY2hlY2sgZm9yIGhvc3QgY21kLgoJICBmaXggc3R1bm5lbCBtb2RlIHcvbyBwcm94eS4gIFVwZGF0ZSB0byBzdHVubmVsIDQuMzMsIEZpeAoJICBidWlsZC51bml4IHdpdGggbmV3IHN0dW5uZWwgb24gU29sYXJpcy4gaXB2NiBzdXBwb3J0IGZvcgoJICB1bml4IHNzdm5jdmlld2VyCgoyMDEwLTA0LTA5ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBjbGFzc2VzL3NzbDogZGVidWdnaW5nIGFuZCB3b3JrYXJvdW5kcyBmb3IgamF2YSB2aWV3ZXIKCSogeDExdm5jL21pc2M6IHN5bmMgc3N2bmMsIGltcHJvdmUgdXRpbCBzY3JpcHRzLgoJKiB4MTF2bmM6IGV4aXQoMSkgZm9yIC1jb25uZWN0X29yX2V4aXQgZmFpbHVyZSwgcXVpZXQgcXVlcnkKCSAgbW9kZSBmb3IgZ3JhYl9zdGF0ZSwgZXRjLiBpcHY2IHN1cHBvcnQuIFNUVU5ORUxfTElTVEVOIGZvcgoJICBwYXJ0aWN1bGFyIGludGVyZmFjZS4gLWlucHV0X2VhZ2VybHkgaW4gYWRkaXRpb24gdG8gLWFsbGlucHV0LgoJICBxdWlldCBYaW5lcmFtYSBtZXNzYWdlLgoKMjAxMC0wMy0yMCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogY2xhc3Nlcy9zc2w6IE1hbnkgaW1wcm92ZW1lbnRzIHRvIEphdmEgU1NMIGFwcGxldCwgb25ldGltZWtleQoJICBzZXJ2ZXJDZXJ0IHBhcmFtLCBkZWJ1Z2dpbmcgcHJpbnRvdXQsIHVzZXIgZGlhbG9ncywgY2F0Y2gKCSAgc29ja2V0IGV4Y2VwdGlvbnMsIGF1dG9kZXRlY3QgeDExdm5jIGZvciBHRVQ9MS4KCSogeDExdm5jOiBtaXNjL3NjcmlwdHM6IGRlc2t0b3AuY2dpLCBpbmV0NnRvNCwgcGFubmVyLnBsLgoJICBYMTFWTkNfSFRUUFNfRE9XTkxPQURfV0FJVF9USU1FLCAtdW5peHB3ICV4eHggZG9jdW1lbnRlZCwgYW5kCgkgIGNhbiBydW4gdXNlciBjbWQgaW4gVU5JWFBXX0NNRC4gRkRfWERNQ1BfSUYgZm9yIGNyZWF0ZSBzY3JpcHQsCgkgIGF1dG9kZXRlY3QgZG0gb24gdWRwNiBvbmx5LiAgUXVlcmllczogcG9pbnRlcl94LCBwb2ludGVyX3ksCgkgIHBvaW50ZXJfc2FtZSwgcG9pbnRlcl9yb290LiAgU3dpdGNoIG9uIC14a2QgaWYga2V5c3ltcyBwZXIga2V5ID4KCSAgNCBpbiBhbGwgY2FzZXMuICBkYWVtb24gbW9kZSBpbXByb3ZlbWVudHMgZm9yIGNvbm5lY3Rfc3dpdGNoLAoJICBpbmV0NnRvNCwgdWx0cmF2bmNfcmVwZWF0ZXIucGwuICBEeW5hbWljIGNoYW5nZSBvZiAtY2xpcCBkbwoJICBub3QgY3JlYXRlIG5ldyBmYiBpZiBXeEggaXMgdW5jaGFuZ2VkLgoKMjAxMC0wMi0yMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogY2xhc3Nlcy9zc2w6IEphdmEgU1NMIGFwcGxldCB2aWV3ZXIgbm93IHdvcmtzIHdpdGggY2VydGlmaWNhdGUKCSAgY2hhaW5zLgoJKiB4MTF2bmM6IFByaW50b3V0IG9wdGlvbiAtc3NsU2NyaXB0cy4gIFN1Z2dlc3QgLWF1dGggZ3Vlc3MKCSAgaW4gZXJyb3IgbWVzc2FnZS4gIFNldCBmYWtlX3NjcmVlbiB3aWR0aCBhbmQgaGVpZ2h0LiAgVGVzdAoJICBmb3IgK2tiIGluIFh2ZmIuCgoyMDEwLTAxLTAyICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IHNtYWxsIHR3ZWFrcyB0byBYZHVtbXksIHJ4MTF2bmMqLiAgQXBwbHkKCSAgU01BTExfRk9PVFBSSU5UIHRvIC1hcHBzaGFyZSB0ZXh0LiAgQ29weXJpZ2h0IHllYXIgY2hhbmdlLgoKMjAwOS0xMi0yOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiByZW5hbWUgLWNyZWF0ZV94IHRvIC1jcmVhdGVfeHNydi4gIEhvcGVmdWxseQoJICBkb25lIGZpeGluZyBYZHVtbXkuCgoyMDA5LTEyLTI4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IEZpeCBwcm9ibGVtcyBpbiAtLXdpdGhvdXQteCBidWlsZHMuICBGaXggY3Jhc2gKCSAgd2l0aCAtUUQgcXVlcnkgZm9yIGRidXMgaW5mby4gIEFkanVzdCB3aW5kb3cgc2l6ZSBmb3IKCSAgc21hbGwgc2NyZWVucyBpbiAtZ3VpLiAgSW1wcm92ZSBGMSBoZWxwIGZvciB4ZG0sIGV0Yy4KCSAgaW5jbHVkZSBzc3ZuYyAxLjAuMjUgc291cmNlLgoKMjAwOS0xMi0yNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBwcmVwYXJlX3gxMXZuY19kaXN0LnNoIGZvciAwLjkuMTAuIC14ZHVtbXlfeHZmYiwKCSAgLXN2Y194ZHVtbXlfeHZmYiBhbmQgLWNyZWF0ZV94IHNob3J0aGFuZC4gbHhkZSBzZXNzaW9uLgoJICBYZHVtbXkgaW1wcm92ZW1lbnRzIGFuZCByb290IG5vIGxvbmdlciByZXF1aXJlZC4KCjIwMDktMTItMjEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLURFTkNfSEFWRV9PUEVOU1NMPTAgdG8gZGlzYWJsZSBlbmMuaCBidXQgc3RpbGwKCSAgaGF2ZSBzc2wuIFR3ZWFrIHBzIGNvbW1hbmQgaW4gZmluZF9kaXNwbGF5LiBUcnkgdG8gaGFuZGxlCgkgIEFJWCBzdS4gSWdub3JlIGFuIGluaXRpYWwgbmV3bGluZSBhdCBsb2dpbjogZm9yIC11bml4cHcuCgoyMDA5LTEyLTE4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGZpeCBrZXljb2RlIGFuZCBvdGhlciByZW1vdGUgY29udHJvbCBhY3Rpb25zIHVuZGVyCgkgIERJUkVDVDogd2l0aCBhbiBleHRyYSBYRmx1c2ggYW5kIG90aGVyIHNhZmV0eSBtZWFzdXJlcy4KCSAgZmZsdXNoKHN0ZGVycikgbXVjaCBpbiBzdV92ZXJpZnkuICBNYWtlIHRoZSAtdW5peHB3IGVudi4gdmFycwoJICBVTklYUFdfRElTQUJMRV9TU0wgYW5kIFVOSVhQV19ESVNBQkxFX0xPQ0FMSE9TVCB3b3JrIGNvcnJlY3RseS4KCSAgTWFrZSAtbG9vcGJnIGFjdHVhbGx5IGltcGx5IC1iZy4gIEFkZCB0YWc9Li4uIHRvIHVuaXhwdyBvcHRzCgkgIHRvIHNldCBGRF9UQUcuICBQcmVmZXIgWHZmYiBvdmVyIFhkdW1teS4gIFJlZHVjZSB3YWl0IHRpbWUKCSAgZm9yIGh0dHBzLiBBZGQgJ0xvZ2luIHN1Y2NlZWRlZCcgb3V0cHV0IHRvIHVuaXhwdyBwYW5lbC4KCjIwMDktMTItMTUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogWDExVk5DX1JFTU9URSwgWDExVk5DX1RJQ0tFUiwgYW5kIFZOQ19DT05ORUNUIHByb3BlcnRpZXMKCSAgbmFtZXMgY2FuIGJlIGNoYW5nZWQgdmlhIGVudi4gdmFycyAoZS5nLiBmb3IgbXVsdGlwbGUKCSAgeDExdm5jIGluc3RhbmNlcy4pIFRoZSAtcXVpZXQgb3B0aW9uIGRvY3VtZW50ZWQgYmV0dGVyLgoJICBBZGQgZmFrZWJ1dHRvbmV2ZW50IHJlbW90ZSBjb250cm9sIGFjdGlvbi4gIEltcHJvdmUgY2hpbGQKCSAgdGVzdCBmb3IgY29ubmVjdGluZyB0byBwb3J0IDExMy4gIEFkZCBjb25uZWN0X3N3aXRjaCBhbmQKCSAgdWx0cmF2bmNfcmVwZWF0ZXIucGwgdG8gQ1ZTLiBSZXBvcnQgWCBzZXJ2ZXIgbnVtYmVyIG9mIG1vdXNlCgkgIGJ1dHRvbnMuICBDaGFuZ2UgZmluZF9kaXNwbGF5IHNjcmlwdCB0byBjaGVjayBmb3Igc3RhbGUgcGlkcwoJICBpbiAvdG1wLy5YTk4tbG9jay4gIElmIHJvb3QgdW5kZXIgZmluZF9kaXNwbGF5LCB0cnkgRkRfWERNCgkgIGlmIHByZXZpb3VzIGZhaWxlZCB0byBmaW5kIGF1dGguICBQcmludCBlcnJvciByZWFzb25zIGZvcgoJICAtc3RvcmVwYXNzd2QgZmFpbHVyZXMuCgoyMDA5LTEyLTA2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGZpbmRhdXRoLy1hdXRoIGd1ZXNzIHdvcmtzIHdpdGggRkRfWERNPTEgZm9yIHJvb3QKCSAgZmluZGluZyBkbSdzIHhhdXRob3JpdHkuICBXb3JrIGFyb3VuZCBmb3IgR0RNJ3MgcmVjZW50IAoJICAneGhvc3QgU0k6bG9jYWx1c2VyOnJvb3QnIHVzYWdlLiBYMTFWTkNfUkVPUEVOX1NMRUVQX01BWAoJICBmb3IgbG9uZ2VyIGxpdmVkIC1yZW9wZW4taW5nLiBYMTFWTkNfRVhUUkFfSFRUUFNfUEFSQU1TIGZvcgoJICBhZGRpdGlvbmFsIFVSTCBwYXJhbWV0ZXJzLCBYMTFWTkNfSFRUUF9MSVNURU5fTE9DQUxIT1NUPTEgdG8KCSAgZm9yY2UgbGlidm5jc2VydmVyIGh0dHAgdG8gbGlzdGVuIG9uIGxvY2FsaG9zdC4KCjIwMDktMTItMDQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGNsYXNzZXMvc3NsOiB1cGRhdGUgYmluYXJpZXM7IG5ldyBzaWduaW5nIGtleTsgc3Nfdm5jdmlld2VyLgoJKiB4MTF2bmM6IGFkZCBtb3JlIHdpc2ggcG9zc2liaWxpdGllcyBmb3IgLWd1aS4gIERlY2xhcmUgY3J5cHQoKQoJICBvbiBhbGwgcGxhdGZvcm1zIChkaXNhYmxlIHdpdGggLURET19OT1RfREVDTEFSRV9DUllQVC4pCgoyMDA5LTEyLTAyICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC1hcHBzaGFyZSBtb2RlIGZvciBzaGFyaW5nIGFuIGFwcGxpY2F0aW9uIHdpbmRvd3Mgb2YgdGhlCgkgIGVudGlyZSBkZXNrdG9wLiBtYXAgcG9ydCArIDU1MDAgaW4gcmV2ZXJzZSBjb25uZWN0LiAgQWRkIGlkX2NtZAoJICByZW1vdGUgY29udHJvbCBmdW5jdGlvbnMgZm9yIGlkIChhbmQgb3RoZXIpIHdpbmRvd3MuICBBbGxvdyB6ZXJvCgkgIHBvcnQgaW4gU1NMIHJldmVyc2UgY29ubmVjdGlvbnMuICBBZGp1c3QgZGVsYXlzIGJldHdlZW4gbXVsdGlwbGUKCSAgcmV2ZXJzZSBjb25uZWN0aW9uczsgWDExVk5DX1JFVkVSU0VfU0xFRVBfTUFYIGVudiB2YXIuICBBZGQgc29tZQoJICBtaXNzaW5nIG11dGV4IGxvY2tzOyBhZGQgSU5QVVRfTE9DSyBhbmQgdGhyZWFkc19kcm9wX2lucHV0LgoJICBNb3JlIHNhZmV0eSBpbiAtdGhyZWFkcyBtb2RlIGZvciBuZXcgZnJhbWVidWZmZXIgY2hhbmdlLiAgRml4CgkgIHNvbWUgc3RkZXJyIGxlYWtpbmcgaW4gLWluZXRkIG1vZGUuCgoyMDA5LTExLTE4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IHVzZSAtdGltZW91dCBzZXR0aW5nIGZvciByZXZlcnNlIGNvbm5lY3Rpb25zIHRvby4KCSAgRGVsYXkgY2FsbGluZyB4Zml4ZXMgYXQgdGhlIGJlZ2lubmluZyBvZiAxc3QgY29ubmVjdGlvbiB0byBhdm9pZAoJICBkaXNwbGF5IG1hbmFnZXIgWG9yZyBzZXJ2ZXIgY3Jhc2guICBEZWxheSBzZWx3aW4gY3JlYXRpb24gYXQgdGhlCgkgIGJlZ2luIDFzdCBjb25uZWN0aW9uIHRvIGF2b2lkIGJlaW5nIGtpbGxlZCBieSBkaXNwbGF5IG1hbmFnZXIuCgkgIE9wdGlvbnMgLWZpbmRhdXRoIGFuZCAnLWF1dGggZ3Vlc3MnLiBFeHBvcnQgaWNvbl9tb2RlIHF1ZXJ5LgoJICBEbyBub3Qgb3BlbiBYIGRpc3BsYXkgaW4gLXJhd2ZiIG1vZGUgdW5sZXNzIGFza2VkLiBCdWdmaXggZm9yCgkgIC1zaWQvLWlkIGhhbmRsaW5nIHdpbmRvdyBvZmZzY3JlZW4gb3IgYmlnZ2VyIHRoYW4gZGlzcGxheS4KCSAgU2VhcmNoIGZvciB3aW5kb3dzIHdpdGggX0RCVVNfU0VTU0lPTl9CVVNfUElEIHRvIGRlY2lkZSB3aGljaAoJICBkYnVzX2xhdW5jaCBpcyBvdXJzLiBGaXggbWlzc2luZyBkaXNwbGF5cyBpbiBGSU5EX0RJU1BMQVkKCSAgc2NyaXB0LiAgQWRkIFgxMVZOQ19TS0lQX0RJU1BMQVlfTkVHQVRFLiAgSW1wcm92ZW1lbnRzIHRvCgkgICd4MTF2bmMgUHJvcGVydGllcycgZ3VpIGRpYWxvZyBhbmQgY29ubmVjdGluZyB3aXRoIHgxMXZuYyB2aWEKCSAgc29ja2V0IChjbGllbnQgbGlzdC4pIFgxMVZOQ19TWVNURU1fR1JFRVRFUjEgZm9yIHByZXZpb3VzIHRleHQKCSAgZm9udCBzaXplLiAgRml4IGJ1ZyB3aXRoIHVuaXhwdyBhbmQgdmVuY3J5cHQgcGxhaW4gbG9naW4uCgkgIEhhdmUgZmFzdCBmYiByZWFkIHJhdGUga2VlcCB3YWl0bXMgYW5kIGRlZmVyIHRoZSBzYW1lLgoJICBNb3JlIGhldXJpc3RpY3MgdG8gY2hlY2sgdHJ5IGlmIEdETSBpcyBzdGlsbCBydW5uaW5nICh3aW5kb3cKCSAgbmFtZXMgZ2RtLSopCgoyMDA5LTEwLTE3ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IHN1cHBvcnQgZm9yIC1zb2xpZCBvcHRpb24gaW4geGZjZSBkZXNrdG9wLiAgCgkgIExpc3QgLVEgZ3Vlc3NfZGJ1cyBxdWVyeS4gSW1wbGVtZW50IC1zaG93cmZiYXV0aCBvcHRpb24uCgkgIFdvcmthcm91bmQgZm9yIGluYW5lIFhfU2htQXR0YWNoIGluY29tcGF0aWJpbGl0eSBpbiBYb3JnLgoKMjAwOS0xMC0wOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBiY3hfeGF0dGFjaC94MnggZGVza3RvcCBzd2l0Y2hpbmcgZmFjaWxpdHkuCgkgIE1vcmUgcmVtb3RlIGNvbnRyb2wgZmVhdHVyZXM6IGdyYWJfc3RhdGUsIHBpbmc6bXlzdHJpbmcsCgkgIGdyYWJsb2NhbCwgcmVzZW5kX2N1dGJ1ZmZlciwgcmVzZW5kX2NsaXBib2FyZCwgcmVzZW5kX3ByaW1hcnksCgkgIGtleWNvZGUsIGtleXN5bSwgcHRyLCBzbGVlcCwgZ2V0X3hwcm9wLCBzZXRfeHByb3AsIHdpbmluZm8sCgkgIHBvaW50ZXJfcG9zLCBtb3VzZV94eSwgbm9vcCwgZ3Vlc3NfZGJ1cyBBZGQgRElSRUNUOiBmb3IKCSAgcmVtb3RlIGNvbnRyb2wgdy9vIHNlcnZlci4gIFgxMVZOQ19OT19DSEVDS19QTSBmb3IgbW9yZQoJICBxdWlldCBESVJFQ1Q6IHVzYWdlLiAgT3B0aW9ucyAtcXVlcnlfcmV0cmllcywgLXJlbW90ZV9wcmVmaXgsCgkgIGFuZCBYMTFWTkNfU1lOQ19USU1FT1VUIGZvciByZW1vdGUgY29udHJvbC4gIEFkZCBzY3JpcHRpbmcKCSAgdG8gcmVtb3RlIGNvbnRyb2wuICBwaW5nIGNsaWVudHMgZHVyaW5nIGluIHVuaXhwdyBsb2dpbi4KCSAgT3B0aW9uIC11bml4cHdfc3lzdGVtX2dyZWV0ZXIgYXMgc2hvcnRjdXQgdG8gWERNL0dETS9ldGMgcGFuZWwuCgkgIEFkZCBjbGVhcl9hbGwsIHZpZXdvbmx5LCBub2Rpc3BsYXksIHRvIHVuaXhwdyB1c2VybmFtZTpvcHRzLgoJICBGMSBoZWxwIGZvciBvcHRpb25zIChpbmNsdWRpbmcgc21hbGxlciBjb25zb2xlIGZvbnQpLgoJICBEb2N1bWVudCBGRF9UQUcuICBFYXQgbXVsdGlwbGUgcHJvcGVydHkgY2hhbmdlIGV2ZW50cyBpbiBvbmUKCSAgc2l0dGluZyAoYWxzbyBQUk9QX0RCRz0xKS4gIFN1cHBvcnQgbW9yZSAtc3NsIGZlYXR1cmVzIChzcGVjaWFsCgkgIGNlcnQgbmFtZXMsIHNpbmdsZSBwb3J0LCBjbGllbnQgY2VydHMsIGV0Yy4pIGluIC1zdHVubmVsCgkgIGV4dGVybmFsIFNTTCBoZWxwZXIgbW9kZS4gIFJlb3JnYW5pemUgb3BlbnNzbCBjb2RlIHRvIGFsbG93CgkgIGludGVncmF0aW9uIHdpdGggc3R1bm5lbCBmZWF0dXJlcyBpZiBub3QgY29tcGlsZWQgd2l0aCBvcGVuc3NsLgoJICBYMTFWTkNfSFRUUFNfVlNfVk5DX1RJTUVPVVQgRml4IGRidXMgc2Vzc2lvbiBhZGRyZXNzIGZvciAtc29saWQKCSAgaW4gZ25vbWUuICBVc2UgZGJ1cy1sYXVuY2ggaW4gLWNyZWF0ZSBtb2RlIGlmIGF2YWlsYWJsZS4KCSAgWDExVk5DX1NLSVBfRElTUExBWT1hbGwgaW4gLWZpbmQvLWNyZWF0ZSBtb2RlLiAgbGV0IG5veGF1dGgKCSAgdW5zZXQgWEFVVEhPUklUWSBmb3IgdXNlIHdpdGggc3UgLSAkVVNFUi4gQ1JFQVRFX0RJU1BMQVlfRVhFQwoJICBkZWJ1Z2dpbmcuICBBZGQgeF90ZXJtaW5hbF9lbXVsYXRvciB0byAtY3JlYXRlIGNtZCBzZWFyY2guCgkgIE9wdGlvbiAtZXh0cmFfZmJ1ciB0byB0dW5lIGZiIHVwZGF0ZSByZXF1ZXN0cyB0cmFja2luZzsgbWFrZQoJICBkZWZhdWx0IHRyYWNraW5nIG1vcmUgYWdncmVzc2l2ZS4gIFJBVEVfVkVSQi9DSEVDS19SQVRFIGVudi4gZm9yCgkgIGZidXIgcmF0ZS4gIEVudi4gdmFycyB0byBzZXQgVGsgZ3VpIGZvbnRzLiAgQ2F0Y2ggY2xvc2VkCgkgIHNvY2tldCByZWFkcy93cml0ZXMuICBUcnkgdG8gZGV0ZWN0ICdjcmF6eScgeGRhbWFnZSBpbnNlcnRpb24sCgkgIGUuZy4gZnJvbSBzb21lIHhzY3JlZW5zYXZlcnMgKG5lZWRzIHdvcmsuKS4gIERvbid0IHN3aXRjaAoJICBvbiBzZXJ2ZXIgYXV0b3JlcGVhdCBpZiBhbnkga2V5cyBhcmUgcHJlc3NlZCBkb3duIHRvIHdvcmsKCSAgYXJvdW5kIFhvcmcgc2VydmVyIGFuZC9vciBnbm9tZSBidWcuICBJZiBQQVRIIGlzIGVtcHR5LCBzZXQKCSAgaXQgdG8gbWluaW1hbCBvbmUuICBGaXggYnVnIHdpdGggLWJnIGFuZCAtZHAvLWRrIHByaW50b3V0IGlmCgkgIGxvZ2ZpbGUgcHJlc2VudC4KCSogY2xhc3Nlcy9zc2w6IGxpY2Vuc2Ugc3RhdGVtZW50LgoKMjAwOS0wNi0xOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogY2xhc3Nlcy9zc2w6IGphdmEgdmlld2VyIG5vdyBoYW5kbGVzIGF1dGgtYmFzaWMgcHJveHkgbG9naW5zLgoJKiBtaXNjL2VuaGFuY2VkX3RpZ2h0dm5jX3ZpZXdlcjogdXBkYXRlIHNzdm5jLgoKMjAwOS0wNi0xNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBBZGQgWDExVk5DX1JFRkxFQ1RfUEFTU1dPUkQgZW52LiB2YXIuIGZvciAtcmVmbGVjdCBtb2RlLgoJICBNZXNzYWdlIHRvIHVzZXIgYWJvdXQgY29tcGl6IHByb2JsZW1zIHN1Z2dlc3RpbmcgLW5veGRhbWFnZS4KCSAgSW1wcm92ZW1lbnRzIHRvIHNpbmdsZS1wb3J0IGRldGVjdGlvbiBhbmQgbG9nZ2luZy4KCjIwMDktMDUtMjEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogVGhyZWFkIHNhZmV0eSBpbXByb3ZlbWVudHMuIEFkZCAnT3Blbk9mZmljZScgdG8gc3BlY2lhbAoJICBjYXNlIGxpc3QgZm9yIHNjcm9sbCBkZXRlY3Rpb24uICBGaXggLWNsaXAgbW9kZSB1bmRlciAtcmF3ZmIuCgkgIFdvcmthcm91bmQgWG9yZyBidWcgdGhhdCB5aWVsZHMgaW5maW5pdGVseSByZXBlYXRpbmcga2V5cwoJICB3aGVuICd4c2V0IHIgb2ZmJyBhY3Rpb24gaXMgZG9uZSB3aXRoIGtleXMgcHJlc3NlZC4gRW52LiB2YXIKCSAgWDExVk5DX0lETEVfVElNRU9VVC4KCjIwMDktMDMtMTIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogRml4IG9mZi1zY3JlZW4gYnVnIGZvciAtbmNhY2hlX2NyIGNvcHlyZWN0LgoKMjAwOS0wMy0wNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhbGxvdyByYW5nZSBmb3IgWDExVk5DX1NLSVBfRElTUExBWSwgZG9jdW1lbnQgZ3JhYgoJICBYc2VydmVyIGlzc3VlLiAgQWRkIHByb2dyZXNzX2NsaWVudCgpIHRvIHByb2NlZWQgbW9yZSBxdWlja2x5CgkgIHRocnUgaGFuZHNoYWtlLiAgSW1wcm92ZW1lbnRzIHRvIHR1cmJvdm5jIGhhY2suCgoyMDA5LTAyLTI4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGFkZCBrbHVkZ2UgdG8gZXhwZXJpbWVudCB3aXRoIHR1cmJvdm5jLgoKMjAwOS0wMi0yNSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBmaXggc29tZSAtUUQgY2FzZXMgZm9yIHVzZSBpbiB0a3gxMXZuYy4KCjIwMDktMDItMjEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIC1ub3NraXBfbG9ja2tleXMgb3B0aW9uIGZvciBmdXR1cmUgdXNlLgoKMjAwOS0wMi0wMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBBZGQgInNlbmRiZWxsIiByZW1vdGUgY21kLiAgRml4IGNvcHlyZWN0IHVwZGF0ZXMgdW5kZXIKCSAgLXJlZmxlY3QuICBXb3JrYXJvdW5kIHRoYXQgY2hlY2tzIHZhbGlkIHdpbmRvdyBvZiBzZWxlY3Rpb24KCSAgcmVxdWVzdG9yLiAgV2FpdCBvbiBzb21lIHNzbCBoZWxwZXIgcGlkcyBlYXJsaWVyLiAgV29ya2Fyb3VuZAoJICBYQVVUSExPQ0FMSE9TVE5BTUUgZm9yIHNvbWUgbmV3IHVzYWdlIG1vZGVzLiAgU2V0IGZha2UgZmIgdG8KCSAgcmVxdWVzdGVkIGJwcCB3aXRoIGNvcnJlY3QgbWFza3MuICAtcGFkZ2VvbSBvbmNlOi4uLiBtb2RlLgoJICBTZXQgTElCWENCX0FMTE9XX1NMT1BQWV9MT0NLIGJ5IGRlZmF1bHQuIHJmYlJhbmRvbUJ5dGVzIGVhcmxpZXIuCgkqIGNsYXNzZXMvc3NsOiBVcGRhdGUgamFycy4gIEFkZCAiVE9QXyIgZHJvcGRvd24gY3VzdG9taXphdGlvbiB0bwoJICB1bHRyYXZuYyBqYXZhIHZpZXdlciBhcHBsZXQgRlRQIHBhbmVsLgoKMjAwOS0wMS0xMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogY2xhc3Nlcy9zc2w6IEFkZCBjb25maWd1cmFibGUgVWx0cmEgamF2YSBhcHBsZXQgRmlsZXhmZXIgRHJpdmVzCgkgIGRyb3AgZG93biAoZS5nLiBmdHBEcm9wRG93bj1Ib21lLkRlc2t0b3AuYmluKS4gIERvY3VtZW50IGFsbCAgCgkgIGFwcGxldCBwYXJhbWV0ZXJzIGluIGNsYXNzZXMvc3NsL1JFQURNRS4KCjIwMDktMDEtMTAgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogZml4IGZhaWx1cmUgb2YgLTh0bzI0IG9uIGRlZmF1bHQgZGVwdGggMjQgZHVlIHRvIAoJICBub25zdGFuZGFyZCBpbmRleGVkIGNvbG9yIHN1cHBvcnQgY2hhbmdlcy4gIEZpeCBzbWFsbCB3aW5kb3cKCSAgZm9yIGZhaWx1cmUgYWZ0ZXIgWFNlbmRFdmVudCBzZWxlY3Rpb24gY2FsbDsgYWRkIGVudiB2YXIuCgkgIFgxMVZOQ19TRU5ERVZFTlRfU1lOQz0xIHRvIHRha2UgZXZlbiBtb3JlIGNhcmUuCgoyMDA5LTAxLTAzICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGFkZCAtcm1mbGFnIG9wdGlvbiwgLXJhd2ZiIHZ0IHN1cHBvcnQsIGJwcCA8IDggc3VwcG9ydAoJICBmb3IgcmF3ZmIsIGZpbmQgL2Rldi92aWRlbyBiZXR0ZXIuIEZpeCByZXZlcnNlIFNTTCBjb25uZWN0aW9uCgkgIGZvciBESC4gIFNvbWUgaW1wcm92ZW1lbnRzIGZvciBDVVBTIFRTIGhlbHBlciwgcmVzdGFydCBpZiBuZWVkZWQuCgoyMDA4LTEyLTEwICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IDAuOS42IHJlbGVhc2UuICBTb21lIHN0cnRvayBidWdmaXhlcy4gcmVuYW1lIC10bHN2bmMKCSAgdG8gLWFub250bHMuIERpc2FibGUgc3NsIGNhY2hpbmcuICBObyBjZXJ0IGNyZWF0aW9uIHByb21wdGluZwoJICBpbiBpbmV0ZCBvciBiZyBtb2Rlcy4gIHdhaXRwaWQgYSBiaXQgbW9yZSBjYXJlZnVsbHkgb24gc3NsCgkgIGhlbHBlcnMuICBUdW5lIHNzbCBpbml0aWFsIHRpbWVvdXRzLiBMZXQgLWNyZWF0ZSB1c2VyIHNwZWNpZnkKCSAgc3RhcnRpbmcgWCBkaXNwbGF5LiAgZml4IC1yZmJwb3J0IHByb21wdCBndWkgZm9yIG9sZGVyIHRrLgoJICAtc3Nsb25seSBvcHRpb24uIEVycm9yIGlmIG5vIC1zc2wgd2l0aCByZWxhdGVkIG9wdGlvbnMuIC1yYW5kCgkgIG9wdGlvbi4gIC1zc2wgaW1wbGllcyAtc3NsIFNBVkUKCjIwMDgtMTEtMjIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogeDExdm5jLmRlc2t0b3AgZmlsZS4gLXJlb3BlbiwgLWRocGFyYW1zLCAtc3NsQ1JMLAoJICAtc2V0ZGVmZXIgb3B0aW9ucy4gLXJmYnBvcnQgUFJPTVBUIFZlTkNyeXB0IGFuZCBUTFNWTkMgU1NML1RMUwoJICBlbmNyeXB0aW9uIHN1cHBvcnQuICBUd2Vha3MgdG8gY2hvb3NlX2RlbGF5KCkgYWxnb3JpdGhtLgoJICAtc3NsIEFOT04gYW5vbnltb3VzZSBEaWZmaWUtSGVsbG1hbiBtb2RlLiAgRml4IGJ1Z3MgaW4gY2VydHMKCSAgbWFuYWdlbWVudC4gIEFkZGl0aW9ucyB0byB0cmF5PXNldHBhc3MgbmFpdmUgdXNlciBtb2RlLgoKMjAwOC0xMS0wOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgemVyb2NvbmYgZXh0ZXJuYWwgaGVscGVycyAoYXZhaGktcHVibGlzaCBhbmQKCSAgZG5zLXNkKS4gIEFsaWFzIC16ZXJvY29uZi4gIENsb3NlIHBpcGVpbnB1dF9maCBvbiBleGl0LgoJICBLbHVkZ2UgdG8gbWFrZSAtc29saWQgd29yayBvbiBNYWNPU1ggY29uc29sZS4gIEF0dGVtcHQgYXQKCSAgY3BwIG1hY3JvcyB0byBkaXNhYmxlIG5ld2VyIGxpYnZuY3NlcnZlciBpbnRlcmZhY2VzLgoKMjAwOC0xMC0yOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtaHR0cF9vbmVwb3J0IGZvciBzaW5nbGUgcG9ydCBIVFRQIGFuZCBWTkMuCgkgIEltcHJvdmUgZmluZF9kaXNwbGF5IHdydCBsc29mIGJsb2NraW5nIHdpdGggLWIuCgoyMDA4LTEwLTE5ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC1jaGF0d2luZG93IGZvciBjaGF0IHdpbmRvdyBvbiBYIGNvbnNvbGUgdXNpbmcgU1NWTkMKCSAgYXMgYSBoZWxwZXIuIFByaW50IHN1Z2dlc3Rpb24gZm9yIFhfU2htQXR0YWNoIGZhaWx1cmUuCgkgIEFsbG93IC1zY2FsZSBXeEggZm9yIGRpZmZlcmVudCBYLSBhbmQgWS1zY2FsaW5nIGZhY3RvcnMuCgkgIFdvcmthcm91bmQgZm9yIG1pc3NpbmcgLWVuYyBjaXBoZXIgRVZQX2Flc18yNTZfY2ZiLiAgTW9kaWZ5CgkgIG1lc3NhZ2UgZGlnZXN0IGFuZCBzYWx0L0lWIHBhcmFtZXRlcnMuICBUcnkgdG8gaW1wcm92ZSBjb21waWxlCgkgIHRpbWUgYnkgYnJlYWtpbmcgdXAgbGFyZ2UgaWYgYmxvY2tzLgoKMjAwOC0wOS0yMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBBZGQgc3ltbWV0cmljIGtleSBlbmNyeXB0aW9uIC1lbmMgY2lwaGVyOmtleWZpbGUsCgkgIHdvcmtzIHdpdGggU1NWTkMuICBNYWtlIC1yZW1hcCB3b3JrIG9uIE1hY09TWCBjb25zb2xlLgoJICB1cGRhdGUgdG8gMC45LjUgc3RyaW5ncy4gIEFkZCBhIGNvdXBsZSBtZW51IGl0ZW1zIHRvIHRreDExdm5jLgoKMjAwOC0wOS0xNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBtYWtlIC1hbGxvdyB3b3JrIGluIC1zc2wgbW9kZS4KCjIwMDgtMDktMTQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLXNsZWVwaW4gbS1uIGZvciByYW5kb20gc2xlZXAuIE1vcmUgbWt0ZW1wIGFuZCBta3N0ZW1wCgkgIHByb3RlY3Rpb25zLiBTU0xfSU5JVF9USU1FT1VUPW4gZW52LiB2YXIuICBGaXggbWFjb3N4IGNvbnNvbGUKCSAgWCBjYWxsIGJ1Zy4gIFN5bmNocm9uaXplIG90aGVyIHByb2plY3RzIHNvdXJjZXMuCgoyMDA4LTA5LTA2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGtpbGwgZ3VpX3BpZCBvbiBleGl0IGluIC1jb25uZWN0Ly1jb25uZWN0X29yX2V4aXQgbW9kZS4KCSAgLWdyYWJsb2NhbCBuIGV4cGVyaW1lbnQgKG5vdCBjb21waWxlZCBieSBkZWZhdWx0KS4gIC1tYWN1c2tiZAoJICBvcHRpb24gZm9yIG1hY29zeCBmb3Igb3JpZyB1c2tkYiBjb2RlLiBrZXljb2RlPU4gcmVtb3RlIGNvbnRvbAoJICBjbWQuICBGaW5kIGRweSBsb29rIGF0IG5vbi1ORlMgY29va2llcyBpbiAvdG1wLiAgRml4IGd1aSB0cmF5CgkgIGluc2VydGlvbiBvbiByZWNlbnQgZ25vbWUgZHQuIEZpeCBjb25uZWN0X2ZpbGUgYnVnLiBTeW5jIFNTVk5DCgoyMDA4LTA2LTA3ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC1jbGlwIHhpbmVyYW1hTiBvcHRpb24sIC1ESUdOT1JFX0dFVFNQTkFNIGZvciBIUC1VWC4KCSAgUHJpbnQgaW5mbyBvbiBTU0hfQ09OTkVDVElPTiBvdmVycmlkZS4KCjIwMDgtMDUtMzEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogSW1wcm92ZW1lbnRzIHRvIG5vbnN0YW5kYXJkIGluZGV4ZWQgY29sb3Igc3VwcG9ydCwgZS5nLgoJICBkZXB0aHMgMSwgNCwgMTIsIGV0Yy4gaW5zdGVhZCBvZiBvbmx5IDguICBPbmx5IGVuYWJsZSB4aW5lcmFtYQoJICB4d2FycHBvaW50ZXIgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIDEgc3Vic2NyZWVuLgoKMjAwOC0wNS0wNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgVWx0cmFWTkMgcmVwZWF0ZXIgcHJveHkgc3VwcG9ydC4gIGZpeCB0byBzZXRwIGd1aQoJICBtb2RlLiAtdGhyZWFkcyBpcyBub3cgc3Ryb25nbHkgZGlzY291cmFnZWQuICBSZWFkIFBPUlQ9IGluIHVybC4KCSAgVXNlciBjYW4gc2V0IG5vbGlzdGVuIGZvciBYdmZiIGluIC1jcmVhdGUgbW9kZS4gIGNsZWFuIHVwIAoJICB3YWl0X2Zvcl9jbGllbnQoKSB0byBzb21lIGRlZ3JlZS4KCjIwMDgtMDEtMzEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogZHVyaW5nIHNwZWVkcyBlc3RpbWF0ZSwgZ3VhcmQgYWdhaW5zdCBjbGllbnQKCSAgZGlzY29ubmVjdGluZy4gIHNzdm5jIHN5bmMuCgoyMDA4LTAxLTE0ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC1waW5nIG9wdGlvbiwgZml4IG1lbW9yeSBjb3JydXB0aW9uIGluIGNvcHlfdGlsZXMKCSAgYWZ0ZXIgeHJhbmRyIHJlc2l6ZS4KCjIwMDctMTItMTYgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogc2V0dXAgcmVtb3RlLWN0cmwgZmlsZSBieSBkZWZhdWx0IG9uIG1hY29zeC4gaW1wcm92ZQoJICB0a3gxMXZuYyB3cnQgYXR0YWNoaW5nIHRvIGV4aXN0aW5nIHNlcnZlciBpbiBpY29uL3RyYXkgbW9kZS4gCgoyMDA3LTEyLTE1ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGZpeCBmaW5kX2Rpc3BsYXkgYW5kIHVzbGVlcCgpIHByb3RvdHlwZSBvbiBtYWNvc3guCgkgIC1kaXNwbGF5IGNvbnNvbGUgYW5kIGNoZWNrIERJU1BMQVkgL3RtcC8uLi46MCBvbiBtYWNvc3guCgkgIGltcGxlbWVudCAtbm94aW5lcmFtYS4KCjIwMDctMTEtMTIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIGNsZWFyX2xvY2tzIChDYXBzX0xvY2ssIGV0YykgYWN0aW9uLiAgRml4CgkgIHNzaCB0dW5uZWwgb24gRGFyd2luLgoKMjAwNy0xMC0yNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBmaXggbmNhY2hlIGJ1ZyBhbmQgb3RoZXJzIHVuZGVyIC04dG8yNCwgLXNzaAoJICBvcHRpb24sIHNvY2tzIGFuZCBvdGhlciBwcm94aWVzIGluIC1wcm94eSBvcHRpb24uCgkgIGNvbXBpbGVyIHdhcm5pbmdzLiAgZml4IFRBUkdFVFMgc2VsZWN0aW9uIHJlcXVlc3QgYnVnCgkgIChqYXZhLCBrb25zb2xlKS4KCjIwMDctMTAtMDMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIHhmY2UgdG8gY3JlYXRlZGlzcGxheQoKMjAwNy0wOS0yNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBDT0xVTU5TPTI1NiB0byBmaW5kL2NyZWF0ZSBzY3JpcHRzLiBNb3JlIHJhdGVjaGVjay4KCjIwMDctMDktMTQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogQWRkIC1zc2h4ZG1zdmMuIEZpeCBmaW5kX2Rpc3BsYXkgZm9yIGluZXRkLiAgSW1wcm92ZQoJICAtYWxsaW5wdXQgbWV0aG9kOyBlbnYgQ0hFQ0tfUkFURSB0byB3YXRjaCBmb3IgRkJVUiBidWlsZCB1cAoJICAoaS5lLiBKRlZOQykuCgoyMDA3LTA5LTExICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGZpeCB3aXJlZnJhbWUgY3Jhc2ggdW5kZXIgLWNsaXAuICBBZGQgLXJlZGlyZWN0IGZvcgoJICBWTkMgcmVkaXIuICAtcmF3ZmIgbnVsbGJpZywgcmFuZGJpZywgc29saWQsIHN3aXJsLCBldGMuCgkgIEZEX1hETSBtb2RlIHRvIGZpbmRfZGlzcGxheS4gLWxpc3RkcHkuICBBZGQgZW5saWdodGVubWVudC4KCSAgWHZuYy5yZWRpcmVjdCBGSU5ERElTUExBWS12bmNfcmVkaXJlY3QuIC14dm5jLCAteHZuY19yZWRpcmVjdCwKCSAgLXN2Y194dm5jLiBBVVRPX1BPUlQuCgkqIHNzdm5jOiBzc2h2bmMgc3NoLW9ubHksIHRzdm5jIFRlcm1pbmFsIFNlcnZpY2VzIG1vZGVzLgoJICBJbXByb3ZlbWVudHMgdG8gc3Nfdm5jdmlld2VyLiAgQXV0b21hdGljYWxseSBmaW5kIFggZHB5IGFuZAoJICBYIGxvZ2luLiAgUmVvcmdhbml6ZSBtZW51cyBhIGJpdC4gIH4vLnNzdm5jcmMgZmlsZS4KCjIwMDctMDktMDQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogQWRkIC1hdXRvcG9ydCBhbmQgLWZpbmRkcHkgdXRpbHMuIC14ZHVtbXkgY3JlYXRpb24uCgkgIHR3ZWFrIHhrYiB0aWVicmVha2luZyBhZ2Fpbi4gIFNodXQgb2ZmIC1uY2FjaGUgaW4gZGV2IG1vZGUuCgkgIHdhdGNoIGZvciB4cmFuZHIgZXZlbnRzIGV2ZW4gaWYgbm8gLXhyYW5kci4gIFRpcHMgZm9yIHR5cGVzCgkgIG9mIFVSTHMgZm9yIGphdmEgdmlld2Vycy4gIEFkZCBjaGVja19yZWRpcl9zZXJ2aWNlcygpIHRvCgkgIGNyZWF0ZV9kaXNwbGF5IGFuZCB0c2RvKCkgcmVkaXIgaGVscGVyIHV0aWxpdHkgKC10c2QpLgoJICBJbXByb3ZlbWVudHMgdG8gWGR1bW15LiAgUHJldmVudCBkY29wIFhBVVRIT1JJVFk9JycKCjIwMDctMDgtMTkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYmV0dGVyIC14a2IgdGllLWJyZWFraW5nIGZvciB1cCBrZXlzdHJva2VzLiAgQWRkIAoJICBYc3J2L0ZEX1hTUlYgY3VzdG9tIHNlcnZlciB0byBGSU5EQ1JFQVRFRElTUExBWSBsaXN0LgoKMjAwNy0wOC0xOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBpbXByb3ZlIEZJTkRDUkVBVEVESVNQTEFZICgtY3JlYXRlKSBzY3JpcHQuICBEb2N1bWVudAoJICBGRF9HRU9NLCBGRF9TRVNTLCBGRF9PUFRTLCBGRF9QUk9HIGVudiB2YXJzLCBhZGQgWHZuYyBzdXBwb3J0LiAKCjIwMDctMDgtMTUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIHJldmVyc2UgLWNvbm5lY3Qgc3VwcG9ydCB0byAtZGlzcGxheSBXQUlUOgoJICBpLmUuIC1maW5kLCAtY3JlYXRlLCAtc3ZjLCAuLi4gbW9kZS4gIERvY3VtZW50IG5lZWQgZm9yCgkgIC1zaGFyZWQgdW5kZXIgLWNvbm5lY3QgaG9zdDEsaG9zdDIsLi4uICBGaXggYnVnIGluIC1kaXNwbGF5CgkgIFdBSVQ6IG1vZGUgaWYgdm5jIGNsaWVudCB0cmllcyB0byBvbmx5IHJldHJpZXZlIFNTTCBjZXJ0LgoKMjAwNy0wOC0wMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgLXhyZWZyZXNoIG9wdGlvbiwgZml4IEtERSAuRENPUHNlcnZlciBwYXJzZSBidWcsCgkgIG1ha2Ugc3VyZSBVTklYUFdfRElTQUJMRV9MT0NBTEhPU1QvLXVuaXhwd191bnNhZmUgaWdub3JlCgkgIGFueSBTU0ggdHVubmVsIHRoYXQgd291bGQgaW1wbHkgLWxvY2FsaG9zdC4KCjIwMDctMDctMDQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLWRlYnVnX25jYWNoZSwgZml4IGJpZyBmb250cyBpbiB0a3gxMXZuYy4KCjIwMDctMDYtMTQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIGRldGVjdG9ycyBpZiB1bHRyYXZuYyBjaGF0IG9yIGZpbGUgeGZlciB0b29rIHBsYWNlLAoJICBpZiBzbyBwaW5nIGNsaWVudHMgbW9yZSBmcmVxdWVudGx5LiAgRml4IGNvbXBpbGUgYnVnIGlmIGxpYnNzbAoJICBub3QgYXZhaWxhYmxlLgoJKiBzc3ZuYzogYWRkIHVsdHJhdm5jIGZ0cCBqYXIgZmVhdHVyZS4gQWRkIGNlcnRpZmljYXRlIG1hbmFnZW1lbnQKCSAgIlZlcmlmeSBBbGwgQ2VydHMiLgoKMjAwNy0wNS0yNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBzZXQgdG8gdmVyc2lvbiAwLjkuMiwgYmFjayB0byBOQ0FDSEUgLTEyIGZvciB0ZXN0aW5nLgoJICBpbiAtdW5peHB3LCBpbml0aWFsIEVzY2FwZSBtZWFucyBubyBlY2hvIHVzZXJuYW1lIChzZWUgc3N2bmMpLgoKMjAwNy0wNS0yMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBzZXQgdGhpbmdzIHVwIChOQ0FDSEUgPSAtMSkgdG8gbm90IGhhdmUgLW5jYWNoZQoJICBvbiBieSBkZWZhdWx0OyBqdXN0IGdpdmUgYSBibHVyYiBhYm91dCBpdC4KCjIwMDctMDUtMTYgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogcHJpbnQgb3V0IHBlZXIgaG9zdCBhbmQgcG9ydCBmb3IgZGVidWdnaW5nIFNTTC4gCgkqIHNzdm5jOiByYW5kIGNoZWNrLCBTT0NLUyBzdXBwb3J0LCBQT1JUPSwgVmVyaWZ5IGFsbCBDZXJ0cwoJICBhbmQgYWNjZXB0ZWQgY2VydHMgbG9nZ2luZy4KCjIwMDctMDUtMDYgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogbG93ZXIgLXdhaXQgYW5kIC1kZWZlciB0byAyMG1zLiAgQ2hhbmdlIHNvbWUgU1NMCgkgIGRlYnVnIG91dHB1dC4gIERyb3AgY2xpZW50IGRvaW5nIHVsdHJhdm5jIHN0dWZmIGluIC11bml4cHcKCSAgZHVyaW5nIGxvZ2luIHBoYXNlLgoKMjAwNy0wNS0wNSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgZ3JvdXBzIGhhbmRsaW5nIGZvciAtdXNlcnMgbW9kZS4KCjIwMDctMDUtMDEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHNzbDogdXBkYXRlIHRvIGphdmEgdmlld2VyIGFuZCB1dGlsaXR5IHNjcmlwdHMgKGFkZCBvbmV0aW1la2V5KS4KCSogeDExdm5jOiBzZXRzaWQoKSBmb3IgLWdvbmUgbW9kZS4gc2V0cGdycCBmb3IgLWNyZWF0ZSBzY3JpcHQgYW5kCgkgIGFkZCAtY2MgNCB0byBhdm9pZCBEaXJlY3RDb2xvci4KCjIwMDctMDQtMjggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLXVzZXJzIHNzbHBlZXI9IG9wdGlvbi4gUkZCX1NTTF9DTElFTlRfQ0VSVCB2YXIuCgkgIFgxMVZOQ19GSU5ERElTUExBWV9BTFdBWVNfRkFJTFMgdmFyLiAtbmNhY2hlIGRlZmF1bHQgMTAuCgkgIGdpZCBzd2l0Y2ggZml4LgoJKiBzc3ZuYzogTGludXguaSo4NiBmaXggYW5kIGNvZGUgc3luYy4KCjIwMDctMDQtMDcgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIGdub21lLCBrZGUsIGV0Yy4gRklORENSRUFURURJU1BMQVkgdGFncy4KCSAgSW4gY2hlY2tfbmNhY2hlIHBlcmlvZGljYWxseSBjaGVjayBmb3IgY2hhbmdlZCBkZXNrdG9wLiAKCjIwMDctMDMtMjQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogcmV2ZXJzZSBTU0wgY29ubmVjdGlvbnMuICAtc2xlZXBpbiBvcHRpb24uCgoyMDA3LTAzLTIwICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IEFkZCAtaHR0cHNyZWRpciBvcHRpb24gZm9yIHJvdXRlciBwb3J0IHJlZGlycy4KCSAgc2V0IFhjdXJzb3IgYmcvZmcgY29sb3IgdmFsdWVzIHRvIHplcm8uICBFbnYgdmFyIHRvCgkgIGZvcmNlIHRpbWVvdXQ6IFgxMVZOQ19IVFRQU19WU19WTkNfVElNRU9VVC4gIExldCB1c2VyCgkgIHN1cHBseSBuYz1OIGF0IGxvZ2luIHByb21wdC4gIERpc2FibGUgLW5jYWNoZSBiZXRhCgkgIHRlc3QgdW5kZXIgLWh0dHAvLWh0dHBkaXIuCgoyMDA3LTAzLTEzICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGZpeCBjcmFzaCBmb3Iga2RlIGRjb3AuIGxpbWl0IG5jYWNoZSBiZXRhCgkgIHRlc3RlciB0byA5Nk1CIHZpZXdlcnMuIAoKMjAwNy0wMi0xOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBHZXQgdWx0cmF2bmMgdGV4dGNoYXQgd29ya2luZyB3aXRoIHNzdm5jLgoKMjAwNy0wMi0xNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgRmlsZXMgbW9kZSB0byB1c2VyIGNvbnRyb2xsZWQgaW5wdXQuIG1vcmUKCSAgdWx0cmEvdGlnaHQgZmlsZXhmZXIgdHdlYWtzLiAgcmZidmVyc2lvbiByZW1vdGUgY29udHJvbC4KCSAgbm9uY2FjaGUvbmMgdW5peHB3IHVzZXIgb3B0LgoKMjAwNy0wMi0xNSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiB0aWdodHZuYyBmaWxldHJhbnNmZXIgb2ZmIGJ5IGRlZmF1bHQuIGF2YWhpCgkgIGZpeGVzLiAgRklORENSRUFURURJU1BMQVkgZ2VvbWV0cnkuICAtbm91bHRyYWV4dC4KCjIwMDctMDItMTIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIGF2YWhpIChha2EgbUROUy9aZXJvY29uZi9Cb25qb3VyLi4uKQoJICBzdXBwb3J0IHRoYW5rcyB0byBEaWVnbyBQZXR0ZW7yLiAgLWF2YWhpLy1tZG5zLgoJICBBZGQgLWZpbmQgYW5kIC1jcmVhdGUgRklORElTUExBWSBhbGlhc2VzLgoKMjAwNy0wMi0xMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgLWdyYWJhbHdheXMsIC1mb3JjZWRwbXMsIC1jbGllbnRkcG1zLCBhbmQgCgkgIC1ub3NlcnZlcmRwbXMgKHVsdHJhdm5jIHZpZXdlcikgZm9yIGltcHJvdmVtZW50cyBpbgoJICB0aGUgc3RpbGwgYXBwcm94aW1hdGUgc2VydmVyIGxvY2tpbmcuICBBZGQgLWxvb3BiZwoJICBhbmQgLXN2YywgLXhkbXN2YyBhbGlhc2VzLiBCdWcgZml4IGNyZWF0ZV9kaXNwbGF5LgoKMjAwNy0wMi0xMCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiB3YXRjaCB0aGluZ3MgbGlrZSB0ZXh0Y2hhdCwgZXRjLiBtb3JlIGNhcmVmdWxseSAKCSAgaW4gdW5peHB3IHN0YXRlLiAgTW9uaXRvciBicm9rZW4gWERBTUFHRSByZXBvcnRzIHdoZW4KCSAgT3BlbkdMIGFwcHMgbGlrZSBiZXJ5bCBhcmUgcnVubmluZy4gIEltcGxlbWVudCBzaW1wbGUKCSAga2JkUmVsZWFzZUFsbEtleXMsIHNldFNpbmdsZVdpbmRvdywgc2V0U2VydmVySW5wdXQgYWN0aW9ucwoJICAodWx0cmF2bmMgZXh0ZW50aW9ucykuICBUcnkgdG8gc2VuZCBYRE0gdGhlIHVzZXJuYW1lIGluCgkgIEZJTkRDUkVBVEVESVNQTEFZLCBhbHNvIHRyeSAuZG1yYyBiZWZvcmUgLnhzZXNzaW9uLgoKMjAwNy0wMS0zMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtcmVmbGVjdCByZWZsZWN0b3IvcmVwZWF0ZXIgbW9kZSB3aXRoIGxpYnZuY2NsaWVudC4KCSAgLW5jYWNoZSB0d2Vha3M6IG5vIGtkZSBhbmltYXRpb25zIGFuZCB3bSBpbXByb3ZlbWVudHMsCgkgIGZpeGVzIHRvIEZJTkRESVNQTEFZIGFuZCBGSU5EQ1JFQVRFRElTUExBWSBsb2dpbiBtb2RlcywKCSAgTU9EVFdFQUtfTE9XRVNUIGVudnZhciBmb3IgSFAtVVgga2V5Ym9hcmQgd29ya2Fyb3VuZC4KCSAgLU4gb3B0aW9uIGZvciBkaXNwbGF5IGFuZCByZmJwb3J0IG1hdGNoaW5nLgoKMjAwNy0wMS0xMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtTiBvcHRpb24sIG1vcmUgLW5jYWNoZSBpbXByb3ZlbWVudHMsIGtkZS9nbm9tZS4KCjIwMDctMDEtMDMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogbW9yZSAtbmNhY2hlIGltcHJvdmVtZW50cy4KCjIwMDctMDEtMDEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogbW9yZSAtbmNhY2hlIGltcHJvdmVtZW50cy4KCjIwMDYtMTItMjggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogbW9yZSB3b3JrIG9uIC1uY2FjaGUsIGFkZCBtYWNvc3ggc3VwcG9ydCwgZml4IFggZXJyb3JzCgkgIGFuZCBpbXByb3ZlIGNhY2hlIGV4cGlyYXRpb24gYWxnb3JpdGhtLgoKMjAwNi0xMi0xNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBmaXJzdCBwYXNzIGF0IGNsaWVudC1zaWRlIGNhY2hpbmcsIC1uY2FjaGUgb3B0aW9uLgoJICBoYXZlIC1odHRwIGd1ZXNzIC4uL2NsYXNzZXMvLi4gdG8gcnVuIG91dCBvZiBidWlsZCBhcmVhLgoKMjAwNi0xMi0xNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBtYWtlIC14d2FycHBvaW50ZXIgdGhlIGRlZmF1bHQgaWYgeGluZXJhbWEgaXMgYWN0aXZlLgoKMjAwNi0xMi0wOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogamF2YSBTU0wgdmlld2VyOiBndWFyZCBhZ2FpbnN0IGVtcHR5IHVybFByZWZpeAoJKiB4MTF2bmM6IEZJTkRDUkVBVEVESVNQTEFZIHN1cHBvcnQgdG8gY3JlYXRlIFggc2Vzc2lvbiBpZgoJICBvbmUgY2Fubm90IGJlIGZvdW5kLiAgY2xvc2UgZmRzIHV0aWxpdHkuICBQcmludCBWTkMgVmlld2VyCgkgIGlzLi4gZm9yIGZpbmQgZGlzcGxheSBtb2RlLiAgY2h2dCgxKSB1dGlsaXR5LgoKMjAwNi0xMS0yMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogcHJlcGFyZV94MTF2bmNfZGlzdC5zaDogbWFrZSBzc192bmN2aWV3ZXIgaW5zdGFsbGVkIDc1NS4KCSogeDExdm5jOiBmb3IgSFRUUE9OQ0Ugb3BlbiBuZXcgaHR0cCBwb3J0IGluIC1pbmV0ZCBtb2RlLgoJICAtcHJvZyBvcHRpb24gdG8gaW5kaWNhdGUgZnVsbCBwYXRoIHRvIHByb2dyYW0gKG5vdCBrbm93CgkgIHdoZW4gaW4gLWluZXRkIGFuZCB0Y3BkKQoKMjAwNi0xMS0yMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBtYWNvc3g6IHByb2JsZW0gd2l0aCBwYWRkZWQgZnJhbWVidWZmZXIgcm93cywgd2FpdCBmb3IKCSAgdXNlciB0byBzd2l0Y2ggYmFjaywgQ3V0VGV4dCB4ZmVyIHN1cHBvcnQsIGlnbm9yZSBhIGZldyBtb3JlCgkgIHR5cGVzIG9mIHRvcGxldmVscy4gIEFkZCBsb2NhbCB1c2VyIHdpcmVmcmFtaW5nLiAgLWRwbXMvLW5vZHBtcwoJICBvcHRpb24gdG8gd29yayBhcm91bmQga2Rlc2t0b3BfbG9jayBwcm9ibGVtLgoKMjAwNi0xMS0xMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBOYXRpdmUgTWFjIE9TIFggc3VwcG9ydC4KCjIwMDYtMTEtMDcgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHNzbF92bmN2aWV3ZXI6IHZuYzovLyBkaXJlY3QgY29ubmVjdCwgYWRkIC14IHRvIHNzaCwKCSAgU1NMX1ZOQ19MSVNURU4gdmFyaWFibGUgZm9yIGRpcmVjdCBwcm94eS4KCjIwMDYtMTAtMjkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogQWRkIHRpcCBhYm91dCBob3cgdG8gcmVlbmFibGUgUkVDT1JEIGV4dGVuc2lvbi4KCjIwMDYtMTAtMTEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLWN1cnNvcl9kcmFnIGZvciBEbkQsIGV0Yy4KCjIwMDYtMDktMjMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIEphdmEgdmlld2VyOiBpbXByb3ZlbWVudHMgdG8gY29ubmVjdGlvbiByZXNwb25zZSwgZmFzdGVyCgkgIGNvbm5lY3Rpb25zLgoJKiB4MTF2bmM6IHNvbWUgY2xlYW51cCBmb3IgLXVuaXhwdyBsb2dpbiBwcm9jZXNzLgoKMjAwNi0wOS0yMCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtdW5peHB3X2NtZCwgLXBhc3N3ZmlsZSBjbWQ6L2N1c3RvbTosIC1zc2xub2ZhaWwsCgkgIC11bHRyYWZpbGV4ZmVyCgoyMDA2LTA5LTE3ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IG1vdmUgc29tZSBpbmZvIHByaW50b3V0IHRvIC12LCAtdmVyYm9zZSBtb2RlLiAgQWRkIAoJICAtY29ubmVjdF9vcl9leGl0IG9wdGlvbi4gIEhhdmUgLXJmYnBvcnQgMCBsZWFkIHRvIG5vIFRDUAoJICBsaXN0ZW5pbmcuICBFbGltaW5hdGUgZG91YmxlIGNlcnRpZmljYXRlcyBpbiAucGVtIGZpbGVzLgoJICBBbHdheXMgcHJpbnQgU1NMIGNlcnRpZmljYXRlIHRvIHRoZSBzY3JlZW4gdG8gYWlkIHBhc3RpbmcuCgoyMDA2LTA5LTE1ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGFsbG93IHVzZXIgc2V0IHNpZ25hbHMgdG8gaWdub3JlLCBjbGVhciBESVNQTEFZIGluIAoJICAtdW5peHB3IHN1X3ZlcmlmeS4gLXJhd2ZiIG5vbmUgc2FtZSBhcyBudWxsLiAKCSogcmZic2VydmVyLmM6IHNob3J0ZW4gcmZiRW5jb2RpbmdOZXdGQlNpemUgbWVzc2FnZS4KCjIwMDYtMDktMTMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogZG9jdW1lbnQgJ3NzaCAtdCcgaW1wcm92ZWQga2V5Ym9hcmQgcmVzcG9uc2UuICBhZGQKCSAgZXh0cmEgcmZiUEUoKSBhcm91bmQga2V5c3Ryb2tlcy4gCgkgIG1pc2MvZW5oYW5jZWRfdGlnaHR2bmNfdmlld2VyOiBpbmNvcnBvcmF0ZSBzY3JpcHRzLCBkb2N1bWVudGF0aW9uLAoJICBldGMuIGZvciB0aGUgZW5oYW5jZWQgdGlnaHR2bmMgdmlld2VyIHBhY2thZ2UuCgoyMDA2LTA5LTEwICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IG1pbm9yIGNoYW5nZXM6IFJFUV9BUkdTIGZvciAtc3NsR2VuQ2VydCwgRVZfU1lOCgkgIFNZTl9SRVBPUlQgY2hlY2sgcmVzdG9yZSBjdXJzb3IgbW9zdCB1bmRlciAtZGlzcGxheSBXQUlULgoKMjAwNi0wOC0xMCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBmaXJzdCBwYXNzIGF0IHRvdWNoc2NyZWVucyB2aWEgdWlucHV0LgoKMjAwNi0wOC0wMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgLXNzbHRpbWVvdXQgb3B0aW9uOyB0d2VhayBzc2wgdGltZW91dHMuCgoyMDA2LTA3LTI4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBzc2xfdm5jdmlld2VyOiByZW1vdmUgc29tZSBiYXNoaXNtcywgYWRkIGZlYXR1cmVzLgoJKiB4MTF2bmM6IC1yb3RhdGUgb3B0aW9uIChlLmcuIGhhbmRoZWxkKSwgZml4IEZQRSBvbiB0cnU2NC4KCjIwMDYtMDctMTcgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogZW5hYmxlIC0td2l0aG91dC14IGJ1aWxkcyBmb3IgLXJhd2ZiIG9ubHkgKE5PX1gxMSkKCjIwMDYtMDctMTEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogbW9yZSB0d2Vha3MgdG8gVUlOUFVULCBtb3N0bHkgbW91c2UgbW90aW9uLgoKMjAwNi0wNy0wOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBhZGQgdWlucHV0IHN1cHBvcnQgKC1waXBlaW5wdXQgVUlOUFVUOi4uLikgZm9yIGZ1bGwKCSAgbW91c2UgYW5kIGtleSBpbnB1dCB0byBsaW51eCBjb25zb2xlIChlLmcuIGZvciBxdC1lbWJlZGRlZCBhcHBzKQoJICBhZGQgLWFsbGlucHV0IGZvciBoYW5kbGVFdmVudHNFYWdlcmx5LgoKMjAwNi0wNy0wNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAybmQgLWFjY2VwdCBwb3B1cCB3aXRoIFdBSVQsIGFuZCBVTklYOiBpbmZvIGZvciB1bml4cHcKCSAgbG9naW4uICBVc2UgUkZCX0NMSUVOVF9PTl9IT0xEIGZvciAtdW5peHB3LiAtdW5peHB3IHdoaXRlIGFycm93CgkgIC1saWNlbnNlIG9wdGlvbi4gIFVzZSBnZXRzcG5hbSBpZiBnZXRwd25hbSBpcyBzaG9ydC4KCSAgYWJicmV2cyBzYz0sIGNtLCBjayBmb3IgdXNlcjpvcHRzLgoKMjAwNi0wNi0yMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBtaXNjIGNsZWFudXAuCgoyMDA2LTA2LTE4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC1ncmFia2JkLCAtZ3JhYnB0ciwgLWVudiBvcHRpb25zLiAgdW5kZXIgLXVuaXhwdyArCgkgIFdBSVQgbGV0IHVzZXIgYWRkIHNvbWUgb3B0aW9ucyBhZnRlciBoaXMgdXNlcm5hbWUgKGUuZy4gcnVuZ2U6My80KQoJICAtYWxsb3dlZGNtZHMgdG8gZmluZSB0dW5lIHZzLiAtbm9jbWRzLiAgZ2VuZXJhbCBjbGVhbnVwLgoKMjAwNi0wNi0xMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiB3b3JkIHR1bmUgU1NMIEphdmEgdmlld2VyOyBmaXggbXVsdGktY2VydHMgYnVnLiBBZGQgCgkgIC1kaXNwbGF5IFdBSVQ6Y21kPUZJTkRESVNQTEFZIGJ1aWx0aW4gc2NyaXB0IGFuZCBjbWQ9SFRUUE9OQ0UKCSAgYWN0aW9uLiAgLWh0dHBfc3NsIG9wdGlvbiBmb3Igc3NsIHN1YmRpciBvbmx5LiAgQWRkIC1yYXdmYiBSQU5ECgkgIHRlc3QgY2FzZS4gIGltcHJvdmUgcmF3X3hmZXIoKSBmb3IgdXNlIGluIGluZXRkIGh0dHBzIHRyYW5zZmVyLgoJICBmaXggYnVnIFNTSCArIC11bml4cHcgLT4gLWxvY2FsaG9zdC4gIGZpeCBidWcgc2V0dXAgY3Vyc29ycwoJICBpbiBXQUlUIG1vZGUuICBNYWMgT1MgWCBwdHkgdHdlYWsuCgoyMDA2LTA2LTA5ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IG1ha2UgLWRpc3BsYXkgV0FJVCArIC11bml4cHcgd29yayBvbiBTb2xhcmlzLgoKMjAwNi0wNi0wOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBYT3BlbkRpc3BsYXkgd3JhcHBlciBmb3IgcmF3IHhhdXRoIGRhdGEsIC11bml4cHcgCgkgIHN1X3ZlcmlmeSgpIHRvIHJ1biBhbnkgY21kLCAtdXNlcnMgdW5peHB3PSBtb2RlLiAtZGlzcGxheSBXQUlUOi4uLgoJICBtb2RlcyBmb3IgZGVsYXllZCBYIGRpc3BsYXkgb3BlbmluZyBhbmQgZHluYW1pYyBjaG9vc2luZy4KCjIwMDYtMDYtMDMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLWNhcHNsb2NrIGFuZCAtc2tpcF9sb2Nra2V5cyBvcHRpb25zLiAgbWFwIHNvbWUgQWx0IGtleXMKCSAgdG8gTGF0aW4gdW5kZXIgbGludXhmYi4gIHN3aXRjaCB0byBuZXcgc3RhdHMgQVBJLiAgSGFuZGxlIG1vcmUKCSAgY2FzZXMgY2FyZWZ1bGx5IHdoZW4gc3dpdGNoaW5nIGZiLgoJCjIwMDYtMDUtMDYgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogaW1wcm92ZWQgc3VwcG9ydCBmb3Igd2ViY2FtcyBhbmQgdHYgdHVuZXJzIHdpdGgKCSAgdmlkZW80bGludXggL2Rldi92aWRlbzogLXJhd2ZiIHZpZGVvLCAtZnJlcXRhYiBldGMuCgkgIENvbnZlbmllbmNlIG9wdGlvbiBmb3IgbGludXggVlQnczogLXJhd2ZiIGNvbnMgKExpbnV4Vk5DCgkgIG1ldGhvZCkuICAtcGlwZWlucHV0IGJ1aWx0aW5zIGZvciB2aWRlbyBhbmQgY29uc29sZS4KCSAgLTI0dG8zMiBvcHRpb24gdG8gYXZvaWQgMjRicHAgcHJvYmxlbXMuICJzbmFwOiIgbWV0aG9kIGZvcgoJICAtcmF3ZmIuCgoyMDA2LTA0LTI2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IHNraXAgZXhpdCBpbiBjaGVja19vcGVuc3NsKCkgaWYgbm90IGNvbXBpbGVkIHdpdGgKCSAgbGlic3NsLiAgc2V0IFNLSVBfSEVMUCAoYWdhaW4pIGluIHNtYWxsIGZvb3RwcmludCBidWlsZHMuCgoyMDA2LTA0LTE2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IE1vcmUgd2ViIHByb3h5IHdvcmsgZm9yIEphdmEgU1NMIGFwcGxldCBhbmQgd3JhcHBlcgoJICBzY3JpcHQgc3NsX3ZuY3ZpZXdlci4gIEFwYWNoZSBTU0wgZ2F0ZXdheSBzdXBwb3J0IGZvcgoJICBpbmNvbWluZyB4MTF2bmMgY29ubmVjdGlvbnMuICBIYW5kbGUgImRvdWJsZSBwcm94eSIgY2FzZS4KCjIwMDYtMDQtMDUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIEZCUE0gc3VwcG9ydCAoLWZicG0pIGZvciBTdW5zLiAtcmF3ZmIgWkVSTyBmb3IKCSAgdGVzdGluZy4gIEJhc2ljIGtleStjZXJ0IG1hbmFnZW1lbnQgdXRpbGl0aWVzOiAtc3NsR2VuQ0EsCgkgIC1zc2xHZW5DZXJ0LCAtc3NsRW5jS2V5LCAtc3NsRGVsQ2VydCwgLXNzbENlcnRJbmZvLCBhbmQKCSAgYWRkbG4gZmVhdHVyZXMuICBTU0wgcHJveHkgY29ubmVjdGlvbi4gIC1zdG9yZXBhc3N3ZCB3aXRoCgkgIG5vIGFyZ3Mgb3IgcHcgZWNoby4KCjIwMDYtMDMtMjYgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLXhpbmVyYW1hIG5vdyBvbiBieSBkZWZhdWx0LiAgSW4gLXNzbCBtb2RlIGFjY2VwdCBodHRwcwoJICBhcHBsZXQgZG93bmxvYWRzIHRocnUgVk5DIHBvcnQuICAtaHR0cHMgb3B0aW9uIGZvciAybmQgaHR0cHMKCSAgcG9ydC4gIExvb2sgZm9yIGNsYXNzZXMvc3NsIHVuZGVyIC1odHRwLiAgYWRkIEphdmEgVVJMIG1lc3NhZ2VzCgkgIHRvIGZpbmFsIG91dHB1dCBsaW5lcy4gIG1ha2UgLWluZXRkIHdvcmsgd2l0aCAtc3NsIChldmVuIGZvcgoJICBodHRwcykuICBmaXggLXVuaXhwdyBsb2dpbiBwcm9tcHQgdW5kZXIgLXNjYWxlLiAgZ3VhcmQgYWdhaW5zdAoJICBjbGllbnREYXRhID0gTlVMTC4gCgoyMDA2LTAzLTExICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGFkZCAtc3NsIG1vZGUgdXNpbmcgbGlic3NsLiAgSW5jbHVkZSBYZHVtbXkgaW4gbWlzYy4KCSAgYSBmZXcgbW9yZSBtYWNyb3MgZm9yIHNtYWxsZXJmb290LCBldGMuCgoyMDA2LTAzLTA4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IG1hbmFnZSBDTElQQk9BUkQgaW4gYWRkaXRpb24gdG8gUFJJTUFSWS4gIC1kZWJ1Z19zZWwKCSAgTWFrZSByZXZlcnNlIGNvbm5lY3Rpb25zIHJlcXVpcmUgcGFzc3dvcmRzLiAgLXVzZXB3IG9wdGlvbi4KCSAgLXN0b3JlcGFzc3dkIHcvbyBhcmdzIHByb21wdHMgYW5kIHdyaXRlcyB+Ly52bmMvcGFzc3dkLgoKMjAwNi0wMy0wNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBzd2l0Y2ggcmVtb3RlIGNvbnRyb2wgdG8gWDExVk5DX1JFTU9URSBwcm9wZXJ0eS4gIFB1dAoJICBpbiAtdW5peHB3IGNvbnN0cmFpbnRzIGZvciByZXZlcnNlIGNvbm5lY3Rpb25zIHVuZGVyIC1pbmV0ZC4KCSAgLWluZXRkIHdvbid0IHF1aXQgd2hlbiByZXZlcnNlIGNvbm4gY2xpZW50IGxlYXZlcy4gQWxsb3cga2V5Ym9hcmQKCSAgaW5wdXQgZm9yIHZpZXdvbmx5IC11bml4cHcgbG9naW5zLiAgIiUqIiB1dGlscyBmb3IgdGVzdGluZwoJICAtdW5peHB3LiAgaW1wcm92ZSBzdGFydCB0aW1lIGZpeCBidWdzLCBzbWFsbCBzY3JlZW4gaW4gZ3VpLgoKMjAwNi0wMy0wNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtdW5peHB3IG9uICpic2QsIGhwdXggYW5kIHRydTY0LiAgQWRkIC11bml4cHdfbmlzIGZvcgoJICBub24tc2hhZG93IHN5c3RlbXMuIGNoZWNrIHN0dW5uZWwgZHlpbmcuICBjaGVjayBTU0hfQ09OTkVDVElPTgoJICBpbiAtdW5peHB3LiAgZ3VpIGljb24gdHdlYWtzLCB1bml4IHVzZXJuYW1lLgoKMjAwNi0wMy0wMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBtb3JlIHR3ZWFrcyB0byAtdW5peHB3IG1vZGUuICBBZGQgLWdvbmUgcG9wdXAgbW9kZS4KCSAgQ2hhbmdlIGZpbGV4ZmVyIHZpYSAtUi4gIFR1bmUgU01BTExfRk9PVFBSSU5ULiAgZ3VpIGZpeGVzLgoKMjAwNi0wMi0yNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtdW5peHB3IGZvciBVbml4IHBhc3N3b3JkIGF1dGgsIC1zdHVubmVsIHRvIHNldHVwCgkgIHN0dW5uZWwoMSkgZm9yIGFuIFNTTCB0dW5uZWwgb24gdGhlIHNlcnZlciBlbmQuICBBZGQgY2xpcGJvYXJkCgkgIGlucHV0IHRvIHBlci1jbGllbnQgaW5wdXQgY29udHJvbHMuCgoyMDA2LTAyLTIwICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGFkZCBTSUdJTlQgU0lHUVVJVCBoYW5kbGluZyBmb3IgcnVuX3VzZXJfY29tbWFuZCgpLAoJICBzZXQgc29tZSBzaWduYWwgaGFuZGxlcnMgdG8gU0lHX0RMRiBmb3IgZm9ya2VkIGNoaWxkcmVuLCAKCSAgcHV0IGEgdGltZW91dCBvbiBwb3J0IDExMyBjb25uZWN0aW9uIHRvIHZpZXdlciBtYWNoaW5lLgoKMjAwNi0wMi0wNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBmaXggQUlYIGJ1aWxkIHdydCBoX2Vycm5vLgoKMjAwNi0wMi0wNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiAtOHRvMjQgbW9yZSBzcGVlZHVwczsgdHVuYWJsZXMgZm9yIHZlcnkgc2xvdyBtYWNoaW5lcy4KCjIwMDYtMDItMDQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogLTh0bzI0IHNwZWVkdXBzIGFuZCBpbXByb3ZlbWVudHMuCgoyMDA2LTAxLTIxICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC04dG8yNCBvcHRzLCB1c2UgWEdldFN1YkltYWdlLiBmaXggLXRocmVhZHMgZGVhZGxvY2tzIGFuZAoJICAtcmF3ZmIgY3Jhc2guCgoyMDA2LTAxLTE4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IC04dG8yNCBub3cgd29ya3Mgb24gZGVmYXVsdCBkZXB0aCA4IHNjcmVlbnMuCgoyMDA2LTAxLTE2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IG1vcmUgdHdlYWtzIHRvIC04dG8yNCwgYWRkIFhHRVRJTUFHRV84VE8yNCBtb2RlIHRvIGNhbGwKCSAgWEdldEltYWdlKCkgb24gdGhlIDhicHAgcmVnaW9ucy4KCjIwMDYtMDEtMTQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIC04dG8yNCBvcHRpb24gZm9yIHNvbWUgbXVsdGktZGVwdGggZGlzcGxheXMgKGJ1dCB1c2UKCSAgb2YgLW92ZXJsYXkgaXMgcHJlZmVycmVkIGlmIHN1cHBvcnRlZCkuCgoyMDA2LTAxLTEyICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBmaXggLURTTUFMTF9GT09UUFJJTlQ9TiBidWlsZHMuCgoyMDA2LTAxLTExICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiB4MTF2bmM6IGNsb3NlIGZkID4gMiBpbiBydW5fdXNlcl9jb21tYW5kKCksIC1ub2NtZHMgaW4gY3Jhc2hfZGVidWcsCgkgIGZpeCA2NGJpdCBidWcgZm9yIC1zb2xpZC4KCjIwMDYtMDEtMDggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogdGhlIGJpZyBzcGxpdC4gb3B0czogLWFmdGVyYWNjZXB0IGFuZCAtcGFzc3dkZmlsZSByZWFkOgoKMjAwNS0xMi0yNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogeDExdm5jOiBlbmhhbmNlIC1wYXNzd2RmaWxlIGZlYXR1cmVzLCBmaWxldHJhbnNmZXIgb24gYnkgZGVmYXVsdCwKCSAgY2FsbCByZmJSZWdpc3RlclRpZ2h0Vk5DRmlsZVRyYW5zZmVyRXh0ZW5zaW9uKCkgZWFybGllci4KCjIwMDUtMTEtMjggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogYWRkIC1sb29wIG9wdGlvbi4KCjIwMDUtMTEtMjUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHgxMXZuYzogdGhyb3R0bGUgbG9hZCBpZiBmYiB1cGRhdGUgcmVxdWVzdHMgbm90IHRha2luZyBwbGFjZS4KCSogbWlzYy94MTF2bmNfcHc6IGFkZCB1dGlsaXR5IHNjcmlwdAoKMjAwNS0xMC0yMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogYWRkIHRpZ2h0Vk5DIEZpbGVUcmFuc2ZlciAoLWZpbGV4ZmVyKSBhbmQgLURGSUxFWEZFUj0xCgkqIC1zbG93X2ZiIGZvciBzcGVjaWFsIHB1cnBvc2UgaW5mcmVxdWVudCBwb2xsaW5nLgoJKiBtYWtlIC1ibGFja291dCB3b3JrIHdpdGggY29weXJlY3QgY2xpcHBpbmcuCgkqIC1ibGFja291dCBub3B0cixXeEgrWCtZLC4uLiB0byBwcmV2ZW50IHBvaW50ZXIgZnJvbSBnb2luZwoJICBpbnRvIGEgYmxhY2tlZCBvdXQgcmVnaW9uLgoKMjAwNS0wNy0xNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogbW9yZSBpbXByb3ZlbWVudHMgdG8gZ3VpIFVFLiAgZ3VpIHJlcXVlc3RzIHZpYSBjbGllbnRfc29jawoJICBQQVNTV0RfUkVRVUlSRUQgYW5kIFBBU1NXRF9VTkxFU1NfTk9QVyBidWlsZCBvcHRpb25zLgoKMjAwNS0wNy0xMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogZ3VpOiByZW1vdmUgbmV2ZXJzaGFyZWQgZXRjLiwgcGFyc2UgY21kIGxpbmUsIGJ1ZyBmaXhlcy4KCSogeDExdm5jOiBmaXggcG9pbnRlciBxdWV1ZSBidWlsZHVwIHVuZGVyIC12aWV3b25seS4KCjIwMDUtMDctMTAgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIG1vcmUgaW1wcm92ZW1lbnRzIHRvIGd1aSwgZGVmYXVsdCB2YWx1ZXMsIHNhdmUtc2V0dGluZ3MuLgoJKiB4MTF2bmMgc2NhcnkgcGFzc3dvcmQgd2FybmluZ3MuIFJlbGVhc2Ugc2V0dGluZ3MuIC1RRCBvcHRpb24uCgkgIGFkZCBcIyB0byByYyBmaWxlcyBhbmQgZml4IHJjZmlsZSByZWFkIGJ1Zy4KCjIwMDUtMDctMDkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFkZCAtZ3JhYl9idXN0ZXIgaGVscGVyIHRocmVhZCB0byBicmVhayB1cCBncmFicyAobWlnaHQgbm90IGJlCgkgIG5lZWQgYW55IGxvbmdlciBkdWUgdG8gZ2V0dCBYRmx1c2gtaW5nKS4gIEZpeCBzY3JvbGxzIGFuZAoJICBjb3B5cmVjdCBmb3IgLWNsaXAgYW5kIC1pZCBjYXNlcy4KCjIwMDUtMDctMDYgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIG1hbnkgaW1wcm92ZW1lbnRzIHRvIHRoZSBndWkuIG5vdyBlbWJlZHMgaW50byBzeXN0ZW0gdHJheSBvay4KCSAgeDExdm5jIC1kZWJ1Z19ncmFicywgLXByaW50Z3VpLCAtbm9zeW5jCgoyMDA1LTA3LTAxICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBzdXBwb3J0IGZvciBzaW1wbGUgIi1ndWkgdHJheSIgbW9kZSAoc21hbGwgaWNvbiBsaWtlIHRoZSBvcmlnaW5hbAoJICB4MHJmYnNlcnZlciBoYWQpLiAgQ2FuJ3QgZmlndXJlIGhvdyB0byBnZXQgYSB0cmF5IHRvIHN3YWxsb3cgaXQuLgoJKiBwYXNzd2QsIHZpZXdwYXNzd2QgY2hhbmdpbmcgaW4gdHJheSBtb2RlLgoJKiBhbGxvdyB0eXBvcyBsaWtlOiB4MTF2bmMgLVIgLXNjYWxlIDMvNAoKMjAwNS0wNi0yNiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogdHJhY2sga2V5Y29kZSBzdGF0ZSBmb3IgaGV1cmlzdGljcywgLXNsb3BweV9rZXlzLCAtd21kdAoJKiBhZGQgLW5vZGJnIGFzIG9wdGlvbgoKMjAwNS0wNi0yMSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogcmVpbnN0YXRlICJiYWQgZGVza3RvcCIgZm9yIHdpcmVmcmFtZS4KCSogZXh0cmEgbG9uZyBpbmZvIGFuZCB0aXBzIG9mIFhPcGVuRGlzcGxheSBmYWlscy4KCjIwMDUtMDYtMTggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGNsZWFuIHVwIHNvbWUgbWFsbG9jL2ZyZWUgcHJvYmxlbXMgKGRvbid0IGZyZWUgdGhlIGN1cnJlbnQgY3Vyc29yKQoJKiBzZXQgRElTUExBWSBiZWZvcmUgY2FsbGluZyBnY29uZiwgZGNvcCB1bmRlciAtc29saWQKCSogLWluZXRkIC1xIGFuZCBubyAtbyBsb2dmaWxlIGltcGxpZXMgY2xvc2luZyBzdGRlcnIuCgoyMDA1LTA2LTE0ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiAtRE5PR1VJIGFuZCAtRFZJRVdPTkxZIGJ1aWxkIG9wdGlvbnMKCSogLW5vc2tpcF9kdXBzIHRoZSBkZWZhdWx0ICh3aW5kb3dzIHZpZXdlciBzZW5kcyBubyB1cHMgd2hlbgoJICByZXBlYXRpbmcpCgkqIEhBVkVfU09MQVJJU19YUkVBRFNDUkVFTiBhbmQgSEFWRV9JUklYX1hSRUFERElTUExBWQoJKiBBbHQrQnV0dG9uK01vdGlvbiB0byB3aXJlZnJhbWUuICB0dW5hYmxlIGluIFdJUkVGUkFNRV9QQVJNUwoJKiBjb3B5cmVjdCBub3cgdGhlIGRlZmF1bHQgdW5kZXIgLXNjYWxlICh3b3JrcyBPSywgYnV0IG11c3QKCSAgc2VuZCBhIGNsZWFudXAgdXBkYXRlKQoJKiBmaXggLXBlZGFudGljIGFuZCBTdW4gY2Mgd2FybmluZ3MgYW5kIGVycm9ycyAodW5zaWduZWQsIGV0Yy4uKQoJKiBwcmludCBvdXQgZmF0YWwgZXJyb3IgbWVzc2FnZXMgdW5kZXIgLXF1aWV0CgkqIC1zZWxkaXIgdG8gY29udHJvbCBhbmQgZGVidWcgc2VsZWN0aW9uIHRyYW5zZmVycy4KCSogZml4IGNyYXNoZXMgb24gNjRiaXQgd3J0IHVuc2lnbmVkIGxvbmcgaW4gcmljaCBjdXJzb3JzLgoJKiBmaXgga2RlIGd1ZXNzaW5nIGVycm9ycwoJKiBtb3JlIHNjcm9sbGluZyBhbmQgd2lyZWZyYW1lIHR3ZWFrcy4KCjIwMDUtMDYtMDMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIG1ha2Ugc2Nyb2xsY29weXJlY3QgbW9yZSBvciBsZXNzIHVzYWJsZSB1bmRlciAtc2NhbGUKCSogYWRkIC1maXhzY3JlZW4gZm9yIHBlcmlvZGljIGNsZWFudXAgb2YgcGFpbnRpbmcgZXJyb3JzLgoJKiBhZGp1c3Qga2V5cmVwZWF0IHNjcm9sbCBiZWhhdmlvci4KCjIwMDUtMDUtMzAgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFsdGVyICJtYWdpYyBjbGVhbnVwIGtleSBzZXF1ZW5jZXMiIChOKkFsdF9MIGFuZCBOKlN1cGVyX0wpCgkqIGRpYWwgZG93biBjaGVja194cmVjb3JkX3Jlc2V0KCkgcmVzZXQgdGltZXMuCgoyMDA1LTA1LTI0ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBtb3JlIC1zY3JvbGxjb3B5cmVjdDogR3JhYlNlcnZlciBkZXRlY3Rpb24sIGF1dG9yZXBlYXQgdGhyb3R0bGluZywKCSAgaGFjayB0byBjbGVhbiBzY3JlZW4gMyw0LDUgQWx0X0wgaW4gYSByb3csIG1vdXNlIHdoZWVsIGRldGVjdC4KCSogZml4IGJ1ZyB3cnQgc3dpdGNoaW5nIHRvIHNpbmdsZV9jb3B5dGlsZSwgYWRkIERhcndpbiB0byBzaG0gbGltaXQuCgoyMDA1LTA1LTE3ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBtb3JlIC1zY3JvbGxjb3B5cmVjdCwgLXNjcl90ZXJtIGhhY2tzIGZvciB0ZXJtaW5hbHMuCgkqIC13YWl0X3VpLCAtbm93YWl0X2JvZyB0dW5hYmxlcy4gIHB1c2ggY3Vyc29yIHNvb25lci4KCjIwMDUtMDUtMTQgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIG11Y2ggbW9yZSB3b3JrIG9uICAiLXNjcm9sbGNvcHlyZWN0IiBtb2RlLi4uIGdldHRpbmcgdXNhYmxlLgoJKiByZW1vdmUgLXBvaW50ZXJfbW9kZSAzLCBzaGlmdCBldmVyeW9uZSBiYWNrIGRvd24KCSogLWRiZyAiY3Jhc2ggc2hlbGwiIGZvciBkZWJ1Z2dpbmcKCSogLWFkZF9rZXlzeW1zIG5vdyB0aGUgZGVmYXVsdCwgcGVyaW9kaWNhbGx5IGNsZWFycyBpZiBuZWVkZWQuCgkqIHRyeSB0byBhdXRvZGV0ZWN0IGlmIC14a2Igd291bGQgYmUgYSBnb29kIGlkZWEuCgkqIGltcHJvdmUga2V5Y29kZSBndWVzc2luZyBmb3IgLXhrYiBtb2RlIChmb3JjZSBJU09fTGV2ZWwzX1NoaWZ0KQoJKiAtcmVtYXAgREVBRCwgZXRjLiBmb3IgZGVhZC9tdXRlIGtleXMgcmVtYXBwaW5ncy4KCjIwMDUtMDUtMDIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGluaXRpYWwgc3VwcG9ydCBmb3IgdXNpbmcgUkVDT1JEIHRvIGRldGVjdCBzb21lIHR5cGVzIG9mIHdpbmRvdwoJICBzY3JvbGxzLiAgVGhpcyBpcyAiLXNjcm9sbGNvcHlyZWN0IiBtb2RlLCB1c2UgLW5vc2Nyb2xsY29weXJlY3QKCSAgdG8gZGlzYWJsZS4gIE11Y2ggdHVuaW5nIGFuZCBwYWludGluZyBlcnJvciByZXBhaXIgc3RpbGwgcmVxdWlyZWQuICAKCSogbW9yZSBidWlsZCB0aW1lIGN1c3RvbWl6YXRpb25zOiBSRU1PVEVfREVGQVVMVCwgUkVNT1RFX0NPTlRST0wsCgkgIEVYVEVSTkFMX0NPTU1BTkRTLCBOT1JFUEVBVCwgV0lSRUZSQU1FKiwgU0NST0xMKiwgLi4uCgkqIGFkZGVkIGJhbmR3aWR0aCBhbmQgbGF0ZW5jeSBtZWFzdXJlbWVudHMuCgkqIGFkZGVkIFhMaXN0SG9zdHMgdG8gLXByaXZyZW1vdGUgY2hlY2suCgkqIGRlYnVnXyogcmVtb3RlLWNvbnRyb2wgdmFyaWFibGVzLgoJKiByZW1vdmVkIE9MRF9UUkVFIHN0dWZmLgoKMjAwNS0wNC0xOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogc29tZXdoYXQgc2FmZXIgcmVtb3RlLWNvbnRyb2wgZGVmYXVsdHMsIGFuZCBhZGRubCBvcHRpb25zIGZvcgoJICBtb3JlIHNhZmUgb3BlcmF0aW9uOiAtcHJpdnJlbW90ZSwgLXNhZmVyLCAtbm9jbWRzLCAtdW5zYWZlCgkqIC13aXJlZnJhbWUsIC13aXJlY29weXJlY3Q6IGluc3RlYWQgb2YgaGF2aW5nIHVzZXIgbG9vayBhdCBhCgkgIHNsb3dseSBtb3ZpbmcsIGx1cmNoaW5nIHdpbmRvdywgZ3Vlc3Mgd2hlbiBhIHdpbmRvdyBpcyBiZWluZwoJICBtb3ZlZC9yZXNpemVkIGFuZCBqdXN0IHNob3cgYSB3aXJlZnJhbWUuIC13aXJlY29weXJlY3QgbWVhbnMgdG8KCSAgYXBwbHkgcmZiRG9Db3B5UmVnaW9uIHRvIHRoZSBkZXRlY3RlZCBtb3ZlIGFzIHdlbGwuCgkqIGRlYnVnZ2luZyBzd2l0Y2hlcyBmb3IgWCBldmVudHMgYW5kIFggZGFtYWdlOiBkZWJ1Z194ZXZlbnRzCgkgIGRlYnVnX3hkYW1hZ2UuCgkqIC1yYXdmYiBidWdmaXhlcy4gLW5vdmlld29ubHkgaGFjayB0byBzdGlsbCBzZW5kIFVJIHRvIFguCgoyMDA1LTA0LTExICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBmaXggLWNsaXAgdW5kZXIgLXJhd2ZiLCBmaXggb2Zmc2V0IGJ1ZyB1bmRlciBmaWxlIGxzZWVraW5nLgoJKiBhZGQgLXJhd2ZiIHNldHVwOmNtZCBtb2RlIHRvIGluaXRpYWxpemUgZmIuIGV4YW1wbGU6IG1pc2MvcmFuZmIucGwKCjIwMDUtMDQtMTAgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIC1yYXdmYiBub24gWC1wb2xsaW5nIChpLmUuIHNobSwgbW1hcCwgbHNlZWspLgoJKiAtcGlwZWlucHV0IGVuYWJsZSBleHRlcm5hbCB1c2VyIGlucHV0IHByb2Nlc3NpbmcgY29tbWFuZC4KCSogLXh0cmFwIHVzZSBYRVNpbXVsYXRlWEV2ZW50UmVxdWVzdCB0byBpbmplY3QgdXNlciBpbnB1dC4KCSogc2NhbGluZyBibGVuZCBmb3IgU3RhdGljR3JheSwgYWRkIDpmYiBzY2FsaW5nIG9wdGlvbi4KCSogZGVmYXVsdCBwYXNzd29yZCBtYWNyb3MuCgkqIGltcHJvdmUgLW5vcmVwZWF0IHVzZSB1bmRlciAtdmlld29ubHkuCgkqIC1mbGFnIGZsYWdmaWxlIHRvIGFpZCB3cmFwcGVyIHNjcmlwdHMuCgkqIGFkZCB1dGlsaXR5IHNjcmlwdHMsIGV0Yy4gZGlyIC4vbWlzYwoKMjAwNS0wNC0wMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogdHJ5IERFQy1YVFJBUCBvbiBYMTFSNSBpZiBYVGVzdEdyYWJDb250cm9sIGlzIG1pc3NpbmcuCgkqIC1zaGlmdGNtYXAgbiwgZm9yIDhicHAgZGlzcGxheXMgdXNpbmcgPCAyNTYgY29sb3IgY2VsbHMKCSAgYW5kIHdpdGggcGl4ZWwgdmFsdWVzIHNoaWZ0ZWQgZnJvbSB6ZXJvLgoJKiBmaXggREFNQUdFIGV2ZW50IGxlYWsgYWZ0ZXIgdmlld2VycyBkaXNjb25uZWN0LgoJKiAtaHR0cCBvcHRpb24gdG8gdHJ5IHRvIGd1ZXNzIHdoZXJlIHRoZSBqYXZhIHZpZXdlciBpcy4KCjIwMDUtMDMtMjkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGJ1aWxkLXRpbWUgY3VzdG9taXphdGlvbnMgWDExVk5DX1NIQVJFRCwgWDExVk5DX0ZPUkVWRVIsCgkgIFJFTU9URV9DT05UUk9MLCBTTUFMTF9GT09UUFJJTlQgZm9yIENQUEZMQUdTCgkqIGZpeCBldmVudCBsZWFrcyBmb3IgeGtiIEJlbGxOb3RpZnkgYW5kIENsaWVudE1lc3NhZ2UgYW5kIG90aGVycywKCSAgZXNwLiB1bmRlciAtbm9mYi4gIG1ha2Ugbm9mYiB3b3JrIHdpdGggcmVtb3RlIGNvbnRyb2wuCgkqIC1ub2xvb2t1cCBmb3IgYmFkIEROUyBzZXR1cHMuCgkqIG1vcmUgcGxheWluZyB3aXRoIHBvaW50ZXJfbW9kZTogY2hlY2tfdXNlcl9pbnB1dDMoKQoKMjAwNS0wMy0xOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogc2NhbGUgY3Vyc29ycyBhbG9uZyB3aXRoIGRpc3BsYXkuIFVzZSAtc2NhbGVfY3Vyc29yIHRvIGNoYW5nZQoJICBvciBkaXNhYmxlIGN1cnNvciBzY2FsaW5nLgoJKiBzcGVlZCB1cCBzY2FsaW5nIGluIHNvbWUgY2FzZXMsIDpuYiBhbmQgaW50ZWdlciBtYWduaWZpY2F0aW9uLgoJKiBwcm92aWRlIGFsdGVybmF0aXZlIGFycm93IGN1cnNvcnMgKDEtNikgdmlhIC1hcnJvdyBuLgoJKiByZXNldCBubyBhdXRvcmVwZWF0IGEgY291cGxlIHRpbWVzIGlmIHNvbWV0aGluZyB0dXJucyBpdCBvZmYsCgkgIHNldCB3aXRoIC1ub3JlcGVhdCBOLgoJKiBkbyBub3QgdGFrZSBhIG5hcCBpZiBEQU1BR0Ugc2VlbXMgdG8gYmUgZG9pbmcgaXRzIGpvYi4KCjIwMDUtMDMtMTIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHN1cHBvcnQgZm9yIHRoZSBYIERBTUFHRSBleHRlbnNpb24gdG8gcmVjZWl2ZSBkYW1hZ2UKCSAgcmVjdGFuZ2xlIHJlcG9ydHMgZnJvbSB0aGUgWCBzZXJ2ZXIuICBPbiBieSBkZWZhdWx0LCBkaXNhYmxlCgkgIHdpdGggLW5veGRhbWFnZS4gIEN1cnJlbnRseSBvbmx5IHRydXN0cyBzbWFsbCByZWN0cwoJICAoYnV0IHNlZSAteGRfYXJlYSBuKSBhbmQgdXNlcyB0aGUgcmVzdCBhcyAiaGludHMiIGZvciB0aGUKCSAgc2NhbmxpbmUgcG9sbGluZy4KCSogLWNsaXAgV3hIK1grWSB0byBzaG93IGEgY2xpcHBlZCBzdWItcmVnaW9uIG9mIHRoZSBzY3JlZW4uCgkqIHVzZSBSRkMgMTQxMyAoaWRlbnRkKSB0byBhdHRhY2ggYSBuYW1lIHRvIGEgY2xpZW50IGluIAoJICBmcmllbmRseSBlbnZpcm9ubWVudHMuCgkqIGZpeCBYQVVUSE9SSVRZIHdydCAnLWF1dGggLi4uIC1ndWkgb3RoZXI6MCcuCgoyMDA1LTAzLTA0ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBhZGQgY2hhbmdlcyB0byBjb3VwbGUgd2l0aCAtbGlzdGVuIG9wdGlvbiwgaW4gcGFydGljdWxhcgoJICB0aGUgYmVoYXZpb3Igb2YgLWxvY2FsaG9zdCBhbmQgcmVtb3RlIGNvbnRyb2wgY21kcy4KCSogd29ya2Fyb3VuZHMgZm9yIG9sZCB0cmVlcy4KCjIwMDUtMDItMjMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGZpbmFsIGNoYW5nZXMgZm9yIDAuNy4xIHJlbGVhc2UuCgoyMDA1LTAyLTIxICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiAtbmFwIGlzIG5vdyB0aGUgZGVmYXVsdCwgZGlzYWJsZSB3aXRoIC1ub25hcAoJKiBzZXQgdmVyc2lvbiB0byAwLjcuMSwgd29yZCB0dW5lIC1oZWxwLCBldGMuCgoyMDA1LTAyLTE0ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBjbGVhbnVwIC11c2VycyBzdHVmZiwgYWRkICJsdXJrPSIgbW9kZQoJKiBzdXBwb3J0IGNkZSBpbiAtc29saWQKCSogc2ltcGxlIGd1aSBtb2RlIGZvciBiZWdpbm5lcnMsIC1ndWkgZXosLi4uCgoyMDA1LTAyLTEwICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBBZGQgLWlucHV0IHRvIGZpbmUgdHVuZSBjbGllbnQgaW5wdXQgKGtleXN0cm9rZSwgbW91c2UgbW90aW9uLAoJICBhbmQgYnV0dG9uIHByZXNzZXMpLiAgQWxsb3cgcGVyLWNsaWVudCBzZXR0aW5nIHZpYSByZW1vdGUgY250bC4KCSogZml4IGJ1ZyBpbiBnZXRfcmVtb3RlX3BvcnQsIGFkZCBpcDJob3N0IGZvciBjbGllbnQgaW5mby4KCjIwMDUtMDItMDkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIEFkZCAtdXNlcnMgc3dpdGNoIHVzZXIgbWVjaGFuaXNtIGFuZCByZWxhdGVkIHV0aWxpdGllcy4KCSogZml4IC1zb2xpZCBmb3IgZ25vbWUgYW5kIGtkZS4KCSogZXhpdCBlYXJsaWVyIG9uIHRyYXBwZWQgWElPIGVycm9ycy4KCjIwMDUtMDItMDUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIC1zb2xpZCBzb2xpZCBjb2xvciBiYWNrZ3JvdW5kIHdoZW4gY2xpZW50cyBhcmUgY29ubmVjdGVkLiAKCSogLW9wdHMvLT8gdG8gc2hvdyBvcHRpb24gbmFtZXMgb25seS4KCjIwMDUtMDEtMjMgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHN5bmMgd2l0aCBuZXcgZHJhdyBjdXJzb3IgbWVjaGFuaXNtLCBrZWVwIG9sZCB3YXkgaW4gT0xEX1RSRUUuCgkqIGFkZCAtdGltZW91dCBvcHRpb24sIGNoYW5nZSAtYWxwaGFibGVuZCB0byBiZSBkZWZhdWx0CgkqIC1SIG5vcmVwZWF0IG5vdyBmb3JjZXMgdGhlIGlzc3VlIChYc2Vzc2lvbiBtYXkgdHVybiBpdCBiYWNrIG9uKS4KCSogdHJ5IDowIGlmIG5vIG90aGVyIGluZm8uCgoyMDA1LTAxLTE1ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBhZGp1c3QgYWxwaGEgYmxlbmRpbmcgcGFyYW1ldGVycywgLWFscGhhYmxlbmQsIGhhbmRsZSAyNGJwcC4KCSogYWRkIC1zbmFwZmIgc25hcHNob3QgZmIsIG5vdCBjbGVhciBob3cgdXNlZnVsIGl0IGlzLi4KCSogbW9yZSBmdW5jdGlvbnMgZXRjIGZvciAtcG9pbnRlcl9tb2RlIDQsIHN0aWxsIG5vdCBmaW5pc2hlZC4KCSogc2Nhbl9mb3JfdXBkYXRlcygpICJjb3VudCBvbmx5IiBtb2RlLgoJKiBpbmNyZWFzZSBtYXggc2htIHNpemUgb24gTGludXguCgkqIC1vYSAtbG9nYXBwZW5kLCAtcG0sIC1zcGVlZHMgCgkqIGZpeCBidWdzIGluIC1hbGxvdywgLVIgY29ubmVjdCwgc2NyZWVuID09IE5VTEwKCjIwMDQtMTItMjcgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFsbG93IC1ETElCVk5DU0VSVkVSX0hBVkVfRk9PPTAgb3ZlcnJpZGUgZXZlcnl0aGluZwoJKiBnZXRfeGZpeGVzX2N1cnNvcigpIHRyeSB0byBtb3JlIGNhcmVmdWxseSBjb252ZXJ0IGFscGhhIGNoYW5uZWwKCSAgdG8gb3BhcXVlIHBpeGVsLiAgT3B0aW9ucyAtYWxwaGFjdXQsIC1hbHBoYWZyYWMsIC1hbHBoYXJlbW92ZQoJKiBtb3JlIGNvbW1hbmRzIHVuZGVyIHJlbW90ZSBjb250cm9sOiByZmJ3YWl0LCByZmJwb3J0LCBodHRwLAoJICBodHRwcG9ydCwgaHR0cGRpciwgZW5hYmxlaHR0cHByb3h5LCBkZXNrdG9wLCBhbHdheXNzaGFyZWQsCgkgIGRvbnRkaXNjb25uZWN0LiAgQWRkIHRvIHRreDExdm5jLgoKMjAwNC0xMi0yMiAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogZmluYWwgcG9saXNoaW5nIGZvciAwLjcgcmVsZWFzZSwgdGt4MTF2bmMgdHdlYWtzCgkqIG1vcmUgY2FyZWZ1bCByZmJQRSBpbiBwaWNrX3dpbmRvdywgc3RhcnQgY2hlY2tfdXNlcl9pbnB1dDQoKQoKMjAwNC0xMi0xOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogY2xlYW51cCBwdXRlbnYsIHNucHJpbnQsIG90aGVyIHN0cmluZyBtYW5pcC4KCSogYWRkIC1zeW5jIG1vZGUgdG8gcmVtb3RlIGNvbnRyb2wgZm9yIGJldHRlciBjb250cm9sCgkqIGFsbG93IC1yZW1vdGUgYW5kIC1xdWVyeSBhdCBzYW1lIHRpbWUuCgoyMDA0LTEyLTE2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBzdXBwb3J0IGZvciBYRklYRVMgZXh0ZW5zaW9uIHRvIHNob3cgdGhlIGV4YWN0IGN1cnNvciBzaGFwZSwKCSAgd29ya2luZyBvbiBMaW51eC9Yb3JnIGFuZCBTb2xhcmlzIDEwLiAgZGlzYWJsZSB3aXRoIC1ub3hmaXhlcwoJKiByZW1vdGUgY29udHJvbCBtYW5pYSAtIG5lYXJseSBldmVyeXRoaW5nIGNhbiBiZSBjaGFuZ2VkIGR5bmFtaWNhbGx5IQoJICBzZWUgdGhlIC1yZW1vdGUvLXF1ZXJ5IChha2EgLVIvLVEpIG9wdGlvbnMuIGUuZy4gLVIgc2NhbGU6NS82CgkqIHNpbXBsZSBndWkgdGt4MTF2bmMgYmFzZWQgb24gdGhlIHJlbW90ZSBjb250cm9sIG1lY2hhbmlzbSwgc2VlIC1ndWkKCSogc3VwcG9ydCBmb3IgWFJBTkRSIGV4dGVuc2lvbiwgaWYgdGhlIFggc2NyZWVuIGNoYW5nZXMgc2l6ZSAoc2VlCgkgIHhyYW5kcigxKSksIHgxMXZuYyB3aWxsIHJlc2l6ZSB0aGUgZmIuIFBheXMgdG8gaGF2ZSBOZXdGQlNpemUgdmlld2VyIAoJKiAtb3ZlcmxheSBzdXBwb3J0IG9uIElSSVggd2l0aCBYUmVhZERpc3BsYXkgKG5vdCB0ZXN0ZWQpLgoJKiBSRkJfTU9ERSBpcyBzZXQgdG8gImFjY2VwdCIgb3IgImdvbmUiIGluIGVudmlyb25tZW50CgkqICItaWQgcGljayIgd2lsbCBsZXQgeW91IHBpY2sgdGhlIHdpbmRvdyAoY2FsbHMgeHdpbmluZm8oMSkuLi4pCgkqICItcG9pbnRlcl9tb2RlIG4iIHJlcGxhY2VzIC1vbGRfcG9pbnRlciAobj0xKSBhbmQgLW9sZF9wb2ludGVyMiAobj0yKQoJICBhIG5ldyBtb2RlIG49MyBpcyBhZGRlZCAoc2ltaWxhcnkgdG8gbm9kcmFnZ2luZywgYnV0IGR5bmFtaWMpLgoJKiAiLXNiIG4iIHNjcmVlbiBibGFuayB0aW1lb3V0IG9wdGlvbiBpcyBub3cgZG9jdW1lbnRlZC4KCSogcmVuYW1lZCBOT05fQ1ZTIHRvIE9MRF9UUkVFCgoyMDA0LTA4LTMxICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBuZXcgY2hlY2tfdXNlcl9pbnB1dCgpIHBvaW50ZXIgaW5wdXQgYWxnb3JpdGhtLCBpdCB0cmllcyB0byBhdm9pZAoJICBleHRyYS1kcmF3cy4gc3RpbGwgbmVlZHMgdHVuaW5nLCBnZXQgcHJldmlvdXMgb25lIHdpdGggLW9sZF9wb2ludGVyMgoJKiBhZGQgTk9OX0NWUyBtYWNybyBmb3IgYnVpbGRpbmcgaW4gb2xkZXIgQ1ZTIHRyZWVzLgoKMjAwNC0wOC0yOSAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogcmVtb3ZlIG9sZCBtb3VzZSBwYXRjaCBjb2RlLCBub3cgdXNlIHJmYlNldEN1cnNvciAoKyB3b3JrYXJvdW5kcykKCSogY2hhbmdlZCBjdXJzb3Igc2hhcGUgb3B0aW9ucyAobm8gbW9yZSAtbW91c2UsIC4uLikgdG8gJy1jdXJzb3IgbW9kZScKCSAgd2hlcmUgJ21vZGUnIGNhbiBiZSBlbXB0eSAiWCIsICJzb21lIiwgb3IgIm1vc3QiLiAgInNvbWUiIGFkZHMKCSAgaGV1cmlzdGljcyBmb3IgdHdvIG1vcmUgY3Vyc29ycy4KCSogLW5vY3Vyc29yc2hhcGUgYWRkZWQuCgkqIGlmZGVmIGNoZWNrcyBmb3IgWFNITSBhbmQgWFRFU1QuICBBZGQgKl93ciB3cmFwcGVycyBhcyB3ZWxsLgoJKiAtdm5jY29ubmVjdCBpcyBub3cgdGhlIGRlZmF1bHQuCgoyMDA0LTA4LTE1ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiAtb3ZlcmxheSBvcHRpb24gdG8gZml4IGNvbG9yIHByb2JsZW1zIG9uIFN1biBtYWNoaW5lcyB3aXRoIDgrMjQKCSAgYW5kIDI0Kzggb3ZlcmxheSB2aXN1YWxzLCB1c2VzIFNvbGFyaXMgWFJlYWRTY3JlZW4oKS4KCSogZXhwb3NlIC1zaWQgb3B0aW9uIChzaGlmdGVkIC1pZCB3aW5kb3dpZCkgdG8gYWxsb3cgZXhwbGljaXQKCSAgd3JhcHBpbmcgb2YgWEdldEltYWdlLCBldGMgZm9yIC1vdmVybGF5CgkqIGZpeCBtaXNjIGJ1Z3M6IG1pc3NpbmcgdmFyIHR5cGVzLCBoYXJkd2lyZWQgYmxhY2tvdXRzIHNpemVzLAoJICBzdWJ3aW4gZGVza3RvcCBuYW1lIGNyYXNoLgoJICAKMjAwNC0wOC0wMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogYWRkIG1hbiBwYWdlIHgxMXZuYy4xIGF1dG9nZW5lcmF0ZWQgZnJvbSB4MTF2bmMgLWhlbHA7IHR3ZWFrCgkgIGhlbHAgb3V0cHV0IGEgbGl0dGxlIGJpdC4gIEFkanVzdCBhdXRvY29uZiB0byBwaWNrIHVwIG1hbnBhZ2UuCgkqIGFkZCBSRUFETUUgZnJvbSB3ZWJzaXRlIGRvY3MuCgkqIHplcm8gd2F0Y2hfYmVsbCBhbmQgdXNlX3hrYl9tb2R0d2VhayBpZiBubyBYS0VZQk9BUkQKCjIwMDQtMDctMzEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIC1jdXJzb3Jwb3Mgbm93IHRoZSBkZWZhdWx0OyBtYWtlIGN1cnNvcnBvcyB3b3JrIHdoZW4gc2NhbGluZwoJKiBmaXggYnVnIHdpdGggbXVsdGlwbGUgYWRkcyBvZiB0aGUgc2FtZSBrZXlzeW0gZm9yIC1hZGRfa2V5c3ltcwoJKiByZXdoYWNrIC1oZWxwIG91dHB1dCBhZ2FpbgoJKiBhZGp1c3QgdmVyc2lvbiBudW1iZXIgYW5kIG91dHB1dC4KCjIwMDQtMDctMjggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIC1hZGRfa2V5c3ltcyBkeW5hbWljYWxseSBhZGQgbWlzc2luZyBrZXlzeW1zIHRvIFggc2VydmVyCgoyMDA0LTA3LTI2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBmaXJzdCBwYXNzIGF0IGRvaW5nIG1vZHR3ZWFrIHZpYSBYS0VZQk9BUkQgZXh0ZW5zaW9uICgteGtiKQoJKiAtc2tpcF9rZXljb2RlcyBvcHRpb24gZm9yIHVzZSB3aXRoIC14a2IKCSogcmVzZXQgbW9kdHdlYWsgYW5kIHhrYl9tb2R0d2VhayBvbiBldmVudCBNYXBwaW5nTm90aWZ5LgoJKiB0cmFwIFhlcnJvciBkdXJpbmcgWFNlbmRFdmVudC9YQ2hhbmdlUHJvcGVydHkuCgkqIGZpeCBidWcgcmVxdWVzdGluZyBQUklNQVJZIHdheSB0b28gb2Z0ZW4uCgkqIG1vcmUgY2FyZWZ1bCB0byBjaGVjayBpZiBYS2V5c3ltVG9TdHJpbmcgcmV0dXJucyBOVUxMLgoJKiBjb250aW51YXRpb24gbGluZXMgIlwiIGluIHgxMXZuY3JjLgoJKiB1bmRvYydkIGV4cHRzOiAtaXNvbGV2ZWwzLCAteGtiY29tcGF0CgoyMDA0LTA3LTE5ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBpZ25vcmUga2V5c3ltcyA1LTggZm9yIGtleWNvZGUga2V5bWFwcGluZy4KCSogaGVscCB0byBzdGRvdXQgZm9yIGVhc3kgcGFnaW5nLCBhZGQgbGFzdG1vZCB0byBoZWxwIGFuZCAtdmVyc2lvbi4KCjIwMDQtMDctMTUgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIG1ha2UgIm1vZHR3ZWFrIiB0aGUgZGVmYXVsdCwgZGlzYWJsZSB3aXRoIC1ub21vZHR3ZWFrLiAgdGhpcwoJICBjb3JyZWN0cyBnaG9zdCAiPCA+IiBrZXkgb24gcGMxMDQgdXMgaW4gWEZyZWU4Ni4KCSogZml4IGJ1ZyB3cnQgbm8gZ290X2tleWJvYXJkX2lucHV0IHVuZGVyIG1vZHR3ZWFrCgoyMDA0LTA3LTEwICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiAtbm9yZXBlYXQgdG8gdHVybiBvZmYgWCBzZXJ2ZXIgYXV0b3JlcGVhdCB3aGVuIGNsaWVudHMgZXhpc3QsCgkgICh0aGlzIGlzIHdvcmthcm91bmQgZm9yIHRoZSByZXBlYXRpbmcga2V5c3Ryb2tlIGJ1Zy4gIE5vdGUgdGhhdAoJICBjbGllbnQgc2lkZSBkb2VzIGF1dG9yZXBlYXRpbmcgc28gbm90IGEgYmlnIGxvc3MpLgoKMjAwNC0wNy0wNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogZXh0ZW5kIC1hbGxvdyB0byByZS1yZWFkIGEgZmlsZSB3aXRoIGFsbG93ZWQgSVAgYWRkcmVzc2VzLiAKCSogaW1wcm92ZW1lbnRzIHRvIC1oZWxwIHRleHQuCgoyMDA0LTA3LTAxICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBpbXByb3ZlIHNjYWxlZCBncmlkIGNhbGN1bGF0aW9uIHRvIHByZXZlbnQgZHJpZnQgKHdoaWNoIGNhdXNlcwoJICBkcmlmdCBpbiBwaXhlbCB3ZWlnaHRzIGFuZCBwb29yZXIgdGlnaHR2bmMgY29tcHJlc3Npb24pCgkqIGFkZCAiOnBhZCIgc2NhbGUgb3B0aW9uLCBkZXRlY3Qgc21hbGwgZnJhY3Rpb24gc2NhbGUgPSBtL24uCgoyMDA0LTA2LTI4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiByb3VuZCBzY2FsZWQgd2lkdGggdG8gbXVsdGlwbGUgb2YgNCB0byBtYWtlIHZuY3ZpZXdlciBoYXBweS4KCSogYWxsb3cgb3ZlcnJpZGUgb2YgYWJvdmUgIjpuNCIgYW5kIGFsbG93IDQgcG9pbnQgaW50ZXJwb2xhdGlvbgoJICB0byBiZSB1c2VkIGV2ZW4gd2l0aCBzaHJpbmtpbmcgIjppbiIuIAoKMjAwNC0wNi0yNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogc3BlZWQgdXAgc2NhbGluZyBhIGJpdCBmb3Igc2xvdyBtYWNoaW5lcyAoc3RpbGwgYWxsIGZsb2F0aW5nIHBvaW50KQoJKiBhZGQgbm8gYmxlbmRpbmcgb3B0aW9uICgtc2NhbGUgZnJhY3Rpb246bmIpCgoyMDA0LTA2LTI2ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBhZGQgLXNjYWxlIGZyYWN0IGZvciBnbG9iYWwgKG5vdCBwZXItY2xpZW50KSBzZXJ2ZXItc2lkZSBzY2FsaW5nCgkgIHdvcmtpbmcgbW9yZSBvciBsZXNzIE9LLCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgYXQgc29tZSBwb2ludC4KCSogcmVtb3ZlIC1oaW50cy8tbm9oaW50cyBvcHRpb25zLgoKMjAwNC0wNi0xNyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogc2ltcGxlIH4vLngxMXZuY3JjIGNvbmZpZyBmaWxlIHN1cHBvcnQsIC1yYywgLW5vcmMKCjIwMDQtMDYtMTIgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFkZCAtY2xlYXJfbW9kcyAtY2xlYXJfa2V5cyBmb3IgKHJhcmUpIGNhc2Ugd2hlcmUga2V5cyBhcmUKCSAgbm90IGJlaW5nIHJlbGVhc2VkIChlLmcuIEN0cmwtQyB4MTF2bmMgdGhydSB4MTF2bmMpLgoJKiBleHBvcnQgUkZCX1NFUlZFUl9JUCBhbmQgUkZCX1NFUlZFUl9QT1JUIHRvIC1hY2NlcHQgcHJvZ3JhbQoJICBzbyB0aGF0IHRoZSB0Y3AgNC10dXBsZSBpcyBjb21wbGV0ZWx5IHNwZWNpZmllZC4gIAoJKiBhZGQgLXN0b3JlcGFzc3dkIDxwYXNzPiA8ZmlsZT4gc28gc3RvcmVwYXNzd2QgcHJvZ3JhbSBub3QgbmVlZGVkCgoyMDA0LTA2LTA1ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiByZWFycmFuZ2UgZmlsZSBmb3IgZWFzaWVyIG1haW50ZW5hbmNlLCBpbmRpY2F0aW5nIGZpbGUgYnJlYWt1cC4KCSogYWRkIFJGQl9DTElFTlRfQ09VTlQsIG51bWJlciBvZiBvdGhlciBjb25uZWN0ZWQgY2xpZW50cyB0bwoJICAtYWNjZXB0IGFuZCAtZ29uZSBjb21tYW5kcy4KCjIwMDQtMDUtMjcgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFkZCB2aWV3LW9ubHkgcGFzc3dkIHZpYSAtdmlld3Bhc3N3ZCBhbmQgMm5kIGxpbmUgb2YgLXBhc3N3ZGZpbGUKCjIwMDQtMDUtMjEgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIC1hY2NlcHQ6IGFkZCB2aWV3LW9ubHkgZGVjaXNpb24gYW5kIG90aGVyIGltcHJvdmVtZW50cy4KCSogYWRkIC1nb25lIGNvbW1hbmQgb3B0aW9uIGZvciB3aGVuIGEgY2xpZW50IGxlYXZlcy4KCSAgVGhhbmtzIHRvIEplc3VzIEFsdmFyZXogZm9yIHRoZXNlIGlkZWFzLgoJKiAtcGFzc3dkZmlsZSB0byBrZWVwIHBhc3N3ZCBvZmYgb2YgY21kIGxpbmUuCgkqIC1vIGxvZ2ZpbGUgc2VuZCBzdGRlcnIgdG8gYSBsb2dmaWxlLgoKMjAwNC0wNS0xNCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogaW1wcm92ZW1lbnRzIHRvIC1hY2NlcHQgcG9wdXA6IHllcy9ubyBidXR0b25zIGFuZCB0aW1lb3V0LiAKCSogbGVzcyBmcHJpbnRmIHVuZGVyIC1xIHNvICctcSAtaW5ldGQnIGhhcyBubyBzdGRlcnIgb3V0cHV0LiAKCjIwMDQtMDUtMDggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFkZCAtYWNjZXB0IHNvbWUtY29tbWFuZC94bWVzc2FnZS9wb3B1cCB0byBwcm9tcHQgbG9jYWwgWDExIHVzZXIKCSAgb3Igb3RoZXJ3aXNlIGRlY2lkZSB0byBhY2NlcHQgYW4gaW5jb21pbmcgY2xpZW50LiAKCSogY2xlYW4gdXAgLVdhbGwgd2FybmluZ3MuCgoyMDA0LTA1LTA1ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBlbmFibGUgbW91c2UgYnV0dG9uIC0+IGtleXN0cm9rZXMgbWFwcGluZyBpbiAtYnV0dG9ubWFwIChtb3VzZXdoZWVsKQoJKiBlbmFibGUga2V5c3Ryb2tlIC0+IG1vdXNlIGJ1dHRvbiBtYXBwaW5nIGluIC1yZW1hcCAodG91Y2hwYWQgcGFzdGUpCgkgICgtcmVtYXAgaW5jb21wYXQgJzonIC0+ICctJywgc29ycnkuLi4pCgkqIHNobSBPUyBibGFja2xpc3QgKGkuZS4gPD0gU3VuT1MgNS44KSAtPiAtb25ldGlsZQoJKiByZXZlcnQgdG8gY2hlY2tfdXNlcl9pbnB1dCgpIHVuZGVyIC1ub2ZiCgkqIGNsZWFudXA6IGxhc3Rtb2QsIHJlbW92ZSB0aWxlX3NobSBhbmQgdXBkYXRlX2NsaWVudF9wb2ludGVyLAoJICBkZWJ1ZyBvdXRwdXQsIHJmYlBvcnQgZmFpbHVyZS4gCgkqIHVzZXIgZnJpZW5kbHkgbGFzdCBsaW5lOiAnVGhlIFZOQyBkZXNrdG9wIGlzIGhvc3RuYW1lOjAnCgoyMDA0LTA0LTI4ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiAtYXV0aCBjbWRsaW5lIG9wdGlvbiBmb3IgeGF1dGhvcml0eS4KCSogZGVjcmVhc2UgZGVmYXVsdCBkZWZlcnVwZGF0ZSB1bmRlciAtbm9mYi4KCSogdXBkYXRlX2NsaWVudF9wb2ludGVyKCkgZnJvbSBFZG9hcmRvIFRpcnRhcmFoYXJkamEuCgkqIHJlbW92ZSBzb21lIGFzc3VtcHRpb25zIGFib3V0IGxpYnZuY3NlcnZlciBkZWZhdWx0cy4KCjIwMDQtMDQtMTkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIHN1cHBvcnQgZm9yIGN1cnNvciBwb3NpdGlvbnMgdXBkYXRlcyAtY3Vyc29ycG9zCgkqIG9wdGlvbiBmb3IgU0lHUElQRSBoYW5kbGluZyAtc2lncGlwZQoKMjAwNC0wNC0xMyAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogc29sdmUgcHJvYmxlbSB3aXRoIHNlbmRpbmcgc2VsZWN0aW9uIHdoZW4gY2xpZW50IGluaXRpYWxpemluZwoJICAobm90IHlldCBpbiBSRkJfTk9STUFMIHN0YXRlKS4gIEluY3JlYXNlIGRlbGF5IHRvIDE1cyBhcyB3ZWxsLiAKCSogd2hlbiB0aHJlYWRlZDogbGltaXQgcmZiTWF4Q2xpZW50V2FpdCB0byA+PSAyMCBzZWNzIGFuZAoJICBpbmNyZWFzZSBpdCB0byBhIGh1Z2UgdmFsdWUgdW5sZXNzIC1yZmJ3YWl0IGlzIHN1cHBsaWVkLgoKMjAwNC0wNC0wOCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogYWRkZWQgc3VwcG9ydCBmb3IgYmxhY2tpbmcgb3V0IHJlZ2lvbnMgb2YgdGhlIHNjcmVlbiwgcHJpbWFyaWx5CgkgIGZvciBYaW5lcmFtYSB1c2FnZSwgb3B0aW9uczogLWJsYWNrb3V0IC14aW5lcmFtYQoJKiBYaW5lcmFtYSB3b3JrYXJvdW5kIG1vdXNlIHByb2JsZW0gb24gJ2VtYmVkZGVkJyBzeXN0ZW0sIAoJICBvcHRpb24gLXh3YXJwcG9pbnRlciAoWFdhcnBQb2ludGVyIGluc3RlYWQgb2YgWFRFU1QpCgkqIGxldCAtcmVtYXAgb3B0aW9uIHRha2Uga2V5IHJlbWFwcGluZ3Mgb24gY21kbGluZSBhcyB3ZWxsIGFzIGZpbGUuCgkqIHVzZSBjYXJncyBmaXggdG8gdGVzdCBmb3IgaW52YWxpZCBjbWRsaW5lIG9wdGlvbnMuIEFkZCAtLW9wdGlvbi4KCSogcmVtb3ZlIGNvcHlfdGlsZSwgdXNlIGNvcHlfdGlsZXMoLi4uLCAxKSBpbnN0ZWFkLgoKMjAwNC0wMy0xMCAgS2FybCBSdW5nZSA8cnVuZ2VAa2FybHJ1bmdlLmNvbT4KCSogYWRkZWQgcmV2ZXJzZSBjb25uZWN0aW9uIGZvciB2bmNjb25uZWN0KDEpIGFuZCBvdGhlciBtZWFucwoJICAtdm5jY29ubmVjdCwgLWNvbm5lY3QgaG9zdDpwb3J0LCBhbmQgLWNvbm5lY3Qgd2F0Y2hmaWxlIAoJKiBhZGRlZCBmaXJzdCBwYXNzIGF0IHVzZXIga2V5c3ltIHJlbWFwcGluZyBmZWF0dXJlIHZpYQoJICAtcmVtYXAgZmlsZS4gIElnbm9yZXMgbW9kaWZpZXIgc3RhdGUsIG5lZWQgdG8gZ2VuZXJhbGl6ZS4KCSogZGVidWdnaW5nIG9wdGlvbnMgZm9yIHVzZXJzIC1kZWJ1Z19wb2ludGVyIGFuZCAtZGVidWdfa2V5Ym9hcmQKCSogY2xlYXIgLXBhc3N3ZCBmcm9tIGFyZ3YgZm9yIHByaXZhY3kgKGlmIE9TIGFsbG93cykuCgoyMDA0LTAyLTE5ICBLYXJsIFJ1bmdlIDxydW5nZUBrYXJscnVuZ2UuY29tPgoJKiBhZGRlZCBoYW5kbGluZyBvZiBjbGlwYm9hcmQvc2VsZWN0aW9uIGV4Y2hhbmdlIHRvL2Zyb20gY2xpZW50cywKCSAgZXZlbiBob2xkcyBQUklNQVJZIHdoaWNoIFh2bmMgZG9lcyBub3QgZG8uICBkaXNhYmxlIHdpdGggLW5vc2VsLgoJICB1c2UgLW5vcHJpbWFyeSB0byBkaXNhYmxlIHBvbGxpbmcgb2YgUFJJTUFSWSBzZWxlY3Rpb24uCgkqIGFkZGVkIC12aXN1YWwgb3B0aW9uIHRvIGZvcmNlIGZyYW1lYnVmZmVyIHZpc3VhbC4gIG5vdCByZWFsbHkKCSAgb2YgZ2VuZXJhbCB1c2UsIG1vcmUgZm9yIHRlc3RpbmcgYW5kIHdvcmthcm91bmRzIChlLmcuIHdpbjJ2bmMKCSAgZmFpbHMgdW5kZXIgOGJwcCBpbmRleCBjb2xvcikKCSogaW1wcm92ZSBjbGVhbnVwIGFuZCBlcnJvciBoYW5kbGluZyBXUlQgc2htIGFuZCBvdGhlciBmYWlsdXJlcy4KCjIwMDQtMDEtMTkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGltcHJvdmVtZW50cyB0byBwb2ludGVyIGV2ZW50IGhhbmRsaW5nIHByaW1hcmlseSBkdXJpbmcgd2luZG93CgkgIGRyYWdnaW5nLiAgY2hlY2tfdXNlcl9pbnB1dCgpIGZvciBub24tdGhyZWFkZWQgYW5kIHBvaW50ZXIoKQoJICBmb3IgdGhyZWFkZWQuICBSZXZlcnQgdG8gb2xkIHdheSB2aWEgLW9sZF9wb2ludGVyIG9wdGlvbi4KCSogc29tZSBtZW1vcnkgSS9PIGltcHJvdmVtZW50IGJ5IHVzaW5nIGNvcHlfdGlsZXMoKSBpbnN0ZWFkCgkgIG9mIGNvcHlfdGlsZSgpLiAgTmV3IG9uZSBkb2VzIHJvd3Mgb2YgdGlsZXMgYXQgc2FtZSB0aW1lLgoJICBSZXZlcnQgdG8gb2xkIHdheSB2aWEgLW9sZF9jb3B5dGlsZS4KCSogaGFuZGxlIGNhc2Ugb2YgbW9yZSBtb3VzZSBidXR0b25zIG9uIGNsaWVudCB0aGFuIG9uIFggc2VydmVyLgoJKiBhZGRlZCAtYnV0dG9ubWFwIG9wdGlvbiBmb3IgZmluZXIgY29udHJvbCBvdmVyIGJ1dHRvbiBkaWZmZXJlbmNlcy4KCjIwMDQtMDEtMDkgIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIG9wdGlvbnMgLWFsbG93IC8gLWxvY2FsaG9zdCBmb3Igc2ltcGxlIElQIGJhc2VkIGFjY2VzcyBzY3JlZW5pbmcKCSogb3B0aW9uIC1ub2RyYWdnaW5nIHRvIHNraXAgYWxsIHNjcmVlbiB1cGRhdGVzIGR1cmluZyBtb3VzZSBkcmFncwoJICAodGhhbmtzIHRvIE1pY2hhbCBTYWJhbGEpCgkqIG9wdGlvbiAtaW5wdXRfc2tpcCB0byBhbGxvdyB1c2VycyB0byB0dW5lIHdhdGNoX2xvb3AgZHJvcHRocnUgcmF0ZQoJKiB0cnkgdG8gYXZvaWQgd2FzdGluZyBSQU0gZm9yIGZyYW1lYnVmZmVyIHVuZGVyIC1ub2ZiCgkqIGNsZWFudXAgd3J0IGJwcCB2cy4gZGVwdGgKCjIwMDMtMTItMDggIEthcmwgUnVuZ2UgPHJ1bmdlQGthcmxydW5nZS5jb20+CgkqIGFkZCBYYmVsbCBzdXBwb3J0IHVzaW5nIFhLRVlCT0FSRCBleHRlbnNpb24gKGRpc2FibGU6IC1ub2JlbGwpCgkqIGFkZCAiLW5vZmIiIHRvIGRpc2FibGUgZnJhbWVidWZmZXIsIGkuZS4gbW91c2UgKyBrZXlib2FyZCBvbmx5ICghKQoJKiBhZGQgIi1ub3RydWVjb2xvciIgdG8gZm9yY2UgaW5kZXhlZCA4YnBwIGNvbG9yICh3aGVuIDhicHApIAoJKiBtYWtlIGFsaWFzICItZm9yZXZlciIgZm9yICItbWFueSIKCkZyb20gS2FybCAoeDExdm5jJ3MgZmF0aGVyKSBvbiBBcHIgMiwgMjAwMzoKCQpOZXcgb3B0aW9uIC1ub2N1cnNvciB0byBub3QgZGlzcGxheSB0aGUgdm5jdmlld2VyIGxvY2FsIGN1cnNvciBpZiB1c2VyCmRvZXMgbm90IHdhbnQgaXQgKGFsc28gY2F1c2VkIHNvbWUgcHJvYmxlbXMgd2l0aCBvbGRlciB2bmN2aWV3ZXJzKQoKTmV3IG9wdGlvbiAtbW91c2UgdG8gc2hvdyB0aGUgcG9zaXRpb24gb2YgdGhlIFggc2VydmVyIG1vdXNlIChpLmUuIGxhZ2dlZApmcm9tIHRoZSB1c2VyJ3Mgdm5jIGN1cnNvciBwb3NpdGlvbikuICBBbHNvOiAtbW91c2VYIHdpbGwgdHJ5IHRvIHNob3cKdGhlIGEgZGlmZmVyZW50IGN1cnNvciAoWCkgd2hlbiBvbiB0aGUgcm9vdCBiYWNrZ3JvdW5kLgoKTmV3IG9wdGlvbiAtbWFueSB0byB3YWl0IGZvciBtb3JlIGNvbm5lY3Rpb25zIHJhdGhlciB0aGFuIGV4aXRpbmcgd2hlbgp0aGUgZmlyc3QgY2xpZW50KHMpIGRpc2Nvbm5lY3QuCgpOZXcgb3B0aW9uIC1mbGFzaGNtYXAgdG8gdHJ5IHRvIGZvbGxvdyBpbnN0YWxsZWQgY29sb3JtYXBzIHVuZGVyIDhicHAKaW5kZXhlZCBjb2xvciBhcyBwb2ludGVyIGlzIG1vdmVkLgoKTmV3IG9wdGlvbiAtbmFwIHRvIHdhdGNoIGZvciBsb3cgYWN0aXZpdHkgYW5kIHRocm90dGxlIGRvd24gdGhlIHBvbGxpbmcKcmF0ZS4gIFVzZWZ1bCBvbiBzaGFyZWQgbWFjaGluZXMgdG8ga2VlcCB0aGUgbG9hZCBkb3duLgoKRXhwZXJpbWVudGFsIG9wdGlvbiAtaWQgPHdpbmRvd2lkPiB0byBzaG93IGp1c3QgdGhhdCB3aW5kb3cgYW5kIG5vdAp0aGUgd2hvbGUgZGlzcGxheS4gIFNvbWUgcmVtYWluaW5nIGJ1Z3MgYW5kIGluY29udmVuaWVudCBiZWhhdmlvci4uLgooZS5nLiBuZXcgdG9wbGV2ZWxzIGNhbiBiZSB1bnNlZW4pCgpGaXhlZCBidWcgb24gbXVsdGktaGVhZGVkIG1hY2hpbmVzIHdoZXJlIHRoZSBzY3JlZW4gbnVtYmVyIHdhcyBiZWluZwppZ25vcmVkIGluIGEgbnVtYmVyIG9mIHBsYWNlcy4KCkZpeGVkIGJ1ZyB3cnQgY29ubmVjdF9vbmNlIG1vZGUuICBOb3cganVzdCByZWZ1c2VzIG5ldyBjbGllbnRzIHVubGVzcwpzaGFyZWQgcmF0aGVyIHRoYW4gdGVybWluYXRpbmcgYWxsIGNsaWVudHMuCgpUcnkgdG8gZm9sbG93IGNoYW5naW5nIGRlZmF1bHQgY29sb3JtYXAgdW5kZXIgOGJwcCBpbmRleGVkIGNvbG9yCmFzIGNvbG9yIGNlbGxzIGFyZSBhZGRlZC4KCk5lZWRlZCB0byBwaWNrIHVwIEhBVkVfTElCUFRIUkVBRCBmcm9tIGF1dG9jb25mLgoKZGVmaW5lZCBhIHNlbGVjdCgpIG1hY3JvIGZvciB1c2xlZXAoKSBzaW5jZSB1c2xlZXAgaXMgbm90IGFsd2F5cyB0aHJlYWQKc2FmZS4KCkNhdGNoIGFuZCBleGl0IG9uIGVycm9ycyBpbiB0aGUgc2htIHNldHVwIHdvcmsgKFhTaG1DcmVhdGVJbWFnZSwgc2htZ2V0LC4uLikKYW5kIG1vdmVkIHRoZSBjcmVhdGlvbiBhbmQgcmVtb3ZhbCB3b3JrIHRvIHNlcGFyYXRlIHV0aWxpdHkgZnVuY3Rpb25zLgoKQWRkZWQgc2lnbmFsIGFuZCBYIGVycm9yIGhhbmRsZXJzIHRvIHRyeSB0byBjbGVhbiBvdXQgdGhlIHNobSBvYmplY3RzCmJlZm9yZSBleGl0aW5nIG9uIGludGVycnVwdCwgZXRjLgoKSW1wcm92ZWQgcGVyZm9ybWFuY2UgYSBiaXQgb24gdGhlIG1lbWNtcCgpIGluIHNjYW5fZGlzcGxheSgpIGJ5IGNoZWNraW5nCnRoZSB3aG9sZSBsaW5lIGZpcnN0LgoKQWRkZWQgYSB3b3JrYXJvdW5kIHdoZW4gdGhyZWFkZWQgd2hlcmUgbGlidm5jc2VydmVyIG1heSBkaXNjb25uZWN0IHRvbwplYXJseSBpZiBpdCBkb2VzIG5vdCBoZWFyIGZyb20gYSBjbGllbnQgKGEgc21hbGwgaGVhcnRiZWF0IGlzIHNlbnQpLgpUaGlzIG1heSBub3QgYmUgbmVlZGVkIGFueSBsb25nZXIuCgpJZiAtZGVza3RvcCBoYXMgbm90IGJlZW4gcHJlc2NyaWJlZCwgdHJ5IHRvIGNob29zZSBhIHRpdGxlIGJhc2VkIG9uIERJU1BMQVkKYW5kIHRoZSBob3N0bmFtZSAoYW5kIHdpbmRvdyBuYW1lIHVuZGVyIC1pZCkuCg==