Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wQSPL-001ZPC-2U for pgsql-hackers@arkaria.postgresql.org; Fri, 22 May 2026 16:07:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wQSPI-00DetO-0I for pgsql-hackers@arkaria.postgresql.org; Fri, 22 May 2026 16:07:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wQSPH-00Desl-0s for pgsql-hackers@lists.postgresql.org; Fri, 22 May 2026 16:07:28 +0000 Received: from mail-yx1-xb132.google.com ([2607:f8b0:4864:20::b132]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wQSPG-00000000ID0-1Mg3 for pgsql-hackers@postgresql.org; Fri, 22 May 2026 16:07:27 +0000 Received: by mail-yx1-xb132.google.com with SMTP id 956f58d0204a3-65c0bda7f15so7557463d50.0 for ; Fri, 22 May 2026 09:07:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779466046; cv=none; d=google.com; s=arc-20240605; b=HMP2Dbt9gcR4Ded5j0C5t1HKJGu30QfT+a/j+iZffMJzdi4Al0IHZbmm5TgXuoM3md +rEudx+htXGt04klGw7xd9d4aPxr5J+BzYBbSsZwLxl4fnyp5rP5ohwylLFHYa7nHuXe ns0/2DYt8P4PoK3ZwVn1xd5JWid2KcgLT1H/3V+ul8bmH8zWan+UROaWDwR88gi27xlH zPzV/pdyxSO4fw6CzKISsh7crSR/6LCWvLPm2vPzIOTH+Id8YxgJtJZjNcf6SkZ1/PcQ 5jNxpWALg2XXZmCct4fMPULIZiOyopC92RPEMX0vxrhYO3HWl6I0TR2URxmo/rynj+/B /agw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=nn8eT1DXaBOCEkRUg4ra01vkPYeztEaEtP1lXDlZeV0=; fh=GIXyCrQkMN3exj5WwYmZu/ruGsG53eU/I5ZDvJ31tjQ=; b=iiUe6AZzINsfHegRDxDFripiCTDku4nyAMnUcvSBXskw2wJvRjFq9ys18wC0sJasNs Pu4Y6wd15c1gMyI6QwIyVr4/3ObAb4kFPsSXsgoc986VRs76W0oT4X5v2EcP6Dms4IGl 6YFoRIzxSsiEUKnYudKvh9Kw9PItesmpRmsjH4qUdBXuC6P5BQrpDLJRlQgmUwHmBVOk oztF220EPQYxWzvZy+1xzL4LKC0Sl/yDMI8AXtNA6Pjl6cgukcT7cHn5zAsdUTMY2D9R AsF0i5uQaq+jzVfJwKe58rOFSZ6gG6gOaocuA4vX3Le8MZWJ0EdTj6YWfm+asQdCVkPn n7FA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779466046; x=1780070846; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nn8eT1DXaBOCEkRUg4ra01vkPYeztEaEtP1lXDlZeV0=; b=BLe7F+NoyS3tFx6dBcgjHS7MhrZcVr0OehS/om5EOx3Y1Jxwr4XNxWnMTM1+Iop/V3 qFJy9w/Z6VWu4gdzaSqWZRcZI7s0VseRb0BNwKJoMx7uzUd4BHGHzcLPBas+6omFv79J 4PS84n57a4TZiIHaPkPjzX5WM+mVPZkW2qs14WN+Gu9gCR3TCeNB89W9oesoQyLO2svH IZXBbkTkhqFIF9lmaQ0Bnyw56ZSyahWkssSF1YPv4NU+Ybt3fcqItTVmuZTTY3A+97qw 358IH9CZfjcUDDRy4KPaYgKP5OxuRSH00RuitXIB1Wlh4Jw+BNI6qskjv8fynYqvpnS5 xJAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779466046; x=1780070846; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=nn8eT1DXaBOCEkRUg4ra01vkPYeztEaEtP1lXDlZeV0=; b=C+2g2DSzLD/TJg1+C7N+bzz+eCqbtKvibJSAZ0u5CHsq+wbIipyaXg94VNZUe+v29E g4M8vCMbUXSQea/E1hhWhGQeo/Xvcq3B/VF5IHAeb/c2oAE6bvG+WoQxfY0WrZQoL6FT cLPVQxllspydvy8mPa9GEbGOLuOy0a+0D6lV8pBnzkMywECA5q6dyszxzpVqDP7Kv3XA SMSwwe4vj53u001HB4JkN4D0s904So+/JiVB5OhdJ/SSDkUgYTEbmcRcnNe/rLAorXNE iS4CnKFf3s9Al0bm+Nt42FWVnA0maQhtr3MPW7BAAzy6SqbiMaUGvaUNpVpvzeDFqHat rBZw== X-Forwarded-Encrypted: i=1; AFNElJ+KU2cKJ4Uls97rmZkTI6Rusw0jJh7w64ESkzBbpI8Cvjc2mwkxEZdLso91XNWA+lF3w4zuJetMXuu1YP6G@postgresql.org X-Gm-Message-State: AOJu0YydMcM6cMLBpoKzNpjK7K5r1ntibEg9ZB4j0YiQi7eqPrqgEIzq 6HrO/sUojJ1fiVXtIDi/xNxuSZA77YwIwfLGyYUGcsfR/UvUxfRMFTh1NChhpvnetSQ8es8lTXI 3TO9oUXvj615KMdy+Tnz8i9UYDZ4z8yk= X-Gm-Gg: Acq92OH5o7IXbbF2QIsUNblXfYSibYtuxBoNXxeBtNPDjQ5njeu5UpBOmqXmErY1gj5 TDv8CND9qIb8jTnY3Zt9iZJIsrgjulbZOtM9XlH/AedcmLVPKe0QvL5znNAo29pfnDK+OdO9cI9 6eXWNknr9atWwk0WcUOl2z1a+3bpGKSqO3ickea+eLa+2XE2ixyyTOQoKzkSvZbTtpB3bYho+hi whT73h1506PYqJv4vZoBm/+MqxgZiAGjff1H0MV5J1u6TiqVMs1FOmxa4cIABf5bO3qjTR7Nu4U 2lyOYUuVCvUcCPLyKJbBkCvg0rReOuVMJ2C4n4FC X-Received: by 2002:a05:690e:4813:b0:651:cf23:6612 with SMTP id 956f58d0204a3-65ec98c2f43mr3009878d50.34.1779466045425; Fri, 22 May 2026 09:07:25 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Atsushi Torikoshi Date: Sat, 23 May 2026 01:07:12 +0900 X-Gm-Features: AVHnY4JOx_2w7FmMy6yJpgjMZkhVkpRsTHfnlZlOPRN_LEHma7xDywDvfyxcZwQ Message-ID: Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information To: vellaipandiyan sm Cc: torikoshia , Pgsql Hackers Content-Type: multipart/mixed; boundary="00000000000087a51206526a39d5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000087a51206526a39d5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks for the review! On Thu, May 21, 2026 at 2:38=E2=80=AFPM vellaipandiyan sm wrote: > > Hello hackers, > > I reviewed the EXPLAIN storage I/O patch and the overall direction seems = useful, especially for distinguishing shared-buffer hits from actual storag= e reads during query analysis. > > One concern that stood out to me from the later discussion is the interac= tion with asynchronous I/O and worker-based I/O accounting. > > Since the patch currently relies on per-process getrusage() statistics, i= t seems possible that the reported values could become partial or misleadin= g once I/O is performed outside the backend process context. In particular,= worker-based AIO could undercount storage reads/writes while still returni= ng non-zero values, which may make the output appear more accurate than it = actually is. Yeah, to avoid reporting the misleadingly underestimated values, no output is shown when worker-based AIO is used, as described in the docs: + ..Also, when + is set to worker, no= output + will be shown, as I/O handled by asynchronous workers cannot be measured + accurately. > I also wonder whether this should affect the semantics/documentation of t= he feature itself =E2=80=94 i.e. whether the reported numbers should be des= cribed more explicitly as =E2=80=9Cbackend-observed synchronous storage I/O= =E2=80=9D rather than total query I/O. Updated the patch to clarify that the reported values include not only the backend process executing the query, but also any parallel query worker processes involved in the query. -- Regards, Atsushi Torikoshi --00000000000087a51206526a39d5 Content-Type: application/octet-stream; name="v11-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch" Content-Disposition: attachment; filename="v11-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mph43jb60 RnJvbSBlYjNlZWQ0ZTgwMWQ0MWJlMmI5YmMzYzYxM2ViN2Q0N2FiNzllNjZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFNhdCwgMjMgTWF5IDIwMjYgMDE6MDQ6NTIgKzA5MDAKU3ViamVjdDog W1BBVENIIHYxMV0gQWRkIHN0b3JhZ2UgSS9PIHRyYWNraW5nIHRvICdCVUZGRVJTJyBvcHRpb24K ClRoZSAnQlVGRkVSUycgb3B0aW9uIGN1cnJlbnRseSBpbmRpY2F0ZXMgd2hldGhlciBhIGJsb2Nr IGhpdCB0aGUgc2hhcmVkCmJ1ZmZlciwgYnV0IGRvZXMgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4g YSBjYWNoZSBoaXQgaW4gdGhlIE9TIGNhY2hlIG9yCmEgc3RvcmFnZSBJL08gb3BlcmF0aW9uLgpX aGlsZSBzaGFyZWQgYnVmZmVycyBhbmQgT1MgY2FjaGUgb2ZmZXIgc2ltaWxhciBwZXJmb3JtYW5j ZSwgc3RvcmFnZQpJL08gaXMgc2lnbmlmaWNhbnRseSBzbG93ZXIgaW4gY29tcGFyaXNvbiBpbiBn ZW5lcmFsLiAgQnkgbWVhc3VyaW5nCnRoZSBudW1iZXJzIG9mIHN0b3JhZ2UgSS9PIHJlYWQgYW5k IHdyaXRlLCB3ZSBjYW4gYmV0dGVyIGlkZW50aWZ5IGlmCnN0b3JhZ2UgSS9PIGlzIGEgYm90dGxl bmVjayBpbiBwZXJmb3JtYW5jZS4KClRoaXMgcGF0Y2ggZW5hYmxlcyB0byB0cmFjayBzdG9yYWdl IEkvTyB1c2FnZSBieSBjYWxsaW5nIGdldHJ1c2FnZSgyKQphdCBib3RoIHRoZSBwbGFubmluZyBh bmQgZXhlY3V0aW9uIHBoYXNlIHN0YXJ0IGFuZCBlbmQgcG9pbnRzLgoKQSBtb3JlIGdyYW51bGFy IGFwcHJvYWNoIGFzIHdlbGwgYXMgY3VycmVudCBCVUZGRVJTIG9wdGlvbih0cmFja2luZyBhdApl YWNoIHBsYW4gbm9kZSkgd2FzIGNvbnNpZGVyZWQgYnV0IGZvdW5kIHRvIGJlIGltcHJhY3RpY2Fs IGR1ZSB0byB0aGUKaGlnaCBwZXJmb3JtYW5jZSBjb3N0IG9mIGZyZXF1ZW50IGdldHJ1c2FnZSgp IGNhbGxzLgoKTm90ZSB0aGF0IG5vIG91dHB1dCBpcyBzaG93biB3aGVuIGlvX21ldGhvZD13b3Jr ZXIsIHNpbmNlIGFzeW5jaHJvbm91cwp3b3JrZXJzIGhhbmRsZSBJL08gZm9yIG11bHRpcGxlIHBy b2Nlc3NlcywgYW5kIGlzb2xhdGluZyB0aGUgRVhQTEFJTgp0YXJnZXQncyBJL08gaXMgZGlmZmlj dWx0LgoKVE9ETzoKSSBiZWxpZXZlIHRoaXMgaW5mb3JtYXRpb24gaXMgbWFpbmx5IHVzZWZ1bCB3 aGVuIHVzZWQgaW4gYXV0b19leHBsYWluLgpJJ20gZ29pbmcgdG8gaW1wbGVtZW50IGl0IGlmIHRo aXMgcGF0Y2ggaXMgbWVyZ2VkLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAyNyArCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgICAg ICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMg ICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMg ICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAgICAg ICAgICAgICAgfCAxMjUgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgICAgICAg ICAgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMg ICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAg ICAgICAgIHwgIDM1ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9pbnN0cnVtZW50LmMgICAgICAg ICAgICAgfCAgODQgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaCAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFyYWxsZWwuaCAgICAgICAg ICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oICAgICAgICAgICAg IHwgIDIxICstCiBzcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oICAgICAgICAg fCAgIDIgKwogc3JjL3BvcnQvd2luMzJnZXRydXNhZ2UuYyAgICAgICAgICAgICAgICAgICAgIHwg ICA0ICsKIC4uLi90ZXN0X21pc2MvdC8wMTFfZXhwbGFpbl9zdG9yYWdlX2lvLnBsICAgICB8ICA4 OSArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0ICAgICAgIHwgODY5 ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAg ICAgICAgICAgIHwgICAxICsKIDE3IGZpbGVzIGNoYW5nZWQsIDEyNzAgaW5zZXJ0aW9ucygrKSwg MzUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X21pc2MvdC8wMTFfZXhwbGFpbl9zdG9yYWdlX2lvLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0CgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9leHBsYWluLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbApp bmRleCBlOTVlMTkwODFlMS4uMDcyM2JjNzEzMTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBAIC0y MDgsNiArMjA4LDMzIEBAIFJPTExCQUNLOwogICAgICAgPGxpdGVyYWw+VFJVRTwvbGl0ZXJhbD4g d2l0aG91dCA8bGl0ZXJhbD5BTkFMWVpFPC9saXRlcmFsPiwKICAgICAgIG9ubHkgYnVmZmVyIHVz YWdlIGR1cmluZyB0aGUgcXVlcnkgcGxhbm5pbmcgcGhhc2UgaXMgcmVwb3J0ZWQuCiAgICAgIDwv cGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBJZiBwb3NzaWJsZSwgdGhpcyBvcHRpb24gYWxzbyBk aXNwbGF5cyA8ZW1waGFzaXM+U3RvcmFnZSBJL088L2VtcGhhc2lzPgorICAgICAgc3RhdGlzdGlj cyBhdCB0aGUgZW5kIG9mIHRoZSBwbGFuLiBUaGUgc3RvcmFnZSBJL08KKyAgICAgIDxlbXBoYXNp cz5yZWFkPC9lbXBoYXNpcz4gdmFsdWUgaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YgcmVhZCBvcGVy YXRpb25zCisgICAgICBwZXJmb3JtZWQgb24gc3RvcmFnZSBkdXJpbmcgcXVlcnkgcGxhbm5pbmcg YW5kIGV4ZWN1dGlvbiwgd2hpbGUgdGhlCisgICAgICBTdG9yYWdlIEkvTyA8ZW1waGFzaXM+d3Jp dGU8L2VtcGhhc2lzPiB2YWx1ZSBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZgorICAgICAgd3JpdGUg b3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gc3RvcmFnZSBkdXJpbmcgdGhlc2UgcGhhc2VzLgorICAg ICAgVGhlc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSA8ZnVuY3Rpb24+Z2V0cnVzYWdl KCk8L2Z1bmN0aW9uPiBzeXN0ZW0KKyAgICAgIGNhbGwgZm9yIHRoZSBiYWNrZW5kIHByb2Nlc3Mg ZXhlY3V0aW5nIHRoZSBxdWVyeSBhbmQgZm9yIGFueSBwYXJhbGxlbAorICAgICAgcXVlcnkgd29y a2VyIHByb2Nlc3NlcyBpbnZvbHZlZCBpbiB0aGUgcXVlcnkuCisgICAgICBOb3RlIHRoYXQgb24g cGxhdGZvcm1zIHRoYXQgZG8gbm90IHN1cHBvcnQKKyAgICAgIDxmdW5jdGlvbj5nZXRydXNhZ2Uo KTwvZnVuY3Rpb24+LCBzdWNoIGFzIFdpbmRvd3MsIG5vIG91dHB1dCB3aWxsIGJlIHNob3duLAor ICAgICAgZXZlbiBpZiByZWFkcyBvciB3cml0ZXMgYWN0dWFsbHkgb2NjdXIuIEFsc28sIHdoZW4K KyAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1pby1tZXRob2QiLz4gaXMgc2V0IHRvIDxsaXRlcmFs PndvcmtlcjwvbGl0ZXJhbD4sIG5vIG91dHB1dAorICAgICAgd2lsbCBiZSBzaG93biwgYXMgSS9P IGhhbmRsZWQgYnkgYXN5bmNocm9ub3VzIHdvcmtlcnMgY2Fubm90IGJlIG1lYXN1cmVkCisgICAg ICBhY2N1cmF0ZWx5LgorICAgICAgVGhlIHRpbWluZyBhbmQgdW5pdCBvZiBtZWFzdXJlbWVudCBm b3IgcmVhZCBhbmQgd3JpdGUgb3BlcmF0aW9ucyBtYXkgdmFyeQorICAgICAgZGVwZW5kaW5nIG9u IHRoZSBwbGF0Zm9ybS4gRm9yIGV4YW1wbGUsIG9uIExpbnV4LCBhIHJlYWQgaXMgY291bnRlZCBv bmx5CisgICAgICBpZiB0aGlzIHByb2Nlc3MgY2F1c2VkIGRhdGEgdG8gYmUgZmV0Y2hlZCBmcm9t IHRoZSBzdG9yYWdlIGxheWVyLCBhbmQgYQorICAgICAgd3JpdGUgaXMgY291bnRlZCBhdCB0aGUg cGFnZS1kaXJ0eWluZyB0aW1lLiBPbiBMaW51eCwgdGhlIHVuaXQgb2YKKyAgICAgIG1lYXN1cmVt ZW50IGZvciByZWFkIGFuZCB3cml0ZSBvcGVyYXRpb25zIGlzIDUxMiBieXRlcy4KKyAgICAgPC9w YXJhPgorICAgICA8cGFyYT4KKyAgICAgIEJ1ZmZlcnMgaW5mb3JtYXRpb24gaXMgaW5jbHVkZWQg YnkgZGVmYXVsdCB3aGVuIDxsaXRlcmFsPkFOQUxZWkU8L2xpdGVyYWw+CisgICAgICBpcyB1c2Vk IGJ1dCBvdGhlcndpc2UgaXMgbm90IGluY2x1ZGVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgZW5h YmxlZCB1c2luZworICAgICAgdGhpcyBvcHRpb24uCisgICAgIDwvcGFyYT4KICAgICA8L2xpc3Rp dGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9icmluL2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCBiZGIz MDc1MmUwOS4uMTE3M2FjZTE2MGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTI1NzMsNyAr MjU3Myw3IEBAIF9icmluX2VuZF9wYXJhbGxlbChCcmluTGVhZGVyICpicmlubGVhZGVyLCBCcmlu QnVpbGRTdGF0ZSAqc3RhdGUpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4p CiAJICovCiAJZm9yIChpID0gMDsgaSA8IGJyaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xhdW5j aGVkOyBpKyspCi0JCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZmZXJ1 c2FnZVtpXSwgJmJyaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVs UXVlcnkoJmJyaW5sZWFkZXItPmJ1ZmZlcnVzYWdlW2ldLCBOVUxMLCAmYnJpbmxlYWRlci0+d2Fs dXNhZ2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBp ZiBvbmUgd2FzIHVzZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoYnJpbmxlYWRlci0+c25hcHNo b3QpKQpAQCAtMjkzNiw3ICsyOTM2LDcgQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21f c2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJdHVwbGVzb3J0X2F0dGFjaF9zaGFyZWQoc2hh cmVkc29ydCwgc2VnKTsKIAogCS8qIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1cmlu ZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCUlu c3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KE5VTEwpOwogCiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxsIHVz ZSByZWxpYWJsZSBmaWd1cmUgd2hlbiBkb2xpbmcgb3V0IG1haW50ZW5hbmNlX3dvcmtfbWVtCkBA IC0yOTUxLDggKzI5NTEsOCBAQCBfYnJpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50 ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJpbmcg cGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2Ms IFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90b2Nf bG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFy YWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAm d2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnko JmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbHVz YWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCk7CiAKIAlpbmRleF9jbG9zZShpbmRleFJl bCwgaW5kZXhMb2NrbW9kZSk7CiAJdGFibGVfY2xvc2UoaGVhcFJlbCwgaGVhcExvY2ttb2RlKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IGNiOWVkM2I1NjNjLi5mODY4NTJjNTJl ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC0xMTI1LDcgKzExMjUsNyBAQCBf Z2luX2VuZF9wYXJhbGxlbChHaW5MZWFkZXIgKmdpbmxlYWRlciwgR2luQnVpbGRTdGF0ZSAqc3Rh dGUpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCiAJICovCiAJZm9yIChp ID0gMDsgaSA8IGdpbmxlYWRlci0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7IGkrKykKLQkJSW5z dHJBY2N1bVBhcmFsbGVsUXVlcnkoJmdpbmxlYWRlci0+YnVmZmVydXNhZ2VbaV0sICZnaW5sZWFk ZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmdpbmxlYWRlci0+ YnVmZmVydXNhZ2VbaV0sIE5VTEwsICZnaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKIAogCS8qIEZy ZWUgbGFzdCByZWZlcmVuY2UgdG8gTVZDQyBzbmFwc2hvdCwgaWYgb25lIHdhcyB1c2VkICovCiAJ aWYgKElzTVZDQ1NuYXBzaG90KGdpbmxlYWRlci0+c25hcHNob3QpKQpAQCAtMjE4Niw3ICsyMTg2 LDcgQEAgX2dpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2Mg KnRvYykKIAl0dXBsZXNvcnRfYXR0YWNoX3NoYXJlZChzaGFyZWRzb3J0LCBzZWcpOwogCiAJLyog UHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAq LwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVlcnko TlVMTCk7CiAKIAkvKgogCSAqIE1pZ2h0IGFzIHdlbGwgdXNlIHJlbGlhYmxlIGZpZ3VyZSB3aGVu IGRvbGluZyBvdXQgbWFpbnRlbmFuY2Vfd29ya19tZW0KQEAgLTIyMDEsOCArMjIwMSw4IEBAIF9n aW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJ LyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwog CWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVGRkVSX1VT QUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tF WV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdl W1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2Vy TnVtYmVyXSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxlbFdv cmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJl cl0sIE5VTEwpOwogCiAJaW5kZXhfY2xvc2UoaW5kZXhSZWwsIGluZGV4TG9ja21vZGUpOwogCXRh YmxlX2Nsb3NlKGhlYXBSZWwsIGhlYXBMb2NrbW9kZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jCmluZGV4IDc1NmRmYTNkY2Y0Li4xMjdiZTI2MDBhOCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnRzb3J0LmMKQEAgLTE2MjAsNyArMTYyMCw3IEBAIF9idF9lbmRfcGFyYWxsZWwoQlRM ZWFkZXIgKmJ0bGVhZGVyKQogCSAqIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRlIGRhdGEuKQog CSAqLwogCWZvciAoaSA9IDA7IGkgPCBidGxlYWRlci0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7 IGkrKykKLQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJ0bGVhZGVyLT5idWZmZXJ1c2FnZVtp XSwgJmJ0bGVhZGVyLT53YWx1c2FnZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZi dGxlYWRlci0+YnVmZmVydXNhZ2VbaV0sIE5VTEwsICZidGxlYWRlci0+d2FsdXNhZ2VbaV0pOwog CiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUgd2FzIHVz ZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoYnRsZWFkZXItPnNuYXBzaG90KSkKQEAgLTE4Mjgs NyArMTgyOCw3IEBAIF9idF9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNo bV90b2MgKnRvYykKIAl9CiAKIAkvKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciB1c2FnZSBkdXJp bmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCi0JSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoKTsKKwlJ bnN0clN0YXJ0UGFyYWxsZWxRdWVyeShOVUxMKTsKIAogCS8qIFBlcmZvcm0gc29ydGluZyBvZiBz cG9vbCwgYW5kIHBvc3NpYmx5IGEgc3Bvb2wyICovCiAJc29ydG1lbSA9IG1haW50ZW5hbmNlX3dv cmtfbWVtIC8gYnRzaGFyZWQtPnNjYW50dXBsZXNvcnRzdGF0ZXM7CkBAIC0xODM4LDggKzE4Mzgs OCBAQCBfYnRfcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpCiAJLyogUmVwb3J0IFdBTC9idWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlv biAqLwogCWJ1ZmZlcnVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfQlVG RkVSX1VTQUdFLCBmYWxzZSk7CiAJd2FsdXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFM TEVMX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZl cnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVs V29ya2VyTnVtYmVyXSk7CisJSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJh bGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtl ck51bWJlcl0sIE5VTEwpOwogCiAjaWZkZWYgQlRSRUVfQlVJTERfU1RBVFMKIAlpZiAobG9nX2J0 cmVlX2J1aWxkX3N0YXRzKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDExMmMxN2IwZDY0Li5j M2ZmZjlhOWIxOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMzMsNiArMzMsNyBAQAogI2lu Y2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgog I2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2Fp b19zdWJzeXMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInRjb3Av dGNvcHByb3QuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTQ4LDYgKzE0OSw4 IEBAIHN0YXRpYyB2b2lkIHNob3dfZm9yZWlnbnNjYW5faW5mbyhGb3JlaWduU2NhblN0YXRlICpm c3N0YXRlLCBFeHBsYWluU3RhdGUgKmVzKTsKIHN0YXRpYyBjb25zdCBjaGFyICpleHBsYWluX2dl dF9pbmRleF9uYW1lKE9pZCBpbmRleElkKTsKIHN0YXRpYyBib29sIHBlZWtfYnVmZmVyX3VzYWdl KEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSk7CiBzdGF0aWMgdm9p ZCBzaG93X2J1ZmZlcl91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAq dXNhZ2UpOworc3RhdGljIGJvb2wgcGVla19zdG9yYWdlaW9fdXNhZ2UoRXhwbGFpblN0YXRlICpl cywgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnVzYWdlKTsKK3N0YXRpYyB2b2lkIHNob3dfc3RvcmFn ZWlvX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSk7 CiBzdGF0aWMgdm9pZCBzaG93X3dhbF91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBXYWxV c2FnZSAqdXNhZ2UpOwogc3RhdGljIHZvaWQgc2hvd19tZW1vcnlfY291bnRlcnMoRXhwbGFpblN0 YXRlICplcywKIAkJCQkJCQkJIGNvbnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50 ZXJzKTsKQEAgLTMzMSw2ICszMzQsOCBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkg KnF1ZXJ5LCBpbnQgY3Vyc29yT3B0aW9ucywKIAkJCQlwbGFuZHVyYXRpb247CiAJQnVmZmVyVXNh Z2UgYnVmdXNhZ2Vfc3RhcnQsCiAJCQkJYnVmdXNhZ2U7CisJU3RvcmFnZUlPVXNhZ2Ugc3RvcmFn ZWlvLAorCQkJCXN0b3JhZ2Vpb19zdGFydDsKIAlNZW1vcnlDb250ZXh0Q291bnRlcnMgbWVtX2Nv dW50ZXJzOwogCU1lbW9yeUNvbnRleHQgcGxhbm5lcl9jdHggPSBOVUxMOwogCU1lbW9yeUNvbnRl eHQgc2F2ZWRfY3R4ID0gTlVMTDsKQEAgLTM1Miw3ICszNTcsMTAgQEAgc3RhbmRhcmRfRXhwbGFp bk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJfQogCiAJaWYgKGVz LT5idWZmZXJzKQorCXsKIAkJYnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOworCQlHZXRT dG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlvX3N0YXJ0KTsKKwl9CiAJSU5TVFJfVElNRV9TRVRfQ1VS UkVOVChwbGFuc3RhcnQpOwogCiAJLyogcGxhbiB0aGUgcXVlcnkgKi8KQEAgLTM2NywxNiArMzc1 LDIwIEBAIHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JP cHRpb25zLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZtZW1fY291 bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAq LworCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGFuZCBzdG9yYWdlIEkvTyBjb3VudGVy cy4gKi8KIAlpZiAoZXMtPmJ1ZmZlcnMpCiAJewogCQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXpl b2YoQnVmZmVyVXNhZ2UpKTsKIAkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdC dWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKKworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3Rv cmFnZWlvKTsKKwkJU3RvcmFnZUlPVXNhZ2VEaWZmKCZzdG9yYWdlaW8sICZzdG9yYWdlaW9fc3Rh cnQpOwogCX0KIAogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRwdXQgKi8K IAlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFtcywgcXVl cnlFbnYsCiAJCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDog TlVMTCksCisJCQkJICAgZXMtPmJ1ZmZlcnMgPyAmc3RvcmFnZWlvIDogTlVMTCwKIAkJCQkgICBl cy0+bWVtb3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogfQogCkBAIC01MDAsNyArNTEyLDcg QEAgdm9pZAogRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xh dXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJp bmcsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlF bnYsIGNvbnN0IGluc3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKLQkJCSAgIGNvbnN0IEJ1ZmZlclVz YWdlICpidWZ1c2FnZSwKKwkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgY29uc3Qg U3RvcmFnZUlPVXNhZ2UgKnBsYW5zdG9yYWdlaW8sCiAJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0 Q291bnRlcnMgKm1lbV9jb3VudGVycykKIHsKIAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CkBAIC01MTAs NiArNTIyLDcgQEAgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRv Q2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogCWludAkJCWVmbGFnczsKIAlpbnQJCQlp bnN0cnVtZW50X29wdGlvbiA9IDA7CiAJU2VyaWFsaXplTWV0cmljcyBzZXJpYWxpemVNZXRyaWNz ID0gezB9OworCVN0b3JhZ2VJT1VzYWdlIHN0b3JhZ2Vpb19zdGFydDsKIAogCUFzc2VydChwbGFu bmVkc3RtdC0+Y29tbWFuZFR5cGUgIT0gQ01EX1VUSUxJVFkpOwogCkBAIC01MTksNyArNTMyLDE5 IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywgRXhwbGFpblN0YXRlICplcywKIAkJaW5zdHJ1bWVudF9vcHRpb24gfD0gSU5TVFJVTUVO VF9ST1dTOwogCiAJaWYgKGVzLT5idWZmZXJzKQorCXsKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0 b3JhZ2Vpb19zdGFydCk7CisKKwkJLyoKKwkJICogSW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGUg Y291bnRlcnMgZm9yIHBhcmFsbGVsIHF1ZXJ5IHdvcmtlcnMuCisJCSAqIEV2ZW4gaWYgdGhlIHF1 ZXJ5IGlzIGNhbmNlbGxlZCBvbiB0aGUgd2F5LCB0aGUgRVhQTEFJTiBleGVjdXRpb24KKwkJICog YWx3YXlzIHBhc3NlcyBoZXJlLCBzbyBpdCBjYW4gYmUgaW5pdGlhbGl6ZWQgaGVyZS4KKwkJICov CisJCXBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbC5pbmJsb2NrID0gMDsKKwkJcGdTdG9yYWdlSU9V c2FnZVBhcmFsbGVsLm91dGJsb2NrID0gMDsKKwogCQlpbnN0cnVtZW50X29wdGlvbiB8PSBJTlNU UlVNRU5UX0JVRkZFUlM7CisJfQogCWlmIChlcy0+d2FsKQogCQlpbnN0cnVtZW50X29wdGlvbiB8 PSBJTlNUUlVNRU5UX1dBTDsKIAlpZiAoZXMtPmlvKQpAQCAtNjA1LDggKzYzMCw5IEBAIEV4cGxh aW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhw bGFpblN0YXRlICplcywKIAkvKiBDcmVhdGUgdGV4dHVhbCBkdW1wIG9mIHBsYW4gdHJlZSAqLwog CUV4cGxhaW5QcmludFBsYW4oZXMsIHF1ZXJ5RGVzYyk7CiAKLQkvKiBTaG93IGJ1ZmZlciBhbmQv b3IgbWVtb3J5IHVzYWdlIGluIHBsYW5uaW5nICovCi0JaWYgKHBlZWtfYnVmZmVyX3VzYWdlKGVz LCBidWZ1c2FnZSkgfHwgbWVtX2NvdW50ZXJzKQorCS8qIFNob3cgYnVmZmVyLCBzdG9yYWdlIEkv TywgYW5kL29yIG1lbW9yeSB1c2FnZSBpbiBwbGFubmluZyAqLworCWlmIChwZWVrX2J1ZmZlcl91 c2FnZShlcywgYnVmdXNhZ2UpIHx8IHBlZWtfc3RvcmFnZWlvX3VzYWdlKGVzLCBwbGFuc3RvcmFn ZWlvKSB8fAorCQltZW1fY291bnRlcnMpCiAJewogCQlFeHBsYWluT3Blbkdyb3VwKCJQbGFubmlu ZyIsICJQbGFubmluZyIsIHRydWUsIGVzKTsKIApAQCAtNjE4LDggKzY0NCwxMCBAQCBFeHBsYWlu T25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxh aW5TdGF0ZSAqZXMsCiAJCX0KIAogCQlpZiAoYnVmdXNhZ2UpCisJCXsKIAkJCXNob3dfYnVmZmVy X3VzYWdlKGVzLCBidWZ1c2FnZSk7Ci0KKwkJCXNob3dfc3RvcmFnZWlvX3VzYWdlKGVzLCBwbGFu c3RvcmFnZWlvKTsKKwkJfQogCQlpZiAobWVtX2NvdW50ZXJzKQogCQkJc2hvd19tZW1vcnlfY291 bnRlcnMoZXMsIG1lbV9jb3VudGVycyk7CiAKQEAgLTY3Niw2ICs3MDQsMzQgQEAgRXhwbGFpbk9u ZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWlu U3RhdGUgKmVzLAogCiAJdG90YWx0aW1lICs9IGVsYXBzZWRfdGltZSgmc3RhcnR0aW1lKTsKIAor CS8qIFNob3cgc3RvcmFnZSBJL08gdXNhZ2UgaW4gZXhlY3V0aW9uICovCisJaWYgKGVzLT5idWZm ZXJzKQorCXsKKwkJU3RvcmFnZUlPVXNhZ2Ugc3RvcmFnZWlvOworCisJCUdldFN0b3JhZ2VJT1Vz YWdlKCZzdG9yYWdlaW8pOworCQlTdG9yYWdlSU9Vc2FnZURpZmYoJnN0b3JhZ2VpbywgJnN0b3Jh Z2Vpb19zdGFydCk7CisJCVN0b3JhZ2VJT1VzYWdlQWRkKCZzdG9yYWdlaW8sICZwZ1N0b3JhZ2VJ T1VzYWdlUGFyYWxsZWwpOworCisJCWlmIChwZWVrX3N0b3JhZ2Vpb191c2FnZShlcywgJnN0b3Jh Z2VpbykpCisJCXsKKwkJCUV4cGxhaW5PcGVuR3JvdXAoIkV4ZWN1dGlvbiIsICJFeGVjdXRpb24i LCB0cnVlLCBlcyk7CisKKwkJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQp CisJCQl7CisJCQkJRXhwbGFpbkluZGVudFRleHQoZXMpOworCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoZXMtPnN0ciwgIkV4ZWN1dGlvbjpcbiIpOworCQkJCWVzLT5pbmRlbnQrKzsKKwkJCX0K KwkJCXNob3dfc3RvcmFnZWlvX3VzYWdlKGVzLCAmc3RvcmFnZWlvKTsKKworCQkJaWYgKGVzLT5m b3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRfVEVYVCkKKwkJCQllcy0+aW5kZW50LS07CisKKwkJCUV4 cGxhaW5DbG9zZUdyb3VwKCJFeGVjdXRpb24iLCAiRXhlY3V0aW9uIiwgdHJ1ZSwgZXMpOworCQl9 CisJfQorCiAJLyoKIAkgKiBXZSBvbmx5IHJlcG9ydCBleGVjdXRpb24gdGltZSBpZiB3ZSBhY3R1 YWxseSByYW4gdGhlIHF1ZXJ5ICh0aGF0IGlzLAogCSAqIHRoZSB1c2VyIHNwZWNpZmllZCBBTkFM WVpFKSwgYW5kIGlmIHN1bW1hcnkgcmVwb3J0aW5nIGlzIGVuYWJsZWQgKHRoZQpAQCAtNDQ1NCw2 ICs0NTEwLDY1IEBAIHNob3dfYnVmZmVyX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IEJ1 ZmZlclVzYWdlICp1c2FnZSkKIAl9CiB9CiAKKy8qCisgKiBSZXR1cm4gd2hldGhlciBzaG93X3N0 b3JhZ2Vpb191c2FnZSB3b3VsZCBoYXZlIGFueXRoaW5nIHRvIHByaW50LCBpZiBnaXZlbgorICog dGhlIHNhbWUgJ3VzYWdlJyBkYXRhLiAgTm90ZSB0aGF0IHdoZW4gdGhlIGZvcm1hdCBpcyBhbnl0 aGluZyBvdGhlciB0aGFuCisgKiB0ZXh0LCB3ZSBwcmludCBldmVuIGlmIHRoZSBjb3VudGVycyBh cmUgYWxsIHplcm9lcy4KKyAqLworc3RhdGljIGJvb2wKK3BlZWtfc3RvcmFnZWlvX3VzYWdlKEV4 cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSkKK3sKKwlpZiAodXNh Z2UgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJLyoKKwkgKiBTaW5jZSBzaG93aW5nIG9u bHkgdGhlIEkvTyBleGNsdWRpbmcgQUlPIHdvcmtlcnMgdW5kZXJlc3RpbWF0ZXMgdGhlCisJICog dG90YWwgSS9PLCB0cmVhdCB0aGlzIGNhc2UgYXMgaGF2aW5nIG5vdGhpbmcgdG8gcHJpbnQuCisJ ICovCisJaWYgKHBnYWlvX3dvcmtlcnNfZW5hYmxlZCgpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlp ZiAoZXMtPmZvcm1hdCAhPSBFWFBMQUlOX0ZPUk1BVF9URVhUKQorCQlyZXR1cm4gdHJ1ZTsKKwor CXJldHVybiB1c2FnZS0+aW5ibG9jayA+IDAgfHwgdXNhZ2UtPm91dGJsb2NrID4gMDsKK30KKwor LyoKKyAqIFNob3cgc3RvcmFnZSBJL08gdXNhZ2UuCisgKi8KK3N0YXRpYyB2b2lkCitzaG93X3N0 b3JhZ2Vpb191c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqdXNh Z2UpCit7CisJLyoKKwkgKiBTaW5jZSBzaG93aW5nIG9ubHkgdGhlIEkvTyBleGNsdWRpbmcgQUlP IHdvcmtlcnMgdW5kZXJlc3RpbWF0ZXMgdGhlCisJICogdG90YWwgSS9PLCBkbyBub3Qgc2hvdyBh bnl0aGluZy4KKwkgKi8KKwlpZiAocGdhaW9fd29ya2Vyc19lbmFibGVkKCkpCisJCXJldHVybjsK KworCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCisJeworCQkvKiBTaG93 IG9ubHkgcG9zaXRpdmUgY291bnRlciB2YWx1ZXMuICovCisJCWlmICh1c2FnZS0+aW5ibG9jayA8 PSAwICYmIHVzYWdlLT5vdXRibG9jayA8PSAwKQorCQkJcmV0dXJuOworCisJCUV4cGxhaW5JbmRl bnRUZXh0KGVzKTsKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAiU3RvcmFnZSBJ L086Iik7CisJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiByZWFkPSVsZCIsIChsb25nKSB1 c2FnZS0+aW5ibG9jayk7CisJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwgIiB3cml0ZT0lbGQi LCAobG9uZykgdXNhZ2UtPm91dGJsb2NrKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihlcy0+ c3RyLCAnXG4nKTsKKwl9CisJZWxzZQorCXsKKwkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiU3Rv cmFnZSBJL08gUmVhZCIsIE5VTEwsCisJCQkJCQkJICAgdXNhZ2UtPmluYmxvY2ssIGVzKTsKKwkJ RXhwbGFpblByb3BlcnR5SW50ZWdlcigiU3RvcmFnZSBJL08gV3JpdGUiLCBOVUxMLAorCQkJCQkJ CSAgIHVzYWdlLT5vdXRibG9jaywgZXMpOworCX0KK30KKwogLyoKICAqIFNob3cgV0FMIHVzYWdl IGRldGFpbHMuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCA4NzZhYWQyMTAwYS4uYWU0 NjNiOWE0MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTU4NCw2ICs1ODQsOCBAQCBFeHBs YWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywg RXhwbGFpblN0YXRlICplcywKIAlpbnN0cl90aW1lCXBsYW5kdXJhdGlvbjsKIAlCdWZmZXJVc2Fn ZSBidWZ1c2FnZV9zdGFydCwKIAkJCQlidWZ1c2FnZTsKKwlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdl aW8sCisJCQkJc3RvcmFnZWlvX3N0YXJ0OwogCU1lbW9yeUNvbnRleHRDb3VudGVycyBtZW1fY291 bnRlcnM7CiAJTWVtb3J5Q29udGV4dCBwbGFubmVyX2N0eCA9IE5VTEw7CiAJTWVtb3J5Q29udGV4 dCBzYXZlZF9jdHggPSBOVUxMOwpAQCAtNTk5LDcgKzYwMSwxMSBAQCBFeHBsYWluRXhlY3V0ZVF1 ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVzZSAqaW50bywgRXhwbGFpblN0YXRl ICplcywKIAl9CiAKIAlpZiAoZXMtPmJ1ZmZlcnMpCisJewogCQlidWZ1c2FnZV9zdGFydCA9IHBn QnVmZmVyVXNhZ2U7CisJCUdldFN0b3JhZ2VJT1VzYWdlKCZzdG9yYWdlaW9fc3RhcnQpOworCX0K KwogCUlOU1RSX1RJTUVfU0VUX0NVUlJFTlQocGxhbnN0YXJ0KTsKIAogCS8qIExvb2sgaXQgdXAg aW4gdGhlIGhhc2ggdGFibGUgKi8KQEAgLTY0NCwxMSArNjUwLDE0IEBAIEV4cGxhaW5FeGVjdXRl UXVlcnkoRXhlY3V0ZVN0bXQgKmV4ZWNzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3Rh dGUgKmVzLAogCQlNZW1vcnlDb250ZXh0TWVtQ29uc3VtZWQocGxhbm5lcl9jdHgsICZtZW1fY291 bnRlcnMpOwogCX0KIAotCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGNvdW50ZXJzLiAq LworCS8qIGNhbGMgZGlmZmVyZW5jZXMgb2YgYnVmZmVyIGFuZCBzdG9yYWdlIEkvTyBjb3VudGVy cy4gKi8KIAlpZiAoZXMtPmJ1ZmZlcnMpCiAJewogCQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXpl b2YoQnVmZmVyVXNhZ2UpKTsKIAkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdC dWZmZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKKworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3Rv cmFnZWlvKTsKKwkJU3RvcmFnZUlPVXNhZ2VEaWZmKCZzdG9yYWdlaW8sICZzdG9yYWdlaW9fc3Rh cnQpOwogCX0KIAogCXBsYW5fbGlzdCA9IGNwbGFuLT5zdG10X2xpc3Q7CkBAIC02NjEsNiArNjcw LDcgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1 c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCWlmIChwc3RtdC0+Y29tbWFuZFR5cGUgIT0g Q01EX1VUSUxJVFkpCiAJCQlFeHBsYWluT25lUGxhbihwc3RtdCwgaW50bywgZXMsIHF1ZXJ5X3N0 cmluZywgcGFyYW1MSSwgcHN0YXRlLT5wX3F1ZXJ5RW52LAogCQkJCQkJICAgJnBsYW5kdXJhdGlv biwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCisJCQkJCQkgICBlcy0+YnVmZmVy cyA/ICZzdG9yYWdlaW8gOiBOVUxMLAogCQkJCQkJICAgZXMtPm1lbW9yeSA/ICZtZW1fY291bnRl cnMgOiBOVUxMKTsKIAkJZWxzZQogCQkJRXhwbGFpbk9uZVV0aWxpdHkocHN0bXQtPnV0aWxpdHlT dG10LCBpbnRvLCBlcywgcHN0YXRlLCBwYXJhbUxJKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1w YXJhbGxlbC5jCmluZGV4IDQxY2VmY2ZkZTU0Li44ZmFkYWI1NzFmNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC05NDUsNyArOTQ1LDcgQEAgcGFyYWxsZWxfdmFjdXVt X3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2lu ZGV4X3NjYW4KIAkJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvRmluaXNoKHB2cy0+cGN4dCk7CiAK IAkJZm9yIChpbnQgaSA9IDA7IGkgPCBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKysp Ci0JCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0sICZwdnMt PndhbF91c2FnZVtpXSk7CisJCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJf dXNhZ2VbaV0sIE5VTEwsICZwdnMtPndhbF91c2FnZVtpXSk7CiAJfQogCiAJLyoKQEAgLTEzMDUs NyArMTMwNSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCiAJLyogUHJl cGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbiAqLwot CUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoTlVM TCk7CiAKIAkvKiBQcm9jZXNzIGluZGV4ZXMgdG8gcGVyZm9ybSB2YWN1dW0vY2xlYW51cCAqLwog CXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcygmcHZzKTsKQEAgLTEzMTMsOCAr MTMxMyw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2Mg KnRvYykKIAkvKiBSZXBvcnQgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0 aW9uICovCiAJYnVmZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9WQUNV VU1fS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2NfbG9va3Vw KHRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0ckVuZFBh cmFsbGVsUXVlcnkoJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCi0JCQkJCQkg ICZ3YWxfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVl cnkoJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJCQkgICZ3 YWxfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLCBOVUxMKTsKIAogCS8qIFJlcG9ydCBhbnkg cmVtYWluaW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHRpbWUgKi8KIAlpZiAodHJhY2tfY29z dF9kZWxheV90aW1pbmcpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFy YWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4IDgxYjg3 ZDgyZmFiLi40NDE4M2YzMDNiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1BhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAg LTY3LDYgKzY3LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJCVVJTlQ2NENP TlNUKDB4RTAwMDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJVF9JTlNUUlVN RU5UQVRJT04gVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmluZSBQQVJBTExF TF9LRVlfV0FMX1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBBKQorI2RlZmlu ZSBQQVJBTExFTF9LRVlfU1RPUkFHRUlPX1VTQUdFCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAw MDAwQikKIAogI2RlZmluZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgogCkBAIC02 NjMsNiArNjY0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUs IEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBzdG10X3NwYWNlOwogCWNoYXIJICAgKnBhcmFt bGlzdGluZm9fc3BhY2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOworCVN0b3JhZ2VJ T1VzYWdlICpzdG9yYWdlaW91c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2FnZV9zcGFj ZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9uID0gTlVM TDsKIAlTaGFyZWRKaXRJbnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVtZW50YXRpb24gPSBOVUxM OwpAQCAtNzQ0LDYgKzc0NiwxMyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBs YW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCQkJCQkgICBtdWxfc2l6ZShzaXplb2YoV2FsVXNh Z2UpLCBwY3h0LT5ud29ya2VycykpOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0 aW1hdG9yLCAxKTsKIAorCS8qCisJICogU2FtZSB0aGluZyBmb3IgU3RvcmFnZUlPVXNhZ2UuCisJ ICovCisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLAorCQkJCQkJICAg bXVsX3NpemUoc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKKwlzaG1f dG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkvKiBFc3RpbWF0ZSBz cGFjZSBmb3IgdHVwbGUgcXVldWVzLiAqLwogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQt PmVzdGltYXRvciwKIAkJCQkJCSAgIG11bF9zaXplKFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUs IHBjeHQtPm53b3JrZXJzKSk7CkBAIC04MzksNiArODQ4LDEyIEBAIEV4ZWNJbml0UGFyYWxsZWxQ bGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2luc2Vy dChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UsIHdhbHVzYWdlX3NwYWNlKTsKIAlw ZWktPndhbF91c2FnZSA9IHdhbHVzYWdlX3NwYWNlOwogCisJLyogU2FtZSBmb3IgU3RvcmFnZUlP VXNhZ2UuICovCisJc3RvcmFnZWlvdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQt PnRvYywKKwkJCQkJCQkJCQkJbXVsX3NpemUoc2l6ZW9mKFN0b3JhZ2VJT1VzYWdlKSwgcGN4dC0+ bndvcmtlcnMpKTsKKwlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9TVE9S QUdFSU9fVVNBR0UsIHN0b3JhZ2Vpb3VzYWdlX3NwYWNlKTsKKwlwZWktPnN0b3JhZ2Vpb191c2Fn ZSA9IHN0b3JhZ2Vpb3VzYWdlX3NwYWNlOworCiAJLyogU2V0IHVwIHRoZSB0dXBsZSBxdWV1ZXMg dGhhdCB0aGUgd29ya2VycyB3aWxsIHdyaXRlIGludG8uICovCiAJcGVpLT50cXVldWUgPSBFeGVj UGFyYWxsZWxTZXR1cFR1cGxlUXVldWVzKHBjeHQsIGZhbHNlKTsKIApAQCAtMTI1NSwxMSArMTI3 MCwxMSBAQCBFeGVjUGFyYWxsZWxGaW5pc2goUGFyYWxsZWxFeGVjdXRvckluZm8gKnBlaSkKIAlX YWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2gocGVpLT5wY3h0KTsKIAogCS8qCi0JICogTmV4 dCwgYWNjdW11bGF0ZSBidWZmZXIvV0FMIHVzYWdlLiAgKFRoaXMgbXVzdCB3YWl0IGZvciB0aGUg d29ya2VycyB0bwotCSAqIGZpbmlzaCwgb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4p CisJICogTmV4dCwgYWNjdW11bGF0ZSBidWZmZXIsIFdBTCwgYW5kIFN0b3JhZ2UgSS9PIHVzYWdl LiAoVGhpcyBtdXN0IHdhaXQKKwkgKiBmb3IgdGhlIHdvcmtlcnMgdG8gZmluaXNoLCBvciB3ZSBt aWdodCBnZXQgaW5jb21wbGV0ZSBkYXRhLikKIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgbndvcmtl cnM7IGkrKykKLQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJnBlaS0+YnVmZmVyX3VzYWdlW2ld LCAmcGVpLT53YWxfdXNhZ2VbaV0pOworCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcGVpLT5i dWZmZXJfdXNhZ2VbaV0sICZwZWktPnN0b3JhZ2Vpb191c2FnZVtpXSwgJnBlaS0+d2FsX3VzYWdl W2ldKTsKIAogCXBlaS0+ZmluaXNoZWQgPSB0cnVlOwogfQpAQCAtMTUxNSw2ICsxNTMwLDggQEAg UGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogewogCUZp eGVkUGFyYWxsZWxFeGVjdXRvclN0YXRlICpmcGVzOwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNh Z2U7CisJU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb191c2FnZTsKKwlTdG9yYWdlSU9Vc2FnZSBz dG9yYWdlaW9fdXNhZ2Vfc3RhcnQ7CiAJV2FsVXNhZ2UgICAqd2FsX3VzYWdlOwogCURlc3RSZWNl aXZlciAqcmVjZWl2ZXI7CiAJUXVlcnlEZXNjICAqcXVlcnlEZXNjOwpAQCAtMTU2OCwxMyArMTU4 NSwxNCBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2Mp CiAJRXhlY1NldFR1cGxlQm91bmQoZnBlcy0+dHVwbGVzX25lZWRlZCwgcXVlcnlEZXNjLT5wbGFu c3RhdGUpOwogCiAJLyoKLQkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlci9XQUwgdXNhZ2UgZHVy aW5nIHF1ZXJ5IGV4ZWN1dGlvbi4KKwkgKiBQcmVwYXJlIHRvIHRyYWNrIGJ1ZmZlciwgV0FMLCBh bmQgU3RvcmFnZUkvTyB1c2FnZSBkdXJpbmcgcXVlcnkKKwkgKiBleGVjdXRpb24uCiAJICoKIAkg KiBXZSBkbyB0aGlzIGFmdGVyIHN0YXJ0aW5nIHVwIHRoZSBleGVjdXRvciB0byBtYXRjaCB3aGF0 IGhhcHBlbnMgaW4gdGhlCiAJICogbGVhZGVyLCB3aGljaCBhbHNvIGRvZXNuJ3QgY291bnQgYnVm ZmVyIGFjY2Vzc2VzIGFuZCBXQUwgYWN0aXZpdHkgdGhhdAogCSAqIG9jY3VyIGR1cmluZyBleGVj dXRvciBzdGFydHVwLgogCSAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJT dGFydFBhcmFsbGVsUXVlcnkoJnN0b3JhZ2Vpb191c2FnZV9zdGFydCk7CiAKIAkvKgogCSAqIFJ1 biB0aGUgcGxhbi4gIElmIHdlIHNwZWNpZmllZCBhIHR1cGxlIGJvdW5kLCBiZSBjYXJlZnVsIG5v dCB0byBkZW1hbmQKQEAgLTE1ODcsMTEgKzE2MDUsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNt X3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFNodXQgZG93biB0aGUgZXhlY3V0b3Ig Ki8KIAlFeGVjdXRvckZpbmlzaChxdWVyeURlc2MpOwogCi0JLyogUmVwb3J0IGJ1ZmZlci9XQUwg dXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlvbi4gKi8KKwkvKiBSZXBvcnQgYnVmZmVyLCBX QUwsIGFuZCBzdG9yYWdlIEkvTyB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uLiAqLwog CWJ1ZmZlcl91c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9V U0FHRSwgZmFsc2UpOworCXN0b3JhZ2Vpb191c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFS QUxMRUxfS0VZX1NUT1JBR0VJT19VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2Nf bG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwogCUluc3RyRW5kUGFy YWxsZWxRdWVyeSgmYnVmZmVyX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKLQkJCQkJCSAg JndhbF91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0pOworCQkJCQkJICAmc3RvcmFnZWlvX3Vz YWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwKKwkJCQkJCSAgJndhbF91c2FnZVtQYXJhbGxlbFdv cmtlck51bWJlcl0sCisJCQkJCQkgICZzdG9yYWdlaW9fdXNhZ2Vfc3RhcnQpOwogCiAJLyogUmVw b3J0IGluc3RydW1lbnRhdGlvbiBkYXRhIGlmIGFueSBpbnN0cnVtZW50YXRpb24gb3B0aW9ucyBh cmUgc2V0LiAqLwogCWlmIChpbnN0cnVtZW50YXRpb24gIT0gTlVMTCkKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2lu c3RydW1lbnQuYwppbmRleCBmZmJjZDU3MjEzMy4uZDg0NzY5YjAyMTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9pbnN0cnVtZW50LmMKQEAgLTEzLDYgKzEzLDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAog I2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCkBAIC0yMCwxNCArMjEsMjQgQEAKICNpbmNs dWRlICJleGVjdXRvci90dXB0YWJsZS5oIgogI2luY2x1ZGUgIm5vZGVzL2V4ZWNub2Rlcy5oIgog I2luY2x1ZGUgInBvcnRhYmlsaXR5L2luc3RyX3RpbWUuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2Fp b19zdWJzeXMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWNfaG9va3MuaCIKIAogQnVmZmVyVXNhZ2Ug cGdCdWZmZXJVc2FnZTsKIHN0YXRpYyBCdWZmZXJVc2FnZSBzYXZlX3BnQnVmZmVyVXNhZ2U7CisK Ky8qCisgKiBBY2N1bXVsYXRlcyB0aGUgSS9PIHVzYWdlIHNlbnQgYnkgcGFyYWxsZWwgd29ya2Vy cyB0byB0aGUgbWFpbgorICogcHJvY2Vzcy4gVGhpcyBkb2VzIG5vdCBjb250YWluIHRoZSBJL08g ZnJvbSB0aGUgbWFpbiBiYWNrZW5kIHByb2Nlc3MKKyAqIGl0c2VsZiBiZWNhdXNlIHRoZSBrZXJu ZWwgdHJhY2tzIHRoYXQgaW5zdGVhZCBvZiB1cy4KKyAqLworU3RvcmFnZUlPVXNhZ2UgcGdTdG9y YWdlSU9Vc2FnZVBhcmFsbGVsOworCiBXYWxVc2FnZQlwZ1dhbFVzYWdlOwogc3RhdGljIFdhbFVz YWdlIHNhdmVfcGdXYWxVc2FnZTsKIAogc3RhdGljIHZvaWQgQnVmZmVyVXNhZ2VBZGQoQnVmZmVy VXNhZ2UgKmRzdCwgY29uc3QgQnVmZmVyVXNhZ2UgKmFkZCk7Cit2b2lkCQlTdG9yYWdlSU9Vc2Fn ZUFkZChTdG9yYWdlSU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqYWRkKTsKIHN0 YXRpYyB2b2lkIFdhbFVzYWdlQWRkKFdhbFVzYWdlICpkc3QsIFdhbFVzYWdlICphZGQpOwogCiAK QEAgLTI3NiwyNyArMjg3LDQzIEBAIEluc3RyU3RvcFRyaWdnZXIoVHJpZ2dlckluc3RydW1lbnRh dGlvbiAqdGdpbnN0ciwgaW50NjQgZmlyaW5ncykKIAogLyogbm90ZSBjdXJyZW50IHZhbHVlcyBk dXJpbmcgcGFyYWxsZWwgZXhlY3V0b3Igc3RhcnR1cCAqLwogdm9pZAotSW5zdHJTdGFydFBhcmFs bGVsUXVlcnkodm9pZCkKK0luc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KFN0b3JhZ2VJT1VzYWdlICpz dG9yYWdlaW91c2FnZSkKIHsKIAlzYXZlX3BnQnVmZmVyVXNhZ2UgPSBwZ0J1ZmZlclVzYWdlOwog CXNhdmVfcGdXYWxVc2FnZSA9IHBnV2FsVXNhZ2U7CisKKwlpZiAoc3RvcmFnZWlvdXNhZ2UgIT0g TlVMTCkKKwkJR2V0U3RvcmFnZUlPVXNhZ2Uoc3RvcmFnZWlvdXNhZ2UpOwogfQogCiAvKiByZXBv cnQgdXNhZ2UgYWZ0ZXIgcGFyYWxsZWwgZXhlY3V0b3Igc2h1dGRvd24gKi8KIHZvaWQKLUluc3Ry RW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2Fn ZSkKK0luc3RyRW5kUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFN0b3JhZ2VJ T1VzYWdlICpzdG9yYWdlaW91c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlLCBTdG9yYWdlSU9Vc2Fn ZSAqc3RvcmFnZWlvdXNhZ2Vfc3RhcnQpCiB7CiAJbWVtc2V0KGJ1ZnVzYWdlLCAwLCBzaXplb2Yo QnVmZmVyVXNhZ2UpKTsKIAlCdWZmZXJVc2FnZUFjY3VtRGlmZihidWZ1c2FnZSwgJnBnQnVmZmVy VXNhZ2UsICZzYXZlX3BnQnVmZmVyVXNhZ2UpOworCisJaWYgKHN0b3JhZ2Vpb3VzYWdlICE9IE5V TEwgJiYgc3RvcmFnZWlvdXNhZ2Vfc3RhcnQgIT0gTlVMTCkKKwl7CisJCXN0cnVjdCBTdG9yYWdl SU9Vc2FnZSBzdG9yYWdlaW91c2FnZV9lbmQ7CisKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3Jh Z2Vpb3VzYWdlX2VuZCk7CisKKwkJbWVtc2V0KHN0b3JhZ2Vpb3VzYWdlLCAwLCBzaXplb2YoU3Rv cmFnZUlPVXNhZ2UpKTsKKwkJU3RvcmFnZUlPVXNhZ2VBY2N1bURpZmYoc3RvcmFnZWlvdXNhZ2Us ICZzdG9yYWdlaW91c2FnZV9lbmQsIHN0b3JhZ2Vpb3VzYWdlX3N0YXJ0KTsKKwl9CiAJbWVtc2V0 KHdhbHVzYWdlLCAwLCBzaXplb2YoV2FsVXNhZ2UpKTsKIAlXYWxVc2FnZUFjY3VtRGlmZih3YWx1 c2FnZSwgJnBnV2FsVXNhZ2UsICZzYXZlX3BnV2FsVXNhZ2UpOwogfQogCiAvKiBhY2N1bXVsYXRl IHdvcmsgZG9uZSBieSB3b3JrZXJzIGluIGxlYWRlcidzIHN0YXRzICovCiB2b2lkCi1JbnN0ckFj Y3VtUGFyYWxsZWxRdWVyeShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2Fn ZSkKK0luc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFn ZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpCiB7CiAJQnVmZmVy VXNhZ2VBZGQoJnBnQnVmZmVyVXNhZ2UsIGJ1ZnVzYWdlKTsKKworCWlmIChzdG9yYWdlaW91c2Fn ZSAhPSBOVUxMKQorCQlTdG9yYWdlSU9Vc2FnZUFkZCgmcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVs LCBzdG9yYWdlaW91c2FnZSk7CiAJV2FsVXNhZ2VBZGQoJnBnV2FsVXNhZ2UsIHdhbHVzYWdlKTsK IH0KIApAQCAtMzUyLDYgKzM3OSw1NyBAQCBCdWZmZXJVc2FnZUFjY3VtRGlmZihCdWZmZXJVc2Fn ZSAqZHN0LAogCQkJCQkJICBhZGQtPnRlbXBfYmxrX3dyaXRlX3RpbWUsIHN1Yi0+dGVtcF9ibGtf d3JpdGVfdGltZSk7CiB9CiAKKy8qIGhlbHBlciBmdW5jdGlvbnMgZm9yIFN0b3JhZ2VJT1VzYWdl IHVzYWdlIGFjY3VtdWxhdGlvbiAqLwordm9pZAorU3RvcmFnZUlPVXNhZ2VBZGQoU3RvcmFnZUlP VXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCkKK3sKKwlkc3QtPmluYmxvY2sg Kz0gYWRkLT5pbmJsb2NrOworCWRzdC0+b3V0YmxvY2sgKz0gYWRkLT5vdXRibG9jazsKK30KKwor LyogZHN0ICs9IGFkZCAtIHN1YiAqLwordm9pZAorU3RvcmFnZUlPVXNhZ2VBY2N1bURpZmYoU3Rv cmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCwgY29uc3QgU3RvcmFn ZUlPVXNhZ2UgKnN1YikKK3sKKwlkc3QtPmluYmxvY2sgKz0gYWRkLT5pbmJsb2NrIC0gc3ViLT5p bmJsb2NrOworCWRzdC0+b3V0YmxvY2sgKz0gYWRkLT5vdXRibG9jayAtIHN1Yi0+b3V0YmxvY2s7 Cit9CisKKy8qIGRzdCAtPSBzdWIgKi8KK3ZvaWQKK1N0b3JhZ2VJT1VzYWdlRGlmZihTdG9yYWdl SU9Vc2FnZSAqZHN0LCBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqc3ViKQoreworCWRzdC0+aW5ibG9j ayAtPSBzdWItPmluYmxvY2s7CisJZHN0LT5vdXRibG9jayAtPSBzdWItPm91dGJsb2NrOworfQor CisvKiBDYXB0dXJlcyB0aGUgY3VycmVudCBzdG9yYWdlIEkvTyB1c2FnZSBzdGF0aXN0aWNzICov Cit2b2lkCitHZXRTdG9yYWdlSU9Vc2FnZShTdG9yYWdlSU9Vc2FnZSAqdXNhZ2UpCit7CisJc3Ry dWN0IHJ1c2FnZSBydXNhZ2U7CisKKwkvKgorCSAqIFNpbmNlIGdldHRpbmcgdGhlIEkvTyBleGNs dWRpbmcgQUlPIHdvcmtlcnMgdW5kZXJlc3RpbWF0ZXMgdGhlIHRvdGFsCisJICogSS9PLCBkb24n dCBnZXQgdGhlIEkvTyB1c2FnZSBzdGF0aXN0aWNzIHdoZW4gQUlPIHdvcmtlciBpcyBlbmFibGVk LgorCSAqLworCWlmIChwZ2Fpb193b3JrZXJzX2VuYWJsZWQoKSkKKwl7CisJCXVzYWdlLT5pbmJs b2NrID0gMDsKKwkJdXNhZ2UtPm91dGJsb2NrID0gMDsKKwkJcmV0dXJuOworCX0KKworCWlmIChn ZXRydXNhZ2UoUlVTQUdFX1NFTEYsICZydXNhZ2UpKQorCXsKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX1NZU1RFTV9FUlJPUiksCisJCQkJIGVycm1zZygiZ2V0cnVzYWdl KCkgZmFpbGVkOiAlbSIpKSk7CisJfQorCXVzYWdlLT5pbmJsb2NrID0gcnVzYWdlLnJ1X2luYmxv Y2s7CisJdXNhZ2UtPm91dGJsb2NrID0gcnVzYWdlLnJ1X291YmxvY2s7Cit9CisKIC8qIGhlbHBl ciBmdW5jdGlvbnMgZm9yIFdBTCB1c2FnZSBhY2N1bXVsYXRpb24gKi8KIHN0YXRpYyBpbmxpbmUg dm9pZAogV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRzdCwgV2FsVXNhZ2UgKmFkZCkKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2V4cGxhaW4uaAppbmRleCA0NzJlMTQxYmJhMy4uYmJhZGM1YjBjODMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9l eHBsYWluLmgKQEAgLTY5LDYgKzY5LDcgQEAgZXh0ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4oUGxh bm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAogCQkJCQkJICAgUGFyYW1M aXN0SW5mbyBwYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAgY29u c3QgaW5zdHJfdGltZSAqcGxhbmR1cmF0aW9uLAogCQkJCQkJICAgY29uc3QgQnVmZmVyVXNhZ2Ug KmJ1ZnVzYWdlLAorCQkJCQkJICAgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKnBsYW5zdG9yYWdlaW8s CiAJCQkJCQkgICBjb25zdCBNZW1vcnlDb250ZXh0Q291bnRlcnMgKm1lbV9jb3VudGVycyk7CiAK IGV4dGVybiB2b2lkIEV4cGxhaW5QcmludFBsYW4oRXhwbGFpblN0YXRlICplcywgUXVlcnlEZXNj ICpxdWVyeURlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1BhcmFs bGVsLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFyYWxsZWwuaAppbmRleCA1YTIwMzQ4 MTFkNS4uODYxNGQ4YTViZTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQ YXJhbGxlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5oCkBAIC0x NCw2ICsxNCw3IEBACiAjZGVmaW5lIEVYRUNQQVJBTExFTF9ICiAKICNpbmNsdWRlICJhY2Nlc3Mv cGFyYWxsZWwuaCIKKyNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5jbHVkZSAi bm9kZXMvZXhlY25vZGVzLmgiCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgogI2luY2x1 ZGUgIm5vZGVzL3BsYW5ub2Rlcy5oIgpAQCAtMjYsNiArMjcsOCBAQCB0eXBlZGVmIHN0cnVjdCBQ YXJhbGxlbEV4ZWN1dG9ySW5mbwogCVBsYW5TdGF0ZSAgKnBsYW5zdGF0ZTsJCS8qIHBsYW4gc3Vi dHJlZSB3ZSdyZSBydW5uaW5nIGluIHBhcmFsbGVsICovCiAJUGFyYWxsZWxDb250ZXh0ICpwY3h0 OwkJLyogcGFyYWxsZWwgY29udGV4dCB3ZSdyZSB1c2luZyAqLwogCUJ1ZmZlclVzYWdlICpidWZm ZXJfdXNhZ2U7CS8qIHBvaW50cyB0byBidWZ1c2FnZSBhcmVhIGluIERTTSAqLworCVN0b3JhZ2VJ T1VzYWdlICpzdG9yYWdlaW9fdXNhZ2U7CS8qIHBvaW50cyB0byBzdG9yYWdlaW8gdXNhZ2UgYXJl YSBpbgorCQkJCQkJCQkJCSAqIERTTSAqLwogCVdhbFVzYWdlICAgKndhbF91c2FnZTsJCS8qIHdh bHVzYWdlIGFyZWEgaW4gRFNNICovCiAJU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmlu c3RydW1lbnRhdGlvbjsgLyogb3B0aW9uYWwgKi8KIAlzdHJ1Y3QgU2hhcmVkSml0SW5zdHJ1bWVu dGF0aW9uICpqaXRfaW5zdHJ1bWVudGF0aW9uOwkvKiBvcHRpb25hbCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv aW5zdHJ1bWVudC5oCmluZGV4IGYwOTNhNTJhYWUwLi4yMjE5MjYzNzlkZSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2luc3RydW1lbnQuaApAQCAtNDEsNiArNDEsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgQnVmZmVy VXNhZ2UKIAlpbnN0cl90aW1lCXRlbXBfYmxrX3dyaXRlX3RpbWU7CS8qIHRpbWUgc3BlbnQgd3Jp dGluZyB0ZW1wIGJsb2NrcyAqLwogfSBCdWZmZXJVc2FnZTsKIAordHlwZWRlZiBzdHJ1Y3QgU3Rv cmFnZUlPVXNhZ2UKK3sKKwlsb25nCQlpbmJsb2NrOwkJLyogIyBvZiB0aW1lcyB0aGUgZmlsZSBz eXN0ZW0gaGFkIHRvIHBlcmZvcm0KKwkJCQkJCQkJICogaW5wdXQgKi8KKwlsb25nCQlvdXRibG9j azsJCS8qICMgb2YgdGltZXMgdGhlIGZpbGUgc3lzdGVtIGhhZCB0byBwZXJmb3JtCisJCQkJCQkJ CSAqIG91dHB1dCAqLworfSBTdG9yYWdlSU9Vc2FnZTsKKwogLyoKICAqIFdhbFVzYWdlIHRyYWNr cyBvbmx5IFdBTCBhY3Rpdml0eSBsaWtlIFdBTCByZWNvcmRzIGdlbmVyYXRpb24gdGhhdAogICog Y2FuIGJlIG1lYXN1cmVkIHBlciBxdWVyeSBhbmQgaXMgZGlzcGxheWVkIGJ5IEVYUExBSU4gY29t bWFuZCwKQEAgLTEyNiwxMiArMTM0LDE0IEBAIHR5cGVkZWYgc3RydWN0IFRyaWdnZXJJbnN0cnVt ZW50YXRpb24KIH0gVHJpZ2dlckluc3RydW1lbnRhdGlvbjsKIAogZXh0ZXJuIFBHRExMSU1QT1JU IEJ1ZmZlclVzYWdlIHBnQnVmZmVyVXNhZ2U7CitleHRlcm4gUEdETExJTVBPUlQgU3RvcmFnZUlP VXNhZ2UgcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsOwogZXh0ZXJuIFBHRExMSU1QT1JUIFdhbFVz YWdlIHBnV2FsVXNhZ2U7CiAKIGV4dGVybiBJbnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2MoaW50 IGluc3RydW1lbnRfb3B0aW9ucyk7CiBleHRlcm4gdm9pZCBJbnN0ckluaXRPcHRpb25zKEluc3Ry dW1lbnRhdGlvbiAqaW5zdHIsIGludCBpbnN0cnVtZW50X29wdGlvbnMpOwogZXh0ZXJuIHZvaWQg SW5zdHJTdGFydChJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKIGV4dGVybiB2b2lkIEluc3RyU3Rv cChJbnN0cnVtZW50YXRpb24gKmluc3RyKTsKK2V4dGVybiB2b2lkIEluc3RySW5pdChJbnN0cnVt ZW50YXRpb24gKmluc3RyLCBpbnQgaW5zdHJ1bWVudF9vcHRpb25zKTsKIAogZXh0ZXJuIE5vZGVJ bnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2NOb2RlKGludCBpbnN0cnVtZW50X29wdGlvbnMsCiAJ CQkJCQkJCQkJICAgYm9vbCBhc3luY19tb2RlKTsKQEAgLTE0NywxMSArMTU3LDE2IEBAIGV4dGVy biBUcmlnZ2VySW5zdHJ1bWVudGF0aW9uICpJbnN0ckFsbG9jVHJpZ2dlcihpbnQgbiwgaW50IGlu c3RydW1lbnRfb3B0aW9ucyk7CiBleHRlcm4gdm9pZCBJbnN0clN0YXJ0VHJpZ2dlcihUcmlnZ2Vy SW5zdHJ1bWVudGF0aW9uICp0Z2luc3RyKTsKIGV4dGVybiB2b2lkIEluc3RyU3RvcFRyaWdnZXIo VHJpZ2dlckluc3RydW1lbnRhdGlvbiAqdGdpbnN0ciwgaW50NjQgZmlyaW5ncyk7CiAKLWV4dGVy biB2b2lkIEluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KHZvaWQpOwotZXh0ZXJuIHZvaWQgSW5zdHJF bmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdl KTsKLWV4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1 c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKK2V4dGVybiB2b2lkIEluc3RyU3RhcnRQYXJhbGxl bFF1ZXJ5KFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZSk7CitleHRlcm4gdm9pZCBJbnN0 ckVuZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBTdG9yYWdlSU9Vc2FnZSAq c3RvcmFnZWlvdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3Jh Z2Vpb3VzYWdlX3N0YXJ0KTsKK2V4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1 ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxV c2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgQnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVy VXNhZ2UgKmRzdCwKIAkJCQkJCQkJIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQsIGNvbnN0IEJ1ZmZl clVzYWdlICpzdWIpOworZXh0ZXJuIHZvaWQgU3RvcmFnZUlPVXNhZ2VBY2N1bURpZmYoU3RvcmFn ZUlPVXNhZ2UgKmRzdCwKKwkJCQkJCQkJCWNvbnN0IFN0b3JhZ2VJT1VzYWdlICphZGQsIGNvbnN0 IFN0b3JhZ2VJT1VzYWdlICpzdWIpOworZXh0ZXJuIHZvaWQgU3RvcmFnZUlPVXNhZ2VEaWZmKFN0 b3JhZ2VJT1VzYWdlICpkc3QsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICpzdWIpOworZXh0ZXJuIHZv aWQgU3RvcmFnZUlPVXNhZ2VBZGQoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlP VXNhZ2UgKmFkZCk7CitleHRlcm4gdm9pZCBHZXRTdG9yYWdlSU9Vc2FnZShTdG9yYWdlSU9Vc2Fn ZSAqdXNhZ2UpOwogZXh0ZXJuIHZvaWQgV2FsVXNhZ2VBY2N1bURpZmYoV2FsVXNhZ2UgKmRzdCwg Y29uc3QgV2FsVXNhZ2UgKmFkZCwKIAkJCQkJCQkgIGNvbnN0IFdhbFVzYWdlICpzdWIpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oIGIvc3JjL2lu Y2x1ZGUvcG9ydC93aW4zMi9zeXMvcmVzb3VyY2UuaAppbmRleCBhMTRmZWViNTg0NC4uMjcwZGMz N2M4NGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmgK KysrIGIvc3JjL2luY2x1ZGUvcG9ydC93aW4zMi9zeXMvcmVzb3VyY2UuaApAQCAtMTMsNiArMTMs OCBAQCBzdHJ1Y3QgcnVzYWdlCiB7CiAJc3RydWN0IHRpbWV2YWwgcnVfdXRpbWU7CS8qIHVzZXIg dGltZSB1c2VkICovCiAJc3RydWN0IHRpbWV2YWwgcnVfc3RpbWU7CS8qIHN5c3RlbSB0aW1lIHVz ZWQgKi8KKwlsb25nCQlydV9pbmJsb2NrOwkJLyogQ3VycmVudGx5IGFsd2F5cyAwIGZvciBXaW5k b3dzICovCisJbG9uZwkJcnVfb3VibG9jazsJCS8qIEN1cnJlbnRseSBhbHdheXMgMCBmb3IgV2lu ZG93cyAqLwogfTsKIAogZXh0ZXJuIGludAlnZXRydXNhZ2UoaW50IHdobywgc3RydWN0IHJ1c2Fn ZSAqcnVzYWdlKTsKZGlmZiAtLWdpdCBhL3NyYy9wb3J0L3dpbjMyZ2V0cnVzYWdlLmMgYi9zcmMv cG9ydC93aW4zMmdldHJ1c2FnZS5jCmluZGV4IGZhMmI3OWNkNWVkLi4yZTI2N2RlN2IyOCAxMDA2 NDQKLS0tIGEvc3JjL3BvcnQvd2luMzJnZXRydXNhZ2UuYworKysgYi9zcmMvcG9ydC93aW4zMmdl dHJ1c2FnZS5jCkBAIC01Nyw1ICs1Nyw5IEBAIGdldHJ1c2FnZShpbnQgd2hvLCBzdHJ1Y3QgcnVz YWdlICpydXNhZ2UpCiAJcnVzYWdlLT5ydV91dGltZS50dl9zZWMgPSBsaS5RdWFkUGFydCAvIDEw MDAwMDBMOwogCXJ1c2FnZS0+cnVfdXRpbWUudHZfdXNlYyA9IGxpLlF1YWRQYXJ0ICUgMTAwMDAw MEw7CiAKKwkvKiBDdXJyZW50bHkgYWx3YXlzIDAgZm9yIFdpbmRvd3MgKi8KKwlydXNhZ2UtPnJ1 X2luYmxvY2sgPSAwOworCXJ1c2FnZS0+cnVfb3VibG9jayA9IDA7CisKIAlyZXR1cm4gMDsKIH0K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDExX2V4cGxhaW5fc3Rv cmFnZV9pby5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3QvMDExX2V4cGxhaW5fc3Rv cmFnZV9pby5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2I4NDZh ZWU5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy90LzAx MV9leHBsYWluX3N0b3JhZ2VfaW8ucGwKQEAgLTAsMCArMSw4OSBAQAorCisjIENvcHlyaWdodCAo YykgMjAyNC0yMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwordXNlIGxvY2FsZTsKKwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7 Cit1c2UgVGVzdDo6TW9yZTsKKworIyBOb2RlIGluaXRpYWxpemF0aW9uCitteSAkbm9kZV9zeW5j ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzeW5jJyk7Ciskbm9kZV9zeW5jLT5p bml0KCk7Ciskbm9kZV9zeW5jLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgImlvX21l dGhvZCA9IHN5bmMiKTsKKyRub2RlX3N5bmMtPnN0YXJ0OworCisjIENoZWNrIHRoYXQgdGhlIFhN TC1mb3JtYXR0ZWQgRVhQTEFJTiBvdXRwdXQgY29udGFpbnMgU3RvcmFnZSBJL08KKyMgcmVhZCBh bmQgd3JpdGUgaW5mb3JtYXRpb24uCitteSAkeG1sX3N5bmMgPSAkbm9kZV9zeW5jLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywKKwlxeworCUVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMsIEZPUk1B VCBYTUwpCisJU0VMRUNUICogRlJPTSBwZ19jbGFzczsKKwl9CispOworCitsaWtlKAorCSR4bWxf c3luYywKKwlxci88U3RvcmFnZS1JLU8tUmVhZD5cZCs8XC9TdG9yYWdlLUktTy1SZWFkPi8sCisJ IlN0b3JhZ2UtSS1PLVJlYWQgaXMgc2hvd24gaW4gRVhQTEFJTiBYTUwgKGlvX21ldGhvZD1zeW5j KSIKKyk7CisKK2xpa2UoCisJJHhtbF9zeW5jLAorCXFyLzxTdG9yYWdlLUktTy1Xcml0ZT5cZCs8 XC9TdG9yYWdlLUktTy1Xcml0ZT4vLAorCSJTdG9yYWdlLUktTy1Xcml0ZSBpcyBzaG93biBpbiBF WFBMQUlOIFhNTCAoaW9fbWV0aG9kPXN5bmMpIgorKTsKKworIyBEbyB0aGUgc2FtZSB0ZXN0IGlm IGlvX21ldGhvZD1pb191cmluZyBpcyBzdXBwb3J0ZWQKK2lmIChoYXZlX2lvX3VyaW5nKCkpCit7 CisJbXkgJG5vZGVfaW9fdXJpbmcgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ2lv X3VyaW5nJyk7CisJJG5vZGVfaW9fdXJpbmctPmluaXQ7CisJJG5vZGVfaW9fdXJpbmctPmFwcGVu ZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAiaW9fbWV0aG9kID0gJ2lvX3VyaW5nJyIpOworCSRu b2RlX2lvX3VyaW5nLT5zdGFydDsKKwkKKwlteSAkeG1sX2lvX3VyaW5nID0gJG5vZGVfaW9fdXJp bmctPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXsKKwkJRVhQTEFJTiAoQU5BTFlaRSwg QlVGRkVSUywgRk9STUFUIFhNTCkKKwkJU0VMRUNUICogRlJPTSBwZ19jbGFzczsKKwkJfQorCSk7 CisJCisJbGlrZSgKKwkJJHhtbF9pb191cmluZywKKwkJcXIvPFN0b3JhZ2UtSS1PLVJlYWQ+XGQr PFwvU3RvcmFnZS1JLU8tUmVhZD4vLAorCQkiU3RvcmFnZS1JLU8tUmVhZCBpcyBzaG93biBpbiBF WFBMQUlOIFhNTCAoaW9fbWV0aG9kPWlvX3VyaW5nKSIKKwkpOworCQorCWxpa2UoCisJCSR4bWxf aW9fdXJpbmcsCisJCXFyLzxTdG9yYWdlLUktTy1Xcml0ZT5cZCs8XC9TdG9yYWdlLUktTy1Xcml0 ZT4vLAorCQkiU3RvcmFnZS1JLU8tV3JpdGUgaXMgc2hvd24gaW4gRVhQTEFJTiBYTUwgKGlvX21l dGhvZD1pb191cmluZykiCisJKTsKK30KK2Vsc2UKK3sKKyAgICBub3RlICJpb191cmluZyBpcyBu b3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIHNraXBwaW5nIGlvX3VyaW5nIHRlc3RzIjsK K30KKworc3ViIGhhdmVfaW9fdXJpbmcKK3sKKyAgICAgICAgIyBUbyBkZXRlY3QgaWYgaW9fdXJp bmcgaXMgc3VwcG9ydGVkLCB3ZSBsb29rIGF0IHRoZSBlcnJvciBtZXNzYWdlIGZvcgorICAgICAg ICAjIGFzc2lnbmluZyBhbiBpbnZhbGlkIHZhbHVlIHRvIGFuIGVudW0gR1VDLCB3aGljaCBsaXN0 cyBhbGwgdGhlIHZhbGlkCisgICAgICAgICMgb3B0aW9ucy4gV2UgbmVlZCB0byB1c2UgLUMgdG8g ZGVhbCB3aXRoIHJ1bm5pbmcgYXMgYWRtaW5pc3RyYXRvciBvbgorICAgICAgICAjIHdpbmRvd3Ms IHRoZSBzdXBlcnVzZXIgY2hlY2sgaXMgb21pdHRlZCBpZiAtQyBpcyB1c2VkLgorICAgICAgICBt eSAoJHN0ZG91dCwgJHN0ZGVycikgPQorICAgICAgICAgIHJ1bl9jb21tYW5kIFtxdyhwb3N0Z3Jl cyAtQyBpbnZhbGlkIC1jIGlvX21ldGhvZD1pbnZhbGlkKV07CisgICAgICAgIGRpZSAiY2FuJ3Qg ZGV0ZXJtaW5lIHN1cHBvcnRlZCBpb19tZXRob2QgdmFsdWVzIgorICAgICAgICAgIHVubGVzcyAk c3RkZXJyID1+IG0vQXZhaWxhYmxlIHZhbHVlczogKFteXC5dKylcLi87CisgICAgICAgIG15ICRt ZXRob2RzID0gJDE7CisgICAgICAgIG5vdGUgInN1cHBvcnRlZCBpb19tZXRob2QgdmFsdWVzIGFy ZTogJG1ldGhvZHMiOworCisgICAgICAgIHJldHVybiAoJG1ldGhvZHMgPX4gbS9pb191cmluZy8p ID8gMSA6IDA7Cit9CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9leHBsYWluXzEub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9l eHBsYWluXzEub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NDIz M2ZkMjQ3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhw bGFpbl8xLm91dApAQCAtMCwwICsxLDg2OSBAQAorLS0KKy0tIEVYUExBSU4KKy0tCistLSBUaGVy ZSBhcmUgbWFueSB0ZXN0IGNhc2VzIGVsc2V3aGVyZSB0aGF0IHVzZSBFWFBMQUlOIGFzIGEgdmVo aWNsZSBmb3IKKy0tIGNoZWNraW5nIHNvbWV0aGluZyBlbHNlICh1c3VhbGx5IHBsYW5uZXIgYmVo YXZpb3IpLiAgVGhpcyBmaWxlIGlzCistLSBjb25jZXJuZWQgd2l0aCB0ZXN0aW5nIEVYUExBSU4g aW4gaXRzIG93biByaWdodC4KKy0tCistLSBUbyBwcm9kdWNlIHN0YWJsZSByZWdyZXNzaW9uIHRl c3Qgb3V0cHV0LCBpdCdzIHVzdWFsbHkgbmVjZXNzYXJ5IHRvCistLSBpZ25vcmUgZGV0YWlscyBz dWNoIGFzIGV4YWN0IGNvc3RzIG9yIHJvdyBjb3VudHMuICBUaGVzZSBmaWx0ZXIKKy0tIGZ1bmN0 aW9ucyByZXBsYWNlIGNoYW5nZWFibGUgb3V0cHV0IGRldGFpbHMgd2l0aCBmaXhlZCBzdHJpbmdz LgorY3JlYXRlIGZ1bmN0aW9uIGV4cGxhaW5fZmlsdGVyKHRleHQpIHJldHVybnMgc2V0b2YgdGV4 dAorbGFuZ3VhZ2UgcGxwZ3NxbCBhcworJCQKK2RlY2xhcmUKKyAgICBsbiB0ZXh0OworYmVnaW4K KyAgICBmb3IgbG4gaW4gZXhlY3V0ZSAkMQorICAgIGxvb3AKKyAgICAgICAgLS0gUmVwbGFjZSBh bnkgbnVtZXJpYyB3b3JkIHdpdGgganVzdCAnTicKKyAgICAgICAgbG4gOj0gcmVnZXhwX3JlcGxh Y2UobG4sICctP1xtXGQrXE0nLCAnTicsICdnJyk7CisgICAgICAgIC0tIEluIHNvcnQgb3V0cHV0 LCB0aGUgYWJvdmUgd29uJ3QgbWF0Y2ggdW5pdHMtc3VmZml4ZWQgbnVtYmVycworICAgICAgICBs biA6PSByZWdleHBfcmVwbGFjZShsbiwgJ1xtXGQra0InLCAnTmtCJywgJ2cnKTsKKyAgICAgICAg LS0gSWdub3JlIHRleHQtbW9kZSBidWZmZXJzIG91dHB1dCBiZWNhdXNlIGl0IHZhcmllcyBkZXBl bmRpbmcKKyAgICAgICAgLS0gb24gdGhlIHN5c3RlbSBzdGF0ZQorICAgICAgICBDT05USU5VRSBX SEVOIChsbiB+ICcgK0J1ZmZlcnM6IC4qJyk7CisgICAgICAgIC0tIElnbm9yZSB0ZXh0LW1vZGUg IlBsYW5uaW5nOiIgbGluZSBiZWNhdXNlIHdoZXRoZXIgaXQncyBvdXRwdXQKKyAgICAgICAgLS0g dmFyaWVzIGRlcGVuZGluZyBvbiB0aGUgc3lzdGVtIHN0YXRlCisgICAgICAgIENPTlRJTlVFIFdI RU4gKGxuID0gJ1BsYW5uaW5nOicpOworICAgICAgICByZXR1cm4gbmV4dCBsbjsKKyAgICBlbmQg bG9vcDsKK2VuZDsKKyQkOworLS0gVG8gcHJvZHVjZSB2YWxpZCBKU09OIG91dHB1dCwgcmVwbGFj ZSBudW1iZXJzIHdpdGggIjAiIG9yICIwLjAiIG5vdCAiTiIKK2NyZWF0ZSBmdW5jdGlvbiBleHBs YWluX2ZpbHRlcl90b19qc29uKHRleHQpIHJldHVybnMganNvbmIKK2xhbmd1YWdlIHBscGdzcWwg YXMKKyQkCitkZWNsYXJlCisgICAgZGF0YSB0ZXh0IDo9ICcnOworICAgIGxuIHRleHQ7CitiZWdp bgorICAgIGZvciBsbiBpbiBleGVjdXRlICQxCisgICAgbG9vcAorICAgICAgICAtLSBSZXBsYWNl IGFueSBudW1lcmljIHdvcmQgd2l0aCBqdXN0ICcwJworICAgICAgICBsbiA6PSByZWdleHBfcmVw bGFjZShsbiwgJ1xtXGQrXE0nLCAnMCcsICdnJyk7CisgICAgICAgIGRhdGEgOj0gZGF0YSB8fCBs bjsKKyAgICBlbmQgbG9vcDsKKyAgICByZXR1cm4gZGF0YTo6anNvbmI7CitlbmQ7CiskJDsKKy0t IERpc2FibGUgSklULCBvciB3ZSdsbCBnZXQgZGlmZmVyZW50IG91dHB1dCBvbiBtYWNoaW5lcyB3 aGVyZSB0aGF0J3MgYmVlbgorLS0gZm9yY2VkIG9uCitzZXQgaml0ID0gb2ZmOworLS0gU2ltaWxh cmx5LCBkaXNhYmxlIHRyYWNrX2lvX3RpbWluZywgdG8gYXZvaWQgb3V0cHV0IGRpZmZlcmVuY2Vz IHdoZW4KKy0tIGVuYWJsZWQuCitzZXQgdHJhY2tfaW9fdGltaW5nID0gb2ZmOworLS0gU2ltcGxl IGNhc2VzCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAxIGFzIGEsIDIgYXMgYiBoYXZpbmcg ZmFsc2U7CisgICAgICAgIFFVRVJZIFBMQU4gICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBSZXN1bHQKKyAgIFJlcGxhY2VzOiBBZ2dyZWdhdGUKKyAgIE9uZS1UaW1lIEZpbHRl cjogZmFsc2UKKygzIHJvd3MpCisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiBzZWxl Y3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2Zp bHRlciAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAo Y29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKygxIHJvdykKKworc2VsZWN0IGV4cGxhaW5f ZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzIG9mZikgc2VsZWN0ICogZnJvbSBpbnQ4 X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBs YWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhf dGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4u Ti5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9u IFRpbWU6IE4uTiBtcworKDMgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWlu IChhbmFseXplLCBidWZmZXJzIG9mZiwgdmVyYm9zZSkgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBp OCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFp bl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4g b24gcHVibGljLmludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFj dHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgICBPdXRwdXQ6IHExLCBxMgor IFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg0IHJvd3Mp CisKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9y bWF0IHRleHQpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBpbnQ4X3RibCBpOCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1O IHdpZHRoPU4pIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorIFBsYW5u aW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKygzIHJvd3MpCisKK3Nl bGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYnVmZmVycywgZm9ybWF0IHRleHQpIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChj b3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorKDEgcm93KQorCitcYQorc2VsZWN0IGV4cGxh aW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzLCBpbywgZm9ybWF0IHhtbCkgc2Vs ZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworZXhwbGFpbl9maWx0ZXIKKzxleHBsYWluIHhtbG5z PSJodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL04vZXhwbGFpbiI+CisgIDxRdWVyeT4KKyAgICA8 UGxhbj4KKyAgICAgIDxOb2RlLVR5cGU+U2VxIFNjYW48L05vZGUtVHlwZT4KKyAgICAgIDxQYXJh bGxlbC1Bd2FyZT5mYWxzZTwvUGFyYWxsZWwtQXdhcmU+CisgICAgICA8QXN5bmMtQ2FwYWJsZT5m YWxzZTwvQXN5bmMtQ2FwYWJsZT4KKyAgICAgIDxSZWxhdGlvbi1OYW1lPmludDhfdGJsPC9SZWxh dGlvbi1OYW1lPgorICAgICAgPEFsaWFzPmk4PC9BbGlhcz4KKyAgICAgIDxTdGFydHVwLUNvc3Q+ Ti5OPC9TdGFydHVwLUNvc3Q+CisgICAgICA8VG90YWwtQ29zdD5OLk48L1RvdGFsLUNvc3Q+Cisg ICAgICA8UGxhbi1Sb3dzPk48L1BsYW4tUm93cz4KKyAgICAgIDxQbGFuLVdpZHRoPk48L1BsYW4t V2lkdGg+CisgICAgICA8QWN0dWFsLVN0YXJ0dXAtVGltZT5OLk48L0FjdHVhbC1TdGFydHVwLVRp bWU+CisgICAgICA8QWN0dWFsLVRvdGFsLVRpbWU+Ti5OPC9BY3R1YWwtVG90YWwtVGltZT4KKyAg ICAgIDxBY3R1YWwtUm93cz5OLk48L0FjdHVhbC1Sb3dzPgorICAgICAgPEFjdHVhbC1Mb29wcz5O PC9BY3R1YWwtTG9vcHM+CisgICAgICA8RGlzYWJsZWQ+ZmFsc2U8L0Rpc2FibGVkPgorICAgICAg PEF2ZXJhZ2UtUHJlZmV0Y2gtRGlzdGFuY2U+Ti5OPC9BdmVyYWdlLVByZWZldGNoLURpc3RhbmNl PgorICAgICAgPE1heC1QcmVmZXRjaC1EaXN0YW5jZT5OPC9NYXgtUHJlZmV0Y2gtRGlzdGFuY2U+ CisgICAgICA8UHJlZmV0Y2gtQ2FwYWNpdHk+TjwvUHJlZmV0Y2gtQ2FwYWNpdHk+CisgICAgICA8 SS1PLUNvdW50Pk48L0ktTy1Db3VudD4KKyAgICAgIDxJLU8tV2FpdHM+TjwvSS1PLVdhaXRzPgor ICAgICAgPEF2ZXJhZ2UtSS1PLVNpemU+Ti5OPC9BdmVyYWdlLUktTy1TaXplPgorICAgICAgPEF2 ZXJhZ2UtSS1Pcy1Jbi1Qcm9ncmVzcz5OLk48L0F2ZXJhZ2UtSS1Pcy1Jbi1Qcm9ncmVzcz4KKyAg ICAgIDxTaGFyZWQtSGl0LUJsb2Nrcz5OPC9TaGFyZWQtSGl0LUJsb2Nrcz4KKyAgICAgIDxTaGFy ZWQtUmVhZC1CbG9ja3M+TjwvU2hhcmVkLVJlYWQtQmxvY2tzPgorICAgICAgPFNoYXJlZC1EaXJ0 aWVkLUJsb2Nrcz5OPC9TaGFyZWQtRGlydGllZC1CbG9ja3M+CisgICAgICA8U2hhcmVkLVdyaXR0 ZW4tQmxvY2tzPk48L1NoYXJlZC1Xcml0dGVuLUJsb2Nrcz4KKyAgICAgIDxMb2NhbC1IaXQtQmxv Y2tzPk48L0xvY2FsLUhpdC1CbG9ja3M+CisgICAgICA8TG9jYWwtUmVhZC1CbG9ja3M+TjwvTG9j YWwtUmVhZC1CbG9ja3M+CisgICAgICA8TG9jYWwtRGlydGllZC1CbG9ja3M+TjwvTG9jYWwtRGly dGllZC1CbG9ja3M+CisgICAgICA8TG9jYWwtV3JpdHRlbi1CbG9ja3M+TjwvTG9jYWwtV3JpdHRl bi1CbG9ja3M+CisgICAgICA8VGVtcC1SZWFkLUJsb2Nrcz5OPC9UZW1wLVJlYWQtQmxvY2tzPgor ICAgICAgPFRlbXAtV3JpdHRlbi1CbG9ja3M+TjwvVGVtcC1Xcml0dGVuLUJsb2Nrcz4KKyAgICA8 L1BsYW4+CisgICAgPFBsYW5uaW5nPgorICAgICAgPFNoYXJlZC1IaXQtQmxvY2tzPk48L1NoYXJl ZC1IaXQtQmxvY2tzPgorICAgICAgPFNoYXJlZC1SZWFkLUJsb2Nrcz5OPC9TaGFyZWQtUmVhZC1C bG9ja3M+CisgICAgICA8U2hhcmVkLURpcnRpZWQtQmxvY2tzPk48L1NoYXJlZC1EaXJ0aWVkLUJs b2Nrcz4KKyAgICAgIDxTaGFyZWQtV3JpdHRlbi1CbG9ja3M+TjwvU2hhcmVkLVdyaXR0ZW4tQmxv Y2tzPgorICAgICAgPExvY2FsLUhpdC1CbG9ja3M+TjwvTG9jYWwtSGl0LUJsb2Nrcz4KKyAgICAg IDxMb2NhbC1SZWFkLUJsb2Nrcz5OPC9Mb2NhbC1SZWFkLUJsb2Nrcz4KKyAgICAgIDxMb2NhbC1E aXJ0aWVkLUJsb2Nrcz5OPC9Mb2NhbC1EaXJ0aWVkLUJsb2Nrcz4KKyAgICAgIDxMb2NhbC1Xcml0 dGVuLUJsb2Nrcz5OPC9Mb2NhbC1Xcml0dGVuLUJsb2Nrcz4KKyAgICAgIDxUZW1wLVJlYWQtQmxv Y2tzPk48L1RlbXAtUmVhZC1CbG9ja3M+CisgICAgICA8VGVtcC1Xcml0dGVuLUJsb2Nrcz5OPC9U ZW1wLVdyaXR0ZW4tQmxvY2tzPgorICAgICAgPFN0b3JhZ2UtSS1PLVJlYWQ+TjwvU3RvcmFnZS1J LU8tUmVhZD4KKyAgICAgIDxTdG9yYWdlLUktTy1Xcml0ZT5OPC9TdG9yYWdlLUktTy1Xcml0ZT4K KyAgICA8L1BsYW5uaW5nPgorICAgIDxQbGFubmluZy1UaW1lPk4uTjwvUGxhbm5pbmctVGltZT4K KyAgICA8VHJpZ2dlcnM+CisgICAgPC9UcmlnZ2Vycz4KKyAgICA8RXhlY3V0aW9uPgorICAgICAg PFN0b3JhZ2UtSS1PLVJlYWQ+TjwvU3RvcmFnZS1JLU8tUmVhZD4KKyAgICAgIDxTdG9yYWdlLUkt Ty1Xcml0ZT5OPC9TdG9yYWdlLUktTy1Xcml0ZT4KKyAgICA8L0V4ZWN1dGlvbj4KKyAgICA8RXhl Y3V0aW9uLVRpbWU+Ti5OPC9FeGVjdXRpb24tVGltZT4KKyAgPC9RdWVyeT4KKzwvZXhwbGFpbj4K KygxIHJvdykKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgc2VyaWFs aXplLCBidWZmZXJzLCBpbywgZm9ybWF0IHlhbWwpIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgn KTsKK2V4cGxhaW5fZmlsdGVyCistIFBsYW46IAorICAgIE5vZGUgVHlwZTogIlNlcSBTY2FuIgor ICAgIFBhcmFsbGVsIEF3YXJlOiBmYWxzZQorICAgIEFzeW5jIENhcGFibGU6IGZhbHNlCisgICAg UmVsYXRpb24gTmFtZTogImludDhfdGJsIgorICAgIEFsaWFzOiAiaTgiCisgICAgU3RhcnR1cCBD b3N0OiBOLk4KKyAgICBUb3RhbCBDb3N0OiBOLk4KKyAgICBQbGFuIFJvd3M6IE4KKyAgICBQbGFu IFdpZHRoOiBOCisgICAgQWN0dWFsIFN0YXJ0dXAgVGltZTogTi5OCisgICAgQWN0dWFsIFRvdGFs IFRpbWU6IE4uTgorICAgIEFjdHVhbCBSb3dzOiBOLk4KKyAgICBBY3R1YWwgTG9vcHM6IE4KKyAg ICBEaXNhYmxlZDogZmFsc2UKKyAgICBBdmVyYWdlIFByZWZldGNoIERpc3RhbmNlOiBOLk4KKyAg ICBNYXggUHJlZmV0Y2ggRGlzdGFuY2U6IE4KKyAgICBQcmVmZXRjaCBDYXBhY2l0eTogTgorICAg IEkvTyBDb3VudDogTgorICAgIEkvTyBXYWl0czogTgorICAgIEF2ZXJhZ2UgSS9PIFNpemU6IE4u TgorICAgIEF2ZXJhZ2UgSS9PcyBJbiBQcm9ncmVzczogTi5OCisgICAgU2hhcmVkIEhpdCBCbG9j a3M6IE4KKyAgICBTaGFyZWQgUmVhZCBCbG9ja3M6IE4KKyAgICBTaGFyZWQgRGlydGllZCBCbG9j a3M6IE4KKyAgICBTaGFyZWQgV3JpdHRlbiBCbG9ja3M6IE4KKyAgICBMb2NhbCBIaXQgQmxvY2tz OiBOCisgICAgTG9jYWwgUmVhZCBCbG9ja3M6IE4KKyAgICBMb2NhbCBEaXJ0aWVkIEJsb2Nrczog TgorICAgIExvY2FsIFdyaXR0ZW4gQmxvY2tzOiBOCisgICAgVGVtcCBSZWFkIEJsb2NrczogTgor ICAgIFRlbXAgV3JpdHRlbiBCbG9ja3M6IE4KKyAgUGxhbm5pbmc6IAorICAgIFNoYXJlZCBIaXQg QmxvY2tzOiBOCisgICAgU2hhcmVkIFJlYWQgQmxvY2tzOiBOCisgICAgU2hhcmVkIERpcnRpZWQg QmxvY2tzOiBOCisgICAgU2hhcmVkIFdyaXR0ZW4gQmxvY2tzOiBOCisgICAgTG9jYWwgSGl0IEJs b2NrczogTgorICAgIExvY2FsIFJlYWQgQmxvY2tzOiBOCisgICAgTG9jYWwgRGlydGllZCBCbG9j a3M6IE4KKyAgICBMb2NhbCBXcml0dGVuIEJsb2NrczogTgorICAgIFRlbXAgUmVhZCBCbG9ja3M6 IE4KKyAgICBUZW1wIFdyaXR0ZW4gQmxvY2tzOiBOCisgICAgU3RvcmFnZSBJL08gUmVhZDogTgor ICAgIFN0b3JhZ2UgSS9PIFdyaXRlOiBOCisgIFBsYW5uaW5nIFRpbWU6IE4uTgorICBUcmlnZ2Vy czogCisgIFNlcmlhbGl6YXRpb246IAorICAgIFRpbWU6IE4uTgorICAgIE91dHB1dCBWb2x1bWU6 IE4KKyAgICBGb3JtYXQ6ICJ0ZXh0IgorICAgIFNoYXJlZCBIaXQgQmxvY2tzOiBOCisgICAgU2hh cmVkIFJlYWQgQmxvY2tzOiBOCisgICAgU2hhcmVkIERpcnRpZWQgQmxvY2tzOiBOCisgICAgU2hh cmVkIFdyaXR0ZW4gQmxvY2tzOiBOCisgICAgTG9jYWwgSGl0IEJsb2NrczogTgorICAgIExvY2Fs IFJlYWQgQmxvY2tzOiBOCisgICAgTG9jYWwgRGlydGllZCBCbG9ja3M6IE4KKyAgICBMb2NhbCBX cml0dGVuIEJsb2NrczogTgorICAgIFRlbXAgUmVhZCBCbG9ja3M6IE4KKyAgICBUZW1wIFdyaXR0 ZW4gQmxvY2tzOiBOCisgIEV4ZWN1dGlvbjogCisgICAgU3RvcmFnZSBJL08gUmVhZDogTgorICAg IFN0b3JhZ2UgSS9PIFdyaXRlOiBOCisgIEV4ZWN1dGlvbiBUaW1lOiBOLk4KKygxIHJvdykKK3Nl bGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYnVmZmVycywgZm9ybWF0IGpzb24pIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKK2V4cGxhaW5fZmlsdGVyCitbCisgIHsKKyAgICAiUGxh biI6IHsKKyAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4iLAorICAgICAgIlBhcmFsbGVsIEF3 YXJlIjogZmFsc2UsCisgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLAorICAgICAgIlJlbGF0 aW9uIE5hbWUiOiAiaW50OF90YmwiLAorICAgICAgIkFsaWFzIjogImk4IiwKKyAgICAgICJTdGFy dHVwIENvc3QiOiBOLk4sCisgICAgICAiVG90YWwgQ29zdCI6IE4uTiwKKyAgICAgICJQbGFuIFJv d3MiOiBOLAorICAgICAgIlBsYW4gV2lkdGgiOiBOLAorICAgICAgIkRpc2FibGVkIjogZmFsc2Us CisgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLAorICAgICAgIlNoYXJlZCBSZWFkIEJsb2Nr cyI6IE4sCisgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwKKyAgICAgICJTaGFyZWQg V3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLAorICAgICAg IkxvY2FsIFJlYWQgQmxvY2tzIjogTiwKKyAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IE4s CisgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAgIlRlbXAgUmVhZCBCbG9j a3MiOiBOLAorICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOCisgICAgfSwKKyAgICAiUGxh bm5pbmciOiB7CisgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiBOLAorICAgICAgIlNoYXJlZCBS ZWFkIEJsb2NrcyI6IE4sCisgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwKKyAgICAg ICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBO LAorICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogTiwKKyAgICAgICJMb2NhbCBEaXJ0aWVkIEJs b2NrcyI6IE4sCisgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAgIlRlbXAg UmVhZCBCbG9ja3MiOiBOLAorICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLAorICAgICAg IlN0b3JhZ2UgSS9PIFJlYWQiOiBOLAorICAgICAgIlN0b3JhZ2UgSS9PIFdyaXRlIjogTgorICAg IH0sCisgICAgIkV4ZWN1dGlvbiI6IHsKKyAgICAgICJTdG9yYWdlIEkvTyBSZWFkIjogTiwKKyAg ICAgICJTdG9yYWdlIEkvTyBXcml0ZSI6IE4KKyAgICB9CisgIH0KK10KKygxIHJvdykKK1xhCist LSBDaGVjayBleHBhbnNpb24gb2Ygd2luZG93IGRlZmluaXRpb25zCitzZWxlY3QgZXhwbGFpbl9m aWx0ZXIoJ2V4cGxhaW4gdmVyYm9zZSBzZWxlY3Qgc3VtKHVuaXF1ZTEpIG92ZXIgdywgc3VtKHVu aXF1ZTIpIG92ZXIgKHcgb3JkZXIgYnkgaHVuZHJlZCksIHN1bSh0ZW50aG91cykgb3ZlciAodyBv cmRlciBieSBodW5kcmVkKSBmcm9tIHRlbmsxIHdpbmRvdyB3IGFzIChwYXJ0aXRpb24gYnkgdGVu KScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWlu X2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZyAg KGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IHN1bSh1bmlxdWUxKSBP VkVSIHcsIChzdW0odW5pcXVlMikgT1ZFUiB3MSksIChzdW0odGVudGhvdXMpIE9WRVIgdzEpLCB0 ZW4sIGh1bmRyZWQKKyAgIFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIHRlbmsxLnRlbikKKyAg IC0+ICBXaW5kb3dBZ2cgIChjb3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAg T3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzLCBzdW0odW5p cXVlMikgT1ZFUiB3MSwgc3VtKHRlbnRob3VzKSBPVkVSIHcxCisgICAgICAgICBXaW5kb3c6IHcx IEFTIChQQVJUSVRJT04gQlkgdGVuazEudGVuIE9SREVSIEJZIHRlbmsxLmh1bmRyZWQpCisgICAg ICAgICAtPiAgU29ydCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICAg ICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVudGhvdXMKKyAg ICAgICAgICAgICAgIFNvcnQgS2V5OiB0ZW5rMS50ZW4sIHRlbmsxLmh1bmRyZWQKKyAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMudGVuazEgIChjb3N0PU4uTi4uTi5OIHJvd3M9 TiB3aWR0aD1OKQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0ZW4sIGh1bmRyZWQsIHVu aXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzCisoMTEgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmls dGVyKCdleHBsYWluIHZlcmJvc2Ugc2VsZWN0IHN1bSh1bmlxdWUxKSBvdmVyIHcxLCBzdW0odW5p cXVlMikgb3ZlciAodzEgb3JkZXIgYnkgaHVuZHJlZCksIHN1bSh0ZW50aG91cykgb3ZlciAodzEg b3JkZXIgYnkgaHVuZHJlZCByb3dzIDEwIHByZWNlZGluZykgZnJvbSB0ZW5rMSB3aW5kb3cgdzEg YXMgKHBhcnRpdGlvbiBieSB0ZW4pJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZyAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisg ICBPdXRwdXQ6IHN1bSh1bmlxdWUxKSBPVkVSIHcxLCAoc3VtKHVuaXF1ZTIpIE9WRVIgdzIpLCAo c3VtKHRlbnRob3VzKSBPVkVSIHczKSwgdGVuLCBodW5kcmVkCisgICBXaW5kb3c6IHcxIEFTIChQ QVJUSVRJT04gQlkgdGVuazEudGVuKQorICAgLT4gIFdpbmRvd0FnZyAgKGNvc3Q9Ti5OLi5OLk4g cm93cz1OIHdpZHRoPU4pCisgICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwg dW5pcXVlMiwgdGVudGhvdXMsIChzdW0odW5pcXVlMikgT1ZFUiB3MiksIHN1bSh0ZW50aG91cykg T1ZFUiB3MworICAgICAgICAgV2luZG93OiB3MyBBUyAoUEFSVElUSU9OIEJZIHRlbmsxLnRlbiBP UkRFUiBCWSB0ZW5rMS5odW5kcmVkIFJPV1MgJ04nOjpiaWdpbnQgUFJFQ0VESU5HKQorICAgICAg ICAgLT4gIFdpbmRvd0FnZyAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAg ICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVudGhvdXMs IHN1bSh1bmlxdWUyKSBPVkVSIHcyCisgICAgICAgICAgICAgICBXaW5kb3c6IHcyIEFTIChQQVJU SVRJT04gQlkgdGVuazEudGVuIE9SREVSIEJZIHRlbmsxLmh1bmRyZWQpCisgICAgICAgICAgICAg ICAtPiAgU29ydCAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IHRlbiwgaHVuZHJlZCwgdW5pcXVlMSwgdW5pcXVlMiwgdGVudGhvdXMK KyAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiB0ZW5rMS50ZW4sIHRlbmsxLmh1bmRyZWQK KyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMudGVuazEgIChjb3N0 PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiB0ZW4sIGh1bmRyZWQsIHVuaXF1ZTEsIHVuaXF1ZTIsIHRlbnRob3VzCisoMTQgcm93cykK KworLS0gQ2hlY2sgb3V0cHV0IGluY2x1ZGluZyBJL08gdGltaW5ncy4gIFRoZXNlIGZpZWxkcyBh cmUgY29uZGl0aW9uYWwKKy0tIGJ1dCBhbHdheXMgc2V0IGluIEpTT04gZm9ybWF0LCBzbyBjaGVj ayB0aGVtIG9ubHkgaW4gdGhpcyBjYXNlLgorc2V0IHRyYWNrX2lvX3RpbWluZyA9IG9uOworc2Vs ZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChhbmFseXplLCBidWZmZXJzLCBmb3JtYXQganNv bikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICBleHBsYWluX2ZpbHRl ciAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgeyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICAgICJOb2RlIFR5cGUiOiAiU2VxIFNjYW4iLCAgICAgKworICAgICAgICJQYXJhbGxlbCBB d2FyZSI6IGZhbHNlLCAgICAgKworICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFsc2UsICAgICAg KworICAgICAgICJSZWxhdGlvbiBOYW1lIjogImludDhfdGJsIiwgKworICAgICAgICJBbGlhcyI6 ICJpOCIsICAgICAgICAgICAgICAgKworICAgICAgICJTdGFydHVwIENvc3QiOiBOLk4sICAgICAg ICAgKworICAgICAgICJUb3RhbCBDb3N0IjogTi5OLCAgICAgICAgICAgKworICAgICAgICJQbGFu IFJvd3MiOiBOLCAgICAgICAgICAgICAgKworICAgICAgICJQbGFuIFdpZHRoIjogTiwgICAgICAg ICAgICAgKworICAgICAgICJBY3R1YWwgU3RhcnR1cCBUaW1lIjogTi5OLCAgKworICAgICAgICJB Y3R1YWwgVG90YWwgVGltZSI6IE4uTiwgICAgKworICAgICAgICJBY3R1YWwgUm93cyI6IE4uTiwg ICAgICAgICAgKworICAgICAgICJBY3R1YWwgTG9vcHMiOiBOLCAgICAgICAgICAgKworICAgICAg ICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAgKworICAgICAgICJTaGFyZWQgSGl0IEJsb2Nr cyI6IE4sICAgICAgKworICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiBOLCAgICAgKworICAg ICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiBOLCAgKworICAgICAgICJTaGFyZWQgV3JpdHRl biBCbG9ja3MiOiBOLCAgKworICAgICAgICJMb2NhbCBIaXQgQmxvY2tzIjogTiwgICAgICAgKwor ICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJMb2NhbCBEaXJ0 aWVkIEJsb2NrcyI6IE4sICAgKworICAgICAgICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IE4sICAg KworICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogTiwgICAgICAgKworICAgICAgICJUZW1wIFdy aXR0ZW4gQmxvY2tzIjogTiwgICAgKworICAgICAgICJTaGFyZWQgSS9PIFJlYWQgVGltZSI6IE4u TiwgKworICAgICAgICJTaGFyZWQgSS9PIFdyaXRlIFRpbWUiOiBOLk4sKworICAgICAgICJMb2Nh bCBJL08gUmVhZCBUaW1lIjogTi5OLCAgKworICAgICAgICJMb2NhbCBJL08gV3JpdGUgVGltZSI6 IE4uTiwgKworICAgICAgICJUZW1wIEkvTyBSZWFkIFRpbWUiOiBOLk4sICAgKworICAgICAgICJU ZW1wIEkvTyBXcml0ZSBUaW1lIjogTi5OICAgKworICAgICB9LCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgICAiUGxhbm5pbmciOiB7ICAgICAgICAgICAgICAgICAgKworICAgICAg ICJTaGFyZWQgSGl0IEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJTaGFyZWQgUmVhZCBCbG9j a3MiOiBOLCAgICAgKworICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiBOLCAgKworICAg ICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiBOLCAgKworICAgICAgICJMb2NhbCBIaXQgQmxv Y2tzIjogTiwgICAgICAgKworICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKwor ICAgICAgICJMb2NhbCBEaXJ0aWVkIEJsb2NrcyI6IE4sICAgKworICAgICAgICJMb2NhbCBXcml0 dGVuIEJsb2NrcyI6IE4sICAgKworICAgICAgICJUZW1wIFJlYWQgQmxvY2tzIjogTiwgICAgICAg KworICAgICAgICJUZW1wIFdyaXR0ZW4gQmxvY2tzIjogTiwgICAgKworICAgICAgICJTaGFyZWQg SS9PIFJlYWQgVGltZSI6IE4uTiwgKworICAgICAgICJTaGFyZWQgSS9PIFdyaXRlIFRpbWUiOiBO Lk4sKworICAgICAgICJMb2NhbCBJL08gUmVhZCBUaW1lIjogTi5OLCAgKworICAgICAgICJMb2Nh bCBJL08gV3JpdGUgVGltZSI6IE4uTiwgKworICAgICAgICJUZW1wIEkvTyBSZWFkIFRpbWUiOiBO Lk4sICAgKworICAgICAgICJUZW1wIEkvTyBXcml0ZSBUaW1lIjogTi5OLCAgKworICAgICAgICJT dG9yYWdlIEkvTyBSZWFkIjogTiwgICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBXcml0ZSI6 IE4gICAgICAgKworICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAi UGxhbm5pbmcgVGltZSI6IE4uTiwgICAgICAgICAgKworICAgICAiVHJpZ2dlcnMiOiBbICAgICAg ICAgICAgICAgICAgKworICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICAiRXhlY3V0aW9uIjogeyAgICAgICAgICAgICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBS ZWFkIjogTiwgICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBXcml0ZSI6IE4gICAgICAgKwor ICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiRXhlY3V0aW9uIFRp bWUiOiBOLk4gICAgICAgICAgKworICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworIF0KKygxIHJvdykKKworc2V0IHRyYWNrX2lvX3RpbWluZyA9IG9mZjsKKy0tIFNFVFRJTkdT IG9wdGlvbgorLS0gV2UgaGF2ZSB0byBpZ25vcmUgb3RoZXIgc2V0dGluZ3MgdGhhdCBtaWdodCBi ZSBpbXBvc2VkIGJ5IHRoZSBlbnZpcm9ubWVudCwKKy0tIHNvIHByaW50aW5nIHRoZSB3aG9sZSBT ZXR0aW5ncyBmaWVsZCB1bmZvcnR1bmF0ZWx5IHdvbid0IGRvLgorYmVnaW47CitzZXQgbG9jYWwg cGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworc2VsZWN0IHRydWUgYXMgIk9L IgorICBmcm9tIGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChzZXR0aW5ncykgc2VsZWN0ICogZnJv bSBpbnQ4X3RibCBpOCcpIGxuCisgIHdoZXJlIGxuIH4gJ14gKlNldHRpbmdzOiAuKnBsYW5fY2Fj aGVfbW9kZSA9ICcnZm9yY2VfZ2VuZXJpY19wbGFuJycnOworIE9LIAorLS0tLQorIHQKKygxIHJv dykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyX3RvX2pzb24oJ2V4cGxhaW4gKHNldHRpbmdzLCBm b3JtYXQganNvbikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpICM+ICd7MCxTZXR0aW5ncyxw bGFuX2NhY2hlX21vZGV9JzsKKyAgICAgICA/Y29sdW1uPyAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAiZm9yY2VfZ2VuZXJpY19wbGFuIgorKDEgcm93KQorCityb2xsYmFjazsKKy0t IEdFTkVSSUNfUExBTiBvcHRpb24KK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoZ2Vu ZXJpY19wbGFuKSBzZWxlY3QgdW5pcXVlMSBmcm9tIHRlbmsxIHdoZXJlIHRob3VzYW5kID0gJDEn KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Qml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4p CisgICBSZWNoZWNrIENvbmQ6ICh0aG91c2FuZCA9ICROKQorICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9 TikKKyAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9ICROKQorKDQgcm93cykKKworLS0g c2hvdWxkIGZhaWwKK3NlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgZ2Vu ZXJpY19wbGFuKSBzZWxlY3QgdW5pcXVlMSBmcm9tIHRlbmsxIHdoZXJlIHRob3VzYW5kID0gJDEn KTsKK0VSUk9SOiAgRVhQTEFJTiBvcHRpb25zIEFOQUxZWkUgYW5kIEdFTkVSSUNfUExBTiBjYW5u b3QgYmUgdXNlZCB0b2dldGhlcgorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGV4cGxhaW5f ZmlsdGVyKHRleHQpIGxpbmUgNSBhdCBGT1Igb3ZlciBFWEVDVVRFIHN0YXRlbWVudAorLS0gTUVN T1JZIG9wdGlvbgorc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChtZW1vcnkpIHNlbGVj dCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmls dGVyICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChj b3N0PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKQorICAgTWVtb3J5OiB1c2VkPU5rQiAgYWxsb2Nh dGVkPU5rQgorKDIgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluIChtZW1v cnksIGFuYWx5emUsIGJ1ZmZlcnMgb2ZmKSBzZWxlY3QgKiBmcm9tIGludDhfdGJsIGk4Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0 PU4uTi4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4g bG9vcHM9TikKKyAgIE1lbW9yeTogdXNlZD1Oa0IgIGFsbG9jYXRlZD1Oa0IKKyBQbGFubmluZyBU aW1lOiBOLk4gbXMKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNCByb3dzKQorCitzZWxlY3Qg ZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKG1lbW9yeSwgc3VtbWFyeSwgZm9ybWF0IHlhbWwpIHNl bGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtIFBsYW46ICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgTm9kZSBUeXBlOiAiU2VxIFNjYW4iICAgICsKKyAgICAgUGFyYWxs ZWwgQXdhcmU6IGZhbHNlICAgICsKKyAgICAgQXN5bmMgQ2FwYWJsZTogZmFsc2UgICAgICsKKyAg ICAgUmVsYXRpb24gTmFtZTogImludDhfdGJsIisKKyAgICAgQWxpYXM6ICJpOCIgICAgICAgICAg ICAgICsKKyAgICAgU3RhcnR1cCBDb3N0OiBOLk4gICAgICAgICsKKyAgICAgVG90YWwgQ29zdDog Ti5OICAgICAgICAgICsKKyAgICAgUGxhbiBSb3dzOiBOICAgICAgICAgICAgICsKKyAgICAgUGxh biBXaWR0aDogTiAgICAgICAgICAgICsKKyAgICAgRGlzYWJsZWQ6IGZhbHNlICAgICAgICAgICsK KyAgIFBsYW5uaW5nOiAgICAgICAgICAgICAgICAgICsKKyAgICAgTWVtb3J5IFVzZWQ6IE4gICAg ICAgICAgICsKKyAgICAgTWVtb3J5IEFsbG9jYXRlZDogTiAgICAgICsKKyAgIFBsYW5uaW5nIFRp bWU6IE4uTgorKDEgcm93KQorCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKG1lbW9y eSwgYW5hbHl6ZSwgZm9ybWF0IGpzb24pIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTgnKTsKKyAg ICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbiI6IHsgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgIk5vZGUgVHlwZSI6ICJTZXEgU2NhbiIsICAgICsKKyAg ICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgKworICAgICAgICJBc3luYyBDYXBhYmxl IjogZmFsc2UsICAgICArCisgICAgICAgIlJlbGF0aW9uIE5hbWUiOiAiaW50OF90YmwiLCsKKyAg ICAgICAiQWxpYXMiOiAiaTgiLCAgICAgICAgICAgICAgKworICAgICAgICJTdGFydHVwIENvc3Qi OiBOLk4sICAgICAgICArCisgICAgICAgIlRvdGFsIENvc3QiOiBOLk4sICAgICAgICAgICsKKyAg ICAgICAiUGxhbiBSb3dzIjogTiwgICAgICAgICAgICAgKworICAgICAgICJQbGFuIFdpZHRoIjog TiwgICAgICAgICAgICArCisgICAgICAgIkFjdHVhbCBTdGFydHVwIFRpbWUiOiBOLk4sICsKKyAg ICAgICAiQWN0dWFsIFRvdGFsIFRpbWUiOiBOLk4sICAgKworICAgICAgICJBY3R1YWwgUm93cyI6 IE4uTiwgICAgICAgICArCisgICAgICAgIkFjdHVhbCBMb29wcyI6IE4sICAgICAgICAgICsKKyAg ICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgKworICAgICAgICJTaGFyZWQgSGl0IEJs b2NrcyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICsKKyAg ICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgKworICAgICAgICJTaGFyZWQgV3JpdHRl biBCbG9ja3MiOiBOLCArCisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKKyAg ICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJMb2NhbCBEaXJ0aWVk IEJsb2NrcyI6IE4sICArCisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKKyAg ICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJUZW1wIFdyaXR0ZW4g QmxvY2tzIjogTiAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgIlBsYW5uaW5nIjogeyAgICAgICAgICAgICAgICAgKworICAgICAgICJTaGFyZWQgSGl0IEJs b2NrcyI6IE4sICAgICArCisgICAgICAgIlNoYXJlZCBSZWFkIEJsb2NrcyI6IE4sICAgICsKKyAg ICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogTiwgKworICAgICAgICJTaGFyZWQgV3JpdHRl biBCbG9ja3MiOiBOLCArCisgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiBOLCAgICAgICsKKyAg ICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiBOLCAgICAgKworICAgICAgICJMb2NhbCBEaXJ0aWVk IEJsb2NrcyI6IE4sICArCisgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogTiwgICsKKyAg ICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IE4sICAgICAgKworICAgICAgICJUZW1wIFdyaXR0ZW4g QmxvY2tzIjogTiwgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gV3JpdGUiOiBOLCAgICAgKworICAgICAgICJNZW1vcnkgVXNlZCI6 IE4sICAgICAgICAgICArCisgICAgICAgIk1lbW9yeSBBbGxvY2F0ZWQiOiBOICAgICAgICsKKyAg ICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiUGxhbm5pbmcgVGltZSI6 IE4uTiwgICAgICAgICArCisgICAgICJUcmlnZ2VycyI6IFsgICAgICAgICAgICAgICAgICsKKyAg ICAgXSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAiRXhlY3V0aW9uIjogeyAg ICAgICAgICAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gV3JpdGUiOiBOICAgICAgKworICAgICB9LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24gVGltZSI6IE4uTiAgICAgICAgICsKKyAg IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworIF0KKygxIHJvdykKKworcHJlcGFy ZSBpbnQ4X3F1ZXJ5IGFzIHNlbGVjdCAqIGZyb20gaW50OF90YmwgaTg7CitzZWxlY3QgZXhwbGFp bl9maWx0ZXIoJ2V4cGxhaW4gKG1lbW9yeSkgZXhlY3V0ZSBpbnQ4X3F1ZXJ5Jyk7CisgICAgICAg ICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNl cSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAg IE1lbW9yeTogdXNlZD1Oa0IgIGFsbG9jYXRlZD1Oa0IKKygyIHJvd3MpCisKKy0tIFRlc3QgRVhQ TEFJTiAoR0VORVJJQ19QTEFOKSB3aXRoIHBhcnRpdGlvbiBwcnVuaW5nCistLSBwYXJ0aXRpb25z IHNob3VsZCBiZSBwcnVuZWQgYXQgcGxhbiB0aW1lLCBiYXNlZCBvbiBjb25zdGFudHMsCistLSBi dXQgdGhlcmUgc2hvdWxkIGJlIG5vIHBydW5pbmcgYmFzZWQgb24gcGFyYW1ldGVyIHBsYWNlaG9s ZGVycworY3JlYXRlIHRhYmxlIGdlbl9wYXJ0ICgKKyAga2V5MSBpbnRlZ2VyIG5vdCBudWxsLAor ICBrZXkyIGludGVnZXIgbm90IG51bGwKKykgcGFydGl0aW9uIGJ5IGxpc3QgKGtleTEpOworY3Jl YXRlIHRhYmxlIGdlbl9wYXJ0XzEKKyAgcGFydGl0aW9uIG9mIGdlbl9wYXJ0IGZvciB2YWx1ZXMg aW4gKDEpCisgIHBhcnRpdGlvbiBieSByYW5nZSAoa2V5Mik7CitjcmVhdGUgdGFibGUgZ2VuX3Bh cnRfMV8xCisgIHBhcnRpdGlvbiBvZiBnZW5fcGFydF8xIGZvciB2YWx1ZXMgZnJvbSAoMSkgdG8g KDIpOworY3JlYXRlIHRhYmxlIGdlbl9wYXJ0XzFfMgorICBwYXJ0aXRpb24gb2YgZ2VuX3BhcnRf MSBmb3IgdmFsdWVzIGZyb20gKDIpIHRvICgzKTsKK2NyZWF0ZSB0YWJsZSBnZW5fcGFydF8yCisg IHBhcnRpdGlvbiBvZiBnZW5fcGFydCBmb3IgdmFsdWVzIGluICgyKTsKKy0tIHNob3VsZCBzY2Fu IGdlbl9wYXJ0XzFfMSBhbmQgZ2VuX3BhcnRfMV8yLCBidXQgbm90IGdlbl9wYXJ0XzIKK3NlbGVj dCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoZ2VuZXJpY19wbGFuKSBzZWxlY3Qga2V5MSwga2V5 MiBmcm9tIGdlbl9wYXJ0IHdoZXJlIGtleTEgPSAxIGFuZCBrZXkyID0gJDEnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kICAoY29zdD1OLk4uLk4uTiBy b3dzPU4gd2lkdGg9TikKKyAgIC0+ICBTZXEgU2NhbiBvbiBnZW5fcGFydF8xXzEgZ2VuX3BhcnRf MSAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICBGaWx0ZXI6ICgoa2V5 MSA9IE4pIEFORCAoa2V5MiA9ICROKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBnZW5fcGFydF8xXzIg Z2VuX3BhcnRfMiAgKGNvc3Q9Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICAgICAgICBGaWx0 ZXI6ICgoa2V5MSA9IE4pIEFORCAoa2V5MiA9ICROKSkKKyg1IHJvd3MpCisKK2Ryb3AgdGFibGUg Z2VuX3BhcnQ7CistLQorLS0gVGVzdCBwcm9kdWN0aW9uIG9mIHBlci13b3JrZXIgZGF0YQorLS0K Ky0tIFVuZm9ydHVuYXRlbHksIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBob3cgbWFueSB3b3JrZXIg cHJvY2Vzc2VzIHdlJ2xsCistLSBhY3R1YWxseSBnZXQgKG1heWJlIG5vbmUgYXQgYWxsKSwgd2Ug Y2FuJ3QgZXhhbWluZSB0aGUgIldvcmtlcnMiIG91dHB1dAorLS0gaW4gYW55IGRldGFpbC4gIFdl IGNhbiBjaGVjayB0aGF0IGl0IHBhcnNlcyBjb3JyZWN0bHkgYXMgSlNPTiwgYW5kIHRoZW4KKy0t IHJlbW92ZSBpdCBmcm9tIHRoZSBkaXNwbGF5ZWQgcmVzdWx0cy4KK2JlZ2luOworLS0gZW5jb3Vy YWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworc2V0IHBhcmFsbGVsX3NldHVwX2Nvc3Q9MDsKK3Nl dCBwYXJhbGxlbF90dXBsZV9jb3N0PTA7CitzZXQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6 ZT0wOworc2V0IG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI9NDsKK3NlbGVjdCBqc29u Yl9wcmV0dHkoCisgIGV4cGxhaW5fZmlsdGVyX3RvX2pzb24oJ2V4cGxhaW4gKGFuYWx5emUsIHZl cmJvc2UsIGJ1ZmZlcnMsIGZvcm1hdCBqc29uKQorICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGVjdCAqIGZyb20gdGVuazEgb3JkZXIgYnkgdGVudGhvdXMnKQorICAtLSByZW1vdmUgIldvcmtl cnMiIG5vZGUgb2YgdGhlIFNlcSBTY2FuIHBsYW4gbm9kZQorICAjLSAnezAsUGxhbixQbGFucyww LFBsYW5zLDAsV29ya2Vyc30nCisgIC0tIHJlbW92ZSAiV29ya2VycyIgbm9kZSBvZiB0aGUgU29y dCBwbGFuIG5vZGUKKyAgIy0gJ3swLFBsYW4sUGxhbnMsMCxXb3JrZXJzfScKKyAgLS0gQWxzbyBy ZW1vdmUgaXRzIHNvcnQtdHlwZSBmaWVsZHMsIGFzIHRob3NlIGFyZW4ndCAxMDAlIHN0YWJsZQor ICAjLSAnezAsUGxhbixQbGFucywwLFNvcnQgTWV0aG9kfScKKyAgIy0gJ3swLFBsYW4sUGxhbnMs MCxTb3J0IFNwYWNlIFR5cGV9JworKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGpzb25iX3By ZXR0eSAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICJQbGFuIjogeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAiUGxhbnMiOiBbICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJQbGFucyI6IFsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFsaWFz IjogInRlbmsxIiwgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ik91dHB1dCI6IFsgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ1bmlxdWUxIiwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ1bmlxdWUyIiwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ0d28iLCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyIiwgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZW4iLCAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d2VudHkiLCAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodW5kcmVkIiwg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aG91 c2FuZCIsICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ0d290aG91c2FuZCIsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJmaXZldGhvdXMiLCAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ0ZW50aG91cyIsICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJvZGQiLCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJldmVuIiwgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmd1MSIsICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmd1MiIsICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmc0IiAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNjaGVt YSI6ICJwdWJsaWMiLCAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIk5vZGUgVHlwZSI6ICJTZXEgU2NhbiIsICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlBsYW4gUm93cyI6IDAsICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlBsYW4gV2lkdGgiOiAwLCAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlRvdGFsIENvc3QiOiAwLjAsICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBSb3dzIjogMC4wLCAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBMb29wcyI6IDAsICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0YXJ0dXAgQ29zdCI6 IDAuMCwgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFzeW5jIENh cGFibGUiOiBmYWxzZSwgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJl bGF0aW9uIE5hbWUiOiAidGVuazEiLCAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlBhcmFsbGVsIEF3YXJlIjogdHJ1ZSwgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBUb3RhbCBUaW1lIjogMC4wLCAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxvY2FsIFJlYWQgQmxvY2tzIjogMCwgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBIaXQgQmxvY2tzIjogMCwg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBSZWFkIEJsb2Nr cyI6IDAsICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjdHVhbCBTdGFy dHVwIFRpbWUiOiAwLjAsICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhcmVu dCBSZWxhdGlvbnNoaXAiOiAiT3V0ZXIiLCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlRlbXAgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkxvY2FsIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkxvY2FsIFdyaXR0ZW4gQmxvY2tzIjogMCwgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlNoYXJlZCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlNoYXJlZCBXcml0dGVuIEJsb2NrcyI6IDAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJPdXRwdXQiOiBbICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5pcXVlMSIsICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5pcXVl MiIsICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAi dHdvIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAiZm91ciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAidGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAidHdlbnR5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAiaHVuZHJlZCIsICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGhvdXNhbmQiLCAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAidHdvdGhvdXNhbmQiLCAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZml2ZXRob3VzIiwgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGVudGhvdXMi LCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAib2Rk IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAiZXZlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAic3RyaW5ndTEiLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAic3RyaW5ndTIiLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAic3RyaW5nNCIgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJEaXNhYmxlZCI6IGZhbHNlLCAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJTb3J0IEtleSI6IFsgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGVuazEudGVudGhv dXMiICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgIF0sICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJOb2Rl IFR5cGUiOiAiU29ydCIsICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICJQbGFuIFJvd3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICJQbGFuIFdpZHRoIjogMCwgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICJUb3RhbCBDb3N0IjogMC4wLCAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgICAgICJBY3R1YWwgUm93cyI6IDAuMCwgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgTG9vcHMiOiAwLCAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJTdGFydHVwIENvc3QiOiAwLjAsICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJBc3luYyBDYXBhYmxlIjogZmFs c2UsICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJQYXJhbGxlbCBBd2Fy ZSI6IGZhbHNlLCAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJTb3J0IFNw YWNlIFVzZWQiOiAwLCAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJM b2NhbCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg ICAgICJUZW1wIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgICAgICJBY3R1YWwgVG90YWwgVGltZSI6IDAuMCwgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgICAgICJMb2NhbCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgICAgICJTaGFyZWQgSGl0IEJsb2NrcyI6IDAsICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJTaGFyZWQgUmVhZCBCbG9ja3MiOiAwLCAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJBY3R1YWwgU3RhcnR1cCBUaW1lIjog MC4wLCAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJQYXJlbnQgUmVsYXRpb25z aGlwIjogIk91dGVyIiwgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJUZW1wIFdyaXR0 ZW4gQmxvY2tzIjogMCwgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAgICJMb2Nh bCBEaXJ0aWVkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgICAg ICJMb2NhbCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgICAgICJTaGFyZWQgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgICAgICJTaGFyZWQgV3JpdHRlbiBCbG9ja3MiOiAwICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAiT3V0cHV0IjogWyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgInVuaXF1ZTEiLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgInVuaXF1ZTIiLCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgInR3byIsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgImZvdXIi LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAg InRlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAgICAgInR3ZW50eSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAgICAgImh1bmRyZWQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAgICAgInRob3VzYW5kIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAgICAgInR3b3Rob3VzYW5kIiwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgImZpdmV0aG91cyIsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgInRlbnRob3VzIiwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgIm9kZCIsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgImV2ZW4iLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAgICAgInN0 cmluZ3UxIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAg ICAgInN0cmluZ3UyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAgICAgInN0cmluZzQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICBdLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAiRGlzYWJsZWQiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAiTm9kZSBUeXBlIjogIkdhdGhlciBNZXJnZSIsICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiUGxhbiBSb3dzIjogMCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiUGxhbiBXaWR0aCI6IDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiVG90YWwgQ29zdCI6IDAu MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiQWN0dWFsIFJv d3MiOiAwLjAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiQWN0 dWFsIExvb3BzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAiU3RhcnR1cCBDb3N0IjogMC4wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAiQXN5bmMgQ2FwYWJsZSI6IGZhbHNlLCAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAiUGFyYWxsZWwgQXdhcmUiOiBmYWxzZSwgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAiV29ya2VycyBQbGFubmVkIjogMCwgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAiTG9jYWwgSGl0IEJsb2NrcyI6IDAsICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IDAsICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiV29ya2VycyBMYXVuY2hlZCI6 IDAsICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiQWN0dWFsIFRvdGFs IFRpbWUiOiAwLjAsICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiTG9jYWwg UmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAi U2hhcmVkIEhpdCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAiU2hhcmVkIFJlYWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAiQWN0dWFsIFN0YXJ0dXAgVGltZSI6IDAuMCwgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgICAgICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICAgICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiAwLCAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tz IjogMCwgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiU2hhcmVkIFdyaXR0ZW4g QmxvY2tzIjogMCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgIH0sICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJQbGFubmlu ZyI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg ICAiTG9jYWwgSGl0IEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgICAgICAgICAiVGVtcCBSZWFkIEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgICAgICAgICAiTG9jYWwgUmVhZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgICAgICAgICAgICAiU2hhcmVkIEhpdCBCbG9ja3MiOiAwLCAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiU3RvcmFnZSBJL08gV3JpdGUiOiAwLCAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiU2hhcmVkIFJlYWQgQmxvY2tz IjogMCwgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiVGVtcCBXcml0dGVu IEJsb2NrcyI6IDAsICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiTG9jYWwg RGlydGllZCBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAi TG9jYWwgV3JpdHRlbiBCbG9ja3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICAgICAiU2hhcmVkIERpcnRpZWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAiU2hhcmVkIFdyaXR0ZW4gQmxvY2tzIjogMCAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgICAgICJUcmlnZ2VycyI6IFsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiU3RvcmFnZSBJL08gUmVh ZCI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgICAiU3RvcmFnZSBJ L08gV3JpdGUiOiAwICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgIH0sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICJQ bGFubmluZyBUaW1lIjogMC4wLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICJFeGVjdXRpb24gVGltZSI6IDAuMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyBdCisoMSByb3cpCisKK3JvbGxiYWNrOworLS0gVGVzdCBkaXNwbGF5IG9mIHRlbXBv cmFyeSBvYmplY3RzCitjcmVhdGUgdGVtcCB0YWJsZSB0MShmMSBmbG9hdDgpOworY3JlYXRlIGZ1 bmN0aW9uIHBnX3RlbXAubXlzaW4oZmxvYXQ4KSByZXR1cm5zIGZsb2F0OCBsYW5ndWFnZSBwbHBn c3FsCithcyAnYmVnaW4gcmV0dXJuIHNpbigkMSk7IGVuZCc7CitzZWxlY3QgZXhwbGFpbl9maWx0 ZXIoJ2V4cGxhaW4gKHZlcmJvc2UpIHNlbGVjdCAqIGZyb20gdDEgd2hlcmUgcGdfdGVtcC5teXNp bihmMSkgPCAwLjUnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcGdfdGVtcC50MSAgKGNvc3Q9 Ti5OLi5OLk4gcm93cz1OIHdpZHRoPU4pCisgICBPdXRwdXQ6IGYxCisgICBGaWx0ZXI6IChwZ190 ZW1wLm15c2luKHQxLmYxKSA8ICdOLk4nOjpkb3VibGUgcHJlY2lzaW9uKQorKDMgcm93cykKKwor LS0gVGVzdCBjb21wdXRlX3F1ZXJ5X2lkCitzZXQgY29tcHV0ZV9xdWVyeV9pZCA9IG9uOworc2Vs ZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBzZWxlY3QgKiBmcm9tIGludDhf dGJsIGk4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLmludDhfdGJs IGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91dHB1dDogcTEsIHEyCisg UXVlcnkgSWRlbnRpZmllcjogTgorKDMgcm93cykKKworLS0gVGVzdCBjb21wdXRlX3F1ZXJ5X2lk IHdpdGggdXRpbGl0eSBzdGF0ZW1lbnRzIGNvbnRhaW5pbmcgcGxhbm5hYmxlIHF1ZXJ5CitzZWxl Y3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKHZlcmJvc2UpIGRlY2xhcmUgdGVzdF9jdXIgY3Vy c29yIGZvciBzZWxlY3QgKiBmcm9tIGludDhfdGJsJyk7CisgICAgICAgICAgICAgICAgICAgICAg IGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4g b24gcHVibGljLmludDhfdGJsICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91 dHB1dDogcTEsIHEyCisgUXVlcnkgSWRlbnRpZmllcjogTgorKDMgcm93cykKKworc2VsZWN0IGV4 cGxhaW5fZmlsdGVyKCdleHBsYWluICh2ZXJib3NlKSBjcmVhdGUgdGFibGUgdGVzdF9jdGFzIGFz IHNlbGVjdCAxJyk7CisgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0ICAoY29zdD1O Lk4uLk4uTiByb3dzPU4gd2lkdGg9TikKKyAgIE91dHB1dDogTgorIFF1ZXJ5IElkZW50aWZpZXI6 IE4KKygzIHJvd3MpCisKKy0tIFRlc3QgU0VSSUFMSVpFIG9wdGlvbgorc2VsZWN0IGV4cGxhaW5f ZmlsdGVyKCdleHBsYWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLHNlcmlhbGl6ZSkgc2VsZWN0ICog ZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2Fu IG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0 aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisg U2VyaWFsaXphdGlvbjogdGltZT1OLk4gbXMgIG91dHB1dD1Oa0IgIGZvcm1hdD10ZXh0CisgRXhl Y3V0aW9uIFRpbWU6IE4uTiBtcworKDQgcm93cykKKworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdl eHBsYWluIChhbmFseXplLHNlcmlhbGl6ZSB0ZXh0LGJ1ZmZlcnMsdGltaW5nIG9mZikgc2VsZWN0 ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gaW50OF90YmwgaTggIChjb3N0PU4u Ti4uTi5OIHJvd3M9TiB3aWR0aD1OKSAoYWN0dWFsIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5p bmcgVGltZTogTi5OIG1zCisgU2VyaWFsaXphdGlvbjogb3V0cHV0PU5rQiAgZm9ybWF0PXRleHQK KyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNCByb3dzKQorCitzZWxlY3QgZXhwbGFpbl9maWx0 ZXIoJ2V4cGxhaW4gKGFuYWx5emUsc2VyaWFsaXplIGJpbmFyeSxidWZmZXJzLHRpbWluZykgc2Vs ZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBleHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNl cSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29zdD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFj dHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5O IG1zCisgU2VyaWFsaXphdGlvbjogdGltZT1OLk4gbXMgIG91dHB1dD1Oa0IgIGZvcm1hdD1iaW5h cnkKKyBFeGVjdXRpb24gVGltZTogTi5OIG1zCisoNCByb3dzKQorCistLSB0aGlzIHRlc3RzIGFu IGVkZ2UgY2FzZSB3aGVyZSB3ZSBoYXZlIG5vIGRhdGEgdG8gcmV0dXJuCitzZWxlY3QgZXhwbGFp bl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsYnVmZmVycyBvZmYsc2VyaWFsaXplKSBjcmVhdGUg dGVtcCB0YWJsZSBleHBsYWluX3RlbXAgYXMgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBsYWluX2ZpbHRlciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIGludDhfdGJsIGk4ICAoY29z dD1OLk4uLk4uTiByb3dzPU4gd2lkdGg9TikgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5O IGxvb3BzPU4pCisgUGxhbm5pbmcgVGltZTogTi5OIG1zCisgU2VyaWFsaXphdGlvbjogdGltZT1O Lk4gbXMgIG91dHB1dD1Oa0IgIGZvcm1hdD10ZXh0CisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcwor KDQgcm93cykKKworLS0gVGVzdCB0dXBsZXN0b3JlIHN0b3JhZ2UgdXNhZ2UgaW4gV2luZG93IGFn Z3JlZ2F0ZSAobWVtb3J5IGNhc2UpCitzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFu YWx5emUsYnVmZmVycyBvZmYsY29zdHMgb2ZmKSBzZWxlY3Qgc3VtKG4pIG92ZXIoKSBmcm9tIGdl bmVyYXRlX3NlcmllcygxLDEwKSBhKG4pJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgdGltZT1OLk4uLk4u TiByb3dzPU4uTiBsb29wcz1OKQorICAgV2luZG93OiB3MSBBUyAoKQorICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIGEgKGFjdHVhbCB0aW1lPU4uTi4uTi5OIHJvd3M9Ti5OIGxvb3BzPU4pCisgUGxh bm5pbmcgVGltZTogTi5OIG1zCisgRXhlY3V0aW9uIFRpbWU6IE4uTiBtcworKDYgcm93cykKKwor LS0gVGVzdCB0dXBsZXN0b3JlIHN0b3JhZ2UgdXNhZ2UgaW4gV2luZG93IGFnZ3JlZ2F0ZSAoZGlz ayBjYXNlKQorc2V0IHdvcmtfbWVtIHRvIDY0Oworc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBs YWluIChhbmFseXplLGJ1ZmZlcnMgb2ZmLGNvc3RzIG9mZikgc2VsZWN0IHN1bShuKSBvdmVyKCkg ZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwyNTAwKSBhKG4pJyk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXhwbGFpbl9maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgdGlt ZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1OKQorICAgV2luZG93OiB3MSBBUyAoKQorICAgU3Rv cmFnZTogRGlzayAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBhIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4uTiBsb29wcz1O KQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4gbXMKKyg2IHJv d3MpCisKKy0tIFRlc3QgdHVwbGVzdG9yZSBzdG9yYWdlIHVzYWdlIGluIFdpbmRvdyBhZ2dyZWdh dGUgKG1lbW9yeSBhbmQgZGlzayBjYXNlLCBmaW5hbCByZXN1bHQgaXMgZGlzaykKK3NlbGVjdCBl eHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSxidWZmZXJzIG9mZixjb3N0cyBvZmYpIHNl bGVjdCBzdW0obikgb3ZlcihwYXJ0aXRpb24gYnkgbSkgZnJvbSAoU0VMRUNUIG4gPCAzIGFzIG0s IG4gZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwyNTAwKSBhKG4pKScpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZyAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1OLk4gbG9vcHM9TikKKyAgIFdpbmRvdzog dzEgQVMgKFBBUlRJVElPTiBCWSAoKGEubiA8IE4pKSkKKyAgIFN0b3JhZ2U6IERpc2sgIE1heGlt dW0gU3RvcmFnZTogTmtCCisgICAtPiAgU29ydCAoYWN0dWFsIHRpbWU9Ti5OLi5OLk4gcm93cz1O Lk4gbG9vcHM9TikKKyAgICAgICAgIFNvcnQgS2V5OiAoKGEubiA8IE4pKQorICAgICAgICAgU29y dCBNZXRob2Q6IGV4dGVybmFsIG1lcmdlICBEaXNrOiBOa0IKKyAgICAgICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBhIChhY3R1YWwgdGltZT1OLk4uLk4uTiByb3dzPU4u TiBsb29wcz1OKQorIFBsYW5uaW5nIFRpbWU6IE4uTiBtcworIEV4ZWN1dGlvbiBUaW1lOiBOLk4g bXMKKyg5IHJvd3MpCisKK3Jlc2V0IHdvcmtfbWVtOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApp bmRleCA4Y2Y0MGM4NzA0My4uYjFkN2ZkOWQzM2EgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CkBAIC0yNzc5LDYgKzI3NzksNyBAQCBTU0wKIFNTTEV4dGVuc2lvbkluZm9Db250ZXh0CiBTU0xf Q1RYCiBTVEFSVFVQSU5GTworU3RvcmFnZUlPVXNhZ2UKIFNUUkxFTgogU1YKIFNZTkNIUk9OSVpB VElPTl9CQVJSSUVSCi0tIAoyLjQzLjAKCg== --00000000000087a51206526a39d5--