From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 7260 invoked from network); 18 Apr 2022 09:40:46 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 18 Apr 2022 09:40:46 -0000 Content-Type: multipart/mixed; boundary="===============0138545607907222850==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_uucp-1=2E07?= To: ml@inbox.vuxu.org From: bugcrazy Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 18 Apr 2022 11:40:46 +0200 List-Id: Message-ID: <20220418094046.nukLoJWL_tzLdXQEWtpfui8SZBZPyUcK7GBhqN7OC6o@z> GitHub notification mails are now in MIME to allow UTF8. --===============0138545607907222850== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYnVnY3JhenkgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2J1 Z2NyYXp5L3ZvaWQtcGFja2FnZXMgcGF0Y2gtMwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMjAwMjgKCk5ldyBwYWNrYWdlOiB1dWNwLTEuMDcKVGhpcyBw YWNrYWdlIGNvbnRhaW5zIHRoZSBzdGFuZGFyZCBVVUNQIHBhY2thZ2UgZnJvbSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIHV1Y2ljbywgdXVzY2hlZCwgdXV4cXQsIHV1eCwgdXVj cCwgdXVzdGF0LCB1dWxvZywgdXVuYW1lLCB1dXRvLCB1dXBpY2sgYW5kIGN1LgoKQSBwYXRjaCBm aWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxs LzIwMDI4LnBhdGNoIGlzIGF0dGFjaGVk --===============0138545607907222850== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-patch-3-20028.patch" RnJvbSAyODQ0NjZiY2Q3YmMyNGZlNGUzZGYwOTg3MjRjNjQ2Zjk0ZDUzN2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBidWdjcmF6eSA8Mzk3NTc5NjcrYnVnY3JhenlAdXNlcnMubm9y ZXBseS5naXRodWIuY29tPgpEYXRlOiBXZWQsIDExIE1hciAyMDIwIDE3OjA1OjMzIC0wMzAwClN1 YmplY3Q6IFtQQVRDSF0gTmV3IHBhY2thZ2U6IHV1Y3AtMS4wNwoKVGhpcyBwYWNrYWdlIGNvbnRh aW5zIHRoZSBzdGFuZGFyZCBVVUNQIHBhY2thZ2UgZnJvbSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCB3aXRoIHV1Y2ljbywgdXVzY2hlZCwgdXV4cXQsIHV1eCwgdXVjcCwgdXVzdGF0LCB1 dWxvZywgdXVuYW1lLCB1dXRvLCB1dXBpY2sgYW5kIGN1LgoKQWRkZWQgZmlsZXMKCkFkZGVkIGlu c3RhbGwgZmlsZXMsIG1hbiBtYW51YWxzIGFuZCBwYXRjaGVzLgoKRml4ZWQgd2hpdGVzcGFjZSBh bmQgdXNpbmcgdm1hbgoKUmVtb3ZlZCAtUgoKQWRkZWQgc3VnZ2VzdGVkIGNoYW5nZXMKCkFkZGVk IHVuZGVybGluaW5nCgogTmV3IHN1Z2dlc3RlZCBjaGFuZ2VzCi0tLQogc3JjcGtncy91dWNwL0lO U1RBTEwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmNwa2dzL3V1Y3AvZmls ZXMvdXVsb2cuMSAgICAgICAgICAgICAgICAgICAgfCAgIDUzICsKIHNyY3BrZ3MvdXVjcC9maWxl cy91dW5hbWUuMSAgICAgICAgICAgICAgICAgICB8ICAgMzMgKwogc3JjcGtncy91dWNwL2ZpbGVz L3V1cGljay4xICAgICAgICAgICAgICAgICAgIHwgICAzNCArCiBzcmNwa2dzL3V1Y3AvZmlsZXMv dXVzY2hlZC44ICAgICAgICAgICAgICAgICAgfCAgIDIwICsKIHNyY3BrZ3MvdXVjcC9maWxlcy91 dXRvLjEgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKwogc3JjcGtncy91dWNwL3BhdGNoZXMv Y29tcGlsZXItd2FybmluZ3MucGF0Y2ggIHwgICAxNSArCiBzcmNwa2dzL3V1Y3AvcGF0Y2hlcy9t YW5wYWdlLnBhdGNoICAgICAgICAgICAgfCAgMTg5ICsKIHNyY3BrZ3MvdXVjcC9wYXRjaGVzL25v LXNsZWVwLnBhdGNoICAgICAgICAgICB8ICAgNjUgKwogLi4uL29wdGlvbi10by1ub3QtZm9yY2Ut aHctY29udHJvbC5wYXRjaCAgICAgIHwgIDMyMSArCiBzcmNwa2dzL3V1Y3AvcGF0Y2hlcy9zcGVs bGluZy5wYXRjaCAgICAgICAgICAgfCAgIDI4ICsKIHNyY3BrZ3MvdXVjcC9wYXRjaGVzL3V1Y3At YWx0LW1pc2MucGF0Y2ggICAgICB8ICAxMTEgKwogc3JjcGtncy91dWNwL3BhdGNoZXMvdXVjcC1v cmcucGF0Y2ggICAgICAgICAgIHwgODgzMyArKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMv d2FpdC1mb3ItY29ycmVjdC1wYXJlbnQucGF0Y2ggICAgIHwgICAxOSArCiAuLi4vdXVjcC9wYXRj aGVzL3pwaXBlLWltcHJvdmVkLXBpcGUucGF0Y2ggICAgfCAgIDQwICsKIHNyY3BrZ3MvdXVjcC90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKwogMTYgZmlsZXMgY2hhbmdl ZCwgOTgyOCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy91dWNwL0lO U1RBTEwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3V1Y3AvZmlsZXMvdXVsb2cuMQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdXVjcC9maWxlcy91dW5hbWUuMQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvdXVjcC9maWxlcy91dXBpY2suMQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvdXVjcC9maWxlcy91dXNjaGVkLjgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3V1 Y3AvZmlsZXMvdXV0by4xCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy91dWNwL3BhdGNoZXMv Y29tcGlsZXItd2FybmluZ3MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3V1Y3Av cGF0Y2hlcy9tYW5wYWdlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy91dWNwL3Bh dGNoZXMvbm8tc2xlZXAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3V1Y3AvcGF0 Y2hlcy9vcHRpb24tdG8tbm90LWZvcmNlLWh3LWNvbnRyb2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3V1Y3AvcGF0Y2hlcy9zcGVsbGluZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvdXVjcC9wYXRjaGVzL3V1Y3AtYWx0LW1pc2MucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3V1Y3AvcGF0Y2hlcy91dWNwLW9yZy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvdXVjcC9wYXRjaGVzL3dhaXQtZm9yLWNvcnJlY3QtcGFyZW50LnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy91dWNwL3BhdGNoZXMvenBpcGUtaW1wcm92ZWQt cGlwZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdXVjcC90ZW1wbGF0ZQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvdXVjcC9JTlNUQUxMIGIvc3JjcGtncy91dWNwL0lOU1RBTEwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iODJjMTczMjFhMjkKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3V1Y3AvSU5TVEFMTApAQCAtMCwwICsxLDcgQEAKK2Nhc2Ug JHtBQ1RJT059IGluCitwb3N0KQorCSMgZml4IHBlcm1pc3Npb25zIGFuZCBvd25lcnMKKwljaG93 biBfdXVjcDpfdXVjcCB1c3IvYmluL3V1Y2ljbyB1c3IvYmluL3V1eHF0IHVzci9iaW4vdXV4IHVz ci9iaW4vdXVjcCB1c3IvYmluL3V1c3RhdCB1c3IvYmluL3V1bmFtZQl1c3IvYmluL2N1CisJY2ht b2QgNDU1NSB1c3IvYmluL3V1Y2ljbyB1c3IvYmluL3V1eHF0IHVzci9iaW4vdXV4IHVzci9iaW4v dXVjcCB1c3IvYmluL3V1c3RhdCB1c3IvYmluL3V1bmFtZQl1c3IvYmluL2N1CisJOzsKK2VzYWMK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdXVjcC9maWxlcy91dWxvZy4xIGIvc3JjcGtncy91dWNwL2Zp bGVzL3V1bG9nLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMDFj OWJiNjk5M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3V1Y3AvZmlsZXMvdXVsb2cuMQpA QCAtMCwwICsxLDUzIEBACisuXCIgVGhpcyBpcyB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHV1 bG9nIGl0c2VsZgorLlRIIFVVTE9HIDEKKy5TSCBOQU1FCit1dWxvZyBcLSBEaXNwbGF5IHRoZSBV VUNQIGxvZyBmaWxlLgorLlNIIFNZTk9QU0lTCisuQiB1dWxvZworW1xmSVwtbiBudW1iZXJcZlJd IFtcZklcLXNmIHN5c3RlbVxmUl0gW1xmSVwtdSB1c2VyXGZSXSBbXGZJXC1EU0ZcZlJdIAorW1xm SVwtSSBmaWxlXGZSXSBbXGZJXC1YIGRlYnVnXGZSXQorLlNIIERFU0NSSVBUSU9OCisuSSBVdWxv ZworaXMgYSBwcm9ncmFtIHRoYXQgZGlzcGxheXMgdGhlIGxvZyBmaWxlIGZvciB0aGUgVGF5bG9y IFVVQ1Agc2VydmljZS4gIAorLlNIIE9QVElPTlMKKy5UUAorXGZCLW5cZlIsIFxmQi0tbGluZXNc ZlIgXGZJbnVtYmVyXGZSCitTaG93IHRoZSBnaXZlbiBudW1iZXIgb2YgbGluZXMgZnJvbSB0aGUg ZW5kIG9mIHRoZSBsb2cuCisuVFAKK1xmQi1zXGZSLCBcZkItLXN5c3RlbVxmUiBcZklzeXN0ZW1c ZlIKK1ByaW50IGVudHJpZXMgZm9yIHRoZSBuYW1lZCBzeXN0ZW0uCisuVFAKK1xmQi1mXGZSIFxm SXN5c3RlbVxmUiwgXGZCLS1mb2xsb3dcZlI9XGZJc3lzdGVtXGZSCitGb2xsb3cgZW50cmllcyBm b3IgdGhlIG5hbWVkIHN5c3RlbS4KKy5UUAorXGZCLXVcZlIsIFxmQi0tdXNlclxmUiBcZkl1c2Vy XGZSCitQcmludCBlbnRyaWVzIGZvciB0aGUgbmFtZWQgdXNlci4KKy5UUAorXGZCLUZcZlIsIFxm Qi0tZm9sbG93XGZSCitGb2xsb3cgZW50cmllcyBmb3IgYW55IHN5c3RlbS4KKy5UUAorXGZCLVNc ZlIsIFxmQi0tc3RhdHNsb2dcZlIKK1Nob3cgdGhlIHN0YXRpc3RpY3MgZmlsZS4KKy5UUAorXGZC LURcZlIsIFxmQi0tZGVidWdsb2dcZlIKK1Nob3cgdGhlIGRlYnVnZ2luZyBmaWxlLgorLlRQCitc ZkItWFxmUiwgXGZCLS1kZWJ1Z1xmUiBcZklkZWJ1Z1xmUgorU2V0IHRoZSBkZWJ1Z2dpbmcgbGV2 ZWwuCisuVFAKK1xmQi1JXGZSLCBcZkItLWNvbmZpZ1xmUiBcZklmaWxlXGZSCitTZXQgdGhlIGNv bmZpZ3VyYXRpb24gZmlsZSB0byB1c2UuCisuVFAKK1xmQi12XGZSLCBcZkItLXZlcnNpb25cZlIK K1ByaW50IHRoZSBzb2Z0d2FyZSB2ZXJzaW9uIGFuZCBleGl0LgorLlRQCitcZkItLWhlbHBcZlIK K1ByaW50IGEgaGVscCBzY3JlZW4gYW5kIGV4aXQuCisuU0ggQlVHUworQWNjb3JkaW5nIHRvIGNv bW1lbnRzIGluIHRoZSBzb3VyY2UsIHRoaXMgaXMgYSBwcmV0dHkgYmFkIGltcGxlbWVudGF0aW9u IAorb2YgdXVsb2cuICBJdCBvbmx5IHRha2VzIGEgc2luZ2xlIFwtcyBhbmQvb3IgXC11IHN3aXRj aC4KKy5TSCAiU0VFIEFMU08iCisuQlIgdXVjcCgxKSAKKy5TSCBBVVRIT1IKK1RoaXMgbWFudWFs IHBhZ2UgaXMgYSBxdWljayB3cml0ZS11cCBmb3IgRGViaWFuIGRvbmUgYnkgS2V2aW4gS3JlYW1l ciAKKzxra3JlYW1lckBldGhlcmhvZ3oub3JnPiwgYnkgbWFraW5nIGEgbWFucGFnZSBvdXQgb2Yg XGZCdXVsb2dcZlIgXGZJLS1oZWxwXGZSLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy91dWNwL2ZpbGVz L3V1bmFtZS4xIGIvc3JjcGtncy91dWNwL2ZpbGVzL3V1bmFtZS4xCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2EyM2U5NDA3ZjU2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy91dWNwL2ZpbGVzL3V1bmFtZS4xCkBAIC0wLDAgKzEsMzMgQEAKKy5cIiBUaGlzIGlz IHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdXVuYW1lIGl0c2VsZgorLlRIIFVVTkFNRSAxCisu U0ggTkFNRQordXVuYW1lIFwtIExpc3QgdGhlIG5hbWVzIG9mIHRoZSBrbm93biByZW1vdGUgVVVD UCBzaXRlcy4KKy5TSCBTWU5PUFNJUworLkIgdXVuYW1lCitbXGZJXC1hXGZSXSBbXGZJXC1sXGZS XSBbXGZJXC1JIGZpbGVcZlJdCisuU0ggREVTQ1JJUFRJT04KKy5JIFV1bmFtZQoraXMgYSBwcm9n cmFtIHRoYXQgbGlzdHMgdGhlIG5hbWVzIG9mIHRoZSBrbm93biByZW1vdGUgVVVDUCBzaXRlcy4K Ky5TSCBPUFRJT05TCisuVFAKK1xmQi1hXGZSLCBcZkItLWFsaWFzZXNcZlIKK0Rpc3BsYXkgYWxp YXNlcy4KKy5UUAorXGZCLWxcZlIsIFxmQi0tbG9jYWxcZlIKK1ByaW50IHRoZSBsb2NhbCBuYW1l LgorLlRQCitcZkItSVxmUiwgXGZCLS1jb25maWdcZlIgXGZJZmlsZVxmUgorU2V0IHRoZSBjb25m aWd1cmF0aW9uIGZpbGUgdG8gdXNlLgorLlRQCitcZkItdlxmUiwgXGZCLS12ZXJzaW9uXGZSCitQ cmludCB0aGUgc29mdHdhcmUgdmVyc2lvbiBhbmQgZXhpdC4KKy5UUAorXGZCLS1oZWxwXGZSCitQ cmludCBhIGhlbHAgc2NyZWVuIGFuZCBleGl0LgorLlNIIEJVR1MKK05vbmUgYXBwYXJlbnQuCisu U0ggIlNFRSBBTFNPIgorLkJSIHV1Y3AoMSkgCisuU0ggQVVUSE9SCitUaGlzIG1hbnVhbCBwYWdl IGlzIGEgcXVpY2sgd3JpdGUtdXAgZm9yIERlYmlhbiBkb25lIGJ5IEtldmluIEtyZWFtZXIgCis8 a2tyZWFtZXJAZXRoZXJob2d6Lm9yZz4sIGJ5IG1ha2luZyBhIG1hbnBhZ2Ugb3V0IG9mIFxmQnV1 bmFtZVxmUiBcZkktLWhlbHBcZlIuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3V1Y3AvZmlsZXMvdXVw aWNrLjEgYi9zcmNwa2dzL3V1Y3AvZmlsZXMvdXVwaWNrLjEKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5kMmI5Mzc3ZDA4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3V1Y3AvZmlsZXMvdXVwaWNrLjEKQEAgLTAsMCArMSwzNCBAQAorLlwiIFRoaXMgaXMgdW5k ZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB1dXBpY2sgaXRzZWxmCisuVEggVVVQSUNLIDEKKy5TSCBO QU1FCit1dXBpY2sgXC0gR2V0IGZpbGVzIHN0b3JlZCBpbiB0aGUgcHVibGljIGRpcmVjdG9yeSBi eSB1dWNwIFwtdC4KKy5TSCBTWU5PUFNJUworLkIgdXVwaWNrCitbXGZJXC1zIHN5c3RlbVxmUl0g W1xmSVwteCBkZWJ1Z1xmUl0gW1xmSVwtSSBmaWxlXGZSXQorLlNIIERFU0NSSVBUSU9OCisuSSBV dXBpY2sKK2lzIGEgcHJvZ3JhbSB0aGF0IGdldHMgdGhlIGZpbGVzIHN0b3JlZCBpbiB0aGUgcHVi bGljIGRpcmVjdG9yeSAKK2J5IHV1Y3AgXC10LgorLlNIIE9QVElPTlMKKy5UUAorXGZCLXNcZlIs IFxmQi0tc3lzdGVtXGZSIFxmSXN5c3RlbVxmUgorT25seSBjb25zaWRlciBmaWxlcyBmcm9tIG5h bWVkIHN5c3RlbS4KKy5UUAorXGZCLXhcZlIsIFxmQi0tZGVidWdcZlIgXGZJZGVidWdcZlIKK1Nl dCB0aGUgZGVidWdnaW5nIGxldmVsLgorLlRQCitcZkItSVxmUiwgXGZCLS1jb25maWdcZlIgXGZJ ZmlsZVxmUgorU2V0IHRoZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gdXNlLgorLlRQCitcZkItdlxm UiwgXGZCLS12ZXJzaW9uXGZSCitQcmludCB0aGUgc29mdHdhcmUgdmVyc2lvbiBhbmQgZXhpdC4K Ky5UUAorXGZCLS1oZWxwXGZSCitQcmludCBhIGhlbHAgc2NyZWVuIGFuZCBleGl0LgorLlNIIEJV R1MKK05vbmUgYXBwYXJlbnQuCisuU0ggIlNFRSBBTFNPIgorLkJSIHV1Y3AoMSkgCisuU0ggQVVU SE9SCitUaGlzIG1hbnVhbCBwYWdlIGlzIGEgcXVpY2sgd3JpdGUtdXAgZm9yIERlYmlhbiBkb25l IGJ5IEtldmluIEtyZWFtZXIgCis8a2tyZWFtZXJAZXRoZXJob2d6Lm9yZz4sIGJ5IG1ha2luZyBh IG1hbnBhZ2Ugb3V0IG9mIFxmQnV1cGlja1xmUiBcZkktLWhlbHBcZlIuCmRpZmYgLS1naXQgYS9z cmNwa2dzL3V1Y3AvZmlsZXMvdXVzY2hlZC44IGIvc3JjcGtncy91dWNwL2ZpbGVzL3V1c2NoZWQu OApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE3YTAwZDY4ZWUyNQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdXVjcC9maWxlcy91dXNjaGVkLjgKQEAgLTAsMCAr MSwyMCBAQAorLlwiIFRoaXMgaXMgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB1dXNjaGVkIGl0 c2VsZgorLlRIIFVVU0NIRUQgOAorLlNIIE5BTUUKK3V1c2NoZWQgXC0gQ2FsbCBhbGwgc3lzdGVt cyB3aGljaCBoYXZlIHdvcmsgaW4gYSByYW5kb20gb3JkZXIuIAorLlNIIFNZTk9QU0lTCisuQiB1 dXNjaGVkIAorLlNIIERFU0NSSVBUSU9OCisuSSBVdXNjaGVkCitpcyBhIHByb2dyYW0gdGhhdCBj YWxscyBhbGwgc3lzdGVtcyB3aGljaCBoYXZlIHdvcmsgaW4gYSByYW5kb20gb3JkZXIuIAorLlNI IE9QVElPTlMKK1NpbmNlIHRoaXMgYSBzaW1wbHkgYSBzaGVsbCBzY3JpcHQgd2hpY2ggZXhlY3Mg dXVjaWNvKDgpLCBzZWUgdGhhdCBtYW5wYWdlIAorZm9yIGZ1cnRoZXIgb3B0aW9ucy4KKy5TSCBC VUdTCitOb25lIGFwcGFyZW50LgorLlNIICJTRUUgQUxTTyIKKy5CUiB1dWNpY28oOCksCisuQlIg c2goMSkKKy5TSCBBVVRIT1IKK1RoaXMgbWFudWFsIHBhZ2UgaXMgYSBxdWljayB3cml0ZS11cCBm b3IgRGViaWFuIGRvbmUgYnkgS2V2aW4gS3JlYW1lciAKKzxra3JlYW1lckBldGhlcmhvZ3oub3Jn Pi4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdXVjcC9maWxlcy91dXRvLjEgYi9zcmNwa2dzL3V1Y3Av ZmlsZXMvdXV0by4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWQz NWVmZmY3YzQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy91dWNwL2ZpbGVzL3V1dG8uMQpA QCAtMCwwICsxLDIxIEBACisuXCIgVGhpcyBpcyB1bmRlciB0aGUgc2FtZSBsaWNlbnNlIGFzIHV1 dG8gaXRzZWxmCisuVEggVVVUTyAxCisuU0ggTkFNRQordXV0byBcLSBTZW5kIGZpbGVzIHRvIGEg dXNlciBvbiBhbm90aGVyIHN5c3RlbS4KKy5TSCBTWU5PUFNJUworLkIgdXV0bworXGZJc3lzdGVt IXVzZXJcZlIKKy5TSCBERVNDUklQVElPTgorLkkgVXV0bworaXMgYSBwcm9ncmFtIHRoYXQgc2Vu ZHMgZmlsZXMgdG8gYSB1c2VyIG9uIGFub3RoZXIgc3lzdGVtLgorLlNIIE9QVElPTlMKK1NpbmNl IHRoaXMgYSBzaW1wbHkgYSBzaGVsbCBzY3JpcHQgdGhhdCBleGVjcyB1dWNwKDEpLCBzZWUgdGhh dCBtYW5wYWdlIAorZm9yIGZ1cnRoZXIgb3B0aW9ucy4KKy5TSCBCVUdTCitOb25lIGFwcGFyZW50 LgorLlNIICJTRUUgQUxTTyIKKy5CUiB1dWNwKDEpLAorLkJSIHNoKDEpCisuU0ggQVVUSE9SCitU aGlzIG1hbnVhbCBwYWdlIGlzIGEgcXVpY2sgd3JpdGUtdXAgZm9yIERlYmlhbiBkb25lIGJ5IEtl dmluIEtyZWFtZXIgCis8a2tyZWFtZXJAZXRoZXJob2d6Lm9yZz4uCmRpZmYgLS1naXQgYS9zcmNw a2dzL3V1Y3AvcGF0Y2hlcy9jb21waWxlci13YXJuaW5ncy5wYXRjaCBiL3NyY3BrZ3MvdXVjcC9w YXRjaGVzL2NvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uNWU5ZGM5M2QwNGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy91 dWNwL3BhdGNoZXMvY29tcGlsZXItd2FybmluZ3MucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorRGVz Y3JpcHRpb246IHJlbW92ZSBjb21waWxlciB3YXJuaW5ncyB0aGF0IG5vd2FkYXlzIHJlc3VsdCBp biBlcnJvcnMKK0F1dGhvcjogVGhvcnN0ZW4gQWx0ZWhvbHogPGRlYmlhbkBhbHRlaG9sei5kZT4K K0luZGV4OiB1dWNwL3V1Y29udi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdXVjcC5vcmlnL3V1Y29udi5j CTIwMTMtMDQtMjYgMTY6MDY6MTYuMDAwMDAwMDAwICswMjAwCisrKysgdXVjcC91dWNvbnYuYwky MDEzLTA1LTA4IDEwOjQ5OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTY3Niw3ICs2NzYsNyBAQAor ICAgICB7CisgICAgICAgaWYgKCgqcHopWzBdICE9ICctJyAmJiBweiAhPSBwemFyZykKKyAJZnBy aW50ZiAoZSwgIiAiKTsKKy0gICAgICBmcHJpbnRmIChlLCAqcHopOworKyAgICAgIGZwcmludGYg KGUsICIlcyIsICpweik7CisgICAgIH0KKyB9CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3V1Y3Av cGF0Y2hlcy9tYW5wYWdlLnBhdGNoIGIvc3JjcGtncy91dWNwL3BhdGNoZXMvbWFucGFnZS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU3M2RlYjNmMmM3OQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdXVjcC9wYXRjaGVzL21hbnBhZ2UucGF0Y2gKQEAg LTAsMCArMSwxODkgQEAKK0Rlc2NyaXB0aW9uOiBsaW50aWFuIGRldGVjdHMgc29tZSBpc3N1ZXMg d2l0aCB0aGVzZSBtYW5wYWdlcworQXV0aG9yOiBUaG9yc3RlbiBBbHRlaG9seiA8ZGViaWFuQGFs dGVob2x6LmRlPgorSW5kZXg6IHV1Y3AtMS4wNy9jb250cmliL3V1cmF0ZS5tYW4KKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSB1dWNwLTEuMDcub3JpZy9jb250cmliL3V1cmF0ZS5tYW4JMjAxOS0wMS0xMiAxOTo1 MToyNy45MzkzNTI1MzkgKzAxMDAKKysrKyB1dWNwLTEuMDcvY29udHJpYi91dXJhdGUubWFuCTIw MTktMDEtMTIgMTk6NTE6MjcuOTI3MzUyNTQwICswMTAwCitAQCAtMSw0ICsxLDQgQEAKKy0nJycg JElkOiB1dXJhdGUubWFuLHYgMS40IDE5OTMvMDkvMjggMTc6Mzg6MzEga2RidXJnIFJlbCAkCisr LlwiICcnJyAkSWQ6IHV1cmF0ZS5tYW4sdiAxLjQgMTk5My8wOS8yOCAxNzozODozMSBrZGJ1cmcg UmVsICQKKyAuVEggdXVyYXRlIDEKKyAuU0ggTkFNRQorIHV1cmF0ZSBcLSBSZXBvcnQgVGF5bG9y IFVVQ1Agc3RhdGlzdGljcworSW5kZXg6IHV1Y3AtMS4wNy91dWNwLjEKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSB1dWNwLTEuMDcub3JpZy91dWNwLjEJMjAxOS0wMS0xMiAxOTo1MToyNy45MzkzNTI1MzkgKzAx MDAKKysrKyB1dWNwLTEuMDcvdXVjcC4xCTIwMTktMDEtMTIgMTk6NTI6MjYuNTQ3MzUwNzgyICsw MTAwCitAQCAtMSw0ICsxLDQgQEAKKy0nJycgJElkOiB1dWNwLjEsdiAxLjEyIDIwMDIvMDMvMDUg MjI6MTM6MzMgaWFuIFJlbCAkCisrLlwiJycnICRJZDogdXVjcC4xLHYgMS4xMiAyMDAyLzAzLzA1 IDIyOjEzOjMzIGlhbiBSZWwgJAorIC5USCB1dWNwIDEgIlRheWxvciBVVUNQIDEuMDciCisgLlNI IE5BTUUKKyB1dWNwIFwtIFVuaXggdG8gVW5peCBjb3B5CitAQCAtNjcsMTAgKzY3LDEwIEBACisg LkkgdXVjaWNvCisgKDgpIGRhZW1vbiwgdGhlIGNvcHkgd2lsbCBmYWlsLiAgVGhlIGZpbGVzIG11 c3QgYmUgcmVhZGFibGUgYnkgdGhlCisgLkkgdXVjaWNvCistKDgpIGRhZW1vbiwgYW5kIGJ5IHRo ZSBpbnZva2luZyB1c2VyLgorKyg4KSBkYWVtb24sIGFuZCBieSB0aGUgaW52b2tpbmcgdXNlci4g ICBUaGlzIGlzIHRoZSBkZWZhdWx0LgorIC5UUCA1CisgLkIgXC1DLCBcLVwtY29weQorLUNvcHkg bG9jYWwgc291cmNlIGZpbGVzIHRvIHRoZSBzcG9vbCBkaXJlY3RvcnkuICBUaGlzIGlzIHRoZSBk ZWZhdWx0LgorK0NvcHkgbG9jYWwgc291cmNlIGZpbGVzIHRvIHRoZSBzcG9vbCBkaXJlY3Rvcnku CisgLlRQIDUKKyAuQiBcLWQsIFwtXC1kaXJlY3RvcmllcworIENyZWF0ZSBhbGwgbmVjZXNzYXJ5 IGRpcmVjdG9yaWVzIHdoZW4gZG9pbmcgdGhlIGNvcHkuICBUaGlzIGlzIHRoZQorSW5kZXg6IHV1 Y3AtMS4wNy91dXN0YXQuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL3V1c3RhdC4x CTIwMTktMDEtMTIgMTk6NTE6MjcuOTM5MzUyNTM5ICswMTAwCisrKysgdXVjcC0xLjA3L3V1c3Rh dC4xCTIwMTktMDEtMTIgMTk6NTE6MjcuOTI3MzUyNTQwICswMTAwCitAQCAtMSw0ICsxLDQgQEAK Ky0nJycgJElkOiB1dXN0YXQuMSx2IDEuMTQgMjAwMi8wMy8wNSAyMjoxNToxMCBpYW4gUmVsICQK KysuXCIgJycnICRJZDogdXVzdGF0LjEsdiAxLjE0IDIwMDIvMDMvMDUgMjI6MTU6MTAgaWFuIFJl bCAkCisgLlRIIHV1c3RhdCAxICJUYXlsb3IgVVVDUCAxLjA3IgorIC5TSCBOQU1FCisgdXVzdGF0 IFwtIFVVQ1Agc3RhdHVzIGlucXVpcnkgYW5kIGNvbnRyb2wKK0BAIC00MDQsNyArNDA0LDcgQEAK KyAuU0ggRVhBTVBMRVMKKyAuYnIKKyAubmYKKy11dXN0YXQgLS1hbGwKKyt1dXN0YXQgXC1cLWFs bAorIC5maQorIERpc3BsYXkgc3RhdHVzIG9mIGFsbCBqb2JzLiAgQSBzYW1wbGUgb3V0cHV0IGxp bmUgaXMgYXMgZm9sbG93czoKKyAuYnIKK0BAIC00NDEsNyArNDQxLDcgQEAKKyAKKyAuYnIKKyAu bmYKKy11dXN0YXQgLS1leGVjdXRpb25zCisrdXVzdGF0IFwtXC1leGVjdXRpb25zCisgLmZpCisg RGlzcGxheSBzdGF0dXMgb2YgcXVldWVkIHVwIGV4ZWN1dGlvbiByZXF1ZXN0cy4gIEEgc2FtcGxl IG91dHB1dCBsaW5lCisgaXMgYXMgZm9sbG93czoKK0BAIC00NzIsNyArNDcyLDcgQEAKKyAKKyAu YnIKKyAubmYKKy11dXN0YXQgLS1saXN0CisrdXVzdGF0IFwtXC1saXN0CisgLmZpCisgRGlzcGxh eSBzdGF0dXMgZm9yIGFsbCBzeXN0ZW1zIHdpdGggcXVldWVkIHVwIGNvbW1hbmRzLiAgQSBzYW1w bGUKKyBvdXRwdXQgbGluZSBpcyBhcyBmb2xsb3dzOgorQEAgLTQ4OSw3ICs0ODksNyBAQAorIAor IC5icgorIC5uZgorLXV1c3RhdCAtLXN0YXR1cworK3V1c3RhdCBcLVwtc3RhdHVzCisgLmZpCisg RGlzcGxheSBjb252ZXJzYXRpb24gc3RhdHVzIGZvciBhbGwgcmVtb3RlIHN5c3RlbXMuICBBIHNh bXBsZSBvdXRwdXQKKyBsaW5lIGlzIGFzIGZvbGxvd3M6CitAQCAtNTA5LDcgKzUwOSw3IEBACisg CisgLmJyCisgLm5mCistdXVzdGF0IC0tcHMKKyt1dXN0YXQgXC1cLXBzCisgLmZpCisgRGlzcGxh eSB0aGUgc3RhdHVzIG9mIGFsbCBwcm9jZXNzZXMgaG9sZGluZyBVVUNQIGxvY2tzLiAgVGhlIG91 dHB1dAorIGZvcm1hdCBpcyBzeXN0ZW0gZGVwZW5kZW50LCBhcworQEAgLTUyMSw3ICs1MjEsNyBA QAorIC5icgorIC5pbiArMC41aQorIC5uZgorLXV1c3RhdCAtLWNvbW1hbmQgcm1haWwgLS1vbGRl ci10aGFuIDE2OCAtLWtpbGwtYWxsIC0tbm8tbGlzdCAtLW1haWwgLS1ub3RpZnkgLS1jb21tZW50 ICJRdWV1ZWQgZm9yIG92ZXIgMSB3ZWVrIgorK3V1c3RhdCBcLVwtY29tbWFuZCBybWFpbCBcLVwt b2xkZXJcLXRoYW4gMTY4IFwtXC1raWxsXC1hbGwgXC1cLW5vXC1saXN0IFwtXC1tYWlsIFwtXC1u b3RpZnkgXC1cLWNvbW1lbnQgIlF1ZXVlZCBmb3Igb3ZlciAxIHdlZWsiCisgLmZpCisgLmluIC0w LjVpCisgVGhpcyB3aWxsIGtpbGwgYWxsCitJbmRleDogdXVjcC0xLjA3L2N1LjEKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSB1dWNwLTEuMDcub3JpZy9jdS4xCTIwMTktMDEtMTIgMTk6NTE6MjcuOTM5MzUyNTM5 ICswMTAwCisrKysgdXVjcC0xLjA3L2N1LjEJMjAxOS0wMS0xMiAxOTo1ODozNC4wMDAwMDAwMDAg KzAxMDAKK0BAIC0xLDQgKzEsNCBAQAorLScnJyAkSWQ6IGN1LjEsdiAxLjEwIDIwMDIvMDMvMDUg MjI6MTM6MzMgaWFuIFJlbCAkCisrLlwiICcnJyAkSWQ6IGN1LjEsdiAxLjEwIDIwMDIvMDMvMDUg MjI6MTM6MzMgaWFuIFJlbCAkCisgLlRIIGN1IDEgIlRheWxvciBVVUNQIDEuMDciCisgLlNIIE5B TUUKKyBjdSBcLSBDYWxsIHVwIGFub3RoZXIgc3lzdGVtCitJbmRleDogdXVjcC0xLjA3L3V1Y2lj by44Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gdXVjcC0xLjA3Lm9yaWcvdXVjaWNvLjgJMjAxOS0wMS0xMiAx OTo1MToyNy45MzkzNTI1MzkgKzAxMDAKKysrKyB1dWNwLTEuMDcvdXVjaWNvLjgJMjAxOS0wMS0x MiAxOTo1MToyNy45MjczNTI1NDAgKzAxMDAKK0BAIC0xLDQgKzEsNCBAQAorLScnJyAkSWQ6IHV1 Y2ljby44LHYgMS4yMCAyMDAyLzAzLzA1IDIyOjIwOjQ4IGlhbiBSZWwgJAorKy5cIiAnJycgJElk OiB1dWNpY28uOCx2IDEuMjAgMjAwMi8wMy8wNSAyMjoyMDo0OCBpYW4gUmVsICQKKyAuVEggdXVj aWNvIDggIlRheWxvciBVVUNQIDEuMDciCisgLlNIIE5BTUUKKyB1dWNpY28gXC0gVVVDUCBmaWxl IHRyYW5zZmVyIGRhZW1vbgorQEAgLTU2LDcgKzU2LDcgQEAKKyAuSSB1dWNpY28KKyB3aWxsIG5v cm1hbGx5IHJlZnVzZSB0byByZXRyeSB0aGUKKyBjYWxsIHVudGlsIGEgY2VydGFpbiAoY29uZmln dXJhYmxlKSBhbW91bnQgb2YgdGltZQorLWhhcyBwYXNzZWQuICBUaGlzIG1heSBiZSBvdmVycmlk ZW4gYnkgdGhlCisraGFzIHBhc3NlZC4gIFRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlCisg LkIgLWYsCisgLkIgLS1mb3JjZSwKKyBvcgorQEAgLTE3NSwxMSArMTc1LDExIEBACisgLkIgXC1c LXN5c3RlbSwKKyBvciAKKyAuQiBcLVMKKy1pcyBzcGVjaWZlZCwgb3IgdG8gYWxsIHN5c3RlbXMg d2hpY2ggaGF2ZSB3b3JrIHdoZW4ganVzdAorK2lzIHNwZWNpZmllZCwgb3IgdG8gYWxsIHN5c3Rl bXMgd2hpY2ggaGF2ZSB3b3JrIHdoZW4ganVzdAorIC5CIFwtcjEKKyBvcgorIC5CIFwtXC1tYXN0 ZXIKKy1pcyBzcGVjaWZlZCksIGJlZ2luIGFuIGVuZGxlc3MgbG9vcCBhcyB3aXRoCisraXMgc3Bl Y2lmaWVkKSwgYmVnaW4gYW4gZW5kbGVzcyBsb29wIGFzIHdpdGgKKyAuQiBcLVwtbG9vcC4KKyAu VFAgNQorIC5CIFwtcSwgXC1cLW5vdXV4cXQKK0luZGV4OiB1dWNwLTEuMDcvdXV4LjEKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSB1dWNwLTEuMDcub3JpZy91dXguMQkyMDE5LTAxLTEyIDE5OjUxOjI3LjkzOTM1 MjUzOSArMDEwMAorKysrIHV1Y3AtMS4wNy91dXguMQkyMDE5LTAxLTEyIDE5OjUxOjI3LjkzMTM1 MjU0MCArMDEwMAorQEAgLTEsNCArMSw0IEBACistJycnICRJZDogdXV4LjEsdiAxLjE1IDIwMDIv MDMvMDUgMjI6MjA6NDggaWFuIFJlbCAkCisrLlwiICcnJyAkSWQ6IHV1eC4xLHYgMS4xNSAyMDAy LzAzLzA1IDIyOjIwOjQ4IGlhbiBSZWwgJAorIC5USCB1dXggMSAiVGF5bG9yIFVVQ1AgMS4wNyIK KyAuU0ggTkFNRQorIHV1eCBcLSBSZW1vdGUgY29tbWFuZCBleGVjdXRpb24gb3ZlciBVVUNQCitA QCAtMjAyLDcgKzIwMiw3IEBACisgLlNIIEVYQU1QTEVTCisgLmJyCisgLm5mCistdXV4IC16IC0g c3lzMSFybWFpbCB1c2VyMQorK3V1eCBcLXogXC0gc3lzMSFybWFpbCB1c2VyMQorIC5maQorIEV4 ZWN1dGUgdGhlIGNvbW1hbmQgYGBybWFpbCB1c2VyMScnIG9uIHRoZSBzeXN0ZW0gc3lzMSwgZ2l2 aW5nIGl0IGFzCisgc3RhbmRhcmQgaW5wdXQgd2hhdGV2ZXIgaXMgZ2l2ZW4gdG8KK0BAIC0yMTMs NyArMjEzLDcgQEAKKyAKKyAuYnIKKyAubmYKKy11dXggJ2RpZmYgLWMgc3lzMSF+dXNlcjEvZmls ZTEgc3lzMiF+dXNlcjIvZmlsZTIgPiFmaWxlLmRpZmYnCisrdXV4ICdkaWZmIFwtYyBzeXMxIX51 c2VyMS9maWxlMSBzeXMyIX51c2VyMi9maWxlMiA+IWZpbGUuZGlmZicKKyAuZmkKKyBGZXRjaCB0 aGUgdHdvIG5hbWVkIGZpbGVzIGZyb20gc3lzdGVtIHN5czEgYW5kIHN5c3RlbSBzeXMyIGFuZCBl eGVjdXRlCisgLkkgZGlmZgorSW5kZXg6IHV1Y3AtMS4wNy91dXhxdC44Cis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gdXVjcC0xLjA3Lm9yaWcvdXV4cXQuOAkyMDE5LTAxLTEyIDE5OjUxOjI3LjkzOTM1MjUzOSAr MDEwMAorKysrIHV1Y3AtMS4wNy91dXhxdC44CTIwMTktMDEtMTIgMTk6NTE6MjcuOTMxMzUyNTQw ICswMTAwCitAQCAtMSw0ICsxLDQgQEAKKy0nJycgJElkOiB1dXhxdC44LHYgMS4xMCAyMDAyLzAz LzA1IDIyOjIwOjQ4IGlhbiBSZWwgJAorKy5cIiAnJycgJElkOiB1dXhxdC44LHYgMS4xMCAyMDAy LzAzLzA1IDIyOjIwOjQ4IGlhbiBSZWwgJAorIC5USCB1dXhxdCA4ICJUYXlsb3IgVVVDUCAxLjA3 IgorIC5TSCBOQU1FCisgdXV4cXQgXC0gVVVDUCBleGVjdXRpb24gZGFlbW9uCitAQCAtNDEsNyAr NDEsNyBAQAorIC5icgorIC5pbiArMC41aQorIC5uZgorLXV1eHF0IC0tY29tbWFuZCBybWFpbAor K3V1eHF0IFwtXC1jb21tYW5kIHJtYWlsCisgLmZpCisgLmluIC0wLjVpCisgLlRQIDUKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvdXVjcC9wYXRjaGVzL25vLXNsZWVwLnBhdGNoIGIvc3JjcGtncy91dWNw L3BhdGNoZXMvbm8tc2xlZXAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5iOGI0MzM1MDc3MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3V1Y3AvcGF0 Y2hlcy9uby1zbGVlcC5wYXRjaApAQCAtMCwwICsxLDY1IEBACitEZXNjcmlwdGlvbjogYXZvaWQg c2xlZXBzCitBdXRob3I6IEZyYW5rIEhlY2tlbmJhY2gKK0luZGV4OiB1dWNwLTEuMDcvcHJvdHQu YworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL3Byb3R0LmMJMjAxNy0wOS0yNyAxMjoy NDoxNS45NjMxNjU3NTcgKzAyMDAKKysrKyB1dWNwLTEuMDcvcHJvdHQuYwkyMDE3LTA5LTI3IDEy OjI0OjE1Ljk1OTE2NTY4NyArMDIwMAorQEAgLTg4LDcgKzg4LDcgQEAKKyAgIHpUYnVmWzBdID0g MDsKKyAgIHpUYnVmWzFdID0gMDsKKyAgIGZUZmlsZSA9IEZBTFNFOworLSAgdXN5c2RlcF9zbGVl cCAoMik7CisrICAvLyB1c3lzZGVwX3NsZWVwICgyKTsgIC0tIHdoeT8gcHJvdG9jb2wgdCBpcyBt ZWFudCB0byBiZSB1c2VkIG92ZXIgYW4gZXJyb3ItZnJlZSBjb25uZWN0aW9uCisgICByZXR1cm4g VFJVRTsKKyB9CisgDAorSW5kZXg6IHV1Y3AtMS4wNy91bml4L3BpcGUuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIHV1Y3AtMS4wNy5vcmlnL3VuaXgvcGlwZS5jCTIwMTctMDktMjcgMTI6MjQ6MTUuOTYzMTY1 NzU3ICswMjAwCisrKysgdXVjcC0xLjA3L3VuaXgvcGlwZS5jCTIwMTctMDktMjcgMTI6MjQ6MTUu OTU5MTY1Njg3ICswMjAwCitAQCAtMTY1LDEwICsxNjUsNDMgQEAKKyAgIGlmIChxc3lzZGVwLT5p cGlkID49IDApCisgICAgIHsKKyAgICAgICBpZiAoa2lsbCAocXN5c2RlcC0+aXBpZCwgU0lHSFVQ KSA9PSAwKQorLSAgICAgICAgdXN5c2RlcF9zbGVlcCAoMik7CisrICAgICAgICB7CisrICAgICAg ICAgICNpZiBkZWZpbmVkIChIQVZFX1VTTEVFUCkgJiYgZGVmaW5lZCAoSEFWRV9XQUlUUElEKQor KyAgICAgICAgICAvKiBBdm9pZCB3YXN0aW5nIDQgc2Vjb25kcyAoaW5jbHVkaW5nIHRoZSBTSUdQ SVBFIGNhc2UgYmVsb3cpLgorKyAgICAgICAgICAgICBRdWljayBhbmQgZGlydHkgd29yay1hcm91 bmQgdG8gYXZvaWQgZGVwZW5kaW5nIG9uIFNJR0NITEQ6CisrICAgICAgICAgICAgIEp1c3Qgc2xl ZXAgdXAgdG8gMjAgdGltZXMgMC4xcyBhcyBsb25nIGFzIHRoZSBjaGlsZCBleGlzdHMuICovCisr ICAgICAgICAgIGludCBpLCBzdGF0dXM7CisrICAgICAgICAgIGZvciAoaSA9IDIwOyBpID4gMDsg aS0tKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgIGlmICh3YWl0cGlkIChxc3lzZGVw LT5pcGlkLCAmc3RhdHVzLCBXTk9IQU5HKSA9PSBxc3lzZGVwLT5pcGlkKQorKyAgICAgICAgICAg ICAgICB7CisrICAgICAgICAgICAgICAgICAgcXN5c2RlcC0+aXBpZCA9IC0xOworKyAgICAgICAg ICAgICAgICAgIHJldHVybiBmcmV0OworKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAg ICB1c2xlZXAgKDEwMDAwMCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAjZWxzZQorKyAg ICAgICAgICB1c3lzZGVwX3NsZWVwICgyKTsKKysgICAgICAgICAgI2VuZGlmCisrICAgICAgICB9 CisgI2lmZGVmIFNJR1BJUEUKKyAgICAgICBpZiAoa2lsbCAocXN5c2RlcC0+aXBpZCwgU0lHUElQ RSkgPT0gMCkKKy0gICAgICAgIHVzeXNkZXBfc2xlZXAgKDIpOworKyAgICAgICAgeworKyAgICAg ICAgICAjaWYgSEFWRV9VU0xFRVAKKysgICAgICAgICAgaW50IGksIHN0YXR1czsKKysgICAgICAg ICAgZm9yIChpID0gMjA7IGkgPiAwOyBpLS0pCisrICAgICAgICAgICAgeworKyAgICAgICAgICAg ICAgaWYgKHdhaXRwaWQgKHFzeXNkZXAtPmlwaWQsICZzdGF0dXMsIFdOT0hBTkcpID09IHFzeXNk ZXAtPmlwaWQpCisrICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgICBxc3lzZGVw LT5pcGlkID0gLTE7CisrICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyZXQ7CisrICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgIHVzbGVlcCAoMTAwMDAwKTsKKysgICAgICAgICAgICB9 CisrICAgICAgICAgICNlbHNlCisrICAgICAgICAgIHVzeXNkZXBfc2xlZXAgKDIpOworKyAgICAg ICAgICAjZW5kaWYKKysgICAgICAgIH0KKyAjZW5kaWYKKyAgICAgICBpZiAoa2lsbCAocXN5c2Rl cC0+aXBpZCwgU0lHS0lMTCkgPCAwICYmIGVycm5vID09IEVQRVJNKQorIAl7CmRpZmYgLS1naXQg YS9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy9vcHRpb24tdG8tbm90LWZvcmNlLWh3LWNvbnRyb2wucGF0 Y2ggYi9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy9vcHRpb24tdG8tbm90LWZvcmNlLWh3LWNvbnRyb2wu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zYTdlNGVhOTFm YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy9vcHRpb24tdG8tbm90 LWZvcmNlLWh3LWNvbnRyb2wucGF0Y2gKQEAgLTAsMCArMSwzMjEgQEAKK0Rlc2NyaXB0aW9uOiBh dm9pZCBmb3JjaW5nIGh3IGNvbnRyb2wKK0F1dGhvcjogTWljaGFsIFN1Y2hhbmVrCitJbmRleDog dXVjcC0xLjA3L2Nvbm4uaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL2Nvbm4uaAky MDEzLTEyLTA0IDExOjIwOjIzLjcyMjIwODg2OCArMDEwMAorKysrIHV1Y3AtMS4wNy9jb25uLmgJ MjAxMy0xMi0wNCAxMToyMDoyNi4wMjIxODEzNTAgKzAxMDAKK0BAIC0xMTcsNyArMTE3LDcgQEAK KyAgIGJvb2xlYW4gKCpwZnVubG9jaykgUCgoc3RydWN0IHNjb25uZWN0aW9uICpxY29ubikpOwor ICAgLyogT3BlbiB0aGUgY29ubmVjdGlvbi4gICovCisgICBib29sZWFuICgqcGZvcGVuKSBQKChz dHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uLCBsb25nIGliYXVkLAorLQkJICAgICAgIGJvb2xlYW4g ZndhaXQsIGJvb2xlYW4gZnVzZXIpKTsKKysJCSAgICAgICBib29sZWFuIGZ3YWl0LCBib29sZWFu IGZ1c2VyLCBib29sZWFuIG5vcnRzY3RzKSk7CisgICAvKiBDbG9zZSB0aGUgY29ubmVjdGlvbi4g ICovCisgICBib29sZWFuICgqcGZjbG9zZSkgUCgoc3RydWN0IHNjb25uZWN0aW9uICpxY29ubiwK KyAJCQlwb2ludGVyIHB1dWNvbmYsCitAQCAtMTk4LDcgKzE5OCw3IEBACisgICAgdGhhbiB0aGUg ZWZmZWN0aXZlIHBlcm1pc3Npb25zLiAgKi8KKyBleHRlcm4gYm9vbGVhbiBmY29ubl9vcGVuIFAo KHN0cnVjdCBzY29ubmVjdGlvbiAqcWNvbm4sIGxvbmcgaWJhdWQsCisgCQkJICAgICBsb25nIGlo aWdoYmF1ZCwgYm9vbGVhbiBmd2FpdCwKKy0JCQkgICAgIGJvb2xlYW4gZnVzZXIpKTsKKysJCQkg ICAgIGJvb2xlYW4gZnVzZXIsIGJvb2xlYW4gbm9ydHNjdHMpKTsKKyAKKyAvKiBDbG9zZSBhIGNv bm5lY3Rpb24uICBUaGUgZnN1Y2Nlc3MgYXJndW1lbnQgaXMgVFJVRSBpZiB0aGUKKyAgICBjb252 ZXJzYXRpb24gY29tcGxldGVkIG5vcm1hbGx5LCBGQUxTRSBpZiBpdCBpcyBiZWluZyBhYm9ydGVk LiAgKi8KK0luZGV4OiB1dWNwLTEuMDcvY3UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5v cmlnL2N1LmMJMjAxMy0xMi0wNCAxMToyMDoyMy43MjIyMDg4NjggKzAxMDAKKysrKyB1dWNwLTEu MDcvY3UuYwkyMDEzLTEyLTA0IDExOjI3OjAzLjM1MzQyNTc2NCArMDEwMAorQEAgLTIyMyw2ICsy MjMsNyBAQAorICAgeyAiYmF1ZCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAncycgfSwKKyAg IHsgIm1hcGNyIiwgbm9fYXJndW1lbnQsIE5VTEwsICd0JyB9LAorICAgeyAibm9zdG9wIiwgbm9f YXJndW1lbnQsIE5VTEwsIDMgfSwKKysgIHsgIm5vcnRzY3RzIiwgbm9fYXJndW1lbnQsIE5VTEws ICdmJyB9LAorICAgeyAic3lzdGVtIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICd6JyB9LAor ICAgeyAiY29uZmlnIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdJJyB9LAorICAgeyAiZGVi dWciLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3gnIH0sCitAQCAtMjU4LDYgKzI1OSw4IEBA CisgICBlbnVtIHR4b254b2Zmc2V0dGluZyB0eG9ueG9mZiA9IFhPTlhPRkZfT047CisgICAvKiAt STogY29uZmlndXJhdGlvbiBmaWxlIG5hbWUuICAqLworICAgY29uc3QgY2hhciAqemNvbmZpZyA9 IE5VTEw7CisrICAvKiAtZjogbm8gaGFyZHdhcmUgZmxvdyBjb250cm9sICovCisrICBib29sZWFu IG5vcnRzY3RzID0gRkFMU0U7CisgICBpbnQgaW9wdDsKKyAgIHBvaW50ZXIgcHV1Y29uZjsKKyAg IGludCBpdXVjb25mOworQEAgLTI5NSw3ICsyOTgsNyBAQAorIAl9CisgICAgIH0KKyAKKy0gIHdo aWxlICgoaW9wdCA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCAiYTpjOmRlRTpobkk6bDpvcDpz OnR2eDp6OiIsCisrICB3aGlsZSAoKGlvcHQgPSBnZXRvcHRfbG9uZyAoYXJnYywgYXJndiwgImE6 YzpkZUU6ZmhuSTpsOm9wOnM6dHZ4Ono6IiwKKyAJCQkgICAgICBhc0N1bG9uZ29wdHMsIChpbnQg KikgTlVMTCkpICE9IEVPRikKKyAgICAgeworICAgICAgIHN3aXRjaCAoaW9wdCkKK0BAIC0zMjIs NiArMzI1LDExIEBACisgCSAgekN1dmFyX2VzY2FwZSA9IG9wdGFyZzsKKyAJICBicmVhazsKKyAK KysJY2FzZSAnZic6CisrCSAgLyogTm8gaGFyZHdhcmUgZmxvdyBjb250cm9sLiAgKi8KKysJICBu b3J0c2N0cyA9IFRSVUU7CisrCSAgYnJlYWs7CisrCisgCWNhc2UgJ2gnOgorIAkgIC8qIExvY2Fs IGVjaG8uICAqLworIAkgIGZDdWxvY2FsZWNobyA9IFRSVUU7CitAQCAtNjgyLDcgKzY5MCw3IEBA CisgCX0KKyAKKyAgICAgICAvKiBIZXJlIHdlIGhhdmUgbG9ja2VkIGEgY29ubmVjdGlvbiB0byB1 c2UuICAqLworLSAgICAgIGlmICghIGZjb25uX29wZW4gKCZzY29ubiwgaXVzZWJhdWQsIGloaWdo YmF1ZCwgRkFMU0UsIHNpbmZvLmZkaXJlY3QpKQorKyAgICAgIGlmICghIGZjb25uX29wZW4gKCZz Y29ubiwgaXVzZWJhdWQsIGloaWdoYmF1ZCwgRkFMU0UsIHNpbmZvLmZkaXJlY3QsIG5vcnRzY3Rz KSkKKyAJdWN1YWJvcnQgKCk7CisgCisgICAgICAgZkN1Y2xvc2VfY29ubiA9IFRSVUU7CitJbmRl eDogdXVjcC0xLjA3L2Nvbm4uYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL2Nvbm4u YwkyMDEzLTEyLTA0IDExOjIwOjIzLjcyMjIwODg2OCArMDEwMAorKysrIHV1Y3AtMS4wNy9jb25u LmMJMjAxMy0xMi0wNCAxMToyMDoyNi4wMjYxODEyOTkgKzAxMDAKK0BAIC0xMTQsMTIgKzExNCwx MyBAQAorIC8qIE9wZW4gYSBjb25uZWN0aW9uLiAgKi8KKyAKKyBib29sZWFuCistZmNvbm5fb3Bl biAocWNvbm4sIGliYXVkLCBpaGlnaGJhdWQsIGZ3YWl0LCBmdXNlcikKKytmY29ubl9vcGVuIChx Y29ubiwgaWJhdWQsIGloaWdoYmF1ZCwgZndhaXQsIGZ1c2VyLCBub3J0c2N0cykKKyAgICAgIHN0 cnVjdCBzY29ubmVjdGlvbiAqcWNvbm47CisgICAgICBsb25nIGliYXVkOworICAgICAgbG9uZyBp aGlnaGJhdWQ7CisgICAgICBib29sZWFuIGZ3YWl0OworICAgICAgYm9vbGVhbiBmdXNlcjsKKysg ICAgIGJvb2xlYW4gbm9ydHNjdHM7CisgeworICAgYm9vbGVhbiBmcmV0OworIAorQEAgLTE3Nyw3 ICsxNzgsNyBAQAorICAgZWxzZQorICAgICB1bG9nX2RldmljZSAocWNvbm4tPnFwb3J0LT51dWNv bmZfem5hbWUpOworIAorLSAgZnJldCA9ICgqcWNvbm4tPnFjbWRzLT5wZm9wZW4pIChxY29ubiwg aWJhdWQsIGZ3YWl0LCBmdXNlcik7CisrICBmcmV0ID0gKCpxY29ubi0+cWNtZHMtPnBmb3Blbikg KHFjb25uLCBpYmF1ZCwgZndhaXQsIGZ1c2VyLCBub3J0c2N0cyk7CisgCisgICBpZiAoISBmcmV0 KQorICAgICB1bG9nX2RldmljZSAoKGNvbnN0IGNoYXIgKikgTlVMTCk7CitJbmRleDogdXVjcC0x LjA3L3V1Y2ljby5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdXVjcC0xLjA3Lm9yaWcvdXVjaWNvLmMJMjAx My0xMi0wNCAxMToyMDoyMy43MjIyMDg4NjggKzAxMDAKKysrKyB1dWNwLTEuMDcvdXVjaWNvLmMJ MjAxMy0xMi0wNCAxMToyMDoyNi4wMjYxODEyOTkgKzAxMDAKK0BAIC02OTUsNyArNjk1LDcgQEAK KyAKKyAgICAgICBpZiAoZnJldCkKKyAJeworLQkgIGlmICghIGZjb25uX29wZW4gKCZzY29ubiwg KGxvbmcpIDAsIChsb25nKSAwLCBUUlVFLCBGQUxTRSkpCisrCSAgaWYgKCEgZmNvbm5fb3BlbiAo JnNjb25uLCAobG9uZykgMCwgKGxvbmcpIDAsIFRSVUUsIEZBTFNFLCBGQUxTRSkpCisgCSAgICBm cmV0ID0gRkFMU0U7CisgCSAgcUNvbm4gPSAmc2Nvbm47CisgCX0KK0BAIC03MTQsNyArNzE0LDcg QEAKKyAJCQkJICAgICAoc3RydWN0IHV1Y29uZl9kaWFsZXIgKikgTlVMTCwKKyAJCQkJICAgICBU UlVFKQorIAkJICAgICAgfHwgISBmY29ubl9vcGVuICgmc2Nvbm4sIChsb25nKSAwLCAobG9uZykg MCwgVFJVRSwKKy0JCQkJICAgICAgIEZBTFNFKSkKKysJCQkJICAgICAgIEZBTFNFLCBGQUxTRSkp CisgCQkgICAgYnJlYWs7CisgCQl9CisgCSAgICAgIGZyZXQgPSBGQUxTRTsKK0BAIC0xMTc2LDcg KzExNzYsNyBAQAorICAgICB9CisgCisgICBpZiAoISBmY29ubl9vcGVuICgmc2Nvbm4sIHFzeXMt PnV1Y29uZl9pYmF1ZCwgcXN5cy0+dXVjb25mX2loaWdoYmF1ZCwKKy0JCSAgICBGQUxTRSwgRkFM U0UpKQorKwkJICAgIEZBTFNFLCBGQUxTRSwgRkFMU0UpKQorICAgICB7CisgICAgICAgdGVyciA9 IFNUQVRVU19QT1JUX0ZBSUxFRDsKKyAgICAgICBmcmV0ID0gRkFMU0U7CitJbmRleDogdXVjcC0x LjA3L3VuaXgvcGlwZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdXVjcC0xLjA3Lm9yaWcvdW5peC9waXBl LmMJMjAxMy0xMi0wNCAxMToyMDoyMy43MjIyMDg4NjggKzAxMDAKKysrKyB1dWNwLTEuMDcvdW5p eC9waXBlLmMJMjAxMy0xMi0wNCAxMToyMDoyNi4wMjYxODEyOTkgKzAxMDAKK0BAIC00OSw3ICs0 OSw3IEBACisgCisgc3RhdGljIHZvaWQgdXNwaXBlX2ZyZWUgUCgoc3RydWN0IHNjb25uZWN0aW9u ICpxY29ubikpOworIHN0YXRpYyBib29sZWFuIGZzcGlwZV9vcGVuIFAoKHN0cnVjdCBzY29ubmVj dGlvbiAqcWNvbm4sIGxvbmcgaWJhdWQsCistCQkJICAgICAgYm9vbGVhbiBmd2FpdCwgYm9vbGVh biBmdXNlcikpOworKwkJCSAgICAgIGJvb2xlYW4gZndhaXQsIGJvb2xlYW4gZnVzZXIsIGJvb2xl YW4gbm9ydHNjdHMpKTsKKyBzdGF0aWMgYm9vbGVhbiBmc3BpcGVfY2xvc2UgUCgoc3RydWN0IHNj b25uZWN0aW9uICpxY29ubiwKKyAJCQkgICAgICAgcG9pbnRlciBwdXVjb25mLAorIAkJCSAgICAg ICBzdHJ1Y3QgdXVjb25mX2RpYWxlciAqcWRpYWxlciwKK0BAIC0xMTUsMTEgKzExNSwxMiBAQAor IAorIC8qQVJHU1VTRUQqLworIHN0YXRpYyBib29sZWFuCistZnNwaXBlX29wZW4gKHFjb25uLCBp YmF1ZCwgZndhaXQsIGZ1c2VyKQorK2ZzcGlwZV9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBm dXNlciwgbm9ydHNjdHMpCisgICAgICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uIEFUVFJJQlVU RV9VTlVTRUQ7CisgICAgICBsb25nIGliYXVkIEFUVFJJQlVURV9VTlVTRUQ7CisgICAgICBib29s ZWFuIGZ3YWl0OworICAgICAgYm9vbGVhbiBmdXNlciBBVFRSSUJVVEVfVU5VU0VEOworKyAgICAg Ym9vbGVhbiBub3J0c2N0cyBBVFRSSUJVVEVfVU5VU0VEOworIHsKKyAgIC8qIFdlIGRvbid0IGRv IGluY29taW5nIHdhaXRzIG9uIHBpcGVzLiAgKi8KKyAgIGlmIChmd2FpdCkKK0luZGV4OiB1dWNw LTEuMDcvdW5peC9zZXJpYWwuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL3VuaXgv c2VyaWFsLmMJMjAxMy0xMi0wNCAxMToyMDoyMy43MjIyMDg4NjggKzAxMDAKKysrKyB1dWNwLTEu MDcvdW5peC9zZXJpYWwuYwkyMDEzLTEyLTA0IDExOjIwOjI2LjAyNjE4MTI5OSArMDEwMAorQEAg LTI0NiwxMSArMjQ2LDExIEBACisgCQkJCWJvb2xlYW4gZndhaXQsIGJvb2xlYW4gZnVzZXIsCisg CQkJCWVudW0gdGNsb2NhbF9zZXR0aW5nIHRsb2NhbCkpOworIHN0YXRpYyBib29sZWFuIGZzc3Rk aW5fb3BlbiBQKChzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uLCBsb25nIGliYXVkLAorLQkJCSAg ICAgICBib29sZWFuIGZ3YWl0LCBib29sZWFuIGZ1c2VyKSk7CisrCQkJICAgICAgIGJvb2xlYW4g ZndhaXQsIGJvb2xlYW4gZnVzZXIsIGJvb2xlYW4gbm9ydHNjdHMpKTsKKyBzdGF0aWMgYm9vbGVh biBmc21vZGVtX29wZW4gUCgoc3RydWN0IHNjb25uZWN0aW9uICpxY29ubiwgbG9uZyBpYmF1ZCwK Ky0JCQkgICAgICAgYm9vbGVhbiBmd2FpdCwgYm9vbGVhbiBmdXNlcikpOworKwkJCSAgICAgICBi b29sZWFuIGZ3YWl0LCBib29sZWFuIGZ1c2VyLCBib29sZWFuIG5vcnRzY3RzKSk7Cisgc3RhdGlj IGJvb2xlYW4gZnNkaXJlY3Rfb3BlbiBQKChzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uLCBsb25n IGliYXVkLAorLQkJCQlib29sZWFuIGZ3YWl0LCBib29sZWFuIGZ1c2VyKSk7CisrCQkJCWJvb2xl YW4gZndhaXQsIGJvb2xlYW4gZnVzZXIsIGJvb2xlYW4gbm9ydHNjdHMpKTsKKyBzdGF0aWMgYm9v bGVhbiBmc2Jsb2NrIFAoKHN0cnVjdCBzc3lzZGVwX2Nvbm4gKnEsIGJvb2xlYW4gZmJsb2NrKSk7 Cisgc3RhdGljIGJvb2xlYW4gZnNzZXJpYWxfY2xvc2UgUCgoc3RydWN0IHNzeXNkZXBfY29ubiAq cSkpOworIHN0YXRpYyBib29sZWFuIGZzc3RkaW5fY2xvc2UgUCgoc3RydWN0IHNjb25uZWN0aW9u ICpxY29ubiwKK0BAIC0xMzA4LDExICsxMzA4LDEyIEBACisgICAgY2FsbCB0byBmc2Jsb2NrLiAg Ki8KKyAKKyBzdGF0aWMgYm9vbGVhbgorLWZzc3RkaW5fb3BlbiAocWNvbm4sIGliYXVkLCBmd2Fp dCwgZnVzZXIpCisrZnNzdGRpbl9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBmdXNlciwgbm9y dHNjdHMpCisgICAgICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uOworICAgICAgbG9uZyBpYmF1 ZDsKKyAgICAgIGJvb2xlYW4gZndhaXQ7CisgICAgICBib29sZWFuIGZ1c2VyOworKyAgICAgYm9v bGVhbiBub3J0c2N0czsKKyB7CisgICBzdHJ1Y3Qgc3N5c2RlcF9jb25uICpxOworIAorQEAgLTEz MjMsNiArMTMyNCw5IEBACisgICBxLT5vID0gcS0+b3JkOworICAgaWYgKCEgZnNzZXJpYWxfb3Bl biAocWNvbm4sIGliYXVkLCBmd2FpdCwgZnVzZXIsIElHTk9SRV9DTE9DQUwpKQorICAgICByZXR1 cm4gRkFMU0U7CisrICBpZiAobm9ydHNjdHMKKysgICAgICAmJiAhIGZzc2VyaWFsX2hhcmRmbG93 IChxY29ubiwgRkFMU0UpKQorKyAgICByZXR1cm4gRkFMU0U7CisgICBxLT5pd3JfZmxhZ3MgPSBm Y250bCAocS0+b3dyLCBGX0dFVEZMLCAwKTsKKyAgIGlmIChxLT5pd3JfZmxhZ3MgPCAwKQorICAg ICB7CitAQCAtMTMzNSwxMSArMTMzOSwxMiBAQAorIC8qIE9wZW4gYSBtb2RlbSBwb3J0LiAgKi8K KyAKKyBzdGF0aWMgYm9vbGVhbgorLWZzbW9kZW1fb3BlbiAocWNvbm4sIGliYXVkLCBmd2FpdCwg ZnVzZXIpCisrZnNtb2RlbV9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBmdXNlciwgbm9ydHNj dHMpCisgICAgICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uOworICAgICAgbG9uZyBpYmF1ZDsK KyAgICAgIGJvb2xlYW4gZndhaXQ7CisgICAgICBib29sZWFuIGZ1c2VyOworKyAgICAgYm9vbGVh biBub3J0c2N0czsKKyB7CisgICBzdHJ1Y3QgdXVjb25mX21vZGVtX3BvcnQgKnFtOworIAorQEAg LTEzNTYsNyArMTM2MSwxMCBAQAorICAgICAgb3V0LCBiZWNhdXNlIHNvbWUgbW9kZW1zIGRvbid0 IGFzc2VydCB0aGUgbmVjZXNzYXJ5IHNpZ25hbHMgdW50aWwKKyAgICAgIHRoZXkgc2VlIGNhcnJp ZXIuICBJbnN0ZWFkLCB3ZSB0dXJuIG9uIGhhcmR3YXJlIGZsb3cgY29udHJvbCBpbgorICAgICAg ZnNtb2RlbV9jYXJyaWVyLiAgKi8KKy0gIGlmIChmd2FpdAorKyAgaWYgKG5vcnRzY3RzCisrICAg ICAgJiYgISBmc3NlcmlhbF9oYXJkZmxvdyAocWNvbm4sIEZBTFNFKSkKKysgICAgcmV0dXJuIEZB TFNFOworKyAgZWxzZSBpZiAoZndhaXQKKyAgICAgICAmJiAhIGZzc2VyaWFsX2hhcmRmbG93IChx Y29ubiwgcW0tPnV1Y29uZl9maGFyZGZsb3cpKQorICAgICByZXR1cm4gRkFMU0U7CisgCitAQCAt MTM2NiwxMSArMTM3NCwxMiBAQAorIC8qIE9wZW4gYSBkaXJlY3QgcG9ydC4gICovCisgCisgc3Rh dGljIGJvb2xlYW4KKy1mc2RpcmVjdF9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBmdXNlcikK Kytmc2RpcmVjdF9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBmdXNlciwgbm9ydHNjdHMpCisg ICAgICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uOworICAgICAgbG9uZyBpYmF1ZDsKKyAgICAg IGJvb2xlYW4gZndhaXQ7CisgICAgICBib29sZWFuIGZ1c2VyOworKyAgICAgYm9vbGVhbiBub3J0 c2N0czsKKyB7CisgICBzdHJ1Y3QgdXVjb25mX2RpcmVjdF9wb3J0ICpxZDsKKyAKK0BAIC0xMzgz LDcgKzEzOTIsNyBAQAorIAorICAgLyogQWx3YXlzIHR1cm4gb24gaGFyZHdhcmUgZmxvdyBjb250 cm9sIGZvciBhIGRpcmVjdCBwb3J0IHdoZW4gaXQgaXMKKyAgICAgIG9wZW5lZC4gIFRoZXJlIGlz IG5vIG90aGVyIHNlbnNpYmxlIHRpbWUgdG8gdHVybiBpdCBvbi4gICovCistICByZXR1cm4gZnNz ZXJpYWxfaGFyZGZsb3cgKHFjb25uLCBxZC0+dXVjb25mX2ZoYXJkZmxvdyk7CisrICByZXR1cm4g ZnNzZXJpYWxfaGFyZGZsb3cgKHFjb25uLCBxZC0+dXVjb25mX2ZoYXJkZmxvdyAmJiAhIG5vcnRz Y3RzKTsKKyB9CisgDAorIC8qIENoYW5nZSB0aGUgYmxvY2tpbmcgc3RhdHVzIG9mIHRoZSBwb3J0 LiAgV2Uga2VlcCB0cmFjayBvZiB0aGUKK0luZGV4OiB1dWNwLTEuMDcvdW5peC90Y3AuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL3VuaXgvdGNwLmMJMjAxMy0xMi0wNCAxMToyMDoy My43MjIyMDg4NjggKzAxMDAKKysrKyB1dWNwLTEuMDcvdW5peC90Y3AuYwkyMDEzLTEyLTA0IDEx OjIwOjI2LjAyNjE4MTI5OSArMDEwMAorQEAgLTc4LDcgKzc4LDcgQEAKKyAjZW5kaWYKKyBzdGF0 aWMgYm9vbGVhbiBmdGNwX3NldF9mbGFncyBQKChzdHJ1Y3Qgc3N5c2RlcF9jb25uICpxc3lzZGVw KSk7Cisgc3RhdGljIGJvb2xlYW4gZnRjcF9vcGVuIFAoKHN0cnVjdCBzY29ubmVjdGlvbiAqcWNv bm4sIGxvbmcgaWJhdWQsCistCQkJICAgIGJvb2xlYW4gZndhaXQsIGJvb2xlYW4gZnVzZXIpKTsK KysJCQkgICAgYm9vbGVhbiBmd2FpdCwgYm9vbGVhbiBmdXNlciwgYm9vbGVhbiBub3J0c2N0cykp OworIHN0YXRpYyBib29sZWFuIGZ0Y3BfY2xvc2UgUCgoc3RydWN0IHNjb25uZWN0aW9uICpxY29u biwKKyAJCQkgICAgIHBvaW50ZXIgcHV1Y29uZiwKKyAJCQkgICAgIHN0cnVjdCB1dWNvbmZfZGlh bGVyICpxZGlhbGVyLAorQEAgLTIwOCwxMSArMjA4LDEyIEBACisgICAgc3lzdGVtLiAgKi8KKyAK KyBzdGF0aWMgYm9vbGVhbgorLWZ0Y3Bfb3BlbiAocWNvbm4sIGliYXVkLCBmd2FpdCwgZnVzZXIp CisrZnRjcF9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBmdXNlciwgbm9ydHNjdHMpCisgICAg ICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uOworICAgICAgbG9uZyBpYmF1ZCBBVFRSSUJVVEVf VU5VU0VEOworICAgICAgYm9vbGVhbiBmd2FpdDsKKyAgICAgIGJvb2xlYW4gZnVzZXIgQVRUUklC VVRFX1VOVVNFRDsKKysgICAgIGJvb2xlYW4gbm9ydHNjdHMgQVRUUklCVVRFX1VOVVNFRDsKKyB7 CisgICBzdHJ1Y3Qgc3N5c2RlcF9jb25uICpxc3lzZGVwOworICAgY29uc3QgY2hhciAqenBvcnQ7 CitJbmRleDogdXVjcC0xLjA3L3VuaXgvdGxpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB1dWNwLTEuMDcu b3JpZy91bml4L3RsaS5jCTIwMTMtMTItMDQgMTE6MjA6MjMuNzIyMjA4ODY4ICswMTAwCisrKysg dXVjcC0xLjA3L3VuaXgvdGxpLmMJMjAxMy0xMi0wNCAxMToyMDoyNi4wMjYxODEyOTkgKzAxMDAK K0BAIC0xMDYsNyArMTA2LDcgQEAKKyBzdGF0aWMgdm9pZCB1dGxpX2ZyZWUgUCgoc3RydWN0IHNj b25uZWN0aW9uICpxY29ubikpOworIHN0YXRpYyBib29sZWFuIGZ0bGlfcHVzaCBQKChzdHJ1Y3Qg c2Nvbm5lY3Rpb24gKnFjb25uKSk7Cisgc3RhdGljIGJvb2xlYW4gZnRsaV9vcGVuIFAoKHN0cnVj dCBzY29ubmVjdGlvbiAqcWNvbm4sIGxvbmcgaWJhdWQsCistCQkJICAgIGJvb2xlYW4gZndhaXQs IGJvb2xlYW4gZnVzZXIpKTsKKysJCQkgICAgYm9vbGVhbiBmd2FpdCwgYm9vbGVhbiBmdXNlciwg Ym9vbGVhbiBub3J0c2N0cykpOworIHN0YXRpYyBib29sZWFuIGZ0bGlfY2xvc2UgUCgoc3RydWN0 IHNjb25uZWN0aW9uICpxY29ubiwKKyAJCQkgICAgIHBvaW50ZXIgcHV1Y29uZiwKKyAJCQkgICAg IHN0cnVjdCB1dWNvbmZfZGlhbGVyICpxZGlhbGVyLAorQEAgLTIzOCwxMSArMjM4LDEyIEBACisg ICAgc3lzdGVtLiAgKi8KKyAKKyBzdGF0aWMgYm9vbGVhbgorLWZ0bGlfb3BlbiAocWNvbm4sIGli YXVkLCBmd2FpdCwgZnVzZXIpCisrZnRsaV9vcGVuIChxY29ubiwgaWJhdWQsIGZ3YWl0LCBmdXNl ciwgbm9ydHNjdHMpCisgICAgICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uOworICAgICAgbG9u ZyBpYmF1ZDsKKyAgICAgIGJvb2xlYW4gZndhaXQ7CisgICAgICBib29sZWFuIGZ1c2VyIEFUVFJJ QlVURV9VTlVTRUQ7CisrICAgICBib29sZWFuIG5vcnRzY3RzIEFUVFJJQlVURV9VTlVTRUQ7Cisg eworICAgc3RydWN0IHNzeXNkZXBfY29ubiAqcXN5c2RlcDsKKyAgIGNvbnN0IGNoYXIgKnpkZXZp Y2U7CitJbmRleDogdXVjcC0xLjA3L2N1LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB1dWNwLTEuMDcub3Jp Zy9jdS4xCTIwMTMtMTItMDQgMTE6MjA6MjMuNzIyMjA4ODY4ICswMTAwCisrKysgdXVjcC0xLjA3 L2N1LjEJMjAxMy0xMi0wNCAxMToyMDoyNi4wMjYxODEyOTkgKzAxMDAKK0BAIC0yMzEsNiArMjMx LDkgQEAKKyAuQiBcLVwtbm9zdG9wCisgVHVybiBvZmYgWE9OL1hPRkYgaGFuZGxpbmcgKGl0IGlz IG9uIGJ5IGRlZmF1bHQpLgorIC5UUCA1CisrLkIgXC1mLCBcLVwtbm9ydHNjdHMKKytEbyBub3Qg dXNlIGhhcmR3YXJlIGZsb3cgY29udHJvbC4KKysuVFAgNQorIC5CIFwtRSBjaGFyLCBcLVwtZXNj YXBlIGNoYXIKKyBTZXQgdGhlIGVzY2FwZSBjaGFyYWN0ZXIuICBJbml0aWFsbHkKKyAuQiB+CmRp ZmYgLS1naXQgYS9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy9zcGVsbGluZy5wYXRjaCBiL3NyY3BrZ3Mv dXVjcC9wYXRjaGVzL3NwZWxsaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYjk2MjIzZmNkMjM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy91dWNw L3BhdGNoZXMvc3BlbGxpbmcucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorQXV0aG9yOiBUaG9yc3Rl biBBbHRlaG9seiA8ZGViaWFuQGFsdGVob2x6LmRlPgorRGVzY3JpcHRpb246IGNvcnJlY3Qgc3Bl bGxpbmcgZXJyb3IgaW4gYmluYXJ5CitJbmRleDogdXVjcC0xLjA3L2N1LmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSB1dWNwLTEuMDcub3JpZy9jdS5jCTIwMTktMDEtMTIgMTk6NTA6MDAuNDQ3MzU1MTYyICsw MTAwCisrKysgdXVjcC0xLjA3L2N1LmMJMjAxOS0wMS0xMiAxOTo1MDowMC40MzUzNTUxNjIgKzAx MDAKK0BAIC0xNzU2LDcgKzE3NTYsNyBAQAorICAgICB6ZnJvbSA9IHpidWZjcHkgKGFyZ3ZbMV0p OworICAgZWxzZQorICAgICB7CistICAgICAgemZyb20gPSB6c3lzZGVwX3Rlcm1pbmFsX2xpbmUg KCJSZW1vdGUgZmlsZSB0byByZXRyZWl2ZTogIik7CisrICAgICAgemZyb20gPSB6c3lzZGVwX3Rl cm1pbmFsX2xpbmUgKCJSZW1vdGUgZmlsZSB0byByZXRyaWV2ZTogIik7CisgICAgICAgaWYgKHpm cm9tID09IE5VTEwpCisgCXVjdWFib3J0ICgpOworICAgICAgIHpmcm9tW3N0cmNzcG4gKHpmcm9t LCAiIFx0XG4iKV0gPSAnXDAnOworSW5kZXg6IHV1Y3AtMS4wNy91dXhxdC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gdXVjcC0xLjA3Lm9yaWcvdXV4cXQuYwkyMDAzLTA1LTI5IDA4OjA4OjQ4LjAwMDAwMDAw MCArMDIwMAorKysrIHV1Y3AtMS4wNy91dXhxdC5jCTIwMTktMDEtMTIgMTk6NTA6MzIuOTA3MzU0 MTg5ICswMTAwCitAQCAtMTUxNyw3ICsxNTE3LDcgQEAKKyAJICBheltpKytdID0gelFjbWQ7Cisg CSAgYXpbaSsrXSA9ICJcbiI7CisgCistCSAgKHZvaWQpIGZzeXNkZXBfbWFpbCAoem1haWwsICJF eGVjdXRpb24gc3VjY2VkZWQiLCBpLCBheik7CisrCSAgKHZvaWQpIGZzeXNkZXBfbWFpbCAoem1h aWwsICJFeGVjdXRpb24gc3VjY2VlZGVkIiwgaSwgYXopOworIAl9CisgCisgICAgICAgLyogTm93 IHdlIG1heSBoYXZlIHRvIHV1Y3AgdGhlIG91dHB1dCB0byBzb21lIG90aGVyIG1hY2hpbmUuICAq LwpkaWZmIC0tZ2l0IGEvc3JjcGtncy91dWNwL3BhdGNoZXMvdXVjcC1hbHQtbWlzYy5wYXRjaCBi L3NyY3BrZ3MvdXVjcC9wYXRjaGVzL3V1Y3AtYWx0LW1pc2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NDFiMmUyMTI4MzEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy91dWNwLWFsdC1taXNjLnBhdGNoCkBAIC0wLDAgKzEsMTEx IEBACistLS0gdXVjcC0xLjA3Lm9yaWcvcG9saWN5LmgJMjAwMy0wNS0yOSAwMzowODo0NS4wMDAw MDAwMDAgLTAzMDAKKysrKyB1dWNwLTEuMDcub3JpZy9wb2xpY3kuaAkyMDIwLTAzLTA5IDAzOjQ4 OjU4LjMxNzI5MTM3NSAtMDMwMAorQEAgLTI0MCw4ICsyNDAsOCBAQAorICAgIHRoZSBzZW5kbWFp bCBjaG9pY2UgYmVsb3cuICBPdGhlcndpc2UsIHNlbGVjdCBvbmUgb2YgdGhlIG90aGVyCisgICAg Y2hvaWNlcyBhcyBhcHByb3ByaWF0ZS4gICovCisgI2lmIDEKKy0jZGVmaW5lIE1BSUxfUFJPR1JB TSAiL3Vzci9saWIvc2VuZG1haWwgLXQiCistLyogI2RlZmluZSBNQUlMX1BST0dSQU0gIi91c3Iv c2Jpbi9zZW5kbWFpbCAtdCIgKi8KKysvKiAjZGVmaW5lIE1BSUxfUFJPR1JBTSAiL3Vzci9saWIv c2VuZG1haWwgLXQiICovCisrI2RlZmluZSBNQUlMX1BST0dSQU0gIi91c3Ivc2Jpbi9zZW5kbWFp bCAtdCIgCisgI2RlZmluZSBNQUlMX1BST0dSQU1fVE9fQk9EWSAxCisgI2RlZmluZSBNQUlMX1BS T0dSQU1fU1VCSkVDVF9CT0RZIDEKKyAjZW5kaWYKK0BAIC0zMDIsNyArMzAyLDcgQEAKKyAvKiAj ZGVmaW5lIExPQ0tESVIgIi91c3Ivc3Bvb2wvbG9ja3MiICovCisgLyogI2RlZmluZSBMT0NLRElS ICIvdXNyL3Nwb29sL3V1Y3AvTENLIiAqLworIC8qICNkZWZpbmUgTE9DS0RJUiAiL3Zhci9zcG9v bC9sb2NrIiAqLworLS8qICNkZWZpbmUgTE9DS0RJUiAiL3Zhci9sb2NrIiAqLworKyNkZWZpbmUg TE9DS0RJUiAiL3Zhci9sb2NrL3NlcmlhbCIKKyAKKyAvKiBZb3UgbXVzdCBhbHNvIHNwZWNpZnkg dGhlIGZvcm1hdCBvZiB0aGUgbG9jayBmaWxlcyBieSBzZXR0aW5nCisgICAgZXhhY3RseSBvbmUg b2YgdGhlIGZvbGxvd2luZyBtYWNyb3MgdG8gMS4gIENoZWNrIGFuIGV4aXN0aW5nIGxvY2sKK0BA IC00NjYsOCArNDY2LDggQEAKKyAgICBXaGVuIGxvb2tpbmcgc29tZXRoaW5nIHVwIChhIHN5c3Rl bSwgYSBwb3J0LCBldGMuKSB0aGUgbmV3IHN0eWxlCisgICAgY29uZmlndXJhdGlvbiBmaWxlcyB3 aWxsIGJlIHJlYWQgZmlyc3QsIGZvbGxvd2VkIGJ5IHRoZSBWMgorICAgIGNvbmZpZ3VyYXRpb24g ZmlsZXMsIGZvbGxvd2VkIGJ5IHRoZSBIREIgY29uZmlndXJhdGlvbiBmaWxlcy4gICovCistI2Rl ZmluZSBIQVZFX1YyX0NPTkZJRyAwCistI2RlZmluZSBIQVZFX0hEQl9DT05GSUcgMAorKyNkZWZp bmUgSEFWRV9WMl9DT05GSUcgMQorKyNkZWZpbmUgSEFWRV9IREJfQ09ORklHIDEKKyAKKyAvKiBF eGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIG1hY3JvcyBtdXN0IGJlIHNldCB0byAxLiAgVGhl IGV4YWN0CisgICAgZm9ybWF0IG9mIHRoZSBzcG9vbCBkaXJlY3RvcmllcyBpcyBleHBsYWluZWQg aW4gdW5peC9zcG9vbC5jLgorQEAgLTU3MiwxNiArNTcyLDE2IEBACisgLyogVGhlIG5hbWUgb2Yg dGhlIGRlZmF1bHQgc3Bvb2wgZGlyZWN0b3J5LiAgSWYgSEFWRV9UQVlMT1JfQ09ORklHIGlzCisg ICAgc2V0IHRvIDEsIHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGBgc3Bvb2wnJyBjb21t YW5kIGluIHRoZQorICAgIGNvbmZpZ3VyYXRpb24gZmlsZS4gICovCistI2RlZmluZSBTUE9PTERJ UiAiL3Vzci9zcG9vbC91dWNwIgorLS8qICNkZWZpbmUgU1BPT0xESVIgIi92YXIvc3Bvb2wvdXVj cCIgKi8KKysvKiAjZGVmaW5lIFNQT09MRElSICIvdXNyL3Nwb29sL3V1Y3AiICovCisrI2RlZmlu ZSBTUE9PTERJUiAiL3Zhci9zcG9vbC91dWNwIiAKKyAKKyAvKiBUaGUgbmFtZSBvZiB0aGUgZGVm YXVsdCBwdWJsaWMgZGlyZWN0b3J5LiAgSWYgSEFWRV9UQVlMT1JfQ09ORklHIGlzCisgICAgc2V0 IHRvIDEsIHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGBgcHViZGlyJycgY29tbWFuZCBp biB0aGUKKyAgICBjb25maWd1cmF0aW9uIGZpbGUuICBBbHNvLCBhIHBhcnRpY3VsYXIgc3lzdGVt IG1heSBiZSBnaXZlbiBhCisgICAgc3BlY2lmaWMgcHVibGljIGRpcmVjdG9yeSBieSB1c2luZyB0 aGUgYGBwdWJkaXInJyBjb21tYW5kIGluIHRoZQorICAgIHN5c3RlbSBmaWxlLiAgKi8KKy0jZGVm aW5lIFBVQkRJUiAiL3Vzci9zcG9vbC91dWNwcHVibGljIgorLS8qICNkZWZpbmUgUFVCRElSICIv dmFyL3Nwb29sL3V1Y3BwdWJsaWMiICovCisrLyogI2RlZmluZSBQVUJESVIgIi91c3Ivc3Bvb2wv dXVjcHB1YmxpYyIgKi8KKysjZGVmaW5lIFBVQkRJUiAiL3Zhci9zcG9vbC91dWNwcHVibGljIiAK KyAKKyAvKiBUaGUgZGVmYXVsdCBjb21tYW5kIHBhdGguICBUaGlzIGlzIGEgc3BhY2Ugc2VwYXJh dGVkIGxpc3Qgb2YKKyAgICBkaXJlY3Rvcmllcy4gIFJlbW90ZSBjb21tYW5kIGV4ZWN1dGlvbnMg cmVxdWVzdGVkIGJ5IHV1eCBhcmUgbG9va2VkCitAQCAtNjQ0LDI0ICs2NDQsMjMgQEAKKyAvKiBU aGUgZGVmYXVsdCBsb2cgZmlsZSB3aGVuIHVzaW5nIEhBVkVfVEFZTE9SX0xPR0dJTkcuICBXaGVu IHVzaW5nCisgICAgSEFWRV9UQVlMT1JfQ09ORklHLCB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5 IHRoZSBgYGxvZ2ZpbGUnJworICAgIGNvbW1hbmQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4g ICovCistI2RlZmluZSBMT0dGSUxFICIvdXNyL3Nwb29sL3V1Y3AvTG9nIgorKy8qICNkZWZpbmUg TE9HRklMRSAiL3Vzci9zcG9vbC91dWNwL0xvZyIgKi8KKyAvKiAjZGVmaW5lIExPR0ZJTEUgIi92 YXIvc3Bvb2wvdXVjcC9Mb2ciICovCistLyogI2RlZmluZSBMT0dGSUxFICIvdmFyL2xvZy91dWNw L0xvZyIgKi8KKysjZGVmaW5lIExPR0ZJTEUgIi92YXIvbG9nL3V1Y3AvTG9nIiAKKyAKKyAvKiBU aGUgZGVmYXVsdCBzdGF0aXN0aWNzIGZpbGUgd2hlbiB1c2luZyBIQVZFX1RBWUxPUl9MT0dHSU5H LiAgV2hlbgorICAgIHVzaW5nIEhBVkVfVEFZTE9SX0NPTkZJRywgdGhpcyBtYXkgYmUgb3ZlcnJp ZGRlbiBieSB0aGUKKyAgICBgYHN0YXRmaWxlJycgY29tbWFuZCBpbiB0aGUgY29uZmlndXJhdGlv biBmaWxlLiAgKi8KKy0jZGVmaW5lIFNUQVRGSUxFICIvdXNyL3Nwb29sL3V1Y3AvU3RhdHMiCisr LyogI2RlZmluZSBTVEFURklMRSAiL3Vzci9zcG9vbC91dWNwL1N0YXRzIiAqLworIC8qICNkZWZp bmUgU1RBVEZJTEUgIi92YXIvc3Bvb2wvdXVjcC9TdGF0cyIgKi8KKy0vKiAjZGVmaW5lIFNUQVRG SUxFICIvdmFyL2xvZy91dWNwL1N0YXRzIiAqLworKyNkZWZpbmUgU1RBVEZJTEUgIi92YXIvbG9n L3V1Y3AvU3RhdHMiIAorIAorIC8qIFRoZSBkZWZhdWx0IGRlYnVnZ2luZyBmaWxlIHdoZW4gdXNp bmcgSEFWRV9UQVlMT1JfTE9HR0lORy4gIFdoZW4KKyAgICB1c2luZyBIQVZFX1RBWUxPUl9DT05G SUcsIHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlCisgICAgYGBkZWJ1Z2ZpbGUnJyBjb21t YW5kIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuICAqLworLSNkZWZpbmUgREVCVUdGSUxFICIv dXNyL3Nwb29sL3V1Y3AvRGVidWciCisrLyogI2RlZmluZSBERUJVR0ZJTEUgIi91c3Ivc3Bvb2wv dXVjcC9EZWJ1ZyIgKi8KKyAvKiAjZGVmaW5lIERFQlVHRklMRSAiL3Zhci9zcG9vbC91dWNwL0Rl YnVnIiAqLworLS8qICNkZWZpbmUgREVCVUdGSUxFICIvdmFyL2xvZy91dWNwL0RlYnVnIiAqLwor LQorKyNkZWZpbmUgREVCVUdGSUxFICIvdmFyL2xvZy91dWNwL0RlYnVnIiAKKyAjZW5kaWYgLyog SEFWRV9UQVlMT1JfTE9HR0lORyAqLworIAorICNpZiBIQVZFX1YyX0xPR0dJTkcKK0BAIC02Njks MTcgKzY2OCwyMyBAQAorIC8qIFRoZSBkZWZhdWx0IGxvZyBmaWxlIHdoZW4gdXNpbmcgSEFWRV9W Ml9MT0dHSU5HLiAgV2hlbiB1c2luZworICAgIEhBVkVfVEFZTE9SX0NPTkZJRywgdGhpcyBtYXkg YmUgb3ZlcnJpZGRlbiBieSB0aGUgYGBsb2dmaWxlJycKKyAgICBjb21tYW5kIGluIHRoZSBjb25m aWd1cmF0aW9uIGZpbGUuICAqLworLSNkZWZpbmUgTE9HRklMRSAiL3Vzci9zcG9vbC91dWNwL0xP R0ZJTEUiCisrIC8qICNkZWZpbmUgTE9HRklMRSAiL3Vzci9zcG9vbC91dWNwL0xvZyIgKi8KKysg LyogI2RlZmluZSBMT0dGSUxFICIvdmFyL3Nwb29sL3V1Y3AvTG9nIiAqLworKyNkZWZpbmUgTE9H RklMRSAiL3Zhci9sb2cvdXVjcC9Mb2ciCisgCisgLyogVGhlIGRlZmF1bHQgc3RhdGlzdGljcyBm aWxlIHdoZW4gdXNpbmcgSEFWRV9WMl9MT0dHSU5HLiAgV2hlbiB1c2luZworICAgIEhBVkVfVEFZ TE9SX0NPTkZJRywgdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSB0aGUgYGBzdGF0ZmlsZScnCisg ICAgY29tbWFuZCBpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLiAgKi8KKy0jZGVmaW5lIFNUQVRG SUxFICIvdXNyL3Nwb29sL3V1Y3AvU1lTTE9HIgorKyAvKiAjZGVmaW5lIFNUQVRGSUxFICIvdXNy L3Nwb29sL3V1Y3AvU3RhdHMiICovCisrIC8qICNkZWZpbmUgU1RBVEZJTEUgIi92YXIvc3Bvb2wv dXVjcC9TdGF0cyIgKi8KKysjZGVmaW5lIFNUQVRGSUxFICIvdmFyL2xvZy91dWNwL1N0YXRzIgor IAorIC8qIFRoZSBkZWZhdWx0IGRlYnVnZ2luZyBmaWxlIHdoZW4gdXNpbmcgSEFWRV9WMl9MT0dH SU5HLiAgV2hlbiB1c2luZworICAgIEhBVkVfVEFZTE9SX0NPTkZJRywgdGhpcyBtYXkgYmUgb3Zl cnJpZGRlbiBieSB0aGUgYGBkZWJ1Z2ZpbGUnJworICAgIGNvbW1hbmQgaW4gdGhlIGNvbmZpZ3Vy YXRpb24gZmlsZS4gICovCistI2RlZmluZSBERUJVR0ZJTEUgIi91c3Ivc3Bvb2wvdXVjcC9ERUJV RyIKKysgLyogI2RlZmluZSBERUJVR0ZJTEUgIi91c3Ivc3Bvb2wvdXVjcC9EZWJ1ZyIgKi8KKysg LyogI2RlZmluZSBERUJVR0ZJTEUgIi92YXIvc3Bvb2wvdXVjcC9EZWJ1ZyIgKi8KKysjZGVmaW5l IERFQlVHRklMRSAiL3Zhci9sb2cvdXVjcC9EZWJ1ZyIKKyAKKyAjZW5kaWYgLyogSEFWRV9WMl9M T0dHSU5HICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy91dWNwLW9yZy5wYXRj aCBiL3NyY3BrZ3MvdXVjcC9wYXRjaGVzL3V1Y3Atb3JnLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDYyOTQzNDJjZDc3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy91dWNwL3BhdGNoZXMvdXVjcC1vcmcucGF0Y2gKQEAgLTAsMCArMSw4ODMzIEBACitE ZXNjcmlwdGlvbjogQ2hhbmdlcyBmcm9tIHByZXZpb3VzIHZlcnNpb24KKyBUaGlzIHBhdGNoIGNv bnRhaW5zIGFsbCBjaGFuZ2VzIGZyb20gcHJldmlvdXMgdmVyc2lvbnMuCitBdXRob3I6IFRob3Jz dGVuIEFsdGVob2x6IDxkZWJpYW5AYWx0ZWhvbHouZGU+CistLS0gdXVjcC0xLjA3Lm9yaWcvdXVj aWNvLmMKKysrKyB1dWNwLTEuMDcvdXVjaWNvLmMKK0BAIC0xMjUsNiArMTI1LDkgQEAgc3RydWN0 IHNwYXNzCisgICBzdHJ1Y3Qgc2Nvbm5lY3Rpb24gKnFjb25uOworIH07CisgCisrLyogbWluLiBn cmFkZSBzZXQgb24gY29tbWFuZGxpbmUgKi8KKytzdGF0aWMgY2hhciBjbWRsZ3JhZGUgPSAnXDAn OworKworIC8qIExvY2FsIGZ1bmN0aW9ucy4gICovCisgCisgc3RhdGljIHZvaWQgdXVzYWdlIFAo KHZvaWQpKTsKK0BAIC0xNzUsNiArMTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24g YXNMb25nb3B0c1tdCisgICB7ICJub2RldGFjaCIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnRCcgfSwK KyAgIHsgImxvb3AiLCBub19hcmd1bWVudCwgTlVMTCwgJ2UnIH0sCisgICB7ICJmb3JjZSIsIG5v X2FyZ3VtZW50LCBOVUxMLCAnZid9LAorKyAgeyAiZ3JhZGUiLCByZXF1aXJlZF9hcmd1bWVudCwg TlVMTCwgJ2cnfSwKKyAgIHsgInN0ZGluIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdpJyB9 LAorICAgeyAicHJvbXB0Iiwgbm9fYXJndW1lbnQsIE5VTEwsICdsJyB9LAorICAgeyAicG9ydCIs IHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAncCcgfSwKK0BAIC0yNDksOSArMjUzLDkgQEAgbWFp biAoYXJnYywgYXJndikKKyAgICAgKyt6UHJvZ3JhbTsKKyAKKyAjaWYgQ09IRVJFTlRfQ19PUFRJ T04KKy0gIHpvcHRzID0gImM6Q0RlZmk6STpscDpxcjpzOlM6dTp4Olg6dnd6IjsKKysgIHpvcHRz ID0gImM6Q0RlZmc6aTpJOmxwOnFyOnM6Uzp1Ong6WDp2d3oiOworICNlbHNlCistICB6b3B0cyA9 ICJjQ0RlZmk6STpscDpxcjpzOlM6dTp4Olg6dnd6IjsKKysgIHpvcHRzID0gImNDRGVmZzppOkk6 bHA6cXI6czpTOnU6eDpYOnZ3eiI7CisgI2VuZGlmCisgCisgICB3aGlsZSAoKGlvcHQgPSBnZXRv cHRfbG9uZyAoYXJnYywgYXJndiwgem9wdHMsCitAQCAtMjkyLDYgKzI5NiwxNCBAQCBtYWluIChh cmdjLCBhcmd2KQorIAkgICAgIGZhaWxlZCBjYWxsLiAgKi8KKyAJICBmZm9yY2UgPSBUUlVFOwor IAkgIGJyZWFrOworKwkKKysJY2FzZSAnZyc6CisrCSAgLyogRm9yY2UgYSBncmFkZSAqLworKwkg IGlmIChpc2FscGhhKG9wdGFyZ1swXSkpCisrCSAgICAgY21kbGdyYWRlID0gb3B0YXJnWzBdOwor KwkgIGVsc2UKKysJICAgICBmcHJpbnRmIChzdGRlcnIsICIlczogaW52YWxpZCBncmFkZSBcbiIs IHpQcm9ncmFtKTsKKysJICBicmVhazsKKyAKKyAJY2FzZSAnaSc6CisgCSAgLyogVHlwZSBvZiBw b3J0IHRvIHVzZSBmb3Igc3RhbmRhcmQgaW5wdXQuICBPbmx5IFRMSSBpcworQEAgLTc5Niw2ICs4 MDgsNyBAQCB1aGVscCAoKQorICAgcHJpbnRmICgiVXNhZ2U6ICVzIFtvcHRpb25zXVxuIiwgelBy b2dyYW0pOworICAgcHJpbnRmICgiIC1zLC1TLC0tc3lzdGVtIHN5c3RlbTogQ2FsbCBzeXN0ZW0g KC1TIGltcGxpZXMgLWYpXG4iKTsKKyAgIHByaW50ZiAoIiAtZiwtLWZvcmNlOiBGb3JjZSBjYWxs IGRlc3BpdGUgc3lzdGVtIHN0YXR1c1xuIik7CisrICBwcmludGYgKCIgLWcsLS1ncmFkZTogbGlt aXQgb3V0Z29pbmcgY2FsbCB0byBhIGdpdmVuIGdyYWRlXG4iKTsKKyAgIHByaW50ZiAoIiAtciBz dGF0ZTogMSBmb3IgbWFzdGVyLCAwIGZvciBzbGF2ZSAoZGVmYXVsdClcbiIpOworICAgcHJpbnRm ICgiIC0tbWFzdGVyOiBBY3QgYXMgbWFzdGVyXG4iKTsKKyAgIHByaW50ZiAoIiAtLXNsYXZlOiBB Y3QgYXMgc2xhdmUgKGRlZmF1bHQpXG4iKTsKK0BAIC0xMzY5LDEyICsxMzgyLDE4IEBAIGZkb19j YWxsIChxZGFlbW9uLCBxc3RhdCwgcWRpYWxlciwgcGZjYWwKKyAgICAgYm9vbGVhbiBmcmV0Owor IAorICAgICAvKiBEZXRlcm1pbmUgdGhlIGdyYWRlIHdlIHNob3VsZCByZXF1ZXN0IG9mIHRoZSBv dGhlciBzeXN0ZW0uICBBCistICAgICAgICdcMCcgbWVhbnMgdGhhdCBubyByZXN0cmljdGlvbnMg aGF2ZSBiZWVuIG1hZGUuICAqLworLSAgICBpZiAoISBmdGltZXNwYW5fbWF0Y2ggKHFzeXMtPnV1 Y29uZl9xY2FsbHRpbWVncmFkZSwgJml2YWwsCistCQkJICAgKGludCAqKSBOVUxMKSkKKy0gICAg ICBiZ3JhZGUgPSAnXDAnOworKyAgICAgICAnXDAnIG1lYW5zIHRoYXQgbm8gcmVzdHJpY3Rpb25z IGhhdmUgYmVlbiBtYWRlLgorKyAgICAgICBJZiBhIGdyYWRlIGlzIHNldCBvbiB0aGUgY29tbWFu ZCBsaW5lLCB0aGUgY2FsbHRpbWVncmFkZS12YWx1ZQorKyAgICAgICBpcyBvdmVyd3JpdHRlbi4g ICovCisrICAgICAgIAorKyAgICBpZiAoY21kbGdyYWRlICE9ICdcMCcpCisrICAgICAgYmdyYWRl ID0gY21kbGdyYWRlOworICAgICBlbHNlCistICAgICAgYmdyYWRlID0gKGNoYXIpIGl2YWw7Cisr ICAgICAgaWYgKCEgZnRpbWVzcGFuX21hdGNoIChxc3lzLT51dWNvbmZfcWNhbGx0aW1lZ3JhZGUs ICZpdmFsLAorKwkJCSAgIChpbnQgKikgTlVMTCkpCisrICAgICAgICAgYmdyYWRlID0gJ1wwJzsK KysgICAgICBlbHNlCisrICAgICAgICAgYmdyYWRlID0gKGNoYXIpIGl2YWw7CisgCisgICAgIC8q IERldGVybWluZSB0aGUgbmFtZSB3ZSB3aWxsIGNhbGwgb3Vyc2VsdmVzLiAgKi8KKyAgICAgaWYg KHFzeXMtPnV1Y29uZl96bG9jYWxuYW1lICE9IE5VTEwpCistLS0gdXVjcC0xLjA3Lm9yaWcvdXVj cC5pbmZvLTIKKysrKyB1dWNwLTEuMDcvdXVjcC5pbmZvLTIKK0BAIC0xLDQgKzEsNiBAQAorLVRo aXMgaXMgdXVjcC5pbmZvLCBwcm9kdWNlZCBieSBtYWtlaW5mbyB2ZXJzaW9uIDQuMSBmcm9tIHV1 Y3AudGV4aS4KKytUaGlzIGlzIHV1Y3AuaW5mbywgcHJvZHVjZWQgYnkgbWFrZWluZm8gdmVyc2lv biA0LjExIGZyb20gdXVjcC50ZXhpLgorKworK0lORk8tRElSLVNFQ1RJT04gTmV0d29ya2luZyB0 b29scworIAorIFNUQVJULUlORk8tRElSLUVOVFJZCisgKiBVVUNQOiAodXVjcCkuICAgICAgICAg ICAgICAgICBUcmFuc2ZlciBtYWlsIGFuZCBuZXdzIGFjcm9zcyBwaG9uZSBsaW5lcy4KK0BAIC0y NSwxMjQ3ICsyNywxMTE5IEBAIHZlcnNpb25zLCBleGNlcHQgdGhhdCB0aGUgc2VjdGlvbiBlbnRp dGwKKyBhIHRyYW5zbGF0aW9uIGFwcHJvdmVkIGJ5IHRoZSBhdXRob3IgaW5zdGVhZCBvZiBpbiB0 aGUgb3JpZ2luYWwgRW5nbGlzaC4KKyAKKyAfCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogSW52 b2tpbmcgY3UsICBOZXh0OiBJbnZva2luZyB1dWNpY28sICBQcmV2OiBJbnZva2luZyB1dXBpY2ss ICBVcDogSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKy0KKy1JbnZva2luZyBjdQorLT09PT09 PT09PT09CistCistKiBNZW51OgorLQorLSogY3UgRGVzY3JpcHRpb246OiAgICAgICAgICAgICAg RGVzY3JpcHRpb24gb2YgY3UKKy0qIGN1IENvbW1hbmRzOjogICAgICAgICAgICAgICAgIENvbW1h bmRzIFN1cHBvcnRlZCBieSBjdQorLSogY3UgVmFyaWFibGVzOjogICAgICAgICAgICAgICAgVmFy aWFibGVzIFN1cHBvcnRlZCBieSBjdQorLSogY3UgT3B0aW9uczo6ICAgICAgICAgICAgICAgICAg T3B0aW9ucyBTdXBwb3J0ZWQgYnkgY3UKKy0KKy0fCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTog Y3UgRGVzY3JpcHRpb24sICBOZXh0OiBjdSBDb21tYW5kcywgIFByZXY6IEludm9raW5nIGN1LCAg VXA6IEludm9raW5nIGN1CistCistY3UgRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tLS0tLQorLQor LSAgICAgY3UgW29wdGlvbnNdIFtzeXN0ZW0gfCBwaG9uZSB8ICJkaXIiXQorLQorLSAgIFRoZSBg Y3UnIHByb2dyYW0gaXMgdXNlZCB0byBjYWxsIHVwIGFub3RoZXIgc3lzdGVtIGFuZCBhY3QgYXMg YSBkaWFsCistaW4gdGVybWluYWwuICBJdCBjYW4gYWxzbyBkbyBzaW1wbGUgZmlsZSB0cmFuc2Zl cnMgd2l0aCBubyBlcnJvcgorLWNoZWNraW5nLgorLQorLSAgIFRoZSBgY3UnIHByb2dyYW0gdGFr ZXMgYSBzaW5nbGUgbm9uLW9wdGlvbiBhcmd1bWVudC4KKy0KKy0gICBJZiB0aGUgYXJndW1lbnQg aXMgdGhlIHN0cmluZyBgZGlyJyBjdSB3aWxsIG1ha2UgYSBkaXJlY3QgY29ubmVjdGlvbgorLXRv IHRoZSBwb3J0LiAgVGhpcyBtYXkgb25seSBiZSB1c2VkIGJ5IHVzZXJzIHdpdGggd3JpdGUgYWNj ZXNzIHRvIHRoZQorLXBvcnQsIGFzIGl0IHBlcm1pdHMgcmVwcm9ncmFtbWluZyB0aGUgbW9kZW0u CistCistICAgT3RoZXJ3aXNlLCBpZiB0aGUgYXJndW1lbnQgYmVnaW5zIHdpdGggYSBkaWdpdCwg aXQgaXMgdGFrZW4gdG8gYmUgYQorLXBob25lIG51bWJlciB0byBjYWxsLgorLQorLSAgIE90aGVy d2lzZSwgaXQgaXMgdGFrZW4gdG8gYmUgdGhlIG5hbWUgb2YgYSBzeXN0ZW0gdG8gY2FsbC4KKy0K Ky0gICBUaGUgYC16JyBvciBgLS1zeXN0ZW0nIG9wdGlvbnMgbWF5IGJlIHVzZWQgdG8gbmFtZSBh IHN5c3RlbQorLWJlZ2lubmluZyB3aXRoIGEgZGlnaXQsIGFuZCB0aGUgYC1jJyBvciBgLS1waG9u ZScgb3B0aW9ucyBtYXkgYmUgdXNlZAorLXRvIG5hbWUgYSBwaG9uZSBudW1iZXIgdGhhdCBkb2Vz IG5vdCBiZWdpbiB3aXRoIGEgZGlnaXQuCistCistICAgVGhlIGBjdScgcHJvZ3JhbSBsb2NhdGVz IGEgcG9ydCB0byB1c2UgaW4gdGhlIFVVQ1AgY29uZmlndXJhdGlvbgorLWZpbGVzLiAgSWYgYSBz aW1wbGUgc3lzdGVtIG5hbWUgaXMgZ2l2ZW4sIGl0IHdpbGwgc2VsZWN0IGEgcG9ydAorLWFwcHJv cHJpYXRlIGZvciB0aGF0IHN5c3RlbS4gIFRoZSBgLXAnLCBgLS1wb3J0JywgYC1sJywgYC0tbGlu ZScsIGAtcycsCistYW5kIGAtLXNwZWVkJyBvcHRpb25zIG1heSBiZSB1c2VkIHRvIGNvbnRyb2wg dGhlIHBvcnQgc2VsZWN0aW9uLgorLQorLSAgIFdoZW4gYSBjb25uZWN0aW9uIGlzIG1hZGUgdG8g dGhlIHJlbW90ZSBzeXN0ZW0sIGBjdScgZm9ya3MgaW50byB0d28KKy1wcm9jZXNzZXMuICBPbmUg cmVhZHMgZnJvbSB0aGUgcG9ydCBhbmQgd3JpdGVzIHRvIHRoZSB0ZXJtaW5hbCwgd2hpbGUKKy10 aGUgb3RoZXIgcmVhZHMgZnJvbSB0aGUgdGVybWluYWwgYW5kIHdyaXRlcyB0byB0aGUgcG9ydC4K Ky0KKy0fCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogY3UgQ29tbWFuZHMsICBOZXh0OiBjdSBW YXJpYWJsZXMsICBQcmV2OiBjdSBEZXNjcmlwdGlvbiwgIFVwOiBJbnZva2luZyBjdQorLQorLWN1 IENvbW1hbmRzCistLS0tLS0tLS0tLS0KKy0KKy0gICBUaGUgYGN1JyBwcm9ncmFtIHByb3ZpZGVz IHNldmVyYWwgY29tbWFuZHMgdGhhdCBtYXkgYmUgdXNlZCBkdXJpbmcKKy10aGUgY29udmVyc2F0 aW9uLiAgVGhlIGNvbW1hbmRzIGFsbCBiZWdpbiB3aXRoIGFuIGVzY2FwZSBjaGFyYWN0ZXIsCist d2hpY2ggYnkgZGVmYXVsdCBpcyBgficgKHRpbGRlKS4gIFRoZSBlc2NhcGUgY2hhcmFjdGVyIGlz IG9ubHkKKy1yZWNvZ25pemVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lLiAgVG8gc2VuZCBh biBlc2NhcGUgY2hhcmFjdGVyIHRvCistdGhlIHJlbW90ZSBzeXN0ZW0gYXQgdGhlIHN0YXJ0IG9m IGEgbGluZSwgaXQgbXVzdCBiZSBlbnRlcmVkIHR3aWNlLiAgQWxsCistY29tbWFuZHMgYXJlIGVp dGhlciBhIHNpbmdsZSBjaGFyYWN0ZXIgb3IgYSB3b3JkIGJlZ2lubmluZyB3aXRoIGAlJworLShw ZXJjZW50IHNpZ24pLgorLQorLSAgIFRoZSBgY3UnIHByb2dyYW0gcmVjb2duaXplcyB0aGUgZm9s bG93aW5nIGNvbW1hbmRzLgorLQorLWB+LicKKy0gICAgIFRlcm1pbmF0ZSB0aGUgY29udmVyc2F0 aW9uLgorLQorLWB+ISBjb21tYW5kJworLSAgICAgUnVuIGNvbW1hbmQgaW4gYSBzaGVsbC4gIElm IGNvbW1hbmQgaXMgZW1wdHksIHN0YXJ0cyB1cCBhIHNoZWxsLgorLQorLWB+JCBjb21tYW5kJwor LSAgICAgUnVuIGNvbW1hbmQsIHNlbmRpbmcgdGhlIHN0YW5kYXJkIG91dHB1dCB0byB0aGUgcmVt b3RlIHN5c3RlbS4KKy0KKy1gfnwgY29tbWFuZCcKKy0gICAgIFJ1biBjb21tYW5kLCB0YWtpbmcg dGhlIHN0YW5kYXJkIGlucHV0IGZyb20gdGhlIHJlbW90ZSBzeXN0ZW0uCistCistYH4rIGNvbW1h bmQnCistICAgICBSdW4gY29tbWFuZCwgdGFraW5nIHRoZSBzdGFuZGFyZCBpbnB1dCBmcm9tIHRo ZSByZW1vdGUgc3lzdGVtIGFuZAorLSAgICAgc2VuZGluZyB0aGUgc3RhbmRhcmQgb3V0cHV0IHRv IHRoZSByZW1vdGUgc3lzdGVtLgorLQorLWB+IywgfiVicmVhaycKKy0gICAgIFNlbmQgYSBicmVh ayBzaWduYWwsIGlmIHBvc3NpYmxlLgorLQorLWB+YyBkaXJlY3RvcnksIH4lY2QgZGlyZWN0b3J5 JworLSAgICAgQ2hhbmdlIHRoZSBsb2NhbCBkaXJlY3RvcnkuCistCistYH4+IGZpbGUnCistICAg ICBTZW5kIGEgZmlsZSB0byB0aGUgcmVtb3RlIHN5c3RlbS4gIFRoaXMganVzdCBkdW1wcyB0aGUg ZmlsZSBvdmVyCistICAgICB0aGUgY29tbXVuaWNhdGlvbiBsaW5lLiAgSXQgaXMgYXNzdW1lZCB0 aGF0IHRoZSByZW1vdGUgc3lzdGVtIGlzCistICAgICBleHBlY3RpbmcgaXQuCistCistYH48Jwor LSAgICAgUmVjZWl2ZSBhIGZpbGUgZnJvbSB0aGUgcmVtb3RlIHN5c3RlbS4gIFRoaXMgcHJvbXB0 cyBmb3IgdGhlIGxvY2FsCistICAgICBmaWxlIG5hbWUgYW5kIGZvciB0aGUgcmVtb3RlIGNvbW1h bmQgdG8gZXhlY3V0ZSB0byBiZWdpbiB0aGUgZmlsZQorLSAgICAgdHJhbnNmZXIuICBJdCBjb250 aW51ZXMgYWNjZXB0aW5nIGRhdGEgdW50aWwgdGhlIGNvbnRlbnRzIG9mIHRoZQorLSAgICAgYGVv ZnJlYWQnIHZhcmlhYmxlIGFyZSBzZWVuLgorLQorLWB+cCBmcm9tIHRvJworLWB+JXB1dCBmcm9t IHRvJworLSAgICAgU2VuZCBhIGZpbGUgdG8gYSByZW1vdGUgVW5peCBzeXN0ZW0uICBUaGlzIHJ1 bnMgdGhlIGFwcHJvcHJpYXRlCistICAgICBjb21tYW5kcyBvbiB0aGUgcmVtb3RlIHN5c3RlbS4K Ky0KKy1gfnQgZnJvbSB0bycKKy1gfiV0YWtlIGZyb20gdG8nCistICAgICBSZXRyaWV2ZSBhIGZp bGUgZnJvbSBhIHJlbW90ZSBVbml4IHN5c3RlbS4gIFRoaXMgcnVucyB0aGUKKy0gICAgIGFwcHJv cHJpYXRlIGNvbW1hbmRzIG9uIHRoZSByZW1vdGUgc3lzdGVtLgorLQorLWB+cyB2YXJpYWJsZSB2 YWx1ZScKKy0gICAgIFNldCBhIGBjdScgdmFyaWFibGUgdG8gdGhlIGdpdmVuIHZhbHVlLiAgSWYg dmFsdWUgaXMgbm90IGdpdmVuLCB0aGUKKy0gICAgIHZhcmlhYmxlIGlzIHNldCB0byBgdHJ1ZScu CistCistYH4hIHZhcmlhYmxlJworLSAgICAgU2V0IGEgYGN1JyB2YXJpYWJsZSB0byBgZmFsc2Un LgorLQorLWB+eicKKy0gICAgIFN1c3BlbmQgdGhlIGN1IHNlc3Npb24uICBUaGlzIGlzIG9ubHkg c3VwcG9ydGVkIG9uIHNvbWUgc3lzdGVtcy4KKy0gICAgIE9uIHN5c3RlbXMgZm9yIHdoaWNoIGBe WicgbWF5IGJlIHVzZWQgdG8gc3VzcGVuZCBhIGpvYiwgYH5eWicgd2lsbAorLSAgICAgYWxzbyBz dXNwZW5kIHRoZSBzZXNzaW9uLgorLQorLWB+JW5vc3RvcCcKKy0gICAgIFR1cm4gb2ZmIFhPTi9Y T0ZGIGhhbmRsaW5nLgorLQorLWB+JXN0b3AnCistICAgICBUdXJuIG9uIFhPTi9YT0ZGIGhhbmRs aW5nLgorLQorLWB+dicKKy0gICAgIExpc3QgYWxsIHRoZSB2YXJpYWJsZXMgYW5kIHRoZWlyIHZh bHVlcy4KKy0KKy1gfj8nCistICAgICBMaXN0IGFsbCBjb21tYW5kcy4KKy0KKy0fCistRmlsZTog dXVjcC5pbmZvLCAgTm9kZTogY3UgVmFyaWFibGVzLCAgTmV4dDogY3UgT3B0aW9ucywgIFByZXY6 IGN1IENvbW1hbmRzLCAgVXA6IEludm9raW5nIGN1CistCistY3UgVmFyaWFibGVzCistLS0tLS0t LS0tLS0tCistCistICAgVGhlIGBjdScgcHJvZ3JhbSBhbHNvIHN1cHBvcnRzIHNldmVyYWwgdmFy aWFibGVzLiAgVGhleSBtYXkgYmUKKy1saXN0ZWQgd2l0aCB0aGUgYH52JyBjb21tYW5kLCBhbmQg c2V0IHdpdGggdGhlIGB+cycgb3IgYH4hJyAgY29tbWFuZHMuCistCistYGVzY2FwZScKKy0gICAg IFRoZSBlc2NhcGUgY2hhcmFjdGVyLiAgVGhlIGRlZmF1bHQgaXMgYH4nICh0aWxkZSkuCistCist YGRlbGF5JworLSAgICAgSWYgdGhpcyB2YXJpYWJsZSBpcyB0cnVlLCBgY3UnIHdpbGwgZGVsYXkg Zm9yIGEgc2Vjb25kLCBhZnRlcgorLSAgICAgcmVjb2duaXppbmcgdGhlIGVzY2FwZSBjaGFyYWN0 ZXIsIGJlZm9yZSBwcmludGluZyB0aGUgbmFtZSBvZiB0aGUKKy0gICAgIGxvY2FsIHN5c3RlbS4g IFRoZSBkZWZhdWx0IGlzIHRydWUuCistCistYGVvbCcKKy0gICAgIFRoZSBsaXN0IG9mIGNoYXJh Y3RlcnMgd2hpY2ggYXJlIGNvbnNpZGVyZWQgdG8gZmluaXNoIGEgbGluZS4gIFRoZQorLSAgICAg ZXNjYXBlIGNoYXJhY3RlciBpcyBvbmx5IHJlY29nbml6ZWQgYWZ0ZXIgb25lIG9mIHRoZXNlIGlz IHNlZW4uCistICAgICBUaGUgZGVmYXVsdCBpcyBgY2FycmlhZ2UgcmV0dXJuJywgYF5VJywgYF5D JywgYF5PJywgYF5EJywgYF5TJywKKy0gICAgIGBeUScsIGBeUicuCistCistYGJpbmFyeScKKy0g ICAgIFdoZXRoZXIgdG8gdHJhbnNmZXIgYmluYXJ5IGRhdGEgd2hlbiBzZW5kaW5nIGEgZmlsZS4g IElmIHRoaXMgaXMKKy0gICAgIGZhbHNlLCB0aGVuIG5ld2xpbmVzIGluIHRoZSBmaWxlIGJlaW5n IHNlbnQgYXJlIGNvbnZlcnRlZCB0bworLSAgICAgY2FycmlhZ2UgcmV0dXJucy4gIFRoZSBkZWZh dWx0IGlzIGZhbHNlLgorLQorLWBiaW5hcnktcHJlZml4JworLSAgICAgQSBzdHJpbmcgdXNlZCBi ZWZvcmUgc2VuZGluZyBhIGJpbmFyeSBjaGFyYWN0ZXIgaW4gYSBmaWxlCistICAgICB0cmFuc2Zl ciwgaWYgdGhlIGBiaW5hcnknIHZhcmlhYmxlIGlzIHRydWUuICBUaGUgZGVmYXVsdCBpcyBgXlYn LgorLQorLWBlY2hvLWNoZWNrJworLSAgICAgV2hldGhlciB0byBjaGVjayBmaWxlIHRyYW5zZmVy cyBieSBleGFtaW5pbmcgd2hhdCB0aGUgcmVtb3RlIHN5c3RlbQorLSAgICAgZWNob2VzIGJhY2su ICBUaGlzIHByb2JhYmx5IGRvZXNuJ3Qgd29yayB2ZXJ5IHdlbGwuICBUaGUgZGVmYXVsdCBpcwor LSAgICAgZmFsc2UuCistCistYGVjaG9ubCcKKy0gICAgIFRoZSBjaGFyYWN0ZXIgdG8gbG9vayBm b3IgYWZ0ZXIgc2VuZGluZyBlYWNoIGxpbmUgaW4gYSBmaWxlLiAgVGhlCistICAgICBkZWZhdWx0 IGlzIGNhcnJpYWdlIHJldHVybi4KKy0KKy1gdGltZW91dCcKKy0gICAgIFRoZSB0aW1lb3V0IHRv IHVzZSwgaW4gc2Vjb25kcywgd2hlbiBsb29raW5nIGZvciBhIGNoYXJhY3RlciwKKy0gICAgIGVp dGhlciB3aGVuIGRvaW5nIGVjaG8gY2hlY2tpbmcgb3Igd2hlbiBsb29raW5nIGZvciB0aGUgYGVj aG9ubCcKKy0gICAgIGNoYXJhY3Rlci4gIFRoZSBkZWZhdWx0IGlzIDMwLgorLQorLWBraWxsJwor LSAgICAgVGhlIGNoYXJhY3RlciB0byB1c2UgZGVsZXRlIGEgbGluZSBpZiB0aGUgZWNobyBjaGVj ayBmYWlscy4gIFRoZQorLSAgICAgZGVmYXVsdCBpcyBgXlUnLgorLQorLWByZXNlbmQnCistICAg ICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlc2VuZCBhIGxpbmUgaWYgdGhlIGVjaG8gY2hlY2sg Y29udGludWVzIHRvCistICAgICBmYWlsLiAgVGhlIGRlZmF1bHQgaXMgMTAuCistCistYGVvZndy aXRlJworLSAgICAgVGhlIHN0cmluZyB0byB3cml0ZSBhZnRlciBzZW5kaW5nIGEgZmlsZSB3aXRo IHRoZSBgfj4nIGNvbW1hbmQuCistICAgICBUaGUgZGVmYXVsdCBpcyBgXkQnLgorLQorLWBlb2Zy ZWFkJworLSAgICAgVGhlIHN0cmluZyB0byBsb29rIGZvciB3aGVuIHJlY2VpdmluZyBhIGZpbGUg d2l0aCB0aGUgYCB+PCcKKy0gICAgIGNvbW1hbmQuICBUaGUgZGVmYXVsdCBpcyBgJCcsIHdoaWNo IGlzIGludGVuZGVkIHRvIGJlIGEgdHlwaWNhbAorLSAgICAgc2hlbGwgcHJvbXB0LgorLQorLWB2 ZXJib3NlJworLSAgICAgV2hldGhlciB0byBwcmludCBhY2N1bXVsYXRlZCBpbmZvcm1hdGlvbiBk dXJpbmcgYSBmaWxlIHRyYW5zZmVyLgorLSAgICAgVGhlIGRlZmF1bHQgaXMgdHJ1ZS4KKy0KKy0f CistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogY3UgT3B0aW9ucywgIFByZXY6IGN1IFZhcmlhYmxl cywgIFVwOiBJbnZva2luZyBjdQorLQorLWN1IE9wdGlvbnMKKy0tLS0tLS0tLS0tCistCistICAg VGhlIGZvbGxvd2luZyBvcHRpb25zIG1heSBiZSBnaXZlbiB0byBgY3UnLgorLQorLWAtZScKKy1g LS1wYXJpdHk9ZXZlbicKKy0gICAgIFVzZSBldmVuIHBhcml0eS4KKy0KKy1gLW8nCistYC0tcGFy aXR5PW9kZCcKKy0gICAgIFVzZSBvZGQgcGFyaXR5LgorLQorLWAtLXBhcml0eT1ub25lJworLSAg ICAgVXNlIG5vIHBhcml0eS4gIE5vIHBhcml0eSBpcyBhbHNvIHVzZWQgaWYgYm90aCBgLWUnIGFu ZCBgLW8nIGFyZQorLSAgICAgZ2l2ZW4uCistCistYC1oJworLWAtLWhhbGZkdXBsZXgnCistICAg ICBFY2hvIGNoYXJhY3RlcnMgbG9jYWxseSAoaGFsZi1kdXBsZXggbW9kZSkuCistCistYC0tbm9z dG9wJworLSAgICAgVHVybiBvZmYgWE9OL1hPRkYgaGFuZGxpbmcgKGl0IGlzIG9uIGJ5IGRlZmF1 bHQpLgorLQorLWAtRSBjaGFyJworLWAtLWVzY2FwZSBjaGFyJworLSAgICAgU2V0IHRoZSBlc2Nh cGUgY2hhcmFjdGVyLiAgSW5pdGlhbGx5IGB+JyAodGlsZGUpLiAgVG8gZWxpbWluYXRlIHRoZQor LSAgICAgZXNjYXBlIGNoYXJhY3RlciwgdXNlIGAtRSAnJycuCistCistYC16IHN5c3RlbScKKy1g LS1zeXN0ZW0gc3lzdGVtJworLSAgICAgVGhlIHN5c3RlbSB0byBjYWxsLgorLQorLWAtYyBwaG9u ZS1udW1iZXInCistYC0tcGhvbmUgcGhvbmUtbnVtYmVyJworLSAgICAgVGhlIHBob25lIG51bWJl ciB0byBjYWxsLgorLQorLWAtcCBwb3J0JworLWAtYSBwb3J0JworLWAtLXBvcnQgcG9ydCcKKy0g ICAgIE5hbWUgdGhlIHBvcnQgdG8gdXNlLgorLQorLWAtbCBsaW5lJworLWAtLWxpbmUgbGluZScK Ky0gICAgIE5hbWUgdGhlIGxpbmUgdG8gdXNlIGJ5IGdpdmluZyBhIGRldmljZSBuYW1lLiAgVGhp cyBtYXkgYmUgdXNlZCB0bworLSAgICAgZGlhbCBvdXQgb24gcG9ydHMgdGhhdCBhcmUgbm90IGxp c3RlZCBpbiB0aGUgVVVDUCBjb25maWd1cmF0aW9uCistICAgICBmaWxlcy4gIFdyaXRlIGFjY2Vz cyB0byB0aGUgZGV2aWNlIGlzIHJlcXVpcmVkLgorLQorLWAtcyBzcGVlZCcKKy1gLSMnCistYC0t c3BlZWQgc3BlZWQnCistICAgICBUaGUgc3BlZWQgKGJhdWQgcmF0ZSkgdG8gdXNlLiAgSGVyZSwg YC0jJyBtZWFucyBhbiBhY3R1YWwgbnVtYmVyOworLSAgICAgZS5nLiwgYC05NjAwJy4KKy0KKy1g LW4nCistYC0tcHJvbXB0JworLSAgICAgUHJvbXB0IGZvciB0aGUgcGhvbmUgbnVtYmVyIHRvIHVz ZS4KKy0KKy1gLWQnCistICAgICBFbnRlciBkZWJ1Z2dpbmcgbW9kZS4gIEVxdWl2YWxlbnQgdG8g YC0tZGVidWcgYWxsJy4KKy0KKy1gLXggdHlwZScKKy1gLS1kZWJ1ZyB0eXBlJworLWAtSSBmaWxl JworLWAtLWNvbmZpZyBmaWxlJworLWAtdicKKy1gLS12ZXJzaW9uJworLWAtLWhlbHAnCistICAg ICAqTm90ZSBTdGFuZGFyZCBPcHRpb25zOjouCistCistHworLUZpbGU6IHV1Y3AuaW5mbywgIE5v ZGU6IEludm9raW5nIHV1Y2ljbywgIE5leHQ6IEludm9raW5nIHV1eHF0LCAgUHJldjogSW52b2tp bmcgY3UsICBVcDogSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKy0KKy1JbnZva2luZyB1dWNp Y28KKy09PT09PT09PT09PT09PT0KKy0KKy0qIE1lbnU6CistCistKiB1dWNpY28gRGVzY3JpcHRp b246OiAgICAgICAgICBEZXNjcmlwdGlvbiBvZiB1dWNpY28KKy0qIHV1Y2ljbyBPcHRpb25zOjog ICAgICAgICAgICAgIE9wdGlvbnMgU3VwcG9ydGVkIGJ5IHV1Y2ljbworLQorLR8KKy1GaWxlOiB1 dWNwLmluZm8sICBOb2RlOiB1dWNpY28gRGVzY3JpcHRpb24sICBOZXh0OiB1dWNpY28gT3B0aW9u cywgIFByZXY6IEludm9raW5nIHV1Y2ljbywgIFVwOiBJbnZva2luZyB1dWNpY28KKy0KKy11dWNp Y28gRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0KKy0KKy0gICAgIHV1Y2ljbyBbb3B0 aW9uc10KKy0KKy0gICBUaGUgYHV1Y2ljbycgZGFlbW9uIHByb2Nlc3NlcyBmaWxlIHRyYW5zZmVy IHJlcXVlc3RzIHF1ZXVlZCBieQorLWB1dWNwJyBhbmQgYHV1eCcuICBJdCBpcyBzdGFydGVkIHdo ZW4gYHV1Y3AnIG9yIGB1dXgnIGlzIHJ1biAodW5sZXNzCistdGhleSBhcmUgZ2l2ZW4gdGhlIGAt cicgb3IgYC0tbm91dWNpY28nIG9wdGlvbnMpLiAgSXQgaXMgYWxzbyB0eXBpY2FsbHkKKy1zdGFy dGVkIHBlcmlvZGljYWxseSB1c2luZyBlbnRyaWVzIGluIHRoZSBgY3JvbnRhYicgdGFibGUocyku CistCistICAgV2hlbiBgdXVjaWNvJyBpcyBpbnZva2VkIHdpdGggYC1yMScsIGAtLW1hc3Rlcics IGAtcycsIGAtLXN5c3RlbScsCistb3IgYC1TJywgdGhlIGRhZW1vbiB3aWxsIHBsYWNlIGEgY2Fs bCB0byBhIHJlbW90ZSBzeXN0ZW0sIHJ1bm5pbmcgaW4KKy1tYXN0ZXIgbW9kZS4gIE90aGVyd2lz ZSB0aGUgZGFlbW9uIHdpbGwgc3RhcnQgaW4gc2xhdmUgbW9kZSwgYWNjZXB0aW5nCistYSBjYWxs IGZyb20gYSByZW1vdGUgc3lzdGVtLiAgVHlwaWNhbGx5IGEgc3BlY2lhbCBsb2dpbiBuYW1lIHdp bGwgYmUKKy1zZXQgdXAgZm9yIFVVQ1Agd2hpY2ggYXV0b21hdGljYWxseSBpbnZva2VzIGB1dWNp Y28nIHdoZW4gYSByZW1vdGUKKy1zeXN0ZW0gY2FsbHMgaW4gYW5kIGxvZ3MgaW4gdW5kZXIgdGhh dCBuYW1lLgorLQorLSAgIFdoZW4gYHV1Y2ljbycgdGVybWluYXRlcywgaXQgaW52b2tlcyB0aGUg YHV1eHF0JyBkYWVtb24sIHVubGVzcyB0aGUKKy1gLXEnIG9yIGAtLW5vdXV4cXQnIG9wdGlvbnMg d2VyZSBnaXZlbjsgYHV1eHF0JyBleGVjdXRlcyBhbnkgd29yaworLW9yZGVycyBjcmVhdGVkIGJ5 IGB1dXgnIG9uIGEgcmVtb3RlIHN5c3RlbSwgYW5kIGFueSB3b3JrIG9yZGVycyBjcmVhdGVkCist bG9jYWxseSB3aGljaCBoYXZlIHJlY2VpdmVkIHJlbW90ZSBmaWxlcyBmb3Igd2hpY2ggdGhleSB3 ZXJlIHdhaXRpbmcuCistCistICAgSWYgYSBjYWxsIGZhaWxzLCBgdXVjaWNvJyB3aWxsIG5vcm1h bGx5IHJlZnVzZSB0byByZXRyeSB0aGUgY2FsbAorLXVudGlsIGEgY2VydGFpbiAoY29uZmlndXJh YmxlKSBhbW91bnQgb2YgdGltZSBoYXMgcGFzc2VkLiAgVGhpcyBtYXkgYmUKKy1vdmVycmlkZW4g YnkgdGhlIGAtZicsIGAtLWZvcmNlJywgb3IgYC1TJyBvcHRpb25zLgorLQorLSAgIFRoZSBgLWwn LCBgLS1wcm9tcHQnLCBgLWUnLCBvciBgLS1sb29wJyBvcHRpb25zIG1heSBiZSB1c2VkIHRvIGZv cmNlCistYHV1Y2ljbycgdG8gcHJvZHVjZSBpdHMgb3duIHByb21wdHMgb2YgYGxvZ2luOiAnIGFu ZCBgUGFzc3dvcmQ6Jy4gIFdoZW4KKy1hbm90aGVyIGB1dWNpY28nIGRhZW1vbiBjYWxscyBpbiwg aXQgd2lsbCBzZWUgdGhlc2UgcHJvbXB0cyBhbmQgbG9nIGluCistYXMgdXN1YWwuICBUaGUgbG9n aW4gbmFtZSBhbmQgcGFzc3dvcmQgd2lsbCBub3JtYWxseSBiZSBjaGVja2VkIGFnYWluc3QKKy1h IHNlcGFyYXRlIGxpc3Qga2VwdCBzcGVjaWFsbHkgZm9yIGB1dWNpY28nLCByYXRoZXIgdGhhbiB0 aGUKKy1gL2V0Yy9wYXNzd2QnIGZpbGUgKCpub3RlIENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lczo6 KS4gIEl0IGlzIHBvc3NpYmxlLAorLW9uIHNvbWUgc3lzdGVtcywgdG8gY29uZmlndXJlIGB1dWNp Y28nIHRvIHVzZSBgL2V0Yy9wYXNzd2QnLiAgVGhlIGAtbCcKKy1vciBgLS1wcm9tcHQnIG9wdGlv bnMgd2lsbCBwcm9tcHQgb25jZSBhbmQgdGhlbiBleGl0OyBpbiB0aGlzIG1vZGUgdGhlCistVVVD UCBhZG1pbmlzdHJhdG9yLCBvciB0aGUgc3VwZXJ1c2VyLCBtYXkgdXNlIHRoZSBgLXUnIG9yIGAt LWxvZ2luJworLW9wdGlvbiB0byBmb3JjZSBhIGxvZ2luIG5hbWUsIGluIHdoaWNoIGNhc2UgYHV1 Y2ljbycgd2lsbCBub3QgcHJvbXB0CistZm9yIG9uZS4gIFRoZSBgLWUnIG9yIGAtLWxvb3AnIG9w dGlvbnMgd2lsbCBwcm9tcHQgYWdhaW4gYWZ0ZXIgdGhlCistZmlyc3Qgc2Vzc2lvbiBpcyBvdmVy OyBpbiB0aGlzIG1vZGUgYHV1Y2ljbycgd2lsbCBwZXJtYW5lbnRseSBjb250cm9sIGEKKy1wb3J0 LgorLQorLSAgIElmIGB1dWNpY28nIHJlY2VpdmVzIGEgYFNJR1FVSVQnLCBgU0lHVEVSTScgb3Ig YFNJR1BJUEUnIHNpZ25hbCwgaXQKKy13aWxsIGNsZWFubHkgYWJvcnQgYW55IGN1cnJlbnQgY29u dmVyc2F0aW9uIHdpdGggYSByZW1vdGUgc3lzdGVtIGFuZAorLWV4aXQuICBJZiBpdCByZWNlaXZl cyBhIGBTSUdIVVAnIHNpZ25hbCBpdCB3aWxsIGFib3J0IGFueSBjdXJyZW50CistY29udmVyc2F0 aW9uLCBidXQgd2lsbCBjb250aW51ZSB0byBwbGFjZSBjYWxscyB0byAoaWYgaW52b2tlZCB3aXRo CistYC1yMScgb3IgYC0tbWFzdGVyJykgYW5kIGFjY2VwdCBjYWxscyBmcm9tIChpZiBpbnZva2Vk IHdpdGggYC1lJyBvcgorLWAtLWxvb3AnKSBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgcmVjZWl2ZXMg YSBgU0lHSU5UJyBzaWduYWwgaXQgd2lsbAorLWZpbmlzaCB0aGUgY3VycmVudCBjb252ZXJzYXRp b24sIGJ1dCB3aWxsIG5vdCBwbGFjZSBvciBhY2NlcHQgYW55IG1vcmUKKy1jYWxscy4KKy0KKy0f CistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogdXVjaWNvIE9wdGlvbnMsICBQcmV2OiB1dWNpY28g RGVzY3JpcHRpb24sICBVcDogSW52b2tpbmcgdXVjaWNvCistCistdXVjaWNvIE9wdGlvbnMKKy0t LS0tLS0tLS0tLS0tLQorLQorLSAgIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYmUgZ2l2ZW4g dG8gYHV1Y2ljbycuCistCistYC1yMScKKy1gLS1tYXN0ZXInCistICAgICBTdGFydCBpbiBtYXN0 ZXIgbW9kZTogY2FsbCBvdXQgdG8gYSByZW1vdGUgc3lzdGVtLiAgSW1wbGllZCBieQorLSAgICAg YC1zJywgYC0tc3lzdGVtJywgb3IgYC1TJy4gIElmIG5vIHN5c3RlbSBpcyBzcGVjaWZpZWQsCist ICAgICBzZXF1ZW50aWFsbHkgY2FsbCBldmVyeSBzeXN0ZW0gZm9yIHdoaWNoIHdvcmsgaXMgd2Fp dGluZyB0byBiZQorLSAgICAgZG9uZS4KKy0KKy1gLXIwJworLWAtLXNsYXZlJworLSAgICAgU3Rh cnQgaW4gc2xhdmUgbW9kZS4gIFRoaXMgaXMgdGhlIGRlZmF1bHQuCistCistYC1zIHN5c3RlbScK Ky1gLS1zeXN0ZW0gc3lzdGVtJworLSAgICAgQ2FsbCB0aGUgc3BlY2lmaWVkIHN5c3RlbS4KKy0K Ky1gLVMgc3lzdGVtJworLSAgICAgQ2FsbCB0aGUgc3BlY2lmaWVkIHN5c3RlbSwgaWdub3Jpbmcg YW55IHJlcXVpcmVkIHdhaXQuICBUaGlzIGlzCistICAgICBlcXVpdmFsZW50IHRvIGAtcyBzeXN0 ZW0gLWYnLgorLQorLWAtZicKKy1gLS1mb3JjZScKKy0gICAgIElnbm9yZSBhbnkgcmVxdWlyZWQg d2FpdCBmb3IgYW55IHN5c3RlbXMgdG8gYmUgY2FsbGVkLgorLQorLWAtbCcKKy1gLS1wcm9tcHQn CistICAgICBQcm9tcHQgZm9yIGxvZ2luIG5hbWUgYW5kIHBhc3N3b3JkIHVzaW5nIGBsb2dpbjog JyBhbmQKKy0gICAgIGBQYXNzd29yZDonLiAgVGhpcyBhbGxvd3MgYHV1Y2ljbycgdG8gYmUgZWFz aWx5IHJ1biBmcm9tIGBpbmV0ZCcuCistICAgICBUaGUgbG9naW4gbmFtZSBhbmQgcGFzc3dvcmQg YXJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgVVVDUCBwYXNzd29yZAorLSAgICAgZmlsZSwgd2hpY2gg bmVlZCBub3QgYmUgYC9ldGMvcGFzc3dkJy4gIFRoZSBgLS1sb2dpbicgb3B0aW9uIG1heQorLSAg ICAgYmUgdXNlZCB0byBmb3JjZSBhIGxvZ2luIG5hbWUsIGluIHdoaWNoIGNhdXNlIGB1dWNpY28n IHdpbGwgb25seQorLSAgICAgcHJvbXB0IGZvciBhIHBhc3N3b3JkLgorLQorLWAtcCBwb3J0Jwor LWAtLXBvcnQgcG9ydCcKKy0gICAgIFNwZWNpZnkgYSBwb3J0IHRvIGNhbGwgb3V0IG9uIG9yIHRv IGxpc3RlbiB0by4KKy0KKy1gLWUnCistYC0tbG9vcCcKKy0gICAgIEVudGVyIGFuIGVuZGxlc3Mg bG9vcCBvZiBsb2dpbi9wYXNzd29yZCBwcm9tcHRzIGFuZCBzbGF2ZSBtb2RlCistICAgICBkYWVt b24gZXhlY3V0aW9uLiAgVGhlIHByb2dyYW0gd2lsbCBub3Qgc3RvcCBieSBpdHNlbGY7IHlvdSBt dXN0CistICAgICB1c2UgYGtpbGwnIHRvIHNodXQgaXQgZG93bi4KKy0KKy1gLXcnCistYC0td2Fp dCcKKy0gICAgIEFmdGVyIGNhbGxpbmcgb3V0ICh0byBhIHBhcnRpY3VsYXIgc3lzdGVtIHdoZW4g YC1zJywgYC0tc3lzdGVtJywKKy0gICAgIG9yIGAtUycgaXMgc3BlY2lmZWQsIG9yIHRvIGFsbCBz eXN0ZW1zIHdoaWNoIGhhdmUgd29yayB3aGVuIGp1c3QKKy0gICAgIGAtcjEnIG9yIGAtLW1hc3Rl cicgaXMgc3BlY2lmZWQpLCBiZWdpbiBhbiBlbmRsZXNzIGxvb3AgYXMgd2l0aAorLSAgICAgYC0t bG9vcCcuCistCistYC1xJworLWAtLW5vdXV4cXQnCistICAgICBEbyBub3Qgc3RhcnQgdGhlIGB1 dXhxdCcgZGFlbW9uIHdoZW4gZmluaXNoZWQuCistCistYC1jJworLWAtLXF1aWV0JworLSAgICAg SWYgbm8gY2FsbHMgYXJlIHBlcm1pdHRlZCBhdCB0aGlzIHRpbWUsIHRoZW4gZG9uJ3QgbWFrZSB0 aGUgY2FsbCwKKy0gICAgIGJ1dCBhbHNvIGRvIG5vdCBwdXQgYW4gZXJyb3IgbWVzc2FnZSBpbiB0 aGUgbG9nIGZpbGUgYW5kIGRvIG5vdAorLSAgICAgdXBkYXRlIHRoZSBzeXN0ZW0gc3RhdHVzIChh cyByZXBvcnRlZCBieSBgdXVzdGF0JykuICBUaGlzIGNhbiBiZQorLSAgICAgY29udmVuaWVudCBm b3IgYXV0b21hdGVkIHBvbGxpbmcgc2NyaXB0cywgd2hpY2ggbWF5IHdhbnQgdG8gc2ltcGx5Cist ICAgICBhdHRlbXB0IHRvIGNhbGwgZXZlcnkgc3lzdGVtIHJhdGhlciB0aGFuIHdvcnJ5IGFib3V0 IHdoaWNoCistICAgICBwYXJ0aWN1bGFyIHN5c3RlbXMgbWF5IGJlIGNhbGxlZCBhdCB0aGUgbW9t ZW50LiAgVGhpcyBvcHRpb24gYWxzbworLSAgICAgc3VwcHJlc3NlcyB0aGUgbG9nIG1lc3NhZ2Ug aW5kaWNhdGluZyB0aGF0IHRoZXJlIGlzIG5vIHdvcmsgdG8gYmUKKy0gICAgIGRvbmUuCistCist YC1DJworLWAtLWlmd29yaycKKy0gICAgIE9ubHkgY2FsbCB0aGUgc3lzdGVtIG5hbWVkIGJ5IGAt cycsIGAtLXN5c3RlbScsIG9yIGAtUycgaWYgdGhlcmUKKy0gICAgIGlzIHdvcmsgZm9yIHRoYXQg c3lzdGVtLgorLQorLWAtRCcKKy1gLS1ub2RldGFjaCcKKy0gICAgIERvIG5vdCBkZXRhY2ggZnJv bSB0aGUgY29udHJvbGxpbmcgdGVybWluYWwuICBOb3JtYWxseSBgdXVjaWNvJworLSAgICAgZGV0 YWNoZXMgZnJvbSB0aGUgdGVybWluYWwgYmVmb3JlIGVhY2ggY2FsbCBvdXQgdG8gYW5vdGhlciBz eXN0ZW0KKy0gICAgIGFuZCBiZWZvcmUgaW52b2tpbmcgYHV1eHF0Jy4gIFRoaXMgb3B0aW9uIHBy ZXZlbnRzIHRoaXMuCistCistYC11IG5hbWUnCistYC0tbG9naW4gbmFtZScKKy0gICAgIFNldCB0 aGUgbG9naW4gbmFtZSB0byB1c2UgaW5zdGVhZCBvZiB0aGF0IG9mIHRoZSBpbnZva2luZyB1c2Vy LgorLSAgICAgVGhpcyBvcHRpb24gbWF5IG9ubHkgYmUgdXNlZCBieSB0aGUgVVVDUCBhZG1pbmlz dHJhdG9yIG9yIHRoZQorLSAgICAgc3VwZXJ1c2VyLiAgSWYgdXNlZCB3aXRoIGAtLXByb21wdCcs IHRoaXMgd2lsbCBjYXVzZSBgdXVjaWNvJyB0bworLSAgICAgcHJvbXB0IG9ubHkgZm9yIHRoZSBw YXNzd29yZCwgbm90IHRoZSBsb2dpbiBuYW1lLgorLQorLWAteicKKy1gLS10cnktbmV4dCcKKy0g ICAgIElmIGEgY2FsbCBmYWlscyBhZnRlciB0aGUgcmVtb3RlIHN5c3RlbSBpcyByZWFjaGVkLCB0 cnkgdGhlIG5leHQKKy0gICAgIGFsdGVybmF0ZSByYXRoZXIgdGhhbiBzaW1wbHkgZXhpdGluZy4K Ky0KKy1gLWkgdHlwZScKKy1gLS1zdGRpbiB0eXBlJworLSAgICAgU2V0IHRoZSB0eXBlIG9mIHBv cnQgdG8gdXNlIHdoZW4gdXNpbmcgc3RhbmRhcmQgaW5wdXQuICBUaGUgb25seQorLSAgICAgc3Vw cG9ydGVkIHBvcnQgdHlwZSBpcyBUTEksIGFuZCB0aGlzIGlzIG9ubHkgYXZhaWxhYmxlIG9uIG1h Y2hpbmVzCistICAgICB3aGljaCBzdXBwb3J0IHRoZSBUTEkgbmV0d29ya2luZyBpbnRlcmZhY2Uu ICBTcGVjaWZ5aW5nIGAtaSBUTEknCistICAgICBjYXVzZXMgYHV1Y2ljbycgdG8gdXNlIFRMSSBj YWxscyB0byBwZXJmb3JtIEkvTy4KKy0KKy1gLVggdHlwZScKKy0gICAgIFNhbWUgYXMgdGhlIHN0 YW5kYXJkIG9wdGlvbiBgLXggdHlwZScuICBQcm92aWRlZCBmb3IgaGlzdG9yaWNhbAorLSAgICAg Y29tcGF0aWJpbGl0eS4KKy0KKy1gLXggdHlwZScKKy1gLS1kZWJ1ZyB0eXBlJworLWAtSSBmaWxl JworLWAtLWNvbmZpZyBmaWxlJworLWAtdicKKy1gLS12ZXJzaW9uJworLWAtLWhlbHAnCistICAg ICAqTm90ZSBTdGFuZGFyZCBPcHRpb25zOjouCistCistHworLUZpbGU6IHV1Y3AuaW5mbywgIE5v ZGU6IEludm9raW5nIHV1eHF0LCAgTmV4dDogSW52b2tpbmcgdXVjaGssICBQcmV2OiBJbnZva2lu ZyB1dWNpY28sICBVcDogSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKy0KKy1JbnZva2luZyB1 dXhxdAorLT09PT09PT09PT09PT09CistCistICAgICB1dXhxdCBbLWMgY29tbWFuZF0gWy1zIHN5 c3RlbV0gWy0tY29tbWFuZCBjb21tYW5kXSBbLS1zeXN0ZW0gc3lzdGVtXQorLQorLSAgIFRoZSBg dXV4cXQnIGRhZW1vbiBleGVjdXRlcyBjb21tYW5kcyByZXF1ZXN0ZWQgYnkgYHV1eCcgZnJvbSBl aXRoZXIKKy10aGUgbG9jYWwgc3lzdGVtIG9yIGZyb20gcmVtb3RlIHN5c3RlbXMuICBJdCBpcyBz dGFydGVkIGF1dG9tYXRpY2FsbHkKKy1ieSB0aGUgYHV1Y2ljbycgZGFlbW9uICh1bmxlc3MgYHV1 Y2ljbycgaXMgZ2l2ZW4gdGhlIGAtcScgb3IKKy1gLS1ub3V1eHF0JyBvcHRpb25zKS4KKy0KKy0g ICBUaGVyZSBpcyBub3JtYWxseSBubyBuZWVkIHRvIHJ1biBgdXV4cXQnLCBzaW5jZSBpdCB3aWxs IGJlIGludm9rZWQKKy1ieSBgdXVjaWNvJy4gIEhvd2V2ZXIsIGB1dXhxdCcgY2FuIGJlIGludm9r ZWQgZGlyZWN0bHkgdG8gcHJvdmlkZQorLWdyZWF0ZXIgY29udHJvbCBvdmVyIHRoZSBwcm9jZXNz aW5nIG9mIHRoZSB3b3JrIHF1ZXVlLgorLQorLSAgIE11bHRpcGxlIGludm9jYXRpb25zIG9mIGB1 dXhxdCcgbWF5IGJlIHJ1biBhdCBvbmNlLCBhcyBjb250cm9sbGVkIGJ5CistdGhlIGBtYXgtdXV4 cXRzJyBjb25maWd1cmF0aW9uIGNvbW1hbmQ7IHNlZSAqTm90ZSBNaXNjZWxsYW5lb3VzCistKGNv bmZpZyk6Oi4KKy0KKy0gICBUaGUgZm9sbG93aW5nIG9wdGlvbnMgbWF5IGJlIGdpdmVuIHRvIGB1 dXhxdCcuCistCistYC1jIGNvbW1hbmQnCistYC0tY29tbWFuZCBjb21tYW5kJworLSAgICAgT25s eSBleGVjdXRlIHJlcXVlc3RzIGZvciB0aGUgc3BlY2lmaWVkIGNvbW1hbmQuICBGb3IgZXhhbXBs ZSwKKy0gICAgIGB1dXhxdCAtLWNvbW1hbmQgcm1haWwnLgorLQorLWAtcyBzeXN0ZW0nCistYC0t c3lzdGVtIHN5c3RlbScKKy0gICAgIE9ubHkgZXhlY3V0ZSByZXF1ZXN0cyBvcmlnaW5hdGluZyBm cm9tIHRoZSBzcGVjaWZpZWQgc3lzdGVtLgorLQorLWAteCB0eXBlJworLWAtLWRlYnVnIHR5cGUn CistYC1JIGZpbGUnCistYC0tY29uZmlnJworLWAtdicKKy1gLS12ZXJzaW9uJworLWAtLWhlbHAn CistICAgICAqTm90ZSBTdGFuZGFyZCBPcHRpb25zOjouCistCistHworLUZpbGU6IHV1Y3AuaW5m bywgIE5vZGU6IEludm9raW5nIHV1Y2hrLCAgTmV4dDogSW52b2tpbmcgdXVjb252LCAgUHJldjog SW52b2tpbmcgdXV4cXQsICBVcDogSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKy0KKy1JbnZv a2luZyB1dWNoaworLT09PT09PT09PT09PT09CistCistICAgICB1dWNoayBbLXMgc3lzdGVtXSBb LS1zeXN0ZW0gc3lzdGVtXQorLQorLSAgIFRoZSBgdXVjaGsnIHByb2dyYW0gZGlzcGxheXMgaW5m b3JtYXRpb24gcmVhZCBmcm9tIHRoZSBVVUNQCistY29uZmlndXJhdGlvbiBmaWxlcy4gIEl0IHNo b3VsZCBiZSB1c2VkIHRvIGVuc3VyZSB0aGF0IFVVQ1AgaGFzIGJlZW4KKy1jb25maWd1cmVkIGNv cnJlY3RseS4KKy0KKy0gICBUaGUgYC1zJyBvciBgLS1zeXN0ZW0nIG9wdGlvbnMgbWF5IGJlIHVz ZWQgdG8gZGlzcGxheSB0aGUKKy1jb25maWd1cmF0aW9uIGZvciBqdXN0IHRoZSBzcGVjaWZpZWQg c3lzdGVtLCByYXRoZXIgdGhhbiBmb3IgYWxsCistc3lzdGVtcy4gIFRoZSBgdXVjaGsnIHByb2dy YW0gYWxzbyBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgVVVDUCBwcm9ncmFtCistb3B0aW9uczsgc2Vl ICpOb3RlIFN0YW5kYXJkIE9wdGlvbnM6Oi4KKy0KKy0fCistRmlsZTogdXVjcC5pbmZvLCAgTm9k ZTogSW52b2tpbmcgdXVjb252LCAgTmV4dDogSW52b2tpbmcgdXVzY2hlZCwgIFByZXY6IEludm9r aW5nIHV1Y2hrLCAgVXA6IEludm9raW5nIHRoZSBVVUNQIFByb2dyYW1zCistCistSW52b2tpbmcg dXVjb252CistPT09PT09PT09PT09PT09CistCistICAgICB1dWNvbnYgLWkgdHlwZSAtbyB0eXBl IFstcCBwcm9ncmFtXSBbLS1wcm9ncmFtIHByb2dyYW1dCistICAgICB1dWNvbnYgLS1pbnB1dCB0 eXBlIC0tb3V0cHV0IHR5cGUgWy1wIHByb2dyYW1dIFstLXByb2dyYW0gcHJvZ3JhbV0KKy0KKy0g ICBUaGUgYHV1Y29udicgcHJvZ3JhbSBjb252ZXJ0cyBVVUNQIGNvbmZpZ3VyYXRpb24gZmlsZXMg ZnJvbSBvbmUKKy1mb3JtYXQgdG8gYW5vdGhlci4gIFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24g ZmlsZSB0byByZWFkIGlzIHNwZWNpZmllZAorLXVzaW5nIHRoZSBgLWknIG9yIGAtLWlucHV0JyBv cHRpb25zLiAgVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiBmaWxlIHRvCistd3JpdGUgaXMgc3Bl Y2lmaWVkIHVzaW5nIHRoZSBgLW8nIG9yIGAtLW91dHB1dCcgb3B0aW9ucy4KKy0KKy0gICBUaGUg c3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24gZmlsZSB0eXBlcyBhcmUgYHRheWxvcicsIGB2MicsIGFu ZAorLWBoZGInLiAgRm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGB0YXlsb3InIGNvbmZpZ3VyYXRp b24gZmlsZXMsIHNlZQorLSpOb3RlIENvbmZpZ3VyYXRpb24gRmlsZXM6Oi4gIFRoZSBvdGhlciB0 eXBlcyBvZiBjb25maWd1cmF0aW9uIGZpbGVzCistYXJlIHVzZWQgYnkgdHJhZGl0aW9uYWwgVVVD UCBwYWNrYWdlcywgYW5kIGFyZSBub3QgZGVzY3JpYmVkIGluIHRoaXMKKy1tYW51YWwuCistCist ICAgQW4gaW5wdXQgY29uZmlndXJhdGlvbiBvZiB0eXBlIGB2Micgb3IgYGhkYicgaXMgcmVhZCBm cm9tIGEgY29tcGlsZWQKKy1pbiBkaXJlY3RvcnkgKHNwZWNpZmllZCBieSBgb2xkY29uZmlnZGly JyBpbiBgTWFrZWZpbGUnKS4gIEFuIGlucHV0CistY29uZmlndXJhdGlvbiBvZiB0eXBlIGB0YXls b3InIGlzIHJlYWQgZnJvbSBhIGNvbXBpbGVkIGluIGRpcmVjdG9yeSBieQorLWRlZmF1bHQsIGJ1 dCBtYXkgYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBzdGFuZGFyZCBgLUknIG9yIGAtLWNvbmZpZycK Ky1vcHRpb25zICgqbm90ZSBTdGFuZGFyZCBPcHRpb25zOjopLgorLQorLSAgIFRoZSBvdXRwdXQg Y29uZmlndXJhdGlvbiBpcyB3cml0dGVuIHRvIGZpbGVzIGluIHRoZSBkaXJlY3RvcnkgaW4KKy13 aGljaCBgdXVjb252JyBpcyBydW4uCistCistICAgU29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgaW5w dXQgZmlsZXMgbWF5IG5vdCBiZSByZXByZXNlbnRhYmxlIGluIHRoZQorLWRlc2lyZWQgb3V0cHV0 IGZvcm1hdCwgaW4gd2hpY2ggY2FzZSBgdXVjb252JyB3aWxsIHNpbGVudGx5IGRpc2NhcmQgaXQu CistVGhlIG91dHB1dCBvZiBgdXVjb252JyBzaG91bGQgYmUgY2FyZWZ1bGx5IGNoZWNrZWQgYmVm b3JlIGl0IGlzIHVzZWQuCistVGhlIGB1dWNoaycgcHJvZ3JhbSBtYXkgYmUgdXNlZCBmb3IgdGhp cyBwdXJwb3NlOyBzZWUgKk5vdGUgSW52b2tpbmcKKy11dWNoazo6LgorLQorLSAgIFRoZSBgLXAn IG9yIGAtLXByb2dyYW0nIG9wdGlvbiBtYXkgYmUgdXNlZCB0byBjb252ZXJ0IHNwZWNpZmljIGBj dScKKy1jb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLCByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCBv ZiBvbmx5IGNvbnZlcnRpbmcKKy10aGUgYHV1Y3AnIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb247 IHNlZSAqTm90ZSBjb25maWcgRmlsZTo6LgorLQorLSAgIFRoZSBgdXVjaGsnIHByb2dyYW0gYWxz byBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgVVVDUCBwcm9ncmFtIG9wdGlvbnM7Cistc2VlICpOb3Rl IFN0YW5kYXJkIE9wdGlvbnM6Oi4KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBqIFByb3RvY29s LCAgTmV4dDogeCBQcm90b2NvbCwgIFByZXY6IGkgUHJvdG9jb2wsICBVcDogUHJvdG9jb2xzCisg CistHworLUZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IEludm9raW5nIHV1c2NoZWQsICBQcmV2OiBJ bnZva2luZyB1dWNvbnYsICBVcDogSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKys2LjEyIFVV Q1AgYGonIFByb3RvY29sCisrPT09PT09PT09PT09PT09PT09PT09PQorIAorLUludm9raW5nIHV1 c2NoZWQKKy09PT09PT09PT09PT09PT09CisrVGhlIGBqJyBwcm90b2NvbCBpcyBhIHZhcmlhbnQg b2YgdGhlIGBpJyBwcm90b2NvbC4gIEl0IHdhcyBhbHNvIHdyaXR0ZW4KKytieSBJYW4gTGFuY2Ug VGF5bG9yLCBhbmQgZmlyc3QgYXBwZWFyZWQgaW4gVGF5bG9yIFVVQ1AgdmVyc2lvbiAxLjA0Lgor IAorLSAgIFRoZSBgdXVzY2hlZCcgcHJvZ3JhbSBpcyBhY3R1YWxseSBqdXN0IGEgc2hlbGwgc2Ny aXB0IHdoaWNoIGludm9rZXMKKy10aGUgYHV1Y2ljbycgZGFlbW9uLiAgSXQgaXMgcHJvdmlkZWQg Zm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICBJdAorLWNhdXNlcyBgdXVjaWNvJyB0byBjYWxs IGFsbCBzeXN0ZW1zIGZvciB3aGljaCB0aGVyZSBpcyB3b3JrLiAgQW55Cistb3B0aW9uIHdoaWNo IG1heSBiZSBnaXZlbiB0byBgdXVjaWNvJyBtYXkgYWxzbyBiZSBnaXZlbiB0byBgdXVzY2hlZCcu CistKk5vdGUgSW52b2tpbmcgdXVjaWNvOjouCisrICAgVGhlIGBqJyBwcm90b2NvbCBpcyBhIHZl cnNpb24gb2YgdGhlIGBpJyBwcm90b2NvbCBkZXNpZ25lZCBmb3IKKytjb21tdW5pY2F0aW9uIGxp bmtzIHdoaWNoIGludGVyY2VwdCBhIGZldyBjaGFyYWN0ZXJzLCBzdWNoIGFzIFhPTiBvcgorK1hP RkYuICBJdCBpcyBub3QgZWZmaWNpZW50IHRvIHVzZSBpdCBvbiBhIGxpbmsgd2hpY2ggaW50ZXJj ZXB0cyBtYW55CisrY2hhcmFjdGVycywgc3VjaCBhcyBhIHNldmVuIGJpdCBsaW5rLiAgVGhlIGBq JyBwcm90b2NvbCBwZXJmb3JtcyBubworK2Vycm9yIGNvcnJlY3Rpb24gb3IgZGV0ZWN0aW9uOyB0 aGF0IGlzIHByZXN1bWVkIHRvIGJlIHRoZSByZXNwb25zaWJpbGl0eQorK29mIHRoZSBgaScgcHJv dG9jb2wuCisrCisrICAgV2hlbiB0aGUgYGonIHByb3RvY29sIHN0YXJ0cyB1cCwgZWFjaCBzeXN0 ZW0gc2VuZHMgYSBwcmludGFibGUgQVNDSUkKKytzdHJpbmcgaW5kaWNhdGluZyB3aGljaCBjaGFy YWN0ZXJzIGl0IHdhbnRzIHRvIGF2b2lkIHVzaW5nLiAgVGhlIHN0cmluZworK2JlZ2lucyB3aXRo IHRoZSBBU0NJSSBjaGFyYWN0ZXIgYF4nIChvY3RhbCAxMzYpIGFuZCBlbmRzIHdpdGggdGhlIEFT Q0lJCisrY2hhcmFjdGVyIGB+JyAob2N0YWwgMTc2KS4gIEFmdGVyIHNlbmRpbmcgdGhpcyBzdHJp bmcsIGVhY2ggc3lzdGVtCisrbG9va3MgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0cmluZyBmcm9t IHRoZSByZW1vdGUgc3lzdGVtLiAgVGhlIHN0cmluZ3MKKythcmUgY29tcG9zZWQgb2YgZXNjYXBl IHNlcXVlbmNlczogYFxvb28nLCB3aGVyZSBgbycgaXMgYW4gb2N0YWwgZGlnaXQuCisrRm9yIGV4 YW1wbGUsIHNlbmRpbmcgdGhlIHN0cmluZyBgXlwwMjFcMDIzficgbWVhbnMgdGhhdCB0aGUgQVND SUkgWE9OCisrYW5kIFhPRkYgY2hhcmFjdGVycyBzaG91bGQgYmUgYXZvaWRlZC4gIFRoZSB1bmlv biBvZiB0aGUgY2hhcmFjdGVycworK2Rlc2NyaWJlZCBpbiBib3RoIHN0cmluZ3MgKHRoZSBzdHJp bmcgd2hpY2ggaXMgc2VudCBhbmQgdGhlIHN0cmluZworK3doaWNoIGlzIHJlY2VpdmVkKSBpcyB0 aGUgc2V0IG9mIGNoYXJhY3RlcnMgd2hpY2ggbXVzdCBiZSBhdm9pZGVkIGluCisrdGhpcyBjb252 ZXJzYXRpb24uICBBdm9pZGluZyBhIHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXIgKG9jdGFsIDA0 MCB0bworK29jdGFsIDE3NiwgaW5jbHVzaXZlKSBpcyBub3QgcGVybWl0dGVkLgorKworKyAgIEFm dGVyIHRoZSBleGNoYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIGF2b2lkLCB0aGUgbm9ybWFsIGBpJyBw cm90b2NvbAorK3N0YXJ0IHVwIGlzIGRvbmUsIGFuZCB0aGUgcmVzdCBvZiB0aGUgY29udmVyc2F0 aW9uIHVzZXMgdGhlIG5vcm1hbCBgaScKKytwcm90b2NvbC4gIEhvd2V2ZXIsIGVhY2ggYGknIHBy b3RvY29sIHBhY2tldCBpcyB3cmFwcGVkIHRvIGJlY29tZSBhIGBqJworK3Byb3RvY29sIHBhY2tl dC4KKysKKysgICBFYWNoIGBqJyBwcm90b2NvbCBwYWNrZXQgY29uc2lzdHMgb2YgYSBzZXZlbiBi eXRlIGhlYWRlciwgZm9sbG93ZWQKKytieSBkYXRhIGJ5dGVzLCBmb2xsb3dlZCBieSBpbmRleCBi eXRlcywgZm9sbG93ZWQgYnkgYSBvbmUgYnl0ZSB0cmFpbGVyLgorK1RoZSBwYWNrZXQgaGVhZGVy IGxvb2tzIGxpa2UgdGhpczoKKysKKytgXicKKysgICAgIEV2ZXJ5IHBhY2tldCBiZWdpbnMgd2l0 aCB0aGUgQVNDSUkgY2hhcmFjdGVyIGBeJywgb2N0YWwgMTM2LgorKworK0hJR0gKKytMT1cKKysg ICAgIFRoZXNlIHR3byBjaGFyYWN0ZXJzIGdpdmUgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyBp biB0aGUgcGFja2V0LgorKyAgICAgQm90aCBISUdIIGFuZCBMT1cgYXJlIHByaW50YWJsZSBBU0NJ SSBjaGFyYWN0ZXJzLiAgVGhlIGxlbmd0aCBvZgorKyAgICAgdGhlIHBhY2tldCBpcyBgKEhJR0gg LSAwNDApICogMDEwMCArIChMT1cgLSAwNDApJywgd2hlcmUgYDA0MCA8PQorKyAgICAgSElHSCA8 IDAxNzcnIGFuZCBgMDQwIDw9IExPVyA8IDAxNDAnLiAgVGhpcyBwZXJtaXRzIGEgbGVuZ3RoIG9m CisrICAgICA2MDc5IGJ5dGVzLCBidXQgdGhlcmUgaXMgYSBmdXJ0aGVyIHJlc3RyaWN0aW9uIG9u IHBhY2tldCBzaXplCisrICAgICBkZXNjcmliZWQgYmVsb3cuCisrCisrYD0nCisrICAgICBUaGUg QVNDSUkgY2hhcmFjdGVyIGA9Jywgb2N0YWwgMDc1LgorKworK0RBVEEtSElHSAorK0RBVEEtTE9X CisrICAgICBUaGVzZSB0d28gY2hhcmFjdGVycyBnaXZlIHRoZSB0b3RhbCBudW1iZXIgb2YgZGF0 YSBieXRlcyBpbiB0aGUKKysgICAgIHBhY2tldC4gIFRoZSBlbmNvZGluZyBpcyBhcyBkZXNjcmli ZWQgZm9yIEhJR0ggYW5kIExPVy4gIFRoZSBudW1iZXIKKysgICAgIG9mIGRhdGEgYnl0ZXMgaXMg dGhlIHNpemUgb2YgdGhlIGBpJyBwcm90b2NvbCBwYWNrZXQgd3JhcHBlZCBpbnNpZGUKKysgICAg IHRoaXMgYGonIHByb3RvY29sIHBhY2tldC4KKysKKytgQCcKKysgICAgIFRoZSBBU0NJSSBjaGFy YWN0ZXIgYEAnLCBvY3RhbCAxMDAuCisrCisrICAgVGhlIGhlYWRlciBpcyBmb2xsb3dlZCBieSB0 aGUgbnVtYmVyIG9mIGRhdGEgYnl0ZXMgZ2l2ZW4gaW4KKytEQVRBLUhJR0ggYW5kIERBVEEtTE9X LiAgVGhlc2UgZGF0YSBieXRlcyBhcmUgdGhlIGBpJyBwcm90b2NvbCBwYWNrZXQKKyt3aGljaCBp cyBiZWluZyB3cmFwcGVkIGluIHRoZSBgaicgcHJvdG9jb2wgcGFja2V0LiAgSG93ZXZlciwgZWFj aAorK2NoYXJhY3RlciBpbiB0aGUgYGknIHByb3RvY29sIHBhY2tldCB3aGljaCB0aGUgYGonIHBy b3RvY29sIG11c3QgYXZvaWQKKytpcyB0cmFuc2Zvcm1lZCBpbnRvIGEgcHJpbnRhYmxlIEFTQ0lJ IGNoYXJhY3RlciAocmVjYWxsIHRoYXQgYXZvaWRpbmcgYQorK3ByaW50YWJsZSBBU0NJSSBjaGFy YWN0ZXIgaXMgbm90IHBlcm1pdHRlZCkuICBUd28gaW5kZXggYnl0ZXMgYXJlIHVzZWQKKytmb3Ig ZWFjaCBjaGFyYWN0ZXIgd2hpY2ggbXVzdCBiZSB0cmFuc2Zvcm1lZC4KKysKKysgICBUaGUgaW5k ZXggYnl0ZXMgaW1tZWRpYXRlbHkgZm9sbG93IHRoZSBkYXRhIGJ5dGVzLiAgVGhlIGluZGV4IGJ5 dGVzCisrYXJlIGNyZWF0ZWQgaW4gcGFpcnMuICBFYWNoIHBhaXIgb2YgaW5kZXggYnl0ZXMgZW5j b2RlcyB0aGUgbG9jYXRpb24gb2YKKythIGNoYXJhY3RlciBpbiB0aGUgYGknIHByb3RvY29sIHBh Y2tldCB3aGljaCB3YXMgdHJhbnNmb3JtZWQgdG8gYmVjb21lCisrYSBwcmludGFibGUgQVNDSUkg Y2hhcmFjdGVyLiAgRWFjaCBwYWlyIG9mIGluZGV4IGJ5dGVzIGFsc28gZW5jb2RlcyB0aGUKKytw cmVjaXNlIHRyYW5zZm9ybWF0aW9uIHdoaWNoIHdhcyBwZXJmb3JtZWQuCisrCisrICAgV2hlbiB0 aGUgc2VuZGVyIGZpbmRzIGEgY2hhcmFjdGVyIHdoaWNoIG11c3QgYmUgYXZvaWRlZCwgaXQgd2ls bAorK3RyYW5zZm9ybSBpdCB1c2luZyBvbmUgb3IgdHdvIG9wZXJhdGlvbnMuICBJZiB0aGUgY2hh cmFjdGVyIGlzIDAyMDAgb3IKKytncmVhdGVyLCBpdCB3aWxsIHN1YnRyYWN0IDAyMDAuICBJZiB0 aGUgcmVzdWx0aW5nIGNoYXJhY3RlciBpcyBsZXNzIHRoYW4KKyswMjAsIG9yIGlzIGVxdWFsIHRv IDAxNzcsIGl0IHdpbGwgeG9yIGJ5IDAyMC4gIFRoZSByZXN1bHQgaXMgYSBwcmludGFibGUKKytB U0NJSSBjaGFyYWN0ZXIuCisrCisrICAgVGhlIHplcm8gYmFzZWQgYnl0ZSBpbmRleCBvZiB0aGUg Y2hhcmFjdGVyIHdpdGhpbiB0aGUgYGknIHByb3RvY29sCisrcGFja2V0IGlzIGRldGVybWluZWQu ICBUaGlzIGluZGV4IGlzIHR1cm5lZCBpbnRvIGEgdHdvIGJ5dGUgcHJpbnRhYmxlCisrQVNDSUkg aW5kZXgsIElOREVYLUhJR0ggYW5kIElOREVYLUxPVywgc3VjaCB0aGF0IHRoZSBpbmRleCBpcwor K2AoSU5ERVgtSElHSCAtIDA0MCkgKiAwNDAgKyAoSU5ERVgtTE9XIC0gMDQwKScuICBJTkRFWC1M T1cgaXMKKytyZXN0cmljdGVkIHN1Y2ggdGhhdCBgMDQwIDw9IElOREVYLUxPVyA8IDAxMDAnLiAg SU5ERVgtSElHSCBpcyBub3QKKytwZXJtaXR0ZWQgdG8gYmUgMDE3Niwgc28gYDA0MCA8PSBJTkRF WC1ISUdIIDwgMDE3NicuICBJTkRFWC1MT1cgaXMgdGhlbgorK21vZGlmaWVkIHRvIGVuY29kZSB0 aGUgdHJhbnNmb3JtYXRpb246CisrCisrICAgKiBJZiB0aGUgY2hhcmFjdGVyIHRyYW5zZm9ybWF0 aW9uIG9ubHkgaGFkIHRvIHN1YnRyYWN0IDAyMDAsIHRoZW4KKysgICAgIElOREVYLUxPVyBpcyB1 c2VkIGFzIGlzLgorKworKyAgICogSWYgdGhlIGNoYXJhY3RlciB0cmFuc2Zvcm1hdGlvbiBvbmx5 IGhhZCB0byB4b3IgYnkgMDIwLCB0aGVuIDA0MAorKyAgICAgaXMgYWRkZWQgdG8gSU5ERVgtTE9X LgorKworKyAgICogSWYgYm90aCBvcGVyYXRpb25zIGhhZCB0byBiZSBwZXJmb3JtZWQsIHRoZW4g MDEwMCBpcyBhZGRlZCB0bworKyAgICAgSU5ERVgtTE9XLiAgSG93ZXZlciwgaWYgdGhlIHZhbHVl IG9mIElOREVYLUxPVyB3YXMgaW5pdGlhbGx5IDA3NywKKysgICAgIHRoZW4gYWRkaW5nIDAxMDAg d291bGQgcmVzdWx0IGluIDAxNzcsIHdoaWNoIGlzIG5vdCBhIHByaW50YWJsZQorKyAgICAgQVND SUkgY2hhcmFjdGVyLiAgRm9yIHRoYXQgc3BlY2lhbCBjYXNlLCBJTkRFWC1ISUdIIGlzIHNldCB0 bworKyAgICAgMDE3NiwgYW5kIElOREVYLUxPVyBpcyBzZXQgdG8gdGhlIG9yaWdpbmFsIHZhbHVl IG9mIElOREVYLUhJR0guCisrCisrICAgVGhlIHJlY2VpdmVyIGRlY29kZXMgdGhlIGluZGV4IGJ5 dGVzIGFzIGZvbGxvd3MgKHRoaXMgaXMgdGhlIHJldmVyc2UKKytvZiB0aGUgb3BlcmF0aW9ucyBw ZXJmb3JtZWQgYnkgdGhlIHNlbmRlciwgcHJlc2VudGVkIGhlcmUgZm9yIGFkZGl0aW9uYWwKKytj bGFyaXR5KToKKysKKysgICAqIFRoZSBmaXJzdCBieXRlIGluIHRoZSBpbmRleCBpcyBJTkRFWC1I SUdILCBhbmQgdGhlIHNlY29uZCBpcworKyAgICAgSU5ERVgtTE9XLgorKworKyAgICogSWYgYDA0 MCA8PSBJTkRFWC1ISUdIIDwgMDE3NicsIHRoZSBpbmRleCByZWZlcnMgdG8gdGhlIGRhdGEgYnl0 ZQorKyAgICAgYXQgcG9zaXRpb24gYChJTkRFWC1ISUdIIC0gMDQwKSAqIDA0MCArIElOREVYLUxP VyAlIDA0MCcuCisrCisrICAgKiBJZiBgMDQwIDw9IElOREVYLUxPVyA8IDAxMDAnLCB0aGVuIDAy MDAgbXVzdCBiZSBhZGRlZCB0byBpbmRleGVkCisrICAgICBieXRlLgorKworKyAgICogSWYgYDAx MDAgPD0gSU5ERVgtTE9XIDwgMDE0MCcsIHRoZW4gMDIwIG11c3QgYmUgeG9yJ2VkIHRvIHRoZQor KyAgICAgaW5kZXhlZCBieXRlLgorKworKyAgICogSWYgYDAxNDAgPD0gSU5ERVgtTE9XIDwgMDE3 NycsIHRoZW4gMDIwMCBtdXN0IGJlIGFkZGVkIHRvIHRoZQorKyAgICAgaW5kZXhlZCBieXRlLCBh bmQgMDIwIG11c3QgYmUgeG9yJ2VkIHRvIHRoZSBpbmRleGVkIGJ5dGUuCisrCisrICAgKiBJZiBg SU5ERVgtSElHSCA9PSAwMTc2JywgdGhlIGluZGV4IHJlZmVycyB0byB0aGUgZGF0YSBieXRlIGF0 CisrICAgICBwb3NpdGlvbiBgKElOREVYLUxPVyAtIDA0MCkgKiAwNDAgKyAwMzcnLiAgMDIwMCBt dXN0IGJlIGFkZGVkIHRvCisrICAgICB0aGUgaW5kZXhlZCBieXRlLCBhbmQgMDIwIG11c3QgYmUg eG9yJ2VkIHRvIHRoZSBpbmRleGVkIGJ5dGUuCisrCisrICAgVGhpcyBtZWFucyB0aGUgbGFyZ2Vz dCBgaScgcHJvdG9jb2wgcGFja2V0IHdoaWNoIG1heSBiZSB3cmFwcGVkCisraW5zaWRlIGEgYGon IHByb3RvY29sIHBhY2tldCBpcyBgKDAxNzUgLSAwNDApICogMDQwICsgKDA3NyAtIDA0MCkgPT0K KyszMDA3JyBieXRlcy4KKysKKysgICBUaGUgZmluYWwgY2hhcmFjdGVyIGluIGEgYGonIHByb3Rv Y29sIHBhY2tldCwgZm9sbG93aW5nIHRoZSBpbmRleAorK2J5dGVzLCBpcyB0aGUgQVNDSUkgY2hh cmFjdGVyIGB+JyAob2N0YWwgMTc2KS4KKysKKysgICBUaGUgbW90aXZhdGlvbiBiZWhpbmQgdXNp bmcgYW4gaW5kZXhpbmcgc2NoZW1lLCByYXRoZXIgdGhhbiBlc2NhcGUKKytjaGFyYWN0ZXJzLCBp cyB0byBhdm9pZCBkYXRhIG1vdmVtZW50LiAgVGhlIHNlbmRlciBtYXkgc2ltcGx5IGFkZCBhCisr aGVhZGVyIGFuZCBhIHRyYWlsZXIgdG8gdGhlIGBpJyBwcm90b2NvbCBwYWNrZXQuICBPbmNlIHRo ZSByZWNlaXZlciBoYXMKKytsb2FkZWQgdGhlIGBqJyBwcm90b2NvbCBwYWNrZXQsIGl0IG1heSBz Y2FuIHRoZSBpbmRleCBieXRlcywKKyt0cmFuc2Zvcm1pbmcgdGhlIGRhdGEgYnl0ZXMsIGFuZCB0 aGVuIHBhc3MgdGhlIGRhdGEgYnl0ZXMgZGlyZWN0bHkgb24gdG8KKyt0aGUgYGknIHByb3RvY29s IHJvdXRpbmUuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IHggUHJvdG9jb2wsICBO ZXh0OiB5IFByb3RvY29sLCAgUHJldjogaiBQcm90b2NvbCwgIFVwOiBQcm90b2NvbHMKKysKKys2 LjEzIFVVQ1AgYHgnIFByb3RvY29sCisrPT09PT09PT09PT09PT09PT09PT09PQorKworK1RoZSBg eCcgcHJvdG9jb2wgaXMgdXNlZCBpbiBFdXJvcGUgKGFuZCBwcm9iYWJseSBlbHNld2hlcmUpIHdp dGgKKyttYWNoaW5lcyB0aGF0IGNvbnRhaW4gYW4gYnVpbHRpbiBYLjI1IGNhcmQgYW5kIGNhbiBz ZW5kIGVpZ2h0IGJpdCBkYXRhCisrdHJhbnNwYXJlbnRseSBhY3Jvc3MgWC4yNSBjaXJjdWl0cywg d2l0aG91dCBpbnRlcmZlcmVuY2UgZnJvbSB0aGUgWC4yOAorK29yIFguMjkgbGF5ZXJzLiAgVGhl IHByb3RvY29sIHNlbmRzIHBhY2tldHMgb2YgNTEyIGJ5dGVzLCBhbmQgcmVsaWVzIG9uCisrYSB3 cml0ZSBvZiB6ZXJvIGJ5dGVzIGJlaW5nIHJlYWQgYXMgemVybyBieXRlcyB3aXRob3V0IHN0b3Bw aW5nCisrY29tbXVuaWNhdGlvbi4gIEl0IGZpcnN0IGFwcGVhcmVkIGluIHRoZSBvcmlnaW5hbCBT eXN0ZW0gViBVVUNQCisraW1wbGVtZW50YXRpb24uCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywg IE5vZGU6IHkgUHJvdG9jb2wsICBOZXh0OiBkIFByb3RvY29sLCAgUHJldjogeCBQcm90b2NvbCwg IFVwOiBQcm90b2NvbHMKKysKKys2LjE0IFVVQ1AgYHknIFByb3RvY29sCisrPT09PT09PT09PT09 PT09PT09PT09PQorKworK1RoZSBgeScgcHJvdG9jb2wgd2FzIGRldmVsb3BlZCBieSBKb3JnZSBD d2lrIGZvciB1c2UgaW4gRlggVVVDSUNPLCBhIFBDCisrdXVjaWNvIHByb2dyYW0uICBJdCBpcyBk ZXNpZ25lZCBmb3IgY29tbXVuaWNhdGlvbiBsaW5lcyB3aGljaCBoYW5kbGUKKytlcnJvciBjb3Jy ZWN0aW9uIGFuZCBmbG93IGNvbnRyb2wuICBJdCByZXF1aXJlcyBhbiBlaWdodCBiaXQgY2xlYW4K Kytjb25uZWN0aW9uLiAgSXQgcGVyZm9ybXMgZXJyb3IgZGV0ZWN0aW9uLCBidXQgbm90IGVycm9y IGNvcnJlY3Rpb246Cisrd2hlbiBhbiBlcnJvciBpcyBkZXRlY3RlZCwgdGhlIGxpbmUgaXMgZHJv cHBlZC4gIEl0IGlzIGEgc3RyZWFtaW5nCisrcHJvdG9jb2wsIGxpa2UgdGhlIGBmJyBwcm90b2Nv bDsgdGhlcmUgYXJlIG5vIHBhY2tldCBhY2tub3dsZWRnZW1lbnRzLAorK3NvIHRoZSBwcm90b2Nv bCBpcyBlZmZpY2llbnQgb3ZlciBhIGhhbGYtZHVwbGV4IGNvbW11bmljYXRpb24gbGluZSBzdWNo CisrYXMgUEVQLgorKworKyAgIEV2ZXJ5IHBhY2tldCBjb250YWlucyBhIHNpeCBieXRlIGhlYWRl cjoKKysKKytzZXF1ZW5jZSBsb3cgYnl0ZQorK3NlcXVlbmNlIGhpZ2ggYnl0ZQorKyAgICAgQSB0 d28gYnl0ZSBzZXF1ZW5jZSBudW1iZXIsIGluIGxpdHRsZSBlbmRpYW4gb3JkZXIuICBUaGUgZmly c3QKKysgICAgIHNlcXVlbmNlIG51bWJlciBpcyAwLiAgU2luY2UgdGhlIGZpcnN0IHBhY2tldCBp cyBhbHdheXMgYSBzeW5jCisrICAgICBwYWNrZXQgKGRlc2NyaWJlZCBiZWxvdykgdGhlIHNlcXVl bmNlIG51bWJlciBvZiB0aGUgZmlyc3QgZGF0YQorKyAgICAgcGFja2V0IGlzIGFsd2F5cyAxLiAg RWFjaCBzeXN0ZW0gY291bnRzIHNlcXVlbmNlIG51bWJlcnMKKysgICAgIGluZGVwZW5kZW50bHku CisrCisrbGVuZ3RoIGxvdyBieXRlCisrbGVuZ3RoIGhpZ2ggYnl0ZQorKyAgICAgQSB0d28gYnl0 ZSBkYXRhIGxlbmd0aCwgaW4gbGl0dGxlIGVuZGlhbiBvcmRlci4gIElmIHRoZSBoaWdoIGJpdAor KyAgICAgb2YgdGhlIHNpeHRlZW4gYml0IGZpZWxkIGlzIGNsZWFyLCB0aGlzIGlzIHRoZSBudW1i ZXIgb2YgZGF0YQorKyAgICAgYnl0ZXMgd2hpY2ggZm9sbG93IHRoZSBzaXggYnl0ZSBoZWFkZXIu ICBJZiB0aGUgaGlnaCBiaXQgaXMgc2V0LAorKyAgICAgdGhlcmUgaXMgbm8gZGF0YSwgYW5kIHRo ZSBsZW5ndGggZmllbGQgaXMgYSB0eXBlIG9mIGNvbnRyb2wgcGFja2V0LgorKworK2NoZWNrc3Vt IGxvdyBieXRlCisrY2hlY2tzdW0gaGlnaCBieXRlCisrICAgICBBIHR3byBieXRlIGNoZWNrc3Vt LCBpbiBsaXR0bGUgZW5kaWFuIG9yZGVyLiAgVGhlIGNoZWNrc3VtIGlzCisrICAgICBjb21wdXRl ZCBvdmVyIHRoZSBkYXRhIGJ5dGVzLiAgVGhlIGNoZWNrc3VtIGFsZ29yaXRobSBpcyBkZXNjcmli ZWQKKysgICAgIGJlbG93LiAgSWYgdGhlcmUgYXJlIG5vIGRhdGEgYnl0ZXMsIHRoZSBjaGVja3N1 bSBpcyBzZW50IGFzIDAuCisrCisrICAgV2hlbiB0aGUgcHJvdG9jb2wgc3RhcnRzIHVwLCBlYWNo IHNpZGUgbXVzdCBzZW5kIGEgc3luYyBwYWNrZXQuCisrVGhpcyBpcyBhIHBhY2tldCB3aXRoIGEg bm9ybWFsIHNpeCBieXRlIGhlYWRlciBmb2xsb3dlZCBieSBkYXRhLiAgVGhlCisrc2VxdWVuY2Ug bnVtYmVyIG9mIHRoZSBzeW5jIHBhY2tldCBzaG91bGQgYmUgMC4gIEN1cnJlbnRseSBhdCBsZWFz dAorK2ZvdXIgYnl0ZXMgb2YgZGF0YSBtdXN0IGJlIHNlbnQgd2l0aCB0aGUgc3luYyBwYWNrZXQu ICBBZGRpdGlvbmFsIGJ5dGVzCisrc2hvdWxkIGJlIGlnbm9yZWQuICBUaGV5IGFyZSBkZWZpbmVk IGFzIGZvbGxvd3M6CisrCisrdmVyc2lvbgorKyAgICAgVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRo ZSBwcm90b2NvbC4gIEN1cnJlbnRseSB0aGlzIG11c3QgYmUgMS4KKysgICAgIExhcmdlciBudW1i ZXJzIHNob3VsZCBiZSBpZ25vcmVkOyBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlCisr ICAgICBuZXdlciB2ZXJzaW9uIHRvIGFjY29tbW9kYXRlIHRoZSBvbGRlciBvbmUuCisrCisrcGFj a2V0IHNpemUKKysgICAgIFRoZSBtYXhpbXVtIGRhdGEgbGVuZ3RoIHRvIHVzZSBkaXZpZGVkIGJ5 IDI1Ni4gIFRoaXMgaXMgc2VudCBhcyBhCisrICAgICBzaW5nbGUgYnl0ZS4gIFRoZSBtYXhpbXVt IGRhdGEgbGVuZ3RoIHBlcm1pdHRlZCBpcyAzMjc2OCwgd2hpY2gKKysgICAgIHdvdWxkIGJlIHNl bnQgYXMgMTI4LiAgQ3VzdG9tYXJpbHkgYm90aCBzeXN0ZW1zIHdpbGwgdXNlIHRoZSBzYW1lCisr ICAgICBtYXhpbXVtIGRhdGEgbGVuZ3RoLCB0aGUgbG93ZXIgb2YgdGhlIHR3byByZXF1ZXN0ZWQu CisrCisrZmxhZ3MgbG93IGJ5dGUKKytmbGFncyBoaWdoIGJ5dGUKKysgICAgIFR3byBieXRlcyBv ZiBmbGFncy4gIE5vbmUgYXJlIGN1cnJlbnRseSBkZWZpbmVkLiAgVGhlc2UgYnl0ZXMKKysgICAg IHNob3VsZCBiZSBzZW50IGFzIDAsIGFuZCBpZ25vcmVkIGJ5IHRoZSByZWNlaXZlci4KKysKKysg ICBBIGxlbmd0aCBmaWVsZCB3aXRoIHRoZSBoaWdoIGJpdCBzZXQgaXMgYSBjb250cm9sIHBhY2tl dC4gIFRoZQorK2ZvbGxvd2luZyBjb250cm9sIHBhY2tldCB0eXBlcyBhcmUgZGVmaW5lZDoKKysK KysweGZmZmUgYFlQS1RfQUNLJworKyAgICAgQWNrbm93bGVkZ2VzIGNvcnJlY3QgcmVjZWlwdCBv ZiBhIGZpbGUuCisrCisrMHhmZmZkIGBZUEtUX0VSUicKKysgICAgIEluZGljYXRlcyBhbiBpbmNv cnJlY3QgY2hlY2tzdW0uCisrCisrMHhmZmZjIGBZUEtUX0JBRCcKKysgICAgIEluZGljYXRlcyBh IGJhZCBzZXF1ZW5jZSBudW1iZXIsIGFuIGludmFsaWQgbGVuZ3RoLCBvciBzb21lIG90aGVyCisr ICAgICBlcnJvci4KKysKKysgICBJZiBhIGNvbnRyb2wgcGFja2V0IG90aGVyIHRoYW4gYFlQS1Rf QUNLJyBpcyByZWNlaXZlZCwgdGhlCisrY29ubmVjdGlvbiBpcyBkcm9wcGVkLiAgSWYgYSBjaGVj a3N1bSBlcnJvciBpcyBkZXRlY3RlZCBmb3IgYSByZWNlaXZlZAorK3BhY2tldCwgYSBgWVBLVF9F UlInIGNvbnRyb2wgcGFja2V0IGlzIHNlbnQsIGFuZCB0aGUgY29ubmVjdGlvbiBpcworK2Ryb3Bw ZWQuICBJZiBhIHBhY2tldCBpcyByZWNlaXZlZCBvdXQgb2Ygc2VxdWVuY2UsIGEgYFlQS1RfQkFE JyBjb250cm9sCisrcGFja2V0IGlzIHNlbnQsIGFuZCB0aGUgY29ubmVjdGlvbiBpcyBkcm9wcGVk LgorKworKyAgIFRoZSBjaGVja3N1bSBpcyBpbml0aWFsaXplZCB0byAweGZmZmYuICBGb3IgZWFj aCBkYXRhIGJ5dGUgaW4gYQorK3BhY2tldCBpdCBpcyBtb2RpZmllZCBhcyBmb2xsb3dzICh3aGVy ZSBCIGlzIHRoZSBieXRlIGJlZm9yZSBpdCBoYXMgYmVlbgorK3RyYW5zZm9ybWVkIGFzIGRlc2Ny aWJlZCBhYm92ZSk6CisrCisrICAgICAgICAgICAvKiBSb3RhdGUgdGhlIGNoZWNrc3VtIGxlZnQu ICAqLworKyAgICAgICAgICAgaWYgKChpY2hrICYgMHg4MDAwKSA9PSAwKQorKyAgICAgICAgICAg ICBpY2hrIDw8PSAxOworKyAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICB7CisrICAgICAg ICAgICAgICAgaWNoayA8PD0gMTsKKysgICAgICAgICAgICAgICArK2ljaGs7CisrICAgICAgICAg ICAgIH0KKysKKysgICAgICAgICAgIC8qIEFkZCB0aGUgbmV4dCBieXRlIGludG8gdGhlIGNoZWNr c3VtLiAgKi8KKysgICAgICAgICAgIGljaGsgKz0gQjsKKysKKysgICBUaGlzIGlzIHRoZSBzYW1l IGFsZ29yaXRobSBhcyB0aGF0IHVzZWQgYnkgdGhlIGBmJyBwcm90b2NvbC4KKysKKysgICBBIGNv bW1hbmQgaXMgc2VudCBhcyBhIHNlcXVlbmNlIG9mIGRhdGEgcGFja2V0cyBmb2xsb3dlZCBieSBh IG51bGwKKytieXRlLiAgSW4gdGhlIG5vcm1hbCBjYXNlLCBhIGNvbW1hbmQgd2lsbCBmaXQgaW50 byBhIHNpbmdsZSBwYWNrZXQuCisrVGhlIHBhY2tldCBzaG91bGQgYmUgZXhhY3RseSB0aGUgbGVu Z3RoIG9mIHRoZSBjb21tYW5kIHBsdXMgYSBudWxsCisrYnl0ZS4gIElmIHRoZSBjb21tYW5kIGlz IHRvbyBsb25nLCBtb3JlIHBhY2tldHMgYXJlIHNlbnQgYXMgcmVxdWlyZWQuCisrCisrICAgQSBm aWxlIGlzIHNlbnQgYXMgYSBzZXF1ZW5jZSBvZiBkYXRhIHBhY2tldHMsIGVuZGluZyB3aXRoIGEg emVybworK2xlbmd0aCBwYWNrZXQuICBUaGUgZGF0YSBwYWNrZXRzIG1heSBiZSBvZiBhbnkgbGVu Z3RoIGdyZWF0ZXIgdGhhbiB6ZXJvCisrYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbWF4 aW11bSBwZXJtaXR0ZWQgcGFja2V0IHNpemUgc3BlY2lmaWVkCisraW4gdGhlIGluaXRpYWwgc3lu YyBwYWNrZXQuCisrCisrICAgQWZ0ZXIgdGhlIHplcm8gbGVuZ3RoIHBhY2tldCBlbmRpbmcgYSBm aWxlIHRyYW5zZmVyIGhhcyBiZWVuCisrcmVjZWl2ZWQsIHRoZSByZWNlaXZpbmcgc3lzdGVtIHNl bmRzIGEgYFlQS1RfQUNLJyBjb250cm9sIHBhY2tldC4gIFRoZQorK3NlbmRpbmcgc3lzdGVtIHdh aXRzIGZvciB0aGUgYFlQS1RfQUNLJyBjb250cm9sIHBhY2tldCBiZWZvcmUKKytjb250aW51aW5n OyB0aGlzIHdhaXQgc2hvdWxkIGJlIGRvbmUgd2l0aCBhIGxhcmdlIHRpbWVvdXQsIHNpbmNlIHRo ZXJlCisrbWF5IGJlIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiBkYXRhIGJ1ZmZlcmVkIG9uIHRo ZSBjb21tdW5pY2F0aW9uIHBhdGguCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGQg UHJvdG9jb2wsICBOZXh0OiBoIFByb3RvY29sLCAgUHJldjogeSBQcm90b2NvbCwgIFVwOiBQcm90 b2NvbHMKKysKKys2LjE1IFVVQ1AgYGQnIFByb3RvY29sCisrPT09PT09PT09PT09PT09PT09PT09 PQorKworK1RoZSBgZCcgcHJvdG9jb2wgaXMgYXBwYXJlbnRseSB1c2VkIGZvciBEYXRhS2l0IG11 eGhvc3QgKG5vdCBSUy0yMzIpCisrY29ubmVjdGlvbnMuICBObyBmaWxlIHNpemUgaXMgc2VudC4g IFdoZW4gYSBmaWxlIGhhcyBiZWVuIGNvbXBsZXRlbHkKKyt0cmFuc2ZlcnJlZCwgYSB3cml0ZSBv ZiB6ZXJvIGJ5dGVzIGlzIGRvbmU7IHRoaXMgbXVzdCBiZSByZWFkIGFzIHplcm8KKytieXRlcyBv biB0aGUgb3RoZXIgZW5kLgorKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBoIFByb3Rv Y29sLCAgTmV4dDogdiBQcm90b2NvbCwgIFByZXY6IGQgUHJvdG9jb2wsICBVcDogUHJvdG9jb2xz CisrCisrNi4xNiBVVUNQIGBoJyBQcm90b2NvbAorKz09PT09PT09PT09PT09PT09PT09PT0KKysK KytUaGUgYGgnIHByb3RvY29sIGlzIGFwcGFyZW50bHkgdXNlZCBpbiBzb21lIHBsYWNlcyB3aXRo IEhTVCBtb2RlbXMuICBJdAorK2RvZXMgbm8gZXJyb3IgY2hlY2tpbmcsIGFuZCBpcyBub3QgdGhh dCBkaWZmZXJlbnQgZnJvbSB0aGUgYHQnCisrcHJvdG9jb2wuICBJIGRvbid0IGtub3cgdGhlIGRl dGFpbHMuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IHYgUHJvdG9jb2wsICBQcmV2 OiBoIFByb3RvY29sLCAgVXA6IFByb3RvY29scworKworKzYuMTcgVVVDUCBgdicgUHJvdG9jb2wK Kys9PT09PT09PT09PT09PT09PT09PT09CisrCisrVGhlIGB2JyBwcm90b2NvbCBpcyB1c2VkIGJ5 IFVVUEMvZXh0ZW5kZWQsIGEgUEMgVVVDUCBwcm9ncmFtLiAgSXQgaXMKKytzaW1wbHkgYSB2ZXJz aW9uIG9mIHRoZSBgZycgcHJvdG9jb2wgd2hpY2ggc3VwcG9ydHMgcGFja2V0cyBvZiBhbnkKKytz aXplLCBhbmQgYWxzbyBzdXBwb3J0cyBzZW5kaW5nIHBhY2tldHMgb2YgZGlmZmVyZW50IHNpemVz IGR1cmluZyB0aGUKKytzYW1lIGNvbnZlcnNhdGlvbi4gIFRoZXJlIGFyZSBtYW55IGBnJyBwcm90 b2NvbCBpbXBsZW1lbnRhdGlvbnMgd2hpY2gKKytzdXBwb3J0IGJvdGgsIGJ1dCB0aGVyZSBhcmUg YWxzbyBtYW55IHdoaWNoIGRvIG5vdC4gIFVzaW5nIGB2JyBlbnN1cmVzCisrdGhhdCBldmVyeXRo aW5nIGlzIHN1cHBvcnRlZC4KKyAKKyAfCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogSW5zdGFs bGluZyBUYXlsb3IgVVVDUCwgIE5leHQ6IFVzaW5nIFRheWxvciBVVUNQLCAgUHJldjogSW52b2tp bmcgdGhlIFVVQ1AgUHJvZ3JhbXMsICBVcDogVG9wCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTog SGFja2luZywgIE5leHQ6IEFja25vd2xlZGdlbWVudHMsICBQcmV2OiBQcm90b2NvbHMsICBVcDog VG9wCisgCistSW5zdGFsbGluZyBUYXlsb3IgVVVDUAorLSoqKioqKioqKioqKioqKioqKioqKioK Kys3IEhhY2tpbmcgVGF5bG9yIFVVQ1AKKysqKioqKioqKioqKioqKioqKioqKioKKyAKKy0gICBU aGVzZSBhcmUgdGhlIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgZm9yIHRoZSBUYXlsb3IgVVVD UCBwYWNrYWdlLgorK1RoaXMgY2hhcHRlciBwcm92aWRlcyB0aGUgYnJpZWZlc3Qgb2YgZ3VpZGVz IHRvIHRoZSBUYXlsb3IgVVVDUCBzb3VyY2UKKytjb2RlIGl0c2VsZi4KKyAKKyAqIE1lbnU6Cisg CistKiBDb21waWxhdGlvbjo6ICAgICAgICAgICAgICAgICBDb21waWxpbmcgVGF5bG9yIFVVQ1AK Ky0qIFRlc3RpbmcgdGhlIENvbXBpbGF0aW9uOjogICAgIFRlc3RpbmcgdGhlIENvbXBpbGF0aW9u CistKiBJbnN0YWxsaW5nIHRoZSBCaW5hcmllczo6ICAgICBJbnN0YWxsaW5nIHRoZSBCaW5hcmll cworLSogQ29uZmlndXJhdGlvbjo6ICAgICAgICAgICAgICAgQ29uZmlndXJpbmcgVGF5bG9yIFVV Q1AKKy0qIFRlc3RpbmcgdGhlIEluc3RhbGxhdGlvbjo6ICAgIFRlc3RpbmcgdGhlIEluc3RhbGxh dGlvbgorKyogU3lzdGVtIERlcGVuZGVuY2U6OiAgICAgICAgICAgU3lzdGVtIERlcGVuZGVuY2UK KysqIE5hbWluZyBDb252ZW50aW9uczo6ICAgICAgICAgIE5hbWluZyBDb252ZW50aW9ucworKyog UGF0Y2hlczo6ICAgICAgICAgICAgICAgICAgICAgUGF0Y2hlcworIAorIB8KKy1GaWxlOiB1dWNw LmluZm8sICBOb2RlOiBDb21waWxhdGlvbiwgIE5leHQ6IFRlc3RpbmcgdGhlIENvbXBpbGF0aW9u LCAgUHJldjogSW5zdGFsbGluZyBUYXlsb3IgVVVDUCwgIFVwOiBJbnN0YWxsaW5nIFRheWxvciBV VUNQCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogU3lzdGVtIERlcGVuZGVuY2UsICBOZXh0OiBO YW1pbmcgQ29udmVudGlvbnMsICBQcmV2OiBIYWNraW5nLCAgVXA6IEhhY2tpbmcKKyAKKy1Db21w aWxpbmcgVGF5bG9yIFVVQ1AKKys3LjEgU3lzdGVtIERlcGVuZGVuY2UKKyA9PT09PT09PT09PT09 PT09PT09PT0KKyAKKy0gICBJZiB5b3UgaGF2ZSBhIHNvdXJjZSBjb2RlIGRpc3RyaWJ1dGlvbiwg eW91IG11c3QgZmlyc3QgY29tcGlsZSBpdCBmb3IKKy15b3VyIHN5c3RlbS4gIEZyZWUgdmVyc2lv bnMgb2YgVW5peCwgc3VjaCBhcyBMaW51eCwgTmV0QlNELCBvciBGcmVlQlNELAorLW9mdGVuIGNv bWUgd2l0aCBwcmUtY29tcGlsZWQgYmluYXJ5IGRpc3RyaWJ1dGlvbnMgb2YgVVVDUC4gIElmIHlv dSBhcmUKKy11c2luZyBhIGJpbmFyeSBkaXN0cmlidXRpb24sIHlvdSBtYXkgc2tpcCB0byB0aGUg Y29uZmlndXJhdGlvbiBzZWN0aW9uCistKCpub3RlIENvbmZpZ3VyYXRpb246OikuCistCistICAg Rm9sbG93IHRoZXNlIHN0ZXBzIHRvIGNvbXBpbGUgdGhlIHNvdXJjZSBjb2RlLgorLQorLSAgMS4g VGFrZSBhIGxvb2sgYXQgdGhlIHRvcCBvZiBgTWFrZWZpbGUuaW4nIGFuZCBzZXQgdGhlIGFwcHJv cHJpYXRlCistICAgICB2YWx1ZXMgZm9yIHlvdXIgc3lzdGVtLiAgVGhlc2UgY29udHJvbCB3aGVy ZSB0aGUgcHJvZ3JhbXMgYXJlCistICAgICBpbnN0YWxsZWQgYW5kIHdoaWNoIHVzZXIgb24gdGhl IHN5c3RlbSBvd25zIHRoZW0gKG5vcm1hbGx5IHRoZXkKKy0gICAgIHdpbGwgYmUgb3duZWQgYnkg YSBzcGVjaWFsIHVzZXIgYHV1Y3AnIHJhdGhlciB0aGFuIGEgcmVhbCBwZXJzb247CistICAgICB0 aGV5IHNob3VsZCBwcm9iYWJseSBub3QgYmUgb3duZWQgYnkgYHJvb3QnKS4KKy0KKy0gIDIuIFJ1 biB0aGUgc2hlbGwgc2NyaXB0IGBjb25maWd1cmUnLiAgVGhpcyBzY3JpcHQgd2FzIGdlbmVyYXRl ZCB1c2luZworLSAgICAgdGhlIGBhdXRvY29uZicgcHJvZ3JhbSB3cml0dGVuIGJ5IERhdmlkIE1h Y0tlbnppZSBvZiB0aGUgRnJlZQorLSAgICAgU29mdHdhcmUgRm91bmRhdGlvbi4gIEl0IHRha2Vz IGEgd2hpbGUgdG8gcnVuLiAgSXQgd2lsbCBnZW5lcmF0ZQorLSAgICAgdGhlIGZpbGUgYGNvbmZp Zy5oJyBiYXNlZCBvbiBgY29uZmlnLmguaW4nLCBhbmQsIGZvciBlYWNoIHNvdXJjZQorLSAgICAg Y29kZSBkaXJlY3RvcnksIHdpbGwgZ2VuZXJhdGUgYE1ha2VmaWxlJyBiYXNlZCBvbiBgTWFrZWZp bGUuaW4nLgorLQorLSAgICAgWW91IGNhbiBwYXNzIGNlcnRhaW4gYXJndW1lbnRzIHRvIGBjb25m aWd1cmUnIGluIHRoZSBlbnZpcm9ubWVudC4KKy0gICAgIEJlY2F1c2UgYGNvbmZpZ3VyZScgd2ls bCBjb21waWxlIGxpdHRsZSB0ZXN0IHByb2dyYW1zIHRvIHNlZSB3aGF0CistICAgICBpcyBhdmFp bGFibGUgb24geW91ciBzeXN0ZW0sIHlvdSBtdXN0IHRlbGwgaXQgaG93IHRvIHJ1biB5b3VyCist ICAgICBjb21waWxlci4gIEl0IHJlY29nbml6ZXMgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2 YXJpYWJsZXM6CistCistICAgIGBDQycKKy0gICAgICAgICAgVGhlIEMgY29tcGlsZXIuICBJZiB0 aGlzIGlzIG5vdCBzZXQsIHRoZW4gaWYgYGNvbmZpZ3VyZScgY2FuCistICAgICAgICAgIGZpbmQg YGdjYycgaXQgd2lsbCB1c2UgaXQsIG90aGVyd2lzZSBpdCB3aWxsIHVzZSBgY2MnLgorLQorLSAg ICBgQ0ZMQUdTJworLSAgICAgICAgICBGbGFncyB0byBwYXNzIHRvIHRoZSBDIGNvbXBpbGVyIHdo ZW4gY29tcGlsaW5nIHRoZSBhY3R1YWwKKy0gICAgICAgICAgY29kZS4gIElmIHRoaXMgaXMgbm90 IHNldCwgYGNvbmZpZ3VyZScgd2lsbCB1c2UgYC1nJy4KKy0KKy0gICAgYExERkxBR1MnCistICAg ICAgICAgIEZsYWdzIHRvIHBhc3MgdG8gdGhlIEMgY29tcGlsZXIgd2hlbiBvbmx5IGxpbmtpbmcs IG5vdAorLSAgICAgICAgICBjb21waWxpbmcuICBJZiB0aGlzIGlzIG5vdCBzZXQsIGBjb25maWd1 cmUnIHdpbGwgdXNlIHRoZQorLSAgICAgICAgICBlbXB0eSBzdHJpbmcuCistCistICAgIGBMSUJT JworLSAgICAgICAgICBMaWJyYXJpZXMgdG8gcGFzcyB0byB0aGUgQyBjb21waWxlci4gIElmIHRo aXMgaXMgbm90IHNldCwKKy0gICAgICAgICAgYGNvbmZpZ3VyZScgd2lsbCB1c2UgdGhlIGVtcHR5 IHN0cmluZy4KKy0KKy0gICAgYElOU1RBTEwnCistICAgICAgICAgIFRoZSBwcm9ncmFtIHRvIHJ1 biB0byBpbnN0YWxsIFVVQ1AgaW4gdGhlIGJpbmFyeSBkaXJlY3RvcnkuCistICAgICAgICAgIElm IHRoaXMgaXMgbm90IHNldCwgdGhlbiBpZiBgY29uZmlndXJlJyBmaW5kcyB0aGUgQlNECistICAg ICAgICAgIGBpbnN0YWxsJyBwcm9ncmFtLCBpdCB3aWxsIHNldCB0aGlzIHRvIGBpbnN0YWxsIC1j JzsKKy0gICAgICAgICAgb3RoZXJ3aXNlLCBpdCB3aWxsIHVzZSBgY3AnLgorLQorLSAgICAgU3Vw cG9zZSwgZm9yIGV4YW1wbGUsIHlvdSB3YW50IHRvIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFi bGUgYENDJworLSAgICAgdG8gYHJjYycuICBJZiB5b3UgYXJlIHVzaW5nIGBzaCcsIGBiYXNoJywg b3IgYGtzaCcsIGludm9rZQorLSAgICAgYGNvbmZpZ3VyZScgYXMgYENDPXJjYyBjb25maWd1cmUn LiAgSWYgeW91IGFyZSB1c2luZyBgY3NoJywgZG8KKy0gICAgIGBzZXRlbnYgQ0MgcmNjOyBzaCBj b25maWd1cmUnLgorLQorLSAgICAgT24gc29tZSBzeXN0ZW1zIHlvdSB3aWxsIHdhbnQgdG8gdXNl IGBMSUJTPS1sbWFsbG9jJy4gIE9uIFhlbml4CistICAgICBkZXJpdmVkIHZlcnNpb25zIG9mIFVu aXggZG8gbm90IHVzZSBgTElCUz0tbHgnIGJlY2F1c2UgdGhpcyB3aWxsCistICAgICBicmluZyBp biB0aGUgd3JvbmcgdmVyc2lvbnMgb2YgY2VydGFpbiByb3V0aW5lczsgaWYgeW91IHdhbnQgdG8g dXNlCistICAgICBgLWx4JyB5b3UgbXVzdCBzcGVjaWZ5IGBMSUJTPS1sYyAtbHgnLgorLQorLSAg ICAgWW91IGNhbiBhbHNvIHBhc3Mgb3RoZXIgYXJndW1lbnRzIHRvIGBjb25maWd1cmUnIG9uIHRo ZSBjb21tYW5kCistICAgICBsaW5lLiAgVXNlIGBjb25maWd1cmUgLS1oZWxwJyBmb3IgYSBjb21w bGV0ZSBsaXN0LiAgT2YgcGFydGljdWxhcgorLSAgICAgaW50ZXJlc3Q6CistICAgIGAtLXByZWZp eD1ESVJOQU1FJworLSAgICAgICAgICBUaGUgZGlyZWN0b3J5IHVuZGVyIHdoaWNoIGFsbCBmaWxl cyBhcmUgaW5zdGFsbGVkLiAgRGVmYXVsdAorLSAgICAgICAgICBgL3Vzci9sb2NhbCcuCistCist ICAgIGAtLXdpdGgtbmV3Y29uZmlnZGlyPURJUk5BTUUnCistICAgICAgICAgIFRoZSBkaXJlY3Rv cnkgaW4gd2hpY2ggdG8gZmluZCBuZXcgc3R5bGUgY29uZmlndXJhdGlvbiBmaWxlcy4KKy0gICAg ICAgICAgRGVmYXVsdCBgUFJFRklYL2NvbmYvdXVjcCcuCistCistICAgIGAtLXdpdGgtb2xkY29u ZmlnZGlyPURJUk5BTUUnCistICAgICAgICAgIFRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gZmlu ZCBvbGQgc3R5bGUgY29uZmlndXJhdGlvbiBmaWxlcy4KKy0gICAgICAgICAgRGVmYXVsdCBgL3Vz ci9saWIvdXVjcCcuCistCistICAgICBJZiBgY29uZmlndXJlJyBmYWlscyBmb3Igc29tZSByZWFz b24sIG9yIGlmIHlvdSBoYXZlIGEgdmVyeSB3ZWlyZAorLSAgICAgc3lzdGVtLCB5b3UgbWF5IGhh dmUgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlIGJ5IGhhbmQuICBUbyBkbworLSAgICAgdGhpcywg Y29weSB0aGUgZmlsZSBgY29uZmlnLmguaW4nIHRvIGBjb25maWcuaCcgYW5kIGVkaXQgaXQgZm9y CistICAgICB5b3VyIHN5c3RlbS4gIFRoZW4gZm9yIGVhY2ggc291cmNlIGRpcmVjdG9yeSAodGhl IHRvcCBkaXJlY3RvcnksCistICAgICBhbmQgdGhlIHN1YmRpcmVjdG9yaWVzIGBsaWInLCBgdW5p eCcsIGFuZCBgdXVjb25mJykgY29weQorLSAgICAgYE1ha2VmaWxlLmluJyB0byBgTWFrZWZpbGUn LCBmaW5kIHRoZSB3b3JkcyB3aXRoaW4gYEAnIGNoYXJhY3RlcnMsCistICAgICBhbmQgc2V0IHRo ZW0gY29ycmVjdGx5IGZvciB5b3VyIHN5c3RlbS4KKy0KKy0gIDMuIElnb3IgVi4gU2VtZW55dWsg cHJvdmlkZWQgdGhpcyAobGlnaHRseSBlZGl0ZWQpIG5vdGUgYWJvdXQgSVNDCistICAgICBVbml4 IDMuMC4gIFRoZSBgY29uZmlndXJlJyBzY3JpcHQgd2lsbCBkZWZhdWx0IHRvIHBhc3NpbmcgYC1w b3NpeCcKKy0gICAgIHRvIGBnY2MnLiAgSG93ZXZlciwgdXNpbmcgYC1wb3NpeCcgY2hhbmdlcyB0 aGUgZW52aXJvbm1lbnQgdG8KKy0gICAgIFBPU0lYLCBhbmQgb24gSVNDIDMuMCwgYXQgbGVhc3Qs IHRoZSBkZWZhdWx0IGZvciBgUE9TSVhfTk9fVFJVTkMnCistICAgICBpcyAxLiAgVGhpcyBjYW4g bGVhZCB0byBhIHByb2JsZW0gd2hlbiBgdXV4cXQnIGV4ZWN1dGVzIGBybWFpbCcuCistICAgICBg SURBIHNlbmRtYWlsJyBoYXMgZGJtIGNvbmZpZ3VyYXRpb24gZmlsZXMgbmFtZWQKKy0gICAgIGBt YWlsZXJ0YWJsZS57ZGlyLHBhZ30nLiAgTm90aWNlIHRoZXNlIG5hbWVzIGFyZSAxNSBjaGFyYWN0 ZXJzCistICAgICBsb25nLiAgV2hlbiBgdXV4cXQnIGNvbXBpbGVkIHdpdGggdGhlIGAtcG9zaXgn IGV4ZWN1dGVzIGBybWFpbCcsCistICAgICB3aGljaCBpbiB0dXJuIGV4ZWN1dGVzIGBzZW5kbWFp bCcsIHRoZSBsYXRlciBpcyBydW4gdW5kZXIgdGhlCistICAgICBQT1NJWCBlbnZpcm9ubWVudCB0 b28uICBUaGlzIGxlYWRzIHRvIGBzZW5kbWFpbCcgYm9tYmluZyBvdXQgd2l0aAorLSAgICAgYCdl cnJvciBvcGVuaW5nICdNJyBkYXRhYmFzZTogbmFtZSB0b28gbG9uZycgKG1haWxlcnRhYmxlLmRp ciknLgorLSAgICAgSXQncyByYXRoZXIgb2JzY3VyZSBiZWhhdmlvdXIsIGFuZCBpdCB0b29rIG1l IGEgZGF5IHRvIGZpbmQgb3V0CistICAgICB0aGUgY2F1c2UuICBJIGRvbid0IHVzZSB0aGUgYC1w b3NpeCcgc3dpdGNoOyBpbnN0ZWFkLCBJIHJ1biBgZ2NjJworLSAgICAgd2l0aCBgLURfUE9TSVhf U09VUkNFJywgYW5kIGFkZCBgLWxjcG9zaXgnIHRvIGBMSUJTJy4KKy0KKy0gIDQuIE9uIHNvbWUg dmVyc2lvbnMgb2YgQlNESSB0aGVyZSBpcyBhIGJ1ZyBpbiB0aGUgc2hlbGwgd2hpY2ggY2F1c2Vz CistICAgICB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYENGTEFHUycgdG8gYmUgc2V0IGluY29ycmVj dGx5LiAgSWYgYGVjaG8KKy0gICAgICR7Q0ZMQUdTLS1nfScgZWNob2VzIGBnJyByYXRoZXIgdGhh biBgLWcnLCB0aGVuIHlvdSBtdXN0IHNldAorLSAgICAgYENGTEFHUycgaW4gdGhlIGVudmlyb25t ZW50IGJlZm9yZSBydW5uaW5nIGNvbmZpZ3VyZS4gIFRoZXJlIGlzIGEKKy0gICAgIHBhdGNoIGF2 YWlsYWJsZSBmcm9tIEJTREkgZm9yIHRoaXMgYnVnLiAgKFJlcG9ydGVkIGJ5IERhdmlkIFZyb25h KS4KKy0KKy0gIDUuIE9uIEFJWCAzLjIuNSwgYW5kIHBvc3NpYmx5IG90aGVyIHZlcnNpb25zLCBg Y2MgLUUnIGRvZXMgbm90IHdvcmssCistICAgICByZXBvcnRpbmcgYE9wdGlvbiBOT1JPQ09OU1Qg aXMgbm90IHZhbGlkJy4gIFRlc3QgdGhpcyBiZWZvcmUKKy0gICAgIHJ1bm5pbmcgY29uZmlndXJl IGJ5IGRvaW5nIHNvbWV0aGluZyBsaWtlIGB0b3VjaCAvdG1wL2Zvby5jOyBjYyAtRQorLSAgICAg L3RtcC9mb28uYycuICBUaGlzIG1heSBnaXZlIGEgd2FybmluZyBhYm91dCB0aGUgZmlsZSBiZWlu ZyBlbXB0eSwKKy0gICAgIGJ1dCBpdCBzaG91bGQgbm90IGdpdmUgdGhlIGBPcHRpb24gTk9ST0NP TlNUJyB3YXJuaW5nLiAgVGhlCistICAgICB3b3JrYXJvdW5kIGlzIHRvIHJlbW92ZSB0aGUgYCxu b3JvY29uc3QnIGVudHJ5IGZyb20gdGhlIGBvcHRpb25zJworLSAgICAgY2xhdXNlIGluIHRoZSBg Y2MnIHN0YW56YSBpbiBgL2V0Yy94bGMuY2ZnJy4gIChSZXBvcnRlZCBieSBDaHJpcworLSAgICAg TGV3aXMpLgorLQorLSAgNi4gWW91IHNob3VsZCB2ZXJpZnkgdGhhdCBgY29uZmlndXJlJyB3b3Jr ZWQgY29ycmVjdGx5IGJ5IGNoZWNraW5nCistICAgICBgY29uZmlnLmgnIGFuZCB0aGUgaW5zdGFu Y2VzIG9mIGBNYWtlZmlsZScuCistCistICA3LiBFZGl0IGBwb2xpY3kuaCcgZm9yIHlvdXIgbG9j YWwgc3lzdGVtLiAgVGhlIGNvbW1lbnRzIGV4cGxhaW4gdGhlCistICAgICB2YXJpb3VzIGNob2lj ZXMuICBUaGUgZGVmYXVsdCB2YWx1ZXMgYXJlIGludGVuZGVkIHRvIGJlCistICAgICByZWFzb25h YmxlLCBzbyB5b3UgbWF5IG5vdCBoYXZlIHRvIG1ha2UgYW55IGNoYW5nZXMuCistCistICAgICBZ b3UgbXVzdCBkZWNpZGUgd2hhdCB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gdXNlOyBm b3IgbW9yZQorLSAgICAgaW5mb3JtYXRpb24gb24gdGhlIGNob2ljZXMsIHNlZSAqTm90ZSBDb25m aWd1cmF0aW9uOjouCistCistICAgICBZb3UgbXVzdCBhbHNvIGRlY2lkZSB3aGF0IHNvcnQgb2Yg c3Bvb2wgZGlyZWN0b3J5IHlvdSB3YW50IHRvIHVzZS4KKy0gICAgIElmIHRoaXMgaXMgYSBuZXcg aW5zdGFsbGF0aW9uLCBJIHJlY29tbWVuZCBgU1BPT0xESVJfVEFZTE9SJzsKKy0gICAgIG90aGVy d2lzZSwgc2VsZWN0IHRoZSBzcG9vbCBkaXJlY3RvcnkgY29ycmVzcG9uZGluZyB0byB5b3VyCist ICAgICBleGlzdGluZyBVVUNQIHBhY2thZ2UuCistCistICA4LiBUeXBlIGBtYWtlJyB0byBjb21w aWxlIGV2ZXJ5dGhpbmcuCistCistICAgICBUaGUgYHRzdHV1LmMnIGZpbGUgaXMgbm90IHBhcnRp Y3VsYXJseSBwb3J0YWJsZTsgaWYgeW91IGNhbid0CistICAgICBmaWd1cmUgb3V0IGhvdyB0byBj b21waWxlIGl0IHlvdSBjYW4gc2FmZWx5IGlnbm9yZSBpdCwgYXMgaXQgaXMKKy0gICAgIG9ubHkg dXNlZCBmb3IgdGVzdGluZy4gIFRvIHVzZSBTVFJFQU1TIHBzZXVkby10ZXJtaW5hbHMsIHRzdHV1 LmMKKy0gICAgIG11c3QgYmUgY29tcGlsZWQgd2l0aCBgLURIQVZFX1NUUkVBTVNfUFRZUyc7IHRo aXMgaXMgbm90CistICAgICBkZXRlcm1pbmVkIGJ5IHRoZSBjb25maWd1cmUgc2NyaXB0LgorLQor LSAgICAgSWYgeW91IGhhdmUgYW55IG90aGVyIHByb2JsZW1zIHRoZXJlIGlzIHByb2JhYmx5IGEg YnVnIGluIHRoZQorLSAgICAgYGNvbmZpZ3VyZScgc2NyaXB0LgorLQorLSAgOS4gUGxlYXNlIHJl cG9ydCBhbnkgcHJvYmxlbXMgeW91IGhhdmUuICBUaGF0IGlzIHRoZSBvbmx5IHdheSB0aGV5Cist ICAgICB3aWxsIGdldCBmaXhlZCBmb3Igb3RoZXIgcGVvcGxlLiAgU3VwcGx5IGEgcGF0Y2ggaWYg eW91IGNhbiAoKm5vdGUKKy0gICAgIFBhdGNoZXM6OiksIG9yIGp1c3QgYXNrIGZvciBoZWxwLgor LQorLQorLR8KKy1GaWxlOiB1dWNwLmluZm8sICBOb2RlOiBUZXN0aW5nIHRoZSBDb21waWxhdGlv biwgIE5leHQ6IEluc3RhbGxpbmcgdGhlIEJpbmFyaWVzLCAgUHJldjogQ29tcGlsYXRpb24sICBV cDogSW5zdGFsbGluZyBUYXlsb3IgVVVDUAorLQorLVRlc3RpbmcgdGhlIENvbXBpbGF0aW9uCist PT09PT09PT09PT09PT09PT09PT09PT0KKy0KKy0gICBJZiB5b3VyIHN5c3RlbSBzdXBwb3J0cyBw c2V1ZG8tdGVybWluYWxzLCBhbmQgeW91IGNvbXBpbGVkIHRoZSBjb2RlCistdG8gc3VwcG9ydCB0 aGUgbmV3IHN0eWxlIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMgKGBIQVZFX1RBWUxPUl9DT05GSUcn Cistd2FzIHNldCB0byAxIGluIGBwb2xpY3kuaCcpLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gdXNl IHRoZSBgdHN0dXUnCistcHJvZ3JhbSB0byB0ZXN0IHRoZSBgdXVjaWNvJyBkYWVtb24uICBJZiB5 b3VyIHN5c3RlbSBzdXBwb3J0cyBTVFJFQU1TCistYmFzZWQgcHNldWRvLXRlcm1pbmFscywgeW91 IG11c3QgY29tcGlsZSB0c3R1dS5jIHdpdGgKKy1gLURIQVZFX1NUUkVBTVNfUFRZUycuICAoVGhl IFNUUkVBTVMgYmFzZWQgY29kZSB3YXMgY29udHJpYnV0ZWQgYnkgTWFyYworLUJvdWNoZXIpLgor LQorLSAgIFRvIHJ1biBgdHN0dXUnLCBqdXN0IHR5cGUgYHRzdHV1JyB3aXRoIG5vIGFyZ3VtZW50 cy4gIFlvdSBtdXN0IHJ1bgorLWl0IGluIHRoZSBjb21waWxhdGlvbiBkaXJlY3RvcnksIHNpbmNl IGl0IHJ1bnMgYC4vdXVjcCcsIGAuL3V1eCcgYW5kCistYC4vdXVjaWNvJy4gIFRoZSBgdHN0dXUn IHByb2dyYW0gd2lsbCBydW4gYSBsZW5ndGh5IHNlcmllcyBvZiB0ZXN0cyAoaXQKKy10YWtlcyBv dmVyIHRlbiBtaW51dGVzIG9uIGEgc2xvdyBWQVgpLiAgWW91IHdpbGwgbmVlZCBhIGZhaXIgYW1v dW50IG9mCistc3BhY2UgYXZhaWxhYmxlIGluIGAvdXNyL3RtcCcuICBZb3Ugd2lsbCBwcm9iYWJs eSB3YW50IHRvIHB1dCBpdCBpbiB0aGUKKy1iYWNrZ3JvdW5kLiAgRG8gbm90IHVzZSBgXlonLCBi ZWNhdXNlIHRoZSBwcm9ncmFtIHRyYXBzIG9uIGBTSUdDSExEJworLWFuZCB3aW5kcyB1cCBkeWlu Zy4gIFRoZSBgdHN0dXUnIHByb2dyYW0gd2lsbCBjcmVhdGUgYSBkaXJlY3RvcnkKKy1gL3Vzci90 bXAvdHN0dXUnIGFuZCBmaWxsIGl0IHdpdGggY29uZmlndXJhdGlvbiBmaWxlcywgYW5kIGNyZWF0 ZSBzcG9vbAorLWRpcmVjdG9yaWVzIGAvdXNyL3RtcC90c3R1dS9zcG9vbDEnIGFuZCBgL3Vzci90 bXAvdHN0dXUvc3Bvb2wyJy4KKy0KKy0gICBJZiB5b3VyIHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0 IHRoZSBgRklPTlJFQUQnIGNhbGwsIHRoZSBgdHN0dXUnCistcHJvZ3JhbSB3aWxsIHJ1biB2ZXJ5 IHNsb3dseS4gIFRoaXMgbWF5IG9yIG1heSBub3QgZ2V0IGZpeGVkIGluIGEgbGF0ZXIKKy12ZXJz aW9uLgorLQorLSAgIFRoZSBgdHN0dXUnIHByb2dyYW0gd2lsbCBmaW5pc2ggd2l0aCBhbiBleGVj dXRlIGZpbGUgbmFtZWQKKy1gWC5TT01FVEhJTkcnIGFuZCBhIGRhdGEgZmlsZSBuYW1lZCBgRC5T T01FVEhJTkcnIGluIHRoZSBkaXJlY3RvcnkKKy1gL3Vzci90bXAvdHN0dXUvc3Bvb2wxJyAob3Is IG1vcmUgbGlrZWx5LCBpbiBzdWJkaXJlY3RvcmllcywgZGVwZW5kaW5nCistb24gdGhlIGNob2lj ZSBvZiBgU1BPT0xESVInIGluIGBwb2xpY3kuaCcpLiAgVHdvIGxvZyBmaWxlcyB3aWxsIGJlCist Y3JlYXRlZCBpbiB0aGUgZGlyZWN0b3J5IGAvdXNyL3RtcC90c3R1dScuICBUaGV5IHdpbGwgYmUg bmFtZWQgYExvZzEnCistYW5kIGBMb2cyJywgb3IsIGlmIHlvdSBoYXZlIHNlbGVjdGVkIGBIQVZF X0hEQl9MT0dHSU5HJyBpbiBgcG9saWN5LmgnLAorLWBMb2cxL3V1Y2ljby90ZXN0MicgYW5kIGBM b2cyL3V1Y2ljby90ZXN0MScuICBUaGVyZSBzaG91bGQgYmUgbm8gZXJyb3JzCistaW4gdGhlIGxv ZyBmaWxlcy4KKy0KKy0gICBZb3UgY2FuIHRlc3QgYHV1eHF0JyB3aXRoIGAuL3V1eHF0IC1JIC91 c3IvdG1wL3RzdHV1L0NvbmZpZzEnLiAgVGhpcworLXNob3VsZCBsZWF2ZSBhIGNvbW1hbmQgZmls ZSBgQy5TT01FVEhJTkcnIGFuZCBhIGRhdGEgZmlsZSBgRC5TT01FVEhJTkcnCistaW4gYC91c3Iv dG1wL3RzdHV1L3Nwb29sMScgb3IgaW4gc3ViZGlyZWN0b3JpZXMuICBBZ2FpbiwgdGhlcmUgc2hv dWxkCistYmUgbm8gZXJyb3JzIGluIHRoZSBsb2cgZmlsZS4KKy0KKy0gICBBc3N1bWluZyB5b3Ug Y29tcGlsZWQgdGhlIGNvZGUgd2l0aCBkZWJ1Z2dpbmcgZW5hYmxlZCwgdGhlIGAteCcKKy1zd2l0 Y2ggY2FuIGJlIHVzZWQgdG8gc2V0IGRlYnVnZ2luZyBtb2Rlczsgc2VlIHRoZSBgZGVidWcnIGNv bW1hbmQgZm9yCistZGV0YWlscyAoKm5vdGUgRGVidWdnaW5nIExldmVsczo6KS4gIFVzZSBgLXgg YWxsJyB0byB0dXJuIG9uIGFsbAorLWRlYnVnZ2luZyBhbmQgZ2VuZXJhdGUgZmFyIG1vcmUgb3V0 cHV0IHRoYW4geW91IHdpbGwgZXZlciB3YW50IHRvIHNlZS4KKy1UaGUgYHV1Y2ljbycgZGFlbW9u cyB3aWxsIHB1dCBkZWJ1Z2dpbmcgb3V0cHV0IGluIHRoZSBmaWxlcyBgRGVidWcxJworLWFuZCBg RGVidWcyJyBpbiB0aGUgZGlyZWN0b3J5IGAvdXNyL3RtcC90c3R1dScuICBBZnRlciB0aGF0LCB5 b3UncmUKKy1wcmV0dHkgbXVjaCBvbiB5b3VyIG93bi4KKy0KKy0gICBPbiBzb21lIHN5c3RlbXMg eW91IGNhbiBhbHNvIHVzZSBgdHN0dXUnIHRvIHRlc3QgYHV1Y2ljbycgYWdhaW5zdAorLXRoZSBz eXN0ZW0gYHV1Y2ljbycsIGJ5IHVzaW5nIHRoZSBgLXUnIHN3aXRjaC4gIEZvciB0aGlzIHRvIHdv cmssCistY2hhbmdlIHRoZSBkZWZpbml0aW9ucyBvZiBgWlVVQ0lDT19DTUQnIGFuZCBgVVVDSUNP X0VYRUNMJyBhdCB0aGUgdG9wCistb2YgYHRzdHV1LmMnIHRvIHNvbWV0aGluZyBhcHByb3ByaWF0 ZSBmb3IgeW91ciBzeXN0ZW0uICBUaGUgZGVmaW5pdGlvbnMKKy1pbiBgdHN0dXUuYycgYXJlIHdo YXQgSSB1c2VkIGZvciBVbHRyaXggNC4wLCBvbiB3aGljaAorLWAvdXNyL2xpYi91dWNwL3V1Y2lj bycgaXMgcGFydGljdWxhcmx5IG9ic3RpbmF0ZSBhYm91dCBiZWluZyBydW4gYXMgYQorLWNoaWxk OyBJIHdhcyBvbmx5IGFibGUgdG8gcnVuIGl0IGJ5IGNyZWF0aW5nIGEgbG9naW4gbmFtZSB3aXRo IG5vCistcGFzc3dvcmQgd2hvc2Ugc2hlbGwgd2FzIGAvdXNyL2xpYi91dWNwL3V1Y2ljbycuICBD YWxsaW5nIGxvZ2luIGluIHRoaXMKKy13YXkgd2lsbCBsZWF2ZSBmYWtlIGVudHJpZXMgaW4gYHd0 bXAnIGFuZCBgdXRtcCc7IGlmIHlvdSBjb21waWxlCistYHRzdG91dC5jJyAoaW4gdGhlIGBjb250 cmliJyBkaXJlY3RvcnkpIGFzIGEgc2V0dWlkIGByb290JyBwcm9ncmFtLAorLWB0c3R1dScgd2ls bCBydW4gaXQgdG8gY2xlYXIgdGhvc2UgZW50cmllcyBvdXQuICBPbiBtb3N0IHN5c3RlbXMsIHN1 Y2gKKy1oYWNrZXJ5IHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5LCBhbHRob3VnaCBvbiBTQ08gSSBo YWQgdG8gc3UgdG8gYHJvb3QnCistKGB1dWNwJyBtaWdodCBhbHNvIGhhdmUgd29ya2VkKSBiZWZv cmUgSSBjb3VsZCBydW4KKy1gL3Vzci9saWIvdXVjcC91dWNpY28nLgorLQorLSAgIFlvdSBjYW4g dGVzdCBgdXVjcCcgYW5kIGB1dXgnIChnaXZlIHRoZW0gdGhlIGAtcicgc3dpdGNoIHRvIGtlZXAK Ky10aGVtIGZyb20gc3RhcnRpbmcgYHV1Y2ljbycpIHRvIG1ha2Ugc3VyZSB0aGV5IGNyZWF0ZSB0 aGUgcmlnaHQgc29ydHMKKy1vZiBmaWxlcy4gIFVuZm9ydHVuYXRlbHksIGlmIHlvdSBkb24ndCBr bm93IHdoYXQgdGhlIHJpZ2h0IHNvcnRzIG9mCistZmlsZXMgYXJlLCBJJ20gbm90IGdvaW5nIHRv IHRlbGwgeW91IGhlcmUuCistCistICAgSWYgeW91IGNhbiBub3QgcnVuIGB0c3R1dScsIG9yIGlm IGl0IGZhaWxzIGluZXhwbGljYWJseSwgZG9uJ3Qgd29ycnkKKy1hYm91dCBpdCB0b28gbXVjaC4g IE9uIHNvbWUgc3lzdGVtcyBgdHN0dXUnIHdpbGwgZmFpbCBiZWNhdXNlIG9mCistcHJvYmxlbXMg dXNpbmcgcHNldWRvIHRlcm1pbmFscywgd2hpY2ggd2lsbCBub3QgbWF0dGVyIGluIG5vcm1hbCB1 c2UuCistVGhlIHJlYWwgdGVzdCBvZiB0aGUgcGFja2FnZSBpcyB0YWxraW5nIHRvIGFub3RoZXIg c3lzdGVtLgorLQorLR8KKy1GaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnN0YWxsaW5nIHRoZSBC aW5hcmllcywgIE5leHQ6IENvbmZpZ3VyYXRpb24sICBQcmV2OiBUZXN0aW5nIHRoZSBDb21waWxh dGlvbiwgIFVwOiBJbnN0YWxsaW5nIFRheWxvciBVVUNQCisrVGhlIGNvZGUgaXMgY2FyZWZ1bGx5 IHNlZ3JlZ2F0ZWQgaW50byBhIHN5c3RlbSBpbmRlcGVuZGVudCBwb3J0aW9uIGFuZCBhCisrc3lz dGVtIGRlcGVuZGVudCBwb3J0aW9uLiAgVGhlIHN5c3RlbSBkZXBlbmRlbnQgY29kZSBpcyBpbiB0 aGUgYHVuaXgnCisrc3ViZGlyZWN0b3J5LCBhbmQgYWxzbyBpbiB0aGUgZmlsZSBgc3lzaC51bngn IChhbHNvIGtub3duIGFzCisrYHN5c2RlcC5oJykuCisgCistSW5zdGFsbGluZyB0aGUgQmluYXJp ZXMKKy09PT09PT09PT09PT09PT09PT09PT09PQorKyAgIFdpdGggdGhlIHJpZ2h0IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVycywgdGhlIHN5c3RlbSBpbmRlcGVuZGVudCBjb2RlCisrY2FsbHMgb25s eSBBTlNJIEMgZnVuY3Rpb25zLiAgU29tZSBvZiB0aGUgbGVzcyBjb21tb24gQU5TSSBDIGZ1bmN0 aW9ucworK2FyZSBhbHNvIHByb3ZpZGVkIGluIHRoZSBgbGliJyBkaXJlY3RvcnkuICBUaGUgcmVw bGFjZW1lbnQgZnVuY3Rpb24KKytgc3RydG9sJyBpbiBgbGliL3N0cnRvbC5jJyBhc3N1bWVzIHRo YXQgdGhlIGNoYXJhY3RlcnMgYEEnIHRvIGBGJyBhbmQKKytgYScgdG8gYGYnIGFwcGVhciBpbiBz dHJpY3RseSBzZXF1ZW50aWFsIG9yZGVyLiAgVGhlIGZ1bmN0aW9uCisrYGlncmFkZWNtcCcgaW4g YHV1Y29uZi9ncmRjbXAuYycgYXNzdW1lcyB0aGF0IHRoZSB1cHBlciBhbmQgbG93ZXIgY2FzZQor K2xldHRlcnMgYXBwZWFyIGluIG9yZGVyLiAgQm90aCBhc3N1bXB0aW9ucyBhcmUgdHJ1ZSBmb3Ig QVNDSUkgYW5kCisrRUJDRElDLCBidXQgbmVpdGhlciBpcyBndWFyYW50ZWVkIGJ5IEFOU0kgQy4g IERpc3JlZ2FyZGluZyB0aGVzZQorK2NhdmVhdHMsIEkgYmVsaWV2ZSB0aGF0IHRoZSBzeXN0ZW0g aW5kZXBlbmRlbnQgcG9ydGlvbiBvZiB0aGUgY29kZSBpcworK3N0cmljdGx5IGNvbmZvcm1pbmcu CisgCistICAgWW91IGNhbiBpbnN0YWxsIHRoZSBleGVjdXRhYmxlIGZpbGVzIGJ5IGJlY29taW5n IGByb290JyBhbmQgdHlwaW5nCistYG1ha2UgaW5zdGFsbCcuICBPciB5b3UgY2FuIGxvb2sgYXQg d2hhdCBgbWFrZSBpbnN0YWxsJyBkb2VzIGFuZCBkbyBpdAorLWJ5IGhhbmQuICBJdCB0cmllcyB0 byBwcmVzZXJ2ZSB5b3VyIG9sZCBwcm9ncmFtcywgaWYgYW55LCBidXQgaXQgb25seQorLWRvZXMg dGhpcyB0aGUgZmlyc3QgdGltZSBUYXlsb3IgVVVDUCBpcyBpbnN0YWxsZWQgKHNvIHRoYXQgaWYg eW91CistaW5zdGFsbCBzZXZlcmFsIHZlcnNpb25zIG9mIFRheWxvciBVVUNQLCB5b3UgY2FuIHN0 aWxsIGdvIGJhY2sgdG8geW91cgorLW9yaWdpbmFsIFVVQ1AgcHJvZ3JhbXMpLiAgWW91IGNhbiBy ZXRyaWV2ZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbXMgYnkKKy10eXBpbmcgYG1ha2UgdW5pbnN0YWxs Jy4KKy0KKy0gICBOb3RlIHRoYXQgYnkgZGVmYXVsdCB0aGUgcHJvZ3JhbXMgYXJlIGNvbXBpbGVk IHdpdGggZGVidWdnaW5nCistaW5mb3JtYXRpb24sIGFuZCB0aGV5IGFyZSBub3Qgc3RyaXBwZWQg d2hlbiB0aGV5IGFyZSBpbnN0YWxsZWQuICBZb3UgbWF5Cistd2FudCB0byBzdHJpcCB0aGUgaW5z dGFsbGVkIHByb2dyYW1zIHRvIHNhdmUgZGlzayBzcGFjZS4gIEZvciBtb3JlCistaW5mb3JtYXRp b24sIHNlZSB5b3VyIHN5c3RlbSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYHN0cmlwJyBwcm9ncmFt LgorKyAgIFRoYXQncyBub3QgdG9vIGV4Y2l0aW5nLCBzaW5jZSBhbGwgdGhlIHdvcmsgaXMgZG9u ZSBpbiB0aGUgc3lzdGVtCisrZGVwZW5kZW50IGNvZGUuICBJIHRoaW5rIHRoYXQgdGhpcyBjb2Rl IGNhbiBjb25mb3JtIHRvIFBPU0lYIDEwMDMuMSwKKytnaXZlbiB0aGUgcmlnaHQgY29tcGlsYXRp b24gcGFyYW1ldGVycy4gIEknbSBhIGJpdCBsZXNzIGNlcnRhaW4gYWJvdXQKKyt0aGlzLCB0aG91 Z2guCisgCistICAgT2YgY291cnNlLCBzaW1wbHkgaW5zdGFsbGluZyB0aGUgZXhlY3V0YWJsZSBm aWxlcyBpcyBub3QgZW5vdWdoLiAgWW91CistbXVzdCBhbHNvIGFycmFuZ2UgZm9yIHRoZW0gdG8g YmUgdXNlZCBjb3JyZWN0bHkuCisrICAgVGhlIGNvZGUgaGFzIGJlZW4gdXNlZCBvbiBhIDE2IGJp dCBzZWdtZW50ZWQgc3lzdGVtIHdpdGggbm8gZnVuY3Rpb24KKytwcm90b3R5cGVzLCBzbyBJJ20g ZmFpcmx5IGNlcnRhaW4gdGhhdCBhbGwgY2FzdHMgdG8gbG9uZyBhbmQgcG9pbnRlcnMKKythcmUg ZG9uZSB3aGVuIG5lY2Vzc2FyeS4KKyAKKyAfCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogQ29u ZmlndXJhdGlvbiwgIE5leHQ6IFRlc3RpbmcgdGhlIEluc3RhbGxhdGlvbiwgIFByZXY6IEluc3Rh bGxpbmcgdGhlIEJpbmFyaWVzLCAgVXA6IEluc3RhbGxpbmcgVGF5bG9yIFVVQ1AKKy0KKy1Db25m aWd1cmluZyBUYXlsb3IgVVVDUAorLT09PT09PT09PT09PT09PT09PT09PT09CisrRmlsZTogdXVj cC5pbmZvLCAgTm9kZTogTmFtaW5nIENvbnZlbnRpb25zLCAgTmV4dDogUGF0Y2hlcywgIFByZXY6 IFN5c3RlbSBEZXBlbmRlbmNlLCAgVXA6IEhhY2tpbmcKKyAKKy0gICBZb3Ugd2lsbCBoYXZlIHRv IGRlY2lkZSB3aGF0IHR5cGVzIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMgeW91IHdhbnQgdG8KKy11 c2UuICBUaGlzIHBhY2thZ2Ugc3VwcG9ydHMgYSBuZXcgc29ydCBvZiBjb25maWd1cmF0aW9uIGZp bGU7IHNlZSAqTm90ZQorLUNvbmZpZ3VyYXRpb24gRmlsZXM6Oi4gIEl0IGFsc28gc3VwcG9ydHMg VjIgY29uZmlndXJhdGlvbiBmaWxlcworLShgTC5zeXMnLCBgTC1kZXZpY2VzJywgZXRjLikgYW5k IEhEQiBjb25maWd1cmF0aW9uIGZpbGVzIChgU3lzdGVtcycsCistYERldmljZXMnLCBldGMuKS4g IE5vIGRvY3VtZW50YXRpb24gaXMgcHJvdmlkZWQgZm9yIFYyIG9yIEhEQgorLWNvbmZpZ3VyYXRp b24gZmlsZXMuICBBbGwgdHlwZXMgb2YgY29uZmlndXJhdGlvbiBmaWxlcyBjYW4gYmUgdXNlZCBh dAorLW9uY2UsIGlmIHlvdSBhcmUgc28gaW5jbGluZWQuICBDdXJyZW50bHkgdXNpbmcganVzdCBW MiBjb25maWd1cmF0aW9uCistZmlsZXMgaXMgbm90IHJlYWxseSBwb3NzaWJsZSwgYmVjYXVzZSB0 aGVyZSBpcyBubyB3YXkgdG8gc3BlY2lmeSBhCistZGlhbGVyICh0aGVyZSBhcmUgbm8gYnVpbHQg aW4gZGlhbGVycywgYW5kIHRoZSBwcm9ncmFtIGRvZXMgbm90IGtub3cKKy1ob3cgdG8gcmVhZCBg YWN1Y2FwJyBvciBgbW9kZW1jYXAnKTsgaG93ZXZlciwgVjIgY29uZmlndXJhdGlvbiBmaWxlcwor LWNhbiBiZSB1c2VkIHdpdGggYSBuZXcgc3R5bGUgZGlhbCBmaWxlICgqbm90ZSBkaWFsIEZpbGU6 OiksIG9yIHdpdGggYQorLUhEQiBgRGlhbGVycycgZmlsZS4KKy0KKy0gICBVc2Ugb2YgSERCIGNv bmZpZ3VyYXRpb24gZmlsZXMgaGFzIHR3byBrbm93biBidWdzLiAgQSBibGFuayBsaW5lIGluCist dGhlIG1pZGRsZSBvZiBhbiBlbnRyeSBpbiB0aGUgYFBlcm1pc3Npb25zJyBmaWxlIHdpbGwgbm90 IGJlIGlnbm9yZWQgYXMKKy1pdCBzaG91bGQgYmUuICBEaWFsZXIgcHJvZ3JhbXMsIGFzIGZvdW5k IGluIHNvbWUgdmVyc2lvbnMgb2YgSERCLCBhcmUKKy1ub3QgcmVjb2duaXplZCBkaXJlY3RseS4g IElmIHlvdSBtdXN0IHVzZSBhIGRpYWxlciBwcm9ncmFtLCByYXRoZXIgdGhhbgorLWFuIGVudHJ5 IGluIGBEZXZpY2VzJywgeW91IG11c3QgdXNlIHRoZSBgY2hhdC1wcm9ncmFtJyBjb21tYW5kIGlu IGEgbmV3Cistc3R5bGUgZGlhbCBmaWxlOyBzZWUgKk5vdGUgZGlhbCBGaWxlOjouICBZb3Ugd2ls bCBoYXZlIHRvIGludm9rZSB0aGUKKy1kaWFsZXIgcHJvZ3JhbSB2aWEgYSBzaGVsbCBzY3JpcHQg b3IgYW5vdGhlciBwcm9ncmFtLCBzaW5jZSBhbiBleGl0CistY29kZSBvZiAwIGlzIHJlcXVpcmVk IHRvIHJlY29nbml6ZSBzdWNjZXNzOyB0aGUgYGRpYWxIREInIHByb2dyYW0gaW4KKy10aGUgYGNv bnRyaWInIGRpcmVjdG9yeSBtYXkgYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLgorLQorLSAgIFRo ZSBgdXVjb252JyAoKm5vdGUgSW52b2tpbmcgdXVjb252OjopIHByb2dyYW0gY2FuIGJlIHVzZWQg dG8KKy1jb252ZXJ0IGZyb20gVjIgb3IgSERCIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gdGhlIG5l dyBzdHlsZSAoaXQgY2FuIGFsc28KKy1kbyB0aGUgcmV2ZXJzZSB0cmFuc2xhdGlvbiwgaWYgeW91 IGFyZSBzbyBpbmNsaW5lZCkuICBJdCB3aWxsIG5vdCBkbyBhbGwKKy1vZiB0aGUgd29yaywgYW5k IHRoZSByZXN1bHRzIHNob3VsZCBiZSBjYXJlZnVsbHkgY2hlY2tlZCwgYnV0IGl0IGNhbiBiZQor LXF1aXRlIHVzZWZ1bC4KKy0KKy0gICBJZiB5b3UgYXJlIGluc3RhbGxpbmcgYSBuZXcgc3lzdGVt LCB5b3Ugd2lsbCwgb2YgY291cnNlLCBoYXZlIHRvCistd3JpdGUgdGhlIGNvbmZpZ3VyYXRpb24g ZmlsZXM7IHNlZSAqTm90ZSBDb25maWd1cmF0aW9uIEZpbGVzOjogZm9yCistZGV0YWlscyBvbiBo b3cgdG8gZG8gdGhpcy4KKys3LjIgTmFtaW5nIENvbnZlbnRpb25zCisrPT09PT09PT09PT09PT09 PT09PT09PQorIAorLSAgIEFmdGVyIHdyaXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMsIHVz ZSB0aGUgYHV1Y2hrJyBwcm9ncmFtIHRvCistdmVyaWZ5IHRoYXQgdGhleSBhcmUgd2hhdCB5b3Ug ZXhwZWN0OyBzZWUgKk5vdGUgSW52b2tpbmcgdXVjaGs6Oi4KKy0KKy0fCistRmlsZTogdXVjcC5p bmZvLCAgTm9kZTogVGVzdGluZyB0aGUgSW5zdGFsbGF0aW9uLCAgUHJldjogQ29uZmlndXJhdGlv biwgIFVwOiBJbnN0YWxsaW5nIFRheWxvciBVVUNQCisrSSB1c2UgYSBtb2RpZmllZCBIdW5nYXJp YW4gbmFtaW5nIGNvbnZlbnRpb24gZm9yIG15IHZhcmlhYmxlcyBhbmQKKytmdW5jdGlvbnMuICBB cyB3aXRoIGFsbCBuYW1pbmcgY29udmVudGlvbnMsIHRoZSBjb2RlIGlzIHJhdGhlciBvcGFxdWUg aWYKKyt5b3UgYXJlIG5vdCBmYW1pbGlhciB3aXRoIGl0LCBidXQgYmVjb21lcyBjbGVhciBhbmQg ZWFzeSB0byB1c2Ugd2l0aAorK3RpbWUuCisgCistVGVzdGluZyB0aGUgSW5zdGFsbGF0aW9uCist PT09PT09PT09PT09PT09PT09PT09PT09CistCistICAgQWZ0ZXIgeW91IGhhdmUgd3JpdHRlbiB0 aGUgY29uZmlndXJhdGlvbiBmaWxlcywgYW5kIHZlcmlmaWVkIHRoZW0KKy13aXRoIHRoZSBgdXVj aGsnIHByb2dyYW0gKCpub3RlIEludm9raW5nIHV1Y2hrOjopLCB5b3UgbXVzdCBjaGVjayB0aGF0 CistVVVDUCBjYW4gY29ycmVjdGx5IGNvbnRhY3QgYW5vdGhlciBzeXN0ZW0uCistCistICAgVGVs bCBgdXVjaWNvJyB0byBkaWFsIG91dCB0byB0aGUgc3lzdGVtIGJ5IHVzaW5nIHRoZSBgLXMnIHN5 c3RlbQorLXN3aXRjaCAoZS5nLiwgYHV1Y2ljbyAtcyB1dW5ldCcpLiAgVGhlIGxvZyBmaWxlIHNo b3VsZCB0ZWxsIHlvdSB3aGF0CistaGFwcGVucy4gIFRoZSBleGFjdCBsb2NhdGlvbiBvZiB0aGUg bG9nIGZpbGUgZGVwZW5kcyB1cG9uIHRoZSBzZXR0aW5ncworLWluIGBwb2xpY3kuaCcgd2hlbiB5 b3UgY29tcGlsZWQgdGhlIHByb2dyYW0sIGFuZCBvbiB0aGUgdXNlIG9mIHRoZQorLWBsb2dmaWxl JyBjb21tYW5kIGluIHRoZSBgY29uZmlnJyBmaWxlLiAgVHlwaWNhbCBsb2NhdGlvbnMgYXJlCist YC91c3Ivc3Bvb2wvdXVjcC9Mb2cnIG9yIGEgc3ViZGlyZWN0b3J5IHVuZGVyIGAvdXNyL3Nwb29s L3V1Y3AvLkxvZycuCistCistICAgSWYgeW91IGNvbXBpbGVkIHRoZSBjb2RlIHdpdGggZGVidWdn aW5nIGVuYWJsZWQsIHlvdSBjYW4gdXNlCistZGVidWdnaW5nIG1vZGUgdG8gZ2V0IGEgZ3JlYXQg ZGVhbCBvZiBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHNvcnQgb2YKKy1kYXRhIGlzIGZsb3dpbmcg YmFjayBhbmQgZm9ydGg7IHRoZSB2YXJpb3VzIHBvc3NpYmlsaXRpZXMgYXJlIGRlc2NyaWJlZAor LXdpdGggdGhlIGBkZWJ1ZycgY29tbWFuZCAoKm5vdGUgRGVidWdnaW5nIExldmVsczo6KS4gIFdo ZW4gaW5pdGlhbGx5Cistc2V0dGluZyB1cCBhIGNvbm5lY3Rpb24gYC14IGNoYXQnIGlzIHByb2Jh Ymx5IHRoZSBtb3N0IHVzZWZ1bCAoZS5nLiwKKy1gdXVjaWNvIC1zIHV1bmV0IC14IGNoYXQnKTsg eW91IG1heSBhbHNvIHdhbnQgdG8gdXNlIGAteAorLWhhbmRzaGFrZSxpbmNvbWluZyxvdXRnb2lu ZycuICBZb3UgY2FuIHVzZSBgLXgnIG11bHRpcGxlIHRpbWVzIG9uIG9uZQorLWNvbW1hbmQgbGlu ZSwgb3IgeW91IGNhbiBnaXZlIGl0IGNvbW1hIHNlcGFyYXRlZCBhcmd1bWVudHMgYXMgaW4gdGhl CistbGFzdCBleGFtcGxlLiAgVXNlIGAteCBhbGwnIHRvIHR1cm4gb24gYWxsIHBvc3NpYmxlIGRl YnVnZ2luZworLWluZm9ybWF0aW9uLgorLQorLSAgIFRoZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24g aXMgd3JpdHRlbiB0byBhIGZpbGUsIG5vcm1hbGx5CistYC91c3Ivc3Bvb2wvdXVjcC9EZWJ1Zycs IGFsdGhvdWdoIHRoZSBkZWZhdWx0IGNhbiBiZSBjaGFuZ2VkIGluCistYHBvbGljeS5oJywgYW5k IHRoZSBgY29uZmlnJyBmaWxlIGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCB3aXRoIHRoZQorLWBk ZWJ1Z2ZpbGUnIGNvbW1hbmQuICBUaGUgZGVidWdnaW5nIGZpbGUgbWF5IGNvbnRhaW4gcGFzc3dv cmRzIGFuZCBzb21lCistZmlsZSBjb250ZW50cyBhcyB0aGV5IGFyZSB0cmFuc21pdHRlZCBvdmVy IHRoZSBsaW5lLCBzbyB0aGUgZGVidWdnaW5nCistZmlsZSBpcyBvbmx5IHJlYWRhYmxlIGJ5IHRo ZSBgdXVjcCcgdXNlci4KKy0KKy0gICBZb3UgY2FuIHVzZSB0aGUgYC1mJyBzd2l0Y2ggdG8gZm9y Y2UgYHV1Y2ljbycgdG8gY2FsbCBvdXQgZXZlbiBpZgorLXRoZSBsYXN0IGNhbGwgZmFpbGVkIHJl Y2VudGx5OyB1c2luZyBgLVMnIHdoZW4gbmFtaW5nIGEgc3lzdGVtIGhhcyB0aGUKKy1zYW1lIGVm ZmVjdC4gIE90aGVyd2lzZSB0aGUgc3RhdHVzIGZpbGUgKGluIHRoZSBgLlN0YXR1cycgc3ViZGly ZWN0b3J5Cistb2YgdGhlIG1haW4gc3Bvb2wgZGlyZWN0b3J5LCBub3JtYWxseSBgL3Vzci9zcG9v bC91dWNwJykgKCpub3RlIFN0YXR1cworLURpcmVjdG9yeTo6KSB3aWxsIHByZXZlbnQgdG9vIG1h bnkgYXR0ZW1wdHMgZnJvbSBvY2N1cnJpbmcgaW4gcmFwaWQKKy1zdWNjZXNzaW9uLgorLQorLSAg IE9uIG9sZGVyIFN5c3RlbSBWIGJhc2VkIHN5c3RlbXMgd2hpY2ggZG8gbm90IGhhdmUgdGhlIGBz ZXRyZXVpZCcKKy1zeXN0ZW0gY2FsbCwgcHJvYmxlbXMgbWF5IGFyaXNlIGlmIG9yZGluYXJ5IHVz ZXJzIGNhbiBzdGFydCBhbiBleGVjdXRpb24KKy1vZiBgdXV4cXQnLCBwZXJoYXBzIGluZGlyZWN0 bHkgdmlhIGB1dWNwJyBvciBgdXV4Jy4gIFVVQ1Agam9icyBtYXkgd2luZAorLXVwIGV4ZWN1dGlu ZyB3aXRoIGEgcmVhbCB1c2VyIElEIG9mIHRoZSB1c2VyIHdobyBpbnZva2VkIGB1dXhxdCcsIHdo aWNoCistY2FuIGNhdXNlIHByb2JsZW1zIGlmIHRoZSBVVUNQIGpvYiBjaGVja3MgdGhlIHJlYWwg dXNlciBJRCBmb3Igc2VjdXJpdHkKKy1wdXJwb3Nlcy4gIE9uIHN1Y2ggc3lzdGVtcywgaXQgaXMg c2FmZXN0IHRvIHB1dCBgcnVuLXV1eHF0IG5ldmVyJworLSgqbm90ZSBNaXNjZWxsYW5lb3VzIChj b25maWcpOjopIGluIHRoZSBgY29uZmlnJyBmaWxlLCBzbyB0aGF0IGB1dWNpY28nCistbmV2ZXIg c3RhcnRzIGB1dXhxdCcsIGFuZCBpbnZva2UgYHV1eHF0JyBkaXJlY3RseSBmcm9tIGEgYGNyb250 YWInIGZpbGUuCistCistICAgUGxlYXNlIGxldCBtZSBrbm93IGFib3V0IGFueSBwcm9ibGVtcyB5 b3UgaGF2ZSBhbmQgaG93IHlvdSBnb3QgYXJvdW5kCistdGhlbS4gIElmIHlvdSBkbyByZXBvcnQg YSBwcm9ibGVtLCBwbGVhc2UgaW5jbHVkZSB0aGUgdmVyc2lvbiBudW1iZXIgb2YKKy10aGUgcGFj a2FnZSB5b3UgYXJlIHVzaW5nLCB0aGUgb3BlcmF0aW5nIHN5c3RlbSB5b3UgYXJlIHJ1bm5pbmcg aXQgb24sCistYW5kIGEgc2FtcGxlIG9mIHRoZSBkZWJ1Z2dpbmcgZmlsZSBzaG93aW5nIHRoZSBw cm9ibGVtIChkZWJ1Z2dpbmcKKy1pbmZvcm1hdGlvbiBpcyB1c3VhbGx5IHdoYXQgaXMgbmVlZGVk LCBub3QganVzdCB0aGUgbG9nIGZpbGUpLiAgR2VuZXJhbAorLXF1ZXN0aW9ucyBzdWNoIGFzICJ3 aHkgZG9lc24ndCBgdXVjaWNvJyBkaWFsIG91dCIgYXJlIGltcG9zc2libGUgdG8KKy1hbnN3ZXIg d2l0aG91dCBtdWNoIG1vcmUgaW5mb3JtYXRpb24uCistCistHworLUZpbGU6IHV1Y3AuaW5mbywg IE5vZGU6IFVzaW5nIFRheWxvciBVVUNQLCAgTmV4dDogQ29uZmlndXJhdGlvbiBGaWxlcywgIFBy ZXY6IEluc3RhbGxpbmcgVGF5bG9yIFVVQ1AsICBVcDogVG9wCisrICAgVGhlIGZpcnN0IGNoYXJh Y3RlciBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlIHZhcmlhYmxlIChvciBmdW5jdGlvbgorK3Jl dHVybiB2YWx1ZSkuICBTb21ldGltZXMgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIGFyZSB1c2VkLiAg SSB1c2UgdGhlCisrZm9sbG93aW5nIHR5cGUgcHJlZml4ZXM6CisgCistVXNpbmcgVGF5bG9yIFVV Q1AKKy0qKioqKioqKioqKioqKioqKgorK2BhJworKyAgICAgYXJyYXk7IHRoZSBuZXh0IGNoYXJh Y3RlciBpcyB0aGUgdHlwZSBvZiBhbiBlbGVtZW50CisgCistKiBNZW51OgorK2BiJworKyAgICAg Ynl0ZSBvciBjaGFyYWN0ZXIKKyAKKy0qIENhbGxpbmcgT3RoZXIgU3lzdGVtczo6ICAgICAgIENh bGxpbmcgT3RoZXIgU3lzdGVtcworLSogQWNjZXB0aW5nIENhbGxzOjogICAgICAgICAgICAgQWNj ZXB0aW5nIENhbGxzCistKiBNYWlsIGFuZCBOZXdzOjogICAgICAgICAgICAgICBVc2luZyBVVUNQ IGZvciBNYWlsIGFuZCBOZXdzCistKiBUaGUgU3Bvb2wgRGlyZWN0b3J5IExheW91dDo6ICBUaGUg U3Bvb2wgRGlyZWN0b3J5IExheW91dAorLSogU3Bvb2wgRGlyZWN0b3J5IENsZWFuaW5nOjogICAg Q2xlYW5pbmcgdGhlIFVVQ1AgU3Bvb2wgRGlyZWN0b3J5CisrYGMnCisrICAgICBjb3VudCBvZiBz b21ldGhpbmcKKyAKKy0fCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogQ2FsbGluZyBPdGhlciBT eXN0ZW1zLCAgTmV4dDogQWNjZXB0aW5nIENhbGxzLCAgUHJldjogVXNpbmcgVGF5bG9yIFVVQ1As ICBVcDogVXNpbmcgVGF5bG9yIFVVQ1AKKytgZScKKysgICAgIHN0ZGlvIEZJTEUgKgorIAorLUNh bGxpbmcgT3RoZXIgU3lzdGVtcworLT09PT09PT09PT09PT09PT09PT09PQorK2BmJworKyAgICAg Ym9vbGVhbgorIAorLSAgIEJ5IGRlZmF1bHQgYHV1Y3AnIGFuZCBgdXV4JyB3aWxsIGF1dG9tYXRp Y2FsbHkgc3RhcnQgdXAgYHV1Y2ljbycgdG8KKy1jYWxsIGFub3RoZXIgc3lzdGVtIHdoZW5ldmVy IHdvcmsgaXMgcXVldWVkIHVwLiAgSG93ZXZlciwgdGhlIGNhbGwgbWF5CistZmFpbCwgb3IgeW91 IG1heSBoYXZlIHB1dCBpbiB0aW1lIHJlc3RyaWN0aW9ucyB3aGljaCBwcmV2ZW50IHRoZSBjYWxs CistYXQgdGhhdCB0aW1lIChwZXJoYXBzIGJlY2F1c2UgdGVsZXBob25lIHJhdGVzIGFyZSBoaWdo KSAoKm5vdGUgV2hlbiB0bworLUNhbGw6OikuICBBbHNvLCBhIHJlbW90ZSBzeXN0ZW0gbWF5IGhh dmUgd29yayBxdWV1ZWQgdXAgZm9yIHlvdXIKKy1zeXN0ZW0sIGJ1dCBtYXkgbm90IGJlIGNhbGxp bmcgeW91IGZvciBzb21lIHJlYXNvbiAocGVyaGFwcyB5b3UgaGF2ZQorLWFncmVlZCB0aGF0IHlv dXIgc3lzdGVtIHNob3VsZCBhbHdheXMgcGxhY2UgdGhlIGNhbGwpLiAgVG8gbWFrZSBzdXJlCist dGhhdCB3b3JrIGdldHMgdHJhbnNmZXJyZWQgYmV0d2VlbiB0aGUgc3lzdGVtcyB3aXRoaW5nIGEg cmVhc29uYWJsZQorLXRpbWUgcGVyaW9kLCB5b3Ugc2hvdWxkIGFycmFuZ2UgdG8gcGVyaW9kaWNh bGx5IGludm9rZSBgdXVjaWNvJy4KKy0KKy0gICBUaGVzZSBwZXJpb2RpYyBpbnZvY2F0aW9ucyBh cmUgbm9ybWFsbHkgdHJpZ2dlcmVkIGJ5IGVudHJpZXMgaW4gdGhlCistYGNyb250YWInIGZpbGUu ICBUaGUgZXhhY3QgZm9ybWF0IG9mIGBjcm9udGFiJyBmaWxlcywgYW5kIGhvdyBuZXcKKy1lbnRy aWVzIGFyZSBhZGRlZCwgdmFyaWVzIGZyb20gc3lzdGVtIHRvIHN5c3RlbTsgY2hlY2sgeW91ciBs b2NhbAorLWRvY3VtZW50YXRpb24gKHRyeSBgbWFuIGNyb24nKS4KKy0KKy0gICBUbyBhdHRlbXB0 IHRvIGNhbGwgYWxsIHN5c3RlbXMgd2l0aCBvdXRzdGFuZGluZyB3b3JrLCB1c2UgdGhlIGNvbW1h bmQKKy1gdXVjaWNvIC1yMScuICBUbyBhdHRlbXB0IHRvIGNhbGwgYSBwYXJ0aWN1bGFyIHN5c3Rl bSwgdXNlIHRoZSBjb21tYW5kCistYHV1Y2ljbyAtcyBTWVNURU0nLiAgVG8gYXR0ZW1wdCB0byBj YWxsIGEgcGFydGljdWxhciBzeXN0ZW0sIGJ1dCBvbmx5CistaWYgdGhlcmUgaXMgd29yayBmb3Ig aXQsIHVzZSB0aGUgY29tbWFuZCBgdXVjaWNvIC1DIC1zIFNZU1RFTScuICAoKm5vdGUKKy1JbnZv a2luZyB1dWNpY286OikuCistCistICAgQSBjb21tb24gY2FzZSBpcyB0byB3YW50IHRvIHRyeSB0 byBjYWxsIGEgc3lzdGVtIGF0IGEgY2VydGFpbiB0aW1lLAorLXdpdGggcGVyaW9kaWMgcmV0cmll cyBpZiB0aGUgY2FsbCBmYWlscy4gIEEgc2ltcGxlIHdheSB0byBkbyB0aGlzIGlzIHRvCistY3Jl YXRlIGFuIGVtcHR5IFVVQ1AgY29tbWFuZCBmaWxlLCBrbm93biBhcyBhICJwb2xsIGZpbGUiLiAg SWYgYSBwb2xsCistZmlsZSBleGlzdHMgZm9yIGEgc3lzdGVtLCB0aGVuIGB1dWNpY28gLXIxJyB3 aWxsIHBsYWNlIGEgY2FsbCB0byBpdC4KKy1JZiB0aGUgY2FsbCBzdWNjZWVkcywgdGhlIHBvbGwg ZmlsZSB3aWxsIGJlIGRlbGV0ZWQuCistCistICAgQSBwb2xsIGZpbGUgY2FuIGJlIGVhc2lseSBj cmVhdGVkIHVzaW5nIHRoZSBgdXV4JyBjb21tYW5kLCBieQorLXJlcXVlc3RpbmcgdGhlIGV4ZWN1 dGlvbiBvZiBhbiBlbXB0eSBjb21tYW5kLiAgVG8gY3JlYXRlIGEgcG9sbCBmaWxlIGZvcgorLVNZ U1RFTSwganVzdCBkbyBzb21ldGhpbmcgbGlrZSB0aGlzOgorLSAgICAgdXV4IC1yIFNZU1RFTSEK Ky0gICBUaGUgYC1yJyB0ZWxscyBgdXV4JyB0byBub3Qgc3RhcnQgdXAgYHV1Y2ljbycgaW1tZWRp YXRlbHkuICBPZgorLWNvdXJzZSwgaWYgeW91IGRvIHdhbnQgYHV1Y2ljbycgdG8gc3RhcnQgdXAg cmlnaHQgYXdheSwgb21pdCB0aGUgYC1yJzsKKy1pZiB0aGUgY2FsbCBmYWlscywgdGhlIHBvbGwg ZmlsZSB3aWxsIGJlIGxlZnQgYXJvdW5kIHRvIGNhdXNlIGEgbGF0ZXIKKy1jYWxsLgorLQorLSAg IEZvciBleGFtcGxlLCBJIHVzZSB0aGUgZm9sbG93aW5nIGNyb250YWIgZW50cmllcyBsb2NhbGx5 OgorLQorLSAgICAgNDUgKiAqICogKiAvYmluL2VjaG8gL3Vzci9saWIvdXVjcC91dWNpY28gLXIx IHwgL2Jpbi9zdSB1dWNwYQorLSAgICAgNDAgNCwxMCwxNSAqICogKiAvdXNyL2Jpbi91dXggLXIg dXVuZXQhCistCistICAgRXZlcnkgaG91ciwgYXQgNDUgbWludXRlcyBwYXN0LCB0aGlzIHdpbGwg Y2hlY2sgaWYgdGhlcmUgaXMgYW55IHdvcmsKKy10byBiZSBkb25lLCBhbmQsIGlmIHRoZXJlIGlz LCB3aWxsIGNhbGwgdGhlIGFwcHJvcHJpYXRlIHN5c3RlbS4gIEFsc28sCistYXQgNDo0MGFtLCAx MDo0MGFtLCBhbmQgMzo0MHBtLCB0aGlzIHdpbGwgY3JlYXRlIGEgcG9sbCBmaWxlIGZpbGUgZm9y CistYHV1bmV0JywgZm9yY2luZyB0aGUgbmV4dCBydW4gb2YgYHV1Y2ljbycgdG8gY2FsbCBgdXVu ZXQnLgorK2BpJworKyAgICAgZ2VuZXJpYyBpbnRlZ2VyCisgCistHworLUZpbGU6IHV1Y3AuaW5m bywgIE5vZGU6IEFjY2VwdGluZyBDYWxscywgIE5leHQ6IE1haWwgYW5kIE5ld3MsICBQcmV2OiBD YWxsaW5nIE90aGVyIFN5c3RlbXMsICBVcDogVXNpbmcgVGF5bG9yIFVVQ1AKKytgbCcKKysgICAg IGRvdWJsZQorIAorLUFjY2VwdGluZyBDYWxscworLT09PT09PT09PT09PT09PQorK2BvJworKyAg ICAgZmlsZSBkZXNjcmlwdG9yIChhcyByZXR1cm5lZCBieSBvcGVuLCBjcmVhdCwgZXRjLikKKyAK Ky0gICBUbyBhY2NlcHQgY2FsbHMgZnJvbSBhbm90aGVyIHN5c3RlbSwgeW91IG11c3QgYXJyYW5n ZSBtYXR0ZXJzIHN1Y2gKKy10aGF0IHdoZW4gdGhhdCBzeXN0ZW0gY2FsbHMgaW4sIGl0IGF1dG9t YXRpY2FsbHkgaW52b2tlcyBgdXVjaWNvJyBvbgorLXlvdXIgc3lzdGVtLgorLQorLSAgIFRoZSBt b3N0IGNvbW1vbiBhcnJhbmdlbWVudCBpcyB0byBjcmVhdGUgYSBzcGVjaWFsIHVzZXIgbmFtZSBh bmQKKy1wYXNzd29yZCBmb3IgaW5jb21pbmcgVVVDUCBjYWxscy4gIFRoaXMgdXNlciBuYW1lIHR5 cGljYWxseSB1c2VzIHRoZQorLXNhbWUgdXNlciBJRCBhcyB0aGUgcmVndWxhciBgdXVjcCcgdXNl ciAoVW5peCBwZXJtaXRzIHNldmVyYWwgdXNlcgorLW5hbWVzIHRvIHNoYXJlIHRoZSBzYW1lIHVz ZXIgSUQpLiAgVGhlIHNoZWxsIGZvciB0aGlzIHVzZXIgbmFtZSBzaG91bGQKKy1iZSBzZXQgdG8g YHV1Y2ljbycuCistCistICAgSGVyZSBpcyBhIHNhbXBsZSBgL2V0Yy9wYXNzd2QnIGxpbmUgdG8g YWNjZXB0IGNhbGxzIGZyb20gYSByZW1vdGUKKy1zeXN0ZW0gbmFtZWQgYWlyczoKKy0gICAgIFVh aXJzOlBBU1NXT1JEOjQ6ODphaXJzIFVVQ1A6L3Vzci9zcG9vbC91dWNwOi91c3IvbGliL3V1Y3Av dXVjaWNvCistICAgVGhlIGRldGFpbHMgbWF5IHZhcnkgb24geW91ciBzeXN0ZW0uICBZb3UgbXVz dCB1c2UgcmVhc29uYWJsZSB1c2VyCistYW5kIGdyb3VwIElEJ3MuICBZb3UgbXVzdCB1c2UgdGhl IGNvcnJlY3QgZmlsZSBuYW1lIGZvciBgdXVjaWNvJy4gIFRoZQorLVBBU1NXT1JEIG11c3QgYXBw ZWFyIGluIHRoZSBVVUNQIGNvbmZpZ3VyYXRpb24gZmlsZXMgb24gdGhlIHJlbW90ZQorLXN5c3Rl bSwgYnV0IHdpbGwgb3RoZXJ3aXNlIG5ldmVyIGJlIHNlZW4gb3IgdHlwZWQgYnkgYSBodW1hbi4K Ky0KKy0gICBOb3RlIHRoYXQgYHV1Y2ljbycgYXBwZWFycyBhcyB0aGUgbG9naW4gc2hlbGwsIGFu ZCB0aGF0IGl0IHdpbGwgYmUKKy1ydW4gd2l0aCBubyBhcmd1bWVudHMuICBUaGlzIG1lYW5zIHRo YXQgaXQgd2lsbCBzdGFydCBpbiBzbGF2ZSBtb2RlIGFuZAorLWFjY2VwdCBhbiBpbmNvbWluZyBj b25uZWN0aW9uLiAgKk5vdGUgSW52b2tpbmcgdXVjaWNvOjouCistCistICAgT24gc29tZSBzeXN0 ZW1zLCBjcmVhdGluZyBhbiBlbXB0eSBmaWxlIG5hbWVkIGAuaHVzaGxvZ2luJyBpbiB0aGUKKy1o b21lIGRpcmVjdG9yeSB3aWxsIHNraXAgdGhlIHByaW50aW5nIG9mIHZhcmlvdXMgYml0cyBvZiBp bmZvcm1hdGlvbgorLXdoZW4gdGhlIHJlbW90ZSBgdXVjaWNvJyBsb2dzIGluLCBzcGVlZGluZyB1 cCB0aGUgVVVDUCBjb25uZWN0aW9uCistcHJvY2Vzcy4KKy0KKy0gICBGb3IgdGhlIGdyZWF0ZXN0 IHNlY3VyaXR5LCBlYWNoIHN5c3RlbSB3aGljaCBjYWxscyBpbiBzaG91bGQgdXNlIGEKKy1kaWZm ZXJlbnQgdXNlciBuYW1lLCBlYWNoIHdpdGggYSBkaWZmZXJlbnQgcGFzc3dvcmQsIGFuZCB0aGUK Ky1gY2FsbGVkLWxvZ2luJyBjb21tYW5kIHNob3VsZCBiZSB1c2VkIGluIHRoZSBgc3lzJyBmaWxl IHRvIGVuc3VyZSB0aGF0CistdGhlIGNvcnJlY3QgbG9naW4gbmFtZSBpcyB1c2VkLiAgKk5vdGUg QWNjZXB0aW5nIGEgQ2FsbDo6LCBhbmQgc2VlCistKk5vdGUgU2VjdXJpdHk6Oi4KKy0KKy0gICBJ ZiB5b3UgbmV2ZXIgbmVlZCB0byBkaWFsIG91dCBmcm9tIHlvdXIgc3lzdGVtLCBidXQgb25seSBh Y2NlcHQKKy1pbmNvbWluZyBjYWxscywgeW91IGNhbiBhcnJhbmdlIGZvciBgdXVjaWNvJyB0byBo YW5kbGUgbG9naW5zIGl0c2VsZiwKKy1jb21wbGV0ZWx5IGNvbnRyb2xsaW5nIHRoZSBwb3J0LCBi eSB1c2luZyB0aGUgYC0tZW5kbGVzcycgb3B0aW9uLgorLSpOb3RlIEludm9raW5nIHV1Y2ljbzo6 LgorK2BwJworKyAgICAgZ2VuZXJpYyBwb2ludGVyCisgCistHworLUZpbGU6IHV1Y3AuaW5mbywg IE5vZGU6IE1haWwgYW5kIE5ld3MsICBOZXh0OiBUaGUgU3Bvb2wgRGlyZWN0b3J5IExheW91dCwg IFByZXY6IEFjY2VwdGluZyBDYWxscywgIFVwOiBVc2luZyBUYXlsb3IgVVVDUAorK2BxJworKyAg ICAgcG9pbnRlciB0byBzdHJ1Y3R1cmUKKyAKKy1Vc2luZyBVVUNQIGZvciBNYWlsIGFuZCBOZXdz LgorLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrYHMnCisrICAgICBzdHJ1Y3R1cmUK KyAKKy0gICBUYXlsb3IgVVVDUCBkb2VzIG5vdCBpbmNsdWRlIGEgbWFpbCBwYWNrYWdlLiAgQWxs IFVuaXggc3lzdGVtcyBjb21lCistd2l0aCBzb21lIHNvcnQgb2YgbWFpbCBkZWxpdmVyeSBhZ2Vu dCwgdHlwaWNhbGx5IGBzZW5kbWFpbCcgb3IgYE1NREYnLgorLVNvdXJjZSBjb2RlIGlzIGF2YWls YWJsZSBmb3Igc29tZSBhbHRlcm5hdGl2ZSBtYWlsIGRlbGl2ZXJ5IGFnZW50cywKKy1zdWNoIGFz IGBJREEgc2VuZG1haWwnIGFuZCBgc21haWwnLgorLQorLSAgIFRheWxvciBVVUNQIGFsc28gZG9l cyBub3QgaW5jbHVkZSBhIG5ld3MgcGFja2FnZS4gIFRoZSB0d28gbWFqb3IgVW5peAorLW5ld3Mg cGFja2FnZXMgYXJlIGBDLW5ld3MnIGFuZCBgSU5OJy4gIEJvdGggYXJlIGF2YWlsYWJsZSBpbiBz b3VyY2UKKy1jb2RlIGZvcm0uCistCistICAgQ29uZmlndXJpbmcgYW5kIHVzaW5nIG1haWwgZGVs aXZlcnkgYWdlbnRzIGlzIGEgbm90b3Jpb3VzbHkgY29tcGxleAorLXRvcGljLCBhbmQgSSB3aWxs IG5vdCBiZSBkaXNjdXNzaW5nIGl0IGhlcmUuICBDb25maWd1cmluZyBuZXdzIHN5c3RlbXMKKy1p cyB1c3VhbGx5IHNpbXBsZXIsIGJ1dCBJIHdpbGwgbm90IGJlIGRpc2N1c3NpbmcgdGhhdCBlaXRo ZXIuICBJIHdpbGwKKy1tZXJlbHkgZGVzY3JpYmUgdGhlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRo ZSBtYWlsIGFuZCBuZXdzIHN5c3RlbXMgYW5kCistVVVDUC4KKytgdScKKysgICAgIHZvaWQgKGZ1 bmN0aW9uIHJldHVybiB2YWx1ZXMgb25seSkKKyAKKy0gICBBIG1haWwgb3IgbmV3cyBzeXN0ZW0g aW50ZXJhY3RzIHdpdGggVVVDUCBpbiB0d28gd2F5czogc2VuZGluZyBhbmQKKy1yZWNlaXZpbmcu CisrYHonCisrICAgICBjaGFyYWN0ZXIgc3RyaW5nCisgCistKiBNZW51OgorKyAgIEEgZ2VuZXJp YyBwb2ludGVyIChgcCcpIGlzIHNvbWV0aW1lcyBhIGB2b2lkIConLCBzb21ldGltZXMgYQorK2Z1 bmN0aW9uIHBvaW50ZXIgaW4gd2hpY2ggY2FzZSB0aGUgcHJlZml4IGlzIHBmLCBhbmQgc29tZXRp bWVzIGEgcG9pbnRlcgorK3RvIGFub3RoZXIgdHlwZSwgaW4gd2hpY2ggY2FzZSB0aGUgbmV4dCBj aGFyYWN0ZXIgaXMgdGhlIHR5cGUgdG8gd2hpY2gKKytpdCBwb2ludHMgKHBmIGlzIG92ZXJsb2Fk ZWQpLgorIAorLSogU2VuZGluZyBtYWlsIG9yIG5ld3M6OiAgICAgICAgU2VuZGluZyBtYWlsIG9y IG5ld3MgdmlhIFVVQ1AKKy0qIFJlY2VpdmluZyBtYWlsIG9yIG5ld3M6OiAgICAgIFJlY2Vpdmlu ZyBtYWlsIG9yIG5ld3MgdmlhIFVVQ1AKKysgICBBbiBhcnJheSBvZiBzdHJpbmdzIChgY2hhciAq W10nKSB3b3VsZCBiZSBuYW1lZCBgYXonIChhcnJheSBvZgorK3N0cmluZykuICBJZiB0aGlzIGFy cmF5IHdlcmUgcGFzc2VkIHRvIGEgZnVuY3Rpb24sIHRoZSBmdW5jdGlvbgorK3BhcmFtZXRlciB3 b3VsZCBiZSBuYW1lZCBgcGF6JyAocG9pbnRlciB0byBhcnJheSBvZiBzdHJpbmcpLgorIAorLR8K Ky1GaWxlOiB1dWNwLmluZm8sICBOb2RlOiBTZW5kaW5nIG1haWwgb3IgbmV3cywgIE5leHQ6IFJl Y2VpdmluZyBtYWlsIG9yIG5ld3MsICBQcmV2OiBNYWlsIGFuZCBOZXdzLCAgVXA6IE1haWwgYW5k IE5ld3MKKysgICBOb3RlIHRoYXQgdGhlIHZhcmlhYmxlIG5hbWUgcHJlZml4ZXMgZG8gbm90IG5l Y2Vzc2FyaWx5IGluZGljYXRlIHRoZQorK3R5cGUgb2YgdGhlIHZhcmlhYmxlLiAgRm9yIGV4YW1w bGUsIGEgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBgaScgbWF5IGJlCisraW50LCBsb25nIG9yIHNo b3J0LiAgU2ltaWxhcmx5LCBhIHZhcmlhYmxlIHByZWZpeGVkIHdpdGggYGInIG1heSBiZSBhCisr Y2hhciBvciBhbiBpbnQ7IGZvciBleGFtcGxlLCB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRjaGFy JyB3b3VsZCBiZQorK2NhdWdodCBpbiBhbiBpbnQgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBgYicu CisgCistU2VuZGluZyBtYWlsIG9yIG5ld3MgdmlhIFVVQ1AKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyAgIEZvciBhIG5vbi1sb2NhbCB2YXJpYWJsZSAoZXh0ZXJuIG9yIGZpbGUg c3RhdGljKSwgdGhlIGZpcnN0IGNoYXJhY3RlcgorK2FmdGVyIHRoZSB0eXBlIHByZWZpeCBpcyBj YXBpdGFsaXplZC4KKyAKKy0gICBXaGVuIG1haWwgaXMgdG8gYmUgc2VudCBmcm9tIHlvdXIgbWFj aGluZSB0byBhbm90aGVyIG1hY2hpbmUgdmlhCistVVVDUCwgdGhlIG1haWwgZGVsaXZlcnkgYWdl bnQgd2lsbCBpbnZva2UgYHV1eCcuICBJdCB3aWxsIGdlbmVyYWxseSBydW4KKy1hIGNvbW1hbmQg c3VjaCBhcyBgdXV4IC0gU1lTVEVNIXJtYWlsIEFERFJFU1MnLCB3aGVyZSBTWVNURU0gaXMgdGhl CistcmVtb3RlIHN5c3RlbSB0byB3aGljaCB0aGUgbWFpbCBpcyBiZWluZyBzZW50LiAgSXQgbWF5 IHBhc3Mgb3RoZXIKKy1vcHRpb25zIHRvIGB1dXgnLCBzdWNoIGFzIGAtcicgb3IgYC1nJyAoKm5v dGUgSW52b2tpbmcgdXV4OjopLgorLQorLSAgIFRoZSBuZXdzIHN5c3RlbSBhbHNvIGludm9rZXMg YHV1eCcgaW4gb3JkZXIgdG8gdHJhbnNmZXIgYXJ0aWNsZXMgdG8KKy1hbm90aGVyIHN5c3RlbS4g IFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCBuZXdzIHdpbGwgdXNlIGB1dXgnIHRvCistaW52 b2tlIGBybmV3cycgb24gdGhlIHJlbW90ZSBzeXN0ZW0sIHJhdGhlciB0aGFuIGBybWFpbCcuCist CistICAgWW91IHNob3VsZCBhcnJhbmdlIGZvciB5b3VyIG1haWwgYW5kIG5ld3Mgc3lzdGVtcyB0 byBpbnZva2UgdGhlCistVGF5bG9yIFVVQ1AgdmVyc2lvbiBvZiBgdXV4Jy4gIElmIHlvdSBvbmx5 IGhhdmUgVGF5bG9yIFVVQ1AsIG9yIGlmIHlvdQorLXNpbXBseSByZXBsYWNlIGFueSBleGlzdGlu ZyB2ZXJzaW9uIG9mIGB1dXgnIHdpdGggdGhlIFRheWxvciBVVUNQCistdmVyc2lvbiwgdGhpcyB3 aWxsIHByb2JhYmx5IGhhcHBlbiBhdXRvbWF0aWNhbGx5LiAgSG93ZXZlciwgaWYgeW91IGhhdmUK Ky10d28gVVVDUCBwYWNrYWdlcyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0sIHlvdSB3aWxsIHBy b2JhYmx5IGhhdmUgdG8KKy1tb2RpZnkgdGhlIG1haWwgYW5kIG5ld3MgY29uZmlndXJhdGlvbiBm aWxlcyBpbiBzb21lIHdheS4KKy0KKy0gICBBY3R1YWxseSwgaWYgYm90aCB0aGUgc3lzdGVtIFVV Q1AgYW5kIFRheWxvciBVVUNQIGFyZSB1c2luZyB0aGUgc2FtZQorLXNwb29sIGRpcmVjdG9yeSBm b3JtYXQsIHRoZSBzeXN0ZW0gYHV1eCcgd2lsbCBwcm9iYWJseSB3b3JrIGZpbmUgd2l0aAorLXRo ZSBUYXlsb3IgYHV1Y2ljbycgKHRoZSByZXZlcnNlIGlzIG5vdCB0aGUgY2FzZTogdGhlIFRheWxv ciBgdXV4JworLXJlcXVpcmVzIHRoZSBUYXlsb3IgYHV1Y2ljbycpLiAgSG93ZXZlciwgZGF0YSB0 cmFuc2ZlciB3aWxsIGJlIHNvbWV3aGF0CistbW9yZSBlZmZpY2llbnQgaWYgdGhlIFRheWxvciBg dXV4JyBpcyB1c2VkLgorKyAgIE1vc3Qgc3RhdGljIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zIHVz ZSBhbm90aGVyIGxldHRlciBhZnRlciB0aGUgdHlwZQorK3ByZWZpeCB0byBpbmRpY2F0ZSB3aGlj aCBtb2R1bGUgdGhleSBjb21lIGZyb20uICBUaGlzIGlzIHRvIGhlbHAKKytkaXN0aW5ndWlzaCBk aWZmZXJlbnQgbmFtZXMgaW4gdGhlIGRlYnVnZ2VyLiAgRm9yIGV4YW1wbGUsIGFsbCBzdGF0aWMK KytmdW5jdGlvbnMgaW4gYHByb3RnLmMnLCB0aGUgYGcnIHByb3RvY29sIHNvdXJjZSBjb2RlLCB1 c2UgYSBtb2R1bGUKKytwcmVmaXggb2YgYGcnLiAgVGhpcyBpc24ndCB0b28gdXNlZnVsLCBhcyBh IG51bWJlciBvZiBtb2R1bGVzIHVzZSBhCisrbW9kdWxlIHByZWZpeCBvZiBgcycuCisgCisgHwor LUZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFJlY2VpdmluZyBtYWlsIG9yIG5ld3MsICBQcmV2OiBT ZW5kaW5nIG1haWwgb3IgbmV3cywgIFVwOiBNYWlsIGFuZCBOZXdzCisrRmlsZTogdXVjcC5pbmZv LCAgTm9kZTogUGF0Y2hlcywgIFByZXY6IE5hbWluZyBDb252ZW50aW9ucywgIFVwOiBIYWNraW5n CisgCistUmVjZWl2aW5nIG1haWwgb3IgbmV3cyB2aWEgVVVDUAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKys3LjMgUGF0Y2hlcworKz09PT09PT09PT09CisgCistICAgVG8gcmVj ZWl2ZSBtYWlsLCBhbGwgdGhhdCBpcyBuZWNlc3NhcnkgaXMgZm9yIFVVQ1AgdG8gaW52b2tlCist YHJtYWlsJy4gIEFueSBtYWlsIGRlbGl2ZXJ5IGFnZW50IHdpbGwgcHJvdmlkZSBhbiBhcHByb3By aWF0ZSB2ZXJzaW9uCistb2YgYHJtYWlsJzsgeW91IG11c3Qgc2ltcGx5IG1ha2Ugc3VyZSB0aGF0 IGl0IGlzIGluIHRoZSBjb21tYW5kIHBhdGgKKy11c2VkIGJ5IFVVQ1AgKGl0IGFsbW9zdCBjZXJ0 YWlubHkgYWxyZWFkeSBpcykuICBUaGUgZGVmYXVsdCBjb21tYW5kCistcGF0aCBpcyBzZXQgaW4g YHBvbGljeS5oJywgYW5kIGl0IG1heSBiZSBvdmVycmlkZGVuIGZvciBhIHBhcnRpY3VsYXIKKy1z eXN0ZW0gYnkgdGhlIGBjb21tYW5kLXBhdGgnIGNvbW1hbmQgKCpub3RlIE1pc2NlbGxhbmVvdXMg KHN5cyk6OikuCistCistICAgU2ltaWxhcmx5LCBmb3IgbmV3cyBVVUNQIG11c3QgYmUgYWJsZSB0 byBpbnZva2UgYHJuZXdzJy4gIEFueSBuZXdzCistc3lzdGVtIHdpbGwgcHJvdmlkZSBhIHZlcnNp b24gb2YgYHJuZXdzJywgYW5kIHlvdSBtdXN0IGVuc3VyZSB0aGF0IGlzCistaW4gYSBkaXJlY3Rv cnkgb24gdGhlIHBhdGggdGhhdCBVVUNQIHdpbGwgc2VhcmNoLgorK0kgYW0gYWx3YXlzIGdyYXRl ZnVsIGZvciBhbnkgcGF0Y2hlcyBzZW50IGluLiAgTXVjaCBvZiB0aGUgZmxleGliaWxpdHkKKyth bmQgcG9ydGFiaWxpdHkgb2YgdGhlIGNvZGUgaXMgZHVlIHRvIG90aGVyIHBlb3BsZS4gIFBsZWFz ZSBkbyBub3QKKytoZXNpdGF0ZSB0byBzZW5kIG1lIGFueSBjaGFuZ2VzIHlvdSBoYXZlIGZvdW5k IG5lY2Vzc2FyeSBvciB1c2VmdWwuCisrCisrICAgV2hlbiBzZW5kaW5nIGEgcGF0Y2gsIHBsZWFz ZSBzZW5kIHRoZSBvdXRwdXQgb2YgdGhlIFVuaXggYGRpZmYnCisrcHJvZ3JhbSBpbnZva2VkIHdp dGggdGhlIGAtYycgb3B0aW9uIChpZiB5b3UgaGF2ZSB0aGUgR05VIHZlcnNpb24gb2YKKytgZGlm ZicsIHVzZSB0aGUgYC1wJyBvcHRpb24pLiAgQWx3YXlzIGludm9rZSBgZGlmZicgd2l0aCB0aGUg b3JpZ2luYWwKKytmaWxlIGZpcnN0IGFuZCB0aGUgbW9kaWZpZWQgZmlsZSBzZWNvbmQuCisrCisr ICAgSWYgeW91ciBgZGlmZicgZG9lcyBub3Qgc3VwcG9ydCBgLWMnIChvciB5b3UgZG9uJ3QgaGF2 ZSBgZGlmZicpLAorK3NlbmQgYSBjb21wbGV0ZSBjb3B5IG9mIHRoZSBtb2RpZmllZCBmaWxlIChp ZiB5b3UgaGF2ZSBqdXN0IGNoYW5nZWQgYQorK3NpbmdsZSBmdW5jdGlvbiwgeW91IGNhbiBqdXN0 IHNlbmQgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoZSBmdW5jdGlvbikuCisrSW4gcGFydGljdWxhciwg cGxlYXNlIGRvIG5vdCBzZW5kIGBkaWZmJyBvdXRwdXQgd2l0aG91dCB0aGUgYC1jJworK29wdGlv biwgYXMgaXQgaXMgdXNlbGVzcy4KKysKKysgICBJZiB5b3UgaGF2ZSBtYWRlIGEgbnVtYmVyIG9m IGNoYW5nZXMsIGl0IGlzIHZlcnkgY29udmVuaWVudCBmb3IgbWUgaWYKKyt5b3Ugc2VuZCBlYWNo IGNoYW5nZSBhcyBhIHNlcGFyYXRlIG1haWwgbWVzc2FnZS4gIFNvbWV0aW1lcyBJIHdpbGwgdGhp bmsKKyt0aGF0IG9uZSBjaGFuZ2UgaXMgdXNlZnVsIGJ1dCBhbm90aGVyIG9uZSBpcyBub3QuICBJ ZiB0aGV5IGFyZSBpbgorK2RpZmZlcmVudCBtZXNzYWdlcyBpdCBpcyBtdWNoIGVhc2llciBmb3Ig bWUgdG8gYXBwbHkgb25lIGJ1dCBub3QgdGhlCisrb3RoZXIuCisrCisrICAgSSByYXJlbHkgYXBw bHkgdGhlIHBhdGNoZXMgZGlyZWN0bHkuICBJbnN0ZWFkIEkgd29yayBteSB3YXkgdGhyb3VnaAor K3RoZSBodW5rcyBhbmQgYXBwbHkgZWFjaCBvbmUgc2VwYXJhdGVseS4gIFRoaXMgZW5zdXJlcyB0 aGF0IHRoZSBuYW1pbmcKKytyZW1haW5zIGNvbnNpc3RlbnQsIGFuZCB0aGF0IEkgdW5kZXJzdGFu ZCBhbGwgdGhlIGNvZGUuCisrCisrICAgSWYgeW91IGNhbiBub3QgZm9sbG93IGFsbCB0aGVzZSBy dWxlcywgdGhlbiBkb24ndC4gIEJ1dCBpZiB5b3UgZG8sIGl0CisrbWFrZXMgaXQgbW9yZSBsaWtl bHkgdGhhdCBJIHdpbGwgaW5jb3Jwb3JhdGUgeW91ciBjaGFuZ2VzLiAgSSBhbSBub3QKKytwYWlk IGZvciBteSBVVUNQIHdvcmssIGFuZCBteSBhdmFpbGFibGUgdGltZSBpcyB1bmZvcnR1bmF0ZWx5 IHZlcnkKKytyZXN0cmljdGVkLiAgVGhlIHBhY2thZ2UgaXMgaW1wb3J0YW50IHRvIG1lLCBhbmQg SSBkbyB3aGF0IEkgY2FuLCBidXQgSQorK2NhbiBub3QgZG8gYWxsIHRoYXQgSSB3b3VsZCBsaWtl LCBtdWNoIGxlc3MgYWxsIHRoYXQgZXZlcnlib2R5IGVsc2UKKyt3b3VsZCBsaWtlLgorKworKyAg IEZpbmFsbHksIHBsZWFzZSBkbyBub3QgYmUgb2ZmZW5kZWQgaWYgSSBkbyBub3QgcmVwbHkgdG8g bWVzc2FnZXMgZm9yCisrc29tZSB0aW1lLCBldmVuIGEgZmV3IHdlZWtzLiAgSSBhbSBvZnRlbiBi ZWhpbmQgb24gbXkgbWFpbCwgYW5kIGlmIEkKKyt0aGluayB5b3VyIG1lc3NhZ2UgZGVzZXJ2ZXMg YSBjb25zaWRlcmVkIHJlcGx5IEkgd2lsbCBvZnRlbiBwdXQgaXQgYXNpZGUKKyt1bnRpbCBJIGhh dmUgdGltZSB0byBkZWFsIHdpdGggaXQuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6 IEFja25vd2xlZGdlbWVudHMsICBOZXh0OiBJbmRleCAoY29uY2VwdHMpLCAgUHJldjogSGFja2lu ZywgIFVwOiBUb3AKKysKKys4IEFja25vd2xlZGdlbWVudHMKKysqKioqKioqKioqKioqKioqKioK KysKKytUaGlzIGlzIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGdhdmUgaGVscCBvciBzdWdnZXN0aW9u cyB3aGlsZSBJIHdhcworK3dvcmtpbmcgb24gdGhlIFRheWxvciBVVUNQIHByb2plY3QuICBBcHBl YXJhbmNlIG9uIHRoaXMgbGlzdCBkb2VzIG5vdAorK2NvbnN0aXR1dGUgZW5kb3JzZW1lbnQgb2Yg dGhlIHByb2dyYW0sIHBhcnRpY3VsYXJseSBzaW5jZSBzb21lIG9mIHRoZQorK2NvbW1lbnRzIHdl cmUgY3JpdGljaXNtcy4gIEkndmUgcHJvYmFibHkgbGVmdCBzb21lIHBlb3BsZSBvZmYsIGFuZCBJ CisrYXBvbG9naXplIGZvciBhbnkgb3ZlcnNpZ2h0OyBpdCBkb2VzIG5vdCBtZWFuIHlvdXIgY29u dHJpYnV0aW9uIHdhcworK3VuYXBwcmVjaWF0ZWQuCisrCisrICAgRmlyc3Qgb2YgYWxsLCBJIHdv dWxkIGxpa2UgdG8gdGhhbmsgdGhlIHBlb3BsZSBhdCBJbmZpbml0eQorK0RldmVsb3BtZW50IFN5 c3RlbXMgKGZvcm1lcmx5IEFJUlMsIHdoaWNoIGxpdmVzIG9uIGluIHRoZSBkb21haW4gbmFtZSkK Kytmb3IgcGVybWl0dGluZyBtZSB0byB1c2UgdGhlaXIgY29tcHV0ZXJzIGFuZCBgdXVuZXQnIGFj Y2Vzcy4gIEkgd291bGQKKythbHNvIGxpa2UgdG8gdGhhbmsgUmljaGFyZCBTdGFsbG1hbiA8cm1z QGdudS5vcmc+IGZvciBmb3VuZGluZyB0aGUgRnJlZQorK1NvZnR3YXJlIEZvdW5kYXRpb24sIGFu ZCBKb2huIEdpbG1vcmUgPGdudUB0b2FkLmNvbT4gZm9yIHdyaXRpbmcgdGhlCisraW5pdGlhbCB2 ZXJzaW9uIG9mIGdudXVjcCAoYmFzZWQgb24gdXVzbGF2ZSkgd2hpY2ggd2FzIGEgZGlyZWN0Cisr aW5zcGlyYXRpb24gZm9yIHRoaXMgc29tZXdoYXQgbGFyZ2VyIHByb2plY3QuICBDaGlwIFNhbHpl bmJlcmcKKys8Y2hpcEB0Y3QuY29tPiBoYXMgY29udHJpYnV0ZWQgbWFueSBwYXRjaGVzLiAgRnJh bmMsb2lzIFBpbmFyZAorKzxwaW5hcmRAaXJvLnVtb250cmVhbC5jYT4gdGlyZWxlc3NseSB0ZXN0 ZWQgdGhlIGNvZGUgYW5kIHN1Z2dlc3RlZCBtYW55CisraW1wcm92ZW1lbnRzLiAgSGUgYWxzbyBw dXQgdG9nZXRoZXIgdGhlIGluaXRpYWwgdmVyc2lvbiBvZiB0aGlzIG1hbnVhbC4KKytEb3VnIEV2 YW5zIGNvbnRyaWJ1dGVkIHRoZSB6bW9kZW0gcHJvdG9jb2wuICBNYXJjIEJvdWNoZXIKKys8bWFy Y0BDQU0uT1JHPiBjb250cmlidXRlZCB0aGUgY29kZSBzdXBwb3J0aW5nIHRoZSBwaXBlIHBvcnQg dHlwZS4KKytKb3JnZSBDd2lrIDxqb3JnZUBsYXNlci5zYXRsaW5rLm5ldD4gY29udHJpYnV0ZWQg dGhlIGB5JyBwcm90b2NvbCBjb2RlLgorK0ZpbmFsbHksIFZlcmJ1cyBNLiBDb3VudHMgPHZlcmJ1 c0B3ZXN0bWFyay5jb20+IGFuZCBDZW50ZWwgRmVkZXJhbAorK1N5c3RlbXMsIEluYy4sIGRlc2Vy dmUgc3BlY2lhbCB0aGFua3MsIHNpbmNlIHRoZXkgYWN0dWFsbHkgcGFpZCBtZQorK21vbmV5IHRv IHBvcnQgdGhpcyBjb2RlIHRvIFN5c3RlbSBJSUkuCisrCisrICAgSW4gYWxwaGFiZXRpY2FsIG9y ZGVyOgorKworKyAgICAgTWVubyBBYmVscyA8TWVuby5BYmVsc0BUZWNobmljYWwuQWR2aXNlci5j b20+CisrICAgICAiRWFybGUgRi4gQWtlIC0gU0FJQyIgPGFrZUBEYXl0b24uU0FJQy5DT00+Cisr ICAgICA8bXJhQHNlYXJjaHRlY2guY29tPiAoTWljaGFlbCBBbG1vbmQpCisrICAgICA8Y2FtYmxl ckB6ZXVzLmNhbHBvbHkuZWR1PiAoQ2hyaXN0b3BoZXIgSi4gQW1ibGVyKQorKyAgICAgQnJpYW4g Vy4gQW50b2luZSA8YnJpYW5hQHRhdS1jZXRpLmlzYy1ici5jb20+CisrICAgICA8amFudHlwYXNA c29mdDIxLnMyMS5jb20+IChKb2huIEFudHlwYXMpCisrICAgICA8amFtZXNAYmlndGV4LmNhY3R1 cy5vcmc+IChKYW1lcyBWYW4gQXJ0c2RhbGVuKQorKyAgICAgPGppbWFAbmV0Y29tLmNvbT4gKEpp bSBBdmVyYSkKKysgICAgIDxuYmFAc3lzd2FyZS5ESz4gKE5pZWxzIEJhZ2dlc2VuKQorKyAgICAg PHV1bmV0IWhvdG1vbW1hIXNkYj4gKFNjb3R0IEJhbGxhbnR5bmUpCisrICAgICBaYWNoYXJpYXMg QmVja21hbiA8emFjQGRvbHBoaW4uY29tPgorKyAgICAgPG1pa2VAbWJzdW4uYW5uLWFyYm9yLm1p LnVzPiAoTWlrZSBCZXJuc29uKQorKyAgICAgPGJvYkB1c2l4dGguc3VibGluay5vcmc+IChSb2Jl cnRvIEJpYW5jYXJkaSkKKysgICAgIDxzdGF0c2NpIXNjb3R0QGNvY28ubXMud2FzaGluZ3Rvbi5l ZHU+IChTY290dCBCbGFjaG93aWN6KQorKyAgICAgPGJhZyV3b29kMi5jcy5raWV2LnVhQHJlbGF5 LnVzc3IuZXUubmV0PiAoQW5kcmV5IEcgQmxvY2hpbnRzZXYpCisrICAgICA8c3BpZGVyQE9yYi5O YXNodWEuTkguVVM+IChTcGlkZXIgQm9hcmRtYW4pCisrICAgICBHcmVnb3J5IEJvbmQgPGduYkBi YnkuY29tLmF1PgorKyAgICAgTWFyYyBCb3VjaGVyIDxtYXJjQENBTS5PUkc+CisrICAgICBBcmQg dmFuIEJyZWVtZW4gPGFyZEBjc3RtZWwuaG9iYnkubmw+CisrICAgICA8ZGVhbkBjb3BsZXguY29t PiAoRGVhbiBCcm9va3MpCisrICAgICA8amJyb3dAcmFkaWNhbC5jb20+IChKaW0gQnJvd25maWVs ZCkKKysgICAgIDxkYXZlQGRsYi5jb20+IChEYXZlIEJ1Y2spCisrICAgICA8Z29yZG9uQHNuZWFr eS5sb25lc3Rhci5vcmc+IChHb3Jkb24gQnVyZGl0dCkKKysgICAgIDxkYnVyckBzYnBoeS5waHlz aWNzLnVjc2IuZWR1PiAoRG9uYWxkIEJ1cnIpCisrICAgICA8bWliQGdudS5haS5taXQuZWR1PiAo TWljaGFlbCBJIEJ1c2huZWxsKQorKyAgICAgQnJpYW4gQ2FtcGJlbGwgPGJyaWFuY0BxdWFudHVt Lm9uLmNhPgorKyAgICAgQW5kcmV3IEEuIENoZXJub3YgPGFjaGVAYXN0cmFsLm1zay5zdT4KKysg ICAgIDxqaGNAaXNjcC5iZWxsY29yZS5jb20+IChKb25hdGhhbiBDbGFyaykKKysgICAgIDxtYWZj IWZyYW5rQGJhY2guaGVsaW9zLmRlPiAoRnJhbmsgQ29ucmFkKQorKyAgICAgRWQgQ2FycCA8ZXJj QGFwcGxlLmNvbT4KKysgICAgIDxtcGNAbWJzLmxpbmV0Lm9yZz4gKE1hcmsgQ2xlbWVudHMpCisr ICAgICA8dmVyYnVzQHdlc3RtYXJrLndlc3RtYXJrLmNvbT4gKFZlcmJ1cyBNLiBDb3VudHMpCisr ICAgICA8Y2JtdmF4IXNuYXJrLnRoeXJzdXMuY29tIWNvd2FuPiAoSm9obiBDb3dhbikKKysgICAg IEJvYiBDdW5uaW5naGFtIDxib2JAc29lc3QuaGF3YWlpLmVkdT4KKysgICAgIDxqb3JnZUBsYXNl ci5zYXRsaW5rLm5ldD4gKEpvcmdlIEN3aWspCisrICAgICA8a2RidXJnQGluY29haGUuaGFuc2Uu ZGU+IChLbGF1cyBEYWhsZW5idXJnKQorKyAgICAgRGFtb24gPGRAZXhuZXQuY28udWs+CisrICAg ICA8Y2VsaXQhYmlsbGRAVUNTRC5FRFU+IChCaWxsIERhdmlkc29uKQorKyAgICAgPGh1YmVydEBh cmFraXMuZmRuLm9yZz4gKEh1YmVydCBEZWxhaGF5ZSkKKysgICAgIDxtYXJrZEBidXNod2lyZS5h cGFuYS5vcmcuYXU+IChNYXJrIERlbGFueSkKKysgICAgIEFsbGVuIERlbGFuZXkgPGFsbGVuQGJy Yy51YmMuY2E+CisrICAgICBHZXJyaWV0IE0uIERlbmttYW5uIDxnZXJyaWV0QGhhemVsLm5vcnRo LmRlPgorKyAgICAgPGRlbm55QGRha290YS5hbGlzYS5jb20+IChCb2IgRGVubnkpCisrICAgICBE cmV3IERlcmJ5c2hpcmUgPGFoZEBrZXcuY29tPgorKyAgICAgPHNzZEBuZXZldHMub2F1Lm9yZz4g KFN0ZXZlbiBTLiBEaWNrKQorKyAgICAgPGdlcnRAZ3JlZW5pZS5nb2xkLnN1Yi5vcmc+IChHZXJ0 IERvZXJpbmcpCisrICAgICA8Z2VtaW5pQGdlbWluaXguaW4tYmVybGluLmRlPiAoVXdlIERvZXJp bmcpCisrICAgICBIYW5zLURpZXRlciBEb2xsIDxoZDJASW5zZWwuREU+CisrICAgICA8ZGVhbmVA ZGVhbmUudGVsZXJpZGUub24uY2E+IChEZWFuIEVkbW9uZHMpCisrICAgICBNYXJrIFcuIEVpY2hp biA8ZWljaGluQGN5Z251cy5jb20+CisrICAgICA8ZXJpa0BwZG5maWRvLmZpZG9uZXQub3JnPgor KyAgICAgQW5kcmV3IEV2YW5zIDxhbmRyZXdAYWlycy5jb20+CisrICAgICA8ZGplQGN5Z251cy5j b20+IChEb3VnIEV2YW5zKQorKyAgICAgTWFyYyBFdmFucyA8bWFyY0BzeW5lcmd5dGljcy5jb20+ CisrICAgICBEYW4gRXZlcmhhcnQgPGRhbkBkeW5kYXRhLmNvbT4KKysgICAgIDxra3N5cyFrZWd3 b3JrcyFsZmFobm9lQGNzLnVtbi5lZHU+IChMYXJyeSBGYWhub2UpCisrICAgICBNYXR0aGV3IEZh cndlbGwgPGR5bGFuQGlibXBjdWcuY28udWs+CisrICAgICA8ZmVubmVyQGphenoucHN1LmVkdT4g KEJpbGwgRmVubmVyKQorKyAgICAgPGphZkBpbmZlcmVuY2UuY29tPiAoSm9zZSBBLiBGZXJuYW5k ZXopCisrICAgICAiRGF2aWQgSi4gRmlhbmRlciIgPGdvbGVtIWRhdmlkQG5ld3MubHN1Yy5vbi5j YT4KKysgICAgIFRob21hcyBGaXNjaGVyIDxiYXRtYW5Ab2xvcmluLmRhcmsuc3ViLm9yZz4KKysg ICAgIE1pc3RlciBGbGFzaCA8Zmxhc2hAc2FtLmltYXNoLnJhcy5ydT4KKysgICAgIDxsb3Vpc0Bt YXJjby5kZT4gKEp1InJnZW4gRmx1aykKKysgICAgIDxlcmlrQGVhYi5yZXRpeC5jb20+IChFcmlr IEZvcnNiZXJnKQorKyAgICAgPGFuZHlAc2NwLmNhbHRlY2guZWR1PiAoQW5keSBGeWZlKQorKyAg ICAgTGVsZSBHYWlmYXggPHBpZ2d5QGlkZWEuc3VibGluay5vcmc+CisrICAgICA8UGV0ZXIuR2Fs YmF2eUBtaWNyb211c2UuY28udWs+CisrICAgICA8aHVudGVyQHBob2VuaXgucHViLnV1Lm96LmF1 PiAoSmFtZXMgR2FyZGluZXIgW2h1bnRlcl0pCisrICAgICBUZXJyeSBHYXJkbmVyIDxjcGhwY29t IXRqZzAxPgorKyAgICAgPGRnaWxiZXJ0QGdhbWlnYS5ndWVscGhuZXQuZHdlb21lci5vcmc+IChE YXZpZCBHaWxiZXJ0KQorKyAgICAgPG9sQGluZm9wcm8uc3BiLnN1PiAoT2xlZyBHaXJrbykKKysg ICAgIDxqaW1teUB0b2t5bzA3LmluZm8uY29tPiAoSmltIEdvdHRsaWViKQorKyAgICAgQmVub2l0 IEdyYW5nZSA8YmVuQGZpenouZmRuLm9yZz4KKysgICAgIDxlbGdAZWxnYW15LmpwdW5peC5jb20+ IChFcmljIExlZSBHcmVlbikKKysgICAgIDxyeWFuQGNzLnVtYi5lZHU+IChEYW5pZWwgUi4gR3Vp bGRlcnNvbikKKysgICAgIDxncmVnQGdhZ21lLmNoaS5pbC51cz4gKEdyZWdvcnkgR3VsaWspCisr ICAgICBSaWNoYXJkIEguIEd1bXBlcnR6IDxyaGdAY3BzLmNvbT4KKysgICAgIFNjb3R0IEd1dGhy aWRnZSA8c2Nvb3RlckBjdWJlLnJhaW4uY29tPgorKyAgICAgTWljaGFlbCBIYWJlcmxlciA8bWFo QHBhcnJvdC5wcnYudW5pdmllLmFjLmF0PgorKyAgICAgRGFuaWVsIEhhZ2VydHkgPGhhZ0BlZGRp ZS5taXQuZWR1PgorKyAgICAgPGpoQG1vb24ubmJuLmNvbT4gKEpvaG4gSGFya2luKQorKyAgICAg PGd1eUBhdXNwZXguYXVzcGV4LmNvbT4gKEd1eSBIYXJyaXMpCisrICAgICA8aHN3MUBwYXBhLmF0 dG1haWwuY29tPiAoU3RlcGhlbiBIYXJyaXMpCisrICAgICBUb20gSXZhciBIZWxiZWtrbW8gPHRp aEBOb3J3YXkuRVUubmV0PgorKyAgICAgUGV0cmkgSGVsZW5pdXMgPHBldGVAZmlkYXRhLmZpPgor KyAgICAgPGdhYmVAZWRpLmNvbT4gKEIuIEdhYnJpZWwgSGVsb3UpCisrICAgICBCb2IgSGVtZWRp bmdlciA8Ym9iQGRhbGVrLm13Yy5jb20+CisrICAgICBBbmRyZXcgSGVyYmVydCA8YW5kcmV3QHdl cnBsZS5wdWIudXUub3ouYXU+CisrICAgICA8a2hlcnJvbkBtcy51a3kuZWR1PiAoS2VubmV0aCBI ZXJyb24pCisrICAgICBQZXRlciBIb25leW1hbiA8aG9uZXlAY2l0aS51bWljaC5lZHU+CisrICAg ICA8amhvb2RAc21va2UubWFybGJvcm8udnQudXM+IChKb2huIEhvb2QpCisrICAgICBNYXJrIEhv cnNidXJnaCA8bWFya2hAa2NiYnMuZ2VuLm56PgorKyAgICAgSm9obiBIdWdoZXMgPGpvaG5AQ2Fs dmEuQ09NPgorKyAgICAgTWlrZSBJcGF0b3cgPG1pcEBmaWRvLml0Yy5lLWJ1cmcuc3U+CisrICAg ICBCaWxsIElyd2luIDxiaWxsQHR3Zy5iYy5jYT4KKysgICAgIDxwbWNndyFwZXJzb25hbC1tZWRp YS5jby5qcCFpc2hpa2F3YT4gKENoaWFraSBJc2hpa2F3YSkKKysgICAgIDxhaUBlYXN5LmluLWNo ZW1uaXR6LmRlPiAoQW5kcmVhcyBJc3JhZWwpCisrICAgICA8aXZlcnNvbkBsaW9uaGVhcnQuY29t PiAoVGltIEl2ZXJzb24pCisrICAgICA8YmVpQGRvZ2ZhY2UuYXVzdGluLnR4LnVzPiAoQm9iIEl6 ZW5iZXJnKQorKyAgICAgPGRqYW1pZ2EhZGpqYW1lc0Bmc2QuY29tPiAoRC5KLkphbWVzKQorKyAg ICAgUm9iIEphbnNzZW4gPGNtZ2l0IXJvYkByZWxheS5ubHV1Zy5ubD4KKysgICAgIDxoYXJ2ZWUh ZXNqPiAoRXJpYyBTIEpvaGFuc3NvbikKKysgICAgIEtldmluIEpvaG5zb24gPGtqakBwb25kc2N1 bS5waHgubWNkLm1vdC5jb20+CisrICAgICA8cmpAcmFpbmJvdy5pbi1iZXJsaW4uZGU+IChSb2Jl cnQgSm9vcCkKKysgICAgIEFsYW4gSnVkZ2UgPGFqQGRlYzRpZS5JRXVuZXQuaWU+CisrICAgICA8 Y2hyaXNAY2pfbmV0LmluLWJlcmxpbi5kZT4gKENocmlzdG9mIEp1bmdlKQorKyAgICAgUm9tYWlu IEthbmcgPHJvbWFpbkBweXJhbWlkLmNvbT4KKysgICAgIDx0cm9uQFZlcml0YXMuQ09NPiAoUm9u YWxkIFMuIEthcnIpCisrICAgICBCcmVuZGFuIEtlaG9lIDxicmVuZGFuQGNzLndpZGVuZXIuZWR1 PgorKyAgICAgPHdhcmxvY2tAY3N1Y2hpY28uZWR1PiAoSm9obiBLZW5uZWR5KQorKyAgICAgPGtl cnNpbmdAbmxtdWcubmwubXVnbmV0Lm9yZz4gKEphYyBLZXJzaW5nKQorKyAgICAgPG9rQGRhdmVn LlBGTS1NYWluei5kZT4gKE9sYWYgS2lyY2gpCisrICAgICBHYWJvciBLaXNzIDxraXNzZ0BzenRh a2kuaHU+CisrICAgICA8Z2Vyb0Bna21pbml4Lmhhbi5kZT4gKEdlcm8gS3VobG1hbm4pCisrICAg ICA8cm9iQHBhY3Qubmw+IChSb2IgS3VydmVyKQorKyAgICAgIkMuQS4gTGFkZW1hbm4iIDxjYWxA emxzLmd0bi5jb20+CisrICAgICA8a2VudEBzcGFya3kuSU1ELlN0ZXJsaW5nLkNPTT4gKEtlbnQg TGFuZGZpZWxkKQorKyAgICAgVGluIExlIDx0aW5Ac2FpZ29uLmNvbT4KKysgICAgIDxsZWJhcm9u QGlucnMtdGVsZWNvbS51cXVlYmVjLmNhPiAgKEdyZWdvcnkgTGVCYXJvbikKKysgICAgIDxrYXJs QHN1Z2FyLk5lb1NvZnQuQ29tPiAoS2FybCBMZWhlbmJhdWVyKQorKyAgICAgPGFsZXhAaGFsLnJo ZWluLW1haW4uZGU+IChBbGV4YW5kZXIgTGVobWFubikKKysgICAgIDxtZXJseW5AZGlnaWJkLmNv bT4gKE1lcmx5biBMZVJveSkKKysgICAgIDxjbGV3aXNAZmVycmV0Lm9jdW5peC5vbi5jYT4gKENo cmlzIExld2lzKQorKyAgICAgPGdkb25sQHNzaTEuY29tPiAoRG9uIExld2lzKQorKyAgICAgPGxp Ym92ZUBsaWJvdmUuZGV0LmRlYy5jb20+IChKYXkgVmFzc29zLUxpYm92ZSkKKysgICAgIDxicnVj ZSVibGlsbHlAQnJvYWRjYXN0LlNvbnkuQ09NPiAoQnJ1Y2UgTGlsbHkpCisrICAgICBHb2RmcmV5 IHZhbiBkZXIgTGluZGVuIDxHb2RmcmV5X3Zhbl9kZXJfTGluZGVuQE5lWFQuQ09NPgorKyAgICAg VGVkIExpbmRncmVlbiA8dGxpbmRncmVlbkBlbmNvcmUubmw+CisrICAgICA8YW5kcmV3QGN1YmV0 ZWNoLmNvbT4gKEFuZHJldyBMb2V3ZW5zdGVybikKKysgICAgICJBcm5lIEx1ZHdpZyIgPGFybmVA cnJ6YnUuaGFuc2UuZGU+CisrICAgICBNYXR0aGV3IEx5bGUgPG1hdHRAbWlwcy5taXRlay5jb20+ CisrICAgICA8ZGptQGVuZy51bWQuZWR1PiAoRGF2aWQgSi4gTWFjS2VuemllKQorKyAgICAgSm9o biBSIE1hY01pbGxhbiA8Y2hhbmNlIWpvaG5Ac3Euc3EuY29tPgorKyAgICAgPGp1bUBoZWxpb3Mu ZGU+IChKZW5zLVV3ZSBNYWdlcikKKysgICAgIEdpbGVzIEQgTWFsZXQgPHNocmRsdSFnZG1AcHJv dmFyLmt3bmV0Lm9uLmNhPgorKyAgICAgPG1lbUBtdi5NVi5DT00+IChNYXJrIEUuIE1hbGxldHQp CisrICAgICA8cGVwZUBkaXQudXBtLmVzPiAoSm9zZSBBLiBNYW5hcykKKysgICAgIDxwZXRlckB4 cG9pbnQucnVlc3NlbC5zdWIub3JnPiAoUGV0ZXIgTWFuZHJlbGxhKQorKyAgICAgPG1hcnRlbGxp QGNhZGxhYi5zdWJsaW5rLm9yZz4gKEFsZXggTWFydGVsbGkpCisrICAgICBXIENocmlzdG9waGVy IE1hcnRpbiA8d2NtQGdlZWsuY2EuZ2VhYy5jb20+CisrICAgICBZYW5layBNYXJ0aW5zb24gPHlh bmVrQG10aHZheC5jcy5taWFtaS5lZHU+CisrICAgICA8dGhvbWFzbUBtZWNodGkud3VwcGVyLmRl PiAoVGhvbWFzIE1lY2h0ZXJzaGVpbWVyKQorKyAgICAgPGptQGFyaXN0b3RlLnVuaXYtcGFyaXM4 LmZyPiAoSmVhbiBNZWhhdCkKKysgICAgIDxtZUBoYWxmYWIuZnJlaWJ1cmcuc3ViLm9yZz4gKFVk byBNZXllcikKKysgICAgIDxsZXNAY2hpbmV0LmNoaS5pbC51cz4gKExlc2xpZSBNaWtlc2VsbCkK KysgICAgIDxidWdAY3liZXJkZXguY3V1Zy5hYi5jYT4gKFRyZXZlciBNaWxsZXIpCisrICAgICA8 bW1pdGNoZWxAZGlnaS5sb25lc3Rhci5vcmc+IChNaXRjaCBNaXRjaGVsbCkKKysgICAgIEVtbWFu dWVsIE1vZ2VuZXQgPG1naXhAa3JhaW50ZS5qcG4udGhvbXNvbi1kaS5mcj4KKysgICAgIDxybW9o ckBpbmZvYWMucm1pLmRlPiAoUnVwZXJ0IE1vaHIpCisrICAgICBKYXNvbiBNb2xlbmRhIDxtb2xl bmRhQHNlcXVlbnQuY29tPgorKyAgICAgPGlhbm1AaWNzYmVsZi5jby51az4gKElhbiBNb3JhbikK KysgICAgIDxqbW9ycmlzb0Bib2dvbWlwcy5lZS51YmMuY2E+IChKb2huIFBhdWwgTW9ycmlzb24p CisrICAgICA8YnJpYW5AaWxpbngud2ltc2V5LmJjLmNhPiAoQnJpYW4gSi4gTXVycmVsbCkKKysg ICAgIDxzZXJ2aWNlQGluZm9oaC5ybWkuZGU+IChEaXJrIE11c3N0b3BmKQorKyAgICAgPGx5bmRv bkBjcy5hdGhhYmFzY2F1LmNhPiAoTHluZG9uIE5lcmVuYmVyZykKKysgICAgIDxyb2xmQHNhYW5z Lm5vcnRoLmRlPiAoUm9sZiBOZXJzdGhlaW1lcikKKysgICAgIDx0b21Ac21hcnQuYm8ub3Blbi5k ZT4gKFRob21hcyBOZXVtYW5uKQorKyAgICAgPG1uaWNob2xzQHBhY2VzZXR0ZXIuY29tPgorKyAg ICAgUmljaGFyZCBFLiBOaWNrbGUgPHRyeXN0cm8hcmlja0BUaGluay5DT00+CisrICAgICA8c3Rl cGhhbkBzdW5sYWIua2Euc3ViLm9yZz4gKFN0ZXBoYW4gTmllbXopCisrICAgICA8cmF5bW9uZEBl cy5lbGUudHVlLm5sPiAoUmF5bW9uZCBOaWpzc2VuKQorKyAgICAgPG5vbGFuQGhlbGlvcy51bmwu ZWR1PiAoTWljaGFlbCBOb2xhbikKKysgICAgIGRhdmlkIG51Z2VudCA8ZGF2aWRAY3NvdXJjZS5v ei5hdT4KKysgICAgIEppbSBPJ0Nvbm5vciA8amltQGJhaGFtdXQuZnNjLmNvbT4KKysgICAgIDxr ZXZpbiVrb3NtYW4udXVjcEBucmMuY29tPiAoS2V2aW4gTydHb3JtYW4pCisrICAgICBQZXRyaSBP amFsYSA8b2phbGFAZnVuZXQuZmk+CisrICAgICA8b25laWxsQGNzLnVsb3dlbGwuZWR1PiAoQnJp YW4gJ0RvYycgTydOZWlsbCkKKysgICAgIDxTdGVwaGVuLlBhZ2VAcHJnLm94Zm9yZC5hYy51az4K KysgICAgIFBldGVyIFBhbGZyYWRlciA8cGV0ZXJAcGFsZnJhZGVyLm9yZz4KKysgICAgIDxhYmVr YXMhZHJhZ29tYW4hbWlrZXBAZGVjd3JsLmRlYy5jb20+IChNaWtlIFBhcmspCisrICAgICBUaW0g UGVpZmZlciA8cGVpZmZlckBjcy51bW4uZWR1PgorKyAgICAgPGRvbkBibGtob2xlLnJlc3VuLmNv bT4gKERvbiBQaGlsbGlwcykKKysgICAgICJNYXJrIFBpenpvbGF0byA0MTUtMzY5LTkzNjYiIDxt YXJrQGluZm9jb21tLmNvbT4KKysgICAgIEpvaG4gUGxhdGUgPHBsYXRlQGluZm90ZWsuZGs+Cisr ICAgICA8ZHBsYXR0QG50Zy5jb20+IChEYXZlIFBsYXR0KQorKyAgICAgPGVsZG9yYWRvQHRoYXJy LlVVQ1A+IChNYXJrIFBvd2VsbCkKKysgICAgIE1hcmsgUG93ZWxsIDxtYXJrQGluZXQtdWsuY28u dWs+CisrICAgICA8cG96YXJAa3Vtci5sbnMuY29tPiAoVGltIFBvemFyKQorKyAgICAgPGpvZXlA dGVzc2kuVVVDUD4gKEpvZXkgUHJ1ZXR0KQorKyAgICAgUGF1bCBQcnlvciA8cHRwQGZhbGxzY2h1 cmNoLWFjaXJzMi5hcm15Lm1pbD4KKysgICAgIDxwdXRzY2hAdWljYy5jb20+IChKZWZmIFB1dHNj aCkKKysgICAgIDxhckBudm1yLnJvYmluLmRlPiAoQW5kcmVhcyBSYWFiKQorKyAgICAgVmFkaW0g UmFkaW9ub3YgPHJ2cEB6ZnMubGcudWE+CisrICAgICBKYXJtbyBSYWloYSA8amFybW9Aa3N2bHRk LkZJPgorKyAgICAgSmFtZXMgUmV2ZWxsIDxyZXZlbGxAdXVuZXQudXUubmV0PgorKyAgICAgU2Nv dHQgUmV5bm9sZHMgPHNjb3R0QGNsbXF0Lm1hcnF1ZXR0ZS5NaS5VUz4KKysgICAgIDxtY3JAU2Fu ZGVsbWFuLk9DVW5peC5Pbi5DYT4gKE1pY2hhZWwgUmljaGFyZHNvbikKKysgICAgIEtlbmppIFJp a2l0YWtlIDxrZW5qaUByY2FjLmFzdGVtLm9yLmpwPgorKyAgICAgPGFybm9sZEBjYy5nYXRlY2gu ZWR1PiAoQXJub2xkIFJvYmJpbnMpCisrICAgICA8c3RldmVATnlvbmd3YS5jYW0ub3JnPiAoU3Rl dmUgTS4gUm9iYmlucykKKysgICAgIE9sbGl2aWVyIFJvYmVydCA8T2xsaXZpZXIuUm9iZXJ0QGtl bHRpYS5mcm11Zy5mci5uZXQ+CisrICAgICBTZXJnZSBSb2J5bnMgPHNyQGRlbmthcnQuYmU+Cisr ICAgICBMYXdyZW5jZSBFLiBSb3Nlbm1hbiA8bGVyQGxlcmFtaS5sZXJjdHIub3JnPgorKyAgICAg SmVmZiBSb3NzIDxqZWZmQHdpc2RvbS5idWJibGUub3JnPgorKyAgICAgQWxla3NleSBQLiBSdWRu ZXYgPGFsZXhAa2lhZS5zdT4KKysgICAgICJIZWlrbyBXLlJ1cHAiIDxod3JAcGlsaHVobi5rYS5z dWIub3JnPgorKyAgICAgPHdvbGZnYW5nQHdzcmNjLmNvbT4gKFdvbGZnYW5nIFMuIFJ1cHByZWNo dCkKKysgICAgIDx0YnJAdGZpYy5iYy5jYT4gKFRvbSBSdXNod29ydGgpCisrICAgICBQZXRlciBS eWUgPHByeWVAcGljdS1zZ2guZGVtb24uY28udWs+CisrICAgICA8anNhY2NvQHNzbC5jb20+IChK b3NlcGggRS4gU2FjY28pCisrICAgICA8cnNhbHpAYmJuLmNvbT4gKFJpY2ggU2FseikKKysgICAg IEN1cnQgU2FtcHNvbiA8Y3VydEBwb3J0YWwuY2E+CisrICAgICA8c29qdXJuIW1pa2VAaG9iYmVz LmNlcnQuc2VpLmNtdS5lZHU+IChNaWtlIFNhbmdyZXkpCisrICAgICBOaWNrb2xheSBTYXVraCA8 bm1zQHVzc3IuRVUubmV0PgorKyAgICAgSWduYXRpb3MgU291dmF0emlzIDxpc0Bqb2NlbHluLnJo ZWluLmRlPgorKyAgICAgPGhlaWtvQGxvdHRlLnNheC5kZT4gKEhlaWtvIFNjaGxpdHRlcm1hbm4p CisrICAgICBFcmljIFNjaG5vZWJlbGVuIDxlcmljQGNpcnIuY29tPgorKyAgICAgPHJ1c3NlbGxA YWxwaGEzLmVyc3lzLmVkbW9udG9uLmFiLmNhPiAoUnVzc2VsbCBTY2h1bHopCisrICAgICA8c2Nv dHRAZ2VvbS51bW4uZWR1PgorKyAgICAgSWdvciBWLiBTZW1lbnl1ayA8aWdhQGFyZ3JkMC5hcmdv bmF1dC5zdT4KKysgICAgIENocmlzdG9waGVyIFNhd3RlbGwgPGNocmlzQGdlcnR5LmVxdWlub3gu Z2VuLm56PgorKyAgICAgPHNjaHVsZXJAYmRzLnN1Yi5vcmc+IChCZXJuZCBTY2h1bGVyKQorKyAg ICAgPHV1bmV0IWdvbGQuc3ViLm9yZyFyb290PiAoQ2hyaXN0aWFuIFNleWIpCisrICAgICBNYXJj dXMgU2hhbmcgPG1hcmN1cy5zaGFuZ0BjYW5hZGEuY2Rldi5jb20+CisrICAgICA8czRtanMhbWpz QG5pcnZvLm5pcnZvbmljcy5jb20+IChNLiBKLiBTaGFubm9uIEpyLikKKysgICAgIDxzaGllbGRz QHRlbWJlbC5vcmc+IChNaWNoYWVsIFNoaWVsZHMpCisrICAgICA8cGV0ZXJAZmljYy5mZXJyYW50 aS5jb20+IChQZXRlciBkYSBTaWx2YSkKKysgICAgIDx2aW5jZUB2aWN0cm9sYS5zZWEud2EudXM+ IChWaW5jZSBTa2FoYW4pCisrICAgICA8ZnJ1bWlvdXMhcGF0PiAoUGF0cmljayBTbWl0aCkKKysg ICAgIDxyb3Njb20hbW9udHlAYnUuZWR1PiAoTW9udHkgU29sb21vbikKKysgICAgIDxzb21tZXJm ZWxkQG9yY2hhcmQubWVkZm9yZC5tYS51cz4gKEJpbGwgU29tbWVyZmVsZCkKKysgICAgIEp1bGlh biBTdGFjZXkgPHN0YWNleUBndXVnLmRlPgorKyAgICAgPGV2ZXNnQGV0bHJpcHMuZXRsLmdvLmpw PiAoR2pvZW4gU3RlaW4pCisrICAgICBIYXJsYW4gU3Rlbm4gPGhhcmxhbkBtdW1wcy5wZmNzLmNv bT4KKysgICAgIFJhbGYgU3RlcGhhbiA8cmFsZkBhcmsuYWJnLnN1Yi5vcmc+CisrICAgICA8am9o YW5uZXNAdGl0YW4ud2VzdGZhbGVuLmRlPiAoSm9oYW5uZXMgU3RpbGxlKQorKyAgICAgPGNoc0Bh bnRpYy5hcHUuZmk+IChIYW5udSBTdHJhbmcpCisrICAgICA8cmFsZkByZXN3aS5ydWhyLmRlPiAo UmFsZiBFLiBTdHJhbnplbmJhY2gpCisrICAgICA8c3VsbGl2YW5ATWF0aGNvbS5jb20+IChTLiBT dWxsaXZhbikKKysgICAgIFNoaWdleWEgU3V6dWtpIDxzaGlnZXlhQGRpbmsuZm9yZXR1bmUuY28u anA+CisrICAgICA8a2xzQGRpdGthLkNoaWNhZ28uQ09NPiAoS2FybCBTd2FydHopCisrICAgICA8 c3dpZXJzQHBsYWlucy5Ob0Rhay5lZHU+CisrICAgICBPbGVnIFRhYmFyb3Zza3kgPG9sZ0BvbGdo b21lLnBjY2VudHJlLm1zay5zdT4KKysgICAgIDxpa2VkYUBob25leS5taXN5c3RlbXMuY28uanA+ IChUYWthdG9zaGkgSWtlZGEpCisrICAgICBKb2huIFRoZXVzIDxqb2huQHRoZXVzLnJhaW4uY29t PgorKyAgICAgPHJkQGFpaS5jb20+IChCb2IgVGhydXNoKQorKyAgICAgcHBLYXJzdGVuIFRoeWdl c2VuIDxrYXJ0aHlAZGFubnVnLmRrPgorKyAgICAgR3JhaGFtIFRvYWwgPGd0b2FsQHBpenphYm94 LmRlbW9uLmNvLnVrPgorKyAgICAgPHJtdG9kZEBzZXJ2YWxhbi5zZXJ2YWxhbi5jb20+IChSaWNo YXJkIFRvZGQpCisrICAgICBNaWNoYWVsIEp1LiBUb2thcmV2IDxtanRAdGxzLm1zay5ydT4KKysg ICAgIE1hcnRpbiBUb21lcyA8bXQwMEBjb250cm9scy5ldXJvdGhlcm0uY28udWs+CisrICAgICBM ZW4gVG93ZXIgPHRvd2VyLXByZXBAYWkubWl0LmVkdT4KKysgICAgIE1hcmsgVG93ZmlxIDxqdXN0 aWNlIXRvd2ZpcUBFaW5nZWRpLk5ld3Rvbi5NQS5VUz4KKysgICAgIDxtanVAbXVkb3MuYW5uLWFy Ym9yLm1pLnVzPiAoTWFyYyBVbmFuZ3N0KQorKyAgICAgTWF0dGhpYXMgVXJsaWNocyA8dXJsaWNo c0BzbXVyZi5ub3Jpcy5kZT4KKysgICAgIFRvbWkgVmFpbmlvIDx0b21wcGFAZmlkYXRhLmZpPgor KyAgICAgPGEzQGEzLnhzNGFsbC5ubD4gKEFkcmkgVmVyaG9lZikKKysgICAgIEFuZHJldyBWaWdu YXV4IDxhanZAZmVycmFyaS5kYXRhbWFyay5jby5uej4KKysgICAgIDx2b2dlbEBvbWVnYS5zc3cu ZGU+IChBbmRyZWFzIFZvZ2VsKQorKyAgICAgRGltYSBWb2xvZGluIDxkdnZAaHEuZGVtb3Muc3U+ CisrICAgICA8am9zQGJ1bGwubmw+IChKb3MgVm9zKQorKyAgICAgPGp2QG5sLm5ldD4gKEpvaGFu IFZyb21hbnMpCisrICAgICBEYXZpZCBWcm9uYSA8ZGF2ZUBzYXNoaW1pLnd3YS5jb20+CisrICAg ICA8TWFyY2VsLldhbGR2b2dlbEBuaWNlLnVzZXJncm91cC5ldGh6LmNoPiAoTWFyY2VsIFdhbGR2 b2dlbCkKKysgICAgIDxzdGV2ZUBuc2hvcmUub3JnPiAoU3RlcGhlbiBKLiBXYWxpY2spCisrICAg ICA8c3lkQGRzaW5jLmRzaS5jb20+IChTeWQgV2VpbnN0ZWluKQorKyAgICAgPGdlcmJlbkBybmEu aW5kaXYubmx1dWcubmw+IChHZXJiZW4gV2llcmRhKQorKyAgICAgPGpid0Bjcy5idS5lZHU+IChK b2UgV2VsbHMpCisrICAgICA8ZnJua210aCF0d3dlbGxzLmNvbSFiaWxsPiAoVC4gV2lsbGlhbSBX ZWxscykKKysgICAgIFBldGVyIFdlbW0gPFBldGVyX1dlbW1AemV1cy5kaWFsaXgub3ouYXU+Cisr ICAgICA8bWF1eGNpIWVjaTM4NiF3b29kc0BhcHBsZS5jb20+IChHcmVnIEEuIFdvb2RzKQorKyAg ICAgPEpvaG4uV29vZHNAcHJvdGVvbi5jb20+IChKb2huIFdvb2RzKQorKyAgICAgTWljaGFlbCBZ dS5ZYXJvc2xhdnRzZXYgPG1pa2VAeWFyYW5nYS5pcG1jZS5zdT4KKysgICAgIEFsZXhlaSBLLiBZ dXNoaW4gPHJvb3RAanVseS5lbGlzLmNyaW1lYS51YT4KKysgICAgIDxqb25AY29uc29sZS5haXMu b3JnPiAoSm9uIFplZWZmKQorKyAgICAgTWF0dGhpYXMgWmVwZiA8YWdudXNAYW15bG5kLnN0Z3Qu c3ViLm9yZz4KKysgICAgIEVyaWMgWmllZ2FzdCA8dXVuZXQhemllZ2FzdD4KKyAKKyAfCistRmls ZTogdXVjcC5pbmZvLCAgTm9kZTogVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXQsICBOZXh0OiBT cG9vbCBEaXJlY3RvcnkgQ2xlYW5pbmcsICBQcmV2OiBNYWlsIGFuZCBOZXdzLCAgVXA6IFVzaW5n IFRheWxvciBVVUNQCistCistVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXQKKy09PT09PT09PT09 PT09PT09PT09PT09PT09PQorK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IEluZGV4IChjb25jZXB0 cyksICBOZXh0OiBJbmRleCAoY29uZmlndXJhdGlvbiBmaWxlKSwgIFByZXY6IEFja25vd2xlZGdl bWVudHMsICBVcDogVG9wCisgCistICAgSW4gZ2VuZXJhbCwgdGhlIGxheW91dCBvZiB0aGUgc3Bv b2wgZGlyZWN0b3J5IG1heSBiZSBzYWZlbHkgaWdub3JlZC4KKy1Ib3dldmVyLCBpdCBpcyBkb2N1 bWVudGVkIGhlcmUgZm9yIHRoZSBjdXJpb3VzLiAgVGhpcyBkZXNjcmlwdGlvbiBvbmx5CistY292 ZXJzIHRoZSBgU1BPT0xESVJfVEFZTE9SJyBsYXlvdXQuICBUaGUgd2F5cyBpbiB3aGljaCB0aGUg b3RoZXIgc3Bvb2wKKy1kaXJlY3RvcnkgbGF5b3V0cyBkaWZmZXIgYXJlIGRlc2NyaWJlZCBpbiB0 aGUgc291cmNlIGZpbGUKKy1gdW5peC9zcG9vbC5jJy4KKy0KKy0gICBEaXJlY3RvcmllcyBhbmQg ZmlsZXMgYXJlIG9ubHkgY3JlYXRlZCB3aGVuIHRoZXkgYXJlIG5lZWRlZCwgc28gYQorLXR5cGlj YWwgc3lzdGVtIHdpbGwgbm90IGhhdmUgYWxsIG9mIHRoZSBlbnRyaWVzIGRlc2NyaWJlZCBoZXJl LgorK0NvbmNlcHQgSW5kZXgKKysqKioqKioqKioqKioqCisgCisrAAhbaW5kZXgACF0KKyAqIE1l bnU6CisgCistKiBTeXN0ZW0gU3Bvb2wgRGlyZWN0b3JpZXM6OiAgICBTeXN0ZW0gU3Bvb2wgRGly ZWN0b3JpZXMKKy0qIFN0YXR1cyBEaXJlY3Rvcnk6OiAgICAgICAgICAgIFN0YXR1cyBTcG9vbCBE aXJlY3RvcnkKKy0qIEV4ZWN1dGlvbiBTdWJkaXJlY3Rvcmllczo6ICAgIEV4ZWN1dGlvbiBTcG9v bCBTdWJkaXJlY3RvcmllcworLSogT3RoZXIgU3Bvb2wgU3ViZGlyZWN0b3JpZXM6OiAgT3RoZXIg U3Bvb2wgU3ViZGlyZWN0b3JpZXMKKy0qIFNwb29sIExvY2sgRmlsZXM6OiAgICAgICAgICAgIFNw b29sIERpcmVjdG9yeSBMb2NrIEZpbGVzCisrKiAuQ29ycnVwdDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFeGVjdXRpb24gU3ViZGlyZWN0b3JpZXMuCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMjEpCisr KiAuRmFpbGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRpb24gU3ViZGly ZWN0b3JpZXMuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgMjYpCisrKiAuUHJlc2VydmU6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPdGhlciBTcG9vbCBTdWJkaXJlY3Rvcmllcy4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAz MCkKKysqIC5SZWNlaXZlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIFNwb29s IFN1YmRpcmVjdG9yaWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDM4KQorKyogLlNlcXVlbmNlOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT3RoZXIgU3Bvb2wgU3ViZGlyZWN0b3JpZXMuCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDcpCisrKiAuU3RhdHVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0 dXMgRGlyZWN0b3J5LiAgICAgKGxpbmUgIDcpCisrKiAuVGVtcDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPdGhlciBTcG9vbCBTdWJkaXJlY3Rvcmllcy4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAx NCkKKysqIC5YcXRkaXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4ZWN1dGlvbiBT dWJkaXJlY3Rvcmllcy4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNykKKysqIC91c3Ivc3Bvb2wvdXVjcDogICAg ICAgICAgICAgICAgICAgICAgIE1pc2NlbGxhbmVvdXMgKGNvbmZpZykuCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg MTQpCisrKiAvdXNyL3Nwb29sL3V1Y3BwdWJsaWM6ICAgICAgICAgICAgICAgICBNaXNjZWxsYW5l b3VzIChjb25maWcpLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDIwKQorKyogYWNjZXB0aW5nIGNhbGxzOiAgICAg ICAgICAgICAgICAgICAgICAgQWNjZXB0aW5nIENhbGxzLiAgICAgIChsaW5lICA2KQorKyogYW5v bnltb3VzIFVVQ1A6ICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnIEZpbGUgRXhhbXBsZXMu IChsaW5lIDQxKQorKyogY2FsbCBjb25maWd1cmF0aW9uIGZpbGU6ICAgICAgICAgICAgICAgQ29u ZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDQ3KQorKyogY2FsbCBpbiBsb2dp biBuYW1lOiAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lIDY0KQorKyogY2FsbCBpbiBwYXNzd29yZDogICAgICAgICAgICAgICAgICAgICAg Q29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDY0KQorKyogY2FsbCBvdXQg ZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lIDQ3KQorKyogY2FsbCBvdXQgbG9naW4gbmFtZTogICAgICAgICAgICAgICAg ICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDQ3KQorKyogY2FsbCBv dXQgcGFzc3dvcmQ6ICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVz LgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lIDQ3KQorKyogY2FsbGluZyBpbjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgQWNjZXB0aW5nIENhbGxzLiAgICAgIChsaW5lICA2KQorKyogY2FsbGluZyBvdXQ6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ2FsbGluZyBPdGhlciBTeXN0ZW1zLgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICA2KQorKyogY2hhbmdpbmcgc3Bvb2wgZGlyZWN0b3J5OiAgICAgICAgICAgICAgY29uZmln IEZpbGUgRXhhbXBsZXMuIChsaW5lIDI2KQorKyogY2hhdCBzY3JpcHRzOiAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2hhdCBTY3JpcHRzLiAgICAgICAgIChsaW5lICA2KQorKyogY2xlYW5pbmcg dGhlIHNwb29sIGRpcmVjdG9yeTogICAgICAgICAgU3Bvb2wgRGlyZWN0b3J5IENsZWFuaW5nLgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA2KQorKyogY29uZmlnIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uZmlnIEZpbGUuICAgICAgICAgIChsaW5lICA2KQorKyogY29uZmlnIGZpbGUgZXhhbXBs ZXM6ICAgICAgICAgICAgICAgICAgY29uZmlnIEZpbGUgRXhhbXBsZXMuIChsaW5lICA2KQorKyog Y29uZmlndXJhdGlvbiBmaWxlIChjYWxsKTogICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBGaWxl IE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lIDQ3KQorKyogY29uZmlndXJhdGlvbiBmaWxlIChjb25maWcp OiAgICAgICAgICAgY29uZmlnIEZpbGUuICAgICAgICAgIChsaW5lICA2KQorKyogY29uZmlndXJh dGlvbiBmaWxlIChkaWFsKTogICAgICAgICAgICAgZGlhbCBGaWxlLiAgICAgICAgICAgIChsaW5l ICA2KQorKyogY29uZmlndXJhdGlvbiBmaWxlIChkaWFsY29kZSk6ICAgICAgICAgQ29uZmlndXJh dGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDMwKQorKyogY29uZmlndXJhdGlvbiBmaWxl IChwYXNzd2QpOiAgICAgICAgICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lIDY0KQorKyogY29uZmlndXJhdGlvbiBmaWxlIChwb3J0KTogICAgICAgICAgICAgcG9ydCBG aWxlLiAgICAgICAgICAgIChsaW5lICA2KQorKyogY29uZmlndXJhdGlvbiBmaWxlIChzeXMpOiAg ICAgICAgICAgICAgc3lzIEZpbGUuICAgICAgICAgICAgIChsaW5lICA2KQorKyogZCBwcm90b2Nv bDogICAgICAgICAgICAgICAgICAgICAgICAgICAgZCBQcm90b2NvbC4gICAgICAgICAgIChsaW5l ICA2KQorKyogZGVidWdnaW5nIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgTG9nIEZpbGUg TmFtZXMuICAgICAgIChsaW5lIDE5KQorKyogZGlhbCBmaWxlOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGlhbCBGaWxlLiAgICAgICAgICAgIChsaW5lICA2KQorKyogZGlhbGNvZGUgY29u ZmlndXJhdGlvbiBmaWxlOiAgICAgICAgICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lIDMwKQorKyogZGlhbGNvZGUgZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAg Q29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDMwKQorKyogZGlhbGVyIGNv bmZpZ3VyYXRpb24gZmlsZTogICAgICAgICAgICAgZGlhbCBGaWxlLiAgICAgICAgICAgIChsaW5l ICA2KQorKyogZSBwcm90b2NvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgZSBQcm90b2Nv bC4gICAgICAgICAgIChsaW5lICA2KQorKyogRSBVVUNQIHByb3RvY29sIGNvbW1hbmQ6ICAgICAg ICAgICAgICAgVGhlIEUgQ29tbWFuZC4gICAgICAgIChsaW5lICA2KQorKyogZXhlY3V0aW9uIGZp bGUgZm9ybWF0OiAgICAgICAgICAgICAgICAgRXhlY3V0aW9uIEZpbGUgRm9ybWF0LgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA2KQorKyogZiBwcm90b2NvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgZiBQ cm90b2NvbC4gICAgICAgICAgIChsaW5lICA2KQorKyogZmluYWwgaGFuZHNoYWtlOiAgICAgICAg ICAgICAgICAgICAgICAgVGhlIEZpbmFsIEhhbmRzaGFrZS4gIChsaW5lICA2KQorKyogRyBwcm90 b2NvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlnIEcgUHJvdG9jb2wuICAgICAgIChs aW5lICA2KQorKyogZyBwcm90b2NvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgZyBQcm90 b2NvbC4gICAgICAgICAgIChsaW5lICA2KQorKyogZ2F0ZXdheTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgR2F0ZXdheSBFeGFtcGxlLiAgICAgIChsaW5lICA2KQorKyogZ3JhZGVzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB0byBDYWxsLiAgICAgICAgIChsaW5l IDI1KQorKyogZ3JhZGVzIGltcGxlbWVudGF0aW9uOiAgICAgICAgICAgICAgICAgVVVDUCBHcmFk ZXMuICAgICAgICAgIChsaW5lICA2KQorKyogaCBwcm90b2NvbDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgaCBQcm90b2NvbC4gICAgICAgICAgIChsaW5lICA2KQorKyogSCBVVUNQIHByb3Rv Y29sIGNvbW1hbmQ6ICAgICAgICAgICAgICAgVGhlIEggQ29tbWFuZC4gICAgICAgIChsaW5lICA2 KQorKyogaSBwcm90b2NvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgaSBQcm90b2NvbC4g ICAgICAgICAgIChsaW5lICA2KQorKyogaW5pdGlhbCBoYW5kc2hha2U6ICAgICAgICAgICAgICAg ICAgICAgVGhlIEluaXRpYWwgSGFuZHNoYWtlLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2KQorKyogaiBwcm90 b2NvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgaiBQcm90b2NvbC4gICAgICAgICAgIChs aW5lICA2KQorKyogTC5YWFg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Bvb2wg TG9jayBGaWxlcy4gICAgIChsaW5lIDQzKQorKyogTENLLi5TWVM6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3Bvb2wgTG9jayBGaWxlcy4gICAgIChsaW5lIDE2KQorKyogTENLLlhRVC5O TjogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Bvb2wgTG9jayBGaWxlcy4gICAgIChsaW5l IDI4KQorKyogbGVhZiBzaXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVhZiBFeGFt cGxlLiAgICAgICAgIChsaW5lICA2KQorKyogbG9jayBkaXJlY3Rvcnk6ICAgICAgICAgICAgICAg ICAgICAgICAgTWlzY2VsbGFuZW91cyAoY29uZmlnKS4KKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAyNykKKysqIGxv Y2sgZmlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVVQ1AgTG9jayBGaWxlcy4gICAg ICAobGluZSAgNikKKysqIGxvY2sgZmlsZXMgaW4gc3Bvb2wgZGlyZWN0b3J5OiAgICAgICAgIFNw b29sIExvY2sgRmlsZXMuICAgICAobGluZSAgNikKKysqIGxvZyBmaWxlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvZyBGaWxlIE5hbWVzLiAgICAgICAobGluZSAgNykKKysqIExYUS5D TUQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwb29sIExvY2sgRmlsZXMuICAgICAo bGluZSAzNikKKysqIG1haWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haWwg YW5kIE5ld3MuICAgICAgICAobGluZSAgNikKKysqIG1haW4gY29uZmlndXJhdGlvbiBmaWxlOiAg ICAgICAgICAgICAgIGNvbmZpZyBGaWxlLiAgICAgICAgICAobGluZSAgNikKKysqIG5ld3M6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haWwgYW5kIE5ld3MuICAgICAgICAobGlu ZSAgNikKKysqIHBhcml0eSBpbiBsb2dpbiBuYW1lczogICAgICAgICAgICAgICAgIE1pc2NlbGxh bmVvdXMgKGNvbmZpZykuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgNDMpCisrKiBwYXNzd2QgY29uZmlndXJhdGlv biBmaWxlOiAgICAgICAgICAgICBDb25maWd1cmF0aW9uIEZpbGUgTmFtZXMuCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgNjQpCisrKiBwYXNzd2QgZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1 cmF0aW9uIEZpbGUgTmFtZXMuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgNjQpCisrKiBwb3J0IGNvbmZpZ3VyYXRp b24gZmlsZTogICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAgICAgKGxpbmUgIDYpCisr KiBwb3J0IGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAg ICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCBkOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkIFByb3RvY29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCBlOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlIFByb3RvY29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBw cm90b2NvbCBmOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmIFByb3RvY29sLiAgICAgICAg ICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCBHOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBC aWcgRyBQcm90b2NvbC4gICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCBnOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnIFByb3RvY29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBwcm90 b2NvbCBoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoIFByb3RvY29sLiAgICAgICAgICAg KGxpbmUgIDYpCisrKiBwcm90b2NvbCBpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpIFBy b3RvY29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCBqOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBqIFByb3RvY29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2Nv bCB0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0IFByb3RvY29sLiAgICAgICAgICAgKGxp bmUgIDYpCisrKiBwcm90b2NvbCB2OiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IFByb3Rv Y29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCB4OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB4IFByb3RvY29sLiAgICAgICAgICAgKGxpbmUgIDYpCisrKiBwcm90b2NvbCB5 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5IFByb3RvY29sLiAgICAgICAgICAgKGxpbmUg IDYpCisrKiBwcm90b2NvbCwgVVVDUDogICAgICAgICAgICAgICAgICAgICAgICBVVUNQIFByb3Rv Y29sLiAgICAgICAgKGxpbmUgIDYpCisrKiBwdWJsaWMgZGlyZWN0b3J5OiAgICAgICAgICAgICAg ICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25maWcpLgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDIwKQorKyogUiBV VUNQIHByb3RvY29sIGNvbW1hbmQ6ICAgICAgICAgICAgICAgVGhlIFIgQ29tbWFuZC4gICAgICAg IChsaW5lICA2KQorKyogUyBVVUNQIHByb3RvY29sIGNvbW1hbmQ6ICAgICAgICAgICAgICAgVGhl IFMgQ29tbWFuZC4gICAgICAgIChsaW5lICA2KQorKyogc3Bvb2wgZGlyZWN0b3J5OiAgICAgICAg ICAgICAgICAgICAgICAgVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXQuCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDYpCisrKiBzcG9vbCBkaXJlY3RvcnksIGNoYW5naW5nOiAgICAgICAgICAgICBjb25maWcgRmls ZSBFeGFtcGxlcy4gKGxpbmUgMjYpCisrKiBzcG9vbCBkaXJlY3RvcnksIGNsZWFuaW5nOiAgICAg ICAgICAgICBTcG9vbCBEaXJlY3RvcnkgQ2xlYW5pbmcuCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDYpCisrKiBz cG9vbCBkaXJlY3RvcnksIHNldHRpbmc6ICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25m aWcpLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lIDE0KQorKyogc3RhdGlzdGljcyBmaWxlOiAgICAgICAgICAgICAg ICAgICAgICAgTG9nIEZpbGUgTmFtZXMuICAgICAgIChsaW5lIDE0KQorKyogc3RhdHVzIGZpbGVz OiAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzIERpcmVjdG9yeS4gICAgIChsaW5lICA3 KQorKyogc3lzIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzIEZpbGUuICAg ICAgICAgICAgIChsaW5lICA2KQorKyogc3lzIGZpbGUgZXhhbXBsZSAoZ2F0ZXdheSk6ICAgICAg ICAgICAgR2F0ZXdheSBFeGFtcGxlLiAgICAgIChsaW5lICA2KQorKyogc3lzIGZpbGUgZXhhbXBs ZSAobGVhZik6ICAgICAgICAgICAgICAgTGVhZiBFeGFtcGxlLiAgICAgICAgIChsaW5lICA2KQor Kyogc3lzdGVtIGNvbmZpZ3VyYXRpb24gZmlsZTogICAgICAgICAgICAgc3lzIEZpbGUuICAgICAg ICAgICAgIChsaW5lICA2KQorKyogc3lzdGVtIGxvY2sgZmlsZXM6ICAgICAgICAgICAgICAgICAg ICAgU3Bvb2wgTG9jayBGaWxlcy4gICAgIChsaW5lIDE2KQorKyogc3lzdGVtIG5hbWU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFuZW91cyAoY29uZmlnKS4KKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgOSkKKysqIHN5c3RlbSBzcG9vbCBkaXJlY3RvcmllczogICAgICAgICAgICAgIFN5c3RlbSBT cG9vbCBEaXJlY3Rvcmllcy4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNikKKysqIHQgcHJvdG9jb2w6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHQgUHJvdG9jb2wuICAgICAgICAgICAobGluZSAgNikKKysq IHRpbWUgc3RyaW5nczogICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgU3RyaW5ncy4gICAg ICAgICAobGluZSAgNikKKysqIHVua25vd24gc3lzdGVtczogICAgICAgICAgICAgICAgICAgICAg IE1pc2NlbGxhbmVvdXMgKGNvbmZpZykuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMzYpCisrKiBVVUNQIHByb3Rv Y29sOiAgICAgICAgICAgICAgICAgICAgICAgICBVVUNQIFByb3RvY29sLiAgICAgICAgKGxpbmUg IDYpCisrKiBVVUNQIHByb3RvY29sIEUgY29tbWFuZDogICAgICAgICAgICAgICBUaGUgRSBDb21t YW5kLiAgICAgICAgKGxpbmUgIDYpCisrKiBVVUNQIHByb3RvY29sIEggY29tbWFuZDogICAgICAg ICAgICAgICBUaGUgSCBDb21tYW5kLiAgICAgICAgKGxpbmUgIDYpCisrKiBVVUNQIHByb3RvY29s IFIgY29tbWFuZDogICAgICAgICAgICAgICBUaGUgUiBDb21tYW5kLiAgICAgICAgKGxpbmUgIDYp CisrKiBVVUNQIHByb3RvY29sIFMgY29tbWFuZDogICAgICAgICAgICAgICBUaGUgUyBDb21tYW5k LiAgICAgICAgKGxpbmUgIDYpCisrKiBVVUNQIHByb3RvY29sIFggY29tbWFuZDogICAgICAgICAg ICAgICBUaGUgWCBDb21tYW5kLiAgICAgICAgKGxpbmUgIDYpCisrKiBVVUNQIHN5c3RlbSBuYW1l OiAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25maWcpLgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICA5KQorKyogdXVjcHB1YmxpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2Vs bGFuZW91cyAoY29uZmlnKS4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAyMCkKKysqIHYgcHJvdG9jb2w6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYgUHJvdG9jb2wuICAgICAgICAgICAobGluZSAgNikKKysq IHggcHJvdG9jb2w6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggUHJvdG9jb2wuICAgICAg ICAgICAobGluZSAgNikKKysqIFggVVVDUCBwcm90b2NvbCBjb21tYW5kOiAgICAgICAgICAgICAg IFRoZSBYIENvbW1hbmQuICAgICAgICAobGluZSAgNikKKysqIFguKiBmaWxlIGZvcm1hdDogICAg ICAgICAgICAgICAgICAgICAgIEV4ZWN1dGlvbiBGaWxlIEZvcm1hdC4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg NikKKysqIHkgcHJvdG9jb2w6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgUHJvdG9jb2wu ICAgICAgICAgICAobGluZSAgNikKKyAKKyAfCistRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogU3lz dGVtIFNwb29sIERpcmVjdG9yaWVzLCAgTmV4dDogU3RhdHVzIERpcmVjdG9yeSwgIFByZXY6IFRo ZSBTcG9vbCBEaXJlY3RvcnkgTGF5b3V0LCAgVXA6IFRoZSBTcG9vbCBEaXJlY3RvcnkgTGF5b3V0 CistCistU3lzdGVtIFNwb29sIERpcmVjdG9yaWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogSW5kZXggKGNvbmZpZ3VyYXRpb24gZmlsZSksICBQ cmV2OiBJbmRleCAoY29uY2VwdHMpLCAgVXA6IFRvcAorIAorLWBTWVNURU0nCistICAgICBUaGVy ZSBpcyBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgbWFpbiBzcG9vbCBkaXJlY3RvcnkgZm9yIGVhY2gg cmVtb3RlCistICAgICBzeXN0ZW0uCistCistYFNZU1RFTS9DLicKKy0gICAgIFRoaXMgZGlyZWN0 b3J5IHN0b3JlcyBmaWxlcyBkZXNjcmliaW5nIGZpbGUgdHJhbnNmZXIgY29tbWFuZHMgdG8KKy0g ICAgIGJlIHNlbnQgdG8gdGhlIFNZU1RFTS4gIEVhY2ggZmlsZSBuYW1lIHN0YXJ0cyB3aXRoIGBD LkcnLCB3aGVyZSBHCistICAgICBpcyB0aGUgam9iIGdyYWRlLiAgRWFjaCBmaWxlIGNvbnRhaW5z IG9uZSBvciBtb3JlIGNvbW1hbmRzLiAgRm9yCistICAgICBkZXRhaWxzIG9mIHRoZSBjb21tYW5k cywgc2VlICpOb3RlIFVVQ1AgUHJvdG9jb2wgQ29tbWFuZHM6Oi4KKy0KKy1gU1lTVEVNL0QuJwor LSAgICAgVGhpcyBkaXJlY3Rvcnkgc3RvcmVzIGRhdGEgZmlsZXMuICBGaWxlcyB3aXRoIG5hbWVz IGxpa2UKKy0gICAgIGBELkdTU1NTJywgd2hlcmUgRyBpcyB0aGUgZ3JhZGUgYW5kIFNTU1MgaXMg YSBzZXF1ZW5jZSBudW1iZXIsIGFyZQorLSAgICAgd2FpdGluZyB0byBiZSB0cmFuc2ZlcnJlZCB0 byB0aGUgU1lTVEVNLCBhcyBkaXJlY3RlZCBieSB0aGUgZmlsZXMKKy0gICAgIGluIHRoZSBgU1lT VEVNL0MuJyBkaXJlY3RvcnkuICBGaWxlcyB3aXRoIG90aGVyIG5hbWVzLCB0eXBpY2FsbHkKKy0g ICAgIGBELlNZU1RFTUdTU1NTJywgaGF2ZSBiZWVuIHJlY2VpdmVkIGZyb20gU1lTVEVNIGFuZCBh cmUgd2FpdGluZyB0bworLSAgICAgYmUgcHJvY2Vzc2VkIGJ5IGFuIGV4ZWN1dGlvbiBmaWxlIGlu IHRoZSBgU1lTVEVNL1guJyBkaXJlY3RvcnkuCistCistYFNZU1RFTS9ELlgnCistICAgICBUaGlz IGRpcmVjdG9yeSBzdG9yZXMgZGF0YSBmaWxlcyB3aGljaCB3aWxsIGJlY29tZSBleGVjdXRpb24g ZmlsZXMKKy0gICAgIG9uIHRoZSByZW1vdGUgc3lzdGVtLiAgSW4gY3VycmVudCBwcmFjdGljZSwg dGhpcyBkaXJlY3RvcnkgcmFyZWx5CistICAgICBleGlzdHMsIGJlY2F1c2UgbW9zdCBzaW1wbGUg ZXhlY3V0aW9ucywgaW5jbHVkaW5nIHR5cGljYWwgdXNlcyBvZgorLSAgICAgYHJtYWlsJyBhbmQg YHJuZXdzJywgc2VuZCBhbiBgRScgY29tbWFuZCByYXRoZXIgdGhhbiBhbiBleGVjdXRpb24KKy0g ICAgIGZpbGUgKCpub3RlIFRoZSBFIENvbW1hbmQ6OikuCistCistYFNZU1RFTS9YLicKKy0gICAg IFRoaXMgZGlyZWN0b3J5IHN0b3JlcyBleGVjdXRpb24gZmlsZXMgd2hpY2ggaGF2ZSBiZWVuIHJl Y2VpdmVkIGZyb20KKy0gICAgIFNZU1RFTS4gIFRoaXMgZGlyZWN0b3J5IG5vcm1hbGx5IGV4aXN0 cywgZXZlbiB0aG91Z2ggdGhlCistICAgICBjb3JyZXNwb25kaW5nIGBELlgnIGRpcmVjdG9yeSBk b2VzIG5vdCwgYmVjYXVzZSBgdXVjaWNvJyB3aWxsCistICAgICBjcmVhdGUgYW4gZXhlY3V0aW9u IGZpbGUgb24gdGhlIGZseSB3aGVuIGl0IHJlY2VpdmVzIGFuIGBFJworLSAgICAgY29tbWFuZC4K Ky0KKy1gU1lTVEVNL1NFUUYnCistICAgICBUaGlzIGZpbGUgaG9sZHMgdGhlIHNlcXVlbmNlIG51 bWJlciBvZiB0aGUgbGFzdCBqb2Igc2VudCB0bworLSAgICAgU1lTVEVNLiAgVGhlIHNlcXVlbmNl IG51bWJlciBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IGZpbGUgbmFtZXMgYXJlCistICAgICB1bmlx dWUgaW4gdGhlIHJlbW90ZSBzeXN0ZW0gc3Bvb2wgZGlyZWN0b3J5LiAgVGhlIGZpbGUgaXMgZm91 cgorLSAgICAgYnl0ZXMgbG9uZy4gIFNlcXVlbmNlIG51bWJlcnMgYXJlIGNvbXBvc2VkIG9mIGRp Z2l0cyBhbmQgdGhlIHVwcGVyCistICAgICBjYXNlIGxldHRlcnMuCisrQ29uZmlndXJhdGlvbiBG aWxlIEluZGV4CisrKioqKioqKioqKioqKioqKioqKioqKioqCisgCistHworLUZpbGU6IHV1Y3Au aW5mbywgIE5vZGU6IFN0YXR1cyBEaXJlY3RvcnksICBOZXh0OiBFeGVjdXRpb24gU3ViZGlyZWN0 b3JpZXMsICBQcmV2OiBTeXN0ZW0gU3Bvb2wgRGlyZWN0b3JpZXMsICBVcDogVGhlIFNwb29sIERp cmVjdG9yeSBMYXlvdXQKKy0KKy1TdGF0dXMgRGlyZWN0b3J5CistLS0tLS0tLS0tLS0tLS0tLQor KwAIW2luZGV4AAhdCisrKiBNZW51OgorIAorLWAuU3RhdHVzJworLSAgICAgVGhpcyBkaXJlY3Rv cnkgaG9sZHMgc3RhdHVzIGZpbGVzIGZvciBlYWNoIHJlbW90ZSBzeXN0ZW0uICBUaGUKKy0gICAg IG5hbWUgb2YgdGhlIHN0YXR1cyBmaWxlIGlzIHRoZSBuYW1lIG9mIHRoZSBzeXN0ZW0gd2hpY2gg aXQKKy0gICAgIGRlc2NyaWJlcy4gIEVhY2ggc3RhdHVzIGZpbGUgZGVzY3JpYmVzIHRoZSBsYXN0 IGNvbnZlcnNhdGlvbiB3aXRoCistICAgICB0aGUgc3lzdGVtLiAgUnVubmluZyBgdXVzdGF0IC0t c3RhdHVzJyBiYXNpY2FsbHkganVzdCBmb3JtYXRzIGFuZAorLSAgICAgcHJpbnRzIHRoZSBjb250 ZW50cyBvZiB0aGUgc3RhdHVzIGZpbGVzICgqbm90ZSB1dXN0YXQgRXhhbXBsZXM6OikuCistCist ICAgICBFYWNoIHN0YXR1cyBmaWxlIGhhcyBhIHNpbmdsZSB0ZXh0IGxpbmUgd2l0aCBzaXggZmll bGRzLgorLQorLSAgICBjb2RlCistICAgICAgICAgIEEgY29kZSBpbmRpY2F0aW5nIHRoZSBzdGF0 dXMgb2YgdGhlIGxhc3QgY29udmVyc2F0aW9uLiAgVGhlCistICAgICAgICAgIGZvbGxvd2luZyB2 YWx1ZXMgYXJlIGRlZmluZWQsIHRob3VnaCBub3QgYWxsIGFyZSBhY3R1YWxseQorLSAgICAgICAg ICB1c2VkLgorLSAgICAgICAgIGAwJworLSAgICAgICAgICAgICAgIENvbnZlcnNhdGlvbiBjb21w bGV0ZWQgbm9ybWFsbHkuCistCistICAgICAgICAgYDEnCistICAgICAgICAgICAgICAgYHV1Y2lj bycgd2FzIHVuYWJsZSB0byBvcGVuIHRoZSBwb3J0LgorLQorLSAgICAgICAgIGAyJworLSAgICAg ICAgICAgICAgIFRoZSBsYXN0IGNhbGwgdG8gdGhlIHN5c3RlbSBmYWlsZWQgd2hpbGUgZGFpbGlu Zy4KKy0KKy0gICAgICAgICBgMycKKy0gICAgICAgICAgICAgICBUaGUgbGFzdCBjYWxsIHRvIHRo ZSBzeXN0ZW0gZmFpbGVkIHdoaWxlIGxvZ2dpbmcgaW4uCistCistICAgICAgICAgYDQnCistICAg ICAgICAgICAgICAgVGhlIGxhc3QgY2FsbCB0byB0aGUgc3lzdGVtIGZhaWxlZCBkdXJpbmcgdGhl IGluaXRpYWwKKy0gICAgICAgICAgICAgICBVVUNQIHByb3RvY29sIGhhbmRzaGFrZSAoKm5vdGUg VGhlIEluaXRpYWwgSGFuZHNoYWtlOjopLgorLQorLSAgICAgICAgIGA1JworLSAgICAgICAgICAg ICAgIFRoZSBsYXN0IGNhbGwgdG8gdGhlIHN5c3RlbSBmYWlsZWQgYWZ0ZXIgdGhlIGluaXRpYWwK Ky0gICAgICAgICAgICAgICBoYW5kc2hha2UuCistCistICAgICAgICAgYDYnCistICAgICAgICAg ICAgICAgYHV1Y2ljbycgaXMgY3VycmVudGx5IHRhbGtpbmcgdG8gdGhlIHN5c3RlbS4KKy0KKy0g ICAgICAgICBgNycKKy0gICAgICAgICAgICAgICBUaGUgbGFzdCBjYWxsIHRvIHRoZSBzeXN0ZW0g ZmFpbGVkIGJlY2F1c2UgaXQgd2FzIHRoZQorLSAgICAgICAgICAgICAgIHdyb25nIHRpbWUgdG8g Y2FsbCAodGhpcyBpcyBub3QgdXNlZCBpZiBjYWxsaW5nIHRoZQorLSAgICAgICAgICAgICAgIHN5 c3RlbSBpcyBuZXZlciBwZXJtaXR0ZWQpLgorLQorLSAgICByZXRyaWVzCistICAgICAgICAgIFRo ZSBudW1iZXIgb2YgcmV0cmllcyBzaW5jZSB0aGUgbGFzdCBzdWNjZXNzZnVsIGNhbGwuCistCist ICAgIHRpbWUgb2YgbGFzdCBjYWxsCistICAgICAgICAgIFRoZSB0aW1lIG9mIHRoZSBsYXN0IGNh bGwsIGluIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoIChhcworLSAgICAgICAgICByZXR1cm5lZCBi eSB0aGUgYHRpbWUnIHN5c3RlbSBjYWxsKS4KKy0KKy0gICAgd2FpdAorLSAgICAgICAgICBJZiB0 aGUgbGFzdCBjYWxsIGZhaWxlZCwgdGhpcyBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgc2luY2UK Ky0gICAgICAgICAgdGhlIGxhc3QgY2FsbCBiZWZvcmUgYHV1Y2ljbycgbWF5IGF0dGVtcHQgYW5v dGhlciBjYWxsLiAgVGhpcworLSAgICAgICAgICBpcyBzZXQgYmFzZWQgb24gdGhlIHJldHJ5IHRp bWU7IHNlZSAqTm90ZSBXaGVuIHRvIENhbGw6Oi4KKy0gICAgICAgICAgVGhlIGAtZicgb3IgYC1T JyBvcHRpb25zIHRvIGB1dWNpY28nIGRpcmVjdCBpdCB0byBpZ25vcmUgdGhpcworLSAgICAgICAg ICB3YWl0IHRpbWU7IHNlZSAqTm90ZSBJbnZva2luZyB1dWNpY286Oi4KKy0KKy0gICAgZGVzY3Jp cHRpb24KKy0gICAgICAgICAgQSB0ZXh0IGRlc2NyaXB0aW9uIG9mIHRoZSBzdGF0dXMsIGNvcnJl c3BvbmRpbmcgdG8gdGhlIGNvZGUKKy0gICAgICAgICAgaW4gdGhlIGZpcnN0IGZpZWxkLiAgVGhp cyBtYXkgY29udGFpbiBzcGFjZXMuCisrKiBhYm9ydDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMzcpCisrKiBhYm9ydC1jaGF0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMjMp CisrKiBhYm9ydC1jaGF0LWZhaWw6ICAgICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAg ICAgICAgICAobGluZSAxMjcpCisrKiBhYm9ydC1jaGF0LXByb2dyYW06ICAgICAgICAgICAgICAg ICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMzEpCisrKiBhYm9ydC1jaGF0LXNldmVu LWJpdDogICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMjkpCisr KiBhYm9ydC1jaGF0LXRpbWVvdXQ6ICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAg ICAgICAobGluZSAxMjUpCisrKiBhZGRyZXNzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQbGFjaW5nIHRoZSBDYWxsLiAgICAobGluZSAgNDYpCisrKiBhbGlhczogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOYW1pbmcgdGhlIFN5c3RlbS4gICAobGluZSAgMjQpCisrKiBh bHRlcm5hdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1pbmcgdGhlIFN5c3RlbS4g ICAobGluZSAgMTEpCisrKiBiYXVkIGluIHBvcnQgZmlsZTogICAgICAgICAgICAgICAgICAgICBw b3J0IEZpbGUuICAgICAgICAgICAobGluZSAgODYpCisrKiBiYXVkIGluIHN5cyBmaWxlOiAgICAg ICAgICAgICAgICAgICAgICBQbGFjaW5nIHRoZSBDYWxsLiAgICAobGluZSAgIDkpCisrKiBiYXVk LXJhbmdlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAgICAo bGluZSAgOTQpCisrKiBjYWxsLWxvY2FsLXNpemU6ICAgICAgICAgICAgICAgICAgICAgICBGaWxl IFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzMpCisrKiBjYWxsLWxvZ2luOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMb2dnaW5nIEluLiAgICAgICAgICAobGluZSAgNjcpCisr KiBjYWxsLXBhc3N3b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICBMb2dnaW5nIEluLiAgICAg ICAgICAobGluZSAgNzUpCisrKiBjYWxsLXJlbW90ZS1zaXplOiAgICAgICAgICAgICAgICAgICAg ICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDgpCisrKiBjYWxsLXRpbWVn cmFkZTogICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHRvIENhbGwuICAgICAgICAobGluZSAg NzApCisrKiBjYWxsLXRyYW5zZmVyOiAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFRyYW5z ZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMTkpCisrKiBjYWxsYmFjazogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBY2NlcHRpbmcgYSBDYWxsLiAgICAobGluZSAgMzQpCisrKiBjYWxs ZWQtY2hhdDogICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRpbmcgYSBDYWxsLiAgICAo bGluZSAgMzkpCisrKiBjYWxsZWQtY2hhdC1mYWlsOiAgICAgICAgICAgICAgICAgICAgICBBY2Nl cHRpbmcgYSBDYWxsLiAgICAobGluZSAgNDMpCisrKiBjYWxsZWQtY2hhdC1wcm9ncmFtOiAgICAg ICAgICAgICAgICAgICBBY2NlcHRpbmcgYSBDYWxsLiAgICAobGluZSAgNDcpCisrKiBjYWxsZWQt Y2hhdC1zZXZlbi1iaXQ6ICAgICAgICAgICAgICAgICBBY2NlcHRpbmcgYSBDYWxsLiAgICAobGlu ZSAgNDUpCisrKiBjYWxsZWQtY2hhdC10aW1lb3V0OiAgICAgICAgICAgICAgICAgICBBY2NlcHRp bmcgYSBDYWxsLiAgICAobGluZSAgNDEpCisrKiBjYWxsZWQtbG9jYWwtc2l6ZTogICAgICAgICAg ICAgICAgICAgICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTUpCisrKiBj YWxsZWQtbG9naW46ICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRpbmcgYSBDYWxsLiAg ICAobGluZSAgIDcpCisrKiBjYWxsZWQtcmVtb3RlLXNpemU6ICAgICAgICAgICAgICAgICAgICBG aWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjIpCisrKiBjYWxsZWQtdGltZWdy YWRlOiAgICAgICAgICAgICAgICAgICAgICBXaGVuIHRvIENhbGwuICAgICAgICAobGluZSAgODkp CisrKiBjYWxsZWQtdHJhbnNmZXI6ICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFRyYW5zZmVy IENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgMjQpCisrKiBjYWxsZmlsZTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIEZpbGUgTmFtZXMuCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDcp CisrKiBjYXJyaWVyIGluIGRpYWwgZmlsZTogICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAg ICAgICAgICAobGluZSAgODUpCisrKiBjYXJyaWVyIGluIHBvcnQgZmlsZTogICAgICAgICAgICAg ICAgICBwb3J0IEZpbGUuICAgICAgICAgICAobGluZSAxMDcpCisrKiBjYXJyaWVyLXdhaXQ6ICAg ICAgICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAgOTIpCisr KiBjaGF0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGF0IFNjcmlwdHMuICAg ICAgICAobGluZSAgMjEpCisrKiBjaGF0IGluIGRpYWwgZmlsZTogICAgICAgICAgICAgICAgICAg ICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAgMjApCisrKiBjaGF0IGluIHN5cyBmaWxlOiAg ICAgICAgICAgICAgICAgICAgICBMb2dnaW5nIEluLiAgICAgICAgICAobGluZSAgIDcpCisrKiBj aGF0LWZhaWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGF0IFNjcmlwdHMuICAgICAg ICAobGluZSAxNDQpCisrKiBjaGF0LWZhaWwgaW4gZGlhbCBmaWxlOiAgICAgICAgICAgICAgICBk aWFsIEZpbGUuICAgICAgICAgICAobGluZSAgMjQpCisrKiBjaGF0LWZhaWwgaW4gc3lzIGZpbGU6 ICAgICAgICAgICAgICAgICBMb2dnaW5nIEluLiAgICAgICAgICAobGluZSAgMTEpCisrKiBjaGF0 LXByb2dyYW06ICAgICAgICAgICAgICAgICAgICAgICAgICBDaGF0IFNjcmlwdHMuICAgICAgICAo bGluZSAxNzIpCisrKiBjaGF0LXByb2dyYW0gaW4gZGlhbCBmaWxlOiAgICAgICAgICAgICBkaWFs IEZpbGUuICAgICAgICAgICAobGluZSAgMjgpCisrKiBjaGF0LXByb2dyYW0gaW4gc3lzIGZpbGU6 ICAgICAgICAgICAgICBMb2dnaW5nIEluLiAgICAgICAgICAobGluZSAgMTUpCisrKiBjaGF0LXNl dmVuLWJpdDogICAgICAgICAgICAgICAgICAgICAgICBDaGF0IFNjcmlwdHMuICAgICAgICAobGlu ZSAxNjMpCisrKiBjaGF0LXNldmVuLWJpdCBpbiBkaWFsIGZpbGU6ICAgICAgICAgICBkaWFsIEZp bGUuICAgICAgICAgICAobGluZSAgMjYpCisrKiBjaGF0LXNldmVuLWJpdCBpbiBzeXMgZmlsZTog ICAgICAgICAgICBMb2dnaW5nIEluLiAgICAgICAgICAobGluZSAgMTMpCisrKiBjaGF0LXRpbWVv dXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBDaGF0IFNjcmlwdHMuICAgICAgICAobGluZSAx MzgpCisrKiBjaGF0LXRpbWVvdXQgaW4gZGlhbCBmaWxlOiAgICAgICAgICAgICBkaWFsIEZpbGUu ICAgICAgICAgICAobGluZSAgMjIpCisrKiBjaGF0LXRpbWVvdXQgaW4gc3lzIGZpbGU6ICAgICAg ICAgICAgICBMb2dnaW5nIEluLiAgICAgICAgICAobGluZSAgIDkpCisrKiBjb21tYW5kOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAgICAobGluZSAyMzUp CisrKiBjb21tYW5kLXBhdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3Vz IChzeXMpLiAobGluZSAgMTMpCisrKiBjb21tYW5kczogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNaXNjZWxsYW5lb3VzIChzeXMpLiAobGluZSAgMTkpCisrKiBjb21wbGV0ZTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMTgpCisr KiBjb21wbGV0ZS1jaGF0OiAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAg ICAgICAobGluZSAxMDQpCisrKiBjb21wbGV0ZS1jaGF0LWZhaWw6ICAgICAgICAgICAgICAgICAg ICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMDgpCisrKiBjb21wbGV0ZS1jaGF0LXByb2dy YW06ICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMTIpCisrKiBj b21wbGV0ZS1jaGF0LXNldmVuLWJpdDogICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAg ICAobGluZSAxMTApCisrKiBjb21wbGV0ZS1jaGF0LXRpbWVvdXQ6ICAgICAgICAgICAgICAgICBk aWFsIEZpbGUuICAgICAgICAgICAobGluZSAxMDYpCisrKiBkZWJ1ZyBpbiBjb25maWcgZmlsZTog ICAgICAgICAgICAgICAgICBEZWJ1Z2dpbmcgTGV2ZWxzLiAgICAobGluZSAgIDcpCisrKiBkZWJ1 ZyBpbiBzeXMgZmlsZTogICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChzeXMpLiAo bGluZSAgNDUpCisrKiBkZWJ1Z2ZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cg RmlsZSBOYW1lcy4gICAgICAobGluZSAgMTkpCisrKiBkZWZhdWx0LWFsdGVybmF0ZXM6ICAgICAg ICAgICAgICAgICAgICBOYW1pbmcgdGhlIFN5c3RlbS4gICAobGluZSAgMTkpCisrKiBkZXZpY2U6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAgICAobGlu ZSAgNzgpCisrKiBkaWFsLWRldmljZTogICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0IEZp bGUuICAgICAgICAgICAobGluZSAxMjQpCisrKiBkaWFsY29kZWZpbGU6ICAgICAgICAgICAgICAg ICAgICAgICAgICBDb25maWd1cmF0aW9uIEZpbGUgTmFtZXMuCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzApCisr KiBkaWFsZXIgaW4gZGlhbCBmaWxlOiAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAg ICAgICAobGluZSAgMTcpCisrKiBkaWFsZXIgaW4gcG9ydCBmaWxlOiAgICAgICAgICAgICAgICAg ICBwb3J0IEZpbGUuICAgICAgICAgICAobGluZSAxMjkpCisrKiBkaWFsZXItc2VxdWVuY2U6ICAg ICAgICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAgICAobGluZSAxNDQpCisrKiBk aWFsZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIEZpbGUg TmFtZXMuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgMjMpCisrKiBkaWFsdG9uZTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAgNzQpCisrKiBkdHItdG9nZ2xl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAg OTcpCisrKiBmb3J3YXJkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFRyYW5z ZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAxMjcpCisrKiBmb3J3YXJkLWZyb206ICAgICAgICAg ICAgICAgICAgICAgICAgICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMTgp CisrKiBmb3J3YXJkLXRvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFRyYW5zZmVy IENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAxMDkpCisrKiBmcmVlLXNwYWNlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChzeXMpLiAobGluZSAgMjUpCisrKiBoYWxmLWR1 cGxleCBpbiBkaWFsIGZpbGU6ICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGlu ZSAxNjApCisrKiBoYWxmLWR1cGxleCBpbiBwb3J0IGZpbGU6ICAgICAgICAgICAgICBwb3J0IEZp bGUuICAgICAgICAgICAobGluZSAgNzMpCisrKiBoYXJkZmxvdzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAgICAobGluZSAxMTgpCisrKiBoZGItZmlsZXM6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25maWcpLgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgMTE1KQorKyogaG9zdG5hbWU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TWlzY2VsbGFuZW91cyAoY29uZmlnKS4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgOCkKKysqIGxvY2FsLXJlY2Vp dmU6ICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgVHJhbnNmZXIgQ29udHJvbC4KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA5OCkKKysqIGxvY2FsLXNlbmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp bGUgVHJhbnNmZXIgQ29udHJvbC4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2OSkKKysqIGxvY2tkaXI6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2NlbGxhbmVvdXMgKGNvbmZpZykuCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgMjcpCisrKiBsb2NrbmFtZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0 IEZpbGUuICAgICAgICAgICAobGluZSAxODMpCisrKiBsb2dmaWxlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2cgRmlsZSBOYW1lcy4gICAgICAobGluZSAgIDcpCisrKiBtYXgtZmls ZS10aW1lOiAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAxMzIpCisrKiBtYXgtcmVtb3RlLWRlYnVnOiAgICAgICAgICAgICAgICAgICAg ICBNaXNjZWxsYW5lb3VzIChzeXMpLiAobGluZSAgNTUpCisrKiBtYXgtcmV0cmllczogICAgICAg ICAgICAgICAgICAgICAgICAgICBXaGVuIHRvIENhbGwuICAgICAgICAobGluZSAgNTgpCisrKiBt YXgtdXV4cXRzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25m aWcpLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDYxKQorKyogbXluYW1lOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTmFtaW5nIHRoZSBTeXN0ZW0uICAgKGxpbmUgIDMwKQorKyogbm9kZW5hbWU6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFuZW91cyAoY29uZmlnKS4KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAgNykKKysqIHBhc3N3ZGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bmZpZ3VyYXRpb24gRmlsZSBOYW1lcy4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2NCkKKysqIHBhdXNlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWwgRmlsZS4gICAgICAgICAgIChsaW5lICA4 MCkKKysqIHBob25lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYWNpbmcgdGhl IENhbGwuICAgIChsaW5lICA0NSkKKysqIHBvcnQgaW4gcG9ydCBmaWxlOiAgICAgICAgICAgICAg ICAgICAgIHBvcnQgRmlsZS4gICAgICAgICAgIChsaW5lICAyMykKKysqIHBvcnQgaW4gc3lzIGZp bGU6ICAgICAgICAgICAgICAgICAgICAgIFBsYWNpbmcgdGhlIENhbGwuICAgIChsaW5lICAyNCkK KysqIHBvcnRmaWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24g RmlsZSBOYW1lcy4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAxNSkKKysqIHByb3RvY29sIGluIHBvcnQgZmlsZTog ICAgICAgICAgICAgICAgIHBvcnQgRmlsZS4gICAgICAgICAgIChsaW5lICA1MSkKKysqIHByb3Rv Y29sIGluIHN5cyBmaWxlOiAgICAgICAgICAgICAgICAgIFByb3RvY29sIFNlbGVjdGlvbi4gIChs aW5lICAgNykKKysqIHByb3RvY29sLXBhcmFtZXRlciBpbiBkaWFsIGZpbGU6ICAgICAgIGRpYWwg RmlsZS4gICAgICAgICAgIChsaW5lIDE0MikKKysqIHByb3RvY29sLXBhcmFtZXRlciBpbiBwb3J0 IGZpbGU6ICAgICAgIHBvcnQgRmlsZS4gICAgICAgICAgIChsaW5lICA1NykKKysqIHByb3RvY29s LXBhcmFtZXRlciBpbiBzeXMgZmlsZTogICAgICAgIFByb3RvY29sIFNlbGVjdGlvbi4gIChsaW5l ICA5MCkKKysqIHB1YmRpciBpbiBjb25maWcgZmlsZTogICAgICAgICAgICAgICAgIE1pc2NlbGxh bmVvdXMgKGNvbmZpZykuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjApCisrKiBwdWJkaXIgaW4gc3lzIGZpbGU6 ICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChzeXMpLiAobGluZSAgMzcpCisrKiBw dXNoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAgICAgICAg ICAobGluZSAyMDgpCisrKiByZWNlaXZlLXJlcXVlc3Q6ICAgICAgICAgICAgICAgICAgICAgICBG aWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTEpCisrKiByZWxpYWJsZSBpbiBk aWFsIGZpbGU6ICAgICAgICAgICAgICAgICBkaWFsIEZpbGUuICAgICAgICAgICAobGluZSAxNTUp CisrKiByZWxpYWJsZSBpbiBwb3J0IGZpbGU6ICAgICAgICAgICAgICAgICBwb3J0IEZpbGUuICAg ICAgICAgICAobGluZSAgNjcpCisrKiByZW1vdGUtcmVjZWl2ZTogICAgICAgICAgICAgICAgICAg ICAgICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMDIpCisrKiByZW1vdGUt c2VuZDogICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgOTMpCisrKiByZXF1ZXN0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaWxlIFRyYW5zZmVyIENvbnRyb2wuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTUpCisrKiBydW4tdXV4cXQ6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25maWcpLgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDcyKQorKyogc2VuZC1yZXF1ZXN0OiAgICAgICAgICAgICAgICAgICAgICAgICAg RmlsZSBUcmFuc2ZlciBDb250cm9sLgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA3KQorKyogc2VxdWVuY2U6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFuZW91cyAoc3lzKS4gKGxpbmUgICA3 KQorKyogc2VydmVyLWFkZHJlc3M6ICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCBGaWxlLiAg ICAgICAgICAgKGxpbmUgMjE1KQorKyogc2VydmljZTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcG9ydCBGaWxlLiAgICAgICAgICAgKGxpbmUgMTkzKQorKyogc2V2ZW4tYml0IGluIGRp YWwgZmlsZTogICAgICAgICAgICAgICAgZGlhbCBGaWxlLiAgICAgICAgICAgKGxpbmUgMTQ4KQor Kyogc2V2ZW4tYml0IGluIHBvcnQgZmlsZTogICAgICAgICAgICAgICAgcG9ydCBGaWxlLiAgICAg ICAgICAgKGxpbmUgIDYxKQorKyogc3BlZWQgaW4gcG9ydCBmaWxlOiAgICAgICAgICAgICAgICAg ICAgcG9ydCBGaWxlLiAgICAgICAgICAgKGxpbmUgIDg0KQorKyogc3BlZWQgaW4gc3lzIGZpbGU6 ICAgICAgICAgICAgICAgICAgICAgUGxhY2luZyB0aGUgQ2FsbC4gICAgKGxpbmUgICA3KQorKyog c3BlZWQtcmFuZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCBGaWxlLiAgICAgICAg ICAgKGxpbmUgIDkyKQorKyogc3Bvb2w6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TWlzY2VsbGFuZW91cyAoY29uZmlnKS4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAxNCkKKysqIHN0YXRmaWxlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZyBGaWxlIE5hbWVzLiAgICAgIChsaW5lICAx NCkKKysqIHN0cmVhbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQgRmlsZS4g ICAgICAgICAgIChsaW5lIDIxMSkKKysqIHN0cmlwLWxvZ2luOiAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1pc2NlbGxhbmVvdXMgKGNvbmZpZykuCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDMpCisrKiBzdHJp cC1wcm90bzogICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25maWcp LgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDUzKQorKyogc3lzZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA3KQorKyogc3lz dGVtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtaW5nIHRoZSBTeXN0ZW0uICAg KGxpbmUgICA3KQorKyogdGltZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hl biB0byBDYWxsLiAgICAgICAgKGxpbmUgICA3KQorKyogdGltZWdyYWRlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV2hlbiB0byBDYWxsLiAgICAgICAgKGxpbmUgIDI1KQorKyogdGltZXRh YmxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFuZW91cyAoY29uZmlnKS4K KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA5MSkKKysqIHRyYW5zZmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZpbGUgVHJhbnNmZXIgQ29udHJvbC4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyOSkKKysqIHR5cGU6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQgRmlsZS4gICAgICAgICAgIChsaW5l ICAyNikKKysqIHVua25vd246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2NlbGxh bmVvdXMgKGNvbmZpZykuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzYpCisrKiB1dW5hbWU6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNaXNjZWxsYW5lb3VzIChjb25maWcpLgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICA5KQorKyogdjItZmlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFu ZW91cyAoY29uZmlnKS4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEwOSkKKysqIHZlcnNpb246ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBvcnQgRmlsZS4gICAgICAgICAgIChsaW5lIDIwMCkKKyAKKy0g ICAgc3lzdGVtIG5hbWUKKy0gICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHJlbW90ZSBzeXN0ZW0u CisgCistLS0gdXVjcC0xLjA3Lm9yaWcvdXVjcC50ZXhpCisrKysgdXVjcC0xLjA3L3V1Y3AudGV4 aQorQEAgLTUsNiArNSw4IEBACisgQHNldGNoYXB0ZXJuZXdwYWdlIG9kZAorIEBjICUqKmVuZCBv ZiBoZWFkZXIKKyAKKytAZGlyY2F0ZWdvcnkgTmV0d29ya2luZyB0b29scworKworIEBpZnRleAor IEBmaW5hbG91dAorIEBlbmQgaWZ0ZXgKKy0tLSB1dWNwLTEuMDcub3JpZy91dWNwLmluZm8KKysr KyB1dWNwLTEuMDcvdXVjcC5pbmZvCitAQCAtMSw0ICsxLDYgQEAKKy1UaGlzIGlzIHV1Y3AuaW5m bywgcHJvZHVjZWQgYnkgbWFrZWluZm8gdmVyc2lvbiA0LjEgZnJvbSB1dWNwLnRleGkuCisrVGhp cyBpcyB1dWNwLmluZm8sIHByb2R1Y2VkIGJ5IG1ha2VpbmZvIHZlcnNpb24gNC4xMSBmcm9tIHV1 Y3AudGV4aS4KKysKKytJTkZPLURJUi1TRUNUSU9OIE5ldHdvcmtpbmcgdG9vbHMKKyAKKyBTVEFS VC1JTkZPLURJUi1FTlRSWQorICogVVVDUDogKHV1Y3ApLiAgICAgICAgICAgICAgICAgVHJhbnNm ZXIgbWFpbCBhbmQgbmV3cyBhY3Jvc3MgcGhvbmUgbGluZXMuCitAQCAtMjYsMTMyICsyOCwxMjYg QEAgYSB0cmFuc2xhdGlvbiBhcHByb3ZlZCBieSB0aGUgYXV0aG9yIGlucworIAorIB8KKyBJbmRp cmVjdDoKKy11dWNwLmluZm8tMTogMTA5NgorLXV1Y3AuaW5mby0yOiA1MDgzOQorLXV1Y3AuaW5m by0zOiAxMDAxNDcKKy11dWNwLmluZm8tNDogMTQ5MTE3CistdXVjcC5pbmZvLTU6IDE5NzQ5NAor LXV1Y3AuaW5mby02OiAyNDE0NzMKKy11dWNwLmluZm8tNzogMjg1NzUwCistdXVjcC5pbmZvLTg6 IDMzMzUwNworK3V1Y3AuaW5mby0xOiAxMTMyCisrdXVjcC5pbmZvLTI6IDI5NTQ1MQorIB8KKyBU YWcgVGFibGU6CisgKEluZGlyZWN0KQorLU5vZGU6IFRvcH8xMDk2CistTm9kZTogQ29weWluZ384 NTIxCistTm9kZTogSW50cm9kdWN0aW9ufzEwNzY5CistTm9kZTogSW52b2tpbmcgdGhlIFVVQ1Ag UHJvZ3JhbXN/MTk3MTgKKy1Ob2RlOiBTdGFuZGFyZCBPcHRpb25zfzIwNjM4CistTm9kZTogSW52 b2tpbmcgdXVjcH8yMjA1MQorLU5vZGU6IHV1Y3AgRGVzY3JpcHRpb25/MjIzMjAKKy1Ob2RlOiB1 dWNwIE9wdGlvbnN/MjQzNDIKKy1Ob2RlOiBJbnZva2luZyB1dXh/MjY5NTIKKy1Ob2RlOiB1dXgg RGVzY3JpcHRpb25/MjcyNzAKKy1Ob2RlOiB1dXggT3B0aW9uc38zMDMxMworLU5vZGU6IHV1eCBF eGFtcGxlc38zMzA1MgorLU5vZGU6IEludm9raW5nIHV1c3RhdH8zMzk2NworLU5vZGU6IHV1c3Rh dCBEZXNjcmlwdGlvbn8zNDMwMgorLU5vZGU6IHV1c3RhdCBPcHRpb25zfzM2MDY0CistTm9kZTog dXVzdGF0IEV4YW1wbGVzfzQyNjQzCistTm9kZTogSW52b2tpbmcgdXVuYW1lfzQ1NDExCistTm9k ZTogSW52b2tpbmcgdXVsb2d/NDYzNzAKKy1Ob2RlOiBJbnZva2luZyB1dXRvfzQ4NTc5CistTm9k ZTogSW52b2tpbmcgdXVwaWNrfzQ5NTMzCistTm9kZTogSW52b2tpbmcgY3V/NTA4MzkKKy1Ob2Rl OiBjdSBEZXNjcmlwdGlvbn81MTIxNQorLU5vZGU6IGN1IENvbW1hbmRzfzUyNjAxCistTm9kZTog Y3UgVmFyaWFibGVzfzU0OTg1CistTm9kZTogY3UgT3B0aW9uc381NzE0MAorLU5vZGU6IEludm9r aW5nIHV1Y2ljb381ODUxMAorLU5vZGU6IHV1Y2ljbyBEZXNjcmlwdGlvbn81ODc4NgorLU5vZGU6 IHV1Y2ljbyBPcHRpb25zfzYxNDI4CistTm9kZTogSW52b2tpbmcgdXV4cXR/NjQ4ODAKKy1Ob2Rl OiBJbnZva2luZyB1dWNoa382NjA1OAorLU5vZGU6IEludm9raW5nIHV1Y29udn82NjY0NAorLU5v ZGU6IEludm9raW5nIHV1c2NoZWR/Njg0OTIKKy1Ob2RlOiBJbnN0YWxsaW5nIFRheWxvciBVVUNQ fzY4OTMwCistTm9kZTogQ29tcGlsYXRpb25/Njk0NjAKKy1Ob2RlOiBUZXN0aW5nIHRoZSBDb21w aWxhdGlvbn83NjQxMworLU5vZGU6IEluc3RhbGxpbmcgdGhlIEJpbmFyaWVzfzgwMzczCistTm9k ZTogQ29uZmlndXJhdGlvbn84MTM5NQorLU5vZGU6IFRlc3RpbmcgdGhlIEluc3RhbGxhdGlvbn84 MzU2OQorLU5vZGU6IFVzaW5nIFRheWxvciBVVUNQfzg2NzAxCistTm9kZTogQ2FsbGluZyBPdGhl ciBTeXN0ZW1zfzg3MTUwCistTm9kZTogQWNjZXB0aW5nIENhbGxzfzg5Njc0CistTm9kZTogTWFp bCBhbmQgTmV3c385MTYzNgorLU5vZGU6IFNlbmRpbmcgbWFpbCBvciBuZXdzfzkyNzI5CistTm9k ZTogUmVjZWl2aW5nIG1haWwgb3IgbmV3c385NDE3OAorLU5vZGU6IFRoZSBTcG9vbCBEaXJlY3Rv cnkgTGF5b3V0fzk0OTQyCistTm9kZTogU3lzdGVtIFNwb29sIERpcmVjdG9yaWVzfzk1ODU3Cist Tm9kZTogU3RhdHVzIERpcmVjdG9yeX85NzgwNworLU5vZGU6IEV4ZWN1dGlvbiBTdWJkaXJlY3Rv cmllc38xMDAxNDcKKy1Ob2RlOiBPdGhlciBTcG9vbCBTdWJkaXJlY3Rvcmllc38xMDE0MjYKKy1O b2RlOiBTcG9vbCBMb2NrIEZpbGVzfzEwNDQwNAorLU5vZGU6IFNwb29sIERpcmVjdG9yeSBDbGVh bmluZ38xMDY5NTMKKy1Ob2RlOiBDb25maWd1cmF0aW9uIEZpbGVzfzEwODE0NQorLU5vZGU6IENv bmZpZ3VyYXRpb24gT3ZlcnZpZXd/MTA5NzI4CistTm9kZTogQ29uZmlndXJhdGlvbiBGaWxlIEZv cm1hdH8xMTE4ODAKKy1Ob2RlOiBDb25maWd1cmF0aW9uIEV4YW1wbGVzfzExMzU1MworLU5vZGU6 IGNvbmZpZyBGaWxlIEV4YW1wbGVzfzExNDEyMgorLU5vZGU6IExlYWYgRXhhbXBsZX8xMTgwMDEK Ky1Ob2RlOiBHYXRld2F5IEV4YW1wbGV/MTIwNjg3CistTm9kZTogVGltZSBTdHJpbmdzfzEyNTA1 MgorLU5vZGU6IENoYXQgU2NyaXB0c38xMjY4NjgKKy1Ob2RlOiBjb25maWcgRmlsZX8xMzYwNTcK Ky1Ob2RlOiBNaXNjZWxsYW5lb3VzIChjb25maWcpfzEzNzEyMQorLU5vZGU6IENvbmZpZ3VyYXRp b24gRmlsZSBOYW1lc38xNDI5NDMKKy1Ob2RlOiBMb2cgRmlsZSBOYW1lc38xNDc4ODAKKy1Ob2Rl OiBEZWJ1Z2dpbmcgTGV2ZWxzfzE0OTExNworLU5vZGU6IHN5cyBGaWxlfzE1MTk4MworLU5vZGU6 IERlZmF1bHRzIGFuZCBBbHRlcm5hdGVzfzE1Mjg2MworLU5vZGU6IE5hbWluZyB0aGUgU3lzdGVt fzE1NTk1NQorLU5vZGU6IENhbGxpbmcgT3V0fzE1Nzc5NgorLU5vZGU6IFdoZW4gdG8gQ2FsbH8x NTgxNTMKKy1Ob2RlOiBQbGFjaW5nIHRoZSBDYWxsfzE2Mzc2MworLU5vZGU6IExvZ2dpbmcgSW5/ MTY3Mjg1CistTm9kZTogQWNjZXB0aW5nIGEgQ2FsbH8xNzA4OTYKKy1Ob2RlOiBQcm90b2NvbCBT ZWxlY3Rpb25/MTczNzA4CistTm9kZTogRmlsZSBUcmFuc2ZlciBDb250cm9sfzE4NzQ1MgorLU5v ZGU6IE1pc2NlbGxhbmVvdXMgKHN5cyl/MTkzNzQ0CistTm9kZTogRGVmYXVsdCBzeXMgRmlsZSBW YWx1ZXN/MTk2ODcyCistTm9kZTogcG9ydCBGaWxlfzE5NzQ5NAorLU5vZGU6IGRpYWwgRmlsZX8y MDkyNTcKKy1Ob2RlOiBVVUNQIE92ZXIgVENQfzIxNTI3OAorLU5vZGU6IFRDUCBDbGllbnR/MjE1 NzgyCistTm9kZTogVENQIFNlcnZlcn8yMTc1NTQKKy1Ob2RlOiBTZWN1cml0eX8yMTkwMDgKKy1O b2RlOiBQcm90b2NvbHN/MjI0MDUxCistTm9kZTogVVVDUCBQcm90b2NvbCBTb3VyY2VzfzIyNTY3 MQorLU5vZGU6IFVVQ1AgR3JhZGVzfzIyNzkxOQorLU5vZGU6IFVVQ1AgTG9jayBGaWxlc38yMzIy MTIKKy1Ob2RlOiBFeGVjdXRpb24gRmlsZSBGb3JtYXR/MjM1NjA5CistTm9kZTogVVVDUCBQcm90 b2NvbH8yNDA5NzMKKy1Ob2RlOiBUaGUgSW5pdGlhbCBIYW5kc2hha2V/MjQxNDczCistTm9kZTog VVVDUCBQcm90b2NvbCBDb21tYW5kc38yNDk4NjYKKy1Ob2RlOiBUaGUgUyBDb21tYW5kfzI1MTg4 OAorLU5vZGU6IFRoZSBSIENvbW1hbmR/MjU4OTM4CistTm9kZTogVGhlIFggQ29tbWFuZH8yNjMw MzIKKy1Ob2RlOiBUaGUgRSBDb21tYW5kfzI2NDk1MAorLU5vZGU6IFRoZSBIIENvbW1hbmR/MjY4 MDYzCistTm9kZTogVGhlIEZpbmFsIEhhbmRzaGFrZX8yNjg4OTYKKy1Ob2RlOiBnIFByb3RvY29s fzI2OTU1OAorLU5vZGU6IGYgUHJvdG9jb2x/Mjc5OTgyCistTm9kZTogdCBQcm90b2NvbH8yODMw NjAKKy1Ob2RlOiBlIFByb3RvY29sfzI4NDExNAorLU5vZGU6IEJpZyBHIFByb3RvY29sfzI4NDkw MgorLU5vZGU6IGkgUHJvdG9jb2x/Mjg1NzUwCistTm9kZTogaiBQcm90b2NvbH8yOTQ3NjQKKy1O b2RlOiB4IFByb3RvY29sfzMwMTAzMQorLU5vZGU6IHkgUHJvdG9jb2x/MzAxNTg3CistTm9kZTog ZCBQcm90b2NvbH8zMDYxMzgKKy1Ob2RlOiBoIFByb3RvY29sfzMwNjUwMworLU5vZGU6IHYgUHJv dG9jb2x/MzA2ODA3CistTm9kZTogSGFja2luZ38zMDcyOTgKKy1Ob2RlOiBTeXN0ZW0gRGVwZW5k ZW5jZX8zMDc2NjYKKy1Ob2RlOiBOYW1pbmcgQ29udmVudGlvbnN/MzA5MDU0CistTm9kZTogUGF0 Y2hlc38zMTEyMjkKKy1Ob2RlOiBBY2tub3dsZWRnZW1lbnRzfzMxMzE3OQorLU5vZGU6IEluZGV4 IChjb25jZXB0cyl/MzI2NTYzCistTm9kZTogSW5kZXggKGNvbmZpZ3VyYXRpb24gZmlsZSl/MzMz NTA3CisrTm9kZTogVG9wfzExMzIKKytOb2RlOiBDb3B5aW5nfzg1NTQKKytOb2RlOiBJbnRyb2R1 Y3Rpb25/MTA3OTkKKytOb2RlOiBJbnZva2luZyB0aGUgVVVDUCBQcm9ncmFtc38xOTc1MworK05v ZGU6IFN0YW5kYXJkIE9wdGlvbnN/MjA2NzQKKytOb2RlOiBJbnZva2luZyB1dWNwfzIyMDkyCisr Tm9kZTogdXVjcCBEZXNjcmlwdGlvbn8yMjM2OQorK05vZGU6IHV1Y3AgT3B0aW9uc38yNDQwMwor K05vZGU6IEludm9raW5nIHV1eH8yNzAyMgorK05vZGU6IHV1eCBEZXNjcmlwdGlvbn8yNzM0OAor K05vZGU6IHV1eCBPcHRpb25zfzMwNDAzCisrTm9kZTogdXV4IEV4YW1wbGVzfzMzMTUxCisrTm9k ZTogSW52b2tpbmcgdXVzdGF0fzM0MDc1CisrTm9kZTogdXVzdGF0IERlc2NyaXB0aW9ufzM0NDE4 CisrTm9kZTogdXVzdGF0IE9wdGlvbnN/MzYxOTIKKytOb2RlOiB1dXN0YXQgRXhhbXBsZXN/NDI3 ODAKKytOb2RlOiBJbnZva2luZyB1dW5hbWV/NDU1NTcKKytOb2RlOiBJbnZva2luZyB1dWxvZ380 NjUyNAorK05vZGU6IEludm9raW5nIHV1dG9/NDg3NDEKKytOb2RlOiBJbnZva2luZyB1dXBpY2t/ NDk3MDMKKytOb2RlOiBJbnZva2luZyBjdX81MTAxNworK05vZGU6IGN1IERlc2NyaXB0aW9ufzUx NDAxCisrTm9kZTogY3UgQ29tbWFuZHN/NTI3OTkKKytOb2RlOiBjdSBWYXJpYWJsZXN/NTUxOTIK KytOb2RlOiBjdSBPcHRpb25zfzU3MzU2CisrTm9kZTogSW52b2tpbmcgdXVjaWNvfzU4NzM1Cisr Tm9kZTogdXVjaWNvIERlc2NyaXB0aW9ufzU5MDIxCisrTm9kZTogdXVjaWNvIE9wdGlvbnN/NjE2 NzcKKytOb2RlOiBJbnZva2luZyB1dXhxdH82NTE0MAorK05vZGU6IEludm9raW5nIHV1Y2hrfzY2 MzI4CisrTm9kZTogSW52b2tpbmcgdXVjb252fzY2OTI0CisrTm9kZTogSW52b2tpbmcgdXVzY2hl ZH82ODc4MgorK05vZGU6IEluc3RhbGxpbmcgVGF5bG9yIFVVQ1B/NjkyMjgKKytOb2RlOiBDb21w aWxhdGlvbn82OTc1OQorK05vZGU6IFRlc3RpbmcgdGhlIENvbXBpbGF0aW9ufzc2NzE3CisrTm9k ZTogSW5zdGFsbGluZyB0aGUgQmluYXJpZXN/ODA2ODEKKytOb2RlOiBDb25maWd1cmF0aW9ufzgx NzA4CisrTm9kZTogVGVzdGluZyB0aGUgSW5zdGFsbGF0aW9ufzgzODg3CisrTm9kZTogVXNpbmcg VGF5bG9yIFVVQ1B/ODcwMjQKKytOb2RlOiBDYWxsaW5nIE90aGVyIFN5c3RlbXN/ODc0NzcKKytO b2RlOiBBY2NlcHRpbmcgQ2FsbHN/OTAwMDYKKytOb2RlOiBNYWlsIGFuZCBOZXdzfzkxOTczCisr Tm9kZTogU2VuZGluZyBtYWlsIG9yIG5ld3N/OTMwNzEKKytOb2RlOiBSZWNlaXZpbmcgbWFpbCBv ciBuZXdzfzk0NTI5CisrTm9kZTogVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXR/OTUzMDEKKytO b2RlOiBTeXN0ZW0gU3Bvb2wgRGlyZWN0b3JpZXN/OTYyMjEKKytOb2RlOiBTdGF0dXMgRGlyZWN0 b3J5fzk4MTgzCisrTm9kZTogRXhlY3V0aW9uIFN1YmRpcmVjdG9yaWVzfzEwMDUzNQorK05vZGU6 IE90aGVyIFNwb29sIFN1YmRpcmVjdG9yaWVzfzEwMTgyNgorK05vZGU6IFNwb29sIExvY2sgRmls ZXN/MTA0ODE2CisrTm9kZTogU3Bvb2wgRGlyZWN0b3J5IENsZWFuaW5nfzEwNzM3NAorK05vZGU6 IENvbmZpZ3VyYXRpb24gRmlsZXN/MTA4NTcxCisrTm9kZTogQ29uZmlndXJhdGlvbiBPdmVydmll d38xMTAxNTUKKytOb2RlOiBDb25maWd1cmF0aW9uIEZpbGUgRm9ybWF0fzExMjMxMgorK05vZGU6 IENvbmZpZ3VyYXRpb24gRXhhbXBsZXN/MTEzOTkwCisrTm9kZTogY29uZmlnIEZpbGUgRXhhbXBs ZXN/MTE0NTY0CisrTm9kZTogTGVhZiBFeGFtcGxlfzExODQ1MgorK05vZGU6IEdhdGV3YXkgRXhh bXBsZX8xMjExMTMKKytOb2RlOiBUaW1lIFN0cmluZ3N/MTI1MzUyCisrTm9kZTogQ2hhdCBTY3Jp cHRzfzEyNzE3NAorK05vZGU6IGNvbmZpZyBGaWxlfzEzNjM2OQorK05vZGU6IE1pc2NlbGxhbmVv dXMgKGNvbmZpZyl/MTM3NDM4CisrTm9kZTogQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzfzE0MzI3 MworK05vZGU6IExvZyBGaWxlIE5hbWVzfzE0ODIyMworK05vZGU6IERlYnVnZ2luZyBMZXZlbHN/ MTQ5NDczCisrTm9kZTogc3lzIEZpbGV/MTUyMzUyCisrTm9kZTogRGVmYXVsdHMgYW5kIEFsdGVy bmF0ZXN/MTUzMjM3CisrTm9kZTogTmFtaW5nIHRoZSBTeXN0ZW1/MTU2MzM4CisrTm9kZTogQ2Fs bGluZyBPdXR/MTU4MTkyCisrTm9kZTogV2hlbiB0byBDYWxsfzE1ODU1OAorK05vZGU6IFBsYWNp bmcgdGhlIENhbGx/MTY0MTg1CisrTm9kZTogTG9nZ2luZyBJbn8xNjc3MjQKKytOb2RlOiBBY2Nl cHRpbmcgYSBDYWxsfzE3MTM1MgorK05vZGU6IFByb3RvY29sIFNlbGVjdGlvbn8xNzQxNzcKKytO b2RlOiBGaWxlIFRyYW5zZmVyIENvbnRyb2x/MTg3OTM0CisrTm9kZTogTWlzY2VsbGFuZW91cyAo c3lzKX8xOTQyMzkKKytOb2RlOiBEZWZhdWx0IHN5cyBGaWxlIFZhbHVlc38xOTczODAKKytOb2Rl OiBwb3J0IEZpbGV/MTk4MDExCisrTm9kZTogZGlhbCBGaWxlfzIwOTc3OQorK05vZGU6IFVVQ1Ag T3ZlciBUQ1B/MjE1ODA2CisrTm9kZTogVENQIENsaWVudH8yMTYzMTcKKytOb2RlOiBUQ1AgU2Vy dmVyfzIxODA5OQorK05vZGU6IFNlY3VyaXR5fzIxOTU2NAorK05vZGU6IFByb3RvY29sc38yMjQ2 MTQKKytOb2RlOiBVVUNQIFByb3RvY29sIFNvdXJjZXN/MjI2MjM1CisrTm9kZTogVVVDUCBHcmFk ZXN/MjI4NDg4CisrTm9kZTogVVVDUCBMb2NrIEZpbGVzfzIzMjc4NgorK05vZGU6IEV4ZWN1dGlv biBGaWxlIEZvcm1hdH8yMzYxODgKKytOb2RlOiBVVUNQIFByb3RvY29sfzI0MTU1NworK05vZGU6 IFRoZSBJbml0aWFsIEhhbmRzaGFrZX8yNDIwNjIKKytOb2RlOiBVVUNQIFByb3RvY29sIENvbW1h bmRzfzI1MDQ2NAorK05vZGU6IFRoZSBTIENvbW1hbmR/MjUyNDk1CisrTm9kZTogVGhlIFIgQ29t bWFuZH8yNTk1NTgKKytOb2RlOiBUaGUgWCBDb21tYW5kfzI2MzY2OAorK05vZGU6IFRoZSBFIENv bW1hbmR/MjY1NjAyCisrTm9kZTogVGhlIEggQ29tbWFuZH8yNjg3MzEKKytOb2RlOiBUaGUgRmlu YWwgSGFuZHNoYWtlfzI2OTU4MAorK05vZGU6IGcgUHJvdG9jb2x/MjcwMjUxCisrTm9kZTogZiBQ cm90b2NvbH8yODA2NDUKKytOb2RlOiB0IFByb3RvY29sfzI4MzcyMworK05vZGU6IGUgUHJvdG9j b2x/Mjg0NzgyCisrTm9kZTogQmlnIEcgUHJvdG9jb2x/Mjg1NTc1CisrTm9kZTogaSBQcm90b2Nv bH8yODY0MzAKKytOb2RlOiBqIFByb3RvY29sfzI5NTQ1MQorK05vZGU6IHggUHJvdG9jb2x/MzAx NzI1CisrTm9kZTogeSBQcm90b2NvbH8zMDIyODgKKytOb2RlOiBkIFByb3RvY29sfzMwNjg0MQor K05vZGU6IGggUHJvdG9jb2x/MzA3MjEzCisrTm9kZTogdiBQcm90b2NvbH8zMDc1MjUKKytOb2Rl OiBIYWNraW5nfzMwODAyMworK05vZGU6IFN5c3RlbSBEZXBlbmRlbmNlfzMwODM5MgorK05vZGU6 IE5hbWluZyBDb252ZW50aW9uc38zMDk3ODUKKytOb2RlOiBQYXRjaGVzfzMxMTk2NQorK05vZGU6 IEFja25vd2xlZGdlbWVudHN/MzEzOTIwCisrTm9kZTogSW5kZXggKGNvbmNlcHRzKX8zMjczMDUK KytOb2RlOiBJbmRleCAoY29uZmlndXJhdGlvbiBmaWxlKX8zMzgzODkKKyAfCisgRW5kIFRhZyBU YWJsZQorLS0tIHV1Y3AtMS4wNy5vcmlnL3Byb3R5LmMKKysrKyB1dWNwLTEuMDcvcHJvdHkuYwor QEAgLTYwNiwxMiArNjA2LDcgQEAgZnl3YWl0X2Zvcl9wYWNrZXQgKHFkYWVtb24sIHBmZXhpdCkK KyAjZW5kaWYKKyAjZW5kaWYKKyAKKy0jaWZkZWYgSTM4Nl9BU00KKy0jZGVmaW5lIFJPVEFURShp KSBcCistCWFzbSAoInJvbHcgJDEsJTAiIDogIj1nIiAoaSkgOiAiZyIgKGkpKQorLSNlbHNlCisg I2RlZmluZSBST1RBVEUoaSkgaSArPSBpICsgKChpICYgMHg4MDAwKSA+PiAxNSkKKy0jZW5kaWYK KyAKKyBzdGF0aWMgdW5zaWduZWQgc2hvcnQKKyBpeWNoZWNrc3VtICh6LCBjKQorLS0tIHV1Y3At MS4wNy5vcmlnL3V1Y3AuaW5mby0xCisrKysgdXVjcC0xLjA3L3V1Y3AuaW5mby0xCitAQCAtMSw0 ICsxLDYgQEAKKy1UaGlzIGlzIHV1Y3AuaW5mbywgcHJvZHVjZWQgYnkgbWFrZWluZm8gdmVyc2lv biA0LjEgZnJvbSB1dWNwLnRleGkuCisrVGhpcyBpcyB1dWNwLmluZm8sIHByb2R1Y2VkIGJ5IG1h a2VpbmZvIHZlcnNpb24gNC4xMSBmcm9tIHV1Y3AudGV4aS4KKysKKytJTkZPLURJUi1TRUNUSU9O IE5ldHdvcmtpbmcgdG9vbHMKKyAKKyBTVEFSVC1JTkZPLURJUi1FTlRSWQorICogVVVDUDogKHV1 Y3ApLiAgICAgICAgICAgICAgICAgVHJhbnNmZXIgbWFpbCBhbmQgbmV3cyBhY3Jvc3MgcGhvbmUg bGluZXMuCitAQCAtMzAsNyArMzIsNyBAQCBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBUb3AsICBO ZXh0OiBDb3B5CisgVGF5bG9yIFVVQ1AgMS4wNworICoqKioqKioqKioqKioqKioKKyAKKy0gICBU aGlzIGlzIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgVGF5bG9yIFVVQ1AgcGFja2FnZSwgdmVy c2lvbiAxLjA3LgorK1RoaXMgaXMgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBUYXlsb3IgVVVD UCBwYWNrYWdlLCB2ZXJzaW9uIDEuMDcuCisgVGhlIHByb2dyYW1zIHdlcmUgd3JpdHRlbiBieSBJ YW4gTGFuY2UgVGF5bG9yLiAgVGhlIGF1dGhvciBjYW4gYmUKKyByZWFjaGVkIGF0IDxpYW5AYWly cy5jb20+LgorIAorQEAgLTQxLDcgKzQzLDcgQEAgaXMgYW5zd2VyZWQgYnkgdGhlIG1ham9yZG9t byBwcm9ncmFtLiAgVAorIG1lc3NhZ2UgYHN1YnNjcmliZSBBRERSRVNTJyB3aGVyZSBBRERSRVNT IGlzIHlvdXIgZS1tYWlsIGFkZHJlc3MuICBUbworIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBsaXN0 LCBzZW5kIGl0IHRvIDx0YXlsb3ItdXVjcEBnbnUub3JnPi4gIFRoZXJlIGlzCisgYW4gYXJjaGl2 ZSBvZiBhbGwgbWVzc2FnZXMgc2VudCB0byB0aGUgbWFpbGluZyBsaXN0IGF0CistPGh0dHA6Ly9s aXN0cy5jaXJyLmNvbT4uCisrYGh0dHA6Ly9saXN0cy5jaXJyLmNvbScuCisgCisgKiBNZW51Ogor IAorQEAgLTIzMCw3ICsyMzIsNyBAQCBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBDb3B5aW5nLCAg TmV4dDoKKyBUYXlsb3IgVVVDUCBDb3B5aW5nIENvbmRpdGlvbnMKKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAKKy0gICBUaGlzIHBhY2thZ2UgaXMgY292ZXJlZCBieSB0aGUgR05V IFB1YmxpYyBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlCisrVGhpcyBwYWNrYWdlIGlzIGNvdmVyZWQg YnkgdGhlIEdOVSBQdWJsaWMgTGljZW5zZS4gIFNlZSB0aGUgZmlsZQorIGBDT1BZSU5HJyBmb3Ig ZGV0YWlscy4gIElmIHlvdSB3b3VsZCBsaWtlIHRvIGRvIHNvbWV0aGluZyB3aXRoIHRoaXMKKyBw YWNrYWdlIHRoYXQgeW91IGZlZWwgaXMgcmVhc29uYWJsZSwgYnV0IHlvdSBmZWVsIGlzIHByb2hp Yml0ZWQgYnkgdGhlCisgbGljZW5zZSwgY29udGFjdCBtZSB0byBzZWUgaWYgd2UgY2FuIHdvcmsg aXQgb3V0LgorQEAgLTI3NCwxMiArMjc2LDEyIEBAIFB1YmxpYyBMaWNlbnNlcyB0aGF0IGFjY29t cGFueSB0aGVtLgorIB8KKyBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnRyb2R1Y3Rpb24sICBO ZXh0OiBJbnZva2luZyB0aGUgVVVDUCBQcm9ncmFtcywgIFByZXY6IENvcHlpbmcsICBVcDogVG9w CisgCistSW50cm9kdWN0aW9uIHRvIFRheWxvciBVVUNQCistKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrMSBJbnRyb2R1Y3Rpb24gdG8gVGF5bG9yIFVVQ1AKKysqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorIAorLSAgIEdlbmVyYWwgaW50cm9kdWN0aW9ucyB0byBVVUNQIGFyZSBh dmFpbGFibGUsIGFuZCBwZXJoYXBzIG9uZSBkYXkgSQorLXdpbGwgd3JpdGUgb25lLiAgSW4gdGhl IG1lYW50aW1lLCBoZXJlIGlzIGEgdmVyeSBicmllZiBvbmUgdGhhdAorLWNvbmNlbnRyYXRlcyBv biB0aGUgcHJvZ3JhbXMgcHJvdmlkZWQgYnkgVGF5bG9yIFVVQ1AuCisrR2VuZXJhbCBpbnRyb2R1 Y3Rpb25zIHRvIFVVQ1AgYXJlIGF2YWlsYWJsZSwgYW5kIHBlcmhhcHMgb25lIGRheSBJIHdpbGwK Kyt3cml0ZSBvbmUuICBJbiB0aGUgbWVhbnRpbWUsIGhlcmUgaXMgYSB2ZXJ5IGJyaWVmIG9uZSB0 aGF0IGNvbmNlbnRyYXRlcworK29uIHRoZSBwcm9ncmFtcyBwcm92aWRlZCBieSBUYXlsb3IgVVVD UC4KKyAKKyAgICBUYXlsb3IgVVVDUCBpcyBhIGNvbXBsZXRlIFVVQ1AgcGFja2FnZS4gIEl0IGlz IGNvdmVyZWQgYnkgdGhlIEdOVQorIFB1YmxpYyBMaWNlbnNlLCB3aGljaCBtZWFucyB0aGF0IHRo ZSBzb3VyY2UgY29kZSBpcyBhbHdheXMgYXZhaWxhYmxlLgorQEAgLTI5Myw3ICsyOTUsNyBAQCBh cmUgYmFzZWQgb24gZWFybGllciBVVUNQIHBhY2thZ2VzLgorICAgICAgZmlsZSBuYW1lLiAgRm9y IGV4YW1wbGUsIHRvIGNvcHkgdGhlIGZpbGUgYG5vdGVzLnR4dCcgdG8gdGhlIHN5c3RlbQorICAg ICAgYGFpcnMnLCB5b3Ugd291bGQgc2F5IGB1dWNwIG5vdGVzLnR4dCBhaXJzIX4vbm90ZXMudHh0 Jy4gIEluIHRoaXMKKyAgICAgIGV4YW1wbGUgYH4nIGlzIHVzZWQgdG8gbmFtZSB0aGUgVVVDUCBw dWJsaWMgZGlyZWN0b3J5IG9uIGBhaXJzJy4KKy0gICAgIEZvciBtb3JlIGRldGFpbHMsIHNlZSAq Tm90ZSB1dWNwOiBJbnZva2luZyB1dWNwLgorKyAgICAgRm9yIG1vcmUgZGV0YWlscywgc2VlICpu b3RlIHV1Y3A6IEludm9raW5nIHV1Y3AuCisgCisgYHV1eCcKKyAgICAgIFRoZSBgdXV4JyBwcm9n cmFtIGlzIHVzZWQgdG8gcmVxdWVzdCB0aGUgZXhlY3V0aW9uIG9mIGEgcHJvZ3JhbSBvbgorQEAg LTMwMyw3ICszMDUsOCBAQCBhcmUgYmFzZWQgb24gZWFybGllciBVVUNQIHBhY2thZ2VzLgorICAg ICAgb24gYGFpcnMnLCBwYXNzaW5nIGl0IHN0YW5kYXJkIGlucHV0LCB5b3Ugd291bGQgc2F5IGB1 dXggLQorICAgICAgYWlycyFybmV3cycuICBUaGUgYC0nIG1lYW5zIHRvIHJlYWQgc3RhbmRhcmQg aW5wdXQgYW5kIHNldCB0aGluZ3MKKyAgICAgIHVwIHN1Y2ggdGhhdCB3aGVuIGBybmV3cycgcnVu cyBvbiBgYWlycycgaXQgd2lsbCByZWNlaXZlIHRoZSBzYW1lCistICAgICBzdGFuZGFyZCBpbnB1 dC4gIEZvciBtb3JlIGRldGFpbHMsIHNlZSAqTm90ZSB1dXg6IEludm9raW5nIHV1eC4KKysgICAg IHN0YW5kYXJkIGlucHV0LiAgRm9yIG1vcmUgZGV0YWlscywgc2VlICpub3RlIHV1eDogSW52b2tp bmcgdXV4LgorKworIAorICAgIE5laXRoZXIgYHV1Y3AnIG5vciBgdXV4JyBhY3R1YWxseSBkbyBh bnkgd29yayBpbW1lZGlhdGVseS4gIEluc3RlYWQsCisgdGhleSBxdWV1ZSB1cCByZXF1ZXN0cyBm b3IgbGF0ZXIgcHJvY2Vzc2luZy4gIFRoZXkgdGhlbiBzdGFydCBhIGRhZW1vbgorQEAgLTMyMywx OSArMzI2LDE5IEBAIHRoYXQgaWYgYW55dGhpbmcgZ29lcyB3cm9uZyBpdCBtaWdodCBiZQorICAg ICAgY29ubmVjdGlvbiBzdGF0dXMgb2YgYWxsIHRoZSByZW1vdGUgc3lzdGVtcyB5b3VyIHN5c3Rl bSBrbm93cworICAgICAgYWJvdXQuICBUaGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgY2FuIHVzZSBg dXVzdGF0JyB0byBhdXRvbWF0aWNhbGx5CisgICAgICBkaXNjYXJkIG9sZCBqb2JzIHdoaWxlIHNl bmRpbmcgbWFpbCB0byB0aGUgdXNlciB3aG8gcmVxdWVzdGVkCistICAgICB0aGVtLiAgRm9yIG1v cmUgZGV0YWlscywgc2VlICpOb3RlIHV1c3RhdDogSW52b2tpbmcgdXVzdGF0LgorKyAgICAgdGhl bS4gIEZvciBtb3JlIGRldGFpbHMsIHNlZSAqbm90ZSB1dXN0YXQ6IEludm9raW5nIHV1c3RhdC4K KyAKKyBgdXVuYW1lJworICAgICAgVGhlIGB1dW5hbWUnIHByb2dyYW0gYnkgZGVmYXVsdCBsaXN0 cyBhbGwgdGhlIHJlbW90ZSBzeXN0ZW1zIHlvdXIKKyAgICAgIHN5c3RlbSBrbm93cyBhYm91dC4g IFlvdSBjYW4gYWxzbyB1c2UgaXQgdG8gZ2V0IHRoZSBuYW1lIG9mIHlvdXIKKyAgICAgIGxvY2Fs IHN5c3RlbS4gIEl0IGlzIG1vc3RseSB1c2VmdWwgZm9yIHNoZWxsIHNjcmlwdHMuICBGb3IgbW9y ZQorLSAgICAgZGV0YWlscywgc2VlICpOb3RlIHV1bmFtZTogSW52b2tpbmcgdXVuYW1lLgorKyAg ICAgZGV0YWlscywgc2VlICpub3RlIHV1bmFtZTogSW52b2tpbmcgdXVuYW1lLgorIAorIGB1dWxv ZycKKyAgICAgIFRoZSBgdXVsb2cnIHByb2dyYW0gY2FuIGJlIHVzZWQgdG8gZGlzcGxheSBlbnRy aWVzIGluIHRoZSBVVUNQIGxvZworICAgICAgZmlsZS4gIEl0IGNhbiBzZWxlY3QgdGhlIGVudHJp ZXMgZm9yIGEgcGFydGljdWxhciBzeXN0ZW0gb3IgYQorICAgICAgcGFydGljdWxhciB1c2VyLiAg WW91IGNhbiB1c2UgaXQgdG8gc2VlIHdoYXQgaGFzIGhhcHBlbmVkIHRvIHlvdXIKKy0gICAgIHF1 ZXVlZCBqb2JzIGluIHRoZSBwYXN0LiAgRm9yIG1vcmUgZGV0YWlscywgc2VlICpOb3RlIHV1bG9n OgorKyAgICAgcXVldWVkIGpvYnMgaW4gdGhlIHBhc3QuICBGb3IgbW9yZSBkZXRhaWxzLCBzZWUg Km5vdGUgdXVsb2c6CisgICAgICBJbnZva2luZyB1dWxvZy4KKyAKKyBgdXV0bycKK0BAIC0zNDUs MTQgKzM0OCwxNSBAQCB0aGF0IGlmIGFueXRoaW5nIGdvZXMgd3JvbmcgaXQgbWlnaHQgYmUKKyAg ICAgIHRyYW5zZmVyIGEgZmlsZSwgb3IgdGhlIGNvbnRlbnRzIG9mIGEgZGlyZWN0b3J5LCB0byBh IHJlbW90ZQorICAgICAgc3lzdGVtLCBhbmQgbm90aWZ5IGEgcGFydGljdWxhciB1c2VyIG9uIHRo ZSByZW1vdGUgc3lzdGVtIHdoZW4gaXQKKyAgICAgIGFycml2ZXMuICBUaGUgcmVtb3RlIHVzZXIg Y2FuIHRoZW4gcmV0cmlldmUgdGhlIGZpbGUocykgd2l0aAorLSAgICAgYHV1cGljaycuICBGb3Ig bW9yZSBkZXRhaWxzLCBzZWUgKk5vdGUgdXV0bzogSW52b2tpbmcgdXV0bywgYW5kCistICAgICBz ZWUgKk5vdGUgdXVwaWNrOiBJbnZva2luZyB1dXBpY2suCisrICAgICBgdXVwaWNrJy4gIEZvciBt b3JlIGRldGFpbHMsIHNlZSAqbm90ZSB1dXRvOiBJbnZva2luZyB1dXRvLCBhbmQKKysgICAgIHNl ZSAqbm90ZSB1dXBpY2s6IEludm9raW5nIHV1cGljay4KKyAKKyBgY3UnCisgICAgICBUaGUgYGN1 JyBwcm9ncmFtIGNhbiBiZSB1c2VkIHRvIGNhbGwgdXAgYW5vdGhlciBzeXN0ZW0gYW5kCisgICAg ICBjb21tdW5pY2F0ZSB3aXRoIGl0IGFzIHRob3VnaCB5b3Ugd2VyZSBkaXJlY3RseSBjb25uZWN0 ZWQuICBJdCBjYW4KKyAgICAgIGFsc28gZG8gc2ltcGxlIGZpbGUgdHJhbnNmZXJzLCB0aG91Z2gg aXQgZG9lcyBub3QgcHJvdmlkZSBhbnkKKy0gICAgIGVycm9yIGNoZWNraW5nLiAgRm9yIG1vcmUg ZGV0YWlscywgKk5vdGUgY3U6IEludm9raW5nIGN1LgorKyAgICAgZXJyb3IgY2hlY2tpbmcuICBG b3IgbW9yZSBkZXRhaWxzLCAqbm90ZSBjdTogSW52b2tpbmcgY3UuCisrCisgCisgICAgVGhlc2Ug ZWlnaHQgcHJvZ3JhbXMganVzdCBkZXNjcmliZWQsIGB1dWNwJywgYHV1eCcsIGB1dXRvJywKKyBg dXVwaWNrJywgYHV1c3RhdCcsIGB1dW5hbWUnLCBgdXVsb2cnLCBhbmQgYGN1JyBhcmUgdGhlIHVz ZXIgcHJvZ3JhbXMKK0BAIC0zNzYsMTYgKzM4MCwxNyBAQCBub3JtYWxseSBydW4gYXV0b21hdGlj YWxseSByYXRoZXIgdGhhbiBiCisgICAgICByZXF1ZXN0cyBpbiB0aGUgcXVldWUgYW5kIGdvZXMg b24gdG8gdGhlIG5leHQgc3lzdGVtIHRvIGNhbGwuICBJdAorICAgICAgaXMgYWxzbyBwb3NzaWJs ZSB0byBmb3JjZSBgdXVjaWNvJyB0byBjYWxsIGEgcmVtb3RlIHN5c3RlbSBldmVuIGlmCisgICAg ICB0aGVyZSBpcyBubyB3b3JrIHRvIGJlIGRvbmUgZm9yIGl0LCBzbyB0aGF0IGl0IGNhbiBwaWNr IHVwIGFueQorLSAgICAgd29yayB0aGF0IG1heSBiZSBxdWV1ZWQgdXAgcmVtb3RlbHkuICBGb3Ig bW9yZSBkZXRhaWxzLCBzZWUgKk5vdGUKKysgICAgIHdvcmsgdGhhdCBtYXkgYmUgcXVldWVkIHVw IHJlbW90ZWx5LiAgRm9yIG1vcmUgZGV0YWlscywgc2VlICpub3RlCisgICAgICB1dWNpY286IElu dm9raW5nIHV1Y2ljby4KKyAKKyBgdXV4cXQnCisgICAgICBUaGUgYHV1eHF0JyBkYWVtb24gcHJv Y2Vzc2VzIGV4ZWN1dGlvbiByZXF1ZXN0cyBtYWRlIGJ5IHRoZSBgdXV4JworICAgICAgcHJvZ3Jh bSBvbiByZW1vdGUgc3lzdGVtcy4gIEl0IGFsc28gcHJvY2Vzc2VzIHJlcXVlc3RzIG1hZGUgb24g dGhlCisgICAgICBsb2NhbCBzeXN0ZW0gd2hpY2ggcmVxdWlyZSBmaWxlcyBmcm9tIGEgcmVtb3Rl IHN5c3RlbS4gIEl0IGlzCistICAgICBub3JtYWxseSBzdGFydGVkIGJ5IGB1dWNpY28nLiAgRm9y IG1vcmUgZGV0YWlscywgc2VlICpOb3RlIHV1eHF0OgorKyAgICAgbm9ybWFsbHkgc3RhcnRlZCBi eSBgdXVjaWNvJy4gIEZvciBtb3JlIGRldGFpbHMsIHNlZSAqbm90ZSB1dXhxdDoKKyAgICAgIElu dm9raW5nIHV1eHF0LgorIAorKworICAgIFN1cHBvc2UgeW91LCBvbiB0aGUgc3lzdGVtIGBiYW50 YW0nLCB3YW50IHRvIGNvcHkgYSBmaWxlIHRvIHRoZQorIHN5c3RlbSBgYWlycycuICBZb3Ugd291 bGQgcnVuIHRoZSBgdXVjcCcgY29tbWFuZCBsb2NhbGx5LCB3aXRoIGEKKyBjb21tYW5kIGxpa2Ug YHV1Y3Agbm90ZXMudHh0IGFpcnMhfi9ub3Rlcy50eHQnLiAgVGhpcyB3b3VsZCBxdWV1ZSB1cCBh CitAQCAtNDIxLDcgKzQyNiw3IEBAIGluc3RhbGxpbmcgYW5kIGNvbmZpZ3VyaW5nIFVVQ1AuCisg ICAgICBUaGUgYHV1Y2hrJyBwcm9ncmFtIHJlYWRzIHRoZSBVVUNQIGNvbmZpZ3VyYXRpb24gZmls ZXMgYW5kCisgICAgICBkaXNwbGF5cyBhIHJhdGhlciBsZW5ndGh5IGRlc2NyaXB0aW9uIG9mIHdo YXQgaXQgZmluZHMuICBUaGlzIGlzCisgICAgICB1c2VmdWwgd2hlbiBjb25maWd1cmluZyBVVUNQ IHRvIG1ha2UgY2VydGFpbiB0aGF0IHRoZSBVVUNQIHBhY2thZ2UKKy0gICAgIHdpbGwgZG8gd2hh dCB5b3UgZXhwZWN0IGl0IHRvIGRvLiAgRm9yIG1vcmUgZGV0YWlscywgc2VlICpOb3RlCisrICAg ICB3aWxsIGRvIHdoYXQgeW91IGV4cGVjdCBpdCB0byBkby4gIEZvciBtb3JlIGRldGFpbHMsIHNl ZSAqbm90ZQorICAgICAgdXVjaGs6IEludm9raW5nIHV1Y2hrLgorIAorIGB1dWNvbnYnCitAQCAt NDMwLDEzICs0MzUsMTMgQEAgaW5zdGFsbGluZyBhbmQgY29uZmlndXJpbmcgVVVDUC4KKyAgICAg IGFkbWluaXN0cmF0b3JzIGNvbnZlcnRpbmcgZnJvbSBhbiBvbGRlciBVVUNQIHBhY2thZ2UuICBU YXlsb3IgVVVDUAorICAgICAgaXMgYWJsZSB0byByZWFkIGFuZCB1c2Ugb2xkIGNvbmZpZ3VyYXRp b24gZmlsZSBmb3JtYXRzLCBidXQgc29tZQorICAgICAgbmV3IGZlYXR1cmVzIGNhbiBub3QgYmUg c2VsZWN0ZWQgdXNpbmcgdGhlIG9sZCBmb3JtYXRzLiAgRm9yIG1vcmUKKy0gICAgIGRldGFpbHMs IHNlZSAqTm90ZSB1dWNvbnY6IEludm9raW5nIHV1Y29udi4KKysgICAgIGRldGFpbHMsIHNlZSAq bm90ZSB1dWNvbnY6IEludm9raW5nIHV1Y29udi4KKyAKKyBgdXVzY2hlZCcKKyAgICAgIFRoZSBg dXVzY2hlZCcgc2NyaXB0IGlzIHByb3ZpZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIg VVVDUAorICAgICAgcmVsZWFzZXMuICBJdCBzdGFydHMgYHV1Y2ljbycgdG8gY2FsbCwgb25lIGF0 IGEgdGltZSwgYWxsIHRoZQorICAgICAgc3lzdGVtcyBmb3Igd2hpY2ggd29yayBoYXMgYmVlbiBx dWV1ZWQuICBGb3IgbW9yZSBkZXRhaWxzLCBzZWUKKy0gICAgICpOb3RlIHV1c2NoZWQ6IEludm9r aW5nIHV1c2NoZWQuCisrICAgICAqbm90ZSB1dXNjaGVkOiBJbnZva2luZyB1dXNjaGVkLgorIAor IGB0c3R1dScKKyAgICAgIFRoZSBgdHN0dXUnIHByb2dyYW0gaXMgYSB0ZXN0IGhhcm5lc3MgZm9y IHRoZSBVVUNQIHBhY2thZ2U7IGl0IGNhbgorQEAgLTQ0NCwxNSArNDQ5LDE2IEBAIGluc3RhbGxp bmcgYW5kIGNvbmZpZ3VyaW5nIFVVQ1AuCisgICAgICBjb3JyZWN0bHkuICBIb3dldmVyLCBpdCB1 c2VzIHBzZXVkby10ZXJtaW5hbHMsIHdoaWNoIG1lYW5zIHRoYXQgaXQKKyAgICAgIGlzIGxlc3Mg cG9ydGFibGUgdGhhbiB0aGUgcmVzdCBvZiB0aGUgcGFja2FnZS4gIElmIGl0IHdvcmtzLCBpdAor ICAgICAgY2FuIGJlIHVzZWZ1bCB3aGVuIGluaXRpYWxseSBpbnN0YWxsaW5nIFRheWxvciBVVUNQ LiAgRm9yIG1vcmUKKy0gICAgIGRldGFpbHMsIHNlZSAqTm90ZSB0c3R1dTogVGVzdGluZyB0aGUg Q29tcGlsYXRpb24uCisrICAgICBkZXRhaWxzLCBzZWUgKm5vdGUgdHN0dXU6IFRlc3RpbmcgdGhl IENvbXBpbGF0aW9uLgorKworIAorIB8KKyBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2lu ZyB0aGUgVVVDUCBQcm9ncmFtcywgIE5leHQ6IEluc3RhbGxpbmcgVGF5bG9yIFVVQ1AsICBQcmV2 OiBJbnRyb2R1Y3Rpb24sICBVcDogVG9wCisgCistSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMK Ky0qKioqKioqKioqKioqKioqKioqKioqKioqKgorKzIgSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3Jh bXMKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgCistICAgVGhpcyBjaGFwdGVyIGRl c2NyaWJlcyBob3cgdG8gcnVuIHRoZSBVVUNQIHByb2dyYW1zLgorK1RoaXMgY2hhcHRlciBkZXNj cmliZXMgaG93IHRvIHJ1biB0aGUgVVVDUCBwcm9ncmFtcy4KKyAKKyAqIE1lbnU6CisgCitAQCAt NDc0LDEwICs0ODAsMTAgQEAgSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKyAfCisgRmlsZTog dXVjcC5pbmZvLCAgTm9kZTogU3RhbmRhcmQgT3B0aW9ucywgIE5leHQ6IEludm9raW5nIHV1Y3As ICBQcmV2OiBJbnZva2luZyB0aGUgVVVDUCBQcm9ncmFtcywgIFVwOiBJbnZva2luZyB0aGUgVVVD UCBQcm9ncmFtcworIAorLVN0YW5kYXJkIE9wdGlvbnMKKy09PT09PT09PT09PT09PT09CisrMi4x IFN0YW5kYXJkIE9wdGlvbnMKKys9PT09PT09PT09PT09PT09PT09PQorIAorLSAgIEFsbCBvZiB0 aGUgVVVDUCBwcm9ncmFtcyBzdXBwb3J0IGEgZmV3IHN0YW5kYXJkIG9wdGlvbnMuCisrQWxsIG9m IHRoZSBVVUNQIHByb2dyYW1zIHN1cHBvcnQgYSBmZXcgc3RhbmRhcmQgb3B0aW9ucy4KKyAKKyBg LXggdHlwZScKKyBgLS1kZWJ1ZyB0eXBlJworQEAgLTUxNCw4ICs1MjAsOCBAQCBTdGFuZGFyZCBP cHRpb25zCisgHworIEZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IEludm9raW5nIHV1Y3AsICBOZXh0 OiBJbnZva2luZyB1dXgsICBQcmV2OiBTdGFuZGFyZCBPcHRpb25zLCAgVXA6IEludm9raW5nIHRo ZSBVVUNQIFByb2dyYW1zCisgCistSW52b2tpbmcgdXVjcAorLT09PT09PT09PT09PT0KKysyLjIg SW52b2tpbmcgdXVjcAorKz09PT09PT09PT09PT09PT09CisgCisgKiBNZW51OgorIAorQEAgLTUy NSw4ICs1MzEsOCBAQCBJbnZva2luZyB1dWNwCisgHworIEZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6 IHV1Y3AgRGVzY3JpcHRpb24sICBOZXh0OiB1dWNwIE9wdGlvbnMsICBQcmV2OiBJbnZva2luZyB1 dWNwLCAgVXA6IEludm9raW5nIHV1Y3AKKyAKKy11dWNwIERlc2NyaXB0aW9uCistLS0tLS0tLS0t LS0tLS0tLQorKzIuMi4xIHV1Y3AgRGVzY3JpcHRpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgCisgICAgICB1dWNwIFtvcHRpb25zXSBgc291cmNlLWZpbGUnIGBkZXN0aW5hdGlvbi1maWxl JworICAgICAgdXVjcCBbb3B0aW9uc10gYHNvdXJjZS1maWxlJy4uLiBgZGVzdGluYXRpb24tZGly ZWN0b3J5JworQEAgLTU3MCwxMCArNTc2LDEwIEBAIHJlc3VsdGluZyBmaWxlIGlzIG93bmVkIGJ5 IHRoZSB1dWNwIHVzZXIKKyAfCisgRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogdXVjcCBPcHRpb25z LCAgUHJldjogdXVjcCBEZXNjcmlwdGlvbiwgIFVwOiBJbnZva2luZyB1dWNwCisgCistdXVjcCBP cHRpb25zCistLS0tLS0tLS0tLS0tCisrMi4yLjIgdXVjcCBPcHRpb25zCisrLS0tLS0tLS0tLS0t LS0tLS0tCisgCistICAgVGhlIGZvbGxvd2luZyBvcHRpb25zIG1heSBiZSBnaXZlbiB0byBgdXVj cCcuCisrVGhlIGZvbGxvd2luZyBvcHRpb25zIG1heSBiZSBnaXZlbiB0byBgdXVjcCcuCisgCisg YC1jJworIGAtLW5vY29weScKK0BAIC02NDMsNyArNjQ5LDcgQEAgdXVjcCBPcHRpb25zCisgCisg YC10JworIGAtLXV1dG8nCistICAgICBUaGlzIG9wdGlvbiBpcyB1c2VkIGJ5IHRoZSBgdXV0bycg c2hlbGwgc2NyaXB0OyBzZWUgKk5vdGUgSW52b2tpbmcKKysgICAgIFRoaXMgb3B0aW9uIGlzIHVz ZWQgYnkgdGhlIGB1dXRvJyBzaGVsbCBzY3JpcHQ7IHNlZSAqbm90ZSBJbnZva2luZworICAgICAg dXV0bzo6LiAgSXQgY2F1c2VzIGB1dWNwJyB0byBpbnRlcnByZXQgdGhlIGZpbmFsIGFyZ3VtZW50 IGFzCisgICAgICBgc3lzdGVtIXVzZXInLiAgVGhlIGZpbGUocykgYXJlIHNlbnQgdG8gYH4vcmVj ZWl2ZS9VU0VSL0xPQ0FMJyBvbgorICAgICAgdGhlIHJlbW90ZSBzeXN0ZW0sIHdoZXJlIFVTRVIg aXMgZnJvbSB0aGUgZmluYWwgYXJndW1lbnQgYW5kIExPQ0FMCitAQCAtNjYyLDggKzY2OCw4IEBA IHV1Y3AgT3B0aW9ucworIB8KKyBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2luZyB1dXgs ICBOZXh0OiBJbnZva2luZyB1dXN0YXQsICBQcmV2OiBJbnZva2luZyB1dWNwLCAgVXA6IEludm9r aW5nIHRoZSBVVUNQIFByb2dyYW1zCisgCistSW52b2tpbmcgdXV4CistPT09PT09PT09PT09Cisr Mi4zIEludm9raW5nIHV1eAorKz09PT09PT09PT09PT09PT0KKyAKKyAqIE1lbnU6CisgCitAQCAt Njc0LDggKzY4MCw4IEBAIEludm9raW5nIHV1eAorIB8KKyBGaWxlOiB1dWNwLmluZm8sICBOb2Rl OiB1dXggRGVzY3JpcHRpb24sICBOZXh0OiB1dXggT3B0aW9ucywgIFByZXY6IEludm9raW5nIHV1 eCwgIFVwOiBJbnZva2luZyB1dXgKKyAKKy11dXggRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tLS0t LS0KKysyLjMuMSB1dXggRGVzY3JpcHRpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKyAg ICAgIHV1eCBbb3B0aW9uc10gY29tbWFuZAorIAorQEAgLTczMCw3ICs3MzYsNyBAQCBvbiBhIHJl bW90ZSBzeXN0ZW0uCisgYHV1eCcuICBNYW55IHBlcm1pdCBvbmx5IHRoZSBleGVjdXRpb24gb2Yg YHJtYWlsJyBhbmQgYHJuZXdzJy4KKyAKKyAgICBBIHJlcXVlc3QgdG8gZXhlY3V0ZSBhbiBlbXB0 eSBjb21tYW5kIChlLmcuLCBgdXV4IHN5cyEnKSB3aWxsIGNyZWF0ZQorLWEgcG9sbCBmaWxlIGZv ciB0aGUgc3BlY2lmaWVkIHN5c3RlbTsgc2VlICpOb3RlIENhbGxpbmcgT3RoZXIgU3lzdGVtczo6 CisrYSBwb2xsIGZpbGUgZm9yIHRoZSBzcGVjaWZpZWQgc3lzdGVtOyBzZWUgKm5vdGUgQ2FsbGlu ZyBPdGhlciBTeXN0ZW1zOjoKKyBmb3IgYW4gZXhhbXBsZSBvZiB3aHkgdGhpcyBtaWdodCBiZSB1 c2VmdWwuCisgCisgICAgVGhlIGV4aXQgc3RhdHVzIG9mIGB1dXgnIGlzIG9uZSBvZiB0aGUgY29k ZXMgZm91bmQgaW4gdGhlIGhlYWRlcgorQEAgLTc0MCwxMCArNzQ2LDEwIEBAIGZpbGUgYHN5c2V4 aXRzLmgnLiAgSW4gcGFydGljdWxhciwgYEVYX08KKyAfCisgRmlsZTogdXVjcC5pbmZvLCAgTm9k ZTogdXV4IE9wdGlvbnMsICBOZXh0OiB1dXggRXhhbXBsZXMsICBQcmV2OiB1dXggRGVzY3JpcHRp b24sICBVcDogSW52b2tpbmcgdXV4CisgCistdXV4IE9wdGlvbnMKKy0tLS0tLS0tLS0tLQorKzIu My4yIHV1eCBPcHRpb25zCisrLS0tLS0tLS0tLS0tLS0tLS0KKyAKKy0gICBUaGUgZm9sbG93aW5n IG9wdGlvbnMgbWF5IGJlIGdpdmVuIHRvIGB1dXgnLgorK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBt YXkgYmUgZ2l2ZW4gdG8gYHV1eCcuCisgCisgYC0nCisgYC1wJworQEAgLTgyMiwxMCArODI4LDEw IEBAIHV1eCBPcHRpb25zCisgHworIEZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IHV1eCBFeGFtcGxl cywgIFByZXY6IHV1eCBPcHRpb25zLCAgVXA6IEludm9raW5nIHV1eAorIAorLXV1eCBFeGFtcGxl cworLS0tLS0tLS0tLS0tLQorKzIuMy4zIHV1eCBFeGFtcGxlcworKy0tLS0tLS0tLS0tLS0tLS0t LQorIAorLSAgIEhlcmUgYXJlIHNvbWUgZXhhbXBsZXMgb2YgdXNpbmcgYHV1eCcuCisrSGVyZSBh cmUgc29tZSBleGFtcGxlcyBvZiB1c2luZyBgdXV4Jy4KKyAKKyAgICAgIHV1eCAteiAtIHN5czEh cm1haWwgdXNlcjEKKyAgICBUaGlzIHdpbGwgZXhlY3V0ZSB0aGUgY29tbWFuZCBgcm1haWwgdXNl cjEnIG9uIHRoZSBzeXN0ZW0gYHN5czEnLAorQEAgLTg0Niw4ICs4NTIsOCBAQCB3cml0YWJsZSBi eSB0aGUgYHV1eHF0JyBkYWVtb24gZm9yIHRoaXMKKyAfCisgRmlsZTogdXVjcC5pbmZvLCAgTm9k ZTogSW52b2tpbmcgdXVzdGF0LCAgTmV4dDogSW52b2tpbmcgdXVuYW1lLCAgUHJldjogSW52b2tp bmcgdXV4LCAgVXA6IEludm9raW5nIHRoZSBVVUNQIFByb2dyYW1zCisgCistSW52b2tpbmcgdXVz dGF0CistPT09PT09PT09PT09PT09CisrMi40IEludm9raW5nIHV1c3RhdAorKz09PT09PT09PT09 PT09PT09PT0KKyAKKyAqIE1lbnU6CisgCitAQCAtODU4LDggKzg2NCw4IEBAIEludm9raW5nIHV1 c3RhdAorIB8KKyBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiB1dXN0YXQgRGVzY3JpcHRpb24sICBO ZXh0OiB1dXN0YXQgT3B0aW9ucywgIFByZXY6IEludm9raW5nIHV1c3RhdCwgIFVwOiBJbnZva2lu ZyB1dXN0YXQKKyAKKy11dXN0YXQgRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0KKysy LjQuMSB1dXN0YXQgRGVzY3JpcHRpb24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKyAg ICAgIHV1c3RhdCAtYQorICAgICAgdXVzdGF0IC0tYWxsCitAQCAtODk5LDEwICs5MDUsMTAgQEAg Z3JvdXAgb2Ygam9icywgc3VjaCBhcyBhbGwgam9icyBtb3JlIHRoYQorIB8KKyBGaWxlOiB1dWNw LmluZm8sICBOb2RlOiB1dXN0YXQgT3B0aW9ucywgIE5leHQ6IHV1c3RhdCBFeGFtcGxlcywgIFBy ZXY6IHV1c3RhdCBEZXNjcmlwdGlvbiwgIFVwOiBJbnZva2luZyB1dXN0YXQKKyAKKy11dXN0YXQg T3B0aW9ucworLS0tLS0tLS0tLS0tLS0tCisrMi40LjIgdXVzdGF0IE9wdGlvbnMKKystLS0tLS0t LS0tLS0tLS0tLS0tLQorIAorLSAgIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYmUgZ2l2ZW4g dG8gYHV1c3RhdCcuCisrVGhlIGZvbGxvd2luZyBvcHRpb25zIG1heSBiZSBnaXZlbiB0byBgdXVz dGF0Jy4KKyAKKyBgLWEnCisgYC0tYWxsJworQEAgLTEwNzcsMTEgKzEwODMsMTEgQEAgdXVzdGF0 IE9wdGlvbnMKKyAfCisgRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogdXVzdGF0IEV4YW1wbGVzLCAg UHJldjogdXVzdGF0IE9wdGlvbnMsICBVcDogSW52b2tpbmcgdXVzdGF0CisgCistdXVzdGF0IEV4 YW1wbGVzCistLS0tLS0tLS0tLS0tLS0tCisrMi40LjMgdXVzdGF0IEV4YW1wbGVzCisrLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgCisgICAgICB1dXN0YXQgLS1hbGwKKy0gICBEaXNwbGF5IHN0YXR1 cyBvZiBhbGwgam9icy4gIEEgc2FtcGxlIG91dHB1dCBsaW5lIGlzIGFzIGZvbGxvd3M6CisrRGlz cGxheSBzdGF0dXMgb2YgYWxsIGpvYnMuICBBIHNhbXBsZSBvdXRwdXQgbGluZSBpcyBhcyBmb2xs b3dzOgorICAgICAgYnVnc0EwMjdoIGJ1Z3MgaWFuIDA0LTAxIDEzOjUwIEV4ZWN1dGluZyBybWFp bCBpYW5AYWlycy5jb20gKHNlbmRpbmcgMTIgYnl0ZXMpCisgICAgVGhlIGZvcm1hdCBpcworICAg ICAgam9iaWQgc3lzdGVtIHVzZXIgcXVldWUtZGF0ZSBjb21tYW5kIChzaXplKQorQEAgLTExMzgs OCArMTE0NCw4IEBAIHdpbGwgYmUgZXJyb3IgbWVzc2FnZXMuCisgHworIEZpbGU6IHV1Y3AuaW5m bywgIE5vZGU6IEludm9raW5nIHV1bmFtZSwgIE5leHQ6IEludm9raW5nIHV1bG9nLCAgUHJldjog SW52b2tpbmcgdXVzdGF0LCAgVXA6IEludm9raW5nIHRoZSBVVUNQIFByb2dyYW1zCisgCistSW52 b2tpbmcgdXVuYW1lCistPT09PT09PT09PT09PT09CisrMi41IEludm9raW5nIHV1bmFtZQorKz09 PT09PT09PT09PT09PT09PT0KKyAKKyAgICAgIHV1bmFtZSBbLWFdIFstLWFsaWFzZXNdCisgICAg ICB1dW5hbWUgLWwKK0BAIC0xMTc4LDggKzExODQsOCBAQCBsb2NhbCBzeXN0ZW0uCisgHworIEZp bGU6IHV1Y3AuaW5mbywgIE5vZGU6IEludm9raW5nIHV1bG9nLCAgTmV4dDogSW52b2tpbmcgdXV0 bywgIFByZXY6IEludm9raW5nIHV1bmFtZSwgIFVwOiBJbnZva2luZyB0aGUgVVVDUCBQcm9ncmFt cworIAorLUludm9raW5nIHV1bG9nCistPT09PT09PT09PT09PT0KKysyLjYgSW52b2tpbmcgdXVs b2cKKys9PT09PT09PT09PT09PT09PT0KKyAKKyAgICAgIHV1bG9nIFstI10gWy1uIGxpbmVzXSBb LXNmIHN5c3RlbV0gWy11IHVzZXJdIFstRFNGXSBbLS1saW5lcyBsaW5lc10KKyAgICAgICAgICAg IFstLXN5c3RlbSBzeXN0ZW1dIFstLXVzZXIgdXNlcl0gWy0tZGVidWdsb2ddIFstLXN0YXRzbG9n XQorQEAgLTEyNTEsOCArMTI1Nyw4IEBAIElmIHRoZSBVVUNQIHByb2dyYW1zIGhhdmUgYmVlbiBj b21waWxlZAorIB8KKyBGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2luZyB1dXRvLCAgTmV4 dDogSW52b2tpbmcgdXVwaWNrLCAgUHJldjogSW52b2tpbmcgdXVsb2csICBVcDogSW52b2tpbmcg dGhlIFVVQ1AgUHJvZ3JhbXMKKyAKKy1JbnZva2luZyB1dXRvCistPT09PT09PT09PT09PQorKzIu NyBJbnZva2luZyB1dXRvCisrPT09PT09PT09PT09PT09PT0KKyAKKyAgICAgIHV1dG8gZmlsZXMu Li4gc3lzdGVtIXVzZXIKKyAKK0BAIC0xMjc0LDggKzEyODAsOCBAQCBJbnZva2luZyB1dWNwOjou CisgHworIEZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IEludm9raW5nIHV1cGljaywgIE5leHQ6IElu dm9raW5nIGN1LCAgUHJldjogSW52b2tpbmcgdXV0bywgIFVwOiBJbnZva2luZyB0aGUgVVVDUCBQ cm9ncmFtcworIAorLUludm9raW5nIHV1cGljaworLT09PT09PT09PT09PT09PQorKzIuOCBJbnZv a2luZyB1dXBpY2sKKys9PT09PT09PT09PT09PT09PT09CisgCisgICAgICB1dXBpY2sgWy1zIHN5 c3RlbV0gWy0tc3lzdGVtIHN5c3RlbV0KKyAKK0BAIC0xMzEzLDYgKzEzMTksNTcwMiBAQCBhY3Rp b24gdG8gdGFrZS4gIE9uZSBvZiB0aGUgZm9sbG93aW5nIGNvCisgCisgICAgVGhlIGAtcycgb3Ig YC0tc3lzdGVtJyBvcHRpb24gbWF5IGJlIHVzZWQgdG8gcmVzdHJpY3QgYHV1cGljaycgdG8KKyBv bmx5IHByZXNlbnQgZmlsZXMgdHJhbnNmZXJyZWQgZnJvbSBhIHBhcnRpY3VsYXIgc3lzdGVtLiAg VGhlIGB1dXBpY2snCistcHJvZ3JhbSBhbHNvIHN1cHBvcnRzIHRoZSBzdGFuZGFyZCBVVUNQIHBy b2dyYW0gb3B0aW9uczsgc2VlICpOb3RlCisrcHJvZ3JhbSBhbHNvIHN1cHBvcnRzIHRoZSBzdGFu ZGFyZCBVVUNQIHByb2dyYW0gb3B0aW9uczsgc2VlICpub3RlCisgU3RhbmRhcmQgT3B0aW9uczo6 LgorIAorKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2luZyBjdSwgIE5leHQ6IElu dm9raW5nIHV1Y2ljbywgIFByZXY6IEludm9raW5nIHV1cGljaywgIFVwOiBJbnZva2luZyB0aGUg VVVDUCBQcm9ncmFtcworKworKzIuOSBJbnZva2luZyBjdQorKz09PT09PT09PT09PT09PQorKwor KyogTWVudToKKysKKysqIGN1IERlc2NyaXB0aW9uOjogICAgICAgICAgICAgIERlc2NyaXB0aW9u IG9mIGN1CisrKiBjdSBDb21tYW5kczo6ICAgICAgICAgICAgICAgICBDb21tYW5kcyBTdXBwb3J0 ZWQgYnkgY3UKKysqIGN1IFZhcmlhYmxlczo6ICAgICAgICAgICAgICAgIFZhcmlhYmxlcyBTdXBw b3J0ZWQgYnkgY3UKKysqIGN1IE9wdGlvbnM6OiAgICAgICAgICAgICAgICAgIE9wdGlvbnMgU3Vw cG9ydGVkIGJ5IGN1CisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGN1IERlc2NyaXB0 aW9uLCAgTmV4dDogY3UgQ29tbWFuZHMsICBQcmV2OiBJbnZva2luZyBjdSwgIFVwOiBJbnZva2lu ZyBjdQorKworKzIuOS4xIGN1IERlc2NyaXB0aW9uCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysK KysgICAgIGN1IFtvcHRpb25zXSBbc3lzdGVtIHwgcGhvbmUgfCAiZGlyIl0KKysKKysgICBUaGUg YGN1JyBwcm9ncmFtIGlzIHVzZWQgdG8gY2FsbCB1cCBhbm90aGVyIHN5c3RlbSBhbmQgYWN0IGFz IGEgZGlhbAorK2luIHRlcm1pbmFsLiAgSXQgY2FuIGFsc28gZG8gc2ltcGxlIGZpbGUgdHJhbnNm ZXJzIHdpdGggbm8gZXJyb3IKKytjaGVja2luZy4KKysKKysgICBUaGUgYGN1JyBwcm9ncmFtIHRh a2VzIGEgc2luZ2xlIG5vbi1vcHRpb24gYXJndW1lbnQuCisrCisrICAgSWYgdGhlIGFyZ3VtZW50 IGlzIHRoZSBzdHJpbmcgYGRpcicgY3Ugd2lsbCBtYWtlIGEgZGlyZWN0IGNvbm5lY3Rpb24KKyt0 byB0aGUgcG9ydC4gIFRoaXMgbWF5IG9ubHkgYmUgdXNlZCBieSB1c2VycyB3aXRoIHdyaXRlIGFj Y2VzcyB0byB0aGUKKytwb3J0LCBhcyBpdCBwZXJtaXRzIHJlcHJvZ3JhbW1pbmcgdGhlIG1vZGVt LgorKworKyAgIE90aGVyd2lzZSwgaWYgdGhlIGFyZ3VtZW50IGJlZ2lucyB3aXRoIGEgZGlnaXQs IGl0IGlzIHRha2VuIHRvIGJlIGEKKytwaG9uZSBudW1iZXIgdG8gY2FsbC4KKysKKysgICBPdGhl cndpc2UsIGl0IGlzIHRha2VuIHRvIGJlIHRoZSBuYW1lIG9mIGEgc3lzdGVtIHRvIGNhbGwuCisr CisrICAgVGhlIGAteicgb3IgYC0tc3lzdGVtJyBvcHRpb25zIG1heSBiZSB1c2VkIHRvIG5hbWUg YSBzeXN0ZW0KKytiZWdpbm5pbmcgd2l0aCBhIGRpZ2l0LCBhbmQgdGhlIGAtYycgb3IgYC0tcGhv bmUnIG9wdGlvbnMgbWF5IGJlIHVzZWQKKyt0byBuYW1lIGEgcGhvbmUgbnVtYmVyIHRoYXQgZG9l cyBub3QgYmVnaW4gd2l0aCBhIGRpZ2l0LgorKworKyAgIFRoZSBgY3UnIHByb2dyYW0gbG9jYXRl cyBhIHBvcnQgdG8gdXNlIGluIHRoZSBVVUNQIGNvbmZpZ3VyYXRpb24KKytmaWxlcy4gIElmIGEg c2ltcGxlIHN5c3RlbSBuYW1lIGlzIGdpdmVuLCBpdCB3aWxsIHNlbGVjdCBhIHBvcnQKKythcHBy b3ByaWF0ZSBmb3IgdGhhdCBzeXN0ZW0uICBUaGUgYC1wJywgYC0tcG9ydCcsIGAtbCcsIGAtLWxp bmUnLCBgLXMnLAorK2FuZCBgLS1zcGVlZCcgb3B0aW9ucyBtYXkgYmUgdXNlZCB0byBjb250cm9s IHRoZSBwb3J0IHNlbGVjdGlvbi4KKysKKysgICBXaGVuIGEgY29ubmVjdGlvbiBpcyBtYWRlIHRv IHRoZSByZW1vdGUgc3lzdGVtLCBgY3UnIGZvcmtzIGludG8gdHdvCisrcHJvY2Vzc2VzLiAgT25l IHJlYWRzIGZyb20gdGhlIHBvcnQgYW5kIHdyaXRlcyB0byB0aGUgdGVybWluYWwsIHdoaWxlCisr dGhlIG90aGVyIHJlYWRzIGZyb20gdGhlIHRlcm1pbmFsIGFuZCB3cml0ZXMgdG8gdGhlIHBvcnQu CisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGN1IENvbW1hbmRzLCAgTmV4dDogY3Ug VmFyaWFibGVzLCAgUHJldjogY3UgRGVzY3JpcHRpb24sICBVcDogSW52b2tpbmcgY3UKKysKKysy LjkuMiBjdSBDb21tYW5kcworKy0tLS0tLS0tLS0tLS0tLS0tCisrCisrVGhlIGBjdScgcHJvZ3Jh bSBwcm92aWRlcyBzZXZlcmFsIGNvbW1hbmRzIHRoYXQgbWF5IGJlIHVzZWQgZHVyaW5nIHRoZQor K2NvbnZlcnNhdGlvbi4gIFRoZSBjb21tYW5kcyBhbGwgYmVnaW4gd2l0aCBhbiBlc2NhcGUgY2hh cmFjdGVyLCB3aGljaAorK2J5IGRlZmF1bHQgaXMgYH4nICh0aWxkZSkuICBUaGUgZXNjYXBlIGNo YXJhY3RlciBpcyBvbmx5IHJlY29nbml6ZWQgYXQKKyt0aGUgYmVnaW5uaW5nIG9mIGEgbGluZS4g IFRvIHNlbmQgYW4gZXNjYXBlIGNoYXJhY3RlciB0byB0aGUgcmVtb3RlCisrc3lzdGVtIGF0IHRo ZSBzdGFydCBvZiBhIGxpbmUsIGl0IG11c3QgYmUgZW50ZXJlZCB0d2ljZS4gIEFsbCBjb21tYW5k cworK2FyZSBlaXRoZXIgYSBzaW5nbGUgY2hhcmFjdGVyIG9yIGEgd29yZCBiZWdpbm5pbmcgd2l0 aCBgJScgKHBlcmNlbnQKKytzaWduKS4KKysKKysgICBUaGUgYGN1JyBwcm9ncmFtIHJlY29nbml6 ZXMgdGhlIGZvbGxvd2luZyBjb21tYW5kcy4KKysKKytgfi4nCisrICAgICBUZXJtaW5hdGUgdGhl IGNvbnZlcnNhdGlvbi4KKysKKytgfiEgY29tbWFuZCcKKysgICAgIFJ1biBjb21tYW5kIGluIGEg c2hlbGwuICBJZiBjb21tYW5kIGlzIGVtcHR5LCBzdGFydHMgdXAgYSBzaGVsbC4KKysKKytgfiQg Y29tbWFuZCcKKysgICAgIFJ1biBjb21tYW5kLCBzZW5kaW5nIHRoZSBzdGFuZGFyZCBvdXRwdXQg dG8gdGhlIHJlbW90ZSBzeXN0ZW0uCisrCisrYH58IGNvbW1hbmQnCisrICAgICBSdW4gY29tbWFu ZCwgdGFraW5nIHRoZSBzdGFuZGFyZCBpbnB1dCBmcm9tIHRoZSByZW1vdGUgc3lzdGVtLgorKwor K2B+KyBjb21tYW5kJworKyAgICAgUnVuIGNvbW1hbmQsIHRha2luZyB0aGUgc3RhbmRhcmQgaW5w dXQgZnJvbSB0aGUgcmVtb3RlIHN5c3RlbSBhbmQKKysgICAgIHNlbmRpbmcgdGhlIHN0YW5kYXJk IG91dHB1dCB0byB0aGUgcmVtb3RlIHN5c3RlbS4KKysKKytgfiMsIH4lYnJlYWsnCisrICAgICBT ZW5kIGEgYnJlYWsgc2lnbmFsLCBpZiBwb3NzaWJsZS4KKysKKytgfmMgZGlyZWN0b3J5LCB+JWNk IGRpcmVjdG9yeScKKysgICAgIENoYW5nZSB0aGUgbG9jYWwgZGlyZWN0b3J5LgorKworK2B+PiBm aWxlJworKyAgICAgU2VuZCBhIGZpbGUgdG8gdGhlIHJlbW90ZSBzeXN0ZW0uICBUaGlzIGp1c3Qg ZHVtcHMgdGhlIGZpbGUgb3ZlcgorKyAgICAgdGhlIGNvbW11bmljYXRpb24gbGluZS4gIEl0IGlz IGFzc3VtZWQgdGhhdCB0aGUgcmVtb3RlIHN5c3RlbSBpcworKyAgICAgZXhwZWN0aW5nIGl0Lgor KworK2B+PCcKKysgICAgIFJlY2VpdmUgYSBmaWxlIGZyb20gdGhlIHJlbW90ZSBzeXN0ZW0uICBU aGlzIHByb21wdHMgZm9yIHRoZSBsb2NhbAorKyAgICAgZmlsZSBuYW1lIGFuZCBmb3IgdGhlIHJl bW90ZSBjb21tYW5kIHRvIGV4ZWN1dGUgdG8gYmVnaW4gdGhlIGZpbGUKKysgICAgIHRyYW5zZmVy LiAgSXQgY29udGludWVzIGFjY2VwdGluZyBkYXRhIHVudGlsIHRoZSBjb250ZW50cyBvZiB0aGUK KysgICAgIGBlb2ZyZWFkJyB2YXJpYWJsZSBhcmUgc2Vlbi4KKysKKytgfnAgZnJvbSB0bycKKytg fiVwdXQgZnJvbSB0bycKKysgICAgIFNlbmQgYSBmaWxlIHRvIGEgcmVtb3RlIFVuaXggc3lzdGVt LiAgVGhpcyBydW5zIHRoZSBhcHByb3ByaWF0ZQorKyAgICAgY29tbWFuZHMgb24gdGhlIHJlbW90 ZSBzeXN0ZW0uCisrCisrYH50IGZyb20gdG8nCisrYH4ldGFrZSBmcm9tIHRvJworKyAgICAgUmV0 cmlldmUgYSBmaWxlIGZyb20gYSByZW1vdGUgVW5peCBzeXN0ZW0uICBUaGlzIHJ1bnMgdGhlCisr ICAgICBhcHByb3ByaWF0ZSBjb21tYW5kcyBvbiB0aGUgcmVtb3RlIHN5c3RlbS4KKysKKytgfnMg dmFyaWFibGUgdmFsdWUnCisrICAgICBTZXQgYSBgY3UnIHZhcmlhYmxlIHRvIHRoZSBnaXZlbiB2 YWx1ZS4gIElmIHZhbHVlIGlzIG5vdCBnaXZlbiwgdGhlCisrICAgICB2YXJpYWJsZSBpcyBzZXQg dG8gYHRydWUnLgorKworK2B+ISB2YXJpYWJsZScKKysgICAgIFNldCBhIGBjdScgdmFyaWFibGUg dG8gYGZhbHNlJy4KKysKKytgfnonCisrICAgICBTdXNwZW5kIHRoZSBjdSBzZXNzaW9uLiAgVGhp cyBpcyBvbmx5IHN1cHBvcnRlZCBvbiBzb21lIHN5c3RlbXMuCisrICAgICBPbiBzeXN0ZW1zIGZv ciB3aGljaCBgXlonIG1heSBiZSB1c2VkIHRvIHN1c3BlbmQgYSBqb2IsIGB+XlonIHdpbGwKKysg ICAgIGFsc28gc3VzcGVuZCB0aGUgc2Vzc2lvbi4KKysKKytgfiVub3N0b3AnCisrICAgICBUdXJu IG9mZiBYT04vWE9GRiBoYW5kbGluZy4KKysKKytgfiVzdG9wJworKyAgICAgVHVybiBvbiBYT04v WE9GRiBoYW5kbGluZy4KKysKKytgfnYnCisrICAgICBMaXN0IGFsbCB0aGUgdmFyaWFibGVzIGFu ZCB0aGVpciB2YWx1ZXMuCisrCisrYH4/JworKyAgICAgTGlzdCBhbGwgY29tbWFuZHMuCisrCisr HworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGN1IFZhcmlhYmxlcywgIE5leHQ6IGN1IE9wdGlv bnMsICBQcmV2OiBjdSBDb21tYW5kcywgIFVwOiBJbnZva2luZyBjdQorKworKzIuOS4zIGN1IFZh cmlhYmxlcworKy0tLS0tLS0tLS0tLS0tLS0tLQorKworK1RoZSBgY3UnIHByb2dyYW0gYWxzbyBz dXBwb3J0cyBzZXZlcmFsIHZhcmlhYmxlcy4gIFRoZXkgbWF5IGJlIGxpc3RlZAorK3dpdGggdGhl IGB+dicgY29tbWFuZCwgYW5kIHNldCB3aXRoIHRoZSBgfnMnIG9yIGB+IScgIGNvbW1hbmRzLgor KworK2Blc2NhcGUnCisrICAgICBUaGUgZXNjYXBlIGNoYXJhY3Rlci4gIFRoZSBkZWZhdWx0IGlz IGB+JyAodGlsZGUpLgorKworK2BkZWxheScKKysgICAgIElmIHRoaXMgdmFyaWFibGUgaXMgdHJ1 ZSwgYGN1JyB3aWxsIGRlbGF5IGZvciBhIHNlY29uZCwgYWZ0ZXIKKysgICAgIHJlY29nbml6aW5n IHRoZSBlc2NhcGUgY2hhcmFjdGVyLCBiZWZvcmUgcHJpbnRpbmcgdGhlIG5hbWUgb2YgdGhlCisr ICAgICBsb2NhbCBzeXN0ZW0uICBUaGUgZGVmYXVsdCBpcyB0cnVlLgorKworK2Blb2wnCisrICAg ICBUaGUgbGlzdCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBjb25zaWRlcmVkIHRvIGZpbmlzaCBh IGxpbmUuICBUaGUKKysgICAgIGVzY2FwZSBjaGFyYWN0ZXIgaXMgb25seSByZWNvZ25pemVkIGFm dGVyIG9uZSBvZiB0aGVzZSBpcyBzZWVuLgorKyAgICAgVGhlIGRlZmF1bHQgaXMgYGNhcnJpYWdl IHJldHVybicsIGBeVScsIGBeQycsIGBeTycsIGBeRCcsIGBeUycsCisrICAgICBgXlEnLCBgXlIn LgorKworK2BiaW5hcnknCisrICAgICBXaGV0aGVyIHRvIHRyYW5zZmVyIGJpbmFyeSBkYXRhIHdo ZW4gc2VuZGluZyBhIGZpbGUuICBJZiB0aGlzIGlzCisrICAgICBmYWxzZSwgdGhlbiBuZXdsaW5l cyBpbiB0aGUgZmlsZSBiZWluZyBzZW50IGFyZSBjb252ZXJ0ZWQgdG8KKysgICAgIGNhcnJpYWdl IHJldHVybnMuICBUaGUgZGVmYXVsdCBpcyBmYWxzZS4KKysKKytgYmluYXJ5LXByZWZpeCcKKysg ICAgIEEgc3RyaW5nIHVzZWQgYmVmb3JlIHNlbmRpbmcgYSBiaW5hcnkgY2hhcmFjdGVyIGluIGEg ZmlsZQorKyAgICAgdHJhbnNmZXIsIGlmIHRoZSBgYmluYXJ5JyB2YXJpYWJsZSBpcyB0cnVlLiAg VGhlIGRlZmF1bHQgaXMgYF5WJy4KKysKKytgZWNoby1jaGVjaycKKysgICAgIFdoZXRoZXIgdG8g Y2hlY2sgZmlsZSB0cmFuc2ZlcnMgYnkgZXhhbWluaW5nIHdoYXQgdGhlIHJlbW90ZSBzeXN0ZW0K KysgICAgIGVjaG9lcyBiYWNrLiAgVGhpcyBwcm9iYWJseSBkb2Vzbid0IHdvcmsgdmVyeSB3ZWxs LiAgVGhlIGRlZmF1bHQgaXMKKysgICAgIGZhbHNlLgorKworK2BlY2hvbmwnCisrICAgICBUaGUg Y2hhcmFjdGVyIHRvIGxvb2sgZm9yIGFmdGVyIHNlbmRpbmcgZWFjaCBsaW5lIGluIGEgZmlsZS4g IFRoZQorKyAgICAgZGVmYXVsdCBpcyBjYXJyaWFnZSByZXR1cm4uCisrCisrYHRpbWVvdXQnCisr ICAgICBUaGUgdGltZW91dCB0byB1c2UsIGluIHNlY29uZHMsIHdoZW4gbG9va2luZyBmb3IgYSBj aGFyYWN0ZXIsCisrICAgICBlaXRoZXIgd2hlbiBkb2luZyBlY2hvIGNoZWNraW5nIG9yIHdoZW4g bG9va2luZyBmb3IgdGhlIGBlY2hvbmwnCisrICAgICBjaGFyYWN0ZXIuICBUaGUgZGVmYXVsdCBp cyAzMC4KKysKKytga2lsbCcKKysgICAgIFRoZSBjaGFyYWN0ZXIgdG8gdXNlIGRlbGV0ZSBhIGxp bmUgaWYgdGhlIGVjaG8gY2hlY2sgZmFpbHMuICBUaGUKKysgICAgIGRlZmF1bHQgaXMgYF5VJy4K KysKKytgcmVzZW5kJworKyAgICAgVGhlIG51bWJlciBvZiB0aW1lcyB0byByZXNlbmQgYSBsaW5l IGlmIHRoZSBlY2hvIGNoZWNrIGNvbnRpbnVlcyB0bworKyAgICAgZmFpbC4gIFRoZSBkZWZhdWx0 IGlzIDEwLgorKworK2Blb2Z3cml0ZScKKysgICAgIFRoZSBzdHJpbmcgdG8gd3JpdGUgYWZ0ZXIg c2VuZGluZyBhIGZpbGUgd2l0aCB0aGUgYH4+JyBjb21tYW5kLgorKyAgICAgVGhlIGRlZmF1bHQg aXMgYF5EJy4KKysKKytgZW9mcmVhZCcKKysgICAgIFRoZSBzdHJpbmcgdG8gbG9vayBmb3Igd2hl biByZWNlaXZpbmcgYSBmaWxlIHdpdGggdGhlIGAgfjwnCisrICAgICBjb21tYW5kLiAgVGhlIGRl ZmF1bHQgaXMgYCQnLCB3aGljaCBpcyBpbnRlbmRlZCB0byBiZSBhIHR5cGljYWwKKysgICAgIHNo ZWxsIHByb21wdC4KKysKKytgdmVyYm9zZScKKysgICAgIFdoZXRoZXIgdG8gcHJpbnQgYWNjdW11 bGF0ZWQgaW5mb3JtYXRpb24gZHVyaW5nIGEgZmlsZSB0cmFuc2Zlci4KKysgICAgIFRoZSBkZWZh dWx0IGlzIHRydWUuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGN1IE9wdGlvbnMs ICBQcmV2OiBjdSBWYXJpYWJsZXMsICBVcDogSW52b2tpbmcgY3UKKysKKysyLjkuNCBjdSBPcHRp b25zCisrLS0tLS0tLS0tLS0tLS0tLQorKworK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYmUg Z2l2ZW4gdG8gYGN1Jy4KKysKKytgLWUnCisrYC0tcGFyaXR5PWV2ZW4nCisrICAgICBVc2UgZXZl biBwYXJpdHkuCisrCisrYC1vJworK2AtLXBhcml0eT1vZGQnCisrICAgICBVc2Ugb2RkIHBhcml0 eS4KKysKKytgLS1wYXJpdHk9bm9uZScKKysgICAgIFVzZSBubyBwYXJpdHkuICBObyBwYXJpdHkg aXMgYWxzbyB1c2VkIGlmIGJvdGggYC1lJyBhbmQgYC1vJyBhcmUKKysgICAgIGdpdmVuLgorKwor K2AtaCcKKytgLS1oYWxmZHVwbGV4JworKyAgICAgRWNobyBjaGFyYWN0ZXJzIGxvY2FsbHkgKGhh bGYtZHVwbGV4IG1vZGUpLgorKworK2AtLW5vc3RvcCcKKysgICAgIFR1cm4gb2ZmIFhPTi9YT0ZG IGhhbmRsaW5nIChpdCBpcyBvbiBieSBkZWZhdWx0KS4KKysKKytgLUUgY2hhcicKKytgLS1lc2Nh cGUgY2hhcicKKysgICAgIFNldCB0aGUgZXNjYXBlIGNoYXJhY3Rlci4gIEluaXRpYWxseSBgficg KHRpbGRlKS4gIFRvIGVsaW1pbmF0ZSB0aGUKKysgICAgIGVzY2FwZSBjaGFyYWN0ZXIsIHVzZSBg LUUgJycnLgorKworK2AteiBzeXN0ZW0nCisrYC0tc3lzdGVtIHN5c3RlbScKKysgICAgIFRoZSBz eXN0ZW0gdG8gY2FsbC4KKysKKytgLWMgcGhvbmUtbnVtYmVyJworK2AtLXBob25lIHBob25lLW51 bWJlcicKKysgICAgIFRoZSBwaG9uZSBudW1iZXIgdG8gY2FsbC4KKysKKytgLXAgcG9ydCcKKytg LWEgcG9ydCcKKytgLS1wb3J0IHBvcnQnCisrICAgICBOYW1lIHRoZSBwb3J0IHRvIHVzZS4KKysK KytgLWwgbGluZScKKytgLS1saW5lIGxpbmUnCisrICAgICBOYW1lIHRoZSBsaW5lIHRvIHVzZSBi eSBnaXZpbmcgYSBkZXZpY2UgbmFtZS4gIFRoaXMgbWF5IGJlIHVzZWQgdG8KKysgICAgIGRpYWwg b3V0IG9uIHBvcnRzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgaW4gdGhlIFVVQ1AgY29uZmlndXJhdGlv bgorKyAgICAgZmlsZXMuICBXcml0ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSBpcyByZXF1aXJlZC4K KysKKytgLXMgc3BlZWQnCisrYC0jJworK2AtLXNwZWVkIHNwZWVkJworKyAgICAgVGhlIHNwZWVk IChiYXVkIHJhdGUpIHRvIHVzZS4gIEhlcmUsIGAtIycgbWVhbnMgYW4gYWN0dWFsIG51bWJlcjsK KysgICAgIGUuZy4sIGAtOTYwMCcuCisrCisrYC1uJworK2AtLXByb21wdCcKKysgICAgIFByb21w dCBmb3IgdGhlIHBob25lIG51bWJlciB0byB1c2UuCisrCisrYC1kJworKyAgICAgRW50ZXIgZGVi dWdnaW5nIG1vZGUuICBFcXVpdmFsZW50IHRvIGAtLWRlYnVnIGFsbCcuCisrCisrYC14IHR5cGUn CisrYC0tZGVidWcgdHlwZScKKytgLUkgZmlsZScKKytgLS1jb25maWcgZmlsZScKKytgLXYnCisr YC0tdmVyc2lvbicKKytgLS1oZWxwJworKyAgICAgKk5vdGUgU3RhbmRhcmQgT3B0aW9uczo6Lgor KworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2luZyB1dWNpY28sICBOZXh0OiBJ bnZva2luZyB1dXhxdCwgIFByZXY6IEludm9raW5nIGN1LCAgVXA6IEludm9raW5nIHRoZSBVVUNQ IFByb2dyYW1zCisrCisrMi4xMCBJbnZva2luZyB1dWNpY28KKys9PT09PT09PT09PT09PT09PT09 PQorKworKyogTWVudToKKysKKysqIHV1Y2ljbyBEZXNjcmlwdGlvbjo6ICAgICAgICAgIERlc2Ny aXB0aW9uIG9mIHV1Y2ljbworKyogdXVjaWNvIE9wdGlvbnM6OiAgICAgICAgICAgICAgT3B0aW9u cyBTdXBwb3J0ZWQgYnkgdXVjaWNvCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IHV1 Y2ljbyBEZXNjcmlwdGlvbiwgIE5leHQ6IHV1Y2ljbyBPcHRpb25zLCAgUHJldjogSW52b2tpbmcg dXVjaWNvLCAgVXA6IEludm9raW5nIHV1Y2ljbworKworKzIuMTAuMSB1dWNpY28gRGVzY3JpcHRp b24KKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrICAgICB1dWNpY28gW29wdGlvbnNd CisrCisrICAgVGhlIGB1dWNpY28nIGRhZW1vbiBwcm9jZXNzZXMgZmlsZSB0cmFuc2ZlciByZXF1 ZXN0cyBxdWV1ZWQgYnkKKytgdXVjcCcgYW5kIGB1dXgnLiAgSXQgaXMgc3RhcnRlZCB3aGVuIGB1 dWNwJyBvciBgdXV4JyBpcyBydW4gKHVubGVzcworK3RoZXkgYXJlIGdpdmVuIHRoZSBgLXInIG9y IGAtLW5vdXVjaWNvJyBvcHRpb25zKS4gIEl0IGlzIGFsc28gdHlwaWNhbGx5Cisrc3RhcnRlZCBw ZXJpb2RpY2FsbHkgdXNpbmcgZW50cmllcyBpbiB0aGUgYGNyb250YWInIHRhYmxlKHMpLgorKwor KyAgIFdoZW4gYHV1Y2ljbycgaXMgaW52b2tlZCB3aXRoIGAtcjEnLCBgLS1tYXN0ZXInLCBgLXMn LCBgLS1zeXN0ZW0nLAorK29yIGAtUycsIHRoZSBkYWVtb24gd2lsbCBwbGFjZSBhIGNhbGwgdG8g YSByZW1vdGUgc3lzdGVtLCBydW5uaW5nIGluCisrbWFzdGVyIG1vZGUuICBPdGhlcndpc2UgdGhl IGRhZW1vbiB3aWxsIHN0YXJ0IGluIHNsYXZlIG1vZGUsIGFjY2VwdGluZworK2EgY2FsbCBmcm9t IGEgcmVtb3RlIHN5c3RlbS4gIFR5cGljYWxseSBhIHNwZWNpYWwgbG9naW4gbmFtZSB3aWxsIGJl Cisrc2V0IHVwIGZvciBVVUNQIHdoaWNoIGF1dG9tYXRpY2FsbHkgaW52b2tlcyBgdXVjaWNvJyB3 aGVuIGEgcmVtb3RlCisrc3lzdGVtIGNhbGxzIGluIGFuZCBsb2dzIGluIHVuZGVyIHRoYXQgbmFt ZS4KKysKKysgICBXaGVuIGB1dWNpY28nIHRlcm1pbmF0ZXMsIGl0IGludm9rZXMgdGhlIGB1dXhx dCcgZGFlbW9uLCB1bmxlc3MgdGhlCisrYC1xJyBvciBgLS1ub3V1eHF0JyBvcHRpb25zIHdlcmUg Z2l2ZW47IGB1dXhxdCcgZXhlY3V0ZXMgYW55IHdvcmsKKytvcmRlcnMgY3JlYXRlZCBieSBgdXV4 JyBvbiBhIHJlbW90ZSBzeXN0ZW0sIGFuZCBhbnkgd29yayBvcmRlcnMgY3JlYXRlZAorK2xvY2Fs bHkgd2hpY2ggaGF2ZSByZWNlaXZlZCByZW1vdGUgZmlsZXMgZm9yIHdoaWNoIHRoZXkgd2VyZSB3 YWl0aW5nLgorKworKyAgIElmIGEgY2FsbCBmYWlscywgYHV1Y2ljbycgd2lsbCBub3JtYWxseSBy ZWZ1c2UgdG8gcmV0cnkgdGhlIGNhbGwKKyt1bnRpbCBhIGNlcnRhaW4gKGNvbmZpZ3VyYWJsZSkg YW1vdW50IG9mIHRpbWUgaGFzIHBhc3NlZC4gIFRoaXMgbWF5IGJlCisrb3ZlcnJpZGVuIGJ5IHRo ZSBgLWYnLCBgLS1mb3JjZScsIG9yIGAtUycgb3B0aW9ucy4KKysKKysgICBUaGUgYC1sJywgYC0t cHJvbXB0JywgYC1lJywgb3IgYC0tbG9vcCcgb3B0aW9ucyBtYXkgYmUgdXNlZCB0byBmb3JjZQor K2B1dWNpY28nIHRvIHByb2R1Y2UgaXRzIG93biBwcm9tcHRzIG9mIGBsb2dpbjogJyBhbmQgYFBh c3N3b3JkOicuICBXaGVuCisrYW5vdGhlciBgdXVjaWNvJyBkYWVtb24gY2FsbHMgaW4sIGl0IHdp bGwgc2VlIHRoZXNlIHByb21wdHMgYW5kIGxvZyBpbgorK2FzIHVzdWFsLiAgVGhlIGxvZ2luIG5h bWUgYW5kIHBhc3N3b3JkIHdpbGwgbm9ybWFsbHkgYmUgY2hlY2tlZCBhZ2FpbnN0CisrYSBzZXBh cmF0ZSBsaXN0IGtlcHQgc3BlY2lhbGx5IGZvciBgdXVjaWNvJywgcmF0aGVyIHRoYW4gdGhlCisr YC9ldGMvcGFzc3dkJyBmaWxlICgqbm90ZSBDb25maWd1cmF0aW9uIEZpbGUgTmFtZXM6OikuICBJ dCBpcyBwb3NzaWJsZSwKKytvbiBzb21lIHN5c3RlbXMsIHRvIGNvbmZpZ3VyZSBgdXVjaWNvJyB0 byB1c2UgYC9ldGMvcGFzc3dkJy4gIFRoZSBgLWwnCisrb3IgYC0tcHJvbXB0JyBvcHRpb25zIHdp bGwgcHJvbXB0IG9uY2UgYW5kIHRoZW4gZXhpdDsgaW4gdGhpcyBtb2RlIHRoZQorK1VVQ1AgYWRt aW5pc3RyYXRvciwgb3IgdGhlIHN1cGVydXNlciwgbWF5IHVzZSB0aGUgYC11JyBvciBgLS1sb2dp bicKKytvcHRpb24gdG8gZm9yY2UgYSBsb2dpbiBuYW1lLCBpbiB3aGljaCBjYXNlIGB1dWNpY28n IHdpbGwgbm90IHByb21wdAorK2ZvciBvbmUuICBUaGUgYC1lJyBvciBgLS1sb29wJyBvcHRpb25z IHdpbGwgcHJvbXB0IGFnYWluIGFmdGVyIHRoZQorK2ZpcnN0IHNlc3Npb24gaXMgb3ZlcjsgaW4g dGhpcyBtb2RlIGB1dWNpY28nIHdpbGwgcGVybWFuZW50bHkgY29udHJvbCBhCisrcG9ydC4KKysK KysgICBJZiBgdXVjaWNvJyByZWNlaXZlcyBhIGBTSUdRVUlUJywgYFNJR1RFUk0nIG9yIGBTSUdQ SVBFJyBzaWduYWwsIGl0Cisrd2lsbCBjbGVhbmx5IGFib3J0IGFueSBjdXJyZW50IGNvbnZlcnNh dGlvbiB3aXRoIGEgcmVtb3RlIHN5c3RlbSBhbmQKKytleGl0LiAgSWYgaXQgcmVjZWl2ZXMgYSBg U0lHSFVQJyBzaWduYWwgaXQgd2lsbCBhYm9ydCBhbnkgY3VycmVudAorK2NvbnZlcnNhdGlvbiwg YnV0IHdpbGwgY29udGludWUgdG8gcGxhY2UgY2FsbHMgdG8gKGlmIGludm9rZWQgd2l0aAorK2At cjEnIG9yIGAtLW1hc3RlcicpIGFuZCBhY2NlcHQgY2FsbHMgZnJvbSAoaWYgaW52b2tlZCB3aXRo IGAtZScgb3IKKytgLS1sb29wJykgb3RoZXIgc3lzdGVtcy4gIElmIGl0IHJlY2VpdmVzIGEgYFNJ R0lOVCcgc2lnbmFsIGl0IHdpbGwKKytmaW5pc2ggdGhlIGN1cnJlbnQgY29udmVyc2F0aW9uLCBi dXQgd2lsbCBub3QgcGxhY2Ugb3IgYWNjZXB0IGFueSBtb3JlCisrY2FsbHMuCisrCisrHworK0Zp bGU6IHV1Y3AuaW5mbywgIE5vZGU6IHV1Y2ljbyBPcHRpb25zLCAgUHJldjogdXVjaWNvIERlc2Ny aXB0aW9uLCAgVXA6IEludm9raW5nIHV1Y2ljbworKworKzIuMTAuMiB1dWNpY28gT3B0aW9ucwor Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYmUg Z2l2ZW4gdG8gYHV1Y2ljbycuCisrCisrYC1yMScKKytgLS1tYXN0ZXInCisrICAgICBTdGFydCBp biBtYXN0ZXIgbW9kZTogY2FsbCBvdXQgdG8gYSByZW1vdGUgc3lzdGVtLiAgSW1wbGllZCBieQor KyAgICAgYC1zJywgYC0tc3lzdGVtJywgb3IgYC1TJy4gIElmIG5vIHN5c3RlbSBpcyBzcGVjaWZp ZWQsCisrICAgICBzZXF1ZW50aWFsbHkgY2FsbCBldmVyeSBzeXN0ZW0gZm9yIHdoaWNoIHdvcmsg aXMgd2FpdGluZyB0byBiZQorKyAgICAgZG9uZS4KKysKKytgLXIwJworK2AtLXNsYXZlJworKyAg ICAgU3RhcnQgaW4gc2xhdmUgbW9kZS4gIFRoaXMgaXMgdGhlIGRlZmF1bHQuCisrCisrYC1zIHN5 c3RlbScKKytgLS1zeXN0ZW0gc3lzdGVtJworKyAgICAgQ2FsbCB0aGUgc3BlY2lmaWVkIHN5c3Rl bS4KKysKKytgLVMgc3lzdGVtJworKyAgICAgQ2FsbCB0aGUgc3BlY2lmaWVkIHN5c3RlbSwgaWdu b3JpbmcgYW55IHJlcXVpcmVkIHdhaXQuICBUaGlzIGlzCisrICAgICBlcXVpdmFsZW50IHRvIGAt cyBzeXN0ZW0gLWYnLgorKworK2AtZicKKytgLS1mb3JjZScKKysgICAgIElnbm9yZSBhbnkgcmVx dWlyZWQgd2FpdCBmb3IgYW55IHN5c3RlbXMgdG8gYmUgY2FsbGVkLgorKworK2AtbCcKKytgLS1w cm9tcHQnCisrICAgICBQcm9tcHQgZm9yIGxvZ2luIG5hbWUgYW5kIHBhc3N3b3JkIHVzaW5nIGBs b2dpbjogJyBhbmQKKysgICAgIGBQYXNzd29yZDonLiAgVGhpcyBhbGxvd3MgYHV1Y2ljbycgdG8g YmUgZWFzaWx5IHJ1biBmcm9tIGBpbmV0ZCcuCisrICAgICBUaGUgbG9naW4gbmFtZSBhbmQgcGFz c3dvcmQgYXJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgVVVDUCBwYXNzd29yZAorKyAgICAgZmlsZSwg d2hpY2ggbmVlZCBub3QgYmUgYC9ldGMvcGFzc3dkJy4gIFRoZSBgLS1sb2dpbicgb3B0aW9uIG1h eQorKyAgICAgYmUgdXNlZCB0byBmb3JjZSBhIGxvZ2luIG5hbWUsIGluIHdoaWNoIGNhdXNlIGB1 dWNpY28nIHdpbGwgb25seQorKyAgICAgcHJvbXB0IGZvciBhIHBhc3N3b3JkLgorKworK2AtcCBw b3J0JworK2AtLXBvcnQgcG9ydCcKKysgICAgIFNwZWNpZnkgYSBwb3J0IHRvIGNhbGwgb3V0IG9u IG9yIHRvIGxpc3RlbiB0by4KKysKKytgLWUnCisrYC0tbG9vcCcKKysgICAgIEVudGVyIGFuIGVu ZGxlc3MgbG9vcCBvZiBsb2dpbi9wYXNzd29yZCBwcm9tcHRzIGFuZCBzbGF2ZSBtb2RlCisrICAg ICBkYWVtb24gZXhlY3V0aW9uLiAgVGhlIHByb2dyYW0gd2lsbCBub3Qgc3RvcCBieSBpdHNlbGY7 IHlvdSBtdXN0CisrICAgICB1c2UgYGtpbGwnIHRvIHNodXQgaXQgZG93bi4KKysKKytgLXcnCisr YC0td2FpdCcKKysgICAgIEFmdGVyIGNhbGxpbmcgb3V0ICh0byBhIHBhcnRpY3VsYXIgc3lzdGVt IHdoZW4gYC1zJywgYC0tc3lzdGVtJywKKysgICAgIG9yIGAtUycgaXMgc3BlY2lmZWQsIG9yIHRv IGFsbCBzeXN0ZW1zIHdoaWNoIGhhdmUgd29yayB3aGVuIGp1c3QKKysgICAgIGAtcjEnIG9yIGAt LW1hc3RlcicgaXMgc3BlY2lmZWQpLCBiZWdpbiBhbiBlbmRsZXNzIGxvb3AgYXMgd2l0aAorKyAg ICAgYC0tbG9vcCcuCisrCisrYC1xJworK2AtLW5vdXV4cXQnCisrICAgICBEbyBub3Qgc3RhcnQg dGhlIGB1dXhxdCcgZGFlbW9uIHdoZW4gZmluaXNoZWQuCisrCisrYC1jJworK2AtLXF1aWV0Jwor KyAgICAgSWYgbm8gY2FsbHMgYXJlIHBlcm1pdHRlZCBhdCB0aGlzIHRpbWUsIHRoZW4gZG9uJ3Qg bWFrZSB0aGUgY2FsbCwKKysgICAgIGJ1dCBhbHNvIGRvIG5vdCBwdXQgYW4gZXJyb3IgbWVzc2Fn ZSBpbiB0aGUgbG9nIGZpbGUgYW5kIGRvIG5vdAorKyAgICAgdXBkYXRlIHRoZSBzeXN0ZW0gc3Rh dHVzIChhcyByZXBvcnRlZCBieSBgdXVzdGF0JykuICBUaGlzIGNhbiBiZQorKyAgICAgY29udmVu aWVudCBmb3IgYXV0b21hdGVkIHBvbGxpbmcgc2NyaXB0cywgd2hpY2ggbWF5IHdhbnQgdG8gc2lt cGx5CisrICAgICBhdHRlbXB0IHRvIGNhbGwgZXZlcnkgc3lzdGVtIHJhdGhlciB0aGFuIHdvcnJ5 IGFib3V0IHdoaWNoCisrICAgICBwYXJ0aWN1bGFyIHN5c3RlbXMgbWF5IGJlIGNhbGxlZCBhdCB0 aGUgbW9tZW50LiAgVGhpcyBvcHRpb24gYWxzbworKyAgICAgc3VwcHJlc3NlcyB0aGUgbG9nIG1l c3NhZ2UgaW5kaWNhdGluZyB0aGF0IHRoZXJlIGlzIG5vIHdvcmsgdG8gYmUKKysgICAgIGRvbmUu CisrCisrYC1DJworK2AtLWlmd29yaycKKysgICAgIE9ubHkgY2FsbCB0aGUgc3lzdGVtIG5hbWVk IGJ5IGAtcycsIGAtLXN5c3RlbScsIG9yIGAtUycgaWYgdGhlcmUKKysgICAgIGlzIHdvcmsgZm9y IHRoYXQgc3lzdGVtLgorKworK2AtRCcKKytgLS1ub2RldGFjaCcKKysgICAgIERvIG5vdCBkZXRh Y2ggZnJvbSB0aGUgY29udHJvbGxpbmcgdGVybWluYWwuICBOb3JtYWxseSBgdXVjaWNvJworKyAg ICAgZGV0YWNoZXMgZnJvbSB0aGUgdGVybWluYWwgYmVmb3JlIGVhY2ggY2FsbCBvdXQgdG8gYW5v dGhlciBzeXN0ZW0KKysgICAgIGFuZCBiZWZvcmUgaW52b2tpbmcgYHV1eHF0Jy4gIFRoaXMgb3B0 aW9uIHByZXZlbnRzIHRoaXMuCisrCisrYC11IG5hbWUnCisrYC0tbG9naW4gbmFtZScKKysgICAg IFNldCB0aGUgbG9naW4gbmFtZSB0byB1c2UgaW5zdGVhZCBvZiB0aGF0IG9mIHRoZSBpbnZva2lu ZyB1c2VyLgorKyAgICAgVGhpcyBvcHRpb24gbWF5IG9ubHkgYmUgdXNlZCBieSB0aGUgVVVDUCBh ZG1pbmlzdHJhdG9yIG9yIHRoZQorKyAgICAgc3VwZXJ1c2VyLiAgSWYgdXNlZCB3aXRoIGAtLXBy b21wdCcsIHRoaXMgd2lsbCBjYXVzZSBgdXVjaWNvJyB0bworKyAgICAgcHJvbXB0IG9ubHkgZm9y IHRoZSBwYXNzd29yZCwgbm90IHRoZSBsb2dpbiBuYW1lLgorKworK2AteicKKytgLS10cnktbmV4 dCcKKysgICAgIElmIGEgY2FsbCBmYWlscyBhZnRlciB0aGUgcmVtb3RlIHN5c3RlbSBpcyByZWFj aGVkLCB0cnkgdGhlIG5leHQKKysgICAgIGFsdGVybmF0ZSByYXRoZXIgdGhhbiBzaW1wbHkgZXhp dGluZy4KKysKKytgLWkgdHlwZScKKytgLS1zdGRpbiB0eXBlJworKyAgICAgU2V0IHRoZSB0eXBl IG9mIHBvcnQgdG8gdXNlIHdoZW4gdXNpbmcgc3RhbmRhcmQgaW5wdXQuICBUaGUgb25seQorKyAg ICAgc3VwcG9ydGVkIHBvcnQgdHlwZSBpcyBUTEksIGFuZCB0aGlzIGlzIG9ubHkgYXZhaWxhYmxl IG9uIG1hY2hpbmVzCisrICAgICB3aGljaCBzdXBwb3J0IHRoZSBUTEkgbmV0d29ya2luZyBpbnRl cmZhY2UuICBTcGVjaWZ5aW5nIGAtaSBUTEknCisrICAgICBjYXVzZXMgYHV1Y2ljbycgdG8gdXNl IFRMSSBjYWxscyB0byBwZXJmb3JtIEkvTy4KKysKKytgLVggdHlwZScKKysgICAgIFNhbWUgYXMg dGhlIHN0YW5kYXJkIG9wdGlvbiBgLXggdHlwZScuICBQcm92aWRlZCBmb3IgaGlzdG9yaWNhbAor KyAgICAgY29tcGF0aWJpbGl0eS4KKysKKytgLXggdHlwZScKKytgLS1kZWJ1ZyB0eXBlJworK2At SSBmaWxlJworK2AtLWNvbmZpZyBmaWxlJworK2AtdicKKytgLS12ZXJzaW9uJworK2AtLWhlbHAn CisrICAgICAqTm90ZSBTdGFuZGFyZCBPcHRpb25zOjouCisrCisrHworK0ZpbGU6IHV1Y3AuaW5m bywgIE5vZGU6IEludm9raW5nIHV1eHF0LCAgTmV4dDogSW52b2tpbmcgdXVjaGssICBQcmV2OiBJ bnZva2luZyB1dWNpY28sICBVcDogSW52b2tpbmcgdGhlIFVVQ1AgUHJvZ3JhbXMKKysKKysyLjEx IEludm9raW5nIHV1eHF0CisrPT09PT09PT09PT09PT09PT09PQorKworKyAgICAgdXV4cXQgWy1j IGNvbW1hbmRdIFstcyBzeXN0ZW1dIFstLWNvbW1hbmQgY29tbWFuZF0gWy0tc3lzdGVtIHN5c3Rl bV0KKysKKysgICBUaGUgYHV1eHF0JyBkYWVtb24gZXhlY3V0ZXMgY29tbWFuZHMgcmVxdWVzdGVk IGJ5IGB1dXgnIGZyb20gZWl0aGVyCisrdGhlIGxvY2FsIHN5c3RlbSBvciBmcm9tIHJlbW90ZSBz eXN0ZW1zLiAgSXQgaXMgc3RhcnRlZCBhdXRvbWF0aWNhbGx5CisrYnkgdGhlIGB1dWNpY28nIGRh ZW1vbiAodW5sZXNzIGB1dWNpY28nIGlzIGdpdmVuIHRoZSBgLXEnIG9yCisrYC0tbm91dXhxdCcg b3B0aW9ucykuCisrCisrICAgVGhlcmUgaXMgbm9ybWFsbHkgbm8gbmVlZCB0byBydW4gYHV1eHF0 Jywgc2luY2UgaXQgd2lsbCBiZSBpbnZva2VkCisrYnkgYHV1Y2ljbycuICBIb3dldmVyLCBgdXV4 cXQnIGNhbiBiZSBpbnZva2VkIGRpcmVjdGx5IHRvIHByb3ZpZGUKKytncmVhdGVyIGNvbnRyb2wg b3ZlciB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgd29yayBxdWV1ZS4KKysKKysgICBNdWx0aXBsZSBp bnZvY2F0aW9ucyBvZiBgdXV4cXQnIG1heSBiZSBydW4gYXQgb25jZSwgYXMgY29udHJvbGxlZCBi eQorK3RoZSBgbWF4LXV1eHF0cycgY29uZmlndXJhdGlvbiBjb21tYW5kOyBzZWUgKm5vdGUgTWlz Y2VsbGFuZW91cworKyhjb25maWcpOjouCisrCisrICAgVGhlIGZvbGxvd2luZyBvcHRpb25zIG1h eSBiZSBnaXZlbiB0byBgdXV4cXQnLgorKworK2AtYyBjb21tYW5kJworK2AtLWNvbW1hbmQgY29t bWFuZCcKKysgICAgIE9ubHkgZXhlY3V0ZSByZXF1ZXN0cyBmb3IgdGhlIHNwZWNpZmllZCBjb21t YW5kLiAgRm9yIGV4YW1wbGUsCisrICAgICBgdXV4cXQgLS1jb21tYW5kIHJtYWlsJy4KKysKKytg LXMgc3lzdGVtJworK2AtLXN5c3RlbSBzeXN0ZW0nCisrICAgICBPbmx5IGV4ZWN1dGUgcmVxdWVz dHMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHN5c3RlbS4KKysKKytgLXggdHlwZScK KytgLS1kZWJ1ZyB0eXBlJworK2AtSSBmaWxlJworK2AtLWNvbmZpZycKKytgLXYnCisrYC0tdmVy c2lvbicKKytgLS1oZWxwJworKyAgICAgKk5vdGUgU3RhbmRhcmQgT3B0aW9uczo6LgorKworKx8K KytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2luZyB1dWNoaywgIE5leHQ6IEludm9raW5n IHV1Y29udiwgIFByZXY6IEludm9raW5nIHV1eHF0LCAgVXA6IEludm9raW5nIHRoZSBVVUNQIFBy b2dyYW1zCisrCisrMi4xMiBJbnZva2luZyB1dWNoaworKz09PT09PT09PT09PT09PT09PT0KKysK KysgICAgIHV1Y2hrIFstcyBzeXN0ZW1dIFstLXN5c3RlbSBzeXN0ZW1dCisrCisrICAgVGhlIGB1 dWNoaycgcHJvZ3JhbSBkaXNwbGF5cyBpbmZvcm1hdGlvbiByZWFkIGZyb20gdGhlIFVVQ1AKKytj b25maWd1cmF0aW9uIGZpbGVzLiAgSXQgc2hvdWxkIGJlIHVzZWQgdG8gZW5zdXJlIHRoYXQgVVVD UCBoYXMgYmVlbgorK2NvbmZpZ3VyZWQgY29ycmVjdGx5LgorKworKyAgIFRoZSBgLXMnIG9yIGAt LXN5c3RlbScgb3B0aW9ucyBtYXkgYmUgdXNlZCB0byBkaXNwbGF5IHRoZQorK2NvbmZpZ3VyYXRp b24gZm9yIGp1c3QgdGhlIHNwZWNpZmllZCBzeXN0ZW0sIHJhdGhlciB0aGFuIGZvciBhbGwKKytz eXN0ZW1zLiAgVGhlIGB1dWNoaycgcHJvZ3JhbSBhbHNvIHN1cHBvcnRzIHRoZSBzdGFuZGFyZCBV VUNQIHByb2dyYW0KKytvcHRpb25zOyBzZWUgKm5vdGUgU3RhbmRhcmQgT3B0aW9uczo6LgorKwor Kx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnZva2luZyB1dWNvbnYsICBOZXh0OiBJbnZv a2luZyB1dXNjaGVkLCAgUHJldjogSW52b2tpbmcgdXVjaGssICBVcDogSW52b2tpbmcgdGhlIFVV Q1AgUHJvZ3JhbXMKKysKKysyLjEzIEludm9raW5nIHV1Y29udgorKz09PT09PT09PT09PT09PT09 PT09CisrCisrICAgICB1dWNvbnYgLWkgdHlwZSAtbyB0eXBlIFstcCBwcm9ncmFtXSBbLS1wcm9n cmFtIHByb2dyYW1dCisrICAgICB1dWNvbnYgLS1pbnB1dCB0eXBlIC0tb3V0cHV0IHR5cGUgWy1w IHByb2dyYW1dIFstLXByb2dyYW0gcHJvZ3JhbV0KKysKKysgICBUaGUgYHV1Y29udicgcHJvZ3Jh bSBjb252ZXJ0cyBVVUNQIGNvbmZpZ3VyYXRpb24gZmlsZXMgZnJvbSBvbmUKKytmb3JtYXQgdG8g YW5vdGhlci4gIFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gZmlsZSB0byByZWFkIGlzIHNwZWNp ZmllZAorK3VzaW5nIHRoZSBgLWknIG9yIGAtLWlucHV0JyBvcHRpb25zLiAgVGhlIHR5cGUgb2Yg Y29uZmlndXJhdGlvbiBmaWxlIHRvCisrd3JpdGUgaXMgc3BlY2lmaWVkIHVzaW5nIHRoZSBgLW8n IG9yIGAtLW91dHB1dCcgb3B0aW9ucy4KKysKKysgICBUaGUgc3VwcG9ydGVkIGNvbmZpZ3VyYXRp b24gZmlsZSB0eXBlcyBhcmUgYHRheWxvcicsIGB2MicsIGFuZAorK2BoZGInLiAgRm9yIGEgZGVz Y3JpcHRpb24gb2YgdGhlIGB0YXlsb3InIGNvbmZpZ3VyYXRpb24gZmlsZXMsIHNlZQorKypub3Rl IENvbmZpZ3VyYXRpb24gRmlsZXM6Oi4gIFRoZSBvdGhlciB0eXBlcyBvZiBjb25maWd1cmF0aW9u IGZpbGVzCisrYXJlIHVzZWQgYnkgdHJhZGl0aW9uYWwgVVVDUCBwYWNrYWdlcywgYW5kIGFyZSBu b3QgZGVzY3JpYmVkIGluIHRoaXMKKyttYW51YWwuCisrCisrICAgQW4gaW5wdXQgY29uZmlndXJh dGlvbiBvZiB0eXBlIGB2Micgb3IgYGhkYicgaXMgcmVhZCBmcm9tIGEgY29tcGlsZWQKKytpbiBk aXJlY3RvcnkgKHNwZWNpZmllZCBieSBgb2xkY29uZmlnZGlyJyBpbiBgTWFrZWZpbGUnKS4gIEFu IGlucHV0CisrY29uZmlndXJhdGlvbiBvZiB0eXBlIGB0YXlsb3InIGlzIHJlYWQgZnJvbSBhIGNv bXBpbGVkIGluIGRpcmVjdG9yeSBieQorK2RlZmF1bHQsIGJ1dCBtYXkgYmUgb3ZlcnJpZGRlbiB3 aXRoIHRoZSBzdGFuZGFyZCBgLUknIG9yIGAtLWNvbmZpZycKKytvcHRpb25zICgqbm90ZSBTdGFu ZGFyZCBPcHRpb25zOjopLgorKworKyAgIFRoZSBvdXRwdXQgY29uZmlndXJhdGlvbiBpcyB3cml0 dGVuIHRvIGZpbGVzIGluIHRoZSBkaXJlY3RvcnkgaW4KKyt3aGljaCBgdXVjb252JyBpcyBydW4u CisrCisrICAgU29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgaW5wdXQgZmlsZXMgbWF5IG5vdCBiZSBy ZXByZXNlbnRhYmxlIGluIHRoZQorK2Rlc2lyZWQgb3V0cHV0IGZvcm1hdCwgaW4gd2hpY2ggY2Fz ZSBgdXVjb252JyB3aWxsIHNpbGVudGx5IGRpc2NhcmQgaXQuCisrVGhlIG91dHB1dCBvZiBgdXVj b252JyBzaG91bGQgYmUgY2FyZWZ1bGx5IGNoZWNrZWQgYmVmb3JlIGl0IGlzIHVzZWQuCisrVGhl IGB1dWNoaycgcHJvZ3JhbSBtYXkgYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlOyBzZWUgKm5vdGUg SW52b2tpbmcKKyt1dWNoazo6LgorKworKyAgIFRoZSBgLXAnIG9yIGAtLXByb2dyYW0nIG9wdGlv biBtYXkgYmUgdXNlZCB0byBjb252ZXJ0IHNwZWNpZmljIGBjdScKKytjb25maWd1cmF0aW9uIGlu Zm9ybWF0aW9uLCByYXRoZXIgdGhhbiB0aGUgZGVmYXVsdCBvZiBvbmx5IGNvbnZlcnRpbmcKKyt0 aGUgYHV1Y3AnIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb247IHNlZSAqbm90ZSBjb25maWcgRmls ZTo6LgorKworKyAgIFRoZSBgdXVjaGsnIHByb2dyYW0gYWxzbyBzdXBwb3J0cyB0aGUgc3RhbmRh cmQgVVVDUCBwcm9ncmFtIG9wdGlvbnM7Cisrc2VlICpub3RlIFN0YW5kYXJkIE9wdGlvbnM6Oi4K KysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogSW52b2tpbmcgdXVzY2hlZCwgIFByZXY6 IEludm9raW5nIHV1Y29udiwgIFVwOiBJbnZva2luZyB0aGUgVVVDUCBQcm9ncmFtcworKworKzIu MTQgSW52b2tpbmcgdXVzY2hlZAorKz09PT09PT09PT09PT09PT09PT09PQorKworK1RoZSBgdXVz Y2hlZCcgcHJvZ3JhbSBpcyBhY3R1YWxseSBqdXN0IGEgc2hlbGwgc2NyaXB0IHdoaWNoIGludm9r ZXMgdGhlCisrYHV1Y2ljbycgZGFlbW9uLiAgSXQgaXMgcHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNv bXBhdGliaWxpdHkuICBJdCBjYXVzZXMKKytgdXVjaWNvJyB0byBjYWxsIGFsbCBzeXN0ZW1zIGZv ciB3aGljaCB0aGVyZSBpcyB3b3JrLiAgQW55IG9wdGlvbiB3aGljaAorK21heSBiZSBnaXZlbiB0 byBgdXVjaWNvJyBtYXkgYWxzbyBiZSBnaXZlbiB0byBgdXVzY2hlZCcuICAqTm90ZQorK0ludm9r aW5nIHV1Y2ljbzo6LgorKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBJbnN0YWxsaW5n IFRheWxvciBVVUNQLCAgTmV4dDogVXNpbmcgVGF5bG9yIFVVQ1AsICBQcmV2OiBJbnZva2luZyB0 aGUgVVVDUCBQcm9ncmFtcywgIFVwOiBUb3AKKysKKyszIEluc3RhbGxpbmcgVGF5bG9yIFVVQ1AK KysqKioqKioqKioqKioqKioqKioqKioqKioKKysKKytUaGVzZSBhcmUgdGhlIGluc3RhbGxhdGlv biBpbnN0cnVjdGlvbnMgZm9yIHRoZSBUYXlsb3IgVVVDUCBwYWNrYWdlLgorKworKyogTWVudToK KysKKysqIENvbXBpbGF0aW9uOjogICAgICAgICAgICAgICAgIENvbXBpbGluZyBUYXlsb3IgVVVD UAorKyogVGVzdGluZyB0aGUgQ29tcGlsYXRpb246OiAgICAgVGVzdGluZyB0aGUgQ29tcGlsYXRp b24KKysqIEluc3RhbGxpbmcgdGhlIEJpbmFyaWVzOjogICAgIEluc3RhbGxpbmcgdGhlIEJpbmFy aWVzCisrKiBDb25maWd1cmF0aW9uOjogICAgICAgICAgICAgICBDb25maWd1cmluZyBUYXlsb3Ig VVVDUAorKyogVGVzdGluZyB0aGUgSW5zdGFsbGF0aW9uOjogICAgVGVzdGluZyB0aGUgSW5zdGFs bGF0aW9uCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IENvbXBpbGF0aW9uLCAgTmV4 dDogVGVzdGluZyB0aGUgQ29tcGlsYXRpb24sICBQcmV2OiBJbnN0YWxsaW5nIFRheWxvciBVVUNQ LCAgVXA6IEluc3RhbGxpbmcgVGF5bG9yIFVVQ1AKKysKKyszLjEgQ29tcGlsaW5nIFRheWxvciBV VUNQCisrPT09PT09PT09PT09PT09PT09PT09PT09PQorKworK0lmIHlvdSBoYXZlIGEgc291cmNl IGNvZGUgZGlzdHJpYnV0aW9uLCB5b3UgbXVzdCBmaXJzdCBjb21waWxlIGl0IGZvcgorK3lvdXIg c3lzdGVtLiAgRnJlZSB2ZXJzaW9ucyBvZiBVbml4LCBzdWNoIGFzIExpbnV4LCBOZXRCU0QsIG9y IEZyZWVCU0QsCisrb2Z0ZW4gY29tZSB3aXRoIHByZS1jb21waWxlZCBiaW5hcnkgZGlzdHJpYnV0 aW9ucyBvZiBVVUNQLiAgSWYgeW91IGFyZQorK3VzaW5nIGEgYmluYXJ5IGRpc3RyaWJ1dGlvbiwg eW91IG1heSBza2lwIHRvIHRoZSBjb25maWd1cmF0aW9uIHNlY3Rpb24KKysoKm5vdGUgQ29uZmln dXJhdGlvbjo6KS4KKysKKysgICBGb2xsb3cgdGhlc2Ugc3RlcHMgdG8gY29tcGlsZSB0aGUgc291 cmNlIGNvZGUuCisrCisrICAxLiBUYWtlIGEgbG9vayBhdCB0aGUgdG9wIG9mIGBNYWtlZmlsZS5p bicgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUKKysgICAgIHZhbHVlcyBmb3IgeW91ciBzeXN0ZW0u ICBUaGVzZSBjb250cm9sIHdoZXJlIHRoZSBwcm9ncmFtcyBhcmUKKysgICAgIGluc3RhbGxlZCBh bmQgd2hpY2ggdXNlciBvbiB0aGUgc3lzdGVtIG93bnMgdGhlbSAobm9ybWFsbHkgdGhleQorKyAg ICAgd2lsbCBiZSBvd25lZCBieSBhIHNwZWNpYWwgdXNlciBgdXVjcCcgcmF0aGVyIHRoYW4gYSBy ZWFsIHBlcnNvbjsKKysgICAgIHRoZXkgc2hvdWxkIHByb2JhYmx5IG5vdCBiZSBvd25lZCBieSBg cm9vdCcpLgorKworKyAgMi4gUnVuIHRoZSBzaGVsbCBzY3JpcHQgYGNvbmZpZ3VyZScuICBUaGlz IHNjcmlwdCB3YXMgZ2VuZXJhdGVkIHVzaW5nCisrICAgICB0aGUgYGF1dG9jb25mJyBwcm9ncmFt IHdyaXR0ZW4gYnkgRGF2aWQgTWFjS2VuemllIG9mIHRoZSBGcmVlCisrICAgICBTb2Z0d2FyZSBG b3VuZGF0aW9uLiAgSXQgdGFrZXMgYSB3aGlsZSB0byBydW4uICBJdCB3aWxsIGdlbmVyYXRlCisr ICAgICB0aGUgZmlsZSBgY29uZmlnLmgnIGJhc2VkIG9uIGBjb25maWcuaC5pbicsIGFuZCwgZm9y IGVhY2ggc291cmNlCisrICAgICBjb2RlIGRpcmVjdG9yeSwgd2lsbCBnZW5lcmF0ZSBgTWFrZWZp bGUnIGJhc2VkIG9uIGBNYWtlZmlsZS5pbicuCisrCisrICAgICBZb3UgY2FuIHBhc3MgY2VydGFp biBhcmd1bWVudHMgdG8gYGNvbmZpZ3VyZScgaW4gdGhlIGVudmlyb25tZW50LgorKyAgICAgQmVj YXVzZSBgY29uZmlndXJlJyB3aWxsIGNvbXBpbGUgbGl0dGxlIHRlc3QgcHJvZ3JhbXMgdG8gc2Vl IHdoYXQKKysgICAgIGlzIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbSwgeW91IG11c3QgdGVsbCBp dCBob3cgdG8gcnVuIHlvdXIKKysgICAgIGNvbXBpbGVyLiAgSXQgcmVjb2duaXplcyB0aGUgZm9s bG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlczoKKysKKysgICAgYENDJworKyAgICAgICAgICBU aGUgQyBjb21waWxlci4gIElmIHRoaXMgaXMgbm90IHNldCwgdGhlbiBpZiBgY29uZmlndXJlJyBj YW4KKysgICAgICAgICAgZmluZCBgZ2NjJyBpdCB3aWxsIHVzZSBpdCwgb3RoZXJ3aXNlIGl0IHdp bGwgdXNlIGBjYycuCisrCisrICAgIGBDRkxBR1MnCisrICAgICAgICAgIEZsYWdzIHRvIHBhc3Mg dG8gdGhlIEMgY29tcGlsZXIgd2hlbiBjb21waWxpbmcgdGhlIGFjdHVhbAorKyAgICAgICAgICBj b2RlLiAgSWYgdGhpcyBpcyBub3Qgc2V0LCBgY29uZmlndXJlJyB3aWxsIHVzZSBgLWcnLgorKwor KyAgICBgTERGTEFHUycKKysgICAgICAgICAgRmxhZ3MgdG8gcGFzcyB0byB0aGUgQyBjb21waWxl ciB3aGVuIG9ubHkgbGlua2luZywgbm90CisrICAgICAgICAgIGNvbXBpbGluZy4gIElmIHRoaXMg aXMgbm90IHNldCwgYGNvbmZpZ3VyZScgd2lsbCB1c2UgdGhlCisrICAgICAgICAgIGVtcHR5IHN0 cmluZy4KKysKKysgICAgYExJQlMnCisrICAgICAgICAgIExpYnJhcmllcyB0byBwYXNzIHRvIHRo ZSBDIGNvbXBpbGVyLiAgSWYgdGhpcyBpcyBub3Qgc2V0LAorKyAgICAgICAgICBgY29uZmlndXJl JyB3aWxsIHVzZSB0aGUgZW1wdHkgc3RyaW5nLgorKworKyAgICBgSU5TVEFMTCcKKysgICAgICAg ICAgVGhlIHByb2dyYW0gdG8gcnVuIHRvIGluc3RhbGwgVVVDUCBpbiB0aGUgYmluYXJ5IGRpcmVj dG9yeS4KKysgICAgICAgICAgSWYgdGhpcyBpcyBub3Qgc2V0LCB0aGVuIGlmIGBjb25maWd1cmUn IGZpbmRzIHRoZSBCU0QKKysgICAgICAgICAgYGluc3RhbGwnIHByb2dyYW0sIGl0IHdpbGwgc2V0 IHRoaXMgdG8gYGluc3RhbGwgLWMnOworKyAgICAgICAgICBvdGhlcndpc2UsIGl0IHdpbGwgdXNl IGBjcCcuCisrCisrICAgICBTdXBwb3NlLCBmb3IgZXhhbXBsZSwgeW91IHdhbnQgdG8gc2V0IHRo ZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgQ0MnCisrICAgICB0byBgcmNjJy4gIElmIHlvdSBhcmUg dXNpbmcgYHNoJywgYGJhc2gnLCBvciBga3NoJywgaW52b2tlCisrICAgICBgY29uZmlndXJlJyBh cyBgQ0M9cmNjIGNvbmZpZ3VyZScuICBJZiB5b3UgYXJlIHVzaW5nIGBjc2gnLCBkbworKyAgICAg YHNldGVudiBDQyByY2M7IHNoIGNvbmZpZ3VyZScuCisrCisrICAgICBPbiBzb21lIHN5c3RlbXMg eW91IHdpbGwgd2FudCB0byB1c2UgYExJQlM9LWxtYWxsb2MnLiAgT24gWGVuaXgKKysgICAgIGRl cml2ZWQgdmVyc2lvbnMgb2YgVW5peCBkbyBub3QgdXNlIGBMSUJTPS1seCcgYmVjYXVzZSB0aGlz IHdpbGwKKysgICAgIGJyaW5nIGluIHRoZSB3cm9uZyB2ZXJzaW9ucyBvZiBjZXJ0YWluIHJvdXRp bmVzOyBpZiB5b3Ugd2FudCB0byB1c2UKKysgICAgIGAtbHgnIHlvdSBtdXN0IHNwZWNpZnkgYExJ QlM9LWxjIC1seCcuCisrCisrICAgICBZb3UgY2FuIGFsc28gcGFzcyBvdGhlciBhcmd1bWVudHMg dG8gYGNvbmZpZ3VyZScgb24gdGhlIGNvbW1hbmQKKysgICAgIGxpbmUuICBVc2UgYGNvbmZpZ3Vy ZSAtLWhlbHAnIGZvciBhIGNvbXBsZXRlIGxpc3QuICBPZiBwYXJ0aWN1bGFyCisrICAgICBpbnRl cmVzdDoKKysgICAgYC0tcHJlZml4PURJUk5BTUUnCisrICAgICAgICAgIFRoZSBkaXJlY3Rvcnkg dW5kZXIgd2hpY2ggYWxsIGZpbGVzIGFyZSBpbnN0YWxsZWQuICBEZWZhdWx0CisrICAgICAgICAg IGAvdXNyL2xvY2FsJy4KKysKKysgICAgYC0td2l0aC1uZXdjb25maWdkaXI9RElSTkFNRScKKysg ICAgICAgICAgVGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0byBmaW5kIG5ldyBzdHlsZSBjb25maWd1 cmF0aW9uIGZpbGVzLgorKyAgICAgICAgICBEZWZhdWx0IGBQUkVGSVgvY29uZi91dWNwJy4KKysK KysgICAgYC0td2l0aC1vbGRjb25maWdkaXI9RElSTkFNRScKKysgICAgICAgICAgVGhlIGRpcmVj dG9yeSBpbiB3aGljaCB0byBmaW5kIG9sZCBzdHlsZSBjb25maWd1cmF0aW9uIGZpbGVzLgorKyAg ICAgICAgICBEZWZhdWx0IGAvdXNyL2xpYi91dWNwJy4KKysKKysgICAgIElmIGBjb25maWd1cmUn IGZhaWxzIGZvciBzb21lIHJlYXNvbiwgb3IgaWYgeW91IGhhdmUgYSB2ZXJ5IHdlaXJkCisrICAg ICBzeXN0ZW0sIHlvdSBtYXkgaGF2ZSB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgYnkgaGFuZC4g IFRvIGRvCisrICAgICB0aGlzLCBjb3B5IHRoZSBmaWxlIGBjb25maWcuaC5pbicgdG8gYGNvbmZp Zy5oJyBhbmQgZWRpdCBpdCBmb3IKKysgICAgIHlvdXIgc3lzdGVtLiAgVGhlbiBmb3IgZWFjaCBz b3VyY2UgZGlyZWN0b3J5ICh0aGUgdG9wIGRpcmVjdG9yeSwKKysgICAgIGFuZCB0aGUgc3ViZGly ZWN0b3JpZXMgYGxpYicsIGB1bml4JywgYW5kIGB1dWNvbmYnKSBjb3B5CisrICAgICBgTWFrZWZp bGUuaW4nIHRvIGBNYWtlZmlsZScsIGZpbmQgdGhlIHdvcmRzIHdpdGhpbiBgQCcgY2hhcmFjdGVy cywKKysgICAgIGFuZCBzZXQgdGhlbSBjb3JyZWN0bHkgZm9yIHlvdXIgc3lzdGVtLgorKworKyAg My4gSWdvciBWLiBTZW1lbnl1ayBwcm92aWRlZCB0aGlzIChsaWdodGx5IGVkaXRlZCkgbm90ZSBh Ym91dCBJU0MKKysgICAgIFVuaXggMy4wLiAgVGhlIGBjb25maWd1cmUnIHNjcmlwdCB3aWxsIGRl ZmF1bHQgdG8gcGFzc2luZyBgLXBvc2l4JworKyAgICAgdG8gYGdjYycuICBIb3dldmVyLCB1c2lu ZyBgLXBvc2l4JyBjaGFuZ2VzIHRoZSBlbnZpcm9ubWVudCB0bworKyAgICAgUE9TSVgsIGFuZCBv biBJU0MgMy4wLCBhdCBsZWFzdCwgdGhlIGRlZmF1bHQgZm9yIGBQT1NJWF9OT19UUlVOQycKKysg ICAgIGlzIDEuICBUaGlzIGNhbiBsZWFkIHRvIGEgcHJvYmxlbSB3aGVuIGB1dXhxdCcgZXhlY3V0 ZXMgYHJtYWlsJy4KKysgICAgIGBJREEgc2VuZG1haWwnIGhhcyBkYm0gY29uZmlndXJhdGlvbiBm aWxlcyBuYW1lZAorKyAgICAgYG1haWxlcnRhYmxlLntkaXIscGFnfScuICBOb3RpY2UgdGhlc2Ug bmFtZXMgYXJlIDE1IGNoYXJhY3RlcnMKKysgICAgIGxvbmcuICBXaGVuIGB1dXhxdCcgY29tcGls ZWQgd2l0aCB0aGUgYC1wb3NpeCcgZXhlY3V0ZXMgYHJtYWlsJywKKysgICAgIHdoaWNoIGluIHR1 cm4gZXhlY3V0ZXMgYHNlbmRtYWlsJywgdGhlIGxhdGVyIGlzIHJ1biB1bmRlciB0aGUKKysgICAg IFBPU0lYIGVudmlyb25tZW50IHRvby4gIFRoaXMgbGVhZHMgdG8gYHNlbmRtYWlsJyBib21iaW5n IG91dCB3aXRoCisrICAgICBgJ2Vycm9yIG9wZW5pbmcgJ00nIGRhdGFiYXNlOiBuYW1lIHRvbyBs b25nJyAobWFpbGVydGFibGUuZGlyKScuCisrICAgICBJdCdzIHJhdGhlciBvYnNjdXJlIGJlaGF2 aW91ciwgYW5kIGl0IHRvb2sgbWUgYSBkYXkgdG8gZmluZCBvdXQKKysgICAgIHRoZSBjYXVzZS4g IEkgZG9uJ3QgdXNlIHRoZSBgLXBvc2l4JyBzd2l0Y2g7IGluc3RlYWQsIEkgcnVuIGBnY2MnCisr ICAgICB3aXRoIGAtRF9QT1NJWF9TT1VSQ0UnLCBhbmQgYWRkIGAtbGNwb3NpeCcgdG8gYExJQlMn LgorKworKyAgNC4gT24gc29tZSB2ZXJzaW9ucyBvZiBCU0RJIHRoZXJlIGlzIGEgYnVnIGluIHRo ZSBzaGVsbCB3aGljaCBjYXVzZXMKKysgICAgIHRoZSBkZWZhdWx0IHZhbHVlIGZvciBgQ0ZMQUdT JyB0byBiZSBzZXQgaW5jb3JyZWN0bHkuICBJZiBgZWNobworKyAgICAgJHtDRkxBR1MtLWd9JyBl Y2hvZXMgYGcnIHJhdGhlciB0aGFuIGAtZycsIHRoZW4geW91IG11c3Qgc2V0CisrICAgICBgQ0ZM QUdTJyBpbiB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIHJ1bm5pbmcgY29uZmlndXJlLiAgVGhlcmUg aXMgYQorKyAgICAgcGF0Y2ggYXZhaWxhYmxlIGZyb20gQlNESSBmb3IgdGhpcyBidWcuICAoUmVw b3J0ZWQgYnkgRGF2aWQgVnJvbmEpLgorKworKyAgNS4gT24gQUlYIDMuMi41LCBhbmQgcG9zc2li bHkgb3RoZXIgdmVyc2lvbnMsIGBjYyAtRScgZG9lcyBub3Qgd29yaywKKysgICAgIHJlcG9ydGlu ZyBgT3B0aW9uIE5PUk9DT05TVCBpcyBub3QgdmFsaWQnLiAgVGVzdCB0aGlzIGJlZm9yZQorKyAg ICAgcnVubmluZyBjb25maWd1cmUgYnkgZG9pbmcgc29tZXRoaW5nIGxpa2UgYHRvdWNoIC90bXAv Zm9vLmM7IGNjIC1FCisrICAgICAvdG1wL2Zvby5jJy4gIFRoaXMgbWF5IGdpdmUgYSB3YXJuaW5n IGFib3V0IHRoZSBmaWxlIGJlaW5nIGVtcHR5LAorKyAgICAgYnV0IGl0IHNob3VsZCBub3QgZ2l2 ZSB0aGUgYE9wdGlvbiBOT1JPQ09OU1QnIHdhcm5pbmcuICBUaGUKKysgICAgIHdvcmthcm91bmQg aXMgdG8gcmVtb3ZlIHRoZSBgLG5vcm9jb25zdCcgZW50cnkgZnJvbSB0aGUgYG9wdGlvbnMnCisr ICAgICBjbGF1c2UgaW4gdGhlIGBjYycgc3RhbnphIGluIGAvZXRjL3hsYy5jZmcnLiAgKFJlcG9y dGVkIGJ5IENocmlzCisrICAgICBMZXdpcykuCisrCisrICA2LiBZb3Ugc2hvdWxkIHZlcmlmeSB0 aGF0IGBjb25maWd1cmUnIHdvcmtlZCBjb3JyZWN0bHkgYnkgY2hlY2tpbmcKKysgICAgIGBjb25m aWcuaCcgYW5kIHRoZSBpbnN0YW5jZXMgb2YgYE1ha2VmaWxlJy4KKysKKysgIDcuIEVkaXQgYHBv bGljeS5oJyBmb3IgeW91ciBsb2NhbCBzeXN0ZW0uICBUaGUgY29tbWVudHMgZXhwbGFpbiB0aGUK KysgICAgIHZhcmlvdXMgY2hvaWNlcy4gIFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgaW50ZW5kZWQg dG8gYmUKKysgICAgIHJlYXNvbmFibGUsIHNvIHlvdSBtYXkgbm90IGhhdmUgdG8gbWFrZSBhbnkg Y2hhbmdlcy4KKysKKysgICAgIFlvdSBtdXN0IGRlY2lkZSB3aGF0IHR5cGUgb2YgY29uZmlndXJh dGlvbiBmaWxlcyB0byB1c2U7IGZvciBtb3JlCisrICAgICBpbmZvcm1hdGlvbiBvbiB0aGUgY2hv aWNlcywgc2VlICpub3RlIENvbmZpZ3VyYXRpb246Oi4KKysKKysgICAgIFlvdSBtdXN0IGFsc28g ZGVjaWRlIHdoYXQgc29ydCBvZiBzcG9vbCBkaXJlY3RvcnkgeW91IHdhbnQgdG8gdXNlLgorKyAg ICAgSWYgdGhpcyBpcyBhIG5ldyBpbnN0YWxsYXRpb24sIEkgcmVjb21tZW5kIGBTUE9PTERJUl9U QVlMT1InOworKyAgICAgb3RoZXJ3aXNlLCBzZWxlY3QgdGhlIHNwb29sIGRpcmVjdG9yeSBjb3Jy ZXNwb25kaW5nIHRvIHlvdXIKKysgICAgIGV4aXN0aW5nIFVVQ1AgcGFja2FnZS4KKysKKysgIDgu IFR5cGUgYG1ha2UnIHRvIGNvbXBpbGUgZXZlcnl0aGluZy4KKysKKysgICAgIFRoZSBgdHN0dXUu YycgZmlsZSBpcyBub3QgcGFydGljdWxhcmx5IHBvcnRhYmxlOyBpZiB5b3UgY2FuJ3QKKysgICAg IGZpZ3VyZSBvdXQgaG93IHRvIGNvbXBpbGUgaXQgeW91IGNhbiBzYWZlbHkgaWdub3JlIGl0LCBh cyBpdCBpcworKyAgICAgb25seSB1c2VkIGZvciB0ZXN0aW5nLiAgVG8gdXNlIFNUUkVBTVMgcHNl dWRvLXRlcm1pbmFscywgdHN0dXUuYworKyAgICAgbXVzdCBiZSBjb21waWxlZCB3aXRoIGAtREhB VkVfU1RSRUFNU19QVFlTJzsgdGhpcyBpcyBub3QKKysgICAgIGRldGVybWluZWQgYnkgdGhlIGNv bmZpZ3VyZSBzY3JpcHQuCisrCisrICAgICBJZiB5b3UgaGF2ZSBhbnkgb3RoZXIgcHJvYmxlbXMg dGhlcmUgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlCisrICAgICBgY29uZmlndXJlJyBzY3JpcHQu CisrCisrICA5LiBQbGVhc2UgcmVwb3J0IGFueSBwcm9ibGVtcyB5b3UgaGF2ZS4gIFRoYXQgaXMg dGhlIG9ubHkgd2F5IHRoZXkKKysgICAgIHdpbGwgZ2V0IGZpeGVkIGZvciBvdGhlciBwZW9wbGUu ICBTdXBwbHkgYSBwYXRjaCBpZiB5b3UgY2FuICgqbm90ZQorKyAgICAgUGF0Y2hlczo6KSwgb3Ig anVzdCBhc2sgZm9yIGhlbHAuCisrCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFRl c3RpbmcgdGhlIENvbXBpbGF0aW9uLCAgTmV4dDogSW5zdGFsbGluZyB0aGUgQmluYXJpZXMsICBQ cmV2OiBDb21waWxhdGlvbiwgIFVwOiBJbnN0YWxsaW5nIFRheWxvciBVVUNQCisrCisrMy4yIFRl c3RpbmcgdGhlIENvbXBpbGF0aW9uCisrPT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisr SWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgcHNldWRvLXRlcm1pbmFscywgYW5kIHlvdSBjb21waWxl ZCB0aGUgY29kZSB0bworK3N1cHBvcnQgdGhlIG5ldyBzdHlsZSBvZiBjb25maWd1cmF0aW9uIGZp bGVzIChgSEFWRV9UQVlMT1JfQ09ORklHJyB3YXMKKytzZXQgdG8gMSBpbiBgcG9saWN5LmgnKSwg eW91IHNob3VsZCBiZSBhYmxlIHRvIHVzZSB0aGUgYHRzdHV1JyBwcm9ncmFtCisrdG8gdGVzdCB0 aGUgYHV1Y2ljbycgZGFlbW9uLiAgSWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgU1RSRUFNUyBiYXNl ZAorK3BzZXVkby10ZXJtaW5hbHMsIHlvdSBtdXN0IGNvbXBpbGUgdHN0dXUuYyB3aXRoIGAtREhB VkVfU1RSRUFNU19QVFlTJy4KKysoVGhlIFNUUkVBTVMgYmFzZWQgY29kZSB3YXMgY29udHJpYnV0 ZWQgYnkgTWFyYyBCb3VjaGVyKS4KKysKKysgICBUbyBydW4gYHRzdHV1JywganVzdCB0eXBlIGB0 c3R1dScgd2l0aCBubyBhcmd1bWVudHMuICBZb3UgbXVzdCBydW4KKytpdCBpbiB0aGUgY29tcGls YXRpb24gZGlyZWN0b3J5LCBzaW5jZSBpdCBydW5zIGAuL3V1Y3AnLCBgLi91dXgnIGFuZAorK2Au L3V1Y2ljbycuICBUaGUgYHRzdHV1JyBwcm9ncmFtIHdpbGwgcnVuIGEgbGVuZ3RoeSBzZXJpZXMg b2YgdGVzdHMgKGl0CisrdGFrZXMgb3ZlciB0ZW4gbWludXRlcyBvbiBhIHNsb3cgVkFYKS4gIFlv dSB3aWxsIG5lZWQgYSBmYWlyIGFtb3VudCBvZgorK3NwYWNlIGF2YWlsYWJsZSBpbiBgL3Vzci90 bXAnLiAgWW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBwdXQgaXQgaW4gdGhlCisrYmFja2dyb3Vu ZC4gIERvIG5vdCB1c2UgYF5aJywgYmVjYXVzZSB0aGUgcHJvZ3JhbSB0cmFwcyBvbiBgU0lHQ0hM RCcKKythbmQgd2luZHMgdXAgZHlpbmcuICBUaGUgYHRzdHV1JyBwcm9ncmFtIHdpbGwgY3JlYXRl IGEgZGlyZWN0b3J5CisrYC91c3IvdG1wL3RzdHV1JyBhbmQgZmlsbCBpdCB3aXRoIGNvbmZpZ3Vy YXRpb24gZmlsZXMsIGFuZCBjcmVhdGUgc3Bvb2wKKytkaXJlY3RvcmllcyBgL3Vzci90bXAvdHN0 dXUvc3Bvb2wxJyBhbmQgYC91c3IvdG1wL3RzdHV1L3Nwb29sMicuCisrCisrICAgSWYgeW91ciBz eXN0ZW0gZG9lcyBub3Qgc3VwcG9ydCB0aGUgYEZJT05SRUFEJyBjYWxsLCB0aGUgYHRzdHV1Jwor K3Byb2dyYW0gd2lsbCBydW4gdmVyeSBzbG93bHkuICBUaGlzIG1heSBvciBtYXkgbm90IGdldCBm aXhlZCBpbiBhIGxhdGVyCisrdmVyc2lvbi4KKysKKysgICBUaGUgYHRzdHV1JyBwcm9ncmFtIHdp bGwgZmluaXNoIHdpdGggYW4gZXhlY3V0ZSBmaWxlIG5hbWVkCisrYFguU09NRVRISU5HJyBhbmQg YSBkYXRhIGZpbGUgbmFtZWQgYEQuU09NRVRISU5HJyBpbiB0aGUgZGlyZWN0b3J5CisrYC91c3Iv dG1wL3RzdHV1L3Nwb29sMScgKG9yLCBtb3JlIGxpa2VseSwgaW4gc3ViZGlyZWN0b3JpZXMsIGRl cGVuZGluZworK29uIHRoZSBjaG9pY2Ugb2YgYFNQT09MRElSJyBpbiBgcG9saWN5LmgnKS4gIFR3 byBsb2cgZmlsZXMgd2lsbCBiZQorK2NyZWF0ZWQgaW4gdGhlIGRpcmVjdG9yeSBgL3Vzci90bXAv dHN0dXUnLiAgVGhleSB3aWxsIGJlIG5hbWVkIGBMb2cxJworK2FuZCBgTG9nMicsIG9yLCBpZiB5 b3UgaGF2ZSBzZWxlY3RlZCBgSEFWRV9IREJfTE9HR0lORycgaW4gYHBvbGljeS5oJywKKytgTG9n MS91dWNpY28vdGVzdDInIGFuZCBgTG9nMi91dWNpY28vdGVzdDEnLiAgVGhlcmUgc2hvdWxkIGJl IG5vIGVycm9ycworK2luIHRoZSBsb2cgZmlsZXMuCisrCisrICAgWW91IGNhbiB0ZXN0IGB1dXhx dCcgd2l0aCBgLi91dXhxdCAtSSAvdXNyL3RtcC90c3R1dS9Db25maWcxJy4gIFRoaXMKKytzaG91 bGQgbGVhdmUgYSBjb21tYW5kIGZpbGUgYEMuU09NRVRISU5HJyBhbmQgYSBkYXRhIGZpbGUgYEQu U09NRVRISU5HJworK2luIGAvdXNyL3RtcC90c3R1dS9zcG9vbDEnIG9yIGluIHN1YmRpcmVjdG9y aWVzLiAgQWdhaW4sIHRoZXJlIHNob3VsZAorK2JlIG5vIGVycm9ycyBpbiB0aGUgbG9nIGZpbGUu CisrCisrICAgQXNzdW1pbmcgeW91IGNvbXBpbGVkIHRoZSBjb2RlIHdpdGggZGVidWdnaW5nIGVu YWJsZWQsIHRoZSBgLXgnCisrc3dpdGNoIGNhbiBiZSB1c2VkIHRvIHNldCBkZWJ1Z2dpbmcgbW9k ZXM7IHNlZSB0aGUgYGRlYnVnJyBjb21tYW5kIGZvcgorK2RldGFpbHMgKCpub3RlIERlYnVnZ2lu ZyBMZXZlbHM6OikuICBVc2UgYC14IGFsbCcgdG8gdHVybiBvbiBhbGwKKytkZWJ1Z2dpbmcgYW5k IGdlbmVyYXRlIGZhciBtb3JlIG91dHB1dCB0aGFuIHlvdSB3aWxsIGV2ZXIgd2FudCB0byBzZWUu CisrVGhlIGB1dWNpY28nIGRhZW1vbnMgd2lsbCBwdXQgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUg ZmlsZXMgYERlYnVnMScKKythbmQgYERlYnVnMicgaW4gdGhlIGRpcmVjdG9yeSBgL3Vzci90bXAv dHN0dXUnLiAgQWZ0ZXIgdGhhdCwgeW91J3JlCisrcHJldHR5IG11Y2ggb24geW91ciBvd24uCisr CisrICAgT24gc29tZSBzeXN0ZW1zIHlvdSBjYW4gYWxzbyB1c2UgYHRzdHV1JyB0byB0ZXN0IGB1 dWNpY28nIGFnYWluc3QKKyt0aGUgc3lzdGVtIGB1dWNpY28nLCBieSB1c2luZyB0aGUgYC11JyBz d2l0Y2guICBGb3IgdGhpcyB0byB3b3JrLAorK2NoYW5nZSB0aGUgZGVmaW5pdGlvbnMgb2YgYFpV VUNJQ09fQ01EJyBhbmQgYFVVQ0lDT19FWEVDTCcgYXQgdGhlIHRvcAorK29mIGB0c3R1dS5jJyB0 byBzb21ldGhpbmcgYXBwcm9wcmlhdGUgZm9yIHlvdXIgc3lzdGVtLiAgVGhlIGRlZmluaXRpb25z CisraW4gYHRzdHV1LmMnIGFyZSB3aGF0IEkgdXNlZCBmb3IgVWx0cml4IDQuMCwgb24gd2hpY2gK KytgL3Vzci9saWIvdXVjcC91dWNpY28nIGlzIHBhcnRpY3VsYXJseSBvYnN0aW5hdGUgYWJvdXQg YmVpbmcgcnVuIGFzIGEKKytjaGlsZDsgSSB3YXMgb25seSBhYmxlIHRvIHJ1biBpdCBieSBjcmVh dGluZyBhIGxvZ2luIG5hbWUgd2l0aCBubworK3Bhc3N3b3JkIHdob3NlIHNoZWxsIHdhcyBgL3Vz ci9saWIvdXVjcC91dWNpY28nLiAgQ2FsbGluZyBsb2dpbiBpbiB0aGlzCisrd2F5IHdpbGwgbGVh dmUgZmFrZSBlbnRyaWVzIGluIGB3dG1wJyBhbmQgYHV0bXAnOyBpZiB5b3UgY29tcGlsZQorK2B0 c3RvdXQuYycgKGluIHRoZSBgY29udHJpYicgZGlyZWN0b3J5KSBhcyBhIHNldHVpZCBgcm9vdCcg cHJvZ3JhbSwKKytgdHN0dXUnIHdpbGwgcnVuIGl0IHRvIGNsZWFyIHRob3NlIGVudHJpZXMgb3V0 LiAgT24gbW9zdCBzeXN0ZW1zLCBzdWNoCisraGFja2VyeSBzaG91bGQgbm90IGJlIG5lY2Vzc2Fy eSwgYWx0aG91Z2ggb24gU0NPIEkgaGFkIHRvIHN1IHRvIGByb290JworKyhgdXVjcCcgbWlnaHQg YWxzbyBoYXZlIHdvcmtlZCkgYmVmb3JlIEkgY291bGQgcnVuCisrYC91c3IvbGliL3V1Y3AvdXVj aWNvJy4KKysKKysgICBZb3UgY2FuIHRlc3QgYHV1Y3AnIGFuZCBgdXV4JyAoZ2l2ZSB0aGVtIHRo ZSBgLXInIHN3aXRjaCB0byBrZWVwCisrdGhlbSBmcm9tIHN0YXJ0aW5nIGB1dWNpY28nKSB0byBt YWtlIHN1cmUgdGhleSBjcmVhdGUgdGhlIHJpZ2h0IHNvcnRzCisrb2YgZmlsZXMuICBVbmZvcnR1 bmF0ZWx5LCBpZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRoZSByaWdodCBzb3J0cyBvZgorK2ZpbGVz IGFyZSwgSSdtIG5vdCBnb2luZyB0byB0ZWxsIHlvdSBoZXJlLgorKworKyAgIElmIHlvdSBjYW4g bm90IHJ1biBgdHN0dXUnLCBvciBpZiBpdCBmYWlscyBpbmV4cGxpY2FibHksIGRvbid0IHdvcnJ5 CisrYWJvdXQgaXQgdG9vIG11Y2guICBPbiBzb21lIHN5c3RlbXMgYHRzdHV1JyB3aWxsIGZhaWwg YmVjYXVzZSBvZgorK3Byb2JsZW1zIHVzaW5nIHBzZXVkbyB0ZXJtaW5hbHMsIHdoaWNoIHdpbGwg bm90IG1hdHRlciBpbiBub3JtYWwgdXNlLgorK1RoZSByZWFsIHRlc3Qgb2YgdGhlIHBhY2thZ2Ug aXMgdGFsa2luZyB0byBhbm90aGVyIHN5c3RlbS4KKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAg Tm9kZTogSW5zdGFsbGluZyB0aGUgQmluYXJpZXMsICBOZXh0OiBDb25maWd1cmF0aW9uLCAgUHJl djogVGVzdGluZyB0aGUgQ29tcGlsYXRpb24sICBVcDogSW5zdGFsbGluZyBUYXlsb3IgVVVDUAor KworKzMuMyBJbnN0YWxsaW5nIHRoZSBCaW5hcmllcworKz09PT09PT09PT09PT09PT09PT09PT09 PT09PQorKworK1lvdSBjYW4gaW5zdGFsbCB0aGUgZXhlY3V0YWJsZSBmaWxlcyBieSBiZWNvbWlu ZyBgcm9vdCcgYW5kIHR5cGluZworK2BtYWtlIGluc3RhbGwnLiAgT3IgeW91IGNhbiBsb29rIGF0 IHdoYXQgYG1ha2UgaW5zdGFsbCcgZG9lcyBhbmQgZG8gaXQKKytieSBoYW5kLiAgSXQgdHJpZXMg dG8gcHJlc2VydmUgeW91ciBvbGQgcHJvZ3JhbXMsIGlmIGFueSwgYnV0IGl0IG9ubHkKKytkb2Vz IHRoaXMgdGhlIGZpcnN0IHRpbWUgVGF5bG9yIFVVQ1AgaXMgaW5zdGFsbGVkIChzbyB0aGF0IGlm IHlvdQorK2luc3RhbGwgc2V2ZXJhbCB2ZXJzaW9ucyBvZiBUYXlsb3IgVVVDUCwgeW91IGNhbiBz dGlsbCBnbyBiYWNrIHRvIHlvdXIKKytvcmlnaW5hbCBVVUNQIHByb2dyYW1zKS4gIFlvdSBjYW4g cmV0cmlldmUgdGhlIG9yaWdpbmFsIHByb2dyYW1zIGJ5CisrdHlwaW5nIGBtYWtlIHVuaW5zdGFs bCcuCisrCisrICAgTm90ZSB0aGF0IGJ5IGRlZmF1bHQgdGhlIHByb2dyYW1zIGFyZSBjb21waWxl ZCB3aXRoIGRlYnVnZ2luZworK2luZm9ybWF0aW9uLCBhbmQgdGhleSBhcmUgbm90IHN0cmlwcGVk IHdoZW4gdGhleSBhcmUgaW5zdGFsbGVkLiAgWW91IG1heQorK3dhbnQgdG8gc3RyaXAgdGhlIGlu c3RhbGxlZCBwcm9ncmFtcyB0byBzYXZlIGRpc2sgc3BhY2UuICBGb3IgbW9yZQorK2luZm9ybWF0 aW9uLCBzZWUgeW91ciBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBzdHJpcCcgcHJvZ3Jh bS4KKysKKysgICBPZiBjb3Vyc2UsIHNpbXBseSBpbnN0YWxsaW5nIHRoZSBleGVjdXRhYmxlIGZp bGVzIGlzIG5vdCBlbm91Z2guICBZb3UKKyttdXN0IGFsc28gYXJyYW5nZSBmb3IgdGhlbSB0byBi ZSB1c2VkIGNvcnJlY3RseS4KKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogQ29uZmln dXJhdGlvbiwgIE5leHQ6IFRlc3RpbmcgdGhlIEluc3RhbGxhdGlvbiwgIFByZXY6IEluc3RhbGxp bmcgdGhlIEJpbmFyaWVzLCAgVXA6IEluc3RhbGxpbmcgVGF5bG9yIFVVQ1AKKysKKyszLjQgQ29u ZmlndXJpbmcgVGF5bG9yIFVVQ1AKKys9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKytZ b3Ugd2lsbCBoYXZlIHRvIGRlY2lkZSB3aGF0IHR5cGVzIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMg eW91IHdhbnQgdG8KKyt1c2UuICBUaGlzIHBhY2thZ2Ugc3VwcG9ydHMgYSBuZXcgc29ydCBvZiBj b25maWd1cmF0aW9uIGZpbGU7IHNlZSAqbm90ZQorK0NvbmZpZ3VyYXRpb24gRmlsZXM6Oi4gIEl0 IGFsc28gc3VwcG9ydHMgVjIgY29uZmlndXJhdGlvbiBmaWxlcworKyhgTC5zeXMnLCBgTC1kZXZp Y2VzJywgZXRjLikgYW5kIEhEQiBjb25maWd1cmF0aW9uIGZpbGVzIChgU3lzdGVtcycsCisrYERl dmljZXMnLCBldGMuKS4gIE5vIGRvY3VtZW50YXRpb24gaXMgcHJvdmlkZWQgZm9yIFYyIG9yIEhE QgorK2NvbmZpZ3VyYXRpb24gZmlsZXMuICBBbGwgdHlwZXMgb2YgY29uZmlndXJhdGlvbiBmaWxl cyBjYW4gYmUgdXNlZCBhdAorK29uY2UsIGlmIHlvdSBhcmUgc28gaW5jbGluZWQuICBDdXJyZW50 bHkgdXNpbmcganVzdCBWMiBjb25maWd1cmF0aW9uCisrZmlsZXMgaXMgbm90IHJlYWxseSBwb3Nz aWJsZSwgYmVjYXVzZSB0aGVyZSBpcyBubyB3YXkgdG8gc3BlY2lmeSBhCisrZGlhbGVyICh0aGVy ZSBhcmUgbm8gYnVpbHQgaW4gZGlhbGVycywgYW5kIHRoZSBwcm9ncmFtIGRvZXMgbm90IGtub3cK Kytob3cgdG8gcmVhZCBgYWN1Y2FwJyBvciBgbW9kZW1jYXAnKTsgaG93ZXZlciwgVjIgY29uZmln dXJhdGlvbiBmaWxlcworK2NhbiBiZSB1c2VkIHdpdGggYSBuZXcgc3R5bGUgZGlhbCBmaWxlICgq bm90ZSBkaWFsIEZpbGU6OiksIG9yIHdpdGggYQorK0hEQiBgRGlhbGVycycgZmlsZS4KKysKKysg ICBVc2Ugb2YgSERCIGNvbmZpZ3VyYXRpb24gZmlsZXMgaGFzIHR3byBrbm93biBidWdzLiAgQSBi bGFuayBsaW5lIGluCisrdGhlIG1pZGRsZSBvZiBhbiBlbnRyeSBpbiB0aGUgYFBlcm1pc3Npb25z JyBmaWxlIHdpbGwgbm90IGJlIGlnbm9yZWQgYXMKKytpdCBzaG91bGQgYmUuICBEaWFsZXIgcHJv Z3JhbXMsIGFzIGZvdW5kIGluIHNvbWUgdmVyc2lvbnMgb2YgSERCLCBhcmUKKytub3QgcmVjb2du aXplZCBkaXJlY3RseS4gIElmIHlvdSBtdXN0IHVzZSBhIGRpYWxlciBwcm9ncmFtLCByYXRoZXIg dGhhbgorK2FuIGVudHJ5IGluIGBEZXZpY2VzJywgeW91IG11c3QgdXNlIHRoZSBgY2hhdC1wcm9n cmFtJyBjb21tYW5kIGluIGEgbmV3Cisrc3R5bGUgZGlhbCBmaWxlOyBzZWUgKm5vdGUgZGlhbCBG aWxlOjouICBZb3Ugd2lsbCBoYXZlIHRvIGludm9rZSB0aGUKKytkaWFsZXIgcHJvZ3JhbSB2aWEg YSBzaGVsbCBzY3JpcHQgb3IgYW5vdGhlciBwcm9ncmFtLCBzaW5jZSBhbiBleGl0CisrY29kZSBv ZiAwIGlzIHJlcXVpcmVkIHRvIHJlY29nbml6ZSBzdWNjZXNzOyB0aGUgYGRpYWxIREInIHByb2dy YW0gaW4KKyt0aGUgYGNvbnRyaWInIGRpcmVjdG9yeSBtYXkgYmUgdXNlZCBmb3IgdGhpcyBwdXJw b3NlLgorKworKyAgIFRoZSBgdXVjb252JyAoKm5vdGUgSW52b2tpbmcgdXVjb252OjopIHByb2dy YW0gY2FuIGJlIHVzZWQgdG8KKytjb252ZXJ0IGZyb20gVjIgb3IgSERCIGNvbmZpZ3VyYXRpb24g ZmlsZXMgdG8gdGhlIG5ldyBzdHlsZSAoaXQgY2FuIGFsc28KKytkbyB0aGUgcmV2ZXJzZSB0cmFu c2xhdGlvbiwgaWYgeW91IGFyZSBzbyBpbmNsaW5lZCkuICBJdCB3aWxsIG5vdCBkbyBhbGwKKytv ZiB0aGUgd29yaywgYW5kIHRoZSByZXN1bHRzIHNob3VsZCBiZSBjYXJlZnVsbHkgY2hlY2tlZCwg YnV0IGl0IGNhbiBiZQorK3F1aXRlIHVzZWZ1bC4KKysKKysgICBJZiB5b3UgYXJlIGluc3RhbGxp bmcgYSBuZXcgc3lzdGVtLCB5b3Ugd2lsbCwgb2YgY291cnNlLCBoYXZlIHRvCisrd3JpdGUgdGhl IGNvbmZpZ3VyYXRpb24gZmlsZXM7IHNlZSAqbm90ZSBDb25maWd1cmF0aW9uIEZpbGVzOjogZm9y CisrZGV0YWlscyBvbiBob3cgdG8gZG8gdGhpcy4KKysKKysgICBBZnRlciB3cml0aW5nIHRoZSBj b25maWd1cmF0aW9uIGZpbGVzLCB1c2UgdGhlIGB1dWNoaycgcHJvZ3JhbSB0bworK3ZlcmlmeSB0 aGF0IHRoZXkgYXJlIHdoYXQgeW91IGV4cGVjdDsgc2VlICpub3RlIEludm9raW5nIHV1Y2hrOjou CisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFRlc3RpbmcgdGhlIEluc3RhbGxhdGlv biwgIFByZXY6IENvbmZpZ3VyYXRpb24sICBVcDogSW5zdGFsbGluZyBUYXlsb3IgVVVDUAorKwor KzMuNSBUZXN0aW5nIHRoZSBJbnN0YWxsYXRpb24KKys9PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrCisrQWZ0ZXIgeW91IGhhdmUgd3JpdHRlbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlcywg YW5kIHZlcmlmaWVkIHRoZW0gd2l0aAorK3RoZSBgdXVjaGsnIHByb2dyYW0gKCpub3RlIEludm9r aW5nIHV1Y2hrOjopLCB5b3UgbXVzdCBjaGVjayB0aGF0IFVVQ1AKKytjYW4gY29ycmVjdGx5IGNv bnRhY3QgYW5vdGhlciBzeXN0ZW0uCisrCisrICAgVGVsbCBgdXVjaWNvJyB0byBkaWFsIG91dCB0 byB0aGUgc3lzdGVtIGJ5IHVzaW5nIHRoZSBgLXMnIHN5c3RlbQorK3N3aXRjaCAoZS5nLiwgYHV1 Y2ljbyAtcyB1dW5ldCcpLiAgVGhlIGxvZyBmaWxlIHNob3VsZCB0ZWxsIHlvdSB3aGF0CisraGFw cGVucy4gIFRoZSBleGFjdCBsb2NhdGlvbiBvZiB0aGUgbG9nIGZpbGUgZGVwZW5kcyB1cG9uIHRo ZSBzZXR0aW5ncworK2luIGBwb2xpY3kuaCcgd2hlbiB5b3UgY29tcGlsZWQgdGhlIHByb2dyYW0s IGFuZCBvbiB0aGUgdXNlIG9mIHRoZQorK2Bsb2dmaWxlJyBjb21tYW5kIGluIHRoZSBgY29uZmln JyBmaWxlLiAgVHlwaWNhbCBsb2NhdGlvbnMgYXJlCisrYC91c3Ivc3Bvb2wvdXVjcC9Mb2cnIG9y IGEgc3ViZGlyZWN0b3J5IHVuZGVyIGAvdXNyL3Nwb29sL3V1Y3AvLkxvZycuCisrCisrICAgSWYg eW91IGNvbXBpbGVkIHRoZSBjb2RlIHdpdGggZGVidWdnaW5nIGVuYWJsZWQsIHlvdSBjYW4gdXNl CisrZGVidWdnaW5nIG1vZGUgdG8gZ2V0IGEgZ3JlYXQgZGVhbCBvZiBpbmZvcm1hdGlvbiBhYm91 dCB3aGF0IHNvcnQgb2YKKytkYXRhIGlzIGZsb3dpbmcgYmFjayBhbmQgZm9ydGg7IHRoZSB2YXJp b3VzIHBvc3NpYmlsaXRpZXMgYXJlIGRlc2NyaWJlZAorK3dpdGggdGhlIGBkZWJ1ZycgY29tbWFu ZCAoKm5vdGUgRGVidWdnaW5nIExldmVsczo6KS4gIFdoZW4gaW5pdGlhbGx5Cisrc2V0dGluZyB1 cCBhIGNvbm5lY3Rpb24gYC14IGNoYXQnIGlzIHByb2JhYmx5IHRoZSBtb3N0IHVzZWZ1bCAoZS5n LiwKKytgdXVjaWNvIC1zIHV1bmV0IC14IGNoYXQnKTsgeW91IG1heSBhbHNvIHdhbnQgdG8gdXNl IGAteAorK2hhbmRzaGFrZSxpbmNvbWluZyxvdXRnb2luZycuICBZb3UgY2FuIHVzZSBgLXgnIG11 bHRpcGxlIHRpbWVzIG9uIG9uZQorK2NvbW1hbmQgbGluZSwgb3IgeW91IGNhbiBnaXZlIGl0IGNv bW1hIHNlcGFyYXRlZCBhcmd1bWVudHMgYXMgaW4gdGhlCisrbGFzdCBleGFtcGxlLiAgVXNlIGAt eCBhbGwnIHRvIHR1cm4gb24gYWxsIHBvc3NpYmxlIGRlYnVnZ2luZworK2luZm9ybWF0aW9uLgor KworKyAgIFRoZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiB0byBhIGZpbGUsIG5v cm1hbGx5CisrYC91c3Ivc3Bvb2wvdXVjcC9EZWJ1ZycsIGFsdGhvdWdoIHRoZSBkZWZhdWx0IGNh biBiZSBjaGFuZ2VkIGluCisrYHBvbGljeS5oJywgYW5kIHRoZSBgY29uZmlnJyBmaWxlIGNhbiBv dmVycmlkZSB0aGUgZGVmYXVsdCB3aXRoIHRoZQorK2BkZWJ1Z2ZpbGUnIGNvbW1hbmQuICBUaGUg ZGVidWdnaW5nIGZpbGUgbWF5IGNvbnRhaW4gcGFzc3dvcmRzIGFuZCBzb21lCisrZmlsZSBjb250 ZW50cyBhcyB0aGV5IGFyZSB0cmFuc21pdHRlZCBvdmVyIHRoZSBsaW5lLCBzbyB0aGUgZGVidWdn aW5nCisrZmlsZSBpcyBvbmx5IHJlYWRhYmxlIGJ5IHRoZSBgdXVjcCcgdXNlci4KKysKKysgICBZ b3UgY2FuIHVzZSB0aGUgYC1mJyBzd2l0Y2ggdG8gZm9yY2UgYHV1Y2ljbycgdG8gY2FsbCBvdXQg ZXZlbiBpZgorK3RoZSBsYXN0IGNhbGwgZmFpbGVkIHJlY2VudGx5OyB1c2luZyBgLVMnIHdoZW4g bmFtaW5nIGEgc3lzdGVtIGhhcyB0aGUKKytzYW1lIGVmZmVjdC4gIE90aGVyd2lzZSB0aGUgc3Rh dHVzIGZpbGUgKGluIHRoZSBgLlN0YXR1cycgc3ViZGlyZWN0b3J5Cisrb2YgdGhlIG1haW4gc3Bv b2wgZGlyZWN0b3J5LCBub3JtYWxseSBgL3Vzci9zcG9vbC91dWNwJykgKCpub3RlIFN0YXR1cwor K0RpcmVjdG9yeTo6KSB3aWxsIHByZXZlbnQgdG9vIG1hbnkgYXR0ZW1wdHMgZnJvbSBvY2N1cnJp bmcgaW4gcmFwaWQKKytzdWNjZXNzaW9uLgorKworKyAgIE9uIG9sZGVyIFN5c3RlbSBWIGJhc2Vk IHN5c3RlbXMgd2hpY2ggZG8gbm90IGhhdmUgdGhlIGBzZXRyZXVpZCcKKytzeXN0ZW0gY2FsbCwg cHJvYmxlbXMgbWF5IGFyaXNlIGlmIG9yZGluYXJ5IHVzZXJzIGNhbiBzdGFydCBhbiBleGVjdXRp b24KKytvZiBgdXV4cXQnLCBwZXJoYXBzIGluZGlyZWN0bHkgdmlhIGB1dWNwJyBvciBgdXV4Jy4g IFVVQ1Agam9icyBtYXkgd2luZAorK3VwIGV4ZWN1dGluZyB3aXRoIGEgcmVhbCB1c2VyIElEIG9m IHRoZSB1c2VyIHdobyBpbnZva2VkIGB1dXhxdCcsIHdoaWNoCisrY2FuIGNhdXNlIHByb2JsZW1z IGlmIHRoZSBVVUNQIGpvYiBjaGVja3MgdGhlIHJlYWwgdXNlciBJRCBmb3Igc2VjdXJpdHkKKytw dXJwb3Nlcy4gIE9uIHN1Y2ggc3lzdGVtcywgaXQgaXMgc2FmZXN0IHRvIHB1dCBgcnVuLXV1eHF0 IG5ldmVyJworKygqbm90ZSBNaXNjZWxsYW5lb3VzIChjb25maWcpOjopIGluIHRoZSBgY29uZmln JyBmaWxlLCBzbyB0aGF0IGB1dWNpY28nCisrbmV2ZXIgc3RhcnRzIGB1dXhxdCcsIGFuZCBpbnZv a2UgYHV1eHF0JyBkaXJlY3RseSBmcm9tIGEgYGNyb250YWInIGZpbGUuCisrCisrICAgUGxlYXNl IGxldCBtZSBrbm93IGFib3V0IGFueSBwcm9ibGVtcyB5b3UgaGF2ZSBhbmQgaG93IHlvdSBnb3Qg YXJvdW5kCisrdGhlbS4gIElmIHlvdSBkbyByZXBvcnQgYSBwcm9ibGVtLCBwbGVhc2UgaW5jbHVk ZSB0aGUgdmVyc2lvbiBudW1iZXIgb2YKKyt0aGUgcGFja2FnZSB5b3UgYXJlIHVzaW5nLCB0aGUg b3BlcmF0aW5nIHN5c3RlbSB5b3UgYXJlIHJ1bm5pbmcgaXQgb24sCisrYW5kIGEgc2FtcGxlIG9m IHRoZSBkZWJ1Z2dpbmcgZmlsZSBzaG93aW5nIHRoZSBwcm9ibGVtIChkZWJ1Z2dpbmcKKytpbmZv cm1hdGlvbiBpcyB1c3VhbGx5IHdoYXQgaXMgbmVlZGVkLCBub3QganVzdCB0aGUgbG9nIGZpbGUp LiAgR2VuZXJhbAorK3F1ZXN0aW9ucyBzdWNoIGFzICJ3aHkgZG9lc24ndCBgdXVjaWNvJyBkaWFs IG91dCIgYXJlIGltcG9zc2libGUgdG8KKythbnN3ZXIgd2l0aG91dCBtdWNoIG1vcmUgaW5mb3Jt YXRpb24uCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFVzaW5nIFRheWxvciBVVUNQ LCAgTmV4dDogQ29uZmlndXJhdGlvbiBGaWxlcywgIFByZXY6IEluc3RhbGxpbmcgVGF5bG9yIFVV Q1AsICBVcDogVG9wCisrCisrNCBVc2luZyBUYXlsb3IgVVVDUAorKyoqKioqKioqKioqKioqKioq KioKKysKKysqIE1lbnU6CisrCisrKiBDYWxsaW5nIE90aGVyIFN5c3RlbXM6OiAgICAgICBDYWxs aW5nIE90aGVyIFN5c3RlbXMKKysqIEFjY2VwdGluZyBDYWxsczo6ICAgICAgICAgICAgIEFjY2Vw dGluZyBDYWxscworKyogTWFpbCBhbmQgTmV3czo6ICAgICAgICAgICAgICAgVXNpbmcgVVVDUCBm b3IgTWFpbCBhbmQgTmV3cworKyogVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXQ6OiAgVGhlIFNw b29sIERpcmVjdG9yeSBMYXlvdXQKKysqIFNwb29sIERpcmVjdG9yeSBDbGVhbmluZzo6ICAgIENs ZWFuaW5nIHRoZSBVVUNQIFNwb29sIERpcmVjdG9yeQorKworKx8KKytGaWxlOiB1dWNwLmluZm8s ICBOb2RlOiBDYWxsaW5nIE90aGVyIFN5c3RlbXMsICBOZXh0OiBBY2NlcHRpbmcgQ2FsbHMsICBQ cmV2OiBVc2luZyBUYXlsb3IgVVVDUCwgIFVwOiBVc2luZyBUYXlsb3IgVVVDUAorKworKzQuMSBD YWxsaW5nIE90aGVyIFN5c3RlbXMKKys9PT09PT09PT09PT09PT09PT09PT09PT09CisrCisrQnkg ZGVmYXVsdCBgdXVjcCcgYW5kIGB1dXgnIHdpbGwgYXV0b21hdGljYWxseSBzdGFydCB1cCBgdXVj aWNvJyB0bworK2NhbGwgYW5vdGhlciBzeXN0ZW0gd2hlbmV2ZXIgd29yayBpcyBxdWV1ZWQgdXAu ICBIb3dldmVyLCB0aGUgY2FsbCBtYXkKKytmYWlsLCBvciB5b3UgbWF5IGhhdmUgcHV0IGluIHRp bWUgcmVzdHJpY3Rpb25zIHdoaWNoIHByZXZlbnQgdGhlIGNhbGwKKythdCB0aGF0IHRpbWUgKHBl cmhhcHMgYmVjYXVzZSB0ZWxlcGhvbmUgcmF0ZXMgYXJlIGhpZ2gpICgqbm90ZSBXaGVuIHRvCisr Q2FsbDo6KS4gIEFsc28sIGEgcmVtb3RlIHN5c3RlbSBtYXkgaGF2ZSB3b3JrIHF1ZXVlZCB1cCBm b3IgeW91cgorK3N5c3RlbSwgYnV0IG1heSBub3QgYmUgY2FsbGluZyB5b3UgZm9yIHNvbWUgcmVh c29uIChwZXJoYXBzIHlvdSBoYXZlCisrYWdyZWVkIHRoYXQgeW91ciBzeXN0ZW0gc2hvdWxkIGFs d2F5cyBwbGFjZSB0aGUgY2FsbCkuICBUbyBtYWtlIHN1cmUKKyt0aGF0IHdvcmsgZ2V0cyB0cmFu c2ZlcnJlZCBiZXR3ZWVuIHRoZSBzeXN0ZW1zIHdpdGhpbmcgYSByZWFzb25hYmxlCisrdGltZSBw ZXJpb2QsIHlvdSBzaG91bGQgYXJyYW5nZSB0byBwZXJpb2RpY2FsbHkgaW52b2tlIGB1dWNpY28n LgorKworKyAgIFRoZXNlIHBlcmlvZGljIGludm9jYXRpb25zIGFyZSBub3JtYWxseSB0cmlnZ2Vy ZWQgYnkgZW50cmllcyBpbiB0aGUKKytgY3JvbnRhYicgZmlsZS4gIFRoZSBleGFjdCBmb3JtYXQg b2YgYGNyb250YWInIGZpbGVzLCBhbmQgaG93IG5ldworK2VudHJpZXMgYXJlIGFkZGVkLCB2YXJp ZXMgZnJvbSBzeXN0ZW0gdG8gc3lzdGVtOyBjaGVjayB5b3VyIGxvY2FsCisrZG9jdW1lbnRhdGlv biAodHJ5IGBtYW4gY3JvbicpLgorKworKyAgIFRvIGF0dGVtcHQgdG8gY2FsbCBhbGwgc3lzdGVt cyB3aXRoIG91dHN0YW5kaW5nIHdvcmssIHVzZSB0aGUgY29tbWFuZAorK2B1dWNpY28gLXIxJy4g IFRvIGF0dGVtcHQgdG8gY2FsbCBhIHBhcnRpY3VsYXIgc3lzdGVtLCB1c2UgdGhlIGNvbW1hbmQK KytgdXVjaWNvIC1zIFNZU1RFTScuICBUbyBhdHRlbXB0IHRvIGNhbGwgYSBwYXJ0aWN1bGFyIHN5 c3RlbSwgYnV0IG9ubHkKKytpZiB0aGVyZSBpcyB3b3JrIGZvciBpdCwgdXNlIHRoZSBjb21tYW5k IGB1dWNpY28gLUMgLXMgU1lTVEVNJy4gICgqbm90ZQorK0ludm9raW5nIHV1Y2ljbzo6KS4KKysK KysgICBBIGNvbW1vbiBjYXNlIGlzIHRvIHdhbnQgdG8gdHJ5IHRvIGNhbGwgYSBzeXN0ZW0gYXQg YSBjZXJ0YWluIHRpbWUsCisrd2l0aCBwZXJpb2RpYyByZXRyaWVzIGlmIHRoZSBjYWxsIGZhaWxz LiAgQSBzaW1wbGUgd2F5IHRvIGRvIHRoaXMgaXMgdG8KKytjcmVhdGUgYW4gZW1wdHkgVVVDUCBj b21tYW5kIGZpbGUsIGtub3duIGFzIGEgInBvbGwgZmlsZSIuICBJZiBhIHBvbGwKKytmaWxlIGV4 aXN0cyBmb3IgYSBzeXN0ZW0sIHRoZW4gYHV1Y2ljbyAtcjEnIHdpbGwgcGxhY2UgYSBjYWxsIHRv IGl0LgorK0lmIHRoZSBjYWxsIHN1Y2NlZWRzLCB0aGUgcG9sbCBmaWxlIHdpbGwgYmUgZGVsZXRl ZC4KKysKKysgICBBIHBvbGwgZmlsZSBjYW4gYmUgZWFzaWx5IGNyZWF0ZWQgdXNpbmcgdGhlIGB1 dXgnIGNvbW1hbmQsIGJ5CisrcmVxdWVzdGluZyB0aGUgZXhlY3V0aW9uIG9mIGFuIGVtcHR5IGNv bW1hbmQuICBUbyBjcmVhdGUgYSBwb2xsIGZpbGUgZm9yCisrU1lTVEVNLCBqdXN0IGRvIHNvbWV0 aGluZyBsaWtlIHRoaXM6CisrICAgICB1dXggLXIgU1lTVEVNIQorKyAgIFRoZSBgLXInIHRlbGxz IGB1dXgnIHRvIG5vdCBzdGFydCB1cCBgdXVjaWNvJyBpbW1lZGlhdGVseS4gIE9mCisrY291cnNl LCBpZiB5b3UgZG8gd2FudCBgdXVjaWNvJyB0byBzdGFydCB1cCByaWdodCBhd2F5LCBvbWl0IHRo ZSBgLXInOworK2lmIHRoZSBjYWxsIGZhaWxzLCB0aGUgcG9sbCBmaWxlIHdpbGwgYmUgbGVmdCBh cm91bmQgdG8gY2F1c2UgYSBsYXRlcgorK2NhbGwuCisrCisrICAgRm9yIGV4YW1wbGUsIEkgdXNl IHRoZSBmb2xsb3dpbmcgY3JvbnRhYiBlbnRyaWVzIGxvY2FsbHk6CisrCisrICAgICA0NSAqICog KiAqIC9iaW4vZWNobyAvdXNyL2xpYi91dWNwL3V1Y2ljbyAtcjEgfCAvYmluL3N1IHV1Y3BhCisr ICAgICA0MCA0LDEwLDE1ICogKiAqIC91c3IvYmluL3V1eCAtciB1dW5ldCEKKysKKysgICBFdmVy eSBob3VyLCBhdCA0NSBtaW51dGVzIHBhc3QsIHRoaXMgd2lsbCBjaGVjayBpZiB0aGVyZSBpcyBh bnkgd29yaworK3RvIGJlIGRvbmUsIGFuZCwgaWYgdGhlcmUgaXMsIHdpbGwgY2FsbCB0aGUgYXBw cm9wcmlhdGUgc3lzdGVtLiAgQWxzbywKKythdCA0OjQwYW0sIDEwOjQwYW0sIGFuZCAzOjQwcG0s IHRoaXMgd2lsbCBjcmVhdGUgYSBwb2xsIGZpbGUgZmlsZSBmb3IKKytgdXVuZXQnLCBmb3JjaW5n IHRoZSBuZXh0IHJ1biBvZiBgdXVjaWNvJyB0byBjYWxsIGB1dW5ldCcuCisrCisrHworK0ZpbGU6 IHV1Y3AuaW5mbywgIE5vZGU6IEFjY2VwdGluZyBDYWxscywgIE5leHQ6IE1haWwgYW5kIE5ld3Ms ICBQcmV2OiBDYWxsaW5nIE90aGVyIFN5c3RlbXMsICBVcDogVXNpbmcgVGF5bG9yIFVVQ1AKKysK Kys0LjIgQWNjZXB0aW5nIENhbGxzCisrPT09PT09PT09PT09PT09PT09PQorKworK1RvIGFjY2Vw dCBjYWxscyBmcm9tIGFub3RoZXIgc3lzdGVtLCB5b3UgbXVzdCBhcnJhbmdlIG1hdHRlcnMgc3Vj aCB0aGF0Cisrd2hlbiB0aGF0IHN5c3RlbSBjYWxscyBpbiwgaXQgYXV0b21hdGljYWxseSBpbnZv a2VzIGB1dWNpY28nIG9uIHlvdXIKKytzeXN0ZW0uCisrCisrICAgVGhlIG1vc3QgY29tbW9uIGFy cmFuZ2VtZW50IGlzIHRvIGNyZWF0ZSBhIHNwZWNpYWwgdXNlciBuYW1lIGFuZAorK3Bhc3N3b3Jk IGZvciBpbmNvbWluZyBVVUNQIGNhbGxzLiAgVGhpcyB1c2VyIG5hbWUgdHlwaWNhbGx5IHVzZXMg dGhlCisrc2FtZSB1c2VyIElEIGFzIHRoZSByZWd1bGFyIGB1dWNwJyB1c2VyIChVbml4IHBlcm1p dHMgc2V2ZXJhbCB1c2VyCisrbmFtZXMgdG8gc2hhcmUgdGhlIHNhbWUgdXNlciBJRCkuICBUaGUg c2hlbGwgZm9yIHRoaXMgdXNlciBuYW1lIHNob3VsZAorK2JlIHNldCB0byBgdXVjaWNvJy4KKysK KysgICBIZXJlIGlzIGEgc2FtcGxlIGAvZXRjL3Bhc3N3ZCcgbGluZSB0byBhY2NlcHQgY2FsbHMg ZnJvbSBhIHJlbW90ZQorK3N5c3RlbSBuYW1lZCBhaXJzOgorKyAgICAgVWFpcnM6UEFTU1dPUkQ6 NDo4OmFpcnMgVVVDUDovdXNyL3Nwb29sL3V1Y3A6L3Vzci9saWIvdXVjcC91dWNpY28KKysgICBU aGUgZGV0YWlscyBtYXkgdmFyeSBvbiB5b3VyIHN5c3RlbS4gIFlvdSBtdXN0IHVzZSByZWFzb25h YmxlIHVzZXIKKythbmQgZ3JvdXAgSUQncy4gIFlvdSBtdXN0IHVzZSB0aGUgY29ycmVjdCBmaWxl IG5hbWUgZm9yIGB1dWNpY28nLiAgVGhlCisrUEFTU1dPUkQgbXVzdCBhcHBlYXIgaW4gdGhlIFVV Q1AgY29uZmlndXJhdGlvbiBmaWxlcyBvbiB0aGUgcmVtb3RlCisrc3lzdGVtLCBidXQgd2lsbCBv dGhlcndpc2UgbmV2ZXIgYmUgc2VlbiBvciB0eXBlZCBieSBhIGh1bWFuLgorKworKyAgIE5vdGUg dGhhdCBgdXVjaWNvJyBhcHBlYXJzIGFzIHRoZSBsb2dpbiBzaGVsbCwgYW5kIHRoYXQgaXQgd2ls bCBiZQorK3J1biB3aXRoIG5vIGFyZ3VtZW50cy4gIFRoaXMgbWVhbnMgdGhhdCBpdCB3aWxsIHN0 YXJ0IGluIHNsYXZlIG1vZGUgYW5kCisrYWNjZXB0IGFuIGluY29taW5nIGNvbm5lY3Rpb24uICAq Tm90ZSBJbnZva2luZyB1dWNpY286Oi4KKysKKysgICBPbiBzb21lIHN5c3RlbXMsIGNyZWF0aW5n IGFuIGVtcHR5IGZpbGUgbmFtZWQgYC5odXNobG9naW4nIGluIHRoZQorK2hvbWUgZGlyZWN0b3J5 IHdpbGwgc2tpcCB0aGUgcHJpbnRpbmcgb2YgdmFyaW91cyBiaXRzIG9mIGluZm9ybWF0aW9uCisr d2hlbiB0aGUgcmVtb3RlIGB1dWNpY28nIGxvZ3MgaW4sIHNwZWVkaW5nIHVwIHRoZSBVVUNQIGNv bm5lY3Rpb24KKytwcm9jZXNzLgorKworKyAgIEZvciB0aGUgZ3JlYXRlc3Qgc2VjdXJpdHksIGVh Y2ggc3lzdGVtIHdoaWNoIGNhbGxzIGluIHNob3VsZCB1c2UgYQorK2RpZmZlcmVudCB1c2VyIG5h bWUsIGVhY2ggd2l0aCBhIGRpZmZlcmVudCBwYXNzd29yZCwgYW5kIHRoZQorK2BjYWxsZWQtbG9n aW4nIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgaW4gdGhlIGBzeXMnIGZpbGUgdG8gZW5zdXJlIHRo YXQKKyt0aGUgY29ycmVjdCBsb2dpbiBuYW1lIGlzIHVzZWQuICAqTm90ZSBBY2NlcHRpbmcgYSBD YWxsOjosIGFuZCBzZWUKKysqbm90ZSBTZWN1cml0eTo6LgorKworKyAgIElmIHlvdSBuZXZlciBu ZWVkIHRvIGRpYWwgb3V0IGZyb20geW91ciBzeXN0ZW0sIGJ1dCBvbmx5IGFjY2VwdAorK2luY29t aW5nIGNhbGxzLCB5b3UgY2FuIGFycmFuZ2UgZm9yIGB1dWNpY28nIHRvIGhhbmRsZSBsb2dpbnMg aXRzZWxmLAorK2NvbXBsZXRlbHkgY29udHJvbGxpbmcgdGhlIHBvcnQsIGJ5IHVzaW5nIHRoZSBg LS1lbmRsZXNzJyBvcHRpb24uCisrKk5vdGUgSW52b2tpbmcgdXVjaWNvOjouCisrCisrHworK0Zp bGU6IHV1Y3AuaW5mbywgIE5vZGU6IE1haWwgYW5kIE5ld3MsICBOZXh0OiBUaGUgU3Bvb2wgRGly ZWN0b3J5IExheW91dCwgIFByZXY6IEFjY2VwdGluZyBDYWxscywgIFVwOiBVc2luZyBUYXlsb3Ig VVVDUAorKworKzQuMyBVc2luZyBVVUNQIGZvciBNYWlsIGFuZCBOZXdzLgorKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKworK1RheWxvciBVVUNQIGRvZXMgbm90IGluY2x1ZGUg YSBtYWlsIHBhY2thZ2UuICBBbGwgVW5peCBzeXN0ZW1zIGNvbWUgd2l0aAorK3NvbWUgc29ydCBv ZiBtYWlsIGRlbGl2ZXJ5IGFnZW50LCB0eXBpY2FsbHkgYHNlbmRtYWlsJyBvciBgTU1ERicuCisr U291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGZvciBzb21lIGFsdGVybmF0aXZlIG1haWwgZGVsaXZl cnkgYWdlbnRzLAorK3N1Y2ggYXMgYElEQSBzZW5kbWFpbCcgYW5kIGBzbWFpbCcuCisrCisrICAg VGF5bG9yIFVVQ1AgYWxzbyBkb2VzIG5vdCBpbmNsdWRlIGEgbmV3cyBwYWNrYWdlLiAgVGhlIHR3 byBtYWpvciBVbml4CisrbmV3cyBwYWNrYWdlcyBhcmUgYEMtbmV3cycgYW5kIGBJTk4nLiAgQm90 aCBhcmUgYXZhaWxhYmxlIGluIHNvdXJjZQorK2NvZGUgZm9ybS4KKysKKysgICBDb25maWd1cmlu ZyBhbmQgdXNpbmcgbWFpbCBkZWxpdmVyeSBhZ2VudHMgaXMgYSBub3RvcmlvdXNseSBjb21wbGV4 CisrdG9waWMsIGFuZCBJIHdpbGwgbm90IGJlIGRpc2N1c3NpbmcgaXQgaGVyZS4gIENvbmZpZ3Vy aW5nIG5ld3Mgc3lzdGVtcworK2lzIHVzdWFsbHkgc2ltcGxlciwgYnV0IEkgd2lsbCBub3QgYmUg ZGlzY3Vzc2luZyB0aGF0IGVpdGhlci4gIEkgd2lsbAorK21lcmVseSBkZXNjcmliZSB0aGUgaW50 ZXJhY3Rpb25zIGJldHdlZW4gdGhlIG1haWwgYW5kIG5ld3Mgc3lzdGVtcyBhbmQKKytVVUNQLgor KworKyAgIEEgbWFpbCBvciBuZXdzIHN5c3RlbSBpbnRlcmFjdHMgd2l0aCBVVUNQIGluIHR3byB3 YXlzOiBzZW5kaW5nIGFuZAorK3JlY2VpdmluZy4KKysKKysqIE1lbnU6CisrCisrKiBTZW5kaW5n IG1haWwgb3IgbmV3czo6ICAgICAgICBTZW5kaW5nIG1haWwgb3IgbmV3cyB2aWEgVVVDUAorKyog UmVjZWl2aW5nIG1haWwgb3IgbmV3czo6ICAgICAgUmVjZWl2aW5nIG1haWwgb3IgbmV3cyB2aWEg VVVDUAorKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBTZW5kaW5nIG1haWwgb3IgbmV3 cywgIE5leHQ6IFJlY2VpdmluZyBtYWlsIG9yIG5ld3MsICBQcmV2OiBNYWlsIGFuZCBOZXdzLCAg VXA6IE1haWwgYW5kIE5ld3MKKysKKys0LjMuMSBTZW5kaW5nIG1haWwgb3IgbmV3cyB2aWEgVVVD UAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrV2hlbiBtYWlsIGlz IHRvIGJlIHNlbnQgZnJvbSB5b3VyIG1hY2hpbmUgdG8gYW5vdGhlciBtYWNoaW5lIHZpYSBVVUNQ LAorK3RoZSBtYWlsIGRlbGl2ZXJ5IGFnZW50IHdpbGwgaW52b2tlIGB1dXgnLiAgSXQgd2lsbCBn ZW5lcmFsbHkgcnVuIGEKKytjb21tYW5kIHN1Y2ggYXMgYHV1eCAtIFNZU1RFTSFybWFpbCBBRERS RVNTJywgd2hlcmUgU1lTVEVNIGlzIHRoZQorK3JlbW90ZSBzeXN0ZW0gdG8gd2hpY2ggdGhlIG1h aWwgaXMgYmVpbmcgc2VudC4gIEl0IG1heSBwYXNzIG90aGVyCisrb3B0aW9ucyB0byBgdXV4Jywg c3VjaCBhcyBgLXInIG9yIGAtZycgKCpub3RlIEludm9raW5nIHV1eDo6KS4KKysKKysgICBUaGUg bmV3cyBzeXN0ZW0gYWxzbyBpbnZva2VzIGB1dXgnIGluIG9yZGVyIHRvIHRyYW5zZmVyIGFydGlj bGVzIHRvCisrYW5vdGhlciBzeXN0ZW0uICBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgbmV3 cyB3aWxsIHVzZSBgdXV4JyB0bworK2ludm9rZSBgcm5ld3MnIG9uIHRoZSByZW1vdGUgc3lzdGVt LCByYXRoZXIgdGhhbiBgcm1haWwnLgorKworKyAgIFlvdSBzaG91bGQgYXJyYW5nZSBmb3IgeW91 ciBtYWlsIGFuZCBuZXdzIHN5c3RlbXMgdG8gaW52b2tlIHRoZQorK1RheWxvciBVVUNQIHZlcnNp b24gb2YgYHV1eCcuICBJZiB5b3Ugb25seSBoYXZlIFRheWxvciBVVUNQLCBvciBpZiB5b3UKKytz aW1wbHkgcmVwbGFjZSBhbnkgZXhpc3RpbmcgdmVyc2lvbiBvZiBgdXV4JyB3aXRoIHRoZSBUYXls b3IgVVVDUAorK3ZlcnNpb24sIHRoaXMgd2lsbCBwcm9iYWJseSBoYXBwZW4gYXV0b21hdGljYWxs eS4gIEhvd2V2ZXIsIGlmIHlvdSBoYXZlCisrdHdvIFVVQ1AgcGFja2FnZXMgaW5zdGFsbGVkIG9u IHlvdXIgc3lzdGVtLCB5b3Ugd2lsbCBwcm9iYWJseSBoYXZlIHRvCisrbW9kaWZ5IHRoZSBtYWls IGFuZCBuZXdzIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gc29tZSB3YXkuCisrCisrICAgQWN0dWFs bHksIGlmIGJvdGggdGhlIHN5c3RlbSBVVUNQIGFuZCBUYXlsb3IgVVVDUCBhcmUgdXNpbmcgdGhl IHNhbWUKKytzcG9vbCBkaXJlY3RvcnkgZm9ybWF0LCB0aGUgc3lzdGVtIGB1dXgnIHdpbGwgcHJv YmFibHkgd29yayBmaW5lIHdpdGgKKyt0aGUgVGF5bG9yIGB1dWNpY28nICh0aGUgcmV2ZXJzZSBp cyBub3QgdGhlIGNhc2U6IHRoZSBUYXlsb3IgYHV1eCcKKytyZXF1aXJlcyB0aGUgVGF5bG9yIGB1 dWNpY28nKS4gIEhvd2V2ZXIsIGRhdGEgdHJhbnNmZXIgd2lsbCBiZSBzb21ld2hhdAorK21vcmUg ZWZmaWNpZW50IGlmIHRoZSBUYXlsb3IgYHV1eCcgaXMgdXNlZC4KKysKKysfCisrRmlsZTogdXVj cC5pbmZvLCAgTm9kZTogUmVjZWl2aW5nIG1haWwgb3IgbmV3cywgIFByZXY6IFNlbmRpbmcgbWFp bCBvciBuZXdzLCAgVXA6IE1haWwgYW5kIE5ld3MKKysKKys0LjMuMiBSZWNlaXZpbmcgbWFpbCBv ciBuZXdzIHZpYSBVVUNQCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KworK1RvIHJlY2VpdmUgbWFpbCwgYWxsIHRoYXQgaXMgbmVjZXNzYXJ5IGlzIGZvciBVVUNQIHRv IGludm9rZSBgcm1haWwnLgorK0FueSBtYWlsIGRlbGl2ZXJ5IGFnZW50IHdpbGwgcHJvdmlkZSBh biBhcHByb3ByaWF0ZSB2ZXJzaW9uIG9mIGBybWFpbCc7CisreW91IG11c3Qgc2ltcGx5IG1ha2Ug c3VyZSB0aGF0IGl0IGlzIGluIHRoZSBjb21tYW5kIHBhdGggdXNlZCBieSBVVUNQCisrKGl0IGFs bW9zdCBjZXJ0YWlubHkgYWxyZWFkeSBpcykuICBUaGUgZGVmYXVsdCBjb21tYW5kIHBhdGggaXMg c2V0IGluCisrYHBvbGljeS5oJywgYW5kIGl0IG1heSBiZSBvdmVycmlkZGVuIGZvciBhIHBhcnRp Y3VsYXIgc3lzdGVtIGJ5IHRoZQorK2Bjb21tYW5kLXBhdGgnIGNvbW1hbmQgKCpub3RlIE1pc2Nl bGxhbmVvdXMgKHN5cyk6OikuCisrCisrICAgU2ltaWxhcmx5LCBmb3IgbmV3cyBVVUNQIG11c3Qg YmUgYWJsZSB0byBpbnZva2UgYHJuZXdzJy4gIEFueSBuZXdzCisrc3lzdGVtIHdpbGwgcHJvdmlk ZSBhIHZlcnNpb24gb2YgYHJuZXdzJywgYW5kIHlvdSBtdXN0IGVuc3VyZSB0aGF0IGlzCisraW4g YSBkaXJlY3Rvcnkgb24gdGhlIHBhdGggdGhhdCBVVUNQIHdpbGwgc2VhcmNoLgorKworKx8KKytG aWxlOiB1dWNwLmluZm8sICBOb2RlOiBUaGUgU3Bvb2wgRGlyZWN0b3J5IExheW91dCwgIE5leHQ6 IFNwb29sIERpcmVjdG9yeSBDbGVhbmluZywgIFByZXY6IE1haWwgYW5kIE5ld3MsICBVcDogVXNp bmcgVGF5bG9yIFVVQ1AKKysKKys0LjQgVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXQKKys9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKytJbiBnZW5lcmFsLCB0aGUgbGF5b3V0IG9m IHRoZSBzcG9vbCBkaXJlY3RvcnkgbWF5IGJlIHNhZmVseSBpZ25vcmVkLgorK0hvd2V2ZXIsIGl0 IGlzIGRvY3VtZW50ZWQgaGVyZSBmb3IgdGhlIGN1cmlvdXMuICBUaGlzIGRlc2NyaXB0aW9uIG9u bHkKKytjb3ZlcnMgdGhlIGBTUE9PTERJUl9UQVlMT1InIGxheW91dC4gIFRoZSB3YXlzIGluIHdo aWNoIHRoZSBvdGhlciBzcG9vbAorK2RpcmVjdG9yeSBsYXlvdXRzIGRpZmZlciBhcmUgZGVzY3Jp YmVkIGluIHRoZSBzb3VyY2UgZmlsZQorK2B1bml4L3Nwb29sLmMnLgorKworKyAgIERpcmVjdG9y aWVzIGFuZCBmaWxlcyBhcmUgb25seSBjcmVhdGVkIHdoZW4gdGhleSBhcmUgbmVlZGVkLCBzbyBh CisrdHlwaWNhbCBzeXN0ZW0gd2lsbCBub3QgaGF2ZSBhbGwgb2YgdGhlIGVudHJpZXMgZGVzY3Jp YmVkIGhlcmUuCisrCisrKiBNZW51OgorKworKyogU3lzdGVtIFNwb29sIERpcmVjdG9yaWVzOjog ICAgU3lzdGVtIFNwb29sIERpcmVjdG9yaWVzCisrKiBTdGF0dXMgRGlyZWN0b3J5OjogICAgICAg ICAgICBTdGF0dXMgU3Bvb2wgRGlyZWN0b3J5CisrKiBFeGVjdXRpb24gU3ViZGlyZWN0b3JpZXM6 OiAgICBFeGVjdXRpb24gU3Bvb2wgU3ViZGlyZWN0b3JpZXMKKysqIE90aGVyIFNwb29sIFN1YmRp cmVjdG9yaWVzOjogIE90aGVyIFNwb29sIFN1YmRpcmVjdG9yaWVzCisrKiBTcG9vbCBMb2NrIEZp bGVzOjogICAgICAgICAgICBTcG9vbCBEaXJlY3RvcnkgTG9jayBGaWxlcworKworKx8KKytGaWxl OiB1dWNwLmluZm8sICBOb2RlOiBTeXN0ZW0gU3Bvb2wgRGlyZWN0b3JpZXMsICBOZXh0OiBTdGF0 dXMgRGlyZWN0b3J5LCAgUHJldjogVGhlIFNwb29sIERpcmVjdG9yeSBMYXlvdXQsICBVcDogVGhl IFNwb29sIERpcmVjdG9yeSBMYXlvdXQKKysKKys0LjQuMSBTeXN0ZW0gU3Bvb2wgRGlyZWN0b3Jp ZXMKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytgU1lTVEVNJworKyAgICAg VGhlcmUgaXMgYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIG1haW4gc3Bvb2wgZGlyZWN0b3J5IGZvciBl YWNoIHJlbW90ZQorKyAgICAgc3lzdGVtLgorKworK2BTWVNURU0vQy4nCisrICAgICBUaGlzIGRp cmVjdG9yeSBzdG9yZXMgZmlsZXMgZGVzY3JpYmluZyBmaWxlIHRyYW5zZmVyIGNvbW1hbmRzIHRv CisrICAgICBiZSBzZW50IHRvIHRoZSBTWVNURU0uICBFYWNoIGZpbGUgbmFtZSBzdGFydHMgd2l0 aCBgQy5HJywgd2hlcmUgRworKyAgICAgaXMgdGhlIGpvYiBncmFkZS4gIEVhY2ggZmlsZSBjb250 YWlucyBvbmUgb3IgbW9yZSBjb21tYW5kcy4gIEZvcgorKyAgICAgZGV0YWlscyBvZiB0aGUgY29t bWFuZHMsIHNlZSAqbm90ZSBVVUNQIFByb3RvY29sIENvbW1hbmRzOjouCisrCisrYFNZU1RFTS9E LicKKysgICAgIFRoaXMgZGlyZWN0b3J5IHN0b3JlcyBkYXRhIGZpbGVzLiAgRmlsZXMgd2l0aCBu YW1lcyBsaWtlCisrICAgICBgRC5HU1NTUycsIHdoZXJlIEcgaXMgdGhlIGdyYWRlIGFuZCBTU1NT IGlzIGEgc2VxdWVuY2UgbnVtYmVyLCBhcmUKKysgICAgIHdhaXRpbmcgdG8gYmUgdHJhbnNmZXJy ZWQgdG8gdGhlIFNZU1RFTSwgYXMgZGlyZWN0ZWQgYnkgdGhlIGZpbGVzCisrICAgICBpbiB0aGUg YFNZU1RFTS9DLicgZGlyZWN0b3J5LiAgRmlsZXMgd2l0aCBvdGhlciBuYW1lcywgdHlwaWNhbGx5 CisrICAgICBgRC5TWVNURU1HU1NTUycsIGhhdmUgYmVlbiByZWNlaXZlZCBmcm9tIFNZU1RFTSBh bmQgYXJlIHdhaXRpbmcgdG8KKysgICAgIGJlIHByb2Nlc3NlZCBieSBhbiBleGVjdXRpb24gZmls ZSBpbiB0aGUgYFNZU1RFTS9YLicgZGlyZWN0b3J5LgorKworK2BTWVNURU0vRC5YJworKyAgICAg VGhpcyBkaXJlY3Rvcnkgc3RvcmVzIGRhdGEgZmlsZXMgd2hpY2ggd2lsbCBiZWNvbWUgZXhlY3V0 aW9uIGZpbGVzCisrICAgICBvbiB0aGUgcmVtb3RlIHN5c3RlbS4gIEluIGN1cnJlbnQgcHJhY3Rp Y2UsIHRoaXMgZGlyZWN0b3J5IHJhcmVseQorKyAgICAgZXhpc3RzLCBiZWNhdXNlIG1vc3Qgc2lt cGxlIGV4ZWN1dGlvbnMsIGluY2x1ZGluZyB0eXBpY2FsIHVzZXMgb2YKKysgICAgIGBybWFpbCcg YW5kIGBybmV3cycsIHNlbmQgYW4gYEUnIGNvbW1hbmQgcmF0aGVyIHRoYW4gYW4gZXhlY3V0aW9u CisrICAgICBmaWxlICgqbm90ZSBUaGUgRSBDb21tYW5kOjopLgorKworK2BTWVNURU0vWC4nCisr ICAgICBUaGlzIGRpcmVjdG9yeSBzdG9yZXMgZXhlY3V0aW9uIGZpbGVzIHdoaWNoIGhhdmUgYmVl biByZWNlaXZlZCBmcm9tCisrICAgICBTWVNURU0uICBUaGlzIGRpcmVjdG9yeSBub3JtYWxseSBl eGlzdHMsIGV2ZW4gdGhvdWdoIHRoZQorKyAgICAgY29ycmVzcG9uZGluZyBgRC5YJyBkaXJlY3Rv cnkgZG9lcyBub3QsIGJlY2F1c2UgYHV1Y2ljbycgd2lsbAorKyAgICAgY3JlYXRlIGFuIGV4ZWN1 dGlvbiBmaWxlIG9uIHRoZSBmbHkgd2hlbiBpdCByZWNlaXZlcyBhbiBgRScKKysgICAgIGNvbW1h bmQuCisrCisrYFNZU1RFTS9TRVFGJworKyAgICAgVGhpcyBmaWxlIGhvbGRzIHRoZSBzZXF1ZW5j ZSBudW1iZXIgb2YgdGhlIGxhc3Qgam9iIHNlbnQgdG8KKysgICAgIFNZU1RFTS4gIFRoZSBzZXF1 ZW5jZSBudW1iZXIgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCBmaWxlIG5hbWVzIGFyZQorKyAgICAg dW5pcXVlIGluIHRoZSByZW1vdGUgc3lzdGVtIHNwb29sIGRpcmVjdG9yeS4gIFRoZSBmaWxlIGlz IGZvdXIKKysgICAgIGJ5dGVzIGxvbmcuICBTZXF1ZW5jZSBudW1iZXJzIGFyZSBjb21wb3NlZCBv ZiBkaWdpdHMgYW5kIHRoZSB1cHBlcgorKyAgICAgY2FzZSBsZXR0ZXJzLgorKworKx8KKytGaWxl OiB1dWNwLmluZm8sICBOb2RlOiBTdGF0dXMgRGlyZWN0b3J5LCAgTmV4dDogRXhlY3V0aW9uIFN1 YmRpcmVjdG9yaWVzLCAgUHJldjogU3lzdGVtIFNwb29sIERpcmVjdG9yaWVzLCAgVXA6IFRoZSBT cG9vbCBEaXJlY3RvcnkgTGF5b3V0CisrCisrNC40LjIgU3RhdHVzIERpcmVjdG9yeQorKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysKKytgLlN0YXR1cycKKysgICAgIFRoaXMgZGlyZWN0b3J5IGhv bGRzIHN0YXR1cyBmaWxlcyBmb3IgZWFjaCByZW1vdGUgc3lzdGVtLiAgVGhlCisrICAgICBuYW1l IG9mIHRoZSBzdGF0dXMgZmlsZSBpcyB0aGUgbmFtZSBvZiB0aGUgc3lzdGVtIHdoaWNoIGl0Cisr ICAgICBkZXNjcmliZXMuICBFYWNoIHN0YXR1cyBmaWxlIGRlc2NyaWJlcyB0aGUgbGFzdCBjb252 ZXJzYXRpb24gd2l0aAorKyAgICAgdGhlIHN5c3RlbS4gIFJ1bm5pbmcgYHV1c3RhdCAtLXN0YXR1 cycgYmFzaWNhbGx5IGp1c3QgZm9ybWF0cyBhbmQKKysgICAgIHByaW50cyB0aGUgY29udGVudHMg b2YgdGhlIHN0YXR1cyBmaWxlcyAoKm5vdGUgdXVzdGF0IEV4YW1wbGVzOjopLgorKworKyAgICAg RWFjaCBzdGF0dXMgZmlsZSBoYXMgYSBzaW5nbGUgdGV4dCBsaW5lIHdpdGggc2l4IGZpZWxkcy4K KysKKysgICAgY29kZQorKyAgICAgICAgICBBIGNvZGUgaW5kaWNhdGluZyB0aGUgc3RhdHVzIG9m IHRoZSBsYXN0IGNvbnZlcnNhdGlvbi4gIFRoZQorKyAgICAgICAgICBmb2xsb3dpbmcgdmFsdWVz IGFyZSBkZWZpbmVkLCB0aG91Z2ggbm90IGFsbCBhcmUgYWN0dWFsbHkKKysgICAgICAgICAgdXNl ZC4KKysgICAgICAgICBgMCcKKysgICAgICAgICAgICAgICBDb252ZXJzYXRpb24gY29tcGxldGVk IG5vcm1hbGx5LgorKworKyAgICAgICAgIGAxJworKyAgICAgICAgICAgICAgIGB1dWNpY28nIHdh cyB1bmFibGUgdG8gb3BlbiB0aGUgcG9ydC4KKysKKysgICAgICAgICBgMicKKysgICAgICAgICAg ICAgICBUaGUgbGFzdCBjYWxsIHRvIHRoZSBzeXN0ZW0gZmFpbGVkIHdoaWxlIGRhaWxpbmcuCisr CisrICAgICAgICAgYDMnCisrICAgICAgICAgICAgICAgVGhlIGxhc3QgY2FsbCB0byB0aGUgc3lz dGVtIGZhaWxlZCB3aGlsZSBsb2dnaW5nIGluLgorKworKyAgICAgICAgIGA0JworKyAgICAgICAg ICAgICAgIFRoZSBsYXN0IGNhbGwgdG8gdGhlIHN5c3RlbSBmYWlsZWQgZHVyaW5nIHRoZSBpbml0 aWFsCisrICAgICAgICAgICAgICAgVVVDUCBwcm90b2NvbCBoYW5kc2hha2UgKCpub3RlIFRoZSBJ bml0aWFsIEhhbmRzaGFrZTo6KS4KKysKKysgICAgICAgICBgNScKKysgICAgICAgICAgICAgICBU aGUgbGFzdCBjYWxsIHRvIHRoZSBzeXN0ZW0gZmFpbGVkIGFmdGVyIHRoZSBpbml0aWFsCisrICAg ICAgICAgICAgICAgaGFuZHNoYWtlLgorKworKyAgICAgICAgIGA2JworKyAgICAgICAgICAgICAg IGB1dWNpY28nIGlzIGN1cnJlbnRseSB0YWxraW5nIHRvIHRoZSBzeXN0ZW0uCisrCisrICAgICAg ICAgYDcnCisrICAgICAgICAgICAgICAgVGhlIGxhc3QgY2FsbCB0byB0aGUgc3lzdGVtIGZhaWxl ZCBiZWNhdXNlIGl0IHdhcyB0aGUKKysgICAgICAgICAgICAgICB3cm9uZyB0aW1lIHRvIGNhbGwg KHRoaXMgaXMgbm90IHVzZWQgaWYgY2FsbGluZyB0aGUKKysgICAgICAgICAgICAgICBzeXN0ZW0g aXMgbmV2ZXIgcGVybWl0dGVkKS4KKysKKysgICAgcmV0cmllcworKyAgICAgICAgICBUaGUgbnVt YmVyIG9mIHJldHJpZXMgc2luY2UgdGhlIGxhc3Qgc3VjY2Vzc2Z1bCBjYWxsLgorKworKyAgICB0 aW1lIG9mIGxhc3QgY2FsbAorKyAgICAgICAgICBUaGUgdGltZSBvZiB0aGUgbGFzdCBjYWxsLCBp biBzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCAoYXMKKysgICAgICAgICAgcmV0dXJuZWQgYnkgdGhl IGB0aW1lJyBzeXN0ZW0gY2FsbCkuCisrCisrICAgIHdhaXQKKysgICAgICAgICAgSWYgdGhlIGxh c3QgY2FsbCBmYWlsZWQsIHRoaXMgaXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlCisrICAg ICAgICAgIHRoZSBsYXN0IGNhbGwgYmVmb3JlIGB1dWNpY28nIG1heSBhdHRlbXB0IGFub3RoZXIg Y2FsbC4gIFRoaXMKKysgICAgICAgICAgaXMgc2V0IGJhc2VkIG9uIHRoZSByZXRyeSB0aW1lOyBz ZWUgKm5vdGUgV2hlbiB0byBDYWxsOjouCisrICAgICAgICAgIFRoZSBgLWYnIG9yIGAtUycgb3B0 aW9ucyB0byBgdXVjaWNvJyBkaXJlY3QgaXQgdG8gaWdub3JlIHRoaXMKKysgICAgICAgICAgd2Fp dCB0aW1lOyBzZWUgKm5vdGUgSW52b2tpbmcgdXVjaWNvOjouCisrCisrICAgIGRlc2NyaXB0aW9u CisrICAgICAgICAgIEEgdGV4dCBkZXNjcmlwdGlvbiBvZiB0aGUgc3RhdHVzLCBjb3JyZXNwb25k aW5nIHRvIHRoZSBjb2RlCisrICAgICAgICAgIGluIHRoZSBmaXJzdCBmaWVsZC4gIFRoaXMgbWF5 IGNvbnRhaW4gc3BhY2VzLgorKworKyAgICBzeXN0ZW0gbmFtZQorKyAgICAgICAgICBUaGUgbmFt ZSBvZiB0aGUgcmVtb3RlIHN5c3RlbS4KKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTog RXhlY3V0aW9uIFN1YmRpcmVjdG9yaWVzLCAgTmV4dDogT3RoZXIgU3Bvb2wgU3ViZGlyZWN0b3Jp ZXMsICBQcmV2OiBTdGF0dXMgRGlyZWN0b3J5LCAgVXA6IFRoZSBTcG9vbCBEaXJlY3RvcnkgTGF5 b3V0CisrCisrNC40LjMgRXhlY3V0aW9uIFN1YmRpcmVjdG9yaWVzCisrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrCisrYC5YcXRkaXInCisrICAgICBXaGVuIGB1dXhxdCcgZXhlY3V0 ZXMgYSBqb2IgcmVxdWVzdGVkIGJ5IGB1dXgnLCBpdCBmaXJzdCBjaGFuZ2VzCisrICAgICB0aGUg d29ya2luZyBkaXJlY3RvcnkgdG8gdGhlIGAuWHF0ZGlyJyBzdWJkaXJlY3RvcnkuICBUaGlzIHBl cm1pdHMKKysgICAgIHRoZSBqb2IgdG8gY3JlYXRlIGFueSBzb3J0IG9mIHRlbXBvcmFyeSBmaWxl IHdpdGhvdXQgd29ycnlpbmcKKysgICAgIGFib3V0IG92ZXJ3cml0aW5nIG90aGVyIGZpbGVzIGlu IHRoZSBzcG9vbCBkaXJlY3RvcnkuICBBbnkgZmlsZXMKKysgICAgIGxlZnQgaW4gdGhlIGAuWHF0 ZGlyJyBzdWJkaXJlY3RvcnkgYXJlIHJlbW92ZWQgYWZ0ZXIgZWFjaAorKyAgICAgZXhlY3V0aW9u IGlzIGNvbXBsZXRlLgorKworK2AuWHF0ZGlyTk5OTicKKysgICAgIFdoZW4gc2V2ZXJhbCBpbnN0 YW5jZXMgb2YgYHV1eHF0JyBhcmUgZXhlY3V0aW5nIHNpbXVsdGFuZW91c2x5LAorKyAgICAgZWFj aCBvbmUgZXhlY3V0ZXMgam9icyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeS4gIFRoZSBmaXJzdCB1 c2VzCisrICAgICBgLlhxdGRpcicsIHRoZSBzZWNvbmQgdXNlcyBgLlhxdGRpcjAwMDEnLCB0aGUg dGhpcmQgdXNlcworKyAgICAgYC5YcXRkaXIwMDAyJywgYW5kIHNvIGZvcnRoLgorKworK2AuQ29y cnVwdCcKKysgICAgIElmIGB1dXhxdCcgZW5jb3VudGVycyBhbiBleGVjdXRpb24gZmlsZSB3aGlj aCBpdCBpcyB1bmFibGUgdG8KKysgICAgIHBhcnNlLCBpdCBzYXZlcyBpdCBpbiB0aGUgYC5Db3Jy dXB0JyBkaXJlY3RvcnksIGFuZCBzZW5kcyBtYWlsCisrICAgICBhYm91dCBpdCB0byB0aGUgVVVD UCBhZG1pbmlzdHJhdG9yLgorKworK2AuRmFpbGVkJworKyAgICAgSWYgYHV1eHF0JyBleGVjdXRl cyBhIGpvYiwgYW5kIHRoZSBqb2IgZmFpbHMsIGFuZCB0aGVyZSBpcyBlbm91Z2gKKysgICAgIGRp c2sgc3BhY2UgdG8gaG9sZCB0aGUgY29tbWFuZCBmaWxlIGFuZCBhbGwgdGhlIGRhdGEgZmlsZXMs IHRoZW4KKysgICAgIGB1dXhxdCcgc2F2ZXMgdGhlIGZpbGVzIGluIHRoZSBgLkZhaWxlZCcgZGly ZWN0b3J5LCBhbmQgc2VuZHMgbWFpbAorKyAgICAgYWJvdXQgaXQgdG8gdGhlIFVVQ1AgYWRtaW5p c3RyYXRvci4KKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogT3RoZXIgU3Bvb2wgU3Vi ZGlyZWN0b3JpZXMsICBOZXh0OiBTcG9vbCBMb2NrIEZpbGVzLCAgUHJldjogRXhlY3V0aW9uIFN1 YmRpcmVjdG9yaWVzLCAgVXA6IFRoZSBTcG9vbCBEaXJlY3RvcnkgTGF5b3V0CisrCisrNC40LjQg T3RoZXIgU3Bvb2wgU3ViZGlyZWN0b3JpZXMKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKworK2AuU2VxdWVuY2UnCisrICAgICBUaGlzIGRpcmVjdG9yeSBob2xkcyBjb252ZXJz YXRpb24gc2VxdWVuY2UgbnVtYmVyIGZpbGVzLiAgVGhlc2UKKysgICAgIGFyZSB1c2VkIGlmIHRo ZSBgc2VxdWVuY2UnIGNvbW1hbmQgaXMgdXNlZCBmb3IgYSBzeXN0ZW0gKCpub3RlCisrICAgICBN aXNjZWxsYW5lb3VzIChzeXMpOjopLiAgVGhlIHNlcXVlbmNlIG51bWJlciBmb3IgdGhlIHN5c3Rl bSBTWVNURU0KKysgICAgIGlzIHN0b3JlZCBpbiB0aGUgZmlsZSBgLlNlcXVlbmNlL1NZU1RFTScu ICBJdCBpcyBzaW1wbHkgc3RvcmVkIGFzCisrICAgICBhIHByaW50YWJsZSBudW1iZXIuCisrCisr YC5UZW1wJworKyAgICAgVGhpcyBkaXJlY3RvcnkgaG9sZHMgZGF0YSBmaWxlcyBhcyB0aGV5IGFy ZSBiZWluZyByZWNlaXZlZCBmcm9tIGEKKysgICAgIHJlbW90ZSBzeXN0ZW0sIGJlZm9yZSB0aGV5 IGFyZSBtb3ZlZCB0byB0aGVpciBmaW5hbCBkZXN0aW5hdGlvbi4KKysgICAgIEZvciBmaWxlIHNl bmQgcmVxdWVzdHMgd2hpY2ggdXNlIGEgdmFsaWQgdGVtcG9yYXJ5IGZpbGUgbmFtZSBpbgorKyAg ICAgdGhlIFRFTVAgZmllbGQgb2YgdGhlIGBTJyBvciBgRScgY29tbWFuZCAoKm5vdGUgVGhlIFMg Q29tbWFuZDo6KSwKKysgICAgIGB1dWNpY28nIHJlY2VpdmVzIHRoZSBmaWxlIGludG8gYC5UZW1w L1NZU1RFTS9URU1QJywgd2hlcmUgU1lTVEVNCisrICAgICBpcyB0aGUgbmFtZSBvZiB0aGUgcmVt b3RlIHN5c3RlbSwgYW5kIFRFTVAgaXMgdGhlIHRlbXBvcmFyeSBmaWxlCisrICAgICBuYW1lLiAg SWYgYSBjb252ZXJzYXRpb24gZmFpbHMgZHVyaW5nIGEgZmlsZSB0cmFuc2ZlciwgdGhlc2UgZmls ZXMKKysgICAgIGFyZSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgcmVzdGFydCB0aGUgZmlsZSB0cmFu c2ZlciBmcm9tIHRoZSBwb2ludAorKyAgICAgb2YgZmFpbHVyZS4KKysKKysgICAgIElmIHRoZSBg Uycgb3IgYEUnIGNvbW1hbmQgZG9lcyBub3QgaW5jbHVkZSBhIHRlbXBvcmFyeSBmaWxlIG5hbWUs CisrICAgICBhdXRvbWF0aWMgcmVzdGFydCBpcyBub3QgcG9zc2libGUuICBJbiB0aGlzIGNhc2Us IHRoZSBmaWxlcyBhcmUKKysgICAgIHJlY2VpdmVkIGludG8gYSByYW5kb21seSBuYW1lZCBmaWxl IGluIHRoZSBgLlRlbXAnIGRpcmVjdG9yeQorKyAgICAgaXRzZWxmLgorKworK2AuUHJlc2VydmUn CisrICAgICBUaGlzIGRpcmVjdG9yeSBob2xkcyBkYXRhIGZpbGVzIHdoaWNoIGNvdWxkIG5vdCBi ZSB0cmFuc2ZlcnJlZCB0byBhCisrICAgICByZW1vdGUgc3lzdGVtIGZvciBzb21lIHJlYXNvbiAo Zm9yIGV4YW1wbGUsIHRoZSBkYXRhIGZpbGUgbWlnaHQgYmUKKysgICAgIGxhcmdlLCBhbmQgZXhj ZWVkIHNpemUgcmVzdHJpY3Rpb25zIGltcG9zZWQgYnkgdGhlIHJlbW90ZSBzeXN0ZW0pLgorKyAg ICAgV2hlbiBhIGxvY2FsbHkgcmVxdWVzdGVkIGZpbGUgdHJhbnNmZXIgZmFpbHMsIGB1dWNpY28n IHdpbGwgc3RvcmUKKysgICAgIHRoZSBkYXRhIGZpbGUgaW4gdGhlIGAuUHJlc2VydmUnIGRpcmVj dG9yeSwgYW5kIHNlbmQgbWFpbCB0byB0aGUKKysgICAgIHJlcXVlc3RvciBkZXNjcmliaW5nIHRo ZSBmYWlsdXJlIGFuZCBuYW1pbmcgdGhlIHNhdmVkIGZpbGUuCisrCisrYC5SZWNlaXZlZCcKKysg ICAgIFRoaXMgZGlyZWN0b3J5IHJlY29yZHMgd2hpY2ggZmlsZXMgaGF2ZSBiZWVuIHJlY2VpdmVk LiAgSWYgYQorKyAgICAgY29udmVyc2F0aW9uIGZhaWxzIGp1c3QgYWZ0ZXIgYHV1Y2ljbycgYWNr bm93bGVkZ2VzIHJlY2VpcHQgb2YgYQorKyAgICAgZmlsZSwgaXQgaXMgcG9zc2libGUgZm9yIHRo ZSBhY2tub3dsZWRnZW1lbnQgdG8gYmUgbG9zdC4gIElmIHRoaXMKKysgICAgIGhhcHBlbnMsIHRo ZSByZW1vdGUgc3lzdGVtIHdpbGwgcmVzZW5kIHRoZSBmaWxlLiAgSWYgdGhlIGZpbGUgd2VyZQor KyAgICAgYW4gZXhlY3V0aW9uIHJlcXVlc3QsIGFuZCBgdXVjaWNvJyBkaWQgbm90IGtlZXAgdHJh Y2sgb2Ygd2hpY2gKKysgICAgIGZpbGVzIGl0IGhhZCBhbHJlYWR5IHJlY2VpdmVkLCB0aGlzIGNv dWxkIGxlYWQgdG8gdGhlIGV4ZWN1dGlvbgorKyAgICAgYmVpbmcgcGVyZm9ybWVkIHR3aWNlLgor KworKyAgICAgVG8gYXZvaWQgdGhpcyBwcm9ibGVtLCB3aGVuIGEgY29udmVyc2F0aW9uIGZhaWxz LCBgdXVjaWNvJyByZWNvcmRzCisrICAgICBlYWNoIGZpbGUgdGhhdCBoYXMgYmVlbiByZWNlaXZl ZCwgYnV0IGZvciB3aGljaCB0aGUgcmVtb3RlIHN5c3RlbQorKyAgICAgbWF5IG5vdCBoYXZlIHJl Y2VpdmVkIHRoZSBhY2tub3dsZWRnZW1lbnQuICBJdCByZWNvcmRzIHRoaXMKKysgICAgIGluZm9y bWF0aW9uIGJ5IGNyZWF0aW5nIGFuIGVtcHR5IGZpbGUgd2l0aCB0aGUgbmFtZQorKyAgICAgYC5S ZWNlaXZlZC9TWVNURU0vVEVNUCcsIHdoZXJlIFNZU1RFTSBpcyB0aGUgbmFtZSBvZiB0aGUgcmVt b3RlCisrICAgICBzeXN0ZW0sIGFuZCBURU1QIGlzIHRoZSBURU1QIGZpZWxkIG9mIHRoZSBgUycg b3IgYEUnIGNvbW1hbmQgZnJvbQorKyAgICAgdGhlIHJlbW90ZSBzeXN0ZW0gKCpub3RlIFRoZSBT IENvbW1hbmQ6OikuICBUaGVuLCBpZiB0aGUgcmVtb3RlCisrICAgICBzeXN0ZW0gb2ZmZXJzIHRo ZSBmaWxlIGFnYWluIGluIHRoZSBuZXh0IGNvbnZlcnNhdGlvbiwgYHV1Y2ljbycKKysgICAgIHJl ZnVzZXMgdGhlIHNlbmQgcmVxdWVzdCBhbmQgZGVsZXRlcyB0aGUgcmVjb3JkIGluIHRoZSBgLlJl Y2VpdmVkJworKyAgICAgZGlyZWN0b3J5LiAgVGhpcyBhcHByb2FjaCBvbmx5IHdvcmtzIGZvciBm aWxlIHNlbmRzIHdoaWNoIHVzZSBhCisrICAgICB0ZW1wb3JhcnkgZmlsZSBuYW1lLCBidXQgdGhp cyBpcyB0cnVlIG9mIGFsbCBleGVjdXRpb24gcmVxdWVzdHMuCisrCisrHworK0ZpbGU6IHV1Y3Au aW5mbywgIE5vZGU6IFNwb29sIExvY2sgRmlsZXMsICBQcmV2OiBPdGhlciBTcG9vbCBTdWJkaXJl Y3RvcmllcywgIFVwOiBUaGUgU3Bvb2wgRGlyZWN0b3J5IExheW91dAorKworKzQuNC41IExvY2sg RmlsZXMgaW4gdGhlIFNwb29sIERpcmVjdG9yeQorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKworK0xvY2sgZmlsZXMgZm9yIGRldmljZXMgYW5kIHN5c3RlbXMgYXJl IHN0b3JlZCBpbiB0aGUgbG9jayBkaXJlY3RvcnksCisrd2hpY2ggbWF5IG9yIG1heSBub3QgYmUg dGhlIHNhbWUgYXMgdGhlIHNwb29sIGRpcmVjdG9yeS4gIFRoZSBsb2NrCisrZGlyZWN0b3J5IGlz IHNldCBhdCBjb21waWxhdGlvbiB0aW1lIGJ5IGBMT0NLRElSJyBpbiBgcG9saWN5LmgnLCB3aGlj aAorK21heSBiZSBvdmVycmlkZGVuIGJ5IHRoZSBgbG9ja2RpcicgY29tbWFuZCBpbiB0aGUgYGNv bmZpZycgZmlsZSAoKm5vdGUKKytNaXNjZWxsYW5lb3VzIChjb25maWcpOjopLgorKworKyAgIEZv ciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBuYW1lcyB1c2VkIGZvciBkZXZpY2UgbG9jayBmaWxlcywg YW5kIHRoZQorK2Zvcm1hdCBvZiB0aGUgY29udGVudHMgb2YgYSBsb2NrIGZpbGUsIHNlZSAqbm90 ZSBVVUNQIExvY2sgRmlsZXM6Oi4KKysKKytgTENLLi5TWVMnCisrICAgICBBIGxvY2sgZmlsZSBm b3IgYSBzeXN0ZW0sIHdoZXJlIFNZUyBpcyB0aGUgc3lzdGVtIG5hbWUuICBBcyBub3RlZAorKyAg ICAgYWJvdmUsIHRoZXNlIGxvY2sgZmlsZXMgYXJlIGtlcHQgaW4gdGhlIGxvY2sgZGlyZWN0b3J5 LCB3aGljaCBtYXkKKysgICAgIG5vdCBiZSB0aGUgc3Bvb2wgZGlyZWN0b3J5LiAgVGhlc2UgbG9j ayBmaWxlcyBhcmUgY3JlYXRlZCBieQorKyAgICAgYHV1Y2ljbycgd2hpbGUgdGFsa2luZyB0byBh IHJlbW90ZSBzeXN0ZW0sIGFuZCBhcmUgdXNlZCB0byBwcmV2ZW50CisrICAgICBtdWx0aXBsZSBz aW11bHRhbmVvdXMgY29udmVyc2F0aW9ucyB3aXRoIGEgc3lzdGVtLgorKworKyAgICAgT24gc3lz dGVtcyB3aGljaCBsaW1pdCBmaWxlIG5hbWVzIHRvIDE0IGNoYXJhY3RlcnMsIG9ubHkgdGhlIGZp cnN0CisrICAgICBlaWdodCBjaGFyYWN0ZXJzIG9mIHRoZSBzeXN0ZW0gbmFtZSBhcmUgdXNlZCBp biB0aGUgbG9jayBmaWxlCisrICAgICBuYW1lLiAgVGhpcyByZXF1aXJlcyB0aGF0IHRoZSBuYW1l cyBvZiBlYWNoIGRpcmVjdGx5IGNvbm5lY3RlZAorKyAgICAgcmVtb3RlIHN5c3RlbSBiZSB1bmlx dWUgaW4gdGhlIGZpcnN0IGVpZ2h0IGNoYXJhY3RlcnMuCisrCisrYExDSy5YUVQuTk4nCisrICAg ICBXaGVuIGB1dXhxdCcgc3RhcnRzIHVwLCBpdCB1c2VzIGxvY2sgZmlsZXMgdG8gZGV0ZXJtaW5l IGhvdyBtYW55CisrICAgICBvdGhlciBgdXV4cXQnIGRhZW1vbnMgYXJlIGN1cnJlbnRseSBydW5u aW5nLiAgSXQgZmlyc3QgdHJpZXMgdG8KKysgICAgIGxvY2sgYExDSy5YUVQuMCcsIHRoZW4gYExD Sy5YUVQuMScsIGFuZCBzbyBmb3J0aC4gIFRoaXMgaXMgdXNlZCB0bworKyAgICAgaW1wbGVtZW50 IHRoZSBgbWF4LXV1eHF0cycgY29tbWFuZCAoKm5vdGUgTWlzY2VsbGFuZW91cworKyAgICAgKGNv bmZpZyk6OikuICBJdCBpcyBhbHNvIHVzZWQgdG8gcGFyY2VsIG91dCB0aGUgYC5YcXRkaXInCisr ICAgICBzdWJkaXJlY3RvcmllcyAoKm5vdGUgRXhlY3V0aW9uIFN1YmRpcmVjdG9yaWVzOjopLgor KworK2BMWFEuQ01EJworKyAgICAgV2hlbiBgdXV4cXQnIGlzIGludm9rZWQgd2l0aCB0aGUgYC1j JyBvciBgLS1jb21tYW5kJyBvcHRpb24gKCpub3RlCisrICAgICBJbnZva2luZyB1dXhxdDo6KSwg aXQgY3JlYXRlcyBhIGxvY2sgZmlsZSBuYW1lZCBhZnRlciB0aGUgY29tbWFuZAorKyAgICAgaXQg aXMgZXhlY3V0aW5nLiAgRm9yIGV4YW1wbGUsIGB1dXhxdCAtYyBybWFpbCcgd2lsbCBjcmVhdGUg dGhlCisrICAgICBsb2NrIGZpbGUgYExYUS5ybWFpbCcuICBUaGlzIHByZXZlbnRzIG90aGVyIGB1 dXhxdCcgZGFlbW9ucyBmcm9tCisrICAgICBleGVjdXRpbmcgam9icyBvZiB0aGUgc3BlY2lmaWVk IHR5cGUuCisrCisrYFNZU1RFTS9YLi9MLlhYWCcKKysgICAgIFdoaWxlIGB1dXhxdCcgaXMgZXhl Y3V0aW5nIGEgcGFydGljdWxhciBqb2IsIGl0IGNyZWF0ZXMgYSBsb2NrIGZpbGUKKysgICAgIHdp dGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgYFguJyBmaWxlIGRlc2NyaWJpbmcgdGhlIGpvYiwgYnV0 CisrICAgICByZXBsYWNpbmcgdGhlIGluaXRpYWwgYFgnIHdpdGggYEwnLiAgVGhpcyBlbnN1cmVz IHRoYXQgaWYgbXVsdGlwbGUKKysgICAgIGB1dXhxdCcgZGFlbW9ucyBhcmUgcnVubmluZywgdGhl eSBkbyBub3Qgc2ltdWx0YW5lb3VzbHkgZXhlY3V0ZQorKyAgICAgdGhlIHNhbWUgam9iLgorKwor K2BMQ0suLlNFUScKKysgICAgIFRoaXMgbG9jayBmaWxlIGlzIHVzZWQgdG8gY29udHJvbCBhY2Nl c3MgdG8gdGhlIHNlcXVlbmNlIGZpbGVzIGZvcgorKyAgICAgZWFjaCBzeXN0ZW0gKCpub3RlIFN5 c3RlbSBTcG9vbCBEaXJlY3Rvcmllczo6KS4gIEl0IGlzIG9ubHkgdXNlZAorKyAgICAgb24gc3lz dGVtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQT1NJWCBmaWxlIGxvY2tpbmcgdXNpbmcgdGhlCisr ICAgICBgZmNudGwnIHN5c3RlbSBjYWxsLgorKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2Rl OiBTcG9vbCBEaXJlY3RvcnkgQ2xlYW5pbmcsICBQcmV2OiBUaGUgU3Bvb2wgRGlyZWN0b3J5IExh eW91dCwgIFVwOiBVc2luZyBUYXlsb3IgVVVDUAorKworKzQuNSBDbGVhbmluZyB0aGUgU3Bvb2wg RGlyZWN0b3J5CisrPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKytUaGUgc3Bv b2wgZGlyZWN0b3J5IG1heSBuZWVkIHRvIGJlIGNsZWFuZWQgdXAgcGVyaW9kaWNhbGx5LiAgVW5k ZXIgc29tZQorK2NpcmN1bXN0YW5jZXMsIGZpbGVzIG1heSBhY2N1bXVsYXRlIGluIHZhcmlvdXMg c3ViZGlyZWN0b3JpZXMsIHN1Y2ggYXMKKytgLlByZXNlcnZlJyAoKm5vdGUgT3RoZXIgU3Bvb2wg U3ViZGlyZWN0b3JpZXM6Oikgb3IgYC5Db3JydXB0JyAoKm5vdGUKKytFeGVjdXRpb24gU3ViZGly ZWN0b3JpZXM6OikuCisrCisrICAgQWxzbywgaWYgYSByZW1vdGUgc3lzdGVtIHN0b3BzIGNhbGxp bmcgaW4sIHlvdSBtYXkgd2FudCB0byBhcnJhbmdlCisrZm9yIGFueSBxdWV1ZWQgdXAgbWFpbCB0 byBiZSByZXR1cm5lZCB0byB0aGUgc2VuZGVyLiAgVGhpcyBjYW4gYmUgZG9uZQorK3VzaW5nIHRo ZSBgdXVzdGF0JyBjb21tYW5kICgqbm90ZSBJbnZva2luZyB1dXN0YXQ6OikuCisrCisrICAgVGhl IGBjb250cmliJyBkaXJlY3RvcnkgaW5jbHVkZXMgYSBzaW1wbGUgYHV1Y2xlYW4nIHNjcmlwdCB3 aGljaCBtYXkKKytiZSB1c2VkIGFzIGFuIGV4YW1wbGUgb2YgYSBjbGVhbiB1cCBzY3JpcHQuICBJ dCBjYW4gYmUgcnVuIGRhaWx5IG91dCBvZgorK2Bjcm9udGFiJy4KKysKKysgICBZb3Ugc2hvdWxk IHBlcmlvZGljYWxseSB0cmltIHRoZSBVVUNQIGxvZyBmaWxlcywgYXMgdGhleSB3aWxsCisrb3Ro ZXJ3aXNlIGdyb3cgd2l0aG91dCBsaW1pdC4gIFRoZSBuYW1lcyBvZiB0aGUgbG9nIGZpbGVzIGFy ZSBzZXQgaW4KKytgcG9saWN5LmgnLCBhbmQgbWF5IGJlIG92ZXJyaWRkZW4gaW4gdGhlIGNvbmZp Z3VyYXRpb24gZmlsZSAoKm5vdGUKKytjb25maWcgRmlsZTo6KS4gIEJ5IGRlZmF1bHQgdGhleSBh cmUgYXJlIGAvdXNyL3Nwb29sL3V1Y3AvTG9nJyBhbmQKKytgL3Vzci9zcG9vbC91dWNwL1N0YXRz Jy4gIFlvdSBtYXkgZmluZCB0aGUgYHNhdmVsb2cnIHByb2dyYW0gaW4gdGhlCisrYGNvbnRyaWIn IGRpcmVjdG9yeSB0byBiZSBvZiB1c2UuICBUaGVyZSBpcyBhIG1hbnVhbCBwYWdlIGZvciBpdCBp bgorK2Bjb250cmliJyBhcyB3ZWxsLgorKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBD b25maWd1cmF0aW9uIEZpbGVzLCAgTmV4dDogUHJvdG9jb2xzLCAgUHJldjogVXNpbmcgVGF5bG9y IFVVQ1AsICBVcDogVG9wCisrCisrNSBUYXlsb3IgVVVDUCBDb25maWd1cmF0aW9uIEZpbGVzCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCisrVGhpcyBjaGFwdGVyIGRlc2Ny aWJlcyB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhY2NlcHRlZCBieSB0aGUgVGF5bG9yCisrVVVD UCBwYWNrYWdlIGlmIGNvbXBpbGVkIHdpdGggYEhBVkVfVEFZTE9SX0NPTkZJRycgc2V0IHRvIDEg aW4KKytgcG9saWN5LmgnLgorKworKyAgIFRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBub3Jt YWxseSBmb3VuZCBpbiB0aGUgZGlyZWN0b3J5CisrTkVXQ09ORklHRElSLCB3aGljaCBpcyBkZWZp bmVkIGJ5IHRoZSBgY29uZmlndXJlJyBvcHRpb24KKytgLS13aXRoLW5ld2NvbmZpZ2Rpcic7IGJ5 IGRlZmF1bHQgTkVXQ09ORklHRElSIGlzCisrYC91c3IvbG9jYWwvY29uZi91dWNwJy4gIEhvd2V2 ZXIsIHRoZSBtYWluIGNvbmZpZ3VyYXRpb24gZmlsZSwKKytgY29uZmlnJywgaXMgdGhlIG9ubHkg b25lIHdoaWNoIG11c3QgYmUgaW4gdGhhdCBkaXJlY3RvcnksIHNpbmNlIGl0IG1heQorK3NwZWNp ZnkgYSBkaWZmZXJlbnQgbG9jYXRpb24gZm9yIGFueSBvciBhbGwgb2YgdGhlIG90aGVyIGZpbGVz LiAgWW91CisrbWF5IHJ1biBhbnkgb2YgdGhlIFVVQ1AgcHJvZ3JhbXMgd2l0aCBhIGRpZmZlcmVu dCBtYWluIGNvbmZpZ3VyYXRpb24KKytmaWxlIGJ5IHVzaW5nIHRoZSBgLUknIG9yIGAtLWNvbmZp Zycgb3B0aW9uOyB0aGlzIGNhbiBiZSB1c2VmdWwgd2hlbgorK3Rlc3RpbmcgYSBuZXcgY29uZmln dXJhdGlvbi4gIFdoZW4geW91IHVzZSB0aGUgYC1JJyBvcHRpb24gdGhlIHByb2dyYW1zCisrd2ls bCByZXZva2UgYW55IHNldHVpZCBwcml2aWxlZ2VzLgorKworKyogTWVudToKKysKKysqIENvbmZp Z3VyYXRpb24gT3ZlcnZpZXc6OiAgICAgIENvbmZpZ3VyYXRpb24gRmlsZSBPdmVydmlldworKyog Q29uZmlndXJhdGlvbiBGaWxlIEZvcm1hdDo6ICAgQ29uZmlndXJhdGlvbiBGaWxlIEZvcm1hdAor KyogQ29uZmlndXJhdGlvbiBFeGFtcGxlczo6ICAgICAgRXhhbXBsZXMgb2YgQ29uZmlndXJhdGlv biBGaWxlcworKyogVGltZSBTdHJpbmdzOjogICAgICAgICAgICAgICAgSG93IHRvIFdyaXRlIFRp bWUgU3RyaW5ncworKyogQ2hhdCBTY3JpcHRzOjogICAgICAgICAgICAgICAgSG93IHRvIFdyaXRl IENoYXQgU2NyaXB0cworKyogY29uZmlnIEZpbGU6OiAgICAgICAgICAgICAgICAgVGhlIE1haW4g Q29uZmlndXJhdGlvbiBGaWxlCisrKiBzeXMgRmlsZTo6ICAgICAgICAgICAgICAgICAgICBUaGUg U3lzdGVtIENvbmZpZ3VyYXRpb24gRmlsZQorKyogcG9ydCBGaWxlOjogICAgICAgICAgICAgICAg ICAgVGhlIFBvcnQgQ29uZmlndXJhdGlvbiBGaWxlcworKyogZGlhbCBGaWxlOjogICAgICAgICAg ICAgICAgICAgVGhlIERpYWxlciBDb25maWd1cmF0aW9uIEZpbGVzCisrKiBVVUNQIE92ZXIgVENQ OjogICAgICAgICAgICAgICBVVUNQIE92ZXIgVENQCisrKiBTZWN1cml0eTo6ICAgICAgICAgICAg ICAgICAgICBTZWN1cml0eSBJc3N1ZXMKKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTog Q29uZmlndXJhdGlvbiBPdmVydmlldywgIE5leHQ6IENvbmZpZ3VyYXRpb24gRmlsZSBGb3JtYXQs ICBQcmV2OiBDb25maWd1cmF0aW9uIEZpbGVzLCAgVXA6IENvbmZpZ3VyYXRpb24gRmlsZXMKKysK Kys1LjEgQ29uZmlndXJhdGlvbiBGaWxlIE92ZXJ2aWV3CisrPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorKworK1VVQ1AgdXNlcyBzZXZlcmFsIGRpZmZlcmVudCB0eXBlcyBvZiBjb25m aWd1cmF0aW9uIGZpbGVzLCBlYWNoCisrZGVzY3JpYmluZyBhIGRpZmZlcmVudCBraW5kIG9mIGlu Zm9ybWF0aW9uLiAgVGhlIGNvbW1hbmRzIHBlcm1pdHRlZCBpbgorK2VhY2ggZmlsZSBhcmUgZGVz Y3JpYmVkIGluIGRldGFpbCBiZWxvdy4gIFRoaXMgc2VjdGlvbiBpcyBhIGJyaWVmCisrZGVzY3Jp cHRpb24gb2Ygc29tZSBvZiB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIGZpbGVzLgorKworKyAgIFRo ZSBgY29uZmlnJyBmaWxlIGlzIHRoZSBtYWluIGNvbmZpZ3VyYXRpb24gZmlsZS4gIEl0IGRlc2Ny aWJlcworK2dlbmVyYWwgaW5mb3JtYXRpb24gbm90IGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3Vs YXIgcmVtb3RlIHN5c3RlbSwgc3VjaAorK2FzIHRoZSBsb2NhdGlvbiBvZiB2YXJpb3VzIGxvZyBm aWxlcy4gIFRoZXJlIGFyZSByZWFzb25hYmxlIGRlZmF1bHRzIGZvcgorK2V2ZXJ5dGhpbmcgdGhh dCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSBgY29uZmlnJyBmaWxlLCBzbyB5b3UgbWF5IG5vdAor K2FjdHVhbGx5IG5lZWQgb25lIG9uIHlvdXIgc3lzdGVtLgorKworKyAgIFRoZXJlIG1heSBiZSBv bmx5IG9uZSBgY29uZmlnJyBmaWxlLCBidXQgdGhlcmUgbWF5IGJlIG9uZSBvciBtb3JlIG9mCisr ZWFjaCBvdGhlciB0eXBlIG9mIGZpbGUuICBUaGUgZGVmYXVsdCBpcyBvbmUgZmlsZSBmb3IgZWFj aCB0eXBlLCBidXQKKyttb3JlIG1heSBiZSBsaXN0ZWQgaW4gdGhlIGBjb25maWcnIGZpbGUuCisr CisrICAgVGhlIGBzeXMnIGZpbGVzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIHJlbW90ZSBzeXN0ZW1z LiAgRWFjaCByZW1vdGUKKytzeXN0ZW0gdG8gd2hpY2ggeW91IGNvbm5lY3QgbXVzdCBiZSBsaXN0 ZWQgaW4gYSBgc3lzJyBmaWxlLiAgQSBgc3lzJworK2ZpbGUgd2lsbCBpbmNsdWRlIGluZm9ybWF0 aW9uIGZvciBhIHN5c3RlbSwgc3VjaCBhcyB0aGUgc3BlZWQgKGJhdWQKKytyYXRlKSB0byB1c2Us IG9yIHdoZW4gdG8gcGxhY2UgY2FsbHMuCisrCisrICAgRm9yIGVhY2ggc3lzdGVtIHlvdSB3aXNo IHRvIGNhbGwsIHlvdSBtdXN0IGRlc2NyaWJlIG9uZSBvciBtb3JlCisrcG9ydHM7IHRoZXNlIHBv cnRzIG1heSBiZSBkZWZpbmVkIGRpcmVjdGx5IGluIHRoZSBgc3lzJyBmaWxlLCBvciB0aGV5Cisr bWF5IGJlIGRlZmluZWQgaW4gYSBgcG9ydCcgZmlsZS4KKysKKysgICBUaGUgYHBvcnQnIGZpbGVz IGFyZSB1c2VkIHRvIGRlc2NyaWJlIHBvcnRzLiAgQSBwb3J0IGlzIGEgcGFydGljdWxhcgorK2hh cmR3YXJlIGNvbm5lY3Rpb24gb24geW91ciBjb21wdXRlci4gIFlvdSB3b3VsZCBub3JtYWxseSBk ZWZpbmUgYXMKKyttYW55IHBvcnRzIGFzIHRoZXJlIGFyZSBtb2RlbXMgYXR0YWNoZWQgdG8geW91 ciBjb21wdXRlci4gIEEgVENQCisrY29ubmVjdGlvbiBpcyBhbHNvIGRlc2NyaWJlZCB1c2luZyBh IHBvcnQuCisrCisrICAgVGhlIGBkaWFsJyBmaWxlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBkaWFs ZXJzLiAgRGlhbGVyIGlzCisrZXNzZW50aWFsbHkgYW5vdGhlciB3b3JkIGZvciBtb2RlbS4gIFRo ZSBgZGlhbCcgZmlsZSBkZXNjcmliZXMgdGhlCisrY29tbWFuZHMgVVVDUCBzaG91bGQgdXNlIHRv IGRpYWwgb3V0IG9uIGEgcGFydGljdWxhciB0eXBlIG9mIG1vZGVtLiAgWW91Cisrd291bGQgbm9y bWFsbHkgZGVmaW5lIGFzIG1hbnkgZGlhbGVycyBhcyB0aGVyZSBhcmUgdHlwZXMgb2YgbW9kZW1z CisrYXR0YWNoZWQgdG8geW91ciBjb21wdXRlci4gIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSB0 aHJlZSBUZWxlYml0CisrbW9kZW1zIHVzZWQgZm9yIFVVQ1AsIHlvdSB3b3VsZCBwcm9iYWJseSBk ZWZpbmUgdGhyZWUgcG9ydHMgYW5kIG9uZQorK2RpYWxlci4KKysKKysgICBUaGVyZSBhcmUgb3Ro ZXIgdHlwZXMgb2YgY29uZmlndXJhdGlvbiBmaWxlcywgYnV0IHRoZXNlIGFyZSB0aGUKKytpbXBv cnRhbnQgb25lcy4gIFRoZSBvdGhlciB0eXBlcyBhcmUgZGVzY3JpYmVkIGJlbG93LgorKworKx8K KytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBDb25maWd1cmF0aW9uIEZpbGUgRm9ybWF0LCAgTmV4 dDogQ29uZmlndXJhdGlvbiBFeGFtcGxlcywgIFByZXY6IENvbmZpZ3VyYXRpb24gT3ZlcnZpZXcs ICBVcDogQ29uZmlndXJhdGlvbiBGaWxlcworKworKzUuMiBDb25maWd1cmF0aW9uIEZpbGUgRm9y bWF0CisrPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKytBbGwgdGhlIGNvbmZpZ3Vy YXRpb24gZmlsZXMgZm9sbG93IGEgc2ltcGxlIGxpbmUtb3JpZW50ZWQgYEtFWVdPUkQKKytWQUxV RScgZm9ybWF0LiAgRW1wdHkgbGluZXMgYXJlIGlnbm9yZWQsIGFzIGFyZSBsZWFkaW5nIHNwYWNl czsgdW5saWtlCisrSERCLCBsaW5lcyB3aXRoIGxlYWRpbmcgc3BhY2VzIGFyZSByZWFkLiAgVGhl IGZpcnN0IHdvcmQgb24gZWFjaCBsaW5lCisraXMgYSBrZXl3b3JkLiAgVGhlIHJlc3Qgb2YgdGhl IGxpbmUgaXMgaW50ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHRoZQorK2tleXdvcmQuICBNb3N0IGtl eXdvcmRzIGFyZSBmb2xsb3dlZCBieSBudW1iZXJzLCBib29sZWFuIHZhbHVlcyBvcgorK3NpbXBs ZSBzdHJpbmdzIHdpdGggbm8gZW1iZWRkZWQgc3BhY2VzLgorKworKyAgIFRoZSBgIycgY2hhcmFj dGVyIGlzIHVzZWQgZm9yIGNvbW1lbnRzLiAgRXZlcnl0aGluZyBmcm9tIGEgYCMnIHRvCisrdGhl IGVuZCBvZiB0aGUgbGluZSBpcyBpZ25vcmVkIHVubGVzcyB0aGUgYCMnIGlzIHByZWNlZGVkIGJ5 IGEgYFwnCisrKGJhY2tzbGFzaCk7IGlmIHRoZSBgIycgaXMgcHJlY2VlZGVkIGJ5IGEgYFwnLCB0 aGUgYFwnIGlzIHJlbW92ZWQgYnV0CisrdGhlIGAjJyByZW1haW5zIGluIHRoZSBsaW5lLiAgVGhp cyBjYW4gYmUgdXNlZnVsIGZvciBhIHBob25lIG51bWJlcgorK2NvbnRhaW5pbmcgYSBgIycuICBU byBlbnRlciB0aGUgc2VxdWVuY2UgYFwjJywgdXNlIGBcXCMnLgorKworKyAgIFRoZSBiYWNrc2xh c2ggY2hhcmFjdGVyIG1heSBiZSB1c2VkIHRvIGNvbnRpbnVlIGxpbmVzLiAgSWYgdGhlIGxhc3QK KytjaGFyYWN0ZXIgaW4gYSBsaW5lIGlzIGEgYmFja3NsYXNoLCB0aGUgYmFja3NsYXNoIGlzIHJl bW92ZWQgYW5kIHRoZQorK2xpbmUgaXMgY29udGludWVkIGJ5IHRoZSBuZXh0IGxpbmUuICBUaGUg c2Vjb25kIGxpbmUgaXMgYXR0YWNoZWQgdG8gdGhlCisrZmlyc3Qgd2l0aCBubyBpbnRlcnZlbmlu ZyBjaGFyYWN0ZXJzOyBpZiB5b3Ugd2FudCBhbnkgd2hpdGVzcGFjZSBiZXR3ZWVuCisrdGhlIGVu ZCBvZiB0aGUgZmlyc3QgbGluZSBhbmQgdGhlIHN0YXJ0IG9mIHRoZSBzZWNvbmQgbGluZSwgeW91 IG11c3QKKytpbnNlcnQgaXQgeW91cnNlbGYuCisrCisrICAgSG93ZXZlciwgdGhlIGJhY2tzbGFz aCBpcyBub3QgYSBnZW5lcmFsIHF1b3RpbmcgY2hhcmFjdGVyLiAgRm9yCisrZXhhbXBsZSwgeW91 IGNhbm5vdCB1c2UgaXQgdG8gZ2V0IGFuIGVtYmVkZGVkIHNwYWNlIGluIGEgc3RyaW5nCisrYXJn dW1lbnQuCisrCisrICAgRXZlcnl0aGluZyBhZnRlciB0aGUga2V5d29yZCBtdXN0IGJlIG9uIHRo ZSBzYW1lIGxpbmUuICBBIEJPT0xFQU4KKyttYXkgYmUgc3BlY2lmaWVkIGFzIGB5JywgYFknLCBg dCcsIG9yIGBUJyBmb3IgdHJ1ZSBhbmQgYG4nLCBgTicsIGBmJywKKytvciBgRicgZm9yIGZhbHNl OyBhbnkgdHJhaWxpbmcgY2hhcmFjdGVycyBhcmUgaWdub3JlZCwgc28gYHRydWUnLAorK2BmYWxz ZScsIGV0Yy4sIGFyZSBhbHNvIGFjY2VwdGFibGUuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywg IE5vZGU6IENvbmZpZ3VyYXRpb24gRXhhbXBsZXMsICBOZXh0OiBUaW1lIFN0cmluZ3MsICBQcmV2 OiBDb25maWd1cmF0aW9uIEZpbGUgRm9ybWF0LCAgVXA6IENvbmZpZ3VyYXRpb24gRmlsZXMKKysK Kys1LjMgRXhhbXBsZXMgb2YgQ29uZmlndXJhdGlvbiBGaWxlcworKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisrCisrVGhpcyBzZWN0aW9uIHByb3ZpZGVzIGZldyB0eXBpY2Fs IGV4YW1wbGVzIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisrVGhlcmUgYXJlIGFsc28gc2FtcGxl IGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gdGhlIGBzYW1wbGUnIHN1YmRpcmVjdG9yeQorK29mIHRo ZSBkaXN0cmlidXRpb24uCisrCisrKiBNZW51OgorKworKyogY29uZmlnIEZpbGUgRXhhbXBsZXM6 OiAgICAgICAgRXhhbXBsZXMgb2YgdGhlIE1haW4gQ29uZmlndXJhdGlvbiBGaWxlCisrKiBMZWFm IEV4YW1wbGU6OiAgICAgICAgICAgICAgICBDYWxsIGEgU2luZ2xlIFJlbW90ZSBTaXRlCisrKiBH YXRld2F5IEV4YW1wbGU6OiAgICAgICAgICAgICBUaGUgR2F0ZXdheSBmb3IgU2V2ZXJhbCBMb2Nh bCBTeXN0ZW1zCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGNvbmZpZyBGaWxlIEV4 YW1wbGVzLCAgTmV4dDogTGVhZiBFeGFtcGxlLCAgUHJldjogQ29uZmlndXJhdGlvbiBFeGFtcGxl cywgIFVwOiBDb25maWd1cmF0aW9uIEV4YW1wbGVzCisrCisrNS4zLjEgY29uZmlnIEZpbGUgRXhh bXBsZXMKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK1RvIHN0YXJ0IHdpdGgsIGhl cmUgYXJlIHNvbWUgZXhhbXBsZXMgb2YgdXNlcyBvZiB0aGUgbWFpbiBjb25maWd1cmF0aW9uCisr ZmlsZSwgYGNvbmZpZycuICBGb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbiBvZiB0aGUgY29tbWFu ZHMgdGhhdCBhcmUKKytwZXJtaXR0ZWQgaW4gYGNvbmZpZycsIHNlZSAqbm90ZSBjb25maWcgRmls ZTo6LgorKworKyAgIEluIG1hbnkgY2FzZXMgeW91IHdpbGwgbm90IG5lZWQgdG8gY3JlYXRlIGEg YGNvbmZpZycgZmlsZSBhdCBhbGwuCisrVGhlIG1vc3QgY29tbW9uIHJlYXNvbiB0byBjcmVhdGUg b25lIGlzIHRvIGdpdmUgeW91ciBtYWNoaW5lIGEgc3BlY2lhbAorK1VVQ1AgbmFtZS4gIE90aGVy IHJlYXNvbnMgbWlnaHQgYmUgdG8gY2hhbmdlIHRoZSBVVUNQIHNwb29sIGRpcmVjdG9yeSwKKytv ciB0byBwZXJtaXQgYW55IHJlbW90ZSBzeXN0ZW0gdG8gY2FsbCBpbi4KKysKKysgICBJZiB5b3Ug aGF2ZSBhbiBpbnRlcm5hbCBuZXR3b3JrIG9mIG1hY2hpbmVzLCB0aGVuIGl0IGlzIGxpa2VseSB0 aGF0CisrdGhlIGludGVybmFsIG5hbWUgb2YgeW91ciBVVUNQIG1hY2hpbmUgaXMgbm90IHRoZSBu YW1lIHlvdSB3YW50IHRvIHVzZQorK3doZW4gY2FsbGluZyBvdGhlciBzeXN0ZW1zLiAgRm9yIGV4 YW1wbGUsIGhlcmUgYXQgYGFpcnMuY29tJyBvdXIKKyttYWlsL25ld3MgZ2F0ZXdheSBtYWNoaW5l IGlzIG5hbWVkIGBlbG1lci5haXJzLmNvbScgKGl0IGlzIG9uZSBvZgorK3NldmVyYWwgbWFjaGlu ZXMgYWxsIG5hbWVkIGBMT0NBTE5BTUUuYWlycy5jb20nKS4gIElmIHdlIGRpZCBub3QKKytwcm92 aWRlIGEgYGNvbmZpZycgZmlsZSwgdGhlbiBvdXIgVVVDUCBuYW1lIHdvdWxkIGJlIGBlbG1lcic7 IGhvd2V2ZXIsCisrd2UgYWN0dWFsbHkgd2FudCBpdCB0byBiZSBgYWlycycuICBUaGVyZWZvcmUs IHdlIHVzZSB0aGUgZm9sbG93aW5nIGxpbmUKKytpbiBgY29uZmlnJzoKKysKKysgICAgIG5vZGVu YW1lIGFpcnMKKysKKysgICBUaGUgVVVDUCBzcG9vbCBkaXJlY3RvcnkgbmFtZSBpcyBzZXQgaW4g YHBvbGljeS5oJyB3aGVuIHRoZSBjb2RlIGlzCisrY29tcGlsZWQuICBZb3UgbWlnaHQgYXQgc29t ZSBwb2ludCBkZWNpZGUgdGhhdCBpdCBpcyBhcHByb3ByaWF0ZSB0byBtb3ZlCisrdGhlIHNwb29s IGRpcmVjdG9yeSwgcGVyaGFwcyB0byBwdXQgaXQgb24gYSBkaWZmZXJlbnQgZGlzayBwYXJ0aXRp b24uCisrWW91IHdvdWxkIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzIGluIGBjb25maWcnIHRv IGNoYW5nZSB0bworK2RpcmVjdG9yaWVzIG9uIHRoZSBwYXJ0aXRpb24gYC91dWNwJzoKKysKKysg ICAgIHNwb29sIC91dWNwL3Nwb29sCisrICAgICBwdWJkaXIgL3V1Y3AvdXVjcHB1YmxpYworKyAg ICAgbG9nZmlsZSAvdXVjcC9zcG9vbC9Mb2cKKysgICAgIGRlYnVnZmlsZSAvdXVjcC9zcG9vbC9E ZWJ1ZworKworKyAgIFlvdSB3b3VsZCB0aGVuIG1vdmUgdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXJy ZW50IHNwb29sIGRpcmVjdG9yeSB0bworK2AvdXVjcC9zcG9vbCcuICBJZiB5b3UgZG8gdGhpcywg bWFrZSBzdXJlIHRoYXQgbm8gVVVDUCBwcm9jZXNzZXMgYXJlCisrcnVubmluZyB3aGlsZSB5b3Ug Y2hhbmdlIGBjb25maWcnIGFuZCBtb3ZlIHRoZSBzcG9vbCBkaXJlY3RvcnkuCisrCisrICAgU3Vw cG9zZSB5b3Ugd2FudGVkIHRvIHBlcm1pdCBhbnkgc3lzdGVtIHRvIGNhbGwgaW4gdG8geW91ciBz eXN0ZW0gYW5kCisrcmVxdWVzdCBmaWxlcy4gIFRoaXMgaXMgZ2VuZXJhbGx5IGtub3duIGFzICJh bm9ueW1vdXMgVVVDUCIsIHNpbmNlIHRoZQorK3N5c3RlbXMgd2hpY2ggY2FsbCBpbiBhcmUgZWZm ZWN0aXZlbHkgYW5vbnltb3VzLiAgQnkgZGVmYXVsdCwgdW5rbm93bgorK3N5c3RlbXMgYXJlIG5v dCBwZXJtaXR0ZWQgdG8gY2FsbCBpbi4gIFRvIHBlcm1pdCB0aGlzIHlvdSBtdXN0IHVzZSB0aGUK KytgdW5rbm93bicgY29tbWFuZCBpbiBgY29uZmlnJy4gIFRoZSBgdW5rbm93bicgY29tbWFuZCBp cyBmb2xsb3dlZCBieQorK2FueSBjb21tYW5kIHRoYXQgbWF5IGFwcGVhciBpbiB0aGUgc3lzdGVt IGZpbGU7IGZvciBmdWxsIGRldGFpbHMsIHNlZQorKypub3RlIHN5cyBGaWxlOjouCisrCisrICAg SSB3aWxsIHNob3cgdHdvIHBvc3NpYmxlIGFub255bW91cyBVVUNQIGNvbmZpZ3VyYXRpb25zLiAg VGhlIGZpcnN0Cisrd2lsbCBsZXQgYW55IHN5c3RlbSBjYWxsIGluIGFuZCBkb3dubG9hZCBmaWxl cywgYnV0IHdpbGwgbm90IHBlcm1pdAorK3RoZW0gdG8gdXBsb2FkIGZpbGVzIHRvIHlvdXIgc3lz dGVtLgorKworKyAgICAgIyBObyBmaWxlcyBtYXkgYmUgdHJhbnNmZXJyZWQgdG8gdGhpcyBzeXN0 ZW0KKysgICAgIHVua25vd24gcmVjZWl2ZS1yZXF1ZXN0IG5vCisrICAgICAjIFRoZSBwdWJsaWMg ZGlyZWN0b3J5IGlzIC91c3Ivc3Bvb2wvYW5vbnltb3VzCisrICAgICB1bmtub3duIHB1YmRpciAv dXNyL3Nwb29sL2Fub255bW91cworKyAgICAgIyBPbmx5IGZpbGVzIGluIHRoZSBwdWJsaWMgZGly ZWN0b3J5IG1heSBiZSBzZW50ICh0aGUgZGVmYXVsdCBhbnlob3cpCisrICAgICB1bmtub3duIHJl bW90ZS1zZW5kIH4KKysKKytTZXR0aW5nIHRoZSBwdWJsaWMgZGlyZWN0b3J5IGlzIGNvbnZlbmll bnQgZm9yIHRoZSBzeXN0ZW1zIHdoaWNoIGNhbGwKKytpbi4gIEl0IHBlcm1pdHMgdG8gcmVxdWVz dCBhIGZpbGUgYnkgcHJlZml4aW5nIGl0IHdpdGggYH4vJy4gIEZvcgorK2V4YW1wbGUsIGFzc3Vt aW5nIHlvdXIgc3lzdGVtIGlzIGtub3duIGFzIGBzZXJ2ZXInLCB0aGVuIHRvIHJldHJpZXZlCisr dGhlIGZpbGUgYC91c3Ivc3Bvb2wvYW5vbnltb3VzL0lOREVYJyBhIHVzZXIgb24gYSByZW1vdGUg c2l0ZSBjb3VsZAorK2p1c3QgZW50ZXIgYHV1Y3Agc2VydmVyIX4vSU5ERVggfic7IHRoaXMgd291 bGQgdHJhbnNmZXIgYElOREVYJyBmcm9tCisrYHNlcnZlcicncyBwdWJsaWMgZGlyZWN0b3J5IHRv IHRoZSB1c2VyJ3MgbG9jYWwgcHVibGljIGRpcmVjdG9yeS4gIE5vdGUKKyt0aGF0IHdoZW4gdXNp bmcgYGNzaCcgb3IgYGJhc2gnIHRoZSBgIScgYW5kIHRoZSBzZWNvbmQgYH4nIG11c3QgYmUKKytx dW90ZWQuCisrCisrICAgVGhlIG5leHQgZXhhbXBsZSB3aWxsIHBlcm1pdCByZW1vdGUgc3lzdGVt cyB0byB1cGxvYWQgZmlsZXMgdG8gYQorK3NwZWNpYWwgZGlyZWN0b3J5IG5hbWVkIGAvdXNyL3Nw b29sL2Fub255bW91cy91cGxvYWQnLiAgUGVybWl0dGluZyBhCisrcmVtb3RlIHN5c3RlbSB0byB1 cGxvYWQgZmlsZXMgcGVybWl0cyBpdCB0byBzZW5kIHdvcmsgcmVxdWVzdHMgYXMgd2VsbDsKKyt0 aGlzIGV4YW1wbGUgaXMgY2FyZWZ1bCB0byBwcm9oaWJpdCBjb21tYW5kcyBmcm9tIHVua25vd24g c3lzdGVtcy4KKysKKysgICAgICMgTm8gY29tbWFuZHMgbWF5IGJlIGV4ZWN1dGVkICh0aGUgbGlz dCBvZiBwZXJtaXR0ZWQgY29tbWFuZHMgaXMgZW1wdHkpCisrICAgICB1bmtub3duIGNvbW1hbmRz CisrICAgICAjIFRoZSBwdWJsaWMgZGlyZWN0b3J5IGlzIC91c3Ivc3Bvb2wvYW5vbnltb3VzCisr ICAgICB1bmtub3duIHB1YmRpciAvdXNyL3Nwb29sL2Fub255bW91cworKyAgICAgIyBPbmx5IGZp bGVzIGluIHRoZSBwdWJsaWMgZGlyZWN0b3J5IG1heSBiZSBzZW50OyB1c2VycyBtYXkgbm90IGRv d25sb2FkCisrICAgICAjIGZpbGVzIGZyb20gdGhlIHVwbG9hZCBkaXJlY3RvcnkKKysgICAgIHVu a25vd24gcmVtb3RlLXNlbmQgfiAhfi91cGxvYWQKKysgICAgICMgTWF5IG9ubHkgdXBsb2FkIGZp bGVzIGludG8gL3Vzci9zcG9vbC9hbm9ueW1vdXMvdXBsb2FkCisrICAgICB1bmtub3duIHJlbW90 ZS1yZWNlaXZlIH4vdXBsb2FkCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IExlYWYg RXhhbXBsZSwgIE5leHQ6IEdhdGV3YXkgRXhhbXBsZSwgIFByZXY6IGNvbmZpZyBGaWxlIEV4YW1w bGVzLCAgVXA6IENvbmZpZ3VyYXRpb24gRXhhbXBsZXMKKysKKys1LjMuMiBMZWFmIEV4YW1wbGUK KystLS0tLS0tLS0tLS0tLS0tLS0KKysKKytBIHJlbGF0aXZlbHkgY29tbW9uIHNpbXBsZSBjYXNl IGlzIGEgImxlYWYgc2l0ZSIsIGEgc3lzdGVtIHdoaWNoIG9ubHkKKytjYWxscyBvciBpcyBjYWxs ZWQgYnkgYSBzaW5nbGUgcmVtb3RlIHNpdGUuICBIZXJlIGlzIGEgdHlwaWNhbCBgc3lzJworK2Zp bGUgdGhhdCBtaWdodCBiZSB1c2VkIGluIHN1Y2ggYSBjYXNlLiAgRm9yIGZ1bGwgZGV0YWlscyBv biB3aGF0CisrY29tbWFuZHMgY2FuIGFwcGVhciBpbiB0aGUgYHN5cycgZmlsZSwgc2VlICpub3Rl IHN5cyBGaWxlOjouCisrCisrICAgVGhpcyBpcyB0aGUgYHN5cycgZmlsZSB0aGF0IGlzIHVzZWQg YXQgYGFpcnMuY29tJy4gIFdlIHVzZSBhIHNpbmdsZQorK21vZGVtIHRvIGRpYWwgb3V0IHRvIGB1 dW5ldCcuICBUaGlzIGV4YW1wbGUgc2hvd3MgaG93IHlvdSBjYW4gc3BlY2lmeQorK3RoZSBwb3J0 IGFuZCBkaWFsZXIgaW5mb3JtYXRpb24gZGlyZWN0bHkgaW4gdGhlIGBzeXMnIGZpbGUgZm9yIHNp bXBsZQorK2Nhc2VzLiAgSXQgYWxzbyBzaG93cyB0aGUgdXNlIG9mIHRoZSBmb2xsb3dpbmc6Cisr CisrYGNhbGwtbG9naW4nCisrICAgICBVc2luZyBgY2FsbC1sb2dpbicgYW5kIGBjYWxsLXBhc3N3 b3JkJyBhbGxvd3MgdGhlIGRlZmF1bHQgbG9naW4KKysgICAgIGNoYXQgc2NyaXB0IHRvIGJlIHVz ZWQuICBJbiB0aGlzIGNhc2UsIHRoZSBsb2dpbiBuYW1lIGlzIHNwZWNpZmllZAorKyAgICAgaW4g dGhlIGNhbGwtb3V0IGxvZ2luIGZpbGUgKCpub3RlIENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lczo6 KS4KKysKKytgY2FsbC10aW1lZ3JhZGUnCisrICAgICBgdXVuZXQnIGlzIHJlcXVlc3RlZCB0byBu b3Qgc2VuZCB1cyBuZXdzIGR1cmluZyB0aGUgZGF5dGltZS4KKysKKytgY2hhdC1mYWlsJworKyAg ICAgSWYgdGhlIG1vZGVtIHJldHVybnMgYEJVU1knIG9yIGBOTyBDQVJSSUVSJyB0aGUgY2FsbCBp cworKyAgICAgaW1tZWRpYXRlbHkgYWJvcnRlZC4KKysKKytgcHJvdG9jb2wtcGFyYW1ldGVyJwor KyAgICAgU2luY2UgYHV1bmV0JyB0ZW5kcyB0byBiZSBzbG93LCB0aGUgZGVmYXVsdCB0aW1lb3V0 IGhhcyBiZWVuCisrICAgICBpbmNyZWFzZWQuCisrCisrCisrICAgVGhpcyBgc3lzJyBmaWxlIHJl bGllcyBvbiBjZXJ0YWluIGRlZmF1bHRzLiAgSXQgd2lsbCBhbGxvdyBgdXVuZXQnCisrdG8gcXVl dWUgdXAgYHJtYWlsJyBhbmQgYHJuZXdzJyBjb21tYW5kcy4gIEl0IHdpbGwgYWxsb3cgdXNlcnMg dG8KKytyZXF1ZXN0IGZpbGVzIGZyb20gYHV1bmV0JyBpbnRvIHRoZSBVVUNQIHB1YmxpYyBkaXJl Y3RvcnkuICBJdCB3aWxsCisrYWxzbyBhbGxvdyBgdXVuZXQnIHRvIHJlcXVlc3QgZmlsZXMgZnJv bSB0aGUgVVVDUCBwdWJsaWMgZGlyZWN0b3J5OyBpbgorK2ZhY3QgYHV1bmV0JyBuZXZlciByZXF1 ZXN0cyBmaWxlcywgYnV0IGZvciBhZGRpdGlvbmFsIHNlY3VyaXR5IHdlIGNvdWxkCisrYWRkIHRo ZSBsaW5lIGByZXF1ZXN0IGZhbHNlJy4KKysKKysgICAgICMgVGhlIGZvbGxvd2luZyBpbmZvcm1h dGlvbiBpcyBmb3IgdXVuZXQKKysgICAgIHN5c3RlbSB1dW5ldAorKworKyAgICAgIyBUaGUgbG9n aW4gbmFtZSBhbmQgcGFzc3dvcmQgYXJlIGtlcHQgaW4gdGhlIGNhbGxvdXQgcGFzc3dvcmQgZmls ZQorKyAgICAgY2FsbC1sb2dpbiAqCisrICAgICBjYWxsLXBhc3N3b3JkICoKKysKKysgICAgICMg V2UgY2FuIHNlbmQgYW55dGhpbmcgYXQgYW55IHRpbWUuCisrICAgICB0aW1lIGFueQorKworKyAg ICAgIyBEdXJpbmcgdGhlIGRheSB3ZSBvbmx5IGFjY2VwdCBncmFkZSBgWicgb3IgYWJvdmU7IGF0 IG90aGVyIHRpbWVzCisrICAgICAjIChub3QgbWVudGlvbmVkIGhlcmUpIHdlIGFjY2VwdCBhbGwg Z3JhZGVzLiAgdXVuZXQgcXVldWVzIHVwIG5ld3MKKysgICAgICMgYXQgZ3JhZGUgYGQnLCB3aGlj aCBpcyBsb3dlciB0aGFuIGBaJy4KKysgICAgIGNhbGwtdGltZWdyYWRlIFogV2swNzU1LTIzMDUs U3UxNjU1LTIzMDUKKysKKysgICAgICMgVGhlIHBob25lIG51bWJlci4KKysgICAgIHBob25lIDcz ODk0NDkKKysKKysgICAgICMgdXVuZXQgdGVuZHMgdG8gYmUgc2xvdywgc28gd2UgaW5jcmVhc2Ug dGhlIHRpbWVvdXQKKysgICAgIGNoYXQtdGltZW91dCAxMjAKKysKKysgICAgICMgV2UgYXJlIHVz aW5nIGEgcHJlY29uZmlndXJlZCBUZWxlYml0IDI1MDAuCisrICAgICBwb3J0IHR5cGUgbW9kZW0K KysgICAgIHBvcnQgZGV2aWNlIC9kZXYvdHR5ZDAKKysgICAgIHBvcnQgc3BlZWQgMTkyMDAKKysg ICAgIHBvcnQgY2FycmllciB0cnVlCisrICAgICBwb3J0IGRpYWxlciBjaGF0ICIiIEFUWlxyXGRc YyBPSyBBVERUXEQgQ09OTkVDVAorKyAgICAgcG9ydCBkaWFsZXIgY2hhdC1mYWlsIEJVU1kKKysg ICAgIHBvcnQgZGlhbGVyIGNoYXQtZmFpbCBOT1xzQ0FSUklFUgorKyAgICAgcG9ydCBkaWFsZXIg Y29tcGxldGUgXGRcZCsrK1xkXGRBVEhcclxjCisrICAgICBwb3J0IGRpYWxlciBhYm9ydCBcZFxk KysrXGRcZEFUSFxyXGMKKysKKysgICAgICMgSW5jcmVhc2UgdGhlIHRpbWVvdXQgYW5kIHRoZSBu dW1iZXIgb2YgcmV0cmllcy4KKysgICAgIHByb3RvY29sLXBhcmFtZXRlciBnIHRpbWVvdXQgMjAK KysgICAgIHByb3RvY29sLXBhcmFtZXRlciBnIHJldHJpZXMgMTAKKysKKysfCisrRmlsZTogdXVj cC5pbmZvLCAgTm9kZTogR2F0ZXdheSBFeGFtcGxlLCAgUHJldjogTGVhZiBFeGFtcGxlLCAgVXA6 IENvbmZpZ3VyYXRpb24gRXhhbXBsZXMKKysKKys1LjMuMyBHYXRld2F5IEV4YW1wbGUKKystLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysKKytNYW55IG9yZ2FuaXphdGlvbnMgaGF2ZSBzZXZlcmFsIGxv Y2FsIG1hY2hpbmVzIHdoaWNoIGFyZSBjb25uZWN0ZWQgYnkKKytVVUNQLCBhbmQgYSBzaW5nbGUg bWFjaGluZSB3aGljaCBjb25uZWN0cyB0byB0aGUgb3V0c2lkZSB3b3JsZC4gIFRoaXMKKytzaW5n bGUgbWFjaGluZSBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyBhICJnYXRld2F5IiBtYWNoaW5lLgor KworKyAgIEZvciB0aGlzIGV4YW1wbGUgSSB3aWxsIGFzc3VtZSBhIGZhaXJseSBzaW1wbGUgY2Fz ZS4gIEl0IHNob3VsZCBzdGlsbAorK3Byb3ZpZGUgYSBnb29kIGdlbmVyYWwgZXhhbXBsZS4gIFRo ZXJlIGFyZSB0aHJlZSBtYWNoaW5lcywgYGVsbWVyJywKKytgY29tdG9uJyBhbmQgYGJ1Z3MnLiAg YGVsbWVyJyBpcyB0aGUgZ2F0ZXdheSBtYWNoaW5lIGZvciB3aGljaCBJIHdpbGwKKytzaG93IHRo ZSBjb25maWd1cmF0aW9uIGZpbGUuICBgZWxtZXInIGNhbGxzIG91dCB0byBgdXVwc2knLiAgQXMg YW4KKythZGRpdGlvbmFsIGNvbXBsaWNhdGlvbiwgYHV1cHNpJyBrbm93cyBgZWxtZXInIGFzIGBh aXJzJzsgdGhpcyB3aWxsCisrc2hvdyBob3cgYSBtYWNoaW5lIGNhbiBoYXZlIG9uZSBuYW1lIG9u IGFuIGludGVybmFsIG5ldHdvcmsgYnV0IGEKKytkaWZmZXJlbnQgbmFtZSB0byB0aGUgZXh0ZXJu YWwgd29ybGQuICBgZWxtZXInIGhhcyB0d28gbW9kZW1zLiAgSXQgYWxzbworK2hhcyBhbiBUQ1Ag Y29ubmVjdGlvbiB0byBgdXVwc2knLCBidXQgc2luY2UgdGhhdCBpcyBzdXBwb3NlZCB0byBiZQor K3Jlc2VydmVkIGZvciBpbnRlcmFjdGl2ZSB3b3JrIChpdCBpcywgcGVyaGFwcywgb25seSBhIDk2 MDAgYmF1ZCBTTElQCisrbGluZSkgaXQgd2lsbCBvbmx5IHVzZSBpdCBpZiB0aGUgbW9kZW1zIGFy ZSBub3QgYXZhaWxhYmxlLgorKworKyAgIEEgbmV0d29yayB0aGlzIHNtYWxsIHdvdWxkIG5vcm1h bGx5IHVzZSBhIHNpbmdsZSBgc3lzJyBmaWxlLgorK0hvd2V2ZXIsIGZvciBwZWRhZ29naWNhbCBw dXJwb3NlcyBJIHdpbGwgc2hvdyB0d28gc2VwYXJhdGUgYHN5cycgZmlsZXMsCisrb25lIGZvciB0 aGUgbG9jYWwgc3lzdGVtcyBhbmQgb25lIGZvciBgdXVwc2knLiAgVGhpcyBpcyBkb25lIHdpdGgg dGhlCisrYHN5c2ZpbGUnIGNvbW1hbmQgaW4gdGhlIGBjb25maWcnIGZpbGUuICBIZXJlIGlzIHRo ZSBgY29uZmlnJyBmaWxlLgorKworKyAgICAgIyBUaGlzIGlzIGNvbmZpZworKyAgICAgIyBUaGUg bG9jYWwgc3lzIGZpbGUKKysgICAgIHN5c2ZpbGUgL3Vzci9sb2NhbC9saWIvdXVjcC9zeXMubG9j YWwKKysgICAgICMgVGhlIHJlbW90ZSBzeXMgZmlsZQorKyAgICAgc3lzZmlsZSAvdXNyL2xvY2Fs L2xpYi91dWNwL3N5cy5yZW1vdGUKKysKKysgICBVc2luZyB0aGUgZGVmYXVsdHMgZmVhdHVyZSBv ZiB0aGUgYHN5cycgZmlsZSBjYW4gZ3JlYXRseSBzaW1wbGlmeQorK3RoZSBsaXN0aW5nIG9mIGxv Y2FsIHN5c3RlbXMuICBIZXJlIGlzIGBzeXMubG9jYWwnLiAgTm90ZSB0aGF0IHRoaXMKKythc3N1 bWVzIHRoYXQgdGhlIGxvY2FsIHN5c3RlbXMgYXJlIHRydXN0ZWQ7IHRoZXkgYXJlIHBlcm1pdGVk IHRvIHJlcXVlc3QKKythbnkgd29ybGQgcmVhZGFibGUgZmlsZSBhbmQgdG8gd3JpdGUgZmlsZXMg aW50byBhbnkgd29ybGQgd3JpdGFibGUKKytkaXJlY3RvcnkuCisrCisrICAgICAjIFRoaXMgaXMg c3lzLmxvY2FsCisrICAgICAjIEdldCB0aGUgbG9naW4gbmFtZSBhbmQgcGFzc3dvcmQgdG8gdXNl IGZyb20gdGhlIGNhbGwtb3V0IGZpbGUKKysgICAgIGNhbGwtbG9naW4gKgorKyAgICAgY2FsbC1w YXNzd29yZCAqCisrCisrICAgICAjIFRoZSBzeXN0ZW1zIG11c3QgdXNlIGEgcGFydGljdWxhciBs b2dpbgorKyAgICAgY2FsbGVkLWxvZ2luIFVsb2NhbAorKworKyAgICAgIyBQZXJtaXQgc2VuZGlu ZyBhbnkgd29ybGQgcmVhZGFibGUgZmlsZQorKyAgICAgbG9jYWwtc2VuZCAvCisrICAgICByZW1v dGUtc2VuZCAvCisrCisrICAgICAjIFBlcm1pdCByZWNlaXZpbmcgaW50byBhbnkgd29ybGQgd3Jp dGFibGUgZGlyZWN0b3J5CisrICAgICBsb2NhbC1yZWNlaXZlIC8KKysgICAgIHJlbW90ZS1yZWNl aXZlIC8KKysKKysgICAgICMgQ2FsbCBhdCBhbnkgdGltZQorKyAgICAgdGltZSBhbnkKKysKKysg ICAgICMgVXNlIHBvcnQxLCB0aGVuIHBvcnQyCisrICAgICBwb3J0IHBvcnQxCisrCisrICAgICBh bHRlcm5hdGUKKysKKysgICAgIHBvcnQgcG9ydDIKKysKKysgICAgICMgTm93IGRlZmluZSB0aGUg c3lzdGVtcyB0aGVtc2VsdmVzLiAgQmVjYXVzZSBvZiBhbGwgdGhlIGRlZmF1bHRzIHdlCisrICAg ICAjIHVzZWQsIHRoZXJlIGlzIHZlcnkgbGl0dGxlIHRvIHNwZWNpZnkgZm9yIHRoZSBzeXN0ZW1z IHRoZW1zZWx2ZXMuCisrCisrICAgICBzeXN0ZW0gY29tdG9uCisrICAgICBwaG9uZSA1NTUxMjEy CisrCisrICAgICBzeXN0ZW0gYnVncworKyAgICAgcGhvbmUgNTU1MjQyNAorKworKyAgIFRoZSBg c3lzLnJlbW90ZScgZmlsZSBkZXNjcmliZXMgdGhlIGB1dXBzaScgY29ubmVjdGlvbi4gIFRoZQor K2BteW5hbWUnIGNvbW1hbmQgaXMgdXNlZCB0byBjaGFuZ2UgdGhlIFVVQ1AgbmFtZSB0byBgYWly cycgd2hlbiB0YWxraW5nCisrdG8gYHV1cHNpJy4KKysKKysgICAgICMgVGhpcyBpcyBzeXMucmVt b3RlCisrICAgICAjIERlZmluZSB1dXBzaQorKyAgICAgc3lzdGVtIHV1cHNpCisrCisrICAgICAj IFRoZSBsb2dpbiBuYW1lIGFuZCBwYXNzd29yZCBhcmUgaW4gdGhlIGNhbGwtb3V0IGZpbGUKKysg ICAgIGNhbGwtbG9naW4gKgorKyAgICAgY2FsbC1wYXNzd29yZCAqCisrCisrICAgICAjIFdlIGNh biBjYWxsIG91dCBhdCBhbnkgdGltZQorKyAgICAgdGltZSBhbnkKKysKKysgICAgICMgdXVwc2kg dXNlcyBhIHNwZWNpYWwgbG9naW4gbmFtZQorKyAgICAgY2FsbGVkLWxvZ2luIFV1dXBzaQorKwor KyAgICAgIyB1dXNwaSB0aGlua3Mgb2YgdXMgYXMgYGFpcnMnCisrICAgICBteW5hbWUgYWlycwor KworKyAgICAgIyBUaGUgcGhvbmUgbnVtYmVyCisrICAgICBwaG9uZSA1NTU0ODQ4CisrCisrICAg ICAjIFdlIHVzZSBwb3J0MiBmaXJzdCwgdGhlbiBwb3J0MSwgdGhlbiBUQ1AKKysKKysgICAgIHBv cnQgcG9ydDIKKysKKysgICAgIGFsdGVybmF0ZQorKworKyAgICAgcG9ydCBwb3J0MQorKworKyAg ICAgYWx0ZXJuYXRlCisrCisrICAgICAjIFdlIGRvbid0IGJvdGhlciB0byBtYWtlIGEgc3BlY2lh bCBlbnRyeSBpbiB0aGUgcG9ydCBmaWxlIGZvciBUQ1AsIHdlCisrICAgICAjIGp1c3QgZGVzY3Jp YmUgdGhlIGVudGlyZSBwb3J0IHJpZ2h0IGhlcmUuICBXZSB1c2UgYSBzcGVjaWFsIGNoYXQKKysg ICAgICMgc2NyaXB0IG92ZXIgVENQIGJlY2F1c2UgdGhlIHVzdWFsIG9uZSBjb25mdXNlcyBzb21l IFRDUCBzZXJ2ZXJzLgorKyAgICAgcG9ydCB0eXBlIFRDUAorKyAgICAgYWRkcmVzcyB1dS5wc2ku Y29tCisrICAgICBjaGF0IG9naW46IFxMIHdvcmQ6IFxQCisrCisrICAgVGhlIHBvcnRzIGFyZSBk ZWZpbmVkIGluIHRoZSBmaWxlIGBwb3J0JyAoKm5vdGUgcG9ydCBGaWxlOjopLiAgRm9yCisrdGhp cyBleGFtcGxlIHRoZXkgYXJlIGJvdGggY29ubmVjdGVkIHRvIHRoZSBzYW1lIHR5cGUgb2YgMjQw MCBiYXVkCisrSGF5ZXMtY29tcGF0aWJsZSBtb2RlbS4KKysKKysgICAgICMgVGhpcyBpcyBwb3J0 CisrCisrICAgICBwb3J0IHBvcnQxCisrICAgICB0eXBlIG1vZGVtCisrICAgICBkZXZpY2UgL2Rl di90dHlkMAorKyAgICAgZGlhbGVyIGhheWVzCisrICAgICBzcGVlZCAyNDAwCisrCisrICAgICBw b3J0IHBvcnQyCisrICAgICB0eXBlIG1vZGVtCisrICAgICBkZXZpY2UgL2Rldi90dHlkMQorKyAg ICAgZGlhbGVyIGhheWVzCisrICAgICBzcGVlZCAyNDAwCisrCisrICAgRGlhbGVycyBhcmUgZGVz Y3JpYmVkIGluIHRoZSBgZGlhbCcgZmlsZSAoKm5vdGUgZGlhbCBGaWxlOjopLgorKworKyAgICAg IyBUaGlzIGlzIGRpYWwKKysKKysgICAgIGRpYWxlciBoYXllcworKworKyAgICAgIyBUaGUgY2hh dCBzY3JpcHQgdXNlZCB0byBkaWFsIHRoZSBwaG9uZS4gIFxEIGlzIHRoZSBwaG9uZSBudW1iZXIu CisrICAgICBjaGF0ICIiIEFUWlxyXGRcYyBPSyBBVERUXEQgQ09OTkVDVAorKworKyAgICAgIyBJ ZiB3ZSBnZXQgQlVTWSBvciBOTyBDQVJSSUVSIHdlIGFib3J0IHRoZSBkaWFsIGltbWVkaWF0ZWx5 CisrICAgICBjaGF0LWZhaWwgQlVTWQorKyAgICAgY2hhdC1mYWlsIE5PXHNDQVJSSUVSCisrCisr ICAgICAjIFdoZW4gdGhlIGNhbGwgaXMgb3ZlciB3ZSBtYWtlIHN1cmUgd2UgaGFuZ3VwIHRoZSBt b2RlbS4KKysgICAgIGNvbXBsZXRlIFxkXGQrKytcZFxkQVRIXHJcYworKyAgICAgYWJvcnQgXGRc ZCsrK1xkXGRBVEhcclxjCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFRpbWUgU3Ry aW5ncywgIE5leHQ6IENoYXQgU2NyaXB0cywgIFByZXY6IENvbmZpZ3VyYXRpb24gRXhhbXBsZXMs ICBVcDogQ29uZmlndXJhdGlvbiBGaWxlcworKworKzUuNCBUaW1lIFN0cmluZ3MKKys9PT09PT09 PT09PT09PT09CisrCisrU2V2ZXJhbCBjb21tYW5kcyB1c2UgdGltZSBzdHJpbmdzIHRvIHNwZWNp ZnkgYSByYW5nZSBvZiB0aW1lcy4gIFRoaXMKKytzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8gd3Jp dGUgdGltZSBzdHJpbmdzLgorKworKyAgIEEgdGltZSBzdHJpbmcgbWF5IGJlIGEgbGlzdCBvZiBz aW1wbGUgdGltZSBzdHJpbmdzIHNlcGFyYXRlZCB3aXRoIGEKKyt2ZXJ0aWNhbCBiYXIgYHwnIG9y IGEgY29tbWEgYCwnLgorKworKyAgIEVhY2ggc2ltcGxlIHRpbWUgc3RyaW5nIG11c3QgYmVnaW4g d2l0aCBgU3UnLCBgTW8nLCBgVHUnLCBgV2UnLAorK2BUaCcsIGBGcicsIG9yIGBTYScsIG9yIGBX aycgZm9yIGFueSB3ZWVrZGF5LCBvciBgQW55JyBmb3IgYW55IGRheS4KKysKKysgICBGb2xsb3dp bmcgdGhlIGRheSBtYXkgYmUgYSByYW5nZSBvZiBob3VycyBzZXBhcmF0ZWQgd2l0aCBhIGh5cGhl bgorK3VzaW5nIDI0IGhvdXIgdGltZS4gIFRoZSByYW5nZSBvZiBob3VycyBtYXkgY3Jvc3MgMDsg Zm9yIGV4YW1wbGUKKytgMjMwMC0wNzAwJyBtZWFucyBhbnkgdGltZSBleGNlcHQgNyBBTSB0byAx MSBQTS4gIElmIG5vIHRpbWUgaXMgZ2l2ZW4sCisrY2FsbHMgbWF5IGJlIG1hZGUgYXQgYW55IHRp bWUgb24gdGhlIHNwZWNpZmllZCBkYXkocykuCisrCisrICAgVGhlIHRpbWUgc3RyaW5nIG1heSBh bHNvIGJlIHRoZSBzaW5nbGUgd29yZCBgTmV2ZXInLCB3aGljaCBkb2VzIG5vdAorK21hdGNoIGFu eSB0aW1lLiAgVGhlIHRpbWUgc3RyaW5nIG1heSBhbHNvIGJlIGEgc2luZ2xlIHdvcmQgd2l0aCBh IG5hbWUKKytkZWZpbmVkIGluIGEgcHJldmlvdXMgYHRpbWV0YWJsZScgY29tbWFuZCAoKm5vdGUg TWlzY2VsbGFuZW91cworKyhjb25maWcpOjopLgorKworKyAgIEhlcmUgYXJlIGEgZmV3IHNhbXBs ZSB0aW1lIHN0cmluZ3Mgd2l0aCBhbiBleHBsYW5hdGlvbiBvZiB3aGF0IHRoZXkKKyttZWFuLgor KworK2BXazIzMDUtMDg1NSxTYSxTdTIzMDUtMTY1NScKKysgICAgIFRoaXMgbWVhbnMgd2Vla2Rh eXMgYmVmb3JlIDg6NTUgQU0gb3IgYWZ0ZXIgMTE6MDUgUE0sIGFueSB0aW1lCisrICAgICBTYXR1 cmRheSwgb3IgU3VuZGF5IGJlZm9yZSA0OjU1IFBNIG9yIGFmdGVyIDExOjA1IFBNLiAgVGhlc2Ug YXJlCisrICAgICBhcHByb3hpbWF0ZWx5IHRoZSB0aW1lcyBkdXJpbmcgd2hpY2ggbmlnaHQgcmF0 ZXMgYXBwbHkgdG8gcGhvbmUKKysgICAgIGNhbGxzIGluIHRoZSBVLlMuQS4gIE5vdGUgdGhhdCB0 aGlzIHRpbWUgc3RyaW5nIHVzZXMsIGZvciBleGFtcGxlLAorKyAgICAgYDIzMDUnIHJhdGhlciB0 aGFuIGAyMzAwJzsgdGhpcyB3aWxsIGVuc3VyZSBhIGNoZWFwIHJhdGUgcGhvbmUKKysgICAgIGNh bGwgZXZlbiBpZiB0aGUgY29tcHV0ZXIgY2xvY2sgaXMgcnVubmluZyB1cCB0byBmaXZlIG1pbnV0 ZXMKKysgICAgIGFoZWFkIG9mIHRoZSByZWFsIHRpbWUuCisrCisrYFdrMDkwNS0yMjU1LFN1MTcw NS0yMjU1JworKyAgICAgVGhpcyBtZWFucyB3ZWVrZGF5cyBmcm9tIDk6MDUgQU0gdG8gMTA6NTUg UE0sIG9yIFN1bmRheSBmcm9tIDU6MDUKKysgICAgIFBNIHRvIDEwOjU1IFBNLiAgVGhpcyBpcyBh cHByb3hpbWF0ZWx5IHRoZSBvcHBvc2l0ZSBvZiB0aGUKKysgICAgIHByZXZpb3VzIGV4YW1wbGUu CisrCisrYEFueScKKysgICAgIFRoaXMgbWVhbnMgYW55IGRheS4gIFNpbmNlIG5vIHRpbWUgaXMg c3BlY2lmaWVkLCBpdCBtZWFucyBhbnkgdGltZQorKyAgICAgb24gYW55IGRheS4KKysKKysKKysf CisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogQ2hhdCBTY3JpcHRzLCAgTmV4dDogY29uZmlnIEZp bGUsICBQcmV2OiBUaW1lIFN0cmluZ3MsICBVcDogQ29uZmlndXJhdGlvbiBGaWxlcworKworKzUu NSBDaGF0IFNjcmlwdHMKKys9PT09PT09PT09PT09PT09CisrCisrQ2hhdCBzY3JpcHRzIGFyZSB1 c2VkIGluIHNldmVyYWwgZGlmZmVyZW50IHBsYWNlcywgc3VjaCBhcyBkaWFsaW5nIG91dAorK29u IG1vZGVtcyBvciBsb2dnaW5nIGluIHRvIHJlbW90ZSBzeXN0ZW1zLiAgQ2hhdCBzY3JpcHRzIGFy ZSBtYWRlIHVwIG9mCisrcGFpcnMgb2Ygc3RyaW5ncy4gIFRoZSBwcm9ncmFtIHdhaXRzIHVudGls IGl0IHNlZXMgdGhlIGZpcnN0IHN0cmluZywKKytrbm93biBhcyB0aGUgImV4cGVjdCIgc3RyaW5n LCBhbmQgdGhlbiBzZW5kcyBvdXQgdGhlIHNlY29uZCBzdHJpbmcsIHRoZQorKyJzZW5kIiBzdHJp bmcuCisrCisrICAgRWFjaCBjaGF0IHNjcmlwdCBpcyBkZWZpbmVkIHVzaW5nIGEgc2V0IG9mIGNv bW1hbmRzLiAgVGhlc2UgY29tbWFuZHMKKythbHdheXMgZW5kIGluIGEgc3RyaW5nIGJlZ2lubmlu ZyB3aXRoIGBjaGF0JywgYnV0IG1heSBzdGFydCB3aXRoCisrZGlmZmVyZW50IHN0cmluZ3MuICBG b3IgZXhhbXBsZSwgaW4gdGhlIGBzeXMnIGZpbGUgdGhlcmUgaXMgb25lIHNldCBvZgorK2NvbW1h bmRzIGJlZ2lubmluZyB3aXRoIGBjaGF0JyBhbmQgYW5vdGhlciBzZXQgYmVnaW5uaW5nIHdpdGgK KytgY2FsbGVkLWNoYXQnLiAgVGhlIHByZWZpeGVzIGFyZSBvbmx5IHVzZWQgdG8gZGlzYW1iaWd1 YXRlIGRpZmZlcmVudAorK3R5cGVzIG9mIGNoYXQgc2NyaXB0cywgYW5kIHRoaXMgc2VjdGlvbiBp Z25vcmVzIHRoZSBwcmVmaXhlcyB3aGVuCisrZGVzY3JpYmluZyB0aGUgY29tbWFuZHMuCisrCisr YGNoYXQgU1RSSU5HUycKKysgICAgIFNwZWNpZnkgYSBjaGF0IHNjcmlwdC4gIFRoZSBhcmd1bWVu dHMgdG8gdGhlIGBjaGF0JyBjb21tYW5kIGFyZQorKyAgICAgcGFpcnMgb2Ygc3RyaW5ncyBzZXBh cmF0ZWQgYnkgd2hpdGVzcGFjZS4gIFRoZSBmaXJzdCBzdHJpbmcgb2YKKysgICAgIGVhY2ggcGFp ciBpcyBhbiBleHBlY3Qgc3RyaW5nLCB0aGUgc2Vjb25kIGlzIGEgc2VuZCBzdHJpbmcuICBUaGUK KysgICAgIHByb2dyYW0gd2lsbCB3YWl0IGZvciB0aGUgZXhwZWN0IHN0cmluZyB0byBhcHBlYXI7 IHdoZW4gaXQgZG9lcywKKysgICAgIHRoZSBwcm9ncmFtIHdpbGwgc2VuZCB0aGUgc2VuZCBzdHJp bmcuICBJZiB0aGUgZXhwZWN0IHN0cmluZyBkb2VzCisrICAgICBub3QgYXBwZWFyIHdpdGhpbiBh IGNlcnRhaW4gbnVtYmVyIG9mIHNlY29uZHMgKGFzIHNldCBieSB0aGUKKysgICAgIGBjaGF0LXRp bWVvdXQnIGNvbW1hbmQpLCB0aGUgY2hhdCBzY3JpcHQgZmFpbHMgYW5kLCB0eXBpY2FsbHksIHRo ZQorKyAgICAgY2FsbCBpcyBhYm9ydGVkLiAgSWYgdGhlIGZpbmFsIGV4cGVjdCBzdHJpbmcgaXMg c2VlbiAoYW5kIHRoZQorKyAgICAgb3B0aW9uYWwgZmluYWwgc2VuZCBzdHJpbmcgaGFzIGJlZW4g c2VudCksIHRoZSBjaGF0IHNjcmlwdCBpcworKyAgICAgc3VjY2Vzc2Z1bC4KKysKKysgICAgIEFu IGV4cGVjdCBzdHJpbmcgbWF5IGNvbnRhaW4gYWRkaXRpb25hbCBzdWJzZW5kIGFuZCBzdWJleHBl Y3QKKysgICAgIHN0cmluZ3MsIHNlcGFyYXRlZCBieSBoeXBoZW5zLiAgSWYgdGhlIGV4cGVjdCBz dHJpbmcgaXMgbm90IHNlZW4sCisrICAgICB0aGUgc3Vic2VuZCBzdHJpbmcgaXMgc2VudCBhbmQg dGhlIGNoYXQgc2NyaXB0IGNvbnRpbnVlcyBieQorKyAgICAgd2FpdGluZyBmb3IgdGhlIHN1YmV4 cGVjdCBzdHJpbmcuICBUaGlzIG1lYW5zIHRoYXQgYSBoeXBoZW4gbWF5CisrICAgICBub3QgYXBw ZWFyIGluIGFuIGV4cGVjdCBzdHJpbmc7IG9uIGFuIEFTQ0lJIHN5c3RlbSwgdXNlIGBcMDU1Jwor KyAgICAgaW5zdGVhZC4KKysKKysgICAgIEFuIGV4cGVjdCBzdHJpbmcgbWF5IHNpbXBseSBiZSBg IiInLCBtZWFuaW5nIHRvIHNraXAgdGhlIGV4cGVjdAorKyAgICAgcGhhc2UuICBPdGhlcndpc2Us IHRoZSBmb2xsb3dpbmcgZXNjYXBlIGNoYXJhY3RlcnMgbWF5IGFwcGVhciBpbgorKyAgICAgZXhw ZWN0IHN0cmluZ3M6CisrCisrICAgIGBcYicKKysgICAgICAgICAgYSBiYWNrc3BhY2UgY2hhcmFj dGVyCisrCisrICAgIGBcbicKKysgICAgICAgICAgYSBuZXdsaW5lIG9yIGxpbmUgZmVlZCBjaGFy YWN0ZXIKKysKKysgICAgYFxOJworKyAgICAgICAgICBhIG51bGwgY2hhcmFjdGVyIChmb3IgSERC IGNvbXBhdGliaWxpdHkpCisrCisrICAgIGBccicKKysgICAgICAgICAgYSBjYXJyaWFnZSByZXR1 cm4gY2hhcmFjdGVyCisrCisrICAgIGBccycKKysgICAgICAgICAgYSBzcGFjZSBjaGFyYWN0ZXIK KysKKysgICAgYFx0JworKyAgICAgICAgICBhIHRhYiBjaGFyYWN0ZXIKKysKKysgICAgYFxcJwor KyAgICAgICAgICBhIGJhY2tzbGFzaCBjaGFyYWN0ZXIKKysKKysgICAgYFxEREQnCisrICAgICAg ICAgIGNoYXJhY3RlciBEREQsIHdoZXJlIERERCBhcmUgdXAgdG8gdGhyZWUgb2N0YWwgZGlnaXRz CisrCisrICAgIGBceERERCcKKysgICAgICAgICAgY2hhcmFjdGVyIERERCwgd2hlcmUgREREIGFy ZSBoZXhhZGVjaW1hbCBkaWdpdHMuCisrCisrICAgICBBcyBpbiBDLCB0aGVyZSBtYXkgYmUgdXAg dG8gdGhyZWUgb2N0YWwgZGlnaXRzIGZvbGxvd2luZyBhCisrICAgICBiYWNrc2xhc2gsIGJ1dCB0 aGUgaGV4YWRlY2ltYWwgZXNjYXBlIHNlcXVlbmNlIGNvbnRpbnVlcyBhcyBmYXIgYXMKKysgICAg IHBvc3NpYmxlLiAgVG8gZm9sbG93IGEgaGV4YWRlY2ltYWwgZXNjYXBlIHNlcXVlbmNlIHdpdGgg YSBoZXgKKysgICAgIGRpZ2l0LCBpbnRlcnBvc2UgYSBzZW5kIHN0cmluZyBvZiBgIiInLgorKwor KyAgICAgQSBjaGF0IHNjcmlwdCBleHBlY3Qgc3RyaW5nIG1heSBhbHNvIHNwZWNpZnkgYSB0aW1l b3V0LiAgVGhpcyBpcworKyAgICAgZG9uZSBieSB1c2luZyB0aGUgZXNjYXBlIHNlcXVlbmNlIGBc V1NFQ09ORFMnLiAgVGhpcyBlc2NhcGUKKysgICAgIHNlcXVlbmNlIG1heSBvbmx5IGFwcGVhciBh dCB0aGUgdmVyeSBlbmQgb2YgdGhlIGV4cGVjdCBzdHJpbmcuICBJdAorKyAgICAgdGVtcG9yYXJp bHkgb3ZlcnJpZGVzIHRoZSB0aW1lb3V0IHNldCBieSBgY2hhdC10aW1lb3V0JyAoZGVzY3JpYmVk CisrICAgICBiZWxvdykgb25seSBmb3IgdGhlIGV4cGVjdCBzdHJpbmcgdG8gd2hpY2ggaXQgaXMg YXR0YWNoZWQuCisrCisrICAgICBBIHNlbmQgc3RyaW5nIG1heSBzaW1wbHkgYmUgYCIiJyB0byBz a2lwIHRoZSBzZW5kIHBoYXNlLgorKyAgICAgT3RoZXJ3aXNlLCBhbGwgb2YgdGhlIGVzY2FwZSBj aGFyYWN0ZXJzIGxlZ2FsIGZvciBleHBlY3Qgc3RyaW5ncworKyAgICAgbWF5IGJlIHVzZWQsIGFu ZCB0aGUgZm9sbG93aW5nIGVzY2FwZSBjaGFyYWN0ZXJzIGFyZSBhbHNvCisrICAgICBwZXJtaXR0 ZWQ6CisrCisrICAgIGBFT1QnCisrICAgICAgICAgIHNlbmQgYW4gZW5kIG9mIHRyYW5zbWlzc2lv biBjaGFyYWN0ZXIgKGBeRCcpCisrCisrICAgIGBCUkVBSycKKysgICAgICAgICAgc2VuZCBhIGJy ZWFrIGNoYXJhY3RlciAobWF5IG5vdCB3b3JrIG9uIGFsbCBzeXN0ZW1zKQorKworKyAgICBgXGMn CisrICAgICAgICAgIHN1cHByZXNzIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiBhdCBlbmQgb2Yg c2VuZCBzdHJpbmcKKysKKysgICAgYFxkJworKyAgICAgICAgICBkZWxheSBzZW5kaW5nIGZvciAx IG9yIDIgc2Vjb25kcworKworKyAgICBgXGUnCisrICAgICAgICAgIGRpc2FibGUgZWNobyBjaGVj a2luZworKworKyAgICBgXEUnCisrICAgICAgICAgIGVuYWJsZSBlY2hvIGNoZWNraW5nCisrCisr ICAgIGBcSycKKysgICAgICAgICAgc2FtZSBhcyBgQlJFQUsnCisrCisrICAgIGBccCcKKysgICAg ICAgICAgcGF1c2Ugc2VuZGluZyBmb3IgYSBmcmFjdGlvbiBvZiBhIHNlY29uZAorKworKyAgICBg XE0nCisrICAgICAgICAgIGRvIG5vdCByZXF1aXJlIGNhcnJpZXIgc2lnbmFsCisrCisrICAgIGBc bScKKysgICAgICAgICAgcmVxdWlyZSBjYXJyaWVyIHNpZ25hbCAoZmFpbCBpZiBub3QgcHJlc2Vu dCkKKysKKysgICAgIFNvbWUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhdCBzY3JpcHRzIGFsc28gZGVm aW5lIGFkZGl0aW9uYWwgZXNjYXBlCisrICAgICBzZXF1ZW5jZXMgdGhhdCBtYXkgYXBwZWFyIGlu IHRoZSBzZW5kIHN0cmluZy4gIEZvciBleGFtcGxlLCB0aGUKKysgICAgIGxvZ2luIGNoYXQgc2Ny aXB0IGRlZmluZXMgYFxMJyBhbmQgYFxQJyB0byBzZW5kIHRoZSBsb2dpbiBuYW1lIGFuZAorKyAg ICAgcGFzc3dvcmQsIHJlc3BlY3RpdmVseS4KKysKKysgICAgIEEgY2FycmlhZ2UgcmV0dXJuIHdp bGwgYmUgc2VudCBhdCB0aGUgZW5kIG9mIGVhY2ggc2VuZCBzdHJpbmcsCisrICAgICB1bmxlc3Mg dGhlIGBcYycgZXNjYXBlIHNlcXVlbmNlIGFwcGVhcnMgaW4gdGhlIHN0cmluZy4gIE5vdGUgdGhh dAorKyAgICAgc29tZSBVVUNQIHBhY2thZ2VzIHVzZSBgXGInIGZvciBicmVhaywgYnV0IGhlcmUg aXQgbWVhbnMgYmFja3NwYWNlLgorKworKyAgICAgRWNobyBjaGVja2luZyBtZWFucyB0aGF0IGFm dGVyIHdyaXRpbmcgZWFjaCBjaGFyYWN0ZXIgdGhlIHByb2dyYW0KKysgICAgIHdpbGwgd2FpdCB1 bnRpbCB0aGUgY2hhcmFjdGVyIGlzIGVjaG9lZC4gIEVjaG8gY2hlY2tpbmcgbXVzdCBiZQorKyAg ICAgdHVybmVkIG9uIHNlcGFyYXRlbHkgZm9yIGVhY2ggc2VuZCBzdHJpbmcgZm9yIHdoaWNoIGl0 IGlzIGRlc2lyZWQ7CisrICAgICBpdCB3aWxsIGJlIHR1cm5lZCBvbiBmb3IgY2hhcmFjdGVycyBm b2xsb3dpbmcgYFxFJyBhbmQgdHVybmVkIG9mZgorKyAgICAgZm9yIGNoYXJhY3RlcnMgZm9sbG93 aW5nIGBcZScuCisrCisrICAgICBXaGVuIHVzZWQgd2l0aCBhIHBvcnQgd2hpY2ggZG9lcyBub3Qg c3VwcG9ydCB0aGUgY2FycmllciBzaWduYWwsCisrICAgICBhcyBzZXQgYnkgdGhlIGBjYXJyaWVy JyBjb21tYW5kIGluIHRoZSBwb3J0IGZpbGUsIGBcTScgYW5kIGBcbScKKysgICAgIGFyZSBpZ25v cmVkLiAgU2ltaWxhcmx5LCB3aGVuIHVzZWQgaW4gYSBkaWFsZXIgY2hhdCBzY3JpcHQgd2l0aCBh CisrICAgICBkaWFsZXIgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCB0aGUgY2FycmllciBzaWduYWws IGFzIHNldCBieSB0aGUKKysgICAgIGBjYXJyaWVyJyBjb21tYW5kIGluIHRoZSBkaWFsIGZpbGUs IGBcTScgYW5kIGBcbScgYXJlIGlnbm9yZWQuCisrCisrYGNoYXQtdGltZW91dCBOVU1CRVInCisr ICAgICBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBmb3IgYW4gZXhwZWN0IHN0cmluZyBp biB0aGUgY2hhdAorKyAgICAgc2NyaXB0LCBiZWZvcmUgdGltaW5nIG91dCBhbmQgc2VuZGluZyB0 aGUgbmV4dCBzdWJzZW5kLCBvciBmYWlsaW5nCisrICAgICB0aGUgY2hhdCBzY3JpcHQgZW50aXJl bHkuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMCBmb3IgYSBsb2dpbgorKyAgICAgY2hhdCBvciA2 MCBmb3IgYW55IG90aGVyIHR5cGUgb2YgY2hhdC4KKysKKytgY2hhdC1mYWlsIFNUUklORycKKysg ICAgIElmIHRoZSBTVFJJTkcgaXMgc2VlbiBhdCBhbnkgdGltZSBkdXJpbmcgYSBjaGF0IHNjcmlw dCwgdGhlIGNoYXQKKysgICAgIHNjcmlwdCBpcyBhYm9ydGVkLiAgVGhlIHN0cmluZyBtYXkgbm90 IGNvbnRhaW4gYW55IHdoaXRlc3BhY2UKKysgICAgIGNoYXJhY3RlcnM6IGVzY2FwZSBzZXF1ZW5j ZXMgbXVzdCBiZSB1c2VkIGZvciB0aGVtLiAgTXVsdGlwbGUKKysgICAgIGBjaGF0LWZhaWwnIGNv bW1hbmRzIG1heSBhcHBlYXIgaW4gYSBzaW5nbGUgY2hhdCBzY3JpcHQuICBUaGUKKysgICAgIGRl ZmF1bHQgaXMgdG8gaGF2ZSBub25lLgorKworKyAgICAgVGhpcyBwZXJtaXRzIGEgY2hhdCBzY3Jp cHQgdG8gYmUgcXVpY2tseSBhYm9ydGVkIGlmIGFuIGVycm9yCisrICAgICBzdHJpbmcgaXMgc2Vl bi4gIEZvciBleGFtcGxlLCBhIHNjcmlwdCB1c2VkIHRvIGRpYWwgb3V0IG9uIGEgbW9kZW0KKysg ICAgIG1pZ2h0IHVzZSB0aGUgY29tbWFuZCBgY2hhdC1mYWlsIEJVU1knIHRvIHN0b3AgdGhlIGNo YXQgc2NyaXB0CisrICAgICBpbW1lZGlhdGVseSBpZiB0aGUgc3RyaW5nIGBCVVNZJyB3YXMgc2Vl bi4KKysKKysgICAgIFRoZSBgY2hhdC1mYWlsJyBzdHJpbmdzIGFyZSBjb25zaWRlcmVkIGluIHRo ZSBvcmRlciB0aGV5IGFyZQorKyAgICAgbGlzdGVkLCBzbyBpZiBvbmUgc3RyaW5nIGlzIGEgc3Vm Zml4IG9mIGFub3RoZXIgdGhlIGxvbmdlciBvbmUKKysgICAgIHNob3VsZCBiZSBsaXN0ZWQgZmly c3QuICBUaGlzIGFmZmVjdHMgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpY2ggd2lsbAorKyAgICAgYmUg bG9nZ2VkLiAgT2YgY291cnNlLCBpZiBvbmUgc3RyaW5nIGlzIGNvbnRhaW5lZCB3aXRoaW4gYW5v dGhlciwKKysgICAgIGJ1dCBpcyBub3QgYSBzdWZmaXgsIHRoZSBzbWFsbGVyIHN0cmluZyB3aWxs IGFsd2F5cyBiZSBmb3VuZAorKyAgICAgYmVmb3JlIHRoZSBsYXJnZXIgc3RyaW5nIGNvdWxkIG1h dGNoLgorKworK2BjaGF0LXNldmVuLWJpdCBCT09MRUFOJworKyAgICAgSWYgdGhlIGFyZ3VtZW50 IGlzIHRydWUsIGFsbCBpbmNvbWluZyBjaGFyYWN0ZXJzIGFyZSBzdHJpcHBlZCB0bworKyAgICAg c2V2ZW4gYml0cyB3aGVuIGJlaW5nIGNvbXBhcmVkIHRvIHRoZSBleHBlY3Qgc3RyaW5nLiAgT3Ro ZXJ3aXNlCisrICAgICBhbGwgZWlnaHQgYml0cyBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4g IFRoZSBkZWZhdWx0IGlzIHRydWUsCisrICAgICBiZWNhdXNlIHNvbWUgVW5peCBzeXN0ZW1zIGdl bmVyYXRlIHBhcml0eSBiaXRzIGR1cmluZyB0aGUgbG9naW4KKysgICAgIHByb21wdCB3aGljaCBt dXN0IGJlIGlnbm9yZWQgd2hpbGUgcnVubmluZyBhIGNoYXQgc2NyaXB0LiAgVGhpcworKyAgICAg aGFzIG5vIGVmZmVjdCBvbiBhbnkgYGNoYXQtcHJvZ3JhbScsIHdoaWNoIG11c3QgaWdub3JlIHBh cml0eSBieQorKyAgICAgaXRzZWxmIGlmIG5lY2Vzc2FyeS4KKysKKytgY2hhdC1wcm9ncmFtIFNU UklOR1MnCisrICAgICBTcGVjaWZ5IGEgcHJvZ3JhbSB0byBydW4gYmVmb3JlIGV4ZWN1dGluZyB0 aGUgY2hhdCBzY3JpcHQuICBUaGlzCisrICAgICBwcm9ncmFtIGNvdWxkIHJ1biBpdHMgb3duIHZl cnNpb24gb2YgYSBjaGF0IHNjcmlwdCwgb3IgaXQgY291bGQgZG8KKysgICAgIHdoYXRldmVyIGl0 IHdhbnRzLiAgSWYgYm90aCBgY2hhdC1wcm9ncmFtJyBhbmQgYGNoYXQnIGFyZQorKyAgICAgc3Bl Y2lmaWVkLCB0aGUgcHJvZ3JhbSBpcyBleGVjdXRlZCBmaXJzdCBmb2xsb3dlZCBieSB0aGUgY2hh dAorKyAgICAgc2NyaXB0LgorKworKyAgICAgVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBgY2hh dC1wcm9ncmFtJyBjb21tYW5kIGlzIHRoZSBwcm9ncmFtCisrICAgICBuYW1lIHRvIHJ1bi4gIFRo ZSByZW1haW5pbmcgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIHByb2dyYW0uCisrICAgICBU aGUgZm9sbG93aW5nIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIHJlY29nbml6ZWQgaW4gdGhlIGFyZ3Vt ZW50czoKKysKKysgICAgYFxZJworKyAgICAgICAgICBwb3J0IGRldmljZSBuYW1lCisrCisrICAg IGBcUycKKysgICAgICAgICAgcG9ydCBzcGVlZAorKworKyAgICBgXFwnCisrICAgICAgICAgIGJh Y2tzbGFzaAorKworKyAgICAgU29tZSBzcGVjaWZpYyB1c2VzIG9mIGBjaGF0LXByb2dyYW0nIGRl ZmluZSBhZGRpdGlvbmFsIGVzY2FwZQorKyAgICAgc2VxdWVuY2VzLgorKworKyAgICAgQXJndW1l bnRzIG90aGVyIHRoYW4gZXNjYXBlIHNlcXVlbmNlcyBhcmUgcGFzc2VkIGV4YWN0bHkgYXMgdGhl eQorKyAgICAgYXBwZWFyIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUsIGV4Y2VwdCB0aGF0IHNl cXVlbmNlcyBvZgorKyAgICAgd2hpdGVzcGFjZSBhcmUgY29tcHJlc3NlZCB0byBhIHNpbmdsZSBz cGFjZSBjaGFyYWN0ZXIgKHRoaXMKKysgICAgIGV4Y2VwdGlvbiBtYXkgYmUgcmVtb3ZlZCBpbiB0 aGUgZnV0dXJlKS4KKysKKysgICAgIElmIHRoZSBgY2hhdC1wcm9ncmFtJyBjb21tYW5kIGlzIG5v dCB1c2VkLCBubyBwcm9ncmFtIGlzIHJ1bi4KKysKKysgICAgIE9uIFVuaXgsIHRoZSBzdGFuZGFy ZCBpbnB1dCBhbmQgc3RhbmRhcmQgb3V0cHV0IG9mIHRoZSBwcm9ncmFtCisrICAgICB3aWxsIGJl IGF0dGFjaGVkIHRvIHRoZSBwb3J0IGluIHVzZS4gIEFueXRoaW5nIHRoZSBwcm9ncmFtIHdyaXRl cworKyAgICAgdG8gc3RhbmRhcmQgZXJyb3Igd2lsbCBiZSB3cml0dGVuIHRvIHRoZSBVVUNQIGxv ZyBmaWxlLiAgTm8gb3RoZXIKKysgICAgIGZpbGUgZGVzY3JpcHRvcnMgd2lsbCBiZSBvcGVuLiAg SWYgdGhlIHByb2dyYW0gZG9lcyBub3QgZXhpdCB3aXRoCisrICAgICBhIHN0YXR1cyBvZiAwLCBp dCB3aWxsIGJlIGFzc3VtZWQgdG8gaGF2ZSBmYWlsZWQuICBUaGlzIG1lYW5zIHRoYXQKKysgICAg IHRoZSBkaWFsaW5nIHByb2dyYW1zIHVzZWQgYnkgc29tZSB2ZXJzaW9ucyBvZiBIREIgbWF5IG5v dCBiZSB1c2VkCisrICAgICBkaXJlY3RseSwgYnV0IHlvdSBtYXkgYmUgYWJsZSB0byBydW4gdGhl bSB2aWEgdGhlIGBkaWFsSERCJworKyAgICAgcHJvZ3JhbSBpbiB0aGUgYGNvbnRyaWInIGRpcmVj dG9yeS4KKysKKysgICAgIFRoZSBwcm9ncmFtIHdpbGwgYmUgcnVuIGFzIHRoZSBgdXVjcCcgdXNl ciwgYW5kIHRoZSBlbnZpcm9ubWVudAorKyAgICAgd2lsbCBiZSB0aGF0IG9mIHRoZSBwcm9jZXNz IHRoYXQgc3RhcnRlZCBgdXVjaWNvJywgc28gY2FyZSBtdXN0IGJlCisrICAgICB0YWtlbiB0byBt YWludGFpbiBzZWN1cml0eS4KKysKKysgICAgIE5vIHNlYXJjaCBwYXRoIGlzIHVzZWQgdG8gZmlu ZCB0aGUgcHJvZ3JhbTsgYSBmdWxsIGZpbGUgbmFtZSBtdXN0CisrICAgICBiZSBnaXZlbi4gIElm IHRoZSBwcm9ncmFtIGlzIGFuIGV4ZWN1dGFibGUgc2hlbGwgc2NyaXB0LCBpdCB3aWxsCisrICAg ICBiZSBwYXNzZWQgdG8gYC9iaW4vc2gnIGV2ZW4gb24gc3lzdGVtcyB3aGljaCBhcmUgdW5hYmxl IHRvIGV4ZWN1dGUKKysgICAgIHNoZWxsIHNjcmlwdHMuCisrCisrCisrICAgSGVyZSBpcyBhIHNp bXBsZSBleGFtcGxlIG9mIGEgY2hhdCBzY3JpcHQgdGhhdCBtaWdodCBiZSB1c2VkIHRvCisrcmVz ZXQgYSBIYXllcyBjb21wYXRpYmxlIG1vZGVtLgorKworKyAgICAgY2hhdCAiIiBBVFogT0stQVRa LU9LCisrCisrICAgVGhlIGZpcnN0IGV4cGVjdCBzdHJpbmcgaXMgYCIiJywgc28gaXQgaXMgaWdu b3JlZC4gIFRoZSBjaGF0IHNjcmlwdAorK3RoZW4gc2VuZHMgYEFUWicuICBJZiB0aGUgbW9kZW0g cmVzcG9uZHMgd2l0aCBgT0snLCB0aGUgY2hhdCBzY3JpcHQKKytmaW5pc2hlcy4gIElmIDYwIHNl Y29uZHMgKHRoZSBkZWZhdWx0IHRpbWVvdXQpIHBhc3MgYmVmb3JlIHNlZWluZyBgT0snLAorK3Ro ZSBjaGF0IHNjcmlwdCBzZW5kcyBhbm90aGVyIGBBVFonLiAgSWYgaXQgdGhlbiBzZWVzIGBPSycs IHRoZSBjaGF0Cisrc2NyaXB0IHN1Y2NlZWRzLiAgT3RoZXJ3aXNlLCB0aGUgY2hhdCBzY3JpcHQg ZmFpbHMuCisrCisrICAgRm9yIGEgbW9yZSBjb21wbGV4IGNoYXQgc2NyaXB0IGV4YW1wbGUsIHNl ZSAqbm90ZSBMb2dnaW5nIEluOjouCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGNv bmZpZyBGaWxlLCAgTmV4dDogc3lzIEZpbGUsICBQcmV2OiBDaGF0IFNjcmlwdHMsICBVcDogQ29u ZmlndXJhdGlvbiBGaWxlcworKworKzUuNiBUaGUgTWFpbiBDb25maWd1cmF0aW9uIEZpbGUKKys9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisrVGhlIG1haW4gY29uZmlndXJhdGlv biBmaWxlIGlzIG5hbWVkIGBjb25maWcnLgorKworKyAgIFNpbmNlIGFsbCB0aGUgdmFsdWVzIHRo YXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgbWFpbiBjb25maWd1cmF0aW9uCisrZmlsZSBhbHNv IGhhdmUgZGVmYXVsdHMsIHRoZXJlIG5lZWQgbm90IGJlIGEgbWFpbiBjb25maWd1cmF0aW9uIGZp bGUgYXQKKythbGwuCisrCisrICAgRWFjaCBjb21tYW5kIGluIGBjb25maWcnIG1heSBoYXZlIGEg cHJvZ3JhbSBwcmVmaXgsIHdoaWNoIGlzIGEKKytzZXBhcmF0ZSB3b3JkIGFwcGVhcmluZyBhdCB0 aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lLiAgVGhlIGN1cnJlbnRseQorK3N1cHBvcnRlZCBwcmVm aXhlcyBhcmUgYHV1Y3AnIGFuZCBgY3UnLiAgQW55IGNvbW1hbmQgcHJlZml4ZWQgYnkgYHV1Y3An Cisrd2lsbCBub3QgYmUgcmVhZCBieSB0aGUgYGN1JyBwcm9ncmFtLiAgQW55IGNvbW1hbmQgcHJl Zml4ZWQgYnkgYGN1JworK3dpbGwgb25seSBiZSByZWFkIGJ5IHRoZSBgY3UnIHByb2dyYW0uICBG b3IgZXhhbXBsZSwgdG8gdXNlIGEgbGlzdCBvZgorK3N5c3RlbXMga25vd24gb25seSB0byBgY3Un LCBsaXN0IHRoZW0gaW4gYSBzZXBhcmF0ZSBmaWxlIGBGSUxFJyBhbmQgcHV0CisrYGN1IHN5c2Zp bGUgYEZJTEUnJyBpbiBgY29uZmlnJy4KKysKKysqIE1lbnU6CisrCisrKiBNaXNjZWxsYW5lb3Vz IChjb25maWcpOjogICAgICBNaXNjZWxsYW5lb3VzIGNvbmZpZyBGaWxlIENvbW1hbmRzCisrKiBD b25maWd1cmF0aW9uIEZpbGUgTmFtZXM6OiAgICBVc2luZyBEaWZmZXJlbnQgQ29uZmlndXJhdGlv biBGaWxlcworKyogTG9nIEZpbGUgTmFtZXM6OiAgICAgICAgICAgICAgVXNpbmcgRGlmZmVyZW50 IExvZyBGaWxlcworKyogRGVidWdnaW5nIExldmVsczo6ICAgICAgICAgICAgRGVidWdnaW5nIExl dmVscworKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBNaXNjZWxsYW5lb3VzIChjb25m aWcpLCAgTmV4dDogQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzLCAgUHJldjogY29uZmlnIEZpbGUs ICBVcDogY29uZmlnIEZpbGUKKysKKys1LjYuMSBNaXNjZWxsYW5lb3VzIGNvbmZpZyBGaWxlIENv bW1hbmRzCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK2Bu b2RlbmFtZSBTVFJJTkcnCisrYGhvc3RuYW1lIFNUUklORycKKytgdXVuYW1lIFNUUklORycKKysg ICAgIFRoZXNlIGtleXdvcmRzIGFyZSBlcXVpdmFsZW50LiAgVGhleSBzcGVjaWZ5IHRoZSBVVUNQ IG5hbWUgb2YgdGhlCisrICAgICBsb2NhbCBob3N0LiAgSWYgdGhlcmUgaXMgbm8gY29uZmlndXJh dGlvbiBmaWxlLCBhbiBhcHByb3ByaWF0ZQorKyAgICAgc3lzdGVtIGZ1bmN0aW9uIHdpbGwgYmUg dXNlZCB0byBnZXQgdGhlIGhvc3QgbmFtZSwgaWYgcG9zc2libGUuCisrCisrYHNwb29sIFNUUklO RycKKysgICAgIFNwZWNpZnkgdGhlIHNwb29sIGRpcmVjdG9yeS4gIFRoZSBkZWZhdWx0IGlzIGZy b20gYHBvbGljeS5oJy4gIFRoaXMKKysgICAgIGlzIHdoZXJlIFVVQ1AgZmlsZXMgYXJlIHF1ZXVl ZC4gIFN0YXR1cyBmaWxlcyBhbmQgdmFyaW91cyBzb3J0cyBvZgorKyAgICAgdGVtcG9yYXJ5IGZp bGVzIGFyZSBhbHNvIHN0b3JlZCBpbiB0aGlzIGRpcmVjdG9yeSBhbmQKKysgICAgIHN1YmRpcmVj dG9yaWVzIG9mIGl0LgorKworK2BwdWJkaXIgU1RSSU5HJworKyAgICAgU3BlY2lmeSB0aGUgcHVi bGljIGRpcmVjdG9yeS4gIFRoZSBkZWZhdWx0IGlzIGZyb20gYHBvbGljeS5oJy4KKysgICAgIFdo ZW4gYSBmaWxlIGlzIG5hbWVkIHVzaW5nIGEgbGVhZGluZyBgfi8nLCBpdCBpcyB0YWtlbiBmcm9t IG9yIHRvCisrICAgICB0aGUgcHVibGljIGRpcmVjdG9yeS4gIEVhY2ggc3lzdGVtIG1heSB1c2Ug YSBzZXBhcmF0ZSBwdWJsaWMKKysgICAgIGRpcmVjdG9yeSBieSB1c2luZyB0aGUgYHB1YmRpcicg Y29tbWFuZCBpbiB0aGUgc3lzdGVtCisrICAgICBjb25maWd1cmF0aW9uIGZpbGU7IHNlZSAqbm90 ZSBNaXNjZWxsYW5lb3VzIChzeXMpOjouCisrCisrYGxvY2tkaXIgU1RSSU5HJworKyAgICAgU3Bl Y2lmeSB0aGUgZGlyZWN0b3J5IHRvIHBsYWNlIGxvY2sgZmlsZXMgaW4uICBUaGUgZGVmYXVsdCBp cyBmcm9tCisrICAgICBgcG9saWN5LmgnOyBzZWUgdGhlIGluZm9ybWF0aW9uIGluIHRoYXQgZmls ZS4gIE5vcm1hbGx5IHRoZSBsb2NrCisrICAgICBkaXJlY3Rvcnkgc2hvdWxkIGJlIHNldCBjb3Jy ZWN0bHkgaW4gYHBvbGljeS5oJywgYW5kIG5vdCBjaGFuZ2VkCisrICAgICBoZXJlLiAgSG93ZXZl ciwgY2hhbmdpbmcgdGhlIGxvY2sgZGlyZWN0b3J5IGlzIHNvbWV0aW1lcyB1c2VmdWwgZm9yCisr ICAgICB0ZXN0aW5nIHB1cnBvc2VzLiAgVGhpcyBvbmx5IGFmZmVjdHMgbG9jayBmaWxlcyBmb3Ig ZGV2aWNlcyBhbmQKKysgICAgIHN5c3RlbXM7IGl0IGRvZXMgbm90IGFmZmVjdCBjZXJ0YWluIGlu dGVybmFsIGxvY2sgZmlsZXMgd2hpY2ggYXJlCisrICAgICBzdG9yZWQgaW4gdGhlIHNwb29sIGRp cmVjdG9yeSAoKm5vdGUgU3Bvb2wgTG9jayBGaWxlczo6KS4KKysKKytgdW5rbm93biBTVFJJTkcg Li4uJworKyAgICAgVGhlIFNUUklORyBhbmQgc3Vic2VxdWVudCBhcmd1bWVudHMgYXJlIHRyZWF0 ZWQgYXMgdGhvdWdoIHRoZXkKKysgICAgIGFwcGVhcmVkIGluIHRoZSBzeXN0ZW0gZmlsZSAoKm5v dGUgc3lzIEZpbGU6OikuICBUaGV5IGFyZSB1c2VkIHRvCisrICAgICBhcHBseSB0byBhbnkgdW5r bm93biBzeXN0ZW1zIHRoYXQgbWF5IGNhbGwgaW4sIHByb2JhYmx5IHRvIHNldAorKyAgICAgZmls ZSB0cmFuc2ZlciBwZXJtaXNzaW9ucyBhbmQgdGhlIGxpa2UuICBJZiB0aGUgYHVua25vd24nIGNv bW1hbmQKKysgICAgIGlzIG5vdCB1c2VkLCB1bmtub3duIHN5c3RlbXMgYXJlIG5vdCBwZXJtaXR0 ZWQgdG8gY2FsbCBpbi4KKysKKytgc3RyaXAtbG9naW4gQk9PTEVBTicKKysgICAgIElmIHRoZSBh cmd1bWVudCBpcyB0cnVlLCB0aGVuLCB3aGVuIGB1dWNpY28nIGlzIGRvaW5nIGl0cyBvd24KKysg ICAgIGxvZ2luIHByb21wdGluZyB3aXRoIHRoZSBgLWUnLCBgLWwnLCBvciBgLXcnIHN3aXRjaGVz LCBpdCB3aWxsCisrICAgICBzdHJpcCB0aGUgcGFyaXR5IGJpdCB3aGVuIGl0IHJlYWRzIHRoZSBs b2dpbiBuYW1lIGFuZCBwYXNzd29yZC4KKysgICAgIE90aGVyd2lzZSBhbGwgZWlnaHQgYml0cyB3 aWxsIGJlIHVzZWQgd2hlbiBjaGVja2luZyB0aGUgc3RyaW5ncworKyAgICAgYWdhaW5zdCB0aGUg VVVDUCBwYXNzd29yZCBmaWxlLiAgVGhlIGRlZmF1bHQgaXMgdHJ1ZSwgc2luY2Ugc29tZQorKyAg ICAgb3RoZXIgVVVDUCBwYWNrYWdlcyBzZW5kIHBhcml0eSBiaXRzIHdpdGggdGhlIGxvZ2luIG5h bWUgYW5kCisrICAgICBwYXNzd29yZCwgYW5kIGZldyBzeXN0ZW1zIHVzZSBlaWdodCBiaXQgY2hh cmFjdGVycyBpbiB0aGUgcGFzc3dvcmQKKysgICAgIGZpbGUuCisrCisrYHN0cmlwLXByb3RvIEJP T0xFQU4nCisrICAgICBJZiB0aGUgYXJndW1lbnQgaXMgdHJ1ZSwgdGhlbiBgdXVjaWNvJyB3aWxs IHN0cmlwIHRoZSBwYXJpdHkgYml0CisrICAgICBmcm9tIGluY29taW5nIFVVQ1AgcHJvdG9jb2wg Y29tbWFuZHMuICBPdGhlcndpc2UgYWxsIGVpZ2h0IGJpdHMKKysgICAgIHdpbGwgYmUgdXNlZC4g IFRoaXMgb25seSBhcHBsaWVzIHRvIGNvbW1hbmRzIHdoaWNoIGFyZSBub3QKKysgICAgIGVuY2Fw c3VsYXRlZCBpbiBhIGxpbmsgbGF5ZXIgcHJvdG9jb2wuICBUaGUgZGVmYXVsdCBpcyB0cnVlLCB3 aGljaAorKyAgICAgc2hvdWxkIGFsd2F5cyBiZSBjb3JyZWN0IHVubGVzcyB5b3VyIFVVQ1Agc3lz dGVtIG5hbWVzIHVzZSBlaWdodAorKyAgICAgYml0IGNoYXJhY3RlcnMuCisrCisrYG1heC11dXhx dHMgTlVNQkVSJworKyAgICAgU3BlY2lmeSB0aGUgbWF4aW11bSBudW1iZXIgb2YgYHV1eHF0JyBw cm9jZXNzZXMgd2hpY2ggbWF5IHJ1biBhdAorKyAgICAgdGhlIHNhbWUgdGltZS4gIEhhdmluZyBz ZXZlcmFsIGB1dXhxdCcgcHJvY2Vzc2VzIHJ1bm5pbmcgYXQgb25jZQorKyAgICAgY2FuIHNpZ25p ZmljYW50bHkgc2xvdyBkb3duIGEgc3lzdGVtLCBidXQsIHNpbmNlIGB1dXhxdCcgaXMKKysgICAg IGF1dG9tYXRpY2FsbHkgc3RhcnRlZCBieSBgdXVjaWNvJywgaXQgY2FuIGhhcHBlbiBxdWl0ZSBl YXNpbHkuICBUaGUKKysgICAgIGRlZmF1bHQgZm9yIGBtYXgtdXV4cXRzJyBpcyAwLCB3aGljaCBt ZWFucyB0aGF0IHRoZXJlIGlzIG5vIGxpbWl0LgorKyAgICAgSWYgSERCIGNvbmZpZ3VyYXRpb24g ZmlsZXMgYXJlIGJlaW5nIHJlYWQgYW5kIHRoZSBjb2RlIHdhcyBjb21waWxlZAorKyAgICAgd2l0 aG91dCBgSEFWRV9UQVlMT1JfQ09ORklHJywgdGhlbiwgaWYgdGhlIGZpbGUgYE1heHV1eHF0cycg aW4gdGhlCisrICAgICBjb25maWd1cmF0aW9uIGRpcmVjdG9yeSBjb250YWlucyBhIHJlYWRhYmxl IG51bWJlciwgaXQgd2lsbCBiZSB1c2VkCisrICAgICBhcyB0aGUgdmFsdWUgZm9yIGBtYXgtdXV4 cXRzJy4KKysKKytgcnVuLXV1eHF0IFNUUklORyBvciBOVU1CRVInCisrICAgICBTcGVjaWZ5IHdo ZW4gYHV1eHF0JyBzaG91bGQgYmUgcnVuIGJ5IGB1dWNpY28nLiAgVGhpcyBtYXkgYmUgYQorKyAg ICAgcG9zaXRpdmUgbnVtYmVyLCBpbiB3aGljaCBjYXNlIGB1dWNpY28nIHdpbGwgc3RhcnQgYSBg dXV4cXQnCisrICAgICBwcm9jZXNzIHdoZW5ldmVyIGl0IHJlY2VpdmVzIHRoZSBnaXZlbiBudW1i ZXIgb2YgZXhlY3V0aW9uIGZpbGVzCisrICAgICBmcm9tIHRoZSByZW1vdGUgc3lzdGVtLCBhbmQs IGlmIG5lY2Vzc2FyeSwgYXQgdGhlIGVuZCBvZiB0aGUgY2FsbC4KKysgICAgIFRoZSBhcmd1bWVu dCBtYXkgYWxzbyBiZSBvbmUgb2YgdGhlIHN0cmluZ3MgYG9uY2UnLCBgcGVyY2FsbCcsIG9yCisr ICAgICBgbmV2ZXInLiAgVGhlIHN0cmluZyBgb25jZScgbWVhbnMgdGhhdCBgdXVjaWNvJyB3aWxs IHN0YXJ0IGB1dXhxdCcKKysgICAgIG9uY2UgYXQgdGhlIGVuZCBvZiBleGVjdXRpb24uICBUaGUg c3RyaW5nIGBwZXJjYWxsJyBtZWFucyB0aGF0CisrICAgICBgdXVjaWNvJyB3aWxsIHN0YXJ0IGB1 dXhxdCcgb25jZSBwZXIgY2FsbCB0aGF0IGl0IG1ha2VzICh0aGlzIGlzCisrICAgICBvbmx5IGRp ZmZlcmVudCBmcm9tIGBvbmNlJyB3aGVuIGB1dWNpY28nIGlzIGludm9rZWQgaW4gYSB3YXkgdGhh dAorKyAgICAgY2F1c2VzIGl0IHRvIG1ha2UgbXVsdGlwbGUgY2FsbHMsIHN1Y2ggYXMgd2hlbiB0 aGUgYC1yMScgb3B0aW9uIGlzCisrICAgICB1c2VkIHdpdGhvdXQgdGhlIGAtcycgb3B0aW9uKS4g IFRoZSBzdHJpbmcgYG5ldmVyJyBtZWFucyB0aGF0CisrICAgICBgdXVjaWNvJyB3aWxsIG5ldmVy IHN0YXJ0IGB1dXhxdCcsIGluIHdoaWNoIGNhc2UgYHV1eHF0JyBzaG91bGQgYmUKKysgICAgIHBl cmlvZGljYWxseSBydW4gdmlhIHNvbWUgb3RoZXIgbWVjaGFuaXNtLiAgVGhlIGRlZmF1bHQgZGVw ZW5kcworKyAgICAgdXBvbiB3aGljaCB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIGJl aW5nIHVzZWQ7IGlmCisrICAgICBgSEFWRV9UQVlMT1JfQ09ORklHJyBpcyB1c2VkIHRoZSBkZWZh dWx0IGlzIGBvbmNlJywgb3RoZXJ3aXNlIGlmCisrICAgICBgSEFWRV9IREJfQ09ORklHJyBpcyB1 c2VkIHRoZSBkZWZhdWx0IGlzIGBwZXJjYWxsJywgYW5kIG90aGVyd2lzZSwKKysgICAgIGZvciBg SEFWRV9WMl9DT05GSUcnLCB0aGUgZGVmYXVsdCBpcyBgMTAnLgorKworK2B0aW1ldGFibGUgU1RS SU5HIFNUUklORycKKysgICAgIFRoZSBgdGltZXRhYmxlJyBkZWZpbmVzIGEgdGltZXRhYmxlIHRo YXQgbWF5IGJlIHVzZWQgaW4KKysgICAgIHN1YnNlcXVlbnRseSBhcHBlYXJpbmcgdGltZSBzdHJp bmdzOyBzZWUgKm5vdGUgVGltZSBTdHJpbmdzOjouCisrICAgICBUaGUgZmlyc3Qgc3RyaW5nIG5h bWVzIHRoZSB0aW1ldGFibGUgZW50cnk7IHRoZSBzZWNvbmQgaXMgYSB0aW1lCisrICAgICBzdHJp bmcuCisrCisrICAgICBUaGUgZm9sbG93aW5nIGB0aW1ldGFibGUnIGNvbW1hbmRzIGFyZSBwcmVk ZWZpbmVkLiAgVGhlIE5vblBlYWsKKysgICAgIHRpbWV0YWJsZSBpcyBpbmNsdWRlZCBmb3IgY29t cGF0aWJpbGl0eS4gIEl0IG9yaWdpbmFsbHkgZGVzY3JpYmVkCisrICAgICB0aGUgb2ZmcGVhayBo b3VycyBvZiBUeW1uZXQgYW5kIFRlbGVuZXQsIGJ1dCBib3RoIGhhdmUgc2luY2UKKysgICAgIGNo YW5nZWQgdGhlaXIgc2NoZWR1bGVzLgorKworKyAgICAgICAgICB0aW1ldGFibGUgRXZlbmluZyBX azE3MDUtMDc1NSxTYSxTdQorKyAgICAgICAgICB0aW1ldGFibGUgTmlnaHQgV2syMzA1LTA3NTUs U2EsU3UyMzA1LTE2NTUKKysgICAgICAgICAgdGltZXRhYmxlIE5vblBlYWsgV2sxODA1LTA2NTUs U2EsU3UKKysKKysgICAgIElmIHRoaXMgY29tbWFuZCBkb2VzIG5vdCBhcHBlYXIsIHRoZW4sIG9i dmlvdXNseSwgbm8gYWRkaXRpb25hbAorKyAgICAgdGltZXRhYmxlcyB3aWxsIGJlIGRlZmluZWQu CisrCisrYHYyLWZpbGVzIEJPT0xFQU4nCisrICAgICBJZiB0aGUgY29kZSB3YXMgY29tcGlsZWQg dG8gYmUgYWJsZSB0byByZWFkIFYyIGNvbmZpZ3VyYXRpb24KKysgICAgIGZpbGVzLCBhIGZhbHNl IGFyZ3VtZW50IHRvIHRoaXMgY29tbWFuZCB3aWxsIHByZXZlbnQgdGhlbSBmcm9tCisrICAgICBi ZWluZyByZWFkLiAgVGhpcyBjYW4gYmUgdXNlZnVsIHdoaWxlIHRlc3RpbmcuICBUaGUgZGVmYXVs dCBpcworKyAgICAgdHJ1ZS4KKysKKytgaGRiLWZpbGVzIEJPT0xFQU4nCisrICAgICBJZiB0aGUg Y29kZSB3YXMgY29tcGlsZWQgdG8gYmUgYWJsZSB0byByZWFkIEhEQiBjb25maWd1cmF0aW9uCisr ICAgICBmaWxlcywgYSBmYWxzZSBhcmd1bWVudCB0byB0aGlzIGNvbW1hbmQgd2lsbCBwcmV2ZW50 IHRoZW0gZnJvbQorKyAgICAgYmVpbmcgcmVhZC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGlsZSB0 ZXN0aW5nLiAgVGhlIGRlZmF1bHQgaXMKKysgICAgIHRydWUuCisrCisrCisrHworK0ZpbGU6IHV1 Y3AuaW5mbywgIE5vZGU6IENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lcywgIE5leHQ6IExvZyBGaWxl IE5hbWVzLCAgUHJldjogTWlzY2VsbGFuZW91cyAoY29uZmlnKSwgIFVwOiBjb25maWcgRmlsZQor KworKzUuNi4yIENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lcworKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKworK2BzeXNmaWxlIFNUUklOR1MnCisrICAgICBTcGVjaWZ5IHRoZSBzeXN0 ZW0gZmlsZShzKS4gIFRoZSBkZWZhdWx0IGlzIHRoZSBmaWxlIGBzeXMnIGluIHRoZQorKyAgICAg ZGlyZWN0b3J5IE5FV0NPTkZJR0RJUi4gIFRoZXNlIGZpbGVzIGhvbGQgaW5mb3JtYXRpb24gYWJv dXQgb3RoZXIKKysgICAgIHN5c3RlbXMgd2l0aCB3aGljaCB0aGlzIHN5c3RlbSBjb21tdW5pY2F0 ZXM7IHNlZSAqbm90ZSBzeXMgRmlsZTo6LgorKyAgICAgTXVsdGlwbGUgc3lzdGVtIGZpbGVzIG1h eSBiZSBnaXZlbiBvbiB0aGUgbGluZSwgYW5kIHRoZSBgc3lzZmlsZScKKysgICAgIGNvbW1hbmQg bWF5IGJlIHJlcGVhdGVkOyBlYWNoIHN5c3RlbSBmaWxlIGhhcyBpdHMgb3duIHNldCBvZgorKyAg ICAgZGVmYXVsdHMuCisrCisrYHBvcnRmaWxlIFNUUklOR1MnCisrICAgICBTcGVjaWZ5IHRoZSBw b3J0IGZpbGUocykuICBUaGUgZGVmYXVsdCBpcyB0aGUgZmlsZSBgcG9ydCcgaW4gdGhlCisrICAg ICBkaXJlY3RvcnkgTkVXQ09ORklHRElSLiAgVGhlc2UgZmlsZXMgZGVzY3JpYmUgcG9ydHMgd2hp Y2ggYXJlIHVzZWQKKysgICAgIHRvIGNhbGwgb3RoZXIgc3lzdGVtcyBhbmQgYWNjZXB0IGNhbGxz IGZyb20gb3RoZXIgc3lzdGVtczsgc2VlCisrICAgICAqbm90ZSBwb3J0IEZpbGU6Oi4gIE5vIHBv cnQgZmlsZXMgbmVlZCBiZSBuYW1lZCBhdCBhbGwuICBNdWx0aXBsZQorKyAgICAgcG9ydCBmaWxl cyBtYXkgYmUgZ2l2ZW4gb24gdGhlIGxpbmUsIGFuZCB0aGUgYHBvcnRmaWxlJyBjb21tYW5kCisr ICAgICBtYXkgYmUgcmVwZWF0ZWQuCisrCisrYGRpYWxmaWxlIFNUUklOR1MnCisrICAgICBTcGVj aWZ5IHRoZSBkaWFsIGZpbGUocykuICBUaGUgZGVmYXVsdCBpcyB0aGUgZmlsZSBgZGlhbCcgaW4g dGhlCisrICAgICBkaXJlY3RvcnkgTkVXQ09ORklHRElSLiAgVGhlc2UgZmlsZXMgZGVzY3JpYmUg ZGlhbGluZyBkZXZpY2VzCisrICAgICAobW9kZW1zKTsgc2VlICpub3RlIGRpYWwgRmlsZTo6LiAg Tm8gZGlhbCBmaWxlcyBuZWVkIGJlIG5hbWVkIGF0CisrICAgICBhbGwuICBNdWx0aXBsZSBkaWFs IGZpbGVzIG1heSBiZSBnaXZlbiBvbiB0aGUgbGluZSwgYW5kIHRoZQorKyAgICAgYGRpYWxmaWxl JyBjb21tYW5kIG1heSBiZSByZXBlYXRlZC4KKysKKytgZGlhbGNvZGVmaWxlIFNUUklOR1MnCisr ICAgICBTcGVjaWZ5IHRoZSBkaWFsY29kZSBmaWxlKHMpLiAgVGhlIGRlZmF1bHQgaXMgdGhlIGZp bGUgYGRpYWxjb2RlJworKyAgICAgaW4gdGhlIGRpcmVjdG9yeSBORVdDT05GSUdESVIuICBUaGVz ZSBmaWxlcyBzcGVjaWZ5IGRpYWxjb2RlcyB0aGF0CisrICAgICBtYXkgYmUgdXNlZCB3aGVuIHNl bmRpbmcgcGhvbmUgbnVtYmVycyB0byBhIG1vZGVtLiAgVGhpcyBwZXJtaXRzCisrICAgICB1c2lu ZyB0aGUgc2FtZSBzZXQgb2YgcGhvbmUgbnVtYmVycyBpbiBkaWZmZXJlbnQgYXJlYS1jb2RlcyBv cgorKyAgICAgd2l0aCBkaWZmZXJlbnQgcGhvbmUgc3lzdGVtcywgYnkgdXNpbmcgZGlhbGNvZGVz IHRvIHNwZWNpZnkgdGhlCisrICAgICBjYWxsaW5nIHNlcXVlbmNlLiAgV2hlbiBhIHBob25lIG51 bWJlciBnb2VzIHRocm91Z2ggZGlhbGNvZGUKKysgICAgIHRyYW5zbGF0aW9uLCB0aGUgbGVhZGlu ZyBhbHBoYWJldGljIGNoYXJhY3RlcnMgYXJlIHN0cmlwcGVkIG9mZi4KKysgICAgIFRoZSBkaWFs Y29kZSBmaWxlcyBhcmUgcmVhZCBsaW5lIGJ5IGxpbmUsIGp1c3QgbGlrZSBhbnkgb3RoZXIKKysg ICAgIGNvbmZpZ3VyYXRpb24gZmlsZSwgYW5kIHdoZW4gYSBsaW5lIGlzIGZvdW5kIHdob3NlIGZp cnN0IHdvcmQgaXMKKysgICAgIHRoZSBzYW1lIGFzIHRoZSBsZWFkaW5nIGNoYXJhY3RlcnMgZnJv bSB0aGUgcGhvbmUgbnVtYmVyLCB0aGUKKysgICAgIHNlY29uZCB3b3JkIG9uIHRoZSBsaW5lICh3 aGljaCB3b3VsZCBub3JtYWxseSBjb25zaXN0IG9mIG51bWJlcnMpCisrICAgICByZXBsYWNlcyB0 aGUgZGlhbGNvZGUgaW4gdGhlIHBob25lIG51bWJlci4gIE5vIGRpYWxjb2RlIGZpbGUgbmVlZAor KyAgICAgYmUgdXNlZC4gIE11bHRpcGxlIGRpYWxjb2RlIGZpbGVzIG1heSBiZSBzcGVjaWZpZWQg b24gdGhlIGxpbmUsCisrICAgICBhbmQgdGhlIGBkaWFsY29kZWZpbGUnIGNvbW1hbmQgbWF5IGJl IHJlcGVhdGVkOyBhbGwgdGhlIGRpYWxjb2RlCisrICAgICBmaWxlcyB3aWxsIGJlIHJlYWQgaW4g dHVybiB1bnRpbCBhIGRpYWxjb2RlIGlzIGxvY2F0ZWQuCisrCisrYGNhbGxmaWxlIFNUUklOR1Mn CisrICAgICBTcGVjaWZ5IHRoZSBjYWxsIG91dCBsb2dpbiBuYW1lIGFuZCBwYXNzd29yZCBmaWxl KHMpLiAgVGhlIGRlZmF1bHQKKysgICAgIGlzIHRoZSBmaWxlIGBjYWxsJyBpbiB0aGUgZGlyZWN0 b3J5IE5FV0NPTkZJR0RJUi4gIElmIHRoZSBjYWxsIG91dAorKyAgICAgbG9naW4gbmFtZSBvciBw YXNzd29yZCBmb3IgYSBzeXN0ZW0gYXJlIGdpdmVuIGFzIGAqJyAoKm5vdGUKKysgICAgIExvZ2dp bmcgSW46OiksIHRoZXNlIGZpbGVzIGFyZSByZWFkIHRvIGdldCB0aGUgcmVhbCBsb2dpbiBuYW1l IG9yCisrICAgICBwYXNzd29yZC4gIEVhY2ggbGluZSBpbiB0aGUgZmlsZShzKSBoYXMgdGhyZWUg d29yZHM6IHRoZSBzeXN0ZW0KKysgICAgIG5hbWUsIHRoZSBsb2dpbiBuYW1lLCBhbmQgdGhlIHBh c3N3b3JkLiAgVGhlIGxvZ2luIG5hbWUgYW5kCisrICAgICBwYXNzd29yZCBtYXkgY29udGFpbiBl c2NhcGUgc2VxdWVuY2VzIGxpa2UgdGhvc2UgaW4gYSBjaGF0IHNjcmlwdAorKyAgICAgZXhwZWN0 IHN0cmluZyAoKm5vdGUgQ2hhdCBTY3JpcHRzOjopLiAgVGhpcyBmaWxlIGlzIG9ubHkgdXNlZCB3 aGVuCisrICAgICBwbGFjaW5nIGNhbGxzIHRvIHJlbW90ZSBzeXN0ZW1zOyB0aGUgcGFzc3dvcmQg ZmlsZSBkZXNjcmliZWQgdW5kZXIKKysgICAgIGBwYXNzd2RmaWxlJyBiZWxvdyBpcyB1c2VkIGZv ciBpbmNvbWluZyBjYWxscy4gIFRoZSBpbnRlbnRpb24gb2YKKysgICAgIHRoZSBjYWxsIG91dCBm aWxlIGlzIHRvIHBlcm1pdCB0aGUgc3lzdGVtIGZpbGUgdG8gYmUgcHVibGljYWxseQorKyAgICAg cmVhZGFibGU7IHRoZSBjYWxsIG91dCBmaWxlcyBtdXN0IG9idmlvdXNseSBiZSBrZXB0IHNlY3Vy ZS4gIFRoZXNlCisrICAgICBmaWxlcyBuZWVkIG5vdCBiZSB1c2VkLiAgTXVsdGlwbGUgY2FsbCBv dXQgZmlsZXMgbWF5IGJlIHNwZWNpZmllZAorKyAgICAgb24gdGhlIGxpbmUsIGFuZCB0aGUgYGNh bGxmaWxlJyBjb21tYW5kIG1heSBiZSByZXBlYXRlZDsgYWxsIHRoZQorKyAgICAgZmlsZXMgd2ls bCBiZSByZWFkIGluIHR1cm4gdW50aWwgdGhlIHN5c3RlbSBpcyBmb3VuZC4KKysKKytgcGFzc3dk ZmlsZSBTVFJJTkdTJworKyAgICAgU3BlY2lmeSB0aGUgcGFzc3dvcmQgZmlsZShzKSB0byB1c2Ug Zm9yIGxvZ2luIG5hbWVzIHdoZW4gYHV1Y2ljbycKKysgICAgIGlzIGRvaW5nIGl0cyBvd24gbG9n aW4gcHJvbXB0aW5nLCB3aGljaCBpdCBkb2VzIHdoZW4gZ2l2ZW4gdGhlCisrICAgICBgLWUnLCBg LWwnIG9yIGAtdycgc3dpdGNoZXMuICBUaGUgZGVmYXVsdCBpcyB0aGUgZmlsZSBgcGFzc3dkJyBp bgorKyAgICAgdGhlIGRpcmVjdG9yeSBORVdDT05GSUdESVIuICBFYWNoIGxpbmUgaW4gdGhlIGZp bGUocykgaGFzIHR3bworKyAgICAgd29yZHM6IHRoZSBsb2dpbiBuYW1lIGFuZCB0aGUgcGFzc3dv cmQgKGUuZy4sIGBVZm9vIGZvb3BhcycpLgorKyAgICAgVGhleSBtYXkgY29udGFpbiBlc2NhcGUg c2VxdWVuY2VzIGxpa2UgdGhvc2UgaW4gYSBjaGF0IHNjcmlwdAorKyAgICAgZXhwZWN0IHN0cmlu ZyAoKm5vdGUgQ2hhdCBTY3JpcHRzOjopLiAgVGhlIGxvZ2luIG5hbWUgaXMgYWNjZXB0ZWQKKysg ICAgIGJlZm9yZSB0aGUgc3lzdGVtIG5hbWUgaXMga25vd24sIHNvIHRoZXNlIGFyZSBpbmRlcGVu ZGVudCBvZiB3aGljaAorKyAgICAgc3lzdGVtIGlzIGNhbGxpbmcgaW47IGEgcGFydGljdWxhciBs b2dpbiBtYXkgYmUgcmVxdWlyZWQgZm9yIGEKKysgICAgIHN5c3RlbSBieSB1c2luZyB0aGUgYGNh bGxlZC1sb2dpbicgY29tbWFuZCBpbiB0aGUgc3lzdGVtIGZpbGUKKysgICAgICgqbm90ZSBBY2Nl cHRpbmcgYSBDYWxsOjopLiAgVGhlc2UgcGFzc3dvcmQgZmlsZXMgYXJlIG9wdGlvbmFsLAorKyAg ICAgYWx0aG91Z2ggb25lIG11c3QgZXhpc3QgaWYgYHV1Y2ljbycgaXMgdG8gcHJlc2VudCBpdHMg b3duIGxvZ2luCisrICAgICBwcm9tcHRzLgorKworKyAgICAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlv biwgYSBjb2xvbiBtYXkgYmUgdXNlZCB0byBzZXBhcmF0ZSB0aGUgbG9naW4KKysgICAgIG5hbWUg ZnJvbSB0aGUgcGFzc3dvcmQsIGFuZCBhIGNvbG9uIG1heSBiZSB1c2VkIHRvIHRlcm1pbmF0ZSB0 aGUKKysgICAgIHBhc3N3b3JkLiAgVGhpcyBtZWFucyB0aGF0IHRoZSBsb2dpbiBuYW1lIGFuZCBw YXNzd29yZCBtYXkgbm90CisrICAgICBjb250YWluIGEgY29sb24uICBUaGlzIGZlYXR1cmUsIGlu IGNvbmp1bmN0aW9uIHdpdGggdGhlCisrICAgICBgSEFWRV9FTkNSWVBURURfUEFTU1dPUkRTJyBt YWNybyBpbiBgcG9saWN5LmgnLCBwZXJtaXRzIHVzaW5nIGEKKysgICAgIHN0YW5kYXJkIFVuaXgg YC9ldGMvcGFzc3dkJyBhcyBhIFVVQ1AgcGFzc3dvcmQgZmlsZSwgcHJvdmlkaW5nIHRoZQorKyAg ICAgc2FtZSBzZXQgb2YgbG9naW4gbmFtZXMgYW5kIHBhc3N3b3JkcyBmb3IgYm90aCBgZ2V0dHkn IGFuZAorKyAgICAgYHV1Y2ljbycuCisrCisrICAgICBNdWx0aXBsZSBwYXNzd29yZCBmaWxlcyBt YXkgYmUgc3BlY2lmaWVkIG9uIHRoZSBsaW5lLCBhbmQgdGhlCisrICAgICBgcGFzc3dkZmlsZScg Y29tbWFuZCBtYXkgYmUgcmVwZWF0ZWQ7IGFsbCB0aGUgZmlsZXMgd2lsbCBiZSByZWFkIGluCisr ICAgICB0dXJuIHVudGlsIHRoZSBsb2dpbiBuYW1lIGlzIGZvdW5kLgorKworKworKx8KKytGaWxl OiB1dWNwLmluZm8sICBOb2RlOiBMb2cgRmlsZSBOYW1lcywgIE5leHQ6IERlYnVnZ2luZyBMZXZl bHMsICBQcmV2OiBDb25maWd1cmF0aW9uIEZpbGUgTmFtZXMsICBVcDogY29uZmlnIEZpbGUKKysK Kys1LjYuMyBMb2cgRmlsZSBOYW1lcworKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrYGxvZ2Zp bGUgU1RSSU5HJworKyAgICAgTmFtZSB0aGUgbG9nIGZpbGUuICBUaGUgZGVmYXVsdCBpcyBmcm9t IGBwb2xpY3kuaCcuICBMb2dnaW5nCisrICAgICBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHRo aXMgZmlsZS4gIElmIGBIQVZFX0hEQl9MT0dHSU5HJyBpcworKyAgICAgZGVmaW5lZCBpbiBgcG9s aWN5LmgnLCB0aGVuIGJ5IGRlZmF1bHQgYSBzZXBhcmF0ZSBsb2cgZmlsZSBpcyB1c2VkCisrICAg ICBmb3IgZWFjaCBzeXN0ZW07IHVzaW5nIHRoaXMgY29tbWFuZCB0byBuYW1lIGEgbG9nIGZpbGUg d2lsbCBjYXVzZQorKyAgICAgYWxsIHRoZSBzeXN0ZW1zIHRvIHVzZSBpdC4KKysKKytgc3RhdGZp bGUgU1RSSU5HJworKyAgICAgTmFtZSB0aGUgc3RhdGlzdGljcyBmaWxlLiAgVGhlIGRlZmF1bHQg aXMgZnJvbSBgcG9saWN5LmgnLgorKyAgICAgU3RhdGlzdGljYWwgaW5mb3JtYXRpb24gYWJvdXQg ZmlsZSB0cmFuc2ZlcnMgaXMgd3JpdHRlbiB0byB0aGlzCisrICAgICBmaWxlLgorKworK2BkZWJ1 Z2ZpbGUgU1RSSU5HJworKyAgICAgTmFtZSB0aGUgZmlsZSB0byB3aGljaCBhbGwgZGVidWdnaW5n IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4uICBUaGUKKysgICAgIGRlZmF1bHQgaXMgZnJvbSBgcG9s aWN5LmgnLiAgVGhpcyBjb21tYW5kIGlzIG9ubHkgZWZmZWN0aXZlIGlmIHRoZQorKyAgICAgY29k ZSBoYXMgYmVlbiBjb21waWxlZCB0byBpbmNsdWRlIGRlYnVnZ2luZyAodGhpcyBpcyBjb250cm9s bGVkIGJ5CisrICAgICB0aGUgYERFQlVHJyBtYWNybyBpbiBgcG9saWN5LmgnKS4gIElmIGRlYnVn Z2luZyBpcyBvbiwgbWVzc2FnZXMKKysgICAgIHdyaXR0ZW4gdG8gdGhlIGxvZyBmaWxlIGFyZSBh bHNvIHdyaXR0ZW4gdG8gdGhlIGRlYnVnZ2luZyBmaWxlIHRvCisrICAgICBtYWtlIGl0IGVhc2ll ciB0byBrZWVwIHRoZSBvcmRlciBvZiBhY3Rpb25zIHN0cmFpZ2h0LiAgVGhlCisrICAgICBkZWJ1 Z2dpbmcgZmlsZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgbG9nIGZpbGUgYmVjYXVzZSBpbmZvcm1h dGlvbgorKyAgICAgc3VjaCBhcyBwYXNzd29yZHMgY2FuIGFwcGVhciBpbiBpdCwgc28gaXQgbXVz dCBiZSBub3QgYmUKKysgICAgIHB1YmxpY2FsbHkgcmVhZGFibGUuCisrCisrCisrHworK0ZpbGU6 IHV1Y3AuaW5mbywgIE5vZGU6IERlYnVnZ2luZyBMZXZlbHMsICBQcmV2OiBMb2cgRmlsZSBOYW1l cywgIFVwOiBjb25maWcgRmlsZQorKworKzUuNi40IERlYnVnZ2luZyBMZXZlbHMKKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrCisrYGRlYnVnIFNUUklORyAuLi4nCisrICAgICBTZXQgdGhlIGRl YnVnZ2luZyBsZXZlbC4gIFRoaXMgY29tbWFuZCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiB0aGUKKysg ICAgIGNvZGUgaGFzIGJlZW4gY29tcGlsZWQgdG8gaW5jbHVkZSBkZWJ1Z2dpbmcuICBUaGUgZGVm YXVsdCBpcyB0bworKyAgICAgaGF2ZSBubyBkZWJ1Z2dpbmcuICBUaGUgYXJndW1lbnRzIGFyZSBz dHJpbmdzIHdoaWNoIG5hbWUgdGhlIHR5cGVzCisrICAgICBvZiBkZWJ1Z2dpbmcgdG8gYmUgdHVy bmVkIG9uLiAgVGhlIGZvbGxvd2luZyB0eXBlcyBvZiBkZWJ1Z2dpbmcKKysgICAgIGFyZSBkZWZp bmVkOgorKworKyAgICBgYWJub3JtYWwnCisrICAgICAgICAgIE91dHB1dCBkZWJ1Z2dpbmcgbWVz c2FnZXMgZm9yIGFibm9ybWFsIHNpdHVhdGlvbnMsIHN1Y2ggYXMKKysgICAgICAgICAgcmVjb3Zl cmFibGUgZXJyb3JzLgorKworKyAgICBgY2hhdCcKKysgICAgICAgICAgT3V0cHV0IGRlYnVnZ2lu ZyBtZXNzYWdlcyBmb3IgY2hhdCBzY3JpcHRzLgorKworKyAgICBgaGFuZHNoYWtlJworKyAgICAg ICAgICBPdXRwdXQgZGVidWdnaW5nIG1lc3NhZ2VzIGZvciB0aGUgaW5pdGlhbCBoYW5kc2hha2Uu CisrCisrICAgIGB1dWNwLXByb3RvJworKyAgICAgICAgICBPdXRwdXQgZGVidWdnaW5nIG1lc3Nh Z2VzIGZvciB0aGUgVVVDUCBzZXNzaW9uIHByb3RvY29sLgorKworKyAgICBgcHJvdG8nCisrICAg ICAgICAgIE91dHB1dCBkZWJ1Z2dpbmcgbWVzc2FnZXMgZm9yIHRoZSBpbmRpdmlkdWFsIGxpbmsg cHJvdG9jb2xzLgorKworKyAgICBgcG9ydCcKKysgICAgICAgICAgT3V0cHV0IGRlYnVnZ2luZyBt ZXNzYWdlcyBmb3IgYWN0aW9ucyBvbiB0aGUgY29tbXVuaWNhdGlvbgorKyAgICAgICAgICBwb3J0 LgorKworKyAgICBgY29uZmlnJworKyAgICAgICAgICBPdXRwdXQgZGVidWdnaW5nIG1lc3NhZ2Vz IHdoaWxlIHJlYWRpbmcgdGhlIGNvbmZpZ3VyYXRpb24KKysgICAgICAgICAgZmlsZXMuCisrCisr ICAgIGBzcG9vbGRpcicKKysgICAgICAgICAgT3V0cHV0IGRlYnVnZ2luZyBtZXNzYWdlcyBmb3Ig YWN0aW9ucyBpbiB0aGUgc3Bvb2wgZGlyZWN0b3J5LgorKworKyAgICBgZXhlY3V0ZScKKysgICAg ICAgICAgT3V0cHV0IGRlYnVnZ2luZyBtZXNzYWdlcyB3aGVuZXZlciBhbm90aGVyIHByb2dyYW0g aXMKKysgICAgICAgICAgZXhlY3V0ZWQuCisrCisrICAgIGBpbmNvbWluZycKKysgICAgICAgICAg TGlzdCBhbGwgaW5jb21pbmcgZGF0YSBpbiB0aGUgZGVidWdnaW5nIGZpbGUuCisrCisrICAgIGBv dXRnb2luZycKKysgICAgICAgICAgTGlzdCBhbGwgb3V0Z29pbmcgZGF0YSBpbiB0aGUgZGVidWdn aW5nIGZpbGUuCisrCisrICAgIGBhbGwnCisrICAgICAgICAgIEFsbCBvZiB0aGUgYWJvdmUuCisr CisrICAgICBUaGUgZGVidWdnaW5nIGxldmVsIG1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBhIG51 bWJlci4gIEEgMSB3aWxsCisrICAgICBzZXQgYGNoYXQnIGRlYnVnZ2luZywgYSAyIHdpbGwgc2V0 IGJvdGggYGNoYXQnIGFuZCBgaGFuZHNoYWtlJworKyAgICAgZGVidWdnaW5nLCBhbmQgc28gb24g ZG93biB0aGUgcG9zc2liaWxpdGllcy4gIEN1cnJlbnRseSBhbiAxMSB3aWxsCisrICAgICB0dXJu IG9uIGFsbCBwb3NzaWJsZSBkZWJ1Z2dpbmcsIHNpbmNlIHRoZXJlIGFyZSAxMSB0eXBlcyBvZgor KyAgICAgZGVidWdnaW5nIG1lc3NhZ2VzIGxpc3RlZCBhYm92ZTsgbW9yZSBkZWJ1Z2dpbmcgdHlw ZXMgbWF5IGJlIGFkZGVkCisrICAgICBpbiB0aGUgZnV0dXJlLiAgVGhlIGBkZWJ1ZycgY29tbWFu ZCBtYXkgYmUgdXNlZCBzZXZlcmFsIHRpbWVzIGluCisrICAgICB0aGUgY29uZmlndXJhdGlvbiBm aWxlOyBldmVyeSBkZWJ1Z2dpbmcgdHlwZSBuYW1lZCB3aWxsIGJlIHR1cm5lZAorKyAgICAgb24u ICBXaGVuIHJ1bm5pbmcgYW55IG9mIHRoZSBwcm9ncmFtcywgdGhlIGAteCcgc3dpdGNoIChhY3R1 YWxseSwKKysgICAgIGZvciBgdXVsb2cnIGl0J3MgdGhlIGAtWCcgc3dpdGNoKSBtYXkgYmUgdXNl ZCB0byB0dXJuIG9uCisrICAgICBkZWJ1Z2dpbmcuICBUaGUgYXJndW1lbnQgdG8gdGhlIGAteCcg c3dpdGNoIGlzIG9uZSBvZiB0aGUgc3RyaW5ncworKyAgICAgbGlzdGVkIGFib3ZlLCBvciBhIG51 bWJlciBhcyBkZXNjcmliZWQgYWJvdmUsIG9yIGEgY29tbWEgc2VwYXJhdGVkCisrICAgICBsaXN0 IG9mIHN0cmluZ3MgKGUuZy4sIGAteCBjaGF0LGhhbmRzaGFrZScpLiAgVGhlIGAteCcgc3dpdGNo IG1heQorKyAgICAgYWxzbyBhcHBlYXIgc2V2ZXJhbCB0aW1lcyBvbiB0aGUgY29tbWFuZCBsaW5l LCBpbiB3aGljaCBjYXNlIGFsbAorKyAgICAgbmFtZWQgZGVidWdnaW5nIHR5cGVzIHdpbGwgYmUg dHVybmVkIG9uLiAgVGhlIGAteCcgZGVidWdnaW5nIGlzIGluCisrICAgICBhZGRpdGlvbiB0byBh bnkgZGVidWdnaW5nIHNwZWNpZmllZCBieSB0aGUgYGRlYnVnJyBjb21tYW5kOyB0aGVyZQorKyAg ICAgaXMgbm8gd2F5IHRvIGNhbmNlbCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uICBUaGUgZGVidWdn aW5nIGxldmVsCisrICAgICBtYXkgYWxzbyBiZSBzZXQgc3BlY2lmaWNhbGx5IGZvciBjYWxscyB0 byBvciBmcm9tIGEgc3BlY2lmaWMKKysgICAgIHN5c3RlbSB3aXRoIHRoZSBgZGVidWcnIGNvbW1h bmQgaW4gdGhlIHN5c3RlbSBmaWxlICgqbm90ZQorKyAgICAgTWlzY2VsbGFuZW91cyAoc3lzKTo6 KS4KKysKKysgICAgIFRoZSBkZWJ1Z2dpbmcgbWVzc2FnZXMgYXJlIHNvbWV3aGF0IGlkaW9zeW5j cmF0aWM7IGl0IG1heSBiZQorKyAgICAgbmVjZXNzYXJ5IHRvIHJlZmVyIHRvIHRoZSBzb3VyY2Ug Y29kZSBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorKyAgICAgaW4gc29tZSBjYXNlcy4KKysK KysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogc3lzIEZpbGUsICBOZXh0OiBwb3J0IEZp bGUsICBQcmV2OiBjb25maWcgRmlsZSwgIFVwOiBDb25maWd1cmF0aW9uIEZpbGVzCisrCisrNS43 IFRoZSBTeXN0ZW0gQ29uZmlndXJhdGlvbiBGaWxlCisrPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrCisrQnkgZGVmYXVsdCB0aGVyZSBpcyBhIHNpbmdsZSBzeXN0ZW0gY29uZmln dXJhdGlvbiwgbmFtZWQgYHN5cycgaW4gdGhlCisrZGlyZWN0b3J5IE5FV0NPTkZJR0RJUi4gIFRo aXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGBzeXNmaWxlJworK2NvbW1hbmQgaW4gdGhlIG1h aW4gY29uZmlndXJhdGlvbiBmaWxlOyBzZWUgKm5vdGUgQ29uZmlndXJhdGlvbiBGaWxlCisrTmFt ZXM6Oi4KKysKKysgICBUaGVzZSBmaWxlcyBkZXNjcmliZSBhbGwgcmVtb3RlIHN5c3RlbXMga25v d24gdG8gdGhlIFVVQ1AgcGFja2FnZS4KKysKKysqIE1lbnU6CisrCisrKiBEZWZhdWx0cyBhbmQg QWx0ZXJuYXRlczo6ICAgICBVc2luZyBEZWZhdWx0cyBhbmQgQWx0ZXJuYXRlcworKyogTmFtaW5n IHRoZSBTeXN0ZW06OiAgICAgICAgICAgTmFtaW5nIHRoZSBTeXN0ZW0KKysqIENhbGxpbmcgT3V0 OjogICAgICAgICAgICAgICAgIENhbGxpbmcgT3V0CisrKiBBY2NlcHRpbmcgYSBDYWxsOjogICAg ICAgICAgICBBY2NlcHRpbmcgYSBDYWxsCisrKiBQcm90b2NvbCBTZWxlY3Rpb246OiAgICAgICAg ICBQcm90b2NvbCBTZWxlY3Rpb24KKysqIEZpbGUgVHJhbnNmZXIgQ29udHJvbDo6ICAgICAgIEZp bGUgVHJhbnNmZXIgQ29udHJvbAorKyogTWlzY2VsbGFuZW91cyAoc3lzKTo6ICAgICAgICAgTWlz Y2VsbGFuZW91cyBzeXMgRmlsZSBDb21tYW5kcworKyogRGVmYXVsdCBzeXMgRmlsZSBWYWx1ZXM6 OiAgICAgRGVmYXVsdCBWYWx1ZXMKKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogRGVm YXVsdHMgYW5kIEFsdGVybmF0ZXMsICBOZXh0OiBOYW1pbmcgdGhlIFN5c3RlbSwgIFByZXY6IHN5 cyBGaWxlLCAgVXA6IHN5cyBGaWxlCisrCisrNS43LjEgRGVmYXVsdHMgYW5kIEFsdGVybmF0ZXMK KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK1RoZSBmaXJzdCBzZXQgb2YgY29t bWFuZHMgaW4gdGhlIGZpbGUsIHVwIHRvIHRoZSBmaXJzdCBgc3lzdGVtJworK2NvbW1hbmQsIHNw ZWNpZnkgZGVmYXVsdHMgdG8gYmUgdXNlZCBmb3IgYWxsIHN5c3RlbXMgaW4gdGhhdCBmaWxlLiAg RWFjaAorK2BzeXMnIGZpbGUgdXNlcyBhIGRpZmZlcmVudCBzZXQgb2YgZGVmYXVsdHMuCisrCisr ICAgU3Vic2VxdWVudGx5LCBlYWNoIHNldCBvZiBjb21tYW5kcyBmcm9tIGBzeXN0ZW0nIHVwIHRv IHRoZSBuZXh0CisrYHN5c3RlbScgY29tbWFuZCBkZXNjcmliZSBhIHBhcnRpY3VsYXIgc3lzdGVt LiAgRGVmYXVsdCB2YWx1ZXMgbWF5IGJlCisrb3ZlcnJpZGRlbiBmb3Igc3BlY2lmaWMgc3lzdGVt cy4KKysKKysgICBFYWNoIHN5c3RlbSBtYXkgdGhlbiBoYXZlIGEgc2VyaWVzIG9mIGFsdGVybmF0 ZSBjaG9pY2VzIHRvIHVzZSB3aGVuCisrY2FsbGluZyBvdXQgb3IgY2FsbGluZyBpbi4gIFRoZSBm aXJzdCBzZXQgb2YgY29tbWFuZHMgZm9yIGEgcGFydGljdWxhcgorK3N5c3RlbSwgdXAgdG8gdGhl IGZpcnN0IGBhbHRlcm5hdGUnIGNvbW1hbmQsIHByb3ZpZGUgdGhlIGZpcnN0IGNob2ljZS4KKytT dWJzZXF1ZW50bHksIGVhY2ggc2V0IG9mIGNvbW1hbmRzIGZyb20gYGFsdGVybmF0ZScgdXAgdG8g dGhlIG5leHQKKytgYWx0ZXJuYXRlJyBjb21tYW5kIGRlc2NyaWJlIGFuIGFsdGVybmF0ZSBjaG9p Y2UgZm9yIGNhbGxpbmcgb3V0IG9yCisrY2FsbGluZyBpbi4KKysKKysgICBXaGVuIGEgc3lzdGVt IGlzIGNhbGxlZCwgdGhlIGNvbW1hbmRzIGJlZm9yZSB0aGUgZmlyc3QgYGFsdGVybmF0ZScKKyth cmUgdXNlZCB0byBzZWxlY3QgYSBwaG9uZSBudW1iZXIsIHBvcnQsIGFuZCBzbyBmb3J0aDsgaWYg dGhlIGNhbGwgZmFpbHMKKytmb3Igc29tZSByZWFzb24sIHRoZSBjb21tYW5kcyBiZXR3ZWVuIHRo ZSBmaXJzdCBgYWx0ZXJuYXRlJyBhbmQgdGhlCisrc2Vjb25kIGFyZSB1c2VkLCBhbmQgc28gZm9y dGguICBXZWxsLCBub3QgcXVpdGUuICBBY3R1YWxseSwgZWFjaAorK3N1Y2NlZWRpbmcgYWx0ZXJu YXRlIHdpbGwgb25seSBiZSB1c2VkIGlmIGl0IGlzIGRpZmZlcmVudCBpbiBzb21lCisrcmVsZXZh bnQgd2F5IChkaWZmZXJlbnQgcGhvbmUgbnVtYmVyLCBkaWZmZXJlbnQgY2hhdCBzY3JpcHQsIGV0 Yy4pLiAgSWYKKyt5b3Ugd2FudCB0byBmb3JjZSB0aGUgc2FtZSBhbHRlcm5hdGUgdG8gYmUgdXNl ZCBhZ2FpbiAodG8gcmV0cnkgYSBwaG9uZQorK2NhbGwgbW9yZSB0aGFuIG9uY2UsIGZvciBleGFt cGxlKSwgZW50ZXIgdGhlIHBob25lIG51bWJlciAob3IgYW55IG90aGVyCisrcmVsZXZhbnQgZmll bGQpIGFnYWluIHRvIG1ha2UgaXQgYXBwZWFyIGRpZmZlcmVudC4KKysKKysgICBUaGUgYWx0ZXJu YXRlcyBjYW4gYWxzbyBiZSB1c2VkIHRvIGdpdmUgZGlmZmVyZW50IHBlcm1pc3Npb25zIHRvIGFu CisraW5jb21pbmcgY2FsbCBiYXNlZCBvbiB0aGUgbG9naW4gbmFtZS4gIFRoaXMgd2lsbCBvbmx5 IGJlIGRvbmUgaWYgdGhlCisrZmlyc3Qgc2V0IG9mIGNvbW1hbmRzLCBiZWZvcmUgdGhlIGZpcnN0 IGBhbHRlcm5hdGUnIGNvbW1hbmQsIHVzZXMgdGhlCisrYGNhbGxlZC1sb2dpbicgY29tbWFuZC4g IFRoZSBsaXN0IG9mIGFsdGVybmF0ZXMgd2lsbCBiZSBzZWFyY2hlZCwgYW5kCisrdGhlIGZpcnN0 IGFsdGVybmF0ZSB3aXRoIGEgbWF0Y2hpbmcgYGNhbGxlZC1sb2dpbicgY29tbWFuZCB3aWxsIGJl CisrdXNlZC4gIElmIG5vIGFsdGVybmF0ZXMgbWF0Y2gsIHRoZSBjYWxsIHdpbGwgYmUgcmVqZWN0 ZWQuCisrCisrICAgVGhlIGBhbHRlcm5hdGUnIGNvbW1hbmQgbWF5IGFsc28gYmUgdXNlZCBpbiB0 aGUgZmlsZS13aWRlIGRlZmF1bHRzCisrKHRoZSBzZXQgb2YgY29tbWFuZHMgYmVmb3JlIHRoZSBm aXJzdCBgc3lzdGVtJyBjb21tYW5kKS4gIFRoaXMgbWlnaHQgYmUKKyt1c2VkIHRvIHNwZWNpZnkg YSBsaXN0IG9mIHBvcnRzIHdoaWNoIGFyZSBhdmFpbGFibGUgZm9yIGFsbCBzeXN0ZW1zCisrKGZv ciBhbiBleGFtcGxlIG9mIHRoaXMsIHNlZSAqbm90ZSBHYXRld2F5IEV4YW1wbGU6Oikgb3IgdG8g c3BlY2lmeQorK3Blcm1pc3Npb25zIGJhc2VkIG9uIHRoZSBsb2dpbiBuYW1lIHVzZWQgYnkgdGhl IHJlbW90ZSBzeXN0ZW0gd2hlbiBpdAorK2NhbGxzIGluLiAgVGhlIGZpcnN0IGFsdGVybmF0ZSBm b3IgZWFjaCBzeXN0ZW0gd2lsbCBkZWZhdWx0IHRvIHRoZQorK2ZpcnN0IGFsdGVybmF0ZSBmb3Ig dGhlIGZpbGUtd2lkZSBkZWZhdWx0cyAoYXMgbW9kaWZpZWQgYnkgdGhlIGNvbW1hbmRzCisrdXNl ZCBiZWZvcmUgdGhlIGZpcnN0IGBhbHRlcm5hdGUnIGNvbW1hbmQgZm9yIHRoaXMgc3lzdGVtKSwg dGhlIHNlY29uZAorK2FsdGVybmF0ZSBmb3IgZWFjaCBzeXN0ZW0gdG8gdGhlIHNlY29uZCBhbHRl cm5hdGUgZm9yIHRoZSBmaWxlLXdpZGUKKytkZWZhdWx0cyAoYXMgbW9kaWZpZWQgdGhlIHNhbWUg d2F5KSwgYW5kIHNvIGZvcnRoLiAgSWYgYSBzeXN0ZW0KKytzcGVjaWZpZXMgbW9yZSBhbHRlcm5h dGVzIHRoYW4gdGhlIGZpbGUtd2lkZSBkZWZhdWx0cywgdGhlIHRyYWlsaW5nCisrb25lcyB3aWxs IGRlZmF1bHQgdG8gdGhlIGxhc3QgZmlsZS13aWRlIGRlZmF1bHQgYWx0ZXJuYXRlLiAgSWYgYSBz eXN0ZW0KKytzcGVjaWZpZXMgZmV3ZXIgYWx0ZXJuYXRlcyB0aGFuIHRoZSBmaWxlLXdpZGUgZGVm YXVsdHMsIHRoZSB0cmFpbGluZworK2ZpbGUtd2lkZSBkZWZhdWx0IGFsdGVybmF0ZXMgd2lsbCBi ZSB1c2VkIHVubW9kaWZpZWQuICBUaGUKKytgZGVmYXVsdC1hbHRlcm5hdGVzJyBjb21tYW5kIG1h eSBiZSB1c2VkIHRvIG1vZGlmeSB0aGlzIGJlaGF2aW91ci4KKysKKysgICBUaGlzIGNhbiBhbGwg Z2V0IHJhdGhlciBjb25mdXNpbmcsIGFsdGhvdWdoIGl0J3MgZWFzaWVyIHRvIHVzZSB0aGFuCisr dG8gZGVzY3JpYmUgY29uY2lzZWx5OyB0aGUgYHV1Y2hrJyBwcm9ncmFtIG1heSBiZSB1c2VkIHRv IGVuc3VyZSB0aGF0CisreW91IGFyZSBnZXR0aW5nIHdoYXQgeW91IHdhbnQuCisrCisrHworK0Zp bGU6IHV1Y3AuaW5mbywgIE5vZGU6IE5hbWluZyB0aGUgU3lzdGVtLCAgTmV4dDogQ2FsbGluZyBP dXQsICBQcmV2OiBEZWZhdWx0cyBhbmQgQWx0ZXJuYXRlcywgIFVwOiBzeXMgRmlsZQorKworKzUu Ny4yIE5hbWluZyB0aGUgU3lzdGVtCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytgc3lz dGVtIFNUUklORycKKysgICAgIFNwZWNpZnkgdGhlIHJlbW90ZSBzeXN0ZW0gbmFtZS4gIFN1YnNl cXVlbnQgY29tbWFuZHMgdXAgdG8gdGhlIG5leHQKKysgICAgIGBzeXN0ZW0nIGNvbW1hbmQgcmVm ZXIgdG8gdGhpcyBzeXN0ZW0uCisrCisrYGFsdGVybmF0ZSBbU1RSSU5HXScKKysgICAgIFN0YXJ0 IGFuIGFsdGVybmF0ZSBzZXQgb2YgY29tbWFuZHMgKCpub3RlIERlZmF1bHRzIGFuZAorKyAgICAg QWx0ZXJuYXRlczo6KS4gIEFuIG9wdGlvbmFsIGFyZ3VtZW50IG1heSBiZSB1c2VkIHRvIG5hbWUg dGhlCisrICAgICBhbHRlcm5hdGUuICBUaGlzIG5hbWUgd2lsbCBiZSByZWNvcmRlZCBpbiB0aGUg bG9nIGZpbGUgaWYgdGhlCisrICAgICBhbHRlcm5hdGUgaXMgdXNlZCB0byBjYWxsIHRoZSBzeXN0 ZW0uICBUaGVyZSBpcyBubyB3YXkgdG8gbmFtZSB0aGUKKysgICAgIGZpcnN0IGFsdGVybmF0ZSAo dGhlIGNvbW1hbmRzIGJlZm9yZSB0aGUgZmlyc3QgYGFsdGVybmF0ZScKKysgICAgIGNvbW1hbmQp LgorKworK2BkZWZhdWx0LWFsdGVybmF0ZXMgQk9PTEVBTicKKysgICAgIElmIHRoZSBhcmd1bWVu dCBpcyBmYWxzZSwgYW55IHJlbWFpbmluZyBkZWZhdWx0IGFsdGVybmF0ZXMgKGZyb20KKysgICAg IHRoZSBkZWZhdWx0cyBzcGVjaWZpZWQgYXQgdGhlIHRvcCBvZiB0aGUgY3VycmVudCBzeXN0ZW0g ZmlsZSkgd2lsbAorKyAgICAgbm90IGJlIHVzZWQuICBUaGUgZGVmYXVsdCBpcyB0cnVlLgorKwor K2BhbGlhcyBTVFJJTkcnCisrICAgICBTcGVjaWZ5IGFuIGFsaWFzIGZvciB0aGUgY3VycmVudCBz eXN0ZW0uICBUaGUgYWxpYXMgbWF5IGJlIHVzZWQgYnkKKysgICAgIGxvY2FsIGB1dWNwJyBhbmQg YHV1eCcgY29tbWFuZHMsIGFzIHdlbGwgYXMgYnkgdGhlIHJlbW90ZSBzeXN0ZW0KKysgICAgICh3 aGljaCBjYW4gYmUgY29udmVuaWVudCBpZiBhIHJlbW90ZSBzeXN0ZW0gY2hhbmdlcyBpdHMgbmFt ZSkuCisrICAgICBUaGUgZGVmYXVsdCBpcyB0byBoYXZlIG5vIGFsaWFzZXMuCisrCisrYG15bmFt ZSBTVFJJTkcnCisrICAgICBTcGVjaWZpZXMgYSBkaWZmZXJlbnQgc3lzdGVtIG5hbWUgdG8gdXNl IHdoZW4gY2FsbGluZyB0aGUgcmVtb3RlCisrICAgICBzeXN0ZW0uICBBbHNvLCBpZiBgY2FsbGVk LWxvZ2luJyBpcyB1c2VkIGFuZCBpcyBub3QgYEFOWScsIHRoZW4sCisrICAgICB3aGVuIGEgc3lz dGVtIGxvZ3MgaW4gd2l0aCB0aGF0IGxvZ2luIG5hbWUsIFNUUklORyBpcyB1c2VkIGFzIHRoZQor KyAgICAgbG9jYWwgc3lzdGVtIG5hbWUuICBCZWNhdXNlIHRoZSBsb2NhbCBzeXN0ZW0gbmFtZSBt dXN0IGJlCisrICAgICBkZXRlcm1pbmVkIGJlZm9yZSB0aGUgcmVtb3RlIHN5c3RlbSBoYXMgaWRl bnRpZmllZCBpdHNlbGYsIHVzaW5nCisrICAgICBgbXluYW1lJyBhbmQgYGNhbGxlZC1sb2dpbicg dG9nZXRoZXIgZm9yIGFueSBzeXN0ZW0gd2lsbCBzZXQgdGhlCisrICAgICBsb2NhbCBuYW1lIGZv ciB0aGF0IGxvZ2luOyB0aGlzIG1lYW5zIHRoYXQgZWFjaCBsb2NhbGx5IHVzZWQKKysgICAgIHN5 c3RlbSBuYW1lIG11c3QgaGF2ZSBhIHVuaXF1ZSBsb2dpbiBuYW1lIGFzc29jaWF0ZWQgd2l0aCBp dC4KKysgICAgIFRoaXMgYWxsb3dzIGEgc3lzdGVtIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVzIGZv ciBhbiBleHRlcm5hbCBhbmQKKysgICAgIGFuIGludGVybmFsIG5ldHdvcmsuICBUaGUgZGVmYXVs dCBpcyB0byBub3QgdXNlIGEgc3BlY2lhbCBsb2NhbAorKyAgICAgbmFtZS4KKysKKysKKysfCisr RmlsZTogdXVjcC5pbmZvLCAgTm9kZTogQ2FsbGluZyBPdXQsICBOZXh0OiBBY2NlcHRpbmcgYSBD YWxsLCAgUHJldjogTmFtaW5nIHRoZSBTeXN0ZW0sICBVcDogc3lzIEZpbGUKKysKKys1LjcuMyBD YWxsaW5nIE91dAorKy0tLS0tLS0tLS0tLS0tLS0tCisrCisrVGhpcyBzZWN0aW9uIGRlc2NyaWJl cyBjb21tYW5kcyB1c2VkIHdoZW4gcGxhY2luZyBhIGNhbGwgdG8gYW5vdGhlcgorK3N5c3RlbS4K KysKKysqIE1lbnU6CisrCisrKiBXaGVuIHRvIENhbGw6OiAgICAgICAgICAgICAgICBXaGVuIHRv IENhbGwKKysqIFBsYWNpbmcgdGhlIENhbGw6OiAgICAgICAgICAgIFBsYWNpbmcgdGhlIENhbGwK KysqIExvZ2dpbmcgSW46OiAgICAgICAgICAgICAgICAgIExvZ2dpbmcgSW4KKysKKysfCisrRmls ZTogdXVjcC5pbmZvLCAgTm9kZTogV2hlbiB0byBDYWxsLCAgTmV4dDogUGxhY2luZyB0aGUgQ2Fs bCwgIFByZXY6IENhbGxpbmcgT3V0LCAgVXA6IENhbGxpbmcgT3V0CisrCisrNS43LjMuMSBXaGVu IHRvIENhbGwKKysuLi4uLi4uLi4uLi4uLi4uLi4uLgorKworK2B0aW1lIFNUUklORyBbTlVNQkVS XScKKysgICAgIFNwZWNpZnkgd2hlbiB0aGUgc3lzdGVtIG1heSBiZSBjYWxsZWQuICBUaGUgZmly c3QgYXJndW1lbnQgaXMgYQorKyAgICAgdGltZSBzdHJpbmc7IHNlZSAqbm90ZSBUaW1lIFN0cmlu Z3M6Oi4gIFRoZSBvcHRpb25hbCBzZWNvbmQKKysgICAgIGFyZ3VtZW50IHNwZWNpZmllcyBhIHJl dHJ5IHRpbWUgaW4gbWludXRlcy4gIElmIGEgY2FsbCBtYWRlIGR1cmluZworKyAgICAgYSB0aW1l IHRoYXQgbWF0Y2hlcyB0aGUgdGltZSBzdHJpbmcgZmFpbHMsIG5vIG1vcmUgY2FsbHMgYXJlCisr ICAgICBwZXJtaXR0ZWQgdW50aWwgdGhlIHJldHJ5IHRpbWUgaGFzIHBhc3NlZC4gIEJ5IGRlZmF1 bHQgYW4KKysgICAgIGV4cG9uZW50aWFsbHkgaW5jcmVhc2luZyByZXRyeSB0aW1lIGlzIHVzZWQ6 IGFmdGVyIGVhY2ggZmFpbHVyZQorKyAgICAgdGhlIG5leHQgcmV0cnkgcGVyaW9kIGlzIGxvbmdl ci4gIEEgcmV0cnkgdGltZSBzcGVjaWZpZWQgaW4gdGhlCisrICAgICBgdGltZScgY29tbWFuZCBp cyBhbHdheXMgYSBmaXhlZCBhbW91bnQgb2YgdGltZS4KKysKKysgICAgIFRoZSBgdGltZScgY29t bWFuZCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIGluIGEgc2luZ2xlIGFsdGVybmF0ZSwKKysg ICAgIGluIHdoaWNoIGNhc2UgaWYgYW55IHRpbWUgc3RyaW5nIG1hdGNoZXMgdGhlIHN5c3RlbSBt YXkgYmUgY2FsbGVkLgorKyAgICAgV2hlbiB0aGUgYHRpbWUnIGNvbW1hbmQgaXMgdXNlZCBmb3Ig YSBwYXJ0aWN1bGFyIHN5c3RlbSwgYW55IGB0aW1lJworKyAgICAgb3IgYHRpbWVncmFkZScgY29t bWFuZHMgdGhhdCBhcHBlYXJlZCBpbiB0aGUgc3lzdGVtIGRlZmF1bHRzIGFyZQorKyAgICAgaWdu b3JlZC4KKysKKysgICAgIFRoZSBkZWZhdWx0IHRpbWUgc3RyaW5nIGlzIGBOZXZlcicuCisrCisr YHRpbWVncmFkZSBDSEFSQUNURVIgU1RSSU5HIFtOVU1CRVJdJworKyAgICAgVGhlIENIQVJBQ1RF UiBzcGVjaWZpZXMgYSBncmFkZS4gIEl0IG11c3QgYmUgYSBzaW5nbGUgbGV0dGVyIG9yCisrICAg ICBkaWdpdC4gIFRoZSBTVFJJTkcgaXMgYSB0aW1lIHN0cmluZyAoKm5vdGUgVGltZSBTdHJpbmdz OjopLiAgQWxsCisrICAgICBqb2JzIG9mIGdyYWRlIENIQVJBQ1RFUiBvciBoaWdoZXIgKHdoZXJl IGAwJyA+IGA5JyA+IGBBJyA+IGBaJyA+CisrICAgICBgYScgPiBgeicpIG1heSBiZSBydW4gYXQg dGhlIHNwZWNpZmllZCB0aW1lLiAgQW4gb3JkaW5hcnkgYHRpbWUnCisrICAgICBjb21tYW5kIGlz IGVxdWl2YWxlbnQgdG8gdXNpbmcgYHRpbWVncmFkZScgd2l0aCBhIGdyYWRlIG9mIGB6JywKKysg ICAgIHBlcm1pdHRpbmcgYWxsIGpvYnMuICBJZiB0aGVyZSBhcmUgbm8gam9icyBvZiBhIHN1ZmZp Y2llbnRseSBoaWdoCisrICAgICBncmFkZSBhY2NvcmRpbmcgdG8gdGhlIHRpbWUgc3RyaW5nLCB0 aGUgc3lzdGVtIHdpbGwgbm90IGJlIGNhbGxlZC4KKysgICAgIEdpdmluZyB0aGUgYC1zJyBzd2l0 Y2ggdG8gYHV1Y2ljbycgdG8gZm9yY2UgaXQgdG8gY2FsbCBhIHN5c3RlbQorKyAgICAgY2F1c2Vz IGl0IHRvIGFzc3VtZSB0aGVyZSBpcyBhIGpvYiBvZiBncmFkZSBgMCcgd2FpdGluZyB0byBiZSBy dW4uCisrCisrICAgICBUaGUgb3B0aW9uYWwgdGhpcmQgYXJndW1lbnQgc3BlY2lmaWVzIGEgcmV0 cnkgdGltZSBpbiBtaW51dGVzLgorKyAgICAgU2VlIHRoZSBgdGltZScgY29tbWFuZCwgYWJvdmUs IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgICBOb3RlIHRoYXQgdGhlIGB0aW1lZ3JhZGUnIGNv bW1hbmQgc2VydmVzIHR3byBwdXJwb3NlczogMSkgaWYgdGhlcmUKKysgICAgIGlzIG5vIGpvYiBv ZiBzdWZmaWNpZW50bHkgaGlnaCBncmFkZSB0aGUgc3lzdGVtIHdpbGwgbm90IGJlCisrICAgICBj YWxsZWQsIGFuZCAyKSBpZiB0aGUgc3lzdGVtIGlzIGNhbGxlZCBhbnl3YXkgKGJlY2F1c2UgdGhl IGAtcycKKysgICAgIHN3aXRjaCB3YXMgZ2l2ZW4gdG8gYHV1Y2ljbycpIG9ubHkgam9icyBvZiBz dWZmaWNpZW50bHkgaGlnaCBncmFkZQorKyAgICAgd2lsbCBiZSB0cmFuc2ZlcnJlZC4gIEhvd2V2 ZXIsIGlmIHRoZSBvdGhlciBzeXN0ZW0gY2FsbHMgaW4sIHRoZQorKyAgICAgYHRpbWVncmFkZScg Y29tbWFuZHMgYXJlIGlnbm9yZWQsIGFuZCBqb2JzIG9mIGFueSBncmFkZSBtYXkgYmUKKysgICAg IHRyYW5zZmVycmVkIChidXQgc2VlIGBjYWxsLXRpbWVncmFkZScgYW5kIGBjYWxsZWQtdGltZWdy YWRlJywKKysgICAgIGJlbG93KS4gIEFsc28sIHRoZSBgdGltZWdyYWRlJyBjb21tYW5kIHdpbGwg bm90IHByZXZlbnQgdGhlIG90aGVyCisrICAgICBzeXN0ZW0gZnJvbSB0cmFuc2ZlcnJpbmcgYW55 IGpvYiBpdCBjaG9vc2VzLCByZWdhcmRsZXNzIG9mIHdobworKyAgICAgcGxhY2VkIHRoZSBjYWxs LgorKworKyAgICAgVGhlIGB0aW1lZ3JhZGUnIGNvbW1hbmQgbWF5IGFwcGVhciBtdWx0aXBsZSB0 aW1lcyB3aXRob3V0IHVzaW5nCisrICAgICBgYWx0ZXJuYXRlJy4gIFdoZW4gdGhlIGB0aW1lZ3Jh ZGUnIGNvbW1hbmQgaXMgdXNlZCBmb3IgYQorKyAgICAgcGFydGljdWxhciBzeXN0ZW0sIGFueSBg dGltZScgb3IgYHRpbWVncmFkZScgY29tbWFuZHMgdGhhdAorKyAgICAgYXBwZWFyZWQgaW4gdGhl IHN5c3RlbSBkZWZhdWx0cyBhcmUgaWdub3JlZC4KKysKKysgICAgIElmIHRoaXMgY29tbWFuZCBk b2VzIG5vdCBhcHBlYXIsIHRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgb24gd2hhdAorKyAgICAg Z3JhZGUgb2Ygd29yayBtYXkgYmUgZG9uZSBhdCB3aGF0IHRpbWUuCisrCisrYG1heC1yZXRyaWVz IE5VTUJFUicKKysgICAgIEdpdmVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB0aGlzIHN5 c3RlbSBtYXkgYmUgcmV0cmllZC4gIElmCisrICAgICB0aGlzIG1hbnkgY2FsbHMgdG8gdGhlIHN5 c3RlbSBmYWlsLCBpdCB3aWxsIGJlIGNhbGxlZCBhdCBtb3N0IG9uY2UKKysgICAgIGEgZGF5IHdo YXRldmVyIHRoZSByZXRyeSB0aW1lIGlzLiAgVGhlIGRlZmF1bHQgaXMgMjYuCisrCisrYHN1Y2Nl c3Mtd2FpdCBOVU1CRVInCisrICAgICBBIHJldHJ5IHRpbWUsIGluIHNlY29uZHMsIHdoaWNoIGFw cGxpZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwuCisrICAgICBUaGlzIGNhbiBiZSB1c2VkIHRv IHB1dCBhIGxpbWl0IG9uIGhvdyBmcmVxdWVudGx5IHRoZSBzeXN0ZW0gaXMKKysgICAgIGNhbGxl ZC4gIEZvciBleGFtcGxlLCBhbiBhcmd1bWVudCBvZiAxODAwIG1lYW5zIHRoYXQgdGhlIHN5c3Rl bQorKyAgICAgd2lsbCBub3QgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIGV2ZXJ5IGhhbGYgaG91 ci4gIFRoZSBkZWZhdWx0IGlzCisrICAgICAwLCB3aGljaCBtZWFucyB0aGF0IHRoZXJlIGlzIG5v IGxpbWl0LgorKworK2BjYWxsLXRpbWVncmFkZSBDSEFSQUNURVIgU1RSSU5HJworKyAgICAgVGhl IENIQVJBQ1RFUiBpcyBhIHNpbmdsZSBjaGFyYWN0ZXIgYEEnIHRvIGBaJywgYGEnIHRvIGB6Jywg b3IgYDAnCisrICAgICB0byBgOScgYW5kIHNwZWNpZmllcyBhIGdyYWRlLiAgVGhlIFNUUklORyBp cyBhIHRpbWUgc3RyaW5nICgqbm90ZQorKyAgICAgVGltZSBTdHJpbmdzOjopLiAgSWYgYSBjYWxs IGlzIHBsYWNlZCB0byB0aGUgb3RoZXIgc3lzdGVtIGR1cmluZyBhCisrICAgICB0aW1lIHdoaWNo IG1hdGNoZXMgdGhlIHRpbWUgc3RyaW5nLCB0aGUgcmVtb3RlIHN5c3RlbSB3aWxsIGJlCisrICAg ICByZXF1ZXN0ZWQgdG8gb25seSBydW4gam9icyBvZiBncmFkZSBDSEFSQUNURVIgb3IgaGlnaGVy LgorKyAgICAgVW5mb3J0dW5hdGVseSwgdGhlcmUgaXMgbm8gd2F5IHRvIGd1YXJhbnRlZSB0aGF0 IHRoZSBvdGhlciBzeXN0ZW0KKysgICAgIHdpbGwgb2JleSB0aGUgcmVxdWVzdCAodGhpcyBVVUNQ IHBhY2thZ2Ugd2lsbCwgYnV0IHRoZXJlIGFyZQorKyAgICAgb3RoZXJzIHdoaWNoIHdpbGwgbm90 KTsgbW9yZW92ZXIsIGpvYiBncmFkZXMgYXJlIGhpc3RvcmljYWxseQorKyAgICAgc29tZXdoYXQg YXJiaXRyYXJ5LCBzbyBzcGVjaWZ5aW5nIGEgZ3JhZGUgd2lsbCBvbmx5IGJlIG1lYW5pbmdmdWwK KysgICAgIGlmIHRoZSBvdGhlciBzeXN0ZW0gY29vcGVyYXRlcyBpbiBhc3NpZ25pbmcgZ3JhZGVz LiAgVGhpcyBncmFkZQorKyAgICAgcmVzdHJpY3Rpb24gb25seSBhcHBsaWVzIHdoZW4gdGhlIG90 aGVyIHN5c3RlbSBpcyBjYWxsZWQsIG5vdCB3aGVuCisrICAgICB0aGUgb3RoZXIgc3lzdGVtIGNh bGxzIGluLgorKworKyAgICAgVGhlIGBjYWxsLXRpbWVncmFkZScgY29tbWFuZCBtYXkgYXBwZWFy IG11bHRpcGxlIHRpbWVzIHdpdGhvdXQKKysgICAgIHVzaW5nIGBhbHRlcm5hdGUnLiAgSWYgdGhp cyBjb21tYW5kIGRvZXMgbm90IGFwcGVhciwgb3IgaWYgbm9uZSBvZgorKyAgICAgdGhlIHRpbWUg c3RyaW5ncyBtYXRjaCwgdGhlIHJlbW90ZSBzeXN0ZW0gd2lsbCBiZSBhbGxvd2VkIHRvIHNlbmQK KysgICAgIHdoYXRldmVyIGdyYWRlcyBvZiB3b3JrIGl0IGNob29zZXMuCisrCisrYGNhbGxlZC10 aW1lZ3JhZGUgQ0hBUkFDVEVSIFNUUklORycKKysgICAgIFRoZSBDSEFSQUNURVIgaXMgYSBzaW5n bGUgY2hhcmFjdGVyIGBBJyB0byBgWicsIGBhJyB0byBgeicsIG9yIGAwJworKyAgICAgdG8gYDkn IGFuZCBzcGVjaWZpZXMgYSBncmFkZS4gIFRoZSBTVFJJTkcgaXMgYSB0aW1lIHN0cmluZyAoKm5v dGUKKysgICAgIFRpbWUgU3RyaW5nczo6KS4gIElmIGEgY2FsbCBpcyByZWNlaXZlZCBmcm9tIHRo ZSBvdGhlciBzeXN0ZW0KKysgICAgIGR1cmluZyBhIHRpbWUgd2hpY2ggbWF0Y2hlcyB0aGUgdGlt ZSBzdHJpbmcsIG9ubHkgam9icyBvZiBncmFkZQorKyAgICAgQ0hBUkFDVEVSIG9yIGhpZ2hlciB3 aWxsIGJlIHNlbnQgdG8gdGhlIHJlbW90ZSBzeXN0ZW0uICBUaGlzCisrICAgICBhbGxvd3MgdGhl IGpvYiBncmFkZSB0byBiZSBzZXQgZm9yIGluY29taW5nIGNhbGxzLCBvdmVycmlkaW5nIGFueQor KyAgICAgcmVxdWVzdCBtYWRlIGJ5IHRoZSByZW1vdGUgdXVjaWNvLiAgQXMgbm90ZWQgYWJvdmUs IGpvYiBncmFkZXMgYXJlCisrICAgICBoaXN0b3JpY2FsbHkgc29tZXdoYXQgYXJiaXRyYXJ5LCBz byBzcGVjaWZ5aW5nIGEgZ3JhZGUgd2lsbCBvbmx5IGJlCisrICAgICBtZWFuaW5nZnVsIGlmIHRo ZSBvdGhlciBzeXN0ZW0gY29vcGVyYXRlcyBpbiBhc3NpZ25pbmcgZ3JhZGVzLgorKyAgICAgVGhp cyBncmFkZSByZXN0cmljdGlvbiBvbmx5IGFwcGxpZXMgdG8gam9icyBvbiB0aGUgbG9jYWwgc3lz dGVtOworKyAgICAgaXQgZG9lcyBub3QgYWZmZWN0IHRoZSBqb2JzIHRyYW5zZmVycmVkIGJ5IHRo ZSByZW1vdGUgc3lzdGVtLgorKyAgICAgVGhpcyBncmFkZSByZXN0cmljdGlvbiBvbmx5IGFwcGxp ZXMgd2hlbiB0aGUgb3RoZXIgc3lzdGVtIGNhbGxzCisrICAgICBpbiwgbm90IHdoZW4gdGhlIG90 aGVyIHN5c3RlbSBpcyBjYWxsZWQuCisrCisrICAgICBUaGUgYGNhbGxlZC10aW1lZ3JhZGUnIGNv bW1hbmQgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcy4gIElmIHRoaXMKKysgICAgIGNvbW1hbmQg ZG9lcyBub3QgYXBwZWFyLCBvciBpZiBub25lIG9mIHRoZSB0aW1lIHN0cmluZ3MgbWF0Y2gsIGFu eQorKyAgICAgZ3JhZGUgbWF5IGJlIHNlbnQgdG8gdGhlIHJlbW90ZSBzeXN0ZW0gdXBvbiByZWNl aXZpbmcgYSBjYWxsLgorKworKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBQbGFjaW5n IHRoZSBDYWxsLCAgTmV4dDogTG9nZ2luZyBJbiwgIFByZXY6IFdoZW4gdG8gQ2FsbCwgIFVwOiBD YWxsaW5nIE91dAorKworKzUuNy4zLjIgUGxhY2luZyB0aGUgQ2FsbAorKy4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLgorKworK2BzcGVlZCBOVU1CRVInCisrCisrYGJhdWQgTlVNQkVSJworKyAgICAg U3BlY2lmeSB0aGUgc3BlZWQgKHRoZSB0ZXJtICJiYXVkIiBpcyB0ZWNobmljYWxseSBpbmNvcnJl Y3QsIGJ1dAorKyAgICAgd2lkZWx5IHVuZGVyc3Rvb2QpIGF0IHdoaWNoIHRvIGNhbGwgdGhlIHN5 c3RlbS4gIFRoaXMgd2lsbCB0cnkgYWxsCisrICAgICBhdmFpbGFibGUgcG9ydHMgd2l0aCB0aGF0 IHNwZWVkIHVudGlsIGFuIHVubG9ja2VkIHBvcnQgaXMgZm91bmQuCisrICAgICBUaGUgcG9ydHMg YXJlIGRlZmluZWQgaW4gdGhlIHBvcnQgZmlsZS4gIElmIGJvdGggYHNwZWVkJyBhbmQKKysgICAg IGBwb3J0JyBjb21tYW5kcyBhcHBlYXIsIGJvdGggYXJlIHVzZWQgd2hlbiBzZWxlY3RpbmcgYSBw b3J0LiAgVG8KKysgICAgIGFsbG93IGNhbGxzIGF0IG1vcmUgdGhhbiBvbmUgc3BlZWQsIHRoZSBg YWx0ZXJuYXRlJyBjb21tYW5kIG11c3QgYmUKKysgICAgIHVzZWQgKCpub3RlIERlZmF1bHRzIGFu ZCBBbHRlcm5hdGVzOjopLiAgSWYgdGhpcyBjb21tYW5kIGRvZXMgbm90CisrICAgICBhcHBlYXIs IHRoZXJlIGlzIG5vIGRlZmF1bHQ7IHRoZSBzcGVlZCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSBw b3J0CisrICAgICBmaWxlLCBidXQgaWYgaXQgaXMgbm90IHRoZW4gdGhlIG5hdHVyYWwgc3BlZWQg b2YgdGhlIHBvcnQgd2lsbCBiZQorKyAgICAgdXNlZCAod2hhdGV2ZXIgdGhhdCBtZWFucyBvbiB0 aGUgc3lzdGVtKS4gIFNwZWNpZnlpbmcgYW4gZXhwbGljaXQKKysgICAgIHNwZWVkIG9mIDAgd2ls bCByZXF1ZXN0IHRoZSBuYXR1cmFsIHNwZWVkIG9mIHRoZSBwb3J0ICh3aGF0ZXZlcgorKyAgICAg dGhlIHN5c3RlbSBzZXRzIGl0IHRvKSwgb3ZlcnJpZGluZyBhbnkgZGVmYXVsdCBzcGVlZCBmcm9t IHRoZQorKyAgICAgZGVmYXVsdHMgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4KKysKKytgcG9ydCBT VFJJTkcnCisrICAgICBOYW1lIGEgcGFydGljdWxhciBwb3J0IG9yIHR5cGUgb2YgcG9ydCB0byB1 c2Ugd2hlbiBjYWxsaW5nIHRoZQorKyAgICAgc3lzdGVtLiAgVGhlIGluZm9ybWF0aW9uIGZvciB0 aGlzIHBvcnQgaXMgb2J0YWluZWQgZnJvbSB0aGUgcG9ydAorKyAgICAgZmlsZS4gIElmIHRoaXMg Y29tbWFuZCBkb2VzIG5vdCBhcHBlYXIsIHRoZXJlIGlzIG5vIGRlZmF1bHQ7IGEKKysgICAgIHBv cnQgbXVzdCBzb21laG93IGJlIHNwZWNpZmllZCBpbiBvcmRlciB0byBjYWxsIG91dCAoaXQgbWF5 IGJlCisrICAgICBzcGVjaWZpZWQgaW1wbGljaXRseSB1c2luZyB0aGUgYHNwZWVkJyBjb21tYW5k IG9yIGV4cGxpY2l0bHkgdXNpbmcKKysgICAgIHRoZSBuZXh0IHZlcnNpb24gb2YgYHBvcnQnKS4g IFRoZXJlIG1heSBiZSBtYW55IHBvcnRzIHdpdGggdGhlCisrICAgICBzYW1lIG5hbWU7IGVhY2gg d2lsbCBiZSB0cmllZCBpbiB0dXJuIHVudGlsIGFuIHVubG9ja2VkIG9uZSBpcworKyAgICAgZm91 bmQgd2hpY2ggbWF0Y2hlcyB0aGUgZGVzaXJlZCBzcGVlZC4KKysKKytgcG9ydCBTVFJJTkcgLi4u JworKyAgICAgSWYgbW9yZSB0aGFuIG9uZSBzdHJpbmcgZm9sbG93cyB0aGUgYHBvcnQnIGNvbW1h bmQsIHRoZSBzdHJpbmdzIGFyZQorKyAgICAgdHJlYXRlZCBhcyBhIGNvbW1hbmQgdGhhdCBtaWdo dCBhcHBlYXIgaW4gdGhlIHBvcnQgZmlsZSAoKm5vdGUKKysgICAgIHBvcnQgRmlsZTo6KS4gIElm IGEgcG9ydCBpcyBuYW1lZCAoYnkgdXNpbmcgYSBzaW5nbGUgc3RyaW5nCisrICAgICBmb2xsb3dp bmcgYHBvcnQnKSB0aGVzZSBjb21tYW5kcyBhcmUgaWdub3JlZDsgdGhlaXIgcHVycG9zZSBpcyB0 bworKyAgICAgcGVybWl0IGRlZmluaW5nIHRoZSBwb3J0IGNvbXBsZXRlbHkgaW4gdGhlIHN5c3Rl bSBmaWxlIHJhdGhlciB0aGFuCisrICAgICBhbHdheXMgcmVxdWlyaW5nIGVudHJpZXMgaW4gdHdv IGRpZmZlcmVudCBmaWxlcy4gIEluIG9yZGVyIHRvIGNhbGwKKysgICAgIG91dCwgYSBwb3J0IG11 c3QgYmUgc3BlY2lmaWVkIHVzaW5nIHNvbWUgdmVyc2lvbiBvZiB0aGUgYHBvcnQnCisrICAgICBj b21tYW5kLCBvciBieSB1c2luZyB0aGUgYHNwZWVkJyBjb21tYW5kIHRvIHNlbGVjdCBwb3J0cyBm cm9tIHRoZQorKyAgICAgcG9ydCBmaWxlLgorKworK2BwaG9uZSBTVFJJTkcnCisrYGFkZHJlc3Mg U1RSSU5HJworKyAgICAgR2l2ZSBhIHBob25lIG51bWJlciB0byBjYWxsICh3aGVuIHVzaW5nIGEg bW9kZW0gcG9ydCkgb3IgYSByZW1vdGUKKysgICAgIGhvc3QgdG8gY29udGFjdCAod2hlbiB1c2lu ZyBhIFRDUCBvciBUTEkgcG9ydCkuICBUaGUgY29tbWFuZHMKKysgICAgIGBwaG9uZScgYW5kIGBh ZGRyZXNzJyBhcmUgZXF1aXZhbGVudDsgdGhlIGR1cGxpY2F0aW9uIGlzIGludGVuZGVkCisrICAg ICB0byBwcm92aWRlIGEgbW5lbW9uaWMgY2hvaWNlIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBw b3J0IGluIHVzZS4KKysKKysgICAgIFdoZW4gdXNlZCB3aXRoIGEgbW9kZW0gcG9ydCwgYW4gYD0n IGNoYXJhY3RlciBpbiB0aGUgcGhvbmUgbnVtYmVyCisrICAgICBtZWFucyB0byB3YWl0IGZvciBh IHNlY29uZGFyeSBkaWFsIHRvbmUgKGFsdGhvdWdoIG9ubHkgc29tZSBtb2RlbXMKKysgICAgIHN1 cHBvcnQgdGhpcyk7IGEgYC0nIGNoYXJhY3RlciBtZWFucyB0byBwYXVzZSB3aGlsZSBkaWFsaW5n IGZvciAxCisrICAgICBzZWNvbmQgKGFnYWluLCBvbmx5IHNvbWUgbW9kZW1zIHN1cHBvcnQgdGhp cykuICBJZiB0aGUgc3lzdGVtIGhhcworKyAgICAgbW9yZSB0aGFuIG9uZSBwaG9uZSBudW1iZXIs IGVhY2ggb25lIG11c3QgYXBwZWFyIGluIGEgZGlmZmVyZW50CisrICAgICBhbHRlcm5hdGUuICBU aGUgYHBob25lJyBjb21tYW5kIG11c3QgYXBwZWFyIGluIG9yZGVyIHRvIGNhbGwgb3V0CisrICAg ICBvbiBhIG1vZGVtOyB0aGVyZSBpcyBubyBkZWZhdWx0LgorKworKyAgICAgV2hlbiB1c2VkIHdp dGggYSBUQ1AgcG9ydCwgdGhlIHN0cmluZyBuYW1lcyB0aGUgaG9zdCB0byBjb250YWN0LgorKyAg ICAgSXQgbWF5IGJlIGEgZG9tYWluIG5hbWUgb3IgYSBudW1lcmljIEludGVybmV0IGFkZHJlc3Mu ICBJZiBubworKyAgICAgYWRkcmVzcyBpcyBzcGVjaWZpZWQsIHRoZSBzeXN0ZW0gbmFtZSBpcyB1 c2VkLgorKworKyAgICAgV2hlbiB1c2VkIHdpdGggYSBUTEkgcG9ydCwgdGhlIHN0cmluZyBpcyB0 cmVhdGVkIGFzIHRob3VnaCBpdCB3ZXJlCisrICAgICBhbiBleHBlY3Qgc3RyaW5nIGluIGEgY2hh dCBzY3JpcHQsIGFsbG93aW5nIHRoZSB1c2Ugb2YgZXNjYXBlCisrICAgICBjaGFyYWN0ZXJzICgq bm90ZSBDaGF0IFNjcmlwdHM6OikuICBUaGUgYGRpYWxlci1zZXF1ZW5jZScgY29tbWFuZAorKyAg ICAgaW4gdGhlIHBvcnQgZmlsZSBtYXkgb3ZlcnJpZGUgdGhpcyBhZGRyZXNzICgqbm90ZSBwb3J0 IEZpbGU6OikuCisrCisrICAgICBXaGVuIHVzZWQgd2l0aCBhIHBvcnQgdGhhdCBub3QgYSBtb2Rl bSBvciBUQ1Agb3IgVExJLCB0aGlzIGNvbW1hbmQKKysgICAgIGlzIGlnbm9yZWQuCisrCisrCisr HworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IExvZ2dpbmcgSW4sICBQcmV2OiBQbGFjaW5nIHRo ZSBDYWxsLCAgVXA6IENhbGxpbmcgT3V0CisrCisrNS43LjMuMyBMb2dnaW5nIEluCisrLi4uLi4u Li4uLi4uLi4uLi4uCisrCisrYGNoYXQgU1RSSU5HUycKKysKKytgY2hhdC10aW1lb3V0IE5VTUJF UicKKysKKytgY2hhdC1mYWlsIFNUUklORycKKysKKytgY2hhdC1zZXZlbi1iaXQgQk9PTEVBTicK KysKKytgY2hhdC1wcm9ncmFtIFNUUklOR1MnCisrICAgICBUaGVzZSBjb21tYW5kcyBkZXNjcmli ZSBhIGNoYXQgc2NyaXB0IHRvIHVzZSB3aGVuIGxvZ2dpbmcgb24gdG8gYQorKyAgICAgcmVtb3Rl IHN5c3RlbS4gIFRoaXMgbG9naW4gY2hhdCBzY3JpcHQgaXMgcnVuIGFmdGVyIGFueSBjaGF0Cisr ICAgICBzY3JpcHQgZGVmaW5lZCBpbiB0aGUgYGRpYWwnIGZpbGUgKCpub3RlIGRpYWwgRmlsZTo6 KS4gIENoYXQKKysgICAgIHNjcmlwdHMgYXJlIGV4cGxhaW5lZCBpbiAqbm90ZSBDaGF0IFNjcmlw dHM6Oi4KKysKKysgICAgIFR3byBhZGRpdGlvbmFsIGVzY2FwZSBzZXF1ZW5jZXMgbWF5IGJlIHVz ZWQgaW4gc2VuZCBzdHJpbmdzLgorKworKyAgICBgXEwnCisrICAgICAgICAgIFNlbmQgdGhlIGxv Z2luIG5hbWUsIGFzIHNldCBieSB0aGUgYGNhbGwtbG9naW4nIGNvbW1hbmQuCisrCisrICAgIGBc UCcKKysgICAgICAgICAgU2VuZCB0aGUgcGFzc3dvcmQsIGFzIHNldCBieSB0aGUgYGNhbGwtcGFz c3dvcmQnIGNvbW1hbmQuCisrCisrICAgICBUaHJlZSBhZGRpdGlvbmFsIGVzY2FwZSBzZXF1ZW5j ZXMgbWF5IGJlIHVzZWQgd2l0aCB0aGUKKysgICAgIGBjaGF0LXByb2dyYW0nIGNvbW1hbmQuICBU aGVzZSBhcmUgYFxMJyBhbmQgYFxQJywgd2hpY2ggYmVjb21lIHRoZQorKyAgICAgbG9naW4gbmFt ZSBhbmQgcGFzc3dvcmQsIHJlc3BlY3RpdmVseSwgYW5kIGBcWicsIHdoaWNoIGJlY29tZXMgdGhl CisrICAgICBuYW1lIG9mIHRoZSBzeXN0ZW0gb2YgYmVpbmcgY2FsbGVkLgorKworKyAgICAgVGhl IGRlZmF1bHQgY2hhdCBzY3JpcHQgaXM6CisrCisrICAgICAgICAgIGNoYXQgIiIgXHJcYyBvZ2lu Oi1CUkVBSy1vZ2luOi1CUkVBSy1vZ2luOiBcTCB3b3JkOiBcUAorKworKyAgICAgVGhpcyB3aWxs IHNlbmQgYSBjYXJyaWFnZSByZXR1cm4gKHRoZSBgXGMnIHN1cHByZXNzZXMgdGhlCisrICAgICBh ZGRpdGlvbmFsIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB0aGF0IHdvdWxkIG90aGVyd2lzZSBi ZSBzZW50KQorKyAgICAgYW5kIHdhaXRzIGZvciB0aGUgc3RyaW5nIGBvZ2luOicgKHdoaWNoIHdv dWxkIGJlIHRoZSBsYXN0IHBhcnQgb2YKKysgICAgIHRoZSBgbG9naW46JyBwcm9tcHQgc3VwcGxp ZWQgYnkgYSBVbml4IHN5c3RlbSkuICBJZiBpdCBkb2Vzbid0IHNlZQorKyAgICAgYG9naW46Jywg aXQgc2VuZHMgYSBicmVhayBhbmQgd2FpdHMgZm9yIGBvZ2luOicgYWdhaW4uICBJZiBpdAorKyAg ICAgc3RpbGwgZG9lc24ndCBzZWUgYG9naW46JywgaXQgc2VuZHMgYW5vdGhlciBicmVhayBhbmQg d2FpdHMgZm9yCisrICAgICBgb2dpbjonIGFnYWluLiAgSWYgaXQgc3RpbGwgZG9lc24ndCBzZWUg YG9naW46JywgdGhlIGNoYXQgc2NyaXB0CisrICAgICBhYm9ydHMgYW5kIGhhbmdzIHVwIHRoZSBw aG9uZS4gIElmIGl0IGRvZXMgc2VlIGBvZ2luOicgYXQgc29tZQorKyAgICAgcG9pbnQsIGl0IHNl bmRzIHRoZSBsb2dpbiBuYW1lIChhcyBzcGVjaWZpZWQgYnkgdGhlIGBjYWxsLWxvZ2luJworKyAg ICAgY29tbWFuZCkgZm9sbG93ZWQgYnkgYSBjYXJyaWFnZSByZXR1cm4gKHNpbmNlIGFsbCBzZW5k IHN0cmluZ3MgYXJlCisrICAgICBmb2xsb3dlZCBieSBhIGNhcnJpYWdlIHJldHVybiB1bmxlc3Mg YFxjJyBpcyB1c2VkKSBhbmQgd2FpdHMgZm9yCisrICAgICB0aGUgc3RyaW5nIGB3b3JkOicgKHdo aWNoIHdvdWxkIGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlCisrICAgICBgUGFzc3dvcmQ6JyBwcm9t cHQgc3VwcGxpZWQgYnkgYSBVbml4IHN5c3RlbSkuICBJZiBpdCBzZWVzCisrICAgICBgd29yZDon LCBpdCBzZW5kcyB0aGUgcGFzc3dvcmQgYW5kIGEgY2FycmlhZ2UgcmV0dXJuLCBjb21wbGV0aW5n CisrICAgICB0aGUgY2hhdCBzY3JpcHQuICBUaGUgcHJvZ3JhbSB3aWxsIHRoZW4gZW50ZXIgdGhl IGhhbmRzaGFrZSBwaGFzZQorKyAgICAgb2YgdGhlIFVVQ1AgcHJvdG9jb2wuCisrCisrICAgICBU aGlzIGNoYXQgc2NyaXB0IHdpbGwgd29yayBmb3IgbW9zdCBzeXN0ZW1zLCBzbyB5b3Ugd2lsbCBv bmx5IGJlCisrICAgICByZXF1aXJlZCB0byB1c2UgdGhlIGBjYWxsLWxvZ2luJyBhbmQgYGNhbGwt cGFzc3dvcmQnIGNvbW1hbmRzLiAgSW4KKysgICAgIGZhY3QsIGluIHRoZSBmaWxlLXdpZGUgZGVm YXVsdHMgeW91IGNvdWxkIHNldCBkZWZhdWx0cyBvZgorKyAgICAgYGNhbGwtbG9naW4gKicgYW5k IGBjYWxsLXBhc3N3b3JkIConOyB5b3Ugd291bGQgdGhlbiBqdXN0IGhhdmUgdG8KKysgICAgIG1h a2UgYW4gZW50cnkgZm9yIGVhY2ggc3lzdGVtIGluIHRoZSBjYWxsLW91dCBsb2dpbiBmaWxlLgor KworKyAgICAgU29tZSBzeXN0ZW1zIHNlZW0gdG8gZmx1c2ggaW5wdXQgYWZ0ZXIgdGhlIGBsb2dp bjonIHByb21wdCwgc28gdGhleQorKyAgICAgbWF5IG5lZWQgYSB2ZXJzaW9uIG9mIHRoaXMgY2hh dCBzY3JpcHQgd2l0aCBhIGBcZCcgYmVmb3JlIHRoZQorKyAgICAgYFxMJy4gIFdoZW4gdXNpbmcg VVVDUCBvdmVyIFRDUCwgc29tZSBzZXJ2ZXJzIHdpbGwgbm90IGJlIGhhbmRsZQorKyAgICAgdGhl IGluaXRpYWwgY2FycmlhZ2UgcmV0dXJuIHNlbnQgYnkgdGhpcyBjaGF0IHNjcmlwdDsgaW4gdGhp cyBjYXNlCisrICAgICB5b3UgbWF5IGhhdmUgdG8gc3BlY2lmeSB0aGUgc2ltcGxlIGNoYXQgc2Ny aXB0IGBvZ2luOiBcTCB3b3JkOiBcUCcuCisrCisrYGNhbGwtbG9naW4gU1RSSU5HJworKyAgICAg U3BlY2lmeSB0aGUgbG9naW4gbmFtZSB0byBzZW5kIHdpdGggYFxMJyBpbiB0aGUgY2hhdCBzY3Jp cHQuICBJZgorKyAgICAgdGhlIHN0cmluZyBpcyBgKicgKGUuZy4sIGBjYWxsLWxvZ2luIConKSB0 aGUgbG9naW4gbmFtZSB3aWxsIGJlCisrICAgICBmZXRjaGVkIGZyb20gdGhlIGNhbGwgb3V0IGxv Z2luIG5hbWUgYW5kIHBhc3N3b3JkIGZpbGUgKCpub3RlCisrICAgICBDb25maWd1cmF0aW9uIEZp bGUgTmFtZXM6OikuICBUaGUgc3RyaW5nIG1heSBjb250YWluIGVzY2FwZQorKyAgICAgc2VxdWVu Y2VzIGFzIHRob3VnaCBpdCB3ZXJlIGFuIGV4cGVjdCBzdHJpbmcgaW4gYSBjaGF0IHNjcmlwdAor KyAgICAgKCpub3RlIENoYXQgU2NyaXB0czo6KS4gIFRoZXJlIGlzIG5vIGRlZmF1bHQuCisrCisr YGNhbGwtcGFzc3dvcmQgU1RSSU5HJworKyAgICAgU3BlY2lmeSB0aGUgcGFzc3dvcmQgdG8gc2Vu ZCB3aXRoIGBcUCcgaW4gdGhlIGNoYXQgc2NyaXB0LiAgSWYgdGhlCisrICAgICBzdHJpbmcgaXMg YConIChlLmcuLCBgY2FsbC1wYXNzd29yZCAqJykgdGhlIHBhc3N3b3JkIHdpbGwgYmUKKysgICAg IGZldGNoZWQgZnJvbSB0aGUgY2FsbC1vdXQgbG9naW4gbmFtZSBhbmQgcGFzc3dvcmQgZmlsZSAo Km5vdGUKKysgICAgIENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lczo6KS4gIFRoZSBzdHJpbmcgbWF5 IGNvbnRhaW4gZXNjYXBlCisrICAgICBzZXF1ZW5jZXMgYXMgdGhvdWdoIGl0IHdlcmUgYW4gZXhw ZWN0IHN0cmluZyBpbiBhIGNoYXQgc2NyaXB0CisrICAgICAoKm5vdGUgQ2hhdCBTY3JpcHRzOjop LiAgVGhlcmUgaXMgbm8gZGVmYXVsdC4KKysKKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9k ZTogQWNjZXB0aW5nIGEgQ2FsbCwgIE5leHQ6IFByb3RvY29sIFNlbGVjdGlvbiwgIFByZXY6IENh bGxpbmcgT3V0LCAgVXA6IHN5cyBGaWxlCisrCisrNS43LjQgQWNjZXB0aW5nIGEgQ2FsbAorKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytgY2FsbGVkLWxvZ2luIFNUUklOR1MnCisrICAgICBU aGUgZmlyc3QgU1RSSU5HIHNwZWNpZmllcyB0aGUgbG9naW4gbmFtZSB0aGF0IHRoZSBzeXN0ZW0g bXVzdCB1c2UKKysgICAgIHdoZW4gY2FsbGluZyBpbi4gIElmIGl0IGlzIGBBTlknIChlLmcuLCBg Y2FsbGVkLWxvZ2luIEFOWScpIGFueQorKyAgICAgbG9naW4gbmFtZSBtYXkgYmUgdXNlZDsgdGhp cyBpcyB1c2VmdWwgdG8gb3ZlcnJpZGUgYSBmaWxlLXdpZGUKKysgICAgIGRlZmF1bHQgYW5kIHRv IGluZGljYXRlIHRoYXQgZnV0dXJlIGFsdGVybmF0ZXMgbWF5IGhhdmUgZGlmZmVyZW50CisrICAg ICBsb2dpbiBuYW1lcy4gIENhc2UgaXMgc2lnbmlmaWNhbnQuICBUaGUgZGVmYXVsdCB2YWx1ZSBp cyBgQU5ZJy4KKysKKysgICAgIERpZmZlcmVudCBhbHRlcm5hdGVzICgqbm90ZSBEZWZhdWx0cyBh bmQgQWx0ZXJuYXRlczo6KSBtYXkgdXNlCisrICAgICBkaWZmZXJlbnQgYGNhbGxlZC1sb2dpbicg Y29tbWFuZHMsIGluIHdoaWNoIGNhc2UgdGhlIGxvZ2luIG5hbWUKKysgICAgIHdpbGwgYmUgdXNl ZCB0byBzZWxlY3Qgd2hpY2ggYWx0ZXJuYXRlIGlzIGluIGVmZmVjdDsgdGhpcyB3aWxsCisrICAg ICBvbmx5IHdvcmsgaWYgdGhlIGZpcnN0IGFsdGVybmF0ZSAoYmVmb3JlIHRoZSBmaXJzdCBgYWx0 ZXJuYXRlJworKyAgICAgY29tbWFuZCkgdXNlcyB0aGUgYGNhbGxlZC1sb2dpbicgY29tbWFuZC4K KysKKysgICAgIEFkZGl0aW9uYWwgc3RyaW5ncyBtYXkgYmUgc3BlY2lmaWVkIGFmdGVyIHRoZSBs b2dpbiBuYW1lOyB0aGV5IGFyZQorKyAgICAgYSBsaXN0IG9mIHdoaWNoIHN5c3RlbXMgYXJlIHBl cm1pdHRlZCB0byB1c2UgdGhpcyBsb2dpbiBuYW1lLiAgSWYKKysgICAgIHRoaXMgZmVhdHVyZSBp cyB1c2VkLCB0aGVuIG5vcm1hbGx5IHRoZSBsb2dpbiBuYW1lIHdpbGwgb25seSBiZQorKyAgICAg Z2l2ZW4gaW4gYSBzaW5nbGUgYGNhbGxlZC1sb2dpbicgY29tbWFuZC4gIE9ubHkgc3lzdGVtcyB3 aGljaAorKyAgICAgYXBwZWFyIG9uIHRoZSBsaXN0LCBvciB3aGljaCB1c2UgYW4gZXhwbGljaXQg YGNhbGxlZC1sb2dpbicKKysgICAgIGNvbW1hbmQsIHdpbGwgYmUgcGVybWl0dGVkIHRvIHVzZSB0 aGF0IGxvZ2luIG5hbWUuICBJZiB0aGUgc2FtZQorKyAgICAgbG9naW4gbmFtZSBpcyB1c2VkIG1v cmUgdGhhbiBvbmNlIHdpdGggYSBsaXN0IG9mIHN5c3RlbXMsIGFsbCB0aGUKKysgICAgIGxpc3Rz IGFyZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIuICBUaGlzIGZlYXR1cmUgcGVybWl0cyB5b3UgdG8K KysgICAgIHJlc3RyaWN0IGEgbG9naW4gbmFtZSB0byBhIHBhcnRpY3VsYXIgc2V0IG9mIHN5c3Rl bXMgd2l0aG91dAorKyAgICAgcmVxdWlyaW5nIHlvdSB0byB1c2UgdGhlIGBjYWxsZWQtbG9naW4n IGNvbW1hbmQgZm9yIGV2ZXJ5IHNpbmdsZQorKyAgICAgc3lzdGVtOyB5b3UgY2FuIGFjaGlldmUg YSBzaW1pbGFyIGVmZmVjdCBieSB1c2luZyBhIGRpZmZlcmVudAorKyAgICAgc3lzdGVtIGZpbGUg Zm9yIGVhY2ggcGVybWl0dGVkIGxvZ2luIG5hbWUgd2l0aCBhbiBhcHByb3ByaWF0ZQorKyAgICAg YGNhbGxlZC1sb2dpbicgY29tbWFuZCBpbiB0aGUgZmlsZS13aWRlIGRlZmF1bHRzLgorKworK2Bj YWxsYmFjayBCT09MRUFOJworKyAgICAgSWYgQk9PTEVBTiBpcyB0cnVlLCB0aGVuIHdoZW4gdGhl IHJlbW90ZSBzeXN0ZW0gY2FsbHMgYHV1Y2ljbycKKysgICAgIHdpbGwgaGFuZyB1cCB0aGUgY29u bmVjdGlvbiBhbmQgcHJlcGFyZSB0byBjYWxsIGl0IGJhY2suICBUaGUKKysgICAgIGRlZmF1bHQg aXMgZmFsc2UuCisrCisrYGNhbGxlZC1jaGF0IFNUUklOR1MnCisrCisrYGNhbGxlZC1jaGF0LXRp bWVvdXQgTlVNQkVSJworKworK2BjYWxsZWQtY2hhdC1mYWlsIFNUUklORycKKysKKytgY2FsbGVk LWNoYXQtc2V2ZW4tYml0IEJPT0xFQU4nCisrCisrYGNhbGxlZC1jaGF0LXByb2dyYW0gU1RSSU5H UycKKysgICAgIFRoZXNlIGNvbW1hbmRzIG1heSBiZSB1c2VkIHRvIGRlZmluZSBhIGNoYXQgc2Ny aXB0ICgqbm90ZSBDaGF0CisrICAgICBTY3JpcHRzOjopIHRoYXQgaXMgcnVuIHdoZW5ldmVyIHRo ZSBsb2NhbCBzeXN0ZW0gaXMgY2FsbGVkIGJ5IHRoZQorKyAgICAgc3lzdGVtIGJlaW5nIGRlZmlu ZWQuICBUaGUgY2hhdCBzY3JpcHQgZGVmaW5lZCBieSB0aGUgYGNoYXQnCisrICAgICBjb21tYW5k ICgqbm90ZSBMb2dnaW5nIEluOjopLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgdXNlZCB3aGVuIHRo ZQorKyAgICAgcmVtb3RlIHN5c3RlbSBpcyBjYWxsZWQuICBUaGlzIGNhbGxlZCBjaGF0IHNjcmlw dCBtaWdodCBiZSB1c2VkIHRvCisrICAgICBzZXQgc3BlY2lhbCBtb2RlbSBwYXJhbWV0ZXJzIHRo YXQgYXJlIGFwcHJvcHJpYXRlIHRvIGEgcGFydGljdWxhcgorKyAgICAgc3lzdGVtLiAgSXQgaXMg cnVuIGFmdGVyIHByb3RvY29sIG5lZ290aWF0aW9uIGlzIGNvbXBsZXRlLCBidXQKKysgICAgIGJl Zm9yZSB0aGUgcHJvdG9jb2wgaGFzIGJlZW4gc3RhcnRlZC4gIEZvciBhZGRpdGlvbmFsIGVzY2Fw ZQorKyAgICAgc2VxdWVuY2Ugd2hpY2ggbWF5IGJlIHVzZWQgYmVzaWRlcyB0aG9zZSBkZWZpbmVk IGZvciBhbGwgY2hhdAorKyAgICAgc2NyaXB0cywgc2VlICpub3RlIExvZ2dpbmcgSW46Oi4gIFRo ZXJlIGlzIG5vIGRlZmF1bHQgY2FsbGVkIGNoYXQKKysgICAgIHNjcmlwdC4gIElmIHRoZSBjYWxs ZWQgY2hhdCBzY3JpcHQgZmFpbHMsIHRoZSBpbmNvbWluZyBjYWxsIHdpbGwKKysgICAgIGJlIGFi b3J0ZWQuCisrCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFByb3RvY29sIFNlbGVj dGlvbiwgIE5leHQ6IEZpbGUgVHJhbnNmZXIgQ29udHJvbCwgIFByZXY6IEFjY2VwdGluZyBhIENh bGwsICBVcDogc3lzIEZpbGUKKysKKys1LjcuNSBQcm90b2NvbCBTZWxlY3Rpb24KKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysKKytgcHJvdG9jb2wgU1RSSU5HJworKyAgICAgU3BlY2lmaWVz IHdoaWNoIHByb3RvY29scyB0byB1c2UgZm9yIHRoZSBvdGhlciBzeXN0ZW0sIGFuZCBpbiB3aGlj aAorKyAgICAgb3JkZXIgdG8gdXNlIHRoZW0uICBUaGlzIHdvdWxkIG5vdCBub3JtYWxseSBiZSB1 c2VkLiAgRm9yIGV4YW1wbGUsCisrICAgICBgcHJvdG9jb2wgdGZnJy4KKysKKysgICAgIFRoZSBk ZWZhdWx0IGRlcGVuZHMgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcG9ydCBhbmQgdGhl CisrICAgICBkaWFsZXIsIGFzIHNwZWNpZmllZCBieSB0aGUgYHNldmVuLWJpdCcgYW5kIGByZWxp YWJsZScgY29tbWFuZHMuCisrICAgICBJZiBuZWl0aGVyIHRoZSBwb3J0IG5vciB0aGUgZGlhbGVy IHVzZSBlaXRoZXIgb2YgdGhlc2UgY29tbWFuZHMsCisrICAgICB0aGUgZGVmYXVsdCBpcyB0byBh c3N1bWUgYW4gZWlnaHQtYml0IHJlbGlhYmxlIGNvbm5lY3Rpb24uICBUaGUKKysgICAgIGNvbW1h bmRzIGBzZXZlbi1iaXQgdHJ1ZScgb3IgYHJlbGlhYmxlIGZhbHNlJyBtaWdodCBiZSB1c2VkIGlu CisrICAgICBlaXRoZXIgdGhlIHBvcnQgb3IgdGhlIGRpYWxlciB0byBjaGFuZ2UgdGhpcy4gIEVh Y2ggcHJvdG9jb2wgaGFzCisrICAgICBwYXJ0aWN1bGFyIHJlcXVpcmVtZW50cyB0aGF0IG11c3Qg YmUgbWV0IGJlZm9yZSBpdCB3aWxsIGJlCisrICAgICBjb25zaWRlcmVkIGR1cmluZyBuZWdvdGlh dGlvbiB3aXRoIHRoZSByZW1vdGUgc2lkZS4KKysKKysgICAgIFRoZSBgdCcgYW5kIGBlJyBwcm90 b2NvbHMgYXJlIGludGVuZGVkIGZvciB1c2Ugb3ZlciBUQ1Agb3Igc29tZQorKyAgICAgb3RoZXIg Y29tbXVuaWNhdGlvbiBwYXRoIHdpdGggZW5kIHRvIGVuZCByZWxpYWJpbGl0eSwgYXMgdGhleSBk byBubworKyAgICAgY2hlY2tpbmcgb2YgdGhlIGRhdGEgYXQgYWxsLiAgVGhleSB3aWxsIG9ubHkg YmUgY29uc2lkZXJlZCBvbiBhCisrICAgICBUQ1AgcG9ydCB3aGljaCBpcyBib3RoIHJlbGlhYmxl IGFuZCBlaWdodCBiaXQuICBGb3IgdGVjaG5pY2FsCisrICAgICBkZXRhaWxzLCBzZWUgKm5vdGUg dCBQcm90b2NvbDo6LCBhbmQgKm5vdGUgZSBQcm90b2NvbDo6LgorKworKyAgICAgVGhlIGBpJyBw cm90b2NvbCBpcyBhIGJpZGlyZWN0aW9uYWwgcHJvdG9jb2wuICBJdCByZXF1aXJlcyBhbgorKyAg ICAgZWlnaHQtYml0IGNvbm5lY3Rpb24uICBJdCB3aWxsIHJ1biBvdmVyIGEgaGFsZi1kdXBsZXgg bGluaywgc3VjaCBhcworKyAgICAgVGVsZWJpdCBtb2RlbXMgaW4gUEVQIG1vZGUsIGJ1dCBmb3Ig ZWZmaWNpZW50IHVzZSBvZiBzdWNoIGEKKysgICAgIGNvbm5lY3Rpb24geW91IG11c3QgdXNlIHRo ZSBgaGFsZi1kdXBsZXgnIGNvbW1hbmQgKCpub3RlIHBvcnQKKysgICAgIEZpbGU6OikuICAqTm90 ZSBpIFByb3RvY29sOjouCisrCisrICAgICBUaGUgYGcnIHByb3RvY29sIGlzIHJvYnVzdCwgYnV0 IHJlcXVpcmVzIGFuIGVpZ2h0LWJpdCBjb25uZWN0aW9uLgorKyAgICAgKk5vdGUgZyBQcm90b2Nv bDo6LgorKworKyAgICAgVGhlIGBHJyBwcm90b2NvbCBpcyB0aGUgU3lzdGVtIFYgUmVsZWFzZSA0 IHZlcnNpb24gb2YgdGhlIGBnJworKyAgICAgcHJvdG9jb2wuICAqTm90ZSBCaWcgRyBQcm90b2Nv bDo6LgorKworKyAgICAgVGhlIGBhJyBwcm90b2NvbCBpcyBhIFptb2RlbSBsaWtlIHByb3RvY29s LCBjb250cmlidXRlZCBieSBEb3VnCisrICAgICBFdmFucy4gIEl0IHJlcXVpcmVzIGFuIGVpZ2h0 LWJpdCBjb25uZWN0aW9uLCBidXQgdW5saWtlIHRoZSBgZycgb3IKKysgICAgIGBpJyBwcm90b2Nv bCBpdCB3aWxsIHdvcmsgaWYgY2VydGFpbiBjb250cm9sIGNoYXJhY3RlcnMgbWF5IG5vdCBiZQor KyAgICAgdHJhbnNtaXR0ZWQuCisrCisrICAgICBUaGUgYGonIHByb3RvY29sIGlzIGEgdmFyaWFu dCBvZiB0aGUgYGknIHByb3RvY29sIHdoaWNoIGNhbiBhdm9pZAorKyAgICAgY2VydGFpbiBjb250 cm9sIGNoYXJhY3RlcnMuICBUaGUgc2V0IG9mIGNoYXJhY3RlcnMgaXQgYXZvaWRzIGNhbgorKyAg ICAgYmUgc2V0IGJ5IGEgcGFyYW1ldGVyLiAgV2hpbGUgaXQgdGVjaG5pY2FsbHkgZG9lcyBub3Qg cmVxdWlyZSBhbgorKyAgICAgZWlnaHQgYml0IGNvbm5lY3Rpb24gKGl0IGNvdWxkIGJlIGNvbmZp Z3VyZWQgdG8gYXZvaWQgYWxsCisrICAgICBjaGFyYWN0ZXJzIHdpdGggdGhlIGhpZ2ggYml0IHNl dCkgaXQgd291bGQgYmUgdmVyeSBpbmVmZmljaWVudCB0bworKyAgICAgdXNlIGl0IG92ZXIgb25l LiAgSXQgaXMgdXNlZnVsIG92ZXIgYSBlaWdodC1iaXQgY29ubmVjdGlvbiB0aGF0CisrICAgICB3 aWxsIG5vdCB0cmFuc21pdCBjZXJ0YWluIGNvbnRyb2wgY2hhcmFjdGVycy4gICpOb3RlIGogUHJv dG9jb2w6Oi4KKysKKysgICAgIFRoZSBgZicgcHJvdG9jb2wgaXMgaW50ZW5kZWQgZm9yIHVzZSB3 aXRoIFguMjUgY29ubmVjdGlvbnM7IGl0CisrICAgICBjaGVja3N1bXMgZWFjaCBmaWxlIGFzIGEg d2hvbGUsIHNvIGFueSBlcnJvciBjYXVzZXMgdGhlIGVudGlyZQorKyAgICAgZmlsZSB0byBiZSBy ZXRyYW5zbWl0dGVkLiAgSXQgcmVxdWlyZXMgYSByZWxpYWJsZSBjb25uZWN0aW9uLCBidXQKKysg ICAgIG9ubHkgdXNlcyBzZXZlbi1iaXQgdHJhbnNtaXNzaW9ucy4gIEl0IGlzIGEgc3RyZWFtaW5n IHByb3RvY29sLAorKyAgICAgc28sIHdoaWxlIGl0IGNhbiBiZSB1c2VkIG9uIGEgc2VyaWFsIHBv cnQsIHRoZSBwb3J0IG11c3QgYmUKKysgICAgIGNvbXBsZXRlbHkgcmVsaWFibGUgYW5kIGZsb3cg Y29udHJvbGxlZDsgbWFueSBhcmVuJ3QuICAqTm90ZSBmCisrICAgICBQcm90b2NvbDo6LgorKwor KyAgICAgVGhlIGB2JyBwcm90b2NvbCBpcyB0aGUgYGcnIHByb3RvY29sIGFzIHVzZWQgYnkgdGhl IERPUyBwcm9ncmFtCisrICAgICBVVVBDL0V4dGVuZGVkLiAgSXQgaXMgcHJvdmlkZWQgb25seSBz byB0aGF0IFVVUEMvRXh0ZW5kZWQgdXNlcnMKKysgICAgIGNhbiB1c2UgaXQ7IHRoZXJlIGlzIG5v IHBhcnRpY3VsYXIgcmVhc29uIHRvIHNlbGVjdCBpdC4gICpOb3RlIHYKKysgICAgIFByb3RvY29s OjouCisrCisrICAgICBUaGUgYHknIHByb3RvY29sIGlzIGFuIGVmZmljaWVudCBzdHJlYW1pbmcg cHJvdG9jb2wuICBJdCBkb2VzIGVycm9yCisrICAgICBjaGVja2luZywgYnV0IHdoZW4gaXQgZGV0 ZWN0cyBhbiBlcnJvciBpdCBpbW1lZGlhdGVseSBhYm9ydHMgdGhlCisrICAgICBjb25uZWN0aW9u LiAgVGhpcyByZXF1aXJlcyBhIHJlbGlhYmxlLCBmbG93IGNvbnRyb2xsZWQsIGVpZ2h0LWJpdAor KyAgICAgY29ubmVjdGlvbi4gIEluIHByYWN0aWNlLCBpdCBpcyBvbmx5IHVzZWZ1bCBvbiBhIGNv bm5lY3Rpb24gdGhhdCBpcworKyAgICAgbmVhcmx5IGFsd2F5cyBlcnJvci1mcmVlLiAgVW5saWtl IHRoZSBgdCcgYW5kIGBlJyBwcm90b2NvbHMsIHRoZQorKyAgICAgY29ubmVjdGlvbiBuZWVkIG5v dCBiZSBlbnRpcmVseSBlcnJvci1mcmVlLCBzbyB0aGUgYHknIHByb3RvY29sCisrICAgICBjYW4g YmUgdXNlZCBvbiBhIHNlcmlhbCBwb3J0LiAgKk5vdGUgeSBQcm90b2NvbDo6LgorKworKyAgICAg VGhlIHByb3RvY29scyB3aWxsIGJlIGNvbnNpZGVyZWQgaW4gdGhlIG9yZGVyIHNob3duIGFib3Zl LiAgVGhpcworKyAgICAgbWVhbnMgdGhhdCBpZiBuZWl0aGVyIHRoZSBgc2V2ZW4tYml0JyBub3Ig dGhlIGByZWxpYWJsZScgY29tbWFuZAorKyAgICAgYXJlIHVzZWQsIHRoZSBgdCcgcHJvdG9jb2wg d2lsbCBiZSB1c2VkIG92ZXIgYSBUQ1AgY29ubmVjdGlvbiBhbmQKKysgICAgIHRoZSBgaScgcHJv dG9jb2wgd2lsbCBiZSB1c2VkIG92ZXIgYW55IG90aGVyIHR5cGUgb2YgY29ubmVjdGlvbgorKyAg ICAgKHN1YmplY3QsIG9mIGNvdXJzZSwgdG8gd2hhdCBpcyBzdXBwb3J0ZWQgYnkgdGhlIHJlbW90 ZSBzeXN0ZW07IGl0CisrICAgICBtYXkgYmUgYXNzdW1lZCB0aGF0IGFsbCBzeXN0ZW1zIHN1cHBv cnQgdGhlIGBnJyBwcm90b2NvbCkuCisrCisrICAgICBOb3RlIHRoYXQgY3VycmVudGx5IHNwZWNp ZnlpbmcgYm90aCBgc2V2ZW4tYml0IHRydWUnIGFuZCBgcmVsaWFibGUKKysgICAgIGZhbHNlJyB3 aWxsIG5vdCBtYXRjaCBhbnkgcHJvdG9jb2wuICBJZiB0aGlzIG9jY3VycyB0aHJvdWdoIGEKKysg ICAgIGNvbWJpbmF0aW9uIG9mIHBvcnQgYW5kIGRpYWxlciBzcGVjaWZpY2F0aW9ucywgeW91IHdp bGwgaGF2ZSB0bworKyAgICAgdXNlIHRoZSBgcHJvdG9jb2wnIGNvbW1hbmQgZm9yIHRoZSBzeXN0 ZW0gb3Igbm8gcHJvdG9jb2wgd2lsbCBiZQorKyAgICAgc2VsZWN0ZWQgYXQgYWxsICh0aGUgb25s eSByZWFzb25hYmxlIGNob2ljZSB3b3VsZCBiZSBgcHJvdG9jb2wgZicpLgorKworKyAgICAgQSBw cm90b2NvbCBsaXN0IG1heSBhbHNvIGJlIHNwZWNpZmllZCBmb3IgYSBwb3J0ICgqbm90ZSBwb3J0 CisrICAgICBGaWxlOjopLCBidXQsIGlmIHRoZXJlIGlzIGEgbGlzdCBmb3IgdGhlIHN5c3RlbSwg dGhlIGxpc3QgZm9yIHRoZQorKyAgICAgcG9ydCBpcyBpZ25vcmVkLgorKworK2Bwcm90b2NvbC1w YXJhbWV0ZXIgQ0hBUkFDVEVSIFNUUklORyAuLi4nCisrICAgICBDSEFSQUNURVIgaXMgYSBzaW5n bGUgY2hhcmFjdGVyIHNwZWNpZnlpbmcgYSBwcm90b2NvbC4gIFRoZQorKyAgICAgcmVtYWluaW5n IHN0cmluZ3MgYXJlIGEgY29tbWFuZCBzcGVjaWZpYyB0byB0aGF0IHByb3RvY29sIHdoaWNoCisr ICAgICB3aWxsIGJlIGV4ZWN1dGVkIGlmIHRoYXQgcHJvdG9jb2wgaXMgdXNlZC4gIEEgdHlwaWNh bCBjb21tYW5kIGlzCisrICAgICBzb21ldGhpbmcgbGlrZSBgd2luZG93IDcnLiAgVGhlIHBhcnRp Y3VsYXIgY29tbWFuZHMgYXJlIHByb3RvY29sCisrICAgICBzcGVjaWZpYy4KKysKKysgICAgIFRo ZSBgaScgcHJvdG9jb2wgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBjb21tYW5kcywgYWxsIG9mIHdo aWNoIHRha2UKKysgICAgIG51bWVyaWMgYXJndW1lbnRzOgorKworKyAgICBgd2luZG93JworKyAg ICAgICAgICBUaGUgd2luZG93IHNpemUgdG8gcmVxdWVzdCB0aGUgcmVtb3RlIHN5c3RlbSB0byB1 c2UuICBUaGlzCisrICAgICAgICAgIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAxNiBpbmNsdXNpdmUu ICBUaGUgZGVmYXVsdCBpcyAxNi4KKysKKysgICAgYHBhY2tldC1zaXplJworKyAgICAgICAgICBU aGUgcGFja2V0IHNpemUgdG8gcmVxdWVzdCB0aGUgcmVtb3RlIHN5c3RlbSB0byB1c2UuICBUaGlz CisrICAgICAgICAgIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0MDk1IGluY2x1c2l2ZS4gIFRoZSBk ZWZhdWx0IGlzIDEwMjQuCisrCisrICAgIGByZW1vdGUtcGFja2V0LXNpemUnCisrICAgICAgICAg IElmIHRoaXMgaXMgYmV0d2VlbiAxIGFuZCA0MDk1IGluY2x1c2l2ZSwgdGhlIHBhY2tldCBzaXpl CisrICAgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcmVtb3RlIHN5c3RlbSBpcyBpZ25vcmVkLCBh bmQgdGhpcyBpcyB1c2VkCisrICAgICAgICAgIGluc3RlYWQuICBUaGUgZGVmYXVsdCBpcyAwLCB3 aGljaCBtZWFucyB0aGF0IHRoZSByZW1vdGUKKysgICAgICAgICAgc3lzdGVtJ3MgcmVxdWVzdCBp cyBob25vcmVkLgorKworKyAgICBgc3luYy10aW1lb3V0JworKyAgICAgICAgICBUaGUgbGVuZ3Ro IG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGEgU1lOQyBwYWNrZXQKKysgICAgICAg ICAgZnJvbSB0aGUgcmVtb3RlIHN5c3RlbS4gIFNZTkMgcGFja2V0cyBhcmUgZXhjaGFuZ2VkIHdo ZW4gdGhlCisrICAgICAgICAgIHByb3RvY29sIGlzIHN0YXJ0ZWQuICBUaGUgZGVmYXVsdCBpcyAx MC4KKysKKysgICAgYHN5bmMtcmV0cmllcycKKysgICAgICAgICAgVGhlIG51bWJlciBvZiB0aW1l cyB0byByZXRyeSBzZW5kaW5nIGEgU1lOQyBwYWNrZXQgYmVmb3JlCisrICAgICAgICAgIGdpdmlu ZyB1cC4gIFRoZSBkZWZhdWx0IGlzIDYuCisrCisrICAgIGB0aW1lb3V0JworKyAgICAgICAgICBU aGUgbGVuZ3RoIG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGFuIGluY29taW5nCisr ICAgICAgICAgIHBhY2tldCBiZWZvcmUgc2VuZGluZyBhIG5lZ2F0aXZlIGFja25vd2xlZGdlbWVu dC4gIFRoZQorKyAgICAgICAgICBkZWZhdWx0IGlzIDEwLgorKworKyAgICBgcmV0cmllcycKKysg ICAgICAgICAgVGhlIG51bWJlciBvZiB0aW1lcyB0byByZXRyeSBzZW5kaW5nIGEgcGFja2V0IG9y IGEgbmVnYXRpdmUKKysgICAgICAgICAgYWNrbm93bGVkZ2VtZW50IGJlZm9yZSBnaXZpbmcgdXAg YW5kIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24uCisrICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDYu CisrCisrICAgIGBlcnJvcnMnCisrICAgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlcnJv cnMgdG8gcGVybWl0IGJlZm9yZSBjbG9zaW5nIHRoZQorKyAgICAgICAgICBjb25uZWN0aW9uLiAg VGhlIGRlZmF1bHQgaXMgMTAwLgorKworKyAgICBgZXJyb3ItZGVjYXknCisrICAgICAgICAgIFRo ZSByYXRlIGF0IHdoaWNoIHRvIGlnbm9yZSBlcnJvcnMuICBFYWNoIHRpbWUgdGhpcyBtYW55Cisr ICAgICAgICAgIHBhY2tldHMgYXJlIHJlY2VpdmVkLCB0aGUgZXJyb3IgY291bnQgaXMgZGVjcmVh c2VkIGJ5IG9uZSwgc28KKysgICAgICAgICAgdGhhdCBhIGxvbmcgY29ubmVjdGlvbiB3aXRoIGFu IG9jY2FzaW9uYWwgZXJyb3Igd2lsbCBub3QKKysgICAgICAgICAgZXhjZWVkIHRoZSBsaW1pdCBz ZXQgYnkgYGVycm9ycycuICBUaGUgZGVmYXVsdCBpcyAxMC4KKysKKysgICAgYGFjay1mcmVxdWVu Y3knCisrICAgICAgICAgIFRoZSBudW1iZXIgb2YgcGFja2V0cyB0byByZWNlaXZlIGJlZm9yZSBz ZW5kaW5nIGFuCisrICAgICAgICAgIGFja25vd2xlZGdlbWVudC4gIFRoZSBkZWZhdWx0IGlzIGhh bGYgdGhlIHJlcXVlc3RlZCB3aW5kb3cKKysgICAgICAgICAgc2l6ZSwgd2hpY2ggc2hvdWxkIHBy b3ZpZGUgZ29vZCBwZXJmb3JtYW5jZSBpbiBtb3N0IGNhc2VzLgorKworKyAgICAgVGhlIGBnJywg YEcnIGFuZCBgdicgcHJvdG9jb2xzIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBjb21tYW5kcywgYWxs CisrICAgICBvZiB3aGljaCB0YWtlIG51bWVyaWMgYXJndW1lbnRzLCBleGNlcHQgYHNob3J0LXBh Y2tldHMnIHdoaWNoCisrICAgICB0YWtlcyBhIGJvb2xlYW4gYXJndW1lbnQ6CisrCisrICAgIGB3 aW5kb3cnCisrICAgICAgICAgIFRoZSB3aW5kb3cgc2l6ZSB0byByZXF1ZXN0IHRoZSByZW1vdGUg c3lzdGVtIHRvIHVzZS4gIFRoaXMKKysgICAgICAgICAgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDcg aW5jbHVzaXZlLiAgVGhlIGRlZmF1bHQgaXMgNy4KKysKKysgICAgYHBhY2tldC1zaXplJworKyAg ICAgICAgICBUaGUgcGFja2V0IHNpemUgdG8gcmVxdWVzdCB0aGUgcmVtb3RlIHN5c3RlbSB0byB1 c2UuICBUaGlzCisrICAgICAgICAgIG11c3QgYmUgYSBwb3dlciBvZiAyIGJldHdlZW4gMzIgYW5k IDQwOTYgaW5jbHVzaXZlLiAgVGhlCisrICAgICAgICAgIGRlZmF1bHQgaXMgNjQgZm9yIHRoZSBg ZycgYW5kIGBHJyBwcm90b2NvbHMgYW5kIDEwMjQgZm9yIHRoZQorKyAgICAgICAgICBgdicgcHJv dG9jb2wuICBNYW55IG9sZGVyIFVVQ1AgcGFja2FnZXMgZG8gbm90IHN1cHBvcnQgcGFja2V0Cisr ICAgICAgICAgIHNpemVzIGxhcmdlciB0aGFuIDY0LCBhbmQgbWFueSBvdGhlcnMgZG8gbm90IHN1 cHBvcnQgcGFja2V0CisrICAgICAgICAgIHNpemVzIGxhcmdlciB0aGFuIDEyOC4gIFNvbWUgVVVD UCBwYWNrYWdlcyB3aWxsIGV2ZW4gZHVtcAorKyAgICAgICAgICBjb3JlIGlmIGEgbGFyZ2VyIHBh Y2tldCBzaXplIGlzIHJlcXVlc3RlZC4gIFRoZSBwYWNrZXQgc2l6ZQorKyAgICAgICAgICBpcyBu b3QgYSBuZWdvdGlhdGlvbiwgYW5kIGl0IG1heSBiZSBkaWZmZXJlbnQgaW4gZWFjaAorKyAgICAg ICAgICBkaXJlY3Rpb24uICBJZiB5b3UgcmVxdWVzdCBhIHBhY2tldCBzaXplIGxhcmdlciB0aGFu IHRoZQorKyAgICAgICAgICByZW1vdGUgc3lzdGVtIHN1cHBvcnRzLCB5b3Ugd2lsbCBub3QgYmUg YWJsZSB0byBzZW5kIGFueQorKyAgICAgICAgICBmaWxlcy4KKysKKysgICAgYHN0YXJ0dXAtcmV0 cmllcycKKysgICAgICAgICAgVGhlIG51bWJlciBvZiB0aW1lcyB0byByZXRyeSB0aGUgaW5pdGlh bGl6YXRpb24gc2VxdWVuY2UuCisrICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDguCisrCisrICAg IGBpbml0LXJldHJpZXMnCisrICAgICAgICAgIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkg b25lIHBoYXNlIG9mIHRoZSBpbml0aWFsaXphdGlvbgorKyAgICAgICAgICBzZXF1ZW5jZSAodGhl cmUgYXJlIHRocmVlIHBoYXNlcykuICBUaGUgZGVmYXVsdCBpcyA0LgorKworKyAgICBgaW5pdC10 aW1lb3V0JworKyAgICAgICAgICBUaGUgdGltZW91dCBpbiBzZWNvbmRzIGZvciBvbmUgcGhhc2Ug b2YgdGhlIGluaXRpYWxpemF0aW9uCisrICAgICAgICAgIHNlcXVlbmNlLiAgVGhlIGRlZmF1bHQg aXMgMTAuCisrCisrICAgIGByZXRyaWVzJworKyAgICAgICAgICBUaGUgbnVtYmVyIG9mIHRpbWVz IHRvIHJldHJ5IHNlbmRpbmcgZWl0aGVyIGEgZGF0YSBwYWNrZXQgb3IKKysgICAgICAgICAgYSBy ZXF1ZXN0IGZvciB0aGUgbmV4dCBwYWNrZXQuICBUaGUgZGVmYXVsdCBpcyA2LgorKworKyAgICBg dGltZW91dCcKKysgICAgICAgICAgVGhlIHRpbWVvdXQgaW4gc2Vjb25kcyB3aGVuIHdhaXRpbmcg Zm9yIGVpdGhlciBhIGRhdGEgcGFja2V0CisrICAgICAgICAgIG9yIGFuIGFja25vd2xlZGdlbWVu dC4gIFRoZSBkZWZhdWx0IGlzIDEwLgorKworKyAgICBgZ2FyYmFnZScKKysgICAgICAgICAgVGhl IG51bWJlciBvZiB1bnJlY29nbml6ZWQgYnl0ZXMgdG8gcGVybWl0IGJlZm9yZSBkcm9wcGluZyB0 aGUKKysgICAgICAgICAgY29ubmVjdGlvbi4gIFRoaXMgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUg cGFja2V0IHNpemUuICBUaGUKKysgICAgICAgICAgZGVmYXVsdCBpcyAxMDAwMC4KKysKKysgICAg YGVycm9ycycKKysgICAgICAgICAgVGhlIG51bWJlciBvZiBlcnJvcnMgKG1hbGZvcm1lZCBwYWNr ZXRzLCBvdXQgb2Ygb3JkZXIKKysgICAgICAgICAgcGFja2V0cywgYmFkIGNoZWNrc3Vtcywgb3Ig cGFja2V0cyByZWplY3RlZCBieSB0aGUgcmVtb3RlCisrICAgICAgICAgIHN5c3RlbSkgdG8gcGVy bWl0IGJlZm9yZSBkcm9wcGluZyB0aGUgY29ubmVjdGlvbi4gIFRoZQorKyAgICAgICAgICBkZWZh dWx0IGlzIDEwMC4KKysKKysgICAgYGVycm9yLWRlY2F5JworKyAgICAgICAgICBUaGUgcmF0ZSBh dCB3aGljaCB0byBpZ25vcmUgZXJyb3JzLiAgRWFjaCB0aW1lIHRoaXMgbWFueQorKyAgICAgICAg ICBwYWNrZXRzIGFyZSByZWNlaXZlZCwgdGhlIGVycm9yIGNvdW50IGlzIGRlY3JlYXNlZCBieSBv bmUsIHNvCisrICAgICAgICAgIHRoYXQgYSBsb25nIGNvbm5lY3Rpb24gd2l0aCBhbiBvY2Nhc2lv bmFsIGVycm9yIHdpbGwgbm90CisrICAgICAgICAgIGV4Y2VlZCB0aGUgbGltaXQgc2V0IGJ5IGBl cnJvcnMnLiAgVGhlIGRlZmF1bHQgaXMgMTAuCisrCisrICAgIGByZW1vdGUtd2luZG93JworKyAg ICAgICAgICBJZiB0aGlzIGlzIGJldHdlZW4gMSBhbmQgNyBpbmNsdXNpdmUsIHRoZSB3aW5kb3cg c2l6ZQorKyAgICAgICAgICByZXF1ZXN0ZWQgYnkgdGhlIHJlbW90ZSBzeXN0ZW0gaXMgaWdub3Jl ZCBhbmQgdGhpcyBpcyB1c2VkCisrICAgICAgICAgIGluc3RlYWQuICBUaGlzIGNhbiBiZSB1c2Vm dWwgd2hlbiBkZWFsaW5nIHdpdGggc29tZSBwb29yIFVVQ1AKKysgICAgICAgICAgcGFja2FnZXMu ICBUaGUgZGVmYXVsdCBpcyAwLCB3aGljaCBtZWFucyB0aGF0IHRoZSByZW1vdGUKKysgICAgICAg ICAgc3lzdGVtJ3MgcmVxdWVzdCBpcyBob25vcmVkLgorKworKyAgICBgcmVtb3RlLXBhY2tldC1z aXplJworKyAgICAgICAgICBJZiB0aGlzIGlzIGJldHdlZW4gMzIgYW5kIDQwOTYgaW5jbHVzaXZl IHRoZSBwYWNrZXQgc2l6ZQorKyAgICAgICAgICByZXF1ZXN0ZWQgYnkgdGhlIHJlbW90ZSBzeXN0 ZW0gaXMgaWdub3JlZCBhbmQgdGhpcyBpcyB1c2VkCisrICAgICAgICAgIGluc3RlYWQuICBUaGVy ZSBpcyBwcm9iYWJseSBubyBnb29kIHJlYXNvbiB0byB1c2UgdGhpcy4gIFRoZQorKyAgICAgICAg ICBkZWZhdWx0IGlzIDAsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIHJlbW90ZSBzeXN0ZW0ncyByZXF1 ZXN0IGlzCisrICAgICAgICAgIGhvbm9yZWQuCisrCisrICAgIGBzaG9ydC1wYWNrZXRzJworKyAg ICAgICAgICBJZiB0aGlzIGlzIHRydWUsIHRoZW4gdGhlIGNvZGUgd2lsbCBvcHRpbWl6ZSBieSBz ZW5kaW5nCisrICAgICAgICAgIHNob3J0ZXIgcGFja2V0cyB3aGVuIHRoZXJlIGlzIGxlc3MgZGF0 YSB0byBzZW5kLiAgVGhpcworKyAgICAgICAgICBjb25mdXNlcyBzb21lIFVVQ1AgcGFja2FnZXMs IHN1Y2ggYXMgU3lzdGVtIFYgUmVsZWFzZSA0ICh3aGVuCisrICAgICAgICAgIHVzaW5nIHRoZSBg RycgcHJvdG9jb2wpIGFuZCBXYWZmbGU7IHdoZW4gY29ubmVjdGluZyB0byBzdWNoIGEKKysgICAg ICAgICAgcGFja2FnZSwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBzZXQgdG8gZmFsc2UuICBUaGUg ZGVmYXVsdCBpcworKyAgICAgICAgICB0cnVlIGZvciB0aGUgYGcnIGFuZCBgdicgcHJvdG9jb2xz IGFuZCBmYWxzZSBmb3IgdGhlIGBHJworKyAgICAgICAgICBwcm90b2NvbC4KKysKKysgICAgIFRo ZSBgYScgcHJvdG9jb2wgaXMgYSBabW9kZW0gbGlrZSBwcm90b2NvbCBjb250cmlidXRlZCBieSBE b3VnCisrICAgICBFdmFucy4gIEl0IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMsIGFs bCBvZiB3aGljaCB0YWtlCisrICAgICBudW1lcmljIGFyZ3VtZW50cyBleGNlcHQgZm9yIGBlc2Nh cGUtY29udHJvbCcsIHdoaWNoIHRha2VzIGEKKysgICAgIGJvb2xlYW4gYXJndW1lbnQ6CisrCisr ICAgIGB0aW1lb3V0JworKyAgICAgICAgICBOdW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGZvciBh IHBhY2tldCB0byBhcnJpdmUuICBUaGUKKysgICAgICAgICAgZGVmYXVsdCBpcyAxMC4KKysKKysg ICAgYHJldHJpZXMnCisrICAgICAgICAgIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgc2Vu ZGluZyBhIHBhY2tldC4gIFRoZSBkZWZhdWx0CisrICAgICAgICAgIGlzIDEwLgorKworKyAgICBg c3RhcnR1cC1yZXRyaWVzJworKyAgICAgICAgICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5 IHNlbmRpbmcgdGhlIGluaXRpYWxpemF0aW9uCisrICAgICAgICAgIHBhY2tldC4gIFRoZSBkZWZh dWx0IGlzIDQuCisrCisrICAgIGBnYXJiYWdlJworKyAgICAgICAgICBUaGUgbnVtYmVyIG9mIGdh cmJhZ2UgY2hhcmFjdGVycyB0byBhY2NlcHQgYmVmb3JlIGNsb3NpbmcgdGhlCisrICAgICAgICAg IGNvbm5lY3Rpb24uICBUaGUgZGVmYXVsdCBpcyAyNDAwLgorKworKyAgICBgc2VuZC13aW5kb3cn CisrICAgICAgICAgIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBzZW50IGJl Zm9yZSB3YWl0aW5nIGZvcgorKyAgICAgICAgICBhbiBhY2tub3dsZWRnZW1lbnQuICBUaGUgZGVm YXVsdCBpcyAxMDI0LgorKworKyAgICBgZXNjYXBlLWNvbnRyb2wnCisrICAgICAgICAgIFdoZXRo ZXIgdG8gZXNjYXBlIGNvbnRyb2wgY2hhcmFjdGVycy4gIElmIHRoaXMgaXMgdHJ1ZSwgdGhlCisr ICAgICAgICAgIHByb3RvY29sIG1heSBiZSB1c2VkIG92ZXIgYSBjb25uZWN0aW9uIHdoaWNoIGRv ZXMgbm90CisrICAgICAgICAgIHRyYW5zbWl0IGNlcnRhaW4gY29udHJvbCBjaGFyYWN0ZXJzLCBz dWNoIGFzIGBYT04nIG9yIGBYT0ZGJy4KKysgICAgICAgICAgVGhlIGNvbm5lY3Rpb24gbXVzdCBz dGlsbCB0cmFuc21pdCBlaWdodCBiaXQgY2hhcmFjdGVycyBvdGhlcgorKyAgICAgICAgICB0aGFu IGNvbnRyb2wgY2hhcmFjdGVycy4gIFRoZSBkZWZhdWx0IGlzIGZhbHNlLgorKworKyAgICAgVGhl IGBqJyBwcm90b2NvbCBjYW4gYmUgdXNlZCBvdmVyIGFuIGVpZ2h0IGJpdCBjb25uZWN0aW9uIHRo YXQgd2lsbAorKyAgICAgbm90IHRyYW5zbWl0IGNlcnRhaW4gY29udHJvbCBjaGFyYWN0ZXJzLiAg SXQgYWNjZXB0cyB0aGUgc2FtZQorKyAgICAgcHJvdG9jb2wgcGFyYW1ldGVycyB0aGF0IHRoZSBg aScgcHJvdG9jb2wgYWNjZXB0cywgYXMgd2VsbCBhcyBvbmUKKysgICAgIG1vcmU6CisrCisrICAg IGBhdm9pZCcKKysgICAgICAgICAgQSBsaXN0IG9mIGNoYXJhY3RlcnMgdG8gYXZvaWQuICBUaGlz IGlzIGEgc3RyaW5nIHdoaWNoIGlzCisrICAgICAgICAgIGludGVycHJldGVkIGFzIGFuIGVzY2Fw ZSBzZXF1ZW5jZSAoKm5vdGUgQ2hhdCBTY3JpcHRzOjopLgorKyAgICAgICAgICBUaGUgcHJvdG9j b2wgZG9lcyBub3QgaGF2ZSBhIHdheSB0byBhdm9pZCBwcmludGFibGUgQVNDSUkKKysgICAgICAg ICAgY2hhcmFjdGVycyAoYnl0ZSB2YWx1ZXMgZnJvbSAzMiB0byAxMjYsIGluY2x1c2l2ZSk7IG9u bHkKKysgICAgICAgICAgQVNDSUkgY29udHJvbCBjaGFyYWN0ZXJzIGFuZCBlaWdodC1iaXQgY2hh cmFjdGVycyBtYXkgYmUKKysgICAgICAgICAgYXZvaWRlZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlz IGBcMDIxXDAyMyc7IHRoZXNlIGFyZSB0aGUKKysgICAgICAgICAgY2hhcmFjdGVycyBgWE9OJyBh bmQgYFhPRkYnLCB3aGljaCBtYW55IGNvbm5lY3Rpb25zIHVzZSBmb3IKKysgICAgICAgICAgZmxv dyBjb250cm9sLiAgSWYgdGhlIHBhY2thZ2UgaXMgY29uZmlndXJlZCB0byB1c2UKKysgICAgICAg ICAgYEhBVkVfQlNEX1RUWScsIHRoZW4gb24gc29tZSB2ZXJzaW9ucyBvZiBVbml4IHlvdSBtYXkg aGF2ZSB0bworKyAgICAgICAgICBhdm9pZCBgXDM3NycgYXMgd2VsbCwgZHVlIHRvIHRoZSB3YXkg c29tZSBpbXBsZW1lbnRhdGlvbnMgb2YKKysgICAgICAgICAgdGhlIEJTRCB0ZXJtaW5hbCBkcml2 ZXIgaGFuZGxlIHNpZ25hbHMuCisrCisrICAgICBUaGUgYGYnIHByb3RvY29sIGlzIGludGVuZGVk IGZvciB1c2Ugd2l0aCBlcnJvci1jb3JyZWN0aW5nIG1vZGVtcworKyAgICAgb25seTsgaXQgY2hl Y2tzdW1zIGVhY2ggZmlsZSBhcyBhIHdob2xlLCBzbyBhbnkgZXJyb3IgY2F1c2VzIHRoZQorKyAg ICAgZW50aXJlIGZpbGUgdG8gYmUgcmV0cmFuc21pdHRlZC4gIEl0IHN1cHBvcnRzIHRoZSBmb2xs b3dpbmcKKysgICAgIGNvbW1hbmRzLCBib3RoIG9mIHdoaWNoIHRha2UgbnVtZXJpYyBhcmd1bWVu dHM6CisrCisrICAgIGB0aW1lb3V0JworKyAgICAgICAgICBUaGUgdGltZW91dCBpbiBzZWNvbmRz IGJlZm9yZSBnaXZpbmcgdXAuICBUaGUgZGVmYXVsdCBpcyAxMjAuCisrCisrICAgIGByZXRyaWVz JworKyAgICAgICAgICBIb3cgbWFueSB0aW1lcyB0byByZXRyeSBzZW5kaW5nIGEgZmlsZS4gIFRo ZSBkZWZhdWx0IGlzIDIuCisrCisrICAgICBUaGUgYHQnIGFuZCBgZScgcHJvdG9jb2xzIGFyZSBp bnRlbmRlZCBmb3IgdXNlIG92ZXIgVENQIG9yIHNvbWUKKysgICAgIG90aGVyIGNvbW11bmljYXRp b24gcGF0aCB3aXRoIGVuZCB0byBlbmQgcmVsaWFiaWxpdHksIGFzIHRoZXkgZG8gbm8KKysgICAg IGNoZWNraW5nIG9mIHRoZSBkYXRhIGF0IGFsbC4gIFRoZXkgYm90aCBzdXBwb3J0IGEgc2luZ2xl IGNvbW1hbmQsCisrICAgICB3aGljaCB0YWtlcyBhIG51bWVyaWMgYXJndW1lbnQ6CisrCisrICAg IGB0aW1lb3V0JworKyAgICAgICAgICBUaGUgdGltZW91dCBpbiBzZWNvbmRzIGJlZm9yZSBnaXZp bmcgdXAuICBUaGUgZGVmYXVsdCBpcyAxMjAuCisrCisrICAgICBUaGUgYHknIHByb3RvY29sIGlz IGEgc3RyZWFtaW5nIHByb3RvY29sIGNvbnRyaWJ1dGVkIGJ5IEpvcmdlIEN3aWsuCisrICAgICBJ dCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGNvbW1hbmRzLCBib3RoIG9mIHdoaWNoIHRha2UgbnVt ZXJpYworKyAgICAgYXJndW1lbnRzOgorKworKyAgICBgdGltZW91dCcKKysgICAgICAgICAgVGhl IHRpbWVvdXQgaW4gc2Vjb25kcyB3aGVuIHdhaXRpbmcgZm9yIGEgcGFja2V0LiAgVGhlCisrICAg ICAgICAgIGRlZmF1bHQgaXMgNjAuCisrCisrICAgIGBwYWNrZXQtc2l6ZScKKysgICAgICAgICAg VGhlIHBhY2tldCBzaXplIHRvIHVzZS4gIFRoZSBkZWZhdWx0IGlzIDEwMjQuCisrCisrICAgICBU aGUgcHJvdG9jb2wgcGFyYW1ldGVycyBhcmUgcmVzZXQgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMg YWZ0ZXIKKysgICAgIGVhY2ggY2FsbC4KKysKKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9k ZTogRmlsZSBUcmFuc2ZlciBDb250cm9sLCAgTmV4dDogTWlzY2VsbGFuZW91cyAoc3lzKSwgIFBy ZXY6IFByb3RvY29sIFNlbGVjdGlvbiwgIFVwOiBzeXMgRmlsZQorKworKzUuNy42IEZpbGUgVHJh bnNmZXIgQ29udHJvbAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK2BzZW5kLXJl cXVlc3QgQk9PTEVBTicKKysgICAgIFRoZSBCT09MRUFOIGRldGVybWluZXMgd2hldGhlciB0aGUg cmVtb3RlIHN5c3RlbSBpcyBwZXJtaXR0ZWQgdG8KKysgICAgIHJlcXVlc3QgZmlsZXMgZnJvbSB0 aGUgbG9jYWwgc3lzdGVtLiAgVGhlIGRlZmF1bHQgaXMgeWVzLgorKworK2ByZWNlaXZlLXJlcXVl c3QgQk9PTEVBTicKKysgICAgIFRoZSBCT09MRUFOIGRldGVybWluZXMgd2hldGhlciB0aGUgcmVt b3RlIHN5c3RlbSBpcyBwZXJtaXR0ZWQgdG8KKysgICAgIHNlbmQgZmlsZXMgdG8gdGhlIGxvY2Fs IHN5c3RlbS4gIFRoZSBkZWZhdWx0IGlzIHllcy4KKysKKytgcmVxdWVzdCBCT09MRUFOJworKyAg ICAgQSBzaG9ydGhhbmQgY29tbWFuZCwgZXF1aXZhbGVudCB0byBzcGVjaWZ5aW5nIGJvdGggYHNl bmQtcmVxdWVzdAorKyAgICAgQk9PTEVBTicgYW5kIGByZWNlaXZlLXJlcXVlc3QgQk9PTEVBTicu CisrCisrYGNhbGwtdHJhbnNmZXIgQk9PTEVBTicKKysgICAgIFRoZSBCT09MRUFOIGlzIGNoZWNr ZWQgd2hlbiB0aGUgbG9jYWwgc3lzdGVtIHBsYWNlcyB0aGUgY2FsbC4gIEl0CisrICAgICBkZXRl cm1pbmVzIHdoZXRoZXIgdGhlIGxvY2FsIHN5c3RlbSBtYXkgZG8gZmlsZSB0cmFuc2ZlcnMgcXVl dWVkCisrICAgICB1cCBmb3IgdGhlIHJlbW90ZSBzeXN0ZW0uICBUaGUgZGVmYXVsdCBpcyB5ZXMu CisrCisrYGNhbGxlZC10cmFuc2ZlciBCT09MRUFOJworKyAgICAgVGhlIEJPT0xFQU4gaXMgY2hl Y2tlZCB3aGVuIHRoZSByZW1vdGUgc3lzdGVtIGNhbGxzIGluLiAgSXQKKysgICAgIGRldGVybWlu ZXMgd2hldGhlciB0aGUgbG9jYWwgc3lzdGVtIG1heSBkbyBmaWxlIHRyYW5zZmVycyBxdWV1ZWQK KysgICAgIHVwIGZvciB0aGUgcmVtb3RlIHN5c3RlbS4gIFRoZSBkZWZhdWx0IGlzIHllcy4KKysK KytgdHJhbnNmZXIgQk9PTEVBTicKKysgICAgIEEgc2hvcnRoYW5kIGNvbW1hbmQsIGVxdWl2YWxl bnQgdG8gc3BlY2lmeWluZyBib3RoIGBjYWxsLXRyYW5zZmVyCisrICAgICBCT09MRUFOJyBhbmQg YGNhbGxlZC10cmFuc2ZlciBCT09MRUFOJy4KKysKKytgY2FsbC1sb2NhbC1zaXplIE5VTUJFUiBT VFJJTkcnCisrICAgICBUaGUgU1RSSU5HIGlzIGEgdGltZSBzdHJpbmcgKCpub3RlIFRpbWUgU3Ry aW5nczo6KS4gIFRoZSBOVU1CRVIgaXMKKysgICAgIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBs YXJnZXN0IGZpbGUgdGhhdCBzaG91bGQgYmUgdHJhbnNmZXJyZWQKKysgICAgIGF0IGEgdGltZSBt YXRjaGluZyB0aGUgdGltZSBzdHJpbmcsIGlmIHRoZSBsb2NhbCBzeXN0ZW0gcGxhY2VkIHRoZQor KyAgICAgY2FsbCBhbmQgdGhlIHJlcXVlc3Qgd2FzIG1hZGUgYnkgdGhlIGxvY2FsIHN5c3RlbS4g IFRoaXMgY29tbWFuZAorKyAgICAgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcyBpbiBhIHNpbmds ZSBhbHRlcm5hdGUuICBJZiB0aGlzIGNvbW1hbmQKKysgICAgIGRvZXMgbm90IGFwcGVhciwgb3Ig aWYgbm9uZSBvZiB0aGUgdGltZSBzdHJpbmdzIG1hdGNoLCB0aGVyZSBhcmUKKysgICAgIG5vIHNp emUgcmVzdHJpY3Rpb25zLgorKworKyAgICAgV2l0aCBhbGwgdGhlIHNpemUgY29udHJvbCBjb21t YW5kcywgdGhlIHNpemUgb2YgYSBmaWxlIGZyb20gdGhlCisrICAgICByZW1vdGUgc3lzdGVtIChh cyBvcHBvc2VkIHRvIGEgZmlsZSBmcm9tIHRoZSBsb2NhbCBzeXN0ZW0pIHdpbGwKKysgICAgIG9u bHkgYmUgY2hlY2tlZCBpZiB0aGUgb3RoZXIgc3lzdGVtIGlzIHJ1bm5pbmcgdGhpcyBwYWNrYWdl OiBvdGhlcgorKyAgICAgVVVDUCBwYWNrYWdlcyB3aWxsIG5vdCB1bmRlcnN0YW5kIGEgbWF4aW11 bSBzaXplIHJlcXVlc3QsIG5vciB3aWxsCisrICAgICB0aGV5IHByb3ZpZGUgdGhlIHNpemUgb2Yg cmVtb3RlIGZpbGVzLgorKworK2BjYWxsLXJlbW90ZS1zaXplIE5VTUJFUiBTVFJJTkcnCisrICAg ICBTcGVjaWZ5IHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBsYXJnZXN0IGZpbGUgdGhhdCBzaG91 bGQgYmUKKysgICAgIHRyYW5zZmVycmVkIGF0IGEgZ2l2ZW4gdGltZSBieSByZW1vdGUgcmVxdWVz dCwgd2hlbiB0aGUgbG9jYWwKKysgICAgIHN5c3RlbSBwbGFjZWQgdGhlIGNhbGwuICBUaGlzIGNv bW1hbmQgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcyBpbgorKyAgICAgYSBzaW5nbGUgYWx0ZXJu YXRlLiAgSWYgdGhpcyBjb21tYW5kIGRvZXMgbm90IGFwcGVhciwgdGhlcmUgYXJlIG5vCisrICAg ICBzaXplIHJlc3RyaWN0aW9ucy4KKysKKytgY2FsbGVkLWxvY2FsLXNpemUgTlVNQkVSIFNUUklO RycKKysgICAgIFNwZWNpZnkgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGxhcmdlc3QgZmlsZSB0 aGF0IHNob3VsZCBiZQorKyAgICAgdHJhbnNmZXJyZWQgYXQgYSBnaXZlbiB0aW1lIGJ5IGxvY2Fs IHJlcXVlc3QsIHdoZW4gdGhlIHJlbW90ZQorKyAgICAgc3lzdGVtIHBsYWNlZCB0aGUgY2FsbC4g IFRoaXMgY29tbWFuZCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIGluCisrICAgICBhIHNpbmds ZSBhbHRlcm5hdGUuIElmIHRoaXMgY29tbWFuZCBkb2VzIG5vdCBhcHBlYXIsIHRoZXJlIGFyZSBu bworKyAgICAgc2l6ZSByZXN0cmljdGlvbnMuCisrCisrYGNhbGxlZC1yZW1vdGUtc2l6ZSBOVU1C RVIgU1RSSU5HJworKyAgICAgU3BlY2lmeSB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgbGFyZ2Vz dCBmaWxlIHRoYXQgc2hvdWxkIGJlCisrICAgICB0cmFuc2ZlcnJlZCBhdCBhIGdpdmVuIHRpbWUg YnkgcmVtb3RlIHJlcXVlc3QsIHdoZW4gdGhlIHJlbW90ZQorKyAgICAgc3lzdGVtIHBsYWNlZCB0 aGUgY2FsbC4gIFRoaXMgY29tbWFuZCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIGluCisrICAg ICBhIHNpbmdsZSBhbHRlcm5hdGUuIElmIHRoaXMgY29tbWFuZCBkb2VzIG5vdCBhcHBlYXIsIHRo ZXJlIGFyZSBubworKyAgICAgc2l6ZSByZXN0cmljdGlvbnMuCisrCisrYGxvY2FsLXNlbmQgU1RS SU5HUycKKysgICAgIFNwZWNpZmllcyB0aGF0IGZpbGVzIGluIHRoZSBkaXJlY3RvcmllcyBuYW1l ZCBieSB0aGUgU1RSSU5HUyBtYXkKKysgICAgIGJlIHNlbnQgdG8gdGhlIHJlbW90ZSBzeXN0ZW0g d2hlbiByZXF1ZXN0ZWQgbG9jYWxseSAodXNpbmcgYHV1Y3AnCisrICAgICBvciBgdXV4JykuICBU aGUgZGlyZWN0b3JpZXMgaW4gdGhlIGxpc3Qgc2hvdWxkIGJlIHNlcGFyYXRlZCBieQorKyAgICAg d2hpdGVzcGFjZS4gIEEgYH4nIG1heSBiZSB1c2VkIGZvciB0aGUgcHVibGljIGRpcmVjdG9yeS4g IE9uIGEKKysgICAgIFVuaXggc3lzdGVtLCB0aGlzIGlzIHR5cGljYWxseSBgL3Vzci9zcG9vbC91 dWNwcHVibGljJzsgdGhlIHB1YmxpYworKyAgICAgZGlyZWN0b3J5IG1heSBiZSBzZXQgd2l0aCB0 aGUgYHB1YmRpcicgY29tbWFuZC4gIEhlcmUgaXMgYW4KKysgICAgIGV4YW1wbGUgb2YgYGxvY2Fs LXNlbmQnOgorKworKyAgICAgICAgICBsb2NhbC1zZW5kIH4gL3Vzci9zcG9vbC9mdHAvcHViCisr CisrICAgICBMaXN0aW5nIGEgZGlyZWN0b3J5IGFsbG93cyBhbGwgZmlsZXMgd2l0aGluIHRoZSBk aXJlY3RvcnkgYW5kIGFsbAorKyAgICAgc3ViZGlyZWN0b3JpZXMgdG8gYmUgc2VudC4gIERpcmVj dG9yaWVzIG1heSBiZSBleGNsdWRlZCBieQorKyAgICAgcHJlY2VkaW5nIHRoZW0gd2l0aCBhbiBl eGNsYW1hdGlvbiBwb2ludC4gIEZvciBleGFtcGxlOgorKworKyAgICAgICAgICBsb2NhbC1zZW5k IC91c3IvZnRwICEvdXNyL2Z0cC9wcml2YXRlIH4KKysKKysgICAgIG1lYW5zIHRoYXQgYWxsIGZp bGVzIGluIGAvdXNyL2Z0cCcgb3IgdGhlIHB1YmxpYyBkaXJlY3RvcnkgbWF5IGJlCisrICAgICBz ZW50LCBleGNlcHQgdGhvc2UgZmlsZXMgaW4gYC91c3IvZnRwL3ByaXZhdGUnLiAgVGhlIGxpc3Qg b2YKKysgICAgIGRpcmVjdG9yaWVzIGlzIHJlYWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LCBhbmQgdGhl IGxhc3QgZGlyZWN0b3J5IHRvCisrICAgICBhcHBseSB0YWtlcyBlZmZlY3Q7IHRoaXMgbWVhbnMg dGhhdCBkaXJlY3RvcmllcyBzaG91bGQgYmUgbGlzdGVkCisrICAgICBmcm9tIHRvcCBkb3duLiAg VGhlIGRlZmF1bHQgaXMgdGhlIHJvb3QgZGlyZWN0b3J5IChpLmUuLCBhbnkgZmlsZQorKyAgICAg YXQgYWxsIG1heSBiZSBzZW50IGJ5IGxvY2FsIHJlcXVlc3QpLgorKworK2ByZW1vdGUtc2VuZCBT VFJJTkdTJworKyAgICAgU3BlY2lmaWVzIHRoYXQgZmlsZXMgaW4gdGhlIG5hbWVkIGRpcmVjdG9y aWVzIG1heSBiZSBzZW50IHRvIHRoZQorKyAgICAgcmVtb3RlIHN5c3RlbSB3aGVuIHJlcXVlc3Rl ZCBieSB0aGUgcmVtb3RlIHN5c3RlbS4gIFRoZSBkZWZhdWx0IGlzCisrICAgICBgficuCisrCisr YGxvY2FsLXJlY2VpdmUgU1RSSU5HUycKKysgICAgIFNwZWNpZmllcyB0aGF0IGZpbGVzIG1heSBi ZSByZWNlaXZlZCBpbnRvIHRoZSBuYW1lZCBkaXJlY3RvcmllcworKyAgICAgd2hlbiByZXF1ZXN0 ZWQgYnkgYSBsb2NhbCB1c2VyLiAgVGhlIGRlZmF1bHQgaXMgYH4nLgorKworK2ByZW1vdGUtcmVj ZWl2ZSBTVFJJTkdTJworKyAgICAgU3BlY2lmaWVzIHRoYXQgZmlsZXMgbWF5IGJlIHJlY2VpdmVk IGludG8gdGhlIG5hbWVkIGRpcmVjdG9yaWVzCisrICAgICB3aGVuIHJlcXVlc3RlZCBieSB0aGUg cmVtb3RlIHN5c3RlbS4gIFRoZSBkZWZhdWx0IGlzIGB+Jy4gIE9uCisrICAgICBVbml4LCB0aGUg cmVtb3RlIHN5c3RlbSBtYXkgb25seSByZXF1ZXN0IHRoYXQgZmlsZXMgYmUgcmVjZWl2ZWQKKysg ICAgIGludG8gZGlyZWN0b3JpZXMgdGhhdCBhcmUgd3JpdGVhYmxlIGJ5IHRoZSB3b3JsZCwgcmVn YXJkbGVzcyBvZgorKyAgICAgaG93IHRoaXMgaXMgc2V0LgorKworK2Bmb3J3YXJkLXRvIFNUUklO R1MnCisrICAgICBTcGVjaWZpZXMgYSBsaXN0IG9mIHN5c3RlbXMgdG8gd2hpY2ggZmlsZXMgbWF5 IGJlIGZvcndhcmRlZC4gIFRoZQorKyAgICAgcmVtb3RlIHN5c3RlbSBtYXkgZm9yd2FyZCBmaWxl cyB0aHJvdWdoIHRoZSBsb2NhbCBzeXN0ZW0gb24gdG8gYW55CisrICAgICBvZiB0aGUgc3lzdGVt cyBpbiB0aGlzIGxpc3QuICBUaGUgc3RyaW5nIGBBTlknIG1heSBiZSB1c2VkIHRvCisrICAgICBw ZXJtaXQgZm9yd2FyZGluZyB0byBhbnkgc3lzdGVtLiAgVGhlIGRlZmF1bHQgaXMgdG8gbm90IHBl cm1pdAorKyAgICAgZm9yd2FyZGluZyB0byBvdGhlciBzeXN0ZW1zLiAgTm90ZSB0aGF0IGlmIHRo ZSByZW1vdGUgc3lzdGVtIGlzCisrICAgICBwZXJtaXR0ZWQgdG8gZXhlY3V0ZSB0aGUgYHV1Y3An IGNvbW1hbmQsIGl0IGVmZmVjdGl2ZWx5IGhhcyB0aGUKKysgICAgIGFiaWxpdHkgdG8gZm9yd2Fy ZCB0byBhbnkgc3lzdGVtLgorKworK2Bmb3J3YXJkLWZyb20gU1RSSU5HUycKKysgICAgIFNwZWNp ZmllcyBhIGxpc3Qgb2Ygc3lzdGVtcyBmcm9tIHdoaWNoIGZpbGVzIG1heSBiZSBmb3J3YXJkZWQu ICBUaGUKKysgICAgIHJlbW90ZSBzeXN0ZW0gbWF5IHJlcXVlc3QgZmlsZXMgdmlhIHRoZSBsb2Nh bCBzeXN0ZW0gZnJvbSBhbnkgb2YKKysgICAgIHRoZSBzeXN0ZW1zIGluIHRoaXMgbGlzdC4gIFRo ZSBzdHJpbmcgYEFOWScgbWF5IGJlIHVzZWQgdG8gcGVybWl0CisrICAgICBmb3J3YXJkaW5nIHRv IGFueSBzeXN0ZW0uICBUaGUgZGVmYXVsdCBpcyB0byBub3QgcGVybWl0IGZvcndhcmRpbmcKKysg ICAgIGZyb20gb3RoZXIgc3lzdGVtcy4gIE5vdGUgdGhhdCBpZiBhIHJlbW90ZSBzeXN0ZW0gaXMg cGVybWl0dGVkIHRvCisrICAgICBleGVjdXRlIHRoZSBgdXVjcCcgY29tbWFuZCwgaXQgZWZmZWN0 aXZlbHkgaGFzIHRoZSBhYmlsaXR5IHRvCisrICAgICByZXF1ZXN0IGZpbGVzIGZyb20gYW55IHN5 c3RlbS4KKysKKytgZm9yd2FyZCBTVFJJTkdTJworKyAgICAgRXF1aXZhbGVudCB0byBzcGVjaWZ5 aW5nIGJvdGggYGZvcndhcmQtdG8gU1RSSU5HUycgYW5kCisrICAgICBgZm9yd2FyZC1mcm9tIFNU UklOR1MnLiAgVGhpcyB3b3VsZCBub3JtYWxseSBiZSB1c2VkIHJhdGhlciB0aGFuCisrICAgICBl aXRoZXIgb2YgdGhlIG1vcmUgc3BlY2lmaWMgY29tbWFuZHMuCisrCisrYG1heC1maWxlLXRpbWUg TlVNQkVSJworKyAgICAgVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgd2hpY2ggd2lsbCBiZSBz ZW50IHNlbmRpbmcgYW55IG9uZSBmaWxlCisrICAgICBpZiB0aGVyZSBhcmUgb3RoZXIgZmlsZXMg dG8gc2VuZC4gIFRoaXMgd2lsbCBvbmx5IGJlIGVmZmVjdGl2ZQorKyAgICAgd2hlbiB1c2luZyBh IHByb3RvY29sIHdoaWNoIHBlcm1pdHMgaW50ZXJydXB0aW5nIG9uZSBmaWxlIHNlbmQgdG8KKysg ICAgIHNlbmQgYW5vdGhlciBmaWxlLiAgVGhpcyBpcyB0cnVlIG9mIHRoZSBgaScgYW5kIGBqJyBw cm90b2NvbHMuCisrICAgICBUaGUgZGVmYXVsdCBpcyB0byBoYXZlIG5vIG1heGltdW0uCisrCisr CisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IE1pc2NlbGxhbmVvdXMgKHN5cyksICBOZXh0 OiBEZWZhdWx0IHN5cyBGaWxlIFZhbHVlcywgIFByZXY6IEZpbGUgVHJhbnNmZXIgQ29udHJvbCwg IFVwOiBzeXMgRmlsZQorKworKzUuNy43IE1pc2NlbGxhbmVvdXMgc3lzIEZpbGUgQ29tbWFuZHMK KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrYHNlcXVlbmNlIEJP T0xFQU4nCisrICAgICBJZiBCT09MRUFOIGlzIHRydWUsIHRoZW4gY29udmVyc2F0aW9uIHNlcXVl bmNpbmcgaXMgYXV0b21hdGljYWxseQorKyAgICAgdXNlZCBmb3IgdGhlIHJlbW90ZSBzeXN0ZW0s IHNvIHRoYXQgaWYgc29tZWJvZHkgbWFuYWdlcyB0byBzcG9vZgorKyAgICAgYXMgdGhlIHJlbW90 ZSBzeXN0ZW0sIGl0IHdpbGwgYmUgZGV0ZWN0ZWQgdGhlIG5leHQgdGltZSB0aGUgcmVtb3RlCisr ICAgICBzeXN0ZW0gYWN0dWFsbHkgY2FsbHMuICBUaGlzIGlzIGZhbHNlIGJ5IGRlZmF1bHQuCisr CisrYGNvbW1hbmQtcGF0aCBTVFJJTkdTJworKyAgICAgU3BlY2lmaWVzIHRoZSBwYXRoIChhIGxp c3Qgb2Ygd2hpdGVzcGFjZSBzZXBhcmF0ZWQgZGlyZWN0b3JpZXMpIHRvCisrICAgICBiZSBzZWFy Y2hlZCB0byBsb2NhdGUgY29tbWFuZHMgdG8gZXhlY3V0ZS4gIFRoaXMgaXMgb25seSB1c2VkIGZv cgorKyAgICAgY29tbWFuZHMgcmVxdWVzdGVkIGJ5IGB1dXgnLCBub3QgZm9yIGNoYXQgcHJvZ3Jh bXMuICBUaGUgZGVmYXVsdAorKyAgICAgaXMgZnJvbSBgcG9saWN5LmgnLgorKworK2Bjb21tYW5k cyBTVFJJTkdTJworKyAgICAgVGhlIGxpc3Qgb2YgY29tbWFuZHMgd2hpY2ggdGhlIHJlbW90ZSBz eXN0ZW0gaXMgcGVybWl0dGVkIHRvCisrICAgICBleGVjdXRlIGxvY2FsbHkuICBGb3IgZXhhbXBs ZTogYGNvbW1hbmRzIHJuZXdzIHJtYWlsJy4gIElmIHRoZQorKyAgICAgdmFsdWUgaXMgYEFMTCcg KGNhc2Ugc2lnbmlmaWNhbnQpLCBhbGwgY29tbWFuZHMgbWF5IGJlIGV4ZWN1dGVkLgorKyAgICAg VGhlIGRlZmF1bHQgaXMgYHJuZXdzIHJtYWlsJy4KKysKKytgZnJlZS1zcGFjZSBOVU1CRVInCisr ICAgICBTcGVjaWZ5IHRoZSBtaW5pbXVtIGFtb3VudCBvZiBmaWxlIHN5c3RlbSBzcGFjZSAoaW4g Ynl0ZXMpIHRvCisrICAgICBsZWF2ZSBmcmVlIGFmdGVyIHJlY2VpdmluZyBhIGZpbGUuICBJZiB0 aGUgaW5jb21pbmcgZmlsZSB3aWxsIG5vdAorKyAgICAgZml0LCBpdCB3aWxsIGJlIHJlamVjdGVk LiAgVGhpcyBpbml0aWFsIHJlamVjdGlvbiB3aWxsIG9ubHkgd29yaworKyAgICAgd2hlbiB0YWxr aW5nIHRvIGFub3RoZXIgaW5zdGFuY2Ugb2YgdGhpcyBwYWNrYWdlLCBzaW5jZSBvbGRlciBVVUNQ CisrICAgICBwYWNrYWdlcyBkbyBub3QgcHJvdmlkZSB0aGUgZmlsZSBzaXplIG9mIGluY29taW5n IGZpbGVzLiAgQWxzbywKKysgICAgIHdoaWxlIGEgZmlsZSBpcyBiZWluZyByZWNlaXZlZCwgYHV1 Y2ljbycgd2lsbCBwZXJpb2RpY2FsbHkgY2hlY2sKKysgICAgIHRoZSBhbW91bnQgb2YgZnJlZSBz cGFjZS4gIElmIGl0IGRyb3BzIGJlbG93IHRoZSBhbW91bnQgZ2l2ZW4gYnkKKysgICAgIHRoZSBg ZnJlZS1zcGFjZScgY29tbWFuZCwgdGhlIGZpbGUgdHJhbnNmZXIgd2lsbCBiZSBhYm9ydGVkLiAg VGhlCisrICAgICBkZWZhdWx0IGFtb3VudCBvZiBzcGFjZSB0byBsZWF2ZSBmcmVlIGlzIGZyb20g YHBvbGljeS5oJy4gIFRoaXMKKysgICAgIGZpbGUgc3BhY2UgY2hlY2tpbmcgbWF5IG5vdCB3b3Jr IG9uIGFsbCBzeXN0ZW1zLgorKworK2BwdWJkaXIgU1RSSU5HJworKyAgICAgU3BlY2lmaWVzIHRo ZSBwdWJsaWMgZGlyZWN0b3J5IHRoYXQgaXMgdXNlZCB3aGVuIGB+JyBpcyBzcGVjaWZlZCBpbgor KyAgICAgYSBmaWxlIHRyYW5zZmVyIG9yIGEgbGlzdCBvZiBkaXJlY3Rvcmllcy4gIFRoaXMgZXNz ZW50aWFsbHkKKysgICAgIG92ZXJyaWRlcyB0aGUgcHVibGljIGRpcmVjdG9yeSBzcGVjaWZpZWQg aW4gdGhlIG1haW4gY29uZmlndXJhdGlvbgorKyAgICAgZmlsZSBmb3IgdGhpcyBzeXN0ZW0gb25s eS4gIFRoZSBkZWZhdWx0IGlzIHRoZSBwdWJsaWMgZGlyZWN0b3J5CisrICAgICBzcGVjaWZpZWQg aW4gdGhlIG1haW4gY29uZmlndXJhdGlvbiBmaWxlICh3aGljaCBkZWZhdWx0cyB0byBhCisrICAg ICB2YWx1ZSBmcm9tIGBwb2xpY3kuaCcpLgorKworK2BkZWJ1ZyBTVFJJTkcgLi4uJworKyAgICAg U2V0IGFkZGl0aW9uYWwgZGVidWdnaW5nIGZvciBjYWxscyB0byBvciBmcm9tIHRoZSBzeXN0ZW0u ICBUaGlzCisrICAgICBtYXkgYmUgdXNlZCB0byBkZWJ1ZyBhIGNvbm5lY3Rpb24gd2l0aCBhIHNw ZWNpZmljIHN5c3RlbS4gIEl0IGlzCisrICAgICBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gZGVi dWdnaW5nIGluY29taW5nIGNhbGxzLCBzaW5jZSBkZWJ1Z2dpbmcKKysgICAgIGluZm9ybWF0aW9u IHdpbGwgYmUgZ2VuZXJhdGVkIHdoZW5ldmVyIHRoZSBjYWxsIGNvbWVzIGluLiAgU2VlIHRoZQor KyAgICAgYGRlYnVnJyBjb21tYW5kIGluIHRoZSBtYWluIGNvbmZpZ3VyYXRpb24gZmlsZSAoKm5v dGUgRGVidWdnaW5nCisrICAgICBMZXZlbHM6OikgZm9yIG1vcmUgZGV0YWlscy4gIFRoZSBkZWJ1 Z2dpbmcgaW5mb3JtYXRpb24gc3BlY2lmaWVkCisrICAgICBoZXJlIGlzIGluIGFkZGl0aW9uIHRv IHRoYXQgc3BlY2lmaWVkIGluIHRoZSBtYWluIGNvbmZpZ3VyYXRpb24KKysgICAgIGZpbGUgb3Ig b24gdGhlIGNvbW1hbmQgbGluZS4KKysKKytgbWF4LXJlbW90ZS1kZWJ1ZyBTVFJJTkcgLi4uJwor KyAgICAgV2hlbiB0aGUgc3lzdGVtIGNhbGxzIGluLCBpdCBtYXkgcmVxdWVzdCB0aGF0IHRoZSBk ZWJ1Z2dpbmcgbGV2ZWwKKysgICAgIGJlIHNldCB0byBhIGNlcnRhaW4gdmFsdWUuICBUaGUgYG1h eC1yZW1vdGUtZGVidWcnIGNvbW1hbmQgbWF5IGJlCisrICAgICB1c2VkIHRvIHB1dCBhIGxpbWl0 IG9uIHRoZSBkZWJ1Z2dpbmcgbGV2ZWwgd2hpY2ggdGhlIHN5c3RlbSBtYXkKKysgICAgIHJlcXVl c3QsIHRvIGF2b2lkIGZpbGxpbmcgdXAgdGhlIGRpc2sgd2l0aCBkZWJ1Z2dpbmcgaW5mb3JtYXRp b24uCisrICAgICBPbmx5IHRoZSBkZWJ1Z2dpbmcgdHlwZXMgbmFtZWQgaW4gdGhlIGBtYXgtcmVt b3RlLWRlYnVnJyBjb21tYW5kCisrICAgICBtYXkgYmUgdHVybmVkIG9uIGJ5IHRoZSByZW1vdGUg c3lzdGVtLiAgVG8gcHJvaGliaXQgYW55IGRlYnVnZ2luZywKKysgICAgIHVzZSBgbWF4LXJlbW90 ZS1kZWJ1ZyBub25lJy4KKysKKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogRGVmYXVs dCBzeXMgRmlsZSBWYWx1ZXMsICBQcmV2OiBNaXNjZWxsYW5lb3VzIChzeXMpLCAgVXA6IHN5cyBG aWxlCisrCisrNS43LjggRGVmYXVsdCBzeXMgRmlsZSBWYWx1ZXMKKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKworK1RoZSBmb2xsb3dpbmcgYXJlIHVzZWQgYXMgZGVmYXVsdCB2YWx1 ZXMgZm9yIGFsbCBzeXN0ZW1zOyB0aGV5IGNhbiBiZQorK2NvbnNpZGVyZWQgYXMgYXBwZWFyaW5n IGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGZpbGUuCisrCisrICAgICB0aW1lIE5ldmVyCisrICAg ICBjaGF0ICIiIFxyXGMgb2dpbjotQlJFQUstb2dpbjotQlJFQUstb2dpbjogXEwgd29yZDogXFAK KysgICAgIGNoYXQtdGltZW91dCAxMAorKyAgICAgY2FsbGJhY2sgbgorKyAgICAgc2VxdWVuY2Ug bgorKyAgICAgcmVxdWVzdCB5CisrICAgICB0cmFuc2ZlciB5CisrICAgICBsb2NhbC1zZW5kIC8K KysgICAgIHJlbW90ZS1zZW5kIH4KKysgICAgIGxvY2FsLXJlY2VpdmUgfgorKyAgICAgcmVtb3Zl LXJlY2VpdmUgfgorKyAgICAgY29tbWFuZC1wYXRoIFsgZnJvbSBgcG9saWN5LmgnIF0KKysgICAg IGNvbW1hbmRzIHJuZXdzIHJtYWlsCisrICAgICBtYXgtcmVtb3RlLWRlYnVnIGFibm9ybWFsLGNo YXQsaGFuZHNoYWtlCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IHBvcnQgRmlsZSwg IE5leHQ6IGRpYWwgRmlsZSwgIFByZXY6IHN5cyBGaWxlLCAgVXA6IENvbmZpZ3VyYXRpb24gRmls ZXMKKysKKys1LjggVGhlIFBvcnQgQ29uZmlndXJhdGlvbiBGaWxlCisrPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorKworK1RoZSBwb3J0IGZpbGVzIG1heSBiZSB1c2VkIHRvIG5hbWUg YW5kIGRlc2NyaWJlIHBvcnRzLiAgQnkgZGVmYXVsdCB0aGVyZQorK2lzIGEgc2luZ2xlIHBvcnQg ZmlsZSwgbmFtZWQgYHBvcnQnIGluIHRoZSBkaXJlY3RvcnkgTkVXQ09ORklHRElSLgorK1RoaXMg bWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlIGBwb3J0ZmlsZScgY29tbWFuZCBpbiB0aGUgbWFpbgor K2NvbmZpZ3VyYXRpb24gZmlsZTsgc2VlICpub3RlIENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lczo6 LgorKworKyAgIEFueSBjb21tYW5kcyBpbiBhIHBvcnQgZmlsZSBiZWZvcmUgdGhlIGZpcnN0IGBw b3J0JyBjb21tYW5kIHNwZWNpZnkKKytkZWZhdWx0cyBmb3IgYWxsIHBvcnRzIGluIHRoZSBmaWxl OyBob3dldmVyLCBzaW5jZSB0aGUgYHR5cGUnIGNvbW1hbmQKKyttdXN0IGFwcGVhciBiZWZvcmUg YWxsIG90aGVyIGNvbW1hbmRzIGZvciBhIHBvcnQsIHRoZSBkZWZhdWx0cyBhcmUgb25seQorK3Vz ZWZ1bCBpZiBhbGwgcG9ydHMgaW4gdGhlIGZpbGUgYXJlIG9mIHRoZSBzYW1lIHR5cGUgKHRoaXMg cmVzdHJpY3Rpb24KKyttYXkgYmUgbGlmdGVkIGluIGEgbGF0ZXIgdmVyc2lvbikuICBBbGwgY29t bWFuZHMgYWZ0ZXIgYSBgcG9ydCcgY29tbWFuZAorK3VwIHRvIHRoZSBuZXh0IGBwb3J0JyBjb21t YW5kIHRoZW4gZGVzY3JpYmUgdGhhdCBwb3J0LiAgVGhlcmUgYXJlCisrZGlmZmVyZW50IHR5cGVz IG9mIHBvcnRzOyBlYWNoIHR5cGUgc3VwcG9ydHMgaXRzIG93biBzZXQgb2YgY29tbWFuZHMuCisr RWFjaCBjb21tYW5kIGluZGljYXRlcyB3aGljaCB0eXBlcyBvZiBwb3J0cyBzdXBwb3J0IGl0LiAg VGhlcmUgbWF5IGJlCisrbWFueSBwb3J0cyB3aXRoIHRoZSBzYW1lIG5hbWU7IGlmIGEgc3lzdGVt IHJlcXVlc3RzIGEgcG9ydCBieSBuYW1lIHRoZW4KKytlYWNoIHBvcnQgd2l0aCB0aGF0IG5hbWUg d2lsbCBiZSB0cmllZCB1bnRpbCBhbiB1bmxvY2tlZCBvbmUgaXMgZm91bmQuCisrCisrYHBvcnQg U1RSSU5HJworKyAgICAgSW50cm9kdWNlcyBhbmQgbmFtZXMgYSBwb3J0LgorKworK2B0eXBlIFNU UklORycKKysgICAgIERlZmluZSB0aGUgdHlwZSBvZiBwb3J0LiAgVGhlIGRlZmF1bHQgaXMgYG1v ZGVtJy4gIElmIHRoaXMgY29tbWFuZAorKyAgICAgYXBwZWFycywgaXQgbXVzdCBpbW1lZGlhdGVs eSBmb2xsb3cgdGhlIGBwb3J0JyBjb21tYW5kLiAgVGhlIHR5cGUKKysgICAgIGRlZmluZXMgd2hh dCBjb21tYW5kcyBhcmUgc3Vic2VxdWVudGx5IGFsbG93ZWQuICBDdXJyZW50bHkgdGhlCisrICAg ICB0eXBlcyBhcmU6CisrCisrICAgIGBtb2RlbScKKysgICAgICAgICAgRm9yIGEgbW9kZW0gaG9v a3VwLgorKworKyAgICBgc3RkaW4nCisrICAgICAgICAgIEZvciBhIGNvbm5lY3Rpb24gdGhyb3Vn aCBzdGFuZGFyZCBpbnB1dCBhbmQgc3RhbmRhcmQgb3V0cHV0LAorKyAgICAgICAgICBhcyB3aGVu IGB1dWNpY28nIGlzIHJ1biBhcyBhIGxvZ2luIHNoZWxsLgorKworKyAgICBgZGlyZWN0JworKyAg ICAgICAgICBGb3IgYSBkaXJlY3QgY29ubmVjdGlvbiB0byBhbm90aGVyIHN5c3RlbS4KKysKKysg ICAgYHRjcCcKKysgICAgICAgICAgRm9yIGEgY29ubmVjdGlvbiB1c2luZyBUQ1AuCisrCisrICAg IGB0bGknCisrICAgICAgICAgIEZvciBhIGNvbm5lY3Rpb24gdXNpbmcgVExJLgorKworKyAgICBg cGlwZScKKysgICAgICAgICAgRm9yIGEgY29ubmVjdGlvbiB0aHJvdWdoIGEgcGlwZSBydW5uaW5n IGFub3RoZXIgcHJvZ3JhbS4KKysKKytgcHJvdG9jb2wgU1RSSU5HJworKyAgICAgU3BlY2lmeSBh IGxpc3Qgb2YgcHJvdG9jb2xzIHRvIHVzZSBmb3IgdGhpcyBwb3J0LiAgVGhpcyBpcyBqdXN0Cisr ICAgICBsaWtlIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1hbmQgZm9yIGEgc3lzdGVtICgqbm90ZSBQ cm90b2NvbAorKyAgICAgU2VsZWN0aW9uOjopLiAgQSBwcm90b2NvbCBsaXN0IGZvciBhIHN5c3Rl bSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIKKysgICAgIGEgbGlzdCBmb3IgYSBwb3J0LgorKworK2Bw cm90b2NvbC1wYXJhbWV0ZXIgQ0hBUkFDVEVSIFNUUklOR1MgWyBhbnkgdHlwZSBdJworKyAgICAg VGhlIHNhbWUgY29tbWFuZCBhcyB0aGUgYHByb3RvY29sLXBhcmFtZXRlcicgY29tbWFuZCB1c2Vk IGZvcgorKyAgICAgc3lzdGVtcyAoKm5vdGUgUHJvdG9jb2wgU2VsZWN0aW9uOjopLiAgVGhpcyBv bmUgdGFrZXMgcHJlY2VkZW5jZS4KKysKKytgc2V2ZW4tYml0IEJPT0xFQU4gWyBhbnkgdHlwZSBd JworKyAgICAgVGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHByb3RvY29sIG5lZ290aWF0aW9uOyBp ZiB0aGUgYXJndW1lbnQgaXMKKysgICAgIHRydWUsIGl0IGZvcmNlcyB0aGUgc2VsZWN0aW9uIG9m IGEgcHJvdG9jb2wgd2hpY2ggd29ya3MgYWNyb3NzIGEKKysgICAgIHNldmVuLWJpdCBsaW5rLiAg SXQgZG9lcyBub3QgcHJldmVudCBlaWdodCBiaXQgY2hhcmFjdGVycyBmcm9tCisrICAgICBiZWlu ZyB0cmFuc21pdHRlZC4gIFRoZSBkZWZhdWx0IGlzIGZhbHNlLgorKworK2ByZWxpYWJsZSBCT09M RUFOIFsgYW55IHR5cGUgXScKKysgICAgIFRoaXMgaXMgb25seSB1c2VkIGR1cmluZyBwcm90b2Nv bCBuZWdvdGlhdGlvbjsgaWYgdGhlIGFyZ3VtZW50IGlzCisrICAgICBmYWxzZSwgaXQgZm9yY2Vz IHRoZSBzZWxlY3Rpb24gb2YgYSBwcm90b2NvbCB3aGljaCB3b3JrcyBhY3Jvc3MgYW4KKysgICAg IHVucmVsaWFibGUgY29tbXVuaWNhdGlvbiBsaW5rLiAgVGhlIGRlZmF1bHQgaXMgdHJ1ZS4gIEl0 IHdvdWxkIGJlCisrICAgICBtb3JlIGNvbW1vbiB0byBzcGVjaWZ5IHRoaXMgZm9yIGEgZGlhbGVy IHJhdGhlciB0aGFuIGEgcG9ydC4KKysKKytgaGFsZi1kdXBsZXggQk9PTEVBTiBbIGFueSB0eXBl IF0nCisrICAgICBJZiB0aGUgYXJndW1lbnQgaXMgdHJ1ZSwgaXQgbWVhbnMgdGhhdCB0aGUgcG9y dCBvbmx5IHN1cHBvcnRzCisrICAgICBoYWxmLWR1cGxleCBjb25uZWN0aW9ucy4gIFRoaXMgb25s eSBhZmZlY3RzIGJpZGlyZWN0aW9uYWwKKysgICAgIHByb3RvY29scywgYW5kIGNhdXNlcyB0aGVt IHRvIG5vdCBkbyBiaWRpcmVjdGlvbmFsIHRyYW5zZmVycy4KKysKKytgZGV2aWNlIFNUUklORyBb IG1vZGVtLCBkaXJlY3QgYW5kIHRsaSBvbmx5IF0nCisrICAgICBOYW1lcyB0aGUgZGV2aWNlIGFz c29jaWF0ZWQgd2l0aCB0aGlzIHBvcnQuICBJZiB0aGUgZGV2aWNlIGlzIG5vdAorKyAgICAgbmFt ZWQsIHRoZSBwb3J0IG5hbWUgaXMgdGFrZW4gYXMgdGhlIGRldmljZS4gIERldmljZSBuYW1lcyBh cmUKKysgICAgIHN5c3RlbSBkZXBlbmRlbnQuICBPbiBVbml4LCBhIG1vZGVtIG9yIGRpcmVjdCBj b25uZWN0aW9uIG1pZ2h0IGJlCisrICAgICBzb21ldGhpbmcgbGlrZSBgL2Rldi90dHlkMCc7IGEg VExJIHBvcnQgbWlnaHQgYmUgYC9kZXYvaW5ldC90Y3AnLgorKworK2BzcGVlZCBOVU1CRVIgW21v ZGVtIGFuZCBkaXJlY3Qgb25seSBdJworKworK2BiYXVkIE5VTUJFUiBbIG1vZGVtIGFuZCBkaXJl Y3Qgb25seSBdJworKyAgICAgVGhlIHNwZWVkIHRoaXMgcG9ydCBydW5zIGF0LiAgSWYgYSBzeXN0 ZW0gc3BlY2lmaWVzIGEgc3BlZWQgYnV0IG5vCisrICAgICBwb3J0IG5hbWUsIHRoZW4gYWxsIHBv cnRzIHdoaWNoIG1hdGNoIHRoZSBzcGVlZCB3aWxsIGJlIHRyaWVkIGluCisrICAgICBvcmRlci4g IElmIHRoZSBzcGVlZCBpcyBub3Qgc3BlY2lmaWVkIGhlcmUgYW5kIGlzIG5vdCBzcGVjaWZpZWQg YnkKKysgICAgIHRoZSBzeXN0ZW0sIHRoZSBuYXR1cmFsIHNwZWVkIG9mIHRoZSBwb3J0IHdpbGwg YmUgdXNlZCBieSBkZWZhdWx0LgorKworK2BzcGVlZC1yYW5nZSBOVU1CRVIgTlVNQkVSIFsgbW9k ZW0gb25seSBdJworKworK2BiYXVkLXJhbmdlIE5VTUJFUiBOVU1CRVIgWyBtb2RlbSBvbmx5IF0n CisrICAgICBTcGVjaWZ5IGEgcmFuZ2Ugb2Ygc3BlZWRzIHRoaXMgcG9ydCBjYW4gcnVuIGF0LiAg VGhlIGZpcnN0IG51bWJlcgorKyAgICAgaXMgdGhlIG1pbmltdW0gc3BlZWQsIHRoZSBzZWNvbmQg bnVtYmVyIGlzIHRoZSBtYXhpbXVtIHNwZWVkLgorKyAgICAgVGhlc2UgbnVtYmVycyB3aWxsIGJl IHVzZWQgd2hlbiBtYXRjaGluZyBhIHN5c3RlbSB3aGljaCBzcGVjaWZpZXMKKysgICAgIGEgZGVz aXJlZCBzcGVlZC4gIFRoZSBzaW1wbGUgYHNwZWVkJyAob3IgYGJhdWQnKSBjb21tYW5kIGlzIHN0 aWxsCisrICAgICB1c2VkIHRvIGRldGVybWluZSB0aGUgc3BlZWQgdG8gcnVuIGF0IGlmIHRoZSBz eXN0ZW0gZG9lcyBub3QKKysgICAgIHNwZWNpZnkgYSBzcGVlZC4gIEZvciBleGFtcGxlLCB0aGUg Y29tbWFuZCBgc3BlZWQtcmFuZ2UgMzAwIDE5MjAwJworKyAgICAgbWVhbnMgdGhhdCB0aGUgcG9y dCB3aWxsIG1hdGNoIGFueSBzeXN0ZW0gd2hpY2ggdXNlcyBhIHNwZWVkIGZyb20KKysgICAgIDMw MCB0byAxOTIwMCBiYXVkIChhbmQgd2lsbCB1c2UgdGhlIHNwZWVkIHNwZWNpZmllZCBieSB0aGUK KysgICAgIHN5c3RlbSk7IHRoaXMgY291bGQgYmUgY29tYmluZWQgd2l0aCBgc3BlZWQgMjQwMCcs IHdoaWNoIG1lYW5zCisrICAgICB0aGF0IHdoZW4gdGhpcyBwb3J0IGlzIHVzZWQgd2l0aCBhIHN5 c3RlbSB0aGF0IGRvZXMgbm90IHNwZWNpZnkgYQorKyAgICAgc3BlZWQsIHRoZSBwb3J0IHdpbGwg YmUgdXNlZCBhdCAyNDAwIGJhdWQuCisrCisrYGNhcnJpZXIgQk9PTEVBTiBbIG1vZGVtIGFuZCBk aXJlY3Qgb25seSBdJworKyAgICAgVGhlIGFyZ3VtZW50IGluZGljYXRlcyB3aGV0aGVyIHRoZSBw b3J0IHN1cHBvcnRzIGNhcnJpZXIuCisrCisrICAgICBJZiBhIG1vZGVtIHBvcnQgZG9lcyBub3Qg c3VwcG9ydCBjYXJyaWVyLCB0aGUgY2FycmllciBkZXRlY3QKKysgICAgIHNpZ25hbCB3aWxsIG5l dmVyIGJlIHJlcXVpcmVkIG9uIHRoaXMgcG9ydCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZQorKyAg ICAgbW9kZW0gY2hhdCBzY3JpcHQgaW5kaWNhdGVzLiAgVGhlIGRlZmF1bHQgZm9yIGEgbW9kZW0g cG9ydCBpcyB0cnVlLgorKworKyAgICAgSWYgYSBkaXJlY3QgcG9ydCBzdXBwb3J0cyBjYXJyaWVy LCB0aGUgcG9ydCB3aWxsIGJlIHNldCB0byBleHBlY3QKKysgICAgIGNhcnJpZXIgd2hlbmV2ZXIg aXQgaXMgdXNlZC4gIFRoZSBkZWZhdWx0IGZvciBhIGRpcmVjdCBwb3J0IGlzCisrICAgICBmYWxz ZS4KKysKKytgaGFyZGZsb3cgQk9PTEVBTiBbIG1vZGVtIGFuZCBkaXJlY3Qgb25seSBdJworKyAg ICAgVGhlIGFyZ3VtZW50IGluZGljYXRlcyB3aGV0aGVyIHRoZSBwb3J0IHN1cHBvcnRzIGhhcmR3 YXJlIGZsb3cKKysgICAgIGNvbnRyb2wuICBJZiBpdCBkb2VzIG5vdCwgaGFyZHdhcmUgZmxvdyBj b250cm9sIHdpbGwgbm90IGJlIHR1cm5lZAorKyAgICAgb24gZm9yIHRoaXMgcG9ydC4gIFRoZSBk ZWZhdWx0IGlzIHRydWUuICBIYXJkd2FyZSBmbG93IGNvbnRyb2wgaXMKKysgICAgIG9ubHkgc3Vw cG9ydGVkIG9uIHNvbWUgc3lzdGVtcy4KKysKKytgZGlhbC1kZXZpY2UgU1RSSU5HIFsgbW9kZW0g b25seSBdJworKyAgICAgRGlhbGluZyBpbnN0cnVjdGlvbnMgc2hvdWxkIGJlIG91dHB1dCB0byB0 aGUgbmFtZWQgZGV2aWNlLCByYXRoZXIKKysgICAgIHRoYW4gdG8gdGhlIG5vcm1hbCBwb3J0IGRl dmljZS4gIFRoZSBkZWZhdWx0IGlzIHRvIG91dHB1dCB0byB0aGUKKysgICAgIG5vcm1hbCBwb3J0 IGRldmljZS4KKysKKytgZGlhbGVyIFNUUklORyBbIG1vZGVtIG9ubHkgXScKKysgICAgIE5hbWUg YSBkaWFsZXIgdG8gdXNlLiAgVGhlIGluZm9ybWF0aW9uIGlzIGxvb2tlZCB1cCBpbiB0aGUgZGlh bAorKyAgICAgZmlsZS4gIFRoZXJlIGlzIG5vIGRlZmF1bHQuICBTb21lIHNvcnQgb2YgZGlhbGVy IGluZm9ybWF0aW9uIG11c3QKKysgICAgIGJlIHNwZWNpZmllZCB0byBjYWxsIG91dCBvbiBhIG1v ZGVtLgorKworK2BkaWFsZXIgU1RSSU5HIC4uLiBbIG1vZGVtIG9ubHkgXScKKysgICAgIElmIG1v cmUgdGhhbiBvbmUgc3RyaW5nIGZvbGxvd3MgdGhlIGBkaWFsZXInIGNvbW1hbmQsIHRoZSBzdHJp bmdzCisrICAgICBhcmUgdHJlYXRlZCBhcyBhIGNvbW1hbmQgdGhhdCBtaWdodCBhcHBlYXIgaW4g dGhlIGRpYWwgZmlsZSAoKm5vdGUKKysgICAgIGRpYWwgRmlsZTo6KS4gIElmIGEgZGlhbGVyIGlz IG5hbWVkIChieSB1c2luZyB0aGUgZmlyc3QgZm9ybSBvZgorKyAgICAgdGhpcyBjb21tYW5kLCBk ZXNjcmliZWQganVzdCBhYm92ZSksIHRoZXNlIGNvbW1hbmRzIGFyZSBpZ25vcmVkLgorKyAgICAg VGhleSBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5IGRpYWxlciBpbmZvcm1hdGlvbiBkaXJlY3RseSBp biBzaW1wbGUKKysgICAgIHNpdHVhdGlvbnMgd2l0aG91dCBuZWVkaW5nIHRvIGdvIHRvIGEgc2Vw YXJhdGUgZmlsZS4gIFRoZXJlIGlzIG5vCisrICAgICBkZWZhdWx0LiAgU29tZSBzb3J0IG9mIGRp YWxlciBpbmZvcm1hdGlvbiBtdXN0IGJlIHNwZWNpZmllZCB0bworKyAgICAgY2FsbCBvdXQgb24g YSBtb2RlbS4KKysKKytgZGlhbGVyLXNlcXVlbmNlIFNUUklOR1MgWyBtb2RlbSBvciB0Y3Agb3Ig dGxpIG9ubHkgXScKKysgICAgIE5hbWUgYSBzZXF1ZW5jZSBvZiBkaWFsZXJzIGFuZCB0b2tlbnMg KHBob25lIG51bWJlcnMpIHRvIHVzZS4gIFRoZQorKyAgICAgZmlyc3QgYXJndW1lbnQgbmFtZXMg YSBkaWFsZXIsIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5hbWVzIGEKKysgICAgIHRva2VuLiAg VGhlIHRoaXJkIGFyZ3VtZW50IG5hbWVzIGFub3RoZXIgZGlhbGVyLCBhbmQgc28gb24uICBJZgor KyAgICAgdGhlcmUgYXJlIGFuIG9kZCBudW1iZXIgb2YgYXJndW1lbnRzLCB0aGUgcGhvbmUgbnVt YmVyIHNwZWNpZmllZAorKyAgICAgd2l0aCBhIGBwaG9uZScgY29tbWFuZCBpbiB0aGUgc3lzdGVt IGZpbGUgaXMgdXNlZCBhcyB0aGUgZmluYWwKKysgICAgIHRva2VuLiAgVGhlIHRva2VuIGlzIHdo YXQgaXMgdXNlZCBmb3IgYFxEJyBvciBgXFQnIGluIHRoZSBkaWFsZXIKKysgICAgIGNoYXQgc2Ny aXB0LiAgSWYgdGhlIHRva2VuIGluIHRoaXMgc3RyaW5nIGlzIGBcRCcsIHRoZSBzeXN0ZW0KKysg ICAgIHBob25lIG51bWJlciB3aWxsIGJlIHVzZWQ7IGlmIGl0IGlzIGBcVCcsIHRoZSBzeXN0ZW0g cGhvbmUgbnVtYmVyCisrICAgICB3aWxsIGJlIHVzZWQgYWZ0ZXIgdW5kZXJnb2luZyBkaWFsY29k ZXMgdHJhbnNsYXRpb24uICBBIG1pc3NpbmcKKysgICAgIGZpbmFsIHRva2VuIGlzIHRha2VuIGFz IGBcRCcuCisrCisrICAgICBUaGlzIGNvbW1hbmQgY3VycmVudGx5IGRvZXMgbm90IHdvcmsgaWYg YGRpYWwtZGV2aWNlJyBpcyBzcGVjaWZpZWQ7CisrICAgICB0byBoYW5kbGUgdGhpcyBjb3JyZWN0 bHkgd2lsbCByZXF1aXJlIGEgbW9yZSBzeXN0ZW1hdGljIG5vdGlvbiBvZgorKyAgICAgY2hhdCBz Y3JpcHRzLiAgTW9yZW92ZXIsIHRoZSBgY29tcGxldGUnIGFuZCBgYWJvcnQnIGNoYXQgc2NyaXB0 cywKKysgICAgIHRoZSBwcm90b2NvbCBwYXJhbWV0ZXJzLCBhbmQgdGhlIGBjYXJyaWVyJyBhbmQg YGR0ci10b2dnbGUnCisrICAgICBjb21tYW5kcyBhcmUgaWdub3JlZCBmb3IgYWxsIGJ1dCB0aGUg Zmlyc3QgZGlhbGVyLgorKworKyAgICAgVGhpcyBjb21tYW5kIGJhc2ljYWxseSBsZXRzIHlvdSBz cGVjaWZ5IGEgc2VxdWVuY2Ugb2YgY2hhdCBzY3JpcHRzCisrICAgICB0byB1c2UuICBGb3IgZXhh bXBsZSwgdGhlIGZpcnN0IGRpYWxlciBtaWdodCBnZXQgeW91IHRvIGEgbG9jYWwKKysgICAgIG5l dHdvcmsgYW5kIHRoZSBzZWNvbmQgZGlhbGVyIG1pZ2h0IGRlc2NyaWJlIGhvdyB0byBzZWxlY3Qg YQorKyAgICAgbWFjaGluZSBmcm9tIHRoZSBsb2NhbCBuZXR3b3JrLiAgVGhpcyBsZXRzIHlvdSBi cmVhayB5b3VyIGRpYWxpbmcKKysgICAgIHNlcXVlbmNlIGludG8gc2ltcGxlIG1vZHVsZXMsIGFu ZCBtYXkgbWFrZSBpdCBlYXNpZXIgdG8gc2hhcmUKKysgICAgIGRpYWxlciBlbnRyaWVzIGJldHdl ZW4gbWFjaGluZXMuCisrCisrICAgICBUaGlzIGNvbW1hbmQgaXMgdG8gb25seSB3YXkgdG8gdXNl IGEgY2hhdCBzY3JpcHQgd2l0aCBhIFRDUCBwb3J0LgorKyAgICAgVGhpcyBjYW4gYmUgdXNlZnVs IHdoZW4gdXNpbmcgYSBtb2RlbSB3aGljaCBpcyBhY2Nlc3NlZCB2aWEgVENQLgorKworKyAgICAg V2hlbiB0aGlzIGNvbW1hbmQgaXMgdXNlZCB3aXRoIGEgVExJIHBvcnQsIHRoZW4gaWYgdGhlIGZp cnN0CisrICAgICBkaWFsZXIgaXMgYFRMSScgb3IgYFRMSVMnIHRoZSBmaXJzdCB0b2tlbiBpcyB1 c2VkIGFzIHRoZSBhZGRyZXNzIHRvCisrICAgICBjb25uZWN0IHRvLiAgSWYgdGhlIGZpcnN0IGRp YWxlciBpcyBzb21ldGhpbmcgZWxzZSwgb3IgaWYgdGhlcmUgaXMKKysgICAgIG5vIHRva2VuLCB0 aGUgYWRkcmVzcyBnaXZlbiBieSB0aGUgYGFkZHJlc3MnIGNvbW1hbmQgaXMgdXNlZAorKyAgICAg KCpub3RlIFBsYWNpbmcgdGhlIENhbGw6OikuICBFc2NhcGUgc2VxdWVuY2VzIGluIHRoZSBhZGRy ZXNzIGFyZQorKyAgICAgZXhwYW5kZWQgYXMgdGhleSBhcmUgZm9yIGNoYXQgc2NyaXB0IGV4cGVj dCBzdHJpbmdzICgqbm90ZSBDaGF0CisrICAgICBTY3JpcHRzOjopLiAgVGhlIGRpZmZlcmVudCBi ZXR3ZWVuIGBUTEknIGFuZCBgVExJUycgaXMgdGhhdCB0aGUKKysgICAgIGxhdHRlciBpbXBsaWVz IHRoZSBjb21tYW5kIGBzdHJlYW0gdHJ1ZScuICBUaGVzZSBjb250b3J0aW9ucyBhcmUKKysgICAg IGFsbCBmb3IgSERCIGNvbXBhdGliaWxpdHkuICBBbnkgc3Vic2VxdWVudCBkaWFsZXJzIGFyZSB0 cmVhdGVkIGFzCisrICAgICB0aGV5IGFyZSBmb3IgYSBUQ1AgcG9ydC4KKysKKytgbG9ja25hbWUg U1RSSU5HIFsgbW9kZW0gYW5kIGRpcmVjdCBvbmx5IF0nCisrICAgICBHaXZlIHRoZSBuYW1lIHRv IHVzZSB3aGVuIGxvY2tpbmcgdGhpcyBwb3J0LiAgT24gVW5peCwgdGhpcyBpcyB0aGUKKysgICAg IG5hbWUgb2YgdGhlIGZpbGUgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGxvY2sgZGlyZWN0 b3J5LiAgSXQKKysgICAgIGlzIHVzZWQgYXMgaXMsIHNvIG9uIFVuaXggaXQgc2hvdWxkIGdlbmVy YWxseSBzdGFydCB3aXRoIGBMQ0suLicuCisrICAgICBGb3IgZXhhbXBsZSwgaWYgYSBzaW5nbGUg cG9ydCB3ZXJlIG5hbWVkIGJvdGggYC9kZXYvdHR5Y3UwJyBhbmQKKysgICAgIGAvZGV2L3R0eTAn IChwZXJoYXBzIHdpdGggZGlmZmVyZW50IGNoYXJhY3RlcmlzdGljcyBrZXllZCBvbiB0aGUKKysg ICAgIG1pbm9yIGRldmljZSBudW1iZXIpLCB0aGVuIHRoZSBjb21tYW5kIGBsb2NrbmFtZSBMQ0su LnR0eWN1MCcgY291bGQKKysgICAgIGJlIHVzZWQgdG8gZm9yY2UgdGhlIGxhdHRlciB0byB1c2Ug dGhlIHNhbWUgbG9jayBmaWxlIG5hbWUgYXMgdGhlCisrICAgICBmb3JtZXIuCisrCisrYHNlcnZp Y2UgU1RSSU5HIFsgdGNwIG9ubHkgXScKKysgICAgIE5hbWUgdGhlIFRDUCBwb3J0IG51bWJlciB0 byB1c2UuICBUaGlzIG1heSBiZSBhIG51bWJlci4gIElmIG5vdCwKKysgICAgIGl0IHdpbGwgYmUg bG9va2VkIHVwIGluIGAvZXRjL3NlcnZpY2VzJy4gIElmIHRoaXMgaXMgbm90CisrICAgICBzcGVj aWZpZWQsIHRoZSBzdHJpbmcgYHV1Y3AnIGlzIGxvb2tlZCB1cCBpbiBgL2V0Yy9zZXJ2aWNlcycu ICBJZgorKyAgICAgaXQgaXMgbm90IGZvdW5kLCBwb3J0IG51bWJlciA1NDAgKHRoZSBzdGFuZGFy ZCBVVUNQLW92ZXItVENQIHBvcnQKKysgICAgIG51bWJlcikgd2lsbCBiZSB1c2VkLgorKworK2B2 ZXJzaW9uIFNUUklORyBbIHRjcCBvbmx5IF0nCisrICAgICBTcGVjaWZ5IHRoZSBJUCB2ZXJzaW9u IG51bWJlciB0byB1c2UuICBUaGUgZGVmYXVsdCBpcyBgMCcsIHdoaWNoCisrICAgICBwZXJtaXRz IGFueSB2ZXJzaW9uLiAgVGhlIG90aGVyIHBvc3NpYmxlIGNob2ljZXMgYXJlIGA0Jywgd2hpY2gK KysgICAgIHJlcXVpcmVzIGBJUHY0Jywgb3IgYDYnLCB3aGljaCByZXF1aXJlcyBgSVB2NicuICBO b3JtYWxseSBpdCBpcworKyAgICAgbm90IG5lY2Vzc2FyeSB0byB1c2UgdGhpcyBjb21tYW5kLCBi dXQgaW4gc29tZSBjYXNlcywgYXMgYElQdjYnIGlzCisrICAgICByb2xsZWQgb3V0IGFjcm9zcyB0 aGUgSW50ZXJuZXQsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gcmVxdWlyZQorKyAgICAgVVVDUCB0 byB1c2UgYSBwYXJ0aWN1bGFyIHR5cGUgb2YgY29ubmVjdGlvbi4KKysKKytgcHVzaCBTVFJJTkdT IFsgdGxpIG9ubHkgXScKKysgICAgIEdpdmUgYSBsaXN0IG9mIG1vZHVsZXMgdG8gcHVzaCBvbiB0 byB0aGUgVExJIHN0cmVhbS4KKysKKytgc3RyZWFtIEJPT0xFQU4gWyB0bGkgb25seSBdJworKyAg ICAgSWYgdGhpcyBpcyB0cnVlLCBhbmQgdGhlIGBwdXNoJyBjb21tYW5kIHdhcyBub3QgdXNlZCwg dGhlIGB0aXJkd3InCisrICAgICBtb2R1bGUgaXMgcHVzaGVkIG9uIHRvIHRoZSBUTEkgc3RyZWFt LgorKworK2BzZXJ2ZXItYWRkcmVzcyBTVFJJTkcgWyB0bGkgb25seSBdJworKyAgICAgR2l2ZSB0 aGUgYWRkcmVzcyB0byB1c2Ugd2hlbiBydW5uaW5nIGFzIGEgVExJIHNlcnZlci4gIEVzY2FwZQor KyAgICAgc2VxdWVuY2VzIGluIHRoZSBhZGRyZXNzIGFyZSBleHBhbmRlZCBhcyB0aGV5IGFyZSBm b3IgY2hhdCBzY3JpcHQKKysgICAgIGV4cGVjdCBzdHJpbmdzICgqbm90ZSBDaGF0IFNjcmlwdHM6 OikuCisrCisrICAgICBUaGUgc3RyaW5nIGlzIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgVExJIGB0 X2JpbmQnIGZ1bmN0aW9uLiAgVGhlCisrICAgICB2YWx1ZSBuZWVkZWQgbWF5IGRlcGVuZCB1cG9u IHlvdXIgcGFydGljdWxhciBUTEkgaW1wbGVtZW50YXRpb24uCisrICAgICBDaGVjayB0aGUgbWFu dWFsIHBhZ2VzLCBhbmQsIGlmIG5lY2Vzc2FyeSwgdHJ5IHdyaXRpbmcgc29tZSBzYW1wbGUKKysg ICAgIHByb2dyYW1zLgorKworKyAgICAgRm9yIEFUJlQgM0IyIFN5c3RlbSBWIFJlbGVhc2UgMyB1 c2luZyB0aGUgV29sbG9uZ29uZyBUQ1AvSVAgc3RhY2ssCisrICAgICB3aGljaCBpcyBwcm9iYWJs eSB0eXBpY2FsLCB0aGUgZm9ybWF0IG9mIFRMSSBzdHJpbmcgaXMgYFNTUFBJSUlJJywKKysgICAg IHdoZXJlIGBTUycgaXMgdGhlIHNlcnZpY2UgbnVtYmVyIChmb3IgVENQLCB0aGlzIGlzIDIpLCBg UFAnIGlzIHRoZQorKyAgICAgVENQIHBvcnQgbnVtYmVyLCBhbmQgYElJSUknIGlzIHRoZSBJbnRl cm5ldCBhZGRyZXNzLiAgRm9yIGV4YW1wbGUsCisrICAgICB0byBhY2NlcHQgYSBjb25uZWN0aW9u IGZyb20gb24gcG9ydCA1NDAgZnJvbSBhbnkgaW50ZXJmYWNlLCB1c2UKKysgICAgIGBzZXJ2ZXIt YWRkcmVzcyBceDAwXHgwMlx4MDJceDFjXHgwMFx4MDBceDAwXHgwMCcuICBUbyBvbmx5IGFjY2Vw dAorKyAgICAgY29ubmVjdGlvbnMgZnJvbSBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlLCByZXBsYWNl IHRoZSBsYXN0IGZvdXIKKysgICAgIGRpZ2l0cyB3aXRoIHRoZSBuZXR3b3JrIGFkZHJlc3Mgb2Yg dGhlIGludGVyZmFjZS4gIChUaGFua3MgdG8gUGF1bAorKyAgICAgUHJ5b3IgZm9yIHRoZSBpbmZv cm1hdGlvbiBpbiB0aGlzIHBhcmFncmFwaCkuCisrCisrYGNvbW1hbmQgU1RSSU5HUyBbIHBpcGUg b25seSBdJworKyAgICAgR2l2ZSB0aGUgY29tbWFuZCwgd2l0aCBhcmd1bWVudHMsIHRvIHJ1biB3 aGVuIHVzaW5nIGEgcGlwZSBwb3J0CisrICAgICB0eXBlLiAgV2hlbiBhIHBvcnQgb2YgdGhpcyB0 eXBlIGlzIHVzZWQsIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkCisrICAgICBhbmQgYHV1Y2ljbycg Y29tbXVuaWNhdGVzIHdpdGggaXQgb3ZlciBhIHBpcGUuICBUaGlzIHBlcm1pdHMKKysgICAgIGB1 dWNpY28nIG9yIGBjdScgdG8gY29tbXVuaWNhdGUgd2l0aCBhbm90aGVyIHN5c3RlbSB3aGljaCBj YW4gb25seQorKyAgICAgYmUgcmVhY2hlZCB0aHJvdWdoIHNvbWUgdW51c3VhbCBtZWFucy4gIEEg c2FtcGxlIHVzZSBtaWdodCBiZQorKyAgICAgYGNvbW1hbmQgL2Jpbi9ybG9naW4gLUUgLTggLWwg TE9HSU4gU1lTVEVNJy4gIFRoZSBjb21tYW5kIGlzIHJ1bgorKyAgICAgd2l0aCB0aGUgZnVsbCBw cml2aWxlZ2VzIG9mIFVVQ1A7IGl0IGlzIHJlc3BvbnNpYmxlIGZvcgorKyAgICAgbWFpbnRhaW5p bmcgc2VjdXJpdHkuCisrCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGRpYWwgRmls ZSwgIE5leHQ6IFVVQ1AgT3ZlciBUQ1AsICBQcmV2OiBwb3J0IEZpbGUsICBVcDogQ29uZmlndXJh dGlvbiBGaWxlcworKworKzUuOSBUaGUgRGlhbGVyIENvbmZpZ3VyYXRpb24gRmlsZQorKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKworK1RoZSBkaWFsZXIgY29uZmlndXJhdGlv biBmaWxlcyBkZWZpbmUgZGlhbGVycy4gIEJ5IGRlZmF1bHQgdGhlcmUgaXMgYQorK3NpbmdsZSBk aWFsZXIgZmlsZSwgbmFtZWQgYGRpYWwnIGluIHRoZSBkaXJlY3RvcnkgTkVXQ09ORklHRElSLiAg VGhpcworK21heSBiZSBvdmVycmlkZGVuIGJ5IHRoZSBgZGlhbGZpbGUnIGNvbW1hbmQgaW4gdGhl IG1haW4gY29uZmlndXJhdGlvbgorK2ZpbGU7IHNlZSAqbm90ZSBDb25maWd1cmF0aW9uIEZpbGUg TmFtZXM6Oi4KKysKKysgICBBbnkgY29tbWFuZHMgaW4gdGhlIGZpbGUgYmVmb3JlIHRoZSBmaXJz dCBgZGlhbGVyJyBjb21tYW5kIHNwZWNpZnkKKytkZWZhdWx0cyBmb3IgYWxsIHRoZSBkaWFsZXJz IGluIHRoZSBmaWxlLiAgQWxsIGNvbW1hbmRzIGFmdGVyIGEKKytgZGlhbGVyJyBjb21tYW5kIHVw IHRvIHRoZSBuZXh0IGBkaWFsZXInIGNvbW1hbmQgYXJlIGFzc29jaWF0ZWQgd2l0aAorK3RoZSBu YW1lZCBkaWFsZXIuCisrCisrYGRpYWxlciBTVFJJTkcnCisrICAgICBJbnRyb2R1Y2VzIGFuZCBu YW1lcyBhIGRpYWxlci4KKysKKytgY2hhdCBTVFJJTkdTJworKworK2BjaGF0LXRpbWVvdXQgTlVN QkVSJworKworK2BjaGF0LWZhaWwgU1RSSU5HJworKworK2BjaGF0LXNldmVuLWJpdCBCT09MRUFO JworKworK2BjaGF0LXByb2dyYW0gU1RSSU5HUycKKysgICAgIFNwZWNpZnkgYSBjaGF0IHNjcmlw dCB0byBiZSB1c2VkIHRvIGRpYWwgdGhlIHBob25lLiAgVGhpcyBjaGF0CisrICAgICBzY3JpcHQg aXMgdXNlZCBiZWZvcmUgdGhlIGxvZ2luIGNoYXQgc2NyaXB0IGluIHRoZSBgc3lzJyBmaWxlLCBp ZgorKyAgICAgYW55ICgqbm90ZSBMb2dnaW5nIEluOjopLiAgRm9yIGZ1bGwgZGV0YWlscyBvbiBj aGF0IHNjcmlwdHMsIHNlZQorKyAgICAgKm5vdGUgQ2hhdCBTY3JpcHRzOjouCisrCisrICAgICBU aGUgYHV1Y2ljbycgZGFlbW9uIHdpbGwgc2xlZXAgZm9yIG9uZSBzZWNvbmQgYmV0d2VlbiBhdHRl bXB0cyB0bworKyAgICAgZGlhbCBvdXQgb24gYSBtb2RlbS4gIElmIHlvdXIgbW9kZW0gcmVxdWly ZXMgYSBsb25nZXIgd2FpdCBwZXJpb2QsCisrICAgICB5b3UgbXVzdCBzdGFydCB5b3VyIGNoYXQg c2NyaXB0IHdpdGggZGVsYXlzIChgXGQnIGluIGEgc2VuZAorKyAgICAgc3RyaW5nKS4KKysKKysg ICAgIFRoZSBjaGF0IHNjcmlwdCB3aWxsIGJlIHJlYWQgZnJvbSBhbmQgc2VudCB0byB0aGUgcG9y dCBzcGVjaWZpZWQKKysgICAgIGJ5IHRoZSBgZGlhbC1kZXZpY2UnIGNvbW1hbmQgZm9yIHRoZSBw b3J0LCBpZiB0aGVyZSBpcyBvbmUuCisrCisrICAgICBUaGUgZm9sbG93aW5nIGVzY2FwZSBhZGRp dGlvbiBlc2NhcGUgc2VxdWVuY2VzIG1heSBhcHBlYXIgaW4gc2VuZAorKyAgICAgc3RyaW5nczoK KysKKysgICAgYFxEJworKyAgICAgICAgICBzZW5kIHBob25lIG51bWJlciB3aXRob3V0IGRpYWxj b2RlIHRyYW5zbGF0aW9uCisrCisrICAgIGBcVCcKKysgICAgICAgICAgc2VuZCBwaG9uZSBudW1i ZXIgd2l0aCBkaWFsY29kZSB0cmFuc2xhdGlvbgorKworKyAgICAgU2VlIHRoZSBkZXNjcmlwdGlv biBvZiB0aGUgZGlhbGNvZGVzIGZpbGUgKCpub3RlIENvbmZpZ3VyYXRpb24KKysgICAgIEZpbGUg TmFtZXM6OikgZm9yIGEgZGVzY3JpcHRpb24gb2YgZGlhbGNvZGUgdHJhbnNsYXRpb24uCisrCisr ICAgICBJZiBib3RoIHRoZSBwb3J0IGFuZCB0aGUgZGlhbGVyIHN1cHBvcnQgY2FycmllciwgYXMg c2V0IGJ5IHRoZQorKyAgICAgYGNhcnJpZXInIGNvbW1hbmQgaW4gdGhlIHBvcnQgZmlsZSBhbmQg dGhlIGBjYXJyaWVyJyBjb21tYW5kIGluCisrICAgICB0aGUgZGlhbGVyIGZpbGUsIHRoZW4gZXZl cnkgY2hhdCBzY3JpcHQgaW1wbGljaXRseSBiZWdpbnMgd2l0aAorKyAgICAgYFxNJyBhbmQgZW5k cyB3aXRoIGBcbScuCisrCisrICAgICBUaGVyZSBpcyBubyBkZWZhdWx0IGNoYXQgc2NyaXB0IGZv ciBkaWFsZXJzLgorKworKyAgICAgVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGVzY2FwZSBzZXF1 ZW5jZXMgbWF5IGJlIHVzZWQgaW4KKysgICAgIGBjaGF0LXByb2dyYW0nOgorKworKyAgICBgXEQn CisrICAgICAgICAgIHBob25lIG51bWJlciB3aXRob3V0IGRpYWxjb2RlIHRyYW5zbGF0aW9uCisr CisrICAgIGBcVCcKKysgICAgICAgICAgcGhvbmUgbnVtYmVyIHdpdGggZGlhbGNvZGUgdHJhbnNs YXRpb24KKysKKysgICAgIElmIHRoZSBwcm9ncmFtIGNoYW5nZXMgdGhlIHBvcnQgaW4gYW55IHdh eSAoZS5nLiwgc2V0cyBwYXJpdHkpIHRoZQorKyAgICAgY2hhbmdlcyB3aWxsIGJlIHByZXNlcnZl ZCBkdXJpbmcgcHJvdG9jb2wgbmVnb3RpYXRpb24sIGJ1dCBvbmNlIHRoZQorKyAgICAgcHJvdG9j b2wgaXMgc2VsZWN0ZWQgaXQgd2lsbCBjaGFuZ2UgdGhlIHBvcnQgc2V0dGluZ3MuCisrCisrYGRp YWx0b25lIFNUUklORycKKysgICAgIEEgc3RyaW5nIHRvIG91dHB1dCB3aGVuIGRpYWxpbmcgdGhl IHBob25lIG51bWJlciB3aGljaCBjYXVzZXMgdGhlCisrICAgICBtb2RlbSB0byB3YWl0IGZvciBh IHNlY29uZGFyeSBkaWFsIHRvbmUuICBUaGlzIGlzIHVzZWQgdG8KKysgICAgIHRyYW5zbGF0ZSB0 aGUgYD0nIGNoYXJhY3RlciBpbiBhIHBob25lIG51bWJlci4gIFRoZSBkZWZhdWx0IGlzIGEKKysg ICAgIGNvbW1hLgorKworK2BwYXVzZSBTVFJJTkcnCisrICAgICBBIHN0cmluZyB0byBvdXRwdXQg d2hlbiBkaWFsaW5nIHRoZSBwaG9uZSBudW1iZXIgd2hpY2ggY2F1c2VzIHRoZQorKyAgICAgbW9k ZW0gdG8gd2FpdCBmb3IgMSBzZWNvbmQuICBUaGlzIGlzIHVzZWQgdG8gdHJhbnNsYXRlIHRoZSBg LScKKysgICAgIGNoYXJhY3RlciBpbiBhIHBob25lIG51bWJlci4gIFRoZSBkZWZhdWx0IGlzIGEg Y29tbWEuCisrCisrYGNhcnJpZXIgQk9PTEVBTicKKysgICAgIEFuIGFyZ3VtZW50IG9mIHRydWUg bWVhbnMgdGhhdCB0aGUgZGlhbGVyIHN1cHBvcnRzIHRoZSBtb2RlbQorKyAgICAgY2FycmllciBz aWduYWwuICBBZnRlciB0aGUgcGhvbmUgbnVtYmVyIGlzIGRpYWxlZCwgYHV1Y2ljbycgd2lsbAor KyAgICAgcmVxdWlyZSB0aGF0IGNhcnJpZXIgYmUgb24uICBPbmUgc29tZSBzeXN0ZW1zLCBpdCB3 aWxsIGJlIGFibGUgdG8KKysgICAgIHdhaXQgZm9yIGl0LiAgSWYgdGhlIGFyZ3VtZW50IGlzIGZh bHNlLCBjYXJyaWVyIHdpbGwgbm90IGJlCisrICAgICByZXF1aXJlZC4gIFRoZSBkZWZhdWx0IGlz IHRydWUuCisrCisrYGNhcnJpZXItd2FpdCBOVU1CRVInCisrICAgICBJZiB0aGUgcG9ydCBpcyBz dXBwb3NlZCB0byB3YWl0IGZvciBjYXJyaWVyLCB0aGlzIG1heSBiZSB1c2VkIHRvCisrICAgICBp bmRpY2F0ZSBob3cgbWFueSBzZWNvbmRzIHRvIHdhaXQuICBUaGUgZGVmYXVsdCBpcyA2MCBzZWNv bmRzLgorKyAgICAgT25seSBzb21lIHN5c3RlbXMgc3VwcG9ydCB3YWl0aW5nIGZvciBjYXJyaWVy LgorKworK2BkdHItdG9nZ2xlIEJPT0xFQU4gQk9PTEVBTicKKysgICAgIElmIHRoZSBmaXJzdCBh cmd1bWVudCBpcyB0cnVlLCB0aGVuIERUUiBpcyB0b2dnbGVkIGJlZm9yZSB1c2luZworKyAgICAg dGhlIG1vZGVtLiAgVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBvbiBzb21lIHN5c3RlbXMgYW5kIHNv bWUgcG9ydHMuCisrICAgICBUaGUgc2Vjb25kIEJPT0xFQU4gbmVlZCBub3QgYmUgcHJlc2VudDsg aWYgaXQgaXMsIGFuZCBpdCBpcyB0cnVlLAorKyAgICAgdGhlIHByb2dyYW0gd2lsbCBzbGVlcCBm b3IgMSBzZWNvbmQgYWZ0ZXIgdG9nZ2xpbmcgRFRSLiAgVGhlCisrICAgICBkZWZhdWx0IGlzIHRv IG5vdCB0b2dnbGUgRFRSLgorKworK2Bjb21wbGV0ZS1jaGF0IFNUUklOR1MnCisrCisrYGNvbXBs ZXRlLWNoYXQtdGltZW91dCBOVU1CRVInCisrCisrYGNvbXBsZXRlLWNoYXQtZmFpbCBTVFJJTkcn CisrCisrYGNvbXBsZXRlLWNoYXQtc2V2ZW4tYml0IEJPT0xFQU4nCisrCisrYGNvbXBsZXRlLWNo YXQtcHJvZ3JhbSBTVFJJTkdTJworKyAgICAgVGhlc2UgY29tbWFuZHMgZGVmaW5lIGEgY2hhdCBz Y3JpcHQgKCpub3RlIENoYXQgU2NyaXB0czo6KSB3aGljaAorKyAgICAgaXMgcnVuIHdoZW4gYSBj YWxsIGlzIGZpbmlzaGVkIG5vcm1hbGx5LiAgVGhpcyBhbGxvd3MgdGhlIG1vZGVtIHRvCisrICAg ICBiZSByZXNldC4gIFRoZXJlIGlzIG5vIGRlZmF1bHQuICBObyBhZGRpdGlvbmFsIGVzY2FwZSBz ZXF1ZW5jZXMKKysgICAgIG1heSBiZSB1c2VkLgorKworK2Bjb21wbGV0ZSBTVFJJTkcnCisrICAg ICBUaGlzIGlzIGEgc2ltcGxlIHVzZSBvZiBgY29tcGxldGUtY2hhdCcuICBJdCBpcyBlcXVpdmFs ZW50IHRvCisrICAgICBgY29tcGxldGUtY2hhdCAiIiBTVFJJTkcnOyB0aGlzIGhhcyB0aGUgZWZm ZWN0IG9mIHNlbmRpbmcgU1RSSU5HCisrICAgICB0byB0aGUgbW9kZW0gd2hlbiBhIGNhbGwgZmlu aXNoZXMgbm9ybWFsbHkuCisrCisrYGFib3J0LWNoYXQgU1RSSU5HUycKKysKKytgYWJvcnQtY2hh dC10aW1lb3V0IE5VTUJFUicKKysKKytgYWJvcnQtY2hhdC1mYWlsIFNUUklORycKKysKKytgYWJv cnQtY2hhdC1zZXZlbi1iaXQgQk9PTEVBTicKKysKKytgYWJvcnQtY2hhdC1wcm9ncmFtIFNUUklO R1MnCisrICAgICBUaGVzZSBjb21tYW5kcyBkZWZpbmUgYSBjaGF0IHNjcmlwdCAoKm5vdGUgQ2hh dCBTY3JpcHRzOjopIHRvIGJlCisrICAgICBydW4gd2hlbiBhIGNhbGwgaXMgYWJvcnRlZC4gIFRo ZXkgbWF5IGJlIHVzZWQgdG8gaW50ZXJydXB0IGFuZAorKyAgICAgcmVzZXQgdGhlIG1vZGVtLiAg VGhlcmUgaXMgbm8gZGVmYXVsdC4gIE5vIGFkZGl0aW9uYWwgZXNjYXBlCisrICAgICBzZXF1ZW5j ZXMgbWF5IGJlIHVzZWQuCisrCisrYGFib3J0IFNUUklORycKKysgICAgIFRoaXMgaXMgYSBzaW1w bGUgdXNlIG9mIGBhYm9ydC1jaGF0Jy4gIEl0IGlzIGVxdWl2YWxlbnQgdG8KKysgICAgIGBhYm9y dC1jaGF0ICIiIFNUUklORyc7IHRoaXMgaGFzIHRoZSBlZmZlY3Qgb2Ygc2VuZGluZyBTVFJJTkcg dG8KKysgICAgIHRoZSBtb2RlbSB3aGVuIGEgY2FsbCBpcyBhYm9ydGVkLgorKworK2Bwcm90b2Nv bC1wYXJhbWV0ZXIgQ0hBUkFDVEVSIFNUUklOR1MnCisrICAgICBTZXQgcHJvdG9jb2wgcGFyYW1l dGVycywganVzdCBsaWtlIHRoZSBgcHJvdG9jb2wtcGFyYW1ldGVyJyBjb21tYW5kCisrICAgICBp biB0aGUgc3lzdGVtIGNvbmZpZ3VyYXRpb24gZmlsZSBvciB0aGUgcG9ydCBjb25maWd1cmF0aW9u IGZpbGU7CisrICAgICBzZWUgKm5vdGUgUHJvdG9jb2wgU2VsZWN0aW9uOjouICBUaGVzZSBwYXJh bWV0ZXJzIHRha2UgcHJlY2VkZW5jZSwKKysgICAgIHRoZW4gdGhvc2UgZm9yIHRoZSBwb3J0LCB0 aGVuIHRob3NlIGZvciB0aGUgc3lzdGVtLgorKworK2BzZXZlbi1iaXQgQk9PTEVBTicKKysgICAg IFRoaXMgaXMgb25seSB1c2VkIGR1cmluZyBwcm90b2NvbCBuZWdvdGlhdGlvbjsgaWYgaXQgaXMg dHJ1ZSwgaXQKKysgICAgIGZvcmNlcyBzZWxlY3Rpb24gb2YgYSBwcm90b2NvbCB3aGljaCB3b3Jr cyBhY3Jvc3MgYSBzZXZlbi1iaXQKKysgICAgIGxpbmsuICBJdCBkb2VzIG5vdCBwcmV2ZW50IGVp Z2h0IGJpdCBjaGFyYWN0ZXJzIGZyb20gYmVpbmcKKysgICAgIHRyYW5zbWl0dGVkLiAgVGhlIGRl ZmF1bHQgaXMgZmFsc2UuICBJdCB3b3VsZCBiZSBtb3JlIGNvbW1vbiB0bworKyAgICAgc3BlY2lm eSB0aGlzIGZvciBhIHBvcnQgdGhhbiBmb3IgYSBkaWFsZXIuCisrCisrYHJlbGlhYmxlIEJPT0xF QU4nCisrICAgICBUaGlzIGlzIG9ubHkgdXNlZCBkdXJpbmcgcHJvdG9jb2wgbmVnb3RpYXRpb247 IGlmIGl0IGlzIGZhbHNlLCBpdAorKyAgICAgZm9yY2VzIHNlbGVjdGlvbiBvZiBhIHByb3RvY29s IHdoaWNoIHdvcmtzIGFjcm9zcyBhbiB1bnJlbGlhYmxlCisrICAgICBjb21tdW5pY2F0aW9uIGxp bmsuICBUaGUgZGVmYXVsdCBpcyB0cnVlLgorKworK2BoYWxmLWR1cGxleCBCT09MRUFOIFsgYW55 IHR5cGUgXScKKysgICAgIElmIHRoZSBhcmd1bWVudCBpcyB0cnVlLCBpdCBtZWFucyB0aGF0IHRo ZSBkaWFsZXIgb25seSBzdXBwb3J0cworKyAgICAgaGFsZi1kdXBsZXggY29ubmVjdGlvbnMuICBU aGlzIG9ubHkgYWZmZWN0cyBiaWRpcmVjdGlvbmFsCisrICAgICBwcm90b2NvbHMsIGFuZCBjYXVz ZXMgdGhlbSB0byBub3QgZG8gYmlkaXJlY3Rpb25hbCB0cmFuc2ZlcnMuCisrCisrCisrHworK0Zp bGU6IHV1Y3AuaW5mbywgIE5vZGU6IFVVQ1AgT3ZlciBUQ1AsICBOZXh0OiBTZWN1cml0eSwgIFBy ZXY6IGRpYWwgRmlsZSwgIFVwOiBDb25maWd1cmF0aW9uIEZpbGVzCisrCisrNS4xMCBVVUNQIE92 ZXIgVENQCisrPT09PT09PT09PT09PT09PT09CisrCisrSWYgeW91ciBzeXN0ZW0gaGFzIGEgQmVy a2VsZXkgc3R5bGUgc29ja2V0IGxpYnJhcnksIG9yIGEgU3lzdGVtIFYgc3R5bGUKKytUTEkgaW50 ZXJmYWNlIGxpYnJhcnksIHlvdSBjYW4gY29tcGlsZSB0aGUgY29kZSB0byBwZXJtaXQgbWFraW5n CisrY29ubmVjdGlvbnMgb3ZlciBUQ1AuICBTcGVjaWZ5aW5nIHRoYXQgYSBzeXN0ZW0gc2hvdWxk IGJlIHJlYWNoZWQgdmlhCisrVENQIGlzIGVhc3ksIGJ1dCBub25vYnZpb3VzLgorKworKyogTWVu dToKKysKKysqIFRDUCBDbGllbnQ6OiAgICAgICAgICAgICAgICAgIENvbm5lY3RpbmcgdG8gQW5v dGhlciBTeXN0ZW0gT3ZlciBUQ1AKKysqIFRDUCBTZXJ2ZXI6OiAgICAgICAgICAgICAgICAgIFJ1 bm5pbmcgYSBUQ1AgU2VydmVyCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFRDUCBD bGllbnQsICBOZXh0OiBUQ1AgU2VydmVyLCAgUHJldjogVVVDUCBPdmVyIFRDUCwgIFVwOiBVVUNQ IE92ZXIgVENQCisrCisrNS4xMC4xIENvbm5lY3RpbmcgdG8gQW5vdGhlciBTeXN0ZW0gT3ZlciBU Q1AKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0lm IHlvdSBhcmUgdXNpbmcgdGhlIG5ldyBzdHlsZSBjb25maWd1cmF0aW9uIGZpbGVzICgqbm90ZSBD b25maWd1cmF0aW9uCisrRmlsZXM6OiksIGFkZCB0aGUgbGluZSBgcG9ydCB0eXBlIHRjcCcgdG8g dGhlIGVudHJ5IGluIHRoZSBgc3lzJyBmaWxlLgorK0J5IGRlZmF1bHQgVVVDUCB3aWxsIGdldCB0 aGUgcG9ydCBudW1iZXIgYnkgbG9va2luZyB1cCBgdXVjcCcgaW4KKytgL2V0Yy9zZXJ2aWNlcyc7 IGlmIHRoZSBgdXVjcCcgc2VydmljZSBpcyBub3QgZGVmaW5lZCwgcG9ydCA1NDAgd2lsbCBiZQor K3VzZWQuICBZb3UgY2FuIHNldCB0aGUgcG9ydCBudW1iZXIgdG8gdXNlIHdpdGggdGhlIGNvbW1h bmQgYHBvcnQKKytzZXJ2aWNlIFhYWCcsIHdoZXJlIFhYWCBjYW4gYmUgZWl0aGVyIGEgbnVtYmVy IG9yIGEgbmFtZSB0byBsb29rIHVwIGluCisrYC9ldGMvc2VydmljZXMnLiAgWW91IGNhbiBzcGVj aWZ5IHRoZSBhZGRyZXNzIG9mIHRoZSByZW1vdGUgaG9zdCB3aXRoCisrYGFkZHJlc3MgQS5CLkMn OyBpZiB5b3UgZG9uJ3QgZ2l2ZSBhbiBhZGRyZXNzLCB0aGUgcmVtb3RlIHN5c3RlbSBuYW1lCisr d2lsbCBiZSB1c2VkLiAgWW91IHNob3VsZCBnaXZlIGFuIGV4cGxpY2l0IGNoYXQgc2NyaXB0IGZv ciB0aGUgc3lzdGVtCisrd2hlbiB5b3UgdXNlIFRDUDsgdGhlIGRlZmF1bHQgY2hhdCBzY3JpcHQg YmVnaW5zIHdpdGggYSBjYXJyaWFnZQorK3JldHVybiwgd2hpY2ggd2lsbCBub3Qgd29yayB3aXRo IHNvbWUgVVVDUCBUQ1Agc2VydmVycy4KKysKKysgICBJZiB5b3UgYXJlIHVzaW5nIFYyIGNvbmZp Z3VyYXRpb24gZmlsZXMsIGFkZCBhIGxpbmUgbGlrZSB0aGlzIHRvCisrYEwuc3lzJzoKKysgICAg IFNZUyBBbnkgVENQIHV1Y3AgSE9TVC5ET01BSU4gY2hhdC1zY3JpcHQKKysgICBUaGlzIHdpbGwg bWFrZSBhbiBlbnRyeSBmb3Igc3lzdGVtIFNZUywgdG8gYmUgY2FsbGVkIGF0IGFueSB0aW1lLAor K292ZXIgVENQLCB1c2luZyBwb3J0IG51bWJlciBgdXVjcCcgKGFzIGZvdW5kIGluIGAvZXRjL3Nl cnZpY2VzJzsgdGhpcworK21heSBiZSBzcGVjaWZpZWQgYXMgYSBudW1iZXIpLCB1c2luZyByZW1v dGUgaG9zdCBgSE9TVC5ET01BSU4nLCB3aXRoCisrc29tZSBjaGF0IHNjcmlwdC4KKysKKysgICBJ ZiB5b3UgYXJlIHVzaW5nIEhEQiBjb25maWd1cmF0aW9uIGZpbGVzLCBhZGQgYSBsaW5lIGxpa2Ug dGhpcyB0bworK1N5c3RlbXM6CisrICAgICBTWVMgQW55IFRDUCAtIEhPU1QuRE9NQUlOIGNoYXQt c2NyaXB0CisrICAgYW5kIGEgbGluZSBsaWtlIHRoaXMgdG8gYERldmljZXMnOgorKyAgICAgVENQ IHV1Y3AgLSAtCisrICAgWW91IG9ubHkgbmVlZCBvbmUgbGluZSBpbiBgRGV2aWNlcycgcmVnYXJk bGVzcyBvZiBob3cgbWFueSBzeXN0ZW1zCisreW91IGNvbnRhY3Qgb3ZlciBUQ1AuICBUaGlzIHdp bGwgbWFrZSBhbiBlbnRyeSBmb3Igc3lzdGVtIFNZUywgdG8gYmUKKytjYWxsZWQgYXQgYW55IHRp bWUsIG92ZXIgVENQLCB1c2luZyBwb3J0IG51bWJlciBgdXVjcCcgKGFzIGZvdW5kIGluCisrYC9l dGMvc2VydmljZXMnOyB0aGlzIG1heSBiZSBzcGVjaWZpZWQgYXMgYSBudW1iZXIpLCB1c2luZyBy ZW1vdGUgaG9zdAorK2BIT1NULkRPTUFJTicsIHdpdGggc29tZSBjaGF0IHNjcmlwdC4KKysKKysf CisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogVENQIFNlcnZlciwgIFByZXY6IFRDUCBDbGllbnQs ICBVcDogVVVDUCBPdmVyIFRDUAorKworKzUuMTAuMiBSdW5uaW5nIGEgVENQIFNlcnZlcgorKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK1RoZSBgdXVjaWNvJyBkYWVtb24gbWF5IGJl IHJ1biBhcyBhIFRDUCBzZXJ2ZXIuICBUbyB1c2UgdGhlIGRlZmF1bHQKKytwb3J0IG51bWJlciwg d2hpY2ggaXMgYSByZXNlcnZlZCBwb3J0LCBgdXVjaWNvJyBtdXN0IGJlIGludm9rZWQgYnkgdGhl Cisrc3VwZXJ1c2VyIChvciBpdCBtdXN0IGJlIHNldCB1c2VyIElEIHRvIHRoZSBzdXBlcnVzZXIs IGJ1dCBJIGRvbid0CisrcmVjb21tZW5kIGRvaW5nIHRoYXQpLgorKworKyAgIFlvdSBtdXN0IGRl ZmluZSBhIHBvcnQsIGVpdGhlciB1c2luZyB0aGUgcG9ydCBmaWxlICgqbm90ZSBwb3J0CisrRmls ZTo6KSwgaWYgeW91IGFyZSB1c2luZyB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gbWV0aG9kLCBvciB3 aXRoIGFuCisrZW50cnkgaW4gYERldmljZXMnIGlmIHlvdSBhcmUgdXNpbmcgSERCOyB0aGVyZSBp cyBubyB3YXkgdG8gZGVmaW5lIGEKKytwb3J0IHVzaW5nIFYyLiAgSWYgeW91IGFyZSB1c2luZyBI REIgdGhlIHBvcnQgbXVzdCBiZSBuYW1lZCBgVENQJzsgYQorK2xpbmUgYXMgc2hvd24gYWJvdmUg d2lsbCBzdWZmaWNlLiAgWW91IGNhbiB0aGVuIHN0YXJ0IGB1dWNpY28nIGFzCisrYHV1Y2ljbyAt cCBUQ1AnIChhZnRlciB0aGUgYC1wJywgbmFtZSB0aGUgcG9ydDsgaW4gSERCIGl0IG11c3QgYmUK KytgVENQJykuICBUaGlzIHdpbGwgd2FpdCBmb3IgaW5jb21pbmcgY29ubmVjdGlvbnMsIGFuZCBm b3JrIG9mZiBhIGNoaWxkCisrZm9yIGVhY2ggb25lLiAgRWFjaCBjb25uZWN0aW9uIHdpbGwgYmUg cHJvbXB0ZWQgd2l0aCBgbG9naW46JyBhbmQKKytgUGFzc3dvcmQ6JzsgdGhlIHJlc3VsdHMgd2ls bCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIFVVQ1AgKG5vdCB0aGUKKytzeXN0ZW0pIHBhc3N3b3Jk IGZpbGUgKCpub3RlIENvbmZpZ3VyYXRpb24gRmlsZSBOYW1lczo6KS4KKysKKysgICBBbm90aGVy IHdheSB0byBydW4gYSBVVUNQIFRDUCBzZXJ2ZXIgaXMgdG8gdXNlIHRoZSBCU0QgYHV1Y3BkJwor K3Byb2dyYW0uCisrCisrICAgWWV0IGFub3RoZXIgd2F5IHRvIHJ1biBhIFVVQ1AgVENQIHNlcnZl ciBpcyB0byB1c2UgYGluZXRkJy4gIEFycmFuZ2UKKytmb3IgYGluZXRkJyB0byBzdGFydCB1cCBg dXVjaWNvJyB3aXRoIHRoZSBgLWwnIHN3aXRjaC4gIFRoaXMgd2lsbCBjYXVzZQorK2B1dWNpY28n IHRvIHByb21wdCB3aXRoIGBsb2dpbjonIGFuZCBgUGFzc3dvcmQ6JyBhbmQgY2hlY2sgdGhlIHJl c3VsdHMKKythZ2FpbnN0IHRoZSBVVUNQIChub3QgdGhlIHN5c3RlbSkgcGFzc3dvcmQgZmlsZSAo eW91IG1heSB3YW50IHRvIGFsc28KKyt1c2UgdGhlIGAtRCcgc3dpdGNoIHRvIGF2b2lkIGEgZm9y aywgd2hpY2ggaW4gdGhpcyBjYXNlIGlzIHVubmVjZXNzYXJ5KS4KKysKKysfCisrRmlsZTogdXVj cC5pbmZvLCAgTm9kZTogU2VjdXJpdHksICBQcmV2OiBVVUNQIE92ZXIgVENQLCAgVXA6IENvbmZp Z3VyYXRpb24gRmlsZXMKKysKKys1LjExIFNlY3VyaXR5CisrPT09PT09PT09PT09PQorKworK1Ro aXMgZGlzY3Vzc2lvbiBvZiBVVUNQIHNlY3VyaXR5IGFwcGxpZXMgb25seSB0byBVbml4LiAgSXQg aXMgYSBiaXQKKytjdXJzb3J5OyBzdWdnZXN0aW9ucyBmb3IgaW1wcm92ZW1lbnQgYXJlIHNvbGlj aXRlZC4KKysKKysgICBVVUNQIGlzIHRyYWRpdGlvbmFsbHkgbm90IHZlcnkgc2VjdXJlLiAgVGF5 bG9yIFVVQ1AgYWRkcmVzc2VzIHNvbWUKKytzZWN1cml0eSBpc3N1ZXMsIGJ1dCBpcyBzdGlsbCBm YXIgZnJvbSBiZWluZyBhIHNlY3VyZSBzeXN0ZW0uCisrCisrICAgSWYgc2VjdXJpdHkgaXMgdmVy eSBpbXBvcnRhbnQgdG8geW91LCB0aGVuIHlvdSBzaG91bGQgbm90IHBlcm1pdCBhbnkKKytleHRl cm5hbCBhY2Nlc3MgdG8geW91ciBjb21wdXRlciwgaW5jbHVkaW5nIFVVQ1AuICBBbnkgb3Blbmlu ZyB0byB0aGUKKytvdXRzaWRlIHdvcmxkIGlzIGEgcG90ZW50aWFsIHNlY3VyaXR5IHJpc2suCisr CisrICAgV2hlbiBsb2NhbCB1c2VycyB1c2UgVVVDUCB0byB0cmFuc2ZlciBmaWxlcywgVGF5bG9y IFVVQ1AgY2FuIGRvCisrbGl0dGxlIHRvIHNlY3VyZSB0aGVtIGZyb20gZWFjaCBvdGhlci4gIFlv dSBjYW4gYWxsb3cgc29tZXdoYXQgaW5jcmVhc2VkCisrc2VjdXJpdHkgYnkgcHV0dGluZyB0aGUg b3duZXIgb2YgdGhlIFVVQ1AgcHJvZ3JhbXMgKG5vcm1hbGx5IGB1dWNwJykKKytpbnRvIGEgc2Vw YXJhdGUgZ3JvdXA7IHRoZSB1c2Ugb2YgdGhpcyBpcyBleHBsYWluZWQgaW4gdGhlIGZvbGxvd2lu ZworK3BhcmFncmFwaHMsIHdoaWNoIHJlZmVyIHRvIHRoaXMgc2VwYXJhdGUgZ3JvdXAgYXMgYHV1 Y3AtZ3JvdXAnLgorKworKyAgIFdoZW4gdGhlIGB1dWNwJyBwcm9ncmFtIGlzIGludm9rZWQgdG8g Y29weSBhIGZpbGUgdG8gYSByZW1vdGUKKytzeXN0ZW0sIGl0IHdpbGwsIGJ5IGRlZmF1bHQsIGNv cHkgdGhlIGZpbGUgaW50byB0aGUgVVVDUCBzcG9vbAorK2RpcmVjdG9yeS4gIFdoZW4gdGhlIGB1 dXgnIHByb2dyYW0gaXMgdXNlZCwgdGhlIGAtQycgc3dpdGNoIG11c3QgYmUKKyt1c2VkIHRvIGNv cHkgdGhlIGZpbGUgaW50byB0aGUgVVVDUCBzcG9vbCBkaXJlY3RvcnkuICBJbiBhbnkgY2FzZSwg b25jZQorK3RoZSBmaWxlIGhhcyBiZWVuIGNvcGllZCBpbnRvIHRoZSBzcG9vbCBkaXJlY3Rvcnks IG90aGVyIGxvY2FsIHVzZXJzCisrd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgaXQuCisrCisr ICAgV2hlbiBhIGZpbGUgaXMgcmVxdWVzdGVkIGZyb20gYSByZW1vdGUgc3lzdGVtLCBVVUNQIHdp bGwgb25seSBwZXJtaXQKKytpdCB0byBiZSBwbGFjZWQgaW4gYSBkaXJlY3Rvcnkgd2hpY2ggaXMg d3JpdGFibGUgYnkgdGhlIHJlcXVlc3RpbmcgdXNlci4KKytUaGUgZGlyZWN0b3J5IG11c3QgYWxz byBiZSB3cml0YWJsZSBieSBVVUNQLiAgQSBsb2NhbCB1c2VyIGNhbiBjcmVhdGUgYQorK2RpcmVj dG9yeSB3aXRoIGEgZ3JvdXAgb2YgYHV1Y3AtZ3JvdXAnIGFuZCBzZXQgdGhlIG1vZGUgdG8gcGVy bWl0IGdyb3VwCisrd3JpdGUgYWNjZXNzLiAgVGhpcyB3aWxsIGFsbG93IHRoZSBmaWxlIGJlIHJl cXVlc3RlZCB3aXRob3V0IHBlcm1pdHRpbmcKKytpdCB0byBiZSB2aWV3ZWQgYnkgYW55IG90aGVy IHVzZXIuCisrCisrICAgVGhlcmUgaXMgbm8gcHJvdmlzaW9uIGZvciBzZWN1cml0eSBmb3IgYHV1 Y3AnIHJlcXVlc3RzIChhcyBvcHBvc2VkCisrdG8gYHV1eCcgcmVxdWVzdHMpIG1hZGUgYnkgYSB1 c2VyIG9uIGEgcmVtb3RlIHN5c3RlbS4gIEEgZmlsZSBzZW50IG92ZXIKKytieSBhIHJlbW90ZSBy ZXF1ZXN0IG1heSBvbmx5IGJlIHBsYWNlZCBpbiBhIGRpcmVjdG9yeSB3aGljaCBpcyB3b3JsZAor K3dyaXRhYmxlLCBhbmQgdGhlIGZpbGUgd2lsbCBiZSB3b3JsZCByZWFkYWJsZSBhbmQgd3JpdGFi bGUuICBUaGlzIHdpbGwKKytwZXJtaXQgYW55IGxvY2FsIHVzZXIgdG8gZGVzdHJveSBvciByZXBs YWNlIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZS4KKytBIGZpbGUgcmVxdWVzdGVkIGJ5IGEgcmVt b3RlIHN5c3RlbSBtdXN0IGJlIHdvcmxkIHJlYWRhYmxlLCBhbmQgdGhlCisrZGlyZWN0b3J5IGl0 IGlzIGluIG11c3QgYmUgd29ybGQgcmVhZGFibGUuICBBbnkgbG9jYWwgdXNlciB3aWxsIGJlIGFi bGUKKyt0byBleGFtaW5lLCBhbHRob3VnaCBub3QgbmVjZXNzYXJpbHkgbW9kaWZ5LCB0aGUgZmls ZSBiZWZvcmUgaXQgaXMgc2VudC4KKysKKysgICBUaGVyZSBhcmUgc29tZSBzZWN1cml0eSBob2xl cyBhbmQgcmFjZSBjb25kaXRpb25zIHRoYXQgYXBwbHkgdG8gdGhlCisrYWJvdmUgZGlzY3Vzc2lv biB3aGljaCBJIHdpbGwgbm90IGVsYWJvcmF0ZSBvbi4gIFRoZXkgYXJlIG5vdCBoaWRkZW4KKytm cm9tIGFueWJvZHkgd2hvIHJlYWRzIHRoZSBzb3VyY2UgY29kZSwgYnV0IHRoZXkgYXJlIHNvbWV3 aGF0IHRlY2huaWNhbAorK2FuZCBkaWZmaWN1bHQgKHRob3VnaCBzY2FyY2VseSBpbXBvc3NpYmxl KSB0byBleHBsb2l0LiAgU3VmZmljZSBpdCB0bworK3NheSB0aGF0IGV2ZW4gdW5kZXIgdGhlIGJl c3Qgb2YgY29uZGl0aW9ucyBVVUNQIGlzIG5vdCBjb21wbGV0ZWx5Cisrc2VjdXJlLgorKworKyAg IEZvciBtYW55IHNpdGVzLCBzZWN1cml0eSBmcm9tIHJlbW90ZSBzaXRlcyBpcyBhIG1vcmUgaW1w b3J0YW50CisrY29uc2lkZXJhdGlvbi4gIEZvcnR1bmF0ZWx5LCBUYXlsb3IgVVVDUCBkb2VzIHBy b3ZpZGUgc29tZSBzdXBwb3J0IGluCisrdGhpcyBhcmVhLgorKworKyAgIFRoZSBncmVhdGVzdCBz ZWN1cml0eSBpcyBwcm92aWRlZCBieSBhbHdheXMgZGlhbGluZyBvdXQgdG8gdGhlIG90aGVyCisr c2l0ZS4gIFRoaXMgcHJldmVudHMgYW55Ym9keSBmcm9tIHByZXRlbmRpbmcgdG8gYmUgdGhlIG90 aGVyIHNpdGUuICBPZgorK2NvdXJzZSwgb25seSBvbmUgc2lkZSBvZiB0aGUgY29ubmVjdGlvbiBj YW4gZG8gdGhpcy4KKysKKysgICBJZiByZW1vdGUgZGlhbGlucyBtdXN0IGJlIHBlcm1pdHRlZCwg dGhlbiBpdCBpcyBiZXN0IGlmIHRoZSBkaWFsaW4KKytsaW5lIGlzIHVzZWQgb25seSBmb3IgVVVD UC4gIElmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZW4geW91IHNob3VsZAorK2NyZWF0ZSBhIGNhbGwt aW4gcGFzc3dvcmQgZmlsZSAoKm5vdGUgQ29uZmlndXJhdGlvbiBGaWxlIE5hbWVzOjopIGFuZAor K2xldCBgdXVjaWNvJyBkbyBpdHMgb3duIGxvZ2luIHByb21wdGluZy4gIEZvciBleGFtcGxlLCB0 byBsZXQgcmVtb3RlCisrc2l0ZXMgbG9nIGluIG9uIGEgcG9ydCBuYW1lZCBgZW50cnknIGluIHRo ZSBwb3J0IGZpbGUgKCpub3RlIHBvcnQKKytGaWxlOjopLCB5b3UgbWlnaHQgaW52b2tlIGB1dWNp Y28gLWUgLXAgZW50cnknLiAgVGhpcyB3b3VsZCBjYXVzZQorK2B1dWNpY28nIHRvIGVudGVyIGFu IGVuZGxlc3MgbG9vcCBvZiBsb2dpbiBwcm9tcHRzIGFuZCBkYWVtb24KKytleGVjdXRpb25zLiAg VGhlIGFkdmFudGFnZSBvZiB0aGlzIGFwcHJvYWNoIGlzIHRoYXQgZXZlbiBpZiByZW1vdGUgdXNl cnMKKyticmVhayBpbnRvIHRoZSBzeXN0ZW0gYnkgZ3Vlc3Npbmcgb3IgbGVhcm5pbmcgdGhlIHBh c3N3b3JkLCB0aGV5IHdpbGwKKytvbmx5IGJlIGFibGUgdG8gZG8gd2hhdGV2ZXIgYHV1Y2ljbycg cGVybWl0cyB0aGVtIHRvIGRvLiAgVGhleSB3aWxsIG5vdAorK2JlIGFibGUgdG8gc3RhcnQgYSBz aGVsbCBvbiB5b3VyIHN5c3RlbS4KKysKKysgICBJZiByZW1vdGUgdXNlcnMgY2FuIGRpYWwgaW4g YW5kIGxvZyBvbiB0byB5b3VyIHN5c3RlbSwgdGhlbiB5b3UgaGF2ZQorK2Egc2VjdXJpdHkgaGF6 YXJkIG1vcmUgc2VyaW91cyB0aGFuIHRoYXQgcG9zZWQgYnkgVVVDUC4gIEJ1dCB0aGVuLCB5b3UK Kytwcm9iYWJseSBrbmV3IHRoYXQgYWxyZWFkeS4KKysKKysgICBPbmNlIHlvdXIgc3lzdGVtIGhh cyBjb25uZWN0ZWQgd2l0aCB0aGUgcmVtb3RlIFVVQ1AsIHRoZXJlIGlzIGEgZmFpcgorK2Ftb3Vu dCBvZiBjb250cm9sIHlvdSBjYW4gZXhlcmNpc2UuICBZb3UgY2FuIHVzZSB0aGUgYHJlbW90ZS1z ZW5kJyBhbmQKKytgcmVtb3RlLXJlY2VpdmUnIGNvbW1hbmRzIHRvIGNvbnRyb2wgdGhlIGRpcmVj dG9yaWVzIHRoZSByZW1vdGUgVVVDUAorK2NhbiBhY2Nlc3MuICBZb3UgY2FuIHVzZSB0aGUgYHJl cXVlc3QnIGNvbW1hbmQgdG8gcHJldmVudCB0aGUgcmVtb3RlCisrVVVDUCBmcm9tIG1ha2luZyBh bnkgcmVxdWVzdHMgb2YgeW91ciBzeXN0ZW0gYXQgYWxsOyBob3dldmVyLCBpZiB5b3UgZG8KKyt0 aGlzIGl0IHdpbGwgbm90IGV2ZW4gYmUgYWJsZSB0byBzZW5kIHlvdSBtYWlsIG9yIG5ld3MuICBJ ZiB5b3UgZG8KKytwZXJtaXQgcmVtb3RlIHJlcXVlc3RzLCB5b3Ugc2hvdWxkIGJlIGNhcmVmdWwg dG8gcmVzdHJpY3Qgd2hhdCBjb21tYW5kcworK21heSBiZSBleGVjdXRlZCBhdCB0aGUgcmVtb3Rl IHN5c3RlbSdzIHJlcXVlc3QuICBUaGUgZGVmYXVsdCBpcyBgcm1haWwnCisrYW5kIGBybmV3cycs IHdoaWNoIHdpbGwgc3VmZmljZSBmb3IgbW9zdCBzeXN0ZW1zLgorKworKyAgIElmIGRpZmZlcmVu dCByZW1vdGUgc3lzdGVtcyBjYWxsIGluIGFuZCB0aGV5IG11c3QgYmUgZ3JhbnRlZAorK2RpZmZl cmVudCBwcml2aWxlZ2VzIChwZXJoYXBzIHNvbWUgc3lzdGVtcyBhcmUgd2l0aGluIHRoZSBzYW1l Cisrb3JnYW5pemF0aW9uIGFuZCBzb21lIGFyZSBub3QpIHRoZW4gdGhlIGBjYWxsZWQtbG9naW4n IGNvbW1hbmQgc2hvdWxkCisrYmUgdXNlZCBmb3IgZWFjaCBzeXN0ZW0gdG8gcmVxdWlyZSB0aGF0 IHRoZXkgdXNlIGRpZmZlcmVudCBsb2dpbiBuYW1lcy4KKytPdGhlcndpc2UsIGl0IHdvdWxkIGJl IHNpbXBsZSBmb3IgYSByZW1vdGUgc3lzdGVtIHRvIHVzZSB0aGUgYG15bmFtZScKKytjb21tYW5k IGFuZCBwcmV0ZW5kIHRvIGJlIGEgZGlmZmVyZW50IHN5c3RlbS4gIFRoZSBgc2VxdWVuY2UnIGNv bW1hbmQKKytjYW4gYmUgdXNlZCB0byBkZXRlY3Qgd2hlbiBvbmUgc3lzdGVtIHByZXRlbmRlZCB0 byBiZSBhbm90aGVyLCBidXQsCisrc2luY2UgdGhlIHNlcXVlbmNlIG51bWJlcnMgbXVzdCBiZSBy ZXNldCBtYW51YWxseSBhZnRlciBhIGZhaWxlZAorK2hhbmRzaGFrZSwgdGhpcyBjYW4gc29tZXRp bWVzIGJlIG1vcmUgdHJvdWJsZSB0aGFuIGl0J3Mgd29ydGguCisrCisrHworK0ZpbGU6IHV1Y3Au aW5mbywgIE5vZGU6IFByb3RvY29scywgIE5leHQ6IEhhY2tpbmcsICBQcmV2OiBDb25maWd1cmF0 aW9uIEZpbGVzLCAgVXA6IFRvcAorKworKzYgVVVDUCBQcm90b2NvbCBJbnRlcm5hbHMKKysqKioq KioqKioqKioqKioqKioqKioqKioqCisrCisrVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyBob3cgdGhl IHZhcmlvdXMgVVVDUCBwcm90b2NvbHMgd29yaywgYW5kCisrZGlzY3Vzc2VzIHNvbWUgb3RoZXIg aW50ZXJuYWwgVVVDUCBpc3N1ZXMuCisrCisrICAgVGhpcyBjaGFwdGVyIGlzIHF1aXRlIHRlY2hu aWNhbC4gIFlvdSBkbyBub3QgbmVlZCB0byB1bmRlcnN0YW5kIGl0LAorK29yIGV2ZW4gcmVhZCBp dCwgaW4gb3JkZXIgdG8gdXNlIFRheWxvciBVVUNQLiAgSXQgaXMgaW50ZW5kZWQgZm9yIHBlb3Bs ZQorK3dobyBhcmUgaW50ZXJlc3RlZCBpbiBob3cgdGhlIFVVQ1AgY29kZSB3b3Jrcy4KKysKKysg ICBUaGUgaW5mb3JtYXRpb24gaW4gdGhpcyBjaGFwdGVyIGlzIHBvc3RlZCBtb250aGx5IHRvIHRo ZSBVc2VuZXQKKytuZXdzZ3JvdXBzIGBjb21wLm1haWwudXVjcCcsIGBuZXdzLmFuc3dlcnMnLCBh bmQgYGNvbXAuYW5zd2VycycuICBUaGUKKytwb3N0aW5nIGlzIGF2YWlsYWJsZSBmcm9tIGFueSBg bmV3cy5hbnN3ZXJzJyBhcmNoaXZlIHNpdGUsIHN1Y2ggYXMKKytgcnRmbS5taXQuZWR1Jy4gIElm IHlvdSBwbGFuIHRvIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIHdyaXRlIGEgVVVDUAorK3Byb2dy YW0sIHBsZWFzZSBtYWtlIHN1cmUgeW91IGdldCB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbiBvZiB0 aGUKKytwb3N0aW5nLCBpbiBjYXNlIHRoZXJlIGhhdmUgYmVlbiBhbnkgY29ycmVjdGlvbnMuCisr CisrKiBNZW51OgorKworKyogVVVDUCBQcm90b2NvbCBTb3VyY2VzOjogICAgICAgU291cmNlcyBm b3IgVVVDUCBQcm90b2NvbCBJbmZvcm1hdGlvbgorKyogVVVDUCBHcmFkZXM6OiAgICAgICAgICAg ICAgICAgVVVDUCBHcmFkZXMKKysqIFVVQ1AgTG9jayBGaWxlczo6ICAgICAgICAgICAgIFVVQ1Ag TG9jayBGaWxlcworKyogRXhlY3V0aW9uIEZpbGUgRm9ybWF0OjogICAgICAgRXhlY3V0aW9uIEZp bGUgRm9ybWF0CisrKiBVVUNQIFByb3RvY29sOjogICAgICAgICAgICAgICBVVUNQIFByb3RvY29s CisrKiBnIFByb3RvY29sOjogICAgICAgICAgICAgICAgICBnIHByb3RvY29sCisrKiBmIFByb3Rv Y29sOjogICAgICAgICAgICAgICAgICBmIHByb3RvY29sCisrKiB0IFByb3RvY29sOjogICAgICAg ICAgICAgICAgICB0IHByb3RvY29sCisrKiBlIFByb3RvY29sOjogICAgICAgICAgICAgICAgICBl IHByb3RvY29sCisrKiBCaWcgRyBQcm90b2NvbDo6ICAgICAgICAgICAgICBHIHByb3RvY29sCisr KiBpIFByb3RvY29sOjogICAgICAgICAgICAgICAgICBpIHByb3RvY29sCisrKiBqIFByb3RvY29s OjogICAgICAgICAgICAgICAgICBqIHByb3RvY29sCisrKiB4IFByb3RvY29sOjogICAgICAgICAg ICAgICAgICB4IHByb3RvY29sCisrKiB5IFByb3RvY29sOjogICAgICAgICAgICAgICAgICB5IHBy b3RvY29sCisrKiBkIFByb3RvY29sOjogICAgICAgICAgICAgICAgICBkIHByb3RvY29sCisrKiBo IFByb3RvY29sOjogICAgICAgICAgICAgICAgICBoIHByb3RvY29sCisrKiB2IFByb3RvY29sOjog ICAgICAgICAgICAgICAgICB2IHByb3RvY29sCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5v ZGU6IFVVQ1AgUHJvdG9jb2wgU291cmNlcywgIE5leHQ6IFVVQ1AgR3JhZGVzLCAgUHJldjogUHJv dG9jb2xzLCAgVXA6IFByb3RvY29scworKworKzYuMSBVVUNQIFByb3RvY29sIFNvdXJjZXMKKys9 PT09PT09PT09PT09PT09PT09PT09PT09CisrCisrICAgICAiVW5peC10by1Vbml4IENvcHkgUHJv Z3JhbSwiIHNhaWQgUERQLTEuICAiWW91IHdpbGwgbmV2ZXIgZmluZCBhCisrICAgICBtb3JlIHdy ZXRjaGVkIGhpdmUgb2YgYnVncyBhbmQgZmxhbWVycy4gIFdlIG11c3QgYmUgY2F1dGlvdXMuIgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLS1ERUNXYXJzCisrCisrSSB0b29rIGEgbG90IG9mIHRoZSBpbmZvcm1hdGlvbiBmcm9t IEphbWllIEUuIEhhbnJhaGFuJ3MgcGFwZXIgaW4gdGhlCisrRmFsbCAxOTkwIERFQ1VTIFN5bXBv c2l1bSwgYW5kIGZyb20gYE1hbmFnaW5nIFVVQ1AgYW5kIFVzZW5ldCcgYnkgVGltCisrTydSZWls bHkgYW5kIEdyYWNlIFRvZGlubyAod2l0aCBjb250cmlidXRpb25zIGJ5IHNldmVyYWwgb3RoZXIg cGVvcGxlKS4KKytUaGUgbGF0dGVyIGluY2x1ZGVzIG1vc3Qgb2YgdGhlIGZvcm1lciwgYW5kIGlz IHB1Ymxpc2hlZCBieQorKyAgICAgTydSZWlsbHkgJiBBc3NvY2lhdGVzLCBJbmMuCisrICAgICAx MDMgTW9ycmlzIFN0cmVldCwgU3VpdGUgQQorKyAgICAgU2ViYXN0b3BvbCwgQ0EgOTU0NzIKKysg ICBJdCBpcyBjdXJyZW50bHkgaW4gaXRzIHRlbnRoIGVkaXRpb24uICBUaGUgSVNCTiBudW1iZXIg aXMKKytgMC05MzcxNzUtOTMtNScuCisrCisrICAgU29tZSBpbmZvcm1hdGlvbiBpcyBvcmlnaW5h bGx5IGR1ZSB0byBhIFVzZW5ldCBhcnRpY2xlIGJ5IENodWNrCisrV2Vncnp5bi4gIFRoZSBpbmZv cm1hdGlvbiBvbiBleGVjdXRpb24gZmlsZXMgY29tZXMgcGFydGlhbGx5IGZyb20gUGV0ZXIKKytI b25leW1hbi4gIFRoZSBpbmZvcm1hdGlvbiBvbiB0aGUgYGcnIHByb3RvY29sIGNvbWVzIHBhcnRp YWxseSBmcm9tIGEKKytwYXBlciBieSBHLkwuIENoZXNzb24gb2YgQmVsbCBMYWJvcmF0b3JpZXMs IHBhcnRpYWxseSBmcm9tIEphbWllIEUuCisrSGFucmFoYW4ncyBwYXBlciwgYW5kIHBhcnRpYWxs eSBmcm9tIHNvdXJjZSBjb2RlIGJ5IEpvaG4gR2lsbW9yZS4gIFRoZQorK2luZm9ybWF0aW9uIG9u IHRoZSBgZicgcHJvdG9jb2wgY29tZXMgZnJvbSB0aGUgc291cmNlIGNvZGUgYnkgUGlldAorK0Jl cnRlZW1hLiAgVGhlIGluZm9ybWF0aW9uIG9uIHRoZSBgdCcgcHJvdG9jb2wgY29tZXMgZnJvbSB0 aGUgc291cmNlCisrY29kZSBieSBSaWNrIEFkYW1zLiAgVGhlIGluZm9ybWF0aW9uIG9uIHRoZSBg ZScgcHJvdG9jb2wgY29tZXMgZnJvbSBhCisrVXNlbmV0IGFydGljbGUgYnkgTWF0dGhpYXMgVXJs aWNocy4gIFRoZSBpbmZvcm1hdGlvbiBvbiB0aGUgYGQnCisrcHJvdG9jb2wgY29tZXMgZnJvbSBK b25hdGhhbiBDbGFyaywgd2hvIGFsc28gc3VwcGxpZWQgaW5mb3JtYXRpb24gYWJvdXQKKytRRlQu ICBUaGUgVVVQbHVzIGluZm9ybWF0aW9uIGNvbWVzIHN0cmFpZ2h0IGZyb20gQ2hyaXN0b3BoZXIg Si4gQW1ibGVyLAorK29mIFVVUGx1cyBEZXZlbG9wbWVudDsgaXQgYXBwbGllcyB0byB2ZXJzaW9u IDEuNTIgYW5kIHVwIG9mIHRoZQorK3NoYXJld2FyZSB2ZXJzaW9uIG9mIFVVUGx1cyBVdGlsaXRp ZXMsIGNhbGxlZCBGU1VVQ1AgMS41MiwgYnV0IHJlZmVycmVkCisrdG8gaW4gdGhpcyBhcnRpY2xl IGFzIFVVUGx1cy4KKysKKysgICBBbHRob3VnaCB0aGVyZSBhcmUgZmV3IGJvb2tzIGFib3V0IFVV Q1AsIHRoZXJlIGFyZSBtYW55IGFib3V0CisrbmV0d29ya3MgYW5kIHByb3RvY29scyBpbiBnZW5l cmFsLiAgSSByZWNvbW1lbmQgdHdvIG5vbi10ZWNobmljYWwgYm9va3MKKyt3aGljaCBkZXNjcmli ZSB0aGUgc29ydHMgb2YgdGhpbmdzIHRoYXQgYXJlIGF2YWlsYWJsZSBvbiB0aGUgbmV0d29yazoK KytgVGhlIFdob2xlIEludGVybmV0JywgYnkgRWQgS3JvbCwgYW5kIGBaZW4gYW5kIHRoZSBBcnQg b2YgdGhlCisrSW50ZXJuZXQnLCBieSBCcmVuZGFuIFAuIEtlaG9lLiAgR29vZCB0ZWNobmljYWwg ZGlzY3Vzc2lvbnMgb2YKKytuZXR3b3JraW5nIGlzc3VlcyBjYW4gYmUgZm91bmQgaW4gYEludGVy bmV0d29ya2luZyB3aXRoIFRDUC9JUCcsIGJ5CisrRG91Z2xhcyBFLiBDb21lciBhbmQgRGF2aWQg TC4gU3RldmVucyBhbmQgaW4gYERlc2lnbiBhbmQgVmFsaWRhdGlvbiBvZgorK0NvbXB1dGVyIFBy b3RvY29scycgYnkgR2VyYXJkIEouIEhvbHptYW5uLgorKworKx8KKytGaWxlOiB1dWNwLmluZm8s ICBOb2RlOiBVVUNQIEdyYWRlcywgIE5leHQ6IFVVQ1AgTG9jayBGaWxlcywgIFByZXY6IFVVQ1Ag UHJvdG9jb2wgU291cmNlcywgIFVwOiBQcm90b2NvbHMKKysKKys2LjIgVVVDUCBHcmFkZXMKKys9 PT09PT09PT09PT09PT0KKysKKytNb2Rlcm4gVVVDUCBwYWNrYWdlcyBzdXBwb3J0IGEgcHJpb3Jp dHkgZ3JhZGUgZm9yIGVhY2ggY29tbWFuZC4gIFRoZQorK2dyYWRlcyBnZW5lcmFsbHkgcmFuZ2Ug ZnJvbSBgQScgKHRoZSBoaWdoZXN0KSB0byBgWicgZm9sbG93ZWQgYnkgYGEnIHRvCisrYHonLiAg U29tZSBVVUNQIHBhY2thZ2VzIChpbmNsdWRpbmcgVGF5bG9yIFVVQ1ApIGFsc28gc3VwcG9ydCBg MCcgdG8KKytgOScgYmVmb3JlIGBBJy4gIFNvbWUgVVVDUCBwYWNrYWdlcyBtYXkgcGVybWl0IGFu eSBBU0NJSSBjaGFyYWN0ZXIgYXMgYQorK2dyYWRlLgorKworKyAgIE9uIFVuaXgsIHRoZXNlIGdy YWRlcyBhcmUgZW5jb2RlZCBpbiB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCBmaWxlCisrY3JlYXRl ZCBieSBgdXVjcCcgb3IgYHV1eCcuICBBIGNvbW1hbmQgZmlsZSBuYW1lIGdlbmVyYWxseSBoYXMg dGhlIGZvcm0KKytgQy5ubm5uZ3Nzc3MnIHdoZXJlIGBubm5uJyBpcyB0aGUgcmVtb3RlIHN5c3Rl bSBuYW1lIGZvciB3aGljaCB0aGUKKytjb21tYW5kIGlzIHF1ZXVlZCwgYGcnIGlzIGEgc2luZ2xl IGNoYXJhY3RlciBncmFkZSwgYW5kIGBzc3NzJyBpcyBhCisrZm91ciBjaGFyYWN0ZXIgc2VxdWVu Y2UgbnVtYmVyLiAgRm9yIGV4YW1wbGUsIGEgY29tbWFuZCBmaWxlIGNyZWF0ZWQKKytmb3IgdGhl IHN5c3RlbSBgYWlycycgYXQgZ3JhZGUgYFonIG1pZ2h0IGJlIG5hbWVkIGBDLmFpcnNaMjU1MScu CisrCisrICAgVGhlIHJlbW90ZSBzeXN0ZW0gbmFtZSB3aWxsIGJlIHRydW5jYXRlZCB0byBzZXZl biBjaGFyYWN0ZXJzLCB0bworK2Vuc3VyZSB0aGF0IHRoZSBjb21tYW5kIGZpbGUgbmFtZSB3aWxs IGZpdCBpbiB0aGUgMTQgY2hhcmFjdGVyIGZpbGUKKytuYW1lIGxpbWl0IG9mIHRoZSB0cmFkaXRp b25hbCBVbml4IGZpbGUgc3lzdGVtLiAgVVVDUCBwYWNrYWdlcyB3aGljaAorK2hhdmUgbm8gb3Ro ZXIgbWVhbnMgb2YgZGlzdGluZ3Vpc2hpbmcgd2hpY2ggY29tbWFuZCBmaWxlcyBhcmUgaW50ZW5k ZWQKKytmb3Igd2hpY2ggc3lzdGVtcyB0aHVzIHJlcXVpcmUgYWxsIHN5c3RlbXMgdGhleSBjb25u ZWN0IHRvIHRvIGhhdmUKKytuYW1lcyB0aGF0IGFyZSB1bmlxdWUgaW4gdGhlIGZpcnN0IHNldmVu IGNoYXJhY3RlcnMuICBTb21lIFVVQ1AKKytwYWNrYWdlcyB1c2UgYSB2YXJpYW50IG9mIHRoaXMg Zm9ybWF0IHdoaWNoIHRydW5jYXRlcyB0aGUgc3lzdGVtIG5hbWUKKyt0byBzaXggY2hhcmFjdGVy cy4gIEhEQiBhbmQgVGF5bG9yIFVVQ1AgdXNlIGEgZGlmZmVyZW50IHNwb29sIGRpcmVjdG9yeQor K2Zvcm1hdCwgd2hpY2ggYWxsb3dzIHVwIHRvIGZvdXJ0ZWVuIGNoYXJhY3RlcnMgdG8gYmUgdXNl ZCBmb3IgZWFjaAorK3N5c3RlbSBuYW1lLgorKworKyAgIFRoZSBzZXF1ZW5jZSBudW1iZXIgaW4g dGhlIGNvbW1hbmQgZmlsZSBuYW1lIG1heSBiZSBhIGRlY2ltYWwKKytpbnRlZ2VyLCBvciBpdCBt YXkgYmUgYSBoZXhhZGVjaW1hbCBpbnRlZ2VyLCBvciBpdCBtYXkgY29udGFpbiBhbnkKKythbHBo YW51bWVyaWMgY2hhcmFjdGVyLiAgRGlmZmVyZW50IFVVQ1AgcGFja2FnZXMgYXJlIGRpZmZlcmVu dC4gIFRheWxvcgorK1VVQ1AgdXNlcyBhbnkgYWxwaGFudW1lcmljIGNoYXJhY3Rlci4KKysKKysg ICBVVVBsdXMgVXRpbGl0aWVzIChhcyBGU1VVQ1AsIGEgc2hhcmV3YXJlIERPUyBiYXNlZCBVVUNQ IGFuZCBuZXdzCisrcGFja2FnZSkgdXNlcyB1cCB0byA4IGNoYXJhY3RlcnMgZm9yIGZpbGUgbmFt ZXMgaW4gdGhlIHNwb29sICh0aGlzIGlzIGEKKytET1MgZmlsZSBzeXN0ZW0gbGltaXRhdGlvbjsg YWN0dWFsbHksIHdpdGggdGhlIGV4dGVuc2lvbiwgMTEgY2hhcmFjdGVycworK2FyZSBhdmFpbGFi bGUsIGJ1dCBGU1VVQ1AgcmVzZXJ2ZXMgdGhhdCBmb3IgZnV0dXJlIHVzZSkuICBGU1VVQ1AKKytk ZWZhdWx0cyBtYWlsIHRvIGdyYWRlIGBEJywgYW5kIG5ld3MgdG8gZ3JhZGUgYE4nLCBleGNlcHQg dGhhdCB3aGVuIHRoZQorK2dyYWRlIG9mIGluY29taW5nIG1haWwgY2FuIGJlIGRldGVybWluZWQs IHRoYXQgZ3JhZGUgaXMgcHJlc2VydmVkIGlmCisrdGhlIG1haWwgaXMgZm9yd2FyZGVkIHRvIGFu b3RoZXIgc3lzdGVtLiBUaGUgZGVmYXVsdCBncmFkZXMgbWF5IGJlCisrY2hhbmdlZCBieSBlZGl0 aW5nIHRoZSBgTElCL01BSUxSQycgZmlsZSBmb3IgbWFpbCwgb3IgdGhlIGBVVVBMVVMuQ0ZHJwor K2ZpbGUgZm9yIG5ld3MuCisrCisrICAgVVVQQy9leHRlbmRlZCBmb3IgRE9TLCBPUy8yIGFuZCBX aW5kb3dzIE5UIGhhbmRsZXMgbWFpbCBhdCBncmFkZQorK2BDJywgbmV3cyBhdCBncmFkZSBgZCcs IGFuZCBmaWxlIHRyYW5zZmVycyBhdCBncmFkZSBgbicuICBUaGUKKytVVVBDL2V4dGVuZGVkIGBV VUNQJyBhbmQgYFJNQUlMJyBjb21tYW5kcyBhY2NlcHQgZ3JhZGVzIHRvIG92ZXJyaWRlIHRoZQor K2RlZmF1bHQsIHRoZSBvdGhlcnMgZG8gbm90LgorKworKyAgIEkgZG8gbm90IGtub3cgaG93IGNv bW1hbmQgZ3JhZGVzIGFyZSBoYW5kbGVkIGluIG90aGVyIG5vbi1Vbml4IFVVQ1AKKytwYWNrYWdl cy4KKysKKysgICBNb2Rlcm4gVVVDUCBwYWNrYWdlcyBhbGxvdyB5b3UgdG8gcmVzdHJpY3QgZmls ZSB0cmFuc2ZlciBieSBncmFkZQorK2RlcGVuZGluZyBvbiB0aGUgdGltZSBvZiBkYXkuICBUeXBp Y2FsbHkgdGhpcyBpcyBkb25lIHdpdGggYSBsaW5lIGluCisrdGhlIGBTeXN0ZW1zJyAob3IgYEwu c3lzJykgZmlsZSBsaWtlIHRoaXM6CisrICAgICAgICAgYWlycyBBbnkvWixBbnkyMzA1LTA4NTUg Li4uCisrICAgVGhpcyBhbGxvd3MgZ3JhZGVzIGBaJyBhbmQgYWJvdmUgdG8gYmUgdHJhbnNmZXJy ZWQgYXQgYW55IHRpbWUuCisrTG93ZXIgZ3JhZGVzIG1heSBvbmx5IGJlIHRyYW5zZmVycmVkIGF0 IG5pZ2h0LiAgSSBiZWxpZXZlIHRoYXQgdGhpcworK2dyYWRlIHJlc3RyaWN0aW9uIGFwcGxpZXMg dG8gbG9jYWwgY29tbWFuZHMgYXMgd2VsbCBhcyB0byByZW1vdGUKKytjb21tYW5kcywgYnV0IEkg YW0gbm90IHN1cmUuICBJdCBtYXkgb25seSBhcHBseSBpZiB0aGUgVVVDUCBwYWNrYWdlCisrcGxh Y2VzIHRoZSBjYWxsLCBub3QgaWYgaXQgaXMgY2FsbGVkIGJ5IHRoZSByZW1vdGUgc3lzdGVtLgor KworKyAgIFRheWxvciBVVUNQIGNhbiB1c2UgdGhlIGB0aW1lZ3JhZGUnIGFuZCBgY2FsbC10aW1l Z3JhZGUnIGNvbW1hbmRzIHRvCisrYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3QuICAqTm90ZSBXaGVu IHRvIENhbGw6Oi4gIEl0IHN1cHBvcnRzIHRoZSBhYm92ZQorK2Zvcm1hdCB3aGVuIHJlYWRpbmcg YFN5c3RlbXMnIG9yIGBMLnN5cycuCisrCisrICAgVVVQQy9leHRlbmRlZCBwcm92aWRlcyB0aGUg YHN5bW1ldHJpY2dyYWRlcycgb3B0aW9uIHRvIGFubm91bmNlIHRoZQorK2N1cnJlbnQgZ3JhZGUg aW4gZWZmZWN0IHdoZW4gY2FsbGluZyB0aGUgcmVtb3RlIHN5c3RlbS4KKysKKysgICBVVVBsdXMg YWxsb3dzIHNwZWNpZmljYXRpb24gb2YgdGhlIGhpZ2hlc3QgZ3JhZGUgYWNjZXB0ZWQgb24gYQor K3Blci1jYWxsIGJhc2lzIHdpdGggdGhlIGAtZycgb3B0aW9uIGluIGBVVUNJQ08nLgorKworKyAg IFRoaXMgc29ydCBvZiBncmFkZSByZXN0cmljdGlvbiBpcyBtb3N0IHVzZWZ1bCBpZiB5b3Uga25v dyB3aGF0IGdyYWRlcworK2FyZSBiZWluZyB1c2VkIGF0IHRoZSByZW1vdGUgc2l0ZS4gIFRoZSBk ZWZhdWx0IGdyYWRlcyB1c2VkIGRlcGVuZCBvbgorK3RoZSBVVUNQIHBhY2thZ2UuICBHZW5lcmFs bHkgYHV1Y3AnIGFuZCBgdXV4JyBoYXZlIGRpZmZlcmVudCBkZWZhdWx0cy4KKytBIHBhcnRpY3Vs YXIgZ3JhZGUgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZSBgLWcnIG9wdGlvbiB0byBgdXVjcCcg b3IKKytgdXV4Jy4gIEZvciBleGFtcGxlLCB0byByZXF1ZXN0IGV4ZWN1dGlvbiBvZiBgcm5ld3Mn IG9uIGBhaXJzJyB3aXRoCisrZ3JhZGUgYGQnLCB5b3UgbWlnaHQgdXNlIHNvbWV0aGluZyBsaWtl CisrICAgICAgICAgdXV4IC1nZCAtIGFpcnMhcm5ld3MgPCBhcnRpY2xlCisrCisrICAgVXVuZXQg cXVldWVzIHVwIG1haWwgYXQgZ3JhZGUgYEMnLCBidXQgaW5jcmVhc2VzIHRoZSBncmFkZSBiYXNl ZCBvbgorK3RoZSBzaXplLiAgTmV3cyBpcyBxdWV1ZWQgYXQgZ3JhZGUgYGQnLCBhbmQgZmlsZSB0 cmFuc2ZlcnMgYXQgZ3JhZGUKKytgbicuICBUaGUgZXhhbXBsZSBhYm92ZSB3b3VsZCBhbGxvdyBt YWlsIChiZWxvdyBzb21lIGxhcmdlIHNpemUpIHRvIGJlCisrcmVjZWl2ZWQgYXQgYW55IHRpbWUs IGJ1dCB3b3VsZCBvbmx5IHBlcm1pdCBuZXdzIHRvIGJlIHRyYW5zZmVycmVkIGF0CisrbmlnaHQu CisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IFVVQ1AgTG9jayBGaWxlcywgIE5leHQ6 IEV4ZWN1dGlvbiBGaWxlIEZvcm1hdCwgIFByZXY6IFVVQ1AgR3JhZGVzLCAgVXA6IFByb3RvY29s cworKworKzYuMyBVVUNQIExvY2sgRmlsZXMKKys9PT09PT09PT09PT09PT09PT09CisrCisrVGhp cyBkaXNjdXNzaW9uIGFwcGxpZXMgb25seSB0byBVbml4LiAgSSBoYXZlIG5vIGlkZWEgaG93IFVV Q1AgbG9ja3MKKytwb3J0cyBvbiBvdGhlciBzeXN0ZW1zLgorKworKyAgIFVVQ1AgY3JlYXRlcyBm aWxlcyB0byBsb2NrIHNlcmlhbCBwb3J0cyBhbmQgc3lzdGVtcy4gIE9uIG1vc3QsIGlmIG5vdAor K2FsbCwgc3lzdGVtcywgdGhlc2Ugc2FtZSBsb2NrIGZpbGVzIGFyZSBhbHNvIHVzZWQgYnkgYGN1 JyB0byBjb29yZGluYXRlCisrYWNjZXNzIHRvIHNlcmlhbCBwb3J0cy4gIE9uIHNvbWUgc3lzdGVt cyBgZ2V0dHknIGFsc28gdXNlcyB0aGVzZSBsb2NrCisrZmlsZXMsIG9mdGVuIHVuZGVyIHRoZSBu YW1lIGB1dWdldHR5Jy4KKysKKysgICBUaGUgbG9jayBmaWxlIG5vcm1hbGx5IGNvbnRhaW5zIHRo ZSBwcm9jZXNzIElEIG9mIHRoZSBsb2NraW5nCisrcHJvY2Vzcy4gIFRoaXMgbWFrZXMgaXQgZWFz eSB0byBkZXRlcm1pbmUgd2hldGhlciBhIGxvY2sgaXMgc3RpbGwKKyt2YWxpZC4gIFRoZSBhbGdv cml0aG0gaXMgdG8gY3JlYXRlIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHRoZW4gbGluayBpdCB0bwor K3RoZSBuYW1lIHRoYXQgbXVzdCBiZSBsb2NrZWQuICBJZiB0aGUgbGluayBmYWlscyBiZWNhdXNl IGEgZmlsZSB3aXRoCisrdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzLCB0aGUgZXhpc3RpbmcgZmls ZSBpcyByZWFkIHRvIGdldCB0aGUgcHJvY2VzcworK0lELiAgSWYgdGhlIHByb2Nlc3Mgc3RpbGwg ZXhpc3RzLCB0aGUgbG9jayBhdHRlbXB0IGZhaWxzLiAgT3RoZXJ3aXNlCisrdGhlIGxvY2sgZmls ZSBpcyBkZWxldGVkIGFuZCB0aGUgbG9ja2luZyBhbGdvcml0aG0gaXMgcmV0cmllZC4KKysKKysg ICBPbGRlciBVVUNQIHBhY2thZ2VzIHB1dCB0aGUgbG9jayBmaWxlcyBpbiB0aGUgbWFpbiBVVUNQ IHNwb29sCisrZGlyZWN0b3J5LCBgL3Vzci9zcG9vbC91dWNwJy4gIEhEQiBVVUNQIGdlbmVyYWxs eSBwdXRzIHRoZSBsb2NrIGZpbGVzCisraW4gYSBkaXJlY3Rvcnkgb2YgdGhlaXIgb3duLCB1c3Vh bGx5IGAvdXNyL3Nwb29sL2xvY2tzJyBvciBgL2V0Yy9sb2NrcycuCisrCisrICAgVGhlIG9yaWdp bmFsIFVVQ1AgbG9jayBmaWxlIGZvcm1hdCBlbmNvZGVzIHRoZSBwcm9jZXNzIElEIGFzIGEgZm91 cgorK2J5dGUgYmluYXJ5IG51bWJlci4gIFRoZSBvcmRlciBvZiB0aGUgYnl0ZXMgaXMgaG9zdC1k ZXBlbmRlbnQuICBIREIgVVVDUAorK3N0b3JlcyB0aGUgcHJvY2VzcyBJRCBhcyBhIHRlbiBieXRl IEFTQ0lJIGRlY2ltYWwgbnVtYmVyLCB3aXRoIGEKKyt0cmFpbGluZyBuZXdsaW5lLiAgRm9yIGV4 YW1wbGUsIGlmIHByb2Nlc3MgMTU3MCBob2xkcyBhIGxvY2sgZmlsZSwgaXQKKyt3b3VsZCBjb250 YWluIHRoZSBlbGV2ZW4gY2hhcmFjdGVycyBzcGFjZSwgc3BhY2UsIHNwYWNlLCBzcGFjZSwgc3Bh Y2UsCisrc3BhY2UsIG9uZSwgZml2ZSwgc2V2ZW4sIHplcm8sIG5ld2xpbmUuICBTb21lIHZlcnNp b25zIG9mIFVVQ1AgYWRkIGEKKytzZWNvbmQgbGluZSBpbmRpY2F0aW5nIHdoaWNoIHByb2dyYW0g Y3JlYXRlZCB0aGUgbG9jayAoYHV1Y3AnLCBgY3UnLCBvcgorK2BnZXR0eS91dWdldHR5JykuICBJ IGhhdmUgYWxzbyBzZWVuIGEgdGhpcmQgdHlwZSBvZiBVVUNQIGxvY2sgZmlsZQorK3doaWNoIGRv ZXMgbm90IGNvbnRhaW4gdGhlIHByb2Nlc3MgSUQgYXQgYWxsLgorKworKyAgIFRoZSBuYW1lIG9m IHRoZSBsb2NrIGZpbGUgaXMgdHJhZGl0aW9uYWxseSBgTENLLi4nIGZvbGxvd2VkIGJ5IHRoZQor K2Jhc2UgbmFtZSBvZiB0aGUgZGV2aWNlLiAgRm9yIGV4YW1wbGUsIHRvIGxvY2sgYC9kZXYvdHR5 ZDAnIHRoZSBmaWxlCisrYExDSy4udHR5ZDAnIHdvdWxkIGJlIGNyZWF0ZWQuICBPbiBTQ08gVW5p eCwgdGhlIGxhc3QgbGV0dGVyIG9mIHRoZQorK2xvY2sgZmlsZSBuYW1lIGlzIGFsd2F5cyBmb3Jj ZWQgdG8gbG93ZXIgY2FzZSBldmVuIGlmIHRoZSBkZXZpY2UgbmFtZQorK2VuZHMgd2l0aCBhbiB1 cHBlciBjYXNlIGxldHRlci4KKysKKysgICBTeXN0ZW0gViBSZWxlYXNlIDQgVVVDUCBuYW1lcyB0 aGUgbG9jayBmaWxlIHVzaW5nIHRoZSBtYWpvciBhbmQgbWlub3IKKytkZXZpY2UgbnVtYmVycyBy YXRoZXIgdGhhbiB0aGUgZGV2aWNlIG5hbWUuICBUaGUgZmlsZSBpcyBuYW1lZAorK2BMSy5YWFgu WVlZLlpaWicsIHdoZXJlIFhYWCwgWVlZIGFuZCBaWlogYXJlIGFsbCB0aHJlZSBkaWdpdCBkZWNp bWFsCisrbnVtYmVycy4gIFhYWCBpcyB0aGUgbWFqb3IgZGV2aWNlIG51bWJlciBvZiB0aGUgZGV2 aWNlIGhvbGRpbmcgdGhlCisrZGlyZWN0b3J5IGhvbGRpbmcgdGhlIGRldmljZSBmaWxlIChlLmcu LCBgL2RldicpLiAgWVlZIGlzIHRoZSBtYWpvcgorK2RldmljZSBudW1iZXIgb2YgdGhlIGRldmlj ZSBmaWxlIGl0c2VsZi4gIFpaWiBpcyB0aGUgbWlub3IgZGV2aWNlCisrbnVtYmVyIG9mIHRoZSBk ZXZpY2UgZmlsZSBpdHNlbGYuICBJZiBgcycgaG9sZHMgdGhlIHJlc3VsdCBvZiBwYXNzaW5nCisr dGhlIGRldmljZSB0byB0aGUgc3RhdCBzeXN0ZW0gY2FsbCAoZS5nLiwgYHN0YXQgKCIvZGV2L3R0 eWQwIiwgJnMpJyksCisrdGhlIGZvbGxvd2luZyBsaW5lIG9mIEMgY29kZSB3aWxsIHByaW50IG91 dCB0aGUgY29ycmVzcG9uZGluZyBsb2NrIGZpbGUKKytuYW1lOgorKyAgICAgICAgIHByaW50ZiAo IkxLLiUwM2QuJTAzZC4lMDNkIiwgbWFqb3IgKHMuc3RfZGV2KSwKKysgICAgICAgICAgICAgICAg IG1ham9yIChzLnN0X3JkZXYpLCBtaW5vciAocy5zdF9yZGV2KSk7CisrICAgVGhlIGFkdmFudGFn ZSBvZiB0aGlzIHN5c3RlbSBpcyB0aGF0IGV2ZW4gaWYgdGhlcmUgYXJlIHNldmVyYWwgbGlua3MK Kyt0byB0aGUgc2FtZSBkZXZpY2UsIHRoZXkgd2lsbCBhbGwgdXNlIHRoZSBzYW1lIGxvY2sgZmls ZSBuYW1lLgorKworKyAgIFdoZW4gdHdvIG9yIG1vcmUgaW5zdGFuY2VzIG9mIGB1dXhxdCcgYXJl IGV4ZWN1dGluZywgc29tZSBzb3J0IG9mCisrbG9ja2luZyBpcyBuZWVkZWQgdG8gZW5zdXJlIHRo YXQgYSBzaW5nbGUgZXhlY3V0aW9uIGpvYiBpcyBvbmx5IHN0YXJ0ZWQKKytvbmNlLiAgSSBkb24n dCBrbm93IGhvdyBtb3N0IFVVQ1AgcGFja2FnZXMgZGVhbCB3aXRoIHRoaXMuICBUYXlsb3IgVVVD UAorK3VzZXMgYSBsb2NrIGZpbGUgZm9yIGVhY2ggZXhlY3V0aW9uIGpvYi4gIFRoZSBuYW1lIG9m IHRoZSBsb2NrIGZpbGUgaXMKKyt0aGUgc2FtZSBhcyB0aGUgbmFtZSBvZiB0aGUgYFguKicgZmls ZSwgZXhjZXB0IHRoYXQgdGhlIGluaXRpYWwgYFgnIGlzCisrY2hhbmdlZCB0byBhbiBgTCcuICBU aGUgbG9jayBmaWxlIGhvbGRzIHRoZSBwcm9jZXNzIElEIGFzIGRlc2NyaWJlZAorK2Fib3ZlLgor KworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBFeGVjdXRpb24gRmlsZSBGb3JtYXQsICBO ZXh0OiBVVUNQIFByb3RvY29sLCAgUHJldjogVVVDUCBMb2NrIEZpbGVzLCAgVXA6IFByb3RvY29s cworKworKzYuNCBFeGVjdXRpb24gRmlsZSBGb3JtYXQKKys9PT09PT09PT09PT09PT09PT09PT09 PT09CisrCisrVVVDUCBgWC4qJyBmaWxlcyBjb250cm9sIHByb2dyYW0gZXhlY3V0aW9uLiAgVGhl eSBhcmUgY3JlYXRlZCBieSBgdXV4Jy4KKytUaGV5IGFyZSB0cmFuc2ZlcnJlZCBiZXR3ZWVuIHN5 c3RlbXMganVzdCBsaWtlIGFueSBvdGhlciBmaWxlLiAgVGhlCisrYHV1eHF0JyBkYWVtb24gcmVh ZHMgdGhlbSB0byBmaWd1cmUgb3V0IGhvdyB0byBleGVjdXRlIHRoZSBqb2IKKytyZXF1ZXN0ZWQg YnkgYHV1eCcuCisrCisrICAgQW4gYFguKicgZmlsZSBpcyBzaW1wbHkgYSB0ZXh0IGZpbGUuICBU aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGVhY2gKKytsaW5lIGlzIGEgY29tbWFuZCwgYW5kIHRoZSBy ZW1haW5kZXIgb2YgdGhlIGxpbmUgc3VwcGxpZXMgYXJndW1lbnRzLgorK1RoZSBmb2xsb3dpbmcg Y29tbWFuZHMgYXJlIGRlZmluZWQ6CisrCisrYEMgY29tbWFuZCcKKysgICAgIFRoaXMgZ2l2ZXMg dGhlIGNvbW1hbmQgdG8gZXhlY3V0ZSwgaW5jbHVkaW5nIHRoZSBwcm9ncmFtIGFuZCBhbGwKKysg ICAgIGFyZ3VtZW50cy4gIEZvciBleGFtcGxlLCBgcm1haWwgaWFuQGFpcnMuY29tJy4KKysKKytg VSB1c2VyIHN5c3RlbScKKysgICAgIFRoaXMgbmFtZXMgdGhlIHVzZXIgd2hvIHJlcXVlc3RlZCB0 aGUgY29tbWFuZCwgYW5kIHRoZSBzeXN0ZW0gZnJvbQorKyAgICAgd2hpY2ggdGhlIHJlcXVlc3Qg Y2FtZS4KKysKKytgSSBzdGFuZGFyZC1pbnB1dCcKKysgICAgIFRoaXMgbmFtZXMgdGhlIGZpbGUg ZnJvbSB3aGljaCBzdGFuZGFyZCBpbnB1dCBpcyB0YWtlbi4gIElmIG5vCisrICAgICBzdGFuZGFy ZCBpbnB1dCBmaWxlIGlzIGdpdmVuLCB0aGUgc3RhbmRhcmQgaW5wdXQgd2lsbCBwcm9iYWJseSBi ZQorKyAgICAgYXR0YWNoZWQgdG8gYC9kZXYvbnVsbCcuICBJZiB0aGUgc3RhbmRhcmQgaW5wdXQg ZmlsZSBpcyBub3QgZnJvbQorKyAgICAgdGhlIHN5c3RlbSBvbiB3aGljaCB0aGUgZXhlY3V0aW9u IGlzIHRvIG9jY3VyLCBpdCB3aWxsIGFsc28gYXBwZWFyCisrICAgICBpbiBhbiBgRicgY29tbWFu ZC4KKysKKytgTyBzdGFuZGFyZC1vdXRwdXQgW3N5c3RlbV0nCisrICAgICBUaGlzIG5hbWVzIHRo ZSBzdGFuZGFyZCBvdXRwdXQgZmlsZS4gIFRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQKKysg ICAgIG5hbWVzIHRoZSBzeXN0ZW0gdG8gd2hpY2ggdGhlIGZpbGUgc2hvdWxkIGJlIHNlbnQuICBJ ZiB0aGVyZSBpcyBubworKyAgICAgc2Vjb25kIGFyZ3VtZW50LCB0aGUgZmlsZSBzaG91bGQgYmUg Y3JlYXRlZCBvbiB0aGUgZXhlY3V0aW5nCisrICAgICBzeXN0ZW0uCisrCisrYEYgcmVxdWlyZWQt ZmlsZSBbZmlsZW5hbWUtdG8tdXNlXScKKysgICAgIFRoZSBgRicgY29tbWFuZCBjYW4gYXBwZWFy IG11bHRpcGxlIHRpbWVzLiAgRWFjaCBgRicgY29tbWFuZCBuYW1lcworKyAgICAgYSBmaWxlIHdo aWNoIG11c3QgZXhpc3QgYmVmb3JlIHRoZSBleGVjdXRpb24gY2FuIHByb2NlZWQuICBUaGlzCisr ICAgICB3aWxsIHVzdWFsbHkgYmUgYSBmaWxlIHdoaWNoIGlzIHRyYW5zZmVycmVkIGZyb20gdGhl IHN5c3RlbSBvbgorKyAgICAgd2hpY2ggYHV1eCcgd2FzIGV4ZWN1dGVkLCBidXQgaXQgY2FuIGFs c28gYmUgYSBmaWxlIGZyb20gdGhlIGxvY2FsCisrICAgICBzeXN0ZW0gb3Igc29tZSBvdGhlciBz eXN0ZW0uICBJZiB0aGUgZmlsZSBpcyBub3QgZnJvbSB0aGUgbG9jYWwKKysgICAgIHN5c3RlbSwg dGhlbiB0aGUgY29tbWFuZCB3aWxsIHVzdWFsbHkgbmFtZSBhIGZpbGUgaW4gdGhlIHNwb29sCisr ICAgICBkaXJlY3RvcnkuICBJZiB0aGUgb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IGFwcGVhcnMs IHRoZW4gdGhlIGZpbGUKKysgICAgIHNob3VsZCBiZSBjb3BpZWQgdG8gdGhlIGV4ZWN1dGlvbiBk aXJlY3RvcnkgdW5kZXIgdGhhdCBuYW1lLiAgVGhpcworKyAgICAgaXMgbmVjZXNzYXJ5IGZvciBh bnkgZmlsZSBvdGhlciB0aGFuIHRoZSBzdGFuZGFyZCBpbnB1dCBmaWxlLiAgSWYKKysgICAgIHRo ZSBzdGFuZGFyZCBpbnB1dCBmaWxlIGlzIG5vdCBmcm9tIHRoZSBsb2NhbCBzeXN0ZW0sIGl0IHdp bGwKKysgICAgIGFwcGVhciBpbiBib3RoIGFuIGBGJyBjb21tYW5kIGFuZCBhbiBgSScgY29tbWFu ZC4KKysKKytgUiByZXF1ZXN0b3ItYWRkcmVzcycKKysgICAgIFRoaXMgaXMgdGhlIGFkZHJlc3Mg dG8gd2hpY2ggbWFpbCBhYm91dCB0aGUgam9iIHNob3VsZCBiZSBzZW50LgorKyAgICAgSXQgaXMg cmVsYXRpdmUgdG8gdGhlIHN5c3RlbSBuYW1lZCBpbiB0aGUgYFUnIGNvbW1hbmQuICBJZiB0aGUg YFInCisrICAgICBjb21tYW5kIGRvZXMgbm90IGFwcGVhciwgdGhlbiBtYWlsIGlzIHNlbnQgdG8g dGhlIHVzZXIgbmFtZWQgaW4gdGhlCisrICAgICBgVScgY29tbWFuZC4KKysKKytgWicKKysgICAg IFRoaXMgY29tbWFuZCB0YWtlcyBubyBhcmd1bWVudHMuICBJdCBtZWFucyB0aGF0IGEgbWFpbCBt ZXNzYWdlCisrICAgICBzaG91bGQgYmUgc2VudCBpZiB0aGUgY29tbWFuZCBmYWlsZWQuICBUaGlz IGlzIHRoZSBkZWZhdWx0CisrICAgICBiZWhhdmlvdXIgZm9yIG1vc3QgbW9kZXJuIFVVQ1AgcGFj a2FnZXMsIGFuZCBmb3IgdGhlbSB0aGUgYFonCisrICAgICBjb21tYW5kIGRvZXMgbm90IGFjdHVh bGx5IGRvIGFueXRoaW5nLgorKworK2BOJworKyAgICAgVGhpcyBjb21tYW5kIHRha2VzIG5vIGFy Z3VtZW50cy4gIEl0IG1lYW5zIHRoYXQgbm8gbWFpbCBtZXNzYWdlCisrICAgICBzaG91bGQgYmUg c2VudCwgZXZlbiBpZiB0aGUgY29tbWFuZCBmYWlsZWQuCisrCisrYG4nCisrICAgICBUaGlzIGNv bW1hbmQgdGFrZXMgbm8gYXJndW1lbnRzLiAgSXQgbWVhbnMgdGhhdCBhIG1haWwgbWVzc2FnZQor KyAgICAgc2hvdWxkIGJlIHNlbnQgaWYgdGhlIGNvbW1hbmQgc3VjY2VlZGVkLiAgTm9ybWFsbHkg YSBtZXNzYWdlIGlzCisrICAgICBzZW50IG9ubHkgaWYgdGhlIGNvbW1hbmQgZmFpbGVkLgorKwor K2BCJworKyAgICAgVGhpcyBjb21tYW5kIHRha2VzIG5vIGFyZ3VtZW50cy4gIEl0IG1lYW5zIHRo YXQgdGhlIHN0YW5kYXJkIGlucHV0CisrICAgICBzaG91bGQgYmUgcmV0dXJuZWQgd2l0aCBhbnkg ZXJyb3IgbWVzc2FnZS4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBpbgorKyAgICAgY2FzZXMgd2hlcmUg dGhlIGlucHV0IHdvdWxkIG90aGVyd2lzZSBiZSBsb3N0LgorKworK2BlJworKyAgICAgVGhpcyBj b21tYW5kIHRha2VzIG5vIGFyZ3VtZW50cy4gIEl0IG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgc2hv dWxkCisrICAgICBiZSBwcm9jZXNzZWQgd2l0aCBgL2Jpbi9zaCcuICBGb3Igc29tZSBwYWNrYWdl cyB0aGlzIGlzIHRoZSBkZWZhdWx0CisrICAgICBhbnlob3cuICBNb3N0IHBhY2thZ2VzIHdpbGwg cmVmdXNlIHRvIGV4ZWN1dGUgY29tcGxleCBjb21tYW5kcyBvcgorKyAgICAgY29tbWFuZHMgY29u dGFpbmluZyB3aWxkY2FyZHMsIGJlY2F1c2Ugb2YgdGhlIHNlY3VyaXR5IGhvbGVzIHRoaXMKKysg ICAgIG9wZW5zLgorKworK2BFJworKyAgICAgVGhpcyBjb21tYW5kIHRha2VzIG5vIGFyZ3VtZW50 cy4gIEl0IG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgc2hvdWxkCisrICAgICBiZSBwcm9jZXNzZWQg d2l0aCB0aGUgYGV4ZWN2ZScgc3lzdGVtIGNhbGwuICBGb3Igc29tZSBwYWNrYWdlcworKyAgICAg dGhpcyBpcyB0aGUgZGVmYXVsdCBhbnlob3cuCisrCisrYE0gc3RhdHVzLWZpbGUnCisrICAgICBU aGlzIGNvbW1hbmQgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIG1haWxpbmcgYSBtZXNzYWdlLCB0aGUg bWVzc2FnZQorKyAgICAgc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgbmFtZWQgZmlsZSBvbiB0aGUg c3lzdGVtIG5hbWVkIGJ5IHRoZSBgVScKKysgICAgIGNvbW1hbmQuCisrCisrYFEnCisrICAgICBU aGlzIGNvbW1hbmQgdGFrZXMgbm8gYXJndW1lbnRzLiAgSXQgbWVhbnMgdGhhdCB0aGUgc3RyaW5n CisrICAgICBhcmd1bWVudHMgdG8gYWxsIHRoZSBvdGhlciBjb21tYW5kcyBhcmUgYmFja3NsYXNo IHF1b3RlZC4gIEFueQorKyAgICAgYmFja3NsYXNoIGluIG9uZSBvZiB0aGUgc3RyaW5ncyBzaG91 bGQgYmUgZm9sbG93ZWQgYnkgZWl0aGVyIGEKKysgICAgIGJhY2tzbGFzaCBvciB0aHJlZSBvY3Rh bCBkaWdpdHMuICBUaGUgYmFja3NsYXNoIHF1b3RpbmcgaXMKKysgICAgIGludGVycHJldGVkIGFz IGluIGEgQyBzdHJpbmcuICBJZiB0aGUgYFEnIGNvbW1hbmQgZG9lcyBub3QgYXBwZWFyLAorKyAg ICAgYmFja3NsYXNoZXMgaW4gdGhlIHN0cmluZ3MgYXJlIG5vdCB0cmVhdGVkIHNwZWNpYWxseS4g IFRoZSBgUScKKysgICAgIGNvbW1hbmQgd2FzIGludHJvZHVjZWQgaW4gVGF5bG9yIFVVQ1AgdmVy c2lvbiAxLjA3LgorKworK2AjIGNvbW1lbnQnCisrICAgICBUaGlzIGNvbW1hbmQgaXMgaWdub3Jl ZCwgYXMgaXMgYW55IG90aGVyIHVucmVjb2duaXplZCBjb21tYW5kLgorKworKyAgIEhlcmUgaXMg YW4gZXhhbXBsZS4gIEdpdmVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBleGVjdXRlZCBvbiBzeXN0 ZW0KKyt0ZXN0MQorKyAgICAgICAgIHV1eCAtIHRlc3QyIWNhdCAtIHRlc3QyIX5pYW4vYmFyICFx dXggJz5+L2dvcnAnCisrICAgKHRoaXMgaXMgb25seSBhbiBleGFtcGxlLCBhcyBtb3N0IFVVQ1Ag c3lzdGVtcyB3aWxsIG5vdCBwZXJtaXQgdGhlCisrY2F0IGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQp IFRheWxvciBVVUNQIHdpbGwgcHJvZHVjZSBzb21ldGhpbmcgbGlrZSB0aGUKKytmb2xsb3dpbmcg YFguJyAgZmlsZToKKysgICAgIFUgaWFuIHRlc3QxCisrICAgICBGIEQudGVzdDFOMDAzciBxdXgK KysgICAgIE8gL3Vzci9zcG9vbC91dWNwcHVibGljL2dvcnAgdGVzdDEKKysgICAgIEYgRC50ZXN0 MU4wMDNzCisrICAgICBJIEQudGVzdDFOMDAzcworKyAgICAgQyBjYXQgLSB+aWFuL2JhciBxdXgK KysgICBUaGUgc3RhbmRhcmQgaW5wdXQgd2lsbCBiZSByZWFkIGludG8gYSBmaWxlIGFuZCB0aGVu IHRyYW5zZmVycmVkIHRvCisrdGhlIGZpbGUgYEQudGVzdDFOMDAzcycgb24gc3lzdGVtIGB0ZXN0 MicuICBUaGUgZmlsZSBgcXV4JyB3aWxsIGJlCisrdHJhbnNmZXJyZWQgdG8gYEQudGVzdDFOMDAz cicgb24gc3lzdGVtIGB0ZXN0MicuICBXaGVuIHRoZSBjb21tYW5kIGlzCisrZXhlY3V0ZWQsIHRo ZSBsYXR0ZXIgZmlsZSB3aWxsIGJlIGNvcGllZCB0byB0aGUgZXhlY3V0aW9uIGRpcmVjdG9yeQor K3VuZGVyIHRoZSBuYW1lIGBxdXgnLiAgTm90ZSB0aGF0IHNpbmNlIHRoZSBmaWxlIGB+aWFuL2Jh cicgaXMgYWxyZWFkeQorK29uIHRoZSBleGVjdXRpb24gc3lzdGVtLCBubyBhY3Rpb24gbmVlZCBi ZSB0YWtlbiBmb3IgaXQuICBUaGUgc3RhbmRhcmQKKytvdXRwdXQgd2lsbCBiZSBjb2xsZWN0ZWQg aW4gYSBmaWxlLCB0aGVuIGNvcGllZCB0byB0aGUgZmlsZQorK2AvdXNyL3Nwb29sL3V1Y3BwdWJs aWMvZ29ycCcgb24gdGhlIHN5c3RlbSBgdGVzdDEnLgorKworKx8KKytGaWxlOiB1dWNwLmluZm8s ICBOb2RlOiBVVUNQIFByb3RvY29sLCAgTmV4dDogZyBQcm90b2NvbCwgIFByZXY6IEV4ZWN1dGlv biBGaWxlIEZvcm1hdCwgIFVwOiBQcm90b2NvbHMKKysKKys2LjUgVVVDUCBQcm90b2NvbAorKz09 PT09PT09PT09PT09PT09CisrCisrVGhlIFVVQ1AgcHJvdG9jb2wgaXMgYSBjb252ZXJzYXRpb24g YmV0d2VlbiB0d28gVVVDUCBwYWNrYWdlcy4gIEEgVVVDUAorK2NvbnZlcnNhdGlvbiBjb25zaXN0 cyBvZiB0aHJlZSBwYXJ0czogYW4gaW5pdGlhbCBoYW5kc2hha2UsIGEgc2VyaWVzIG9mCisrZmls ZSB0cmFuc2ZlciByZXF1ZXN0cywgYW5kIGEgZmluYWwgaGFuZHNoYWtlLgorKworKyogTWVudToK KysKKysqIFRoZSBJbml0aWFsIEhhbmRzaGFrZTo6ICAgICAgIFRoZSBJbml0aWFsIEhhbmRzaGFr ZQorKyogVVVDUCBQcm90b2NvbCBDb21tYW5kczo6ICAgICAgVVVDUCBQcm90b2NvbCBDb21tYW5k cworKyogVGhlIEZpbmFsIEhhbmRzaGFrZTo6ICAgICAgICAgVGhlIEZpbmFsIEhhbmRzaGFrZQor KworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBUaGUgSW5pdGlhbCBIYW5kc2hha2UsICBO ZXh0OiBVVUNQIFByb3RvY29sIENvbW1hbmRzLCAgUHJldjogVVVDUCBQcm90b2NvbCwgIFVwOiBV VUNQIFByb3RvY29sCisrCisrNi41LjEgVGhlIEluaXRpYWwgSGFuZHNoYWtlCisrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrCisrQmVmb3JlIHRoZSBpbml0aWFsIGhhbmRzaGFrZSwgdGhl IGNhbGxlciB3aWxsIHVzdWFsbHkgaGF2ZSBsb2dnZWQgaW4gdGhlCisrY2FsbGVkIG1hY2hpbmUg YW5kIHNvbWVob3cgc3RhcnRlZCB0aGUgVVVDUCBwYWNrYWdlIHRoZXJlLiAgT24gVW5peCB0aGlz CisraXMgbm9ybWFsbHkgZG9uZSBieSBzZXR0aW5nIHRoZSBzaGVsbCBvZiB0aGUgbG9naW4gbmFt ZSB1c2VkIHRvCisrYC91c3IvbGliL3V1Y3AvdXVjaWNvJy4KKysKKysgICBBbGwgbWVzc2FnZXMg aW4gdGhlIGluaXRpYWwgaGFuZHNoYWtlIGJlZ2luIHdpdGggYSBgXlAnIChhIGJ5dGUgd2l0aAor K3RoZSBvY3RhbCB2YWx1ZSBgXDAyMCcpIGFuZCBlbmQgd2l0aCBhIG51bGwgYnl0ZSAoYFwwMDAn KS4gIEEgZmV3Cisrc3lzdGVtcyBlbmQgdGhlc2UgbWVzc2FnZXMgd2l0aCBhIGxpbmUgZmVlZCBj aGFyYWN0ZXIgKGBcMDEyJykgaW5zdGVhZAorK29mIGEgbnVsbCBieXRlOyB0aGUgZXhhbXBsZXMg YmVsb3cgYXNzdW1lIGEgbnVsbCBieXRlIGlzIGJlaW5nIHVzZWQuCisrCisrICAgU29tZSBvcHRp b25zIGJlbG93IGFyZSBzdXBwb3J0ZWQgYnkgUUZULCB3aGljaCBzdGFuZHMgZm9yIFF1ZXVlZCBG aWxlCisrVHJhbnNmZXIsIGFuZCBpcyAob3Igd2FzKSBhbiBpbnRlcm5hbCBCZWxsIExhYnMgdmVy c2lvbiBvZiBVVUNQLgorKworKyAgIFRheWxvciBVVUNQIHNpemUgbmVnb3RpYXRpb24gd2FzIGlu dHJvZHVjZWQgYnkgVGF5bG9yIFVVQ1AsIGFuZCBpcworK2Fsc28gc3VwcG9ydGVkIGJ5IERPUyBi YXNlZCBVVVBsdXMgYW5kIEFtaWdhIGJhc2VkIHdVVUNQIGFuZCBVVUNQLTEuMTcuCisrCisrICAg VGhlIGluaXRpYWwgaGFuZHNoYWtlIGdvZXMgYXMgZm9sbG93cy4gIEl0IGlzIGJlZ3VuIGJ5IHRo ZSBjYWxsZWQKKyttYWNoaW5lLgorKworK2NhbGxlZDogYFwwMjBTaGVyZT1ob3N0bmFtZVwwMDAn CisrICAgICBUaGUgaG9zdG5hbWUgaXMgdGhlIFVVQ1AgbmFtZSBvZiB0aGUgY2FsbGVkIG1hY2hp bmUuICBPbGRlciBVVUNQCisrICAgICBwYWNrYWdlcyBkbyBub3Qgb3V0cHV0IGl0LCBhbmQgc2lt cGx5IHNlbmQgYFwwMjBTaGVyZVwwMDAnLgorKworK2NhbGxlcjogYFwwMjBTaG9zdG5hbWUgb3B0 aW9uc1wwMDAnCisrICAgICBUaGUgaG9zdG5hbWUgaXMgdGhlIFVVQ1AgbmFtZSBvZiB0aGUgY2Fs bGluZyBtYWNoaW5lLiAgVGhlCisrICAgICBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYXBwZWFyIChv ciB0aGVyZSBtYXkgYmUgbm9uZSk6CisrCisrICAgIGAtUVNFUScKKysgICAgICAgICAgUmVwb3J0 IHNlcXVlbmNlIG51bWJlciBmb3IgdGhpcyBjb252ZXJzYXRpb24uICBUaGUgc2VxdWVuY2UKKysg ICAgICAgICAgbnVtYmVyIGlzIHN0b3JlZCBhdCBib3RoIHNpdGVzLCBhbmQgaW5jcmVtZW50ZWQg YWZ0ZXIgZWFjaAorKyAgICAgICAgICBjYWxsLiAgSWYgdGhlcmUgaXMgYSBzZXF1ZW5jZSBudW1i ZXIgbWlzbWF0Y2gsIHNvbWV0aGluZyBoYXMKKysgICAgICAgICAgZ29uZSB3cm9uZyAoc29tZWJv ZHkgbWF5IGhhdmUgYnJva2VuIHNlY3VyaXR5IGJ5IHByZXRlbmRpbmcKKysgICAgICAgICAgdG8g YmUgb25lIG9mIHRoZSBtYWNoaW5lcykgYW5kIHRoZSBjYWxsIGlzIGRlbmllZC4gIElmIHRoZQor KyAgICAgICAgICBzZXF1ZW5jZSBudW1iZXIgY2hhbmdlcyBvbiBvbmUgb2YgdGhlIG1hY2hpbmVz LCBwZXJoYXBzCisrICAgICAgICAgIGJlY2F1c2Ugb2YgYW4gYXR0ZW1wdGVkIGJyZWFraW4gb3Ig YmVjYXVzZSBhIGRpc2sgYmFja3VwIHdhcworKyAgICAgICAgICByZXN0b3JlZCwgdGhlIHNlcXVl bmNlIG51bWJlcnMgb24gdGhlIHR3byBtYWNoaW5lcyBtdXN0IGJlCisrICAgICAgICAgIHJlY29u Y2lsZWQgbWFudWFsbHkuCisrCisrICAgIGAteExFVkVMJworKyAgICAgICAgICBSZXF1ZXN0cyB0 aGUgY2FsbGVkIHN5c3RlbSB0byBzZXQgaXRzIGRlYnVnZ2luZyBsZXZlbCB0byB0aGUKKysgICAg ICAgICAgc3BlY2lmaWVkIHZhbHVlLiAgVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGFsbCBzeXN0 ZW1zLgorKworKyAgICBgLXBHUkFERScKKysgICAgYC12Z3JhZGU9R1JBREUnCisrICAgICAgICAg IFJlcXVlc3RzIHRoZSBjYWxsZWQgc3lzdGVtIHRvIG9ubHkgdHJhbnNmZXIgZmlsZXMgb2YgdGhl CisrICAgICAgICAgIHNwZWNpZmllZCBncmFkZSBvciBoaWdoZXIuICBUaGlzIGlzIG5vdCBzdXBw b3J0ZWQgYnkgYWxsCisrICAgICAgICAgIHN5c3RlbXMuICBTb21lIHN5c3RlbXMgc3VwcG9ydCBg LXAnLCBzb21lIHN1cHBvcnQgYC12Z3JhZGU9Jy4KKysgICAgICAgICAgVVVQbHVzIGFsbG93cyBl aXRoZXIgYC1wJyBvciBgLXYnIHRvIGJlIHNwZWNpZmllZCBvbiBhCisrICAgICAgICAgIHBlci1z eXN0ZW0gYmFzaXMgaW4gdGhlIGBTWVNURU1TJyBmaWxlIChgZ3JhZGVjaGFyJyBvcHRpb24pLgor KworKyAgICBgLVInCisrICAgICAgICAgIEluZGljYXRlcyB0aGF0IHRoZSBjYWxsaW5nIFVVQ1Ag dW5kZXJzdGFuZHMgaG93IHRvIHJlc3RhcnQKKysgICAgICAgICAgZmFpbGVkIGZpbGUgdHJhbnNt aXNzaW9ucy4gIFN1cHBvcnRlZCBvbmx5IGJ5IFN5c3RlbSBWCisrICAgICAgICAgIFJlbGVhc2Ug NCBVVUNQLCBRRlQsIGFuZCBUYXlsb3IgVVVDUC4KKysKKysgICAgYC1VTElNSVQnCisrICAgICAg ICAgIFJlcG9ydHMgdGhlIHVsaW1pdCB2YWx1ZSBvZiB0aGUgY2FsbGluZyBVVUNQLiAgVGhlIGxp bWl0IGlzCisrICAgICAgICAgIHNwZWNpZmllZCBhcyBhIGJhc2UgMTYgbnVtYmVyIGluIEMgbm90 YXRpb24gKGUuZy4sCisrICAgICAgICAgIGAtVTB4MTAwMDAwMCcpLiAgVGhpcyBudW1iZXIgaXMg dGhlIG51bWJlciBvZiA1MTIgYnl0ZSBibG9ja3MKKysgICAgICAgICAgaW4gdGhlIGxhcmdlc3Qg ZmlsZSB3aGljaCB0aGUgY2FsbGluZyBVVUNQIGNhbiBjcmVhdGUuICBUaGUKKysgICAgICAgICAg Y2FsbGVkIFVVQ1AgbWF5IG5vdCB0cmFuc2ZlciBhIGZpbGUgbGFyZ2VyIHRoYW4gdGhpcy4KKysg ICAgICAgICAgU3VwcG9ydGVkIG9ubHkgYnkgU3lzdGVtIFYgUmVsZWFzZSA0IFVVQ1AsIFFGVCBh bmQgVVVQbHVzLgorKyAgICAgICAgICBVVVBsdXMgcmVwb3J0cyB0aGUgbGVzc2VyIG9mIHRoZSBh dmFpbGFibGUgZGlzayBzcGFjZSBvbiB0aGUKKysgICAgICAgICAgc3Bvb2wgZGlyZWN0b3J5IGRy aXZlIGFuZCB0aGUgdWxpbWl0IHZhcmlhYmxlIGluCisrICAgICAgICAgIGBVVVBMVVMuQ0ZHJy4g IFRheWxvciBVVUNQIHVuZGVyc3RhbmRzIHRoaXMgb3B0aW9uLCBidXQgZG9lcworKyAgICAgICAg ICBub3QgZ2VuZXJhdGUgaXQuCisrCisrICAgIGAtTltOVU1CRVJdJworKyAgICAgICAgICBJbmRp Y2F0ZXMgdGhhdCB0aGUgY2FsbGluZyBVVUNQIHVuZGVyc3RhbmRzIHRoZSBUYXlsb3IgVVVDUAor KyAgICAgICAgICBzaXplIG5lZ290aWF0aW9uIGV4dGVuc2lvbi4gIE5vdCBzdXBwb3J0ZWQgYnkg dHJhZGl0aW9uYWwKKysgICAgICAgICAgVVVDUCBwYWNrYWdlcy4gIFN1cHBvcnRlZCBieSBVVVBs dXMuICBUaGUgb3B0aW9uYWwgbnVtYmVyIGlzCisrICAgICAgICAgIGEgYml0bWFzayBvZiBmZWF0 dXJlcyBzdXBwb3J0ZWQgYnkgdGhlIGNhbGxpbmcgVVVDUCwgYW5kIGlzCisrICAgICAgICAgIGRl c2NyaWJlZCBiZWxvdy4KKysKKytjYWxsZWQ6IGBcMDIwUk9LXDAwMCcKKysgICAgIFRoZXJlIGFy ZSBhY3R1YWxseSBzZXZlcmFsIHBvc3NpYmxlIHJlc3BvbnNlcy4KKysgICAgYFJPSycKKysgICAg ICAgICAgVGhlIGNhbGxpbmcgVVVDUCBpcyBhY2NlcHRhYmxlLCBhbmQgdGhlIGhhbmRzaGFrZSBw cm9jZWVkcyB0bworKyAgICAgICAgICB0aGUgcHJvdG9jb2wgbmVnb3RpYXRpb24uICBTb21lIG9w dGlvbnMgbWF5IGFsc28gYXBwZWFyOyBzZWUKKysgICAgICAgICAgYmVsb3cuCisrCisrICAgIGBS T0tOW05VTUJFUl0nCisrICAgICAgICAgIFRoZSBjYWxsaW5nIFVVQ1AgaXMgYWNjZXB0YWJsZSwg aXQgc3BlY2lmaWVkIGAtTicsIGFuZCB0aGUKKysgICAgICAgICAgY2FsbGVkIFVVQ1AgYWxzbyB1 bmRlcnN0YW5kcyB0aGUgVGF5bG9yIFVVQ1Agc2l6ZSBsaW1pdGluZworKyAgICAgICAgICBleHRl bnNpb25zLiAgVGhlIG9wdGlvbmFsIG51bWJlciBpcyBhIGJpdG1hc2sgb2YgZmVhdHVyZXMKKysg ICAgICAgICAgc3VwcG9ydGVkIGJ5IHRoZSBjYWxsZWQgVVVDUCwgYW5kIGlzIGRlc2NyaWJlZCBi ZWxvdy4KKysKKysgICAgYFJMQ0snCisrICAgICAgICAgIFRoZSBjYWxsZWQgVVVDUCBhbHJlYWR5 IGhhcyBhIGxvY2sgZm9yIHRoZSBjYWxsaW5nIFVVQ1AsCisrICAgICAgICAgIHdoaWNoIG5vcm1h bGx5IGluZGljYXRlcyB0aGUgdHdvIG1hY2hpbmVzIGFyZSBhbHJlYWR5CisrICAgICAgICAgIGNv bW11bmljYXRpbmcuCisrCisrICAgIGBSQ0InCisrICAgICAgICAgIFRoZSBjYWxsZWQgVVVDUCB3 aWxsIGNhbGwgYmFjay4gIFRoaXMgbWF5IGJlIHVzZWQgdG8gYXZvaWQKKysgICAgICAgICAgaW1w b3N0b3JzIChidXQgb25seSBvbmUgbWFjaGluZSBvdXQgb2YgZWFjaCBwYWlyIHNob3VsZCBjYWxs CisrICAgICAgICAgIGJhY2ssIG9yIG5vIGNvbnZlcnNhdGlvbiB3aWxsIGV2ZXIgYmVnaW4pLgor KworKyAgICBgUkJBRFNFUScKKysgICAgICAgICAgVGhlIGNhbGwgc2VxdWVuY2UgbnVtYmVyIGlz IHdyb25nIChzZWUgdGhlIGAtUScgZGlzY3Vzc2lvbgorKyAgICAgICAgICBhYm92ZSkuCisrCisr ICAgIGBSTE9HSU4nCisrICAgICAgICAgIFRoZSBjYWxsaW5nIFVVQ1AgaXMgdXNpbmcgdGhlIHdy b25nIGxvZ2luIG5hbWUuCisrCisrICAgIGBSWW91IGFyZSB1bmtub3duIHRvIG1lJworKyAgICAg ICAgICBUaGUgY2FsbGluZyBVVUNQIGlzIG5vdCBrbm93biB0byB0aGUgY2FsbGVkIFVVQ1AsIGFu ZCB0aGUKKysgICAgICAgICAgY2FsbGVkIFVVQ1AgZG9lcyBub3QgcGVybWl0IGNvbm5lY3Rpb25z IGZyb20gdW5rbm93biBzeXN0ZW1zLgorKyAgICAgICAgICBTb21lIHZlcnNpb25zIG9mIFVVQ1Ag anVzdCBkcm9wIHRoZSBsaW5lIHJhdGhlciB0aGFuIHNlbmRpbmcKKysgICAgICAgICAgdGhpcyBt ZXNzYWdlLgorKworKyAgICAgSWYgdGhlIHJlc3BvbnNlIGlzIGBST0snLCB0aGUgZm9sbG93aW5n IG9wdGlvbnMgYXJlIHN1cHBvcnRlZCBieQorKyAgICAgU3lzdGVtIFYgUmVsZWFzZSA0IFVVQ1Ag YW5kIFFGVC4KKysgICAgYC1SJworKyAgICAgICAgICBUaGUgY2FsbGVkIFVVQ1Aga25vd3MgaG93 IHRvIHJlc3RhcnQgZmFpbGVkIGZpbGUKKysgICAgICAgICAgdHJhbnNtaXNzaW9ucy4KKysKKysg ICAgYC1VTElNSVQnCisrICAgICAgICAgIFJlcG9ydHMgdGhlIHVsaW1pdCB2YWx1ZSBvZiB0aGUg Y2FsbGVkIFVVQ1AuICBUaGUgbGltaXQgaXMKKysgICAgICAgICAgc3BlY2lmaWVkIGFzIGEgYmFz ZSAxNiBudW1iZXIgaW4gQyBub3RhdGlvbi4gIFRoaXMgbnVtYmVyIGlzCisrICAgICAgICAgIHRo ZSBudW1iZXIgb2YgNTEyIGJ5dGUgYmxvY2tzIGluIHRoZSBsYXJnZXN0IGZpbGUgd2hpY2ggdGhl CisrICAgICAgICAgIGNhbGxlZCBVVUNQIGNhbiBjcmVhdGUuICBUaGUgY2FsbGluZyBVVUNQIG1h eSBub3Qgc2VuZCBhIGZpbGUKKysgICAgICAgICAgbGFyZ2VyIHRoYW4gdGhpcy4gIEFsc28gc3Vw cG9ydGVkIGJ5IFVVUGx1cy4gIFRheWxvciBVVUNQCisrICAgICAgICAgIHVuZGVyc3RhbmRzIHRo aXMgb3B0aW9uLCBidXQgZG9lcyBub3QgZ2VuZXJhdGUgaXQuCisrCisrICAgIGAteExFVkVMJwor KyAgICAgICAgICBJJ20gbm90IHN1cmUganVzdCB3aGF0IHRoaXMgbWVhbnMuICBJdCBtYXkgcmVx dWVzdCB0aGUKKysgICAgICAgICAgY2FsbGluZyBVVUNQIHRvIHNldCBpdHMgZGVidWdnaW5nIGxl dmVsIHRvIHRoZSBzcGVjaWZpZWQKKysgICAgICAgICAgdmFsdWUuCisrCisrICAgICBJZiB0aGUg cmVzcG9uc2UgaXMgbm90IGBST0snIChvciBgUk9LTicpIGJvdGggc2lkZXMgaGFuZyB1cCB0aGUK KysgICAgIHBob25lLCBhYmFuZG9uaW5nIHRoZSBjYWxsLgorKworK2NhbGxlZDogYFwwMjBQcHJv dG9jb2xzXDAwMCcKKysgICAgIE5vdGUgdGhhdCB0aGUgY2FsbGVkIFVVQ1Agb3V0cHV0cyB0d28g c3RyaW5ncyBpbiBhIHJvdy4gIFRoZQorKyAgICAgcHJvdG9jb2xzIHN0cmluZyBpcyBhIGxpc3Qg b2YgVVVDUCBwcm90b2NvbHMgc3VwcG9ydGVkIGJ5IHRoZQorKyAgICAgY2FsbGVyLiAgRWFjaCBV VUNQIHByb3RvY29sIGhhcyBhIHNpbmdsZSBjaGFyYWN0ZXIgbmFtZS4gIFRoZXNlCisrICAgICBw cm90b2NvbHMgYXJlIGRpc2N1c3NlZCBpbiBtb3JlIGRldGFpbCBsYXRlciBpbiB0aGlzIGRvY3Vt ZW50LgorKyAgICAgRm9yIGV4YW1wbGUsIHRoZSBjYWxsZWQgVVVDUCBtaWdodCBzZW5kIGBcMDIw UGdmXDAwMCcuCisrCisrY2FsbGVyOiBgXDAyMFVwcm90b2NvbFwwMDAnCisrICAgICBUaGUgY2Fs bGluZyBVVUNQIHNlbGVjdHMgd2hpY2ggcHJvdG9jb2wgdG8gdXNlIG91dCBvZiB0aGUgcHJvdG9j b2xzCisrICAgICBvZmZlcmVkIGJ5IHRoZSBjYWxsZWQgVVVDUC4gIElmIHRoZXJlIGFyZSBubyBt dXR1YWxseSBzdXBwb3J0ZWQKKysgICAgIHByb3RvY29scywgdGhlIGNhbGxpbmcgVVVDUCBzZW5k cyBgXDAyMFVOXDAwMCcgYW5kIGJvdGggc2lkZXMgaGFuZworKyAgICAgdXAgdGhlIHBob25lLiAg T3RoZXJ3aXNlIHRoZSBjYWxsaW5nIFVVQ1Agc2VuZHMgc29tZXRoaW5nIGxpa2UKKysgICAgIGBc MDIwVWdcMDAwJy4KKysKKysgICBNb3N0IFVVQ1AgcGFja2FnZXMgd2lsbCBjb25zaWRlciBlYWNo IGxvY2FsbHkgc3VwcG9ydGVkIHByb3RvY29sIGluCisrdHVybiBhbmQgc2VsZWN0IHRoZSBmaXJz dCBvbmUgc3VwcG9ydGVkIGJ5IHRoZSBjYWxsZWQgVVVDUC4gIFdpdGggc29tZQorK3ZlcnNpb25z IG9mIEhEQiBVVUNQLCB0aGlzIGNhbiBiZSBtb2RpZmllZCBieSBnaXZpbmcgYSBsaXN0IG9mIHBy b3RvY29scworK2FmdGVyIHRoZSBkZXZpY2UgbmFtZSBpbiB0aGUgYERldmljZXMnIGZpbGUgb3Ig dGhlIGBTeXN0ZW1zJyBmaWxlLiAgRm9yCisrZXhhbXBsZSwgdG8gc2VsZWN0IHRoZSBgZScgcHJv dG9jb2wgaW4gYFN5c3RlbXMnLAorKyAgICAgICAgIGFpcnMgQW55IEFDVSxlIC4uLgorKyAgIG9y IGluIERldmljZXMsCisrICAgICAgICAgQUNVLGUgdHR5WFggLi4uCisrICAgVGF5bG9yIFVVQ1Ag cHJvdmlkZXMgdGhlIGBwcm90b2NvbCcgY29tbWFuZCB3aGljaCBtYXkgYmUgdXNlZCBlaXRoZXIK Kytmb3IgYSBzeXN0ZW0gKCpub3RlIFByb3RvY29sIFNlbGVjdGlvbjo6KSBvciBhIHBvcnQgKCpu b3RlIHBvcnQgRmlsZTo6KS4KKytVVVBsdXMgYWxsb3dzIHNwZWNpZmljYXRpb24gb2YgdGhlIHBy b3RvY29sIHN0cmluZyBvbiBhIHBlci1zeXN0ZW0gYmFzaXMKKytpbiB0aGUgYFNZU1RFTVMnIGZp bGUuCisrCisrICAgVGhlIG9wdGlvbmFsIG51bWJlciBmb2xsb3dpbmcgYSBgLU4nIHNlbnQgYnkg dGhlIGNhbGxpbmcgc3lzdGVtLCBvcgorK2FuIGBST0tOJyBzZW50IGJ5IHRoZSBjYWxsZWQgc3lz dGVtLCBpcyBhIGJpdG1hc2sgb2YgZmVhdHVyZXMgc3VwcG9ydGVkCisrYnkgdGhlIFVVQ1AgcGFj a2FnZS4gIFRoZSBvcHRpb25hbCBudW1iZXIgd2FzIGludHJvZHVjZWQgaW4gVGF5bG9yIFVVQ1AK Kyt2ZXJzaW9uIDEuMDQuICBUaGUgbnVtYmVyIGlzIHNlbnQgYXMgYW4gb2N0YWwgbnVtYmVyIHdp dGggYSBsZWFkaW5nCisremVyby4gIFRoZSBmb2xsb3dpbmcgYml0cyBhcmUgY3VycmVudGx5IGRl ZmluZWQuICBBIG1pc3NpbmcgbnVtYmVyCisrc2hvdWxkIGJlIHRha2VuIGFzIGAwMTEnLgorKwor K2AwMScKKysgICAgIFVVQ1Agc3VwcG9ydHMgc2l6ZSBuZWdvdGlhdGlvbi4KKysKKytgMDInCisr ICAgICBVVUNQIHN1cHBvcnRzIGZpbGUgcmVzdGFydC4KKysKKytgMDQnCisrICAgICBVVUNQIHN1 cHBvcnRzIHRoZSBgRScgY29tbWFuZC4KKysKKytgMDEwJworKyAgICAgVVVDUCByZXF1aXJlcyB0 aGUgZmlsZSBzaXplIGluIHRoZSBgUycgYW5kIGBSJyBjb21tYW5kcyB0byBiZSBpbgorKyAgICAg YmFzZSAxMC4gIFRoaXMgYml0IGlzIHVzZWQgYnkgZGVmYXVsdCBpZiBubyBudW1iZXIgYXBwZWFy cywgYnV0CisrICAgICBzaG91bGQgbm90IGJlIGV4cGxpY2l0bHkgc2VudC4KKysKKytgMDIwJwor KyAgICAgVVVDUCBleHBlY3RzIGEgZHVtbXkgc3RyaW5nIGJldHdlZW4gdGhlIG5vdGlmeSBmaWVs ZCBhbmQgdGhlIHNpemUKKysgICAgIGZpZWxkIGluIGFuIGBTJyBjb21tYW5kLiAgVGhpcyBpcyB0 cnVlIG9mIFNWUjQgVVVDUC4gIFRoaXMgYml0CisrICAgICBzaG91bGQgbm90IGJlIHVzZWQuCisr CisrYDA0MCcKKysgICAgIFVVQ1Agc3VwcG9ydHMgdGhlIGBxJyBvcHRpb24gaW4gdGhlIGBTJywg YFInLCBgWCcsIGFuZCBgRScKKysgICAgIGNvbW1hbmRzLgorKworKyAgIEFmdGVyIHRoZSBwcm90 b2NvbCBoYXMgYmVlbiBzZWxlY3RlZCBhbmQgdGhlIGluaXRpYWwgaGFuZHNoYWtlIGhhcworK2Jl ZW4gY29tcGxldGVkLCBib3RoIHNpZGVzIHR1cm4gb24gdGhlIHNlbGVjdGVkIHByb3RvY29sLiAg Rm9yIHNvbWUKKytwcm90b2NvbHMgKG5vdGFibHkgYGcnKSBhIGZ1cnRoZXIgaGFuZHNoYWtlIGlz IGRvbmUgYXQgdGhpcyBwb2ludC4KKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogVVVD UCBQcm90b2NvbCBDb21tYW5kcywgIE5leHQ6IFRoZSBGaW5hbCBIYW5kc2hha2UsICBQcmV2OiBU aGUgSW5pdGlhbCBIYW5kc2hha2UsICBVcDogVVVDUCBQcm90b2NvbAorKworKzYuNS4yIFVVQ1Ag UHJvdG9jb2wgQ29tbWFuZHMKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrRWFj aCBwcm90b2NvbCBzdXBwb3J0cyBhIG1ldGhvZCBmb3Igc2VuZGluZyBhIGNvbW1hbmQgdG8gdGhl IHJlbW90ZQorK3N5c3RlbS4gIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gdHJhbnNtaXQgYSBzZXJp ZXMgb2YgY29tbWFuZHMgYmV0d2VlbgorK3RoZSB0d28gVVVDUCBwYWNrYWdlcy4gIEF0IGFsbCB0 aW1lcywgb25lIHBhY2thZ2UgaXMgdGhlIG1hc3RlciBhbmQgdGhlCisrb3RoZXIgaXMgdGhlIHNs YXZlLiAgSW5pdGlhbGx5LCB0aGUgY2FsbGluZyBVVUNQIGlzIHRoZSBtYXN0ZXIuCisrCisrICAg SWYgYSBwcm90b2NvbCBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGNoYW5nZSBvZiBjb21tYW5k cywgYm90aAorK3NpZGVzIG1vdmUgaW1tZWRpYXRlbHkgdG8gdGhlIGZpbmFsIGhhbmRzaGFrZS4K KysKKysgICBUaGUgbWFzdGVyIHdpbGwgc2VuZCBvbmUgb2YgZml2ZSBjb21tYW5kczogYFMnLCBg UicsIGBYJywgYEUnLCBvcgorK2BIJy4KKysKKysgICBBbnkgZmlsZSBuYW1lIHJlZmVycmVkIHRv IGJlbG93IGlzIGVpdGhlciBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUKKytiZWdpbm5pbmcgd2l0aCBg LycsIGEgcHVibGljIGRpcmVjdG9yeSBmaWxlIG5hbWUgYmVnaW5uaW5nIHdpdGggYH4vJywgYQor K2ZpbGUgbmFtZSByZWxhdGl2ZSB0byBhIHVzZXIncyBob21lIGRpcmVjdG9yeSBiZWdpbm5pbmcg d2l0aCBgflVTRVIvJywKKytvciBhIHNwb29sIGRpcmVjdG9yeSBmaWxlIG5hbWUuICBGaWxlIG5h bWVzIGluIHRoZSBzcG9vbCBkaXJlY3RvcnkgYXJlCisrbm90IGFic29sdXRlLCBidXQgaW5zdGVh ZCBhcmUgY29udmVydGVkIHRvIGZpbGUgbmFtZXMgd2l0aGluIHRoZSBzcG9vbAorK2RpcmVjdG9y eSBieSBVVUNQLiAgVGhleSBhbHdheXMgYmVnaW4gd2l0aCBgQy4nIChmb3IgYSBjb21tYW5kIGZp bGUKKytjcmVhdGVkIGJ5IGB1dWNwJyBvciBgdXV4JyksIGBELicgKGZvciBhIGRhdGEgZmlsZSBj cmVhdGVkIGJ5IGB1dWNwJywKKytgdXV4JyBvciBieSBhbiBleGVjdXRpb24sIG9yIHJlY2VpdmVk IGZyb20gYW5vdGhlciBzeXN0ZW0gZm9yIGFuCisrZXhlY3V0aW9uKSwgb3IgYFguJyAoZm9yIGFu IGV4ZWN1dGlvbiBmaWxlIGNyZWF0ZWQgYnkgYHV1eCcgb3IgcmVjZWl2ZWQKKytmcm9tIGFub3Ro ZXIgc3lzdGVtKS4KKysKKysgICBBbGwgdGhlIGNvbW1hbmRzIG90aGVyIHRoYW4gdGhlIGBIJyBj b21tYW5kIHN1cHBvcnQgb3B0aW9ucy4gIFRoZQorK2BxJyBvcHRpb24gaW5kaWNhdGVzIHRoYXQg dGhlIGNvbW1hbmQgYXJndW1lbnQgc3RyaW5ncyBhcmUgYmFja3NsYXNoCisrcXVvdGVkLiAgSWYg dGhlIGBxJyBvcHRpb24gYXBwZWFycywgdGhlbiBhbnkgYmFja3NsYXNoIGluIG9uZSBvZiB0aGUK Kythcmd1bWVudHMgc2hvdWxkIGJlIGZvbGxvd2VkIGJ5IGVpdGhlciBhIGJhY2tzbGFzaCBvciB0 aHJlZSBvY3RhbAorK2RpZ2l0cy4gIFRoZSBiYWNrc2xhc2ggcXVvdGluZyBpcyBpbnRlcnByZXRl ZCBhcyBpbiBhIEMgc3RyaW5nLiAgSWYgdGhlCisrYHEnIG9wdGlvbiBkb2VzIG5vdCBhcHBlYXIs IGJhY2tzbGFzaGVzIGluIHRoZSBzdHJpbmdzIGFyZSBub3QgdHJlYXRlZAorK3NwZWNpYWxseS4g IFRoZSBgcScgb3B0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIFRheWxvciBVVUNQIHZlcnNpb24gMS4w Ny4KKysKKysqIE1lbnU6CisrCisrKiBUaGUgUyBDb21tYW5kOjogICAgICAgICAgICAgICBUaGUg UyBDb21tYW5kCisrKiBUaGUgUiBDb21tYW5kOjogICAgICAgICAgICAgICBUaGUgUiBDb21tYW5k CisrKiBUaGUgWCBDb21tYW5kOjogICAgICAgICAgICAgICBUaGUgWCBDb21tYW5kCisrKiBUaGUg RSBDb21tYW5kOjogICAgICAgICAgICAgICBUaGUgRSBDb21tYW5kCisrKiBUaGUgSCBDb21tYW5k OjogICAgICAgICAgICAgICBUaGUgSCBDb21tYW5kCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywg IE5vZGU6IFRoZSBTIENvbW1hbmQsICBOZXh0OiBUaGUgUiBDb21tYW5kLCAgUHJldjogVVVDUCBQ cm90b2NvbCBDb21tYW5kcywgIFVwOiBVVUNQIFByb3RvY29sIENvbW1hbmRzCisrCisrNi41LjIu MSBUaGUgUyBDb21tYW5kCisrLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisrCisrbWFzdGVyOiBgUyBG Uk9NIFRPIFVTRVIgLU9QVElPTlMgVEVNUCBNT0RFIE5PVElGWSBTSVpFJworKyAgICAgVGhlIGBT JyBhbmQgdGhlIGAtJyBhcmUgbGl0ZXJhbCBjaGFyYWN0ZXJzLiAgVGhpcyBpcyBhIHJlcXVlc3Qg YnkKKysgICAgIHRoZSBtYXN0ZXIgdG8gc2VuZCBhIGZpbGUgdG8gdGhlIHNsYXZlLgorKworKyAg ICBGUk9NCisrICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIHNlbmQuICBJZiB0aGUg YEMnIG9wdGlvbiBkb2VzIG5vdAorKyAgICAgICAgICBhcHBlYXIgaW4gT1BUSU9OUywgdGhlIG1h c3RlciB3aWxsIGFjdHVhbGx5IG9wZW4gYW5kIHNlbmQKKysgICAgICAgICAgdGhpcyBmaWxlLiAg T3RoZXJ3aXNlIHRoZSBmaWxlIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgc3Bvb2wKKysgICAgICAg ICAgZGlyZWN0b3J5LCB3aGVyZSBpdCBpcyBuYW1lZCBURU1QLiAgVGhlIHNsYXZlIGlnbm9yZXMg dGhpcworKyAgICAgICAgICBmaWVsZCB1bmxlc3MgVE8gaXMgYSBkaXJlY3RvcnksIGluIHdoaWNo IGNhc2UgdGhlIGJhc2VuYW1lIG9mCisrICAgICAgICAgIEZST00gd2lsbCBiZSB1c2VkIGFzIHRo ZSBmaWxlIG5hbWUuICBJZiBGUk9NIGlzIGEgc3Bvb2wKKysgICAgICAgICAgZGlyZWN0b3J5IGZp bGVuYW1lLCBpdCBtdXN0IGJlIGEgZGF0YSBmaWxlIGNyZWF0ZWQgZm9yIG9yIGJ5CisrICAgICAg ICAgIGFuIGV4ZWN1dGlvbiwgYW5kIG11c3QgYmVnaW4gd2l0aCBgRC4nLgorKworKyAgICBUTwor KyAgICAgICAgICBUaGUgbmFtZSB0byBnaXZlIHRoZSBmaWxlIG9uIHRoZSBzbGF2ZS4gIElmIHRo aXMgZmllbGQgbmFtZXMKKysgICAgICAgICAgYSBkaXJlY3RvcnkgdGhlIGZpbGUgaXMgcGxhY2Vk IHdpdGhpbiB0aGF0IGRpcmVjdG9yeSB3aXRoIHRoZQorKyAgICAgICAgICBiYXNlbmFtZSBvZiBG Uk9NLiAgQSBuYW1lIGVuZGluZyBpbiBgLycgaXMgdGFrZW4gdG8gYmUgYQorKyAgICAgICAgICBk aXJlY3RvcnkgZXZlbiBpZiBvbmUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCB3aXRoIHRoYXQgbmFt ZS4KKysgICAgICAgICAgSWYgVE8gYmVnaW5zIHdpdGggYFguJywgYW4gZXhlY3V0aW9uIGZpbGUg d2lsbCBiZSBjcmVhdGVkIG9uCisrICAgICAgICAgIHRoZSBzbGF2ZS4gIE90aGVyd2lzZSwgaWYg VE8gYmVnaW5zIHdpdGggYEQuJyBpdCBuYW1lcyBhIGRhdGEKKysgICAgICAgICAgZmlsZSB0byBi ZSB1c2VkIGJ5IHNvbWUgZXhlY3V0aW9uIGZpbGUuICBPdGhlcndpc2UsIFRPIHNob3VsZAorKyAg ICAgICAgICBub3QgYmUgaW4gdGhlIHNwb29sIGRpcmVjdG9yeS4KKysKKysgICAgVVNFUgorKyAg ICAgICAgICBUaGUgbmFtZSBvZiB0aGUgdXNlciB3aG8gcmVxdWVzdGVkIHRoZSB0cmFuc2Zlci4K KysKKysgICAgT1BUSU9OUworKyAgICAgICAgICBBIGxpc3Qgb2Ygb3B0aW9ucyB0byBjb250cm9s IHRoZSB0cmFuc2Zlci4gIFRoZSBmb2xsb3dpbmcKKysgICAgICAgICAgb3B0aW9ucyBhcmUgZGVm aW5lZCAoYWxsIG9wdGlvbnMgYXJlIHNpbmdsZSBjaGFyYWN0ZXJzKToKKysgICAgICAgICBgQycK KysgICAgICAgICAgICAgICBUaGUgZmlsZSBoYXMgYmVlbiBjb3BpZWQgdG8gdGhlIHNwb29sIGRp cmVjdG9yeSAodGhlCisrICAgICAgICAgICAgICAgbWFzdGVyIHNob3VsZCB1c2UgVEVNUCByYXRo ZXIgdGhhbiBGUk9NKS4KKysKKysgICAgICAgICBgYycKKysgICAgICAgICAgICAgICBUaGUgZmls ZSBoYXMgbm90IGJlZW4gY29waWVkIHRvIHRoZSBzcG9vbCBkaXJlY3RvcnkKKysgICAgICAgICAg ICAgICAodGhpcyBpcyB0aGUgZGVmYXVsdCkuCisrCisrICAgICAgICAgYGQnCisrICAgICAgICAg ICAgICAgVGhlIHNsYXZlIHNob3VsZCBjcmVhdGUgZGlyZWN0b3JpZXMgYXMgbmVjZXNzYXJ5ICh0 aGlzCisrICAgICAgICAgICAgICAgaXMgdGhlIGRlZmF1bHQpLgorKworKyAgICAgICAgIGBmJwor KyAgICAgICAgICAgICAgIFRoZSBzbGF2ZSBzaG91bGQgbm90IGNyZWF0ZSBkaXJlY3RvcmllcyBp ZiBuZWNlc3NhcnksCisrICAgICAgICAgICAgICAgYnV0IHNob3VsZCBmYWlsIHRoZSB0cmFuc2Zl ciBpbnN0ZWFkLgorKworKyAgICAgICAgIGBtJworKyAgICAgICAgICAgICAgIFRoZSBtYXN0ZXIg c2hvdWxkIHNlbmQgbWFpbCB0byBVU0VSIHdoZW4gdGhlIHRyYW5zZmVyIGlzCisrICAgICAgICAg ICAgICAgY29tcGxldGUuCisrCisrICAgICAgICAgYG4nCisrICAgICAgICAgICAgICAgVGhlIHNs YXZlIHNob3VsZCBzZW5kIG1haWwgdG8gTk9USUZZIHdoZW4gdGhlIHRyYW5zZmVyIGlzCisrICAg ICAgICAgICAgICAgY29tcGxldGUuCisrCisrICAgICAgICAgYHEnCisrICAgICAgICAgICAgICAg QmFja3NsYXNoIHF1b3RpbmcgaXMgYXBwbGllZCB0byB0aGUgRlJPTSwgVE8sIFVTRVIsIGFuZAor KyAgICAgICAgICAgICAgIE5PVElGWSBhcmd1bWVudHMuICAqTm90ZSBVVUNQIFByb3RvY29sIENv bW1hbmRzOjouICBUaGlzCisrICAgICAgICAgICAgICAgb3B0aW9uIHdhcyBpbnRyb2R1Y2VkIGlu IFRheWxvciBVVUNQIHZlcnNpb24gMS4wNy4KKysKKysgICAgVEVNUAorKyAgICAgICAgICBJZiB0 aGUgYEMnIG9wdGlvbiBhcHBlYXJzIGluIE9QVElPTlMsIHRoaXMgbmFtZXMgdGhlIGZpbGUgdG8K KysgICAgICAgICAgYmUgc2VudC4gIE90aGVyd2lzZSBpZiBGUk9NIGlzIGluIHRoZSBzcG9vbCBk aXJlY3RvcnksIFRFTVAKKysgICAgICAgICAgaXMgdGhlIHNhbWUgYXMgRlJPTS4gIE90aGVyd2lz ZSBURU1QIG1heSBiZSBhIGR1bW15IHN0cmluZywKKysgICAgICAgICAgc3VjaCBhcyBgRC4wJy4g IEFmdGVyIHRoZSB0cmFuc2ZlciBoYXMgYmVlbiBzdWNjZXNmdWxseQorKyAgICAgICAgICBjb21w bGV0ZWQsIHRoZSBtYXN0ZXIgd2lsbCBkZWxldGUgdGhlIGZpbGUgVEVNUC4KKysKKysgICAgTU9E RQorKyAgICAgICAgICBUaGlzIGlzIGFuIG9jdGFsIG51bWJlciBnaXZpbmcgdGhlIG1vZGUgb2Yg dGhlIGZpbGUgb24gdGhlCisrICAgICAgICAgIG1hc3Rlci4gIElmIHRoZSBmaWxlIGlzIG5vdCBp biB0aGUgc3Bvb2wgZGlyZWN0b3J5LCB0aGUgc2xhdmUKKysgICAgICAgICAgd2lsbCBhbHdheXMg Y3JlYXRlIGl0IHdpdGggbW9kZSAwNjY2LCBleGNlcHQgdGhhdCBpZiAoTU9ERSAmCisrICAgICAg ICAgIDAxMTEpIGlzIG5vdCB6ZXJvICh0aGUgZmlsZSBpcyBleGVjdXRhYmxlKSwgdGhlIHNsYXZl IHdpbGwKKysgICAgICAgICAgY3JlYXRlIHRoZSBmaWxlIHdpdGggbW9kZSAwNzc3LiAgSWYgdGhl IGZpbGUgaXMgaW4gdGhlIHNwb29sCisrICAgICAgICAgIGRpcmVjdG9yeSwgc29tZSBVVUNQIHBh Y2thZ2VzIHdpbGwgdXNlIHRoZSBhbGdvcml0aG0gYWJvdmUKKysgICAgICAgICAgYW5kIHNvbWUg d2lsbCBhbHdheXMgY3JlYXRlIHRoZSBmaWxlIHdpdGggbW9kZSAwNjAwLiAgVGhpcworKyAgICAg ICAgICBmaWVsZCBpcyBpZ25vcmVkIGJ5IFVVUGx1cywgc2luY2UgaXQgaXMgbWVhbmluZ2xlc3Mg b24gRE9TOworKyAgICAgICAgICBVVVBsdXMgdXNlcyAwNjY2IGZvciBvdXRnb2luZyBmaWxlcy4K KysKKysgICAgTk9USUZZCisrICAgICAgICAgIFRoaXMgZmllbGQgbWF5IG5vdCBiZSBwcmVzZW50 LCBhbmQgaW4gYW55IGNhc2UgaXMgb25seQorKyAgICAgICAgICBtZWFuaW5nZnVsIGlmIHRoZSBg bicgb3B0aW9uIGFwcGVhcnMgaW4gT1BUSU9OUy4gIElmIHRoZSBgbicKKysgICAgICAgICAgb3B0 aW9uIGFwcGVhcnMsIHRoZW4sIHdoZW4gdGhlIHRyYW5zZmVyIGlzIHN1Y2Nlc3NmdWxseQorKyAg ICAgICAgICBjb21wbGV0ZWQsIHRoZSBzbGF2ZSB3aWxsIHNlbmQgbWFpbCB0byBOT1RJRlksIHdo aWNoIG11c3QgYmUKKysgICAgICAgICAgYSBsZWdhbCBtYWlsaW5nIGFkZHJlc3Mgb24gdGhlIHNs YXZlLiAgSWYgYSBTSVpFIGZpZWxkIHdpbGwKKysgICAgICAgICAgYXBwZWFyIGJ1dCB0aGUgYG4n IG9wdGlvbiBkb2VzIG5vdCBhcHBlYXIsIE5PVElGWSB3aWxsIGFsd2F5cworKyAgICAgICAgICBi ZSBwcmVzZW50LCB0eXBpY2FsbHkgYXMgdGhlIHN0cmluZyBgZHVtbXknIG9yIHNpbXBseSBhIHBh aXIKKysgICAgICAgICAgb2YgZG91YmxlIHF1b3Rlcy4KKysKKysgICAgU0laRQorKyAgICAgICAg ICBUaGlzIGZpZWxkIGlzIG9ubHkgcHJlc2VudCB3aGVuIGRvaW5nIFRheWxvciBVVUNQIG9yIFNW UjQKKysgICAgICAgICAgVVVDUCBzaXplIG5lZ290aWF0aW9uLiAgSXQgaXMgdGhlIHNpemUgb2Yg dGhlIGZpbGUgaW4gYnl0ZXMuCisrICAgICAgICAgIFRheWxvciBVVUNQIHZlcnNpb24gMS4wMyBz ZW5kcyB0aGUgc2l6ZSBhcyBhIGRlY2ltYWwgaW50ZWdlciwKKysgICAgICAgICAgd2hpbGUgdmVy c2lvbnMgMS4wNCBhbmQgdXAsIGFuZCBhbGwgb3RoZXIgVVVDUCBwYWNrYWdlcyB0aGF0CisrICAg ICAgICAgIHN1cHBvcnQgc2l6ZSBuZWdvdGlhdGlvbiwgc2VuZCB0aGUgc2l6ZSBpbiBiYXNlIDE2 IHdpdGggYQorKyAgICAgICAgICBsZWFkaW5nIDB4LgorKworKyAgICAgVGhlIHNsYXZlIHRoZW4g cmVzcG9uZHMgd2l0aCBhbiBgUycgY29tbWFuZCByZXNwb25zZS4KKysKKysgICAgYFNZIFNUQVJU JworKyAgICAgICAgICBUaGUgc2xhdmUgaXMgd2lsbGluZyB0byBhY2NlcHQgdGhlIGZpbGUsIGFu ZCBmaWxlIHRyYW5zZmVyCisrICAgICAgICAgIGJlZ2lucy4gIFRoZSBTVEFSVCBmaWVsZCB3aWxs IG9ubHkgYmUgcHJlc2VudCB3aGVuIHVzaW5nIGZpbGUKKysgICAgICAgICAgcmVzdGFydC4gIEl0 IHNwZWNpZmllcyB0aGUgYnl0ZSBvZmZzZXQgaW50byB0aGUgZmlsZSBhdCB3aGljaAorKyAgICAg ICAgICB0byBzdGFydCBzZW5kaW5nLiAgSWYgdGhpcyBpcyBhIG5ldyBmaWxlLCBTVEFSVCB3aWxs IGJlIDB4MC4KKysKKysgICAgYFNOMicKKysgICAgICAgICAgVGhlIHNsYXZlIGRlbmllcyBwZXJt aXNzaW9uIHRvIHRyYW5zZmVyIHRoZSBmaWxlLiAgVGhpcyBjYW4KKysgICAgICAgICAgbWVhbiB0 aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgbWF5IG5vdCBiZSBhY2Nlc3NlZCwgb3IKKysg ICAgICAgICAgdGhhdCBubyByZXF1ZXN0cyBhcmUgcGVybWl0dGVkLiAgSXQgaW1wbGllcyB0aGF0 IHRoZSBmaWxlCisrICAgICAgICAgIHRyYW5zZmVyIHdpbGwgbmV2ZXIgc3VjY2VlZC4KKysKKysg ICAgYFNONCcKKysgICAgICAgICAgVGhlIHNsYXZlIGlzIHVuYWJsZSB0byBjcmVhdGUgdGhlIG5l Y2Vzc2FyeSB0ZW1wb3JhcnkgZmlsZS4KKysgICAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgdGhl IGZpbGUgdHJhbnNmZXIgbWlnaHQgc3VjY2VlZCBsYXRlci4KKysKKysgICAgYFNONicKKysgICAg ICAgICAgVGhpcyBpcyBvbmx5IHVzZWQgYnkgVGF5bG9yIFVVQ1Agc2l6ZSBuZWdvdGlhdGlvbi4g IEl0IG1lYW5zCisrICAgICAgICAgIHRoYXQgdGhlIHNsYXZlIGNvbnNpZGVycyB0aGUgZmlsZSB0 b28gbGFyZ2UgdG8gdHJhbnNmZXIgYXQKKysgICAgICAgICAgdGhlIG1vbWVudCwgYnV0IGl0IG1h eSBiZSBwb3NzaWJsZSB0byB0cmFuc2ZlciBpdCBhdCBzb21lCisrICAgICAgICAgIG90aGVyIHRp bWUuCisrCisrICAgIGBTTjcnCisrICAgICAgICAgIFRoaXMgaXMgb25seSB1c2VkIGJ5IFRheWxv ciBVVUNQIHNpemUgbmVnb3RpYXRpb24uICBJdCBtZWFucworKyAgICAgICAgICB0aGF0IHRoZSBz bGF2ZSBjb25zaWRlcnMgdGhlIGZpbGUgdG9vIGxhcmdlIHRvIGV2ZXIgdHJhbnNmZXIuCisrCisr ICAgIGBTTjgnCisrICAgICAgICAgIFRoaXMgaXMgb25seSB1c2VkIGJ5IFRheWxvciBVVUNQLiAg SXQgbWVhbnMgdGhhdCB0aGUgZmlsZSB3YXMKKysgICAgICAgICAgYWxyZWFkeSByZWNlaXZlZCBp biBhIHByZXZpb3VzIGNvbnZlcnNhdGlvbi4gIFRoaXMgY2FuIGhhcHBlbgorKyAgICAgICAgICBp ZiB0aGUgcmVjZWl2ZSBhY2tub3dsZWRnZW1lbnQgd2FzIGxvc3QgYWZ0ZXIgaXQgd2FzIHNlbnQg YnkKKysgICAgICAgICAgdGhlIHJlY2VpdmVyIGJ1dCBiZWZvcmUgaXQgd2FzIHJlY2VpdmVkIGJ5 IHRoZSBzZW5kZXIuCisrCisrICAgIGBTTjknCisrICAgICAgICAgIFRoaXMgaXMgb25seSB1c2Vk IGJ5IFRheWxvciBVVUNQICh2ZXJzaW9ucyAxLjA1IGFuZCB1cCkgYW5kCisrICAgICAgICAgIFVV UGx1cyAodmVyc2lvbnMgMi4wIGFuZCB1cCkuICBJdCBtZWFucyB0aGF0IHRoZSByZW1vdGUKKysg ICAgICAgICAgc3lzdGVtIHdhcyB1bmFibGUgdG8gb3BlbiBhbm90aGVyIGNoYW5uZWwgKHNlZSB0 aGUgZGlzY3Vzc2lvbgorKyAgICAgICAgICBvZiB0aGUgYGknIHByb3RvY29sIGZvciBtb3JlIGlu Zm9ybWF0aW9uIGFib3V0IGNoYW5uZWxzKS4KKysgICAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQg dGhlIGZpbGUgdHJhbnNmZXIgbWlnaHQgc3VjY2VlZCBsYXRlci4KKysKKysgICAgYFNOMTAnCisr ICAgICAgICAgIFRoaXMgaXMgcmVwb3J0ZWRseSB1c2VkIGJ5IFNWUjQgVVVDUCB0byBtZWFuIHRo YXQgdGhlIGZpbGUKKysgICAgICAgICAgc2l6ZSBpcyB0b28gbGFyZ2UuCisrCisrICAgICBJZiB0 aGUgc2xhdmUgcmVzcG9uZHMgd2l0aCBgU1knLCBhIGZpbGUgdHJhbnNmZXIgYmVnaW5zLiAgV2hl biB0aGUKKysgICAgIGZpbGUgdHJhbnNmZXIgaXMgY29tcGxldGUsIHRoZSBzbGF2ZSBzZW5kcyBh IGBDJyBjb21tYW5kIHJlc3BvbnNlLgorKworKyAgICBgQ1knCisrICAgICAgICAgIFRoZSBmaWxl IHRyYW5zZmVyIHdhcyBzdWNjZXNzZnVsLgorKworKyAgICBgQ1lNJworKyAgICAgICAgICBUaGUg ZmlsZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCwgYW5kIHRoZSBzbGF2ZSB3aXNoZXMgdG8KKysg ICAgICAgICAgYmVjb21lIHRoZSBtYXN0ZXI7IHRoZSBtYXN0ZXIgc2hvdWxkIHNlbmQgYW4gYEgn IGNvbW1hbmQsCisrICAgICAgICAgIGRlc2NyaWJlZCBiZWxvdy4KKysKKysgICAgYENONScKKysg ICAgICAgICAgVGhlIHRlbXBvcmFyeSBmaWxlIGNvdWxkIG5vdCBiZSBtb3ZlZCBpbnRvIHRoZSBm aW5hbAorKyAgICAgICAgICBsb2NhdGlvbi4gIFRoaXMgaW1wbGllcyB0aGF0IHRoZSBmaWxlIHRy YW5zZmVyIHdpbGwgbmV2ZXIKKysgICAgICAgICAgc3VjY2VlZC4KKysKKytBZnRlciB0aGUgYEMn IGNvbW1hbmQgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgKGluIHRoZSBgU1knIGNhc2UpIG9y CisraW1tZWRpYXRlbHkgKGluIGFuIGBTTicgY2FzZSkgdGhlIG1hc3RlciB3aWxsIHNlbmQgYW5v dGhlciBjb21tYW5kLgorKworKx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBUaGUgUiBDb21t YW5kLCAgTmV4dDogVGhlIFggQ29tbWFuZCwgIFByZXY6IFRoZSBTIENvbW1hbmQsICBVcDogVVVD UCBQcm90b2NvbCBDb21tYW5kcworKworKzYuNS4yLjIgVGhlIFIgQ29tbWFuZAorKy4uLi4uLi4u Li4uLi4uLi4uLi4uLgorKworK21hc3RlcjogYFIgRlJPTSBUTyBVU0VSIC1PUFRJT05TIFNJWkUn CisrICAgICBUaGUgYFInIGFuZCB0aGUgYC0nIGFyZSBsaXRlcmFsIGNoYXJhY3RlcnMuICBUaGlz IGlzIGEgcmVxdWVzdCBieQorKyAgICAgdGhlIG1hc3RlciB0byByZWNlaXZlIGEgZmlsZSBmcm9t IHRoZSBzbGF2ZS4gIEkgZG8gbm90IGtub3cgaG93CisrICAgICBTVlI0IFVVQ1Agb3IgUUZUIGlt cGxlbWVudCBmaWxlIHRyYW5zZmVyIHJlc3RhcnQgaW4gdGhpcyBjYXNlLgorKworKyAgICBGUk9N CisrICAgICAgICAgIFRoaXMgaXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgb24gdGhlIHNsYXZlIHdo aWNoIHRoZSBtYXN0ZXIKKysgICAgICAgICAgd2lzaGVzIHRvIHJlY2VpdmUuICBJdCBtdXN0IG5v dCBiZSBpbiB0aGUgc3Bvb2wgZGlyZWN0b3J5LAorKyAgICAgICAgICBhbmQgaXQgbWF5IG5vdCBj b250YWluIGFueSB3aWxkY2FyZHMuCisrCisrICAgIFRPCisrICAgICAgICAgIFRoaXMgaXMgdGhl IG5hbWUgb2YgdGhlIGZpbGUgdG8gY3JlYXRlIG9uIHRoZSBtYXN0ZXIuICBJIGRvCisrICAgICAg ICAgIG5vdCBiZWxpZXZlIHRoYXQgaXQgY2FuIGJlIGEgZGlyZWN0b3J5LiAgSXQgbWF5IG9ubHkg YmUgaW4KKysgICAgICAgICAgdGhlIHNwb29sIGRpcmVjdG9yeSBpZiB0aGlzIGZpbGUgaXMgYmVp bmcgcmVxdWVzdGVkIHRvCisrICAgICAgICAgIHN1cHBvcnQgYW4gZXhlY3V0aW9uIGVpdGhlciBv biB0aGUgbWFzdGVyIG9yIG9uIHNvbWUgc3lzdGVtCisrICAgICAgICAgIG90aGVyIHRoYW4gdGhl IHNsYXZlLgorKworKyAgICBVU0VSCisrICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSB1c2VyIHdo byByZXF1ZXN0ZWQgdGhlIHRyYW5zZmVyLgorKworKyAgICBPUFRJT05TCisrICAgICAgICAgIEEg bGlzdCBvZiBvcHRpb25zIHRvIGNvbnRyb2wgdGhlIHRyYW5zZmVyLiAgVGhlIGZvbGxvd2luZwor KyAgICAgICAgICBvcHRpb25zIGFyZSBkZWZpbmVkIChhbGwgb3B0aW9ucyBhcmUgc2luZ2xlIGNo YXJhY3RlcnMpOgorKyAgICAgICAgIGBkJworKyAgICAgICAgICAgICAgIFRoZSBtYXN0ZXIgc2hv dWxkIGNyZWF0ZSBkaXJlY3RvcmllcyBhcyBuZWNlc3NhcnkgKHRoaXMKKysgICAgICAgICAgICAg ICBpcyB0aGUgZGVmYXVsdCkuCisrCisrICAgICAgICAgYGYnCisrICAgICAgICAgICAgICAgVGhl IG1hc3RlciBzaG91bGQgbm90IGNyZWF0ZSBkaXJlY3RvcmllcyBpZiBuZWNlc3NhcnksCisrICAg ICAgICAgICAgICAgYnV0IHNob3VsZCBmYWlsIHRoZSB0cmFuc2ZlciBpbnN0ZWFkLgorKworKyAg ICAgICAgIGBtJworKyAgICAgICAgICAgICAgIFRoZSBtYXN0ZXIgc2hvdWxkIHNlbmQgbWFpbCB0 byBVU0VSIHdoZW4gdGhlIHRyYW5zZmVyIGlzCisrICAgICAgICAgICAgICAgY29tcGxldGUuCisr CisrICAgICAgICAgYHEnCisrICAgICAgICAgICAgICAgQmFja3NsYXNoIHF1b3RpbmcgaXMgYXBw bGllZCB0byB0aGUgRlJPTSwgVE8sIGFuZCBVU0VSCisrICAgICAgICAgICAgICAgYXJndW1lbnRz LiAgKk5vdGUgVVVDUCBQcm90b2NvbCBDb21tYW5kczo6LiAgVGhpcyBvcHRpb24KKysgICAgICAg ICAgICAgICB3YXMgaW50cm9kdWNlZCBpbiBUYXlsb3IgVVVDUCB2ZXJzaW9uIDEuMDcuCisrCisr ICAgIFNJWkUKKysgICAgICAgICAgVGhpcyBvbmx5IGFwcGVhcnMgaWYgVGF5bG9yIFVVQ1Agc2l6 ZSBuZWdvdGlhdGlvbiBpcyBiZWluZworKyAgICAgICAgICB1c2VkLiAgSXQgc3BlY2lmaWVzIHRo ZSBsYXJnZXN0IGZpbGUgd2hpY2ggdGhlIG1hc3RlciBpcworKyAgICAgICAgICBwcmVwYXJlZCB0 byBhY2NlcHQgKHdoZW4gdXNpbmcgU1ZSNCBVVUNQIG9yIFFGVCwgdGhpcyB3YXMKKysgICAgICAg ICAgc3BlY2lmaWVkIGluIHRoZSBgLVUnIG9wdGlvbiBkdXJpbmcgdGhlIGluaXRpYWwgaGFuZHNo YWtlKS4KKysKKysgICAgIFRoZSBzbGF2ZSB0aGVuIHJlc3BvbmRzIHdpdGggYW4gYFInIGNvbW1h bmQgcmVzcG9uc2UuICBVVVBsdXMgZG9lcworKyAgICAgbm90IHN1cHBvcnQgYFInIHJlcXVlc3Rz LCBhbmQgYWx3YXlzIHJlc3BvbmRzIHdpdGggYFJOMicuCisrCisrICAgIGBSWSBNT0RFIFtTSVpF XScKKysgICAgICAgICAgVGhlIHNsYXZlIGlzIHdpbGxpbmcgdG8gc2VuZCB0aGUgZmlsZSwgYW5k IGZpbGUgdHJhbnNmZXIKKysgICAgICAgICAgYmVnaW5zLiAgVGhlIE1PREUgYXJndW1lbnQgaXMg dGhlIG9jdGFsIG1vZGUgb2YgdGhlIGZpbGUgb24KKysgICAgICAgICAgdGhlIHNsYXZlLiAgVGhl IG1hc3RlciB0cmVhdHMgdGhpcyBqdXN0IGFzIHRoZSBzbGF2ZSBkb2VzIHRoZQorKyAgICAgICAg ICBNT0RFIGFyZ3VtZW50IGluIHRoZSBzZW5kIGNvbW1hbmQsIHEudi4gIEkgYW0gdG9sZCB0aGF0 IFNWUjQKKysgICAgICAgICAgVVVDUCBzZW5kcyBhIHRyYWlsaW5nIFNJWkUgYXJndW1lbnQuICBG b3Igc29tZSB2ZXJzaW9ucyBvZgorKyAgICAgICAgICBCU0QgVVVDUCwgdGhlIE1PREUgYXJndW1l bnQgbWF5IGhhdmUgYSB0cmFpbGluZyBgTScgY2hhcmFjdGVyCisrICAgICAgICAgIChlLmcuLCBg UlkgMDY2Nk0nKS4gIFRoaXMgbWVhbnMgdGhhdCB0aGUgc2xhdmUgd2lzaGVzIHRvCisrICAgICAg ICAgIGJlY29tZSB0aGUgbWFzdGVyLgorKworKyAgICBgUk4yJworKyAgICAgICAgICBUaGUgc2xh dmUgaXMgbm90IHdpbGxpbmcgdG8gc2VuZCB0aGUgZmlsZSwgZWl0aGVyIGJlY2F1c2UgaXQKKysg ICAgICAgICAgaXMgbm90IHBlcm1pdHRlZCBvciBiZWNhdXNlIHRoZSBmaWxlIGRvZXMgbm90IGV4 aXN0LiAgVGhpcworKyAgICAgICAgICBpbXBsaWVzIHRoYXQgdGhlIGZpbGUgcmVxdWVzdCB3aWxs IG5ldmVyIHN1Y2NlZWQuCisrCisrICAgIGBSTjYnCisrICAgICAgICAgIFRoaXMgaXMgb25seSB1 c2VkIGJ5IFRheWxvciBVVUNQIHNpemUgbmVnb3RpYXRpb24uICBJdCBtZWFucworKyAgICAgICAg ICB0aGF0IHRoZSBmaWxlIGlzIHRvbyBsYXJnZSB0byBzZW5kLCBlaXRoZXIgYmVjYXVzZSBvZiB0 aGUKKysgICAgICAgICAgc2l6ZSBsaW1pdCBzcGVjaWZpZXMgYnkgdGhlIG1hc3RlciBvciBiZWNh dXNlIHRoZSBzbGF2ZQorKyAgICAgICAgICBjb25zaWRlcnMgaXQgdG9vIGxhcmdlLiAgVGhlIGZp bGUgdHJhbnNmZXIgbWlnaHQgc3VjY2VlZAorKyAgICAgICAgICBsYXRlciwgb3IgaXQgbWlnaHQg bm90ICh0aGlzIG1heSBiZSBjbGVhcmVkIHVwIGluIGEgbGF0ZXIKKysgICAgICAgICAgcmVsZWFz ZSBvZiBUYXlsb3IgVVVDUCkuCisrCisrICAgIGBSTjknCisrICAgICAgICAgIFRoaXMgaXMgb25s eSB1c2VkIGJ5IFRheWxvciBVVUNQICh2ZXJzaW9ucyAxLjA1IGFuZCB1cCkgYW5kCisrICAgICAg ICAgIEZTVVVDUCAodmVyc2lvbnMgMS41IGFuZCB1cCkuICBJdCBtZWFucyB0aGF0IHRoZSByZW1v dGUKKysgICAgICAgICAgc3lzdGVtIHdhcyB1bmFibGUgdG8gb3BlbiBhbm90aGVyIGNoYW5uZWwg KHNlZSB0aGUgZGlzY3Vzc2lvbgorKyAgICAgICAgICBvZiB0aGUgYGknIHByb3RvY29sIGZvciBt b3JlIGluZm9ybWF0aW9uIGFib3V0IGNoYW5uZWxzKS4KKysgICAgICAgICAgVGhpcyBpbXBsaWVz IHRoYXQgdGhlIGZpbGUgdHJhbnNmZXIgbWlnaHQgc3VjY2VlZCBsYXRlci4KKysKKysgICAgIElm IHRoZSBzbGF2ZSByZXNwb25kcyB3aXRoIGBSWScsIGEgZmlsZSB0cmFuc2ZlciBiZWdpbnMuICBX aGVuIHRoZQorKyAgICAgZmlsZSB0cmFuc2ZlciBpcyBjb21wbGV0ZSwgdGhlIG1hc3RlciBzZW5k cyBhIGBDJyBjb21tYW5kLiAgVGhlCisrICAgICBzbGF2ZSBwcmV0dHkgbXVjaCBpZ25vcmVzIHRo aXMsIGFsdGhvdWdoIGl0IG1heSBsb2cgaXQuCisrCisrICAgIGBDWScKKysgICAgICAgICAgVGhl IGZpbGUgdHJhbnNmZXIgd2FzIHN1Y2Nlc3NmdWwuCisrCisrICAgIGBDTjUnCisrICAgICAgICAg IFRoZSB0ZW1wb3JhcnkgZmlsZSBjb3VsZCBub3QgYmUgbW92ZWQgaW50byB0aGUgZmluYWwgbG9j YXRpb24uCisrCisrICAgICBBZnRlciB0aGUgYEMnIGNvbW1hbmQgcmVzcG9uc2UgaGFzIGJlZW4g c2VudCAoaW4gdGhlIGBSWScgY2FzZSkgb3IKKysgICAgIGltbWVkaWF0ZWx5IChpbiBhbiBgUk4n IGNhc2UpIHRoZSBtYXN0ZXIgd2lsbCBzZW5kIGFub3RoZXIgY29tbWFuZC4KKysKKysfCisrRmls ZTogdXVjcC5pbmZvLCAgTm9kZTogVGhlIFggQ29tbWFuZCwgIE5leHQ6IFRoZSBFIENvbW1hbmQs ICBQcmV2OiBUaGUgUiBDb21tYW5kLCAgVXA6IFVVQ1AgUHJvdG9jb2wgQ29tbWFuZHMKKysKKys2 LjUuMi4zIFRoZSBYIENvbW1hbmQKKysuLi4uLi4uLi4uLi4uLi4uLi4uLi4KKysKKyttYXN0ZXI6 IGBYIEZST00gVE8gVVNFUiAtT1BUSU9OUycKKysgICAgIFRoZSBgWCcgYW5kIHRoZSBgLScgYXJl IGxpdGVyYWwgY2hhcmFjdGVycy4gIFRoaXMgaXMgYSByZXF1ZXN0IGJ5CisrICAgICB0aGUgbWFz dGVyIHRvLCBpbiBlc3NlbmNlLCBleGVjdXRlIHV1Y3Agb24gdGhlIHNsYXZlLiAgVGhlIHNsYXZl CisrICAgICBzaG91bGQgZXhlY3V0ZSBgdXVjcCBGUk9NIFRPJy4KKysKKysgICAgRlJPTQorKyAg ICAgICAgICBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIG9yIGZpbGVzIG9uIHRoZSBzbGF2 ZSB3aGljaCB0aGUKKysgICAgICAgICAgbWFzdGVyIHdpc2hlcyB0byB0cmFuc2Zlci4gIEFueSB3 aWxkY2FyZHMgYXJlIGV4cGFuZGVkIG9uIHRoZQorKyAgICAgICAgICBzbGF2ZS4gIElmIHRoZSBt YXN0ZXIgaXMgcmVxdWVzdGluZyB0aGF0IHRoZSBmaWxlcyBiZQorKyAgICAgICAgICB0cmFuc2Zl cnJlZCB0byBpdHNlbGYsIHRoZSByZXF1ZXN0IHdvdWxkIG5vcm1hbGx5IGNvbnRhaW4KKysgICAg ICAgICAgd2lsZGNhcmQgY2hhcmFjdGVycywgc2luY2Ugb3RoZXJ3aXNlIGFuIGBSJyBjb21tYW5k IHdvdWxkCisrICAgICAgICAgIHN1ZmZpY2UuICBUaGUgbWFzdGVyIGNhbiBhbHNvIHVzZSB0aGlz IGNvbW1hbmQgdG8gcmVxdWVzdAorKyAgICAgICAgICB0aGF0IHRoZSBzbGF2ZSB0cmFuc2ZlciBm aWxlcyB0byBhIHRoaXJkIHN5c3RlbS4KKysKKysgICAgVE8KKysgICAgICAgICAgVGhpcyBpcyB0 aGUgbmFtZSBvZiB0aGUgZmlsZSBvciBkaXJlY3RvcnkgdG8gd2hpY2ggdGhlIGZpbGVzCisrICAg ICAgICAgIHNob3VsZCBiZSB0cmFuc2ZlcnJlZC4gIFRoaXMgd2lsbCBub3JtYWxseSB1c2UgYSBV VUNQIG5hbWUuCisrICAgICAgICAgIEZvciBleGFtcGxlLCBpZiB0aGUgbWFzdGVyIHdpc2hlcyB0 byByZWNlaXZlIHRoZSBmaWxlcworKyAgICAgICAgICBpdHNlbGYsIGl0IHdvdWxkIHVzZSBgbWFz dGVyIXBhdGgnLgorKworKyAgICBVU0VSCisrICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSB1c2Vy IHdobyByZXF1ZXN0ZWQgdGhlIHRyYW5zZmVyLgorKworKyAgICBPUFRJT05TCisrICAgICAgICAg IEEgbGlzdCBvZiBvcHRpb25zIHRvIGNvbnRyb2wgdGhlIHRyYW5zZmVyLiAgQXMgZmFyIGFzIEkg a25vdywKKysgICAgICAgICAgb25seSBvbmUgb3B0aW9uIGlzIGRlZmluZWQ6CisrICAgICAgICAg YHEnCisrICAgICAgICAgICAgICAgQmFja3NsYXNoIHF1b3RpbmcgaXMgYXBwbGllZCB0byB0aGUg RlJPTSwgVE8sIGFuZCBVU0VSCisrICAgICAgICAgICAgICAgYXJndW1lbnRzLiAgKk5vdGUgVVVD UCBQcm90b2NvbCBDb21tYW5kczo6LiAgVGhpcyBvcHRpb24KKysgICAgICAgICAgICAgICB3YXMg aW50cm9kdWNlZCBpbiBUYXlsb3IgVVVDUCB2ZXJzaW9uIDEuMDcuCisrCisrICAgICBUaGUgc2xh dmUgdGhlbiByZXNwb25kcyB3aXRoIGFuIGBYJyBjb21tYW5kIHJlc3BvbnNlLiAgRlNVVUNQIGRv ZXMKKysgICAgIG5vdCBzdXBwb3J0IGBYJyByZXF1ZXN0cywgYW5kIGFsd2F5cyByZXNwb25kcyB3 aXRoIGBYTicuCisrCisrICAgIGBYWScKKysgICAgICAgICAgVGhlIHJlcXVlc3Qgd2FzIGFjY2Vw dGVkLCBhbmQgdGhlIGFwcHJvcHJpYXRlIGZpbGUgdHJhbnNmZXIKKysgICAgICAgICAgY29tbWFu ZHMgaGF2ZSBiZWVuIHF1ZXVlZCB1cCBmb3IgbGF0ZXIgcHJvY2Vzc2luZy4KKysKKysgICAgYFhO JworKyAgICAgICAgICBUaGUgcmVxdWVzdCB3YXMgZGVuaWVkLiAgTm8gcGFydGljdWxhciByZWFz b24gaXMgZ2l2ZW4uCisrCisrICAgICBJbiBlaXRoZXIgY2FzZSwgdGhlIG1hc3RlciB3aWxsIHRo ZW4gc2VuZCBhbm90aGVyIGNvbW1hbmQuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6 IFRoZSBFIENvbW1hbmQsICBOZXh0OiBUaGUgSCBDb21tYW5kLCAgUHJldjogVGhlIFggQ29tbWFu ZCwgIFVwOiBVVUNQIFByb3RvY29sIENvbW1hbmRzCisrCisrNi41LjIuNCBUaGUgRSBDb21tYW5k CisrLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisrCisrbWFzdGVyOiBgRSBGUk9NIFRPIFVTRVIgLU9Q VElPTlMgVEVNUCBNT0RFIE5PVElGWSBTSVpFIENPTU1BTkQnCisrICAgICBUaGUgYEUnIGNvbW1h bmQgaXMgb25seSBzdXBwb3J0ZWQgYnkgVGF5bG9yIFVVQ1AgMS4wNCBhbmQgdXAuICBJdAorKyAg ICAgaXMgdXNlZCB0byBtYWtlIGFuIGV4ZWN1dGlvbiByZXF1ZXN0IHdpdGhvdXQgcmVxdWlyaW5n IGEgc2VwYXJhdGUKKysgICAgIGBYLionIGZpbGUuICAqTm90ZSBFeGVjdXRpb24gRmlsZSBGb3Jt YXQ6Oi4gIEl0IGlzIG9ubHkgdXNlZCB3aGVuCisrICAgICB0aGUgY29tbWFuZCB0byBiZSBleGVj dXRlZCByZXF1aXJlcyBhIHNpbmdsZSBpbnB1dCBmaWxlIHdoaWNoIGlzCisrICAgICBwYXNzZWQg dG8gaXQgYXMgc3RhbmRhcmQgaW5wdXQuCisrCisrICAgICBBbGwgdGhlIGZpZWxkcyBoYXZlIHRo ZSBzYW1lIG1lYW5pbmcgYXMgdGhleSBkbyBmb3IgYW4gYFMnIGNvbW1hbmQsCisrICAgICBleGNl cHQgZm9yIE9QVElPTlMgYW5kIENPTU1BTkQuCisrCisrICAgIE9QVElPTlMKKysgICAgICAgICAg QSBsaXN0IG9mIG9wdGlvbnMgdG8gY29udHJvbCB0aGUgdHJhbnNmZXIuICBUaGUgZm9sbG93aW5n CisrICAgICAgICAgIG9wdGlvbnMgYXJlIGRlZmluZWQgKGFsbCBvcHRpb25zIGFyZSBzaW5nbGUg Y2hhcmFjdGVycyk6CisrICAgICAgICAgYEMnCisrICAgICAgICAgICAgICAgVGhlIGZpbGUgaGFz IGJlZW4gY29waWVkIHRvIHRoZSBzcG9vbCBkaXJlY3RvcnkgKHRoZQorKyAgICAgICAgICAgICAg IG1hc3RlciBzaG91bGQgdXNlIFRFTVAgcmF0aGVyIHRoYW4gRlJPTSkuCisrCisrICAgICAgICAg YGMnCisrICAgICAgICAgICAgICAgVGhlIGZpbGUgaGFzIG5vdCBiZWVuIGNvcGllZCB0byB0aGUg c3Bvb2wgZGlyZWN0b3J5CisrICAgICAgICAgICAgICAgKHRoaXMgaXMgdGhlIGRlZmF1bHQpLgor KworKyAgICAgICAgIGBOJworKyAgICAgICAgICAgICAgIE5vIG1haWwgbWVzc2FnZSBzaG91bGQg YmUgc2VudCwgZXZlbiBpZiB0aGUgY29tbWFuZAorKyAgICAgICAgICAgICAgIGZhaWxzLiAgVGhp cyBpcyB0aGUgZXF1aXZhbGVudCBvZiB0aGUgYE4nIGNvbW1hbmQgaW4gYW4KKysgICAgICAgICAg ICAgICBgWC4qJyBmaWxlLgorKworKyAgICAgICAgIGBaJworKyAgICAgICAgICAgICAgIEEgbWFp bCBtZXNzYWdlIHNob3VsZCBiZSBzZW50IGlmIHRoZSBjb21tYW5kIGZhaWxzICh0aGlzCisrICAg ICAgICAgICAgICAgaXMgZ2VuZXJhbGx5IHRoZSBkZWZhdWx0IGluIGFueSBjYXNlKS4gIFRoaXMg aXMgdGhlCisrICAgICAgICAgICAgICAgZXF1aXZhbGVudCBvZiB0aGUgYFonIGNvbW1hbmQgaW4g YW4gYFguKicgZmlsZS4KKysKKysgICAgICAgICBgUicKKysgICAgICAgICAgICAgICBNYWlsIG1l c3NhZ2VzIGFib3V0IHRoZSBleGVjdXRpb24gc2hvdWxkIGJlIHNlbnQgdG8gdGhlCisrICAgICAg ICAgICAgICAgYWRkcmVzcyBpbiB0aGUgTk9USUZZIGZpZWxkLiAgVGhpcyBpcyB0aGUgZXF1aXZh bGVudCBvZgorKyAgICAgICAgICAgICAgIHRoZSBgUicgY29tbWFuZCBpbiBhbiBgWC4qJyBmaWxl LgorKworKyAgICAgICAgIGBlJworKyAgICAgICAgICAgICAgIFRoZSBleGVjdXRpb24gc2hvdWxk IGJlIGRvbmUgd2l0aCBgL2Jpbi9zaCcuICBUaGlzIGlzIHRoZQorKyAgICAgICAgICAgICAgIGVx dWl2YWxlbnQgb2YgdGhlIGBlJyBjb21tYW5kIGluIGFuIGBYLionIGZpbGUuCisrCisrICAgICAg ICAgYHEnCisrICAgICAgICAgICAgICAgQmFja3NsYXNoIHF1b3RpbmcgaXMgYXBwbGllZCB0byB0 aGUgRlJPTSwgVE8sIFVTRVIsIGFuZAorKyAgICAgICAgICAgICAgIE5PVElGWSBhcmd1bWVudHMu ICAqTm90ZSBVVUNQIFByb3RvY29sIENvbW1hbmRzOjouICBUaGlzCisrICAgICAgICAgICAgICAg b3B0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIFRheWxvciBVVUNQIHZlcnNpb24gMS4wNy4gIE5vdGUK KysgICAgICAgICAgICAgICB0aGF0IHRoZSBDT01NQU5EIGFyZ3VtZW50IGlzIG5vdCBiYWNrc2xh c2ggcXVvdGVkLS10aGF0CisrICAgICAgICAgICAgICAgYXJndW1lbnQgaXMgZGVmaW5lZCBhcyB0 aGUgcmVtYWluZGVyIG9mIHRoZSBsaW5lLCBhbmQgc28KKysgICAgICAgICAgICAgICBpcyBhbHJl YWR5IHBlcm1pdHRlZCB0byBjb250YWluIGFueSBjaGFyYWN0ZXIuCisrCisrICAgIENPTU1BTkQK KysgICAgICAgICAgVGhlIGNvbW1hbmQgd2hpY2ggc2hvdWxkIGJlIGV4ZWN1dGVkLiAgVGhpcyBp cyB0aGUgZXF1aXZhbGVudAorKyAgICAgICAgICBvZiB0aGUgYEMnIGNvbW1hbmQgaW4gYW4gYFgu KicgZmlsZS4KKysKKysgICAgIFRoZSBzbGF2ZSB0aGVuIHJlc3BvbmRzIHdpdGggYW4gYEUnIGNv bW1hbmQgcmVzcG9uc2UuICBUaGVzZSBhcmUKKysgICAgIHRoZSBzYW1lIGFzIHRoZSBgUycgY29t bWFuZCByZXNwb25zZXMsIGJ1dCB0aGUgaW5pdGlhbCBjaGFyYWN0ZXIgaXMKKysgICAgIGBFJyBy YXRoZXIgdGhhbiBgUycuCisrCisrICAgICBJZiB0aGUgc2xhdmUgcmVzcG9uZHMgd2l0aCBgRVkn LCB0aGUgZmlsZSB0cmFuc2ZlciBiZWdpbnMuICBXaGVuCisrICAgICB0aGUgZmlsZSB0cmFuc2Zl ciBpcyBjb21wbGV0ZSwgdGhlIHNsYXZlIHNlbmRzIGEgYEMnIGNvbW1hbmQKKysgICAgIHJlc3Bv bnNlLCBqdXN0IGFzIGZvciB0aGUgYFMnIGNvbW1hbmQuICBBZnRlciBhIHN1Y2Nlc3NmdWwgZmls ZQorKyAgICAgdHJhbnNmZXIsIHRoZSBzbGF2ZSBpcyByZXNwb25zaWJsZSBmb3IgYXJyYW5naW5n IGZvciB0aGUgY29tbWFuZAorKyAgICAgdG8gYmUgZXhlY3V0ZWQuICBUaGUgdHJhbnNmZXJyZWQg ZmlsZSBpcyBwYXNzZWQgYXMgc3RhbmRhcmQgaW5wdXQsCisrICAgICBhcyB0aG91Z2ggaXQgd2Vy ZSBuYW1lZCBpbiB0aGUgYEknIGFuZCBgRicgY29tbWFuZHMgb2YgYW4gYFguKicKKysgICAgIGZp bGUuCisrCisrICAgICBBZnRlciB0aGUgYEMnIGNvbW1hbmQgcmVzcG9uc2UgaGFzIGJlZW4gcmVj ZWl2ZWQgKGluIHRoZSBgRVknCisrICAgICBjYXNlKSBvciBpbW1lZGlhdGVseSAoaW4gYW4gYEVO JyBjYXNlKSB0aGUgbWFzdGVyIHdpbGwgc2VuZCBhbm90aGVyCisrICAgICBjb21tYW5kLgorKwor Kx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBUaGUgSCBDb21tYW5kLCAgUHJldjogVGhlIEUg Q29tbWFuZCwgIFVwOiBVVUNQIFByb3RvY29sIENvbW1hbmRzCisrCisrNi41LjIuNSBUaGUgSCBD b21tYW5kCisrLi4uLi4uLi4uLi4uLi4uLi4uLi4uCisrCisrbWFzdGVyOiBgSCcKKysgICAgIFRo aXMgaXMgdXNlZCBieSB0aGUgbWFzdGVyIHRvIGhhbmcgdXAgdGhlIGNvbm5lY3Rpb24uICBUaGUg c2xhdmUKKysgICAgIHdpbGwgcmVzcG9uZCB3aXRoIGFuIGBIJyBjb21tYW5kIHJlc3BvbnNlLgor KworKyAgICBgSFknCisrICAgICAgICAgIFRoZSBzbGF2ZSBhZ3JlZXMgdG8gaGFuZyB1cCB0aGUg Y29ubmVjdGlvbi4gIEluIHRoaXMgY2FzZSB0aGUKKysgICAgICAgICAgbWFzdGVyIHNlbmRzIGFu b3RoZXIgYEhZJyBjb21tYW5kLiAgSW4gc29tZSBVVUNQIHBhY2thZ2VzIHRoZQorKyAgICAgICAg ICBzbGF2ZSB3aWxsIHRoZW4gc2VuZCBhIHRoaXJkIGBIWScgY29tbWFuZC4gIEF0IHRoaXMgcG9p bnQgdGhlCisrICAgICAgICAgIHByb3RvY29sIGlzIHNodXQgZG93biwgYW5kIHRoZSBmaW5hbCBo YW5kc2hha2UgaXMgYmVndW4uCisrCisrICAgIGBITicKKysgICAgICAgICAgVGhlIHNsYXZlIGRv ZXMgbm90IGFncmVlIHRvIGhhbmcgdXAuICBJbiB0aGlzIGNhc2UgdGhlIG1hc3RlcgorKyAgICAg ICAgICBhbmQgdGhlIHNsYXZlIGV4Y2hhbmdlIHJvbGVzLiAgVGhlIG5leHQgY29tbWFuZCB3aWxs IGJlIHNlbnQKKysgICAgICAgICAgYnkgdGhlIGZvcm1lciBzbGF2ZSwgd2hpY2ggaXMgdGhlIG5l dyBtYXN0ZXIuICBUaGUgcm9sZXMgbWF5CisrICAgICAgICAgIGJlIHJldmVyc2VkIHNldmVyYWwg dGltZXMgZHVyaW5nIGEgc2luZ2xlIGNvbm5lY3Rpb24uCisrCisrHworK0ZpbGU6IHV1Y3AuaW5m bywgIE5vZGU6IFRoZSBGaW5hbCBIYW5kc2hha2UsICBQcmV2OiBVVUNQIFByb3RvY29sIENvbW1h bmRzLCAgVXA6IFVVQ1AgUHJvdG9jb2wKKysKKys2LjUuMyBUaGUgRmluYWwgSGFuZHNoYWtlCisr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK0FmdGVyIHRoZSBwcm90b2NvbCBoYXMgYmVl biBzaHV0IGRvd24sIHRoZSBmaW5hbCBoYW5kc2hha2UgaXMgcGVyZm9ybWVkLgorK1RoaXMgaGFu ZHNoYWtlIGhhcyBubyByZWFsIHB1cnBvc2UsIGFuZCBzb21lIFVVQ1AgcGFja2FnZXMgc2ltcGx5 IGRyb3AKKyt0aGUgY29ubmVjdGlvbiByYXRoZXIgdGhhbiBkbyBpdCAoaW4gZmFjdCwgc29tZSB3 aWxsIGRyb3AgdGhlIGNvbm5lY3Rpb24KKytpbW1lZGlhdGVseSBhZnRlciBib3RoIHNpZGVzIGFn cmVlIHRvIGhhbmd1cCwgd2l0aG91dCBldmVuIGNsb3NpbmcgZG93bgorK3RoZSBwcm90b2NvbCku CisrCisrY2FsbGVyOiBgXDAyME9PT09PT1wwMDAnCisrCisrY2FsbGVkOiBgXDAyME9PT09PT09c MDAwJworKworKyAgIFRoYXQgaXMsIHRoZSBjYWxsaW5nIFVVQ1Agc2VuZHMgc2l4IGBPJyBjaGFy YWN0ZXJzIGFuZCB0aGUgY2FsbGVkCisrVVVDUCByZXBsaWVzIHdpdGggc2V2ZW4gYE8nIGNoYXJh Y3RlcnMuICBTb21lIFVVQ1AgcGFja2FnZXMgYWx3YXlzIHNlbmQKKytzaXggYE8nIGNoYXJhY3Rl cnMuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGcgUHJvdG9jb2wsICBOZXh0OiBm IFByb3RvY29sLCAgUHJldjogVVVDUCBQcm90b2NvbCwgIFVwOiBQcm90b2NvbHMKKysKKys2LjYg VVVDUCBgZycgUHJvdG9jb2wKKys9PT09PT09PT09PT09PT09PT09PT0KKysKKytUaGUgYGcnIHBy b3RvY29sIGlzIGEgcGFja2V0IGJhc2VkIGZsb3cgY29udHJvbGxlZCBlcnJvciBjb3JyZWN0aW5n CisrcHJvdG9jb2wgdGhhdCByZXF1aXJlcyBhbiBlaWdodCBiaXQgY2xlYXIgY29ubmVjdGlvbi4g IEl0IGlzIHRoZQorK29yaWdpbmFsIFVVQ1AgcHJvdG9jb2wsIGFuZCBpcyBzdXBwb3J0ZWQgYnkg YWxsIFVVQ1AgaW1wbGVtZW50YXRpb25zLgorK01hbnkgaW1wbGVtZW50YXRpb25zIG9mIGl0IGFy ZSBvbmx5IGFibGUgdG8gc3VwcG9ydCBzbWFsbCB3aW5kb3cgYW5kCisrcGFja2V0IHNpemVzLCBz cGVjaWZpY2FsbHkgYSB3aW5kb3cgc2l6ZSBvZiAzIGFuZCBhIHBhY2tldCBzaXplIG9mIDY0Cisr Ynl0ZXMsIGJ1dCB0aGUgcHJvdG9jb2wgaXRzZWxmIGNhbiBzdXBwb3J0IHVwIHRvIGEgd2luZG93 IHNpemUgb2YgNyBhbmQKKythIHBhY2tldCBzaXplIG9mIDQwOTYgYnl0ZXMuICBDb21wbGFpbnRz IGFib3V0IHRoZSBpbmVmZmljaWVuY3kgb2YgdGhlCisrYGcnIHByb3RvY29sIGdlbmVyYWxseSBy ZWZlciB0byBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMsIHJhdGhlciB0aGFuCisrdG8gdGhlIGNv cnJlY3RseSBpbXBsZW1lbnRlZCBwcm90b2NvbC4KKysKKysgICBUaGUgYGcnIHByb3RvY29sIHdh cyBvcmlnaW5hbGx5IGRlc2lnbmVkIGZvciBnZW5lcmFsIHBhY2tldCBkcml2ZXJzLAorK2FuZCB0 aHVzIGNvbnRhaW5zIHNvbWUgZmVhdHVyZXMgdGhhdCBhcmUgbm90IHVzZWQgYnkgVVVDUCwgaW5j bHVkaW5nIGFuCisrYWx0ZXJuYXRlIGRhdGEgY2hhbm5lbCBhbmQgdGhlIGFiaWxpdHkgdG8gcmVu ZWdvdGlhdGUgcGFja2V0IGFuZCB3aW5kb3cKKytzaXplcyBkdXJpbmcgdGhlIGNvbW11bmljYXRp b24gc2Vzc2lvbi4KKysKKysgICBUaGUgYGcnIHByb3RvY29sIGlzIHNwb29mZWQgYnkgbWFueSBU ZWxlYml0IG1vZGVtcy4gIFdoZW4gc3Bvb2ZpbmcKKytpcyBpbiBlZmZlY3QsIGVhY2ggVGVsZWJp dCBtb2RlbSB1c2VzIHRoZSBgZycgcHJvdG9jb2wgdG8gY29tbXVuaWNhdGUKKyt3aXRoIHRoZSBh dHRhY2hlZCBjb21wdXRlciwgYnV0IHRoZSBkYXRhIGJldHdlZW4gdGhlIG1vZGVtcyBpcyBzZW50 CisrdXNpbmcgYSBUZWxlYml0IHByb3ByaWV0YXJ5IGVycm9yIGNvcnJlY3RpbmcgcHJvdG9jb2wu ICBUaGlzIGFsbG93cyBmb3IKKyt2ZXJ5IGhpZ2ggdGhyb3VnaHB1dCBvdmVyIHRoZSBUZWxlYml0 IGNvbm5lY3Rpb24sIHdoaWNoLCBiZWNhdXNlIGl0IGlzCisraGFsZi1kdXBsZXgsIHdvdWxkIG5v dCBub3JtYWxseSBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgYGcnIHByb3RvY29sIHZlcnkKKyt3ZWxs IGF0IGFsbC4gIFdoZW4gYSBUZWxlYml0IGlzIHNwb29maW5nIHRoZSBgZycgcHJvdG9jb2wsIGl0 IGZvcmNlcworK3RoZSBwYWNrZXQgc2l6ZSB0byBiZSA2NCBieXRlcyBhbmQgdGhlIHdpbmRvdyBz aXplIHRvIGJlIDMuCisrCisrICAgVGhpcyBkaXNjdXNzaW9uIG9mIHRoZSBgZycgcHJvdG9jb2wg ZXhwbGFpbnMgaG93IGl0IHdvcmtzLCBidXQgZG9lcworK25vdCBkaXNjdXNzIHVzZWZ1bCBlcnJv ciBoYW5kbGluZyB0ZWNobmlxdWVzLiAgU29tZSBkaXNjdXNzaW9uIG9mIHRoaXMKKytjYW4gYmUg Zm91bmQgaW4gSmFtaWUgRS4gSGFucmFoYW4ncyBwYXBlciwgY2l0ZWQgYWJvdmUgKCpub3RlIFVV Q1AKKytQcm90b2NvbCBTb3VyY2VzOjopLgorKworKyAgIEFsbCBgZycgcHJvdG9jb2wgY29tbXVu aWNhdGlvbiBpcyBkb25lIHdpdGggcGFja2V0cy4gIEVhY2ggcGFja2V0CisrYmVnaW5zIHdpdGgg YSBzaXggYnl0ZSBoZWFkZXIuICBDb250cm9sIHBhY2tldHMgY29uc2lzdCBvbmx5IG9mIHRoZQor K2hlYWRlci4gIERhdGEgcGFja2V0cyBjb250YWluIGFkZGl0aW9uYWwgZGF0YS4KKysKKysgICBU aGUgaGVhZGVyIGlzIGFzIGZvbGxvd3M6CisrCisrYFwwMjAnCisrICAgICBFdmVyeSBwYWNrZXQg YmVnaW5zIHdpdGggYSBgXlAnLgorKworK0sgKDEgPD0gSyA8PSA5KQorKyAgICAgVGhlIEsgdmFs dWUgaXMgYWx3YXlzIDkgZm9yIGEgY29udHJvbCBwYWNrZXQuICBGb3IgYSBkYXRhIHBhY2tldCwK KysgICAgIHRoZSBLIHZhbHVlIGluZGljYXRlcyBob3cgbXVjaCBkYXRhIGZvbGxvd3MgdGhlIHNp eCBieXRlIGhlYWRlci4KKysgICAgIFRoZSBhbW91bnQgb2YgZGF0YSBpcyAyICoqIChLICsgNCks IHdoZXJlICoqIGluZGljYXRlcworKyAgICAgZXhwb25lbnRpYXRpb24uICBUaHVzIGEgSyB2YWx1 ZSBvZiAxIG1lYW5zIDMyIGRhdGEgYnl0ZXMgYW5kIGEgSworKyAgICAgdmFsdWUgb2YgOCBtZWFu cyA0MDk2IGRhdGEgYnl0ZXMuICBUaGUgSyB2YWx1ZSBmb3IgYSBkYXRhIHBhY2tldAorKyAgICAg bXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDggaW5jbHVzaXZlLgorKworK2NoZWNrc3VtIGxvdyBieXRl CisrY2hlY2tzdW0gaGlnaCBieXRlCisrICAgICBUaGUgY2hlY2tzdW0gdmFsdWUgaXMgZGVzY3Jp YmVkIGJlbG93LgorKworK2NvbnRyb2wgYnl0ZQorKyAgICAgVGhlIGNvbnRyb2wgYnl0ZSBpbmRp Y2F0ZXMgdGhlIHR5cGUgb2YgcGFja2V0LCBhbmQgaXMgZGVzY3JpYmVkCisrICAgICBiZWxvdy4K KysKKyt4b3IgYnl0ZQorKyAgICAgVGhpcyBieXRlIGlzIHRoZSB4b3Igb2YgSywgdGhlIGNoZWNr c3VtIGxvdyBieXRlLCB0aGUgY2hlY2tzdW0KKysgICAgIGhpZ2ggYnl0ZSBhbmQgdGhlIGNvbnRy b2wgYnl0ZSAoaS5lLiwgdGhlIHNlY29uZCwgdGhpcmQsIGZvdXJ0aCBhbmQKKysgICAgIGZpZnRo IGhlYWRlciBieXRlcykuICBJdCBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IHRoZSBoZWFkZXIgZGF0 YSBpcworKyAgICAgdmFsaWQuCisrCisrICAgVGhlIGNvbnRyb2wgYnl0ZSBpbiB0aGUgaGVhZGVy IGlzIGNvbXBvc2VkIG9mIHRocmVlIGJpdCBmaWVsZHMsCisrcmVmZXJyZWQgdG8gaGVyZSBhcyBU VCAodHdvIGJpdHMpLCBYWFggKHRocmVlIGJpdHMpIGFuZCBZWVkgKHRocmVlCisrYml0cykuICBU aGUgY29udHJvbCBpcyBUVFhYWFlZWSwgb3IgYChUVCA8PCA2KSArIChYWFggPDwgMykgKyBZWVkn LgorKworKyAgIFRoZSBUVCBmaWVsZCB0YWtlcyBvbiB0aGUgZm9sbG93aW5nIHZhbHVlczoKKysK KytgMCcKKysgICAgIFRoaXMgaXMgYSBjb250cm9sIHBhY2tldC4gIEluIHRoaXMgY2FzZSB0aGUg SyBieXRlIGluIHRoZSBoZWFkZXIKKysgICAgIG11c3QgYmUgOS4gIFRoZSBYWFggZmllbGQgaW5k aWNhdGVzIHRoZSB0eXBlIG9mIGNvbnRyb2wgcGFja2V0OworKyAgICAgdGhlc2UgdHlwZXMgYXJl IGRlc2NyaWJlZCBiZWxvdy4KKysKKytgMScKKysgICAgIFRoaXMgaXMgYW4gYWx0ZXJuYXRlIGRh dGEgY2hhbm5lbCBwYWNrZXQuICBUaGlzIGlzIG5vdCB1c2VkIGJ5CisrICAgICBVVUNQLgorKwor K2AyJworKyAgICAgVGhpcyBpcyBhIGRhdGEgcGFja2V0LCBhbmQgdGhlIGVudGlyZSBjb250ZW50 cyBvZiB0aGUgYXR0YWNoZWQgZGF0YQorKyAgICAgZmllbGQgKHdob3NlIGxlbmd0aCBpcyBnaXZl biBieSB0aGUgSyBieXRlIGluIHRoZSBoZWFkZXIpIGFyZQorKyAgICAgdmFsaWQuICBUaGUgWFhY IGFuZCBZWVkgZmllbGRzIGFyZSBkZXNjcmliZWQgYmVsb3cuCisrCisrYDMnCisrICAgICBUaGlz IGlzIGEgc2hvcnQgZGF0YSBwYWNrZXQuICBMZXQgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBmaWVs ZCAoYXMKKysgICAgIGdpdmVuIGJ5IHRoZSBLIGJ5dGUgaW4gdGhlIGhlYWRlcikgYmUgTC4gIExl dCB0aGUgZmlyc3QgYnl0ZSBpbgorKyAgICAgdGhlIGRhdGEgZmllbGQgYmUgQjEuICBJZiBCMSBp cyBsZXNzIHRoYW4gMTI4IChpZiB0aGUgbW9zdAorKyAgICAgc2lnbmlmaWNhbnQgYml0IG9mIEIx IGlzIDApLCB0aGVuIHRoZXJlIGFyZSBgTCAtIEIxJyB2YWxpZCBieXRlcworKyAgICAgb2YgZGF0 YSBpbiB0aGUgZGF0YSBmaWVsZCwgYmVnaW5uaW5nIHdpdGggdGhlIHNlY29uZCBieXRlLiAgSWYg YEIxCisrICAgICA+PSAxMjgnLCBsZXQgQjIgYmUgdGhlIHNlY29uZCBieXRlIGluIHRoZSBkYXRh IGZpZWxkLiAgVGhlbiB0aGVyZQorKyAgICAgYXJlIGBMIC0gKChCMSAmIDB4N2YpICsgKEIyIDw8 IDcpKScgdmFsaWQgYnl0ZXMgb2YgZGF0YSBpbiB0aGUKKysgICAgIGRhdGEgZmllbGQsIGJlZ2lu bmluZyB3aXRoIHRoZSB0aGlyZCBieXRlLiAgSW4gYWxsIGNhc2VzIEwgYnl0ZXMKKysgICAgIG9m IGRhdGEgYXJlIHNlbnQgKGFuZCBhbGwgZGF0YSBieXRlcyBwYXJ0aWNpcGF0ZSBpbiB0aGUgY2hl Y2tzdW0KKysgICAgIGNhbGN1bGF0aW9uKSBidXQgc29tZSBvZiB0aGUgdHJhaWxpbmcgYnl0ZXMg bWF5IGJlIGRyb3BwZWQgYnkgdGhlCisrICAgICByZWNlaXZlci4gIFRoZSBYWFggYW5kIFlZWSBm aWVsZHMgYXJlIGRlc2NyaWJlZCBiZWxvdy4KKysKKysgICBJbiBhIGRhdGEgcGFja2V0IChzaG9y dCBvciBub3QpIHRoZSBYWFggZmllbGQgZ2l2ZXMgdGhlIHNlcXVlbmNlCisrbnVtYmVyIG9mIHRo ZSBwYWNrZXQuICBUaHVzIHNlcXVlbmNlIG51bWJlcnMgY2FuIHJhbmdlIGZyb20gMCB0byA3LAor K2luY2x1c2l2ZS4gIFRoZSBZWVkgZmllbGQgZ2l2ZXMgdGhlIHNlcXVlbmNlIG51bWJlciBvZiB0 aGUgbGFzdAorK2NvcnJlY3RseSByZWNlaXZlZCBwYWNrZXQuCisrCisrICAgRWFjaCBjb21tdW5p Y2F0aW9uIGRpcmVjdGlvbiB1c2VzIGEgd2luZG93IHdoaWNoIGluZGljYXRlcyBob3cgbWFueQor K3VuYWNrbm93bGVkZ2VkIHBhY2tldHMgbWF5IGJlIHRyYW5zbWl0dGVkIGJlZm9yZSB3YWl0aW5n IGZvciBhbgorK2Fja25vd2xlZGdlbWVudC4gIFRoZSB3aW5kb3cgbWF5IHJhbmdlIGZyb20gMSB0 byA3LCBhbmQgbWF5IGJlIGRpZmZlcmVudAorK2luIGVhY2ggZGlyZWN0aW9uLiBGb3IgZXhhbXBs ZSwgaWYgdGhlIHdpbmRvdyBpcyAzIGFuZCB0aGUgbGFzdCBwYWNrZXQKKythY2tub3dsZWRnZWQg d2FzIHBhY2tldCBudW1iZXIgNiwgcGFja2V0IG51bWJlcnMgNywgMCBhbmQgMSBtYXkgYmUgc2Vu dAorK2J1dCB0aGUgc2VuZGVyIG11c3Qgd2FpdCBmb3IgYW4gYWNrbm93bGVkZ2VtZW50IGJlZm9y ZSBzZW5kaW5nIHBhY2tldAorK251bWJlciAyLiAgVGhpcyBhY2tub3dsZWRnZW1lbnQgY291bGQg Y29tZSBhcyB0aGUgWVlZIGZpZWxkIG9mIGEgZGF0YQorK3BhY2tldCwgb3IgYXMgdGhlIFlZWSBm aWVsZCBvZiBhIGBSSicgb3IgYFJSJyBjb250cm9sIHBhY2tldCAoZGVzY3JpYmVkCisrYmVsb3cp LgorKworKyAgIEVhY2ggcGFja2V0IG11c3QgYmUgdHJhbnNtaXR0ZWQgaW4gb3JkZXIgKHRoZSBz ZW5kZXIgbWF5IG5vdCBza2lwCisrc2VxdWVuY2UgbnVtYmVycykuICBFYWNoIHBhY2tldCBtdXN0 IGJlIGFja25vd2xlZGdlZCwgYW5kIGVhY2ggcGFja2V0CisrbXVzdCBiZSBhY2tub3dsZWRnZWQg aW4gb3JkZXIuCisrCisrICAgSW4gYSBjb250cm9sIHBhY2tldCwgdGhlIFhYWCBmaWVsZCB0YWtl cyBvbiB0aGUgZm9sbG93aW5nIHZhbHVlczoKKysKKysxIGBDTE9TRScKKysgICAgIFRoZSBjb25u ZWN0aW9uIHNob3VsZCBiZSBjbG9zZWQgaW1tZWRpYXRlbHkuICBUaGlzIGlzIHR5cGljYWxseQor KyAgICAgc2VudCB3aGVuIG9uZSBzaWRlIGhhcyBzZWVuIHRvbyBtYW55IGVycm9ycyBhbmQgd2Fu dHMgdG8gZ2l2ZSB1cC4KKysgICAgIEl0IGlzIGFsc28gc2VudCB3aGVuIHNodXR0aW5nIGRvd24g dGhlIHByb3RvY29sLiAgSWYgYW4gdW5leHBlY3RlZAorKyAgICAgYENMT1NFJyBwYWNrZXQgaXMg cmVjZWl2ZWQsIGEgYENMT1NFJyBwYWNrZXQgc2hvdWxkIGJlIHNlbnQgaW4KKysgICAgIHJlcGx5 IGFuZCB0aGUgYGcnIHByb3RvY29sIHNob3VsZCBoYWx0LCBjYXVzaW5nIFVVQ1AgdG8gZW50ZXIg dGhlCisrICAgICBmaW5hbCBoYW5kc2hha2UuCisrCisrMiBgUkonIG9yIGBOQUsnCisrICAgICBU aGUgbGFzdCBwYWNrZXQgd2FzIG5vdCByZWNlaXZlZCBjb3JyZWN0bHkuICBUaGUgWVlZIGZpZWxk CisrICAgICBjb250YWlucyB0aGUgc2VxdWVuY2UgbnVtYmVyIG9mIHRoZSBsYXN0IGNvcnJlY3Rs eSByZWNlaXZlZCBwYWNrZXQuCisrCisrMyBgU1JKJworKyAgICAgU2VsZWN0aXZlIHJlamVjdC4g IFRoZSBZWVkgZmllbGQgY29udGFpbnMgdGhlIHNlcXVlbmNlIG51bWJlciBvZiBhCisrICAgICBw YWNrZXQgdGhhdCB3YXMgbm90IHJlY2VpdmVkIGNvcnJlY3RseSwgYW5kIHNob3VsZCBiZQorKyAg ICAgcmV0cmFuc21pdHRlZC4gIFRoaXMgaXMgbm90IHVzZWQgYnkgVVVDUCwgYW5kIG1vc3QgaW1w bGVtZW50YXRpb25zCisrICAgICB3aWxsIG5vdCByZWNvZ25pemUgaXQuCisrCisrNCBgUlInIG9y IGBBQ0snCisrICAgICBQYWNrZXQgYWNrbm93bGVkZ2VtZW50LiAgVGhlIFlZWSBmaWVsZCBjb250 YWlucyB0aGUgc2VxdWVuY2UKKysgICAgIG51bWJlciBvZiB0aGUgbGFzdCBjb3JyZWN0bHkgcmVj ZWl2ZWQgcGFja2V0LgorKworKzUgYElOSVRDJworKyAgICAgVGhpcmQgaW5pdGlhbGl6YXRpb24g cGFja2V0LiAgVGhlIFlZWSBmaWVsZCBjb250YWlucyB0aGUgbWF4aW11bQorKyAgICAgd2luZG93 IHNpemUgdG8gdXNlLgorKworKzYgYElOSVRCJworKyAgICAgU2Vjb25kIGluaXRpYWxpemF0aW9u IHBhY2tldC4gIFRoZSBZWVkgZmllbGQgY29udGFpbnMgdGhlIHBhY2tldAorKyAgICAgc2l6ZSB0 byB1c2UuICBJdCByZXF1ZXN0cyBhIHNpemUgb2YgMiAqKiAoWVlZICsgNSkuICBOb3RlIHRoYXQK KysgICAgIHRoaXMgaXMgbm90IHRoZSBzYW1lIGNvZGluZyB1c2VkIGZvciB0aGUgSyBieXRlIGlu IHRoZSBwYWNrZXQKKysgICAgIGhlYWRlciAoaXQgaXMgMSBsZXNzKS4gIE1vc3QgVVVDUCBpbXBs ZW1lbnRhdGlvbnMgdGhhdCByZXF1ZXN0IGEKKysgICAgIHBhY2tldCBzaXplIGxhcmdlciB0aGFu IDY0IGJ5dGVzIGNhbiBoYW5kbGUgYW55IHBhY2tldCBzaXplIHVwIHRvCisrICAgICB0aGF0IHNw ZWNpZmllZC4KKysKKys3IGBJTklUQScKKysgICAgIEZpcnN0IGluaXRpYWxpemF0aW9uIHBhY2tl dC4gIFRoZSBZWVkgZmllbGQgY29udGFpbnMgdGhlIG1heGltdW0KKysgICAgIHdpbmRvdyBzaXpl IHRvIHVzZS4KKysKKysgICBUbyBjb21wdXRlIHRoZSBjaGVja3N1bSwgY2FsbCB0aGUgY29udHJv bCBieXRlICh0aGUgZmlmdGggYnl0ZSBpbiB0aGUKKytoZWFkZXIpIEMuCisrCisrICAgVGhlIGNo ZWNrc3VtIG9mIGEgY29udHJvbCBwYWNrZXQgaXMgc2ltcGx5IGAweGFhYWEgLSBDJy4KKysKKysg ICBUaGUgY2hlY2tzdW0gb2YgYSBkYXRhIHBhY2tldCBpcyBgMHhhYWFhIC0gKENIRUNLIF4gQykn LCB3aGVyZSBgXicKKytkZW5vdGVzIGV4Y2x1c2l2ZSBvciwgYW5kIENIRUNLIGlzIHRoZSByZXN1 bHQgb2YgdGhlIGZvbGxvd2luZyByb3V0aW5lCisrYXMgcnVuIG9uIHRoZSBjb250ZW50cyBvZiB0 aGUgZGF0YSBmaWVsZCAoZXZlcnkgYnl0ZSBpbiB0aGUgZGF0YSBmaWVsZAorK3BhcnRpY2lwYXRl cyBpbiB0aGUgY2hlY2tzdW0sIGV2ZW4gZm9yIGEgc2hvcnQgZGF0YSBwYWNrZXQpLiAgQmVsb3cg aXMKKyt0aGUgcm91dGluZSB1c2VkIGJ5IGFuIGVhcmx5IHZlcnNpb24gb2YgVGF5bG9yIFVVQ1A7 IGl0IGlzIGEgc2xpZ2h0bHkKKyttb2RpZmllZCB2ZXJzaW9uIG9mIGEgcm91dGluZSB3aGljaCBK b2huIEdpbG1vcmUgcGF0Y2hlZCBmcm9tIEcuTC4KKytDaGVzc29uJ3Mgb3JpZ2luYWwgcGFwZXIu ICBUaGUgYHonIGFyZ3VtZW50IHBvaW50cyB0byB0aGUgZGF0YSBhbmQgdGhlCisrYGMnIGFyZ3Vt ZW50IGluZGljYXRlcyBob3cgbXVjaCBkYXRhIHRoZXJlIGlzLgorKworKyAgICAgaW50CisrICAg ICBpZ2NoZWNrc3VtICh6LCBjKQorKyAgICAgICAgICByZWdpc3RlciBjb25zdCBjaGFyICp6Owor KyAgICAgICAgICByZWdpc3RlciBpbnQgYzsKKysgICAgIHsKKysgICAgICAgcmVnaXN0ZXIgdW5z aWduZWQgaW50IGljaGsxLCBpY2hrMjsKKysKKysgICAgICAgaWNoazEgPSAweGZmZmY7CisrICAg ICAgIGljaGsyID0gMDsKKysKKysgICAgICAgZG8KKysgICAgICAgICB7CisrICAgICAgICAgICBy ZWdpc3RlciB1bnNpZ25lZCBpbnQgYjsKKysKKysgICAgICAgICAgIC8qIFJvdGF0ZSBpY2hrMSBs ZWZ0LiAgKi8KKysgICAgICAgICAgIGlmICgoaWNoazEgJiAweDgwMDApID09IDApCisrICAgICAg ICAgICAgIGljaGsxIDw8PSAxOworKyAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICB7Cisr ICAgICAgICAgICAgICAgaWNoazEgPDw9IDE7CisrICAgICAgICAgICAgICAgKytpY2hrMTsKKysg ICAgICAgICAgICAgfQorKworKyAgICAgICAgICAgLyogQWRkIHRoZSBuZXh0IGNoYXJhY3RlciB0 byBpY2hrMS4gICovCisrICAgICAgICAgICBiID0gKnorKyAmIDB4ZmY7CisrICAgICAgICAgICBp Y2hrMSArPSBiOworKworKyAgICAgICAgICAgLyogQWRkIGljaGsxIHhvciB0aGUgY2hhcmFjdGVy IHBvc2l0aW9uIGluIHRoZSBidWZmZXIgY291bnRpbmcgZnJvbQorKyAgICAgICAgICAgICAgdGhl IGJhY2sgdG8gaWNoazIuICAqLworKyAgICAgICAgICAgaWNoazIgKz0gaWNoazEgXiBjOworKwor KyAgICAgICAgICAgLyogSWYgdGhlIGNoYXJhY3RlciB3YXMgemVybywgb3IgYWRkaW5nIGl0IHRv IGljaGsxIGNhdXNlZCBhbgorKyAgICAgICAgICAgICAgb3ZlcmZsb3csIHhvciBpY2hrMiB0byBp Y2hrMS4gICovCisrICAgICAgICAgICBpZiAoYiA9PSAwIHx8IChpY2hrMSAmIDB4ZmZmZikgPCBi KQorKyAgICAgICAgICAgICBpY2hrMSBePSBpY2hrMjsKKysgICAgICAgICB9CisrICAgICAgIHdo aWxlICgtLWMgPiAwKTsKKysKKysgICAgICAgcmV0dXJuIGljaGsxICYgMHhmZmZmOworKyAgICAg fQorKworKyAgIFdoZW4gdGhlIGBnJyBwcm90b2NvbCBpcyBzdGFydGVkLCB0aGUgY2FsbGluZyBV VUNQIHNlbmRzIGFuIGBJTklUQScKKytjb250cm9sIHBhY2tldCB3aXRoIHRoZSB3aW5kb3cgc2l6 ZSBpdCB3aXNoZXMgdGhlIGNhbGxlZCBVVUNQIHRvIHVzZS4KKytUaGUgY2FsbGVkIFVVQ1AgcmVz cG9uZHMgd2l0aCBhbiBgSU5JVEEnIHBhY2tldCB3aXRoIHRoZSB3aW5kb3cgc2l6ZSBpdAorK3dp c2hlcyB0aGUgY2FsbGluZyBVVUNQIHRvIHVzZS4gIFBhaXJzIG9mIGBJTklUQicgYW5kIGBJTklU QycgcGFja2V0cworK2FyZSB0aGVuIHNpbWlsYXJseSBleGNoYW5nZWQuICBXaGVuIHRoZXNlIGV4 Y2hhbmdlcyBhcmUgY29tcGxldGVkLCB0aGUKKytwcm90b2NvbCBpcyBjb25zaWRlcmVkIHRvIGhh dmUgYmVlbiBzdGFydGVkLgorKworKyAgIE5vdGUgdGhhdCB0aGUgd2luZG93IGFuZCBwYWNrZXQg c2l6ZXMgYXJlIG5vdCBhIG5lZ290aWF0aW9uLiAgRWFjaAorK3N5c3RlbSBhbm5vdW5jZXMgdGhl IHdpbmRvdyBhbmQgcGFja2V0IHNpemUgd2hpY2ggdGhlIG90aGVyIHN5c3RlbQorK3Nob3VsZCB1 c2UuICBJdCBpcyBwb3NzaWJsZSB0aGF0IGRpZmZlcmVudCB3aW5kb3cgYW5kIHBhY2tldCBzaXpl cyB3aWxsCisrYmUgdXNlZCBpbiBlYWNoIGRpcmVjdGlvbi4gIFRoZSBwcm90b2NvbCB3b3JrcyB0 aGlzIHdheSBvbiB0aGUgdGhlb3J5CisrdGhhdCBlYWNoIHN5c3RlbSBrbm93cyBob3cgbXVjaCBk YXRhIGl0IGNhbiBhY2NlcHQgd2l0aG91dCBnZXR0aW5nCisrb3ZlcnJ1bi4gIFRoZXJlZm9yZSwg ZWFjaCBzeXN0ZW0gdGVsbHMgdGhlIG90aGVyIGhvdyBtdWNoIGRhdGEgdG8gc2VuZAorK2JlZm9y ZSB3YWl0aW5nIGZvciBhbiBhY2tub3dsZWRnZW1lbnQuCisrCisrICAgV2hlbiBhIFVVQ1AgcGFj a2FnZSB0cmFuc21pdHMgYSBjb21tYW5kLCBpdCBzZW5kcyBvbmUgb3IgbW9yZSBkYXRhCisrcGFj a2V0cy4gIEFsbCB0aGUgZGF0YSBwYWNrZXRzIHdpbGwgbm9ybWFsbHkgYmUgY29tcGxldGUsIGFs dGhvdWdoIHNvbWUKKytVVUNQIHBhY2thZ2VzIG1heSBzZW5kIHRoZSBsYXN0IG9uZSBhcyBhIHNo b3J0IHBhY2tldC4gIFRoZSBjb21tYW5kCisrc3RyaW5nIGlzIHNlbnQgd2l0aCBhIHRyYWlsaW5n IG51bGwgYnl0ZSwgdG8gbGV0IHRoZSByZWNlaXZpbmcgcGFja2FnZQorK2tub3cgd2hlbiB0aGUg Y29tbWFuZCBpcyBmaW5pc2hlZC4gIFNvbWUgVVVDUCBwYWNrYWdlcyByZXF1aXJlIHRoZSBsYXN0 CisrYnl0ZSBvZiB0aGUgbGFzdCBwYWNrZXQgc2VudCB0byBiZSBudWxsLCBldmVuIGlmIHRoZSBj b21tYW5kIGVuZHMKKytlYXJsaWVyIGluIHRoZSBwYWNrZXQuICBTb21lIHBhY2thZ2VzIG1heSBy ZXF1aXJlIGFsbCB0aGUgdHJhaWxpbmcgYnl0ZXMKKytpbiB0aGUgbGFzdCBwYWNrZXQgdG8gYmUg bnVsbCwgYnV0IEkgaGF2ZSBub3QgY29uZmlybWVkIHRoaXMuCisrCisrICAgV2hlbiBhIFVVQ1Ag cGFja2FnZSBzZW5kcyBhIGZpbGUsIGl0IHdpbGwgc2VuZCBhIHNlcXVlbmNlIG9mIGRhdGEKKytw YWNrZXRzLiAgVGhlIGVuZCBvZiB0aGUgZmlsZSBpcyBzaWduYWxsZWQgYnkgYSBzaG9ydCBkYXRh IHBhY2tldAorK2NvbnRhaW5pbmcgemVybyB2YWxpZCBieXRlcyAoaXQgd2lsbCBub3JtYWxseSBi ZSBwcmVjZWVkZWQgYnkgYSBzaG9ydAorK2RhdGEgcGFja2V0IGNvbnRhaW5pbmcgdGhlIGxhc3Qg ZmV3IGJ5dGVzIGluIHRoZSBmaWxlKS4KKysKKysgICBOb3RlIHRoYXQgdGhlIHNlcXVlbmNlIG51 bWJlcnMgY292ZXIgdGhlIGVudGlyZSBjb21tdW5pY2F0aW9uCisrc2Vzc2lvbiwgaW5jbHVkaW5n IGJvdGggY29tbWFuZCBhbmQgZmlsZSBkYXRhLgorKworKyAgIFdoZW4gdGhlIHByb3RvY29sIGlz IHNodXQgZG93biwgZWFjaCBVVUNQIHBhY2thZ2Ugc2VuZHMgYSBgQ0xPU0UnCisrY29udHJvbCBw YWNrZXQuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5mbywgIE5vZGU6IGYgUHJvdG9jb2wsICBOZXh0 OiB0IFByb3RvY29sLCAgUHJldjogZyBQcm90b2NvbCwgIFVwOiBQcm90b2NvbHMKKysKKys2Ljcg VVVDUCBgZicgUHJvdG9jb2wKKys9PT09PT09PT09PT09PT09PT09PT0KKysKKytUaGUgYGYnIHBy b3RvY29sIGlzIGEgc2V2ZW4gYml0IHByb3RvY29sIHdoaWNoIGNoZWNrc3VtcyBhbiBlbnRpcmUg ZmlsZQorK2F0IGEgdGltZS4gIEl0IG9ubHkgdXNlcyB0aGUgY2hhcmFjdGVycyBiZXR3ZWVuIGBc MDQwJyBhbmQgYFwxNzYnCisrKEFTQ0lJIGBzcGFjZScgYW5kIGB+JykgaW5jbHVzaXZlLCBhcyB3 ZWxsIGFzIHRoZSBjYXJyaWFnZSByZXR1cm4KKytjaGFyYWN0ZXIuICBJdCBjYW4gYmUgdmVyeSBl ZmZpY2llbnQgZm9yIHRyYW5zZmVycmluZyB0ZXh0IG9ubHkgZGF0YSwKKytidXQgaXQgaXMgdmVy eSBpbmVmZmljaWVudCBhdCB0cmFuc2ZlcnJpbmcgZWlnaHQgYml0IGRhdGEgKHN1Y2ggYXMKKytj b21wcmVzc2VkIG5ld3MpLiAgSXQgaXMgbm90IGZsb3cgY29udHJvbGxlZCwgYW5kIHRoZSBjaGVj a3N1bSBpcworK2ZhaXJseSBpbnNlY3VyZSBvdmVyIGxhcmdlIGZpbGVzLCBzbyB1c2luZyBpdCBv dmVyIGEgc2VyaWFsIGNvbm5lY3Rpb24KKytyZXF1aXJlcyBoYW5kc2hha2luZyAoWE9OL1hPRkYg Y2FuIGJlIHVzZWQpIGFuZCBlcnJvciBjb3JyZWN0aW5nCisrbW9kZW1zLiAgU29tZSBwZW9wbGUg dGhpbmsgaXQgc2hvdWxkIG5vdCBiZSB1c2VkIGV2ZW4gdW5kZXIgdGhvc2UKKytjaXJjdW1zdGFu Y2VzLgorKworKyAgIEkgYmVsaWV2ZSB0aGF0IHRoZSBgZicgcHJvdG9jb2wgb3JpZ2luYXRlZCBp biBCU0QgdmVyc2lvbnMgb2YgVVVDUC4KKytJdCB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZCBmb3Ig dHJhbnNtaXNzaW9uIG92ZXIgWC4yNSBQQUQgbGlua3MuCisrCisrICAgVGhlIGBmJyBwcm90b2Nv bCBoYXMgbm8gc3RhcnR1cCBvciBmaW5pc2ggcHJvdG9jb2wuICBIb3dldmVyLCBib3RoCisrc2lk ZXMgdHlwaWNhbGx5IHNsZWVwIGZvciBhIGNvdXBsZSBvZiBzZWNvbmRzIGJlZm9yZSBzdGFydGlu ZyB1cCwKKytiZWNhdXNlIHRoZXkgc3dpdGNoIHRoZSB0ZXJtaW5hbCBpbnRvIFhPTi9YT0ZGIG1v ZGUgYW5kIHdhbnQgdG8gYWxsb3cKKyt0aGUgY2hhbmdlcyB0byBzZXR0bGUgYmVmb3JlIGJlZ2lu bmluZyB0cmFuc21pc3Npb24uCisrCisrICAgV2hlbiBhIFVVQ1AgcGFja2FnZSB0cmFuc21pdHMg YSBjb21tYW5kLCBpdCBzaW1wbHkgc2VuZHMgYSBzdHJpbmcKKyt0ZXJtaW5hdGVkIGJ5IGEgY2Fy cmlhZ2UgcmV0dXJuLgorKworKyAgIFdoZW4gYSBVVUNQIHBhY2thZ2UgdHJhbnNtaXRzIGEgZmls ZSwgZWFjaCBieXRlIEIgb2YgdGhlIGZpbGUgaXMKKyt0cmFuc2xhdGVkIGFjY29yZGluZyB0byB0 aGUgZm9sbG93aW5nIHRhYmxlOgorKworKyAgICAgICAgICAgIDAgPD0gQiA8PSAgMDM3OiAwMTcy LCBCICsgMDEwMCAoMDEwMCB0byAwMTM3KQorKyAgICAgICAgICAwNDAgPD0gQiA8PSAwMTcxOiAg ICAgICBCICAgICAgICAoIDA0MCB0byAwMTcxKQorKyAgICAgICAgIDAxNzIgPD0gQiA8PSAwMTc3 OiAwMTczLCBCIC0gMDEwMCAoIDA3MiB0byAgMDc3KQorKyAgICAgICAgIDAyMDAgPD0gQiA8PSAw MjM3OiAwMTc0LCBCIC0gMDEwMCAoMDEwMCB0byAwMTM3KQorKyAgICAgICAgIDAyNDAgPD0gQiA8 PSAwMzcxOiAwMTc1LCBCIC0gMDIwMCAoIDA0MCB0byAwMTcxKQorKyAgICAgICAgIDAzNzIgPD0g QiA8PSAwMzc3OiAwMTc2LCBCIC0gMDMwMCAoIDA3MiB0byAgMDc3KQorKworKyAgIFRoYXQgaXMs IGEgYnl0ZSBiZXR3ZWVuIGBcMDQwJyBhbmQgYFwxNzEnIGluY2x1c2l2ZSBpcyB0cmFuc21pdHRl ZAorK2FzIGlzLCBhbmQgYWxsIG90aGVyIGJ5dGVzIGFyZSBwcmVmaXhlZCBhbmQgbW9kaWZpZWQg YXMgc2hvd24uCisrCisrICAgV2hlbiBhbGwgdGhlIGZpbGUgZGF0YSBpcyBzZW50LCBhIHNldmVu IGJ5dGUgc2VxdWVuY2UgaXMgc2VudDogdHdvCisrYnl0ZXMgb2YgYFwxNzYnIGZvbGxvd2VkIGJ5 IGZvdXIgQVNDSUkgYnl0ZXMgb2YgdGhlIGNoZWNrc3VtIGFzIHByaW50ZWQKKytpbiBiYXNlIDE2 IGZvbGxvd2VkIGJ5IGEgY2FycmlhZ2UgcmV0dXJuLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBjaGVj a3N1bQorK3dhcyAweDEyMzQsIHRoaXMgd291bGQgYmUgc2VudDogYFwxNzZcMTc2MTIzNFxyJy4K KysKKysgICBUaGUgY2hlY2tzdW0gaXMgaW5pdGlhbGl6ZWQgdG8gMHhmZmZmLiAgRm9yIGVhY2gg Ynl0ZSB0aGF0IGlzIHNlbnQKKytpdCBpcyBtb2RpZmllZCBhcyBmb2xsb3dzICh3aGVyZSBCIGlz IHRoZSBieXRlIGJlZm9yZSBpdCBoYXMgYmVlbgorK3RyYW5zZm9ybWVkIGFzIGRlc2NyaWJlZCBh Ym92ZSk6CisrCisrICAgICAgICAgICAvKiBSb3RhdGUgdGhlIGNoZWNrc3VtIGxlZnQuICAqLwor KyAgICAgICAgICAgaWYgKChpY2hrICYgMHg4MDAwKSA9PSAwKQorKyAgICAgICAgICAgICBpY2hr IDw8PSAxOworKyAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgaWNoayA8PD0gMTsKKysgICAgICAgICAgICAgICArK2ljaGs7CisrICAgICAgICAgICAgIH0K KysKKysgICAgICAgICAgIC8qIEFkZCB0aGUgbmV4dCBieXRlIGludG8gdGhlIGNoZWNrc3VtLiAg Ki8KKysgICAgICAgICAgIGljaGsgKz0gQjsKKysKKysgICBXaGVuIHRoZSByZWNlaXZpbmcgVVVD UCBzZWVzIHRoZSBjaGVja3N1bSwgaXQgY29tcGFyZXMgaXQgYWdhaW5zdCBpdHMKKytvd24gY2Fs Y3VsYXRlZCBjaGVja3N1bSBhbmQgcmVwbGllcyB3aXRoIGEgc2luZ2xlIGNoYXJhY3RlciBmb2xs b3dlZCBieQorK2EgY2FycmlhZ2UgcmV0dXJuLgorKworK2BHJworKyAgICAgVGhlIGZpbGUgd2Fz IHJlY2VpdmVkIGNvcnJlY3RseS4KKysKKytgUicKKysgICAgIFRoZSBjaGVja3N1bSBkaWQgbm90 IG1hdGNoLCBhbmQgdGhlIGZpbGUgc2hvdWxkIGJlIHJlc2VudCBmcm9tIHRoZQorKyAgICAgYmVn aW5uaW5nLgorKworK2BRJworKyAgICAgVGhlIGNoZWNrc3VtIGRpZCBub3QgbWF0Y2gsIGJ1dCB0 b28gbWFueSByZXRyaWVzIGhhdmUgb2NjdXJyZWQgYW5kCisrICAgICB0aGUgY29tbXVuaWNhdGlv biBzZXNzaW9uIHNob3VsZCBiZSBhYmFuZG9uZWQuCisrCisrICAgVGhlIHNlbmRpbmcgVVVDUCBj aGVja3MgdGhlIHJldHVybmVkIGNoYXJhY3RlciBhbmQgYWN0cyBhY2NvcmRpbmdseS4KKysKKysf CisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogdCBQcm90b2NvbCwgIE5leHQ6IGUgUHJvdG9jb2ws ICBQcmV2OiBmIFByb3RvY29sLCAgVXA6IFByb3RvY29scworKworKzYuOCBVVUNQIGB0JyBQcm90 b2NvbAorKz09PT09PT09PT09PT09PT09PT09PQorKworK1RoZSBgdCcgcHJvdG9jb2wgaXMgaW50 ZW5kZWQgZm9yIHVzZSBvbiBsaW5rcyB3aGljaCBwcm92aWRlIHJlbGlhYmxlCisrZW5kLXRvLWVu ZCBjb25uZWN0aW9ucywgc3VjaCBhcyBUQ1AuICBJdCBkb2VzIG5vIGVycm9yIGNoZWNraW5nIG9y IGZsb3cKKytjb250cm9sLCBhbmQgcmVxdWlyZXMgYW4gZWlnaHQgYml0IGNsZWFyIGNoYW5uZWwu CisrCisrICAgSSBiZWxpZXZlIHRoZSBgdCcgcHJvdG9jb2wgb3JpZ2luYXRlZCBpbiBCU0QgdmVy c2lvbnMgb2YgVVVDUC4KKysKKysgICBXaGVuIGEgVVVDUCBwYWNrYWdlIHRyYW5zbWl0cyBhIGNv bW1hbmQsIGl0IGZpcnN0IGdldHMgdGhlIGxlbmd0aCBvZgorK3RoZSBjb21tYW5kIHN0cmluZywg Qy4gIEl0IHRoZW4gc2VuZHMgYCgoQyAvIDUxMikgKyAxKSAqIDUxMicgYnl0ZXMKKysodGhlIHNt YWxsZXN0IG11bHRpcGxlIG9mIDUxMiB3aGljaCBjYW4gaG9sZCBDIGJ5dGVzIHBsdXMgYSBudWxs IGJ5dGUpCisrY29uc2lzdGluZyBvZiB0aGUgY29tbWFuZCBzdHJpbmcgaXRzZWxmIGZvbGxvd2Vk IGJ5IHRyYWlsaW5nIG51bGwgYnl0ZXMuCisrCisrICAgV2hlbiBhIFVVQ1AgcGFja2FnZSBzZW5k cyBhIGZpbGUsIGl0IHNlbmRzIGl0IGluIGJsb2Nrcy4gIEVhY2ggYmxvY2sKKytjb250YWlucyBh dCBtb3N0IDEwMjQgYnl0ZXMgb2YgZGF0YS4gIEVhY2ggYmxvY2sgY29uc2lzdHMgb2YgZm91ciBi eXRlcworK2NvbnRhaW5pbmcgdGhlIGFtb3VudCBvZiBkYXRhIGluIGJpbmFyeSAobW9zdCBzaWdu aWZpY2FudCBieXRlIGZpcnN0LAorK3RoZSBzYW1lIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBVbml4 IGZ1bmN0aW9uIGBodG9ubCcpIGZvbGxvd2VkIGJ5IHRoYXQKKythbW91bnQgb2YgZGF0YS4gIFRo ZSBlbmQgb2YgdGhlIGZpbGUgaXMgc2lnbmFsbGVkIGJ5IGEgYmxvY2sgY29udGFpbmluZworK3pl cm8gYnl0ZXMgb2YgZGF0YS4KKysKKysfCisrRmlsZTogdXVjcC5pbmZvLCAgTm9kZTogZSBQcm90 b2NvbCwgIE5leHQ6IEJpZyBHIFByb3RvY29sLCAgUHJldjogdCBQcm90b2NvbCwgIFVwOiBQcm90 b2NvbHMKKysKKys2LjkgVVVDUCBgZScgUHJvdG9jb2wKKys9PT09PT09PT09PT09PT09PT09PT0K KysKKytUaGUgYGUnIHByb3RvY29sIGlzIHNpbWlsYXIgdG8gdGhlIGB0JyBwcm90b2NvbC4gIEl0 IGRvZXMgbm8gZmxvdworK2NvbnRyb2wgb3IgZXJyb3IgY2hlY2tpbmcgYW5kIGlzIGludGVuZGVk IGZvciB1c2Ugb3ZlciBuZXR3b3JrcworK3Byb3ZpZGluZyByZWxpYWJsZSBlbmQtdG8tZW5kIGNv bm5lY3Rpb25zLCBzdWNoIGFzIFRDUC4KKysKKysgICBUaGUgYGUnIHByb3RvY29sIG9yaWdpbmF0 ZWQgaW4gdmVyc2lvbnMgb2YgSERCIFVVQ1AuCisrCisrICAgV2hlbiBhIFVVQ1AgcGFja2FnZSB0 cmFuc21pdHMgYSBjb21tYW5kLCBpdCBzaW1wbHkgc2VuZHMgdGhlIGNvbW1hbmQKKythcyBhbiBB U0NJSSBzdHJpbmcgdGVybWluYXRlZCBieSBhIG51bGwgYnl0ZS4KKysKKysgICBXaGVuIGEgVVVD UCBwYWNrYWdlIHRyYW5zbWl0cyBhIGZpbGUsIGl0IHNlbmRzIHRoZSBjb21wbGV0ZSBzaXplIG9m CisrdGhlIGZpbGUgYXMgYW4gQVNDSUkgZGVjaW1hbCBudW1iZXIuICBUaGUgQVNDSUkgc3RyaW5n IGlzIHBhZGRlZCBvdXQgdG8KKysyMCBieXRlcyB3aXRoIG51bGwgYnl0ZXMgKGkuZS4gaWYgdGhl IGZpbGUgaXMgMTAwMCBieXRlcyBsb25nLCBpdCBzZW5kcworK2AxMDAwXDBcMFwwXDBcMFwwXDBc MFwwXDBcMFwwXDBcMFwwXDAnKS4gIEl0IHRoZW4gc2VuZHMgdGhlIGVudGlyZSBmaWxlLgorKwor Kx8KKytGaWxlOiB1dWNwLmluZm8sICBOb2RlOiBCaWcgRyBQcm90b2NvbCwgIE5leHQ6IGkgUHJv dG9jb2wsICBQcmV2OiBlIFByb3RvY29sLCAgVXA6IFByb3RvY29scworKworKzYuMTAgVVVDUCBg RycgUHJvdG9jb2wKKys9PT09PT09PT09PT09PT09PT09PT09CisrCisrVGhlIGBHJyBwcm90b2Nv bCBpcyB1c2VkIGJ5IFNWUjQgVVVDUC4gIEl0IGlzIGlkZW50aWNhbCB0byB0aGUgYGcnCisrcHJv dG9jb2wsIGV4Y2VwdCB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIG1vZGlmeSB0aGUgd2luZG93IGFu ZCBwYWNrZXQKKytzaXplcy4gIFRoZSBTVlI0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBgZycgcHJv dG9jb2wgcmVwb3J0ZWRseSBpcyBmaXhlZAorK2F0IGEgcGFja2V0IHNpemUgb2YgNjQgYW5kIGEg d2luZG93IHNpemUgb2YgNy4gIFN1cHBvc2VkbHkgU1ZSNCBjaG9zZQorK3RvIGltcGxlbWVudCBh IG5ldyBwcm90b2NvbCB1c2luZyBhIG5ldyBsZXR0ZXIgdG8gYXZvaWQgYW55IHBvdGVudGlhbAor K2luY29tcGF0aWJpbGl0aWVzIHdoZW4gdXNpbmcgZGlmZmVyZW50IHBhY2tldCBvciB3aW5kb3cg c2l6ZXMuCisrCisrICAgTW9zdCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGBnJyBwcm90b2NvbCB0 aGF0IGFjY2VwdCBwYWNrZXRzIGxhcmdlcgorK3RoYW4gNjQgYnl0ZXMgd2lsbCBhbHNvIGFjY2Vw dCBwYWNrZXRzIHNtYWxsZXIgdGhhbiB3aGF0ZXZlciB0aGV5CisrcmVxdWVzdGVkIGluIHRoZSBg SU5JVEInIHBhY2tldC4gIFRoZSBTVlI0IGBHJyBpbXBsZW1lbnRhdGlvbiBpcyBhbgorK2V4Y2Vw dGlvbjsgaXQgd2lsbCBvbmx5IGFjY2VwdCBwYWNrZXRzIG9mIHByZWNpc2VseSB0aGUgc2l6ZSBp dAorK3JlcXVlc3RzIGluIHRoZSBJTklUQiBwYWNrZXQuCisrCisrHworK0ZpbGU6IHV1Y3AuaW5m bywgIE5vZGU6IGkgUHJvdG9jb2wsICBOZXh0OiBqIFByb3RvY29sLCAgUHJldjogQmlnIEcgUHJv dG9jb2wsICBVcDogUHJvdG9jb2xzCisrCisrNi4xMSBVVUNQIGBpJyBQcm90b2NvbAorKz09PT09 PT09PT09PT09PT09PT09PT0KKysKKytUaGUgYGknIHByb3RvY29sIHdhcyB3cml0dGVuIGJ5IElh biBMYW5jZSBUYXlsb3IgKHdobyBhbHNvIHdyb3RlIHRoaXMKKyttYW51YWwpLiAgSXQgd2FzIGZp cnN0IHVzZWQgYnkgVGF5bG9yIFVVQ1AgdmVyc2lvbiAxLjA0LgorKworKyAgIEl0IGlzIGEgc2xp ZGluZyB3aW5kb3cgcGFja2V0IHByb3RvY29sLCBsaWtlIHRoZSBgZycgcHJvdG9jb2wsIGJ1dAor K2l0IHN1cHBvcnRzIGJpZGlyZWN0aW9uYWwgdHJhbnNmZXJzIChpLmUuLCBmaWxlIHRyYW5zZmVy cyBpbiBib3RoCisrZGlyZWN0aW9ucyBzaW11bHRhbmVvdXNseSkuICBJdCByZXF1aXJlcyBhbiBl aWdodCBiaXQgY2xlYXIgY29ubmVjdGlvbi4KKytTZXZlcmFsIGlkZWFzIGZvciB0aGUgcHJvdG9j b2wgd2VyZSB0YWtlbiBmcm9tIHRoZSBwYXBlciBgQQorK0hpZ2gtVGhyb3VnaHB1dCBNZXNzYWdl IFRyYW5zcG9ydCBTeXN0ZW0nIGJ5IFAuIExhdWRlci4gIEkgZG9uJ3Qga25vdworK3doZXJlIHRo ZSBwYXBlciB3YXMgcHVibGlzaGVkLCBidXQgdGhlIGF1dGhvcidzIGUtbWFpbCBhZGRyZXNzIGlz CisrPHBpZXJzQGNzLnN1Lm96LmF1Pi4gIFRoZSBgaScgcHJvdG9jb2wgZG9lcyBub3QgYWRvcHQg aGlzIG1haW4gaWRlYSwKKyt3aGljaCBpcyB0byBkaXNwZW5zZSB3aXRoIHdpbmRvd3MgZW50aXJl bHkuICBUaGlzIGlzIGJlY2F1c2Ugc29tZSBsaW5rcworK3N0aWxsIGRvIHJlcXVpcmUgZmxvdyBj b250cm9sIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgYmVjYXVzZSB1c2luZworK3dpbmRvd3Mgc2V0 cyBhIGxpbWl0IHRvIHRoZSBhbW91bnQgb2YgZGF0YSB3aGljaCB0aGUgcHJvdG9jb2wgbXVzdCBi ZQorK2FibGUgdG8gcmVzZW5kIHVwb24gcmVxdWVzdC4gIFRvIHJlZHVjZSB0aGUgY29zdHMgb2Yg d2luZG93CisrYWNrbm93bGVkZ2VtZW50cywgdGhlIHByb3RvY29sIHVzZXMgYSBsYXJnZSB3aW5k b3cgYW5kIG9ubHkgcmVxdWlyZXMgYW4KKythY2sgYXQgdGhlIGhhbGZ3YXkgcG9pbnQuCisrCisr ICAgRWFjaCBwYWNrZXQgc3RhcnRzIHdpdGggYSBzaXggYnl0ZSBoZWFkZXIsIG9wdGlvbmFsbHkg Zm9sbG93ZWQgYnkKKytkYXRhIGJ5dGVzIHdpdGggYSBmb3VyIGJ5dGUgY2hlY2tzdW0uICBUaGVy ZSBhcmUgY3VycmVudGx5IGZpdmUgZGVmaW5lZAorK3BhY2tldCB0eXBlcyAoYERBVEEnLCBgU1lO QycsIGBBQ0snLCBgTkFLJywgYFNQT1MnLCBgQ0xPU0UnKSB3aGljaCBhcmUKKytkZXNjcmliZWQg YmVsb3cuICBBbHRob3VnaCBhbnkgcGFja2V0IHR5cGUgbWF5IGluY2x1ZGUgZGF0YSwgYW55IGRh dGEKKytwcm92aWRlZCB3aXRoIGFuIGBBQ0snLCBgTkFLJyBvciBgQ0xPU0UnIHBhY2tldCBpcyBp Z25vcmVkLgorKworKyAgIEV2ZXJ5IGBEQVRBJywgYFNQT1MnIGFuZCBgQ0xPU0UnIHBhY2tldCBo YXMgYSBzZXF1ZW5jZSBudW1iZXIuICBUaGUKKytzZXF1ZW5jZSBudW1iZXJzIGFyZSBpbmRlcGVu ZGVudCBmb3IgZWFjaCBzaWRlLiAgVGhlIGZpcnN0IHBhY2tldCBzZW50CisrYnkgZWFjaCBzaWRl IGlzIGFsd2F5cyBudW1iZXIgMS4gIEVhY2ggcGFja2V0IGlzIG51bWJlcmVkIG9uZSBncmVhdGVy CisrdGhhbiB0aGUgcHJldmlvdXMgcGFja2V0LCBtb2R1bG8gMzIuCisrCisrICAgRXZlcnkgcGFj a2V0IGhhcyBhIGxvY2FsIGNoYW5uZWwgbnVtYmVyIGFuZCBhIHJlbW90ZSBjaGFubmVsIG51bWJl ci4KKytGb3IgYWxsIHBhY2tldHMgYXQgbGVhc3Qgb25lIGNoYW5uZWwgbnVtYmVyIGlzIHplcm8u ICBXaGVuIGEgVVVDUAorK2NvbW1hbmQgaXMgc2VudCB0byB0aGUgcmVtb3RlIHN5c3RlbSwgaXQg aXMgYXNzaWduZWQgYSBub24temVybyBsb2NhbAorK2NoYW5uZWwgbnVtYmVyLiAgQWxsIHBhY2tl dHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgVVVDUCBjb21tYW5kIHNlbnQgYnkKKyt0aGUgbG9jYWwg c3lzdGVtIGFyZSBnaXZlbiB0aGUgc2VsZWN0ZWQgbG9jYWwgY2hhbm5lbCBudW1iZXIuICBBbGwK Kythc3NvY2lhdGVkIHBhY2tldHMgc2VudCBieSB0aGUgcmVtb3RlIHN5c3RlbSBhcmUgZ2l2ZW4g dGhlIHNlbGVjdGVkCisrbnVtYmVyIGFzIHRoZSByZW1vdGUgY2hhbm5lbCBudW1iZXIuICBUaGlz IHBlcm1pdHMgZWFjaCBVVUNQIGNvbW1hbmQgdG8KKytiZSB1bmlxdWVseSBpZGVudGlmaWVkIGJ5 IHRoZSBjaGFubmVsIG51bWJlciBvbiB0aGUgb3JpZ2luYXRpbmcgc3lzdGVtLAorK2FuZCB0aGVy ZWZvcmUgZWFjaCBVVUNQIHBhY2thZ2UgY2FuIGFzc29jaWF0ZSBhbGwgZmlsZSBkYXRhIGFuZCBV VUNQCisrY29tbWFuZCByZXNwb25zZXMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgY29tbWFuZC4gIFRo aXMgaXMgYSByZXF1aXJlbWVudAorK2ZvciBiaWRpcmVjdGlvbmFsIFVVQ1AgdHJhbnNmZXJzLgor KworKyAgIFRoZSBwcm90b2NvbCBtYWludGFpbnMgYSBzaW5nbGUgZ2xvYmFsIGZpbGUgcG9zaXRp b24sIHdoaWNoIHN0YXJ0cworK2F0IDAuICBGb3IgZWFjaCBpbmNvbWluZyBwYWNrZXQsIGFueSBh c3NvY2lhdGVkIGRhdGEgaXMgY29uc2lkZXJlZCB0bworK29jY3VyIGF0IHRoZSBjdXJyZW50IGZp bGUgcG9zaXRpb24sIGFuZCB0aGUgZmlsZSBwb3NpdGlvbiBpcworK2luY3JlbWVudGVkIGJ5IHRo ZSBhbW91bnQgb2YgZGF0YSBjb250YWluZWQuICBUaGUgZXhjZXB0aW9uIGlzIGEgcGFja2V0Cisr b2YgdHlwZSBgU1BPUycsIHdoaWNoIGlzIHVzZWQgdG8gY2hhbmdlIHRoZSBmaWxlIHBvc2l0aW9u LiAgVGhlIHJlYXNvbgorK2ZvciBrZWVwaW5nIHRyYWNrIG9mIHRoZSBmaWxlIHBvc2l0aW9uIGlz IGRlc2NyaWJlZCBiZWxvdy4KKysKKysgICBUaGUgaGVhZGVyIGlzIGFzIGZvbGxvd3M6CisrCisr YFwwMDcnCisrICAgICBFdmVyeSBwYWNrZXQgYmVnaW5zIHdpdGggYF5HJy4KKysKKytgKFBBQ0tF VCA8PCAzKSArIExPQ0NIQU4nCisrICAgICBUaGUgZml2ZSBiaXQgcGFja2V0IG51bWJlciBjb21i aW5lZCB3aXRoIHRoZSB0aHJlZSBiaXQgbG9jYWwKKysgICAgIGNoYW5uZWwgbnVtYmVyLiAgYERB VEEnLCBgU1BPUycgYW5kIGBDTE9TRScgcGFja2V0cyB1c2UgdGhlIHBhY2tldAorKyAgICAgc2Vx dWVuY2UgbnVtYmVyIGZvciB0aGUgUEFDS0VUIGZpZWxkLiAgYE5BSycgcGFja2V0IHR5cGVzIHVz ZSB0aGUKKysgICAgIFBBQ0tFVCBmaWVsZCBmb3IgdGhlIHNlcXVlbmNlIG51bWJlciB0byBiZSBy ZXNlbnQuICBgQUNLJyBhbmQKKysgICAgIGBTWU5DJyBkbyBub3QgdXNlIHRoZSBQQUNLRVQgZmll bGQsIGFuZCBnZW5lcmFsbHkgbGVhdmUgaXQgc2V0IHRvCisrICAgICAwLiAgUGFja2V0cyB3aGlj aCBhcmUgbm90IGFzc29jaWF0ZWQgd2l0aCBhIFVVQ1AgY29tbWFuZCBmcm9tIHRoZQorKyAgICAg bG9jYWwgc3lzdGVtIHVzZSBhIGxvY2FsIGNoYW5uZWwgbnVtYmVyIG9mIDAuCisrCisrYChBQ0sg PDwgMykgKyBSRU1DSEFOJworKyAgICAgVGhlIGZpdmUgYml0IHBhY2tldCBhY2tub3dsZWRnZW1l bnQgY29tYmluZWQgd2l0aCB0aGUgdGhyZWUgYml0CisrICAgICByZW1vdGUgY2hhbm5lbCBudW1i ZXIuICBUaGUgcGFja2V0IGFja25vd2xlZGdlbWVudCBpcyB0aGUgbnVtYmVyCisrICAgICBvZiB0 aGUgbGFzdCBwYWNrZXQgc3VjY2Vzc2Z1bGx5IHJlY2VpdmVkOyBpdCBpcyB1c2VkIGJ5IGFsbCBw YWNrZXQKKysgICAgIHR5cGVzLiAgUGFja2V0cyB3aGljaCBhcmUgbm90IHNlbnQgaW4gcmVzcG9u c2UgdG8gYSBVVUNQIGNvbW1hbmQKKysgICAgIGZyb20gdGhlIHJlbW90ZSBzeXN0ZW0gdXNlIGEg cmVtb3RlIGNoYW5uZWwgbnVtYmVyIG9mIDAuCisrCisrYChUWVBFIDw8IDUpICsgKENBTExFUiA8 PCA0KSArIExFTjEnCisrICAgICBUaGUgdGhyZWUgYml0IHBhY2tldCB0eXBlIGNvbWJpbmVkIHdp dGggdGhlIG9uZSBiaXQgcGFja2V0CisrICAgICBkaXJlY3Rpb24gY29tYmluZWQgd2l0aCB0aGUg dXBwZXIgZm91ciBiaXRzIG9mIHRoZSBkYXRhIGxlbmd0aC4KKysgICAgIFRoZSBwYWNrZXQgZGly ZWN0aW9uIGJpdCBpcyBhbHdheXMgMSBmb3IgcGFja2V0cyBzZW50IGJ5IHRoZQorKyAgICAgY2Fs bGluZyBVVUNQLCBhbmQgMCBmb3IgcGFja2V0cyBzZW50IGJ5IHRoZSBjYWxsZWQgVVVDUC4gIFRo aXMKKysgICAgIHByZXZlbnRzIGNvbmZ1c2lvbiBjYXVzZWQgYnkgZWNob2VkIHBhY2tldHMuCisr CisrTEVOMgorKyAgICAgVGhlIGxvd2VyIGVpZ2h0IGJpdHMgb2YgdGhlIGRhdGEgbGVuZ3RoLiAg VGhlIHR3ZWx2ZSBiaXRzIG9mIGRhdGEKKysgICAgIGxlbmd0aCBwZXJtaXQgcGFja2V0cyByYW5n aW5nIGluIHNpemUgZnJvbSAwIHRvIDQwOTUgYnl0ZXMuCisrCisrQ0hFQ0sKKysgICAgIFRoZSBl eGNsdXNpdmUgb3Igb2YgdGhlIHNlY29uZCB0aHJvdWdoIGZpZnRoIGJ5dGVzIG9mIHRoZSBoZWFk ZXIuCisrICAgICBUaGlzIHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgY2hlY2sgdGhhdCB0aGUgaGVh ZGVyIGlzIHZhbGlkLgorKworKyAgIElmIHRoZSBkYXRhIGxlbmd0aCBpcyBub24temVybywgdGhl IHBhY2tldCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorK3RoZSBzcGVjaWZpZWQgbnVtYmVy IG9mIGRhdGEgYnl0ZXMuICBUaGUgZGF0YSBieXRlcyBhcmUgZm9sbG93ZWQgYnkgYQorK2ZvdXIg Ynl0ZSBDUkMgMzIgY2hlY2tzdW0sIHdpdGggdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZSBmaXJz dC4gIFRoZQorK0NSQyBpcyBjYWxjdWxhdGVkIG92ZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBkYXRh IGZpZWxkLgorKworKyAgIFRoZSBkZWZpbmVkIHBhY2tldCB0eXBlcyBhcmUgYXMgZm9sbG93czoK KysKKyswIGBEQVRBJworKyAgICAgVGhpcyBpcyBhIHBsYWluIGRhdGEgcGFja2V0LgorKworKzEg YFNZTkMnCisrICAgICBgU1lOQycgcGFja2V0cyBhcmUgZXhjaGFuZ2VkIHdoZW4gdGhlIHByb3Rv Y29sIGlzIGluaXRpYWxpemVkLCBhbmQKKysgICAgIGFyZSBkZXNjcmliZWQgZnVydGhlciBiZWxv dy4gIGBTWU5DJyBwYWNrZXRzIGRvIG5vdCBjYXJyeSBzZXF1ZW5jZQorKyAgICAgbnVtYmVycyAo dGhhdCBpcywgdGhlIFBBQ0tFVCBmaWVsZCBpcyBpZ25vcmVkKS4KKysKKysyIGBBQ0snCisrICAg ICBUaGlzIGlzIGFuIGFja25vd2xlZGdlbWVudCBwYWNrZXQuICBTaW5jZSBgREFUQScgcGFja2V0 cyBhbHNvIGNhcnJ5CisrICAgICBwYWNrZXQgYWNrbm93bGVkZ2VtZW50cywgYEFDSycgcGFja2V0 cyBhcmUgb25seSB1c2VkIHdoZW4gb25lIHNpZGUKKysgICAgIGhhcyBubyBkYXRhIHRvIHNlbmQu ICBgQUNLJyBwYWNrZXRzIGRvIG5vdCBjYXJyeSBzZXF1ZW5jZSBudW1iZXJzLgorKworKzMgYE5B SycKKysgICAgIFRoaXMgaXMgYSBuZWdhdGl2ZSBhY2tub3dsZWRnZW1lbnQuICBUaGlzIGlzIHNl bnQgd2hlbiBhIHBhY2tldCBpcworKyAgICAgcmVjZWl2ZWQgaW5jb3JyZWN0bHksIGFuZCBtZWFu cyB0aGF0IHRoZSBwYWNrZXQgbnVtYmVyIGFwcGVhcmluZworKyAgICAgaW4gdGhlIFBBQ0tFVCBm aWVsZCBtdXN0IGJlIHJlc2VudC4gIGBOQUsnIHBhY2tldHMgZG8gbm90IGNhcnJ5CisrICAgICBz ZXF1ZW5jZSBudW1iZXJzICh0aGUgUEFDS0VUIGZpZWxkIGlzIGFscmVhZHkgdXNlZCkuCisrCisr NCBgU1BPUycKKysgICAgIFRoaXMgcGFja2V0IGNoYW5nZXMgdGhlIGZpbGUgcG9zaXRpb24uICBU aGUgcGFja2V0IGNvbnRhaW5zIGZvdXIKKysgICAgIGJ5dGVzIG9mIGRhdGEgaG9sZGluZyB0aGUg ZmlsZSBwb3NpdGlvbiwgbW9zdCBzaWduaWZpY2FudCBieXRlCisrICAgICBmaXJzdC4gIFRoZSBu ZXh0IHBhY2tldCByZWNlaXZlZCB3aWxsIGJlIGNvbnNpZGVyZWQgdG8gYmUgYXQgdGhlCisrICAg ICBuYW1lZCBmaWxlIHBvc2l0aW9uLgorKworKzUgYENMT1NFJworKyAgICAgV2hlbiB0aGUgcHJv dG9jb2wgaXMgc2h1dCBkb3duLCBlYWNoIHNpZGUgc2VuZHMgYSBgQ0xPU0UnIHBhY2tldC4KKysg ICAgIFRoaXMgcGFja2V0IGRvZXMgaGF2ZSBhIHNlcXVlbmNlIG51bWJlciwgd2hpY2ggY291bGQg YmUgdXNlZCB0bworKyAgICAgZW5zdXJlIHRoYXQgYWxsIHBhY2tldHMgd2VyZSBjb3JyZWN0bHkg cmVjZWl2ZWQgKHRoaXMgaXMgbm90CisrICAgICBuZWVkZWQgYnkgVVVDUCwgaG93ZXZlciwgd2hp Y2ggdXNlcyB0aGUgaGlnaGVyIGxldmVsIGBIJyBjb21tYW5kCisrICAgICB3aXRoIGFuIGBIWScg cmVzcG9uc2UpLgorKworKyAgIFdoZW4gdGhlIHByb3RvY29sIHN0YXJ0cyB1cCwgYm90aCBzeXN0 ZW1zIHNlbmQgYSBgU1lOQycgcGFja2V0LiAgVGhlCisrYFNZTkMnIHBhY2tldCBpbmNsdWRlcyBh dCBsZWFzdCB0aHJlZSBieXRlcyBvZiBkYXRhLiAgVGhlIGZpcnN0IHR3bworK2J5dGVzIGFyZSB0 aGUgbWF4aW11bSBwYWNrZXQgc2l6ZSB0aGUgcmVtb3RlIHN5c3RlbSBzaG91bGQgc2VuZCwgbW9z dAorK3NpZ25pZmljYW50IGJ5dGUgZmlyc3QuICBUaGUgdGhpcmQgYnl0ZSBpcyB0aGUgd2luZG93 IHNpemUgdGhlIHJlbW90ZQorK3N5c3RlbSBzaG91bGQgdXNlLiAgVGhlIHJlbW90ZSBzeXN0ZW0g bWF5IHNlbmQgcGFja2V0cyBvZiBhbnkgc2l6ZSB1cAorK3RvIHRoZSBtYXhpbXVtLiAgSWYgdGhl cmUgaXMgYSBmb3VydGggYnl0ZSwgaXQgaXMgdGhlIG51bWJlciBvZgorK2NoYW5uZWxzIHRoZSBy ZW1vdGUgc3lzdGVtIG1heSB1c2UgKHRoaXMgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDcsCisraW5j bHVzaXZlKS4gIEFkZGl0aW9uYWwgZGF0YSBieXRlcyBtYXkgYmUgZGVmaW5lZCBpbiB0aGUgZnV0 dXJlLgorKworKyAgIFRoZSB3aW5kb3cgc2l6ZSBpcyB0aGUgbnVtYmVyIG9mIHBhY2tldHMgdGhh dCBtYXkgYmUgc2VudCBiZWZvcmUgYQorK3BhY2tldCBpcyBhY2tub3dsZWRnZWQuICBUaGVyZSBp cyBubyByZXF1aXJlbWVudCB0aGF0IGV2ZXJ5IHBhY2tldCBiZQorK2Fja25vd2xlZGdlZDsgYW55 IGFja25vd2xlZGdlbWVudCBpcyBjb25zaWRlcmVkIHRvIGFja25vd2xlZGdlIGFsbAorK3BhY2tl dHMgdGhyb3VnaCB0aGUgbnVtYmVyIGdpdmVuLiAgSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRp b24sIGlmIG9uZQorK3NpZGUgaGFzIG5vIGRhdGEgdG8gc2VuZCwgaXQgc2VuZHMgYW4gYEFDSycg d2hlbiBoYWxmIHRoZSB3aW5kb3cgaXMKKytyZWNlaXZlZC4KKysKKysgICBOb3RlIHRoYXQgdGhl IGBOQUsnIHBhY2tldCBjb3JyZXNwb25kcyB0byB0aGUgdW51c2VkIGBnJyBwcm90b2NvbAorK2BT UkonIHBhY2tldCB0eXBlLCByYXRoZXIgdGhhbiB0byB0aGUgYFJKJyBwYWNrZXQgdHlwZS4gIFdo ZW4gYSBgTkFLJworK2lzIHJlY2VpdmVkLCBvbmx5IHRoZSBuYW1lZCBwYWNrZXQgc2hvdWxkIGJl IHJlc2VudCwgbm90IGFueSBzdWJzZXF1ZW50CisrcGFja2V0cy4KKysKKysgICBOb3RlIHRoYXQg aWYgYm90aCBzaWRlcyBoYXZlIGRhdGEgdG8gc2VuZCwgYnV0IGEgcGFja2V0IGlzIGxvc3QsIGl0 CisraXMgcGVyZmVjdGx5IHJlYXNvbmFibGUgZm9yIG9uZSBzaWRlIHRvIGNvbnRpbnVlIHNlbmRp bmcgcGFja2V0cywgYWxsIG9mCisrd2hpY2ggd2lsbCBhY2tub3dsZWRnZSB0aGUgbGFzdCBwYWNr ZXQgY29ycmVjdGx5IHJlY2VpdmVkLCB3aGlsZSB0aGUKKytzeXN0ZW0gd2hvc2UgcGFja2V0IHdh cyBsb3N0IHdpbGwgYmUgdW5hYmxlIHRvIHNlbmQgYSBuZXcgcGFja2V0IGJlY2F1c2UKKyt0aGUg c2VuZCB3aW5kb3cgd2lsbCBiZSBmdWxsLiAgSW4gdGhpcyBjaXJjdW1zdGFuY2UsIG5laXRoZXIg c2lkZSB3aWxsCisrdGltZSBvdXQgYW5kIG9uZSBzaWRlIG9mIHRoZSBjb21tdW5pY2F0aW9uIHdp bGwgYmUgZWZmZWN0aXZlbHkgc2h1dCBkb3duCisrZm9yIGEgd2hpbGUuICBUaGVyZWZvcmUsIGFu eSBzeXN0ZW0gd2l0aCBvdXRzdGFuZGluZyB1bmFja25vd2xlZGdlZAorK3BhY2tldHMgc2hvdWxk IGFycmFuZ2UgdG8gdGltZSBvdXQgYW5kIHJlc2VuZCBhIHBhY2tldCBldmVuIGlmIGRhdGEgaXMK KytiZWluZyByZWNlaXZlZC4KKysKKysgICBDb21tYW5kcyBhcmUgc2VudCBhcyBhIHNlcXVlbmNl IG9mIGRhdGEgcGFja2V0cyB3aXRoIGEgbm9uLXplcm8gbG9jYWwKKytjaGFubmVsIG51bWJlci4g IFRoZSBsYXN0IGRhdGEgcGFja2V0IGZvciBhIGNvbW1hbmQgaW5jbHVkZXMgYSB0cmFpbGluZwor K251bGwgYnl0ZSAobm9ybWFsbHkgYSBjb21tYW5kIHdpbGwgZml0IGluIGEgc2luZ2xlIGRhdGEg cGFja2V0KS4gIEZpbGVzCisrYXJlIHNlbnQgYXMgYSBzZXF1ZW5jZSBvZiBkYXRhIHBhY2tldHMg ZW5kaW5nIHdpdGggb25lIG9mIGxlbmd0aCB6ZXJvLgorKworKyAgIFRoZSBjaGFubmVsIG51bWJl cnMgcGVybWl0IGEgbW9yZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24gb2YgdGhlCisrVVVDUCBm aWxlIHNlbmQgY29tbWFuZC4gIFJhdGhlciB0aGFuIHNlbmQgdGhlIGNvbW1hbmQgYW5kIHRoZW4g d2FpdCBmb3IKKyt0aGUgYFNZJyByZXNwb25zZSBiZWZvcmUgc2VuZGluZyB0aGUgZmlsZSwgdGhl IGZpbGUgZGF0YSBpcyBzZW50CisrYmVnaW5uaW5nIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBgUycg Y29tbWFuZCBpcyBzZW50LiAgSWYgYW4gYFNOJworK3Jlc3BvbnNlIGlzIHJlY2VpdmVkLCB0aGUg ZmlsZSBzZW5kIGlzIGFib3J0ZWQsIGFuZCBhIGZpbmFsIGRhdGEgcGFja2V0Cisrb2YgbGVuZ3Ro IHplcm8gaXMgc2VudCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjaGFubmVsIG51bWJlciBtYXkgYmUK KytyZXVzZWQuICBJZiBhbiBgU1knIHJlcG9uc2Ugd2l0aCBhIGZpbGUgcG9zaXRpb24gaW5kaWNh dG9yIGlzIHJlY2VpdmVkLAorK3RoZSBmaWxlIHNlbmQgYWRqdXN0cyB0byB0aGUgZmlsZSBwb3Np dGlvbjsgdGhpcyBpcyB3aHkgdGhlIHByb3RvY29sCisrbWFpbnRhaW5zIGEgZ2xvYmFsIGZpbGUg cG9zaXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgY2hhbm5lbCBudW1iZXJzIG1l YW5zIHRoYXQgZWFjaCBVVUNQIHN5c3RlbSBtYXkKKytzZW5kIGNvbW1hbmRzIGFuZCBmaWxlIGRh dGEgc2ltdWx0YW5lb3VzbHkuICBNb3Jlb3ZlciwgZWFjaCBVVUNQIHN5c3RlbQorK21heSBzZW5k IG11bHRpcGxlIGZpbGVzIGF0IHRoZSBzYW1lIHRpbWUsIHVzaW5nIHRoZSBjaGFubmVsIG51bWJl ciB0bworK2Rpc2FtYmlndWF0ZSB0aGUgZGF0YS4gIFNlbmRpbmcgYSBmaWxlIGJlZm9yZSByZWNl aXZpbmcgYW4KKythY2tub3dsZWRnZW1lbnQgZm9yIHRoZSBwcmV2aW91cyBmaWxlIGhlbHBzIHRv IGVsaW1pbmF0ZSB0aGUgcm91bmQgdHJpcAorK2RlbGF5cyBpbmhlcmVudCBpbiBvdGhlciBVVUNQ IHByb3RvY29scy4KKysKKy0tLSB1dWNwLTEuMDcub3JpZy91bml4L3BpcGUuYworKysrIHV1Y3At MS4wNy91bml4L3BpcGUuYworQEAgLTE5OSw2ICsxOTksNyBAQCBmc3BpcGVfZGlhbCAocWNvbm4s IHB1dWNvbmYsIHFzeXMsIHpwaG9uCisgICBzdHJ1Y3Qgc3N5c2RlcF9jb25uICpxOworICAgaW50 IGFpZGVzY3NbM107CisgICBjb25zdCBjaGFyICoqcHpwcm9nOworKyAgY2hhciAqKnA7CisgCisg ICBxID0gKHN0cnVjdCBzc3lzZGVwX2Nvbm4gKikgcWNvbm4tPnBzeXNkZXA7CisgCitAQCAtMjEx LDYgKzIxMiwxMSBAQCBmc3BpcGVfZGlhbCAocWNvbm4sIHB1dWNvbmYsIHFzeXMsIHpwaG9uCisg ICAgICAgdWxvZyAoTE9HX0VSUk9SLCAiTm8gY29tbWFuZCBmb3IgcGlwZSBjb25uZWN0aW9uIik7 CisgICAgICAgcmV0dXJuIEZBTFNFOworICAgICB9CisrICAKKysgIC8qIExvb2sgZm9yIGEgc3Ry aW5nIFxIIGFuZCByZXBsYWNlZCBpdCBieSB0aGUgYWRkcmVzcyBnaXZlbiBmb3IgdGhpcyBzeXN0 ZW0gKi8KKysgIGZvciAocD1wenByb2c7ICpwOyBwKyspCisrICAgIGlmICghc3RyY21wKCpwLCAi XFxIIikpCisrICAgICAgKnAgPSB6cGhvbmU7CisgCisgICBhaWRlc2NzWzBdID0gU1BBV05fV1JJ VEVfUElQRTsKKyAgIGFpZGVzY3NbMV0gPSBTUEFXTl9SRUFEX1BJUEU7CistLS0gdXVjcC0xLjA3 Lm9yaWcvY29udHJpYi91dXJhdGUuYworKysrIHV1Y3AtMS4wNy9jb250cmliL3V1cmF0ZS5jCitA QCAtMjE2LDcgKzIxNiw3IEBAIHN0cnVjdCBQcm90b2NvbF9TdW1tYXJ5Cisgc3RydWN0IEhvc3Rf ZW50cnkKKyAgICAgeworICAgICBzdHJ1Y3QgSG9zdF9lbnRyeSAqbmV4dDsKKy0gICAgY2hhciBI b3N0bmFtZVszMl07CisrICAgIGNoYXIgSG9zdG5hbWVbTUFYSE9TVE5BTUVMRU5dOworICAgICBz dHJ1Y3QgRXhlY3V0aW9uX0NvbW1hbmQgKmNtZHM7ICAgICAgLyogTG9jYWwgQWN0aXZpdGllcyAq LworICAgICBzdHJ1Y3QgUGhvbmVfQ2FsbCBjYWxsWzJdOyAgICAgICAgICAgIC8qIEluICYgT3V0 IEFjdGl2aXRpZXMgKi8KKyAgICAgc3RydWN0IFByb3RvY29sX1N1bW1hcnkgKnByb3RvOworLS0t IHV1Y3AtMS4wNy5vcmlnL2NvbnRyaWIvTWFrZWZpbGUudXVydAorKysrIHV1Y3AtMS4wNy9jb250 cmliL01ha2VmaWxlLnV1cnQKK0BAIC0xNyw5ICsxNyw5IEBAIE1BTj0kKHByZWZpeCkvbWFuL21h bjEKKyBuZXdjb25maWdkaXIgPSAkKHByZWZpeCkvY29uZi91dWNwCisgCisgIyBGbGFncyB0byB1 c2Ugd2hlbiBjb21waWxpbmcgdXVyYXRlCistQ0M9Z2NjIC1PMgorLUNGTEFHUz0tSS4uIC1XYWxs CistTERGTEFHUz0tcyAtbG0KKytDQz1nY2MKKytDRkxBR1MrPS1JLi4KKytMREZMQUdTPS1sbQor IAorIFNIRUxMPS9iaW4vc2gKKyBQUk9HUz11dXJhdGUKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv dXVjcC9wYXRjaGVzL3dhaXQtZm9yLWNvcnJlY3QtcGFyZW50LnBhdGNoIGIvc3JjcGtncy91dWNw L3BhdGNoZXMvd2FpdC1mb3ItY29ycmVjdC1wYXJlbnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MGJiY2Q5ZWQ4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3V1Y3AvcGF0Y2hlcy93YWl0LWZvci1jb3JyZWN0LXBhcmVudC5wYXRjaApAQCAtMCww ICsxLDE5IEBACitEZXNjcmlwdGlvbjogd2FpdCBmb3IgY29ycmVjdCBwYXJlbnQgdG8gZGllCitB dXRob3I6IErDtnJnIFNvbW1lciA8am9lcmdAam8tc28uZGU+CitJbmRleDogdXVjcC0xLjA3L3Vu aXgvZGV0YWNoLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB1dWNwLTEuMDcub3JpZy91bml4L2RldGFjaC5j CTIwMTktMDMtMDIgMTY6MzY6MTEuMjM4OTQ3NzMyICswMTAwCisrKysgdXVjcC0xLjA3L3VuaXgv ZGV0YWNoLmMJMjAxOS0wMy0wMiAxNjozNzoyMS44NTA5NDY3NzcgKzAxMDAKK0BAIC05OCwxMCAr OTgsOCBAQAorICAgICAgIGlmIChpcGlkICE9IDApCisgCV9leGl0IChFWElUX1NVQ0NFU1MpOwor IAorLSAgICAgIC8qIFdlJ2xsIGFsd2F5cyB3aW5kIHVwIGFzIGEgY2hpbGQgb2YgcHJvY2VzcyBu dW1iZXIgMSwgcmlnaHQ/CistCSBSaWdodD8gIFdlIGhhdmUgdG8gd2FpdCBmb3Igb3VyIHBhcmVu dCB0byBkaWUgYmVmb3JlCistCSByZWVuYWJsaW5nIFNJR0hVUC4gICovCistICAgICAgd2hpbGUg KGdldHBwaWQgKCkgIT0gMSkKKysgICAgICAvKiBXZSBoYXZlIHRvIHdhaXQgZm9yIG91ciBwYXJl bnQgdG8gZGllIGJlZm9yZSByZWVuYWJsaW5nIFNJR0hVUC4gKi8KKysgICAgICB3aGlsZSAoZ2V0 cHBpZCAoKSA9PSBpZ3JwKQorIAlzbGVlcCAoMSk7CisgCisgICAgICAgaXBpZCA9IGdldHBpZCAo KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdXVjcC9wYXRjaGVzL3pwaXBlLWltcHJvdmVkLXBpcGUu cGF0Y2ggYi9zcmNwa2dzL3V1Y3AvcGF0Y2hlcy96cGlwZS1pbXByb3ZlZC1waXBlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmVmMWM0MmEyYzUyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy91dWNwL3BhdGNoZXMvenBpcGUtaW1wcm92ZWQtcGlwZS5w YXRjaApAQCAtMCwwICsxLDQwIEBACitBdXRob3I6IFJhZmFlbCBEaW5peiA8cmFmYWVsQHJoaXpv bWF0aWNhLm9yZz4KK0Rlc2NyaXB0aW9uOiAKKyByZW1vdmUgQVRUUklCVVRFX1VOVVNFRCBvZiB0 aGUgcGFyYW1ldGVyIHV1Y3Atb3JnLnBhdGNoIHVzZXMKKyBhZGQgdGhlIHBvc3NpYmlsaXR5IHRv IHNlbmQgdGhlIHN5c3RlbSBuYW1lIHRvIGJlIGNhbGxlZCBpbiBwaXBlIGNvbW1hbmQKKyAodXNl IFxaIGFzIHBsYWNlIGhvbGRlciBmb3IgdGhlIHN5c3RlbSBuYW1lKQorSW5kZXg6IHV1Y3AtMS4w Ny91bml4L3BpcGUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHV1Y3AtMS4wNy5vcmlnL3VuaXgvcGlwZS5j CTIwMTktMDgtMTcgMjM6MDY6NDcuNzc0NTE5NzcwICswMjAwCisrKysgdXVjcC0xLjA3L3VuaXgv cGlwZS5jCTIwMTktMDgtMTcgMjM6MDY6NDcuNzQyNTE5NzcwICswMjAwCitAQCAtMjI1LDggKzIy NSw4IEBACisgZnNwaXBlX2RpYWwgKHFjb25uLCBwdXVjb25mLCBxc3lzLCB6cGhvbmUsIHFkaWFs ZXIsIHB0ZGlhbGVyKQorICAgICAgc3RydWN0IHNjb25uZWN0aW9uICpxY29ubjsKKyAgICAgIHBv aW50ZXIgcHV1Y29uZjsKKy0gICAgIGNvbnN0IHN0cnVjdCB1dWNvbmZfc3lzdGVtICpxc3lzIEFU VFJJQlVURV9VTlVTRUQ7CistICAgICBjb25zdCBjaGFyICp6cGhvbmUgQVRUUklCVVRFX1VOVVNF RDsKKysgICAgIGNvbnN0IHN0cnVjdCB1dWNvbmZfc3lzdGVtICpxc3lzOworKyAgICAgY29uc3Qg Y2hhciAqenBob25lOworICAgICAgc3RydWN0IHV1Y29uZl9kaWFsZXIgKnFkaWFsZXI7CisgICAg ICBlbnVtIHRkaWFsZXJmb3VuZCAqcHRkaWFsZXI7CisgeworQEAgLTI0NiwxMiArMjQ2LDE3IEBA CisgICAgICAgdWxvZyAoTE9HX0VSUk9SLCAiTm8gY29tbWFuZCBmb3IgcGlwZSBjb25uZWN0aW9u Iik7CisgICAgICAgcmV0dXJuIEZBTFNFOworICAgICB9CistICAKKy0gIC8qIExvb2sgZm9yIGEg c3RyaW5nIFxIIGFuZCByZXBsYWNlZCBpdCBieSB0aGUgYWRkcmVzcyBnaXZlbiBmb3IgdGhpcyBz eXN0ZW0gKi8KKysKKysgIC8qIExvb2sgZm9yIGEgc3RyaW5nIFxIIGFuZCByZXBsYWNlIGl0IGJ5 IHRoZSBhZGRyZXNzIGdpdmVuIGZvciB0aGlzIHN5c3RlbSAqLworICAgZm9yIChwPXB6cHJvZzsg KnA7IHArKykKKyAgICAgaWYgKCFzdHJjbXAoKnAsICJcXEgiKSkKKyAgICAgICAqcCA9IHpwaG9u ZTsKKyAKKysgIC8qIExvb2sgZm9yIGEgc3RyaW5nIFxaIGFuZCByZXBsYWNlIGJ5IHRoZSBzeXN0 ZW0gbmFtZSB0byBiZSBjYWxsZWQgKi8KKysgIGZvciAocD1wenByb2c7ICpwOyBwKyspCisrICAg IGlmICghc3RyY21wKCpwLCAiXFxaIikpCisrICAgICAgKnAgPSBxc3lzLT51dWNvbmZfem5hbWU7 CisrCisgICBhaWRlc2NzWzBdID0gU1BBV05fV1JJVEVfUElQRTsKKyAgIGFpZGVzY3NbMV0gPSBT UEFXTl9SRUFEX1BJUEU7CisgICBhaWRlc2NzWzJdID0gU1BBV05fTlVMTDsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvdXVjcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdXVjcC90ZW1wbGF0ZQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJiMmI2Zjc1OGZhZQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvdXVjcC90ZW1wbGF0ZQpAQCAtMCwwICsxLDM5IEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICd1dWNwJworcGtnbmFtZT11dWNwCit2ZXJzaW9uPTEuMDcKK3JldmlzaW9uPTEK K2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZfZmlsZXM9Ii9ldGMvdXVjcC9jb25maWcg L2V0Yy91dWNwL3N5czEgL2V0Yy91dWNwL3BvcnQiCittYWtlZGVwZW5kcz0id2dldCIKK3Nob3J0 X2Rlc2M9IlRheWxvciBVVUNQIGlzIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBVVUNQIgorbWFp bnRhaW5lcj0iTWFyY29BUEMgPG1hcmNvYXVyZWxpb3BjQGdtYWlsLmNvbT4iCitsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv dXVjcC91dWNwLmh0bWwiCitkaXN0ZmlsZXM9IiR7R05VX1NJVEV9LyRwa2duYW1lLyRwa2duYW1l LSR2ZXJzaW9uLnRhci5neiIKK2NoZWNrc3VtPTA2MGMxNWJmYmE2Y2ZkMTE3MWFkODFmNzgyNzg5 MDMyMTEzZTE5OWE1YWRlZDhmOGUwYzFjNWJkMTM4NWI2MmMKK3BhdGNoX2FyZ3M9Ii1OcDEiCisK K3N5c3RlbV9hY2NvdW50cz0iX3V1Y3AiCitfdXVjcF9ob21lZGlyPSIvdmFyL3Nwb29sL3V1Y3Ai CisKK21ha2VfZGlycz0iCisJL3Zhci9zcG9vbC91dWNwCQkwNzUwIHV1Y3AgdXVjcAorCS92YXIv c3Bvb2wvdXVjcHB1YmxpYwkwNzUwIHV1Y3AgdXVjcCIKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlz ZWQgLWkgJ3N8JHtDQy1jY30gLUV8JHtDQy1jY30gLUV8ZycgY29uZmlndXJlCit9Citkb19pbnN0 YWxsKCkgeworCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwKKwl2bWtkaXIgZXRjL3V1 Y3AvCisJdmluc3RhbGwgc2FtcGxlL2NvbmZpZyAwNjQ0IGV0Yy91dWNwLworCXZpbnN0YWxsIHNh bXBsZS9zeXMxIDA2NDQgZXRjL3V1Y3AvCisJdmluc3RhbGwgc2FtcGxlL3BvcnQgMDY0NCBldGMv dXVjcC8KKwlzZWQgLWkgJ3N8XCRcKnwiJEAifCcgJHtERVNURElSfS91c3IvYmluL3t1dXRvLHV1 c2NoZWR9CisJY2htb2QgdSt3ICR7REVTVERJUn0vdXNyL2Jpbi8qCisJdm1hbiAke0ZJTEVTRElS fS91dWxvZy4xCisJdm1hbiAke0ZJTEVTRElSfS91dW5hbWUuMQorCXZtYW4gJHtGSUxFU0RJUn0v dXVwaWNrLjEKKwl2bWFuICR7RklMRVNESVJ9L3V1dG8uMQorCXZtYW4gJHtGSUxFU0RJUn0vdXVz Y2hlZC44Cit9Cg== --===============0138545607907222850==--