Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tHvQR-00Aql0-9E for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Dec 2024 01:40:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tHvQO-00Cn4G-Me for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Dec 2024 01:40:33 +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.94.2) (envelope-from ) id 1tHvQN-00Cn0s-IC for pgsql-hackers@lists.postgresql.org; Mon, 02 Dec 2024 01:40:33 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tHvQE-000ZOu-9w for pgsql-hackers@postgresql.org; Mon, 02 Dec 2024 01:40:31 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-434a9f2da82so31383275e9.2 for ; Sun, 01 Dec 2024 17:40:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733103619; x=1733708419; 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=iRfRF4lOQEFOUFY01WL07R/VDk8zuXIX2mYAkidMO3I=; b=ayn3/7FgNzJ0J3voxj1Co4bnJyu74lrFSKPg042ktC+s4btgmkMK96+yupxrndhHcl pS/SU8WxC+c/1atjXrzBOAX1wHNOwQvoULjPsvuRLRk390iQajjAsFTz16UfbaECz8ds XEUyCSac4WC8Br4x8o/0CvjgY1DLPaer1nRZIBZhkn3Jz4aGH7CU/LJp1AWoW1fqTiz/ oWS23e+3k9xGW/szq1oPGYwe+ou85uxvEyvgsQDrGkFER7uy2AdjTfftd1s7uALI06vC 29V4r2B83Ctxk6fbfh+N+C5Ml+Mzt4d9jcWIGYvnXOPRaTeJXfbVedB1tyxtD7DDveTG vHiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733103619; x=1733708419; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iRfRF4lOQEFOUFY01WL07R/VDk8zuXIX2mYAkidMO3I=; b=TIF3Vwna5Izdhme+tSArPCtx4oSnRgOuKY7f73wqeMjogZVNsyoqm2HnnB+85G6Jqy X6YdSTm/8phG17lfqgf6aXvQKzP1BsUrPDfJbXtbVqugxln41PbQXd5fnMQP/FoC3waE OpCB7oKjmFd+0ZJ6aODadOvpEmRNlWKlkzMRaiM87pDi7dqZWB1IpKtygBXCsNK95EVh 1euC51zrmVhgp6gVN7KmCeJ4UllU9UJpx7PMsteARAhsst4aAvK64sTROIuTfHcmpxPm aUkpm6bdOUj++8vBQectfy6XyhK9YVVkj3HUaIFqop6u6opGVOnDhQlW5tUa1UnxnR1S 1NKA== X-Gm-Message-State: AOJu0YzbEN7sOhdZ0AOcmd8Hj/ObZv6d9UDwP9vqUO+k4qi6ULKTLeMe gtbZZhy/xWCheeu/jR43Nx+XeHyxyc7ViSwltOGMxtTF38QeG4p9b4dpgHSqAT4Qts+Z8UEG6VX yhtZ+PGWAZ/dF1lvC6qRRB6mbTnQ= X-Gm-Gg: ASbGncu+cQIRPXjsfna5BLS1er4PXwD2NPcu9MtXBueQYR5wCa0gK9vP1RCjG0hboZg HQNojd+oTaZJ5ntPs7fMNS+jqpzJb/jTSXEmhZcrpFil/FoNrZVzL7phZqUIsa35Ypg== X-Google-Smtp-Source: AGHT+IEYCkbFn/IFy0ZA6rZ1CI90ScFdAa/8pxWThY+QsBpl/0xicjDBkq1YEelFsPM1dp63tig0X9+AKNvLbvi0NgA= X-Received: by 2002:a05:6000:1ac6:b0:385:e5d8:3ef1 with SMTP id ffacd0b85a97d-385e5d84266mr5715829f8f.44.1733103619260; Sun, 01 Dec 2024 17:40:19 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Michail Nikolaev Date: Mon, 2 Dec 2024 02:39:00 +0100 Message-ID: Subject: Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements To: Matthias van de Meent Cc: PostgreSQL Hackers , Andrey Borodin , Melanie Plageman Content-Type: multipart/mixed; boundary="0000000000009686e806283fa197" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009686e806283fa197 Content-Type: multipart/alternative; boundary="0000000000009686e706283fa195" --0000000000009686e706283fa195 Content-Type: text/plain; charset="UTF-8" Hello! Added support for parallel builds (resetting in the first phase), next step - support for unique indexes. Best regards, Mikhail. > --0000000000009686e706283fa195 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello!

Added support for par= allel builds (resetting in the first phase), next step - support for unique= indexes.

Best regards,
Mikhail.
--0000000000009686e706283fa195-- --0000000000009686e806283fa197 Content-Type: text/plain; charset="US-ASCII"; name="v2-0004-Allow-snapshot-resets-during-parallel-concurrent-.patch" Content-Disposition: attachment; filename="v2-0004-Allow-snapshot-resets-during-parallel-concurrent-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m46atnuo3 RnJvbSBmYzc5ZWM4MDg0ODM3ZTE3OTI0NDFiMWRhZTE1OTQ5ODZkYmEwY2FhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyIERlYyAyMDI0IDAxOjMzOjIxICswMTAwClN1YmplY3Q6IFtQQVRDSCB2MiA0LzRd IEFsbG93IHNuYXBzaG90IHJlc2V0cyBkdXJpbmcgcGFyYWxsZWwgY29uY3VycmVudCBpbmRleAog YnVpbGRzCgpQcmV2aW91c2x5LCBub24tdW5pcXVlIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzIGlu IHBhcmFsbGVsIG1vZGUgcmVxdWlyZWQgYQpjb25zaXN0ZW50IE1WQ0Mgc25hcHNob3QgdGhyb3Vn aG91dCB0aGUgYnVpbGQsIHdoaWNoIGNvdWxkIGhvbGQgYmFjayB0aGUgeG1pbgpob3Jpem9uIGFu ZCBwcmV2ZW50IGRlYWQgdHVwbGUgY2xlYW51cC4gVGhpcyBwYXRjaCBleHRlbmRzIHRoZSBwcmV2 aW91cyB3b3JrCm9uIHNuYXBzaG90IHJlc2V0cyAoaW50cm9kdWNlZCBmb3Igbm9uLXBhcmFsbGVs IGJ1aWxkcykgdG8gYWxzbyBzdXBwb3J0CnBhcmFsbGVsIGJ1aWxkcy4KCktleSBjaGFuZ2VzOgot IEFkZCBpbmZyYXN0cnVjdHVyZSB0byB0cmFjayBzbmFwc2hvdCByZXN0b3JhdGlvbiBpbiBwYXJh bGxlbCB3b3JrZXJzCi0gRXh0ZW5kIHBhcmFsbGVsIHNjYW4gaW5pdGlhbGl6YXRpb24gdG8gc3Vw cG9ydCBwZXJpb2RpYyBzbmFwc2hvdCByZXNldHMKLSBXYWl0IGZvciBwYXJhbGxlbCB3b3JrZXJz IHRvIHJlc3RvcmUgdGhlaXIgaW5pdGlhbCBzbmFwc2hvdHMgYmVmb3JlCiAgcHJvY2VlZGluZyB3 aXRoIHNjYW4KLSBBZGQgcmVncmVzc2lvbiB0ZXN0cyB0byB2ZXJpZnkgYmVoYXZpb3Igd2l0aCB2 YXJpb3VzIGluZGV4IHR5cGVzCgpUaGUgc25hcHNob3QgcmVzZXQgYXBwcm9hY2ggaXMgc2FmZSBm b3Igbm9uLXVuaXF1ZSBpbmRleGVzIHNpbmNlIHRoZXkgZG9uJ3QKbmVlZCBzbmFwc2hvdCBjb25z aXN0ZW5jeSBhY3Jvc3MgdGhlIGVudGlyZSBzY2FuLiBGb3IgdW5pcXVlIGluZGV4ZXMsIHdlCmNv bnRpbnVlIHRvIG1haW50YWluIGEgY29uc2lzdGVudCBzbmFwc2hvdCB0byBwcm9wZXJseSBlbmZv cmNlIHVuaXF1ZW5lc3MKY29uc3RyYWludHMuCgpUaGlzIGhlbHBzIHJlZHVjZSB0aGUgeG1pbiBo b3Jpem9uIGltcGFjdCBvZiBsb25nLXJ1bm5pbmcgY29uY3VycmVudCBpbmRleApidWlsZHMgaW4g cGFyYWxsZWwgbW9kZSwgaW1wcm92aW5nIFZBQ1VVTSdzIGFiaWxpdHkgdG8gY2xlYW4gdXAgZGVh ZCB0dXBsZXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAg ICAgIHwgNDMgKysrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYyAgICAgIHwgMTIgKysrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 c29ydC5jICAgICAgICAgICB8IDM4ICsrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dGFibGUvdGFibGVhbS5jICAgICAgICAgICAgfCAzNyArKysrKysrKysrKystLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0vcGFyYWxsZWwuYyAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysr KystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jICAgICAgICAgICAgICB8ICA4IC0t LQogc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmggICAgICAgICAgICAgICAgIHwgIDMgKy0K IHNyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggICAgICAgICAgICAgICAgICB8ICAxICsKIHNy Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgICAgICB8ICA5ICsrLS0KIC4u Li9leHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dCAgICAgICAgICB8IDIzICsrKysrKysr LQogLi4uL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbCAgICAgICAgICAgICAgIHwgIDcgKyst CiAxMiBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IGQ2OTg1OWFjNGRmLi4wNzgyYmQ2NGE2YSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW4uYwpAQCAtMTQzLDcgKzE0Myw2IEBAIHR5cGVkZWYgc3RydWN0IEJyaW5M ZWFkZXIKIAkgKi8KIAlCcmluU2hhcmVkICpicmluc2hhcmVkOwogCVNoYXJlZHNvcnQgKnNoYXJl ZHNvcnQ7Ci0JU25hcHNob3QJc25hcHNob3Q7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2U7CiAJQnVm ZmVyVXNhZ2UgKmJ1ZmZlcnVzYWdlOwogfSBCcmluTGVhZGVyOwpAQCAtMjMxLDcgKzIzMCw3IEBA IHN0YXRpYyB2b2lkIGJyaW5fZmlsbF9lbXB0eV9yYW5nZXMoQnJpbkJ1aWxkU3RhdGUgKnN0YXRl LAogc3RhdGljIHZvaWQgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxk c3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCQkJCQkJCQkgYm9vbCBpc2Nv bmN1cnJlbnQsIGludCByZXF1ZXN0KTsKIHN0YXRpYyB2b2lkIF9icmluX2VuZF9wYXJhbGxlbChC cmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRTdGF0ZSAqc3RhdGUpOwotc3RhdGljIFNp emUgX2JyaW5fcGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKFJlbGF0aW9uIGhlYXAsIFNuYXBzaG90 IHNuYXBzaG90KTsKK3N0YXRpYyBTaXplIF9icmluX3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChS ZWxhdGlvbiBoZWFwKTsKIHN0YXRpYyBkb3VibGUgX2JyaW5fcGFyYWxsZWxfaGVhcHNjYW4oQnJp bkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyBkb3VibGUgX2JyaW5fcGFyYWxsZWxfbWVyZ2Uo QnJpbkJ1aWxkU3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIF9icmluX2xlYWRlcl9wYXJ0aWNp cGF0ZV9hc193b3JrZXIoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsCkBAIC0yMzU3LDcgKzIz NTYsNiBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg UmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiB7CiAJUGFyYWxsZWxDb250ZXh0ICpwY3h0 OwogCWludAkJCXNjYW50dXBsZXNvcnRzdGF0ZXM7Ci0JU25hcHNob3QJc25hcHNob3Q7CiAJU2l6 ZQkJZXN0YnJpbnNoYXJlZDsKIAlTaXplCQllc3Rzb3J0OwogCUJyaW5TaGFyZWQgKmJyaW5zaGFy ZWQ7CkBAIC0yMzY3LDYgKzIzNjUsNyBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRT dGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJQnVmZmVy VXNhZ2UgKmJ1ZmZlcnVzYWdlOwogCWJvb2wJCWxlYWRlcnBhcnRpY2lwYXRlcyA9IHRydWU7CiAJ Ym9vbAkJbmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKKwlib29sCQl3YWl0X2Zvcl9z bmFwc2hvdF9hdHRhY2g7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURF Ul9QQVJUSUNJUEFUSU9OCkBAIC0yMzg4LDI1ICsyMzg3LDI1IEBAIF9icmluX2JlZ2luX3BhcmFs bGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBp bmRleCwKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNlIHJlbGF0aW9uLiAgSW4gYSBu b3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90QW55IGJlY2F1c2Ugd2UgbXVz dCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBxdWFsIGNoZWNr cyAoYmVjYXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVzKS4gIEluIGEK LQkgKiBjb25jdXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNuYXBzaG90IGFu ZCBpbmRleCB3aGF0ZXZlcidzCi0JICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4KKwkgKiBjb25j dXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNuYXBzaG90IGFuZCBwdXNoIGl0 IGFzIGFjdGl2ZS4KKwkgKiBMYXRlciB3ZSBpbmRleCB3aGF0ZXZlcidzIGxpdmUgYWNjb3JkaW5n IHRvIHRoYXQgc25hcHNob3Qgd2hpbGUgdGhhdAorCSAqIHNuYXBzaG90IGlzIHJlc2V0IHBlcmlv ZGljYWxseS4KIAkgKi8KIAlpZiAoIWlzY29uY3VycmVudCkKIAl7CiAJCUFzc2VydChBY3RpdmVT bmFwc2hvdFNldCgpKTsKLQkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKIAkJbmVlZF9wb3BfYWN0 aXZlX3NuYXBzaG90ID0gZmFsc2U7CiAJfQogCWVsc2UKIAl7Ci0JCXNuYXBzaG90ID0gUmVnaXN0 ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCQlBc3NlcnQoIUFjdGl2ZVNu YXBzaG90U2V0KCkpOwogCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hv dCgpKTsKIAl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNpemUgZm9yIG91ciBvd24gUEFSQUxMRUxf S0VZX0JSSU5fU0hBUkVEIHdvcmtzcGFjZS4KIAkgKi8KLQllc3Ricmluc2hhcmVkID0gX2JyaW5f cGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKGhlYXAsIHNuYXBzaG90KTsKKwllc3Ricmluc2hhcmVk ID0gX2JyaW5fcGFyYWxsZWxfZXN0aW1hdGVfc2hhcmVkKGhlYXApOwogCXNobV90b2NfZXN0aW1h dGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgZXN0YnJpbnNoYXJlZCk7CiAJZXN0c29ydCA9IHR1 cGxlc29ydF9lc3RpbWF0ZV9zaGFyZWQoc2NhbnR1cGxlc29ydHN0YXRlcyk7CiAJc2htX3RvY19l c3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBlc3Rzb3J0KTsKQEAgLTI0NDYsOCArMjQ0 NSw2IEBAIF9icmluX2JlZ2luX3BhcmFsbGVsKEJyaW5CdWlsZFN0YXRlICpidWlsZHN0YXRlLCBS ZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIAl7CiAJCWlmIChuZWVkX3BvcF9hY3RpdmVf c25hcHNob3QpCiAJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwotCQlpZiAoSXNNVkNDU25hcHNob3Qo c25hcHNob3QpKQotCQkJVW5yZWdpc3RlclNuYXBzaG90KHNuYXBzaG90KTsKIAkJRGVzdHJveVBh cmFsbGVsQ29udGV4dChwY3h0KTsKIAkJRXhpdFBhcmFsbGVsTW9kZSgpOwogCQlyZXR1cm47CkBA IC0yNDcyLDcgKzI0NjksOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAKIAl0YWJsZV9wYXJh bGxlbHNjYW5faW5pdGlhbGl6ZShoZWFwLAogCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRnJv bUJyaW5TaGFyZWQoYnJpbnNoYXJlZCksCi0JCQkJCQkJCSAgc25hcHNob3QpOworCQkJCQkJCQkg IGlzY29uY3VycmVudCA/IEludmFsaWRTbmFwc2hvdCA6IFNuYXBzaG90QW55LAorCQkJCQkJCQkg IGlzY29uY3VycmVudCk7CiAKIAkvKgogCSAqIFN0b3JlIHNoYXJlZCB0dXBsZXNvcnQtcHJpdmF0 ZSBzdGF0ZSwgZm9yIHdoaWNoIHdlIHJlc2VydmVkIHNwYWNlLgpAQCAtMjUxOCw3ICsyNTE2LDYg QEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0 aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCQlicmlubGVhZGVyLT5ucGFydGljaXBhbnR0dXBs ZXNvcnRzKys7CiAJYnJpbmxlYWRlci0+YnJpbnNoYXJlZCA9IGJyaW5zaGFyZWQ7CiAJYnJpbmxl YWRlci0+c2hhcmVkc29ydCA9IHNoYXJlZHNvcnQ7Ci0JYnJpbmxlYWRlci0+c25hcHNob3QgPSBz bmFwc2hvdDsKIAlicmlubGVhZGVyLT53YWx1c2FnZSA9IHdhbHVzYWdlOwogCWJyaW5sZWFkZXIt PmJ1ZmZlcnVzYWdlID0gYnVmZmVydXNhZ2U7CiAKQEAgLTI1MzQsNiArMjUzMSwxNiBAQCBfYnJp bl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVh cCwgUmVsYXRpb24gaW5kZXgsCiAJLyogU2F2ZSBsZWFkZXIgc3RhdGUgbm93IHRoYXQgaXQncyBj bGVhciBidWlsZCB3aWxsIGJlIHBhcmFsbGVsICovCiAJYnVpbGRzdGF0ZS0+YnNfbGVhZGVyID0g YnJpbmxlYWRlcjsKIAorCS8qCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIHNuYXBz aG90cyBhcmUgZ29pbmcgdG8gYmUgcmVzZXQgcGVyaW9kaWNhbGx5LgorCSAqIEluIGNhc2Ugd2hl biBsZWFkZXIgZ29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFwc2hvdCBhcyB3ZWxsIC0gd2Ug bmVlZCB0bworCSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1wb3J0ZWQgaW5pdGlhbCBzbmFw c2hvdC4KKwkgKi8KKwl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2ggPSBpc2NvbmN1cnJlbnQgJiYg bGVhZGVycGFydGljaXBhdGVzOworCisJaWYgKHdhaXRfZm9yX3NuYXBzaG90X2F0dGFjaCkKKwkJ V2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQsIHRydWUpOworCiAJLyogSm9pbiBo ZWFwIHNjYW4gb3Vyc2VsdmVzICovCiAJaWYgKGxlYWRlcnBhcnRpY2lwYXRlcykKIAkJX2JyaW5f bGVhZGVyX3BhcnRpY2lwYXRlX2FzX3dvcmtlcihidWlsZHN0YXRlLCBoZWFwLCBpbmRleCk7CkBA IC0yNTQyLDcgKzI1NDksOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAq YnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJICogQ2FsbGVyIG5l ZWRzIHRvIHdhaXQgZm9yIGFsbCBsYXVuY2hlZCB3b3JrZXJzIHdoZW4gd2UgcmV0dXJuLiAgTWFr ZQogCSAqIHN1cmUgdGhhdCB0aGUgZmFpbHVyZS10by1zdGFydCBjYXNlIHdpbGwgbm90IGhhbmcg Zm9yZXZlci4KIAkgKi8KLQlXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9BdHRhY2gocGN4dCk7CisJ aWYgKCF3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2gpCisJCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNU b0F0dGFjaChwY3h0LCBmYWxzZSk7CiAJaWYgKG5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkKIAkJ UG9wQWN0aXZlU25hcHNob3QoKTsKIH0KQEAgLTI1NjUsOSArMjU3Myw2IEBAIF9icmluX2VuZF9w YXJhbGxlbChCcmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRTdGF0ZSAqc3RhdGUpCiAJ Zm9yIChpID0gMDsgaSA8IGJyaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKysp CiAJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZmZXJ1c2FnZVtpXSwg JmJyaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKIAotCS8qIEZyZWUgbGFzdCByZWZlcmVuY2UgdG8g TVZDQyBzbmFwc2hvdCwgaWYgb25lIHdhcyB1c2VkICovCi0JaWYgKElzTVZDQ1NuYXBzaG90KGJy aW5sZWFkZXItPnNuYXBzaG90KSkKLQkJVW5yZWdpc3RlclNuYXBzaG90KGJyaW5sZWFkZXItPnNu YXBzaG90KTsKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0KGJyaW5sZWFkZXItPnBjeHQpOwogCUV4 aXRQYXJhbGxlbE1vZGUoKTsKIH0KQEAgLTI3NjcsMTQgKzI3NzIsMTQgQEAgX2JyaW5fcGFyYWxs ZWxfbWVyZ2UoQnJpbkJ1aWxkU3RhdGUgKnN0YXRlKQogCiAvKgogICogUmV0dXJucyBzaXplIG9m IHNoYXJlZCBtZW1vcnkgcmVxdWlyZWQgdG8gc3RvcmUgc3RhdGUgZm9yIGEgcGFyYWxsZWwKLSAq IGJyaW4gaW5kZXggYnVpbGQgYmFzZWQgb24gdGhlIHNuYXBzaG90IGl0cyBwYXJhbGxlbCBzY2Fu IHdpbGwgdXNlLgorICogYnJpbiBpbmRleCBidWlsZC4KICAqLwogc3RhdGljIFNpemUKLV9icmlu X3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChSZWxhdGlvbiBoZWFwLCBTbmFwc2hvdCBzbmFwc2hv dCkKK19icmluX3BhcmFsbGVsX2VzdGltYXRlX3NoYXJlZChSZWxhdGlvbiBoZWFwKQogewogCS8q IGMuZi4gc2htX3RvY19hbGxvY2F0ZSBhcyB0byB3aHkgQlVGRkVSQUxJR04gaXMgdXNlZCAqLwog CXJldHVybiBhZGRfc2l6ZShCVUZGRVJBTElHTihzaXplb2YoQnJpblNoYXJlZCkpLAotCQkJCQl0 YWJsZV9wYXJhbGxlbHNjYW5fZXN0aW1hdGUoaGVhcCwgc25hcHNob3QpKTsKKwkJCQkJdGFibGVf cGFyYWxsZWxzY2FuX2VzdGltYXRlKGhlYXAsIEludmFsaWRTbmFwc2hvdCkpOwogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggOTgwYzUxZTMyYjku LjJlNTE2MzYwOWMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f aGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK QEAgLTEyMzEsMTQgKzEyMzEsMTMgQEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCSAqIFNuYXBzaG90QW55IGJlY2F1c2Ugd2UgbXVzdCByZXRy aWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBxdWFsIGNoZWNrcyAoYmVj YXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVzKS4gSW4gYQogCSAqIGNv bmN1cnJlbnQgYnVpbGQsIG9yIGR1cmluZyBib290c3RyYXAsIHdlIHRha2UgYSByZWd1bGFyIE1W Q0Mgc25hcHNob3QKLQkgKiBhbmQgaW5kZXggd2hhdGV2ZXIncyBsaXZlIGFjY29yZGluZyB0byB0 aGF0LgorCSAqIGFuZCBpbmRleCB3aGF0ZXZlcidzIGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQgd2hp bGUgdGhhdCBzbmFwc2hvdCBpcyByZXNldAorCSAqIGV2ZXJ5IHNvIG9mdGVuIChpbiBjYXNlIG9m IG5vbi11bmlxdWUgaW5kZXgpLgogCSAqLwogCU9sZGVzdFhtaW4gPSBJbnZhbGlkVHJhbnNhY3Rp b25JZDsKIAogCS8qCiAJICogRm9yIHVuaXF1ZSBpbmRleCB3ZSBuZWVkIGNvbnNpc3RlbnQgc25h cHNob3QgZm9yIHRoZSB3aG9sZSBzY2FuLgotCSAqIEluIGNhc2Ugb2YgcGFyYWxsZWwgc2NhbiBz b21lIGFkZGl0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUgcmVxdWlyZWQKLQkgKiB0byBwZXJmb3JtIHNj YW4gd2l0aCBTT19SRVNFVF9TTkFQU0hPVCB3aGljaCBpcyBub3QgeWV0IHJlYWR5LgogCSAqLwog CXJlc2V0X3NuYXBzaG90cyA9IGluZGV4SW5mby0+aWlfQ29uY3VycmVudCAmJgogCQkJCQkgICFp bmRleEluZm8tPmlpX1VuaXF1ZSAmJgpAQCAtMTMwMCw4ICsxMjk5LDExIEBAIGhlYXBhbV9pbmRl eF9idWlsZF9yYW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJQXNzZXJ0KCFJc0Jv b3RzdHJhcFByb2Nlc3NpbmdNb2RlKCkpOwogCQlBc3NlcnQoYWxsb3dfc3luYyk7CiAJCXNuYXBz aG90ID0gc2Nhbi0+cnNfc25hcHNob3Q7Ci0JCVB1c2hBY3RpdmVTbmFwc2hvdChzbmFwc2hvdCk7 Ci0JCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IHRydWU7CisJCWlmICghcmVzZXRfc25hcHNo b3RzKQorCQl7CisJCQlQdXNoQWN0aXZlU25hcHNob3Qoc25hcHNob3QpOworCQkJbmVlZF9wb3Bf YWN0aXZlX3NuYXBzaG90ID0gdHJ1ZTsKKwkJfQogCX0KIAogCWhzY2FuID0gKEhlYXBTY2FuRGVz Yykgc2NhbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggNWM0NTgxYWZiMWEu LjJhY2JmMTIxNzQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNv cnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTQxMSw2 ICsxNDExLDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwg Ym9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2Fn ZTsKIAlib29sCQlsZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOwogCWJvb2wJCW5lZWRfcG9wX2Fj dGl2ZV9zbmFwc2hvdCA9IHRydWU7CisJYm9vbAkJcmVzZXRfc25hcHNob3Q7CisJYm9vbAkJd2Fp dF9mb3Jfc25hcHNob3RfYXR0YWNoOwogCWludAkJCXF1ZXJ5bGVuOwogCiAjaWZkZWYgRElTQUJM RV9MRUFERVJfUEFSVElDSVBBVElPTgpAQCAtMTQyOCwxMiArMTQzMCwyMSBAQCBfYnRfYmVnaW5f cGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwgaW50 IHJlcXVlc3QpCiAKIAlzY2FudHVwbGVzb3J0c3RhdGVzID0gbGVhZGVycGFydGljaXBhdGVzID8g cmVxdWVzdCArIDEgOiByZXF1ZXN0OwogCisgICAgLyoKKwkgKiBGb3IgY29uY3VycmVudCBub24t dW5pcXVlIGluZGV4IGJ1aWxkcywgd2UgY2FuIHBlcmlvZGljYWxseSByZXNldCBzbmFwc2hvdHMK KwkgKiB0byBhbGxvdyB0aGUgeG1pbiBob3Jpem9uIHRvIGFkdmFuY2UuIFRoaXMgaXMgc2FmZSBz aW5jZSB0aGVzZSBidWlsZHMgZG9uJ3QKKwkgKiByZXF1aXJlIGEgY29uc2lzdGVudCB2aWV3IGFj cm9zcyB0aGUgZW50aXJlIHNjYW4uIFVuaXF1ZSBpbmRleGVzIHN0aWxsIG5lZWQKKwkgKiBhIHN0 YWJsZSBzbmFwc2hvdCB0byBwcm9wZXJseSBlbmZvcmNlIHVuaXF1ZW5lc3MgY29uc3RyYWludHMu CisgICAgICovCisJcmVzZXRfc25hcHNob3QgPSBpc2NvbmN1cnJlbnQgJiYgIWJ0c3Bvb2wtPmlz dW5pcXVlOworCiAJLyoKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNlIHJlbGF0aW9u LiAgSW4gYSBub3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90QW55IGJlY2F1 c2Ugd2UgbXVzdCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRpbWUKIAkgKiBx dWFsIGNoZWNrcyAoYmVjYXVzZSB3ZSBoYXZlIHRvIGluZGV4IFJFQ0VOVExZX0RFQUQgdHVwbGVz KS4gIEluIGEKIAkgKiBjb25jdXJyZW50IGJ1aWxkLCB3ZSB0YWtlIGEgcmVndWxhciBNVkNDIHNu YXBzaG90IGFuZCBpbmRleCB3aGF0ZXZlcidzCi0JICogbGl2ZSBhY2NvcmRpbmcgdG8gdGhhdC4K KwkgKiBsaXZlIGFjY29yZGluZyB0byB0aGF0LCB3aGlsZSB0aGF0IHNuYXBzaG90IG1heSBiZSBy ZXNldCBwZXJpb2RpY2FsbHkgaW4KKwkgKiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXguCiAJICov CiAJaWYgKCFpc2NvbmN1cnJlbnQpCiAJewpAQCAtMTQ0MSw2ICsxNDUyLDExIEBAIF9idF9iZWdp bl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJyZW50LCBp bnQgcmVxdWVzdCkKIAkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKIAkJbmVlZF9wb3BfYWN0aXZl X3NuYXBzaG90ID0gZmFsc2U7CiAJfQorCWVsc2UgaWYgKHJlc2V0X3NuYXBzaG90KQorCXsKKwkJ c25hcHNob3QgPSBJbnZhbGlkU25hcHNob3Q7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFu c2FjdGlvblNuYXBzaG90KCkpOworCX0KIAllbHNlCiAJewogCQlzbmFwc2hvdCA9IFJlZ2lzdGVy U25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKQEAgLTE1MDEsNyArMTUxNyw3IEBA IF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25j dXJyZW50LCBpbnQgcmVxdWVzdCkKIAl7CiAJCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3Qp CiAJCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwotCQlpZiAoSXNNVkNDU25hcHNob3Qoc25hcHNob3Qp KQorCQlpZiAoc25hcHNob3QgIT0gSW52YWxpZFNuYXBzaG90ICYmIElzTVZDQ1NuYXBzaG90KHNu YXBzaG90KSkKIAkJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CiAJCURlc3Ryb3lQYXJh bGxlbENvbnRleHQocGN4dCk7CiAJCUV4aXRQYXJhbGxlbE1vZGUoKTsKQEAgLTE1MjgsNyArMTU0 NCw4IEBAIF9idF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wg aXNjb25jdXJyZW50LCBpbnQgcmVxdWVzdCkKIAlidHNoYXJlZC0+YnJva2VuaG90Y2hhaW4gPSBm YWxzZTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShidHNwb29sLT5oZWFwLAogCQkJ CQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSwKLQkJCQkJCQkJ ICBzbmFwc2hvdCk7CisJCQkJCQkJCSAgc25hcHNob3QsCisJCQkJCQkJCSAgcmVzZXRfc25hcHNo b3QpOwogCiAJLyoKIAkgKiBTdG9yZSBzaGFyZWQgdHVwbGVzb3J0LXByaXZhdGUgc3RhdGUsIGZv ciB3aGljaCB3ZSByZXNlcnZlZCBzcGFjZS4KQEAgLTE2MDQsNiArMTYyMSwxNiBAQCBfYnRfYmVn aW5fcGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBib29sIGlzY29uY3VycmVudCwg aW50IHJlcXVlc3QpCiAJLyogU2F2ZSBsZWFkZXIgc3RhdGUgbm93IHRoYXQgaXQncyBjbGVhciBi dWlsZCB3aWxsIGJlIHBhcmFsbGVsICovCiAJYnVpbGRzdGF0ZS0+YnRsZWFkZXIgPSBidGxlYWRl cjsKIAorCS8qCisJICogSW4gY2FzZSBvZiBjb25jdXJyZW50IGJ1aWxkIHNuYXBzaG90cyBhcmUg Z29pbmcgdG8gYmUgcmVzZXQgcGVyaW9kaWNhbGx5LgorCSAqIEluIGNhc2Ugd2hlbiBsZWFkZXIg Z29pbmcgdG8gcmVzZXQgb3duIGFjdGl2ZSBzbmFwc2hvdCBhcyB3ZWxsIC0gd2UgbmVlZCB0bwor CSAqIHdhaXQgdW50aWwgYWxsIHdvcmtlcnMgaW1wb3J0ZWQgaW5pdGlhbCBzbmFwc2hvdC4KKwkg Ki8KKwl3YWl0X2Zvcl9zbmFwc2hvdF9hdHRhY2ggPSByZXNldF9zbmFwc2hvdCAmJiBsZWFkZXJw YXJ0aWNpcGF0ZXM7CisKKwlpZiAod2FpdF9mb3Jfc25hcHNob3RfYXR0YWNoKQorCQlXYWl0Rm9y UGFyYWxsZWxXb3JrZXJzVG9BdHRhY2gocGN4dCwgdHJ1ZSk7CisKIAkvKiBKb2luIGhlYXAgc2Nh biBvdXJzZWx2ZXMgKi8KIAlpZiAobGVhZGVycGFydGljaXBhdGVzKQogCQlfYnRfbGVhZGVyX3Bh cnRpY2lwYXRlX2FzX3dvcmtlcihidWlsZHN0YXRlKTsKQEAgLTE2MTIsNyArMTYzOSw4IEBAIF9i dF9iZWdpbl9wYXJhbGxlbChCVEJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIGJvb2wgaXNjb25jdXJy ZW50LCBpbnQgcmVxdWVzdCkKIAkgKiBDYWxsZXIgbmVlZHMgdG8gd2FpdCBmb3IgYWxsIGxhdW5j aGVkIHdvcmtlcnMgd2hlbiB3ZSByZXR1cm4uICBNYWtlCiAJICogc3VyZSB0aGF0IHRoZSBmYWls dXJlLXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3QgaGFuZyBmb3JldmVyLgogCSAqLwotCVdhaXRGb3JQ YXJhbGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0KTsKKwlpZiAoIXdhaXRfZm9yX3NuYXBzaG90X2F0 dGFjaCkKKwkJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0YWNoKHBjeHQsIGZhbHNlKTsKIAlp ZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQogCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQpA QCAtMTYzNiw3ICsxNjY0LDcgQEAgX2J0X2VuZF9wYXJhbGxlbChCVExlYWRlciAqYnRsZWFkZXIp CiAJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZidGxlYWRlci0+YnVmZmVydXNhZ2VbaV0sICZi dGxlYWRlci0+d2FsdXNhZ2VbaV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkND IHNuYXBzaG90LCBpZiBvbmUgd2FzIHVzZWQgKi8KLQlpZiAoSXNNVkNDU25hcHNob3QoYnRsZWFk ZXItPnNuYXBzaG90KSkKKwlpZiAoYnRsZWFkZXItPnNuYXBzaG90ICE9IEludmFsaWRTbmFwc2hv dCAmJiBJc01WQ0NTbmFwc2hvdChidGxlYWRlci0+c25hcHNob3QpKQogCQlVbnJlZ2lzdGVyU25h cHNob3QoYnRsZWFkZXItPnNuYXBzaG90KTsKIAlEZXN0cm95UGFyYWxsZWxDb250ZXh0KGJ0bGVh ZGVyLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxNb2RlKCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxl YW0uYwppbmRleCBiZDg3MTViNjc5Ny4uY2FjN2E5ZWE4OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxl L3RhYmxlYW0uYwpAQCAtMTMxLDEwICsxMzEsMTAgQEAgdGFibGVfcGFyYWxsZWxzY2FuX2VzdGlt YXRlKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QpCiB7CiAJU2l6ZQkJc3ogPSAwOwog Ci0JaWYgKElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkKKwlpZiAoc25hcHNob3QgIT0gSW52YWxp ZFNuYXBzaG90ICYmIElzTVZDQ1NuYXBzaG90KHNuYXBzaG90KSkKIAkJc3ogPSBhZGRfc2l6ZShz eiwgRXN0aW1hdGVTbmFwc2hvdFNwYWNlKHNuYXBzaG90KSk7CiAJZWxzZQotCQlBc3NlcnQoc25h cHNob3QgPT0gU25hcHNob3RBbnkpOworCQlBc3NlcnQoc25hcHNob3QgPT0gU25hcHNob3RBbnkg fHwgc25hcHNob3QgPT0gSW52YWxpZFNuYXBzaG90KTsKIAogCXN6ID0gYWRkX3NpemUoc3osIHJl bC0+cmRfdGFibGVhbS0+cGFyYWxsZWxzY2FuX2VzdGltYXRlKHJlbCkpOwogCkBAIC0xNDMsMjEg KzE0MywzNiBAQCB0YWJsZV9wYXJhbGxlbHNjYW5fZXN0aW1hdGUoUmVsYXRpb24gcmVsLCBTbmFw c2hvdCBzbmFwc2hvdCkKIAogdm9pZAogdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUoUmVs YXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCi0JCQkJCQkJICBTbmFwc2hv dCBzbmFwc2hvdCkKKwkJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LCBib29sIHJlc2V0X3NuYXBz aG90KQogewogCVNpemUJCXNuYXBzaG90X29mZiA9IHJlbC0+cmRfdGFibGVhbS0+cGFyYWxsZWxz Y2FuX2luaXRpYWxpemUocmVsLCBwc2Nhbik7CiAKIAlwc2Nhbi0+cGhzX3NuYXBzaG90X29mZiA9 IHNuYXBzaG90X29mZjsKIAotCWlmIChJc01WQ0NTbmFwc2hvdChzbmFwc2hvdCkpCisJLyoKKwkg KiBJbml0aWFsaXplIHBhcmFsbGVsIHNjYW4gZGVzY3JpcHRpb24uIEZvciBub3JtYWwgc2NhbnMg d2l0aCBhIHJlZ3VsYXIKKwkgKiBNVkNDIHNuYXBzaG90LCBzZXJpYWxpemUgdGhlIHNuYXBzaG90 IGluZm8uIEZvciBzY2FucyB0aGF0IHVzZSBwZXJpb2RpYworCSAqIHNuYXBzaG90IHJlc2V0cywg bWFyayB0aGUgc2NhbiBhY2NvcmRpbmdseS4KKwkgKi8KKwlpZiAocmVzZXRfc25hcHNob3QpCisJ eworCQlBc3NlcnQoc25hcHNob3QgPT0gSW52YWxpZFNuYXBzaG90KTsKKwkJcHNjYW4tPnBoc19z bmFwc2hvdF9hbnkgPSBmYWxzZTsKKwkJcHNjYW4tPnBoc19yZXNldF9zbmFwc2hvdCA9IHRydWU7 CisJCUlOSkVDVElPTl9QT0lOVCgidGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUiKTsKKwl9 CisJZWxzZSBpZiAoSXNNVkNDU25hcHNob3Qoc25hcHNob3QpKQogCXsKIAkJU2VyaWFsaXplU25h cHNob3Qoc25hcHNob3QsIChjaGFyICopIHBzY2FuICsgcHNjYW4tPnBoc19zbmFwc2hvdF9vZmYp OwogCQlwc2Nhbi0+cGhzX3NuYXBzaG90X2FueSA9IGZhbHNlOworCQlwc2Nhbi0+cGhzX3Jlc2V0 X3NuYXBzaG90ID0gZmFsc2U7CiAJfQogCWVsc2UKIAl7CiAJCUFzc2VydChzbmFwc2hvdCA9PSBT bmFwc2hvdEFueSk7CisJCUFzc2VydCghcmVzZXRfc25hcHNob3QpOwogCQlwc2Nhbi0+cGhzX3Nu YXBzaG90X2FueSA9IHRydWU7CisJCXBzY2FuLT5waHNfcmVzZXRfc25hcHNob3QgPSBmYWxzZTsK IAl9CiB9CiAKQEAgLTE3MCw3ICsxODUsMTkgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJl bGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAKIAlBc3NlcnQo UmVsRmlsZUxvY2F0b3JFcXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9j YXRvcikpOwogCi0JaWYgKCFwc2Nhbi0+cGhzX3NuYXBzaG90X2FueSkKKwkvKgorCSAqIEZvciBz Y2FucyB0aGF0CisJICogdXNlIHBlcmlvZGljIHNuYXBzaG90IHJlc2V0cywgbWFyayB0aGUgc2Nh biBhY2NvcmRpbmdseSBhbmQgdXNlIHRoZSBhY3RpdmUKKwkgKiBzbmFwc2hvdCBhcyB0aGUgaW5p dGlhbCBzdGF0ZS4KKwkgKi8KKwlpZiAocHNjYW4tPnBoc19yZXNldF9zbmFwc2hvdCkKKwl7CisJ CUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKKwkJZmxhZ3MgfD0gU09fUkVTRVRfU05BUFNI T1Q7CisJCS8qIFN0YXJ0IHdpdGggY3VycmVudCBhY3RpdmUgc25hcHNob3QuICovCisJCXNuYXBz aG90ID0gR2V0QWN0aXZlU25hcHNob3QoKTsKKwl9CisJZWxzZSBpZiAoIXBzY2FuLT5waHNfc25h cHNob3RfYW55KQogCXsKIAkJLyogU25hcHNob3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBp dCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVTbmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2Fu LT5waHNfc25hcHNob3Rfb2ZmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3BhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9wYXJhbGxlbC5jCmlu ZGV4IDBhMWUwODllYzFkLi5kNDljNmVlNDEwZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9w YXJhbGxlbC5jCkBAIC03Niw2ICs3Niw3IEBACiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9SRUxNQVBQ RVJfU1RBVEUJCVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAwRCkKICNkZWZpbmUgUEFSQUxM RUxfS0VZX1VOQ09NTUlUVEVERU5VTVMJCVVJTlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAwRSkK ICNkZWZpbmUgUEFSQUxMRUxfS0VZX0NMSUVOVENPTk5JTkZPCQkJVUlOVDY0Q09OU1QoMHhGRkZG RkZGRkZGRkYwMDBGKQorI2RlZmluZSBQQVJBTExFTF9LRVlfU05BUFNIT1RfUkVTVE9SRUQJCVVJ TlQ2NENPTlNUKDB4RkZGRkZGRkZGRkZGMDAxMCkKIAogLyogRml4ZWQtc2l6ZSBwYXJhbGxlbCBz dGF0ZS4gKi8KIHR5cGVkZWYgc3RydWN0IEZpeGVkUGFyYWxsZWxTdGF0ZQpAQCAtMzAxLDYgKzMw MiwxMCBAQCBJbml0aWFsaXplUGFyYWxsZWxEU00oUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCQkJ CQkJCQkJCXBjeHQtPm53b3JrZXJzKSk7CiAJCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ ZXN0aW1hdG9yLCAxKTsKIAorCQlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0 b3IsIG11bF9zaXplKHNpemVvZihib29sKSwKKwkJCQkJCQkgICBwY3h0LT5ud29ya2VycykpOwor CQlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisKIAkJLyogRXN0 aW1hdGUgaG93IG11Y2ggd2UnbGwgbmVlZCBmb3IgdGhlIGVudHJ5cG9pbnQgaW5mby4gKi8KIAkJ c2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBzdHJsZW4ocGN4dC0+bGli cmFyeV9uYW1lKSArCiAJCQkJCQkJICAgc3RybGVuKHBjeHQtPmZ1bmN0aW9uX25hbWUpICsgMik7 CkBAIC0zNzIsNiArMzc3LDcgQEAgSW5pdGlhbGl6ZVBhcmFsbGVsRFNNKFBhcmFsbGVsQ29udGV4 dCAqcGN4dCkKIAkJY2hhcgkgICAqZW50cnlwb2ludHN0YXRlOwogCQljaGFyCSAgICp1bmNvbW1p dHRlZGVudW1zc3BhY2U7CiAJCWNoYXIJICAgKmNsaWVudGNvbm5pbmZvc3BhY2U7CisJCWJvb2wJ ICAgKnNuYXBzaG90X3NldF9mbGFnX3NwYWNlOwogCQlTaXplCQlsbmFtZWxlbjsKIAogCQkvKiBT ZXJpYWxpemUgc2hhcmVkIGxpYnJhcmllcyB3ZSBoYXZlIGxvYWRlZC4gKi8KQEAgLTQ4Nyw2ICs0 OTMsMTkgQEAgSW5pdGlhbGl6ZVBhcmFsbGVsRFNNKFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIAkJ c3RyY3B5KGVudHJ5cG9pbnRzdGF0ZSwgcGN4dC0+bGlicmFyeV9uYW1lKTsKIAkJc3RyY3B5KGVu dHJ5cG9pbnRzdGF0ZSArIGxuYW1lbGVuICsgMSwgcGN4dC0+ZnVuY3Rpb25fbmFtZSk7CiAJCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX0VOVFJZUE9JTlQsIGVudHJ5cG9p bnRzdGF0ZSk7CisKKwkJLyoKKwkJICogRXN0YWJsaXNoIGR5bmFtaWMgc2hhcmVkIG1lbW9yeSB0 byBwYXNzIGluZm9ybWF0aW9uIGFib3V0IGltcG9ydGluZworCQkgKiBvZiBzbmFwc2hvdC4KKwkJ ICovCisJCXNuYXBzaG90X3NldF9mbGFnX3NwYWNlID0KKwkJCQlzaG1fdG9jX2FsbG9jYXRlKHBj eHQtPnRvYywgbXVsX3NpemUoc2l6ZW9mKGJvb2wpLCBwY3h0LT5ud29ya2VycykpOworCQlmb3Ig KGkgPSAwOyBpIDwgcGN4dC0+bndvcmtlcnM7ICsraSkKKwkJeworCQkJcGN4dC0+d29ya2VyW2ld LnNuYXBzaG90X3Jlc3RvcmVkID0gc25hcHNob3Rfc2V0X2ZsYWdfc3BhY2UgKyBpICogc2l6ZW9m KGJvb2wpOworCQkJKnBjeHQtPndvcmtlcltpXS5zbmFwc2hvdF9yZXN0b3JlZCA9IGZhbHNlOwor CQl9CisJCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NOQVBTSE9UX1JF U1RPUkVELCBzbmFwc2hvdF9zZXRfZmxhZ19zcGFjZSk7CiAJfQogCiAJLyogVXBkYXRlIG53b3Jr ZXJzX3RvX2xhdW5jaCwgaW4gY2FzZSB3ZSBjaGFuZ2VkIG53b3JrZXJzIGFib3ZlLiAqLwpAQCAt NTQyLDYgKzU2MSwxNyBAQCBSZWluaXRpYWxpemVQYXJhbGxlbERTTShQYXJhbGxlbENvbnRleHQg KnBjeHQpCiAJCQlwY3h0LT53b3JrZXJbaV0uZXJyb3JfbXFoID0gc2htX21xX2F0dGFjaChtcSwg cGN4dC0+c2VnLCBOVUxMKTsKIAkJfQogCX0KKworCS8qIFNldCBzbmFwc2hvdCByZXN0b3JlZCBm bGFnIHRvIGZhbHNlLiAqLworCWlmIChwY3h0LT5ud29ya2VycyA+IDApCisJeworCQlib29sCSAg ICpzbmFwc2hvdF9yZXN0b3JlZF9zcGFjZTsKKwkJaW50CQkJaTsKKwkJc25hcHNob3RfcmVzdG9y ZWRfc3BhY2UgPQorCQkJCXNobV90b2NfbG9va3VwKHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NO QVBTSE9UX1JFU1RPUkVELCBmYWxzZSk7CisJCWZvciAoaSA9IDA7IGkgPCBwY3h0LT5ud29ya2Vy czsgKytpKQorCQkJc25hcHNob3RfcmVzdG9yZWRfc3BhY2VbaV0gPSBmYWxzZTsKKwl9CiB9CiAK IC8qCkBAIC02NTcsNiArNjg3LDEwIEBAIExhdW5jaFBhcmFsbGVsV29ya2VycyhQYXJhbGxlbENv bnRleHQgKnBjeHQpCiAgKiBXYWl0IGZvciBhbGwgd29ya2VycyB0byBhdHRhY2ggdG8gdGhlaXIg ZXJyb3IgcXVldWVzLCBhbmQgdGhyb3cgYW4gZXJyb3IgaWYKICAqIGFueSB3b3JrZXIgZmFpbHMg dG8gZG8gdGhpcy4KICAqCisgKiB3YWl0X2Zvcl9zbmFwc2hvdDogdHJhY2sgd2hldGhlciBlYWNo IHBhcmFsbGVsIHdvcmtlciBoYXMgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkCisgKiBpdHMgc25hcHNo b3QuIFRoaXMgaXMgbmVlZGVkIHdoZW4gdXNpbmcgcGVyaW9kaWMgc25hcHNob3QgcmVzZXRzIHRv IGVuc3VyZSBhbGwKKyAqIHdvcmtlcnMgaGF2ZSBhIHZhbGlkIGluaXRpYWwgc25hcHNob3QgYmVm b3JlIHByb2NlZWRpbmcgd2l0aCB0aGUgc2Nhbi4KKyAqCiAgKiBDYWxsZXJzIGNhbiBhc3N1bWUg dGhhdCBpZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgc3VjY2Vzc2Z1bGx5LCB0aGVuIHRoZQogICog bnVtYmVyIG9mIHdvcmtlcnMgZ2l2ZW4gYnkgcGN4dC0+bndvcmtlcnNfbGF1bmNoZWQgaGF2ZSBp bml0aWFsaXplZCBhbmQKICAqIGF0dGFjaGVkIHRvIHRoZWlyIGVycm9yIHF1ZXVlcy4gIFdoZXRo ZXIgb3Igbm90IHRoZXNlIHdvcmtlcnMgYXJlIGd1YXJhbnRlZWQKQEAgLTY4Niw3ICs3MjAsNyBA QCBMYXVuY2hQYXJhbGxlbFdvcmtlcnMoUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogICogY2FsbCB0 aGlzIGZ1bmN0aW9uIGF0IGFsbC4KICAqLwogdm9pZAotV2FpdEZvclBhcmFsbGVsV29ya2Vyc1Rv QXR0YWNoKFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKK1dhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0 dGFjaChQYXJhbGxlbENvbnRleHQgKnBjeHQsIGJvb2wgd2FpdF9mb3Jfc25hcHNob3QpCiB7CiAJ aW50CQkJaTsKIApAQCAtNzMwLDkgKzc2NCwxMiBAQCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9B dHRhY2goUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCQkJCW1xID0gc2htX21xX2dldF9xdWV1ZShw Y3h0LT53b3JrZXJbaV0uZXJyb3JfbXFoKTsKIAkJCQlpZiAoc2htX21xX2dldF9zZW5kZXIobXEp ICE9IE5VTEwpCiAJCQkJewotCQkJCQkvKiBZZXMsIHNvIGl0IGlzIGtub3duIHRvIGJlIGF0dGFj aGVkLiAqLwotCQkJCQlwY3h0LT5rbm93bl9hdHRhY2hlZF93b3JrZXJzW2ldID0gdHJ1ZTsKLQkJ CQkJKytwY3h0LT5ua25vd25fYXR0YWNoZWRfd29ya2VyczsKKwkJCQkJaWYgKCF3YWl0X2Zvcl9z bmFwc2hvdCB8fCAqKHBjeHQtPndvcmtlcltpXS5zbmFwc2hvdF9yZXN0b3JlZCkpCisJCQkJCXsK KwkJCQkJCS8qIFllcywgc28gaXQgaXMga25vd24gdG8gYmUgYXR0YWNoZWQuICovCisJCQkJCQlw Y3h0LT5rbm93bl9hdHRhY2hlZF93b3JrZXJzW2ldID0gdHJ1ZTsKKwkJCQkJCSsrcGN4dC0+bmtu b3duX2F0dGFjaGVkX3dvcmtlcnM7CisJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCQllbHNlIGlmIChz dGF0dXMgPT0gQkdXSF9TVE9QUEVEKQpAQCAtMTI5MSw2ICsxMzI4LDcgQEAgUGFyYWxsZWxXb3Jr ZXJNYWluKERhdHVtIG1haW5fYXJnKQogCXNobV90b2MgICAgKnRvYzsKIAlGaXhlZFBhcmFsbGVs U3RhdGUgKmZwczsKIAljaGFyCSAgICplcnJvcl9xdWV1ZV9zcGFjZTsKKwlib29sCSAgICpzbmFw c2hvdF9yZXN0b3JlZF9zcGFjZTsKIAlzaG1fbXEJICAgKm1xOwogCXNobV9tcV9oYW5kbGUgKm1x aDsKIAljaGFyCSAgICpsaWJyYXJ5c3BhY2U7CkBAIC0xNDg5LDYgKzE1MjcsMTAgQEAgUGFyYWxs ZWxXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCQkJCQkJCSAgIGZwcy0+cGFyYWxsZWxfbGVh ZGVyX3BncHJvYyk7CiAJUHVzaEFjdGl2ZVNuYXBzaG90KGFzbmFwc2hvdCk7CiAKKwkvKiBTbmFw c2hvdCBpcyByZXN0b3JlZCwgc2V0IGZsYWcgdG8gbWFrZSBsZWFkZXIga25vdyBhYm91dCBpdC4g Ki8KKwlzbmFwc2hvdF9yZXN0b3JlZF9zcGFjZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxM RUxfS0VZX1NOQVBTSE9UX1JFU1RPUkVELCBmYWxzZSk7CisJc25hcHNob3RfcmVzdG9yZWRfc3Bh Y2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdID0gdHJ1ZTsKKwogCS8qCiAJICogV2UndmUgY2hhbmdl ZCB3aGljaCB0dXBsZXMgd2UgY2FuIHNlZSwgYW5kIG11c3QgdGhlcmVmb3JlIGludmFsaWRhdGUK IAkgKiBzeXN0ZW0gY2FjaGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKaW5kZXggN2Ni MTJhMTFjMmQuLjI5MDdiMzY2NzkxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAg LTI2Miw3ICsyNjIsOCBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpu b2RlLAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5vZGUtPnBzY2FuX2xl bik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJl bGF0aW9uLAogCQkJCQkJCQkgIHBzY2FuLAotCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3Qp OworCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCisJCQkJCQkJCSAgZmFsc2UpOwogCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBw c2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy90 aW1lL3NuYXBtZ3IuYwppbmRleCAzYTczNTdhMDUwZC4uMTQ4ZTE5ODJjYWQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L3RpbWUvc25hcG1nci5jCkBAIC0yOTEsMTQgKzI5MSw2IEBAIEdldFRyYW5zYWN0aW9uU25hcHNo b3Qodm9pZCkKIFNuYXBzaG90CiBHZXRMYXRlc3RTbmFwc2hvdCh2b2lkKQogewotCS8qCi0JICog V2UgbWlnaHQgYmUgYWJsZSB0byByZWxheCB0aGlzLCBidXQgbm90aGluZyB0aGF0IGNvdWxkIG90 aGVyd2lzZSB3b3JrCi0JICogbmVlZHMgaXQuCi0JICovCi0JaWYgKElzSW5QYXJhbGxlbE1vZGUo KSkKLQkJZWxvZyhFUlJPUiwKLQkJCSAiY2Fubm90IHVwZGF0ZSBTZWNvbmRhcnlTbmFwc2hvdCBk dXJpbmcgYSBwYXJhbGxlbCBvcGVyYXRpb24iKTsKLQogCS8qCiAJICogU28gZmFyIHRoZXJlIGFy ZSBubyBjYXNlcyByZXF1aXJpbmcgc3VwcG9ydCBmb3IgR2V0TGF0ZXN0U25hcHNob3QoKQogCSAq IGR1cmluZyBsb2dpY2FsIGRlY29kaW5nLCBidXQgaXQgd291bGRuJ3QgYmUgaGFyZCB0byBhZGQg aWYgcmVxdWlyZWQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcGFyYWxsZWwuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9wYXJhbGxlbC5oCmluZGV4IDY5ZmZlNTQ5OGY5Li45NjRhN2U5 NDViZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3BhcmFsbGVsLmgKQEAgLTI2LDYgKzI2LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgUGFyYWxsZWxXb3JrZXJJbmZvCiB7CiAJQmFja2dyb3VuZFdvcmtlckhhbmRsZSAqYmd3aGFu ZGxlOwogCXNobV9tcV9oYW5kbGUgKmVycm9yX21xaDsKKwlib29sCQkgICpzbmFwc2hvdF9yZXN0 b3JlZDsKIH0gUGFyYWxsZWxXb3JrZXJJbmZvOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbGxlbENv bnRleHQKQEAgLTY1LDcgKzY2LDcgQEAgZXh0ZXJuIHZvaWQgSW5pdGlhbGl6ZVBhcmFsbGVsRFNN KFBhcmFsbGVsQ29udGV4dCAqcGN4dCk7CiBleHRlcm4gdm9pZCBSZWluaXRpYWxpemVQYXJhbGxl bERTTShQYXJhbGxlbENvbnRleHQgKnBjeHQpOwogZXh0ZXJuIHZvaWQgUmVpbml0aWFsaXplUGFy YWxsZWxXb3JrZXJzKFBhcmFsbGVsQ29udGV4dCAqcGN4dCwgaW50IG53b3JrZXJzX3RvX2xhdW5j aCk7CiBleHRlcm4gdm9pZCBMYXVuY2hQYXJhbGxlbFdvcmtlcnMoUGFyYWxsZWxDb250ZXh0ICpw Y3h0KTsKLWV4dGVybiB2b2lkIFdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFjaChQYXJhbGxl bENvbnRleHQgKnBjeHQpOworZXh0ZXJuIHZvaWQgV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvQXR0 YWNoKFBhcmFsbGVsQ29udGV4dCAqcGN4dCwgYm9vbCB3YWl0X2Zvcl9zbmFwc2hvdCk7CiBleHRl cm4gdm9pZCBXYWl0Rm9yUGFyYWxsZWxXb3JrZXJzVG9GaW5pc2goUGFyYWxsZWxDb250ZXh0ICpw Y3h0KTsKIGV4dGVybiB2b2lkIERlc3Ryb3lQYXJhbGxlbENvbnRleHQoUGFyYWxsZWxDb250ZXh0 ICpwY3h0KTsKIGV4dGVybiBib29sIFBhcmFsbGVsQ29udGV4dEFjdGl2ZSh2b2lkKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsc2Nhbi5oCmluZGV4IGUxODg0YWNmNDkzLi5hOTYwMzA4NGFlYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nh bi5oCkBAIC04OCw2ICs4OCw3IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFsbGVsVGFibGVTY2FuRGVz Y0RhdGEKIAlSZWxGaWxlTG9jYXRvciBwaHNfbG9jYXRvcjsgLyogcGh5c2ljYWwgcmVsYXRpb24g dG8gc2NhbiAqLwogCWJvb2wJCXBoc19zeW5jc2NhbjsJLyogcmVwb3J0IGxvY2F0aW9uIHRvIHN5 bmNzY2FuIGxvZ2ljPyAqLwogCWJvb2wJCXBoc19zbmFwc2hvdF9hbnk7CS8qIFNuYXBzaG90QW55 LCBub3QgcGhzX3NuYXBzaG90X2RhdGE/ICovCisJYm9vbAkJcGhzX3Jlc2V0X3NuYXBzaG90OyAv KiB1c2UgU09fUkVTRVRfU05BUFNIT1Q/ICovCiAJU2l6ZQkJcGhzX3NuYXBzaG90X29mZjsJLyog ZGF0YSBmb3Igc25hcHNob3QgKi8KIH0gUGFyYWxsZWxUYWJsZVNjYW5EZXNjRGF0YTsKIHR5cGVk ZWYgc3RydWN0IFBhcmFsbGVsVGFibGVTY2FuRGVzY0RhdGEgKlBhcmFsbGVsVGFibGVTY2FuRGVz YzsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvdGFibGVhbS5oCmluZGV4IGY0YzdkMmE5MmJmLi45ZWU1ZWExNWZkNCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvdGFibGVhbS5oCkBAIC0xMTg0LDcgKzExODQsOCBAQCBleHRlcm4gU2l6ZSB0YWJsZV9wYXJh bGxlbHNjYW5fZXN0aW1hdGUoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCk7CiAgKi8K IGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwK IAkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKLQkJCQkJCQkJCQkgIFNu YXBzaG90IHNuYXBzaG90KTsKKwkJCQkJCQkJCQkgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkJ CQkJCSAgYm9vbCByZXNldF9zbmFwc2hvdCk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFsbGVsIHNj YW4uIGBwc2NhbmAgbmVlZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGgKQEAgLTE4MDIs OSArMTgwMyw5IEBAIHRhYmxlX3NjYW5fYW5hbHl6ZV9uZXh0X3R1cGxlKFRhYmxlU2NhbkRlc2Mg c2NhbiwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogICogVGhpcyBvbmx5IHJlYWxseSBtYWtl cyBzZW5zZSBmb3IgaGVhcCBBTSwgaXQgbWlnaHQgbmVlZCB0byBiZSBnZW5lcmFsaXplZAogICog Zm9yIG90aGVyIEFNcyBsYXRlci4KICAqCi0gKiBJbiBjYXNlIG9mIG5vbi11bmlxdWUgaW5kZXgg YW5kIG5vbi1wYXJhbGxlbCBjb25jdXJyZW50IGJ1aWxkCi0gKiBTT19SRVNFVF9TTkFQU0hPVCBp cyBhcHBsaWVkIGZvciB0aGUgc2Nhbi4gVGhhdCBsZWFkcyBmb3IgY2hhbmdpbmcgc25hcHNob3Rz Ci0gKiBvbiB0aGUgZmx5IHRvIGFsbG93IHhtaW4gaG9yaXpvbiBwcm9wYWdhdGUuCisgKiBJbiBj YXNlIG9mIG5vbi11bmlxdWUgY29uY3VycmVudCAgaW5kZXggYnVpbGQgU09fUkVTRVRfU05BUFNI T1QgaXMgYXBwbGllZAorICogZm9yIHRoZSBzY2FuLiBUaGF0IGxlYWRzIGZvciBjaGFuZ2luZyBz bmFwc2hvdHMgb24gdGhlIGZseSB0byBhbGxvdyB4bWluCisgKiBob3Jpem9uIHByb3BhZ2F0ZS4K ICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oUmVsYXRp b24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CmluZGV4IDRj ZmJiYjA1OTIzLi40OWVmNjhkOTA3MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmpl Y3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9jaWNfcmVzZXRfc25hcHNob3Rz Lm91dApAQCAtMTcsNiArMTcsMTIgQEAgU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0 YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzJywgJ25vdGljZScKICAKICgxIHJv dykKIAorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0YWJsZV9wYXJhbGxlbHNjYW5f aW5pdGlhbGl6ZScsICdub3RpY2UnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogQ1JFQVRFIFNDSEVNQSBjaWNfcmVz ZXRfc25hcDsKIENSRUFURSBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwoaSBpbnQgcHJpbWFyeSBr ZXksIGogaW50KTsKIElOU0VSVCBJTlRPIGNpY19yZXNldF9zbmFwLnRibCBTRUxFQ1QgaSwgaSAq IEkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBzKGkpOwpAQCAtNzIsMjcgKzc4LDQwIEBA IE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CiAtLSBUaGUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlCiBBTFRFUiBUQUJMRSBj aWNfcmVzZXRfc25hcC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTIpOworLS0gRGV0YWNoIHRv IGtlZXAgdGVzdCBzdGFibGUsIHNpbmNlIHBhcmFsbGVsIHdvcmtlciBtYXkgY29tcGxldGUgc2Nh biBiZWZvcmUgbGVhZGVyCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2hlYXBfcmVz ZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwogQ1JFQVRFIFVOSVFVRSBJ TkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKIFJFSU5ERVgg SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIERST1AgSU5ERVggQ09OQ1VS UkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogUkVJTkRFWCBJ TkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRy aWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXpl CiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CiBDUkVBVEUgSU5E RVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoTU9EKGksIDIpLCBqKSBX SEVSRSBNT0QoaSwgMikgPSAwOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplCiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVk IGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIERST1Ag SU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBXSEVSRSBjaWNfcmVzZXRf c25hcC5wcmVkaWNhdGVfc3RhYmxlKGkpOwogTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3Ig aW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKLU5P VElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3Nj YW5fc25hcHNob3RfZWZmZWN0aXZlCiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CiBOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9p bnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cwotTk9USUNFOiAgbm90aWNl IHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9l ZmZlY3RpdmUKIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKIENS RUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBqKSBX SEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFtKCk7CitOT1RJQ0U6 ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2Fu X2luaXRpYWxpemUKIFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlk eDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9w YXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OwogQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3Nu YXAudGJsIFVTSU5HIEJSSU4oaSk7CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmpl Y3Rpb24gcG9pbnQgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUKIFJFSU5ERVggSU5ERVgg Q09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2Vy ZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZQogRFJP UCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OwogRFJPUCBTQ0hFTUEgY2lj X3Jlc2V0X3NuYXAgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMyBvdGhlciBv YmplY3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3Fs L2NpY19yZXNldF9zbmFwc2hvdHMuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbAppbmRleCA0ZmVmNWE0NzQzMS4uNWQxYzMx NDkzZjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwv Y2ljX3Jlc2V0X3NuYXBzaG90cy5zcWwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25f cG9pbnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbApAQCAtMyw3ICszLDcgQEAgQ1JFQVRF IEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwogU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0 X2xvY2FsKCk7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2hlYXBfcmVzZXRfc2Nh bl9zbmFwc2hvdF9lZmZlY3RpdmUnLCAnbm90aWNlJyk7CiBTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19hdHRhY2goJ3RhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMnLCAnbm90aWNl Jyk7Ci0KK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgndGFibGVfcGFyYWxsZWxzY2Fu X2luaXRpYWxpemUnLCAnbm90aWNlJyk7CiAKIENSRUFURSBTQ0hFTUEgY2ljX3Jlc2V0X3NuYXA7 CiBDUkVBVEUgVEFCTEUgY2ljX3Jlc2V0X3NuYXAudGJsKGkgaW50IHByaW1hcnkga2V5LCBqIGlu dCk7CkBAIC01Myw2ICs1Myw5IEBAIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9z bmFwLmlkeDsKIC0tIFRoZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUKIEFMVEVSIFRBQkxFIGNpY19y ZXNldF9zbmFwLnRibCBTRVQgKHBhcmFsbGVsX3dvcmtlcnM9Mik7CiAKKy0tIERldGFjaCB0byBr ZWVwIHRlc3Qgc3RhYmxlLCBzaW5jZSBwYXJhbGxlbCB3b3JrZXIgbWF5IGNvbXBsZXRlIHNjYW4g YmVmb3JlIGxlYWRlcgorU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlJyk7CisKIENSRUFURSBVTklRVUUgSU5ERVggQ09OQ1VS UkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7CiBSRUlOREVYIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CiBEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNf cmVzZXRfc25hcC5pZHg7CkBAIC03OSw0ICs4Miw0IEBAIERST1AgSU5ERVggQ09OQ1VSUkVOVExZ IGNpY19yZXNldF9zbmFwLmlkeDsKIAogRFJPUCBTQ0hFTUEgY2ljX3Jlc2V0X3NuYXAgQ0FTQ0FE RTsKIAotRFJPUCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK0RST1AgRVhURU5TSU9OIGlu amVjdGlvbl9wb2ludHM7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi40My4wCgo= --0000000000009686e806283fa197 Content-Type: text/plain; charset="US-ASCII"; name="v2-0001-this-is-https-commitfest.postgresql.org-50-5160-m.patch" Content-Disposition: attachment; filename="v2-0001-this-is-https-commitfest.postgresql.org-50-5160-m.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m46atnua0 RnJvbSA5NDMyZGE2MWQ3NjQwNDU3YTY3Y2M1YWM4ZWNkMGIxYzZiZTEzMmUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxMTozNjoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjIgMS80 XSB0aGlzIGlzIGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy81MC81MTYwLwogbWVy Z2VkIGluIHNpbmdsZSBjb21taXQuIGl0IGlzIHJlcXVpcmVkIGZvciBzdGFiaWxpdHkgb2Ygc3Ry ZXNzIHRlc3RzLgoKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jICAgICAg ICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9uLmMgICAgICAg ICAgfCAxMTkgKysrKysrKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUu YyAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAg ICAgICAgIHwgMTM1ICsrKysrKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5j ICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv TWFrZWZpbGUgICAgfCAgIDcgKy0KIC4uLi9leHBlY3RlZC9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0Lm91dCAgICB8ICA4MCArKysrKysKIC4uLi9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3By ZWRpY2F0ZS5vdXQgICB8ICA4MCArKysrKysKIC4uLi9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJl bnRseV91cHNlcnQub3V0ICB8IDIzOCArKysrKysrKysrKysrKysrKysKIC4uLm5kZXhfY29uY3Vy cmVudGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dCB8IDIzOCArKysrKysrKysrKysrKysrKysK IC4uLmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3BhcnRpdGlvbmVkLm91dCB8IDIzOCArKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5i dWlsZCB8ICAxMSArCiAuLi4vc3BlY3MvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5zcGVjICAg ICAgfCAgNjggKysrKysKIC4uLi9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3ByZWRpY2F0ZS5z cGVjICB8ICA3MCArKysrKysKIC4uLi9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQu c3BlYyAgICB8ICA4NiArKysrKysrCiAuLi5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9jb25z dHJhaW50LnNwZWMgfCAgODYgKysrKysrKwogLi4uaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9w YXJ0aXRpb25lZC5zcGVjIHwgIDg4ICsrKysrKysKIDE4IGZpbGVzIGNoYW5nZWQsIDE1MDUgaW5z ZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv bW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luZGV4X2NvbmN1cnJlbnRseV91cHNl cnQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLm91dAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVu dGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJlbnRseV91 cHNlcnRfcGFydGl0aW9uZWQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQuc3BlYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVj cy9pbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3ByZWRpY2F0ZS5zcGVjCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29u Y3VycmVudGx5X3Vwc2VydC5zcGVjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50LnNwZWMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvc3BlY3MvcmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X3BhcnRpdGlvbmVk LnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IDQwNDljZTFhMTBmLi45MzI4NTRk NmM2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTE3NjYsNiArMTc2Niw3IEBAIERl ZmluZUluZGV4KE9pZCB0YWJsZUlkLAogCSAqIGJlZm9yZSB0aGUgcmVmZXJlbmNlIHNuYXAgd2Fz IHRha2VuLCB3ZSBoYXZlIHRvIHdhaXQgb3V0IGFueQogCSAqIHRyYW5zYWN0aW9ucyB0aGF0IG1p Z2h0IGhhdmUgb2xkZXIgc25hcHNob3RzLgogCSAqLworCUlOSkVDVElPTl9QT0lOVCgiZGVmaW5l X2luZGV4X2JlZm9yZV9zZXRfdmFsaWQiKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFt KFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKIAkJCQkJCQkJIFBST0dSRVNTX0NSRUFURUlEWF9Q SEFTRV9XQUlUXzMpOwogCVdhaXRGb3JPbGRlclNuYXBzaG90cyhsaW1pdFhtaW4sIHRydWUpOwpA QCAtNDIwNiw3ICs0MjA3LDcgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KGNvbnN0IFJl aW5kZXhTdG10ICpzdG10LCBPaWQgcmVsYXRpb25PaWQsIGNvbnN0IFJlaW4KIAkgKiB0aGUgc2Ft ZSB0aW1lIHRvIG1ha2Ugc3VyZSB3ZSBvbmx5IGdldCBjb25zdHJhaW50IHZpb2xhdGlvbnMgZnJv bSB0aGUKIAkgKiBpbmRleGVzIHdpdGggdGhlIGNvcnJlY3QgbmFtZXMuCiAJICovCi0KKwlJTkpF Q1RJT05fUE9JTlQoInJlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwIik7 CiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKIAogCS8qCkBAIC00Mjg1LDYgKzQyODYsNyBA QCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoY29uc3QgUmVpbmRleFN0bXQgKnN0bXQsIE9p ZCByZWxhdGlvbk9pZCwgY29uc3QgUmVpbgogCSAqIGluZGV4X2Ryb3AoKSBmb3IgbW9yZSBkZXRh aWxzLgogCSAqLwogCisJSU5KRUNUSU9OX1BPSU5UKCJyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc2V0X2RlYWQiKTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBS T0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKIAkJCQkJCQkJIFBST0dSRVNTX0NSRUFURUlEWF9QSEFT RV9XQUlUXzQpOwogCVdhaXRGb3JMb2NrZXJzTXVsdGlwbGUobG9ja1RhZ3MsIEFjY2Vzc0V4Y2x1 c2l2ZUxvY2ssIHRydWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCBmMGE1 Zjg4NzlhOS4uODIwNzQ5MjM5Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBA IC0xMTcsNiArMTE3LDcgQEAKICNpbmNsdWRlICJ1dGlscy9tdWx0aXJhbmdldHlwZXMuaCIKICNp bmNsdWRlICJ1dGlscy9yYW5nZXR5cGVzLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgor I2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogCiAvKiB3YWl0TW9kZSBhcmd1bWVu dCB0byBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoKSAqLwogdHlwZWRlZiBl bnVtCkBAIC05MzYsNiArOTM3LDggQEAgcmV0cnk6CiAJZWNvbnRleHQtPmVjeHRfc2NhbnR1cGxl ID0gc2F2ZV9zY2FudHVwbGU7CiAKIAlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KGV4aXN0 aW5nX3Nsb3QpOworCWlmICghY29uZmxpY3QpCisJCUlOSkVDVElPTl9QT0lOVCgiY2hlY2tfZXhj bHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Iik7CiAKIAlyZXR1cm4gIWNv bmZsaWN0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlv bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jCmluZGV4IDc2NTE4ODYy MjkxLi5hZWVlZTQxZDVmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Bh cnRpdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYwpAQCAt NDgzLDYgKzQ4Myw0OCBAQCBFeGVjRmluZFBhcnRpdGlvbihNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLAogCXJldHVybiBycmk7CiB9CiAKKy8qCisgKiBJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRl cgorICogCQlDaGVja3MgaWYgdGhlIGluZGV4ZXMgYXJlIGlkZW50aWNhbCBpbiB0ZXJtcyBvZiBi ZWluZyB1c2VkCisgKiAJCWFzIGFyYml0ZXJzIGZvciB0aGUgSU5TRVJUIE9OIENPTkZMSUNUIG9w ZXJhdGlvbiBieSBjb21wYXJpbmcKKyAqIAkJdGhlbSB0byB0aGUgcHJvdmlkZWQgYXJiaXRlciBp bmRleC4KKyAqCisgKiBSZXR1cm5zIHRoZSB0cnVlIGlmIGluZGV4ZXMgYXJlIGNvbXBhdGlibGUu CisgKi8KK3N0YXRpYyBib29sCitJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRlcihSZWxhdGlvbglh cmJpdGVySW5kZXhSZWxhdGlvbiwKKwkJCQkJCSAgIEluZGV4SW5mbyAgKmFyYml0ZXJJbmRleElu Zm8sCisJCQkJCQkgICBSZWxhdGlvbglpbmRleFJlbGF0aW9uLAorCQkJCQkJICAgSW5kZXhJbmZv ICAqaW5kZXhJbmZvKQoreworCWludCBpOworCisJaWYgKGFyYml0ZXJJbmRleEluZm8tPmlpX1Vu aXF1ZSAhPSBpbmRleEluZm8tPmlpX1VuaXF1ZSkKKwkJcmV0dXJuIGZhbHNlOworCS8qIGl0IGlz IG5vdCBzdXBwb3J0ZWQgZm9yIGNhc2VzIG9mIGV4Y2x1c2lvbiBjb25zdHJhaW50cy4gKi8KKwlp ZiAoYXJiaXRlckluZGV4SW5mby0+aWlfRXhjbHVzaW9uT3BzICE9IE5VTEwgfHwgaW5kZXhJbmZv LT5paV9FeGNsdXNpb25PcHMgIT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChhcmJpdGVy SW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZG5rZXlhdHRzICE9IGluZGV4UmVsYXRpb24tPnJk X2luZGV4LT5pbmRua2V5YXR0cykKKwkJcmV0dXJuIGZhbHNlOworCisJZm9yIChpID0gMDsgaSA8 IGluZGV4UmVsYXRpb24tPnJkX2luZGV4LT5pbmRua2V5YXR0czsgaSsrKQorCXsKKwkJaW50CQkJ YXJiaXRlckF0dG9ObyA9IGFyYml0ZXJJbmRleFJlbGF0aW9uLT5yZF9pbmRleC0+aW5ka2V5LnZh bHVlc1tpXTsKKwkJaW50CQkJYXR0b05vID0gaW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZGtl eS52YWx1ZXNbaV07CisJCWlmIChhcmJpdGVyQXR0b05vICE9IGF0dG9ObykKKwkJCXJldHVybiBm YWxzZTsKKwl9CisKKwlpZiAobGlzdF9kaWZmZXJlbmNlKFJlbGF0aW9uR2V0SW5kZXhFeHByZXNz aW9ucyhhcmJpdGVySW5kZXhSZWxhdGlvbiksCisJCQkJCQlSZWxhdGlvbkdldEluZGV4RXhwcmVz c2lvbnMoaW5kZXhSZWxhdGlvbikpICE9IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGxp c3RfZGlmZmVyZW5jZShSZWxhdGlvbkdldEluZGV4UHJlZGljYXRlKGFyYml0ZXJJbmRleFJlbGF0 aW9uKSwKKwkJCQkJCVJlbGF0aW9uR2V0SW5kZXhQcmVkaWNhdGUoaW5kZXhSZWxhdGlvbikpICE9 IE5JTCkKKwkJcmV0dXJuIGZhbHNlOworCXJldHVybiB0cnVlOworfQorCiAvKgogICogRXhlY0lu aXRQYXJ0aXRpb25JbmZvCiAgKgkJTG9jayB0aGUgcGFydGl0aW9uIGFuZCBpbml0aWFsaXplIFJl c3VsdFJlbEluZm8uICBBbHNvIHNldHVwIG90aGVyCkBAIC02OTMsNiArNzM1LDggQEAgRXhlY0lu aXRQYXJ0aXRpb25JbmZvKE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRl LAogCQlpZiAocm9vdFJlc3VsdFJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyAh PSBOSUwpCiAJCXsKIAkJCUxpc3QJICAgKmNoaWxkSWR4czsKKwkJCUxpc3QgCSAgICpub25BbmNl c3RvcklkeHMgPSBOSUw7CisJCQlpbnQJCSAgIGksIGosIGFkZGl0aW9uYWxfYXJiaXRlcnMgPSAw OwogCiAJCQljaGlsZElkeHMgPSBSZWxhdGlvbkdldEluZGV4TGlzdChsZWFmX3BhcnRfcnJpLT5y aV9SZWxhdGlvbkRlc2MpOwogCkBAIC03MDMsMjMgKzc0Nyw3NCBAQCBFeGVjSW5pdFBhcnRpdGlv bkluZm8oTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCQkJTGlz dENlbGwgICAqbGMyOwogCiAJCQkJYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMo Y2hpbGRJZHgpOwotCQkJCWZvcmVhY2gobGMyLCByb290UmVzdWx0UmVsSW5mby0+cmlfb25Db25m bGljdEFyYml0ZXJJbmRleGVzKQorCQkJCWlmIChhbmNlc3RvcnMpCiAJCQkJewotCQkJCQlpZiAo bGlzdF9tZW1iZXJfb2lkKGFuY2VzdG9ycywgbGZpcnN0X29pZChsYzIpKSkKLQkJCQkJCWFyYml0 ZXJJbmRleGVzID0gbGFwcGVuZF9vaWQoYXJiaXRlckluZGV4ZXMsIGNoaWxkSWR4KTsKKwkJCQkJ Zm9yZWFjaChsYzIsIHJvb3RSZXN1bHRSZWxJbmZvLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4 ZXMpCisJCQkJCXsKKwkJCQkJCWlmIChsaXN0X21lbWJlcl9vaWQoYW5jZXN0b3JzLCBsZmlyc3Rf b2lkKGxjMikpKQorCQkJCQkJCWFyYml0ZXJJbmRleGVzID0gbGFwcGVuZF9vaWQoYXJiaXRlcklu ZGV4ZXMsIGNoaWxkSWR4KTsKKwkJCQkJfQogCQkJCX0KKwkJCQllbHNlIC8qIE5vIGFuY2VzdG9y IHdhcyBmb3VuZCBmb3IgdGhhdCBpbmRleC4gU2F2ZSBpdCBmb3IgcmVjaGVja2luZyBsYXRlci4g Ki8KKwkJCQkJbm9uQW5jZXN0b3JJZHhzID0gbGFwcGVuZF9vaWQobm9uQW5jZXN0b3JJZHhzLCBj aGlsZElkeCk7CiAJCQkJbGlzdF9mcmVlKGFuY2VzdG9ycyk7CiAJCQl9CisKKwkJCS8qCisJCQkg KiBJZiBhbnkgbm9uLWFuY2VzdG9yIGluZGV4ZXMgYXJlIGZvdW5kLCB3ZSBuZWVkIHRvIGNvbXBh cmUgdGhlbSB3aXRoIG90aGVyCisJCQkgKiBpbmRleGVzIG9mIHRoZSByZWxhdGlvbiB0aGF0IHdp bGwgYmUgdXNlZCBhcyBhcmJpdGVycy4gVGhpcyBpcyBuZWNlc3NhcnkKKwkJCSAqIHdoZW4gYSBw YXJ0aXRpb25lZCBpbmRleCBpcyBwcm9jZXNzZWQgYnkgUkVJTkRFWCBDT05DVVJSRU5UTFkuIEJv dGggaW5kZXhlcworCQkJICogbXVzdCBiZSBjb25zaWRlcmVkIGFzIGFyYml0ZXJzIHRvIGVuc3Vy ZSB0aGF0IGFsbCBjb25jdXJyZW50IHRyYW5zYWN0aW9ucworCQkJICogdXNlIHRoZSBzYW1lIHNl dCBvZiBhcmJpdGVycy4KKwkJCSAqLworCQkJaWYgKG5vbkFuY2VzdG9ySWR4cykKKwkJCXsKKwkJ CQlmb3IgKGkgPSAwOyBpIDwgbGVhZl9wYXJ0X3JyaS0+cmlfTnVtSW5kaWNlczsgaSsrKQorCQkJ CXsKKwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChub25BbmNlc3RvcklkeHMsIGxlYWZfcGFydF9y cmktPnJpX0luZGV4UmVsYXRpb25EZXNjc1tpXS0+cmRfaW5kZXgtPmluZGV4cmVsaWQpKQorCQkJ CQl7CisJCQkJCQlSZWxhdGlvbiBub25BbmNlc3RvckluZGV4UmVsYXRpb24gPSBsZWFmX3BhcnRf cnJpLT5yaV9JbmRleFJlbGF0aW9uRGVzY3NbaV07CisJCQkJCQlJbmRleEluZm8gKm5vbkFuY2Vz dG9ySW5kZXhJbmZvID0gbGVhZl9wYXJ0X3JyaS0+cmlfSW5kZXhSZWxhdGlvbkluZm9baV07CisJ CQkJCQlBc3NlcnQoIWxpc3RfbWVtYmVyX29pZChhcmJpdGVySW5kZXhlcywgbm9uQW5jZXN0b3JJ bmRleFJlbGF0aW9uLT5yZF9pbmRleC0+aW5kZXhyZWxpZCkpOworCisJCQkJCQkvKiBJdCBpcyB0 b28gZWFybHkgdG8gdXMgbm9uLXJlYWR5IGluZGV4ZXMgYXMgYXJiaXRlcnMgKi8KKwkJCQkJCWlm ICghbm9uQW5jZXN0b3JJbmRleEluZm8tPmlpX1JlYWR5Rm9ySW5zZXJ0cykKKwkJCQkJCQljb250 aW51ZTsKKworCQkJCQkJZm9yIChqID0gMDsgaiA8IGxlYWZfcGFydF9ycmktPnJpX051bUluZGlj ZXM7IGorKykKKwkJCQkJCXsKKwkJCQkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFyYml0ZXJJbmRl eGVzLAorCQkJCQkJCQkJCQkJbGVhZl9wYXJ0X3JyaS0+cmlfSW5kZXhSZWxhdGlvbkRlc2NzW2pd LT5yZF9pbmRleC0+aW5kZXhyZWxpZCkpCisJCQkJCQkJeworCQkJCQkJCQlSZWxhdGlvbiBhcmJp dGVySW5kZXhSZWxhdGlvbiA9IGxlYWZfcGFydF9ycmktPnJpX0luZGV4UmVsYXRpb25EZXNjc1tq XTsKKwkJCQkJCQkJSW5kZXhJbmZvICphcmJpdGVySW5kZXhJbmZvID0gbGVhZl9wYXJ0X3JyaS0+ cmlfSW5kZXhSZWxhdGlvbkluZm9bal07CisKKwkJCQkJCQkJLyogSWYgbm9uLWFuY2VzdG9yIGlu ZGV4IGFyZSBjb21wYXRpYmxlIHRvIGFyYml0ZXIgLSB1c2UgaXQgYXMgYXJiaXRlciB0b28uICov CisJCQkJCQkJCWlmIChJc0luZGV4Q29tcGF0aWJsZUFzQXJiaXRlcihhcmJpdGVySW5kZXhSZWxh dGlvbiwgYXJiaXRlckluZGV4SW5mbywKKwkJCQkJCQkJCQkJCQkJCSAgIG5vbkFuY2VzdG9ySW5k ZXhSZWxhdGlvbiwgbm9uQW5jZXN0b3JJbmRleEluZm8pKQorCQkJCQkJCQl7CisJCQkJCQkJCQlh cmJpdGVySW5kZXhlcyA9IGxhcHBlbmRfb2lkKGFyYml0ZXJJbmRleGVzLAorCQkJCQkJCQkJCQkJ CQkJCSBub25BbmNlc3RvckluZGV4UmVsYXRpb24tPnJkX2luZGV4LT5pbmRleHJlbGlkKTsKKwkJ CQkJCQkJCWFkZGl0aW9uYWxfYXJiaXRlcnMrKzsKKwkJCQkJCQkJfQorCQkJCQkJCX0KKwkJCQkJ CX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWxpc3RfZnJlZShub25BbmNlc3RvcklkeHMpOwor CisJCQkvKgorCQkJICogSWYgdGhlIHJlc3VsdGluZyBsaXN0cyBhcmUgb2YgaW5lcXVhbCBsZW5n dGgsIHNvbWV0aGluZyBpcyB3cm9uZy4KKwkJCSAqIChUaGlzIHNob3VsZG4ndCBoYXBwZW4sIHNp bmNlIGFyYml0ZXIgaW5kZXggc2VsZWN0aW9uIHNob3VsZCBub3QKKwkJCSAqIHBpY2sgdXAgYSBu b24tcmVhZHkgaW5kZXguKQorCQkJICoKKwkJCSAqIEJ1dCB3ZSBuZWVkIHRvIGNvbnNpZGVyIGFu IGFkZGl0aW9uYWwgYXJiaXRlciBpbmRleGVzIGFsc28uCisJCQkgKi8KKwkJCWlmIChsaXN0X2xl bmd0aChyb290UmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzKSAhPQor CQkJCWxpc3RfbGVuZ3RoKGFyYml0ZXJJbmRleGVzKSAtIGFkZGl0aW9uYWxfYXJiaXRlcnMpCisJ CQkJZWxvZyhFUlJPUiwgImludmFsaWQgYXJiaXRlciBpbmRleCBsaXN0Iik7CiAJCX0KLQotCQkv KgotCQkgKiBJZiB0aGUgcmVzdWx0aW5nIGxpc3RzIGFyZSBvZiBpbmVxdWFsIGxlbmd0aCwgc29t ZXRoaW5nIGlzIHdyb25nLgotCQkgKiAoVGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBzaW5jZSBhcmJp dGVyIGluZGV4IHNlbGVjdGlvbiBzaG91bGQgbm90Ci0JCSAqIHBpY2sgdXAgYW4gaW52YWxpZCBp bmRleC4pCi0JCSAqLwotCQlpZiAobGlzdF9sZW5ndGgocm9vdFJlc3VsdFJlbEluZm8tPnJpX29u Q29uZmxpY3RBcmJpdGVySW5kZXhlcykgIT0KLQkJCWxpc3RfbGVuZ3RoKGFyYml0ZXJJbmRleGVz KSkKLQkJCWVsb2coRVJST1IsICJpbnZhbGlkIGFyYml0ZXIgaW5kZXggbGlzdCIpOwogCQlsZWFm X3BhcnRfcnJpLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSBhcmJpdGVySW5kZXhlczsK IAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCAxMTYxNTIw Zjc2Yi4uMjNjZjRjNmI1NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMv aW5qZWN0aW9uX3BvaW50LmgiCiAKIAogdHlwZWRlZiBzdHJ1Y3QgTVRUYXJnZXRSZWxMb29rdXAK QEAgLTEwODcsNiArMTA4OCw3IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250 ZXh0LAogCQkJCQlyZXR1cm4gTlVMTDsKIAkJCQl9CiAJCQl9CisJCQlJTkpFQ1RJT05fUE9JTlQo ImV4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUiKTsKIAogCQkJLyoKIAkJCSAq IEJlZm9yZSB3ZSBzdGFydCBpbnNlcnRpb24gcHJvcGVyLCBhY3F1aXJlIG91ciAic3BlY3VsYXRp dmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYwppbmRleCAzN2IwY2EyZTQzOS4uNWZm ZWY0NTk1ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKQEAgLTcxMywxMiAr NzEzLDE0IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAlMaXN0 CSAgICppbmRleExpc3Q7CiAJTGlzdENlbGwgICAqbDsKIAotCS8qIE5vcm1hbGl6ZWQgaW5mZXJl bmNlIGF0dHJpYnV0ZXMgYW5kIGluZmVyZW5jZSBleHByZXNzaW9uczogKi8KLQlCaXRtYXBzZXQg ICppbmZlckF0dHJzID0gTlVMTDsKLQlMaXN0CSAgICppbmZlckVsZW1zID0gTklMOworCS8qIE5v cm1hbGl6ZWQgcmVxdWlyZWQgYXR0cmlidXRlcyBhbmQgZXhwcmVzc2lvbnM6ICovCisJQml0bWFw c2V0ICAqcmVxdWlyZWRBcmJpdGVyQXR0cnMgPSBOVUxMOworCUxpc3QJICAgKnJlcXVpcmVkQXJi aXRlckVsZW1zID0gTklMOworCUxpc3QJICAgKnJlcXVpcmVkSW5kZXhQcmVkRXhwcnMgPSAoTGlz dCAqKSBvbmNvbmZsaWN0LT5hcmJpdGVyV2hlcmU7CiAKIAkvKiBSZXN1bHRzICovCiAJTGlzdAkg ICAqcmVzdWx0cyA9IE5JTDsKKwlib29sCSAgIGZvdW5kVmFsaWQgPSBmYWxzZTsKIAogCS8qCiAJ ICogUXVpY2tseSByZXR1cm4gTklMIGZvciBPTiBDT05GTElDVCBETyBOT1RISU5HIHdpdGhvdXQg YW4gaW5mZXJlbmNlCkBAIC03NTMsOCArNzU1LDggQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBs YW5uZXJJbmZvICpyb290KQogCiAJCWlmICghSXNBKGVsZW0tPmV4cHIsIFZhcikpCiAJCXsKLQkJ CS8qIElmIG5vdCBhIHBsYWluIFZhciwganVzdCBzaG92ZSBpdCBpbiBpbmZlckVsZW1zIGZvciBu b3cgKi8KLQkJCWluZmVyRWxlbXMgPSBsYXBwZW5kKGluZmVyRWxlbXMsIGVsZW0tPmV4cHIpOwor CQkJLyogSWYgbm90IGEgcGxhaW4gVmFyLCBqdXN0IHNob3ZlIGl0IGluIHJlcXVpcmVkQXJiaXRl ckVsZW1zIGZvciBub3cgKi8KKwkJCXJlcXVpcmVkQXJiaXRlckVsZW1zID0gbGFwcGVuZChyZXF1 aXJlZEFyYml0ZXJFbGVtcywgZWxlbS0+ZXhwcik7CiAJCQljb250aW51ZTsKIAkJfQogCkBAIC03 NjYsMzAgKzc2OCw3NiBAQCBpbmZlcl9hcmJpdGVyX2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3Qp CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJIGVy cm1zZygid2hvbGUgcm93IHVuaXF1ZSBpbmRleCBpbmZlcmVuY2Ugc3BlY2lmaWNhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKSkpOwogCi0JCWluZmVyQXR0cnMgPSBibXNfYWRkX21lbWJlcihpbmZl ckF0dHJzLAorCQlyZXF1aXJlZEFyYml0ZXJBdHRycyA9IGJtc19hZGRfbWVtYmVyKHJlcXVpcmVk QXJiaXRlckF0dHJzLAogCQkJCQkJCQkJYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmli dXRlTnVtYmVyKTsKIAl9CiAKKwlpbmRleExpc3QgPSBSZWxhdGlvbkdldEluZGV4TGlzdChyZWxh dGlvbik7CisKIAkvKgogCSAqIExvb2t1cCBuYW1lZCBjb25zdHJhaW50J3MgaW5kZXguICBUaGlz IGlzIG5vdCBpbW1lZGlhdGVseSByZXR1cm5lZAotCSAqIGJlY2F1c2Ugc29tZSBhZGRpdGlvbmFs IHNhbml0eSBjaGVja3MgYXJlIHJlcXVpcmVkLgorCSAqIGJlY2F1c2Ugc29tZSBhZGRpdGlvbmFs IHNhbml0eSBjaGVja3MgYXJlIHJlcXVpcmVkLiBBZGRpdGlvbmFsbHksIHdlCisJICogbmVlZCB0 byBwcm9jZXNzIG90aGVyIGluZGV4ZXMgYXMgcG90ZW50aWFsIGFyYml0ZXJzIHRvIGFjY291bnQg Zm9yCisJICogY2FzZXMgd2hlcmUgUkVJTkRFWCBDT05DVVJSRU5UTFkgaXMgcHJvY2Vzc2luZyBh biBpbmRleCB1c2VkIGFzIGEKKwkgKiBuYW1lZCBjb25zdHJhaW50LgogCSAqLwogCWlmIChvbmNv bmZsaWN0LT5jb25zdHJhaW50ICE9IEludmFsaWRPaWQpCiAJewogCQlpbmRleE9pZEZyb21Db25z dHJhaW50ID0gZ2V0X2NvbnN0cmFpbnRfaW5kZXgob25jb25mbGljdC0+Y29uc3RyYWludCk7CiAK IAkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQgPT0gSW52YWxpZE9pZCkKKwkJewogCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0J CQkJCSBlcnJtc2coImNvbnN0cmFpbnQgaW4gT04gQ09ORkxJQ1QgY2xhdXNlIGhhcyBubyBhc3Nv Y2lhdGVkIGluZGV4IikpKTsKKwkJCQkJZXJybXNnKCJjb25zdHJhaW50IGluIE9OIENPTkZMSUNU IGNsYXVzZSBoYXMgbm8gYXNzb2NpYXRlZCBpbmRleCIpKSk7CisJCX0KKworCQkvKgorCQkgKiBG aW5kIHRoZSBuYW1lZCBjb25zdHJhaW50IGluZGV4IHRvIGV4dHJhY3QgaXRzIGF0dHJpYnV0ZXMg YW5kIHByZWRpY2F0ZXMuCisJCSAqIFdlIG9wZW4gYWxsIGluZGV4ZXMgaW4gdGhlIGxvb3AgdG8g YXZvaWQgZGVhZGxvY2sgb2YgY2hhbmdlZCBvcmRlciBvZiBsb2Nrcy4KKwkJICogKi8KKwkJZm9y ZWFjaChsLCBpbmRleExpc3QpCisJCXsKKwkJCU9pZAkJCWluZGV4b2lkID0gbGZpcnN0X29pZChs KTsKKwkJCVJlbGF0aW9uCWlkeFJlbDsKKwkJCUZvcm1fcGdfaW5kZXggaWR4Rm9ybTsKKwkJCUF0 dHJOdW1iZXIJbmF0dDsKKworCQkJaWR4UmVsID0gaW5kZXhfb3BlbihpbmRleG9pZCwgcnRlLT5y ZWxsb2NrbW9kZSk7CisJCQlpZHhGb3JtID0gaWR4UmVsLT5yZF9pbmRleDsKKworCQkJaWYgKGlk eEZvcm0tPmluZGlzcmVhZHkpCisJCQl7CisJCQkJaWYgKGluZGV4T2lkRnJvbUNvbnN0cmFpbnQg PT0gaWR4Rm9ybS0+aW5kZXhyZWxpZCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFByZXBhcmUg cmVxdWlyZW1lbnRzIGZvciBvdGhlciBpbmRleGVzIHRvIGJlIHVzZWQgYXMgYXJiaXRlciB0b2dl dGhlcgorCQkJCQkgKiB3aXRoIGluZGV4T2lkRnJvbUNvbnN0cmFpbnQuIEl0IGlzIHJlcXVpcmVk IHRvIGludm9sdmUgYm90aCBlcXVhbHMgaW5kZXhlcworCQkJCQkgKiBpbiBjYXNlIG9mIFJFSU5E RVggQ09OQ1VSUkVOVExZLgorCQkJCQkgKi8KKwkJCQkJZm9yIChuYXR0ID0gMDsgbmF0dCA8IGlk eEZvcm0tPmluZG5rZXlhdHRzOyBuYXR0KyspCisJCQkJCXsKKwkJCQkJCWludAkJCWF0dG5vID0g aWR4UmVsLT5yZF9pbmRleC0+aW5ka2V5LnZhbHVlc1tuYXR0XTsKKworCQkJCQkJaWYgKGF0dG5v ICE9IDApCisJCQkJCQkJcmVxdWlyZWRBcmJpdGVyQXR0cnMgPSBibXNfYWRkX21lbWJlcihyZXF1 aXJlZEFyYml0ZXJBdHRycywKKwkJCQkJCQkJCQkJCQkJICBhdHRubyAtIEZpcnN0TG93SW52YWxp ZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQkJCQl9CisJCQkJCXJlcXVpcmVkQXJiaXRlckVsZW1z ID0gUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKGlkeFJlbCk7CisJCQkJCXJlcXVpcmVkSW5k ZXhQcmVkRXhwcnMgPSBSZWxhdGlvbkdldEluZGV4UHJlZGljYXRlKGlkeFJlbCk7CisJCQkJCS8q IFdlIGFyZSBkb25lLCBzbywgcXVpdGUgdGhlIGxvb3AuICovCisJCQkJCWluZGV4X2Nsb3NlKGlk eFJlbCwgTm9Mb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJaW5kZXhfY2xvc2Uo aWR4UmVsLCBOb0xvY2spOworCQl9CiAJfQogCiAJLyoKIAkgKiBVc2luZyB0aGF0IHJlcHJlc2Vu dGF0aW9uLCBpdGVyYXRlIHRocm91Z2ggdGhlIGxpc3Qgb2YgaW5kZXhlcyBvbiB0aGUKIAkgKiB0 YXJnZXQgcmVsYXRpb24gdG8gdHJ5IGFuZCBmaW5kIGEgbWF0Y2gKIAkgKi8KLQlpbmRleExpc3Qg PSBSZWxhdGlvbkdldEluZGV4TGlzdChyZWxhdGlvbik7Ci0KIAlmb3JlYWNoKGwsIGluZGV4TGlz dCkKIAl7CiAJCU9pZAkJCWluZGV4b2lkID0gbGZpcnN0X29pZChsKTsKQEAgLTgxMiw3ICs4NjAs MTMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVzKFBsYW5uZXJJbmZvICpyb290KQogCQlpZHhSZWwg PSBpbmRleF9vcGVuKGluZGV4b2lkLCBydGUtPnJlbGxvY2ttb2RlKTsKIAkJaWR4Rm9ybSA9IGlk eFJlbC0+cmRfaW5kZXg7CiAKLQkJaWYgKCFpZHhGb3JtLT5pbmRpc3ZhbGlkKQorCQkvKgorCQkg KiBXZSBuZWVkIHRvIGNvbnNpZGVyIGJvdGggaW5kaXN2YWxpZCBhbmQgaW5kaXNyZWFkeSBpbmRl eGVzIGJlY2F1c2UKKwkJICogdGhlbSBtYXkgYmVjb21lIGluZGlzdmFsaWQgYmVmb3JlIGV4ZWN1 dGlvbiBwaGFzZS4gSXQgaXMgcmVxdWlyZWQKKwkJICogdG8ga2VlcCBzZXQgb2YgaW5kZXhlcyB1 c2VkIGFzIGFyYml0ZXIgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbAorCQkgKiBjb25jdXJyZW50IHRy YW5zYWN0aW9ucy4KKwkJICovCisJCWlmICghaWR4Rm9ybS0+aW5kaXNyZWFkeSkKIAkJCWdvdG8g bmV4dDsKIAogCQkvKgpAQCAtODMyLDI3ICs4ODYsMjMgQEAgaW5mZXJfYXJiaXRlcl9pbmRleGVz KFBsYW5uZXJJbmZvICpyb290KQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkJCSBlcnJtc2coIk9OIENPTkZMSUNUIERP IFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9uIGNvbnN0cmFpbnRzIikpKTsKLQot CQkJcmVzdWx0cyA9IGxhcHBlbmRfb2lkKHJlc3VsdHMsIGlkeEZvcm0tPmluZGV4cmVsaWQpOwot CQkJbGlzdF9mcmVlKGluZGV4TGlzdCk7Ci0JCQlpbmRleF9jbG9zZShpZHhSZWwsIE5vTG9jayk7 Ci0JCQl0YWJsZV9jbG9zZShyZWxhdGlvbiwgTm9Mb2NrKTsKLQkJCXJldHVybiByZXN1bHRzOwor CQkJZ290byBmb3VuZDsKIAkJfQogCQllbHNlIGlmIChpbmRleE9pZEZyb21Db25zdHJhaW50ICE9 IEludmFsaWRPaWQpCiAJCXsKLQkJCS8qIE5vIHBvaW50IGluIGZ1cnRoZXIgd29yayBmb3IgaW5k ZXggaW4gbmFtZWQgY29uc3RyYWludCBjYXNlICovCi0JCQlnb3RvIG5leHQ7CisJCQkvKiBJbiB0 aGUgY2FzZSBvZiAiT04gY29uc3RyYWludF9uYW1lIERPIFVQREFURSIgd2UgbmVlZCB0byBza2lw IG5vbi11bmlxdWUgY2FuZGlkYXRlcy4gKi8KKwkJCWlmICghaWR4Rm9ybS0+aW5kaXN1bmlxdWUg JiYgb25jb25mbGljdC0+YWN0aW9uID09IE9OQ09ORkxJQ1RfVVBEQVRFKQorCQkJCWdvdG8gbmV4 dDsKKwkJfSAgZWxzZSB7CisJCQkvKgorCQkJICogT25seSBjb25zaWRlcmluZyBjb252ZW50aW9u YWwgaW5mZXJlbmNlIGF0IHRoaXMgcG9pbnQgKG5vdCBuYW1lZAorCQkJICogY29uc3RyYWludHMp LCBzbyBpbmRleCB1bmRlciBjb25zaWRlcmF0aW9uIGNhbiBiZSBpbW1lZGlhdGVseQorCQkJICog c2tpcHBlZCBpZiBpdCdzIG5vdCB1bmlxdWUKKwkJCSAqLworCQkJaWYgKCFpZHhGb3JtLT5pbmRp c3VuaXF1ZSkKKwkJCQlnb3RvIG5leHQ7CiAJCX0KIAotCQkvKgotCQkgKiBPbmx5IGNvbnNpZGVy aW5nIGNvbnZlbnRpb25hbCBpbmZlcmVuY2UgYXQgdGhpcyBwb2ludCAobm90IG5hbWVkCi0JCSAq IGNvbnN0cmFpbnRzKSwgc28gaW5kZXggdW5kZXIgY29uc2lkZXJhdGlvbiBjYW4gYmUgaW1tZWRp YXRlbHkKLQkJICogc2tpcHBlZCBpZiBpdCdzIG5vdCB1bmlxdWUKLQkJICovCi0JCWlmICghaWR4 Rm9ybS0+aW5kaXN1bmlxdWUpCi0JCQlnb3RvIG5leHQ7Ci0KIAkJLyoKIAkJICogU28tY2FsbGVk IHVuaXF1ZSBjb25zdHJhaW50cyB3aXRoIFdJVEhPVVQgT1ZFUkxBUFMgYXJlIHJlYWxseQogCQkg KiBleGNsdXNpb24gY29uc3RyYWludHMsIHNvIHNraXAgdGhvc2UgdG9vLgpAQCAtODcyLDcgKzky Miw3IEBAIGluZmVyX2FyYml0ZXJfaW5kZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJfQogCiAJ CS8qIE5vbi1leHByZXNzaW9uIGF0dHJpYnV0ZXMgKGlmIGFueSkgbXVzdCBtYXRjaCAqLwotCQlp ZiAoIWJtc19lcXVhbChpbmRleGVkQXR0cnMsIGluZmVyQXR0cnMpKQorCQlpZiAoIWJtc19lcXVh bChpbmRleGVkQXR0cnMsIHJlcXVpcmVkQXJiaXRlckF0dHJzKSkKIAkJCWdvdG8gbmV4dDsKIAog CQkvKiBFeHByZXNzaW9uIGF0dHJpYnV0ZXMgKGlmIGFueSkgbXVzdCBtYXRjaCAqLwpAQCAtODgw LDYgKzkzMCwxMCBAQCBpbmZlcl9hcmJpdGVyX2luZGV4ZXMoUGxhbm5lckluZm8gKnJvb3QpCiAJ CWlmIChpZHhFeHBycyAmJiB2YXJubyAhPSAxKQogCQkJQ2hhbmdlVmFyTm9kZXMoKE5vZGUgKikg aWR4RXhwcnMsIDEsIHZhcm5vLCAwKTsKIAorCQkvKgorCQkgKiBJZiBhcmJpdGVyRWxlbXMgYXJl IHByZXNlbnQsIGNoZWNrIHRoZW0uIElmIG5hbWUgPmNvbnN0cmFpbnQgaXMKKwkJICogcHJlc2Vu dCBhcmJpdGVyRWxlbXMgPT0gTklMLgorCQkgKi8KIAkJZm9yZWFjaChlbCwgb25jb25mbGljdC0+ YXJiaXRlckVsZW1zKQogCQl7CiAJCQlJbmZlcmVuY2VFbGVtICplbGVtID0gKEluZmVyZW5jZUVs ZW0gKikgbGZpcnN0KGVsKTsKQEAgLTkxNywyNyArOTcxLDM1IEBAIGluZmVyX2FyYml0ZXJfaW5k ZXhlcyhQbGFubmVySW5mbyAqcm9vdCkKIAkJfQogCiAJCS8qCi0JCSAqIE5vdyB0aGF0IGFsbCBp bmZlcmVuY2UgZWxlbWVudHMgd2VyZSBtYXRjaGVkLCBlbnN1cmUgdGhhdCB0aGUKKwkJICogSW4g Y2FzZSBvZiB0aGUgY29udmVudGlvbmFsIGluZmVyZW5jZSBpbnZvbHZlZCBlbnN1cmUgdGhhdCB0 aGUKIAkJICogZXhwcmVzc2lvbiBlbGVtZW50cyBmcm9tIGluZmVyZW5jZSBjbGF1c2UgYXJlIG5v dCBtaXNzaW5nIGFueQogCQkgKiBjYXRhbG9nZWQgZXhwcmVzc2lvbnMuICBUaGlzIGRvZXMgdGhl IHJpZ2h0IHRoaW5nIHdoZW4gdW5pcXVlCiAJCSAqIGluZGV4ZXMgcmVkdW5kYW50bHkgcmVwZWF0 IHRoZSBzYW1lIGF0dHJpYnV0ZSwgb3IgaWYgYXR0cmlidXRlcwogCQkgKiByZWR1bmRhbnRseSBh cHBlYXIgbXVsdGlwbGUgdGltZXMgd2l0aGluIGFuIGluZmVyZW5jZSBjbGF1c2UuCisJCSAqCisJ CSAqIEluIHRoZSBjYXNlIG9mIG5hbWVkIGNvbnN0cmFpbnQgZW5zdXJlIGNhbmRpZGF0ZSBoYXMg ZXF1YWwgc2V0CisJCSAqIG9mIGV4cHJlc3Npb25zIGFzIHRoZSBuYW1lZCBjb25zdHJhaW50IGlu ZGV4LgogCQkgKi8KLQkJaWYgKGxpc3RfZGlmZmVyZW5jZShpZHhFeHBycywgaW5mZXJFbGVtcykg IT0gTklMKQorCQlpZiAobGlzdF9kaWZmZXJlbmNlKGlkeEV4cHJzLCByZXF1aXJlZEFyYml0ZXJF bGVtcykgIT0gTklMKQogCQkJZ290byBuZXh0OwogCi0JCS8qCi0JCSAqIElmIGl0J3MgYSBwYXJ0 aWFsIGluZGV4LCBpdHMgcHJlZGljYXRlIG11c3QgYmUgaW1wbGllZCBieSB0aGUgT04KLQkJICog Q09ORkxJQ1QncyBXSEVSRSBjbGF1c2UuCi0JCSAqLwogCQlwcmVkRXhwcnMgPSBSZWxhdGlvbkdl dEluZGV4UHJlZGljYXRlKGlkeFJlbCk7CiAJCWlmIChwcmVkRXhwcnMgJiYgdmFybm8gIT0gMSkK IAkJCUNoYW5nZVZhck5vZGVzKChOb2RlICopIHByZWRFeHBycywgMSwgdmFybm8sIDApOwogCi0J CWlmICghcHJlZGljYXRlX2ltcGxpZWRfYnkocHJlZEV4cHJzLCAoTGlzdCAqKSBvbmNvbmZsaWN0 LT5hcmJpdGVyV2hlcmUsIGZhbHNlKSkKKwkJLyoKKwkJICogSWYgaXQncyBhIHBhcnRpYWwgaW5k ZXggYW5kIGNvbnZlbnRpb25hbCBpbmZlcmVuY2UsIGl0cyBwcmVkaWNhdGUgbXVzdCBiZSBpbXBs aWVkCisJCSAqIGJ5IHRoZSBPTiBDT05GTElDVCdzIFdIRVJFIGNsYXVzZS4KKwkJICovCisJCWlm IChpbmRleE9pZEZyb21Db25zdHJhaW50ID09IEludmFsaWRPaWQgJiYgIXByZWRpY2F0ZV9pbXBs aWVkX2J5KHByZWRFeHBycywgcmVxdWlyZWRJbmRleFByZWRFeHBycywgZmFsc2UpKQorCQkJZ290 byBuZXh0OworCQkvKiBJZiBpdCdzIGEgcGFydGlhbCBpbmRleCBhbmQgbmFtZWQgY29uc3RyYWlu dCBwcmVkaWNhdGVzIG11c3QgYmUgZXF1YWwuICovCisJCWlmIChpbmRleE9pZEZyb21Db25zdHJh aW50ICE9IEludmFsaWRPaWQgJiYgbGlzdF9kaWZmZXJlbmNlKHByZWRFeHBycywgcmVxdWlyZWRJ bmRleFByZWRFeHBycykgIT0gTklMKQogCQkJZ290byBuZXh0OwogCitmb3VuZDoKIAkJcmVzdWx0 cyA9IGxhcHBlbmRfb2lkKHJlc3VsdHMsIGlkeEZvcm0tPmluZGV4cmVsaWQpOworCQlmb3VuZFZh bGlkIHw9IGlkeEZvcm0tPmluZGlzdmFsaWQ7CiBuZXh0OgogCQlpbmRleF9jbG9zZShpZHhSZWws IE5vTG9jayk7CiAJfQpAQCAtOTQ1LDcgKzEwMDcsOCBAQCBuZXh0OgogCWxpc3RfZnJlZShpbmRl eExpc3QpOwogCXRhYmxlX2Nsb3NlKHJlbGF0aW9uLCBOb0xvY2spOwogCi0JaWYgKHJlc3VsdHMg PT0gTklMKQorCS8qIEl0IGlzIHJlcXVpcmVkIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGluZGlzdmFs aWQgaW5kZXggZHVyaW5nIHRoZSBwbGFubmluZy4gKi8KKwlpZiAocmVzdWx0cyA9PSBOSUwgfHwg IWZvdW5kVmFsaWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX0NPTFVNTl9SRUZFUkVOQ0UpLAogCQkJCSBlcnJtc2coInRoZXJlIGlzIG5vIHVuaXF1ZSBv ciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNh dGlvbiIpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy90aW1lL3NuYXBtZ3IuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL3RpbWUvc25hcG1nci5jCmluZGV4IDdkMmIzNGQ0ZjIwLi4zYTcz NTdhMDUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvdGltZS9zbmFwbWdyLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNp bmNsdWRlICJ1dGlscy9yZXNvd25lci5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2lu dC5oIgogCiAKIC8qCkBAIC00MjYsNiArNDI3LDcgQEAgSW52YWxpZGF0ZUNhdGFsb2dTbmFwc2hv dCh2b2lkKQogCQlwYWlyaW5naGVhcF9yZW1vdmUoJlJlZ2lzdGVyZWRTbmFwc2hvdHMsICZDYXRh bG9nU25hcHNob3QtPnBoX25vZGUpOwogCQlDYXRhbG9nU25hcHNob3QgPSBOVUxMOwogCQlTbmFw c2hvdFJlc2V0WG1pbigpOworCQlJTkpFQ1RJT05fUE9JTlQoImludmFsaWRhdGVfY2F0YWxvZ19z bmFwc2hvdF9lbmQiKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9NYWtlZmlsZQppbmRleCAwNzUzYTlkZjU4Yy4uZjhmODZlOGYzYjYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDEyIEBAIFBHRklM RURFU0MgPSAiaW5qZWN0aW9uX3BvaW50cyAtIGZhY2lsaXR5IGZvciBpbmplY3Rpb24gcG9pbnRz IgogUkVHUkVTUyA9IGluamVjdGlvbl9wb2ludHMgcmVpbmRleF9jb25jCiBSRUdSRVNTX09QVFMg PSAtLWRscGF0aD0kKHRvcF9idWlsZGRpcikvc3JjL3Rlc3QvcmVncmVzcwogCi1JU09MQVRJT04g PSBiYXNpYyBpbnBsYWNlCitJU09MQVRJT04gPSBiYXNpYyBpbnBsYWNlIFwKKwkJCXJlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydCBcCisJCQlpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0IFwKKwkJ CXJlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZCBcCisJCQlyZWluZGV4X2Nv bmN1cnJlbnRseV91cHNlcnRfb25fY29uc3RyYWludCBcCisJCQlpbmRleF9jb25jdXJyZW50bHlf dXBzZXJ0X3ByZWRpY2F0ZQogCiBUQVBfVEVTVFMgPSAxCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9pbmRl eF9jb25jdXJyZW50bHlfdXBzZXJ0Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uN2YwNjU5ZTgzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5vdXQK QEAgLTAsMCArMSw4MCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3Rh cnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X2NyZWF0ZV9pbmRleCBzMV9zdGFydF91cHNlcnQg czRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkIHMyX3N0YXJ0X3Vwc2VydCBz NF93YWtldXBfczFfZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QgczRfd2FrZXVwX3My IHM0X3dha2V1cF9zMQoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFy dF9jcmVhdGVfaW5kZXg6IENSRUFURSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIHRibF9wa2V5 X2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChpKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMV9zdGFydF91 cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qo aSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAg czRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkOiAKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxp ZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2Fr ZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzM19zdGFydF9jcmVhdGVfaW5kZXg6IDwuLi4gY29tcGxldGVkPgorc3Rl cCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg b24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5n IC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxX2Zyb21faW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90 OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2ludmFsaWRhdGVfY2F0YWxvZ19z bmFwc2hvdF9lbmQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2ludmFsaWRh dGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3Bl Y3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0 X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8 Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vw c2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wcmVkaWNhdGUu b3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2luZGV4X2Nv bmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMjMwMGQ1MTY1ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaW5kZXhfY29uY3VycmVudGx5X3Vwc2Vy dF9wcmVkaWNhdGUub3V0CkBAIC0wLDAgKzEsODAgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0 IHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9jcmVhdGVfaW5kZXgg czFfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCBz Ml9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxX2Zyb21faW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBz aG90IHM0X3dha2V1cF9zMiBzNF93YWtldXBfczEKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczNfc3RhcnRfY3JlYXRlX2luZGV4OiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNV UlJFTlRMWSB0YmxfcGtleV9zcGVjaWFsX2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChhYnMoaSkpIFdI RVJFIGkgPCAxMDAwMDsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMV9zdGFydF91cHNlcnQ6IElOU0VS VCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoYWJzKGkpKSB3aGVy ZSBpIDwgMTAwIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+ CitzdGVwIHM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZDogCisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcp OworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZGVmaW5lX2luZGV4X2JlZm9yZV9z ZXRfdmFsaWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfY3JlYXRlX2luZGV4OiA8Li4uIGNvbXBsZXRl ZD4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMs bm93KCkpICBvbiBjb25mbGljdChhYnMoaSkpIHdoZXJlIGkgPCAxMDAgZG8gdXBkYXRlIHNldCB1 cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxX2Zyb21f aW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19k ZXRhY2goJ2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c193YWtldXAoJ2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdF9lbmQnKTsKKwor aW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4 ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsK KworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVw X3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZs aWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193 YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvcmVpbmRleF9j b25jdXJyZW50bHlfdXBzZXJ0Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNGJiYmNiZGQ4OAotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4X2NvbmN1 cnJlbnRseV91cHNlcnQub3V0CkBAIC0wLDAgKzEsMjM4IEBACitQYXJzZWQgdGVzdCBzcGVjIHdp dGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRfcmVpbmRleCBz MV9zdGFydF91cHNlcnQgczRfd2FrZXVwX3RvX3N3YXAgczJfc3RhcnRfdXBzZXJ0IHM0X3dha2V1 cF9zMSBzNF93YWtldXBfczIgczRfd2FrZXVwX3RvX3NldF9kZWFkCitpbmplY3Rpb25fcG9pbnRz X2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg CisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50 c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg IAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5ERVggQ09OQ1VS UkVOVExZIHRlc3QudGJsX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFfc3RhcnRfdXBzZXJ0 OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRv IHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dh a2V1cF90b19zd2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhf cmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcp OworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVw CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJv dykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygx Myxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25m bGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vw c2VydDogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfZGV0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZl Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVf aW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5q ZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21w bGV0ZWQ+CitzdGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfZGV0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2Rl YWQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFj aAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSBy b3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4 OiA8Li4uIGNvbXBsZXRlZD4KKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X3JlaW5k ZXggczJfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzNF93 YWtldXBfczEgczRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVhZAoraW5qZWN0aW9uX3Bv aW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9w b2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyA8d2FpdGluZyAuLi4+CitzdGVwIHMyX3N0YXJ0X3Vw c2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChp KSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBz NF93YWtldXBfdG9fc3dhcDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWlu ZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3 YXAnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dh a2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCiso MSByb3cpCisKK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxV RVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5v dygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9f Y29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCitpbmplY3Rpb25fcG9p bnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFy dF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxh dGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfdG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3Nl dF9kZWFkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0 aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19k ZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVp bmRleDogPC4uLiBjb21wbGV0ZWQ+CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9y ZWluZGV4IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzMl9zdGFydF91cHNlcnQg czRfd2FrZXVwX3MxIHM0X3dha2V1cF90b19zZXRfZGVhZCBzNF93YWtldXBfczIKK2luamVjdGlv bl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rp b25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgdGVzdC50YmxfcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtl dXBfdG9fc3dhcDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWluZGV4X3Jl bGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsK KworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMs bm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8 d2FpdGluZyAuLi4+CitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50Ymwg VkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQg PSBub3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50 X25vX2NvbmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19l eGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9u X3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFf c3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFk OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29u Y3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisK K2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdl eGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7 CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93 KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMl9zdGFy dF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50Lm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3Rl ZC9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfb25fY29uc3RyYWludC5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQxY2ZkMTczMWM4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydF9vbl9jb25zdHJhaW50Lm91dApAQCAtMCwwICsxLDIzOCBAQAor UGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246 IHMzX3N0YXJ0X3JlaW5kZXggczFfc3RhcnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMyX3N0 YXJ0X3Vwc2VydCBzNF93YWtldXBfczEgczRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVh ZAoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cp CisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBS RUlOREVYIElOREVYIENPTkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyA8d2FpdGluZyAuLi4+Citz dGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygp KSBvbiBjb25mbGljdCBvbiBjb25zdHJhaW50IHRibF9wa2V5IGRvIHVwZGF0ZSBzZXQgdXBkYXRl ZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF90b19zd2FwOiAKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWlu ZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCitpbmplY3Rpb25fcG9p bnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFy dF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxp Y3Qgb24gY29uc3RyYWludCB0YmxfcGtleSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3co KTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2Nv bmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNsdXNp b25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9uX3BvaW50 c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg IAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3RhcnRf dXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRp dmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9y ZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitp bmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNv bXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFkOiAKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRf ZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlv bl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0 YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5k ZXg6IDwuLi4gY29tcGxldGVkPgorCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRfcmVp bmRleCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3RvX3N3YXAgczFfc3RhcnRfdXBzZXJ0IHM0 X3dha2V1cF9zMSBzNF93YWtldXBfczIgczRfd2FrZXVwX3RvX3NldF9kZWFkCitpbmplY3Rpb25f cG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9u X3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5ERVgg Q09OQ1VSUkVOVExZIHRlc3QudGJsX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRf dXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0 IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXA6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3 YXAnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5T RVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdCBvbiBjb25zdHJh aW50IHRibF9wa2V5IGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAu Li4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNo KCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFydF91cHNlcnQ6IDwuLi4g Y29tcGxldGVkPgorc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVj dWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2lu dHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAKKygxIHJvdykKKworc3RlcCBzMl9zdGFydF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3Rl cCBzNF93YWtldXBfdG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFj aCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRs eV9iZWZvcmVfc2V0X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmpl Y3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogPC4uLiBjb21w bGV0ZWQ+CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9yZWluZGV4IHM0X3dha2V1 cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxIHM0 X3dha2V1cF90b19zZXRfZGVhZCBzNF93YWtldXBfczIKK2luamVjdGlvbl9wb2ludHNfYXR0YWNo CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJv dykKKworaW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFj aAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSBy b3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg dGVzdC50YmxfcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfdG9fc3dhcDogCisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc3dhcCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVp bmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsKKworaW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZs aWN0IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93 KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0 LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkg ZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczRf d2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1 c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25v X2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3Bv aW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2lu amVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzNF93YWtldXBfczI6IAorCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxh dGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiA8Li4u IGNvbXBsZXRlZD4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9yZWluZGV4 X2NvbmN1cnJlbnRseV91cHNlcnRfcGFydGl0aW9uZWQub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0 aXRpb25lZC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM5NWZm MjY0ZjEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9p bnRzL2V4cGVjdGVkL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZC5vdXQK QEAgLTAsMCArMSwyMzggQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNlc3Npb25zCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBzM19zdGFydF9yZWluZGV4IHMxX3N0YXJ0X3Vwc2VydCBzNF93 YWtldXBfdG9fc3dhcCBzMl9zdGFydF91cHNlcnQgczRfd2FrZXVwX3MxIHM0X3dha2V1cF9zMiBz NF93YWtldXBfdG9fc2V0X2RlYWQKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0 aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAg czNfc3RhcnRfcmVpbmRleDogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgdGVzdC50YmxfcGFy dGl0aW9uX3BrZXk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFfc3RhcnRfdXBzZXJ0OiBJTlNFUlQg SU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBz ZXQgdXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF90b19z d2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2Fr ZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworCitpbmpl Y3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworc3Rl cCBzMl9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg b24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5n IC4uLj4KK3N0ZXAgczRfd2FrZXVwX3MxOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1 ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK KworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogPC4u LiBjb21wbGV0ZWQ+CitzdGVwIHM0X3dha2V1cF9zMjogCisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfZGV0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1bGF0aXZlJyk7CisJU0VM RUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3Nw ZWN1bGF0aXZlJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3Bv aW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitzdGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHM0X3dha2V1cF90b19zZXRfZGVhZDogCisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVu dGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2lu amVjdGlvbl9wb2ludHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAgICAKKygxIHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiA8Li4uIGNv bXBsZXRlZD4KKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMzX3N0YXJ0X3JlaW5kZXggczJfc3Rh cnRfdXBzZXJ0IHM0X3dha2V1cF90b19zd2FwIHMxX3N0YXJ0X3Vwc2VydCBzNF93YWtldXBfczEg czRfd2FrZXVwX3MyIHM0X3dha2V1cF90b19zZXRfZGVhZAoraW5qZWN0aW9uX3BvaW50c19hdHRh Y2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEg cm93KQorCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0 YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygx IHJvdykKKworc3RlcCBzM19zdGFydF9yZWluZGV4OiBSRUlOREVYIElOREVYIENPTkNVUlJFTlRM WSB0ZXN0LnRibF9wYXJ0aXRpb25fcGtleTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMl9zdGFydF91 cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qo aSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAg czRfd2FrZXVwX3RvX3N3YXA6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgncmVp bmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAnKTsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c193YWtldXAoJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z d2FwJyk7CisKK2luamVjdGlvbl9wb2ludHNfZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193 YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAor KDEgcm93KQorCitzdGVwIHMxX3N0YXJ0X3Vwc2VydDogSU5TRVJUIElOVE8gdGVzdC50YmwgVkFM VUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBu b3coKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzNF93YWtldXBfczE6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25v X2NvbmZsaWN0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNs dXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKworaW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2Jl Zm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQor CitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiA8Li4u IGNvbXBsZXRlZD4KK3N0ZXAgczRfd2FrZXVwX3RvX3NldF9kZWFkOiAKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z ZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxh dGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisKK2luamVjdGlvbl9wb2ludHNf ZGV0YWNoCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworaW5qZWN0aW9uX3BvaW50c193YWtldXAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3Jl aW5kZXg6IDwuLi4gY29tcGxldGVkPgorCitzdGFydGluZyBwZXJtdXRhdGlvbjogczNfc3RhcnRf cmVpbmRleCBzNF93YWtldXBfdG9fc3dhcCBzMV9zdGFydF91cHNlcnQgczJfc3RhcnRfdXBzZXJ0 IHM0X3dha2V1cF9zMSBzNF93YWtldXBfdG9fc2V0X2RlYWQgczRfd2FrZXVwX3MyCitpbmplY3Rp b25fcG9pbnRzX2F0dGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfYXR0YWNoCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykKKworaW5qZWN0 aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMzX3N0YXJ0X3JlaW5kZXg6IFJFSU5ERVggSU5E RVggQ09OQ1VSUkVOVExZIHRlc3QudGJsX3BhcnRpdGlvbl9wa2V5OyA8d2FpdGluZyAuLi4+Citz dGVwIHM0X3dha2V1cF90b19zd2FwOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZv cmVfc3dhcCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2lu dHNfd2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAKKygxIHJvdykKKworc3RlcCBzMV9zdGFydF91cHNlcnQ6IElOU0VSVCBJTlRPIHRlc3QudGJs IFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0 ID0gbm93KCk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0OiBJTlNFUlQgSU5U TyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQg dXBkYXRlZF9hdCA9IG5vdygpOyA8d2FpdGluZyAuLi4+CitzdGVwIHM0X3dha2V1cF9zMTogCisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor CitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNfd2FrZXVwCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAKKygxIHJvdykK Kworc3RlcCBzMV9zdGFydF91cHNlcnQ6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzNF93YWtldXBf dG9fc2V0X2RlYWQ6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgncmVpbmRleF9y ZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0 X2RlYWQnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRz X3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg CisoMSByb3cpCisKK3N0ZXAgczRfd2FrZXVwX3MyOiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3Bl Y3VsYXRpdmUnKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9p bnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgCisoMSByb3cpCisKK3N0ZXAgczNfc3RhcnRfcmVpbmRleDogPC4uLiBjb21wbGV0ZWQ+Citz dGVwIHMyX3N0YXJ0X3Vwc2VydDogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVz L2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQKaW5kZXggNThmMTkwMDExNTcuLjkxZmM4Y2U2 ODdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24u YnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxk CkBAIC00NCw3ICs0NCwxNiBAQCB0ZXN0cyArPSB7CiAgICAgJ3NwZWNzJzogWwogICAgICAgJ2Jh c2ljJywKICAgICAgICdpbnBsYWNlJywKKyAgICAgICdyZWluZGV4X2NvbmN1cnJlbnRseV91cHNl cnQnLAorICAgICAgJ2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnQnLAorICAgICAgJ3JlaW5kZXhf Y29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZCcsCisgICAgICAncmVpbmRleF9jb25jdXJy ZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQnLAorICAgICAgJ2luZGV4X2NvbmN1cnJlbnRseV91 cHNlcnRfcHJlZGljYXRlJywKICAgICBdLAorICAgICMgVGhlIGluamVjdGlvbiBwb2ludHMgYXJl IGNsdXN0ZXItd2lkZSwgc28gZGlzYWJsZSBpbnN0YWxsY2hlY2sKKyAgICAncnVubmluZ2NoZWNr JzogZmFsc2UsCisgICAgIyBXZSB3YWl0aW5nIGZvciBhbGwgc25hcHNob3RzLCBzbywgYXZvaWQg cGFyYWxsZWwgdGVzdCBleGVjdXRpb25zCisgICAgJ3J1bm5pbmdjaGVjay1wYXJhbGxlbCc6IGZh bHNlLAogICB9LAogICAndGFwJzogewogICAgICdlbnYnOiB7CkBAIC01Myw1ICs2Miw3IEBAIHRl c3RzICs9IHsKICAgICAndGVzdHMnOiBbCiAgICAgICAndC8wMDFfc3RhdHMucGwnLAogICAgIF0s CisgICAgIyBUaGUgaW5qZWN0aW9uIHBvaW50cyBhcmUgY2x1c3Rlci13aWRlLCBzbyBkaXNhYmxl IGluc3RhbGxjaGVjaworICAgICdydW5uaW5nY2hlY2snOiBmYWxzZSwKICAgfSwKIH0KZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25j dXJyZW50bHlfdXBzZXJ0LnNwZWMgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3BlY3MvaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4wNzU0NTA5MzViNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0LnNwZWMKQEAgLTAsMCArMSw2OCBAQAorIyBUZXN0IHJhY2UgY29uZGl0aW9ucyBpbnZvbHZp bmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxlCisjIC0gczI6IFVQU0VSVCB0aGUgc2FtZSB0dXBs ZQorIyAtIHMzOiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWQorIyAtIHM0OiBvcGVy YXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJ T04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9H R0VEIFRBQkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFt cCk7CisJQUxURVIgVEFCTEUgdGVzdC50YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworfQor Cit0ZWFyZG93bgoreworCURST1AgU0NIRU1BIHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lP TiBpbmplY3Rpb25fcG9pbnRzOworfQorCitzZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0 YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAn d2FpdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnaW52YWxpZGF0ZV9jYXRh bG9nX3NuYXBzaG90X2VuZCcsICd3YWl0Jyk7Cit9CitzdGVwIHMxX3N0YXJ0X3Vwc2VydAl7IElO U0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBk YXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2F0dGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0 Jyk7Cit9CitzdGVwIHMyX3N0YXJ0X3Vwc2VydAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVF UygxMyxub3coKSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93 KCk7IH0KKworc2Vzc2lvbiBzMworc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3Nl dF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnZGVmaW5lX2luZGV4 X2JlZm9yZV9zZXRfdmFsaWQnLCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9jcmVhdGVfaW5k ZXgJCXsgQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgdGJsX3BrZXlfZHVwbGljYXRl IE9OIHRlc3QudGJsKGkpOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3MxCQl7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVl X2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOwor fQorc3RlcCBzNF93YWtldXBfczFfZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QJewor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBz aG90X2VuZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW52YWxpZGF0ZV9j YXRhbG9nX3NuYXBzaG90X2VuZCcpOworfQorc3RlcCBzNF93YWtldXBfczIJCXsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2Jl Zm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKK30KK3N0ZXAgczRfd2FrZXVwX2RlZmluZV9pbmRl eF9iZWZvcmVfc2V0X3ZhbGlkCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2Rl ZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNf d2FrZXVwKCdkZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcpOworfQorCitwZXJtdXRhdGlv bgorCXMzX3N0YXJ0X2NyZWF0ZV9pbmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9k ZWZpbmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1 cF9zMV9mcm9tX2ludmFsaWRhdGVfY2F0YWxvZ19zbmFwc2hvdAorCXM0X3dha2V1cF9zMgorCXM0 X3dha2V1cF9zMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9pbmRleF9jb25jdXJyZW50bHlfdXBz ZXJ0X3ByZWRpY2F0ZS5zcGVjIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3Nw ZWNzL2luZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcHJlZGljYXRlLnNwZWMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcwYTI3NDc1ZTEwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2luZGV4X2NvbmN1cnJl bnRseV91cHNlcnRfcHJlZGljYXRlLnNwZWMKQEAgLTAsMCArMSw3MCBAQAorIyBUZXN0IHJhY2Ug Y29uZGl0aW9ucyBpbnZvbHZpbmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxlCisjIC0gczI6IFVQ U0VSVCB0aGUgc2FtZSB0dXBsZQorIyAtIHMzOiBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJF TlRMWQorIyAtIHM0OiBvcGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAor eworCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRl c3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIHRlc3QudGJsKGkgaW50LCB1cGRhdGVkX2F0IHRp bWVzdGFtcCk7CisKKwlDUkVBVEUgVU5JUVVFIElOREVYIHRibF9wa2V5X3NwZWNpYWwgT04gdGVz dC50YmwoYWJzKGkpKSBXSEVSRSBpIDwgMTAwMDsKKwlBTFRFUiBUQUJMRSB0ZXN0LnRibCBTRVQg KHBhcmFsbGVsX3dvcmtlcnM9MCk7Cit9CisKK3RlYXJkb3duCit7CisJRFJPUCBTQ0hFTUEgdGVz dCBDQVNDQURFOworCURST1AgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9CisKK3Nlc3Np b24gczEKK3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcsICd3YWl0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfYXR0YWNoKCdpbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3RfZW5kJywgJ3dhaXQnKTsKK30K K3N0ZXAgczFfc3RhcnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5v dygpKSBvbiBjb25mbGljdChhYnMoaSkpIHdoZXJlIGkgPCAxMDAgZG8gdXBkYXRlIHNldCB1cGRh dGVkX2F0ID0gbm93KCk7IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn ZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0Jyk7Cit9CitzdGVw IHMyX3N0YXJ0X3Vwc2VydAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkg IG9uIGNvbmZsaWN0KGFicyhpKSkgd2hlcmUgaSA8IDEwMCBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRf YXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9w b2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdkZWZp bmVfaW5kZXhfYmVmb3JlX3NldF92YWxpZCcsICd3YWl0Jyk7Cit9CitzdGVwIHMzX3N0YXJ0X2Ny ZWF0ZV9pbmRleAkJeyBDUkVBVEUgVU5JUVVFIElOREVYIENPTkNVUlJFTlRMWSB0YmxfcGtleV9z cGVjaWFsX2R1cGxpY2F0ZSBPTiB0ZXN0LnRibChhYnMoaSkpIFdIRVJFIGkgPCAxMDAwMDt9CisK K3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3MxCQl7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxp Y3QnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworfQorc3RlcCBzNF93YWtldXBfczFf ZnJvbV9pbnZhbGlkYXRlX2NhdGFsb2dfc25hcHNob3QJeworCVNFTEVDVCBpbmplY3Rpb25fcG9p bnRzX2RldGFjaCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90X2VuZCcpOworCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW52YWxpZGF0ZV9jYXRhbG9nX3NuYXBzaG90X2VuZCcp OworfQorc3RlcCBzNF93YWtldXBfczIJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRpdmUnKTsKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c193YWtldXAoJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3VsYXRp dmUnKTsKK30KK3N0ZXAgczRfd2FrZXVwX2RlZmluZV9pbmRleF9iZWZvcmVfc2V0X3ZhbGlkCXsK KwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2RlZmluZV9pbmRleF9iZWZvcmVfc2V0 X3ZhbGlkJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdkZWZpbmVfaW5kZXhf YmVmb3JlX3NldF92YWxpZCcpOworfQorCitwZXJtdXRhdGlvbgorCXMzX3N0YXJ0X2NyZWF0ZV9p bmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9kZWZpbmVfaW5kZXhfYmVmb3JlX3Nl dF92YWxpZAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF9zMV9mcm9tX2ludmFsaWRhdGVf Y2F0YWxvZ19zbmFwc2hvdAorCXM0X3dha2V1cF9zMgorCXM0X3dha2V1cF9zMQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnQuc3BlYyBiL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNl cnQuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzhiODZkODQz NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv c3BlY3MvcmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0LnNwZWMKQEAgLTAsMCArMSw4NiBAQAor IyBUZXN0IHJhY2UgY29uZGl0aW9ucyBpbnZvbHZpbmc6CisjIC0gczE6IFVQU0VSVCBhIHR1cGxl CisjIC0gczI6IFVQU0VSVCB0aGUgc2FtZSB0dXBsZQorIyAtIHMzOiBSRUlOREVYIGNvbmN1cnJl bnQgcHJpbWFyeSBrZXkgaW5kZXgKKyMgLSBzNDogb3BlcmF0aW9ucyB3aXRoIGluamVjdGlvbiBw b2ludHMKKworc2V0dXAKK3sKKwlDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7CisJ Q1JFQVRFIFNDSEVNQSB0ZXN0OworCUNSRUFURSBVTkxPR0dFRCBUQUJMRSB0ZXN0LnRibChpIGlu dCBwcmltYXJ5IGtleSwgdXBkYXRlZF9hdCB0aW1lc3RhbXApOworCUFMVEVSIFRBQkxFIHRlc3Qu dGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKK30KKwordGVhcmRvd24KK3sKKwlEUk9QIFND SEVNQSB0ZXN0IENBU0NBREU7CisJRFJPUCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK30K Kworc2Vzc2lvbiBzMQorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2Nh bCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0JywgJ3dhaXQnKTsKK30KK3N0ZXAgczFfc3Rh cnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25m bGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMy CitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdleGVjX2luc2VydF9iZWZvcmVfaW5zZXJ0X3NwZWN1 bGF0aXZlJywgJ3dhaXQnKTsKK30KK3N0ZXAgczJfc3RhcnRfdXBzZXJ0CXsgSU5TRVJUIElOVE8g dGVzdC50YmwgVkFMVUVTKDEzLG5vdygpKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVw ZGF0ZWRfYXQgPSBub3coKTsgfQorCitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNo KCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnLCAnd2FpdCcp OworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25j dXJyZW50bHlfYmVmb3JlX3N3YXAnLCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9yZWluZGV4 CQkJeyBSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyB9CisKK3Nlc3Np b24gczQKK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50 c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJl bnRseV9iZWZvcmVfc3dhcCcpOworfQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlTRUxFQ1QgaW5q ZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWlu dF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tf ZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9CitzdGVwIHM0 X3dha2V1cF9zMgkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNl cnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworfQorc3Rl cCBzNF93YWtldXBfdG9fc2V0X2RlYWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRh Y2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50 bHlfYmVmb3JlX3NldF9kZWFkJyk7Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRl eAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczJfc3RhcnRfdXBzZXJ0 CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisK K3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dh a2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVw X3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVp bmRleAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJfc3RhcnRfdXBz ZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRfd2FrZXVwX3My ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9vbl9j b25zdHJhaW50LnNwZWMgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3Mv cmVpbmRleF9jb25jdXJyZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQuc3BlYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Q4ZTM3MWJiMGEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3MvcmVpbmRleF9jb25j dXJyZW50bHlfdXBzZXJ0X29uX2NvbnN0cmFpbnQuc3BlYwpAQCAtMCwwICsxLDg2IEBACisjIFRl c3QgcmFjZSBjb25kaXRpb25zIGludm9sdmluZzoKKyMgLSBzMTogVVBTRVJUIGEgdHVwbGUKKyMg LSBzMjogVVBTRVJUIHRoZSBzYW1lIHR1cGxlCisjIC0gczM6IFJFSU5ERVggY29uY3VycmVudCBw cmltYXJ5IGtleSBpbmRleAorIyAtIHM0OiBvcGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50 cworCitzZXR1cAoreworCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVB VEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIHRlc3QudGJsKGkgaW50IHBy aW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFtcCk7CisJQUxURVIgVEFCTEUgdGVzdC50Ymwg U0VUIChwYXJhbGxlbF93b3JrZXJzPTApOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NIRU1B IHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQorCitz ZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5p cXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAnd2FpdCcpOworfQorc3RlcCBzMV9zdGFydF91 cHNlcnQJeyBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0 IG9uIGNvbnN0cmFpbnQgdGJsX3BrZXkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7 IH0KKworc2Vzc2lvbiBzMgorc2V0dXAJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9s b2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnZXhlY19pbnNlcnRfYmVm b3JlX2luc2VydF9zcGVjdWxhdGl2ZScsICd3YWl0Jyk7Cit9CitzdGVwIHMyX3N0YXJ0X3Vwc2Vy dAl7IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUygxMyxub3coKSkgb24gY29uZmxpY3Qgb24g Y29uc3RyYWludCB0YmxfcGtleSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsgfQor CitzZXNzaW9uIHMzCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2Fs KCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2Nv bmN1cnJlbnRseV9iZWZvcmVfc2V0X2RlYWQnLCAnd2FpdCcpOworCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2F0dGFjaCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3N3YXAn LCAnd2FpdCcpOworfQorc3RlcCBzM19zdGFydF9yZWluZGV4CQkJeyBSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSB0ZXN0LnRibF9wa2V5OyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVw X3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVs YXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zd2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2lu dHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOwor fQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9j b25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9CitzdGVwIHM0X3dha2V1cF9zMgkJeworCVNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVj dWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRf YmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworfQorc3RlcCBzNF93YWtldXBfdG9fc2V0X2Rl YWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25f Y29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRz X3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9jb25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7 Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMxX3N0YXJ0X3Vwc2VydAor CXM0X3dha2V1cF90b19zd2FwCisJczJfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRf d2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3Rh cnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3Rh cnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3Nl dF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXM0X3dha2V1cF90b19z d2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJ czRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRfd2FrZXVwX3MyClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3Nw ZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vwc2VydF9wYXJ0aXRpb25lZC5zcGVjIGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL3JlaW5kZXhfY29uY3VycmVudGx5X3Vw c2VydF9wYXJ0aXRpb25lZC5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5iOTI1MzQ2MzAzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5q ZWN0aW9uX3BvaW50cy9zcGVjcy9yZWluZGV4X2NvbmN1cnJlbnRseV91cHNlcnRfcGFydGl0aW9u ZWQuc3BlYwpAQCAtMCwwICsxLDg4IEBACisjIFRlc3QgcmFjZSBjb25kaXRpb25zIGludm9sdmlu ZzoKKyMgLSBzMTogVVBTRVJUIGEgdHVwbGUKKyMgLSBzMjogVVBTRVJUIHRoZSBzYW1lIHR1cGxl CisjIC0gczM6IFJFSU5ERVggY29uY3VycmVudCBwcmltYXJ5IGtleSBpbmRleAorIyAtIHM0OiBv cGVyYXRpb25zIHdpdGggaW5qZWN0aW9uIHBvaW50cworCitzZXR1cAoreworCUNSRUFURSBFWFRF TlNJT04gaW5qZWN0aW9uX3BvaW50czsKKwlDUkVBVEUgU0NIRU1BIHRlc3Q7CisJQ1JFQVRFIFRB QkxFIHRlc3QudGJsKGkgaW50IHByaW1hcnkga2V5LCB1cGRhdGVkX2F0IHRpbWVzdGFtcCkgUEFS VElUSU9OIEJZIFJBTkdFIChpKTsKKwlDUkVBVEUgVEFCTEUgdGVzdC50YmxfcGFydGl0aW9uIFBB UlRJVElPTiBPRiB0ZXN0LnRibAorCQlGT1IgVkFMVUVTIEZST00gKDApIFRPICgxMDAwMCkKKwkJ V0lUSCAocGFyYWxsZWxfd29ya2VycyA9IDApOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NI RU1BIHRlc3QgQ0FTQ0FERTsKKwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQor CitzZXNzaW9uIHMxCitzZXR1cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2Fs KCk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3Jf dW5pcXVlX2NvbnN0cmFpbnRfbm9fY29uZmxpY3QnLCAnd2FpdCcpOworfQorc3RlcCBzMV9zdGFy dF91cHNlcnQJeyBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZs aWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOyB9CisKK3Nlc3Npb24gczIK K3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2V4ZWNfaW5zZXJ0X2JlZm9yZV9pbnNlcnRfc3BlY3Vs YXRpdmUnLCAnd2FpdCcpOworfQorc3RlcCBzMl9zdGFydF91cHNlcnQJeyBJTlNFUlQgSU5UTyB0 ZXN0LnRibCBWQUxVRVMoMTMsbm93KCkpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBk YXRlZF9hdCA9IG5vdygpOyB9CisKK3Nlc3Npb24gczMKK3NldHVwCXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVhZCcsICd3YWl0Jyk7 CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdyZWluZGV4X3JlbGF0aW9uX2NvbmN1 cnJlbnRseV9iZWZvcmVfc3dhcCcsICd3YWl0Jyk7Cit9CitzdGVwIHMzX3N0YXJ0X3JlaW5kZXgJ CQl7IFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIHRlc3QudGJsX3BhcnRpdGlvbl9wa2V5OyB9 CisKK3Nlc3Npb24gczQKK3N0ZXAgczRfd2FrZXVwX3RvX3N3YXAJCXsKKwlTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9z d2FwJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdyZWluZGV4X3JlbGF0aW9u X2NvbmN1cnJlbnRseV9iZWZvcmVfc3dhcCcpOworfQorc3RlcCBzNF93YWtldXBfczEJCXsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVf Y29uc3RyYWludF9ub19jb25mbGljdCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1 cCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Jyk7Cit9 CitzdGVwIHM0X3dha2V1cF9zMgkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgn ZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScpOworCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX3dha2V1cCgnZXhlY19pbnNlcnRfYmVmb3JlX2luc2VydF9zcGVjdWxhdGl2ZScp OworfQorc3RlcCBzNF93YWtldXBfdG9fc2V0X2RlYWQJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ3JlaW5kZXhfcmVsYXRpb25fY29uY3VycmVudGx5X2JlZm9yZV9zZXRfZGVh ZCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgncmVpbmRleF9yZWxhdGlvbl9j b25jdXJyZW50bHlfYmVmb3JlX3NldF9kZWFkJyk7Cit9CisKK3Blcm11dGF0aW9uCisJczNfc3Rh cnRfcmVpbmRleAorCXMxX3N0YXJ0X3Vwc2VydAorCXM0X3dha2V1cF90b19zd2FwCisJczJfc3Rh cnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3Nl dF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNfc3RhcnRfcmVpbmRleAorCXMyX3N0YXJ0X3Vwc2Vy dAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJ czRfd2FrZXVwX3MyCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisKK3Blcm11dGF0aW9uCisJczNf c3RhcnRfcmVpbmRleAorCXM0X3dha2V1cF90b19zd2FwCisJczFfc3RhcnRfdXBzZXJ0CisJczJf c3RhcnRfdXBzZXJ0CisJczRfd2FrZXVwX3MxCisJczRfd2FrZXVwX3RvX3NldF9kZWFkCisJczRf d2FrZXVwX3MyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLSAKMi40My4wCgo= --0000000000009686e806283fa197 Content-Type: text/plain; charset="US-ASCII"; name="v2-0003-Allow-advancing-xmin-during-non-unique-non-parall.patch" Content-Disposition: attachment; filename="v2-0003-Allow-advancing-xmin-during-non-unique-non-parall.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m46atnul2 RnJvbSBjOGU2M2MzNWU5YWMwOWI3MWQ1M2RkYzRlNWQ0ZGQyYjFlYzMxY2I2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxNzo0MToyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjIgMy80 XSBBbGxvdyBhZHZhbmNpbmcgeG1pbiBkdXJpbmcgbm9uLXVuaXF1ZSwgbm9uLXBhcmFsbGVsIAog Y29uY3VycmVudCBpbmRleCBidWlsZHMgYnkgcGVyaW9kaWNhbGx5IHJlc2V0dGluZyBzbmFwc2hv dHMKCkxvbmctcnVubmluZyB0cmFuc2FjdGlvbnMgbGlrZSB0aG9zZSB1c2VkIGJ5IENSRUFURSBJ TkRFWCBDT05DVVJSRU5UTFkgYW5kIFJFSU5ERVggQ09OQ1VSUkVOVExZIGNhbiBob2xkIGJhY2sg dGhlIGdsb2JhbCB4bWluIGhvcml6b24sIHByZXZlbnRpbmcgVkFDVVVNIGZyb20gY2xlYW5pbmcg dXAgZGVhZCB0dXBsZXMgYW5kIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gdHJhbnNhY3Rpb24gSUQg d3JhcGFyb3VuZCBpc3N1ZXMuIEluIFBvc3RncmVTUUwgMTQsIGNvbW1pdCBkOWQwNzYyMjJmNWIg YXR0ZW1wdGVkIHRvIGFsbG93IFZBQ1VVTSB0byBpZ25vcmUgaW5kZXhpbmcgdHJhbnNhY3Rpb25z IHdpdGggQ09OQ1VSUkVOVExZIHRvIG1pdGlnYXRlIHRoaXMgcHJvYmxlbS4gSG93ZXZlciwgdGhp cyB3YXMgcmV2ZXJ0ZWQgaW4gY29tbWl0IGUyOGJiODg1MTk2OSBiZWNhdXNlIGl0IGNvdWxkIGNh dXNlIGluZGV4ZXMgdG8gbWlzcyBoZWFwIHR1cGxlcyB0aGF0IHdlcmUgSE9ULXVwZGF0ZWQgYW5k IEhPVC1wcnVuZWQgZHVyaW5nIHRoZSBpbmRleCBjcmVhdGlvbiwgbGVhZGluZyB0byBpbmRleCBj b3JydXB0aW9uLgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2FmZSBhbHRlcm5hdGl2ZSBieSBw ZXJpb2RpY2FsbHkgcmVzZXR0aW5nIHRoZSBzbmFwc2hvdCB1c2VkIGR1cmluZyBub24tdW5pcXVl LCBub24tcGFyYWxsZWwgY29uY3VycmVudCBpbmRleCBidWlsZHMuIEJ5IHJlc2V0dGluZyB0aGUg c25hcHNob3QgZXZlcnkgTiBwYWdlcyBkdXJpbmcgdGhlIGhlYXAgc2Nhbiwgd2UgYWxsb3cgdGhl IHhtaW4gaG9yaXpvbiB0byBhZHZhbmNlIHdpdGhvdXQgcmlza2luZyBpbmRleCBjb3JydXB0aW9u LiBUaGlzIGFwcHJvYWNoIGlzIHNhZmUgZm9yIG5vbi11bmlxdWUgaW5kZXggYnVpbGRzIGJlY2F1 c2UgdGhleSBkbyBub3QgZW5mb3JjZSB1bmlxdWVuZXNzIGNvbnN0cmFpbnRzIHRoYXQgcmVxdWly ZSBhIGNvbnNpc3RlbnQgc25hcHNob3QgYWNyb3NzIHRoZSBlbnRpcmUgc2Nhbi4KCkN1cnJlbnRs eSwgdGhpcyB0ZWNobmlxdWUgaXMgYXBwbGllZCB0bzoKCk5vbi1wYXJhbGxlbCBpbmRleCBidWls ZHM6IFBhcmFsbGVsIGluZGV4IGJ1aWxkcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgYW5kIHdpbGwg YmUgYWRkcmVzc2VkIGluIGEgZnV0dXJlIGNvbW1pdC4KTm9uLXVuaXF1ZSBpbmRleGVzOiBVbmlx dWUgaW5kZXggYnVpbGRzIHN0aWxsIHJlcXVpcmUgYSBjb25zaXN0ZW50IHNuYXBzaG90IHRvIGVu Zm9yY2UgdW5pcXVlbmVzcyBjb25zdHJhaW50cywgYW5kIHN1cHBvcnQgZm9yIHRoZW0gbWF5IGJl IGFkZGVkIGluIHRoZSBmdXR1cmUuCk9ubHkgZHVyaW5nIHRoZSBmaXJzdCBzY2FuIG9mIHRoZSBo ZWFwOiBUaGUgc2Vjb25kIHNjYW4gZHVyaW5nIGluZGV4IHZhbGlkYXRpb24gc3RpbGwgdXNlcyBh IHNpbmdsZSBzbmFwc2hvdCB0byBlbnN1cmUgaW5kZXggY29ycmVjdG5lc3MuCgpUbyBpbXBsZW1l bnQgdGhpcywgYSBuZXcgc2NhbiBvcHRpb24gU09fUkVTRVRfU05BUFNIT1QgaXMgaW50cm9kdWNl ZC4gV2hlbiBzZXQsIGl0IGNhdXNlcyB0aGUgc25hcHNob3QgdG8gYmUgcmVzZXQgZXZlcnkgU09f UkVTRVRfU05BUFNIT1RfRUFDSF9OX1BBR0UgcGFnZXMgZHVyaW5nIHRoZSBzY2FuLiBUaGUgaGVh cCBzY2FuIGNvZGUgaXMgYWRqdXN0ZWQgdG8gc3VwcG9ydCB0aGlzIG9wdGlvbiwgYW5kIHRoZSBp bmRleCBidWlsZCBjb2RlIGlzIG1vZGlmaWVkIHRvIHVzZSBpdCBmb3IgYXBwbGljYWJsZSBjb25j dXJyZW50IGluZGV4IGJ1aWxkcyB0aGF0IGFyZSBub3Qgb24gc3lzdGVtIGNhdGFsb2dzIGFuZCBu b3QgdXNpbmcgcGFyYWxsZWwgd29ya2Vycy4KClRoaXMgYWRkcmVzc2VzIHRoZSBpc3N1ZXMgdGhh dCBsZWQgdG8gdGhlIHJldmVyc2lvbiBvZiBjb21taXQgZDlkMDc2MjIyZjViLCBwcm92aWRpbmcg YSBzYWZlIHdheSB0byBhbGxvdyB4bWluIGFkdmFuY2VtZW50IGR1cmluZyBsb25nLXJ1bm5pbmcg bm9uLXVuaXF1ZSwgbm9uLXBhcmFsbGVsIGNvbmN1cnJlbnQgaW5kZXggYnVpbGRzIHdoaWxlIGVu c3VyaW5nIGluZGV4IGNvcnJlY3RuZXNzLgoKUmVncmVzc2lvbiB0ZXN0cyBhcmUgYWRkZWQgdG8g dmVyaWZ5IHRoZSBiZWhhdmlvci4KLS0tCiBjb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5j ICAgICAgICAgICAgICAgfCAgIDMgKy0KIGNvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUu YyAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAg ICAgICAgICAgICAgIHwgIDE0ICsrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMg ICAgICAgICAgICAgIHwgIDQ2ICsrKysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jICAgICAgfCAgNTcgKysrKysrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2dlbmFtLmMgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHNvcnQuYyAgICAgICAgICAgfCAgMTQgKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMgICAgICAgICAgICAgICAgICAgfCAgMzAgKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy9pbmRleGNtZHMuYyAgICAgICAgICAgICAgfCAgMTQgKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgIDkgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy90 YWJsZWFtLmggICAgICAgICAgICAgICAgICB8ICAyOCArKysrLQogc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL01ha2VmaWxlICAgIHwgICAyICstCiAuLi4vZXhwZWN0ZWQvY2ljX3Jl c2V0X3NuYXBzaG90cy5vdXQgICAgICAgICAgfCAxMDIgKysrKysrKysrKysrKysrKysrCiBzcmMv dGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgfCAgIDEgKwogLi4uL3Nx bC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbCAgICAgICAgICAgICAgIHwgIDgyICsrKysrKysrKysr KysrCiAxNSBmaWxlcyBjaGFuZ2VkLCAzNzUgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0p CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4 cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NxbC9jaWNfcmVzZXRfc25hcHNob3RzLnNxbAoK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvYW1jaGVjay92ZXJpZnlfbmJ0cmVlLmMgYi9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X25idHJlZS5jCmluZGV4IGZmZTRmNzIxNjcyLi43ZmIwNTJjZTNkZSAxMDA2 NDQKLS0tIGEvY29udHJpYi9hbWNoZWNrL3ZlcmlmeV9uYnRyZWUuYworKysgYi9jb250cmliL2Ft Y2hlY2svdmVyaWZ5X25idHJlZS5jCkBAIC02ODksNyArNjg5LDggQEAgYnRfY2hlY2tfZXZlcnlf bGV2ZWwoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBoZWFwcmVsLCBib29sIGhlYXBrZXlzcGFjZSwK IAkJCQkJCQkJCSAwLCAvKiBudW1iZXIgb2Yga2V5cyAqLwogCQkJCQkJCQkJIE5VTEwsCS8qIHNj YW4ga2V5ICovCiAJCQkJCQkJCQkgdHJ1ZSwJLyogYnVmZmVyIGFjY2VzcyBzdHJhdGVneSBPSyAq LwotCQkJCQkJCQkJIHRydWUpOyAvKiBzeW5jc2NhbiBPSz8gKi8KKwkJCQkJCQkJCSB0cnVlLCAv KiBzeW5jc2NhbiBPSz8gKi8KKwkJCQkJCQkJCSBmYWxzZSk7CiAKIAkJLyoKIAkJICogU2NhbiB3 aWxsIGJlaGF2ZSBhcyB0aGUgZmlyc3Qgc2NhbiBvZiBhIENSRUFURSBJTkRFWCBDT05DVVJSRU5U TFkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYyBiL2NvbnRy aWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYwppbmRleCA0OGNiOGY1OWM0Zi4uZmY3Y2MwN2Rm OTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYworKysgYi9j b250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdHR1cGxlLmMKQEAgLTMzMiw3ICszMzIsNyBAQCBwZ3N0 YXRfaGVhcChSZWxhdGlvbiByZWwsIEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQogCQkJCSBlcnJt c2coIm9ubHkgaGVhcCBBTSBpcyBzdXBwb3J0ZWQiKSkpOwogCiAJLyogRGlzYWJsZSBzeW5jc2Nh biBiZWNhdXNlIHdlIGFzc3VtZSB3ZSBzY2FuIGZyb20gYmxvY2sgemVybyB1cHdhcmRzICovCi0J c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMLCB0 cnVlLCBmYWxzZSk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChyZWwsIFNuYXBzaG90 QW55LCAwLCBOVUxMLCB0cnVlLCBmYWxzZSwgZmFsc2UpOwogCWhzY2FuID0gKEhlYXBTY2FuRGVz Yykgc2NhbjsKIAogCUluaXREaXJ0eVNuYXBzaG90KFNuYXBzaG90RGlydHkpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbi5jCmluZGV4IDNhZWRlYzg4MmNkLi5kNjk4NTlhYzRkZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYwpAQCAtMjM2Niw2ICsyMzY2LDcgQEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJpbkJ1 aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogCVdh bFVzYWdlICAgKndhbHVzYWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlib29sCQls ZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOworCWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hv dCA9IHRydWU7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURFUl9QQVJU SUNJUEFUSU9OCkBAIC0yMzkxLDkgKzIzOTIsMTYgQEAgX2JyaW5fYmVnaW5fcGFyYWxsZWwoQnJp bkJ1aWxkU3RhdGUgKmJ1aWxkc3RhdGUsIFJlbGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAog CSAqIGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQuCiAJICovCiAJaWYgKCFpc2NvbmN1cnJlbnQpCisJ eworCQlBc3NlcnQoQWN0aXZlU25hcHNob3RTZXQoKSk7CiAJCXNuYXBzaG90ID0gU25hcHNob3RB bnk7CisJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IGZhbHNlOworCX0KIAllbHNlCisJewog CQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsK KwkJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3QoKSk7CisJfQogCiAJ LyoKIAkgKiBFc3RpbWF0ZSBzaXplIGZvciBvdXIgb3duIFBBUkFMTEVMX0tFWV9CUklOX1NIQVJF RCB3b3Jrc3BhY2UuCkBAIC0yNDM2LDYgKzI0NDQsOCBAQCBfYnJpbl9iZWdpbl9wYXJhbGxlbChC cmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgs CiAJLyogSWYgbm8gRFNNIHNlZ21lbnQgd2FzIGF2YWlsYWJsZSwgYmFjayBvdXQgKGRvIHNlcmlh bCBidWlsZCkgKi8KIAlpZiAocGN4dC0+c2VnID09IE5VTEwpCiAJeworCQlpZiAobmVlZF9wb3Bf YWN0aXZlX3NuYXBzaG90KQorCQkJUG9wQWN0aXZlU25hcHNob3QoKTsKIAkJaWYgKElzTVZDQ1Nu YXBzaG90KHNuYXBzaG90KSkKIAkJCVVucmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7CiAJCURl c3Ryb3lQYXJhbGxlbENvbnRleHQocGN4dCk7CkBAIC0yNTE1LDYgKzI1MjUsOCBAQCBfYnJpbl9i ZWdpbl9wYXJhbGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwg UmVsYXRpb24gaW5kZXgsCiAJLyogSWYgbm8gd29ya2VycyB3ZXJlIHN1Y2Nlc3NmdWxseSBsYXVu Y2hlZCwgYmFjayBvdXQgKGRvIHNlcmlhbCBidWlsZCkgKi8KIAlpZiAocGN4dC0+bndvcmtlcnNf bGF1bmNoZWQgPT0gMCkKIAl7CisJCWlmIChuZWVkX3BvcF9hY3RpdmVfc25hcHNob3QpCisJCQlQ b3BBY3RpdmVTbmFwc2hvdCgpOwogCQlfYnJpbl9lbmRfcGFyYWxsZWwoYnJpbmxlYWRlciwgTlVM TCk7CiAJCXJldHVybjsKIAl9CkBAIC0yNTMxLDYgKzI1NDMsOCBAQCBfYnJpbl9iZWdpbl9wYXJh bGxlbChCcmluQnVpbGRTdGF0ZSAqYnVpbGRzdGF0ZSwgUmVsYXRpb24gaGVhcCwgUmVsYXRpb24g aW5kZXgsCiAJICogc3VyZSB0aGF0IHRoZSBmYWlsdXJlLXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3Qg aGFuZyBmb3JldmVyLgogCSAqLwogCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0 KTsKKwlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQorCQlQb3BBY3RpdmVTbmFwc2hvdCgp OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBkMDAzMDBjNWRjYi4uMWZk ZmRmOTY0ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC01MSw2ICs1MSw3IEBACiAj aW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1 ZGUgInV0aWxzL3NwY2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50Lmgi CiAKIAogc3RhdGljIEhlYXBUdXBsZSBoZWFwX3ByZXBhcmVfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0 aW9uLCBIZWFwVHVwbGUgdHVwLApAQCAtNTY2LDYgKzU2NywzNiBAQCBoZWFwX3ByZXBhcmVfcGFn ZXNjYW4oVGFibGVTY2FuRGVzYyBzc2NhbikKIAlMb2NrQnVmZmVyKGJ1ZmZlciwgQlVGRkVSX0xP Q0tfVU5MT0NLKTsKIH0KIAorLyoKKyAqIFJlc2V0IHRoZSBhY3RpdmUgc25hcHNob3QgZHVyaW5n IGEgc2Nhbi4KKyAqIFRoaXMgZW5zdXJlcyB0aGUgeG1pbiBob3Jpem9uIGNhbiBhZHZhbmNlIHdo aWxlIG1haW50YWluaW5nIHNhZmUgdHVwbGUgdmlzaWJpbGl0eS4KKyAqIE5vdGU6IE5vIG90aGVy IHNuYXBzaG90IHNob3VsZCBiZSBhY3RpdmUgZHVyaW5nIHRoaXMgb3BlcmF0aW9uLgorICovCitz dGF0aWMgaW5saW5lIHZvaWQKK2hlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdChUYWJsZVNjYW5EZXNj IHNzY2FuKQoreworCS8qIE1ha2Ugc3VyZSBubyBvdGhlciBzbmFwc2hvdCB3YXMgc2V0IGFzIGFj dGl2ZS4gKi8KKwlBc3NlcnQoR2V0QWN0aXZlU25hcHNob3QoKSA9PSBzc2Nhbi0+cnNfc25hcHNo b3QpOworCS8qIEFuZCBtYWtlIHN1cmUgYWN0aXZlIHNuYXBzaG90IGlzIG5vdCByZWdpc3RlcmVk LiAqLworCUFzc2VydChHZXRBY3RpdmVTbmFwc2hvdCgpLT5yZWdkX2NvdW50ID09IDApOworCVBv cEFjdGl2ZVNuYXBzaG90KCk7CisKKwlzc2Nhbi0+cnNfc25hcHNob3QgPSBJbnZhbGlkU25hcHNo b3Q7IC8qIGp1c3Qgb3QgYmUgdGlkeSAqLworCUFzc2VydCghSGF2ZVJlZ2lzdGVyZWRPckFjdGl2 ZVNuYXBzaG90KCkpOworCUludmFsaWRhdGVDYXRhbG9nU25hcHNob3QoKTsKKworCS8qIEdvYWwg b2Ygc25hcHNob3QgcmVzZXQgaXMgdG8gYWxsb3cgaG9yaXpvbiB0byBhZHZhbmNlLiAqLworCUFz c2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT54bWluKSk7CisjaWYgVVNFX0lOSkVD VElPTl9QT0lOVFMKKwkvKiBJbiBzb21lIGNhc2VzIGl0IGlzIHN0aWxsIG5vdCBwb3NzaWJsZSBk dWUgeGlkIGFzc2lnbi4gKi8KKwlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eGlk KSkKKwkJSU5KRUNUSU9OX1BPSU5UKCJoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZl Iik7CisjZW5kaWYKKworCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsK Kwlzc2Nhbi0+cnNfc25hcHNob3QgPSBHZXRBY3RpdmVTbmFwc2hvdCgpOworfQorCiAvKgogICog aGVhcF9mZXRjaF9uZXh0X2J1ZmZlciAtIHJlYWQgYW5kIHBpbiB0aGUgbmV4dCBibG9jayBmcm9t IE1BSU5fRk9SS05VTS4KICAqCkBAIC02MDcsNyArNjM4LDEzIEBAIGhlYXBfZmV0Y2hfbmV4dF9i dWZmZXIoSGVhcFNjYW5EZXNjIHNjYW4sIFNjYW5EaXJlY3Rpb24gZGlyKQogCiAJc2Nhbi0+cnNf Y2J1ZiA9IHJlYWRfc3RyZWFtX25leHRfYnVmZmVyKHNjYW4tPnJzX3JlYWRfc3RyZWFtLCBOVUxM KTsKIAlpZiAoQnVmZmVySXNWYWxpZChzY2FuLT5yc19jYnVmKSkKKwl7CiAJCXNjYW4tPnJzX2Ni bG9jayA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHNjYW4tPnJzX2NidWYpOworI2RlZmluZSBTT19S RVNFVF9TTkFQU0hPVF9FQUNIX05fUEFHRSA2NAorCQlpZiAoKHNjYW4tPnJzX2Jhc2UucnNfZmxh Z3MgJiBTT19SRVNFVF9TTkFQU0hPVCkgJiYKKwkJCShzY2FuLT5yc19jYmxvY2sgJSBTT19SRVNF VF9TTkFQU0hPVF9FQUNIX05fUEFHRSA9PSAwKSkKKwkJCWhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hv dCgoVGFibGVTY2FuRGVzYykgc2Nhbik7CisJfQogfQogCiAvKgpAQCAtMTIzMyw2ICsxMjcwLDE1 IEBAIGhlYXBfZW5kc2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCWlmIChzY2FuLT5yc19wYXJh bGxlbHdvcmtlcmRhdGEgIT0gTlVMTCkKIAkJcGZyZWUoc2Nhbi0+cnNfcGFyYWxsZWx3b3JrZXJk YXRhKTsKIAorCWlmIChzY2FuLT5yc19iYXNlLnJzX2ZsYWdzICYgU09fUkVTRVRfU05BUFNIT1Qp CisJeworCQlBc3NlcnQoIShzY2FuLT5yc19iYXNlLnJzX2ZsYWdzICYgU09fVEVNUF9TTkFQU0hP VCkpOworCQkvKiBNYWtlIHN1cmUgbm8gb3RoZXIgc25hcHNob3Qgd2FzIHNldCBhcyBhY3RpdmUu ICovCisJCUFzc2VydChHZXRBY3RpdmVTbmFwc2hvdCgpID09IHNzY2FuLT5yc19zbmFwc2hvdCk7 CisJCS8qIEFuZCBtYWtlIHN1cmUgc25hcHNob3QgaXMgbm90IHJlZ2lzdGVyZWQuICovCisJCUFz c2VydChHZXRBY3RpdmVTbmFwc2hvdCgpLT5yZWdkX2NvdW50ID09IDApOworCX0KKwogCWlmIChz Y2FuLT5yc19iYXNlLnJzX2ZsYWdzICYgU09fVEVNUF9TTkFQU0hPVCkKIAkJVW5yZWdpc3RlclNu YXBzaG90KHNjYW4tPnJzX2Jhc2UucnNfc25hcHNob3QpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCBhOGQ5NWUwZjFjMS4uOTgwYzUxZTMyYjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTE5MCw2ICsxMTkwLDgg QEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CUV4cHJDb250ZXh0ICplY29udGV4dDsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKIAlib29sCQluZWVk X3VucmVnaXN0ZXJfc25hcHNob3QgPSBmYWxzZTsKKwlib29sCQluZWVkX3BvcF9hY3RpdmVfc25h cHNob3QgPSBmYWxzZTsKKwlib29sCQlyZXNldF9zbmFwc2hvdHMgPSBmYWxzZTsKIAlUcmFuc2Fj dGlvbklkIE9sZGVzdFhtaW47CiAJQmxvY2tOdW1iZXIgcHJldmlvdXNfYmxrbm8gPSBJbnZhbGlk QmxvY2tOdW1iZXI7CiAJQmxvY2tOdW1iZXIgcm9vdF9ibGtubyA9IEludmFsaWRCbG9ja051bWJl cjsKQEAgLTEyMjQsOSArMTIyNiw2IEBAIGhlYXBhbV9pbmRleF9idWlsZF9yYW5nZV9zY2FuKFJl bGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkvKiBBcnJhbmdlIGZvciBlY29udGV4dCdzIHNjYW4gdHVw bGUgdG8gYmUgdGhlIHR1cGxlIHVuZGVyIHRlc3QgKi8KIAllY29udGV4dC0+ZWN4dF9zY2FudHVw bGUgPSBzbG90OwogCi0JLyogU2V0IHVwIGV4ZWN1dGlvbiBzdGF0ZSBmb3IgcHJlZGljYXRlLCBp ZiBhbnkuICovCi0JcHJlZGljYXRlID0gRXhlY1ByZXBhcmVRdWFsKGluZGV4SW5mby0+aWlfUHJl ZGljYXRlLCBlc3RhdGUpOwotCiAJLyoKIAkgKiBQcmVwYXJlIGZvciBzY2FuIG9mIHRoZSBiYXNl IHJlbGF0aW9uLiAgSW4gYSBub3JtYWwgaW5kZXggYnVpbGQsIHdlIHVzZQogCSAqIFNuYXBzaG90 QW55IGJlY2F1c2Ugd2UgbXVzdCByZXRyaWV2ZSBhbGwgdHVwbGVzIGFuZCBkbyBvdXIgb3duIHRp bWUKQEAgLTEyMzYsNiArMTIzNSwxNSBAQCBoZWFwYW1faW5kZXhfYnVpbGRfcmFuZ2Vfc2NhbihS ZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJICovCiAJT2xkZXN0WG1pbiA9IEludmFsaWRUcmFuc2Fj dGlvbklkOwogCisJLyoKKwkgKiBGb3IgdW5pcXVlIGluZGV4IHdlIG5lZWQgY29uc2lzdGVudCBz bmFwc2hvdCBmb3IgdGhlIHdob2xlIHNjYW4uCisJICogSW4gY2FzZSBvZiBwYXJhbGxlbCBzY2Fu IHNvbWUgYWRkaXRpb25hbCBpbmZyYXN0cnVjdHVyZSByZXF1aXJlZAorCSAqIHRvIHBlcmZvcm0g c2NhbiB3aXRoIFNPX1JFU0VUX1NOQVBTSE9UIHdoaWNoIGlzIG5vdCB5ZXQgcmVhZHkuCisJICov CisJcmVzZXRfc25hcHNob3RzID0gaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ICYmCisJCQkJCSAg IWluZGV4SW5mby0+aWlfVW5pcXVlICYmCisJCQkJCSAgIWlzX3N5c3RlbV9jYXRhbG9nOyAvKiBq dXN0IGZvciB0aGUgY2FzZSAqLworCiAJLyogb2theSB0byBpZ25vcmUgbGF6eSBWQUNVVU1zIGhl cmUgKi8KIAlpZiAoIUlzQm9vdHN0cmFwUHJvY2Vzc2luZ01vZGUoKSAmJiAhaW5kZXhJbmZvLT5p aV9Db25jdXJyZW50KQogCQlPbGRlc3RYbWluID0gR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNh Y3Rpb25JZChoZWFwUmVsYXRpb24pOwpAQCAtMTI0NCwyNCArMTI1Miw0MSBAQCBoZWFwYW1faW5k ZXhfYnVpbGRfcmFuZ2Vfc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJewogCQkvKgogCQkg KiBTZXJpYWwgaW5kZXggYnVpbGQuCi0JCSAqCi0JCSAqIE11c3QgYmVnaW4gb3VyIG93biBoZWFw IHNjYW4gaW4gdGhpcyBjYXNlLiAgV2UgbWF5IGFsc28gbmVlZCB0bwotCQkgKiByZWdpc3RlciBh IHNuYXBzaG90IHdob3NlIGxpZmV0aW1lIGlzIHVuZGVyIG91ciBkaXJlY3QgY29udHJvbC4KIAkJ ICovCiAJCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoT2xkZXN0WG1pbikpCiAJCXsKLQkJCXNu YXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwotCQkJ bmVlZF91bnJlZ2lzdGVyX3NuYXBzaG90ID0gdHJ1ZTsKKwkJCXNuYXBzaG90ID0gR2V0VHJhbnNh Y3Rpb25TbmFwc2hvdCgpOworCQkJLyoKKwkJCSAqIE11c3QgYmVnaW4gb3VyIG93biBoZWFwIHNj YW4gaW4gdGhpcyBjYXNlLiAgV2UgbWF5IGFsc28gbmVlZCB0bworCQkJICogcmVnaXN0ZXIgYSBz bmFwc2hvdCB3aG9zZSBsaWZldGltZSBpcyB1bmRlciBvdXIgZGlyZWN0IGNvbnRyb2wuCisJCQkg KiBJbiBjYXNlIG9mIHJlc2V0dGluZyBvZiBzbmFwc2hvdCBkdXJpbmcgdGhlIHNjYW4gcmVnaXN0 cmF0aW9uIGlzCisJCQkgKiBub3QgYWxsb3dlZCBiZWNhdXNlIHNuYXBzaG90IGlzIGdvaW5nIHRv IGJlIGNoYW5nZWQgZXZlcnkgc28KKwkJCSAqIG9mdGVuLgorCQkJICovCisJCQlpZiAoIXJlc2V0 X3NuYXBzaG90cykKKwkJCXsKKwkJCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3Qoc25hcHNo b3QpOworCQkJCW5lZWRfdW5yZWdpc3Rlcl9zbmFwc2hvdCA9IHRydWU7CisJCQl9CisJCQlBc3Nl cnQoIUFjdGl2ZVNuYXBzaG90U2V0KCkpOworCQkJUHVzaEFjdGl2ZVNuYXBzaG90KHNuYXBzaG90 KTsKKwkJCS8qIHN0b3JlIGxpbmsgdG8gc25hcHNob3QgYmVjYXVzZSBpdCBtYXkgYmUgY29waWVk ICovCisJCQlzbmFwc2hvdCA9IEdldEFjdGl2ZVNuYXBzaG90KCk7CisJCQluZWVkX3BvcF9hY3Rp dmVfc25hcHNob3QgPSB0cnVlOwogCQl9CiAJCWVsc2UKKwkJeworCQkJQXNzZXJ0KCFpbmRleElu Zm8tPmlpX0NvbmN1cnJlbnQpOwogCQkJc25hcHNob3QgPSBTbmFwc2hvdEFueTsKKwkJfQogCiAJ CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fc3RyYXQoaGVhcFJlbGF0aW9uLAkvKiByZWxhdGlvbiAq LwogCQkJCQkJCQkJIHNuYXBzaG90LAkvKiBzbmFwc2hvdCAqLwogCQkJCQkJCQkJIDAsIC8qIG51 bWJlciBvZiBrZXlzICovCiAJCQkJCQkJCQkgTlVMTCwJLyogc2NhbiBrZXkgKi8KIAkJCQkJCQkJ CSB0cnVlLAkvKiBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IE9LICovCi0JCQkJCQkJCQkgYWxsb3df c3luYyk7CS8qIHN5bmNzY2FuIE9LPyAqLworCQkJCQkJCQkJIGFsbG93X3N5bmMsCS8qIHN5bmNz Y2FuIE9LPyAqLworCQkJCQkJCQkJIHJlc2V0X3NuYXBzaG90cyAvKiByZXNldCBzbmFwc2hvdHM/ ICovKTsKIAl9CiAJZWxzZQogCXsKQEAgLTEyNzUsNiArMTMwMCw4IEBAIGhlYXBhbV9pbmRleF9i dWlsZF9yYW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJQXNzZXJ0KCFJc0Jvb3Rz dHJhcFByb2Nlc3NpbmdNb2RlKCkpOwogCQlBc3NlcnQoYWxsb3dfc3luYyk7CiAJCXNuYXBzaG90 ID0gc2Nhbi0+cnNfc25hcHNob3Q7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChzbmFwc2hvdCk7CisJ CW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IHRydWU7CiAJfQogCiAJaHNjYW4gPSAoSGVhcFNj YW5EZXNjKSBzY2FuOwpAQCAtMTI4OSw2ICsxMzE2LDEzIEBAIGhlYXBhbV9pbmRleF9idWlsZF9y YW5nZV9zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAlBc3NlcnQoc25hcHNob3QgPT0gU25h cHNob3RBbnkgPyBUcmFuc2FjdGlvbklkSXNWYWxpZChPbGRlc3RYbWluKSA6CiAJCSAgICFUcmFu c2FjdGlvbklkSXNWYWxpZChPbGRlc3RYbWluKSk7CiAJQXNzZXJ0KHNuYXBzaG90ID09IFNuYXBz aG90QW55IHx8ICFhbnl2aXNpYmxlKTsKKwlBc3NlcnQoc25hcHNob3QgPT0gU25hcHNob3RBbnkg fHwgQWN0aXZlU25hcHNob3RTZXQoKSk7CisKKwkvKiBTZXQgdXAgZXhlY3V0aW9uIHN0YXRlIGZv ciBwcmVkaWNhdGUsIGlmIGFueS4gKi8KKwlwcmVkaWNhdGUgPSBFeGVjUHJlcGFyZVF1YWwoaW5k ZXhJbmZvLT5paV9QcmVkaWNhdGUsIGVzdGF0ZSk7CisJLyogQ2xlYXIgcmVmZXJlbmNlIHRvIHNu YXBzaG90IHNpbmNlIGl0IG1heSBiZSBjaGFuZ2VkIGJ5IHRoZSBzY2FuIGl0c2VsZi4gKi8KKwlp ZiAocmVzZXRfc25hcHNob3RzKQorCQlzbmFwc2hvdCA9IEludmFsaWRTbmFwc2hvdDsKIAogCS8q IFB1Ymxpc2ggbnVtYmVyIG9mIGJsb2NrcyB0byBzY2FuICovCiAJaWYgKHByb2dyZXNzKQpAQCAt MTcyNCw2ICsxNzU4LDggQEAgaGVhcGFtX2luZGV4X2J1aWxkX3JhbmdlX3NjYW4oUmVsYXRpb24g aGVhcFJlbGF0aW9uLAogCiAJdGFibGVfZW5kc2NhbihzY2FuKTsKIAorCWlmIChuZWVkX3BvcF9h Y3RpdmVfc25hcHNob3QpCisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJLyogd2UgY2FuIG5vdyBm b3JnZXQgb3VyIHNuYXBzaG90LCBpZiBzZXQgYW5kIHJlZ2lzdGVyZWQgYnkgdXMgKi8KIAlpZiAo bmVlZF91bnJlZ2lzdGVyX3NuYXBzaG90KQogCQlVbnJlZ2lzdGVyU25hcHNob3Qoc25hcHNob3Qp OwpAQCAtMTc5Niw3ICsxODMyLDggQEAgaGVhcGFtX2luZGV4X3ZhbGlkYXRlX3NjYW4oUmVsYXRp b24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkgMCwgLyogbnVtYmVyIG9mIGtleXMgKi8KIAkJCQkJ CQkJIE5VTEwsCS8qIHNjYW4ga2V5ICovCiAJCQkJCQkJCSB0cnVlLAkvKiBidWZmZXIgYWNjZXNz IHN0cmF0ZWd5IE9LICovCi0JCQkJCQkJCSBmYWxzZSk7CS8qIHN5bmNzY2FuIG5vdCBPSyAqLwor CQkJCQkJCQkgZmFsc2UsCS8qIHN5bmNzY2FuIG5vdCBPSyAqLworCQkJCQkJCQkgZmFsc2UpOwog CWhzY2FuID0gKEhlYXBTY2FuRGVzYykgc2NhbjsKIAogCXBnc3RhdF9wcm9ncmVzc191cGRhdGVf cGFyYW0oUFJPR1JFU1NfU0NBTl9CTE9DS1NfVE9UQUwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5j CmluZGV4IDYwYzYxMDM5ZDY2Li43NzdkZjkxOTcyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2luZGV4L2dlbmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFt LmMKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzeXN0YWJsZV9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJl bGF0aW9uLAogCQkgKi8KIAkJc3lzc2Nhbi0+c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdCho ZWFwUmVsYXRpb24sIHNuYXBzaG90LAogCQkJCQkJCQkJCQkgIG5rZXlzLCBrZXksCi0JCQkJCQkJ CQkJCSAgdHJ1ZSwgZmFsc2UpOworCQkJCQkJCQkJCQkgIHRydWUsIGZhbHNlLCBmYWxzZSk7CiAJ CXN5c3NjYW4tPmlzY2FuID0gTlVMTDsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMKaW5kZXggMTdhMzUyZDA0MGMuLjVjNDU4MWFmYjFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHNvcnQuYwpAQCAtMTQxMCw2ICsxNDEwLDcgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCVdh bFVzYWdlICAgKndhbHVzYWdlOwogCUJ1ZmZlclVzYWdlICpidWZmZXJ1c2FnZTsKIAlib29sCQls ZWFkZXJwYXJ0aWNpcGF0ZXMgPSB0cnVlOworCWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hv dCA9IHRydWU7CiAJaW50CQkJcXVlcnlsZW47CiAKICNpZmRlZiBESVNBQkxFX0xFQURFUl9QQVJU SUNJUEFUSU9OCkBAIC0xNDM1LDkgKzE0MzYsMTYgQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCSAq IGxpdmUgYWNjb3JkaW5nIHRvIHRoYXQuCiAJICovCiAJaWYgKCFpc2NvbmN1cnJlbnQpCisJewor CQlBc3NlcnQoQWN0aXZlU25hcHNob3RTZXQoKSk7CiAJCXNuYXBzaG90ID0gU25hcHNob3RBbnk7 CisJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IGZhbHNlOworCX0KIAllbHNlCisJewogCQlz bmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKKwkJ UHVzaEFjdGl2ZVNuYXBzaG90KHNuYXBzaG90KTsKKwl9CiAKIAkvKgogCSAqIEVzdGltYXRlIHNp emUgZm9yIG91ciBvd24gUEFSQUxMRUxfS0VZX0JUUkVFX1NIQVJFRCB3b3Jrc3BhY2UsIGFuZApA QCAtMTQ5MSw2ICsxNDk5LDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVpbGRTdGF0ZSAqYnVp bGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCS8qIElmIG5vIERTTSBz ZWdtZW50IHdhcyBhdmFpbGFibGUsIGJhY2sgb3V0IChkbyBzZXJpYWwgYnVpbGQpICovCiAJaWYg KHBjeHQtPnNlZyA9PSBOVUxMKQogCXsKKwkJaWYgKG5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCkK KwkJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJCWlmIChJc01WQ0NTbmFwc2hvdChzbmFwc2hvdCkp CiAJCQlVbnJlZ2lzdGVyU25hcHNob3Qoc25hcHNob3QpOwogCQlEZXN0cm95UGFyYWxsZWxDb250 ZXh0KHBjeHQpOwpAQCAtMTU4NSw2ICsxNTk1LDggQEAgX2J0X2JlZ2luX3BhcmFsbGVsKEJUQnVp bGRTdGF0ZSAqYnVpbGRzdGF0ZSwgYm9vbCBpc2NvbmN1cnJlbnQsIGludCByZXF1ZXN0KQogCS8q IElmIG5vIHdvcmtlcnMgd2VyZSBzdWNjZXNzZnVsbHkgbGF1bmNoZWQsIGJhY2sgb3V0IChkbyBz ZXJpYWwgYnVpbGQpICovCiAJaWYgKHBjeHQtPm53b3JrZXJzX2xhdW5jaGVkID09IDApCiAJewor CQlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90KQorCQkJUG9wQWN0aXZlU25hcHNob3QoKTsK IAkJX2J0X2VuZF9wYXJhbGxlbChidGxlYWRlcik7CiAJCXJldHVybjsKIAl9CkBAIC0xNjAxLDYg KzE2MTMsOCBAQCBfYnRfYmVnaW5fcGFyYWxsZWwoQlRCdWlsZFN0YXRlICpidWlsZHN0YXRlLCBi b29sIGlzY29uY3VycmVudCwgaW50IHJlcXVlc3QpCiAJICogc3VyZSB0aGF0IHRoZSBmYWlsdXJl LXRvLXN0YXJ0IGNhc2Ugd2lsbCBub3QgaGFuZyBmb3JldmVyLgogCSAqLwogCVdhaXRGb3JQYXJh bGxlbFdvcmtlcnNUb0F0dGFjaChwY3h0KTsKKwlpZiAobmVlZF9wb3BfYWN0aXZlX3NuYXBzaG90 KQorCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDFj M2E5ZTA2ZDM3Li5mNTgxYTc0M2FhZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9p bmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtNzksNiArNzksNyBA QAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3R1cGxlc29ydC5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5o IgogCiAvKiBQb3RlbnRpYWxseSBzZXQgYnkgcGdfdXBncmFkZV9zdXBwb3J0IGZ1bmN0aW9ucyAq LwogT2lkCQkJYmluYXJ5X3VwZ3JhZGVfbmV4dF9pbmRleF9wZ19jbGFzc19vaWQgPSBJbnZhbGlk T2lkOwpAQCAtMTQ5MCw4ICsxNDkxLDggQEAgaW5kZXhfY29uY3VycmVudGx5X2J1aWxkKE9pZCBo ZWFwUmVsYXRpb25JZCwKIAlSZWxhdGlvbglpbmRleFJlbGF0aW9uOwogCUluZGV4SW5mbyAgKmlu ZGV4SW5mbzsKIAotCS8qIFRoaXMgaGFkIGJldHRlciBtYWtlIHN1cmUgdGhhdCBhIHNuYXBzaG90 IGlzIGFjdGl2ZSAqLwotCUFzc2VydChBY3RpdmVTbmFwc2hvdFNldCgpKTsKKwlBc3NlcnQoIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eG1pbikpOworCUFzc2VydCghVHJhbnNhY3Rpb25J ZElzVmFsaWQoTXlQcm9jLT54aWQpKTsKIAogCS8qIE9wZW4gYW5kIGxvY2sgdGhlIHBhcmVudCBo ZWFwIHJlbGF0aW9uICovCiAJaGVhcFJlbCA9IHRhYmxlX29wZW4oaGVhcFJlbGF0aW9uSWQsIFNo YXJlVXBkYXRlRXhjbHVzaXZlTG9jayk7CkBAIC0xNTA5LDE5ICsxNTEwLDI4IEBAIGluZGV4X2Nv bmN1cnJlbnRseV9idWlsZChPaWQgaGVhcFJlbGF0aW9uSWQsCiAKIAlpbmRleFJlbGF0aW9uID0g aW5kZXhfb3BlbihpbmRleFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCisJLyogQnVp bGRJbmRleEluZm8gbWF5IHJlcXVpcmUgYXMgc25hcHNob3QgZm9yIGV4cHJlc3Npb25zIGFuZCBw cmVkaWNhdGVzICovCisJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5zYWN0aW9uU25hcHNob3Qo KSk7CiAJLyoKIAkgKiBXZSBoYXZlIHRvIHJlLWJ1aWxkIHRoZSBJbmRleEluZm8gc3RydWN0LCBz aW5jZSBpdCB3YXMgbG9zdCBpbiB0aGUKIAkgKiBjb21taXQgb2YgdGhlIHRyYW5zYWN0aW9uIHdo ZXJlIHRoaXMgY29uY3VycmVudCBpbmRleCB3YXMgY3JlYXRlZCBhdAogCSAqIHRoZSBjYXRhbG9n IGxldmVsLgogCSAqLwogCWluZGV4SW5mbyA9IEJ1aWxkSW5kZXhJbmZvKGluZGV4UmVsYXRpb24p OworCS8qIERvbmUgd2l0aCBzbmFwc2hvdCAqLworCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJQXNz ZXJ0KCFpbmRleEluZm8tPmlpX1JlYWR5Rm9ySW5zZXJ0cyk7CiAJaW5kZXhJbmZvLT5paV9Db25j dXJyZW50ID0gdHJ1ZTsKIAlpbmRleEluZm8tPmlpX0Jyb2tlbkhvdENoYWluID0gZmFsc2U7CisJ QXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnhtaW4pKTsKIAogCS8qIE5vdyBi dWlsZCB0aGUgaW5kZXggKi8KIAlpbmRleF9idWlsZChoZWFwUmVsLCBpbmRleFJlbGF0aW9uLCBp bmRleEluZm8sIGZhbHNlLCB0cnVlKTsKIAorCS8qIEludmFsaWRhdGUgY2F0YWxvZyBzbmFwc2hv dCBqdXN0IGZvciBhc3NlcnQgKi8KKwlJbnZhbGlkYXRlQ2F0YWxvZ1NuYXBzaG90KCk7CisJQXNz ZXJ0KChpbmRleEluZm8tPmlpX1BhcmFsbGVsV29ya2VycyB8fCBpbmRleEluZm8tPmlpX1VuaXF1 ZSkgfHwgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UHJvYy0+eG1pbikpOworCiAJLyogUm9sbCBi YWNrIGFueSBHVUMgY2hhbmdlcyBleGVjdXRlZCBieSBpbmRleCBmdW5jdGlvbnMgKi8KIAlBdEVP WGFjdF9HVUMoZmFsc2UsIHNhdmVfbmVzdGxldmVsKTsKIApAQCAtMTUzMiwxMiArMTU0MiwxOSBA QCBpbmRleF9jb25jdXJyZW50bHlfYnVpbGQoT2lkIGhlYXBSZWxhdGlvbklkLAogCXRhYmxlX2Ns b3NlKGhlYXBSZWwsIE5vTG9jayk7CiAJaW5kZXhfY2xvc2UoaW5kZXhSZWxhdGlvbiwgTm9Mb2Nr KTsKIAorCS8qCisJICogVXBkYXRpbmcgcGdfaW5kZXggbWlnaHQgaW52b2x2ZSBUT0FTVCB0YWJs ZSBhY2Nlc3MsIHNvIGVuc3VyZSB3ZQorCSAqIGhhdmUgYSB2YWxpZCBzbmFwc2hvdC4KKwkgKi8K KwlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKIAkvKgogCSAq IFVwZGF0ZSB0aGUgcGdfaW5kZXggcm93IHRvIG1hcmsgdGhlIGluZGV4IGFzIHJlYWR5IGZvciBp bnNlcnRzLiBPbmNlIHdlCiAJICogY29tbWl0IHRoaXMgdHJhbnNhY3Rpb24sIGFueSBuZXcgdHJh bnNhY3Rpb25zIHRoYXQgb3BlbiB0aGUgdGFibGUgbXVzdAogCSAqIGluc2VydCBuZXcgZW50cmll cyBpbnRvIHRoZSBpbmRleCBmb3IgaW5zZXJ0aW9ucyBhbmQgbm9uLUhPVCB1cGRhdGVzLgogCSAq LwogCWluZGV4X3NldF9zdGF0ZV9mbGFncyhpbmRleFJlbGF0aW9uSWQsIElOREVYX0NSRUFURV9T RVRfUkVBRFkpOworCS8qIHdlIGNhbiBkbyBhd2F5IHdpdGggb3VyIHNuYXBzaG90ICovCisJUG9w QWN0aXZlU25hcHNob3QoKTsKIH0KIAogLyoKQEAgLTMyMDUsNyArMzIyMiw4IEBAIEluZGV4Q2hl Y2tFeGNsdXNpb24oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkgMCwgLyogbnVtYmVy IG9mIGtleXMgKi8KIAkJCQkJCQkJIE5VTEwsCS8qIHNjYW4ga2V5ICovCiAJCQkJCQkJCSB0cnVl LAkvKiBidWZmZXIgYWNjZXNzIHN0cmF0ZWd5IE9LICovCi0JCQkJCQkJCSB0cnVlKTsgLyogc3lu Y3NjYW4gT0sgKi8KKwkJCQkJCQkJIHRydWUsIC8qIHN5bmNzY2FuIE9LICovCisJCQkJCQkJCSBm YWxzZSk7CiAKIAl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChzY2FuLCBGb3J3YXJkU2Nh bkRpcmVjdGlvbiwgc2xvdCkpCiAJewpAQCAtMzI2OCwxMiArMzI4NiwxNiBAQCBJbmRleENoZWNr RXhjbHVzaW9uKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKICAqIGFzIG9mIHRoZSBzdGFydCBvZiB0 aGUgc2NhbiAoc2VlIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4pLCB3aGVyZWFzIGEgbm9ybWFsCiAg KiBidWlsZCB0YWtlcyBjYXJlIHRvIGluY2x1ZGUgcmVjZW50bHktZGVhZCB0dXBsZXMuICBUaGlz IGlzIE9LIGJlY2F1c2UKICAqIHdlIHdvbid0IG1hcmsgdGhlIGluZGV4IHZhbGlkIHVudGlsIGFs bCB0cmFuc2FjdGlvbnMgdGhhdCBtaWdodCBiZSBhYmxlCi0gKiB0byBzZWUgdGhvc2UgdHVwbGVz IGFyZSBnb25lLiAgVGhlIHJlYXNvbiBmb3IgZG9pbmcgdGhhdCBpcyB0byBhdm9pZAorICogdG8g c2VlIHRob3NlIHR1cGxlcyBhcmUgZ29uZS4gIE9uZSBvZiByZWFzb25zIGZvciBkb2luZyB0aGF0 IGlzIHRvIGF2b2lkCiAgKiBib2d1cyB1bmlxdWUtaW5kZXggZmFpbHVyZXMgZHVlIHRvIGNvbmN1 cnJlbnQgVVBEQVRFcyAod2UgbWlnaHQgc2VlCiAgKiBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhl IHNhbWUgcm93IGFzIGJlaW5nIHZhbGlkIHdoZW4gd2UgcGFzcyBvdmVyIHRoZW0sCiAgKiBpZiB3 ZSB1c2VkIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSkuICBUaGlzIGxlYXZlcyB1cyB3aXRoIGFu IGluZGV4IHRoYXQKICAqIGRvZXMgbm90IGNvbnRhaW4gYW55IHR1cGxlcyBhZGRlZCB0byB0aGUg dGFibGUgd2hpbGUgd2UgYnVpbHQgdGhlIGluZGV4LgogICoKKyAqIEZ1cnRoZXJtb3JlLCBpbiBj YXNlIG9mIG5vbi11bmlxdWUgaW5kZXggd2Ugc2V0IFNPX1JFU0VUX1NOQVBTSE9UIGZvciB0aGUK KyAqIHNjYW4sIHdoaWNoIGNhdXNlcyBuZXcgc25hcHNob3QgdG8gYmUgc2V0IGFzIGFjdGl2ZSBl dmVyeSBzbyBvZnRlbi4gVGhlIHJlYXNvbgorICogZm9yIHRoYXQgaXMgdG8gcHJvcGFnYXRlIHRo ZSB4bWluIGhvcml6b24gZm9yd2FyZC4KKyAqCiAgKiBOZXh0LCB3ZSBtYXJrIHRoZSBpbmRleCAi aW5kaXNyZWFkeSIgKGJ1dCBzdGlsbCBub3QgImluZGlzdmFsaWQiKSBhbmQKICAqIGNvbW1pdCB0 aGUgc2Vjb25kIHRyYW5zYWN0aW9uIGFuZCBzdGFydCBhIHRoaXJkLiAgQWdhaW4gd2Ugd2FpdCBm b3IgYWxsCiAgKiB0cmFuc2FjdGlvbnMgdGhhdCBjb3VsZCBoYXZlIGJlZW4gbW9kaWZ5aW5nIHRo ZSB0YWJsZSB0byB0ZXJtaW5hdGUuICBOb3cKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXgg OTMyODU0ZDZjNjAuLjZjMWZjZThlZDI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwpAQCAt MTY3MCwyMyArMTY3MCwxNyBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkgKiBjaGFpbnMg Y2FuIGJlIGNyZWF0ZWQgd2hlcmUgdGhlIG5ldyB0dXBsZSBhbmQgdGhlIG9sZCB0dXBsZSBpbiB0 aGUKIAkgKiBjaGFpbiBoYXZlIGRpZmZlcmVudCBpbmRleCBrZXlzLgogCSAqCi0JICogV2Ugbm93 IHRha2UgYSBuZXcgc25hcHNob3QsIGFuZCBidWlsZCB0aGUgaW5kZXggdXNpbmcgYWxsIHR1cGxl cyB0aGF0Ci0JICogYXJlIHZpc2libGUgaW4gdGhpcyBzbmFwc2hvdC4gIFdlIGNhbiBiZSBzdXJl IHRoYXQgYW55IEhPVCB1cGRhdGVzIHRvCisJICogV2UgYnVpbGQgdGhlIGluZGV4IHVzaW5nIGFs bCB0dXBsZXMgdGhhdCBhcmUgdmlzaWJsZSB1c2luZyBzaW5nbGUgb3IKKwkgKiBtdWx0aXBsZSBy ZWZyZXNoaW5nIHNuYXBzaG90cy4gV2UgY2FuIGJlIHN1cmUgdGhhdCBhbnkgSE9UIHVwZGF0ZXMg dG8KIAkgKiB0aGVzZSB0dXBsZXMgd2lsbCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGluZGV4LCBz aW5jZSBhbnkgdXBkYXRlcyBtYWRlCiAJICogYnkgdHJhbnNhY3Rpb25zIHRoYXQgZGlkbid0IGtu b3cgYWJvdXQgdGhlIGluZGV4IGFyZSBub3cgY29tbWl0dGVkIG9yCiAJICogcm9sbGVkIGJhY2su ICBUaHVzLCBlYWNoIHZpc2libGUgdHVwbGUgaXMgZWl0aGVyIHRoZSBlbmQgb2YgaXRzCiAJICog SE9ULWNoYWluIG9yIHRoZSBleHRlbnNpb24gb2YgdGhlIGNoYWluIGlzIEhPVC1zYWZlIGZvciB0 aGlzIGluZGV4LgogCSAqLwogCi0JLyogU2V0IEFjdGl2ZVNuYXBzaG90IHNpbmNlIGZ1bmN0aW9u cyBpbiB0aGUgaW5kZXhlcyBtYXkgbmVlZCBpdCAqLwotCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRU cmFuc2FjdGlvblNuYXBzaG90KCkpOwotCiAJLyogUGVyZm9ybSBjb25jdXJyZW50IGJ1aWxkIG9m IGluZGV4ICovCiAJaW5kZXhfY29uY3VycmVudGx5X2J1aWxkKHRhYmxlSWQsIGluZGV4UmVsYXRp b25JZCk7CiAKLQkvKiB3ZSBjYW4gZG8gYXdheSB3aXRoIG91ciBzbmFwc2hvdCAqLwotCVBvcEFj dGl2ZVNuYXBzaG90KCk7Ci0KIAkvKgogCSAqIENvbW1pdCB0aGlzIHRyYW5zYWN0aW9uIHRvIG1h a2UgdGhlIGluZGlzcmVhZHkgdXBkYXRlIHZpc2libGUuCiAJICovCkBAIC00MDg0LDkgKzQwNzgs NiBAQCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoY29uc3QgUmVpbmRleFN0bXQgKnN0bXQs IE9pZCByZWxhdGlvbk9pZCwgY29uc3QgUmVpbgogCQlpZiAobmV3aWR4LT5zYWZlKQogCQkJc2V0 X2luZGV4c2FmZV9wcm9jZmxhZ3MoKTsKIAotCQkvKiBTZXQgQWN0aXZlU25hcHNob3Qgc2luY2Ug ZnVuY3Rpb25zIGluIHRoZSBpbmRleGVzIG1heSBuZWVkIGl0ICovCi0JCVB1c2hBY3RpdmVTbmFw c2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwotCiAJCS8qCiAJCSAqIFVwZGF0ZSBwcm9n cmVzcyBmb3IgdGhlIGluZGV4IHRvIGJ1aWxkLCB3aXRoIHRoZSBjb3JyZWN0IHBhcmVudAogCQkg KiB0YWJsZSBpbnZvbHZlZC4KQEAgLTQxMDEsNyArNDA5Miw2IEBAIFJlaW5kZXhSZWxhdGlvbkNv bmN1cnJlbnRseShjb25zdCBSZWluZGV4U3RtdCAqc3RtdCwgT2lkIHJlbGF0aW9uT2lkLCBjb25z dCBSZWluCiAJCS8qIFBlcmZvcm0gY29uY3VycmVudCBidWlsZCBvZiBuZXcgaW5kZXggKi8KIAkJ aW5kZXhfY29uY3VycmVudGx5X2J1aWxkKG5ld2lkeC0+dGFibGVJZCwgbmV3aWR4LT5pbmRleElk KTsKIAotCQlQb3BBY3RpdmVTbmFwc2hvdCgpOwogCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQo KTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIu YyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBiNjY1YTc3NjJl Yy4uZDlkZTE2YWY4MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTYy LDYgKzYyLDcgQEAKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zZWxmdW5jcy5oIgorI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGRvdWJsZQkJY3Vyc29yX3R1cGxlX2Zy YWN0aW9uID0gREVGQVVMVF9DVVJTT1JfVFVQTEVfRlJBQ1RJT047CkBAIC02OTQyLDYgKzY5NDMs NyBAQCBwbGFuX2NyZWF0ZV9pbmRleF93b3JrZXJzKE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lk KQogCVJlbGF0aW9uCWhlYXA7CiAJUmVsYXRpb24JaW5kZXg7CiAJUmVsT3B0SW5mbyAqcmVsOwor CWJvb2wJCW5lZWRfcG9wX2FjdGl2ZV9zbmFwc2hvdCA9IGZhbHNlOwogCWludAkJCXBhcmFsbGVs X3dvcmtlcnM7CiAJQmxvY2tOdW1iZXIgaGVhcF9ibG9ja3M7CiAJZG91YmxlCQlyZWx0dXBsZXM7 CkBAIC02OTk3LDYgKzY5OTksMTEgQEAgcGxhbl9jcmVhdGVfaW5kZXhfd29ya2VycyhPaWQgdGFi bGVPaWQsIE9pZCBpbmRleE9pZCkKIAloZWFwID0gdGFibGVfb3Blbih0YWJsZU9pZCwgTm9Mb2Nr KTsKIAlpbmRleCA9IGluZGV4X29wZW4oaW5kZXhPaWQsIE5vTG9jayk7CiAKKwkvKiBTZXQgQWN0 aXZlU25hcHNob3Qgc2luY2UgZnVuY3Rpb25zIGluIHRoZSBpbmRleGVzIG1heSBuZWVkIGl0ICov CisJaWYgKCFBY3RpdmVTbmFwc2hvdFNldCgpKSB7CisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRU cmFuc2FjdGlvblNuYXBzaG90KCkpOworCQluZWVkX3BvcF9hY3RpdmVfc25hcHNob3QgPSB0cnVl OworCX0KIAkvKgogCSAqIERldGVybWluZSBpZiBpdCdzIHNhZmUgdG8gcHJvY2VlZC4KIAkgKgpA QCAtNzA1NCw2ICs3MDYxLDggQEAgcGxhbl9jcmVhdGVfaW5kZXhfd29ya2VycyhPaWQgdGFibGVP aWQsIE9pZCBpbmRleE9pZCkKIAkJcGFyYWxsZWxfd29ya2Vycy0tOwogCiBkb25lOgorCWlmIChu ZWVkX3BvcF9hY3RpdmVfc25hcHNob3QpCisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CiAJaW5kZXhf Y2xvc2UoaW5kZXgsIE5vTG9jayk7CiAJdGFibGVfY2xvc2UoaGVhcCwgTm9Mb2NrKTsKIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy90YWJsZWFtLmgKaW5kZXggYWRiNDc4YTkzY2EuLmY0YzdkMmE5MmJmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJs ZWFtLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL3JlYWRfc3RyZWFtLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcHNob3QuaCIKKyNp bmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIKIAogCiAjZGVmaW5lIERFRkFVTFRfVEFC TEVfQUNDRVNTX01FVEhPRAkiaGVhcCIKQEAgLTY5LDYgKzcwLDE3IEBAIHR5cGVkZWYgZW51bSBT Y2FuT3B0aW9ucwogCSAqIG5lZWRlZC4gSWYgdGFibGUgZGF0YSBtYXkgYmUgbmVlZGVkLCBzZXQg U09fTkVFRF9UVVBMRVMuCiAJICovCiAJU09fTkVFRF9UVVBMRVMgPSAxIDw8IDEwLAorCS8qCisJ ICogUmVzZXQgc2NhbiBhbmQgY2F0YWxvZyBzbmFwc2hvdCBldmVyeSBzbyBvZnRlbj8gSWYgc28s IGVhY2gKKwkgKiBTT19SRVNFVF9TTkFQU0hPVF9FQUNIX05fUEFHRSBwYWdlcyBhY3RpdmUgc25h cHNob3QgaXMgcG9wcGVkLAorCSAqIGNhdGFsb2cgc25hcHNob3QgaW52YWxpZGF0ZWQsIGxhdGVz dCBzbmFwc2hvdCBwdXNoZWQgYXMgYWN0aXZlLgorCSAqCisJICogQXQgdGhlIGVuZCBvZiB0aGUg c2NhbiBzbmFwc2hvdCBpcyBub3QgcG9wcGVkLgorCSAqIEdvYWwgb2Ygc3VjaCBtb2RlIGlzIGtl ZXAgeG1pbiBwcm9wYWdhdGluZyBob3Jpem9uIGZvcndhcmQuCisJICoKKwkgKiBzZWUgaGVhcF9y ZXNldF9zY2FuX3NuYXBzaG90IGZvciBkZXRhaWxzLgorCSAqLworCVNPX1JFU0VUX1NOQVBTSE9U ID0gMSA8PCAxMSwKIH0JCQlTY2FuT3B0aW9uczsKIAogLyoKQEAgLTkzNSw3ICs5NDcsOCBAQCBl eHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhSZWxhdGlvbiByZWxh dGlvbiwgaW50IG5rZXlzLAogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdp bnNjYW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJICBpbnQg bmtleXMsIHN0cnVjdCBTY2FuS2V5RGF0YSAqa2V5LAotCQkJCQkgIGJvb2wgYWxsb3dfc3RyYXQs IGJvb2wgYWxsb3dfc3luYykKKwkJCQkJICBib29sIGFsbG93X3N0cmF0LCBib29sIGFsbG93X3N5 bmMsCisJCQkJCSAgYm9vbCByZXNldF9zbmFwc2hvdCkKIHsKIAl1aW50MzIJCWZsYWdzID0gU09f VFlQRV9TRVFTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKQEAgLTk0Myw2ICs5NTYsMTUgQEAg dGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAJ CWZsYWdzIHw9IFNPX0FMTE9XX1NUUkFUOwogCWlmIChhbGxvd19zeW5jKQogCQlmbGFncyB8PSBT T19BTExPV19TWU5DOworCWlmIChyZXNldF9zbmFwc2hvdCkKKwl7CisJCUlOSkVDVElPTl9QT0lO VCgidGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBzaG90cyIpOworCQkvKiBBY3RpdmUg c25hcHNob3QgaXMgcmVxdWlyZWQgb24gc3RhcnQuICovCisJCUFzc2VydChHZXRBY3RpdmVTbmFw c2hvdCgpID09IHNuYXBzaG90KTsKKwkJLyogQWN0aXZlIHNuYXBzaG90IHNob3VsZCBub3QgYmUg cmVnaXN0ZXJlZCB0byBrZWVwIHhtaW4gcHJvcGFnYXRpbmcuICovCisJCUFzc2VydChHZXRBY3Rp dmVTbmFwc2hvdCgpLT5yZWdkX2NvdW50ID09IDApOworCQlmbGFncyB8PSAoU09fUkVTRVRfU05B UFNIT1QpOworCX0KIAogCXJldHVybiByZWwtPnJkX3RhYmxlYW0tPnNjYW5fYmVnaW4ocmVsLCBz bmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxhZ3MpOwogfQpAQCAtMTc3OSw2ICsxODAxLDEw IEBAIHRhYmxlX3NjYW5fYW5hbHl6ZV9uZXh0X3R1cGxlKFRhYmxlU2NhbkRlc2Mgc2NhbiwgVHJh bnNhY3Rpb25JZCBPbGRlc3RYbWluLAogICogdmVyeSBoYXJkIHRvIGRldGVjdCB3aGV0aGVyIHRo ZXkncmUgcmVhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBjaGFpbiB0aXAuCiAgKiBUaGlzIG9u bHkgcmVhbGx5IG1ha2VzIHNlbnNlIGZvciBoZWFwIEFNLCBpdCBtaWdodCBuZWVkIHRvIGJlIGdl bmVyYWxpemVkCiAgKiBmb3Igb3RoZXIgQU1zIGxhdGVyLgorICoKKyAqIEluIGNhc2Ugb2Ygbm9u LXVuaXF1ZSBpbmRleCBhbmQgbm9uLXBhcmFsbGVsIGNvbmN1cnJlbnQgYnVpbGQKKyAqIFNPX1JF U0VUX1NOQVBTSE9UIGlzIGFwcGxpZWQgZm9yIHRoZSBzY2FuLiBUaGF0IGxlYWRzIGZvciBjaGFu Z2luZyBzbmFwc2hvdHMKKyAqIG9uIHRoZSBmbHkgdG8gYWxsb3cgeG1pbiBob3Jpem9uIHByb3Bh Z2F0ZS4KICAqLwogc3RhdGljIGlubGluZSBkb3VibGUKIHRhYmxlX2luZGV4X2J1aWxkX3NjYW4o UmVsYXRpb24gdGFibGVfcmVsLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rp b25fcG9pbnRzL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL01h a2VmaWxlCmluZGV4IGY4Zjg2ZThmM2I2Li43Mzg5M2QzNTFiYiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQpAQCAtMTAsNyArMTAsNyBAQCBFWFRFTlNJT04g PSBpbmplY3Rpb25fcG9pbnRzCiBEQVRBID0gaW5qZWN0aW9uX3BvaW50cy0tMS4wLnNxbAogUEdG SUxFREVTQyA9ICJpbmplY3Rpb25fcG9pbnRzIC0gZmFjaWxpdHkgZm9yIGluamVjdGlvbiBwb2lu dHMiCiAKLVJFR1JFU1MgPSBpbmplY3Rpb25fcG9pbnRzIHJlaW5kZXhfY29uYworUkVHUkVTUyA9 IGluamVjdGlvbl9wb2ludHMgcmVpbmRleF9jb25jIGNpY19yZXNldF9zbmFwc2hvdHMKIFJFR1JF U1NfT1BUUyA9IC0tZGxwYXRoPSQodG9wX2J1aWxkZGlyKS9zcmMvdGVzdC9yZWdyZXNzCiAKIElT T0xBVElPTiA9IGJhc2ljIGlucGxhY2UgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9p bmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMub3V0IGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2NpY19yZXNldF9zbmFwc2hvdHMu b3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Y2ZiYmIwNTkyMwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBl Y3RlZC9jaWNfcmVzZXRfc25hcHNob3RzLm91dApAQCAtMCwwICsxLDEwMiBAQAorQ1JFQVRFIEVY VEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xv Y2FsKCk7CisgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn aGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZScsICdub3RpY2UnKTsKKyBpbmplY3Rp b25fcG9pbnRzX2F0dGFjaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCd0YWJsZV9iZWdpbnNjYW5fc3RyYXRf cmVzZXRfc25hcHNob3RzJywgJ25vdGljZScpOworIGluamVjdGlvbl9wb2ludHNfYXR0YWNoIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIGNp Y19yZXNldF9zbmFwOworQ1JFQVRFIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibChpIGludCBwcmlt YXJ5IGtleSwgaiBpbnQpOworSU5TRVJUIElOVE8gY2ljX3Jlc2V0X3NuYXAudGJsIFNFTEVDVCBp LCBpICogSSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyMDApIHMoaSk7CitDUkVBVEUgRlVOQ1RJ T04gY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpbnRlZ2VyKSBSRVRVUk5TIGJvb2wg SU1NVVRBQkxFCisJCQkJCQkJCQkgIExBTkdVQUdFIHBscGdzcWwgQVMgJCQKK0JFR0lOCisgICAg RVhFQ1VURSAnU0VMRUNUIHR4aWRfY3VycmVudCgpJzsKKyAgICBSRVRVUk4gTU9EKCQxLCAyKSA9 IDA7CitFTkQ7ICQkOworQ1JFQVRFIEZVTkNUSU9OIGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9z dGFibGVfbm9fcGFyYW0oKSBSRVRVUk5TIGJvb2wgSU1NVVRBQkxFCisJCQkJCQkJCQkgIExBTkdV QUdFIHBscGdzcWwgQVMgJCQKK0JFR0lOCisgICAgRVhFQ1VURSAnU0VMRUNUIHR4aWRfY3VycmVu dCgpJzsKKyAgICBSRVRVUk4gZmFsc2U7CitFTkQ7ICQkOworLS0tLS0tLS0tLS0tLS0tLQorQUxU RVIgVEFCTEUgY2ljX3Jlc2V0X3NuYXAudGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKK0NS RUFURSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50Ymwo aSk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9Q IElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09O Q1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7CitOT1RJQ0U6ICBub3RpY2Ug dHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgdGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0 X3NuYXBzaG90cworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50 IGhlYXBfcmVzZXRfc2Nhbl9zbmFwc2hvdF9lZmZlY3RpdmUKK1JFSU5ERVggSU5ERVggQ09OQ1VS UkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCitO T1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGVhcF9yZXNldF9z Y2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3Nu YXAudGJsKE1PRChpLCAyKSwgaikgV0hFUkUgTU9EKGksIDIpID0gMDsKK05PVElDRTogIG5vdGlj ZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVz ZXRfc25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9p bnQgaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05D VVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBm b3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMK K05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0 X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVz ZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRf c25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpKTsK K05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdp bnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZv ciBpbmplY3Rpb24gcG9pbnQgaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJ TkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90 aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9y ZXNldF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBw b2ludCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlk eCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGlj YXRlX3N0YWJsZV9ub19wYXJhbSgpOworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5q ZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK1JFSU5E RVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK05PVElDRTogIG5vdGlj ZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVz ZXRfc25hcHNob3RzCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7 CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwgVVNJ TkcgQlJJTihpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2lu dCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNob3RzCitOT1RJQ0U6ICBub3RpY2Ug dHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2Vm ZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4Owor Tk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBvaW50IHRhYmxlX2JlZ2lu c2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3NjYW5fc25hcHNob3RfZWZmZWN0aXZlCitEUk9Q IElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CistLSBUaGUgc2FtZSBpbiBw YXJhbGxlbCBtb2RlCitBTFRFUiBUQUJMRSBjaWNfcmVzZXRfc25hcC50YmwgU0VUIChwYXJhbGxl bF93b3JrZXJzPTIpOworQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNp Y19yZXNldF9zbmFwLnRibChpKTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNl dF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsK K0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsK K1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5E RVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0NSRUFURSBJTkRFWCBDT05DVVJS RU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChNT0QoaSwgMiksIGopIFdIRVJFIE1PRChp LCAyKSA9IDA7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7 CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitDUkVBVEUgSU5E RVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2lj X3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZShpKTsKK05PVElDRTogIG5vdGljZSB0cmlnZ2Vy ZWQgZm9yIGluamVjdGlvbiBwb2ludCB0YWJsZV9iZWdpbnNjYW5fc3RyYXRfcmVzZXRfc25hcHNo b3RzCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGVhcF9y ZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZQorUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg Y2ljX3Jlc2V0X3NuYXAuaWR4OworTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdF9yZXNldF9zbmFwc2hvdHMKK05PVElDRTog IG5vdGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoZWFwX3Jlc2V0X3NjYW5fc25h cHNob3RfZWZmZWN0aXZlCitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5p ZHg7CitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50Ymwo aSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZV9ub19wYXJhbSgpOwor UkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworQ1JFQVRFIElOREVYIENPTkNVUlJF TlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsIFVTSU5HIEJSSU4oaSk7CitSRUlOREVYIElO REVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJF TlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIFNDSEVNQSBjaWNfcmVzZXRfc25hcCBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzIG90aGVyIG9iamVjdHMKK0RFVEFJTDog IGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY2ljX3Jlc2V0X3NuYXAudGJsCitkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9zdGFibGUoaW50ZWdlcikKK2Ry b3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRlX3N0YWJsZV9u b19wYXJhbSgpCitEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qv bW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkCmluZGV4IDkxZmM4Y2U2ODdmLi5m Mjg4NjMzZGE0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRz L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNv bi5idWlsZApAQCAtMzUsNiArMzUsNyBAQCB0ZXN0cyArPSB7CiAgICAgJ3NxbCc6IFsKICAgICAg ICdpbmplY3Rpb25fcG9pbnRzJywKICAgICAgICdyZWluZGV4X2NvbmMnLAorICAgICAgJ2NpY19y ZXNldF9zbmFwc2hvdHMnLAogICAgIF0sCiAgICAgJ3JlZ3Jlc3NfYXJncyc6IFsnLS1kbHBhdGgn LCBtZXNvbi5idWlsZF9yb290KCkgLyAnc3JjL3Rlc3QvcmVncmVzcyddLAogICAgICMgVGhlIGlu amVjdGlvbiBwb2ludHMgYXJlIGNsdXN0ZXItd2lkZSwgc28gZGlzYWJsZSBpbnN0YWxsY2hlY2sK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvY2ljX3Jl c2V0X3NuYXBzaG90cy5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3Fs L2NpY19yZXNldF9zbmFwc2hvdHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi40ZmVmNWE0NzQzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9zcWwvY2ljX3Jlc2V0X3NuYXBzaG90cy5zcWwKQEAgLTAsMCArMSw4 MiBAQAorQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworCitTRUxFQ1QgaW5qZWN0 aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKK1NFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgn aGVhcF9yZXNldF9zY2FuX3NuYXBzaG90X2VmZmVjdGl2ZScsICdub3RpY2UnKTsKK1NFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2F0dGFjaCgndGFibGVfYmVnaW5zY2FuX3N0cmF0X3Jlc2V0X3NuYXBz aG90cycsICdub3RpY2UnKTsKKworCitDUkVBVEUgU0NIRU1BIGNpY19yZXNldF9zbmFwOworQ1JF QVRFIFRBQkxFIGNpY19yZXNldF9zbmFwLnRibChpIGludCBwcmltYXJ5IGtleSwgaiBpbnQpOwor SU5TRVJUIElOVE8gY2ljX3Jlc2V0X3NuYXAudGJsIFNFTEVDVCBpLCBpICogSSBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAyMDApIHMoaSk7CisKK0NSRUFURSBGVU5DVElPTiBjaWNfcmVzZXRfc25h cC5wcmVkaWNhdGVfc3RhYmxlKGludGVnZXIpIFJFVFVSTlMgYm9vbCBJTU1VVEFCTEUKKwkJCQkJ CQkJCSAgTEFOR1VBR0UgcGxwZ3NxbCBBUyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdTRUxFQ1Qg dHhpZF9jdXJyZW50KCknOworICAgIFJFVFVSTiBNT0QoJDEsIDIpID0gMDsKK0VORDsgJCQ7CisK K0NSRUFURSBGVU5DVElPTiBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFt KCkgUkVUVVJOUyBib29sIElNTVVUQUJMRQorCQkJCQkJCQkJICBMQU5HVUFHRSBwbHBnc3FsIEFT ICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ1NFTEVDVCB0eGlkX2N1cnJlbnQoKSc7CisgICAgUkVU VVJOIGZhbHNlOworRU5EOyAkJDsKKworLS0tLS0tLS0tLS0tLS0tLQorQUxURVIgVEFCTEUgY2lj X3Jlc2V0X3NuYXAudGJsIFNFVCAocGFyYWxsZWxfd29ya2Vycz0wKTsKKworQ1JFQVRFIFVOSVFV RSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK1JFSU5E RVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09O Q1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRM WSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGkpOworUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5U TFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0 X3NuYXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRf c25hcC50YmwoTU9EKGksIDIpLCBqKSBXSEVSRSBNT0QoaSwgMikgPSAwOworUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5U TFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworCitDUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBP TiBjaWNfcmVzZXRfc25hcC50YmwoaSwgaikgV0hFUkUgY2ljX3Jlc2V0X3NuYXAucHJlZGljYXRl X3N0YWJsZShpKTsKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlk eDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRF IElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGksIGopIFdIRVJF IGNpY19yZXNldF9zbmFwLnByZWRpY2F0ZV9zdGFibGVfbm9fcGFyYW0oKTsKK1JFSU5ERVggSU5E RVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVO VExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHgg T04gY2ljX3Jlc2V0X3NuYXAudGJsIFVTSU5HIEJSSU4oaSk7CitSRUlOREVYIElOREVYIENPTkNV UlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNf cmVzZXRfc25hcC5pZHg7CisKKy0tIFRoZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUKK0FMVEVSIFRB QkxFIGNpY19yZXNldF9zbmFwLnRibCBTRVQgKHBhcmFsbGVsX3dvcmtlcnM9Mik7CisKK0NSRUFU RSBVTklRVUUgSU5ERVggQ09OQ1VSUkVOVExZIGlkeCBPTiBjaWNfcmVzZXRfc25hcC50YmwoaSk7 CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElO REVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05D VVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpKTsKK1JFSU5ERVggSU5ERVggQ09O Q1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09OQ1VSUkVOVExZIGNp Y19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHggT04gY2lj X3Jlc2V0X3NuYXAudGJsKE1PRChpLCAyKSwgaikgV0hFUkUgTU9EKGksIDIpID0gMDsKK1JFSU5E RVggSU5ERVggQ09OQ1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKK0RST1AgSU5ERVggQ09O Q1VSUkVOVExZIGNpY19yZXNldF9zbmFwLmlkeDsKKworQ1JFQVRFIElOREVYIENPTkNVUlJFTlRM WSBpZHggT04gY2ljX3Jlc2V0X3NuYXAudGJsKGksIGopIFdIRVJFIGNpY19yZXNldF9zbmFwLnBy ZWRpY2F0ZV9zdGFibGUoaSk7CitSRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRf c25hcC5pZHg7CitEUk9QIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisK K0NSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibChpLCBq KSBXSEVSRSBjaWNfcmVzZXRfc25hcC5wcmVkaWNhdGVfc3RhYmxlX25vX3BhcmFtKCk7CitSRUlO REVYIElOREVYIENPTkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CitEUk9QIElOREVYIENP TkNVUlJFTlRMWSBjaWNfcmVzZXRfc25hcC5pZHg7CisKK0NSRUFURSBJTkRFWCBDT05DVVJSRU5U TFkgaWR4IE9OIGNpY19yZXNldF9zbmFwLnRibCBVU0lORyBCUklOKGkpOworUkVJTkRFWCBJTkRF WCBDT05DVVJSRU5UTFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworRFJPUCBJTkRFWCBDT05DVVJSRU5U TFkgY2ljX3Jlc2V0X3NuYXAuaWR4OworCitEUk9QIFNDSEVNQSBjaWNfcmVzZXRfc25hcCBDQVND QURFOworCitEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwotLSAKMi40My4wCgo= --0000000000009686e806283fa197 Content-Type: text/plain; charset="US-ASCII"; name="v2-0002-Add-stress-tests-for-concurrent-index-operations.patch" Content-Disposition: attachment; filename="v2-0002-Add-stress-tests-for-concurrent-index-operations.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m46atnuj1 RnJvbSA1M2NmY2YzZGMwZWZmZDJiMWE0MTE5NWQwMTIwN2Y0NmJhYzZkZjg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAzMCBOb3YgMjAyNCAxNjoyNDoyMCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjIgMi80 XSBBZGQgc3RyZXNzIHRlc3RzIGZvciBjb25jdXJyZW50IGluZGV4IG9wZXJhdGlvbnMKCkFkZCBj b21wcmVoZW5zaXZlIHN0cmVzcyB0ZXN0cyBmb3IgY29uY3VycmVudCBpbmRleCBvcGVyYXRpb25z LCBmb2N1c2luZyBvbjoKKiBUZXN0aW5nIENSRUFURS9SRUlOREVYL0RST1AgSU5ERVggQ09OQ1VS UkVOVExZIHVuZGVyIGhlYXZ5IHdyaXRlIGxvYWQKKiBWZXJpZnlpbmcgaW5kZXggaW50ZWdyaXR5 IGR1cmluZyBjb25jdXJyZW50IEhPVCB1cGRhdGVzCiogVGVzdGluZyB2YXJpb3VzIGluZGV4IHR5 cGVzIGluY2x1ZGluZyB1bmlxdWUgYW5kIHBhcnRpYWwgaW5kZXhlcwoqIFZhbGlkYXRpbmcgaW5k ZXggY29ycmVjdG5lc3MgdXNpbmcgYW1jaGVjayBidF9pbmRleF9wYXJlbnRfY2hlY2sKKiBFeGVy Y2lzaW5nIHBhcmFsbGVsIHdvcmtlciBjb25maWd1cmF0aW9ucwoKVGhlIHRlc3RzIHBlcmZvcm0g aW50ZW5zaXZlIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucyB2aWEgcGdiZW5jaCB3aGlsZQpleGVj dXRpbmcgaW5kZXggb3BlcmF0aW9ucyB0byBzdHJlc3MgdGVzdCBpbmRleCBidWlsZCBpbmZyYXN0 cnVjdHVyZS4KVGVzdCBjYXNlcyBjb3ZlcjoKLSBSZWd1bGFyIGFuZCB1bmlxdWUgaW5kZXhlcwot IEluZGV4ZXMgd2l0aCBzdGFibGUgYW5kIGltbXV0YWJsZSBwcmVkaWNhdGVzCi0gTXVsdGktY29s dW1uIGluZGV4ZXMgd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucwotIERpZmZlcmVudCBwYXJhbGxl bCB3b3JrZXIgY29uZmlndXJhdGlvbnMKClR3byBuZXcgdGVzdCBmaWxlcyBhZGRlZDoKLSB0LzAw Nl9jb25jdXJyZW50bHkucGw6IEdlbmVyYWwgY29uY3VycmVudCBpbmRleCBvcGVyYXRpb24gdGVz dHMKLSB0LzAwN19jb25jdXJyZW50bHlfdW5pcXVlLnBsOiBGb2N1c2VkIHRlc3Rpbmcgb2YgdW5p cXVlIGluZGV4ZXMKClRoZXNlIHN0cmVzcyB0ZXN0cyBoZWxwIGVuc3VyZSByZWxpYWJpbGl0eSBv ZiBjb25jdXJyZW50IGluZGV4IG9wZXJhdGlvbnMKdW5kZXIgaGVhdnkgbG9hZCBjb25kaXRpb25z LgotLS0KIHNyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MiArCiBzcmMvYmluL3BnX2FtY2hlY2svdC8wMDZfY29uY3VycmVudGx5LnBsICAgICAgfCAzMTUg KysrKysrKysrKysrKysrKysrCiAuLi4vcGdfYW1jaGVjay90LzAwN19jb25jdXJyZW50bHlfdW5p cXVlLnBsICAgfCAyMzkgKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1NTYgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iaW4vcGdfYW1jaGVjay90LzAwNl9jb25j dXJyZW50bHkucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmluL3BnX2FtY2hlY2svdC8wMDdf Y29uY3VycmVudGx5X3VuaXF1ZS5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYW1jaGVjay9t ZXNvbi5idWlsZCBiL3NyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5idWlsZAppbmRleCAyOTJiMzNl YjA5NC4uYjRlMTRhMTVlZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYW1jaGVjay9tZXNvbi5i dWlsZAorKysgYi9zcmMvYmluL3BnX2FtY2hlY2svbWVzb24uYnVpbGQKQEAgLTI4LDYgKzI4LDgg QEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDAzX2NoZWNrLnBsJywKICAgICAgICd0LzAwNF92ZXJp ZnlfaGVhcGFtLnBsJywKICAgICAgICd0LzAwNV9vcGNsYXNzX2RhbWFnZS5wbCcsCisgICAgICAn dC8wMDZfY29uY3VycmVudGx5LnBsJywKKyAgICAgICd0LzAwN19jb25jdXJyZW50bHlfdW5pcXVl LnBsJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19hbWNoZWNrL3Qv MDA2X2NvbmN1cnJlbnRseS5wbCBiL3NyYy9iaW4vcGdfYW1jaGVjay90LzAwNl9jb25jdXJyZW50 bHkucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMwZjllOTU1N2Jm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ19hbWNoZWNrL3QvMDA2X2NvbmN1cnJlbnRs eS5wbApAQCAtMCwwICsxLDMxNSBAQAorDQorIyBDb3B5cmlnaHQgKGMpIDIwMjQsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwDQorDQorIyBUZXN0IFJFSU5ERVggQ09OQ1VSUkVO VExZIHdpdGggY29uY3VycmVudCBtb2RpZmljYXRpb25zIGFuZCBIT1QgdXBkYXRlcw0KK3VzZSBz dHJpY3Q7DQordXNlIHdhcm5pbmdzOw0KKw0KK3VzZSBDb25maWc7DQordXNlIEVycm5vOw0KKw0K Kw0KKw0KK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOw0KK3VzZSBQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczsNCit1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsNCisNCit1c2UgdGhyZWFk czsNCit1c2UgVGVzdDo6TW9yZTsNCit1c2UgVGVzdDo6QnVpbGRlcjsNCisNCisNCitldmFsIHsN CisJcmVxdWlyZSBJUEM6OlN5c1Y7DQorCUlQQzo6U3lzVi0+aW1wb3J0KHF3KElQQ19DUkVBVCBJ UENfRVhDTCBTX0lSVVNSIFNfSVdVU1IpKTsNCit9Ow0KKw0KK2lmICgkQCB8fCAkd2luZG93c19v cykNCit7DQorCXBsYW4gc2tpcF9hbGwgPT4gJ0ZvcmsgYW5kIHNoYXJlZCBtZW1vcnkgYXJlIG5v dCBzdXBwb3J0ZWQgYnkgdGhpcyBwbGF0Zm9ybSc7DQorfQ0KKw0KKyMgVE9ETzogcmVmYWN0b3Ig dG8gaHR0cHM6Ly9tZXRhY3Bhbi5vcmcvcG9kL0lQQyUzQSUzQVNoYXJlYWJsZQ0KK215ICgkcGlk LCAkc2htZW1faWQsICRzaG1lbV9rZXksICAkc2htZW1fc2l6ZSk7DQorZXZhbCAnc3ViIElQQ19D UkVBVCB7MDAwMTAwMH0nIHVubGVzcyBkZWZpbmVkICZJUENfQ1JFQVQ7DQorJHNobWVtX3NpemUg PSA0Ow0KKyRzaG1lbV9rZXkgPSByYW5kKDEwMDAwMDApOw0KKyRzaG1lbV9pZCA9IHNobWdldCgk c2htZW1fa2V5LCAkc2htZW1fc2l6ZSwgJklQQ19DUkVBVCB8IDA3NzcpIG9yIGRpZSAiQ2FuJ3Qg c2htZ2V0OiAkISI7DQorc2htd3JpdGUoJHNobWVtX2lkLCAid2FpdCIsIDAsICRzaG1lbV9zaXpl KSBvciBkaWUgIkNhbid0IHNobXdyaXRlOiAkISI7DQorDQorbXkgJHBzcWxfdGltZW91dCA9IElQ Qzo6UnVuOjp0aW1lcigkUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRpbWVvdXRfZGVmYXVsdCk7 DQorIw0KKyMgVGVzdCBzZXQtdXANCisjDQorbXkgKCRub2RlLCAkcmVzdWx0KTsNCiskbm9kZSA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnUkNfdGVzdCcpOw0KKyRub2RlLT5pbml0 Ow0KKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywNCisJJ2xvY2tfdGltZW91 dCA9ICcgLiAoMTAwMCAqICRQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGltZW91dF9kZWZhdWx0 KSk7DQorJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnZnN5bmMgPSBvZmYn KTsNCiskbm9kZS0+c3RhcnQ7DQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFU RSBFWFRFTlNJT04gYW1jaGVjaykpOw0KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShD UkVBVEUgVEFCTEUgdGJsKGkgaW50IHByaW1hcnkga2V5LA0KKwkJCQkJCQkJYzEgbW9uZXkgZGVm YXVsdCAwLCBjMiBtb25leSBkZWZhdWx0IDAsDQorCQkJCQkJCQljMyBtb25leSBkZWZhdWx0IDAs IHVwZGF0ZWRfYXQgdGltZXN0YW1wKSkpOw0KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cShDUkVBVEUgSU5ERVggaWR4IE9OIHRibChpKSkpOw0KKw0KK215ICRidWlsZGVyID0gVGVzdDo6 TW9yZS0+YnVpbGRlcjsNCiskYnVpbGRlci0+dXNlX251bWJlcnMoMCk7DQorJGJ1aWxkZXItPm5v X3BsYW4oKTsNCisNCitteSAkY2hpbGQgID0gJGJ1aWxkZXItPmNoaWxkKCJwZ19iZW5jaCIpOw0K Kw0KK2lmKCFkZWZpbmVkKCRwaWQgPSBmb3JrKCkpKSB7DQorCSMgZm9yayByZXR1cm5lZCB1bmRl Ziwgc28gdW5zdWNjZXNzZnVsDQorCWRpZSAiQ2Fubm90IGZvcmsgYSBjaGlsZDogJCEiOw0KK30g ZWxzaWYgKCRwaWQgPT0gMCkgew0KKw0KKwkkbm9kZS0+cGdiZW5jaCgNCisJCSctLW5vLXZhY3V1 bSAtLWNsaWVudD0xMCAtLXRyYW5zYWN0aW9ucz0xMDAwJywNCisJCTAsDQorCQlbcXJ7YWN0dWFs bHkgcHJvY2Vzc2VkfV0sDQorCQlbcXJ7XiR9XSwNCisJCSdjb25jdXJyZW50IElOU0VSVHMsIFVQ REFURVMgYW5kIFJDJywNCisJCXsNCisJCQknMDAxX3BnYmVuY2hfY29uY3VycmVudF90cmFuc2Fj dGlvbl9pbnNlcnRzJyA9PiBxKA0KKwkJCQlCRUdJTjsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZB TFVFUyhyYW5kb20oKSoxMDAwMCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRv IHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOw0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFM VUVTKHJhbmRvbSgpKjEwMDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8g dXBkYXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxV RVMocmFuZG9tKCkqMTAwMDAsMCwwLDAsbm93KCkpDQorCQkJCQlvbiBjb25mbGljdChpKSBkbyB1 cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBub3coKTsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVF UyhyYW5kb20oKSoxMDAwMCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRvIHVw ZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IG5vdygpOw0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVT KHJhbmRvbSgpKjEwMDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBk YXRlIHNldCB1cGRhdGVkX2F0ID0gbm93KCk7DQorCQkJCUNPTU1JVDsNCisJCQkgICksDQorCQkJ JzAwMl9wZ2JlbmNoX2NvbmN1cnJlbnRfdHJhbnNhY3Rpb25faW5zZXJ0cycgPT4gcSgNCisJCQkJ QkVHSU47DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAwMDAwLDAsMCww LG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRhdGVkX2F0ID0g bm93KCk7DQorCQkJCUNPTU1JVDsNCisJCQkgICksDQorCQkJIyBFbnN1cmUgc29tZSBIT1QgdXBk YXRlcyBoYXBwZW4NCisJCQknMDAzX3BnYmVuY2hfY29uY3VycmVudF90cmFuc2FjdGlvbl91cGRh dGVzJyA9PiBxKA0KKwkJCQlCRUdJTjsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVFUyhyYW5k b20oKSoxMDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNl dCB1cGRhdGVkX2F0ID0gbm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9t KCkqMTAwMCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQg dXBkYXRlZF9hdCA9IG5vdygpOw0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVTKHJhbmRvbSgp KjEwMDAsMCwwLDAsbm93KCkpDQorCQkJCQlvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IHVw ZGF0ZWRfYXQgPSBub3coKTsNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVFUyhyYW5kb20oKSox MDAwLDAsMCwwLG5vdygpKQ0KKwkJCQkJb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCB1cGRh dGVkX2F0ID0gbm93KCk7DQorCQkJCUlOU0VSVCBJTlRPIHRibCBWQUxVRVMocmFuZG9tKCkqMTAw MCwwLDAsMCxub3coKSkNCisJCQkJCW9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgdXBkYXRl ZF9hdCA9IG5vdygpOw0KKwkJCQlDT01NSVQ7DQorCQkJICApDQorCQl9KTsNCisNCisJaWYgKCRj aGlsZC0+aXNfcGFzc2luZygpKSB7DQorCQlzaG13cml0ZSgkc2htZW1faWQsICJkb25lIiwgMCwg JHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htd3JpdGU6ICQhIjsNCisJfSBlbHNlIHsNCisJ CXNobXdyaXRlKCRzaG1lbV9pZCwgImZhaWwiLCAwLCAkc2htZW1fc2l6ZSkgb3IgZGllICJDYW4n dCBzaG13cml0ZTogJCEiOw0KKwl9DQorDQorCW15ICRwZ19iZW5jaF9mb3JrX2ZsYWc7DQorCXdo aWxlICgxKSB7DQorCQlzaG1yZWFkKCRzaG1lbV9pZCwgJHBnX2JlbmNoX2ZvcmtfZmxhZywgMCwg JHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htcmVhZDogJCEiOw0KKwkJc2xlZXAoMC4xKTsN CisJCWxhc3QgaWYgJHBnX2JlbmNoX2ZvcmtfZmxhZyBlcSAic3RvcCI7DQorCX0NCit9IGVsc2Ug ew0KKwlteSAkcGdfYmVuY2hfZm9ya19mbGFnOw0KKwlzaG1yZWFkKCRzaG1lbV9pZCwgJHBnX2Jl bmNoX2ZvcmtfZmxhZywgMCwgJHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htcmVhZDogJCEi Ow0KKw0KKwlzdWJ0ZXN0ICdyZWluZGV4IHJ1biBzdWJ0ZXN0JyA9PiBzdWIgew0KKwkJaXMoJHBn X2JlbmNoX2ZvcmtfZmxhZywgIndhaXQiLCAicGdfYmVuY2hfZm9ya19mbGFnIGlzIGNvcnJlY3Qi KTsNCisNCisJCW15ICVwc3FsID0gKHN0ZGluID0+ICcnLCBzdGRvdXQgPT4gJycsIHN0ZGVyciA9 PiAnJyk7DQorCQkkcHNxbHtydW59ID0gSVBDOjpSdW46OnN0YXJ0KA0KKwkJCVsgJ3BzcWwnLCAn LVhBJywgJy1mJywgJy0nLCAnLWQnLCAkbm9kZS0+Y29ubnN0cigncG9zdGdyZXMnKSBdLA0KKwkJ CSc8JywNCisJCQlcJHBzcWx7c3RkaW59LA0KKwkJCSc+JywNCisJCQlcJHBzcWx7c3Rkb3V0fSwN CisJCQknMj4nLA0KKwkJCVwkcHNxbHtzdGRlcnJ9LA0KKwkJCSRwc3FsX3RpbWVvdXQpOw0KKw0K KwkJbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIsICRuLCAkc3RkZXJyX3NhdmVkKTsNCisJ CSRuID0gMDsNCisNCisJCSRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoQ1JFQVRFIEZVTkNUSU9O IHByZWRpY2F0ZV9zdGFibGUoKSBSRVRVUk5TIGJvb2wgSU1NVVRBQkxFDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExBTkdVQUdFIHBscGdzcWwgQVMgJCQNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQkVHSU4NCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFWEVDVVRFICdTRUxFQ1QgdHhpZF9jdXJyZW50KCknOw0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTiB0cnVlOw0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFTkQ7ICQkOykpOw0KKw0KKwkJJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcShDUkVBVEUgRlVOQ1RJT04gcHJlZGljYXRlX2NvbnN0KGludGVnZXIpIFJFVFVSTlMgYm9v bCBJTU1VVEFCTEUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEFOR1VBR0Ug cGxwZ3NxbCBBUyAkJA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCRUdJTg0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTiBNT0QoJDEsIDIpID0g MDsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5EOyAkJDspKTsNCisJCXdo aWxlICgxKQ0KKwkJew0KKw0KKwkJCWlmIChpbnQocmFuZCgyKSkgPT0gMCkgew0KKwkJCQkoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKEFMVEVS IFRBQkxFIHRibCBTRVQgKHBhcmFsbGVsX3dvcmtlcnM9MSk7KSk7DQorCQkJfSBlbHNlIHsNCisJ CQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywg cShBTFRFUiBUQUJMRSB0YmwgU0VUIChwYXJhbGxlbF93b3JrZXJzPTQpOykpOw0KKwkJCX0NCisJ CQlpcygkcmVzdWx0LCAnMCcsICdBTFRFUiBUQUJMRSBpcyBjb3JyZWN0Jyk7DQorDQorCQkJaWYg KDEpDQorCQkJew0KKwkJCQkoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNx bCgncG9zdGdyZXMnLCBxKFJFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIGlkeDspKTsNCisJCQkJ aXMoJHJlc3VsdCwgJzAnLCAnUkVJTkRFWCBpcyBjb3JyZWN0Jyk7DQorDQorCQkJCWlmICgkcmVz dWx0KSB7DQorCQkJCQlkaWFnKCRzdGRlcnIpOw0KKwkJCQkJQkFJTF9PVVQoJHN0ZGVycik7DQor CQkJCX0NCisNCisJCQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwo J3Bvc3RncmVzJywgcShTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCdpZHgnLCBoZWFwYWxs aW5kZXhlZCA9PiB0cnVlLCByb290ZGVzY2VuZCA9PiB0cnVlLCBjaGVja3VuaXF1ZSA9PiB0cnVl KTspKTsNCisJCQkJaXMoJHJlc3VsdCwgJzAnLCAnYnRfaW5kZXhfY2hlY2sgaXMgY29ycmVjdCcp Ow0KKwkJCQlpZiAoJHJlc3VsdCkNCisJCQkJew0KKwkJCQkJZGlhZygkc3RkZXJyKTsNCisJCQkJ CUJBSUxfT1VUKCRzdGRlcnIpOw0KKwkJCQl9IGVsc2Ugew0KKwkJCQkJZGlhZygnI3JlaW5kZXg6 KScgLiAkbisrKTsNCisJCQkJfQ0KKwkJCX0NCisNCisJCQlpZiAoMSkNCisJCQl7DQorCQkJCW15 ICR2YXJpYW50ID0gaW50KHJhbmQoNykpOw0KKwkJCQlteSAkc3FsOw0KKwkJCQlpZiAoJHZhcmlh bnQgPT0gMCkgew0KKwkJCQkJJHNxbCA9IHEoQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHhf MiBPTiB0YmwoaSwgdXBkYXRlZF9hdCk7KTsNCisJCQkJfSBlbHNpZiAoJHZhcmlhbnQgPT0gMSkg ew0KKwkJCQkJJHNxbCA9IHEoQ1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHhfMiBPTiB0Ymwo aSwgdXBkYXRlZF9hdCkgV0hFUkUgcHJlZGljYXRlX3N0YWJsZSgpOyk7DQorCQkJCX0gZWxzaWYg KCR2YXJpYW50ID09IDIpIHsNCisJCQkJCSRzcWwgPSBxKENSRUFURSBJTkRFWCBDT05DVVJSRU5U TFkgaWR4XzIgT04gdGJsKGksIHVwZGF0ZWRfYXQpIFdIRVJFIE1PRChpLCAyKSA9IDA7KTsNCisJ CQkJfSBlbHNpZiAoJHZhcmlhbnQgPT0gMykgew0KKwkJCQkJJHNxbCA9IHEoQ1JFQVRFIElOREVY IENPTkNVUlJFTlRMWSBpZHhfMiBPTiB0YmwoaSwgdXBkYXRlZF9hdCkgV0hFUkUgcHJlZGljYXRl X2NvbnN0KGkpOyk7DQorCQkJCX0gZWxzaWYgKCR2YXJpYW50ID09IDQpIHsNCisJCQkJCSRzcWwg PSBxKENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4XzIgT04gdGJsKHByZWRpY2F0ZV9jb25z dChpKSk7KTsNCisJCQkJfSBlbHNpZiAoJHZhcmlhbnQgPT0gNSkgew0KKwkJCQkJJHNxbCA9IHEo Q1JFQVRFIElOREVYIENPTkNVUlJFTlRMWSBpZHhfMiBPTiB0YmwoaSwgcHJlZGljYXRlX2NvbnN0 KGkpLCB1cGRhdGVkX2F0KSBXSEVSRSBwcmVkaWNhdGVfY29uc3QoaSk7KTsNCisJCQkJfSBlbHNp ZiAoJHZhcmlhbnQgPT0gNikgew0KKwkJCQkJJHNxbCA9IHEoQ1JFQVRFIFVOSVFVRSBJTkRFWCBD T05DVVJSRU5UTFkgaWR4XzIgT04gdGJsKGkpOyk7DQorCQkJCX0gZWxzZSB7IGRpYWcoIiN3cm9u ZyB2YXJpYW50Iik7IH0NCisNCisJCQkJZGlhZygnIycgLiAkc3FsKTsNCisJCQkJKCRyZXN1bHQs ICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgJHNxbCk7DQorCQkJ CWlzKCRyZXN1bHQsICcwJywgJ0NSRUFURSBJTkRFWCBpcyBjb3JyZWN0Jyk7DQorCQkJCSRzdGRl cnJfc2F2ZWQgPSAkc3RkZXJyOw0KKw0KKwkJCQkoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikg PSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKFNFTEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2so J2lkeF8yJywgaGVhcGFsbGluZGV4ZWQgPT4gdHJ1ZSwgcm9vdGRlc2NlbmQgPT4gdHJ1ZSwgY2hl Y2t1bmlxdWUgPT4gdHJ1ZSk7KSk7DQorCQkJCWlzKCRyZXN1bHQsICcwJywgJ2J0X2luZGV4X2No ZWNrIGZvciBuZXcgaW5kZXggaXMgY29ycmVjdCcpOw0KKwkJCQlpZiAoJHJlc3VsdCkNCisJCQkJ ew0KKwkJCQkJZGlhZygkc3RkZXJyKTsNCisJCQkJCWRpYWcoJHN0ZGVycl9zYXZlZCk7DQorCQkJ CQlCQUlMX09VVCgkc3RkZXJyKTsNCisJCQkJfSBlbHNlIHsNCisJCQkJCWRpYWcoJyNjcmVhdGU6 KScgLiAkbisrKTsNCisJCQkJfQ0KKw0KKwkJCQlpZiAoMSkNCisJCQkJew0KKwkJCQkJKCRyZXN1 bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgcShSRUlOREVY IElOREVYIENPTkNVUlJFTlRMWSBpZHhfMjspKTsNCisJCQkJCWlzKCRyZXN1bHQsICcwJywgJ1JF SU5ERVggMiBpcyBjb3JyZWN0Jyk7DQorCQkJCQlpZiAoJHJlc3VsdCkgew0KKwkJCQkJCWRpYWco JHN0ZGVycik7DQorCQkJCQkJQkFJTF9PVVQoJHN0ZGVycik7DQorCQkJCQl9DQorDQorCQkJCQko JHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKFNF TEVDVCBidF9pbmRleF9wYXJlbnRfY2hlY2soJ2lkeF8yJywgaGVhcGFsbGluZGV4ZWQgPT4gdHJ1 ZSwgcm9vdGRlc2NlbmQgPT4gdHJ1ZSwgY2hlY2t1bmlxdWUgPT4gdHJ1ZSk7KSk7DQorCQkJCQlp cygkcmVzdWx0LCAnMCcsICdidF9pbmRleF9jaGVjayAyIGlzIGNvcnJlY3QnKTsNCisJCQkJCWlm ICgkcmVzdWx0KQ0KKwkJCQkJew0KKwkJCQkJCWRpYWcoJHN0ZGVycik7DQorCQkJCQkJQkFJTF9P VVQoJHN0ZGVycik7DQorCQkJCQl9IGVsc2Ugew0KKwkJCQkJCWRpYWcoJyNyZWluZGV4MjopJyAu ICRuKyspOw0KKwkJCQkJfQ0KKwkJCQl9DQorDQorCQkJCSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3Rk ZXJyKSA9ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoRFJPUCBJTkRFWCBDT05DVVJSRU5UTFkg aWR4XzI7KSk7DQorCQkJCWlzKCRyZXN1bHQsICcwJywgJ0RST1AgSU5ERVggaXMgY29ycmVjdCcp Ow0KKwkJCX0NCisJCQlzaG1yZWFkKCRzaG1lbV9pZCwgJHBnX2JlbmNoX2ZvcmtfZmxhZywgMCwg JHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htcmVhZDogJCEiOw0KKwkJCWxhc3QgaWYgJHBn X2JlbmNoX2ZvcmtfZmxhZyBuZSAid2FpdCI7DQorCQl9DQorDQorCQkjIGV4cGxpY2l0bHkgc2h1 dCBkb3duIHBzcWwgaW5zdGFuY2VzIGdyYWNlZnVsbHkNCisgICAgICAgICRwc3Fse3N0ZGlufSAu PSAiXFxxXG4iOw0KKyAgICAgICAgJHBzcWx7cnVufS0+ZmluaXNoOw0KKw0KKwkJaXMoJHBnX2Jl bmNoX2ZvcmtfZmxhZywgImRvbmUiLCAicGdfYmVuY2hfZm9ya19mbGFnIGlzIGNvcnJlY3QiKTsN CisJfTsNCisNCisJJGNoaWxkLT5maW5hbGl6ZSgpOw0KKwkkY2hpbGQtPnN1bW1hcnkoKTsNCisJ JG5vZGUtPnN0b3A7DQorCWRvbmVfdGVzdGluZygpOw0KKw0KKwlzaG13cml0ZSgkc2htZW1faWQs ICJzdG9wIiwgMCwgJHNobWVtX3NpemUpIG9yIGRpZSAiQ2FuJ3Qgc2htd3JpdGU6ICQhIjsNCit9 DQorDQorIyBTZW5kIHF1ZXJ5LCB3YWl0IHVudGlsIHN0cmluZyBtYXRjaGVzDQorc3ViIHNlbmRf cXVlcnlfYW5kX3dhaXQNCit7DQorCW15ICgkcHNxbCwgJHF1ZXJ5LCAkdW50bCkgPSBAXzsNCisJ bXkgJHJldDsNCisNCisJIyBGb3IgZWFjaCBxdWVyeSB3ZSBydW4sIHdlJ2xsIHJlc3RhcnQgdGhl IHRpbWVvdXQuICBPdGhlcndpc2UgdGhlIHRpbWVvdXQNCisJIyB3b3VsZCBhcHBseSB0byB0aGUg d2hvbGUgdGVzdCBzY3JpcHQsIGFuZCB3b3VsZCBuZWVkIHRvIGJlIHNldCB2ZXJ5IGhpZ2gNCisJ IyB0byBzdXJ2aXZlIHdoZW4gcnVubmluZyB1bmRlciBWYWxncmluZC4NCisJJHBzcWxfdGltZW91 dC0+cmVzZXQoKTsNCisJJHBzcWxfdGltZW91dC0+c3RhcnQoKTsNCisNCisJIyBzZW5kIHF1ZXJ5 DQorCSQkcHNxbHtzdGRpbn0gLj0gJHF1ZXJ5Ow0KKwkkJHBzcWx7c3RkaW59IC49ICJcbiI7DQor DQorCSMgd2FpdCBmb3IgcXVlcnkgcmVzdWx0cw0KKwkkJHBzcWx7cnVufS0+cHVtcF9uYigpOw0K Kwl3aGlsZSAoMSkNCisJew0KKwkJbGFzdCBpZiAkJHBzcWx7c3Rkb3V0fSA9fiAvJHVudGwvOw0K KwkJaWYgKCRwc3FsX3RpbWVvdXQtPmlzX2V4cGlyZWQpDQorCQl7DQorCQkJZGlhZygiYWJvcnRp bmcgd2FpdDogcHJvZ3JhbSB0aW1lZCBvdXRcbiINCisJCQkJICAuICJzdHJlYW0gY29udGVudHM6 ID4+JCRwc3Fse3N0ZG91dH08PFxuIg0KKwkJCQkgIC4gInBhdHRlcm4gc2VhcmNoZWQgZm9yOiAk dW50bFxuIik7DQorCQkJcmV0dXJuIDA7DQorCQl9DQorCQlpZiAobm90ICQkcHNxbHtydW59LT5w dW1wYWJsZSgpKQ0KKwkJew0KKwkJCWRpYWcoImFib3J0aW5nIHdhaXQ6IHByb2dyYW0gZGllZFxu Ig0KKwkJCQkgIC4gInN0cmVhbSBjb250ZW50czogPj4kJHBzcWx7c3Rkb3V0fTw8XG4iDQorCQkJ CSAgLiAicGF0dGVybiBzZWFyY2hlZCBmb3I6ICR1bnRsXG4iKTsNCisJCQlyZXR1cm4gMDsNCisJ CX0NCisJCSQkcHNxbHtydW59LT5wdW1wKCk7DQorCX0NCisNCisJJCRwc3Fse3N0ZG91dH0gPSAn JzsNCisNCisJcmV0dXJuIDE7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYW1jaGVjay90 LzAwN19jb25jdXJyZW50bHlfdW5pcXVlLnBsIGIvc3JjL2Jpbi9wZ19hbWNoZWNrL3QvMDA3X2Nv bmN1cnJlbnRseV91bmlxdWUucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjIyY2QzYjRiZjJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ19hbWNoZWNrL3Qv MDA3X2NvbmN1cnJlbnRseV91bmlxdWUucGwKQEAgLTAsMCArMSwyMzkgQEAKKw0KKyMgQ29weXJp Z2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cA0KKw0KKyMg VGVzdCBSRUlOREVYIENPTkNVUlJFTlRMWSB3aXRoIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucyBh bmQgSE9UIHVwZGF0ZXMNCit1c2Ugc3RyaWN0Ow0KK3VzZSB3YXJuaW5nczsNCisNCit1c2UgQ29u ZmlnOw0KK3VzZSBFcnJubzsNCisNCit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsNCit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7DQordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7 DQordXNlIHRocmVhZHM7DQordXNlIFRlc3Q6Ok1vcmU7DQordXNlIFRlc3Q6OkJ1aWxkZXI7DQor DQorZXZhbCB7DQorCXJlcXVpcmUgSVBDOjpTeXNWOw0KKwlJUEM6OlN5c1YtPmltcG9ydChxdyhJ UENfQ1JFQVQgSVBDX0VYQ0wgU19JUlVTUiBTX0lXVVNSKSk7DQorfTsNCisNCitpZiAoJEAgfHwg JHdpbmRvd3Nfb3MpDQorew0KKwlwbGFuIHNraXBfYWxsID0+ICdGb3JrIGFuZCBzaGFyZWQgbWVt b3J5IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgcGxhdGZvcm0nOw0KK30NCisNCisjIFRPRE86 IHJlZmFjdG9yIHRvIGh0dHBzOi8vbWV0YWNwYW4ub3JnL3BvZC9JUEMlM0ElM0FTaGFyZWFibGUN CitteSAoJHBpZCwgJHNobWVtX2lkLCAkc2htZW1fa2V5LCAgJHNobWVtX3NpemUpOw0KK2V2YWwg J3N1YiBJUENfQ1JFQVQgezAwMDEwMDB9JyB1bmxlc3MgZGVmaW5lZCAmSVBDX0NSRUFUOw0KKyRz aG1lbV9zaXplID0gNDsNCiskc2htZW1fa2V5ID0gcmFuZCgxMDAwMDAwKTsNCiskc2htZW1faWQg PSBzaG1nZXQoJHNobWVtX2tleSwgJHNobWVtX3NpemUsICZJUENfQ1JFQVQgfCAwNzc3KSBvciBk aWUgIkNhbid0IHNobWdldDogJCEiOw0KK3NobXdyaXRlKCRzaG1lbV9pZCwgIndhaXQiLCAwLCAk c2htZW1fc2l6ZSkgb3IgZGllICJDYW4ndCBzaG13cml0ZTogJCEiOw0KKw0KK215ICRwc3FsX3Rp bWVvdXQgPSBJUEM6OlJ1bjo6dGltZXIoJFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0aW1lb3V0 X2RlZmF1bHQpOw0KKyMNCisjIFRlc3Qgc2V0LXVwDQorIw0KK215ICgkbm9kZSwgJHJlc3VsdCk7 DQorJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ1JDX3Rlc3QnKTsNCisk bm9kZS0+aW5pdDsNCiskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsDQorCSds b2NrX3RpbWVvdXQgPSAnIC4gKDEwMDAgKiAkUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRpbWVv dXRfZGVmYXVsdCkpOw0KKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ2Zz eW5jID0gb2ZmJyk7DQorJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnYXV0 b3ZhY3V1bSA9IG9mZicpOw0KKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywg J21haW50ZW5hbmNlX3dvcmtfbWVtID0gMTI4TUInKTsNCiskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bv c3RncmVzcWwuY29uZicsICdzaGFyZWRfYnVmZmVycyA9IDI1Nk1CJyk7DQorJG5vZGUtPnN0YXJ0 Ow0KKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgRVhURU5TSU9OIGFtY2hl Y2spKTsNCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHEoQ1JFQVRFIFVOTE9HR0VEIFRB QkxFIHRibChpIGludCBwcmltYXJ5IGtleSwNCisJCQkJCQkJCWMxIG1vbmV5IGRlZmF1bHQgMCwg YzIgbW9uZXkgZGVmYXVsdCAwLA0KKwkJCQkJCQkJYzMgbW9uZXkgZGVmYXVsdCAwLCB1cGRhdGVk X2F0IHRpbWVzdGFtcCkpKTsNCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHEoQ1JFQVRF IElOREVYIGlkeCBPTiB0YmwoaSwgdXBkYXRlZF9hdCkpKTsNCisNCitteSAkYnVpbGRlciA9IFRl c3Q6Ok1vcmUtPmJ1aWxkZXI7DQorJGJ1aWxkZXItPnVzZV9udW1iZXJzKDApOw0KKyRidWlsZGVy LT5ub19wbGFuKCk7DQorDQorbXkgJGNoaWxkICA9ICRidWlsZGVyLT5jaGlsZCgicGdfYmVuY2gi KTsNCisNCitpZighZGVmaW5lZCgkcGlkID0gZm9yaygpKSkgew0KKwkjIGZvcmsgcmV0dXJuZWQg dW5kZWYsIHNvIHVuc3VjY2Vzc2Z1bA0KKwlkaWUgIkNhbm5vdCBmb3JrIGEgY2hpbGQ6ICQhIjsN Cit9IGVsc2lmICgkcGlkID09IDApIHsNCisNCisJIyAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBx KElOU0VSVCBJTlRPIHRibCBTRUxFQ1QgaSwwLDAsMCxub3coKSBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMDAwKSBzKGkpOykpOw0KKwkjIHdoaWxlIFsgJD8gLWVxIDAgXTsgZG8gbWFrZSAtQyBz cmMvYmluL3BnX2FtY2hlY2svIGNoZWNrIFBST1ZFX1RFU1RTPSd0LzAwN18qJyA7IGRvbmUNCisN CisJJG5vZGUtPnBnYmVuY2goDQorCQknLS1uby12YWN1dW0gLS1jbGllbnQ9NDAgLS1leGl0LW9u LWFib3J0IC0tdHJhbnNhY3Rpb25zPTEwMDAnLA0KKwkJMCwNCisJCVtxcnthY3R1YWxseSBwcm9j ZXNzZWR9XSwNCisJCVtxcnteJH1dLA0KKwkJJ2NvbmN1cnJlbnQgSU5TRVJUcywgVVBEQVRFUyBh bmQgUkMnLA0KKwkJew0KKwkJCSMgRW5zdXJlIHNvbWUgSE9UIHVwZGF0ZXMgaGFwcGVuDQorCQkJ JzAwMV9wZ2JlbmNoX2NvbmN1cnJlbnRfdHJhbnNhY3Rpb25fdXBkYXRlcycgPT4gcSgNCisJCQkJ SU5TRVJUIElOVE8gdGJsIFZBTFVFUyhyYW5kb20oKSoxMDAwLDAsMCwwLG5vdygpKSBvbiBjb25m bGljdChpKSBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBkYXRlX3RydW5jKCdzZWNvbmRzJywg bm93KCkpOw0KKwkJCSksDQorCQkJJzAwMl9wZ2JlbmNoX2NvbmN1cnJlbnRfdHJhbnNhY3Rpb25f dXBkYXRlcycgPT4gcSgNCisJCQkJSU5TRVJUIElOVE8gdGJsIFZBTFVFUyhyYW5kb20oKSoxMDAs MCwwLDAsbm93KCkpIG9uIGNvbmZsaWN0KGkpICBkbyB1cGRhdGUgc2V0IHVwZGF0ZWRfYXQgPSBk YXRlX3RydW5jKCdzZWNvbmRzJywgbm93KCkpOw0KKwkJCSksDQorCQkJJzAwM19wZ2JlbmNoX2Nv bmN1cnJlbnRfdHJhbnNhY3Rpb25fdXBkYXRlcycgPT4gcSgNCisJCQkJSU5TRVJUIElOVE8gdGJs IFZBTFVFUyhyYW5kb20oKSoxMDAwMCwwLDAsMCxub3coKSkgb24gY29uZmxpY3QoaSkgIGRvIHVw ZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IGRhdGVfdHJ1bmMoJ3NlY29uZHMnLCBub3coKSk7DQorCQkJ KSwNCisJCQknMDA0X3BnYmVuY2hfY29uY3VycmVudF90cmFuc2FjdGlvbl91cGRhdGVzJyA9PiBx KA0KKwkJCQlJTlNFUlQgSU5UTyB0YmwgVkFMVUVTKHJhbmRvbSgpKjEwMDAwMCwwLDAsMCxub3co KSkgb24gY29uZmxpY3QoaSkgIGRvIHVwZGF0ZSBzZXQgdXBkYXRlZF9hdCA9IGRhdGVfdHJ1bmMo J3NlY29uZHMnLCBub3coKSk7DQorCQkJKSwNCisJCX0pOw0KKw0KKwlpZiAoJGNoaWxkLT5pc19w YXNzaW5nKCkpIHsNCisJCXNobXdyaXRlKCRzaG1lbV9pZCwgImRvbmUiLCAwLCAkc2htZW1fc2l6 ZSkgb3IgZGllICJDYW4ndCBzaG13cml0ZTogJCEiOw0KKwl9IGVsc2Ugew0KKwkJc2htd3JpdGUo JHNobWVtX2lkLCAiZmFpbCIsIDAsICRzaG1lbV9zaXplKSBvciBkaWUgIkNhbid0IHNobXdyaXRl OiAkISI7DQorCX0NCisNCisJbXkgJHBnX2JlbmNoX2ZvcmtfZmxhZzsNCisJd2hpbGUgKDEpIHsN CisJCXNobXJlYWQoJHNobWVtX2lkLCAkcGdfYmVuY2hfZm9ya19mbGFnLCAwLCAkc2htZW1fc2l6 ZSkgb3IgZGllICJDYW4ndCBzaG1yZWFkOiAkISI7DQorCQlzbGVlcCgwLjEpOw0KKwkJbGFzdCBp ZiAkcGdfYmVuY2hfZm9ya19mbGFnIGVxICJzdG9wIjsNCisJfQ0KK30gZWxzZSB7DQorCW15ICRw Z19iZW5jaF9mb3JrX2ZsYWc7DQorCXNobXJlYWQoJHNobWVtX2lkLCAkcGdfYmVuY2hfZm9ya19m bGFnLCAwLCAkc2htZW1fc2l6ZSkgb3IgZGllICJDYW4ndCBzaG1yZWFkOiAkISI7DQorDQorCXN1 YnRlc3QgJ3JlaW5kZXggcnVuIHN1YnRlc3QnID0+IHN1YiB7DQorCQlpcygkcGdfYmVuY2hfZm9y a19mbGFnLCAid2FpdCIsICJwZ19iZW5jaF9mb3JrX2ZsYWcgaXMgY29ycmVjdCIpOw0KKw0KKwkJ bXkgJXBzcWwgPSAoc3RkaW4gPT4gJycsIHN0ZG91dCA9PiAnJywgc3RkZXJyID0+ICcnKTsNCisJ CSRwc3Fse3J1bn0gPSBJUEM6OlJ1bjo6c3RhcnQoDQorCQkJWyAncHNxbCcsICctWEEnLCAnLWYn LCAnLScsICctZCcsICRub2RlLT5jb25uc3RyKCdwb3N0Z3JlcycpIF0sDQorCQkJJzwnLA0KKwkJ CVwkcHNxbHtzdGRpbn0sDQorCQkJJz4nLA0KKwkJCVwkcHNxbHtzdGRvdXR9LA0KKwkJCScyPics DQorCQkJXCRwc3Fse3N0ZGVycn0sDQorCQkJJHBzcWxfdGltZW91dCk7DQorDQorCQlteSAoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVyciwgJG4sICRzdGRlcnJfc2F2ZWQpOw0KKw0KKyMJCW9rKHNl bmRfcXVlcnlfYW5kX3dhaXQoXCVwc3FsLCBxW1NFTEVDVCBwZ19zbGVlcCgxMCk7XSwgcXIvXi4q JC9tKSwgJ1NFTEVDVCcpOw0KKw0KKwkJd2hpbGUgKDEpDQorCQl7DQorDQorCQkJaWYgKGludChy YW5kKDIpKSA9PSAwKSB7DQorCQkJCSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2Rl LT5wc3FsKCdwb3N0Z3JlcycsIHEoQUxURVIgVEFCTEUgdGJsIFNFVCAocGFyYWxsZWxfd29ya2Vy cz00KTspKTsNCisJCQl9IGVsc2Ugew0KKwkJCQkoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikg PSAkbm9kZS0+cHNxbCgncG9zdGdyZXMnLCBxKEFMVEVSIFRBQkxFIHRibCBTRVQgKHBhcmFsbGVs X3dvcmtlcnM9MCk7KSk7DQorCQkJfQ0KKwkJCWlzKCRyZXN1bHQsICcwJywgJ0FMVEVSIFRBQkxF IGlzIGNvcnJlY3QnKTsNCisNCisNCisJCQlpZiAoMSkNCisJCQl7DQorCQkJCW15ICRzcWwgPSBx KHNlbGVjdCBwZ19zbGVlcCgwKTsgQ1JFQVRFIFVOSVFVRSBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 XzIgT04gdGJsKGkpOyk7DQorDQorCQkJCSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRu b2RlLT5wc3FsKCdwb3N0Z3JlcycsICRzcWwpOw0KKwkJCQlpcygkcmVzdWx0LCAnMCcsICdDUkVB VEUgSU5ERVggaXMgY29ycmVjdCcpOw0KKwkJCQkkc3RkZXJyX3NhdmVkID0gJHN0ZGVycjsNCisN CisJCQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVz JywgcShTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2NoZWNrKCdpZHhfMicsIGhlYXBhbGxpbmRleGVk ID0+IHRydWUsIHJvb3RkZXNjZW5kID0+IHRydWUsIGNoZWNrdW5pcXVlID0+IHRydWUpOykpOw0K KwkJCQlpcygkcmVzdWx0LCAnMCcsICdidF9pbmRleF9jaGVjayBmb3IgbmV3IGluZGV4IGlzIGNv cnJlY3QnKTsNCisJCQkJaWYgKCRyZXN1bHQpDQorCQkJCXsNCisJCQkJCWRpYWcoJHN0ZGVycik7 DQorCQkJCQlkaWFnKCRzdGRlcnJfc2F2ZWQpOw0KKwkJCQkJQkFJTF9PVVQoJHN0ZGVycik7DQor CQkJCX0gZWxzZSB7DQorCQkJCQlkaWFnKCcjY3JlYXRlOiknIC4gJG4rKyk7DQorCQkJCX0NCisN CisJCQkJaWYgKDEpDQorCQkJCXsNCisJCQkJCSgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9 ICRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHEoUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgaWR4 XzI7KSk7DQorCQkJCQlpcygkcmVzdWx0LCAnMCcsICdSRUlOREVYIDIgaXMgY29ycmVjdCcpOw0K KwkJCQkJaWYgKCRyZXN1bHQpIHsNCisJCQkJCQlkaWFnKCRzdGRlcnIpOw0KKwkJCQkJCUJBSUxf T1VUKCRzdGRlcnIpOw0KKwkJCQkJfQ0KKw0KKwkJCQkJKCRyZXN1bHQsICRzdGRvdXQsICRzdGRl cnIpID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgcShTRUxFQ1QgYnRfaW5kZXhfcGFyZW50X2No ZWNrKCdpZHhfMicsIGhlYXBhbGxpbmRleGVkID0+IHRydWUsIHJvb3RkZXNjZW5kID0+IHRydWUs IGNoZWNrdW5pcXVlID0+IHRydWUpOykpOw0KKwkJCQkJaXMoJHJlc3VsdCwgJzAnLCAnYnRfaW5k ZXhfY2hlY2sgMiBpcyBjb3JyZWN0Jyk7DQorCQkJCQlpZiAoJHJlc3VsdCkNCisJCQkJCXsNCisJ CQkJCQlkaWFnKCRzdGRlcnIpOw0KKwkJCQkJCUJBSUxfT1VUKCRzdGRlcnIpOw0KKwkJCQkJfSBl bHNlIHsNCisJCQkJCQlkaWFnKCcjcmVpbmRleDI6KScgLiAkbisrKTsNCisJCQkJCX0NCisJCQkJ fQ0KKw0KKwkJCQkoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZS0+cHNxbCgncG9z dGdyZXMnLCBxKERST1AgSU5ERVggQ09OQ1VSUkVOVExZIGlkeF8yOykpOw0KKwkJCQlpcygkcmVz dWx0LCAnMCcsICdEUk9QIElOREVYIGlzIGNvcnJlY3QnKTsNCisJCQl9DQorCQkJc2htcmVhZCgk c2htZW1faWQsICRwZ19iZW5jaF9mb3JrX2ZsYWcsIDAsICRzaG1lbV9zaXplKSBvciBkaWUgIkNh bid0IHNobXJlYWQ6ICQhIjsNCisJCQlsYXN0IGlmICRwZ19iZW5jaF9mb3JrX2ZsYWcgbmUgIndh aXQiOw0KKwkJfQ0KKw0KKwkJIyBleHBsaWNpdGx5IHNodXQgZG93biBwc3FsIGluc3RhbmNlcyBn cmFjZWZ1bGx5DQorICAgICAgICAkcHNxbHtzdGRpbn0gLj0gIlxccVxuIjsNCisgICAgICAgICRw c3Fse3J1bn0tPmZpbmlzaDsNCisNCisJCWlzKCRwZ19iZW5jaF9mb3JrX2ZsYWcsICJkb25lIiwg InBnX2JlbmNoX2ZvcmtfZmxhZyBpcyBjb3JyZWN0Iik7DQorCX07DQorDQorCSRjaGlsZC0+Zmlu YWxpemUoKTsNCisJJGNoaWxkLT5zdW1tYXJ5KCk7DQorCSRub2RlLT5zdG9wOw0KKwlkb25lX3Rl c3RpbmcoKTsNCisNCisJc2htd3JpdGUoJHNobWVtX2lkLCAic3RvcCIsIDAsICRzaG1lbV9zaXpl KSBvciBkaWUgIkNhbid0IHNobXdyaXRlOiAkISI7DQorfQ0KKw0KKyMgU2VuZCBxdWVyeSwgd2Fp dCB1bnRpbCBzdHJpbmcgbWF0Y2hlcw0KK3N1YiBzZW5kX3F1ZXJ5X2FuZF93YWl0DQorew0KKwlt eSAoJHBzcWwsICRxdWVyeSwgJHVudGwpID0gQF87DQorCW15ICRyZXQ7DQorDQorCSMgRm9yIGVh Y2ggcXVlcnkgd2UgcnVuLCB3ZSdsbCByZXN0YXJ0IHRoZSB0aW1lb3V0LiAgT3RoZXJ3aXNlIHRo ZSB0aW1lb3V0DQorCSMgd291bGQgYXBwbHkgdG8gdGhlIHdob2xlIHRlc3Qgc2NyaXB0LCBhbmQg d291bGQgbmVlZCB0byBiZSBzZXQgdmVyeSBoaWdoDQorCSMgdG8gc3Vydml2ZSB3aGVuIHJ1bm5p bmcgdW5kZXIgVmFsZ3JpbmQuDQorCSRwc3FsX3RpbWVvdXQtPnJlc2V0KCk7DQorCSRwc3FsX3Rp bWVvdXQtPnN0YXJ0KCk7DQorDQorCSMgc2VuZCBxdWVyeQ0KKwkkJHBzcWx7c3RkaW59IC49ICRx dWVyeTsNCisJJCRwc3Fse3N0ZGlufSAuPSAiXG4iOw0KKw0KKwkjIHdhaXQgZm9yIHF1ZXJ5IHJl c3VsdHMNCisJJCRwc3Fse3J1bn0tPnB1bXBfbmIoKTsNCisJd2hpbGUgKDEpDQorCXsNCisJCWxh c3QgaWYgJCRwc3Fse3N0ZG91dH0gPX4gLyR1bnRsLzsNCisJCWlmICgkcHNxbF90aW1lb3V0LT5p c19leHBpcmVkKQ0KKwkJew0KKwkJCWRpYWcoImFib3J0aW5nIHdhaXQ6IHByb2dyYW0gdGltZWQg b3V0XG4iDQorCQkJCSAgLiAic3RyZWFtIGNvbnRlbnRzOiA+PiQkcHNxbHtzdGRvdXR9PDxcbiIN CisJCQkJICAuICJwYXR0ZXJuIHNlYXJjaGVkIGZvcjogJHVudGxcbiIpOw0KKwkJCXJldHVybiAw Ow0KKwkJfQ0KKwkJaWYgKG5vdCAkJHBzcWx7cnVufS0+cHVtcGFibGUoKSkNCisJCXsNCisJCQlk aWFnKCJhYm9ydGluZyB3YWl0OiBwcm9ncmFtIGRpZWRcbiINCisJCQkJICAuICJzdHJlYW0gY29u dGVudHM6ID4+JCRwc3Fse3N0ZG91dH08PFxuIg0KKwkJCQkgIC4gInBhdHRlcm4gc2VhcmNoZWQg Zm9yOiAkdW50bFxuIik7DQorCQkJcmV0dXJuIDA7DQorCQl9DQorCQkkJHBzcWx7cnVufS0+cHVt cCgpOw0KKwl9DQorDQorCSQkcHNxbHtzdGRvdXR9ID0gJyc7DQorDQorCXJldHVybiAxOw0KK30N Ci0tIAoyLjQzLjAKCg== --0000000000009686e806283fa197--