Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vk1DZ-0086Ys-0I for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Jan 2026 14:35:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vk1DW-0052Dv-19 for pgsql-hackers@arkaria.postgresql.org; Sun, 25 Jan 2026 14:35:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vk1DV-0052Dn-1e for pgsql-hackers@lists.postgresql.org; Sun, 25 Jan 2026 14:35:54 +0000 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vk1DQ-002EhV-1N for pgsql-hackers@postgresql.org; Sun, 25 Jan 2026 14:35:52 +0000 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-b87677a8abeso565925366b.1 for ; Sun, 25 Jan 2026 06:35:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1769351746; x=1769956546; darn=postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=y6wgtSBogSmTFVrKPpPhng58m5vF96S/WcLUBPm8wW0=; b=TJsl4H+j8inyV6cvPup5+u2YlSHFmrruM27UNLzyMNekJylAHzZcJPIk2Ur1FE+IJ6 cEBQ96sUN3qJHZUkzMrRpA1uW12nfzKLu5fR/SEHOtdwYZEENy0Ucb52GaNnj910C212 OG5+gETpAMYrBTDBp9VcyA+rZFHK7mu5ATM+jbI9NR/RUBicE+GWVJgFUhubJf/lbVUl F83KuFIScubFqwxPgx5GCguC0Yq9eVwuvxaxlfqnZAgeYSmyjW763jZNsuSP50DBCzNz m2gllKoH+ff2n78tfEdR+O+KSyRTt/Cx/60GGJ5sWqJE1PfdgtYCQU8j2eF5H1XzlFVr LCzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769351746; x=1769956546; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=y6wgtSBogSmTFVrKPpPhng58m5vF96S/WcLUBPm8wW0=; b=VvTwKsPU4rlIepGKwYwfI6V4W73HsJAqekZaAy1UhbRhTGZI67/rYgJDyrT6cudnBn w1RIhqsoorr5mIP5yXgR52aujj/7TH+5JtO3Q10v+5c4B0oP8N4JJjZ7Kc9JSjHmkYpj 4TDMp8J8E/WaSgBUa6fIndVytu7OjFa78AkIFpaYQw6kjnnNv6IWlDXjrIGPAw6hucJ9 pywEiYvxpybtVwYBjTCFpxmGXpwPmdZnZ1hAMZIPkgGOe/zsStkszsp24BNga9vd7Wr4 /OK7txsrzSW10xPf75qcVu0DM5IS25yH8smxg93Kgor9HAglKtc4wKayosLl0HvTJ+IO WYYg== X-Forwarded-Encrypted: i=1; AJvYcCW1jpOdJwKlYna6ulGl6r4ZJz4x8a/soKiJ4QJUTWLpsG8G1zar4/luIWs2SMWinlFh3qZSeU2sLX39xVoK@postgresql.org X-Gm-Message-State: AOJu0Yyvrtmt+lG43ADDVxDddfnUBeiPygAi95V8uB62p0bhOm2sfQre +niXJA4Z8tR/7TiNollAb6Px4CtaDoyluJgGlPDfc986BpcSvDkXZHGlzzEl6S+EELs= X-Gm-Gg: AZuq6aKX8xiToLXcXKYi2PdR/pCBQpNObANJCavvDrazXwoCHbjkX223H4qs12HNdpk FCzx2Qp3rq/Y9Ylpw1nyl9jW8h0t2S2fFV+1SrFk7KAV5H5iUn3QdfaE0c5J35nbAm25bJ1KXss JFFAdC9tKFAZxOJJtkGbnJtttyJbV4HxL1hlFqlnLaoKo8u4afraUdJOgl52Surk7mz/US55peg InpYAaSNTHdp41Z3riwcJ01k1IcRbzLVEPBnvQTzs78+hNJCDFMgIJarLfnKpRIMObffmDDWct2 /8CQ1NGWqCSKQhwycdwE2qUzg+FCCxU3EN1p6Ba1UsHqMqBYRy5GGEWk2wgtjCLV8u+qtQ+c6/h AO8/XXs7fJ0GfJJ0ti95PNtXLKDb9gXUnbLBeXo1bwAPp1nBVRhLlr0N8UGBRcckPKlUQa4y84k vZZX6F6vj4l9yN4LJYq8oRexAJl4Dr0Pzoq2o= X-Received: by 2002:a17:907:3dac:b0:b73:1634:6d71 with SMTP id a640c23a62f3a-b8d20d838a5mr124693366b.26.1769351745752; Sun, 25 Jan 2026 06:35:45 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b885b6ff176sm453152966b.32.2026.01.25.06.35.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Jan 2026 06:35:44 -0800 (PST) Content-Type: multipart/mixed; boundary=87c59336e77a0e8153ee6f50c0b35ffff0accabb9618e63484f9ff51ef5d Mime-Version: 1.0 Date: Sun, 25 Jan 2026 15:35:42 +0100 Message-Id: Cc: , , , "Bruce Momjian" Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information To: "torikoshia" , From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <3861403.1735576764@sss.pgh.pa.us> <1f22794321b745549d54359d343e37b8@oss.nttdata.com> <2c9d6eaf26df17bec13bb03bf1e9bcbb@oss.nttdata.com> <2035079.1739124342@sss.pgh.pa.us> <30ce8c5be7d1f67d53276540c29fa1c7@oss.nttdata.com> <7e182802a184ff5c9b54e575f1e3d8a2@oss.nttdata.com> <0310f2ff46d990485f96624ac1744c01@oss.nttdata.com> <192906398eaa10720193d6433d64f0f6@oss.nttdata.com> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --87c59336e77a0e8153ee6f50c0b35ffff0accabb9618e63484f9ff51ef5d Content-Type: multipart/alternative; boundary=42ba61ac38cafb1d44ba8879e0a02b7214c56c9992fb49db0b0863716018 --42ba61ac38cafb1d44ba8879e0a02b7214c56c9992fb49db0b0863716018 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Tue Oct 28, 2025 at 9:43 AM CET, torikoshia wrote: > Rebased the patch again. I took another look at this patch because I think it would be really useful to have. Below is my review: 1. ExplainPropertyInteger("Storage I/O Read", NULL, usage->inblock, es); ExplainPropertyInteger("Storage I/O Read", NULL, usage->outblock, es); The second one is a copy paste error and should say Storage I/O Write instead of read. 2. I think the comment on pgStorageIOUsageParallel could be a bit clearer on how it works, because it's different than how we accumulate most others explain numbers. Something like: Accumulates the I/O usage send by parallel workers to the main process. This does not contain the I/O from the main backend process itself because the kernel tracks that instead of us. 3. I'm not sure if I like the "times" suffix either, because it doesn't mean that did that many reads. It probably read a bunch of blocks in one go. Maybe just put the number without a suffix. 4. I think it would be good to use the string "Storage I/O" in the docs, so that it's easily findable for people that try to figure out how it works. 5. I think this debug statement can be removed: ereport(DEBUG1, (errmsg("Parallel worker's storage I/O times: inblock:%ld outblock:%ld"= , storageiousage->inblock, storageiousage->outblock))); 6. The prepare exacute planning calculation is missing a StorageIOUsageDiff call, so it will report the number since process start. 7. I think it would be good for GetStorageIOUsage to stil initialize the struct values even if pgaio workers are enabled. Let's just set them to 0 in that case. 8. Now that worker is the default io_method the new explain fields are neve= r present in the explain tests anymore. So explain_1.out is unnecessary and can be removed. That obviously also means that there's no coverage for this feature at all in the tests currently, which is clearly a problem. So I think it would be good to add some actual tests for the feature using some other io_method in a Perl TAP test. 9. The added docs about the kernel not being built with the correct options seems a bit too much detail. I'd say remove that sentence. And maybe shorten th 10. nit: There's "Also, When..." in the docs, when should be lower case there. Attached is your original patch plus a fixup patch that address: 1, 2, 3, 5, 6 and 7. --42ba61ac38cafb1d44ba8879e0a02b7214c56c9992fb49db0b0863716018-- --87c59336e77a0e8153ee6f50c0b35ffff0accabb9618e63484f9ff51ef5d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v7-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch Content-Type: text/x-patch; charset=utf-8; name=v7-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch RnJvbSAzMDAxNjk1Y2EzOGU0ZWE2NWM2MzVmZjkwZGU5ZGE1M2QyNTE1OTBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMjggT2N0IDIwMjUgMTc6Mzc6MTEgKzA5MDAKU3ViamVjdDog W1BBVENIIHY3IDEvMl0gQWRkIHN0b3JhZ2UgSS9PIHRyYWNraW5nIHRvICdCVUZGRVJTJyBvcHRp b24KClRoZSAnQlVGRkVSUycgb3B0aW9uIGN1cnJlbnRseSBpbmRpY2F0ZXMgd2hldGhlciBhIGJs b2NrIGhpdCB0aGUgc2hhcmVkCmJ1ZmZlciwgYnV0IGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdl ZW4gYSBjYWNoZSBoaXQgaW4gdGhlIE9TIGNhY2hlIG9yCmEgc3RvcmFnZSBJL08gb3BlcmF0aW9u LgpXaGlsZSBzaGFyZWQgYnVmZmVycyBhbmQgT1MgY2FjaGUgb2ZmZXIgc2ltaWxhciBwZXJmb3Jt YW5jZSwgc3RvcmFnZQpJL08gaXMgc2lnbmlmaWNhbnRseSBzbG93ZXIgaW4gY29tcGFyaXNvbiBp biBnZW5lcmFsLiAgQnkgbWVhc3VyaW5nCnRoZSBudW1iZXJzIG9mIHN0b3JhZ2UgSS9PIHJlYWQg YW5kIHdyaXRlLCB3ZSBjYW4gYmV0dGVyIGlkZW50aWZ5IGlmCnN0b3JhZ2UgSS9PIGlzIGEgYm90 dGxlbmVjayBpbiBwZXJmb3JtYW5jZS4KCkFkZGVkIHRyYWNraW5nIG9mIHN0b3JhZ2UgSS9PIHVz YWdlIGJ5IGNhbGxpbmcgZ2V0cnVzYWdlKDIpIGF0IGJvdGggdGhlCnBsYW5uaW5nIGFuZCBleGVj dXRpb24gcGhhc2Ugc3RhcnQgYW5kIGVuZCBwb2ludHMuCgpBIG1vcmUgZ3JhbnVsYXIgYXBwcm9h Y2ggYXMgd2VsbCBhcyBjdXJyZW50IEJVRkZFUlMgb3B0aW9uKHRyYWNraW5nIGF0CmVhY2ggcGxh biBub2RlKSB3YXMgY29uc2lkZXJlZCBidXQgZm91bmQgdG8gYmUgaW1wcmFjdGljYWwgZHVlIHRv IHRoZQpoaWdoIHBlcmZvcm1hbmNlIGNvc3Qgb2YgZnJlcXVlbnQgZ2V0cnVzYWdlKCkgY2FsbHMu CgpUaGlzIG91dHB1dCBpcyBzaG93biB3aGVuIGlvX21ldGhvZD13b3JrZXIsIHNpbmNlIGFzeW5j aHJvbm91cyB3b3JrZXJzCmhhbmRsZSBJL08gZm9yIG11bHRpcGxlIHByb2Nlc3NlcywgYW5kIGlz b2xhdGluZyB0aGUgRVhQTEFJTiB0YXJnZXQncwpJL08gaXMgZGlmZmljdWx0LgoKVE9ETzoKSSBi ZWxpZXZlIHRoaXMgaW5mb3JtYXRpb24gaXMgbWFpbmx5IHVzZWZ1bCB3aGVuIHVzZWQgaW4gYXV0 b19leHBsYWluLgpJJ20gZ29pbmcgdG8gaW1wbGVtZW50IGl0IGlmIHRoaXMgcGF0Y2ggaXMgbWVy Z2VkLgpTcXVhc2hlZCBjb21taXQgb2YgdGhlIGZvbGxvd2luZzoKLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2V4cGxhaW4uc2dtbCAgICAgICAgICAgfCAgMjQgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbi5jICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmlu c2VydC5jICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j ICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgIHwg MTI1ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICB8ICAgOCAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgfCAgIDggKy0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICB8ICAzNSArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvaW5zdHJ1bWVudC5jICAgICAgIHwgIDc5ICsrLQogc3JjL2luY2x1ZGUvY29tbWFu ZHMvZXhwbGFpbi5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQ YXJhbGxlbC5oICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50Lmgg ICAgICAgfCAgMjAgKy0KIHNyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmggICB8 ICAgMiArCiBzcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jICAgICAgICAgICAgICAgfCAgIDQgKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0IHwgODU3ICsrKysrKysrKysr KysrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgIHwg ICAxICsKIDE2IGZpbGVzIGNoYW5nZWQsIDExNTYgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWlu XzEub3V0CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbAppbmRleCA3ZGVlNzdmZDM2Ni4uMjQ0OTkwYTk5ZmIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBAIC0yMDQsNiArMjA0LDMwIEBAIFJPTExCQUNLOwogICAg ICAgZm9ybWF0LCBvbmx5IG5vbi16ZXJvIHZhbHVlcyBhcmUgcHJpbnRlZC4gIEJ1ZmZlcnMgaW5m b3JtYXRpb24gaXMKICAgICAgIGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQgd2hlbiA8bGl0ZXJhbD5B TkFMWVpFPC9saXRlcmFsPiBpcyB1c2VkLgogICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAg ICAgSWYgcG9zc2libGUsIHRoaXMgb3B0aW9uIGFsc28gZGlzcGxheXMgdGhlIG51bWJlciBvZiBy ZWFkIGFuZCB3cml0ZQorICAgICAgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gc3RvcmFnZSBkdXJp bmcgdGhlIHBsYW5uaW5nIGFuZCBleGVjdXRpb24gcGhhc2VzLAorICAgICAgc2hvd24gYXQgdGhl IGVuZCBvZiB0aGUgcGxhbi4gVGhlc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQorICAg ICAgPGZ1bmN0aW9uPmdldHJ1c2FnZSgpPC9mdW5jdGlvbj4gc3lzdGVtIGNhbGwuIE5vdGUgdGhh dCBvbiBwbGF0Zm9ybXMgdGhhdAorICAgICAgZG8gbm90IHN1cHBvcnQgPGZ1bmN0aW9uPmdldHJ1 c2FnZSgpPC9mdW5jdGlvbj4sIHN1Y2ggYXMgV2luZG93cywgbm8gb3V0cHV0CisgICAgICB3aWxs IGJlIHNob3duLCBldmVuIGlmIHJlYWRzIG9yIHdyaXRlcyBhY3R1YWxseSBvY2N1ci4gQWRkaXRp b25hbGx5LCBldmVuCisgICAgICBvbiBwbGF0Zm9ybXMgd2hlcmUgPGZ1bmN0aW9uPmdldHJ1c2Fn ZSgpPC9mdW5jdGlvbj4gaXMgc3VwcG9ydGVkLCBpZiB0aGUKKyAgICAgIGtlcm5lbCBpcyBidWls dCB3aXRob3V0IHRoZSBuZWNlc3Nhcnkgb3B0aW9ucyB0byB0cmFjayBzdG9yYWdlIHJlYWQgYW5k CisgICAgICB3cml0ZSBvcGVyYXRpb25zLCBubyBvdXRwdXQgd2lsbCBiZSBzaG93bi4gIEFsc28s IFdoZW4KKyAgICAgIDx2YXJuYW1lPmlvX21ldGhvZDwvdmFybmFtZT4gaXMgc2V0IHRvIDxsaXRl cmFsPndvcmtlcjwvbGl0ZXJhbD4sIG5vIG91dHB1dAorICAgICAgd2lsbCBiZSBzaG93biwgYXMg SS9PIGhhbmRsZWQgYnkgYXN5bmNocm9ub3VzIHdvcmtlcnMgY2Fubm90IGJlIG1lYXN1cmVkCisg ICAgICBhY2N1cmF0ZWx5LgorICAgICAgVGhlIHRpbWluZyBhbmQgdW5pdCBvZiBtZWFzdXJlbWVu dCBmb3IgcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBtYXkgdmFyeQorICAgICAgZGVwZW5kaW5n IG9uIHRoZSBwbGF0Zm9ybS4gRm9yIGV4YW1wbGUsIG9uIExpbnV4LCBhIHJlYWQgaXMgY291bnRl ZCBvbmx5CisgICAgICBpZiB0aGlzIHByb2Nlc3MgY2F1c2VkIGRhdGEgdG8gYmUgZmV0Y2hlZCBm cm9tIHRoZSBzdG9yYWdlIGxheWVyLCBhbmQgYQorICAgICAgd3JpdGUgaXMgY291bnRlZCBhdCB0 aGUgcGFnZS1kaXJ0eWluZyB0aW1lLiBPbiBMaW51eCwgdGhlIHVuaXQgb2YKKyAgICAgIG1lYXN1 cmVtZW50IGZvciByZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zIGlzIDUxMiBieXRlcy4KKyAgICAg PC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIEJ1ZmZlcnMgaW5mb3JtYXRpb24gaXMgaW5jbHVk ZWQgYnkgZGVmYXVsdCB3aGVuIDxsaXRlcmFsPkFOQUxZWkU8L2xpdGVyYWw+CisgICAgICBpcyB1 c2VkIGJ1dCBvdGhlcndpc2UgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUg ZW5hYmxlZCB1c2luZworICAgICAgdGhpcyBvcHRpb24uCisgICAgIDwvcGFyYT4KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCA2 ODg3ZTQyMTQ0Mi4uOWIzNDkxNDE0MGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9i cmluL2JyaW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTI1NzIs NyArMjU3Miw3IEBAIF9icmluX2VuZF9wYXJhbGxlbChCcmluTGVhZGVyICpicmlubGVhZGVyLCBC cmluQnVpbGRTdGF0ZSAqc3RhdGUpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0 YS4pCiAJICovCiAJZm9yIChpID0gMDsgaSA8IGJyaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xh dW5jaGVkOyBpKyspCi0JCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZm ZXJ1c2FnZVtpXSwgJmJyaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFs bGVsUXVlcnkoJmJyaW5sZWFkZXItPmJ1ZmZlcnVzYWdlW2ldLCBOVUxMLCAmYnJpbmxlYWRlci0+ d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90 LCBpZiBvbmUgd2FzIHVzZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoYnJpbmxlYWRlci0+c25h cHNob3QpKQpAQCAtMjkzNCw3ICsyOTM0LDcgQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihk c21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJdHVwbGVzb3J0X2F0dGFjaF9zaGFyZWQo c2hhcmVkc29ydCwgc2VnKTsKIAogCS8qIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1 cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOwor CUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KE5VTEwpOwogCiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxs IHVzZSByZWxpYWJsZSBmaWd1cmUgd2hlbiBkb2xpbmcgb3V0IG1haW50ZW5hbmNlX3dvcmtfbWVt CkBAIC0yOTQ5LDggKzI5NDksOCBAQCBfYnJpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdt ZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJp bmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0 b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90 b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5k UGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJ ICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndh bHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCk7CiAKIAlpbmRleF9jbG9zZShpbmRl eFJlbCwgaW5kZXhMb2NrbW9kZSk7CiAJdGFibGVfY2xvc2UoaGVhcFJlbCwgaGVhcExvY2ttb2Rl KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IDBkNjNmYjRiYTI3Li41ZjM0NTI0 YmUzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC0xMTE2LDcgKzExMTYsNyBA QCBfZ2luX2VuZF9wYXJhbGxlbChHaW5MZWFkZXIgKmdpbmxlYWRlciwgR2luQnVpbGRTdGF0ZSAq c3RhdGUpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCiAJICovCiAJZm9y IChpID0gMDsgaSA8IGdpbmxlYWRlci0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7IGkrKykKLQkJ SW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmdpbmxlYWRlci0+YnVmZmVydXNhZ2VbaV0sICZnaW5s ZWFkZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmdpbmxlYWRl ci0+YnVmZmVydXNhZ2VbaV0sIE5VTEwsICZnaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKIAogCS8q IEZyZWUgbGFzdCByZWZlcmVuY2UgdG8gTVZDQyBzbmFwc2hvdCwgaWYgb25lIHdhcyB1c2VkICov CiAJaWYgKElzTVZDQ1NuYXBzaG90KGdpbmxlYWRlci0+c25hcHNob3QpKQpAQCAtMjE3Niw3ICsy MTc2LDcgQEAgX2dpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAl0dXBsZXNvcnRfYXR0YWNoX3NoYXJlZChzaGFyZWRzb3J0LCBzZWcpOwogCiAJ LyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlv biAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoTlVMTCk7CiAKIAkvKgogCSAqIE1pZ2h0IGFzIHdlbGwgdXNlIHJlbGlhYmxlIGZpZ3VyZSB3 aGVuIGRvbGluZyBvdXQgbWFpbnRlbmFuY2Vfd29ya19tZW0KQEAgLTIxOTEsOCArMjE5MSw4IEBA IF9naW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2Mp CiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAq LwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVS X1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVM X0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVz YWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29y a2VyTnVtYmVyXSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxl bFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51 bWJlcl0sIE5VTEwpOwogCiAJaW5kZXhfY2xvc2UoaW5kZXhSZWwsIGluZGV4TG9ja21vZGUpOwog CXRhYmxlX2Nsb3NlKGhlYXBSZWwsIGhlYXBMb2NrbW9kZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0c29ydC5jCmluZGV4IDkwYWI0ZTkxYjU2Li5mNDYwOTAxN2Q4MCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMKQEAgLTE2MTcsNyArMTYxNyw3IEBAIF9idF9lbmRfcGFyYWxsZWwo QlRMZWFkZXIgKmJ0bGVhZGVyKQogCSAqIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRlIGRhdGEu KQogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBidGxlYWRlci0+cGN4dC0+bndvcmtlcnNfbGF1bmNo ZWQ7IGkrKykKLQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJ0bGVhZGVyLT5idWZmZXJ1c2Fn ZVtpXSwgJmJ0bGVhZGVyLT53YWx1c2FnZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5 KCZidGxlYWRlci0+YnVmZmVydXNhZ2VbaV0sIE5VTEwsICZidGxlYWRlci0+d2FsdXNhZ2VbaV0p OwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUgd2Fz IHVzZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoYnRsZWFkZXItPnNuYXBzaG90KSkKQEAgLTE4 MjUsNyArMTgyNSw3IEBAIF9idF9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcs IHNobV90b2MgKnRvYykKIAl9CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBk dXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsK KwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qIFBlcmZvcm0gc29ydGluZyBv ZiBzcG9vbCwgYW5kIHBvc3NpYmx5IGEgc3Bvb2wyICovCiAJc29ydG1lbSA9IG1haW50ZW5hbmNl X3dvcmtfbWVtIC8gYnRzaGFyZWQtPnNjYW50dXBsZXNvcnRzdGF0ZXM7CkBAIC0xODM1LDggKzE4 MzUsOCBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1 dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlf QlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBB UkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1 ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdlW1BhcmFs bGVsV29ya2VyTnVtYmVyXSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQ YXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdv cmtlck51bWJlcl0sIE5VTEwpOwogCiAjaWZkZWYgQlRSRUVfQlVJTERfU1RBVFMKIAlpZiAobG9n X2J0cmVlX2J1aWxkX3N0YXRzKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhw bGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGI3YmIxMTE2ODhj Li43OTAyODY2ZGE3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMzIsNiArMzIsNyBAQAog I2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5o IgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdl L2Fpb19zdWJzeXMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInRj b3AvdGNvcHByb3QuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTQ0LDYgKzE0 NSw4IEBAIHN0YXRpYyB2b2lkIHNob3dfZm9yZWlnbnNjYW5faW5mbyhGb3JlaWduU2NhblN0YXRl ICpmc3N0YXRlLCBFeHBsYWluU3RhdGUgKmVzKTsKIHN0YXRpYyBjb25zdCBjaGFyICpleHBsYWlu X2dldF9pbmRleF9uYW1lKE9pZCBpbmRleElkKTsKIHN0YXRpYyBib29sIHBlZWtfYnVmZmVyX3Vz YWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSk7CiBzdGF0aWMg dm9pZCBzaG93X2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2Fn ZSAqdXNhZ2UpOworc3RhdGljIGJvb2wgcGVla19zdG9yYWdlaW9fdXNhZ2UoRXhwbGFpblN0YXRl ICplcywgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKTsKK3N0YXRpYyB2b2lkIHNob3dfc3Rv cmFnZWlvX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2Fn ZSk7CiBzdGF0aWMgdm9pZCBzaG93X3dhbF91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBX YWxVc2FnZSAqdXNhZ2UpOwogc3RhdGljIHZvaWQgc2hvd19tZW1vcnlfY291bnRlcnMoRXhwbGFp blN0YXRlICplcywKIAkJCQkJCQkJIGNvbnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2Nv dW50ZXJzKTsKQEAgLTMyNiw2ICszMjksOCBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVl cnkgKnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJCQlwbGFuZHVyYXRpb247CiAJQnVmZmVy VXNhZ2UgYnVmdXNhZ2Vfc3RhcnQsCiAJCQkJYnVmdXNhZ2U7CisJU3RvcmFnZUlPVXNhZ2Ugc3Rv cmFnZWlvLAorCQkJCXN0b3JhZ2Vpb19zdGFydDsKIAlNZW1vcnlDb250ZXh0Q291bnRlcnMgbWVt X2NvdW50ZXJzOwogCU1lbW9yeUNvbnRleHQgcGxhbm5lcl9jdHggPSBOVUxMOwogCU1lbW9yeUNv bnRleHQgc2F2ZWRfY3R4ID0gTlVMTDsKQEAgLTM0Nyw3ICszNTIsMTAgQEAgc3RhbmRhcmRfRXhw bGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJfQogCiAJaWYg KGVzLT5idWZmZXJzKQorCXsKIAkJYnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOworCQlH ZXRTdG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlvX3N0YXJ0KTsKKwl9CiAJSU5TVFJfVElNRV9TRVRf Q1VSUkVOVChwbGFuc3RhcnQpOwogCiAJLyogcGxhbiB0aGUgcXVlcnkgKi8KQEAgLTM2MiwxNiAr MzcwLDIwIEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJz b3JPcHRpb25zLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZtZW1f Y291bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJz LiAqLworCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGFuZCBzdG9yYWdlIEkvTyBjb3Vu dGVycy4gKi8KIAlpZiAoZXMtPmJ1ZmZlcnMpCiAJewogCQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBz aXplb2YoQnVmZmVyVXNhZ2UpKTsKIAkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAm cGdCdWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKKworCQlHZXRTdG9yYWdlSU9Vc2FnZSgm c3RvcmFnZWlvKTsKKwkJU3RvcmFnZUlPVXNhZ2VEaWZmKCZzdG9yYWdlaW8sICZzdG9yYWdlaW9f c3RhcnQpOwogCX0KIAogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRwdXQg Ki8KIAlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFtcywg cXVlcnlFbnYsCiAJCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdl IDogTlVMTCksCisJCQkJICAgZXMtPmJ1ZmZlcnMgPyAmc3RvcmFnZWlvIDogTlVMTCwKIAkJCQkg ICBlcy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogfQogCkBAIC00OTUsNyArNTA3 LDcgQEAgdm9pZAogRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRv Q2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCQkJICAgY29uc3QgY2hhciAqcXVlcnlT dHJpbmcsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVl cnlFbnYsIGNvbnN0IGluc3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKLQkJCSAgIGNvbnN0IEJ1ZmZl clVzYWdlICpidWZ1c2FnZSwKKwkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgY29u c3QgU3RvcmFnZUlPVXNhZ2UgKnBsYW5zdG9yYWdlaW8sCiAJCQkgICBjb25zdCBNZW1vcnlDb250 ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycykKIHsKIAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CkBAIC01 MDUsNiArNTE3LDcgQEAgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJ bnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCWludAkJCWVmbGFnczsKIAlpbnQJ CQlpbnN0cnVtZW50X29wdGlvbiA9IDA7CiAJU2VyaWFsaXplTWV0cmljcyBzZXJpYWxpemVNZXRy aWNzID0gezB9OworCVN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2Vpb19zdGFydDsKIAogCUFzc2VydChw bGFubmVkc3RtdC0+Y29tbWFuZFR5cGUgIT0gQ01EX1VUSUxJVFkpOwogCkBAIC01MTQsNyArNTI3 LDE5IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVz ZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJaW5zdHJ1bWVudF9vcHRpb24gfD0gSU5TVFJV TUVOVF9ST1dTOwogCiAJaWYgKGVzLT5idWZmZXJzKQorCXsKKwkJR2V0U3RvcmFnZUlPVXNhZ2Uo JnN0b3JhZ2Vpb19zdGFydCk7CisKKwkJLyoKKwkJICogSW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFi bGUgY291bnRlcnMgZm9yIHBhcmFsbGVsIHF1ZXJ5IHdvcmtlcnMuCisJCSAqIEV2ZW4gaWYgdGhl IHF1ZXJ5IGlzIGNhbmNlbGxlZCBvbiB0aGUgd2F5LCB0aGUgRVhQTEFJTiBleGVjdXRpb24KKwkJ ICogYWx3YXlzIHBhc3NlcyBoZXJlLCBzbyBpdCBjYW4gYmUgaW5pdGlhbGl6ZWQgaGVyZS4KKwkJ ICovCisJCXBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbC5pbmJsb2NrID0gMDsKKwkJcGdTdG9yYWdl SU9Vc2FnZVBhcmFsbGVsLm91dGJsb2NrID0gMDsKKwogCQlpbnN0cnVtZW50X29wdGlvbiB8PSBJ TlNUUlVNRU5UX0JVRkZFUlM7CisJfQogCWlmIChlcy0+d2FsKQogCQlpbnN0cnVtZW50X29wdGlv biB8PSBJTlNUUlVNRU5UX1dBTDsKIApAQCAtNTk4LDggKzYyMyw5IEBAIEV4cGxhaW5PbmVQbGFu KFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRl ICplcywKIAkvKiBDcmVhdGUgdGV4dHVhbCBkdW1wIG9mIHBsYW4gdHJlZSAqLwogCUV4cGxhaW5Q cmludFBsYW4oZXMsIHF1ZXJ5RGVzYyk7CiAKLQkvKiBTaG93IGJ1ZmZlciBhbmQvb3IgbWVtb3J5 IHVzYWdlIGluIHBsYW5uaW5nICovCi0JaWYgKHBlZWtfYnVmZmVyX3VzYWdlKGVzLCBidWZ1c2Fn ZSkgfHwgbWVtX2NvdW50ZXJzKQorCS8qIFNob3cgYnVmZmVyLCBzdG9yYWdlIEkvTywgYW5kL29y IG1lbW9yeSB1c2FnZSBpbiBwbGFubmluZyAqLworCWlmIChwZWVrX2J1ZmZlcl91c2FnZShlcywg YnVmdXNhZ2UpIHx8IHBlZWtfc3RvcmFnZWlvX3VzYWdlKGVzLCBwbGFuc3RvcmFnZWlvKSB8fAor CQltZW1fY291bnRlcnMpCiAJewogCQlFeHBsYWluT3Blbkdyb3VwKCJQbGFubmluZyIsICJQbGFu bmluZyIsIHRydWUsIGVzKTsKIApAQCAtNjExLDggKzYzNywxMCBAQCBFeHBsYWluT25lUGxhbihQ bGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAq ZXMsCiAJCX0KIAogCQlpZiAoYnVmdXNhZ2UpCisJCXsKIAkJCXNob3dfYnVmZmVyX3VzYWdlKGVz LCBidWZ1c2FnZSk7Ci0KKwkJCXNob3dfc3RvcmFnZWlvX3VzYWdlKGVzLCBwbGFuc3RvcmFnZWlv KTsKKwkJfQogCQlpZiAobWVtX2NvdW50ZXJzKQogCQkJc2hvd19tZW1vcnlfY291bnRlcnMoZXMs IG1lbV9jb3VudGVycyk7CiAKQEAgLTY2OSw2ICs2OTcsMzQgQEAgRXhwbGFpbk9uZVBsYW4oUGxh bm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVz LAogCiAJdG90YWx0aW1lICs9IGVsYXBzZWRfdGltZSgmc3RhcnR0aW1lKTsKIAorCS8qIFNob3cg c3RvcmFnZSBJL08gdXNhZ2UgaW4gZXhlY3V0aW9uICovCisJaWYgKGVzLT5idWZmZXJzKQorCXsK KwkJU3RvcmFnZUlPVXNhZ2Ugc3RvcmFnZWlvOworCisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9y YWdlaW8pOworCQlTdG9yYWdlSU9Vc2FnZURpZmYoJnN0b3JhZ2VpbywgJnN0b3JhZ2Vpb19zdGFy dCk7CisJCVN0b3JhZ2VJT1VzYWdlQWRkKCZzdG9yYWdlaW8sICZwZ1N0b3JhZ2VJT1VzYWdlUGFy YWxsZWwpOworCisJCWlmIChwZWVrX3N0b3JhZ2Vpb191c2FnZShlcywgJnN0b3JhZ2VpbykpCisJ CXsKKwkJCUV4cGxhaW5PcGVuR3JvdXAoIkV4ZWN1dGlvbiIsICJFeGVjdXRpb24iLCB0cnVlLCBl cyk7CisKKwkJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCisJCQl7CisJ CQkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMt PnN0ciwgIkV4ZWN1dGlvbjpcbiIpOworCQkJCWVzLT5pbmRlbnQrKzsKKwkJCX0KKwkJCXNob3df c3RvcmFnZWlvX3VzYWdlKGVzLCAmc3RvcmFnZWlvKTsKKworCQkJaWYgKGVzLT5mb3JtYXQgPT0g RVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCQllcy0+aW5kZW50LS07CisKKwkJCUV4cGxhaW5DbG9z ZUdyb3VwKCJFeGVjdXRpb24iLCAiRXhlY3V0aW9uIiwgdHJ1ZSwgZXMpOworCQl9CisJfQorCiAJ LyoKIAkgKiBXZSBvbmx5IHJlcG9ydCBleGVjdXRpb24gdGltZSBpZiB3ZSBhY3R1YWxseSByYW4g dGhlIHF1ZXJ5ICh0aGF0IGlzLAogCSAqIHRoZSB1c2VyIHNwZWNpZmllZCBBTkFMWVpFKSwgYW5k IGlmIHN1bW1hcnkgcmVwb3J0aW5nIGlzIGVuYWJsZWQgKHRoZQpAQCAtNDI3NSw2ICs0MzMxLDY1 IEBAIHNob3dfYnVmZmVyX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdl ICp1c2FnZSkKIAl9CiB9CiAKKy8qCisgKiBSZXR1cm4gd2hldGhlciBzaG93X3N0b3JhZ2Vpb191 c2FnZSB3b3VsZCBoYXZlIGFueXRoaW5nIHRvIHByaW50LCBpZiBnaXZlbgorICogdGhlIHNhbWUg J3VzYWdlJyBkYXRhLiAgTm90ZSB0aGF0IHdoZW4gdGhlIGZvcm1hdCBpcyBhbnl0aGluZyBvdGhl ciB0aGFuCisgKiB0ZXh0LCB3ZSBwcmludCBldmVuIGlmIHRoZSBjb3VudGVycyBhcmUgYWxsIHpl cm9lcy4KKyAqLworc3RhdGljIGJvb2wKK3BlZWtfc3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5TdGF0 ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSkKK3sKKwlpZiAodXNhZ2UgPT0gTlVM TCkKKwkJcmV0dXJuIGZhbHNlOworCisJLyoKKwkgKiBTaW5jZSBzaG93aW5nIG9ubHkgdGhlIEkv TyBleGNsdWRpbmcgQUlPIHdvcmtlcnMgdW5kZXJlc3RpbWF0ZXMgdGhlCisJICogdG90YWwgSS9P LCB0cmVhdCB0aGlzIGNhc2UgYXMgaGF2aW5nIG5vdGhpbmcgdG8gcHJpbnQuCisJICovCisJaWYg KHBnYWlvX3dvcmtlcnNfZW5hYmxlZCgpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZXMtPmZv cm1hdCAhPSBFWFBMQUlOX0ZPUk1BVF9URVhUKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiB1 c2FnZS0+aW5ibG9jayA+IDAgfHwgdXNhZ2UtPm91dGJsb2NrID4gMDsKK30KKworLyoKKyAqIFNo b3cgc3RvcmFnZSBJL08gdXNhZ2UuCisgKi8KK3N0YXRpYyB2b2lkCitzaG93X3N0b3JhZ2Vpb191 c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqdXNhZ2UpCit7CisJ LyoKKwkgKiBTaW5jZSBzaG93aW5nIG9ubHkgdGhlIEkvTyBleGNsdWRpbmcgQUlPIHdvcmtlcnMg dW5kZXJlc3RpbWF0ZXMgdGhlCisJICogdG90YWwgSS9PLCBkbyBub3Qgc2hvdyBhbnl0aGluZy4K KwkgKi8KKwlpZiAocGdhaW9fd29ya2Vyc19lbmFibGVkKCkpCisJCXJldHVybjsKKworCWlmIChl cy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCisJeworCQkvKiBTaG93IG9ubHkgcG9z aXRpdmUgY291bnRlciB2YWx1ZXMuICovCisJCWlmICh1c2FnZS0+aW5ibG9jayA8PSAwICYmIHVz YWdlLT5vdXRibG9jayA8PSAwKQorCQkJcmV0dXJuOworCisJCUV4cGxhaW5JbmRlbnRUZXh0KGVz KTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAiU3RvcmFnZSBJL086Iik7CisJ CWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiByZWFkPSVsZCB0aW1lcyIsIChsb25nKSB1c2Fn ZS0+aW5ibG9jayk7CisJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiB3cml0ZT0lbGQgdGlt ZXMiLCAobG9uZykgdXNhZ2UtPm91dGJsb2NrKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihl cy0+c3RyLCAnXG4nKTsKKwl9CisJZWxzZQorCXsKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigi U3RvcmFnZSBJL08gUmVhZCIsIE5VTEwsCisJCQkJCQkJICAgdXNhZ2UtPmluYmxvY2ssIGVzKTsK KwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiU3RvcmFnZSBJL08gUmVhZCIsIE5VTEwsCisJCQkJ CQkJICAgdXNhZ2UtPm91dGJsb2NrLCBlcyk7CisJfQorfQorCiAvKgogICogU2hvdyBXQUwgdXNh Z2UgZGV0YWlscy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDViODZhNzI3NTg3Li4w OGJmMjhkMjA3OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNTgyLDYgKzU4Miw4IEBAIEV4 cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRv LCBFeHBsYWluU3RhdGUgKmVzLAogCWluc3RyX3RpbWUJcGxhbmR1cmF0aW9uOwogCUJ1ZmZlclVz YWdlIGJ1ZnVzYWdlX3N0YXJ0LAogCQkJCWJ1ZnVzYWdlOworCVN0b3JhZ2VJT1VzYWdlIHN0b3Jh Z2VpbywKKwkJCQlzdG9yYWdlaW9fc3RhcnQ7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJzIG1lbV9j b3VudGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1vcnlDb250 ZXh0IHNhdmVkX2N0eCA9IE5VTEw7CkBAIC01OTcsNyArNTk5LDExIEBAIEV4cGxhaW5FeGVjdXRl UXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3Rh dGUgKmVzLAogCX0KIAogCWlmIChlcy0+YnVmZmVycykKKwl7CiAJCWJ1ZnVzYWdlX3N0YXJ0ID0g cGdCdWZmZXJVc2FnZTsKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpb19zdGFydCk7CisJ fQorCiAJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuc3RhcnQpOwogCiAJLyogTG9vayBpdCB1 cCBpbiB0aGUgaGFzaCB0YWJsZSAqLwpAQCAtNjQ3LDYgKzY1Myw3IEBAIEV4cGxhaW5FeGVjdXRl UXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3Rh dGUgKmVzLAogCXsKIAkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7 CiAJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1 c2FnZV9zdGFydCk7CisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9yYWdlaW8pOwogCX0KIAogCXBs YW5fbGlzdCA9IGNwbGFuLT5zdG10X2xpc3Q7CkBAIC02NTksNiArNjY2LDcgQEAgRXhwbGFpbkV4 ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxh aW5TdGF0ZSAqZXMsCiAJCWlmIChwc3RtdC0+Y29tbWFuZFR5cGUgIT0gQ01EX1VUSUxJVFkpCiAJ CQlFeHBsYWluT25lUGxhbihwc3RtdCwgaW50bywgZXMsIHF1ZXJ5X3N0cmluZywgcGFyYW1MSSwg cHN0YXRlLT5wX3F1ZXJ5RW52LAogCQkJCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJz ID8gJmJ1ZnVzYWdlIDogTlVMTCksCisJCQkJCQkgICBlcy0+YnVmZmVycyA/ICZzdG9yYWdlaW8g OiBOVUxMLAogCQkJCQkJICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIAkJ ZWxzZQogCQkJRXhwbGFpbk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlTdG10LCBpbnRvLCBlcywg cHN0YXRlLCBwYXJhbUxJKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4 IGMzYjNjOWVhMjFhLi5kMTljZDA0ZTQyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJh bGxlbC5jCkBAIC03MzcsNyArNzM3LDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2lu ZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJV2Fp dEZvclBhcmFsbGVsV29ya2Vyc1RvRmluaXNoKHB2cy0+cGN4dCk7CiAKIAkJZm9yIChpbnQgaSA9 IDA7IGkgPCBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKyspCi0JCQlJbnN0ckFjY3Vt UGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0sICZwdnMtPndhbF91c2FnZVtpXSk7 CisJCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0sIE5VTEws ICZwdnMtPndhbF91c2FnZVtpXSk7CiAJfQogCiAJLyoKQEAgLTEwODMsNyArMTA4Myw3IEBAIHBh cmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAllcnJv cl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCiAJLyogUHJlcGFyZSB0byB0cmFjayBi dWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwotCUluc3RyU3RhcnRQYXJh bGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoTlVMTCk7CiAKIAkvKiBQcm9j ZXNzIGluZGV4ZXMgdG8gcGVyZm9ybSB2YWN1dW0vY2xlYW51cCAqLwogCXBhcmFsbGVsX3ZhY3V1 bV9wcm9jZXNzX3NhZmVfaW5kZXhlcygmcHZzKTsKQEAgLTEwOTEsOCArMTA5MSw4IEBAIHBhcmFs bGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBSZXBv cnQgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVmZmVy X3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9WQUNVVU1fS0VZX0JVRkZFUl9V U0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxf VkFDVVVNX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1 ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCi0JCQkJCQkgICZ3YWxfdXNhZ2VbUGFy YWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcl91c2Fn ZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWxfdXNhZ2VbUGFyYWxs ZWxXb3JrZXJOdW1iZXJdLCBOVUxMKTsKIAogCS8qIFJlcG9ydCBhbnkgcmVtYWluaW5nIGNvc3Qt YmFzZWQgdmFjdXVtIGRlbGF5IHRpbWUgKi8KIAlpZiAodHJhY2tfY29zdF9kZWxheV90aW1pbmcp CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4IDc3MmU4MWYzMTU0Li4wODFhY2Y0 ODNiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTY2LDYgKzY2LDcgQEAK ICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAw MDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJVF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0 Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmluZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdF CQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBBKQorI2RlZmluZSBQQVJBTExFTF9LRVlf U1RPUkFHRUlPX1VTQUdFCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQikKIAogI2RlZmlu ZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgogCkBAIC02MjEsNiArNjIyLDcgQEAg RXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRl LAogCWNoYXIJICAgKnBzdG10X3NwYWNlOwogCWNoYXIJICAgKnBhcmFtbGlzdGluZm9fc3BhY2U7 CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOworCVN0b3JhZ2VJT1VzYWdlICpzdG9yYWdl aW91c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZV9zcGFjZTsKIAlTaGFyZWRFeGVj dXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9uID0gTlVMTDsKIAlTaGFyZWRKaXRJ bnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVtZW50YXRpb24gPSBOVUxMOwpAQCAtNzAyLDYgKzcw NCwxMyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRl ICplc3RhdGUsCiAJCQkJCQkgICBtdWxfc2l6ZShzaXplb2YoV2FsVXNhZ2UpLCBwY3h0LT5ud29y a2VycykpOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKIAor CS8qCisJICogU2FtZSB0aGluZyBmb3IgU3RvcmFnZUlPVXNhZ2UuCisJICovCisJc2htX3RvY19l c3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLAorCQkJCQkJICAgbXVsX3NpemUoc2l6ZW9m KFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKKwlzaG1fdG9jX2VzdGltYXRlX2tl eXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkvKiBFc3RpbWF0ZSBzcGFjZSBmb3IgdHVwbGUg cXVldWVzLiAqLwogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwKIAkJ CQkJCSAgIG11bF9zaXplKFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUsIHBjeHQtPm53b3JrZXJz KSk7CkBAIC03OTcsNiArODA2LDEyIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAq cGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBB UkFMTEVMX0tFWV9XQUxfVVNBR0UsIHdhbHVzYWdlX3NwYWNlKTsKIAlwZWktPndhbF91c2FnZSA9 IHdhbHVzYWdlX3NwYWNlOwogCisJLyogU2FtZSBmb3IgU3RvcmFnZUlPVXNhZ2UuICovCisJc3Rv cmFnZWlvdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywKKwkJCQkJCQkJ CQkJbXVsX3NpemUoc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKKwlz aG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9TVE9SQUdFSU9fVVNBR0UsIHN0 b3JhZ2Vpb3VzYWdlX3NwYWNlKTsKKwlwZWktPnN0b3JhZ2Vpb191c2FnZSA9IHN0b3JhZ2Vpb3Vz YWdlX3NwYWNlOworCiAJLyogU2V0IHVwIHRoZSB0dXBsZSBxdWV1ZXMgdGhhdCB0aGUgd29ya2Vy cyB3aWxsIHdyaXRlIGludG8uICovCiAJcGVpLT50cXVldWUgPSBFeGVjUGFyYWxsZWxTZXR1cFR1 cGxlUXVldWVzKHBjeHQsIGZhbHNlKTsKIApAQCAtMTIwNywxMSArMTIyMiwxMSBAQCBFeGVjUGFy YWxsZWxGaW5pc2goUGFyYWxsZWxFeGVjdXRvckluZm8gKnBlaSkKIAlXYWl0Rm9yUGFyYWxsZWxX b3JrZXJzVG9GaW5pc2gocGVpLT5wY3h0KTsKIAogCS8qCi0JICogTmV4dCwgYWNjdW11bGF0ZSBi dWZmZXIvV0FMIHVzYWdlLiAgKFRoaXMgbXVzdCB3YWl0IGZvciB0aGUgd29ya2VycyB0bwotCSAq IGZpbmlzaCwgb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCisJICogTmV4dCwgYWNj dW11bGF0ZSBidWZmZXIsIFdBTCwgYW5kIFN0b3JhZ2UgSS9PIHVzYWdlLiAoVGhpcyBtdXN0IHdh aXQKKwkgKiBmb3IgdGhlIHdvcmtlcnMgdG8gZmluaXNoLCBvciB3ZSBtaWdodCBnZXQgaW5jb21w bGV0ZSBkYXRhLikKIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbndvcmtlcnM7IGkrKykKLQkJSW5z dHJBY2N1bVBhcmFsbGVsUXVlcnkoJnBlaS0+YnVmZmVyX3VzYWdlW2ldLCAmcGVpLT53YWxfdXNh Z2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcGVpLT5idWZmZXJfdXNhZ2VbaV0s ICZwZWktPnN0b3JhZ2Vpb191c2FnZVtpXSwgJnBlaS0+d2FsX3VzYWdlW2ldKTsKIAogCXBlaS0+ ZmluaXNoZWQgPSB0cnVlOwogfQpAQCAtMTQ1Miw2ICsxNDY3LDggQEAgUGFyYWxsZWxRdWVyeU1h aW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogewogCUZpeGVkUGFyYWxsZWxFeGVj dXRvclN0YXRlICpmcGVzOwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNhZ2U7CisJU3RvcmFnZUlP VXNhZ2UgKnN0b3JhZ2Vpb191c2FnZTsKKwlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW9fdXNhZ2Vf c3RhcnQ7CiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwogCURlc3RSZWNlaXZlciAqcmVjZWl2ZXI7 CiAJUXVlcnlEZXNjICAqcXVlcnlEZXNjOwpAQCAtMTUwNSwxMyArMTUyMiwxNCBAQCBQYXJhbGxl bFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJRXhlY1NldFR1cGxl Qm91bmQoZnBlcy0+dHVwbGVzX25lZWRlZCwgcXVlcnlEZXNjLT5wbGFuc3RhdGUpOwogCiAJLyoK LQkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlci9XQUwgdXNhZ2UgZHVyaW5nIHF1ZXJ5IGV4ZWN1 dGlvbi4KKwkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciwgV0FMLCBhbmQgU3RvcmFnZUkvTyB1 c2FnZSBkdXJpbmcgcXVlcnkKKwkgKiBleGVjdXRpb24uCiAJICoKIAkgKiBXZSBkbyB0aGlzIGFm dGVyIHN0YXJ0aW5nIHVwIHRoZSBleGVjdXRvciB0byBtYXRjaCB3aGF0IGhhcHBlbnMgaW4gdGhl CiAJICogbGVhZGVyLCB3aGljaCBhbHNvIGRvZXNuJ3QgY291bnQgYnVmZmVyIGFjY2Vzc2VzIGFu ZCBXQUwgYWN0aXZpdHkgdGhhdAogCSAqIG9jY3VyIGR1cmluZyBleGVjdXRvciBzdGFydHVwLgog CSAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoJnN0b3JhZ2Vpb191c2FnZV9zdGFydCk7CiAKIAkvKgogCSAqIFJ1biB0aGUgcGxhbi4gIElm IHdlIHNwZWNpZmllZCBhIHR1cGxlIGJvdW5kLCBiZSBjYXJlZnVsIG5vdCB0byBkZW1hbmQKQEAg LTE1MjQsMTEgKzE1NDIsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCS8qIFNodXQgZG93biB0aGUgZXhlY3V0b3IgKi8KIAlFeGVjdXRvckZp bmlzaChxdWVyeURlc2MpOwogCi0JLyogUmVwb3J0IGJ1ZmZlci9XQUwgdXNhZ2UgZHVyaW5nIHBh cmFsbGVsIGV4ZWN1dGlvbi4gKi8KKwkvKiBSZXBvcnQgYnVmZmVyLCBXQUwsIGFuZCBzdG9yYWdl IEkvTyB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uLiAqLwogCWJ1ZmZlcl91c2FnZSA9 IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwor CXN0b3JhZ2Vpb191c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1NUT1JB R0VJT19VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFS QUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwogCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVm ZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbF91c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0pOworCQkJCQkJICAmc3RvcmFnZWlvX3VzYWdlW1BhcmFsbGVsV29y a2VyTnVtYmVyXSwKKwkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCisJ CQkJCQkgICZzdG9yYWdlaW9fdXNhZ2Vfc3RhcnQpOwogCiAJLyogUmVwb3J0IGluc3RydW1lbnRh dGlvbiBkYXRhIGlmIGFueSBpbnN0cnVtZW50YXRpb24gb3B0aW9ucyBhcmUgc2V0LiAqLwogCWlm IChpbnN0cnVtZW50YXRpb24gIT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRl eCBlZGFiOTJhMGViZS4uMzE2NjcxYzNjZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMK QEAgLTEzLDE2ICsxMywyMiBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1 ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiAjaW5jbHVkZSAiZXhl Y3V0b3IvaW5zdHJ1bWVudC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvYWlvX3N1YnN5cy5oIgogCiBC dWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdlOwogc3RhdGljIEJ1ZmZlclVzYWdlIHNhdmVfcGdCdWZm ZXJVc2FnZTsKKworU3RvcmFnZUlPVXNhZ2UgcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsOwkvKiBv bmx5IGNvdW50IHBhcmFsbGVsIHdvcmtlcnMnCisJCQkJCQkJCQkJCSAqIHVzYWdlICovCiBXYWxV c2FnZQlwZ1dhbFVzYWdlOwogc3RhdGljIFdhbFVzYWdlIHNhdmVfcGdXYWxVc2FnZTsKIAogc3Rh dGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVyVXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNh Z2UgKmFkZCk7Cit2b2lkCQlTdG9yYWdlSU9Vc2FnZUFkZChTdG9yYWdlSU9Vc2FnZSAqZHN0LCBj b25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkKTsKIHN0YXRpYyB2b2lkIFdhbFVzYWdlQWRkKFdhbFVz YWdlICpkc3QsIFdhbFVzYWdlICphZGQpOwogCiAKQEAgLTE5NCwyNyArMjAwLDQ3IEBAIEluc3Ry QWdnTm9kZShJbnN0cnVtZW50YXRpb24gKmRzdCwgSW5zdHJ1bWVudGF0aW9uICphZGQpCiAKIC8q IG5vdGUgY3VycmVudCB2YWx1ZXMgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dG9yIHN0YXJ0dXAgKi8K IHZvaWQKLUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KHZvaWQpCitJbnN0clN0YXJ0UGFyYWxsZWxR dWVyeShTdG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UpCiB7CiAJc2F2ZV9wZ0J1ZmZlclVz YWdlID0gcGdCdWZmZXJVc2FnZTsKIAlzYXZlX3BnV2FsVXNhZ2UgPSBwZ1dhbFVzYWdlOworCisJ aWYgKHN0b3JhZ2Vpb3VzYWdlICE9IE5VTEwpCisJCUdldFN0b3JhZ2VJT1VzYWdlKHN0b3JhZ2Vp b3VzYWdlKTsKIH0KIAogLyogcmVwb3J0IHVzYWdlIGFmdGVyIHBhcmFsbGVsIGV4ZWN1dG9yIHNo dXRkb3duICovCiB2b2lkCi1JbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVz YWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpCitJbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNh Z2UgKmJ1ZnVzYWdlLCBTdG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UsIFdhbFVzYWdlICp3 YWx1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlX3N0YXJ0KQogewogCW1lbXNl dChidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CiAJQnVmZmVyVXNhZ2VBY2N1bURp ZmYoYnVmdXNhZ2UsICZwZ0J1ZmZlclVzYWdlLCAmc2F2ZV9wZ0J1ZmZlclVzYWdlKTsKKworCWlm IChzdG9yYWdlaW91c2FnZSAhPSBOVUxMICYmIHN0b3JhZ2Vpb3VzYWdlX3N0YXJ0ICE9IE5VTEwp CisJeworCQlzdHJ1Y3QgU3RvcmFnZUlPVXNhZ2Ugc3RvcmFnZWlvdXNhZ2VfZW5kOworCisJCUdl dFN0b3JhZ2VJT1VzYWdlKCZzdG9yYWdlaW91c2FnZV9lbmQpOworCisJCW1lbXNldChzdG9yYWdl aW91c2FnZSwgMCwgc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSk7CisJCVN0b3JhZ2VJT1VzYWdlQWNj dW1EaWZmKHN0b3JhZ2Vpb3VzYWdlLCAmc3RvcmFnZWlvdXNhZ2VfZW5kLCBzdG9yYWdlaW91c2Fn ZV9zdGFydCk7CisKKwkJZXJlcG9ydChERUJVRzEsCisJCQkJKGVycm1zZygiUGFyYWxsZWwgd29y a2VyJ3Mgc3RvcmFnZSBJL08gdGltZXM6IGluYmxvY2s6JWxkIG91dGJsb2NrOiVsZCIsCisJCQkJ CQlzdG9yYWdlaW91c2FnZS0+aW5ibG9jaywgc3RvcmFnZWlvdXNhZ2UtPm91dGJsb2NrKSkpOwor CX0KIAltZW1zZXQod2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2FnZSkpOwogCVdhbFVzYWdlQWNj dW1EaWZmKHdhbHVzYWdlLCAmcGdXYWxVc2FnZSwgJnNhdmVfcGdXYWxVc2FnZSk7CiB9CiAKIC8q IGFjY3VtdWxhdGUgd29yayBkb25lIGJ5IHdvcmtlcnMgaW4gbGVhZGVyJ3Mgc3RhdHMgKi8KIHZv aWQKLUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNh Z2UgKndhbHVzYWdlKQorSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVz YWdlLCBTdG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkK IHsKIAlCdWZmZXJVc2FnZUFkZCgmcGdCdWZmZXJVc2FnZSwgYnVmdXNhZ2UpOworCisJaWYgKHN0 b3JhZ2Vpb3VzYWdlICE9IE5VTEwpCisJCVN0b3JhZ2VJT1VzYWdlQWRkKCZwZ1N0b3JhZ2VJT1Vz YWdlUGFyYWxsZWwsIHN0b3JhZ2Vpb3VzYWdlKTsKIAlXYWxVc2FnZUFkZCgmcGdXYWxVc2FnZSwg d2FsdXNhZ2UpOwogfQogCkBAIC0yNzAsNiArMjk2LDUzIEBAIEJ1ZmZlclVzYWdlQWNjdW1EaWZm KEJ1ZmZlclVzYWdlICpkc3QsCiAJCQkJCQkgIGFkZC0+dGVtcF9ibGtfd3JpdGVfdGltZSwgc3Vi LT50ZW1wX2Jsa193cml0ZV90aW1lKTsKIH0KIAorLyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgU3Rv cmFnZUlPVXNhZ2UgdXNhZ2UgYWNjdW11bGF0aW9uICovCit2b2lkCitTdG9yYWdlSU9Vc2FnZUFk ZChTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkKQoreworCWRz dC0+aW5ibG9jayArPSBhZGQtPmluYmxvY2s7CisJZHN0LT5vdXRibG9jayArPSBhZGQtPm91dGJs b2NrOworfQorCisvKiBkc3QgKz0gYWRkIC0gc3ViICovCit2b2lkCitTdG9yYWdlSU9Vc2FnZUFj Y3VtRGlmZihTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkLCBj b25zdCBTdG9yYWdlSU9Vc2FnZSAqc3ViKQoreworCWRzdC0+aW5ibG9jayArPSBhZGQtPmluYmxv Y2sgLSBzdWItPmluYmxvY2s7CisJZHN0LT5vdXRibG9jayArPSBhZGQtPm91dGJsb2NrIC0gc3Vi LT5vdXRibG9jazsKK30KKworLyogZHN0IC09IHN1YiAqLwordm9pZAorU3RvcmFnZUlPVXNhZ2VE aWZmKFN0b3JhZ2VJT1VzYWdlICpkc3QsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICpzdWIpCit7CisJ ZHN0LT5pbmJsb2NrIC09IHN1Yi0+aW5ibG9jazsKKwlkc3QtPm91dGJsb2NrIC09IHN1Yi0+b3V0 YmxvY2s7Cit9CisKKy8qIENhcHR1cmVzIHRoZSBjdXJyZW50IHN0b3JhZ2UgSS9PIHVzYWdlIHN0 YXRpc3RpY3MgKi8KK3ZvaWQKK0dldFN0b3JhZ2VJT1VzYWdlKFN0b3JhZ2VJT1VzYWdlICp1c2Fn ZSkKK3sKKwlzdHJ1Y3QgcnVzYWdlIHJ1c2FnZTsKKworCS8qCisJICogU2luY2UgZ2V0dGluZyB0 aGUgSS9PIGV4Y2x1ZGluZyBBSU8gd29ya2VycyB1bmRlcmVzdGltYXRlcyB0aGUgdG90YWwKKwkg KiBJL08sIGRvbid0IGdldCB0aGUgSS9PIHVzYWdlIHN0YXRpc3RpY3Mgd2hlbiBBSU8gd29ya2Vy IGlzIGVuYWJsZWQuCisJICovCisJaWYgKHBnYWlvX3dvcmtlcnNfZW5hYmxlZCgpKQorCQlyZXR1 cm47CisKKwlpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcnVzYWdlKSkKKwl7CisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWVNURU1fRVJST1IpLAorCQkJCSBlcnJt c2coImdldHJ1c2FnZSgpIGZhaWxlZDogJW0iKSkpOworCX0KKwl1c2FnZS0+aW5ibG9jayA9IHJ1 c2FnZS5ydV9pbmJsb2NrOworCXVzYWdlLT5vdXRibG9jayA9IHJ1c2FnZS5ydV9vdWJsb2NrOwor fQorCiAvKiBoZWxwZXIgZnVuY3Rpb25zIGZvciBXQUwgdXNhZ2UgYWNjdW11bGF0aW9uICovCiBz dGF0aWMgdm9pZAogV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRzdCwgV2FsVXNhZ2UgKmFkZCkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaCBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL2V4cGxhaW4uaAppbmRleCA4NjIyNmY4ZGI3MC4uNzYyNWYwOGM5NWUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9leHBsYWluLmgKQEAgLTY4LDYgKzY4LDcgQEAgZXh0ZXJuIHZvaWQgRXhwbGFpbk9uZVBs YW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJICAg UGFyYW1MaXN0SW5mbyBwYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJ ICAgY29uc3QgaW5zdHJfdGltZSAqcGxhbmR1cmF0aW9uLAogCQkJCQkJICAgY29uc3QgQnVmZmVy VXNhZ2UgKmJ1ZnVzYWdlLAorCQkJCQkJICAgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnBsYW5zdG9y YWdlaW8sCiAJCQkJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVy cyk7CiAKIGV4dGVybiB2b2lkIEV4cGxhaW5QcmludFBsYW4oRXhwbGFpblN0YXRlICplcywgUXVl cnlEZXNjICpxdWVyeURlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y1BhcmFsbGVsLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFyYWxsZWwuaAppbmRleCA1 YTIwMzQ4MTFkNS4uZjkxZWY3MDA5OTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5o CkBAIC0yNiw2ICsyNiw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFsbGVsRXhlY3V0b3JJbmZvCiAJ UGxhblN0YXRlICAqcGxhbnN0YXRlOwkJLyogcGxhbiBzdWJ0cmVlIHdlJ3JlIHJ1bm5pbmcgaW4g cGFyYWxsZWwgKi8KIAlQYXJhbGxlbENvbnRleHQgKnBjeHQ7CQkvKiBwYXJhbGxlbCBjb250ZXh0 IHdlJ3JlIHVzaW5nICovCiAJQnVmZmVyVXNhZ2UgKmJ1ZmZlcl91c2FnZTsJLyogcG9pbnRzIHRv IGJ1ZnVzYWdlIGFyZWEgaW4gRFNNICovCisJU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb191c2Fn ZTsJLyogcG9pbnRzIHRvIHN0b3JhZ2VpbyB1c2FnZSBhcmVhIGluCisJCQkJCQkJCQkJICogRFNN ICovCiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwkJLyogd2FsdXNhZ2UgYXJlYSBpbiBEU00gKi8K IAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9uOyAvKiBvcHRp b25hbCAqLwogCXN0cnVjdCBTaGFyZWRKaXRJbnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVtZW50 YXRpb247CS8qIG9wdGlvbmFsICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9p bnN0cnVtZW50LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgKaW5kZXggOTc1 OWYzZWE1ZDguLmI5NTE1N2Q1NTg4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9p bnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCkBAIC00 MSw2ICs0MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBCdWZmZXJVc2FnZQogCWluc3RyX3RpbWUJdGVt cF9ibGtfd3JpdGVfdGltZTsJLyogdGltZSBzcGVudCB3cml0aW5nIHRlbXAgYmxvY2tzICovCiB9 IEJ1ZmZlclVzYWdlOwogCit0eXBlZGVmIHN0cnVjdCBTdG9yYWdlSU9Vc2FnZQoreworCWxvbmcJ CWluYmxvY2s7CQkvKiAjIG9mIHRpbWVzIHRoZSBmaWxlIHN5c3RlbSBoYWQgdG8gcGVyZm9ybQor CQkJCQkJCQkgKiBpbnB1dCAqLworCWxvbmcJCW91dGJsb2NrOwkJLyogIyBvZiB0aW1lcyB0aGUg ZmlsZSBzeXN0ZW0gaGFkIHRvIHBlcmZvcm0KKwkJCQkJCQkJICogb3V0cHV0ICovCit9IFN0b3Jh Z2VJT1VzYWdlOworCiAvKgogICogV2FsVXNhZ2UgdHJhY2tzIG9ubHkgV0FMIGFjdGl2aXR5IGxp a2UgV0FMIHJlY29yZHMgZ2VuZXJhdGlvbiB0aGF0CiAgKiBjYW4gYmUgbWVhc3VyZWQgcGVyIHF1 ZXJ5IGFuZCBpcyBkaXNwbGF5ZWQgYnkgRVhQTEFJTiBjb21tYW5kLApAQCAtMTAxLDYgKzEwOSw3 IEBAIHR5cGVkZWYgc3RydWN0IFdvcmtlckluc3RydW1lbnRhdGlvbgogfSBXb3JrZXJJbnN0cnVt ZW50YXRpb247CiAKIGV4dGVybiBQR0RMTElNUE9SVCBCdWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdl OworZXh0ZXJuIFBHRExMSU1QT1JUIFN0b3JhZ2VJT1VzYWdlIHBnU3RvcmFnZUlPVXNhZ2VQYXJh bGxlbDsKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxVc2FnZSBwZ1dhbFVzYWdlOwogCiBleHRlcm4g SW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25z LApAQCAtMTExLDExICsxMjAsMTYgQEAgZXh0ZXJuIHZvaWQgSW5zdHJTdG9wTm9kZShJbnN0cnVt ZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7CiBleHRlcm4gdm9pZCBJbnN0clVwZGF0 ZVR1cGxlQ291bnQoSW5zdHJ1bWVudGF0aW9uICppbnN0ciwgZG91YmxlIG5UdXBsZXMpOwogZXh0 ZXJuIHZvaWQgSW5zdHJFbmRMb29wKEluc3RydW1lbnRhdGlvbiAqaW5zdHIpOwogZXh0ZXJuIHZv aWQgSW5zdHJBZ2dOb2RlKEluc3RydW1lbnRhdGlvbiAqZHN0LCBJbnN0cnVtZW50YXRpb24gKmFk ZCk7Ci1leHRlcm4gdm9pZCBJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKTsKLWV4dGVybiB2 b2lkIEluc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdl ICp3YWx1c2FnZSk7Ci1leHRlcm4gdm9pZCBJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJV c2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSk7CitleHRlcm4gdm9pZCBJbnN0clN0 YXJ0UGFyYWxsZWxRdWVyeShTdG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UpOworZXh0ZXJu IHZvaWQgSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFn ZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UsIFN0b3JhZ2VJT1Vz YWdlICpzdG9yYWdlaW91c2FnZV9zdGFydCk7CitleHRlcm4gdm9pZCBJbnN0ckFjY3VtUGFyYWxs ZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91 c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKIGV4dGVybiB2b2lkIEJ1ZmZlclVzYWdlQWNjdW1E aWZmKEJ1ZmZlclVzYWdlICpkc3QsCiAJCQkJCQkJCSBjb25zdCBCdWZmZXJVc2FnZSAqYWRkLCBj b25zdCBCdWZmZXJVc2FnZSAqc3ViKTsKK2V4dGVybiB2b2lkIFN0b3JhZ2VJT1VzYWdlQWNjdW1E aWZmKFN0b3JhZ2VJT1VzYWdlICpkc3QsCisJCQkJCQkJCQljb25zdCBTdG9yYWdlSU9Vc2FnZSAq YWRkLCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqc3ViKTsKK2V4dGVybiB2b2lkIFN0b3JhZ2VJT1Vz YWdlRGlmZihTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqc3ViKTsK K2V4dGVybiB2b2lkIFN0b3JhZ2VJT1VzYWdlQWRkKFN0b3JhZ2VJT1VzYWdlICpkc3QsIGNvbnN0 IFN0b3JhZ2VJT1VzYWdlICphZGQpOworZXh0ZXJuIHZvaWQgR2V0U3RvcmFnZUlPVXNhZ2UoU3Rv cmFnZUlPVXNhZ2UgKnVzYWdlKTsKIGV4dGVybiB2b2lkIFdhbFVzYWdlQWNjdW1EaWZmKFdhbFVz YWdlICpkc3QsIGNvbnN0IFdhbFVzYWdlICphZGQsCiAJCQkJCQkJICBjb25zdCBXYWxVc2FnZSAq c3ViKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC93aW4zMi9zeXMvcmVzb3VyY2Uu aCBiL3NyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmgKaW5kZXggYTE0ZmVlYjU4 NDQuLjI3MGRjMzdjODRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9y ZXNvdXJjZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmgKQEAg LTEzLDYgKzEzLDggQEAgc3RydWN0IHJ1c2FnZQogewogCXN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1l OwkvKiB1c2VyIHRpbWUgdXNlZCAqLwogCXN0cnVjdCB0aW1ldmFsIHJ1X3N0aW1lOwkvKiBzeXN0 ZW0gdGltZSB1c2VkICovCisJbG9uZwkJcnVfaW5ibG9jazsJCS8qIEN1cnJlbnRseSBhbHdheXMg MCBmb3IgV2luZG93cyAqLworCWxvbmcJCXJ1X291YmxvY2s7CQkvKiBDdXJyZW50bHkgYWx3YXlz IDAgZm9yIFdpbmRvd3MgKi8KIH07CiAKIGV4dGVybiBpbnQJZ2V0cnVzYWdlKGludCB3aG8sIHN0 cnVjdCBydXNhZ2UgKnJ1c2FnZSk7CmRpZmYgLS1naXQgYS9zcmMvcG9ydC93aW4zMmdldHJ1c2Fn ZS5jIGIvc3JjL3BvcnQvd2luMzJnZXRydXNhZ2UuYwppbmRleCBmYTJiNzljZDVlZC4uMmUyNjdk ZTdiMjggMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3dpbjMyZ2V0cnVzYWdlLmMKKysrIGIvc3JjL3Bv cnQvd2luMzJnZXRydXNhZ2UuYwpAQCAtNTcsNSArNTcsOSBAQCBnZXRydXNhZ2UoaW50IHdobywg c3RydWN0IHJ1c2FnZSAqcnVzYWdlKQogCXJ1c2FnZS0+cnVfdXRpbWUudHZfc2VjID0gbGkuUXVh ZFBhcnQgLyAxMDAwMDAwTDsKIAlydXNhZ2UtPnJ1X3V0aW1lLnR2X3VzZWMgPSBsaS5RdWFkUGFy dCAlIDEwMDAwMDBMOwogCisJLyogQ3VycmVudGx5IGFsd2F5cyAwIGZvciBXaW5kb3dzICovCisJ cnVzYWdlLT5ydV9pbmJsb2NrID0gMDsKKwlydXNhZ2UtPnJ1X291YmxvY2sgPSAwOworCiAJcmV0 dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW5f MS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW5fMS5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyNmViYzJhYTM0Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0CkBAIC0wLDAgKzEs ODU3IEBACistLQorLS0gRVhQTEFJTgorLS0KKy0tIFRoZXJlIGFyZSBtYW55IHRlc3QgY2FzZXMg ZWxzZXdoZXJlIHRoYXQgdXNlIEVYUExBSU4gYXMgYSB2ZWhpY2xlIGZvcgorLS0gY2hlY2tpbmcg c29tZXRoaW5nIGVsc2UgKHVzdWFsbHkgcGxhbm5lciBiZWhhdmlvcikuICBUaGlzIGZpbGUgaXMK Ky0tIGNvbmNlcm5lZCB3aXRoIHRlc3RpbmcgRVhQTEFJTiBpbiBpdHMgb3duIHJpZ2h0LgorLS0K Ky0tIFRvIHByb2R1Y2Ugc3RhYmxlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQsIGl0J3MgdXN1YWxs eSBuZWNlc3NhcnkgdG8KKy0tIGlnbm9yZSBkZXRhaWxzIHN1Y2ggYXMgZXhhY3QgY29zdHMgb3Ig cm93IGNvdW50cy4gIFRoZXNlIGZpbHRlcgorLS0gZnVuY3Rpb25zIHJlcGxhY2UgY2hhbmdlYWJs ZSBvdXRwdXQgZGV0YWlscyB3aXRoIGZpeGVkIHN0cmluZ3MuCitjcmVhdGUgZnVuY3Rpb24gZXhw bGFpbl9maWx0ZXIodGV4dCkgcmV0dXJucyBzZXRvZiB0ZXh0CitsYW5ndWFnZSBwbHBnc3FsIGFz CiskJAorZGVjbGFyZQorICAgIGxuIHRleHQ7CitiZWdpbgorICAgIGZvciBsbiBpbiBleGVjdXRl ICQxCisgICAgbG9vcAorICAgICAgICAtLSBSZXBsYWNlIGFueSBudW1lcmljIHdvcmQgd2l0aCBq dXN0ICdOJworICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwgJy0/XG1cZCtcTScsICdO JywgJ2cnKTsKKyAgICAgICAgLS0gSW4gc29ydCBvdXRwdXQsIHRoZSBhYm92ZSB3b24ndCBtYXRj aCB1bml0cy1zdWZmaXhlZCBudW1iZXJzCisgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxu LCAnXG1cZCtrQicsICdOa0InLCAnZycpOworICAgICAgICAtLSBJZ25vcmUgdGV4dC1tb2RlIGJ1 ZmZlcnMgb3V0cHV0IGJlY2F1c2UgaXQgdmFyaWVzIGRlcGVuZGluZworICAgICAgICAtLSBvbiB0 aGUgc3lzdGVtIHN0YXRlCisgICAgICAgIENPTlRJTlVFIFdIRU4gKGxuIH4gJyArQnVmZmVyczog LionKTsKKyAgICAgICAgLS0gSWdub3JlIHRleHQtbW9kZSAiUGxhbm5pbmc6IiBsaW5lIGJlY2F1 c2Ugd2hldGhlciBpdCdzIG91dHB1dAorICAgICAgICAtLSB2YXJpZXMgZGVwZW5kaW5nIG9uIHRo ZSBzeXN0ZW0gc3RhdGUKKyAgICAgICAgQ09OVElOVUUgV0hFTiAobG4gPSAnUGxhbm5pbmc6Jyk7 CisgICAgICAgIHJldHVybiBuZXh0IGxuOworICAgIGVuZCBsb29wOworZW5kOworJCQ7CistLSBU byBwcm9kdWNlIHZhbGlkIEpTT04gb3V0cHV0LCByZXBsYWNlIG51bWJlcnMgd2l0aCAiMCIgb3Ig IjAuMCIgbm90ICJOIgorY3JlYXRlIGZ1bmN0aW9uIGV4cGxhaW5fZmlsdGVyX3RvX2pzb24odGV4 dCkgcmV0dXJucyBqc29uYgorbGFuZ3VhZ2UgcGxwZ3NxbCBhcworJCQKK2RlY2xhcmUKKyAgICBk YXRhIHRleHQgOj0gJyc7CisgICAgbG4gdGV4dDsKK2JlZ2luCisgICAgZm9yIGxuIGluIGV4ZWN1 dGUgJDEKKyAgICBsb29wCisgICAgICAgIC0tIFJlcGxhY2UgYW55IG51bWVyaWMgd29yZCB3aXRo IGp1c3QgJzAnCisgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAnXG1cZCtcTScsICcw JywgJ2cnKTsKKyAgICAgICAgZGF0YSA6PSBkYXRhIHx8IGxuOworICAgIGVuZCBsb29wOworICAg IHJldHVybiBkYXRhOjpqc29uYjsKK2VuZDsKKyQkOworLS0gRGlzYWJsZSBKSVQsIG9yIHdlJ2xs IGdldCBkaWZmZXJlbnQgb3V0cHV0IG9uIG1hY2hpbmVzIHdoZXJlIHRoYXQncyBiZWVuCistLSBm b3JjZWQgb24KK3NldCBqaXQgPSBvZmY7CistLSBTaW1pbGFybHksIGRpc2FibGUgdHJhY2tfaW9f dGltaW5nLCB0byBhdm9pZCBvdXRwdXQgZGlmZmVyZW5jZXMgd2hlbgorLS0gZW5hYmxlZC4KK3Nl dCB0cmFja19pb190aW1pbmcgPSBvZmY7CistLSBTaW1wbGUgY2FzZXMKK2V4cGxhaW4gKGNvc3Rz IG9mZikgc2VsZWN0IDEgYXMgYSwgMiBhcyBiIGhhdmluZyBmYWxzZTsKKyAgICAgICAgUVVFUlkg UExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgUmVw bGFjZXM6IEFnZ3JlZ2F0ZQorICAgT25lLVRpbWUgRmlsdGVyOiBmYWxzZQorKDMgcm93cykKKwor c2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgn KTsKKyAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3 aWR0aD1OKQorKDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5 emUsIGJ1ZmZlcnMgb2ZmKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5O IHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikK KyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoMyByb3dz KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMgb2Zm LCB2ZXJib3NlKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMuaW50OF90YmwgaTgg IChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93 cz1OLk4gbG9vcHM9TikKKyAgIE91dHB1dDogcTEsIHEyCisgUGxhbm5pbmcgVGltZTogTi5OIG1z CisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmls dGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzLCBmb3JtYXQgdGV4dCkgc2VsZWN0ICogZnJv bSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9u IGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0aW1l PU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhl Y3V0aW9uIFRpbWU6IE4uTiBtcworKDMgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdl eHBsYWluIChhbmFseXplLCBidWZmZXJzLCBmb3JtYXQgeG1sKSBzZWxlY3QgKiBmcm9tIGludDhf dGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyA8ZXhwbGFpbiB4bWxucz0iaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9O L2V4cGxhaW4iPiArCisgICA8UXVlcnk+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICA8UGxhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICA8Tm9kZS1UeXBlPlNlcSBTY2FuPC9Ob2RlLVR5cGU+ICAg ICAgICAgICAgICAgICArCisgICAgICAgPFBhcmFsbGVsLUF3YXJlPmZhbHNlPC9QYXJhbGxlbC1B d2FyZT4gICAgICAgICAgKworICAgICAgIDxBc3luYy1DYXBhYmxlPmZhbHNlPC9Bc3luYy1DYXBh YmxlPiAgICAgICAgICAgICsKKyAgICAgICA8UmVsYXRpb24tTmFtZT5pbnQ4X3RibDwvUmVsYXRp b24tTmFtZT4gICAgICAgICArCisgICAgICAgPEFsaWFzPmk4PC9BbGlhcz4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgIDxTdGFydHVwLUNvc3Q+Ti5OPC9TdGFydHVwLUNv c3Q+ICAgICAgICAgICAgICAgICsKKyAgICAgICA8VG90YWwtQ29zdD5OLk48L1RvdGFsLUNvc3Q+ ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPFBsYW4tUm93cz5OPC9QbGFuLVJvd3M+ICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxQbGFuLVdpZHRoPk48L1BsYW4tV2lkdGg+ ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8QWN0dWFsLVN0YXJ0dXAtVGltZT5OLk48 L0FjdHVhbC1TdGFydHVwLVRpbWU+ICArCisgICAgICAgPEFjdHVhbC1Ub3RhbC1UaW1lPk4uTjwv QWN0dWFsLVRvdGFsLVRpbWU+ICAgICAgKworICAgICAgIDxBY3R1YWwtUm93cz5OLk48L0FjdHVh bC1Sb3dzPiAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8QWN0dWFsLUxvb3BzPk48L0FjdHVh bC1Mb29wcz4gICAgICAgICAgICAgICAgICArCisgICAgICAgPERpc2FibGVkPmZhbHNlPC9EaXNh YmxlZD4gICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxTaGFyZWQtSGl0LUJsb2Nrcz5O PC9TaGFyZWQtSGl0LUJsb2Nrcz4gICAgICAgICsKKyAgICAgICA8U2hhcmVkLVJlYWQtQmxvY2tz Pk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4gICAgICArCisgICAgICAgPFNoYXJlZC1EaXJ0aWVkLUJs b2Nrcz5OPC9TaGFyZWQtRGlydGllZC1CbG9ja3M+KworICAgICAgIDxTaGFyZWQtV3JpdHRlbi1C bG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4tQmxvY2tzPisKKyAgICAgICA8TG9jYWwtSGl0LUJsb2Nr cz5OPC9Mb2NhbC1IaXQtQmxvY2tzPiAgICAgICAgICArCisgICAgICAgPExvY2FsLVJlYWQtQmxv Y2tzPk48L0xvY2FsLVJlYWQtQmxvY2tzPiAgICAgICAgKworICAgICAgIDxMb2NhbC1EaXJ0aWVk LUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJsb2Nrcz4gICsKKyAgICAgICA8TG9jYWwtV3JpdHRl bi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRlbi1CbG9ja3M+ICArCisgICAgICAgPFRlbXAtUmVhZC1C bG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nrcz4gICAgICAgICAgKworICAgICAgIDxUZW1wLVdyaXR0 ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRlbi1CbG9ja3M+ICAgICsKKyAgICAgPC9QbGFuPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIDxQbGFubmluZz4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxTaGFyZWQt SGl0LUJsb2Nrcz5OPC9TaGFyZWQtSGl0LUJsb2Nrcz4gICAgICAgICsKKyAgICAgICA8U2hhcmVk LVJlYWQtQmxvY2tzPk48L1NoYXJlZC1SZWFkLUJsb2Nrcz4gICAgICArCisgICAgICAgPFNoYXJl ZC1EaXJ0aWVkLUJsb2Nrcz5OPC9TaGFyZWQtRGlydGllZC1CbG9ja3M+KworICAgICAgIDxTaGFy ZWQtV3JpdHRlbi1CbG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4tQmxvY2tzPisKKyAgICAgICA8TG9j YWwtSGl0LUJsb2Nrcz5OPC9Mb2NhbC1IaXQtQmxvY2tzPiAgICAgICAgICArCisgICAgICAgPExv Y2FsLVJlYWQtQmxvY2tzPk48L0xvY2FsLVJlYWQtQmxvY2tzPiAgICAgICAgKworICAgICAgIDxM b2NhbC1EaXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJsb2Nrcz4gICsKKyAgICAgICA8 TG9jYWwtV3JpdHRlbi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRlbi1CbG9ja3M+ICArCisgICAgICAg PFRlbXAtUmVhZC1CbG9ja3M+TjwvVGVtcC1SZWFkLUJsb2Nrcz4gICAgICAgICAgKworICAgICAg IDxUZW1wLVdyaXR0ZW4tQmxvY2tzPk48L1RlbXAtV3JpdHRlbi1CbG9ja3M+ICAgICsKKyAgICAg ICA8U3RvcmFnZS1JLU8tUmVhZD5OPC9TdG9yYWdlLUktTy1SZWFkPiAgICAgICAgICArCisgICAg ICAgPFN0b3JhZ2UtSS1PLVJlYWQ+TjwvU3RvcmFnZS1JLU8tUmVhZD4gICAgICAgICAgKworICAg ICA8L1BsYW5uaW5nPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgPFBsYW5uaW5nLVRpbWU+Ti5OPC9QbGFubmluZy1UaW1lPiAgICAgICAgICAgICAgICArCisg ICAgIDxUcmlnZ2Vycz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICA8L1RyaWdnZXJzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgPEV4ZWN1dGlvbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgPFN0b3JhZ2UtSS1PLVJlYWQ+TjwvU3RvcmFnZS1JLU8tUmVhZD4gICAgICAgICAg KworICAgICAgIDxTdG9yYWdlLUktTy1SZWFkPk48L1N0b3JhZ2UtSS1PLVJlYWQ+ICAgICAgICAg ICsKKyAgICAgPC9FeGVjdXRpb24+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIDxFeGVjdXRpb24tVGltZT5OLk48L0V4ZWN1dGlvbi1UaW1lPiAgICAgICAgICAg ICAgKworICAgPC9RdWVyeT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyA8L2V4cGxhaW4+CisoMSByb3cpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhw bGFpbiAoYW5hbHl6ZSwgc2VyaWFsaXplLCBidWZmZXJzLCBmb3JtYXQgeWFtbCkgc2VsZWN0ICog ZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0gUGxhbjogICAgICAgICAgICAgICAgICAg ICAgKworICAgICBOb2RlIFR5cGU6ICJTZXEgU2NhbiIgICAgKworICAgICBQYXJhbGxlbCBBd2Fy ZTogZmFsc2UgICAgKworICAgICBBc3luYyBDYXBhYmxlOiBmYWxzZSAgICAgKworICAgICBSZWxh dGlvbiBOYW1lOiAiaW50OF90YmwiKworICAgICBBbGlhczogImk4IiAgICAgICAgICAgICAgKwor ICAgICBTdGFydHVwIENvc3Q6IE4uTiAgICAgICAgKworICAgICBUb3RhbCBDb3N0OiBOLk4gICAg ICAgICAgKworICAgICBQbGFuIFJvd3M6IE4gICAgICAgICAgICAgKworICAgICBQbGFuIFdpZHRo OiBOICAgICAgICAgICAgKworICAgICBBY3R1YWwgU3RhcnR1cCBUaW1lOiBOLk4gKworICAgICBB Y3R1YWwgVG90YWwgVGltZTogTi5OICAgKworICAgICBBY3R1YWwgUm93czogTi5OICAgICAgICAg KworICAgICBBY3R1YWwgTG9vcHM6IE4gICAgICAgICAgKworICAgICBEaXNhYmxlZDogZmFsc2Ug ICAgICAgICAgKworICAgICBTaGFyZWQgSGl0IEJsb2NrczogTiAgICAgKworICAgICBTaGFyZWQg UmVhZCBCbG9ja3M6IE4gICAgKworICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4gKworICAg ICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4gKworICAgICBMb2NhbCBIaXQgQmxvY2tzOiBOICAg ICAgKworICAgICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAgKworICAgICBMb2NhbCBEaXJ0aWVk IEJsb2NrczogTiAgKworICAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTiAgKworICAgICBUZW1w IFJlYWQgQmxvY2tzOiBOICAgICAgKworICAgICBUZW1wIFdyaXR0ZW4gQmxvY2tzOiBOICAgKwor ICAgUGxhbm5pbmc6ICAgICAgICAgICAgICAgICAgKworICAgICBTaGFyZWQgSGl0IEJsb2Nrczog TiAgICAgKworICAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4gICAgKworICAgICBTaGFyZWQgRGly dGllZCBCbG9ja3M6IE4gKworICAgICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4gKworICAgICBM b2NhbCBIaXQgQmxvY2tzOiBOICAgICAgKworICAgICBMb2NhbCBSZWFkIEJsb2NrczogTiAgICAg KworICAgICBMb2NhbCBEaXJ0aWVkIEJsb2NrczogTiAgKworICAgICBMb2NhbCBXcml0dGVuIEJs b2NrczogTiAgKworICAgICBUZW1wIFJlYWQgQmxvY2tzOiBOICAgICAgKworICAgICBUZW1wIFdy aXR0ZW4gQmxvY2tzOiBOICAgKworICAgICBTdG9yYWdlIEkvTyBSZWFkOiBOICAgICAgKworICAg ICBTdG9yYWdlIEkvTyBSZWFkOiBOICAgICAgKworICAgUGxhbm5pbmcgVGltZTogTi5OICAgICAg ICAgKworICAgVHJpZ2dlcnM6ICAgICAgICAgICAgICAgICAgKworICAgU2VyaWFsaXphdGlvbjog ICAgICAgICAgICAgKworICAgICBUaW1lOiBOLk4gICAgICAgICAgICAgICAgKworICAgICBPdXRw dXQgVm9sdW1lOiBOICAgICAgICAgKworICAgICBGb3JtYXQ6ICJ0ZXh0IiAgICAgICAgICAgKwor ICAgICBTaGFyZWQgSGl0IEJsb2NrczogTiAgICAgKworICAgICBTaGFyZWQgUmVhZCBCbG9ja3M6 IE4gICAgKworICAgICBTaGFyZWQgRGlydGllZCBCbG9ja3M6IE4gKworICAgICBTaGFyZWQgV3Jp dHRlbiBCbG9ja3M6IE4gKworICAgICBMb2NhbCBIaXQgQmxvY2tzOiBOICAgICAgKworICAgICBM b2NhbCBSZWFkIEJsb2NrczogTiAgICAgKworICAgICBMb2NhbCBEaXJ0aWVkIEJsb2NrczogTiAg KworICAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTiAgKworICAgICBUZW1wIFJlYWQgQmxvY2tz OiBOICAgICAgKworICAgICBUZW1wIFdyaXR0ZW4gQmxvY2tzOiBOICAgKworICAgRXhlY3V0aW9u OiAgICAgICAgICAgICAgICAgKworICAgICBTdG9yYWdlIEkvTyBSZWFkOiBOICAgICAgKworICAg ICBTdG9yYWdlIEkvTyBSZWFkOiBOICAgICAgKworICAgRXhlY3V0aW9uIFRpbWU6IE4uTgorKDEg cm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGJ1ZmZlcnMsIGZvcm1hdCB0 ZXh0KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICBl eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhf dGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKygxIHJvdykKKworc2VsZWN0 IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChidWZmZXJzLCBmb3JtYXQganNvbikgc2VsZWN0ICog ZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTm9kZSBUeXBl IjogIlNlcSBTY2FuIiwgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICAr CisgICAgICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICsKKyAgICAgICAiUmVsYXRpb24g TmFtZSI6ICJpbnQ4X3RibCIsKworICAgICAgICJBbGlhcyI6ICJpOCIsICAgICAgICAgICAgICAr CisgICAgICAgIlN0YXJ0dXAgQ29zdCI6IE4uTiwgICAgICAgICsKKyAgICAgICAiVG90YWwgQ29z dCI6IE4uTiwgICAgICAgICAgKworICAgICAgICJQbGFuIFJvd3MiOiBOLCAgICAgICAgICAgICAr CisgICAgICAgIlBsYW4gV2lkdGgiOiBOLCAgICAgICAgICAgICsKKyAgICAgICAiRGlzYWJsZWQi OiBmYWxzZSwgICAgICAgICAgKworICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IE4sICAgICAr CisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICsKKyAgICAgICAiU2hhcmVkIERp cnRpZWQgQmxvY2tzIjogTiwgKworICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBOLCAr CisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiTG9jYWwgUmVh ZCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IE4sICAr CisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKKyAgICAgICAiVGVtcCBSZWFk IEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjogTiAgICAr CisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlBsYW5uaW5nIjog eyAgICAgICAgICAgICAgICAgKworICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IE4sICAgICAr CisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICsKKyAgICAgICAiU2hhcmVkIERp cnRpZWQgQmxvY2tzIjogTiwgKworICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBOLCAr CisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiTG9jYWwgUmVh ZCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IE4sICAr CisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKKyAgICAgICAiVGVtcCBSZWFk IEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjogTiwgICAr CisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJ L08gUmVhZCI6IE4gICAgICAgKworICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJ L08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiAgICAgICAr CisgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworIF0KKygxIHJvdykKKworLS0gQ2hlY2sgZXhwYW5zaW9uIG9m IHdpbmRvdyBkZWZpbml0aW9ucworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIHZlcmJv c2Ugc2VsZWN0IHN1bSh1bmlxdWUxKSBvdmVyIHcsIHN1bSh1bmlxdWUyKSBvdmVyICh3IG9yZGVy IGJ5IGh1bmRyZWQpLCBzdW0odGVudGhvdXMpIG92ZXIgKHcgb3JkZXIgYnkgaHVuZHJlZCkgZnJv bSB0ZW5rMSB3aW5kb3cgdyBhcyAocGFydGl0aW9uIGJ5IHRlbiknKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgIChjb3N0PU4uTi4uTi5OIHJvd3M9 TiB3aWR0aD1OKQorICAgT3V0cHV0OiBzdW0odW5pcXVlMSkgT1ZFUiB3LCAoc3VtKHVuaXF1ZTIp IE9WRVIgdzEpLCAoc3VtKHRlbnRob3VzKSBPVkVSIHcxKSwgdGVuLCBodW5kcmVkCisgICBXaW5k b3c6IHcgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4pCisgICAtPiAgV2luZG93QWdnICAoY29z dD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVk LCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cywgc3VtKHVuaXF1ZTIpIE9WRVIgdzEsIHN1bSh0 ZW50aG91cykgT1ZFUiB3MQorICAgICAgICAgV2luZG93OiB3MSBBUyAoUEFSVElUSU9OIEJZIHRl bmsxLnRlbiBPUkRFUiBCWSB0ZW5rMS5odW5kcmVkKQorICAgICAgICAgLT4gIFNvcnQgIChjb3N0 PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgICAgICAgT3V0cHV0OiB0ZW4sIGh1 bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzCisgICAgICAgICAgICAgICBTb3J0IEtl eTogdGVuazEudGVuLCB0ZW5rMS5odW5kcmVkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcHVibGljLnRlbmsxICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50 aG91cworKDExIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiB2ZXJib3Nl IHNlbGVjdCBzdW0odW5pcXVlMSkgb3ZlciB3MSwgc3VtKHVuaXF1ZTIpIG92ZXIgKHcxIG9yZGVy IGJ5IGh1bmRyZWQpLCBzdW0odGVudGhvdXMpIG92ZXIgKHcxIG9yZGVyIGJ5IGh1bmRyZWQgcm93 cyAxMCBwcmVjZWRpbmcpIGZyb20gdGVuazEgd2luZG93IHcxIGFzIChwYXJ0aXRpb24gYnkgdGVu KScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0cHV0OiBzdW0odW5pcXVl MSkgT1ZFUiB3MSwgKHN1bSh1bmlxdWUyKSBPVkVSIHcyKSwgKHN1bSh0ZW50aG91cykgT1ZFUiB3 MyksIHRlbiwgaHVuZHJlZAorICAgV2luZG93OiB3MSBBUyAoUEFSVElUSU9OIEJZIHRlbmsxLnRl bikKKyAgIC0+ICBXaW5kb3dBZ2cgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAg ICAgICAgT3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzLCAo c3VtKHVuaXF1ZTIpIE9WRVIgdzIpLCBzdW0odGVudGhvdXMpIE9WRVIgdzMKKyAgICAgICAgIFdp bmRvdzogdzMgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4gT1JERVIgQlkgdGVuazEuaHVuZHJl ZCBST1dTICdOJzo6YmlnaW50IFBSRUNFRElORykKKyAgICAgICAgIC0+ICBXaW5kb3dBZ2cgIChj b3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgICAgICAgT3V0cHV0OiB0ZW4s IGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzLCBzdW0odW5pcXVlMikgT1ZFUiB3 MgorICAgICAgICAgICAgICAgV2luZG93OiB3MiBBUyAoUEFSVElUSU9OIEJZIHRlbmsxLnRlbiBP UkRFUiBCWSB0ZW5rMS5odW5kcmVkKQorICAgICAgICAgICAgICAgLT4gIFNvcnQgIChjb3N0PU4u Ti4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0ZW4s IGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzCisgICAgICAgICAgICAgICAgICAg ICBTb3J0IEtleTogdGVuazEudGVuLCB0ZW5rMS5odW5kcmVkCisgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnRlbmsxICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lk dGg9TikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1 bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cworKDE0IHJvd3MpCisKKy0tIENoZWNrIG91dHB1dCBp bmNsdWRpbmcgSS9PIHRpbWluZ3MuICBUaGVzZSBmaWVsZHMgYXJlIGNvbmRpdGlvbmFsCistLSBi dXQgYWx3YXlzIHNldCBpbiBKU09OIGZvcm1hdCwgc28gY2hlY2sgdGhlbSBvbmx5IGluIHRoaXMg Y2FzZS4KK3NldCB0cmFja19pb190aW1pbmcgPSBvbjsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcign ZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0IGpzb24pIHNlbGVjdCAqIGZyb20gaW50 OF90YmwgaTgnKTsKKyAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTm9kZSBUeXBlIjog IlNlcSBTY2FuIiwgICAgICsKKyAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICsK KyAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICsKKyAgICAgICAiUmVsYXRpb24g TmFtZSI6ICJpbnQ4X3RibCIsICsKKyAgICAgICAiQWxpYXMiOiAiaTgiLCAgICAgICAgICAgICAg ICsKKyAgICAgICAiU3RhcnR1cCBDb3N0IjogTi5OLCAgICAgICAgICsKKyAgICAgICAiVG90YWwg Q29zdCI6IE4uTiwgICAgICAgICAgICsKKyAgICAgICAiUGxhbiBSb3dzIjogTiwgICAgICAgICAg ICAgICsKKyAgICAgICAiUGxhbiBXaWR0aCI6IE4sICAgICAgICAgICAgICsKKyAgICAgICAiQWN0 dWFsIFN0YXJ0dXAgVGltZSI6IE4uTiwgICsKKyAgICAgICAiQWN0dWFsIFRvdGFsIFRpbWUiOiBO Lk4sICAgICsKKyAgICAgICAiQWN0dWFsIFJvd3MiOiBOLk4sICAgICAgICAgICsKKyAgICAgICAi QWN0dWFsIExvb3BzIjogTiwgICAgICAgICAgICsKKyAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwg ICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAg ICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiU2hhcmVkIERpcnRpZWQg QmxvY2tzIjogTiwgICsKKyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKKyAg ICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IE4sICAgICAgICsKKyAgICAgICAiTG9jYWwgUmVhZCBC bG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgICsK KyAgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICsKKyAgICAgICAiVGVtcCBSZWFk IEJsb2NrcyI6IE4sICAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4sICAg ICsKKyAgICAgICAiU2hhcmVkIEkvTyBSZWFkIFRpbWUiOiBOLk4sICsKKyAgICAgICAiU2hhcmVk IEkvTyBXcml0ZSBUaW1lIjogTi5OLCsKKyAgICAgICAiTG9jYWwgSS9PIFJlYWQgVGltZSI6IE4u TiwgICsKKyAgICAgICAiTG9jYWwgSS9PIFdyaXRlIFRpbWUiOiBOLk4sICsKKyAgICAgICAiVGVt cCBJL08gUmVhZCBUaW1lIjogTi5OLCAgICsKKyAgICAgICAiVGVtcCBJL08gV3JpdGUgVGltZSI6 IE4uTiAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlBs YW5uaW5nIjogeyAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3Mi OiBOLCAgICAgICsKKyAgICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogTiwgICAgICsKKyAgICAg ICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAgICAgICAiU2hhcmVkIFdyaXR0ZW4g QmxvY2tzIjogTiwgICsKKyAgICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IE4sICAgICAgICsKKyAg ICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGll ZCBCbG9ja3MiOiBOLCAgICsKKyAgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICsK KyAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgICsKKyAgICAgICAiVGVtcCBXcml0 dGVuIEJsb2NrcyI6IE4sICAgICsKKyAgICAgICAiU2hhcmVkIEkvTyBSZWFkIFRpbWUiOiBOLk4s ICsKKyAgICAgICAiU2hhcmVkIEkvTyBXcml0ZSBUaW1lIjogTi5OLCsKKyAgICAgICAiTG9jYWwg SS9PIFJlYWQgVGltZSI6IE4uTiwgICsKKyAgICAgICAiTG9jYWwgSS9PIFdyaXRlIFRpbWUiOiBO Lk4sICsKKyAgICAgICAiVGVtcCBJL08gUmVhZCBUaW1lIjogTi5OLCAgICsKKyAgICAgICAiVGVt cCBJL08gV3JpdGUgVGltZSI6IE4uTiwgICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4s ICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4gICAgICAgICsKKyAgICAgfSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIlBsYW5uaW5nIFRpbWUiOiBOLk4s ICAgICAgICAgICsKKyAgICAgIlRyaWdnZXJzIjogWyAgICAgICAgICAgICAgICAgICsKKyAgICAg XSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIkV4ZWN1dGlvbiI6IHsgICAg ICAgICAgICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4gICAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgIkV4ZWN1dGlvbiBUaW1lIjogTi5OICAgICAgICAgICsK KyAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBdCisoMSByb3cpCisKK3Nl dCB0cmFja19pb190aW1pbmcgPSBvZmY7CistLSBTRVRUSU5HUyBvcHRpb24KKy0tIFdlIGhhdmUg dG8gaWdub3JlIG90aGVyIHNldHRpbmdzIHRoYXQgbWlnaHQgYmUgaW1wb3NlZCBieSB0aGUgZW52 aXJvbm1lbnQsCistLSBzbyBwcmludGluZyB0aGUgd2hvbGUgU2V0dGluZ3MgZmllbGQgdW5mb3J0 dW5hdGVseSB3b24ndCBkby4KK2JlZ2luOworc2V0IGxvY2FsIHBsYW5fY2FjaGVfbW9kZSA9IGZv cmNlX2dlbmVyaWNfcGxhbjsKK3NlbGVjdCB0cnVlIGFzICJPSyIKKyAgZnJvbSBleHBsYWluX2Zp bHRlcignZXhwbGFpbiAoc2V0dGluZ3MpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKSBsbgor ICB3aGVyZSBsbiB+ICdeICpTZXR0aW5nczogLipwbGFuX2NhY2hlX21vZGUgPSAnJ2ZvcmNlX2dl bmVyaWNfcGxhbicnJzsKKyBPSyAKKy0tLS0KKyB0CisoMSByb3cpCisKK3NlbGVjdCBleHBsYWlu X2ZpbHRlcl90b19qc29uKCdleHBsYWluIChzZXR0aW5ncywgZm9ybWF0IGpzb24pIHNlbGVjdCAq IGZyb20gaW50OF90YmwgaTgnKSAjPiAnezAsU2V0dGluZ3MscGxhbl9jYWNoZV9tb2RlfSc7Cisg ICAgICAgP2NvbHVtbj8gICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgImZvcmNlX2dl bmVyaWNfcGxhbiIKKygxIHJvdykKKworcm9sbGJhY2s7CistLSBHRU5FUklDX1BMQU4gb3B0aW9u CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGdlbmVyaWNfcGxhbikgc2VsZWN0IHVu aXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0aG91c2FuZCA9ICQxJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEJpdG1hcCBIZWFwIFNjYW4gb24g dGVuazEgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgUmVjaGVjayBDb25kOiAo dGhvdXNhbmQgPSAkTikKKyAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190 ZW50aG91cyAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICBJbmRleCBD b25kOiAodGhvdXNhbmQgPSAkTikKKyg0IHJvd3MpCisKKy0tIHNob3VsZCBmYWlsCitzZWxlY3Qg ZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGdlbmVyaWNfcGxhbikgc2VsZWN0IHVu aXF1ZTEgZnJvbSB0ZW5rMSB3aGVyZSB0aG91c2FuZCA9ICQxJyk7CitFUlJPUjogIEVYUExBSU4g b3B0aW9ucyBBTkFMWVpFIGFuZCBHRU5FUklDX1BMQU4gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIK K0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBleHBsYWluX2ZpbHRlcih0ZXh0KSBsaW5lIDUg YXQgRk9SIG92ZXIgRVhFQ1VURSBzdGF0ZW1lbnQKKy0tIE1FTU9SWSBvcHRpb24KK3NlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVtb3J5KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4 Jyk7CisgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4g d2lkdGg9TikKKyAgIE1lbW9yeTogdXNlZD1Oa0IgIGFsbG9jYXRlZD1Oa0IKKygyIHJvd3MpCisK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVtb3J5LCBhbmFseXplLCBidWZmZXJz IG9mZikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lk dGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBNZW1vcnk6 IHVzZWQ9TmtCICBhbGxvY2F0ZWQ9TmtCCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0 aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBs YWluIChtZW1vcnksIHN1bW1hcnksIGZvcm1hdCB5YW1sKSBzZWxlY3QgKiBmcm9tIGludDhfdGJs IGk4Jyk7CisgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgLSBQbGFuOiAgICAgICAgICAgICAgICAgICAgICArCisgICAgIE5v ZGUgVHlwZTogIlNlcSBTY2FuIiAgICArCisgICAgIFBhcmFsbGVsIEF3YXJlOiBmYWxzZSAgICAr CisgICAgIEFzeW5jIENhcGFibGU6IGZhbHNlICAgICArCisgICAgIFJlbGF0aW9uIE5hbWU6ICJp bnQ4X3RibCIrCisgICAgIEFsaWFzOiAiaTgiICAgICAgICAgICAgICArCisgICAgIFN0YXJ0dXAg Q29zdDogTi5OICAgICAgICArCisgICAgIFRvdGFsIENvc3Q6IE4uTiAgICAgICAgICArCisgICAg IFBsYW4gUm93czogTiAgICAgICAgICAgICArCisgICAgIFBsYW4gV2lkdGg6IE4gICAgICAgICAg ICArCisgICAgIERpc2FibGVkOiBmYWxzZSAgICAgICAgICArCisgICBQbGFubmluZzogICAgICAg ICAgICAgICAgICArCisgICAgIE1lbW9yeSBVc2VkOiBOICAgICAgICAgICArCisgICAgIE1lbW9y eSBBbGxvY2F0ZWQ6IE4gICAgICArCisgICBQbGFubmluZyBUaW1lOiBOLk4KKygxIHJvdykKKwor c2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChtZW1vcnksIGFuYWx5emUsIGZvcm1hdCBq c29uKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgIGV4cGxhaW5fZmls dGVyICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4iLCAgICArCisgICAgICAgIlBhcmFsbGVsIEF3YXJl IjogZmFsc2UsICAgICsKKyAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgKworICAg ICAgICJSZWxhdGlvbiBOYW1lIjogImludDhfdGJsIiwrCisgICAgICAgIkFsaWFzIjogImk4Iiwg ICAgICAgICAgICAgICsKKyAgICAgICAiU3RhcnR1cCBDb3N0IjogTi5OLCAgICAgICAgKworICAg ICAgICJUb3RhbCBDb3N0IjogTi5OLCAgICAgICAgICArCisgICAgICAgIlBsYW4gUm93cyI6IE4s ICAgICAgICAgICAgICsKKyAgICAgICAiUGxhbiBXaWR0aCI6IE4sICAgICAgICAgICAgKworICAg ICAgICJBY3R1YWwgU3RhcnR1cCBUaW1lIjogTi5OLCArCisgICAgICAgIkFjdHVhbCBUb3RhbCBU aW1lIjogTi5OLCAgICsKKyAgICAgICAiQWN0dWFsIFJvd3MiOiBOLk4sICAgICAgICAgKworICAg ICAgICJBY3R1YWwgTG9vcHMiOiBOLCAgICAgICAgICArCisgICAgICAgIkRpc2FibGVkIjogZmFs c2UsICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAgKworICAg ICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVk IEJsb2NrcyI6IE4sICsKKyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwgKworICAg ICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQgQmxv Y2tzIjogTiwgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgKworICAg ICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIlRlbXAgUmVhZCBCbG9j a3MiOiBOLCAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4gICAgKworICAg ICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJQbGFubmluZyI6IHsgICAg ICAgICAgICAgICAgICsKKyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAgKworICAg ICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVk IEJsb2NrcyI6IE4sICsKKyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwgKworICAg ICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQgQmxv Y2tzIjogTiwgICAgICsKKyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgKworICAg ICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIlRlbXAgUmVhZCBCbG9j a3MiOiBOLCAgICAgICsKKyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4sICAgKworICAg ICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJl YWQiOiBOLCAgICAgICsKKyAgICAgICAiTWVtb3J5IFVzZWQiOiBOLCAgICAgICAgICAgKworICAg ICAgICJNZW1vcnkgQWxsb2NhdGVkIjogTiAgICAgICArCisgICAgIH0sICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgIlBsYW5uaW5nIFRpbWUiOiBOLk4sICAgICAgICAgKworICAg ICAiVHJpZ2dlcnMiOiBbICAgICAgICAgICAgICAgICArCisgICAgIF0sICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgIkV4ZWN1dGlvbiI6IHsgICAgICAgICAgICAgICAgKworICAg ICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJl YWQiOiBOICAgICAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAiRXhlY3V0aW9uIFRpbWUiOiBOLk4gICAgICAgICArCisgICB9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyBdCisoMSByb3cpCisKK3ByZXBhcmUgaW50OF9xdWVyeSBhcyBzZWxl Y3QgKiBmcm9tIGludDhfdGJsIGk4Oworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICht ZW1vcnkpIGV4ZWN1dGUgaW50OF9xdWVyeScpOworICAgICAgICAgICAgICAgICAgICAgZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBp OCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBNZW1vcnk6IHVzZWQ9TmtCICBh bGxvY2F0ZWQ9TmtCCisoMiByb3dzKQorCistLSBUZXN0IEVYUExBSU4gKEdFTkVSSUNfUExBTikg d2l0aCBwYXJ0aXRpb24gcHJ1bmluZworLS0gcGFydGl0aW9ucyBzaG91bGQgYmUgcHJ1bmVkIGF0 IHBsYW4gdGltZSwgYmFzZWQgb24gY29uc3RhbnRzLAorLS0gYnV0IHRoZXJlIHNob3VsZCBiZSBu byBwcnVuaW5nIGJhc2VkIG9uIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMKK2NyZWF0ZSB0YWJsZSBn ZW5fcGFydCAoCisgIGtleTEgaW50ZWdlciBub3QgbnVsbCwKKyAga2V5MiBpbnRlZ2VyIG5vdCBu dWxsCispIHBhcnRpdGlvbiBieSBsaXN0IChrZXkxKTsKK2NyZWF0ZSB0YWJsZSBnZW5fcGFydF8x CisgIHBhcnRpdGlvbiBvZiBnZW5fcGFydCBmb3IgdmFsdWVzIGluICgxKQorICBwYXJ0aXRpb24g YnkgcmFuZ2UgKGtleTIpOworY3JlYXRlIHRhYmxlIGdlbl9wYXJ0XzFfMQorICBwYXJ0aXRpb24g b2YgZ2VuX3BhcnRfMSBmb3IgdmFsdWVzIGZyb20gKDEpIHRvICgyKTsKK2NyZWF0ZSB0YWJsZSBn ZW5fcGFydF8xXzIKKyAgcGFydGl0aW9uIG9mIGdlbl9wYXJ0XzEgZm9yIHZhbHVlcyBmcm9tICgy KSB0byAoMyk7CitjcmVhdGUgdGFibGUgZ2VuX3BhcnRfMgorICBwYXJ0aXRpb24gb2YgZ2VuX3Bh cnQgZm9yIHZhbHVlcyBpbiAoMik7CistLSBzaG91bGQgc2NhbiBnZW5fcGFydF8xXzEgYW5kIGdl bl9wYXJ0XzFfMiwgYnV0IG5vdCBnZW5fcGFydF8yCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4 cGxhaW4gKGdlbmVyaWNfcGxhbikgc2VsZWN0IGtleTEsIGtleTIgZnJvbSBnZW5fcGFydCB3aGVy ZSBrZXkxID0gMSBhbmQga2V5MiA9ICQxJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFwcGVuZCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAt PiAgU2VxIFNjYW4gb24gZ2VuX3BhcnRfMV8xIGdlbl9wYXJ0XzEgIChjb3N0PU4uTi4uTi5OIHJv d3M9TiB3aWR0aD1OKQorICAgICAgICAgRmlsdGVyOiAoKGtleTEgPSBOKSBBTkQgKGtleTIgPSAk TikpCisgICAtPiAgU2VxIFNjYW4gb24gZ2VuX3BhcnRfMV8yIGdlbl9wYXJ0XzIgIChjb3N0PU4u Ti4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgRmlsdGVyOiAoKGtleTEgPSBOKSBBTkQg KGtleTIgPSAkTikpCisoNSByb3dzKQorCitkcm9wIHRhYmxlIGdlbl9wYXJ0OworLS0KKy0tIFRl c3QgcHJvZHVjdGlvbiBvZiBwZXItd29ya2VyIGRhdGEKKy0tCistLSBVbmZvcnR1bmF0ZWx5LCBi ZWNhdXNlIHdlIGRvbid0IGtub3cgaG93IG1hbnkgd29ya2VyIHByb2Nlc3NlcyB3ZSdsbAorLS0g YWN0dWFsbHkgZ2V0IChtYXliZSBub25lIGF0IGFsbCksIHdlIGNhbid0IGV4YW1pbmUgdGhlICJX b3JrZXJzIiBvdXRwdXQKKy0tIGluIGFueSBkZXRhaWwuICBXZSBjYW4gY2hlY2sgdGhhdCBpdCBw YXJzZXMgY29ycmVjdGx5IGFzIEpTT04sIGFuZCB0aGVuCistLSByZW1vdmUgaXQgZnJvbSB0aGUg ZGlzcGxheWVkIHJlc3VsdHMuCitiZWdpbjsKKy0tIGVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwg cGxhbnMKK3NldCBwYXJhbGxlbF9zZXR1cF9jb3N0PTA7CitzZXQgcGFyYWxsZWxfdHVwbGVfY29z dD0wOworc2V0IG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU9MDsKK3NldCBtYXhfcGFyYWxs ZWxfd29ya2Vyc19wZXJfZ2F0aGVyPTQ7CitzZWxlY3QganNvbmJfcHJldHR5KAorICBleHBsYWlu X2ZpbHRlcl90b19qc29uKCdleHBsYWluIChhbmFseXplLCB2ZXJib3NlLCBidWZmZXJzLCBmb3Jt YXQganNvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgKiBmcm9tIHRlbmsxIG9y ZGVyIGJ5IHRlbnRob3VzJykKKyAgLS0gcmVtb3ZlICJXb3JrZXJzIiBub2RlIG9mIHRoZSBTZXEg U2NhbiBwbGFuIG5vZGUKKyAgIy0gJ3swLFBsYW4sUGxhbnMsMCxQbGFucywwLFdvcmtlcnN9Jwor ICAtLSByZW1vdmUgIldvcmtlcnMiIG5vZGUgb2YgdGhlIFNvcnQgcGxhbiBub2RlCisgICMtICd7 MCxQbGFuLFBsYW5zLDAsV29ya2Vyc30nCisgIC0tIEFsc28gcmVtb3ZlIGl0cyBzb3J0LXR5cGUg ZmllbGRzLCBhcyB0aG9zZSBhcmVuJ3QgMTAwJSBzdGFibGUKKyAgIy0gJ3swLFBsYW4sUGxhbnMs MCxTb3J0IE1ldGhvZH0nCisgICMtICd7MCxQbGFuLFBsYW5zLDAsU29ydCBTcGFjZSBUeXBlfScK Kyk7CisgICAgICAgICAgICAgICAgICAgICAgICBqc29uYl9wcmV0dHkgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAiUGxhbiI6IHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlBsYW5zIjog WyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAiUGxhbnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGlhcyI6ICJ0ZW5rMSIsICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdXRwdXQiOiBbICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pcXVlMSIs ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlMiIsICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAidHdvIiwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZm91ciIsICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAidGVuIiwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAidHdlbnR5IiwgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiaHVuZHJlZCIsICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhvdXNhbmQiLCAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvdGhvdXNhbmQiLCAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZml2ZXRob3VzIiwg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVudGhv dXMiLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi b2RkIiwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZXZlbiIsICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic3RyaW5ndTEiLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAic3RyaW5ndTIiLCAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nNCIgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTY2hlbWEiOiAicHVibGljIiwgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb2RlIFR5cGUiOiAi U2VxIFNjYW4iLCAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuIFJv d3MiOiAwLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQ bGFuIFdpZHRoIjogMCwgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJUb3RhbCBDb3N0IjogMC4wLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJBY3R1YWwgUm93cyI6IDAuMCwgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJBY3R1YWwgTG9vcHMiOiAwLCAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJTdGFydHVwIENvc3QiOiAwLjAsICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWxhdGlvbiBOYW1lIjogInRlbmsx IiwgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXJhbGxlbCBBd2FyZSI6 IHRydWUsICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb2NhbCBIaXQg QmxvY2tzIjogMCwgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZW1w IFJlYWQgQmxvY2tzIjogMCwgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJBY3R1YWwgVG90YWwgVGltZSI6IDAuMCwgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IDAsICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiAwLCAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgU3RhcnR1cCBUaW1lIjogMC4wLCAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXJlbnQgUmVsYXRpb25zaGlwIjogIk91 dGVyIiwrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tz IjogMCwgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb2NhbCBEaXJ0aWVk IEJsb2NrcyI6IDAsICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb2NhbCBX cml0dGVuIEJsb2NrcyI6IDAsICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJT aGFyZWQgRGlydGllZCBCbG9ja3MiOiAwLCAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiAwICAgICArCisgICAgICAgICAgICAgICAgICAg ICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAiT3V0cHV0IjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZTEiLCAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZTIiLCAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInR3byIsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXIiLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInRlbiIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInR3 ZW50eSIsICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAg ICAgImh1bmRyZWQiLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAgICAgInRob3VzYW5kIiwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAgICAgInR3b3Rob3VzYW5kIiwgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAgICAgImZpdmV0aG91cyIsICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAgICAgInRlbnRob3VzIiwgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgIm9kZCIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW4iLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZ3UxIiwg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmlu Z3UyIiwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAgICAg InN0cmluZzQiICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAiU29ydCBLZXkiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAgICAgInRlbmsxLnRlbnRob3VzIiAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTm9kZSBUeXBlIjogIlNvcnQiLCAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiUGxhbiBSb3dzIjogMCwgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiUGxhbiBXaWR0aCI6 IDAsICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiVG90YWwg Q29zdCI6IDAuMCwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAi QWN0dWFsIFJvd3MiOiAwLjAsICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgICAiQWN0dWFsIExvb3BzIjogMCwgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgICAgICAgICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU29ydCBTcGFjZSBVc2VkIjogMCwgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IDAs ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiVGVtcCBSZWFkIEJsb2Nr cyI6IDAsICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFRv dGFsIFRpbWUiOiAwLjAsICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTG9j YWwgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg ICAiU2hhcmVkIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6IDAuMCwgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJPdXRlciIsICAgICAg ICArCisgICAgICAgICAgICAgICAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiAw LCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9j a3MiOiAwLCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU2hhcmVkIERpcnRp ZWQgQmxvY2tzIjogMCwgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiU2hhcmVk IFdyaXR0ZW4gQmxvY2tzIjogMCAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgIH0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgXSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgIk91dHB1dCI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgICAgICJ1bmlxdWUxIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICJ1bmlxdWUyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgICAgICJ0d28iLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJmb3VyIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ0ZW4iLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ0d2VudHkiLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJodW5kcmVk IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJ0 aG91c2FuZCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg ICAgICJ0d290aG91c2FuZCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICJmaXZldGhvdXMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICJ0ZW50aG91cyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgICAgICJvZGQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgICAgICJldmVuIiwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJzdHJpbmd1MSIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJzdHJpbmd1MiIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICJzdHJpbmc0IiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgXSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkRp c2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgIk5vZGUgVHlwZSI6ICJHYXRoZXIgTWVyZ2UiLCAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgIlBsYW4gUm93cyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgIlBsYW4gV2lkdGgiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgIlRvdGFsIENvc3QiOiAwLjAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAgICAgIkFjdHVhbCBSb3dzIjogMC4wLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkFjdHVhbCBMb29wcyI6IDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlN0YXJ0dXAgQ29zdCI6IDAu MCwgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkFzeW5jIENhcGFi bGUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlBhcmFs bGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg IldvcmtlcnMgUGxhbm5lZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgIldvcmtlcnMgTGF1bmNoZWQiOiAwLCAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgIkFjdHVhbCBUb3RhbCBUaW1lIjogMC4wLCAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogMCwgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjog MCwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBSZWFkIEJs b2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkFjdHVhbCBT dGFydHVwIFRpbWUiOiAwLjAsICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlRl bXAgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAg ICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IDAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAiUGxhbm5pbmciOiB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIEhpdCBCbG9ja3Mi OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlN0b3JhZ2UgSS9P IFJlYWQiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlRlbXAg UmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAg IkxvY2FsIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogMCwg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2Nr cyI6IDAsICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlNoYXJlZCBXcml0dGVu IEJsb2NrcyI6IDAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB9LCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAiVHJpZ2dl cnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICBd LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgICAiRXhlY3V0aW9uIjogeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiAwICAgICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICAgICAiUGxhbm5pbmcgVGltZSI6IDAuMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAiRXhlY3V0aW9uIFRpbWUiOiAwLjAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgXQorKDEgcm93KQorCityb2xsYmFjazsK Ky0tIFRlc3QgZGlzcGxheSBvZiB0ZW1wb3Jhcnkgb2JqZWN0cworY3JlYXRlIHRlbXAgdGFibGUg dDEoZjEgZmxvYXQ4KTsKK2NyZWF0ZSBmdW5jdGlvbiBwZ190ZW1wLm15c2luKGZsb2F0OCkgcmV0 dXJucyBmbG9hdDggbGFuZ3VhZ2UgcGxwZ3NxbAorYXMgJ2JlZ2luIHJldHVybiBzaW4oJDEpOyBl bmQnOworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBzZWxlY3QgKiBm cm9tIHQxIHdoZXJlIHBnX3RlbXAubXlzaW4oZjEpIDwgMC41Jyk7CisgICAgICAgICAgICAgICAg ICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBT Y2FuIG9uIHBnX3RlbXAudDEgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0 cHV0OiBmMQorICAgRmlsdGVyOiAocGdfdGVtcC5teXNpbih0MS5mMSkgPCAnTi5OJzo6ZG91Ymxl IHByZWNpc2lvbikKKygzIHJvd3MpCisKKy0tIFRlc3QgY29tcHV0ZV9xdWVyeV9pZAorc2V0IGNv bXB1dGVfcXVlcnlfaWQgPSBvbjsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVy Ym9zZSkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAg ICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNl cSBTY2FuIG9uIHB1YmxpYy5pbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRo PU4pCisgICBPdXRwdXQ6IHExLCBxMgorIFF1ZXJ5IElkZW50aWZpZXI6IE4KKygzIHJvd3MpCisK Ky0tIFRlc3QgY29tcHV0ZV9xdWVyeV9pZCB3aXRoIHV0aWxpdHkgc3RhdGVtZW50cyBjb250YWlu aW5nIHBsYW5uYWJsZSBxdWVyeQorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJi b3NlKSBkZWNsYXJlIHRlc3RfY3VyIGN1cnNvciBmb3Igc2VsZWN0ICogZnJvbSBpbnQ4X3RibCcp OworICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy5pbnQ4X3RibCAgKGNvc3Q9Ti5OLi5O Lk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IHExLCBxMgorIFF1ZXJ5IElkZW50aWZpZXI6 IE4KKygzIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkg Y3JlYXRlIHRhYmxlIHRlc3RfY3RhcyBhcyBzZWxlY3QgMScpOworICAgICAgICAgICAgIGV4cGxh aW5fZmlsdGVyICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFJlc3VsdCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRw dXQ6IE4KKyBRdWVyeSBJZGVudGlmaWVyOiBOCisoMyByb3dzKQorCistLSBUZXN0IFNFUklBTEla RSBvcHRpb24KK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZmZXJz IG9mZixzZXJpYWxpemUpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4g cm93cz1OIHdpZHRoPU4pIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQor IFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIFNlcmlhbGl6YXRpb246IHRpbWU9Ti5OIG1zICBvdXRw dXQ9TmtCICBmb3JtYXQ9dGV4dAorIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxzZXJpYWxpemUgdGV4dCxi dWZmZXJzLHRpbWluZyBvZmYpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2Fu IG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCBy b3dzPU4uTiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIFNlcmlhbGl6YXRpb246 IG91dHB1dD1Oa0IgIGZvcm1hdD10ZXh0CisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93 cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLHNlcmlhbGl6ZSBi aW5hcnksYnVmZmVycyx0aW1pbmcpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5O Li5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29w cz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIFNlcmlhbGl6YXRpb246IHRpbWU9Ti5OIG1z ICBvdXRwdXQ9TmtCICBmb3JtYXQ9YmluYXJ5CisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDQg cm93cykKKworLS0gdGhpcyB0ZXN0cyBhbiBlZGdlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBubyBkYXRh IHRvIHJldHVybgorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLGJ1ZmZl cnMgb2ZmLHNlcmlhbGl6ZSkgY3JlYXRlIHRlbXAgdGFibGUgZXhwbGFpbl90ZW1wIGFzIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1 YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBt cworIFNlcmlhbGl6YXRpb246IHRpbWU9Ti5OIG1zICBvdXRwdXQ9TmtCICBmb3JtYXQ9dGV4dAor IEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisKKy0tIFRlc3QgdHVwbGVzdG9yZSBz dG9yYWdlIHVzYWdlIGluIFdpbmRvdyBhZ2dyZWdhdGUgKG1lbW9yeSBjYXNlKQorc2VsZWN0IGV4 cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLGNvc3RzIG9mZikgc2Vs ZWN0IHN1bShuKSBvdmVyKCkgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgYShuKScpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZyAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyAgIFdpbmRvdzog dzEgQVMgKCkKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBhIChhY3R1YWwgdGltZT1OLk4uLk4u TiByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBU aW1lOiBOLk4gbXMKKyg2IHJvd3MpCisKKy0tIFRlc3QgdHVwbGVzdG9yZSBzdG9yYWdlIHVzYWdl IGluIFdpbmRvdyBhZ2dyZWdhdGUgKGRpc2sgY2FzZSkKK3NldCB3b3JrX21lbSB0byA2NDsKK3Nl bGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZmZXJzIG9mZixjb3N0cyBv ZmYpIHNlbGVjdCBzdW0obikgb3ZlcigpIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMjUwMCkgYShu KScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZyAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyAg IFdpbmRvdzogdzEgQVMgKCkKKyAgIFN0b3JhZ2U6IERpc2sgIE1heGltdW0gU3RvcmFnZTogTmtC CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgYSAoYWN0dWFsIHRpbWU9 Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVj dXRpb24gVGltZTogTi5OIG1zCisoNiByb3dzKQorCistLSBUZXN0IHR1cGxlc3RvcmUgc3RvcmFn ZSB1c2FnZSBpbiBXaW5kb3cgYWdncmVnYXRlIChtZW1vcnkgYW5kIGRpc2sgY2FzZSwgZmluYWwg cmVzdWx0IGlzIGRpc2spCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUs YnVmZmVycyBvZmYsY29zdHMgb2ZmKSBzZWxlY3Qgc3VtKG4pIG92ZXIocGFydGl0aW9uIGJ5IG0p IGZyb20gKFNFTEVDVCBuIDwgMyBhcyBtLCBuIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMjUwMCkg YShuKSknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9 Ti5OIGxvb3BzPU4pCisgICBXaW5kb3c6IHcxIEFTIChQQVJUSVRJT04gQlkgKChhLm4gPCBOKSkp CisgICBTdG9yYWdlOiBEaXNrICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgLT4gIFNvcnQgKGFj dHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICAgICAgICBTb3J0IEtleTog KChhLm4gPCBOKSkKKyAgICAgICAgIFNvcnQgTWV0aG9kOiBleHRlcm5hbCBtZXJnZSAgRGlzazog TmtCCisgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgYSAoYWN0 dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4g bXMKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoOSByb3dzKQorCityZXNldCB3b3JrX21lbTsK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMWM4NjEwZmQ0NmMuLmNkNjk2YjlmY2NjIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY5MSw2ICsyNjkxLDcgQEAgU1NMCiBTU0xF eHRlbnNpb25JbmZvQ29udGV4dAogU1NMX0NUWAogU1RBUlRVUElORk8KK1N0b3JhZ2VJT1VzYWdl CiBTVFJMRU4KIFNWCiBTWU5DSFJPTklaQVRJT05fQkFSUklFUgoKYmFzZS1jb21taXQ6IGE5YmRi NjNiYmE4YTYzMWNkNDc5NzM5MzMwN2VlY2Y1ZmNkZTkxNjcKLS0gCjIuNTIuMAoK --87c59336e77a0e8153ee6f50c0b35ffff0accabb9618e63484f9ff51ef5d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v7-0002-fixup-Add-storage-I-O-tracking-to-BUFFERS-option.patch Content-Type: text/x-patch; charset=utf-8; name=v7-0002-fixup-Add-storage-I-O-tracking-to-BUFFERS-option.patch RnJvbSAyYTQ1MjM0ZmNhMWJhNzdjZDAwODBkMzY2ZmRmODc5ZWY5MTY1ZDlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDI1IEphbiAyMDI2IDE1OjI5OjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 NyAyLzJdIGZpeHVwISBBZGQgc3RvcmFnZSBJL08gdHJhY2tpbmcgdG8gJ0JVRkZFUlMnIG9wdGlv bgoKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgfCAgNiArKystLS0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICB8ICA0ICsrKy0KIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL2luc3RydW1lbnQuYyB8IDE3ICsrKysrKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDE3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YwppbmRleCA3OTAyODY2ZGE3Yi4uOGY2NjhlZTQ2YzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMK QEAgLTQzNzYsOCArNDM3Niw4IEBAIHNob3dfc3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5TdGF0ZSAq ZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSkKIAogCQlFeHBsYWluSW5kZW50VGV4dChl cyk7CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMtPnN0ciwgIlN0b3JhZ2UgSS9POiIpOwot CQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIgcmVhZD0lbGQgdGltZXMiLCAobG9uZykgdXNh Z2UtPmluYmxvY2spOwotCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIgd3JpdGU9JWxkIHRp bWVzIiwgKGxvbmcpIHVzYWdlLT5vdXRibG9jayk7CisJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0 ciwgIiByZWFkPSVsZCIsIChsb25nKSB1c2FnZS0+aW5ibG9jayk7CisJCWFwcGVuZFN0cmluZ0lu Zm8oZXMtPnN0ciwgIiB3cml0ZT0lbGQiLCAobG9uZykgdXNhZ2UtPm91dGJsb2NrKTsKIAogCQlh cHBlbmRTdHJpbmdJbmZvQ2hhcihlcy0+c3RyLCAnXG4nKTsKIAl9CkBAIC00Mzg1LDcgKzQzODUs NyBAQCBzaG93X3N0b3JhZ2Vpb191c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBTdG9yYWdl SU9Vc2FnZSAqdXNhZ2UpCiAJewogCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJTdG9yYWdlIEkv TyBSZWFkIiwgTlVMTCwKIAkJCQkJCQkgICB1c2FnZS0+aW5ibG9jaywgZXMpOwotCQlFeHBsYWlu UHJvcGVydHlJbnRlZ2VyKCJTdG9yYWdlIEkvTyBSZWFkIiwgTlVMTCwKKwkJRXhwbGFpblByb3Bl cnR5SW50ZWdlcigiU3RvcmFnZSBJL08gV3JpdGUiLCBOVUxMLAogCQkJCQkJCSAgIHVzYWdlLT5v dXRibG9jaywgZXMpOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCAwOGJmMjhkMjA3 OC4uN2MzOGYxMzkzZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTY0OCwxMiArNjQ4LDE0 IEBAIEV4cGxhaW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNl ICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxh bm5lcl9jdHgsICZtZW1fY291bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2Yg YnVmZmVyIGNvdW50ZXJzLiAqLworCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGFuZCBz dG9yYWdlIEkvTyBjb3VudGVycy4gKi8KIAlpZiAoZXMtPmJ1ZmZlcnMpCiAJewogCQltZW1zZXQo JmJ1ZnVzYWdlLCAwLCBzaXplb2YoQnVmZmVyVXNhZ2UpKTsKIAkJQnVmZmVyVXNhZ2VBY2N1bURp ZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKKwogCQlHZXRT dG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlvKTsKKwkJU3RvcmFnZUlPVXNhZ2VEaWZmKCZzdG9yYWdl aW8sICZzdG9yYWdlaW9fc3RhcnQpOwogCX0KIAogCXBsYW5fbGlzdCA9IGNwbGFuLT5zdG10X2xp c3Q7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKaW5kZXggMzE2NjcxYzNjZWQuLjkwMmU3ZTU0 YjU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBAIC0yMiw4ICsyMiwxMyBAQAogQnVm ZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKIHN0YXRpYyBCdWZmZXJVc2FnZSBzYXZlX3BnQnVmZmVy VXNhZ2U7CiAKLVN0b3JhZ2VJT1VzYWdlIHBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbDsJLyogb25s eSBjb3VudCBwYXJhbGxlbCB3b3JrZXJzJwotCQkJCQkJCQkJCQkgKiB1c2FnZSAqLworLyoKKyAq IEFjY3VtdWxhdGVzIHRoZSBJL08gdXNhZ2Ugc2VuZCBieSBwYXJhbGxlbCB3b3JrZXJzIHRvIHRo ZSBtYWluCisgKiBwcm9jZXNzLiBUaGlzIGRvZXMgbm90IGNvbnRhaW4gdGhlIEkvTyBmcm9tIHRo ZSBtYWluIGJhY2tlbmQgcHJvY2VzcworICogaXRzZWxmIGJlY2F1c2UgdGhlIGtlcm5lbCB0cmFj a3MgdGhhdCBpbnN0ZWFkIG9mIHVzLgorICovCitTdG9yYWdlSU9Vc2FnZSBwZ1N0b3JhZ2VJT1Vz YWdlUGFyYWxsZWw7CisKIFdhbFVzYWdlCXBnV2FsVXNhZ2U7CiBzdGF0aWMgV2FsVXNhZ2Ugc2F2 ZV9wZ1dhbFVzYWdlOwogCkBAIC0yMjQsMTAgKzIyOSw2IEBAIEluc3RyRW5kUGFyYWxsZWxRdWVy eShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZSwg V2FsCiAKIAkJbWVtc2V0KHN0b3JhZ2Vpb3VzYWdlLCAwLCBzaXplb2YoU3RvcmFnZUlPVXNhZ2Up KTsKIAkJU3RvcmFnZUlPVXNhZ2VBY2N1bURpZmYoc3RvcmFnZWlvdXNhZ2UsICZzdG9yYWdlaW91 c2FnZV9lbmQsIHN0b3JhZ2Vpb3VzYWdlX3N0YXJ0KTsKLQotCQllcmVwb3J0KERFQlVHMSwKLQkJ CQkoZXJybXNnKCJQYXJhbGxlbCB3b3JrZXIncyBzdG9yYWdlIEkvTyB0aW1lczogaW5ibG9jazol bGQgb3V0YmxvY2s6JWxkIiwKLQkJCQkJCXN0b3JhZ2Vpb3VzYWdlLT5pbmJsb2NrLCBzdG9yYWdl aW91c2FnZS0+b3V0YmxvY2spKSk7CiAJfQogCW1lbXNldCh3YWx1c2FnZSwgMCwgc2l6ZW9mKFdh bFVzYWdlKSk7CiAJV2FsVXNhZ2VBY2N1bURpZmYod2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAmc2F2 ZV9wZ1dhbFVzYWdlKTsKQEAgLTMzMSw3ICszMzIsMTEgQEAgR2V0U3RvcmFnZUlPVXNhZ2UoU3Rv cmFnZUlPVXNhZ2UgKnVzYWdlKQogCSAqIEkvTywgZG9uJ3QgZ2V0IHRoZSBJL08gdXNhZ2Ugc3Rh dGlzdGljcyB3aGVuIEFJTyB3b3JrZXIgaXMgZW5hYmxlZC4KIAkgKi8KIAlpZiAocGdhaW9fd29y a2Vyc19lbmFibGVkKCkpCisJeworCQl1c2FnZS0+aW5ibG9jayA9IDA7CisJCXVzYWdlLT5vdXRi bG9jayA9IDA7CiAJCXJldHVybjsKKwl9CiAKIAlpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAm cnVzYWdlKSkKIAl7Ci0tIAoyLjUyLjAKCg== --87c59336e77a0e8153ee6f50c0b35ffff0accabb9618e63484f9ff51ef5d--