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.94.2) (envelope-from ) id 1u3EH1-00CWwq-GG for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Apr 2025 13:18:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1u3EGz-009Z3h-E8 for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Apr 2025 13:18:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u3EGy-009Z3P-Uj for pgsql-hackers@lists.postgresql.org; Fri, 11 Apr 2025 13:18:21 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u3EGr-004iKF-3A for pgsql-hackers@postgresql.org; Fri, 11 Apr 2025 13:18:18 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id 2CE5960F08; Fri, 11 Apr 2025 22:18:07 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_5870a16788b3af30b8460d39d8e7165a" Content-Transfer-Encoding: 7bit Date: Fri, 11 Apr 2025 22:18:06 +0900 From: torikoshia To: Jelte Fennema-Nio Cc: andres@anarazel.de, tgl@sss.pgh.pa.us, pgsql-hackers@postgresql.org, rjuju123@gmail.com, Bruce Momjian Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information In-Reply-To: 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> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <0310f2ff46d990485f96624ac1744c01@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_5870a16788b3af30b8460d39d8e7165a Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2025-03-25 10:27, torikoshia wrote: > On 2025-03-22 20:23, Jelte Fennema-Nio wrote: > >> On Wed, 19 Mar 2025 at 14:15, torikoshia >> wrote: >>> BTW based on your discussion, I thought this patch could not be >>> merged >>> anytime soon. Does that align with your understanding? >> >> Yeah, that aligns with my understanding. I don't think it's realistic >> to get this merged before the code freeze, but I think both of the >> below issues could be resolved. >> >>> - With bgworker-based AIO, this patch could mislead users into >>> underestimating the actual storage I/O load, which is undesirable. >> >> To resolve this, I think the patch would need to change to not report >> anything if bgworker-based AIO is used. > > Agreed. > I feel the new GUC io_method can be used to determine whether > bgworker-based AIO is being used. I took this approach and when io_method=worker, no additional output is shown in the attached patch. -- Regards, -- Atsushi Torikoshi Seconded from NTT DATA GROUP CORPORATION to SRA OSS K.K. --=_5870a16788b3af30b8460d39d8e7165a Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v4-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch Content-Disposition: attachment; filename=v4-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch; size=73043 RnJvbSBlODBlNTNlYjM2Zjc5MDljYTg2MzhiMjZkM2NkNjFhNThhNWJjODg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IEZyaSwgMTEgQXByIDIwMjUgMjI6MDE6MjIgKzA5MDAKU3ViamVjdDog W1BBVENIIHY0XSBBZGQgc3RvcmFnZSBJL08gdHJhY2tpbmcgdG8gJ0JVRkZFUlMnIG9wdGlvbgoK VGhlICdCVUZGRVJTJyBvcHRpb24gY3VycmVudGx5IGluZGljYXRlcyB3aGV0aGVyIGEgYmxvY2sg aGl0IHRoZSBzaGFyZWQKYnVmZmVyLCBidXQgZG9lcyBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBh IGNhY2hlIGhpdCBpbiB0aGUgT1MgY2FjaGUgb3IKYSBzdG9yYWdlIEkvTyBvcGVyYXRpb24uCldo aWxlIHNoYXJlZCBidWZmZXJzIGFuZCBPUyBjYWNoZSBvZmZlciBzaW1pbGFyIHBlcmZvcm1hbmNl LCBzdG9yYWdlCkkvTyBpcyBzaWduaWZpY2FudGx5IHNsb3dlciBpbiBjb21wYXJpc29uIGluIGdl bmVyYWwuICBCeSBtZWFzdXJpbmcKdGhlIG51bWJlcnMgb2Ygc3RvcmFnZSBJL08gcmVhZCBhbmQg d3JpdGUsIHdlIGNhbiBiZXR0ZXIgaWRlbnRpZnkgaWYKc3RvcmFnZSBJL08gaXMgYSBib3R0bGVu ZWNrIGluIHBlcmZvcm1hbmNlLgoKQWRkZWQgdHJhY2tpbmcgb2Ygc3RvcmFnZSBJL08gdXNhZ2Ug YnkgY2FsbGluZyBnZXRydXNhZ2UoMikgYXQgYm90aCB0aGUKcGxhbm5pbmcgYW5kIGV4ZWN1dGlv biBwaGFzZSBzdGFydCBhbmQgZW5kIHBvaW50cy4KCkEgbW9yZSBncmFudWxhciBhcHByb2FjaCBh cyB3ZWxsIGFzIGN1cnJlbnQgQlVGRkVSUyBvcHRpb24odHJhY2tpbmcgYXQKZWFjaCBwbGFuIG5v ZGUpIHdhcyBjb25zaWRlcmVkIGJ1dCBmb3VuZCB0byBiZSBpbXByYWN0aWNhbCBkdWUgdG8gdGhl CmhpZ2ggcGVyZm9ybWFuY2UgY29zdCBvZiBmcmVxdWVudCBnZXRydXNhZ2UoKSBjYWxscy4KClRo aXMgb3V0cHV0IGlzIHNob3duIHdoZW4gaW9fbWV0aG9kPXdvcmtlciwgc2luY2UgYXN5bmNocm9u b3VzIHdvcmtlcnMKaGFuZGxlIEkvTyBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzLCBhbmQgaXNvbGF0 aW5nIHRoZSBFWFBMQUlOIHRhcmdldCdzCkkvTyBpcyBkaWZmaWN1bHQuCgpUT0RPOgpJIGJlbGll dmUgdGhpcyBpbmZvcm1hdGlvbiBpcyBtYWlubHkgdXNlZnVsIHdoZW4gdXNlZCBpbiBhdXRvX2V4 cGxhaW4uCkknbGwgaW1wbGVtZW50IGl0IGxhdGVyLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhw bGFpbi5zZ21sICAgICAgICAgICB8ICAyNSArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5j ICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICB8 ICAgOCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgIHwgMTI1ICsr Ky0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICB8ICAgOCArCiBzcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgfCAgIDggKy0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICB8ICAzNSArLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvaW5zdHJ1bWVudC5jICAgICAgIHwgIDc5ICsrLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhw bGFpbi5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxl bC5oICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmggICAgICAg fCAgMjAgKy0KIHNyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmggICB8ICAgMiAr CiBzcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0IHwgODQ5ICsrKysrKysrKysrKysrKysr KysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgIHwgICAxICsK IDE2IGZpbGVzIGNoYW5nZWQsIDExNDUgaW5zZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0 CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2V4cGxhaW4uc2dtbAppbmRleCA5ZWQxMDYxYjdmLi40OTNhZmU2YTM0IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2V4cGxhaW4uc2dtbApAQCAtMjAxLDEwICsyMDEsMjcgQEAgUk9MTEJBQ0s7CiAgICAgICBxdWVy eSBwcm9jZXNzaW5nLgogICAgICAgVGhlIG51bWJlciBvZiBibG9ja3Mgc2hvd24gZm9yIGFuCiAg ICAgICB1cHBlci1sZXZlbCBub2RlIGluY2x1ZGVzIHRob3NlIHVzZWQgYnkgYWxsIGl0cyBjaGls ZCBub2Rlcy4gIEluIHRleHQKLSAgICAgIGZvcm1hdCwgb25seSBub24temVybyB2YWx1ZXMgYXJl IHByaW50ZWQuICBCdWZmZXJzIGluZm9ybWF0aW9uIGlzCi0gICAgICBpbmNsdWRlZCBieSBkZWZh dWx0IHdoZW4gPGxpdGVyYWw+QU5BTFlaRTwvbGl0ZXJhbD4gaXMgdXNlZCBidXQKLSAgICAgIG90 aGVyd2lzZSBpcyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBlbmFibGVkIHVz aW5nIHRoaXMKLSAgICAgIG9wdGlvbi4KKyAgICAgIGZvcm1hdCwgb25seSBub24temVybyB2YWx1 ZXMgYXJlIHByaW50ZWQuCisgICAgICBJZiBwb3NzaWJsZSwgdGhpcyBvcHRpb24gYWxzbyBkaXNw bGF5cyB0aGUgbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlCisgICAgICBvcGVyYXRpb25zIHBlcmZv cm1lZCBvbiBzdG9yYWdlIGR1cmluZyB0aGUgcGxhbm5pbmcgYW5kIGV4ZWN1dGlvbiBwaGFzZXMs CisgICAgICBzaG93biBhdCB0aGUgZW5kIG9mIHRoZSBwbGFuLiBUaGVzZSB2YWx1ZXMgYXJlIG9i dGFpbmVkIGZyb20gdGhlCisgICAgICA8ZnVuY3Rpb24+Z2V0cnVzYWdlKCk8L2Z1bmN0aW9uPiBz eXN0ZW0gY2FsbC4gTm90ZSB0aGF0IG9uIHBsYXRmb3JtcyB0aGF0CisgICAgICBkbyBub3Qgc3Vw cG9ydCA8ZnVuY3Rpb24+Z2V0cnVzYWdlKCk8L2Z1bmN0aW9uPiwgc3VjaCBhcyBXaW5kb3dzLCBu byBvdXRwdXQKKyAgICAgIHdpbGwgYmUgc2hvd24sIGV2ZW4gaWYgcmVhZHMgb3Igd3JpdGVzIGFj dHVhbGx5IG9jY3VyLiBBZGRpdGlvbmFsbHksIGV2ZW4KKyAgICAgIG9uIHBsYXRmb3JtcyB3aGVy ZSA8ZnVuY3Rpb24+Z2V0cnVzYWdlKCk8L2Z1bmN0aW9uPiBpcyBzdXBwb3J0ZWQsIGlmIHRoZQor ICAgICAga2VybmVsIGlzIGJ1aWx0IHdpdGhvdXQgdGhlIG5lY2Vzc2FyeSBvcHRpb25zIHRvIHRy YWNrIHN0b3JhZ2UgcmVhZCBhbmQKKyAgICAgIHdyaXRlIG9wZXJhdGlvbnMsIG5vIG91dHB1dCB3 aWxsIGJlIHNob3duLiAgQWxzbywgV2hlbgorICAgICAgPHZhcm5hbWU+aW9fbWV0aG9kPC92YXJu YW1lPiBpcyBzZXQgdG8gPGxpdGVyYWw+d29ya2VyPC9saXRlcmFsPiwgbm8gb3V0cHV0CisgICAg ICB3aWxsIGJlIHNob3duLCBhcyBJL08gaGFuZGxlZCBieSBhc3luY2hyb25vdXMgd29ya2VycyBj YW5ub3QgYmUgbWVhc3VyZWQKKyAgICAgIGFjY3VyYXRlbHkuCisgICAgICBUaGUgdGltaW5nIGFu ZCB1bml0IG9mIG1lYXN1cmVtZW50IGZvciByZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zIG1heSB2 YXJ5CisgICAgICBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtLiBGb3IgZXhhbXBsZSwgb24gTGlu dXgsIGEgcmVhZCBpcyBjb3VudGVkIG9ubHkKKyAgICAgIGlmIHRoaXMgcHJvY2VzcyBjYXVzZWQg ZGF0YSB0byBiZSBmZXRjaGVkIGZyb20gdGhlIHN0b3JhZ2UgbGF5ZXIsIGFuZCBhCisgICAgICB3 cml0ZSBpcyBjb3VudGVkIGF0IHRoZSBwYWdlLWRpcnR5aW5nIHRpbWUuIE9uIExpbnV4LCB0aGUg dW5pdCBvZgorICAgICAgbWVhc3VyZW1lbnQgZm9yIHJlYWQgYW5kIHdyaXRlIG9wZXJhdGlvbnMg aXMgNTEyIGJ5dGVzLgorICAgICAgQnVmZmVycyBpbmZvcm1hdGlvbiBpcyBpbmNsdWRlZCBieSBk ZWZhdWx0IHdoZW4gPGxpdGVyYWw+QU5BTFlaRTwvbGl0ZXJhbD4KKyAgICAgIGlzIHVzZWQgYnV0 IG90aGVyd2lzZSBpcyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdCwgYnV0IGNhbiBiZSBlbmFibGVk IHVzaW5nCisgICAgICB0aGlzIG9wdGlvbi4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCAwMWUxZGI3Zjg1 Li5jNmE4Zjc0MjEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBAIC0yNTU3LDcgKzI1NTcsNyBA QCBfYnJpbl9lbmRfcGFyYWxsZWwoQnJpbkxlYWRlciAqYnJpbmxlYWRlciwgQnJpbkJ1aWxkU3Rh dGUgKnN0YXRlKQogCSAqIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRlIGRhdGEuKQogCSAqLwog CWZvciAoaSA9IDA7IGkgPCBicmlubGVhZGVyLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsr KQotCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmYnJpbmxlYWRlci0+YnVmZmVydXNhZ2VbaV0s ICZicmlubGVhZGVyLT53YWx1c2FnZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZi cmlubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwgTlVMTCwgJmJyaW5sZWFkZXItPndhbHVzYWdlW2ld KTsKIAogCS8qIEZyZWUgbGFzdCByZWZlcmVuY2UgdG8gTVZDQyBzbmFwc2hvdCwgaWYgb25lIHdh cyB1c2VkICovCiAJaWYgKElzTVZDQ1NuYXBzaG90KGJyaW5sZWFkZXItPnNuYXBzaG90KSkKQEAg LTI5MTksNyArMjkxOSw3IEBAIF9icmluX3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQg KnNlZywgc2htX3RvYyAqdG9jKQogCXR1cGxlc29ydF9hdHRhY2hfc2hhcmVkKHNoYXJlZHNvcnQs IHNlZyk7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxs ZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0 UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qCiAJICogTWlnaHQgYXMgd2VsbCB1c2UgcmVsaWFi bGUgZmlndXJlIHdoZW4gZG9saW5nIG91dCBtYWludGVuYW5jZV93b3JrX21lbQpAQCAtMjkzNCw4 ICsyOTM0LDggQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBz aG1fdG9jICp0b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVs IGV4ZWN1dGlvbiAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExF TF9LRVlfQlVGRkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0 b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdl W1BhcmFsbGVsV29ya2VyTnVtYmVyXSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1 c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0sIE5VTEwpOwogCiAJaW5kZXhfY2xvc2UoaW5kZXhSZWwsIGluZGV4 TG9ja21vZGUpOwogCXRhYmxlX2Nsb3NlKGhlYXBSZWwsIGhlYXBMb2NrbW9kZSk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW5pbnNlcnQuYwppbmRleCBlMjVkODE3YzE5Li41NDYzZDgxYzk2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAgLTEwODQsNyArMTA4NCw3IEBAIF9naW5fZW5kX3Bh cmFsbGVsKEdpbkxlYWRlciAqZ2lubGVhZGVyLCBHaW5CdWlsZFN0YXRlICpzdGF0ZSkKIAkgKiBv ciB3ZSBtaWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwg Z2lubGVhZGVyLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsrKQotCQlJbnN0ckFjY3VtUGFy YWxsZWxRdWVyeSgmZ2lubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwgJmdpbmxlYWRlci0+d2FsdXNh Z2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmZ2lubGVhZGVyLT5idWZmZXJ1c2Fn ZVtpXSwgTlVMTCwgJmdpbmxlYWRlci0+d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJl ZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUgd2FzIHVzZWQgKi8KIAlpZiAoSXNNVkND U25hcHNob3QoZ2lubGVhZGVyLT5zbmFwc2hvdCkpCkBAIC0yMTM1LDcgKzIxMzUsNyBAQCBfZ2lu X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCXR1 cGxlc29ydF9hdHRhY2hfc2hhcmVkKHNoYXJlZHNvcnQsIHNlZyk7CiAKIAkvKiBQcmVwYXJlIHRv IHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJT dGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAog CS8qCiAJICogTWlnaHQgYXMgd2VsbCB1c2UgcmVsaWFibGUgZmlndXJlIHdoZW4gZG9saW5nIG91 dCBtYWludGVuYW5jZV93b3JrX21lbQpAQCAtMjE1MCw4ICsyMTUwLDggQEAgX2dpbl9wYXJhbGxl bF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBSZXBvcnQg V0FML2J1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVmZmVydXNh Z2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNl KTsKIAl3YWx1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FH RSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxX b3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsK KwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVy XSwgTlVMTCwKKwkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCk7 CiAKIAlpbmRleF9jbG9zZShpbmRleFJlbCwgaW5kZXhMb2NrbW9kZSk7CiAJdGFibGVfY2xvc2Uo aGVhcFJlbCwgaGVhcExvY2ttb2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5k ZXggMzc5NGNjOTI0YS4uYzY2ZTc0MjkwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMKQEAgLTE2MTgsNyArMTYxOCw3IEBAIF9idF9lbmRfcGFyYWxsZWwoQlRMZWFkZXIgKmJ0bGVh ZGVyKQogCSAqIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRlIGRhdGEuKQogCSAqLwogCWZvciAo aSA9IDA7IGkgPCBidGxlYWRlci0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7IGkrKykKLQkJSW5z dHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJ0bGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwgJmJ0bGVhZGVy LT53YWx1c2FnZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZidGxlYWRlci0+YnVm ZmVydXNhZ2VbaV0sIE5VTEwsICZidGxlYWRlci0+d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBs YXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUgd2FzIHVzZWQgKi8KIAlpZiAo SXNNVkNDU25hcHNob3QoYnRsZWFkZXItPnNuYXBzaG90KSkKQEAgLTE4MjYsNyArMTgyNiw3IEBA IF9idF9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykK IAl9CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwg ZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFy YWxsZWxRdWVyeShOVUxMKTsKIAogCS8qIFBlcmZvcm0gc29ydGluZyBvZiBzcG9vbCwgYW5kIHBv c3NpYmx5IGEgc3Bvb2wyICovCiAJc29ydG1lbSA9IG1haW50ZW5hbmNlX3dvcmtfbWVtIC8gYnRz aGFyZWQtPnNjYW50dXBsZXNvcnRzdGF0ZXM7CkBAIC0xODM2LDggKzE4MzYsOCBAQCBfYnRfcGFy YWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJLyogUmVw b3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwogCWJ1ZmZl cnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VTQUdFLCBm YWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9XQUxf VVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFs bGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVy XSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdvcmtlck51 bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5V TEwpOwogCiAjaWZkZWYgQlRSRUVfQlVJTERfU1RBVFMKIAlpZiAobG9nX2J0cmVlX2J1aWxkX3N0 YXRzKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDc4NmVlODY1ZjEuLjJlMzkxYjM0N2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJwYXJzZXIv YW5hbHl6ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJyZXdy aXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9haW9fc3Vic3lzLmgiCiAj aW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTE0NCw2ICsxNDUsOCBAQCBzdGF0aWMgdm9p ZCBzaG93X2ZvcmVpZ25zY2FuX2luZm8oRm9yZWlnblNjYW5TdGF0ZSAqZnNzdGF0ZSwgRXhwbGFp blN0YXRlICplcyk7CiBzdGF0aWMgY29uc3QgY2hhciAqZXhwbGFpbl9nZXRfaW5kZXhfbmFtZShP aWQgaW5kZXhJZCk7CiBzdGF0aWMgYm9vbCBwZWVrX2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUg KmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UpOwogc3RhdGljIHZvaWQgc2hvd19idWZmZXJf dXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2UgKnVzYWdlKTsKK3N0YXRp YyBib29sIHBlZWtfc3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3Jh Z2VJT1VzYWdlICp1c2FnZSk7CitzdGF0aWMgdm9pZCBzaG93X3N0b3JhZ2Vpb191c2FnZShFeHBs YWluU3RhdGUgKmVzLCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqdXNhZ2UpOwogc3RhdGljIHZvaWQg c2hvd193YWxfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgV2FsVXNhZ2UgKnVzYWdlKTsK IHN0YXRpYyB2b2lkIHNob3dfbWVtb3J5X2NvdW50ZXJzKEV4cGxhaW5TdGF0ZSAqZXMsCiAJCQkJ CQkJCSBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycyk7CkBAIC0zMjUs NiArMzI4LDggQEAgc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1 cnNvck9wdGlvbnMsCiAJCQkJcGxhbmR1cmF0aW9uOwogCUJ1ZmZlclVzYWdlIGJ1ZnVzYWdlX3N0 YXJ0LAogCQkJCWJ1ZnVzYWdlOworCVN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2VpbywKKwkJCQlzdG9y YWdlaW9fc3RhcnQ7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJzIG1lbV9jb3VudGVyczsKIAlNZW1v cnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0IHNhdmVkX2N0eCA9 IE5VTEw7CkBAIC0zNDYsNyArMzUxLDEwIEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVy eSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25zLAogCX0KIAogCWlmIChlcy0+YnVmZmVycykKKwl7 CiAJCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdCdWZmZXJVc2FnZTsKKwkJR2V0U3RvcmFnZUlPVXNhZ2Uo JnN0b3JhZ2Vpb19zdGFydCk7CisJfQogCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQocGxhbnN0YXJ0 KTsKIAogCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCkBAIC0zNjEsMTcgKzM2OSwyMSBAQCBzdGFuZGFy ZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJTWVt b3J5Q29udGV4dE1lbUNvbnN1bWVkKHBsYW5uZXJfY3R4LCAmbWVtX2NvdW50ZXJzKTsKIAl9CiAK LQkvKiBjYWxjIGRpZmZlcmVuY2VzIG9mIGJ1ZmZlciBjb3VudGVycy4gKi8KKwkvKiBjYWxjIGRp ZmZlcmVuY2VzIG9mIGJ1ZmZlciBhbmQgc3RvcmFnZSBJL08gY291bnRlcnMuICovCiAJaWYgKGVz LT5idWZmZXJzKQogCXsKIAkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdl KSk7CiAJCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZi dWZ1c2FnZV9zdGFydCk7CisKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpbyk7CisJCVN0 b3JhZ2VJT1VzYWdlRGlmZigmc3RvcmFnZWlvLCAmc3RvcmFnZWlvX3N0YXJ0KTsKIAl9CiAKIAkv KiBydW4gaXQgKGlmIG5lZWRlZCkgYW5kIHByb2R1Y2Ugb3V0cHV0ICovCiAJRXhwbGFpbk9uZVBs YW4ocGxhbiwgTlVMTCwgTlVMTCwgLTEsIGludG8sIGVzLCBxdWVyeVN0cmluZywgcGFyYW1zLAog CQkJCSAgIHF1ZXJ5RW52LAogCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZi dWZ1c2FnZSA6IE5VTEwpLAorCQkJCSAgIGVzLT5idWZmZXJzID8gJnN0b3JhZ2VpbyA6IE5VTEws CiAJCQkJICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRlcnMgOiBOVUxMKTsKIH0KIApAQCAtNDk3 LDcgKzUwOSw3IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgQ2Fj aGVkUGxhbiAqY3BsYW4sCiAJCQkgICBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVz LAogCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAog CQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIGNvbnN0IGluc3RyX3RpbWUgKnBsYW5k dXJhdGlvbiwKLQkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwKKwkJCSAgIGNvbnN0 IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnBsYW5zdG9yYWdl aW8sCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycykKIHsK IAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CkBAIC01MDcsNiArNTE5LDcgQEAgRXhwbGFpbk9uZVBsYW4o UGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBDYWNoZWRQbGFuICpjcGxhbiwKIAlpbnQJCQllZmxh Z3M7CiAJaW50CQkJaW5zdHJ1bWVudF9vcHRpb24gPSAwOwogCVNlcmlhbGl6ZU1ldHJpY3Mgc2Vy aWFsaXplTWV0cmljcyA9IHswfTsKKwlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW9fc3RhcnQ7CiAK IAlBc3NlcnQocGxhbm5lZHN0bXQtPmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKTsKIApAQCAt NTE2LDcgKzUyOSwxOSBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQs IENhY2hlZFBsYW4gKmNwbGFuLAogCQlpbnN0cnVtZW50X29wdGlvbiB8PSBJTlNUUlVNRU5UX1JP V1M7CiAKIAlpZiAoZXMtPmJ1ZmZlcnMpCisJeworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3RvcmFn ZWlvX3N0YXJ0KTsKKworCQkvKgorCQkgKiBJbml0aWFsaXplIGdsb2JhbCB2YXJpYWJsZSBjb3Vu dGVycyBmb3IgcGFyYWxsZWwgcXVlcnkgd29ya2Vycy4KKwkJICogRXZlbiBpZiB0aGUgcXVlcnkg aXMgY2FuY2VsbGVkIG9uIHRoZSB3YXksIHRoZSBFWFBMQUlOIGV4ZWN1dGlvbgorCQkgKiBhbHdh eXMgcGFzc2VzIGhlcmUsIHNvIGl0IGNhbiBiZSBpbml0aWFsaXplZCBoZXJlLgorCQkgKi8KKwkJ cGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsLmluYmxvY2sgPSAwOworCQlwZ1N0b3JhZ2VJT1VzYWdl UGFyYWxsZWwub3V0YmxvY2sgPSAwOworCiAJCWluc3RydW1lbnRfb3B0aW9uIHw9IElOU1RSVU1F TlRfQlVGRkVSUzsKKwl9CiAJaWYgKGVzLT53YWwpCiAJCWluc3RydW1lbnRfb3B0aW9uIHw9IElO U1RSVU1FTlRfV0FMOwogCkBAIC02MDksOCArNjM0LDkgQEAgRXhwbGFpbk9uZVBsYW4oUGxhbm5l ZFN0bXQgKnBsYW5uZWRzdG10LCBDYWNoZWRQbGFuICpjcGxhbiwKIAkvKiBDcmVhdGUgdGV4dHVh bCBkdW1wIG9mIHBsYW4gdHJlZSAqLwogCUV4cGxhaW5QcmludFBsYW4oZXMsIHF1ZXJ5RGVzYyk7 CiAKLQkvKiBTaG93IGJ1ZmZlciBhbmQvb3IgbWVtb3J5IHVzYWdlIGluIHBsYW5uaW5nICovCi0J aWYgKHBlZWtfYnVmZmVyX3VzYWdlKGVzLCBidWZ1c2FnZSkgfHwgbWVtX2NvdW50ZXJzKQorCS8q IFNob3cgYnVmZmVyLCBzdG9yYWdlIEkvTywgYW5kL29yIG1lbW9yeSB1c2FnZSBpbiBwbGFubmlu ZyAqLworCWlmIChwZWVrX2J1ZmZlcl91c2FnZShlcywgYnVmdXNhZ2UpIHx8IHBlZWtfc3RvcmFn ZWlvX3VzYWdlKGVzLCBwbGFuc3RvcmFnZWlvKSB8fAorCQltZW1fY291bnRlcnMpCiAJewogCQlF eHBsYWluT3Blbkdyb3VwKCJQbGFubmluZyIsICJQbGFubmluZyIsIHRydWUsIGVzKTsKIApAQCAt NjIyLDggKzY0OCwxMCBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQs IENhY2hlZFBsYW4gKmNwbGFuLAogCQl9CiAKIAkJaWYgKGJ1ZnVzYWdlKQorCQl7CiAJCQlzaG93 X2J1ZmZlcl91c2FnZShlcywgYnVmdXNhZ2UpOwotCisJCQlzaG93X3N0b3JhZ2Vpb191c2FnZShl cywgcGxhbnN0b3JhZ2Vpbyk7CisJCX0KIAkJaWYgKG1lbV9jb3VudGVycykKIAkJCXNob3dfbWVt b3J5X2NvdW50ZXJzKGVzLCBtZW1fY291bnRlcnMpOwogCkBAIC02ODAsNiArNzA4LDM0IEBAIEV4 cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgQ2FjaGVkUGxhbiAqY3BsYW4s CiAKIAl0b3RhbHRpbWUgKz0gZWxhcHNlZF90aW1lKCZzdGFydHRpbWUpOwogCisJLyogU2hvdyBz dG9yYWdlIEkvTyB1c2FnZSBpbiBleGVjdXRpb24gKi8KKwlpZiAoZXMtPmJ1ZmZlcnMpCisJewor CQlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW87CisKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3Jh Z2Vpbyk7CisJCVN0b3JhZ2VJT1VzYWdlRGlmZigmc3RvcmFnZWlvLCAmc3RvcmFnZWlvX3N0YXJ0 KTsKKwkJU3RvcmFnZUlPVXNhZ2VBZGQoJnN0b3JhZ2VpbywgJnBnU3RvcmFnZUlPVXNhZ2VQYXJh bGxlbCk7CisKKwkJaWYgKHBlZWtfc3RvcmFnZWlvX3VzYWdlKGVzLCAmc3RvcmFnZWlvKSkKKwkJ eworCQkJRXhwbGFpbk9wZW5Hcm91cCgiRXhlY3V0aW9uIiwgIkV4ZWN1dGlvbiIsIHRydWUsIGVz KTsKKworCQkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCXsKKwkJ CQlFeHBsYWluSW5kZW50VGV4dChlcyk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+ c3RyLCAiRXhlY3V0aW9uOlxuIik7CisJCQkJZXMtPmluZGVudCsrOworCQkJfQorCQkJc2hvd19z dG9yYWdlaW9fdXNhZ2UoZXMsICZzdG9yYWdlaW8pOworCisJCQlpZiAoZXMtPmZvcm1hdCA9PSBF WFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJCWVzLT5pbmRlbnQtLTsKKworCQkJRXhwbGFpbkNsb3Nl R3JvdXAoIkV4ZWN1dGlvbiIsICJFeGVjdXRpb24iLCB0cnVlLCBlcyk7CisJCX0KKwl9CisKIAkv KgogCSAqIFdlIG9ubHkgcmVwb3J0IGV4ZWN1dGlvbiB0aW1lIGlmIHdlIGFjdHVhbGx5IHJhbiB0 aGUgcXVlcnkgKHRoYXQgaXMsCiAJICogdGhlIHVzZXIgc3BlY2lmaWVkIEFOQUxZWkUpLCBhbmQg aWYgc3VtbWFyeSByZXBvcnRpbmcgaXMgZW5hYmxlZCAodGhlCkBAIC00MjYwLDYgKzQzMTYsNjUg QEAgc2hvd19idWZmZXJfdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgQnVmZmVyVXNhZ2Ug KnVzYWdlKQogCX0KIH0KIAorLyoKKyAqIFJldHVybiB3aGV0aGVyIHNob3dfc3RvcmFnZWlvX3Vz YWdlIHdvdWxkIGhhdmUgYW55dGhpbmcgdG8gcHJpbnQsIGlmIGdpdmVuCisgKiB0aGUgc2FtZSAn dXNhZ2UnIGRhdGEuICBOb3RlIHRoYXQgd2hlbiB0aGUgZm9ybWF0IGlzIGFueXRoaW5nIG90aGVy IHRoYW4KKyAqIHRleHQsIHdlIHByaW50IGV2ZW4gaWYgdGhlIGNvdW50ZXJzIGFyZSBhbGwgemVy b2VzLgorICovCitzdGF0aWMgYm9vbAorcGVla19zdG9yYWdlaW9fdXNhZ2UoRXhwbGFpblN0YXRl ICplcywgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKQoreworCWlmICh1c2FnZSA9PSBOVUxM KQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIFNpbmNlIHNob3dpbmcgb25seSB0aGUgSS9P IGV4Y2x1ZGluZyBBSU8gd29ya2VycyB1bmRlcmVzdGltYXRlcyB0aGUKKwkgKiB0b3RhbCBJL08s IHRyZWF0IHRoaXMgY2FzZSBhcyBoYXZpbmcgbm90aGluZyB0byBwcmludC4KKwkgKi8KKwlpZiAo cGdhaW9fd29ya2Vyc19lbmFibGVkKCkpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChlcy0+Zm9y bWF0ICE9IEVYUExBSU5fRk9STUFUX1RFWFQpCisJCXJldHVybiB0cnVlOworCisJcmV0dXJuIHVz YWdlLT5pbmJsb2NrID4gMCB8fCB1c2FnZS0+b3V0YmxvY2sgPiAwOworfQorCisvKgorICogU2hv dyBzdG9yYWdlIEkvTyB1c2FnZS4KKyAqLworc3RhdGljIHZvaWQKK3Nob3dfc3RvcmFnZWlvX3Vz YWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSkKK3sKKwkv KgorCSAqIFNpbmNlIHNob3dpbmcgb25seSB0aGUgSS9PIGV4Y2x1ZGluZyBBSU8gd29ya2VycyB1 bmRlcmVzdGltYXRlcyB0aGUKKwkgKiB0b3RhbCBJL08sIGRvIG5vdCBzaG93IGFueXRoaW5nLgor CSAqLworCWlmIChwZ2Fpb193b3JrZXJzX2VuYWJsZWQoKSkKKwkJcmV0dXJuOworCisJaWYgKGVz LT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwl7CisJCS8qIFNob3cgb25seSBwb3Np dGl2ZSBjb3VudGVyIHZhbHVlcy4gKi8KKwkJaWYgKHVzYWdlLT5pbmJsb2NrIDw9IDAgJiYgdXNh Z2UtPm91dGJsb2NrIDw9IDApCisJCQlyZXR1cm47CisKKwkJRXhwbGFpbkluZGVudFRleHQoZXMp OworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJTdG9yYWdlIEkvTzoiKTsKKwkJ YXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiIHJlYWQ9JWxkIHRpbWVzIiwgKGxvbmcpIHVzYWdl LT5pbmJsb2NrKTsKKwkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAiIHdyaXRlPSVsZCB0aW1l cyIsIChsb25nKSB1c2FnZS0+b3V0YmxvY2spOworCisJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGVz LT5zdHIsICdcbicpOworCX0KKwllbHNlCisJeworCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJT dG9yYWdlIEkvTyBSZWFkIiwgTlVMTCwKKwkJCQkJCQkgICB1c2FnZS0+aW5ibG9jaywgZXMpOwor CQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJTdG9yYWdlIEkvTyBSZWFkIiwgTlVMTCwKKwkJCQkJ CQkgICB1c2FnZS0+b3V0YmxvY2ssIGVzKTsKKwl9Cit9CisKIC8qCiAgKiBTaG93IFdBTCB1c2Fn ZSBkZXRhaWxzLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXggYmY3ZDJiMjMwOS4uNjhi ODdhYWIwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtNTgzLDYgKzU4Myw4IEBAIEV4cGxh aW5FeGVjdXRlUXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBF eHBsYWluU3RhdGUgKmVzLAogCWluc3RyX3RpbWUJcGxhbmR1cmF0aW9uOwogCUJ1ZmZlclVzYWdl IGJ1ZnVzYWdlX3N0YXJ0LAogCQkJCWJ1ZnVzYWdlOworCVN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2Vp bywKKwkJCQlzdG9yYWdlaW9fc3RhcnQ7CiAJTWVtb3J5Q29udGV4dENvdW50ZXJzIG1lbV9jb3Vu dGVyczsKIAlNZW1vcnlDb250ZXh0IHBsYW5uZXJfY3R4ID0gTlVMTDsKIAlNZW1vcnlDb250ZXh0 IHNhdmVkX2N0eCA9IE5VTEw7CkBAIC01OTksNyArNjAxLDExIEBAIEV4cGxhaW5FeGVjdXRlUXVl cnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUg KmVzLAogCX0KIAogCWlmIChlcy0+YnVmZmVycykKKwl7CiAJCWJ1ZnVzYWdlX3N0YXJ0ID0gcGdC dWZmZXJVc2FnZTsKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpb19zdGFydCk7CisJfQor CiAJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuc3RhcnQpOwogCiAJLyogTG9vayBpdCB1cCBp biB0aGUgaGFzaCB0YWJsZSAqLwpAQCAtNjQ5LDYgKzY1NSw3IEBAIEV4cGxhaW5FeGVjdXRlUXVl cnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUg KmVzLAogCXsKIAkJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CiAJ CUJ1ZmZlclVzYWdlQWNjdW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1c2Fn ZV9zdGFydCk7CisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9yYWdlaW8pOwogCX0KIAogCXBsYW5f bGlzdCA9IGNwbGFuLT5zdG10X2xpc3Q7CkBAIC02NjIsNiArNjY5LDcgQEAgRXhwbGFpbkV4ZWN1 dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5T dGF0ZSAqZXMsCiAJCQlFeHBsYWluT25lUGxhbihwc3RtdCwgY3BsYW4sIGVudHJ5LT5wbGFuc291 cmNlLCBxdWVyeV9pbmRleCwKIAkJCQkJCSAgIGludG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFt TEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKIAkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVm ZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJCQkJICAgZXMtPmJ1ZmZlcnMgPyAmc3RvcmFn ZWlvIDogTlVMTCwKIAkJCQkJCSAgIGVzLT5tZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7 CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGlsaXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywg ZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpp bmRleCAyYjlkNTQ4Y2RlLi5mNzcxMjRmOGM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBh cmFsbGVsLmMKQEAgLTczNyw3ICs3MzcsNyBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxf aW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCQlX YWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2gocHZzLT5wY3h0KTsKIAogCQlmb3IgKGludCBp ID0gMDsgaSA8IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7IGkrKykKLQkJCUluc3RyQWNj dW1QYXJhbGxlbFF1ZXJ5KCZwdnMtPmJ1ZmZlcl91c2FnZVtpXSwgJnB2cy0+d2FsX3VzYWdlW2ld KTsKKwkJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwdnMtPmJ1ZmZlcl91c2FnZVtpXSwgTlVM TCwgJnB2cy0+d2FsX3VzYWdlW2ldKTsKIAl9CiAKIAkvKgpAQCAtMTA4Myw3ICsxMDgzLDcgQEAg cGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCWVy cm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNr IGJ1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBh cmFsbGVsUXVlcnkoKTsKKwlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qIFBy b2Nlc3MgaW5kZXhlcyB0byBwZXJmb3JtIHZhY3V1bS9jbGVhbnVwICovCiAJcGFyYWxsZWxfdmFj dXVtX3Byb2Nlc3Nfc2FmZV9pbmRleGVzKCZwdnMpOwpAQCAtMTA5MSw4ICsxMDkxLDggQEAgcGFy YWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJl cG9ydCBidWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZm ZXJfdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX1ZBQ1VVTV9LRVlfQlVGRkVS X1VTQUdFLCBmYWxzZSk7CiAJd2FsX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExF TF9WQUNVVU1fS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgm YnVmZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbF91c2FnZVtQ YXJhbGxlbFdvcmtlck51bWJlcl0pOworCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVyX3Vz YWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbF91c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0sIE5VTEwpOwogCiAJLyogUmVwb3J0IGFueSByZW1haW5pbmcgY29z dC1iYXNlZCB2YWN1dW0gZGVsYXkgdGltZSAqLwogCWlmICh0cmFja19jb3N0X2RlbGF5X3RpbWlu ZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggMzljOTkwYWU2My4uY2Y0NjYz MzEwMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTY1LDYgKzY1LDcgQEAK ICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAw MDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJVF9JTlNUUlVNRU5UQVRJT04gVUlOVDY0 Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmluZSBQQVJBTExFTF9LRVlfV0FMX1VTQUdF CQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBBKQorI2RlZmluZSBQQVJBTExFTF9LRVlf U1RPUkFHRUlPX1VTQUdFCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQikKIAogI2RlZmlu ZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgogCkBAIC02MDksNiArNjEwLDcgQEAg RXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRl LAogCWNoYXIJICAgKnBzdG10X3NwYWNlOwogCWNoYXIJICAgKnBhcmFtbGlzdGluZm9fc3BhY2U7 CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOworCVN0b3JhZ2VJT1VzYWdlICpzdG9yYWdl aW91c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZV9zcGFjZTsKIAlTaGFyZWRFeGVj dXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9uID0gTlVMTDsKIAlTaGFyZWRKaXRJ bnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVtZW50YXRpb24gPSBOVUxMOwpAQCAtNjkwLDYgKzY5 MiwxMyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRl ICplc3RhdGUsCiAJCQkJCQkgICBtdWxfc2l6ZShzaXplb2YoV2FsVXNhZ2UpLCBwY3h0LT5ud29y a2VycykpOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKIAor CS8qCisJICogU2FtZSB0aGluZyBmb3IgU3RvcmFnZUlPVXNhZ2UuCisJICovCisJc2htX3RvY19l c3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLAorCQkJCQkJICAgbXVsX3NpemUoc2l6ZW9m KFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKKwlzaG1fdG9jX2VzdGltYXRlX2tl eXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkvKiBFc3RpbWF0ZSBzcGFjZSBmb3IgdHVwbGUg cXVldWVzLiAqLwogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwKIAkJ CQkJCSAgIG11bF9zaXplKFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUsIHBjeHQtPm53b3JrZXJz KSk7CkBAIC03ODUsNiArNzk0LDEyIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAq cGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBB UkFMTEVMX0tFWV9XQUxfVVNBR0UsIHdhbHVzYWdlX3NwYWNlKTsKIAlwZWktPndhbF91c2FnZSA9 IHdhbHVzYWdlX3NwYWNlOwogCisJLyogU2FtZSBmb3IgU3RvcmFnZUlPVXNhZ2UuICovCisJc3Rv cmFnZWlvdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywKKwkJCQkJCQkJ CQkJbXVsX3NpemUoc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKKwlz aG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9TVE9SQUdFSU9fVVNBR0UsIHN0 b3JhZ2Vpb3VzYWdlX3NwYWNlKTsKKwlwZWktPnN0b3JhZ2Vpb191c2FnZSA9IHN0b3JhZ2Vpb3Vz YWdlX3NwYWNlOworCiAJLyogU2V0IHVwIHRoZSB0dXBsZSBxdWV1ZXMgdGhhdCB0aGUgd29ya2Vy cyB3aWxsIHdyaXRlIGludG8uICovCiAJcGVpLT50cXVldWUgPSBFeGVjUGFyYWxsZWxTZXR1cFR1 cGxlUXVldWVzKHBjeHQsIGZhbHNlKTsKIApAQCAtMTE5MCwxMSArMTIwNSwxMSBAQCBFeGVjUGFy YWxsZWxGaW5pc2goUGFyYWxsZWxFeGVjdXRvckluZm8gKnBlaSkKIAlXYWl0Rm9yUGFyYWxsZWxX b3JrZXJzVG9GaW5pc2gocGVpLT5wY3h0KTsKIAogCS8qCi0JICogTmV4dCwgYWNjdW11bGF0ZSBi dWZmZXIvV0FMIHVzYWdlLiAgKFRoaXMgbXVzdCB3YWl0IGZvciB0aGUgd29ya2VycyB0bwotCSAq IGZpbmlzaCwgb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCisJICogTmV4dCwgYWNj dW11bGF0ZSBidWZmZXIsIFdBTCwgYW5kIFN0b3JhZ2UgSS9PIHVzYWdlLiAoVGhpcyBtdXN0IHdh aXQKKwkgKiBmb3IgdGhlIHdvcmtlcnMgdG8gZmluaXNoLCBvciB3ZSBtaWdodCBnZXQgaW5jb21w bGV0ZSBkYXRhLikKIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbndvcmtlcnM7IGkrKykKLQkJSW5z dHJBY2N1bVBhcmFsbGVsUXVlcnkoJnBlaS0+YnVmZmVyX3VzYWdlW2ldLCAmcGVpLT53YWxfdXNh Z2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcGVpLT5idWZmZXJfdXNhZ2VbaV0s ICZwZWktPnN0b3JhZ2Vpb191c2FnZVtpXSwgJnBlaS0+d2FsX3VzYWdlW2ldKTsKIAogCXBlaS0+ ZmluaXNoZWQgPSB0cnVlOwogfQpAQCAtMTQzNyw2ICsxNDUyLDggQEAgUGFyYWxsZWxRdWVyeU1h aW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogewogCUZpeGVkUGFyYWxsZWxFeGVj dXRvclN0YXRlICpmcGVzOwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNhZ2U7CisJU3RvcmFnZUlP VXNhZ2UgKnN0b3JhZ2Vpb191c2FnZTsKKwlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW9fdXNhZ2Vf c3RhcnQ7CiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwogCURlc3RSZWNlaXZlciAqcmVjZWl2ZXI7 CiAJUXVlcnlEZXNjICAqcXVlcnlEZXNjOwpAQCAtMTQ5MSwxMyArMTUwOCwxNCBAQCBQYXJhbGxl bFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJRXhlY1NldFR1cGxl Qm91bmQoZnBlcy0+dHVwbGVzX25lZWRlZCwgcXVlcnlEZXNjLT5wbGFuc3RhdGUpOwogCiAJLyoK LQkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlci9XQUwgdXNhZ2UgZHVyaW5nIHF1ZXJ5IGV4ZWN1 dGlvbi4KKwkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciwgV0FMLCBhbmQgU3RvcmFnZUkvTyB1 c2FnZSBkdXJpbmcgcXVlcnkKKwkgKiBleGVjdXRpb24uCiAJICoKIAkgKiBXZSBkbyB0aGlzIGFm dGVyIHN0YXJ0aW5nIHVwIHRoZSBleGVjdXRvciB0byBtYXRjaCB3aGF0IGhhcHBlbnMgaW4gdGhl CiAJICogbGVhZGVyLCB3aGljaCBhbHNvIGRvZXNuJ3QgY291bnQgYnVmZmVyIGFjY2Vzc2VzIGFu ZCBXQUwgYWN0aXZpdHkgdGhhdAogCSAqIG9jY3VyIGR1cmluZyBleGVjdXRvciBzdGFydHVwLgog CSAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoJnN0b3JhZ2Vpb191c2FnZV9zdGFydCk7CiAKIAkvKgogCSAqIFJ1biB0aGUgcGxhbi4gIElm IHdlIHNwZWNpZmllZCBhIHR1cGxlIGJvdW5kLCBiZSBjYXJlZnVsIG5vdCB0byBkZW1hbmQKQEAg LTE1MTAsMTEgKzE1MjgsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywg c2htX3RvYyAqdG9jKQogCS8qIFNodXQgZG93biB0aGUgZXhlY3V0b3IgKi8KIAlFeGVjdXRvckZp bmlzaChxdWVyeURlc2MpOwogCi0JLyogUmVwb3J0IGJ1ZmZlci9XQUwgdXNhZ2UgZHVyaW5nIHBh cmFsbGVsIGV4ZWN1dGlvbi4gKi8KKwkvKiBSZXBvcnQgYnVmZmVyLCBXQUwsIGFuZCBzdG9yYWdl IEkvTyB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uLiAqLwogCWJ1ZmZlcl91c2FnZSA9 IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwor CXN0b3JhZ2Vpb191c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1NUT1JB R0VJT19VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFS QUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwogCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVm ZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbF91c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0pOworCQkJCQkJICAmc3RvcmFnZWlvX3VzYWdlW1BhcmFsbGVsV29y a2VyTnVtYmVyXSwKKwkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCisJ CQkJCQkgICZzdG9yYWdlaW9fdXNhZ2Vfc3RhcnQpOwogCiAJLyogUmVwb3J0IGluc3RydW1lbnRh dGlvbiBkYXRhIGlmIGFueSBpbnN0cnVtZW50YXRpb24gb3B0aW9ucyBhcmUgc2V0LiAqLwogCWlm IChpbnN0cnVtZW50YXRpb24gIT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYwppbmRl eCA1NmU2MzVmNDcwLi45Y2IwZTkzMDBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9pbnN0cnVtZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jCkBA IC0xMywxNiArMTMsMjIgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRl IDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgImV4ZWN1 dG9yL2luc3RydW1lbnQuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2Fpb19zdWJzeXMuaCIKIAogQnVm ZmVyVXNhZ2UgcGdCdWZmZXJVc2FnZTsKIHN0YXRpYyBCdWZmZXJVc2FnZSBzYXZlX3BnQnVmZmVy VXNhZ2U7CisKK1N0b3JhZ2VJT1VzYWdlIHBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbDsJLyogb25s eSBjb3VudCBwYXJhbGxlbCB3b3JrZXJzJworCQkJCQkJCQkJCQkgKiB1c2FnZSAqLwogV2FsVXNh Z2UJcGdXYWxVc2FnZTsKIHN0YXRpYyBXYWxVc2FnZSBzYXZlX3BnV2FsVXNhZ2U7CiAKIHN0YXRp YyB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1ZmZlclVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVzYWdl ICphZGQpOwordm9pZAkJU3RvcmFnZUlPVXNhZ2VBZGQoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29u c3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCk7CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2Fn ZSAqZHN0LCBXYWxVc2FnZSAqYWRkKTsKIAogCkBAIC0xOTcsMjcgKzIwMyw0NyBAQCBJbnN0ckFn Z05vZGUoSW5zdHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCiAvKiBu b3RlIGN1cnJlbnQgdmFsdWVzIGR1cmluZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCiB2 b2lkCi1JbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSh2b2lkKQorSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlKQogewogCXNhdmVfcGdCdWZmZXJVc2Fn ZSA9IHBnQnVmZmVyVXNhZ2U7CiAJc2F2ZV9wZ1dhbFVzYWdlID0gcGdXYWxVc2FnZTsKKworCWlm IChzdG9yYWdlaW91c2FnZSAhPSBOVUxMKQorCQlHZXRTdG9yYWdlSU9Vc2FnZShzdG9yYWdlaW91 c2FnZSk7CiB9CiAKIC8qIHJlcG9ydCB1c2FnZSBhZnRlciBwYXJhbGxlbCBleGVjdXRvciBzaHV0 ZG93biAqLwogdm9pZAotSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2Fn ZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQorSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdl ICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2Fs dXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZV9zdGFydCkKIHsKIAltZW1zZXQo YnVmdXNhZ2UsIDAsIHNpemVvZihCdWZmZXJVc2FnZSkpOwogCUJ1ZmZlclVzYWdlQWNjdW1EaWZm KGJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2FnZSwgJnNhdmVfcGdCdWZmZXJVc2FnZSk7CisKKwlpZiAo c3RvcmFnZWlvdXNhZ2UgIT0gTlVMTCAmJiBzdG9yYWdlaW91c2FnZV9zdGFydCAhPSBOVUxMKQor CXsKKwkJc3RydWN0IFN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2Vpb3VzYWdlX2VuZDsKKworCQlHZXRT dG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlvdXNhZ2VfZW5kKTsKKworCQltZW1zZXQoc3RvcmFnZWlv dXNhZ2UsIDAsIHNpemVvZihTdG9yYWdlSU9Vc2FnZSkpOworCQlTdG9yYWdlSU9Vc2FnZUFjY3Vt RGlmZihzdG9yYWdlaW91c2FnZSwgJnN0b3JhZ2Vpb3VzYWdlX2VuZCwgc3RvcmFnZWlvdXNhZ2Vf c3RhcnQpOworCisJCWVyZXBvcnQoREVCVUcxLAorCQkJCShlcnJtc2coIlBhcmFsbGVsIHdvcmtl cidzIHN0b3JhZ2UgSS9PIHRpbWVzOiBpbmJsb2NrOiVsZCBvdXRibG9jazolbGQiLAorCQkJCQkJ c3RvcmFnZWlvdXNhZ2UtPmluYmxvY2ssIHN0b3JhZ2Vpb3VzYWdlLT5vdXRibG9jaykpKTsKKwl9 CiAJbWVtc2V0KHdhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKIAlXYWxVc2FnZUFjY3Vt RGlmZih3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZzYXZlX3BnV2FsVXNhZ2UpOwogfQogCiAvKiBh Y2N1bXVsYXRlIHdvcmsgZG9uZSBieSB3b3JrZXJzIGluIGxlYWRlcidzIHN0YXRzICovCiB2b2lk Ci1JbnN0ckFjY3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdl ICp3YWx1c2FnZSkKK0luc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2Fn ZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpCiB7 CiAJQnVmZmVyVXNhZ2VBZGQoJnBnQnVmZmVyVXNhZ2UsIGJ1ZnVzYWdlKTsKKworCWlmIChzdG9y YWdlaW91c2FnZSAhPSBOVUxMKQorCQlTdG9yYWdlSU9Vc2FnZUFkZCgmcGdTdG9yYWdlSU9Vc2Fn ZVBhcmFsbGVsLCBzdG9yYWdlaW91c2FnZSk7CiAJV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdh bHVzYWdlKTsKIH0KIApAQCAtMjczLDYgKzI5OSw1MyBAQCBCdWZmZXJVc2FnZUFjY3VtRGlmZihC dWZmZXJVc2FnZSAqZHN0LAogCQkJCQkJICBhZGQtPnRlbXBfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+ dGVtcF9ibGtfd3JpdGVfdGltZSk7CiB9CiAKKy8qIGhlbHBlciBmdW5jdGlvbnMgZm9yIFN0b3Jh Z2VJT1VzYWdlIHVzYWdlIGFjY3VtdWxhdGlvbiAqLwordm9pZAorU3RvcmFnZUlPVXNhZ2VBZGQo U3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCkKK3sKKwlkc3Qt PmluYmxvY2sgKz0gYWRkLT5pbmJsb2NrOworCWRzdC0+b3V0YmxvY2sgKz0gYWRkLT5vdXRibG9j azsKK30KKworLyogZHN0ICs9IGFkZCAtIHN1YiAqLwordm9pZAorU3RvcmFnZUlPVXNhZ2VBY2N1 bURpZmYoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCwgY29u c3QgU3RvcmFnZUlPVXNhZ2UgKnN1YikKK3sKKwlkc3QtPmluYmxvY2sgKz0gYWRkLT5pbmJsb2Nr IC0gc3ViLT5pbmJsb2NrOworCWRzdC0+b3V0YmxvY2sgKz0gYWRkLT5vdXRibG9jayAtIHN1Yi0+ b3V0YmxvY2s7Cit9CisKKy8qIGRzdCAtPSBzdWIgKi8KK3ZvaWQKK1N0b3JhZ2VJT1VzYWdlRGlm ZihTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqc3ViKQoreworCWRz dC0+aW5ibG9jayAtPSBzdWItPmluYmxvY2s7CisJZHN0LT5vdXRibG9jayAtPSBzdWItPm91dGJs b2NrOworfQorCisvKiBDYXB0dXJlcyB0aGUgY3VycmVudCBzdG9yYWdlIEkvTyB1c2FnZSBzdGF0 aXN0aWNzICovCit2b2lkCitHZXRTdG9yYWdlSU9Vc2FnZShTdG9yYWdlSU9Vc2FnZSAqdXNhZ2Up Cit7CisJc3RydWN0IHJ1c2FnZSBydXNhZ2U7CisKKwkvKgorCSAqIFNpbmNlIGdldHRpbmcgdGhl IEkvTyBleGNsdWRpbmcgQUlPIHdvcmtlcnMgdW5kZXJlc3RpbWF0ZXMgdGhlIHRvdGFsCisJICog SS9PLCBkb24ndCBnZXQgdGhlIEkvTyB1c2FnZSBzdGF0aXN0aWNzIHdoZW4gQUlPIHdvcmtlciBp cyBlbmFibGVkLgorCSAqLworCWlmIChwZ2Fpb193b3JrZXJzX2VuYWJsZWQoKSkKKwkJcmV0dXJu OworCisJaWYgKGdldHJ1c2FnZShSVVNBR0VfU0VMRiwgJnJ1c2FnZSkpCisJeworCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lTVEVNX0VSUk9SKSwKKwkJCQkgZXJybXNn KCJnZXRydXNhZ2UoKSBmYWlsZWQ6ICVtIikpKTsKKwl9CisJdXNhZ2UtPmluYmxvY2sgPSBydXNh Z2UucnVfaW5ibG9jazsKKwl1c2FnZS0+b3V0YmxvY2sgPSBydXNhZ2UucnVfb3VibG9jazsKK30K KwogLyogaGVscGVyIGZ1bmN0aW9ucyBmb3IgV0FMIHVzYWdlIGFjY3VtdWxhdGlvbiAqLwogc3Rh dGljIHZvaWQKIFdhbFVzYWdlQWRkKFdhbFVzYWdlICpkc3QsIFdhbFVzYWdlICphZGQpCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9leHBsYWluLmgKaW5kZXggMzg3ODM5ZWI1ZC4uMGJlY2RlMzMxOSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaApAQCAtNzAsNiArNzAsNyBAQCBleHRlcm4gdm9pZCBFeHBsYWluT25lUGxhbihQ bGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIENhY2hlZFBsYW4gKmNwbGFuLAogCQkJCQkJICAgUGFy YW1MaXN0SW5mbyBwYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAg Y29uc3QgaW5zdHJfdGltZSAqcGxhbmR1cmF0aW9uLAogCQkJCQkJICAgY29uc3QgQnVmZmVyVXNh Z2UgKmJ1ZnVzYWdlLAorCQkJCQkJICAgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnBsYW5zdG9yYWdl aW8sCiAJCQkJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycyk7 CiAKIGV4dGVybiB2b2lkIEV4cGxhaW5QcmludFBsYW4oc3RydWN0IEV4cGxhaW5TdGF0ZSAqZXMs IFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmgKaW5k ZXggNWU3MTA2YzM5Ny4uNWM4YmM3NmM1MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY1BhcmFsbGVsLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1BhcmFsbGVs LmgKQEAgLTI2LDYgKzI2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxFeGVjdXRvckluZm8K IAlQbGFuU3RhdGUgICpwbGFuc3RhdGU7CQkvKiBwbGFuIHN1YnRyZWUgd2UncmUgcnVubmluZyBp biBwYXJhbGxlbCAqLwogCVBhcmFsbGVsQ29udGV4dCAqcGN4dDsJCS8qIHBhcmFsbGVsIGNvbnRl eHQgd2UncmUgdXNpbmcgKi8KIAlCdWZmZXJVc2FnZSAqYnVmZmVyX3VzYWdlOwkvKiBwb2ludHMg dG8gYnVmdXNhZ2UgYXJlYSBpbiBEU00gKi8KKwlTdG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvX3Vz YWdlOwkvKiBwb2ludHMgdG8gc3RvcmFnZWlvIHVzYWdlIGFyZWEgaW4KKwkJCQkJCQkJCQkgKiBE U00gKi8KIAlXYWxVc2FnZSAgICp3YWxfdXNhZ2U7CQkvKiB3YWx1c2FnZSBhcmVhIGluIERTTSAq LwogCVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50YXRpb247IC8qIG9w dGlvbmFsICovCiAJc3RydWN0IFNoYXJlZEppdEluc3RydW1lbnRhdGlvbiAqaml0X2luc3RydW1l bnRhdGlvbjsJLyogb3B0aW9uYWwgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2luc3RydW1lbnQuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2luc3RydW1lbnQuaAppbmRleCAw MzY1M2FiNmM2Li41MzkyZjA1MDIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9p bnN0cnVtZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCkBAIC00 MSw2ICs0MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBCdWZmZXJVc2FnZQogCWluc3RyX3RpbWUJdGVt cF9ibGtfd3JpdGVfdGltZTsJLyogdGltZSBzcGVudCB3cml0aW5nIHRlbXAgYmxvY2tzICovCiB9 IEJ1ZmZlclVzYWdlOwogCit0eXBlZGVmIHN0cnVjdCBTdG9yYWdlSU9Vc2FnZQoreworCWxvbmcJ CWluYmxvY2s7CQkvKiAjIG9mIHRpbWVzIHRoZSBmaWxlIHN5c3RlbSBoYWQgdG8gcGVyZm9ybQor CQkJCQkJCQkgKiBpbnB1dCAqLworCWxvbmcJCW91dGJsb2NrOwkJLyogIyBvZiB0aW1lcyB0aGUg ZmlsZSBzeXN0ZW0gaGFkIHRvIHBlcmZvcm0KKwkJCQkJCQkJICogb3V0cHV0ICovCit9IFN0b3Jh Z2VJT1VzYWdlOworCiAvKgogICogV2FsVXNhZ2UgdHJhY2tzIG9ubHkgV0FMIGFjdGl2aXR5IGxp a2UgV0FMIHJlY29yZHMgZ2VuZXJhdGlvbiB0aGF0CiAgKiBjYW4gYmUgbWVhc3VyZWQgcGVyIHF1 ZXJ5IGFuZCBpcyBkaXNwbGF5ZWQgYnkgRVhQTEFJTiBjb21tYW5kLApAQCAtMTAwLDYgKzEwOCw3 IEBAIHR5cGVkZWYgc3RydWN0IFdvcmtlckluc3RydW1lbnRhdGlvbgogfSBXb3JrZXJJbnN0cnVt ZW50YXRpb247CiAKIGV4dGVybiBQR0RMTElNUE9SVCBCdWZmZXJVc2FnZSBwZ0J1ZmZlclVzYWdl OworZXh0ZXJuIFBHRExMSU1QT1JUIFN0b3JhZ2VJT1VzYWdlIHBnU3RvcmFnZUlPVXNhZ2VQYXJh bGxlbDsKIGV4dGVybiBQR0RMTElNUE9SVCBXYWxVc2FnZSBwZ1dhbFVzYWdlOwogCiBleHRlcm4g SW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jKGludCBuLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25z LApAQCAtMTEwLDExICsxMTksMTYgQEAgZXh0ZXJuIHZvaWQgSW5zdHJTdG9wTm9kZShJbnN0cnVt 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 NC4uMjcwZGMzN2M4NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydC93aW4zMi9zeXMvcmVz b3VyY2UuaAorKysgYi9zcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oCkBAIC0x Myw2ICsxMyw4IEBAIHN0cnVjdCBydXNhZ2UKIHsKIAlzdHJ1Y3QgdGltZXZhbCBydV91dGltZTsJ LyogdXNlciB0aW1lIHVzZWQgKi8KIAlzdHJ1Y3QgdGltZXZhbCBydV9zdGltZTsJLyogc3lzdGVt IHRpbWUgdXNlZCAqLworCWxvbmcJCXJ1X2luYmxvY2s7CQkvKiBDdXJyZW50bHkgYWx3YXlzIDAg Zm9yIFdpbmRvd3MgKi8KKwlsb25nCQlydV9vdWJsb2NrOwkJLyogQ3VycmVudGx5IGFsd2F5cyAw IGZvciBXaW5kb3dzICovCiB9OwogCiBleHRlcm4gaW50CWdldHJ1c2FnZShpbnQgd2hvLCBzdHJ1 Y3QgcnVzYWdlICpydXNhZ2UpOwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvd2luMzJnZXRydXNhZ2Uu YyBiL3NyYy9wb3J0L3dpbjMyZ2V0cnVzYWdlLmMKaW5kZXggNmExOTdjOTQzNy4uMjdmMGVhMDUy YSAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvd2luMzJnZXRydXNhZ2UuYworKysgYi9zcmMvcG9ydC93 aW4zMmdldHJ1c2FnZS5jCkBAIC01Nyw1ICs1Nyw5IEBAIGdldHJ1c2FnZShpbnQgd2hvLCBzdHJ1 Y3QgcnVzYWdlICpydXNhZ2UpCiAJcnVzYWdlLT5ydV91dGltZS50dl9zZWMgPSBsaS5RdWFkUGFy dCAvIDEwMDAwMDBMOwogCXJ1c2FnZS0+cnVfdXRpbWUudHZfdXNlYyA9IGxpLlF1YWRQYXJ0ICUg MTAwMDAwMEw7CiAKKwkvKiBDdXJyZW50bHkgYWx3YXlzIDAgZm9yIFdpbmRvd3MgKi8KKwlydXNh Z2UtPnJ1X2luYmxvY2sgPSAwOworCXJ1c2FnZS0+cnVfb3VibG9jayA9IDA7CisKIAlyZXR1cm4g MDsKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbl8xLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbl8xLm91dApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMTVjZTE4MThiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0CkBAIC0wLDAgKzEsODQ5IEBA CistLQorLS0gRVhQTEFJTgorLS0KKy0tIFRoZXJlIGFyZSBtYW55IHRlc3QgY2FzZXMgZWxzZXdo ZXJlIHRoYXQgdXNlIEVYUExBSU4gYXMgYSB2ZWhpY2xlIGZvcgorLS0gY2hlY2tpbmcgc29tZXRo aW5nIGVsc2UgKHVzdWFsbHkgcGxhbm5lciBiZWhhdmlvcikuICBUaGlzIGZpbGUgaXMKKy0tIGNv bmNlcm5lZCB3aXRoIHRlc3RpbmcgRVhQTEFJTiBpbiBpdHMgb3duIHJpZ2h0LgorLS0KKy0tIFRv IHByb2R1Y2Ugc3RhYmxlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQsIGl0J3MgdXN1YWxseSBuZWNl c3NhcnkgdG8KKy0tIGlnbm9yZSBkZXRhaWxzIHN1Y2ggYXMgZXhhY3QgY29zdHMgb3Igcm93IGNv dW50cy4gIFRoZXNlIGZpbHRlcgorLS0gZnVuY3Rpb25zIHJlcGxhY2UgY2hhbmdlYWJsZSBvdXRw dXQgZGV0YWlscyB3aXRoIGZpeGVkIHN0cmluZ3MuCitjcmVhdGUgZnVuY3Rpb24gZXhwbGFpbl9m aWx0ZXIodGV4dCkgcmV0dXJucyBzZXRvZiB0ZXh0CitsYW5ndWFnZSBwbHBnc3FsIGFzCiskJAor ZGVjbGFyZQorICAgIGxuIHRleHQ7CitiZWdpbgorICAgIGZvciBsbiBpbiBleGVjdXRlICQxCisg ICAgbG9vcAorICAgICAgICAtLSBSZXBsYWNlIGFueSBudW1lcmljIHdvcmQgd2l0aCBqdXN0ICdO JworICAgICAgICBsbiA6PSByZWdleHBfcmVwbGFjZShsbiwgJy0/XG1cZCtcTScsICdOJywgJ2cn KTsKKyAgICAgICAgLS0gSW4gc29ydCBvdXRwdXQsIHRoZSBhYm92ZSB3b24ndCBtYXRjaCB1bml0 cy1zdWZmaXhlZCBudW1iZXJzCisgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAnXG1c ZCtrQicsICdOa0InLCAnZycpOworICAgICAgICAtLSBJZ25vcmUgdGV4dC1tb2RlIGJ1ZmZlcnMg b3V0cHV0IGJlY2F1c2UgaXQgdmFyaWVzIGRlcGVuZGluZworICAgICAgICAtLSBvbiB0aGUgc3lz dGVtIHN0YXRlCisgICAgICAgIENPTlRJTlVFIFdIRU4gKGxuIH4gJyArQnVmZmVyczogLionKTsK KyAgICAgICAgLS0gSWdub3JlIHRleHQtbW9kZSAiUGxhbm5pbmc6IiBsaW5lIGJlY2F1c2Ugd2hl dGhlciBpdCdzIG91dHB1dAorICAgICAgICAtLSB2YXJpZXMgZGVwZW5kaW5nIG9uIHRoZSBzeXN0 ZW0gc3RhdGUKKyAgICAgICAgQ09OVElOVUUgV0hFTiAobG4gPSAnUGxhbm5pbmc6Jyk7CisgICAg ICAgIHJldHVybiBuZXh0IGxuOworICAgIGVuZCBsb29wOworZW5kOworJCQ7CistLSBUbyBwcm9k dWNlIHZhbGlkIEpTT04gb3V0cHV0LCByZXBsYWNlIG51bWJlcnMgd2l0aCAiMCIgb3IgIjAuMCIg bm90ICJOIgorY3JlYXRlIGZ1bmN0aW9uIGV4cGxhaW5fZmlsdGVyX3RvX2pzb24odGV4dCkgcmV0 dXJucyBqc29uYgorbGFuZ3VhZ2UgcGxwZ3NxbCBhcworJCQKK2RlY2xhcmUKKyAgICBkYXRhIHRl eHQgOj0gJyc7CisgICAgbG4gdGV4dDsKK2JlZ2luCisgICAgZm9yIGxuIGluIGV4ZWN1dGUgJDEK KyAgICBsb29wCisgICAgICAgIC0tIFJlcGxhY2UgYW55IG51bWVyaWMgd29yZCB3aXRoIGp1c3Qg JzAnCisgICAgICAgIGxuIDo9IHJlZ2V4cF9yZXBsYWNlKGxuLCAnXG1cZCtcTScsICcwJywgJ2cn KTsKKyAgICAgICAgZGF0YSA6PSBkYXRhIHx8IGxuOworICAgIGVuZCBsb29wOworICAgIHJldHVy biBkYXRhOjpqc29uYjsKK2VuZDsKKyQkOworLS0gRGlzYWJsZSBKSVQsIG9yIHdlJ2xsIGdldCBk aWZmZXJlbnQgb3V0cHV0IG9uIG1hY2hpbmVzIHdoZXJlIHRoYXQncyBiZWVuCistLSBmb3JjZWQg b24KK3NldCBqaXQgPSBvZmY7CistLSBTaW1pbGFybHksIGRpc2FibGUgdHJhY2tfaW9fdGltaW5n LCB0byBhdm9pZCBvdXRwdXQgZGlmZmVyZW5jZXMgd2hlbgorLS0gZW5hYmxlZC4KK3NldCB0cmFj a19pb190aW1pbmcgPSBvZmY7CistLSBTaW1wbGUgY2FzZXMKK3NlbGVjdCBleHBsYWluX2ZpbHRl cignZXhwbGFpbiBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAg ICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9u IGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKygxIHJvdykKKwor c2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzIG9mZikgc2Vs ZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNl cSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFj dHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5O IG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDMgcm93cykKKworc2VsZWN0IGV4cGxhaW5f ZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzIG9mZiwgdmVyYm9zZSkgc2VsZWN0ICog ZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU2VxIFNjYW4gb24gcHVibGljLmludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dz PU4gd2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBP dXRwdXQ6IHExLCBxMgorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBO Lk4gbXMKKyg0IHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6 ZSwgYnVmZmVycywgZm9ybWF0IHRleHQpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9 Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBs b29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMK KygzIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVm ZmVycywgZm9ybWF0IHhtbCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAg ICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgPGV4cGxh aW4geG1sbnM9Imh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcvTi9leHBsYWluIj4gKworICAgPFF1 ZXJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg PFBsYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICAgPE5vZGUtVHlwZT5TZXEgU2NhbjwvTm9kZS1UeXBlPiAgICAgICAgICAgICAgICAgKworICAg ICAgIDxQYXJhbGxlbC1Bd2FyZT5mYWxzZTwvUGFyYWxsZWwtQXdhcmU+ICAgICAgICAgICsKKyAg ICAgICA8QXN5bmMtQ2FwYWJsZT5mYWxzZTwvQXN5bmMtQ2FwYWJsZT4gICAgICAgICAgICArCisg ICAgICAgPFJlbGF0aW9uLU5hbWU+aW50OF90Ymw8L1JlbGF0aW9uLU5hbWU+ICAgICAgICAgKwor ICAgICAgIDxBbGlhcz5pODwvQWxpYXM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICA8U3RhcnR1cC1Db3N0Pk4uTjwvU3RhcnR1cC1Db3N0PiAgICAgICAgICAgICAgICAr CisgICAgICAgPFRvdGFsLUNvc3Q+Ti5OPC9Ub3RhbC1Db3N0PiAgICAgICAgICAgICAgICAgICAg KworICAgICAgIDxQbGFuLVJvd3M+TjwvUGxhbi1Sb3dzPiAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICA8UGxhbi1XaWR0aD5OPC9QbGFuLVdpZHRoPiAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgPEFjdHVhbC1TdGFydHVwLVRpbWU+Ti5OPC9BY3R1YWwtU3RhcnR1cC1UaW1l PiAgKworICAgICAgIDxBY3R1YWwtVG90YWwtVGltZT5OLk48L0FjdHVhbC1Ub3RhbC1UaW1lPiAg ICAgICsKKyAgICAgICA8QWN0dWFsLVJvd3M+Ti5OPC9BY3R1YWwtUm93cz4gICAgICAgICAgICAg ICAgICArCisgICAgICAgPEFjdHVhbC1Mb29wcz5OPC9BY3R1YWwtTG9vcHM+ICAgICAgICAgICAg ICAgICAgKworICAgICAgIDxEaXNhYmxlZD5mYWxzZTwvRGlzYWJsZWQ+ICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICA8U2hhcmVkLUhpdC1CbG9ja3M+TjwvU2hhcmVkLUhpdC1CbG9ja3M+ ICAgICAgICArCisgICAgICAgPFNoYXJlZC1SZWFkLUJsb2Nrcz5OPC9TaGFyZWQtUmVhZC1CbG9j a3M+ICAgICAgKworICAgICAgIDxTaGFyZWQtRGlydGllZC1CbG9ja3M+TjwvU2hhcmVkLURpcnRp ZWQtQmxvY2tzPisKKyAgICAgICA8U2hhcmVkLVdyaXR0ZW4tQmxvY2tzPk48L1NoYXJlZC1Xcml0 dGVuLUJsb2Nrcz4rCisgICAgICAgPExvY2FsLUhpdC1CbG9ja3M+TjwvTG9jYWwtSGl0LUJsb2Nr cz4gICAgICAgICAgKworICAgICAgIDxMb2NhbC1SZWFkLUJsb2Nrcz5OPC9Mb2NhbC1SZWFkLUJs b2Nrcz4gICAgICAgICsKKyAgICAgICA8TG9jYWwtRGlydGllZC1CbG9ja3M+TjwvTG9jYWwtRGly dGllZC1CbG9ja3M+ICArCisgICAgICAgPExvY2FsLVdyaXR0ZW4tQmxvY2tzPk48L0xvY2FsLVdy aXR0ZW4tQmxvY2tzPiAgKworICAgICAgIDxUZW1wLVJlYWQtQmxvY2tzPk48L1RlbXAtUmVhZC1C bG9ja3M+ICAgICAgICAgICsKKyAgICAgICA8VGVtcC1Xcml0dGVuLUJsb2Nrcz5OPC9UZW1wLVdy aXR0ZW4tQmxvY2tzPiAgICArCisgICAgIDwvUGxhbj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICA8UGxhbm5pbmc+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8U2hhcmVkLUhpdC1CbG9ja3M+TjwvU2hhcmVk LUhpdC1CbG9ja3M+ICAgICAgICArCisgICAgICAgPFNoYXJlZC1SZWFkLUJsb2Nrcz5OPC9TaGFy ZWQtUmVhZC1CbG9ja3M+ICAgICAgKworICAgICAgIDxTaGFyZWQtRGlydGllZC1CbG9ja3M+Tjwv U2hhcmVkLURpcnRpZWQtQmxvY2tzPisKKyAgICAgICA8U2hhcmVkLVdyaXR0ZW4tQmxvY2tzPk48 L1NoYXJlZC1Xcml0dGVuLUJsb2Nrcz4rCisgICAgICAgPExvY2FsLUhpdC1CbG9ja3M+TjwvTG9j YWwtSGl0LUJsb2Nrcz4gICAgICAgICAgKworICAgICAgIDxMb2NhbC1SZWFkLUJsb2Nrcz5OPC9M b2NhbC1SZWFkLUJsb2Nrcz4gICAgICAgICsKKyAgICAgICA8TG9jYWwtRGlydGllZC1CbG9ja3M+ TjwvTG9jYWwtRGlydGllZC1CbG9ja3M+ICArCisgICAgICAgPExvY2FsLVdyaXR0ZW4tQmxvY2tz Pk48L0xvY2FsLVdyaXR0ZW4tQmxvY2tzPiAgKworICAgICAgIDxUZW1wLVJlYWQtQmxvY2tzPk48 L1RlbXAtUmVhZC1CbG9ja3M+ICAgICAgICAgICsKKyAgICAgICA8VGVtcC1Xcml0dGVuLUJsb2Nr cz5OPC9UZW1wLVdyaXR0ZW4tQmxvY2tzPiAgICArCisgICAgICAgPFN0b3JhZ2UtSS1PLVJlYWQ+ TjwvU3RvcmFnZS1JLU8tUmVhZD4gICAgICAgICAgKworICAgICAgIDxTdG9yYWdlLUktTy1SZWFk Pk48L1N0b3JhZ2UtSS1PLVJlYWQ+ICAgICAgICAgICsKKyAgICAgPC9QbGFubmluZz4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIDxQbGFubmluZy1UaW1lPk4u TjwvUGxhbm5pbmctVGltZT4gICAgICAgICAgICAgICAgKworICAgICA8VHJpZ2dlcnM+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgPC9UcmlnZ2Vycz4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIDxFeGVjdXRpb24+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgIDxTdG9yYWdlLUkt Ty1SZWFkPk48L1N0b3JhZ2UtSS1PLVJlYWQ+ICAgICAgICAgICsKKyAgICAgICA8U3RvcmFnZS1J LU8tUmVhZD5OPC9TdG9yYWdlLUktTy1SZWFkPiAgICAgICAgICArCisgICAgIDwvRXhlY3V0aW9u PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICA8RXhlY3V0aW9u LVRpbWU+Ti5OPC9FeGVjdXRpb24tVGltZT4gICAgICAgICAgICAgICsKKyAgIDwvUXVlcnk+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgPC9leHBsYWluPgor KDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIHNlcmlh bGl6ZSwgYnVmZmVycywgZm9ybWF0IHlhbWwpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsK KyAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAtIFBsYW46ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgTm9kZSBUeXBl OiAiU2VxIFNjYW4iICAgICsKKyAgICAgUGFyYWxsZWwgQXdhcmU6IGZhbHNlICAgICsKKyAgICAg QXN5bmMgQ2FwYWJsZTogZmFsc2UgICAgICsKKyAgICAgUmVsYXRpb24gTmFtZTogImludDhfdGJs IisKKyAgICAgQWxpYXM6ICJpOCIgICAgICAgICAgICAgICsKKyAgICAgU3RhcnR1cCBDb3N0OiBO Lk4gICAgICAgICsKKyAgICAgVG90YWwgQ29zdDogTi5OICAgICAgICAgICsKKyAgICAgUGxhbiBS b3dzOiBOICAgICAgICAgICAgICsKKyAgICAgUGxhbiBXaWR0aDogTiAgICAgICAgICAgICsKKyAg ICAgQWN0dWFsIFN0YXJ0dXAgVGltZTogTi5OICsKKyAgICAgQWN0dWFsIFRvdGFsIFRpbWU6IE4u TiAgICsKKyAgICAgQWN0dWFsIFJvd3M6IE4uTiAgICAgICAgICsKKyAgICAgQWN0dWFsIExvb3Bz OiBOICAgICAgICAgICsKKyAgICAgRGlzYWJsZWQ6IGZhbHNlICAgICAgICAgICsKKyAgICAgU2hh cmVkIEhpdCBCbG9ja3M6IE4gICAgICsKKyAgICAgU2hhcmVkIFJlYWQgQmxvY2tzOiBOICAgICsK KyAgICAgU2hhcmVkIERpcnRpZWQgQmxvY2tzOiBOICsKKyAgICAgU2hhcmVkIFdyaXR0ZW4gQmxv Y2tzOiBOICsKKyAgICAgTG9jYWwgSGl0IEJsb2NrczogTiAgICAgICsKKyAgICAgTG9jYWwgUmVh ZCBCbG9ja3M6IE4gICAgICsKKyAgICAgTG9jYWwgRGlydGllZCBCbG9ja3M6IE4gICsKKyAgICAg TG9jYWwgV3JpdHRlbiBCbG9ja3M6IE4gICsKKyAgICAgVGVtcCBSZWFkIEJsb2NrczogTiAgICAg ICsKKyAgICAgVGVtcCBXcml0dGVuIEJsb2NrczogTiAgICsKKyAgIFBsYW5uaW5nOiAgICAgICAg ICAgICAgICAgICsKKyAgICAgU2hhcmVkIEhpdCBCbG9ja3M6IE4gICAgICsKKyAgICAgU2hhcmVk IFJlYWQgQmxvY2tzOiBOICAgICsKKyAgICAgU2hhcmVkIERpcnRpZWQgQmxvY2tzOiBOICsKKyAg ICAgU2hhcmVkIFdyaXR0ZW4gQmxvY2tzOiBOICsKKyAgICAgTG9jYWwgSGl0IEJsb2NrczogTiAg ICAgICsKKyAgICAgTG9jYWwgUmVhZCBCbG9ja3M6IE4gICAgICsKKyAgICAgTG9jYWwgRGlydGll ZCBCbG9ja3M6IE4gICsKKyAgICAgTG9jYWwgV3JpdHRlbiBCbG9ja3M6IE4gICsKKyAgICAgVGVt cCBSZWFkIEJsb2NrczogTiAgICAgICsKKyAgICAgVGVtcCBXcml0dGVuIEJsb2NrczogTiAgICsK KyAgICAgU3RvcmFnZSBJL08gUmVhZDogTiAgICAgICsKKyAgICAgU3RvcmFnZSBJL08gUmVhZDog TiAgICAgICsKKyAgIFBsYW5uaW5nIFRpbWU6IE4uTiAgICAgICAgICsKKyAgIFRyaWdnZXJzOiAg ICAgICAgICAgICAgICAgICsKKyAgIFNlcmlhbGl6YXRpb246ICAgICAgICAgICAgICsKKyAgICAg VGltZTogTi5OICAgICAgICAgICAgICAgICsKKyAgICAgT3V0cHV0IFZvbHVtZTogTiAgICAgICAg ICsKKyAgICAgRm9ybWF0OiAidGV4dCIgICAgICAgICAgICsKKyAgICAgU2hhcmVkIEhpdCBCbG9j a3M6IE4gICAgICsKKyAgICAgU2hhcmVkIFJlYWQgQmxvY2tzOiBOICAgICsKKyAgICAgU2hhcmVk IERpcnRpZWQgQmxvY2tzOiBOICsKKyAgICAgU2hhcmVkIFdyaXR0ZW4gQmxvY2tzOiBOICsKKyAg ICAgTG9jYWwgSGl0IEJsb2NrczogTiAgICAgICsKKyAgICAgTG9jYWwgUmVhZCBCbG9ja3M6IE4g ICAgICsKKyAgICAgTG9jYWwgRGlydGllZCBCbG9ja3M6IE4gICsKKyAgICAgTG9jYWwgV3JpdHRl biBCbG9ja3M6IE4gICsKKyAgICAgVGVtcCBSZWFkIEJsb2NrczogTiAgICAgICsKKyAgICAgVGVt cCBXcml0dGVuIEJsb2NrczogTiAgICsKKyAgIEV4ZWN1dGlvbjogICAgICAgICAgICAgICAgICsK KyAgICAgU3RvcmFnZSBJL08gUmVhZDogTiAgICAgICsKKyAgICAgU3RvcmFnZSBJL08gUmVhZDog TiAgICAgICsKKyAgIEV4ZWN1dGlvbiBUaW1lOiBOLk4KKygxIHJvdykKKworc2VsZWN0IGV4cGxh aW5fZmlsdGVyKCdleHBsYWluIChidWZmZXJzLCBmb3JtYXQgdGV4dCkgc2VsZWN0ICogZnJvbSBp bnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5O Lk4gcm93cz1OIHdpZHRoPU4pCisoMSByb3cpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhw bGFpbiAoYnVmZmVycywgZm9ybWF0IGpzb24pIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsK KyAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgIk5vZGUgVHlwZSI6ICJTZXEgU2NhbiIsICAgICsK KyAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgKworICAgICAgICJBc3luYyBDYXBh YmxlIjogZmFsc2UsICAgICArCisgICAgICAgIlJlbGF0aW9uIE5hbWUiOiAiaW50OF90YmwiLCsK KyAgICAgICAiQWxpYXMiOiAiaTgiLCAgICAgICAgICAgICAgKworICAgICAgICJTdGFydHVwIENv c3QiOiBOLk4sICAgICAgICArCisgICAgICAgIlRvdGFsIENvc3QiOiBOLk4sICAgICAgICAgICsK KyAgICAgICAiUGxhbiBSb3dzIjogTiwgICAgICAgICAgICAgKworICAgICAgICJQbGFuIFdpZHRo IjogTiwgICAgICAgICAgICArCisgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICsK KyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJTaGFyZWQgUmVh ZCBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IE4sICsK KyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwgKworICAgICAgICJMb2NhbCBIaXQg QmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwgICAgICsK KyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgKworICAgICAgICJMb2NhbCBXcml0 dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsK KyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4gICAgKworICAgICB9LCAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICJQbGFubmluZyI6IHsgICAgICAgICAgICAgICAgICsK KyAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJTaGFyZWQgUmVh ZCBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IE4sICsK KyAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogTiwgKworICAgICAgICJMb2NhbCBIaXQg QmxvY2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwgICAgICsK KyAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgKworICAgICAgICJMb2NhbCBXcml0 dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsK KyAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4sICAgKworICAgICAgICJTdG9yYWdlIEkv TyBSZWFkIjogTiwgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOICAgICAgICsK KyAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiRXhlY3V0aW9uIjog eyAgICAgICAgICAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICsK KyAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4gICAgICAgKworICAgICB9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyBdCisoMSByb3cpCisKKy0tIENoZWNrIGV4cGFuc2lvbiBvZiB3aW5kb3cgZGVmaW5pdGlvbnMK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiB2ZXJib3NlIHNlbGVjdCBzdW0odW5pcXVl MSkgb3ZlciB3LCBzdW0odW5pcXVlMikgb3ZlciAodyBvcmRlciBieSBodW5kcmVkKSwgc3VtKHRl bnRob3VzKSBvdmVyICh3IG9yZGVyIGJ5IGh1bmRyZWQpIGZyb20gdGVuazEgd2luZG93IHcgYXMg KHBhcnRpdGlvbiBieSB0ZW4pJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91dHB1 dDogc3VtKHVuaXF1ZTEpIE9WRVIgdywgKHN1bSh1bmlxdWUyKSBPVkVSIHcxKSwgKHN1bSh0ZW50 aG91cykgT1ZFUiB3MSksIHRlbiwgaHVuZHJlZAorICAgV2luZG93OiB3IEFTIChQQVJUSVRJT04g QlkgdGVuazEudGVuKQorICAgLT4gIFdpbmRvd0FnZyAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdp ZHRoPU4pCisgICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwg dGVudGhvdXMsIHN1bSh1bmlxdWUyKSBPVkVSIHcxLCBzdW0odGVudGhvdXMpIE9WRVIgdzEKKyAg ICAgICAgIFdpbmRvdzogdzEgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4gT1JERVIgQlkgdGVu azEuaHVuZHJlZCkKKyAgICAgICAgIC0+ICBTb3J0ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lk dGg9TikKKyAgICAgICAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1bmlx dWUyLCB0ZW50aG91cworICAgICAgICAgICAgICAgU29ydCBLZXk6IHRlbmsxLnRlbiwgdGVuazEu aHVuZHJlZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy50ZW5rMSAgKGNv c3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVudGhvdXMKKygxMSByb3dzKQorCitz ZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gdmVyYm9zZSBzZWxlY3Qgc3VtKHVuaXF1ZTEp IG92ZXIgdzEsIHN1bSh1bmlxdWUyKSBvdmVyICh3MSBvcmRlciBieSBodW5kcmVkKSwgc3VtKHRl bnRob3VzKSBvdmVyICh3MSBvcmRlciBieSBodW5kcmVkIHJvd3MgMTAgcHJlY2VkaW5nKSBmcm9t IHRlbmsxIHdpbmRvdyB3MSBhcyAocGFydGl0aW9uIGJ5IHRlbiknKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnICAoY29zdD1OLk4uLk4uTiBy b3dzPU4gd2lkdGg9TikKKyAgIE91dHB1dDogc3VtKHVuaXF1ZTEpIE9WRVIgdzEsIChzdW0odW5p cXVlMikgT1ZFUiB3MiksIChzdW0odGVudGhvdXMpIE9WRVIgdzMpLCB0ZW4sIGh1bmRyZWQKKyAg IFdpbmRvdzogdzEgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4pCisgICAtPiAgV2luZG93QWdn ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAgICAgIE91dHB1dDogdGVuLCBo dW5kcmVkLCB1bmlxdWUxLCB1bmlxdWUyLCB0ZW50aG91cywgKHN1bSh1bmlxdWUyKSBPVkVSIHcy KSwgc3VtKHRlbnRob3VzKSBPVkVSIHczCisgICAgICAgICBXaW5kb3c6IHczIEFTIChQQVJUSVRJ T04gQlkgdGVuazEudGVuIE9SREVSIEJZIHRlbmsxLmh1bmRyZWQgUk9XUyAnTic6OmJpZ2ludCBQ UkVDRURJTkcpCisgICAgICAgICAtPiAgV2luZG93QWdnICAoY29zdD1OLk4uLk4uTiByb3dzPU4g d2lkdGg9TikKKyAgICAgICAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1 bmlxdWUyLCB0ZW50aG91cywgc3VtKHVuaXF1ZTIpIE9WRVIgdzIKKyAgICAgICAgICAgICAgIFdp bmRvdzogdzIgQVMgKFBBUlRJVElPTiBCWSB0ZW5rMS50ZW4gT1JERVIgQlkgdGVuazEuaHVuZHJl ZCkKKyAgICAgICAgICAgICAgIC0+ICBTb3J0ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9 TikKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdGVuLCBodW5kcmVkLCB1bmlxdWUxLCB1 bmlxdWUyLCB0ZW50aG91cworICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHRlbmsxLnRl biwgdGVuazEuaHVuZHJlZAorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1 YmxpYy50ZW5rMSAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVu dGhvdXMKKygxNCByb3dzKQorCistLSBDaGVjayBvdXRwdXQgaW5jbHVkaW5nIEkvTyB0aW1pbmdz LiAgVGhlc2UgZmllbGRzIGFyZSBjb25kaXRpb25hbAorLS0gYnV0IGFsd2F5cyBzZXQgaW4gSlNP TiBmb3JtYXQsIHNvIGNoZWNrIHRoZW0gb25seSBpbiB0aGlzIGNhc2UuCitzZXQgdHJhY2tfaW9f dGltaW5nID0gb247CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGJ1 ZmZlcnMsIGZvcm1hdCBqc29uKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAg ICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJQbGFuIjogeyAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgIk5vZGUgVHlwZSI6ICJTZXEgU2NhbiIsICAgICArCisg ICAgICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICArCisgICAgICAgIkFzeW5jIENhcGFi bGUiOiBmYWxzZSwgICAgICArCisgICAgICAgIlJlbGF0aW9uIE5hbWUiOiAiaW50OF90YmwiLCAr CisgICAgICAgIkFsaWFzIjogImk4IiwgICAgICAgICAgICAgICArCisgICAgICAgIlN0YXJ0dXAg Q29zdCI6IE4uTiwgICAgICAgICArCisgICAgICAgIlRvdGFsIENvc3QiOiBOLk4sICAgICAgICAg ICArCisgICAgICAgIlBsYW4gUm93cyI6IE4sICAgICAgICAgICAgICArCisgICAgICAgIlBsYW4g V2lkdGgiOiBOLCAgICAgICAgICAgICArCisgICAgICAgIkFjdHVhbCBTdGFydHVwIFRpbWUiOiBO Lk4sICArCisgICAgICAgIkFjdHVhbCBUb3RhbCBUaW1lIjogTi5OLCAgICArCisgICAgICAgIkFj dHVhbCBSb3dzIjogTi5OLCAgICAgICAgICArCisgICAgICAgIkFjdHVhbCBMb29wcyI6IE4sICAg ICAgICAgICArCisgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICArCisgICAgICAg IlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2Nr cyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IE4sICArCisgICAg ICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisgICAgICAgIkxvY2FsIEhpdCBCbG9j a3MiOiBOLCAgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwgICAgICArCisg ICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICArCisgICAgICAgIkxvY2FsIFdyaXR0 ZW4gQmxvY2tzIjogTiwgICArCisgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICAr CisgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICArCisgICAgICAgIlNoYXJlZCBJ L08gUmVhZCBUaW1lIjogTi5OLCArCisgICAgICAgIlNoYXJlZCBJL08gV3JpdGUgVGltZSI6IE4u TiwrCisgICAgICAgIkxvY2FsIEkvTyBSZWFkIFRpbWUiOiBOLk4sICArCisgICAgICAgIkxvY2Fs IEkvTyBXcml0ZSBUaW1lIjogTi5OLCArCisgICAgICAgIlRlbXAgSS9PIFJlYWQgVGltZSI6IE4u TiwgICArCisgICAgICAgIlRlbXAgSS9PIFdyaXRlIFRpbWUiOiBOLk4gICArCisgICAgIH0sICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICJQbGFubmluZyI6IHsgICAgICAgICAg ICAgICAgICArCisgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICArCisgICAgICAg IlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJs b2NrcyI6IE4sICArCisgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICArCisgICAg ICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICArCisgICAgICAgIkxvY2FsIFJlYWQgQmxv Y2tzIjogTiwgICAgICArCisgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICArCisg ICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICArCisgICAgICAgIlRlbXAgUmVhZCBC bG9ja3MiOiBOLCAgICAgICArCisgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICAr CisgICAgICAgIlNoYXJlZCBJL08gUmVhZCBUaW1lIjogTi5OLCArCisgICAgICAgIlNoYXJlZCBJ L08gV3JpdGUgVGltZSI6IE4uTiwrCisgICAgICAgIkxvY2FsIEkvTyBSZWFkIFRpbWUiOiBOLk4s ICArCisgICAgICAgIkxvY2FsIEkvTyBXcml0ZSBUaW1lIjogTi5OLCArCisgICAgICAgIlRlbXAg SS9PIFJlYWQgVGltZSI6IE4uTiwgICArCisgICAgICAgIlRlbXAgSS9PIFdyaXRlIFRpbWUiOiBO Lk4sICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICArCisgICAgICAgIlN0 b3JhZ2UgSS9PIFJlYWQiOiBOICAgICAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgICJQbGFubmluZyBUaW1lIjogTi5OLCAgICAgICAgICArCisgICAgICJU cmlnZ2VycyI6IFsgICAgICAgICAgICAgICAgICArCisgICAgIF0sICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICArCisgICAg ICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJl YWQiOiBOICAgICAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICJFeGVjdXRpb24gVGltZSI6IE4uTiAgICAgICAgICArCisgICB9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgXQorKDEgcm93KQorCitzZXQgdHJhY2tfaW9fdGltaW5nID0g b2ZmOworLS0gU0VUVElOR1Mgb3B0aW9uCistLSBXZSBoYXZlIHRvIGlnbm9yZSBvdGhlciBzZXR0 aW5ncyB0aGF0IG1pZ2h0IGJlIGltcG9zZWQgYnkgdGhlIGVudmlyb25tZW50LAorLS0gc28gcHJp bnRpbmcgdGhlIHdob2xlIFNldHRpbmdzIGZpZWxkIHVuZm9ydHVuYXRlbHkgd29uJ3QgZG8uCiti ZWdpbjsKK3NldCBsb2NhbCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9nZW5lcmljX3BsYW47Citz ZWxlY3QgdHJ1ZSBhcyAiT0siCisgIGZyb20gZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKHNldHRp bmdzKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4JykgbG4KKyAgd2hlcmUgbG4gfiAnXiAqU2V0 dGluZ3M6IC4qcGxhbl9jYWNoZV9tb2RlID0gJydmb3JjZV9nZW5lcmljX3BsYW4nJyc7CisgT0sg CistLS0tCisgdAorKDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXJfdG9fanNvbignZXhw bGFpbiAoc2V0dGluZ3MsIGZvcm1hdCBqc29uKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jykg Iz4gJ3swLFNldHRpbmdzLHBsYW5fY2FjaGVfbW9kZX0nOworICAgICAgID9jb2x1bW4/ICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICJmb3JjZV9nZW5lcmljX3BsYW4iCisoMSByb3cp CisKK3JvbGxiYWNrOworLS0gR0VORVJJQ19QTEFOIG9wdGlvbgorc2VsZWN0IGV4cGxhaW5fZmls dGVyKCdleHBsYWluIChnZW5lcmljX3BsYW4pIHNlbGVjdCB1bmlxdWUxIGZyb20gdGVuazEgd2hl cmUgdGhvdXNhbmQgPSAkMScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhw bGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxICAoY29zdD1OLk4uLk4u TiByb3dzPU4gd2lkdGg9TikKKyAgIFJlY2hlY2sgQ29uZDogKHRob3VzYW5kID0gJE4pCisgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMgIChjb3N0PU4uTi4u Ti5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgSW5kZXggQ29uZDogKHRob3VzYW5kID0gJE4p CisoNCByb3dzKQorCistLSBzaG91bGQgZmFpbAorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBs YWluIChhbmFseXplLCBnZW5lcmljX3BsYW4pIHNlbGVjdCB1bmlxdWUxIGZyb20gdGVuazEgd2hl cmUgdGhvdXNhbmQgPSAkMScpOworRVJST1I6ICBFWFBMQUlOIG9wdGlvbnMgQU5BTFlaRSBhbmQg R0VORVJJQ19QTEFOIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyCitDT05URVhUOiAgUEwvcGdTUUwg ZnVuY3Rpb24gZXhwbGFpbl9maWx0ZXIodGV4dCkgbGluZSA1IGF0IEZPUiBvdmVyIEVYRUNVVEUg c3RhdGVtZW50CistLSBNRU1PUlkgb3B0aW9uCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxh aW4gKG1lbW9yeSkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAg ICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBv biBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBNZW1vcnk6 IHVzZWQ9TmtCICBhbGxvY2F0ZWQ9TmtCCisoMiByb3dzKQorCitzZWxlY3QgZXhwbGFpbl9maWx0 ZXIoJ2V4cGxhaW4gKG1lbW9yeSwgYW5hbHl6ZSwgYnVmZmVycyBvZmYpIHNlbGVjdCAqIGZyb20g aW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBp bnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwgdGltZT1O Lk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorICAgTWVtb3J5OiB1c2VkPU5rQiAgYWxsb2NhdGVk PU5rQgorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0 IHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVtb3J5LCBzdW1tYXJ5 LCBmb3JtYXQgeWFtbCkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICBleHBs YWluX2ZpbHRlciAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIC0g UGxhbjogICAgICAgICAgICAgICAgICAgICAgKworICAgICBOb2RlIFR5cGU6ICJTZXEgU2NhbiIg ICAgKworICAgICBQYXJhbGxlbCBBd2FyZTogZmFsc2UgICAgKworICAgICBBc3luYyBDYXBhYmxl OiBmYWxzZSAgICAgKworICAgICBSZWxhdGlvbiBOYW1lOiAiaW50OF90YmwiKworICAgICBBbGlh czogImk4IiAgICAgICAgICAgICAgKworICAgICBTdGFydHVwIENvc3Q6IE4uTiAgICAgICAgKwor ICAgICBUb3RhbCBDb3N0OiBOLk4gICAgICAgICAgKworICAgICBQbGFuIFJvd3M6IE4gICAgICAg ICAgICAgKworICAgICBQbGFuIFdpZHRoOiBOICAgICAgICAgICAgKworICAgICBEaXNhYmxlZDog ZmFsc2UgICAgICAgICAgKworICAgUGxhbm5pbmc6ICAgICAgICAgICAgICAgICAgKworICAgICBN ZW1vcnkgVXNlZDogTiAgICAgICAgICAgKworICAgICBNZW1vcnkgQWxsb2NhdGVkOiBOICAgICAg KworICAgUGxhbm5pbmcgVGltZTogTi5OCisoMSByb3cpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRl cignZXhwbGFpbiAobWVtb3J5LCBhbmFseXplLCBmb3JtYXQganNvbikgc2VsZWN0ICogZnJvbSBp bnQ4X3RibCBpOCcpOworICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAiTm9kZSBUeXBlIjogIlNl cSBTY2FuIiwgICAgKworICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAgICArCisgICAg ICAgIkFzeW5jIENhcGFibGUiOiBmYWxzZSwgICAgICsKKyAgICAgICAiUmVsYXRpb24gTmFtZSI6 ICJpbnQ4X3RibCIsKworICAgICAgICJBbGlhcyI6ICJpOCIsICAgICAgICAgICAgICArCisgICAg ICAgIlN0YXJ0dXAgQ29zdCI6IE4uTiwgICAgICAgICsKKyAgICAgICAiVG90YWwgQ29zdCI6IE4u TiwgICAgICAgICAgKworICAgICAgICJQbGFuIFJvd3MiOiBOLCAgICAgICAgICAgICArCisgICAg ICAgIlBsYW4gV2lkdGgiOiBOLCAgICAgICAgICAgICsKKyAgICAgICAiQWN0dWFsIFN0YXJ0dXAg VGltZSI6IE4uTiwgKworICAgICAgICJBY3R1YWwgVG90YWwgVGltZSI6IE4uTiwgICArCisgICAg ICAgIkFjdHVhbCBSb3dzIjogTi5OLCAgICAgICAgICsKKyAgICAgICAiQWN0dWFsIExvb3BzIjog TiwgICAgICAgICAgKworICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICArCisgICAg ICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiU2hhcmVkIFJlYWQgQmxv Y2tzIjogTiwgICAgKworICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiBOLCArCisgICAg ICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICsKKyAgICAgICAiTG9jYWwgSGl0IEJsb2Nr cyI6IE4sICAgICAgKworICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IE4sICAgICArCisgICAg ICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAgICAgICAiTG9jYWwgV3JpdHRlbiBC bG9ja3MiOiBOLCAgKworICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogTiwgICAgICArCisgICAg ICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOICAgICsKKyAgICAgfSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAiUGxhbm5pbmciOiB7ICAgICAgICAgICAgICAgICArCisgICAg ICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogTiwgICAgICsKKyAgICAgICAiU2hhcmVkIFJlYWQgQmxv Y2tzIjogTiwgICAgKworICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiBOLCArCisgICAg ICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IE4sICsKKyAgICAgICAiTG9jYWwgSGl0IEJsb2Nr cyI6IE4sICAgICAgKworICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IE4sICAgICArCisgICAg ICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogTiwgICsKKyAgICAgICAiTG9jYWwgV3JpdHRlbiBC bG9ja3MiOiBOLCAgKworICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogTiwgICAgICArCisgICAg ICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVh ZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICArCisgICAg ICAgIk1lbW9yeSBVc2VkIjogTiwgICAgICAgICAgICsKKyAgICAgICAiTWVtb3J5IEFsbG9jYXRl ZCI6IE4gICAgICAgKworICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICJQbGFubmluZyBUaW1lIjogTi5OLCAgICAgICAgICsKKyAgICAgIlRyaWdnZXJzIjogWyAgICAg ICAgICAgICAgICAgKworICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg ICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICsKKyAgICAgICAiU3RvcmFnZSBJL08gUmVh ZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiAgICAgICArCisgICAg IH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgIkV4ZWN1dGlvbiBUaW1lIjog Ti5OICAgICAgICAgKworICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgXQor KDEgcm93KQorCitwcmVwYXJlIGludDhfcXVlcnkgYXMgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBp ODsKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAobWVtb3J5KSBleGVjdXRlIGludDhf cXVlcnknKTsKKyAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJv d3M9TiB3aWR0aD1OKQorICAgTWVtb3J5OiB1c2VkPU5rQiAgYWxsb2NhdGVkPU5rQgorKDIgcm93 cykKKworLS0gVGVzdCBFWFBMQUlOIChHRU5FUklDX1BMQU4pIHdpdGggcGFydGl0aW9uIHBydW5p bmcKKy0tIHBhcnRpdGlvbnMgc2hvdWxkIGJlIHBydW5lZCBhdCBwbGFuIHRpbWUsIGJhc2VkIG9u IGNvbnN0YW50cywKKy0tIGJ1dCB0aGVyZSBzaG91bGQgYmUgbm8gcHJ1bmluZyBiYXNlZCBvbiBw YXJhbWV0ZXIgcGxhY2Vob2xkZXJzCitjcmVhdGUgdGFibGUgZ2VuX3BhcnQgKAorICBrZXkxIGlu dGVnZXIgbm90IG51bGwsCisgIGtleTIgaW50ZWdlciBub3QgbnVsbAorKSBwYXJ0aXRpb24gYnkg bGlzdCAoa2V5MSk7CitjcmVhdGUgdGFibGUgZ2VuX3BhcnRfMQorICBwYXJ0aXRpb24gb2YgZ2Vu X3BhcnQgZm9yIHZhbHVlcyBpbiAoMSkKKyAgcGFydGl0aW9uIGJ5IHJhbmdlIChrZXkyKTsKK2Ny ZWF0ZSB0YWJsZSBnZW5fcGFydF8xXzEKKyAgcGFydGl0aW9uIG9mIGdlbl9wYXJ0XzEgZm9yIHZh bHVlcyBmcm9tICgxKSB0byAoMik7CitjcmVhdGUgdGFibGUgZ2VuX3BhcnRfMV8yCisgIHBhcnRp dGlvbiBvZiBnZW5fcGFydF8xIGZvciB2YWx1ZXMgZnJvbSAoMikgdG8gKDMpOworY3JlYXRlIHRh YmxlIGdlbl9wYXJ0XzIKKyAgcGFydGl0aW9uIG9mIGdlbl9wYXJ0IGZvciB2YWx1ZXMgaW4gKDIp OworLS0gc2hvdWxkIHNjYW4gZ2VuX3BhcnRfMV8xIGFuZCBnZW5fcGFydF8xXzIsIGJ1dCBub3Qg Z2VuX3BhcnRfMgorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChnZW5lcmljX3BsYW4p IHNlbGVjdCBrZXkxLCBrZXkyIGZyb20gZ2VuX3BhcnQgd2hlcmUga2V5MSA9IDEgYW5kIGtleTIg PSAkMScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQg IChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgLT4gIFNlcSBTY2FuIG9uIGdlbl9w YXJ0XzFfMSBnZW5fcGFydF8xICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgICAg ICAgIEZpbHRlcjogKChrZXkxID0gTikgQU5EIChrZXkyID0gJE4pKQorICAgLT4gIFNlcSBTY2Fu IG9uIGdlbl9wYXJ0XzFfMiBnZW5fcGFydF8yICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9 TikKKyAgICAgICAgIEZpbHRlcjogKChrZXkxID0gTikgQU5EIChrZXkyID0gJE4pKQorKDUgcm93 cykKKworZHJvcCB0YWJsZSBnZW5fcGFydDsKKy0tCistLSBUZXN0IHByb2R1Y3Rpb24gb2YgcGVy LXdvcmtlciBkYXRhCistLQorLS0gVW5mb3J0dW5hdGVseSwgYmVjYXVzZSB3ZSBkb24ndCBrbm93 IGhvdyBtYW55IHdvcmtlciBwcm9jZXNzZXMgd2UnbGwKKy0tIGFjdHVhbGx5IGdldCAobWF5YmUg bm9uZSBhdCBhbGwpLCB3ZSBjYW4ndCBleGFtaW5lIHRoZSAiV29ya2VycyIgb3V0cHV0CistLSBp biBhbnkgZGV0YWlsLiAgV2UgY2FuIGNoZWNrIHRoYXQgaXQgcGFyc2VzIGNvcnJlY3RseSBhcyBK U09OLCBhbmQgdGhlbgorLS0gcmVtb3ZlIGl0IGZyb20gdGhlIGRpc3BsYXllZCByZXN1bHRzLgor YmVnaW47CistLSBlbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitzZXQgcGFyYWxsZWxf c2V0dXBfY29zdD0wOworc2V0IHBhcmFsbGVsX3R1cGxlX2Nvc3Q9MDsKK3NldCBtaW5fcGFyYWxs ZWxfdGFibGVfc2Nhbl9zaXplPTA7CitzZXQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhl cj00Oworc2VsZWN0IGpzb25iX3ByZXR0eSgKKyAgZXhwbGFpbl9maWx0ZXJfdG9fanNvbignZXhw bGFpbiAoYW5hbHl6ZSwgdmVyYm9zZSwgYnVmZmVycywgZm9ybWF0IGpzb24pCisgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZWN0ICogZnJvbSB0ZW5rMSBvcmRlciBieSB0ZW50aG91cycpCisg IC0tIHJlbW92ZSAiV29ya2VycyIgbm9kZSBvZiB0aGUgU2VxIFNjYW4gcGxhbiBub2RlCisgICMt ICd7MCxQbGFuLFBsYW5zLDAsUGxhbnMsMCxXb3JrZXJzfScKKyAgLS0gcmVtb3ZlICJXb3JrZXJz IiBub2RlIG9mIHRoZSBTb3J0IHBsYW4gbm9kZQorICAjLSAnezAsUGxhbixQbGFucywwLFdvcmtl cnN9JworICAtLSBBbHNvIHJlbW92ZSBpdHMgc29ydC10eXBlIGZpZWxkcywgYXMgdGhvc2UgYXJl bid0IDEwMCUgc3RhYmxlCisgICMtICd7MCxQbGFuLFBsYW5zLDAsU29ydCBNZXRob2R9JworICAj LSAnezAsUGxhbixQbGFucywwLFNvcnQgU3BhY2UgVHlwZX0nCispOworICAgICAgICAgICAgICAg ICAgICAgICAganNvbmJfcHJldHR5ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgIlBsYW4iOiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICJQbGFucyI6IFsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlBsYW5zIjog WyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiQWxpYXMiOiAidGVuazEiLCAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiT3V0cHV0IjogWyAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZTEiLCAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaXF1ZTIiLCAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3byIsICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXIiLCAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlbiIs ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InR3ZW50eSIsICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImh1bmRyZWQiLCAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInRob3VzYW5kIiwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInR3b3Rob3VzYW5kIiwgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImZpdmV0aG91cyIsICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlbnRob3VzIiwgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9kZCIsICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW4iLCAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZ3Ux IiwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0 cmluZ3UyIiwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInN0cmluZzQiICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiU2NoZW1hIjogInB1YmxpYyIsICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiTm9kZSBUeXBlIjogIlNlcSBTY2FuIiwgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhbiBSb3dzIjogMCwgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhbiBXaWR0aCI6IDAsICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG90YWwgQ29zdCI6IDAu MCwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFJv d3MiOiAwLjAsICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0 dWFsIExvb3BzIjogMCwgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiUmVsYXRpb24gTmFtZSI6ICJ0ZW5rMSIsICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiB0cnVlLCAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IDAsICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IDAsICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0dWFsIFRvdGFsIFRpbWUi OiAwLjAsICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgUmVhZCBC bG9ja3MiOiAwLCAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2hhcmVk IEhpdCBCbG9ja3MiOiAwLCAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi U2hhcmVkIFJlYWQgQmxvY2tzIjogMCwgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6IDAuMCwgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiUGFyZW50IFJlbGF0aW9uc2hpcCI6ICJPdXRlciIsKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiAwLCAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tz IjogMCwgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2hhcmVkIFdyaXR0ZW4g QmxvY2tzIjogMCAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgXSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIk91dHB1 dCI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICJ1bmlxdWUxIiwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgICAgICJ1bmlxdWUyIiwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgICAgICJ0d28iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgICAgICJmb3VyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZW4iLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ0d2VudHkiLCAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJodW5kcmVkIiwgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ0aG91c2FuZCIs ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJ0d290 aG91c2FuZCIsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAg ICJmaXZldGhvdXMiLCAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgICAgICJ0ZW50aG91cyIsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgICAgICJvZGQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgICAgICJldmVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmd1MSIsICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmd1MiIsICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmc0IiAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgXSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkRpc2FibGVkIjog ZmFsc2UsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNvcnQg S2V5IjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg ICAgICJ0ZW5rMS50ZW50aG91cyIgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgIk5vZGUgVHlwZSI6ICJTb3J0IiwgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgIlBsYW4gUm93cyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgIlBsYW4gV2lkdGgiOiAwLCAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlRvdGFsIENvc3QiOiAwLjAsICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBSb3dzIjogMC4wLCAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBMb29wcyI6 IDAsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlN0YXJ0dXAg Q29zdCI6IDAuMCwgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkFz eW5jIENhcGFibGUiOiBmYWxzZSwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAg ICAgIlBhcmFsbGVsIEF3YXJlIjogZmFsc2UsICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAgICAgIlNvcnQgU3BhY2UgVXNlZCI6IDAsICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBUb3RhbCBUaW1lIjogMC4wLCAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogMCwg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tz IjogMCwgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBSZWFk IEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIkFjdHVh bCBTdGFydHVwIFRpbWUiOiAwLjAsICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAgICAg IlBhcmVudCBSZWxhdGlvbnNoaXAiOiAiT3V0ZXIiLCAgICAgICAgKworICAgICAgICAgICAgICAg ICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IDAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJPdXRwdXQiOiBbICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAidW5pcXVl MSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAi dW5pcXVlMiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICAgICAidHdvIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICAgICAiZm91ciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICAgICAidGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICAgICAidHdlbnR5IiwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICAgICAiaHVuZHJlZCIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAidGhvdXNhbmQiLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAidHdvdGhvdXNhbmQiLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAiZml2ZXRob3Vz IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAgICAidGVu dGhvdXMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICAg ICAib2RkIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICAgICAiZXZlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICAgICAic3RyaW5ndTEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICAgICAic3RyaW5ndTIiLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICAgICAic3RyaW5nNCIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJOb2RlIFR5cGUiOiAiR2F0 aGVyIE1lcmdlIiwgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJQbGFuIFJvd3Mi OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJQbGFu IFdpZHRoIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICJUb3RhbCBDb3N0IjogMC4wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgICAgICJBY3R1YWwgUm93cyI6IDAuMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgICAgICJBY3R1YWwgTG9vcHMiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICJTdGFydHVwIENvc3QiOiAwLjAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJQYXJhbGxlbCBBd2FyZSI6IGZhbHNlLCAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJXb3JrZXJzIFBsYW5uZWQiOiAw LCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBIaXQgQmxv Y2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJUZW1wIFJl YWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJX b3JrZXJzIExhdW5jaGVkIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICJBY3R1YWwgVG90YWwgVGltZSI6IDAuMCwgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgICAgICJBY3R1YWwgU3RhcnR1cCBUaW1lIjogMC4wLCAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjog MCwgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBEaXJ0aWVkIEJs b2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBXcml0 dGVuIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFy ZWQgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAg ICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiAwICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgIlBsYW5uaW5nIjogeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICAgICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAgICAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogMCwgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogMCwgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6 IDAsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgSGl0IEJs b2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQg UmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJU ZW1wIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgKworICAg ICAgICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAg KworICAgICAgICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAg ICAgICAgKworICAgICAgICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiAwICAgICAgICAg ICAgICAgICAgICAgKworICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIlRyaWdnZXJzIjogWyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgXSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgIkV4ZWN1dGlvbiI6IHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgICJTdG9y YWdlIEkvTyBSZWFkIjogMCAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgfSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAg ICAgIlBsYW5uaW5nIFRpbWUiOiAwLjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICAgIkV4ZWN1dGlvbiBUaW1lIjogMC4wICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworIF0KKygxIHJvdykKKworcm9sbGJhY2s7CistLSBUZXN0IGRpc3BsYXkgb2Yg dGVtcG9yYXJ5IG9iamVjdHMKK2NyZWF0ZSB0ZW1wIHRhYmxlIHQxKGYxIGZsb2F0OCk7CitjcmVh dGUgZnVuY3Rpb24gcGdfdGVtcC5teXNpbihmbG9hdDgpIHJldHVybnMgZmxvYXQ4IGxhbmd1YWdl IHBscGdzcWwKK2FzICdiZWdpbiByZXR1cm4gc2luKCQxKTsgZW5kJzsKK3NlbGVjdCBleHBsYWlu X2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgc2VsZWN0ICogZnJvbSB0MSB3aGVyZSBwZ190ZW1w Lm15c2luKGYxKSA8IDAuNScpOworICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRl ciAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwZ190ZW1wLnQxICAo Y29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91dHB1dDogZjEKKyAgIEZpbHRlcjog KHBnX3RlbXAubXlzaW4odDEuZjEpIDwgJ04uTic6OmRvdWJsZSBwcmVjaXNpb24pCisoMyByb3dz KQorCistLSBUZXN0IGNvbXB1dGVfcXVlcnlfaWQKK3NldCBjb21wdXRlX3F1ZXJ5X2lkID0gb247 CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKHZlcmJvc2UpIHNlbGVjdCAqIGZyb20g aW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMuaW50 OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0cHV0OiBxMSwg cTIKKyBRdWVyeSBJZGVudGlmaWVyOiBOCisoMyByb3dzKQorCistLSBUZXN0IGNvbXB1dGVfcXVl cnlfaWQgd2l0aCB1dGlsaXR5IHN0YXRlbWVudHMgY29udGFpbmluZyBwbGFubmFibGUgcXVlcnkK K3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAodmVyYm9zZSkgZGVjbGFyZSB0ZXN0X2N1 ciBjdXJzb3IgZm9yIHNlbGVjdCAqIGZyb20gaW50OF90YmwnKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiBwdWJsaWMuaW50OF90YmwgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQor ICAgT3V0cHV0OiBxMSwgcTIKKyBRdWVyeSBJZGVudGlmaWVyOiBOCisoMyByb3dzKQorCitzZWxl Y3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKHZlcmJvc2UpIGNyZWF0ZSB0YWJsZSB0ZXN0X2N0 YXMgYXMgc2VsZWN0IDEnKTsKKyAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQgIChj b3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgT3V0cHV0OiBOCisgUXVlcnkgSWRlbnRp ZmllcjogTgorKDMgcm93cykKKworLS0gVGVzdCBTRVJJQUxJWkUgb3B0aW9uCitzZWxlY3QgZXhw bGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsYnVmZmVycyBvZmYsc2VyaWFsaXplKSBzZWxl Y3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0 dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4g bXMKKyBTZXJpYWxpemF0aW9uOiB0aW1lPU4uTiBtcyAgb3V0cHV0PU5rQiAgZm9ybWF0PXRleHQK KyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNCByb3dzKQorCitzZWxlY3QgZXhwbGFpbl9maWx0 ZXIoJ2V4cGxhaW4gKGFuYWx5emUsc2VyaWFsaXplIHRleHQsYnVmZmVycyx0aW1pbmcgb2ZmKSBz ZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNv c3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pIChhY3R1YWwgcm93cz1OLk4gbG9vcHM9TikKKyBQ bGFubmluZyBUaW1lOiBOLk4gbXMKKyBTZXJpYWxpemF0aW9uOiBvdXRwdXQ9TmtCICBmb3JtYXQ9 dGV4dAorIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisKK3NlbGVjdCBleHBsYWlu X2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxzZXJpYWxpemUgYmluYXJ5LGJ1ZmZlcnMsdGltaW5n KSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1O KSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1l OiBOLk4gbXMKKyBTZXJpYWxpemF0aW9uOiB0aW1lPU4uTiBtcyAgb3V0cHV0PU5rQiAgZm9ybWF0 PWJpbmFyeQorIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3MpCisKKy0tIHRoaXMgdGVz dHMgYW4gZWRnZSBjYXNlIHdoZXJlIHdlIGhhdmUgbm8gZGF0YSB0byByZXR1cm4KK3NlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZmZXJzIG9mZixzZXJpYWxpemUpIGNy ZWF0ZSB0ZW1wIHRhYmxlIGV4cGxhaW5fdGVtcCBhcyBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTgg IChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93 cz1OLk4gbG9vcHM9TikKKyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBTZXJpYWxpemF0aW9uOiB0 aW1lPU4uTiBtcyAgb3V0cHV0PU5rQiAgZm9ybWF0PXRleHQKKyBFeGVjdXRpb24gVGltZTogTi5O IG1zCisoNCByb3dzKQorCistLSBUZXN0IHR1cGxlc3RvcmUgc3RvcmFnZSB1c2FnZSBpbiBXaW5k b3cgYWdncmVnYXRlIChtZW1vcnkgY2FzZSkKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFp biAoYW5hbHl6ZSxidWZmZXJzIG9mZixjb3N0cyBvZmYpIHNlbGVjdCBzdW0obikgb3ZlcigpIGZy b20gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIGEobiknKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCB0aW1lPU4u Ti4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBXaW5kb3c6IHcxIEFTICgpCisgICBTdG9yYWdl OiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgYSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikK KyBQbGFubmluZyBUaW1lOiBOLk4gbXMKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNiByb3dz KQorCistLSBUZXN0IHR1cGxlc3RvcmUgc3RvcmFnZSB1c2FnZSBpbiBXaW5kb3cgYWdncmVnYXRl IChkaXNrIGNhc2UpCitzZXQgd29ya19tZW0gdG8gNjQ7CitzZWxlY3QgZXhwbGFpbl9maWx0ZXIo J2V4cGxhaW4gKGFuYWx5emUsYnVmZmVycyBvZmYsY29zdHMgb2ZmKSBzZWxlY3Qgc3VtKG4pIG92 ZXIoKSBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDI1MDApIGEobiknKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVh bCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBXaW5kb3c6IHcxIEFTICgpCisg ICBTdG9yYWdlOiBEaXNrICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIGEgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxv b3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcwor KDYgcm93cykKKworLS0gVGVzdCB0dXBsZXN0b3JlIHN0b3JhZ2UgdXNhZ2UgaW4gV2luZG93IGFn Z3JlZ2F0ZSAobWVtb3J5IGFuZCBkaXNrIGNhc2UsIGZpbmFsIHJlc3VsdCBpcyBkaXNrKQorc2Vs ZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLGNvc3RzIG9m Zikgc2VsZWN0IHN1bShuKSBvdmVyKHBhcnRpdGlvbiBieSBtKSBmcm9tIChTRUxFQ1QgbiA8IDMg YXMgbSwgbiBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDI1MDApIGEobikpJyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorICAgV2lu ZG93OiB3MSBBUyAoUEFSVElUSU9OIEJZICgoYS5uIDwgTikpKQorICAgU3RvcmFnZTogRGlzayAg TWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIC0+ICBTb3J0IChhY3R1YWwgdGltZT1OLk4uLk4uTiBy b3dzPU4uTiBsb29wcz1OKQorICAgICAgICAgU29ydCBLZXk6ICgoYS5uIDwgTikpCisgICAgICAg ICBTb3J0IE1ldGhvZDogZXh0ZXJuYWwgbWVyZ2UgIERpc2s6IE5rQgorICAgICAgICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIGEgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJv d3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6 IE4uTiBtcworKDkgcm93cykKKworcmVzZXQgd29ya19tZW07CmRpZmYgLS1naXQgYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CmluZGV4IGQxNmJjMjA4NjUuLjBkN2Y0NTc5YjkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CkBAIC0yNjM2LDYgKzI2MzYsNyBAQCBTU0wKIFNTTEV4dGVuc2lvbkluZm9Db250ZXh0CiBT U0xfQ1RYCiBTVEFSVFVQSU5GTworU3RvcmFnZUlPVXNhZ2UKIFNUUkxFTgogU1YKIFNZTkNIUk9O SVpBVElPTl9CQVJSSUVSCgpiYXNlLWNvbW1pdDogOTE0ZWExYzkzYzBlNDQ2YTBjZDE3NDQ5N2Zk NmEyMmZkNjA3MWM1ZQotLSAKMi40My4wCgo= --=_5870a16788b3af30b8460d39d8e7165a--