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 1thVwS-003NXe-Ib for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Feb 2025 15:43:25 +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 1thVwR-002FHG-1Z for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Feb 2025 15:43:23 +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 1thVGq-001zjv-SC for pgsql-hackers@lists.postgresql.org; Mon, 10 Feb 2025 15:00:25 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1thVGm-0002rg-19 for pgsql-hackers@postgresql.org; Mon, 10 Feb 2025 15:00:23 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5de63846e56so3634955a12.1 for ; Mon, 10 Feb 2025 07:00:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739199619; x=1739804419; 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=YfAVoYQc5hktk6WIAWSgkwlMOgnAbpk//1hCgNUNnx8=; b=VkzuNoZOZ8j6t+PrElKCyRl1bnaHOmEyZGh58ivWw+2fSJw/vUMsOdetXCf0Tq0cY4 rCWMaWSi+9OSK7RSJ7L9eu1+gDA0XnABcHj39L6u+YjHdYIGzOAazctrH+KUerYtJDkY tDvMrMEhu33MG2YRcr6vZ7eQImlY4jgrpyUYZ+WegYrTfzZcreybh8N8GhitS3+qVRsx BKM+a2S3Z5Q0Z/vJZYcOwmPtnNg121MAAAHlFVrIgiKwlZOedOFZTL1svQTEBmQq8wq1 q+6biIAfpNgVjVtASkIpDx5+oV5JSQeVLJRD1ebchPu6+hS0VrLm1bNjpPxjxlceIqKB wdxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739199619; x=1739804419; 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=YfAVoYQc5hktk6WIAWSgkwlMOgnAbpk//1hCgNUNnx8=; b=IWU2gZ/IqO8GfH4YJe9ITjXJwYX9IKJXudekGzqhgiZj4lbvra3aZJRNbd8cmzBZDR EK32Q2AAWvLBDrolftPT1OwshzN9rtu5LRlBJHXh9hKdAePXHaFEt7ElWShm9snU2R65 ZszxwNHTEZctld+HpuzI//cjyJMXz8VOH7epOHNZpvpIURM1sSu4n2e91SFF7uTKGpp0 3gBP4IAwIkkFzJ3WH26dyQ/sX3vi61m9aOjTCu+RS0ARr5l47M7RSL7wpFFX4WN3szGL zb0EHylBkkytkXTQ2vRlae0jybxPKt/i66GVN4V7yGHmaPdrZ/q8YHG6jLMTFs7/5xq3 b3ow== X-Forwarded-Encrypted: i=1; AJvYcCXQ9uhEkihIHP1T7ygbo+JuornVb4JUHSlRw8G9uphx84GFdaolEMgPQnugwqkfVdCPCS3FhgvtthvMXIgU@postgresql.org X-Gm-Message-State: AOJu0Yy+xYUIr2m+05vF+5hagWuHa4PlUV1YynrcsVZbwOrHJSFCXLK+ kvUmYlAB6Z42tUwxxs08SvRXVhjWbVsQJcj77mSKYGPPwDdsxmMoz8Md54ncKCRVDm3bIVmN+Nt sd864VrPia2b7WFUCOpEcPHJYJaA= X-Gm-Gg: ASbGncvOdxrWBFX6b5xnOGsHaWmaH1p0iUQUJ0bsUyEINdn7Wq8w9o7zy6uVplGSLtx /kwU4T7eOUoTvhmIlzkCUua6w4RfaIzCz/5PvrJP9bMKsuHvZiJCnIKBe3F+eafHPeYpJwa6L X-Google-Smtp-Source: AGHT+IFSn5L9HA8wIPWvhcyhcB1Ydfe/JpUbGoaV/VJjlRkyGiFucW6glSa4vcnF2U4xTt8zbcLdXpQzlcPD3vyZNEE= X-Received: by 2002:a05:6402:35d2:b0:5d0:b51c:8479 with SMTP id 4fb4d7f45d1cf-5de9a3a1525mr1579a12.10.1739199618503; Mon, 10 Feb 2025 07:00:18 -0800 (PST) MIME-Version: 1.0 References: <04c0abe2-e9c5-4ffc-97b2-bedc1e3cd178@eisentraut.org> <3b190de8-910a-4091-82f9-e98cf562d832@postgresfriends.org> In-Reply-To: From: Junwang Zhao Date: Mon, 10 Feb 2025 23:00:05 +0800 X-Gm-Features: AWEUYZkQK0pVOw8WX5p3xPIYj0AAJ7HNpsw3XIZQpEpF2ZlhoNDEGU2OXnrD7dA Message-ID: Subject: Re: SQL Property Graph Queries (SQL/PGQ) To: Ashutosh Bapat Cc: Vik Fearing , Ajay Pal , Imran Zaheer , Peter Eisentraut , pgsql-hackers Content-Type: multipart/mixed; boundary="00000000000074adbd062dcaf7b5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000074adbd062dcaf7b5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Ashutosh, On Mon, Feb 10, 2025 at 2:14=E2=80=AFPM Ashutosh Bapat wrote: > > On Thu, Feb 6, 2025 at 8:22=E2=80=AFPM Junwang Zhao w= rote: > > > > > > > > > > I see you have added some negative tests - object not found tests, bu= t > > > I didn't see positive tests. Hence I haven't added those changes in > > > the attached patchset. But we certainly need those changes. You may > > > want to submit a patch with positive tests. That code needs to be > > > fixed before committing anyway. > > > > The attached file adds the positive tests. > > Hi Junwang, > Thanks for the patch, but please post it as a separate patch in the > full patch-set, otherwise CFBot gets confused. Ok, see the attached. 0001-0009 are the original patches of 20250127 with rebase of master 0010 fix ci error due to `Show more-intuitive titles for psql commands`, see a14707da564e 0011 fix ci error due to unstable collation tests, we should not depend on pg_catalog."default", I observed 002_pg_upgrade.pl failure caused by this. 0012 trivial refactor of property graph object address > > -- > Best Wishes, > Ashutosh Bapat --=20 Regards Junwang Zhao --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0011-do-not-use-default-COLLATE.patch" Content-Disposition: attachment; filename="v10-0011-do-not-use-default-COLLATE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ionw1 RnJvbSBjOWMyOTY0ZTM0NWQ4MzEzODViMzk1NWEyM2E3Yjk5NzUwYmFkYWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdW53YW5nIFpoYW8gPHpoandwa3VAZ21haWwuY29tPgpEYXRl OiBNb24sIDEwIEZlYiAyMDI1IDEzOjAyOjUwICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MTAgMTEv MTJdIGRvIG5vdCB1c2UgZGVmYXVsdCBDT0xMQVRFCgpTaWduZWQtb2ZmLWJ5OiBKdW53YW5nIFpo YW8gPHpoandwa3VAZ21haWwuY29tPgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3Jh cGhfdGFibGUub3V0IHwgMjkgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCAgICAgIHwgIDYgKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ3JhcGhfdGFibGUub3V0CmluZGV4IDBhNTc0YjEwZjRiLi4yMjQ0YjU5ZmZiYSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKQEAgLTUzMywxMyArNTMzLDYg QEAgQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgQUREIEVER0UgVEFCTEVTICgKIElOU0VSVCBJTlRP IGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnZTMzMScsIDEwMDEwKTsKIElOU0VSVCBJTlRPIGUz XzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnRTMzMScsIDEwMDEwKTsKIC0tIGN5Y2xpYyBwYXR0ZXJu IHdpdGggZWRnZSBwYXR0ZXJucyB3aXRoIHNhbWUgdmFyaWFibGUgbmFtZQotU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEu dm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBsb29wX25hbWUpKSBPUkRFUiBCWSBsb29wX25hbWUg QVNDOwotIHNlbGYgfCBsb29wX25hbWUgCi0tLS0tLS0rLS0tLS0tLS0tLS0KLSB2MzMgIHwgZTMz MQotIHYzMyAgfCBFMzMxCi0oMiByb3dzKQotCiBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBi LmVuYW1lIEFTIGxvb3BfbmFtZSkpIE9SREVSIEJZIGxvb3BfbmFtZSBDT0xMQVRFICJDIiBBU0M7 CiAgc2VsZiB8IGxvb3BfbmFtZSAKIC0tLS0tLSstLS0tLS0tLS0tLQpAQCAtNjEwLDExICs2MDMs MTEgQEAgc2VsZWN0IHNuLCBjbiwgZG4gZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6 IGwxKS1bY29ubiA6IGwxXS0+KGRlc3QgOiBsMSkKICBnMi52MzMgfCBnMi5lMzMxIHwgZzIudjMz CiAoOCByb3dzKQogCi1TRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2Jd LT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQ09MTEFU RSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBBUyBsb29wX25hbWUpKSBPUkRFUiBCWSBsb29wX25hbWUg QVNDOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVti XS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkp IE9SREVSIEJZIGxvb3BfbmFtZSBBU0M7CiAgIHNlbGYgIHwgbG9vcF9uYW1lIAogLS0tLS0tLS0r LS0tLS0tLS0tLS0KLSBnMi52MzMgfCBnMi5lMzMxCiAgZzIudjMzIHwgZzIuRTMzMQorIGcyLnYz MyB8IGcyLmUzMzEKICgyIHJvd3MpCiAKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1B VENIIChhKS1bYiBXSEVSRSBiLmVsbmFtZSA+ICdnMi5FMzMxJ10tPihhKS1bYl0tPihhKSBDT0xV TU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKTsKQEAgLTYzNSwy NCArNjI4LDYgQEAgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+ KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHMKICBnMi52MzMgfCBnMi5lMzMxCiAo MSByb3cpCiAKLVNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVS RSBiLmVsbmFtZSA+ICdnMi5lMzMxJyBDT0xMQVRFIHBnX2NhdGFsb2cuImRlZmF1bHQiXS0+KGEp LVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFt ZSkpOwotICBzZWxmICB8IGxvb3BfbmFtZSAKLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gZzIudjMz IHwgZzIuRTMzMQotKDEgcm93KQotCi1TRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRD SCAoYSktW2JdLT4oYSktW2JdLT4oYSkgV0hFUkUgYi5lbG5hbWUgPiAnZzIuZTMzMScgQ09MTEFU RSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFt ZSBBUyBsb29wX25hbWUpKTsKLSAgc2VsZiAgfCBsb29wX25hbWUgCi0tLS0tLS0tLSstLS0tLS0t LS0tLQotIGcyLnYzMyB8IGcyLkUzMzEKLSgxIHJvdykKLQotU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFT IHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdnMi5lMzMx JyBDT0xMQVRFIHBnX2NhdGFsb2cuImRlZmF1bHQiOwotICBzZWxmICB8IGxvb3BfbmFtZSAKLS0t LS0tLS0tKy0tLS0tLS0tLS0tCi0gZzIudjMzIHwgZzIuRTMzMQotKDEgcm93KQotCiBDUkVBVEUg VklFVyBjdXN0b21lcnNfdXMgQVMgU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJM RSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1b SVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3Vz dG9tZXJfbmFtZSkpOwogU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdjdXN0b21lcnNfdXMnOjpyZWdj bGFzcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKaW5kZXggOTc3YmYyNzc0ZTUuLmY2ZWU3 NzMyNTEzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCkBAIC0zMzksNyArMzM5 LDYgQEAgQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgQUREIEVER0UgVEFCTEVTICgKIElOU0VSVCBJ TlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnZTMzMScsIDEwMDEwKTsKIElOU0VSVCBJTlRP IGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnRTMzMScsIDEwMDEwKTsKIC0tIGN5Y2xpYyBwYXR0 ZXJuIHdpdGggZWRnZSBwYXR0ZXJucyB3aXRoIHNhbWUgdmFyaWFibGUgbmFtZQotU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMg KGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBsb29wX25hbWUpKSBPUkRFUiBCWSBsb29wX25h bWUgQVNDOwogU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiXS0+KGEp LVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBsb29wX25hbWUp KSBPUkRFUiBCWSBsb29wX25hbWUgQ09MTEFURSAiQyIgQVNDOwogU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiIElTIGVsMiBXSEVSRSBiLmVuYW1lID4gJ0UzMzEnIENP TExBVEUgIkMiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFt ZSBBUyBsb29wX25hbWUpKTsKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChh KS1bYl0tPihhKS1bYl0tPihhKSBXSEVSRSBiLmVuYW1lID4gJ0UzMzEnIENPTExBVEUgIkMiIENP TFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBsb29wX25hbWUpKTsKQEAgLTM3Nywx MyArMzc2LDEwIEBAIGVkZ2UgdGFibGVzICgKICAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElFUyAo J2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKQogKTsKIHNlbGVjdCBzbiwgY24s IGRuIGZyb20gZ3JhcGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihk ZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNvbm4uZWxuYW1lIGFzIGNuLCBk ZXN0LmVsbmFtZSBhcyBkbikpIE9SREVSIEJZIDEsIDIsIDM7Ci1TRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUg QVMgc2VsZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBBUyBsb29wX25h bWUpKSBPUkRFUiBCWSBsb29wX25hbWUgQVNDOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo ZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYs IGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpIE9SREVSIEJZIGxvb3BfbmFtZSBBU0M7CiBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2IgV0hFUkUgYi5lbG5hbWUgPiAnZzIu RTMzMSddLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUg QVMgbG9vcF9uYW1lKSk7CiBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSkt W2JdLT4oYSktW2JdLT4oYSkgV0hFUkUgYi5lbG5hbWUgPiAnZzIuRTMzMScgQ09MVU1OUyAoYS5l bG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSk7CiBTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5h bWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9vcF9uYW1lID4gJ2cy LkUzMzEnOwotU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiIFdIRVJF IGIuZWxuYW1lID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCJdLT4oYSkt W2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1l KSk7Ci1TRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2Jd LT4oYSkgV0hFUkUgYi5lbG5hbWUgPiAnZzIuZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZh dWx0IiBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKTsK LVNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihh KSBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKSBXSEVS RSBsb29wX25hbWUgPiAnZzIuZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IjsKIAog Q1JFQVRFIFZJRVcgY3VzdG9tZXJzX3VzIEFTIFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JB UEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0g J1VTJyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1l IEFTIGN1c3RvbWVyX25hbWUpKTsKIAotLSAKMi4zOS41Cgo= --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0012-trivial-refactor-of-property-graph-object-addres.patch" Content-Disposition: attachment; filename="v10-0012-trivial-refactor-of-property-graph-object-addres.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ionk0 RnJvbSBhY2EwNGIwYzRjOWU5ZDljZGRhMTAzZmY2MTcxZGE4OGYxOGVmZTRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdW53YW5nIFpoYW8gPHpoandwa3VAZ21haWwuY29tPgpEYXRl OiBTYXQsIDIxIERlYyAyMDI0IDEyOjEzOjQwICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MTAgMTIv MTJdIHRyaXZpYWwgcmVmYWN0b3Igb2YgcHJvcGVydHkgZ3JhcGggb2JqZWN0IGFkZHJlc3MKCi0t LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAgIHwgNTQgKysr KysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jICAg ICAgICAgIHwgIDggKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMgICAgICAg ICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAg ICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAg ICB8ICA4ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAg IHwgMzAgKysrKysrKysrLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAg ICAgICAgICB8ICA1ICstCiAuLi4vZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCAg ICAgICAgfCAzNiArKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVj dF9hZGRyZXNzLm91dCAgfCAgNiArKysKIC4uLi9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvcGVydHlf Z3JhcGguc3FsICAgICB8ICA1ICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVz cy5zcWwgICAgICAgfCAgMyArKwogMTEgZmlsZXMgY2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKyks IDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKaW5kZXggNmVh ZWUzNDVhZDIuLjAzZWQ4MzBkNWExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29i amVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpA QCAtNDA3MCw4ICs0MDcwLDEyIEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFk ZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCiAJCQkJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsK IAkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKLQkJCQkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIHByb3BlcnR5IGdyYXBoIGVsZW1lbnQgJXUiLAotCQkJCQkJIG9i amVjdC0+b2JqZWN0SWQpOworCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHByb3BlcnR5IGdyYXBoIGVsZW1lbnQg JXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQogCiAJ CQkJcGdlZm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJVQ1QodHVwKTsK IApAQCAtNDExOCw3ICs0MTIyLDcgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAKIAkJCQlwZ2VsZm9ybSA9IChGb3Jt X3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1QodHVwbGUpOwogCi0JCQkJYXBw ZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJsYWJlbCAlcyBvZiAiKSwgZ2V0X3Byb3BncmFwaF9s YWJlbF9uYW1lKHBnZWxmb3JtLT5wZ2VsbGFiZWxpZCkpOworCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwgXygibGFiZWwgJXMgb2YgIiksIGdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShwZ2Vs Zm9ybS0+cGdlbGxhYmVsaWQsIGZhbHNlKSk7CiAJCQkJT2JqZWN0QWRkcmVzc1NldChvYSwgUHJv cGdyYXBoRWxlbWVudFJlbGF0aW9uSWQsIHBnZWxmb3JtLT5wZ2VsZWxpZCk7CiAJCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCBnZXRPYmplY3REZXNjcmlwdGlvbigmb2EsIGZhbHNl KSk7CiAKQEAgLTQxOTMsNyArNDE5Nyw3IEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9i amVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCiAJCQkJcGxwZm9ybSA9IChG b3JtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQkJ CWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygicHJvcGVydHkgJXMgb2YgIiksIGdldF9wcm9w Z3JhcGhfcHJvcGVydHlfbmFtZShwbHBmb3JtLT5wbHBwcm9waWQpKTsKKwkJCQlhcHBlbmRTdHJp bmdJbmZvKCZidWZmZXIsIF8oInByb3BlcnR5ICVzIG9mICIpLCBnZXRfcHJvcGdyYXBoX3Byb3Bl cnR5X25hbWUocGxwZm9ybS0+cGxwcHJvcGlkLCBmYWxzZSkpOwogCQkJCU9iamVjdEFkZHJlc3NT ZXQob2EsIFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIHBscGZvcm0tPnBscGVsbGFi ZWxpZCk7CiAJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCBnZXRPYmplY3REZXNj cmlwdGlvbigmb2EsIGZhbHNlKSk7CiAKQEAgLTYxNzQsMTYgKzYxNzgsNDYgQEAgZ2V0T2JqZWN0 SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAKIAkJY2Fz ZSBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKLQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZl ciwgIiV1IFRPRE8iLCBvYmplY3QtPm9iamVjdElkKTsKLQkJCWJyZWFrOworCQkJeworCQkJCWNo YXIJICAgKmVsZW1uYW1lOworCisJCQkJZWxlbW5hbWUgPSBnZXRfcHJvcGdyYXBoX2VsZW1lbnRf YWxpYXNfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKwkJCQlpZiAoZWxlbW5h bWUpCisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsIHF1b3RlX2lk ZW50aWZpZXIoZWxlbW5hbWUpKTsKKwkJCQkJaWYgKG9iam5hbWUpCisJCQkJCQkqb2JqbmFtZSA9 IGxpc3RfbWFrZTEoZWxlbW5hbWUpOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KIAogCQljYXNl IFByb3BncmFwaExhYmVsUmVsYXRpb25JZDoKLQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwg IiV1IFRPRE8iLCBvYmplY3QtPm9iamVjdElkKTsKLQkJCWJyZWFrOworCQkJeworCQkJCWNoYXIJ ICAgKmxhYmVsbmFtZTsKKworCQkJCWxhYmVsbmFtZSA9IGdldF9wcm9wZ3JhcGhfbGFiZWxfbmFt ZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKwkJCQlpZiAobGFiZWxuYW1lKQorCQkJ CXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCBxdW90ZV9pZGVudGlmaWVy KGxhYmVsbmFtZSkpOworCQkJCQlpZiAob2JqbmFtZSkKKwkJCQkJCSpvYmpuYW1lID0gbGlzdF9t YWtlMShsYWJlbG5hbWUpOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KIAogCQljYXNlIFByb3Bn cmFwaFByb3BlcnR5UmVsYXRpb25JZDoKLQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiV1 IFRPRE8iLCBvYmplY3QtPm9iamVjdElkKTsKLQkJCWJyZWFrOworCQkJeworCQkJCWNoYXIJICAg KnByb3BuYW1lOworCisJCQkJcHJvcG5hbWUgPSBnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUo b2JqZWN0LT5vYmplY3RJZCwgbWlzc2luZ19vayk7CisJCQkJaWYgKHByb3BuYW1lKQorCQkJCXsK KwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCBxdW90ZV9pZGVudGlmaWVyKHBy b3BuYW1lKSk7CisJCQkJCWlmIChvYmpuYW1lKQorCQkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2Ux KHByb3BuYW1lKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQl9CiAKIAkJY2FzZSBQdWJsaWNhdGlv blJlbGF0aW9uSWQ6CiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9w Z3JhcGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKaW5kZXgg YzI2OTc2YjJhMmEuLjY4YjgxZTFjODA3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9wcm9wZ3JhcGhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21k cy5jCkBAIC0xMTY2LDcgKzExNjYsNyBAQCBjaGVja19lbGVtZW50X3Byb3BlcnRpZXMoT2lkIHBl b2lkKQogCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCiAJCQkJCQkJCWVycm1zZygiZWxlbWVudCBcIiVzXCIgcHJvcGVydHkgXCIlc1wi IGV4cHJlc3Npb24gbWlzbWF0Y2g6ICVzIHZzLiAlcyIsCi0JCQkJCQkJCQkgICBOYW1lU3RyKGVs Zm9ybS0+cGdlYWxpYXMpLCBnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUocHJvcG9pZCksIGRw YSwgZHBiKSwKKwkJCQkJCQkJCSAgIE5hbWVTdHIoZWxmb3JtLT5wZ2VhbGlhcyksIGdldF9wcm9w Z3JhcGhfcHJvcGVydHlfbmFtZShwcm9wb2lkLCBmYWxzZSksIGRwYSwgZHBiKSwKIAkJCQkJCQkJ ZXJyZGV0YWlsKCJJbiBhIHByb3BlcnR5IGdyYXBoIGVsZW1lbnQsIGEgcHJvcGVydHkgb2YgdGhl IHNhbWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBleHByZXNzaW9uIGluIGVhY2ggbGFiZWwu IikpOwogCiAJCQkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUzKTsKQEAgLTEyODMsNyArMTI4Myw3 IEBAIGNoZWNrX2VsZW1lbnRfbGFiZWxfcHJvcGVydGllcyhPaWQgZWxsYWJlbG9pZCkKIAlpZiAo bGlzdF9sZW5ndGgocmVmcHJvcHMpICE9IGxpc3RfbGVuZ3RoKG15cHJvcHMpKQogCQllcmVwb3J0 KEVSUk9SLAogCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwK LQkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBwcm9wZXJ0aWVzIGluIGRlZmluaXRp b24gb2YgbGFiZWwgXCIlc1wiIiwgZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKGxhYmVsaWQpKSk7 CisJCQkJZXJybXNnKCJtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBpbiBkZWZpbml0 aW9uIG9mIGxhYmVsIFwiJXNcIiIsIGdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbGlkLCBm YWxzZSkpKTsKIAogCWRpZmYxID0gbGlzdF9kaWZmZXJlbmNlKG15cHJvcHMsIHJlZnByb3BzKTsK IAlkaWZmMiA9IGxpc3RfZGlmZmVyZW5jZShyZWZwcm9wcywgbXlwcm9wcyk7CkBAIC0xMjkxLDcg KzEyOTEsNyBAQCBjaGVja19lbGVtZW50X2xhYmVsX3Byb3BlcnRpZXMoT2lkIGVsbGFiZWxvaWQp CiAJaWYgKGRpZmYxIHx8IGRpZmYyKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKLQkJCQllcnJtc2coIm1pc21hdGNoaW5n IHByb3BlcnRpZXMgbmFtZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCBcIiVzXCIiLCBnZXRfcHJv cGdyYXBoX2xhYmVsX25hbWUobGFiZWxpZCkpKTsKKwkJCQllcnJtc2coIm1pc21hdGNoaW5nIHBy b3BlcnRpZXMgbmFtZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCBcIiVzXCIiLCBnZXRfcHJvcGdy YXBoX2xhYmVsX25hbWUobGFiZWxpZCwgZmFsc2UpKSk7CiB9CiAKIC8qCkBAIC0xODQ0LDcgKzE4 NDQsNyBAQCBnZXRfZWxlbWVudF9sYWJlbF9wcm9wZXJ0eV9uYW1lcyhPaWQgZWxsYWJlbG9pZCkK IAl7CiAJCUZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5IHBscGZvcm0gPSAoRm9ybV9w Z19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSk7CiAKLQkJcmVzdWx0 ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VTdHJpbmcoZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1l KHBscGZvcm0tPnBscHByb3BpZCkpKTsKKwkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VT dHJpbmcoZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCwgZmFs c2UpKSk7CiAJfQogCiAJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9j bGF1c2UuYwppbmRleCAyOWY1MThmNmFkYS4uYjljNDkzNGYzOTMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY2xhdXNlLmMKQEAgLTk1OSw3ICs5NTksNyBAQCB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZUdyYXBoVGFibGUgKnJndCkKIAkJZWxzZQogCQl7CiAJ CQlpZiAoSXNBKGNvbGV4cHIsIEdyYXBoUHJvcGVydHlSZWYpKQotCQkJCWNvbG5hbWUgPSBnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoY2FzdE5vZGUoR3JhcGhQcm9wZXJ0eVJlZiwgY29sZXhw ciktPnByb3BpZCk7CisJCQkJY29sbmFtZSA9IGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShj YXN0Tm9kZShHcmFwaFByb3BlcnR5UmVmLCBjb2xleHByKS0+cHJvcGlkLCBmYWxzZSk7CiAJCQll bHNlCiAJCQl7CiAJCQkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl d3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdy YXBoVGFibGUuYwppbmRleCA4MGUyOGRiNzUyZC4uYTJmNTg4NmZmZDEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYworKysgYi9zcmMvYmFja2VuZC9y ZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKQEAgLTk2NCw3ICs5NjQsNyBAQCBnZXRfcGF0aF9l bGVtZW50c19mb3JfcGF0aF9mYWN0b3IoT2lkIHByb3BncmFwaGlkLCBzdHJ1Y3QgcGF0aF9mYWN0 b3IgKnBmKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAogCQkJCQkJIGVycm1zZygiY2FuIG5vdCBmaW5kIGxhYmVsIFwiJXNcIiBp biBwcm9wZXJ0eSBncmFwaCBcIiVzXCIgZm9yIGVsZW1lbnQgdHlwZSBcIiVzXCIiLAotCQkJCQkJ CQlnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUobGFiZWxvaWQpLAorCQkJCQkJCQlnZXRfcHJvcGdy YXBoX2xhYmVsX25hbWUobGFiZWxvaWQsIGZhbHNlKSwKIAkJCQkJCQkJZ2V0X3JlbF9uYW1lKHBy b3BncmFwaGlkKSwKIAkJCQkJCQkJZ2V0X2dyYXBoX2VsZW1fa2luZF9uYW1lKHBmLT5raW5kKSkp KTsKIAkJfQpAQCAtMTEzMyw3ICsxMTMzLDcgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0 b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICoKIAog CQlpZiAoIW4pCiAJCQllbG9nKEVSUk9SLCAicHJvcGVydHkgXCIlc1wiIG9mIGVsZW1lbnQgdmFy aWFibGUgXCIlc1wiIG5vdCBmb3VuZCIsCi0JCQkJIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFt ZShncHItPnByb3BpZCksIG1hcHBpbmdfZmFjdG9yLT52YXJpYWJsZSk7CisJCQkJIGdldF9wcm9w Z3JhcGhfcHJvcGVydHlfbmFtZShncHItPnByb3BpZCwgZmFsc2UpLCBtYXBwaW5nX2ZhY3Rvci0+ dmFyaWFibGUpOwogCiAJCXJldHVybiBuOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpp bmRleCAyZTIzNzAyM2Q5NS4uY2EyOWNlNzQ2MDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKQEAgLTE4MDksNyArMTgwOSw3IEBAIG1ha2VfcHJvcGdyYXBoZGVmX2xhYmVscyhTdHJpbmdJ bmZvIGJ1ZiwgT2lkIGVsaWQsIGNvbnN0IGNoYXIgKmVsYWxpYXMsIE9pZCBlbHJlCiAJCUZvcm1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwgcGdlbGZvcm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhf ZWxlbWVudF9sYWJlbCkgR0VUU1RSVUNUKHR1cCk7CiAJCWNvbnN0IGNoYXIgKmxhYmVsbmFtZTsK IAotCQlsYWJlbG5hbWUgPSBnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUocGdlbGZvcm0tPnBnZWxs YWJlbGlkKTsKKwkJbGFiZWxuYW1lID0gZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKHBnZWxmb3Jt LT5wZ2VsbGFiZWxpZCwgZmFsc2UpOwogCiAJCWlmIChzdHJjbXAobGFiZWxuYW1lLCBlbGFsaWFz KSA9PSAwKQogCQl7CkBAIC0xODg1LDcgKzE4ODUsNyBAQCBtYWtlX3Byb3BncmFwaGRlZl9wcm9w ZXJ0aWVzKFN0cmluZ0luZm8gYnVmLCBPaWQgZWxsYWJlbGlkLCBPaWQgZWxyZWxpZCkKIAkJZXhw ciA9IHN0cmluZ1RvTm9kZSh0bXApOwogCQlwZnJlZSh0bXApOwogCi0JCXByb3BuYW1lID0gZ2V0 X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCk7CisJCXByb3BuYW1l ID0gZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCwgZmFsc2Up OwogCiAJCW91dGxpc3QgPSBsYXBwZW5kKG91dGxpc3QsIGxpc3RfbWFrZTIobWFrZVN0cmluZyhw cm9wbmFtZSksIGV4cHIpKTsKIAl9CkBAIC03ODcxLDcgKzc4NzEsNyBAQCBnZXRfZ3JhcGhfbGFi ZWxfZXhwcihOb2RlICpsYWJlbF9leHByLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCQl7 CiAJCQkJR3JhcGhMYWJlbFJlZiAqbHJlZiA9IChHcmFwaExhYmVsUmVmICopIGxhYmVsX2V4cHI7 CiAKLQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihnZXRf cHJvcGdyYXBoX2xhYmVsX25hbWUobHJlZi0+bGFiZWxpZCkpKTsKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUo bHJlZi0+bGFiZWxpZCwgZmFsc2UpKSk7CiAJCQkJYnJlYWs7CiAJCQl9CiAKQEAgLTExMDQ4LDcg KzExMDQ4LDcgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRleHQgKmNv bnRleHQsCiAJCQl7CiAJCQkJR3JhcGhQcm9wZXJ0eVJlZiAqZ3ByID0gKEdyYXBoUHJvcGVydHlS ZWYgKikgbm9kZTsKIAotCQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXMuJXMiLCBxdW90ZV9p ZGVudGlmaWVyKGdwci0+ZWx2YXJuYW1lKSwgcXVvdGVfaWRlbnRpZmllcihnZXRfcHJvcGdyYXBo X3Byb3BlcnR5X25hbWUoZ3ByLT5wcm9waWQpKSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICIlcy4lcyIsIHF1b3RlX2lkZW50aWZpZXIoZ3ByLT5lbHZhcm5hbWUpLCBxdW90ZV9pZGVudGlm aWVyKGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShncHItPnByb3BpZCwgZmFsc2UpKSk7CiAJ CQkJYnJlYWs7CiAJCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggZTUw YjY3MjExNTUuLjg0ZDhlZjMzYTdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpA QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3Jh cGhfcHJvcGVydHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCkBAIC0z NzQ1LDcgKzM3NDYsMjYgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBt aXNzaW5nX29rKQogfQogCiBjaGFyICoKLWdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShPaWQgbGFi ZWxvaWQpCitnZXRfcHJvcGdyYXBoX2VsZW1lbnRfYWxpYXNfbmFtZShPaWQgZWxlbW9pZCwgYm9v bCBtaXNzaW5nX29rKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwljaGFyCSAgICplbGVtbmFtZTsK KworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBlbGVtb2lkKTsKKwlp ZiAoIXR1cGxlKQorCXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIGVsZW1lbnQgJXUiLCBlbGVtb2lkKTsKKwkJcmV0dXJuIE5VTEw7 CisJfQorCWVsZW1uYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19wcm9wZ3JhcGhfZWxl bWVudCkgR0VUU1RSVUNUKHR1cGxlKSktPnBnZWFsaWFzKSk7CisJUmVsZWFzZVN5c0NhY2hlKHR1 cGxlKTsKKworCXJldHVybiBlbGVtbmFtZTsKK30KKworY2hhciAqCitnZXRfcHJvcGdyYXBoX2xh YmVsX25hbWUoT2lkIGxhYmVsb2lkLCBib29sIG1pc3Npbmdfb2spCiB7CiAJSGVhcFR1cGxlCXR1 cGxlOwogCWNoYXIJICAgKmxhYmVsbmFtZTsKQEAgLTM3NTMsNyArMzc3Myw4IEBAIGdldF9wcm9w Z3JhcGhfbGFiZWxfbmFtZShPaWQgbGFiZWxvaWQpCiAJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEo UFJPUEdSQVBITEFCRUxPSUQsIGxhYmVsb2lkKTsKIAlpZiAoIXR1cGxlKQogCXsKLQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGxhYmVsICV1IiwgbGFiZWxvaWQpOworCQlp ZiAoIW1pc3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig bGFiZWwgJXUiLCBsYWJlbG9pZCk7CiAJCXJldHVybiBOVUxMOwogCX0KIAlsYWJlbG5hbWUgPSBw c3RyZHVwKE5hbWVTdHIoKChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCkgR0VUU1RSVUNUKHR1cGxl KSktPnBnbGxhYmVsKSk7CkBAIC0zNzYzLDcgKzM3ODQsNyBAQCBnZXRfcHJvcGdyYXBoX2xhYmVs X25hbWUoT2lkIGxhYmVsb2lkKQogfQogCiBjaGFyICoKLWdldF9wcm9wZ3JhcGhfcHJvcGVydHlf bmFtZShPaWQgcHJvcG9pZCkKK2dldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShPaWQgcHJvcG9p ZCwgYm9vbCBtaXNzaW5nX29rKQogewogCUhlYXBUdXBsZQl0dXBsZTsKIAljaGFyCSAgICpwcm9w bmFtZTsKQEAgLTM3NzEsNyArMzc5Miw4IEBAIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShP aWQgcHJvcG9pZCkKIAl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhQUk9QT0lELCBw cm9wb2lkKTsKIAlpZiAoIXR1cGxlKQogCXsKLQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIHByb3BlcnR5ICV1IiwgcHJvcG9pZCk7CisJCWlmICghbWlzc2luZ19vaykKKwkJ CWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSAldSIsIHByb3Bv aWQpOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAJcHJvcG5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKChG b3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlKSktPnBncG5hbWUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggZTJkNzU4ZjFjOTcuLmVkNDAzNzM0ZGFmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaApAQCAtMjA3LDggKzIwNyw5IEBAIGV4dGVybiBjaGFyICpnZXRfcHVibGlj YXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9z dWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBl eHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5n X29rKTsKIAotZXh0ZXJuIGNoYXIgKmdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShPaWQgbGFiZWxv aWQpOwotZXh0ZXJuIGNoYXIgKmdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShPaWQgcHJvcG9p ZCk7CitleHRlcm4gY2hhciAqZ2V0X3Byb3BncmFwaF9lbGVtZW50X2FsaWFzX25hbWUoT2lkIGVs ZW1vaWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gY2hhciAqZ2V0X3Byb3BncmFwaF9sYWJl bF9uYW1lKE9pZCBsYWJlbG9pZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBjaGFyICpnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoT2lkIHByb3BvaWQsIGJvb2wgbWlzc2luZ19vayk7CiAK ICNkZWZpbmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAh PSBJbnZhbGlkT2lkKQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWlu IGFycmF5cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0CmluZGV4IDQxYTg5YTI3MDhm Li40NzRlNzY0YWI4YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfcHJvcGVydHlfZ3JhcGgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX3Byb3BlcnR5X2dyYXBoLm91dApAQCAtMjIsNiArMjIsNDIgQEAgQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGcyCiAgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQog ICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQzICh4LCB5KQog ICAgICk7CistLSB0ZXN0IG9iamVjdCBhZGRyZXNzZXMKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmpl Y3RfYXNfYWRkcmVzcygncGdfcHJvcGdyYXBoX2VsZW1lbnQnOjpyZWdjbGFzcywgb2lkLCAwKSBG Uk9NIHBnX3Byb3BncmFwaF9lbGVtZW50OworICAgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJl c3MgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoInByb3BlcnR5 IGdyYXBoIGVsZW1lbnQiLHt0MX0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBlbGVtZW50Iix7dDJ9 LHt9KQorICgicHJvcGVydHkgZ3JhcGggZWxlbWVudCIse3QzfSx7fSkKKyAoInByb3BlcnR5IGdy YXBoIGVsZW1lbnQiLHtlMX0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBlbGVtZW50Iix7ZTJ9LHt9 KQorKDUgcm93cykKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKCdwZ19w cm9wZ3JhcGhfbGFiZWwnOjpyZWdjbGFzcywgb2lkLCAwKSBGUk9NIHBnX3Byb3BncmFwaF9sYWJl bDsKKyAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCJwcm9wZXJ0eSBncmFwaCBsYWJlbCIse3QxfSx7fSkK KyAoInByb3BlcnR5IGdyYXBoIGxhYmVsIix7dDJ9LHt9KQorICgicHJvcGVydHkgZ3JhcGggbGFi ZWwiLHt0M2wxfSx7fSkKKyAoInByb3BlcnR5IGdyYXBoIGxhYmVsIix7dDNsMn0se30pCisgKCJw cm9wZXJ0eSBncmFwaCBsYWJlbCIse2UxfSx7fSkKKyAoInByb3BlcnR5IGdyYXBoIGxhYmVsIix7 ZTJ9LHt9KQorKDYgcm93cykKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNz KCdwZ19wcm9wZ3JhcGhfcHJvcGVydHknOjpyZWdjbGFzcywgb2lkLCAwKSBGUk9NIHBnX3Byb3Bn cmFwaF9wcm9wZXJ0eTsKKyAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCJwcm9wZXJ0eSBncmFwaCBwcm9w ZXJ0eSIse2F9LHt9KQorICgicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLHtifSx7fSkKKyAoInBy b3BlcnR5IGdyYXBoIHByb3BlcnR5Iix7aX0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBwcm9wZXJ0 eSIse2p9LHt9KQorICgicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLHtrfSx7fSkKKyAoInByb3Bl cnR5IGdyYXBoIHByb3BlcnR5Iix7eH0se30pCisgKCJwcm9wZXJ0eSBncmFwaCBwcm9wZXJ0eSIs e3l9LHt9KQorICgicHJvcGVydHkgZ3JhcGggcHJvcGVydHkiLHt6fSx7fSkKKyAoInByb3BlcnR5 IGdyYXBoIHByb3BlcnR5Iix7dH0se30pCisoOSByb3dzKQorCiAtLSB0ZXN0IGRlcGVuZGVuY2ll cy9vYmplY3QgZGVzY3JpcHRpb25zCiBEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAogRVJST1I6ICBj YW5ub3QgZHJvcCB0YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0CmluZGV4IDQzMmJh NDcxZmUzLi4zYWJiNjU4ZGUxNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vYmplY3RfYWRkcmVzcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmpl Y3RfYWRkcmVzcy5vdXQKQEAgLTU4OCw2ICs1ODgsOSBAQCBXSVRIIG9iamVjdHMgKGNsYXNzaWQs IG9iamlkLCBvYmpzdWJpZCkgQVMgKFZBTFVFUwogICAgICgncGdfZXZlbnRfdHJpZ2dlcic6OnJl Z2NsYXNzLCAwLCAwKSwgLS0gbm8gZXZlbnQgdHJpZ2dlcgogICAgICgncGdfcGFyYW1ldGVyX2Fj bCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcGFyYW1ldGVyIEFDTAogICAgICgncGdfcG9saWN5 Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwb2xpY3kKKyAgICAoJ3BnX3Byb3BncmFwaF9lbGVt ZW50Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwcm9wZXJ0eSBncmFwaCBlbGVtZW50CisgICAg KCdwZ19wcm9wZ3JhcGhfbGFiZWwnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHByb3BlcnR5IGdy YXBoIGxhYmVsCisgICAgKCdwZ19wcm9wZ3JhcGhfcHJvcGVydHknOjpyZWdjbGFzcywgMCwgMCks IC0tIG5vIHByb3BlcnR5IGdyYXBoIHByb3BlcnR5CiAgICAgKCdwZ19wdWJsaWNhdGlvbic6OnJl Z2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24KICAgICAoJ3BnX3B1YmxpY2F0aW9uX25h bWVzcGFjZSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24gbmFtZXNwYWNlCiAg ICAgKCdwZ19wdWJsaWNhdGlvbl9yZWwnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0 aW9uIHJlbGF0aW9uCkBAIC02NDQsNSArNjQ3LDggQEAgT1JERVIgQlkgb2JqZWN0cy5jbGFzc2lk LCBvYmplY3RzLm9iamlkLCBvYmplY3RzLm9ianN1YmlkOwogKCIoIiJwdWJsaWNhdGlvbiByZWxh dGlvbiIiLCwsKSIpfCgiKCIicHVibGljYXRpb24gcmVsYXRpb24iIiwsKSIpfE5VTEwKICgiKCIi cHVibGljYXRpb24gbmFtZXNwYWNlIiIsLCwpIil8KCIoIiJwdWJsaWNhdGlvbiBuYW1lc3BhY2Ui IiwsKSIpfE5VTEwKICgiKCIicGFyYW1ldGVyIEFDTCIiLCwsKSIpfCgiKCIicGFyYW1ldGVyIEFD TCIiLCwpIil8TlVMTAorKCIoIiJwcm9wZXJ0eSBncmFwaCBlbGVtZW50IiIsLCwpIil8KCIoIiJw cm9wZXJ0eSBncmFwaCBlbGVtZW50IiIsLCkiKXxOVUxMCisoIigiInByb3BlcnR5IGdyYXBoIGxh YmVsIiIsLCwpIil8KCIoIiJwcm9wZXJ0eSBncmFwaCBsYWJlbCIiLCwpIil8TlVMTAorKCIoIiJw cm9wZXJ0eSBncmFwaCBwcm9wZXJ0eSIiLCwsKSIpfCgiKCIicHJvcGVydHkgZ3JhcGggcHJvcGVy dHkiIiwsKSIpfE5VTEwKIC0tIHJlc3RvcmUgbm9ybWFsIG91dHB1dCBtb2RlCiBcYVx0CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbAppbmRleCA5YTFm ZTRmYzZkZS4uMGE5YjZhODAyZmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X3Byb3BlcnR5X2dyYXBoLnNxbApAQCAtMjksNiArMjksMTEgQEAgQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGcyCiAgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMg KHgsIHkpCiAgICAgKTsKIAorLS0gdGVzdCBvYmplY3QgYWRkcmVzc2VzCitTRUxFQ1QgcGdfaWRl bnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoJ3BnX3Byb3BncmFwaF9lbGVtZW50Jzo6cmVnY2xhc3Ms IG9pZCwgMCkgRlJPTSBwZ19wcm9wZ3JhcGhfZWxlbWVudDsKK1NFTEVDVCBwZ19pZGVudGlmeV9v YmplY3RfYXNfYWRkcmVzcygncGdfcHJvcGdyYXBoX2xhYmVsJzo6cmVnY2xhc3MsIG9pZCwgMCkg RlJPTSBwZ19wcm9wZ3JhcGhfbGFiZWw7CitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2Fk ZHJlc3MoJ3BnX3Byb3BncmFwaF9wcm9wZXJ0eSc6OnJlZ2NsYXNzLCBvaWQsIDApIEZST00gcGdf cHJvcGdyYXBoX3Byb3BlcnR5OworCiAtLSB0ZXN0IGRlcGVuZGVuY2llcy9vYmplY3QgZGVzY3Jp cHRpb25zCiAKIERST1AgVEFCTEUgdDE7ICAtLSBmYWlsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmpl Y3RfYWRkcmVzcy5zcWwKaW5kZXggOTNmOWY5YzcwNGYuLmU2MDEwYjNiZjNmIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCkBAIC0yODAsNiArMjgwLDkgQEAgV0lUSCBv YmplY3RzIChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX2V2 ZW50X3RyaWdnZXInOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2ZW50IHRyaWdnZXIKICAgICAo J3BnX3BhcmFtZXRlcl9hY2wnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHBhcmFtZXRlciBBQ0wK ICAgICAoJ3BnX3BvbGljeSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5CisgICAgKCdw Z19wcm9wZ3JhcGhfZWxlbWVudCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHJvcGVydHkgZ3Jh cGggZWxlbWVudAorICAgICgncGdfcHJvcGdyYXBoX2xhYmVsJzo6cmVnY2xhc3MsIDAsIDApLCAt LSBubyBwcm9wZXJ0eSBncmFwaCBsYWJlbAorICAgICgncGdfcHJvcGdyYXBoX3Byb3BlcnR5Jzo6 cmVnY2xhc3MsIDAsIDApLCAtLSBubyBwcm9wZXJ0eSBncmFwaCBwcm9wZXJ0eQogICAgICgncGdf cHVibGljYXRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uCiAgICAgKCdw Z19wdWJsaWNhdGlvbl9uYW1lc3BhY2UnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0 aW9uIG5hbWVzcGFjZQogICAgICgncGdfcHVibGljYXRpb25fcmVsJzo6cmVnY2xhc3MsIDAsIDAp LCAtLSBubyBwdWJsaWNhdGlvbiByZWxhdGlvbgotLSAKMi4zOS41Cgo= --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0010-adapt-property-graph-to-more-intuitive-titles.patch" Content-Disposition: attachment; filename="v10-0010-adapt-property-graph-to-more-intuitive-titles.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ionz2 RnJvbSAyOTA1ZmI5NzJjYWYzNTI2MGUyM2JmZWZjMWMzNTYyNzliMjg3YzhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdW53YW5nIFpoYW8gPHpoandwa3VAZ21haWwuY29tPgpEYXRl OiBGcmksIDcgRmViIDIwMjUgMTQ6NTc6NTIgKzAwMDAKU3ViamVjdDogW1BBVENIIHYxMCAxMC8x Ml0gYWRhcHQgcHJvcGVydHkgZ3JhcGggdG8gbW9yZS1pbnR1aXRpdmUgdGl0bGVzCgotLS0KIHNy Yy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDYgKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQg fCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggMTI0YTc0OWFlZDguLjU3NTFhMjI4MTE4IDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNDI1Nyw2 ICs0MjU3LDkgQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0YWJ0eXBlcywgY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMKIAkJCWVsc2UgaWYgKHNob3dGb3Jl aWduKQogCQkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBmb3JlaWduIHRhYmxlcyBu YW1lZCBcIiVzXCIuIiwKIAkJCQkJCQkgcGF0dGVybik7CisJCQllbHNlIGlmIChzaG93UHJvcEdy YXBocykKKwkJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgcHJvcGVydHkgZ3JhcGhz IG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJCSBwYXR0ZXJuKTsKIAkJCWVsc2UJCQkJLyogc2hvdWxk IG5vdCBnZXQgaGVyZSAqLwogCQkJCXBnX2xvZ19lcnJvcl9pbnRlcm5hbCgiRGlkIG5vdCBmaW5k IGFueSA/Pz8gbmFtZWQgXCIlc1wiLiIsCiAJCQkJCQkJCQkgIHBhdHRlcm4pOwpAQCAtNDI3Nyw2 ICs0MjgwLDggQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0YWJ0eXBlcywgY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMKIAkJCQlwZ19sb2dfZXJyb3IoIkRp ZCBub3QgZmluZCBhbnkgc2VxdWVuY2VzLiIpOwogCQkJZWxzZSBpZiAoc2hvd0ZvcmVpZ24pCiAJ CQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IGZvcmVpZ24gdGFibGVzLiIpOworCQkJ ZWxzZSBpZiAoc2hvd1Byb3BHcmFwaHMpCisJCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQg YW55IHByb3BlcnR5IGdyYXBocy4iKTsKIAkJCWVsc2UJCQkJLyogc2hvdWxkIG5vdCBnZXQgaGVy ZSAqLwogCQkJCXBnX2xvZ19lcnJvcl9pbnRlcm5hbCgiRGlkIG5vdCBmaW5kIGFueSA/Pz8gcmVs YXRpb25zLiIpOwogCQl9CkBAIC00MjkxLDYgKzQyOTYsNyBAQCBsaXN0VGFibGVzKGNvbnN0IGNo YXIgKnRhYnR5cGVzLCBjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hv d1N5cwogCQkJKHNob3dNYXRWaWV3cykgPyBfKCJMaXN0IG9mIG1hdGVyaWFsaXplZCB2aWV3cyIp IDoKIAkJCShzaG93U2VxKSA/IF8oIkxpc3Qgb2Ygc2VxdWVuY2VzIikgOgogCQkJKHNob3dGb3Jl aWduKSA/IF8oIkxpc3Qgb2YgZm9yZWlnbiB0YWJsZXMiKSA6CisJCQkoc2hvd1Byb3BHcmFwaHMp ID8gXygiTGlzdCBvZiBwcm9wZXJ0eSBncmFwaHMiKSA6CiAJCQkiTGlzdCBvZiA/Pz8iOwkJLyog c2hvdWxkIG5vdCBnZXQgaGVyZSAqLwogCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsK IAkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAppbmRl eCA4MjQ2OTUzNThmOC4uNDFhODlhMjcwOGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTY0NSw3ICs2NDUsNyBAQCBT RUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZigncGdfdHlwZSc6OnJlZ2NsYXNzKTsgIC0tIGVycm9y CiBFUlJPUjogICJwZ190eXBlIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaAogXGFcdAogXGRHIGcx Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcmVsYXRpb25zCisgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHJvcGVydHkgZ3JhcGhzCiAgICAgICAgICAgIFNj aGVtYSAgICAgICAgICAgIHwgTmFtZSB8ICAgICAgVHlwZSAgICAgIHwgICAgICAgIE93bmVyICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGcxICAgfCBwcm9wZXJ0eSBncmFwaCB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjEKLS0gCjIuMzkuNQoK --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0008-Document-fixes.patch" Content-Disposition: attachment; filename="v10-0008-Document-fixes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioo64 RnJvbSBjNzU0ZTUxYjI2MTNjZWVmNmQ5NmE3MmVkZGIxNzdkMmY1ODEwZTZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAxIEphbiAyMDI1IDE0OjAyOjI4ICswNTMwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDgvMTJdIERvY3VtZW50IGZpeGVzCgpBc3NvcnRlZCBncmFtbWFyIGFuZCB0eXBv IGZpeGVzLgoKQXV0aG9yOiBKdW53YW5nIFpob3UKUmV2aWV3ZWQgd2l0aCBtaW5vciBhZGp1c3Rt ZW50cyBieTogQXNodXRvc2ggQmFwYXQKLS0tCiBkb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2No ZW1hLnNnbWwgICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3Byb3BlcnR5X2dyYXBoLnNnbWwgIHwgIDIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwgfCAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3By b3BlcnR5X2dyYXBoLnNnbWwgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlv bnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmZvcm1h dGlvbl9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbApp bmRleCBlNjU2MTU0M2Y2Mi4uNTliOTU2ZTU4MDcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9p bmZvcm1hdGlvbl9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2No ZW1hLnNnbWwKQEAgLTQyMjcsNyArNDIyNyw3IEBAIE9SREVSIEJZIGMub3JkaW5hbF9wb3NpdGlv bjsKICAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+ Ci0gICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgICBOYW1lIG9mIHRoZSBw cm9wZXJ0eSBncmFwaAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC00 MzQ2LDcgKzQzNDYsNyBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRpb247CiAgICAgICAgPHN0 cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRl bnRpZmllcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE5hbWUg b2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZ3JhcGgK ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtNDQzMCw3ICs0NDMwLDcg QEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9w ZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+ CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0 eV9ncmFwaAorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGdyYXBoCiAgICAgICA8L3BhcmE+ PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKQEAgLTQ1MDUsNyArNDUwNSw3IEBAIE9SREVSIEJZIGMu b3JkaW5hbF9wb3NpdGlvbjsKICAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgogICAgICAgPC9wYXJh PgogICAgICAgPHBhcmE+Ci0gICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAg ICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBncmFwaAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgogCkBAIC00NTg5LDcgKzQ1ODksNyBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRp b247CiAgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0cnVjdGZpZWxk PiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJh PgotICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICAgTmFtZSBvZiB0aGUg cHJvcGVydHkgZ3JhcGgKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAt NDcwMCw3ICs0NzAwLDcgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICAgICAgIDxz dHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lk ZW50aWZpZXI8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBOYW1l IG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGdyYXBo CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKQEAgLTQ3NzQsNyArNDc3NCw3 IEBAIE9SREVSIEJZIGMub3JkaW5hbF9wb3NpdGlvbjsKICAgICAgICA8c3RydWN0ZmllbGQ+cHJv cGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBl PgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgTmFtZSBvZiB0aGUgcHJvcGVy dHlfZ3JhcGgKKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBncmFwaAogICAgICAgPC9wYXJh PjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBAIC00ODM5LDcgKzQ4MzksNyBAQCBPUkRFUiBCWSBj Lm9yZGluYWxfcG9zaXRpb247CiAgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25h bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KICAgICAgIDwvcGFy YT4KICAgICAgIDxwYXJhPgotICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAg ICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZ3JhcGgKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAg ICA8L3Jvdz4KIApAQCAtNTI1NSw3ICs1MjU1LDcgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0 aW9uOwogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFy YT4KLSAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgIE5hbWUgb2YgdGhl IHByb3BlcnR5IGdyYXBoCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAg PC90Ym9keT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3Jh cGguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbAppbmRl eCA2MDRjNTE4MDExNy4uNGFlNTNkZWIwOTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3By b3BlcnR5X2dyYXBoLnNnbWwKQEAgLTk5LDcgKzk5LDcgQEAgQUxURVIgUFJPUEVSVFkgR1JBUEgg WyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWEKICAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVIge1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05T SElQfSBUQUJMRSAuLi4gRFJPUCBMQUJFTDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgIDxsaXN0aXRl bT4KICAgICAgIDxwYXJhPgotICAgICAgIFRoaXMgZm9ybSByZW1vdmVzIGEgbmV3IGxhYmVsIGZy b20gYW4gZXhpc3RpbmcgdmVydGV4IG9yIGVkZ2UgdGFibGUuCisgICAgICAgVGhpcyBmb3JtIHJl bW92ZXMgYSBsYWJlbCBmcm9tIGFuIGV4aXN0aW5nIHZlcnRleCBvciBlZGdlIHRhYmxlLgogICAg ICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKaW5kZXggYWUzMDFiNTJlMGEu Ljc2YmZlZjMxN2FmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9wZXJ0 eV9ncmFwaC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBo LnNnbWwKQEAgLTE1MSw3ICsxNTEsNyBAQCBDUkVBVEUgWyBURU1QIHwgVEVNUE9SQVJZIF0gUFJP UEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8LwogICAgIDxs aXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBUaGUgdmVydGV4IHRhYmxlcyB0aGF0IHRoZSBl ZGdlIHRhYmxlIGlzIGxpbmtlZCB0by4gIFRoZXNlIHJlZmVyIHRvIHRoZQotICAgICAgYWxpYXNl cyBvZiBhIHRoZSB2ZXJ0ZXggdGFibGUuCisgICAgICBhbGlhc2VzIG9mIHRoZSBzb3VyY2UgYW5k IGRlc3RpbmF0aW9uIHZlcnRleCB0YWJsZXMgcmVzcGVjdGl2ZWx5LgogICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9kcm9wX3Byb3BlcnR5X2dyYXBoLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3Bf cHJvcGVydHlfZ3JhcGguc2dtbAppbmRleCAzMWNiNzdhMmFmMS4uZTE2ZGU1NTA3YjEgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCkBAIC05Niw3ICs5Niw3IEBA IERST1AgUFJPUEVSVFkgR1JBUEggZzE7CiAgICA8Y29tbWFuZD5EUk9QIFBST1BFUlRZIEdSQVBI PC9jb21tYW5kPiBjb25mb3JtcyB0byBJU08vSUVDIDkwNzUtMTYKICAgIChTUUwvUEdRKSwgZXhj ZXB0IHRoYXQgdGhlIHN0YW5kYXJkIG9ubHkgYWxsb3dzIG9uZSBwcm9wZXJ0eSBncmFwaCB0byBi ZQogICAgZHJvcHBlZCBwZXIgY29tbWFuZCwgYW5kIGFwYXJ0IGZyb20gdGhlIDxsaXRlcmFsPklG IEVYSVNUUzwvbGl0ZXJhbD4KLSAgIG9wdGlvbiwgd2hpY2ggaXMgYSA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4uCisgICBvcHRpb24sIHdoaWNoIGlzIGEg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCiAgIDwvcGFy YT4KICA8L3JlZnNlY3QxPgogCi0tIAoyLjM5LjUKCg== --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0009-WIP-Do-not-print-empty-columns-table-for-a-prope.patch" Content-Disposition: attachment; filename="v10-0009-WIP-Do-not-print-empty-columns-table-for-a-prope.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioo33 RnJvbSBhYmRjZWU3NjI5OWZkNGQxNzE2ODRkNDhiMmM4YTZiZmQ1ODYzYmY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCA1IERlYyAyMDI0IDE0OjMxOjM2ICswNTMwClN1YmplY3Q6IFtQ QVRDSCB2MTAgMDkvMTJdIFdJUDogRG8gbm90IHByaW50IGVtcHR5IGNvbHVtbnMgdGFibGUgZm9y IGEKIHByb3BlcnR5IGdyYXBoCgpBIHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IGhhdmUgYW55IGNv bHVtbnMgYnkgaXRzZWxmLiBUaHVzIGl0IGRvZXNuJ3QKbmVlZCB0aGUgdGFibGUgZGVzY3JpYmlu ZyBjb2x1bW5zIGluIFxkWytdIG91dHB1dC4KClRoZSBwYXRjaCBuZWVkcyBmb2xsb3dpbmcgd29y awoxLiBNb3ZlIHRoZSBjb2RlIHRvIGNvbGxlY3QgY29sdW1uIGluZm9ybWF0aW9uIGluIGEgc2Vw YXJhdGUgZnVuY3Rpb24sCiAgIHdoaWNoIGNhbiBiZSBza2lwcGVkIGZvciBwcm9wZXJ0eSBncmFw aHMuIFRoaXMgYXZvaWRzIG9uZSBpbmRlbnRhdGlvbgogICBsZXZlbCBhbmQgbWFrZXMgZGVzY3Jp YmVPbmVUYWJsZURldGFpbHMoKSBlYXN5IHRvIGZvbGxvdy4KMi4gRXZlbiB0aG91Z2ggdGhlIGJv cmRlcnMgYXJlIHN1cHByZXNzZWQgdGhlcmUgaXMgYW4gZXh0cmEgYmxhbmsgbGluZQogICBpbiBc ZCBvdXRwdXQuIEF2b2lkIHRoYXQuIEl0IHJlcXVpcmVzIHNvbWUgYWRqdXN0bWVudCB0bwogICBw cmludFRhYmxlT3B0IG9yIHNvbWUgbWluaW9uIG9mIHByaW50VGFibGUgdG8gYXZvaWQgcHJpbnRp bmcKICAgZXZlcnl0aGluZyByZWxhdGVkIHRvIGNvbHVtbiBkZXNjcmlwdGlvbiB0YWJsZS4KCiAg IE9SCgpJZiB3ZSBkZWNpZGUgdGhhdCB3ZSB3YW50IHRvIG91dHB1dCBhIGRpZmZlcmVudCBkZXNj cmlwdGlvbiAobGlrZQpzZXF1ZW5jZXMpIHdlIG5lZWQgdG8gZGVjaWRlIHdoYXQgdGhhdCBkZXNj cmlwdGlvbiBzaG91bGQgYmUgYW5kIHRoZW4KaW1wbGVtZW50IHRoZSBzYW1lLgoKQXNodXRvc2gg QmFwYXQKLS0tCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAg fCAzMDcgKysrKysrKysrLS0tLS0tLS0tCiAuLi4vZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dy YXBoLm91dCAgICAgICAgfCAgIDYgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMo KyksIDE0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDlhMzRiZTViNmMxLi4xMjRhNzQ5YWVk OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKQEAgLTE4NzMsMTI4ICsxODczLDYgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJZ290byBlcnJvcl9yZXR1cm47CQkvKiBub3Qg YW4gZXJyb3IsIGp1c3QgcmV0dXJuIGVhcmx5ICovCiAJfQogCi0JLyogSWRlbnRpZnkgd2hldGhl ciB3ZSBzaG91bGQgcHJpbnQgY29sbGF0aW9uLCBudWxsYWJsZSwgZGVmYXVsdCB2YWxzICovCi0J aWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJdGFibGVpbmZv LnJlbGtpbmQgPT0gUkVMS0lORF9WSUVXIHx8Ci0JCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfTUFUVklFVyB8fAotCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFC TEUgfHwKLQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSB8fAot CQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQotCQlzaG93 X2NvbHVtbl9kZXRhaWxzID0gdHJ1ZTsKLQotCS8qCi0JICogR2V0IHBlci1jb2x1bW4gaW5mbwot CSAqCi0JICogU2luY2UgdGhlIHNldCBvZiBxdWVyeSBjb2x1bW5zIHdlIG5lZWQgdmFyaWVzIGRl cGVuZGluZyBvbiByZWxraW5kIGFuZAotCSAqIHNlcnZlciB2ZXJzaW9uLCB3ZSBjb21wdXRlIGFs bCB0aGUgY29sdW1uIG51bWJlcnMgb24tdGhlLWZseS4gIENvbHVtbgotCSAqIG51bWJlciB2YXJp YWJsZXMgZm9yIGNvbHVtbnMgbm90IGZldGNoZWQgYXJlIGxlZnQgYXMgLTE7IHRoaXMgYXZvaWRz Ci0JICogZHVwbGljYXRpdmUgdGVzdCBsb2dpYyBiZWxvdy4KLQkgKi8KLQljb2xzID0gMDsKLQlw cmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEuYXR0bmFtZSIpOwotCWF0dG5hbWVfY29s ID0gY29scysrOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cu Zm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7Ci0JYXR0dHlwZV9jb2wgPSBj b2xzKys7Ci0KLQlpZiAoc2hvd19jb2x1bW5fZGV0YWlscykKLQl7Ci0JCS8qIHVzZSAicHJldHR5 IiBtb2RlIGZvciBleHByZXNzaW9uIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBwYXJlbnRoZXNlcyAqLwot CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAotCQkJCQkJCSAiLFxuICAoU0VMRUNUIHBnX2Nh dGFsb2cucGdfZ2V0X2V4cHIoZC5hZGJpbiwgZC5hZHJlbGlkLCB0cnVlKSIKLQkJCQkJCQkgIlxu ICAgRlJPTSBwZ19jYXRhbG9nLnBnX2F0dHJkZWYgZCIKLQkJCQkJCQkgIlxuICAgV0hFUkUgZC5h ZHJlbGlkID0gYS5hdHRyZWxpZCBBTkQgZC5hZG51bSA9IGEuYXR0bnVtIEFORCBhLmF0dGhhc2Rl ZikiCi0JCQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOwotCQlhdHRyZGVmX2NvbCA9IGNvbHMr KzsKLQkJYXR0bm90bnVsbF9jb2wgPSBjb2xzKys7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9u IGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCi0JCQkJCQkJICIgICBXSEVSRSBjLm9pZCA9IGEu YXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IGEuYXR0dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+ IHQudHlwY29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKLQkJYXR0Y29sbF9jb2wgPSBjb2xz Kys7Ci0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsICIsXG4gIGEuYXR0aWRlbnRpdHkiKTsKLQkJZWxzZQotCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFsb2cuY2hhciBBUyBhdHRpZGVudGl0eSIp OwotCQlhdHRpZGVudGl0eV9jb2wgPSBjb2xzKys7Ci0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDEy MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0Z2VuZXJhdGVk Iik7Ci0JCWVsc2UKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gICcnOjpwZ19j YXRhbG9nLmNoYXIgQVMgYXR0Z2VuZXJhdGVkIik7Ci0JCWF0dGdlbmVyYXRlZF9jb2wgPSBjb2xz Kys7Ci0JfQotCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8Ci0JCXRh YmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpCi0JewotCQlpZiAo cHNldC5zdmVyc2lvbiA+PSAxMTAwMDApCi0JCXsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs ICIsXG4gIENBU0UgV0hFTiBhLmF0dG51bSA8PSAoU0VMRUNUIGkuaW5kbmtleWF0dHMgRlJPTSBw Z19jYXRhbG9nLnBnX2luZGV4IGkgV0hFUkUgaS5pbmRleHJlbGlkID0gJyVzJykgVEhFTiAnJXMn IEVMU0UgJyVzJyBFTkQgQVMgaXNfa2V5IiwKLQkJCQkJCQkgIG9pZCwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgieWVzIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIm5vIikpOwotCQkJaXNpbmRl eGtleV9jb2wgPSBjb2xzKys7Ci0JCX0KLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixc biAgcGdfY2F0YWxvZy5wZ19nZXRfaW5kZXhkZWYoYS5hdHRyZWxpZCwgYS5hdHRudW0sIFRSVUUp IEFTIGluZGV4ZGVmIik7Ci0JCWluZGV4ZGVmX2NvbCA9IGNvbHMrKzsKLQl9Ci0JLyogRkRXIG9w dGlvbnMgZm9yIGZvcmVpZ24gdGFibGUgY29sdW1uICovCi0JaWYgKHRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKLQl7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICIsXG4gIENBU0UgV0hFTiBhdHRmZHdvcHRpb25zIElTIE5VTEwgVEhFTiAnJyBFTFNFICIK LQkJCQkJCQkgIiAgJygnIHx8IHBnX2NhdGFsb2cuYXJyYXlfdG9fc3RyaW5nKEFSUkFZKFNFTEVD VCBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KG9wdGlvbl9uYW1lKSB8fCAnICcgfHwgcGdfY2F0YWxv Zy5xdW90ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIEZST00gIgotCQkJCQkJCSAiICBwZ19jYXRh bG9nLnBnX29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0aW9ucykpLCAnLCAnKSB8fCAnKScgRU5E IEFTIGF0dGZkd29wdGlvbnMiKTsKLQkJZmR3b3B0c19jb2wgPSBjb2xzKys7Ci0JfQotCWlmICh2 ZXJib3NlKQotCXsKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgYS5hdHRzdG9y YWdlIik7Ci0JCWF0dHN0b3JhZ2VfY29sID0gY29scysrOwotCi0JCS8qIGNvbXByZXNzaW9uIGlu Zm8sIGlmIHJlbGV2YW50IHRvIHJlbGtpbmQgKi8KLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQw MDAwICYmCi0JCQkhcHNldC5oaWRlX2NvbXByZXNzaW9uICYmCi0JCQkodGFibGVpbmZvLnJlbGtp bmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAotCQkJIHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUgfHwKLQkJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5E X01BVFZJRVcpKQotCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0 dGNvbXByZXNzaW9uIEFTIGF0dGNvbXByZXNzaW9uIik7Ci0JCQlhdHRjb21wcmVzc2lvbl9jb2wg PSBjb2xzKys7Ci0JCX0KLQotCQkvKiBzdGF0cyB0YXJnZXQsIGlmIHJlbGV2YW50IHRvIHJlbGtp bmQgKi8KLQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJ CXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKLQkJCXRhYmxlaW5mby5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVggfHwKLQkJCXRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfTUFUVklFVyB8fAotCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9G T1JFSUdOX1RBQkxFIHx8Ci0JCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElP TkVEX1RBQkxFKQotCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBDQVNF IFdIRU4gYS5hdHRzdGF0dGFyZ2V0PS0xIFRIRU4gTlVMTCBFTFNFIGEuYXR0c3RhdHRhcmdldCBF TkQgQVMgYXR0c3RhdHRhcmdldCIpOwotCQkJYXR0c3RhdHRhcmdldF9jb2wgPSBjb2xzKys7Ci0J CX0KLQotCQkvKgotCQkgKiBJbiA5LjArLCB3ZSBoYXZlIGNvbHVtbiBjb21tZW50cyBmb3I6IHJl bGF0aW9ucywgdmlld3MsIGNvbXBvc2l0ZQotCQkgKiB0eXBlcywgYW5kIGZvcmVpZ24gdGFibGVz IChjZi4gQ29tbWVudE9iamVjdCgpIGluIGNvbW1lbnQuYykuCi0JCSAqLwotCQlpZiAodGFibGVp bmZvLnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAotCQkJdGFibGVpbmZvLnJlbGtpbmQg PT0gUkVMS0lORF9WSUVXIHx8Ci0JCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX01BVFZJ RVcgfHwKLQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAot CQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSB8fAotCQkJdGFi bGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKLQkJewotCQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5jb2xfZGVzY3JpcHRpb24o YS5hdHRyZWxpZCwgYS5hdHRudW0pIik7Ci0JCQlhdHRkZXNjcl9jb2wgPSBjb2xzKys7Ci0JCX0K LQl9Ci0KLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5GUk9NIHBnX2NhdGFsb2cucGdf YXR0cmlidXRlIGEiKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJl bGlkID0gJyVzJyBBTkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQp OwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbk9SREVSIEJZIGEuYXR0bnVtOyIpOwot Ci0JcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOwotCWlmICghcmVzKQotCQlnb3RvIGVycm9yX3Jl dHVybjsKLQludW1yb3dzID0gUFFudHVwbGVzKHJlcyk7Ci0KIAkvKiBNYWtlIHRpdGxlICovCiAJ c3dpdGNoICh0YWJsZWluZm8ucmVsa2luZCkKIAl7CkBAIC0yMDYxLDMyICsxOTM5LDE3MSBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJYnJlYWs7 CiAJfQogCi0JLyogRmlsbCBoZWFkZXJzW10gd2l0aCB0aGUgbmFtZXMgb2YgdGhlIGNvbHVtbnMg d2Ugd2lsbCBvdXRwdXQgKi8KKwkvKiBJZGVudGlmeSB3aGV0aGVyIHdlIHNob3VsZCBwcmludCBj b2xsYXRpb24sIG51bGxhYmxlLCBkZWZhdWx0IHZhbHMgKi8KKwlpZiAodGFibGVpbmZvLnJlbGtp bmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5E X1ZJRVcgfHwKKwkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCXRh YmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQl0YWJsZWluZm8u cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFIHx8CisJCXRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCXNob3dfY29sdW1uX2RldGFpbHMgPSB0 cnVlOworCisJLyoKKwkgKiBHZXQgcGVyLWNvbHVtbiBpbmZvCisJICoKKwkgKiBTaW5jZSB0aGUg c2V0IG9mIHF1ZXJ5IGNvbHVtbnMgd2UgbmVlZCB2YXJpZXMgZGVwZW5kaW5nIG9uIHJlbGtpbmQg YW5kCisJICogc2VydmVyIHZlcnNpb24sIHdlIGNvbXB1dGUgYWxsIHRoZSBjb2x1bW4gbnVtYmVy cyBvbi10aGUtZmx5LiAgQ29sdW1uCisJICogbnVtYmVyIHZhcmlhYmxlcyBmb3IgY29sdW1ucyBu b3QgZmV0Y2hlZCBhcmUgbGVmdCBhcyAtMTsgdGhpcyBhdm9pZHMKKwkgKiBkdXBsaWNhdGl2ZSB0 ZXN0IGxvZ2ljIGJlbG93LiBQcm9wZXJ0eSBncmFwaCByZWxhdGlvbnMgZG8gbm90IGhhdmUKKwkg KiBjb2x1bW5zLgorCSAqLwogCWNvbHMgPSAwOwotCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRf bm9vcCgiQ29sdW1uIik7Ci0JaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJUeXBlIik7 Ci0JaWYgKHNob3dfY29sdW1uX2RldGFpbHMpCisJbnVtcm93cyA9IDA7CisJaWYgKHRhYmxlaW5m by5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQogCXsKLQkJaGVhZGVyc1tjb2xzKytdID0g Z2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKTsKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9u b29wKCJOdWxsYWJsZSIpOwotCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkRlZmF1 bHQiKTsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIlNFTEVDVCBhLmF0dG5hbWUiKTsKKwkJ YXR0bmFtZV9jb2wgPSBjb2xzKys7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4g IHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7CisJCWF0 dHR5cGVfY29sID0gY29scysrOworCisJCWlmIChzaG93X2NvbHVtbl9kZXRhaWxzKQorCQl7CisJ CQkvKiB1c2UgInByZXR0eSIgbW9kZSBmb3IgZXhwcmVzc2lvbiB0byBhdm9pZCBleGNlc3NpdmUg cGFyZW50aGVzZXMgKi8KKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkJCSAi LFxuICAoU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoZC5hZGJpbiwgZC5hZHJlbGlkLCB0 cnVlKSIKKwkJCQkJCQkJICJcbiAgIEZST00gcGdfY2F0YWxvZy5wZ19hdHRyZGVmIGQiCisJCQkJ CQkJCSAiXG4gICBXSEVSRSBkLmFkcmVsaWQgPSBhLmF0dHJlbGlkIEFORCBkLmFkbnVtID0gYS5h dHRudW0gQU5EIGEuYXR0aGFzZGVmKSIKKwkJCQkJCQkJICIsXG4gIGEuYXR0bm90bnVsbCIpOwor CQkJYXR0cmRlZl9jb2wgPSBjb2xzKys7CisJCQlhdHRub3RudWxsX2NvbCA9IGNvbHMrKzsKKwkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCisJCQkJ CQkJCSAiICAgV0hFUkUgYy5vaWQgPSBhLmF0dGNvbGxhdGlvbiBBTkQgdC5vaWQgPSBhLmF0dHR5 cGlkIEFORCBhLmF0dGNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbikgQVMgYXR0Y29sbGF0aW9u Iik7CisJCQlhdHRjb2xsX2NvbCA9IGNvbHMrKzsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEw MDAwMCkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0dGlkZW50aXR5 Iik7CisJCQllbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBn X2NhdGFsb2cuY2hhciBBUyBhdHRpZGVudGl0eSIpOworCQkJYXR0aWRlbnRpdHlfY29sID0gY29s cysrOworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTIwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0Z2VuZXJhdGVkIik7CisJCQllbHNlCisJCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgJyc6OnBnX2NhdGFsb2cuY2hhciBBUyBhdHRnZW5l cmF0ZWQiKTsKKwkJCWF0dGdlbmVyYXRlZF9jb2wgPSBjb2xzKys7CisJCX0KKwkJaWYgKHRhYmxl aW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVggfHwKKwkJCXRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpCisJCXsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49 IDExMDAwMCkKKwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiLFxuICBDQVNFIFdI RU4gYS5hdHRudW0gPD0gKFNFTEVDVCBpLmluZG5rZXlhdHRzIEZST00gcGdfY2F0YWxvZy5wZ19p bmRleCBpIFdIRVJFIGkuaW5kZXhyZWxpZCA9ICclcycpIFRIRU4gJyVzJyBFTFNFICclcycgRU5E IEFTIGlzX2tleSIsCisJCQkJCQkJCSAgb2lkLAorCQkJCQkJCQkgIGdldHRleHRfbm9vcCgieWVz IiksCisJCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJubyIpKTsKKwkJCQlpc2luZGV4a2V5X2NvbCA9 IGNvbHMrKzsKKwkJCX0KKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2Nh dGFsb2cucGdfZ2V0X2luZGV4ZGVmKGEuYXR0cmVsaWQsIGEuYXR0bnVtLCBUUlVFKSBBUyBpbmRl eGRlZiIpOworCQkJaW5kZXhkZWZfY29sID0gY29scysrOworCQl9CisJCS8qIEZEVyBvcHRpb25z IGZvciBmb3JlaWduIHRhYmxlIGNvbHVtbiAqLworCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0g UkVMS0lORF9GT1JFSUdOX1RBQkxFKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVm LCAiLFxuICBDQVNFIFdIRU4gYXR0ZmR3b3B0aW9ucyBJUyBOVUxMIFRIRU4gJycgRUxTRSAiCisJ CQkJCQkJCSAiICAnKCcgfHwgcGdfY2F0YWxvZy5hcnJheV90b19zdHJpbmcoQVJSQVkoU0VMRUNU IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8ICcgJyB8fCBwZ19jYXRhbG9n LnF1b3RlX2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAgRlJPTSAiCisJCQkJCQkJCSAiICBwZ19jYXRh bG9nLnBnX29wdGlvbnNfdG9fdGFibGUoYXR0ZmR3b3B0aW9ucykpLCAnLCAnKSB8fCAnKScgRU5E IEFTIGF0dGZkd29wdGlvbnMiKTsKKwkJCWZkd29wdHNfY29sID0gY29scysrOworCQl9CisJCWlm ICh2ZXJib3NlKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICBhLmF0 dHN0b3JhZ2UiKTsKKwkJCWF0dHN0b3JhZ2VfY29sID0gY29scysrOworCisJCQkvKiBjb21wcmVz c2lvbiBpbmZvLCBpZiByZWxldmFudCB0byByZWxraW5kICovCisJCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNDAwMDAgJiYKKwkJCQkhcHNldC5oaWRlX2NvbXByZXNzaW9uICYmCisJCQkJKHRhYmxl aW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCQkgdGFibGVpbmZvLnJlbGtp bmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAorCQkJCSB0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX01BVFZJRVcpKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICIsXG4gIGEuYXR0Y29tcHJlc3Npb24gQVMgYXR0Y29tcHJlc3Npb24iKTsKKwkJCQlhdHRj b21wcmVzc2lvbl9jb2wgPSBjb2xzKys7CisJCQl9CisKKwkJCS8qIHN0YXRzIHRhcmdldCwgaWYg cmVsZXZhbnQgdG8gcmVsa2luZCAqLworCQkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfUkVMQVRJT04gfHwKKwkJCQl0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8 CisJCQkJdGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWCB8fAor CQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCXRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQkJCXRhYmxlaW5mby5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQl7CisJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIixcbiAgQ0FTRSBXSEVOIGEuYXR0c3RhdHRhcmdldD0tMSBUSEVOIE5V TEwgRUxTRSBhLmF0dHN0YXR0YXJnZXQgRU5EIEFTIGF0dHN0YXR0YXJnZXQiKTsKKwkJCQlhdHRz dGF0dGFyZ2V0X2NvbCA9IGNvbHMrKzsKKwkJCX0KKworCQkJLyoKKwkJCSAqIEluIDkuMCssIHdl IGhhdmUgY29sdW1uIGNvbW1lbnRzIGZvcjogcmVsYXRpb25zLCB2aWV3cywKKwkJCSAqIGNvbXBv c2l0ZSB0eXBlcywgYW5kIGZvcmVpZ24gdGFibGVzIChjZi4gQ29tbWVudE9iamVjdCgpIGluCisJ CQkgKiBjb21tZW50LmMpLgorCQkJICovCisJCQlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVM S0lORF9SRUxBVElPTiB8fAorCQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfVklFVyB8 fAorCQkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCXRhYmxl aW5mby5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSB8fAorCQkJCXRhYmxlaW5mby5y ZWxraW5kID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUgfHwKKwkJCQl0YWJsZWluZm8ucmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuY29sX2Rlc2NyaXB0aW9uKGEuYXR0cmVsaWQs IGEuYXR0bnVtKSIpOworCQkJCWF0dGRlc2NyX2NvbCA9IGNvbHMrKzsKKwkJCX0KKwkJfQorCisJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbkZST00gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1 dGUgYSIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJlbGlkID0g JyVzJyBBTkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQpOworCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5PUkRFUiBCWSBhLmF0dG51bTsiKTsKKworCQly ZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJCWlmICghcmVzKQorCQkJZ290byBlcnJvcl9yZXR1 cm47CisJCW51bXJvd3MgPSBQUW50dXBsZXMocmVzKTsKKworCQkvKiBGaWxsIGhlYWRlcnNbXSB3 aXRoIHRoZSBuYW1lcyBvZiB0aGUgY29sdW1ucyB3ZSB3aWxsIG91dHB1dCAqLworCQljb2xzID0g MDsKKwkJaWYgKHRhYmxlaW5mby5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQorCQl7CisJ CQkvKiBBIHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IHByb2plY3QgYW55IGNvbHVtbnMgYnkgaXRz ZWxmLiAqLworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb2x1bW4iKTsKKwkJ CWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiVHlwZSIpOworCQl9CisJCWlmIChzaG93 X2NvbHVtbl9kZXRhaWxzKQorCQl7CisJCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3Ao IkNvbGxhdGlvbiIpOworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJOdWxsYWJs ZSIpOworCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJEZWZhdWx0Iik7CisJCX0K KwkJaWYgKGlzaW5kZXhrZXlfY29sID49IDApCisJCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0 X25vb3AoIktleT8iKTsKKwkJaWYgKGluZGV4ZGVmX2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xz KytdID0gZ2V0dGV4dF9ub29wKCJEZWZpbml0aW9uIik7CisJCWlmIChmZHdvcHRzX2NvbCA+PSAw KQorCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJGRFcgb3B0aW9ucyIpOworCQlp ZiAoYXR0c3RvcmFnZV9jb2wgPj0gMCkKKwkJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9v cCgiU3RvcmFnZSIpOworCQlpZiAoYXR0Y29tcHJlc3Npb25fY29sID49IDApCisJCQloZWFkZXJz W2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7CisJCWlmIChhdHRzdGF0dGFy Z2V0X2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0 YXJnZXQiKTsKKwkJaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQorCQkJaGVhZGVyc1tjb2xzKytdID0g Z2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpOworCisJCUFzc2VydChjb2xzIDw9IGxlbmd0aG9m KGhlYWRlcnMpKTsKIAl9Ci0JaWYgKGlzaW5kZXhrZXlfY29sID49IDApCi0JCWhlYWRlcnNbY29s cysrXSA9IGdldHRleHRfbm9vcCgiS2V5PyIpOwotCWlmIChpbmRleGRlZl9jb2wgPj0gMCkKLQkJ aGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJEZWZpbml0aW9uIik7Ci0JaWYgKGZkd29w dHNfY29sID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiRkRXIG9wdGlv bnMiKTsKLQlpZiAoYXR0c3RvcmFnZV9jb2wgPj0gMCkKLQkJaGVhZGVyc1tjb2xzKytdID0gZ2V0 dGV4dF9ub29wKCJTdG9yYWdlIik7Ci0JaWYgKGF0dGNvbXByZXNzaW9uX2NvbCA+PSAwKQotCQlo ZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkNvbXByZXNzaW9uIik7Ci0JaWYgKGF0dHN0 YXR0YXJnZXRfY29sID49IDApCi0JCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgiU3Rh dHMgdGFyZ2V0Iik7Ci0JaWYgKGF0dGRlc2NyX2NvbCA+PSAwKQotCQloZWFkZXJzW2NvbHMrK10g PSBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIik7Ci0KLQlBc3NlcnQoY29scyA8PSBsZW5ndGhv ZihoZWFkZXJzKSk7CisKKwkvKgorCSAqIExpa2UgYSBwcm9wZXJ0eSBncmFwaCwgaWYgdGhlIHJl bGF0aW9uIGRvZXNuJ3QgaGF2ZSBhbnkgY29sdW1ucywKKwkgKiBzdXBwcmVzcyBib3JkZXJzLgor CSAqLworCWlmIChjb2xzIDw9IDAgJiYgbnVtcm93cyA8PSAwKQorCQlteW9wdC5ib3JkZXIgPSAw OwogCiAJcHJpbnRUYWJsZUluaXQoJmNvbnQsICZteW9wdCwgdGl0bGUuZGF0YSwgY29scywgbnVt cm93cyk7CiAJcHJpbnRUYWJsZUluaXRpYWxpemVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAppbmRleCBkMzVjMDJi NDYyYy4uODI0Njk1MzU4ZjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTY1NCwxMyArNjU0LDExIEBAIEVSUk9SOiAg InBnX3R5cGUiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBoCiAtLSBUT0RPCiBcZCBnMQogUHJvcGVy dHkgZ3JhcGggImNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cy5nMSIKLSBDb2x1bW4gfCBUeXBl IAotLS0tLS0tLS0rLS0tLS0tCisKIAogXGQrIGcxCiBQcm9wZXJ0eSBncmFwaCAiY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzLmcxIgotIENvbHVtbiB8IFR5cGUgfCBTdG9yYWdlIAotLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLQorCiBQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgogIENSRUFU RSBQUk9QRVJUWSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEKIAotLSAKMi4z OS41Cgo= --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0007-RLS-tests.patch" Content-Disposition: attachment; filename="v10-0007-RLS-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioo95 RnJvbSA1MWJkYjBkNzZhZGU0OGJjOWRhYzQ3ZjBhYjc5OGIwYTBjYjMzMmM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAyNCAxNjo0Mzo0MCArMDUzMApTdWJqZWN0OiBb UEFUQ0ggdjEwIDA3LzEyXSBSTFMgdGVzdHMKClRoZSBjb21taXQgdGVzdHMgaW50ZXJhY3Rpb24g b2YgcHJvcGVydHkgZ3JhcGggd2l0aCBSTFMuICBUaGUgdGVzdApxdWVyaWVzIHJlZmVyZW5jaW5n IHByb3BlcnR5IGdyYXBoIGFyZSBjcmFmdGVkIGZyb20gZXhpc3RpbmcgcXVlcmllcyBieQp1c2lu ZyBlcXVpdmFsZW50IEdSQVBIX1RBQkxFIGNvbnN0cnVjdHMuIFRodXMgd2UganVzdCBtYWtlIHN1 cmUgdGhhdCB0aGUKcXVlcmllcyB1c2luZyBHUkFQSF9UQUJMRSBjb25zdHJ1Y3RzIGJlaGF2ZSBp biB0aGUgc2FtZSBtYW5uZXIgYW5kCnByb3ZpZGUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBjb3Jy ZXNwb25kaW5nIGV4aXN0aW5nIHF1ZXJpZXMuCgpUaGUgdGVzdHMgY292ZXJpbmcgc2ltcGxlIHRh YmxlcywgaW5oZXJpdGFuY2UgYW5kIHBhcnRpdGlvbmVkIHRhYmxlcwplc3RhYmxpc2ggdGhhdCB0 aGUgUkxTIGlzIGFwcGxpZWQgZXZlbiB3aGVuIHRoZSB0YWJsZXMgYXJlIGFjY2Vzc2VkCnRocm91 Z2ggR1JBUEhfVEFCTEUuICBUaGF0IGVzdGFibGlzaGVzIHRoYXQgdGhlIFJMUyBwb2xpY2llcyB3 aWxsIGJlCmFwcGxpZWQgd2hlbiBpbnRlcmFjdGluZyB3aXRoIG90aGVyIGZlYXR1cmVzIGxpa2Ug cmVjdXJzaXZlIHBvbGljaWVzLApwcmVwYXJlZCBzdGF0ZW1lbnQgaW52YWxpZGF0aW9uLCBzZWN1 cml0eSBiYXJyaWVyIHZpZXdzLCBDVEUsIElOU0VSVCAuLi4KU0VMRUNULCBDT1BZLCBqb2lucywg bm9uLXRhcmdldCByZWxhdGlvbnMgZXRjLiBUaGlzIGFzc3VtcHRpb24gaXMgYmFzZWQKb24gdGhl IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gd2hpY2ggcmV3cml0ZXMgR1JBUEhfVEFCTEUgY2xhdXNl IHdlbGwKYmVmb3JlIHRoZSBSTFMgcG9saWNpZXMgYXJlIGFkZGVkLiBJbiBjYXNlIHRoZSBpbXBs ZW1lbnRhdGlvbiBjaGFuZ2VzIGluCmZ1dHVyZSwgdGhlc2UgYWRkaXRpb25hbCB0ZXN0IHF1ZXJp ZXMgd2lsbCBwcm92aWRlIHRoZSByZXF1aXJlZApleHRlbnNpdmUgY292ZXJhZ2UuCgpOb3RlOiBU aGUgdGVzdHMgZm9yIEJ1ZyAjMTU3MDggYXJlIGFscmVhZHkgY292ZXJlZCBlYXJsaWVyLCBoZW5j ZSBub3QKYWRkZWQgYWdhaW4uCgpBdXRob3I6IEFzaHV0b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBh dC5vc3NAZ21haWwuY29tPgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJp dHkub3V0IHwgMjE3NiArKysrKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jvd3NlY3VyaXR5LnNxbCAgICAgIHwgIDMwOSArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjM2NCBp bnNlcnRpb25zKCspLCAxMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9yb3dzZWN1cml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jvd3NlY3VyaXR5Lm91dAppbmRleCA4NzkyOTE5MWQwNi4uNTE4ZWRiOTJiNjEgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CkBAIC03Miw2ICs3MiwxMyBAQCBJ TlNFUlQgSU5UTyBkb2N1bWVudCBWQUxVRVMKICAgICAoIDgsIDQ0LCAxLCAncmVncmVzc19ybHNf Y2Fyb2wnLCAnZ3JlYXQgbWFuZ2EnKSwKICAgICAoIDksIDIyLCAxLCAncmVncmVzc19ybHNfZGF2 ZScsICdhd2Vzb21lIHNjaWVuY2UgZmljdGlvbicpLAogICAgICgxMCwgMzMsIDIsICdyZWdyZXNz X3Jsc19kYXZlJywgJ2F3ZXNvbWUgdGVjaG5vbG9neSBib29rJyk7CitDUkVBVEUgUFJPUEVSVFkg R1JBUEggYWNjX2NhdAorICAgIFZFUlRFWCBUQUJMRVMgKHVhY2NvdW50LCBjYXRlZ29yeSkKKyAg ICBFREdFIFRBQkxFUyAoCisgICAgICAgIGRvY3VtZW50CisgICAgICAgIFNPVVJDRSBLRVkgKGRh dXRob3IpIFJFRkVSRU5DRVMgdWFjY291bnQgKHBndXNlcikKKyAgICAgICAgREVTVElOQVRJT04g S0VZIChjaWQpIFJFRkVSRU5DRVMgY2F0ZWdvcnkgKGNpZCkpOworR1JBTlQgQUxMIE9OIGFjY19j YXQgVE8gcHVibGljOwogQUxURVIgVEFCTEUgZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZFTCBTRUNV UklUWTsKIC0tIHVzZXIncyBzZWN1cml0eSBsZXZlbCBtdXN0IGJlIGhpZ2hlciB0aGFuIG9yIGVx dWFsIHRvIGRvY3VtZW50J3MKIENSRUFURSBQT0xJQ1kgcDEgT04gZG9jdW1lbnQgQVMgUEVSTUlT U0lWRQpAQCAtOTMsMjQgKzEwMCwyNiBAQCBDUkVBVEUgUE9MSUNZIHAyciBPTiBkb2N1bWVudCBB UyBSRVNUUklDVElWRSBUTyByZWdyZXNzX3Jsc19kYXZlCiBDUkVBVEUgUE9MSUNZIHAxciBPTiBk b2N1bWVudCBBUyBSRVNUUklDVElWRSBUTyByZWdyZXNzX3Jsc19kYXZlCiAgICAgVVNJTkcgKGNp ZCA8PiA0NCk7CiBcZHAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcwotICAgICAgIFNjaGVt YSAgICAgICB8ICAgTmFtZSAgIHwgVHlwZSAgfCAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVn ZXMgICAgICAgICAgICAgICB8IENvbHVtbiBwcml2aWxlZ2VzIHwgICAgICAgICAgICAgICAgICBQ b2xpY2llcyAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfcmxzX3NjaGVtYSB8IGNhdGVnb3J5IHwgdGFibGUgfCByZWdyZXNz X3Jsc19hbGljZT1hcndkRHh0bS9yZWdyZXNzX3Jsc19hbGljZSt8ICAgICAgICAgICAgICAgICAg IHwgCi0gICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICB8ID1hcndkRHh0bS9y ZWdyZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAK LSByZWdyZXNzX3Jsc19zY2hlbWEgfCBkb2N1bWVudCB8IHRhYmxlIHwgcmVncmVzc19ybHNfYWxp Y2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAgICAgICAgICAgICAgICB8IHAxOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgIHwgPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgKHUpOiAoZGxldmVsIDw9ICggU0VM RUNUIHVhY2NvdW50LnNlY2x2ICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgIEZST00gdWFjY291bnQgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg V0hFUkUgKHVhY2NvdW50LnBndXNlciA9IENVUlJFTlRfVVNFUikpKSsKLSAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHAyciAoUkVTVFJJQ1RJVkUpOiAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8 ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgKHUpOiAoKGNpZCA8PiA0NCkgQU5EIChjaWQgPCA1MCkpICAg ICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgdG86IHJlZ3Jlc3NfcmxzX2RhdmUgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IHAxciAoUkVTVFJJQ1RJVkUp OiAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8ICAgKHUpOiAoY2lkIDw+IDQ0KSAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgdG86IHJlZ3Jlc3NfcmxzX2RhdmUKLSByZWdyZXNzX3Jsc19zY2hlbWEgfCB1YWNjb3Vu dCB8IHRhYmxlIHwgcmVncmVzc19ybHNfYWxpY2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2Ur fCAgICAgICAgICAgICAgICAgICB8IAotICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgfCA9ci9yZWdyZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgCi0oMyByb3dzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmls ZWdlcworICAgICAgIFNjaGVtYSAgICAgICB8ICAgTmFtZSAgIHwgICAgICBUeXBlICAgICAgfCAg ICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICB8IENvbHVtbiBwcml2 aWxlZ2VzIHwgICAgICAgICAgICAgICAgICBQb2xpY2llcyAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfcmxz X3NjaGVtYSB8IGFjY19jYXQgIHwgcHJvcGVydHkgZ3JhcGggfCByZWdyZXNzX3Jsc19hbGljZT1h cndkRHh0bS9yZWdyZXNzX3Jsc19hbGljZSt8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ID1hcndkRHh0bS9yZWdy ZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyBy ZWdyZXNzX3Jsc19zY2hlbWEgfCBjYXRlZ29yeSB8IHRhYmxlICAgICAgICAgIHwgcmVncmVzc19y bHNfYWxpY2U9YXJ3ZER4dG0vcmVncmVzc19ybHNfYWxpY2UrfCAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCA9YXJ3 ZER4dG0vcmVncmVzc19ybHNfYWxpY2UgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgIHwgCisgcmVncmVzc19ybHNfc2NoZW1hIHwgZG9jdW1lbnQgfCB0YWJsZSAgICAgICAgICB8 IHJlZ3Jlc3NfcmxzX2FsaWNlPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlK3wgICAgICAgICAg ICAgICAgICAgfCBwMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ID1hcndkRHh0 bS9yZWdyZXNzX3Jsc19hbGljZSAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAgICh1KTogKGRsZXZlbCA8PSAoIFNFTEVDVCB1YWNjb3VudC5zZWNsdiArCisgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICBGUk9N IHVhY2NvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgIFdIRVJFICh1YWNjb3Vu dC5wZ3VzZXIgPSBDVVJSRU5UX1VTRVIpKSkrCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBwMnIgKFJFU1RSSUNUSVZFKTogICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICh1KTogKChjaWQgPD4gNDQpIEFORCAoY2lkIDwgNTAp KSAgICAgICArCisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgIHRvOiByZWdyZXNzX3Jsc19kYXZlICAgICAgICAgICAgICAgICAgICAr CisgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCBwMXIgKFJFU1RSSUNUSVZFKTogICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICh1 KTogKGNpZCA8PiA0NCkgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgIHRvOiByZWdyZXNz X3Jsc19kYXZlCisgcmVncmVzc19ybHNfc2NoZW1hIHwgdWFjY291bnQgfCB0YWJsZSAgICAgICAg ICB8IHJlZ3Jlc3NfcmxzX2FsaWNlPWFyd2REeHRtL3JlZ3Jlc3NfcmxzX2FsaWNlK3wgICAgICAg ICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgPXIvcmVncmVzc19ybHNfYWxpY2UgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8IAorKDQgcm93cykKIAogXGQgZG9jdW1lbnQKICAgICAgICAgVGFi bGUgInJlZ3Jlc3NfcmxzX3NjaGVtYS5kb2N1bWVudCIKQEAgLTE4MCw2ICsxODksMjMgQEAgTk9U SUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCiAgIDIyIHwgICA5IHwgICAg ICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbiB8IHNjaWVu Y2UgZmljdGlvbgogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2Nh dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDog ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwg ZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFr ID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9 PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9u CisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAg ICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAg ICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwg bXkgZmlyc3QgbWFuZ2EgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9s IHwgICA2IHwgICAgICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNl IGZpY3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdh ICAgICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAg ICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCiso NSByb3dzKQorCiAtLSB0cnkgYSBzYW1wbGVkIHZlcnNpb24KIFNFTEVDVCAqIEZST00gZG9jdW1l bnQgVEFCTEVTQU1QTEUgQkVSTk9VTExJKDUwKSBSRVBFQVRBQkxFKDApCiAgIFdIRVJFIGZfbGVh ayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKQEAgLTI0Nyw2ICsyNzMsMzMgQEAgTk9USUNFOiAgZl9s ZWFrID0+IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiAgIDMzIHwgIDEwIHwgICAgICAyIHwgcmVn cmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8IHRlY2hub2xvZ3kKICgx MCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVS RSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5j aWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qg bm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVh ayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBtYW5n YQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+ IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xv Z3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6ICBmX2xlYWsg PT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHRl Y2hub2xvZ3kgYm9vaworICAgICAgcGd1c2VyICAgICAgIHwgZGlkIHwgZGxldmVsIHwgICAgICAg ICBkdGl0bGUgICAgICAgICAgfCBjaWQgfCAgICAgIGNuYW1lICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgMSB8ICAgICAgMSB8IG15IGZp cnN0IG5vdmVsICAgICAgICAgIHwgIDExIHwgbm92ZWwKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAg MiB8ICAgICAgMiB8IG15IHNlY29uZCBub3ZlbCAgICAgICAgIHwgIDExIHwgbm92ZWwKKyByZWdy ZXNzX3Jsc19ib2IgICB8ICAgMyB8ICAgICAgMiB8IG15IHNjaWVuY2UgZmljdGlvbiAgICAgIHwg IDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDQgfCAgICAgIDEg fCBteSBmaXJzdCBtYW5nYSAgICAgICAgICB8ICA0NCB8IG1hbmdhCisgcmVncmVzc19ybHNfYm9i ICAgfCAgIDUgfCAgICAgIDIgfCBteSBzZWNvbmQgbWFuZ2EgICAgICAgICB8ICA0NCB8IG1hbmdh CisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDYgfCAgICAgIDEgfCBncmVhdCBzY2llbmNlIGZpY3Rp b24gICB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA3IHwg ICAgICAyIHwgZ3JlYXQgdGVjaG5vbG9neSBib29rICAgfCAgMzMgfCB0ZWNobm9sb2d5CisgcmVn cmVzc19ybHNfY2Fyb2wgfCAgIDggfCAgICAgIDEgfCBncmVhdCBtYW5nYSAgICAgICAgICAgICB8 ICA0NCB8IG1hbmdhCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgIDkgfCAgICAgIDEgfCBhd2Vzb21l IHNjaWVuY2UgZmljdGlvbiB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2Rh dmUgIHwgIDEwIHwgICAgICAyIHwgYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sgfCAgMzMgfCB0ZWNo bm9sb2d5CisoMTAgcm93cykKKwogLS0gdHJ5IGEgc2FtcGxlZCB2ZXJzaW9uCiBTRUxFQ1QgKiBG Uk9NIGRvY3VtZW50IFRBQkxFU0FNUExFIEJFUk5PVUxMSSg1MCkgUkVQRUFUQUJMRSgwKQogICBX SEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0yODgsNiArMzQxLDI4IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0 ZWdvcnkgV0hFUkUgZl9sZWFrKGR0CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9 IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCiAoOSByb3dzKQogCitFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50 IFdIRVJFIGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxl LCBjLmNpZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAgIFNvcnQgS2V5 OiBkb2N1bWVudC5kaWQKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcg dWFjY291bnRfcGtleSBvbiB1YWNjb3VudCB1YWNjb3VudF8xCisgICAgICAgICAgIEluZGV4IENv bmQ6IChwZ3VzZXIgPSBDVVJSRU5UX1VTRVIpCisgICAtPiAgSGFzaCBKb2luCisgICAgICAgICBI YXNoIENvbmQ6IChkb2N1bWVudC5kYXV0aG9yID0gdWFjY291bnQucGd1c2VyKQorICAgICAgICAg LT4gIEhhc2ggSm9pbgorICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoY2F0ZWdvcnkuY2lkID0g ZG9jdW1lbnQuY2lkKQorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGNhdGVnb3J5Cisg ICAgICAgICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIGRvY3VtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVs IDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAg SGFzaAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHVhY2NvdW50CisoMTUgcm93cykK KwogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19kYXZlOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBXSEVSRSBm X2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7CkBAIC0zMjgsNiArNDAzLDI3IEBAIE5PVElDRTog IGZfbGVhayA9PiBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vawogICAzMyB8ICAxMCB8ICAgICAgMiB8 IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sgfCB0ZWNobm9sb2d5 CiAoNyByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBX SEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwg Yy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmly c3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZf bGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2ll bmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05P VElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFr ID0+IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBk bGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwg ICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3Nf cmxzX2JvYiAgIHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEg fCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBm aWN0aW9uICAgICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8 ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBm aWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9s b2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8 ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9u CisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kg Ym9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyg3IHJvd3MpCisKIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1Miw2ICs0NDgsMjgg QEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IE5BVFVSQUwgSk9J TiBjYXRlZ29yeSBXSEVSRSBmX2xlYWsoZHQKICAgICAgICAgICAgICAgIEZpbHRlcjogKChjaWQg PD4gNDQpIEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBBTkQgKGRsZXZlbCA8PSAoSW5p dFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQogKDkgcm93cykKIAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVS RSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5j aWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBLZXk6IGRvY3VtZW50LmRp ZAorICAgSW5pdFBsYW4gMQorICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5 IG9uIHVhY2NvdW50IHVhY2NvdW50XzEKKyAgICAgICAgICAgSW5kZXggQ29uZDogKHBndXNlciA9 IENVUlJFTlRfVVNFUikKKyAgIC0+ICBIYXNoIEpvaW4KKyAgICAgICAgIEhhc2ggQ29uZDogKGNh dGVnb3J5LmNpZCA9IGRvY3VtZW50LmNpZCkKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBjYXRl Z29yeQorICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KKyAg ICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKHVhY2NvdW50LnBndXNlciA9IGRvY3VtZW50 LmRhdXRob3IpCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdWFjY291bnQK KyAgICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gZG9jdW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZpbHRlcjogKChjaWQgPD4gNDQpIEFORCAoY2lkIDw+IDQ0KSBBTkQgKGNpZCA8IDUwKSBB TkQgKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZfbGVhayhkdGl0bGUpKQorKDE1 IHJvd3MpCisKIC0tIDQ0IHdvdWxkIHRlY2huaWNhbGx5IGZhaWwgZm9yIGJvdGggcDJyIGFuZCBw MXIsIGJ1dCB3ZSBzaG91bGQgZ2V0IGFuIGVycm9yCiAtLSBiYWNrIGZyb20gcDFyIGZvciB0aGlz IGJlY2F1c2UgaXQgc29ydHMgZmlyc3QKIElOU0VSVCBJTlRPIGRvY3VtZW50IFZBTFVFUyAoMTAw LCA0NCwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBzb3J0aW5nIG9mIHBvbGljaWVz Jyk7IC0tIGZhaWwKQEAgLTM5OCw2ICs1MTYsMjMgQEAgTk9USUNFOiAgZl9sZWFrID0+IG15IHNl Y29uZCBtYW5nYQogICA0NCB8ICAgNSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNl Y29uZCBtYW5nYSAgICB8IG1hbmdhCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNj b3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29y eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQs IGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJ Q0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNv bmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTog IGZfbGVhayA9PiBteSBmaXJzdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBt YW5nYQorICAgICBwZ3VzZXIgICAgICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgIGR0aXRsZSAgICAg ICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c19ybHNfYm9iIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgIHwgIDExIHwgbm92 ZWwKKyByZWdyZXNzX3Jsc19ib2IgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQgbm92ZWwgICAg fCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiB8ICAgMyB8ICAgICAgMiB8IG15IHNjaWVu Y2UgZmljdGlvbiB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3NfcmxzX2JvYiB8ICAg NCB8ICAgICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICB8ICA0NCB8IG1hbmdhCisgcmVncmVzc19y bHNfYm9iIHwgICA1IHwgICAgICAyIHwgbXkgc2Vjb25kIG1hbmdhICAgIHwgIDQ0IHwgbWFuZ2EK Kyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJsc19yZWdyZXNfY2Fyb2wgYWdhaW4KIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9N IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKQEAgLTQyMiw2ICs1 NTcsMTkgQEAgTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCiAgIDQ0IHwgICA4IHwgICAg ICAxIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBtYW5nYSAgICAgICAgICAgfCBtYW5nYQog KDMgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hF UkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMu Y2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNj aWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9vawor Tk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQg fCBkbGV2ZWwgfCAgICAgICAgZHRpdGxlICAgICAgICAgfCBjaWQgfCAgICAgIGNuYW1lICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDYgfCAg ICAgIDEgfCBncmVhdCBzY2llbmNlIGZpY3Rpb24gfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyBy ZWdyZXNzX3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xvZ3kgYm9vayB8 ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdy ZWF0IG1hbmdhICAgICAgICAgICB8ICA0NCB8IG1hbmdhCisoMyByb3dzKQorCiBFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpAQCAtNDM5LDYgKzU4NywyMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g ZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdAogICAgICAgICAg SW5kZXggQ29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKICg1IHJvd3MpCiAKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lk LCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTb3J0CisgICBTb3J0IEtleTogZG9jdW1lbnQuZGlkCisgICAtPiAgTmVzdGVk IExvb3AKKyAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAorICAgICAgICAgICAgICAgLT4gIEluZGV4 IE9ubHkgU2NhbiB1c2luZyB1YWNjb3VudF9wa2V5IG9uIHVhY2NvdW50CisgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIGRvY3VtZW50CisgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6 ICgoZGF1dGhvciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorICAgICAgICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgY2F0ZWdvcnlfcGtleSBvbiBjYXRlZ29yeQorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGNpZCA9IGRvY3VtZW50LmNpZCkKKygxMCByb3dzKQorCiAtLSBp bnRlcmFjdGlvbiBvZiBGSy9QSyBjb25zdHJhaW50cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgcDIgT04gY2F0ZWdvcnkKQEAgLTUx NSw2ICs2ODAsMzUgQEAgU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKICAgNDQgfCBtYW5nYQogKDQg cm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUg Zl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lk LCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5v dmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsg PT4gbXkgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EK K05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBn cmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5 IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+ IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNo bm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBob2dlCisgICAgICBwZ3VzZXIgICAgICAg fCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25h bWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAg IHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAor IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAg ICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkg c2NpZW5jZSBmaWN0aW9uICAgICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Js c19ib2IgICB8ICAgNCB8ICAgICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICAgICAgIHwgIDQ0IHwg bWFuZ2EKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNSB8ICAgICAgMiB8IG15IHNlY29uZCBtYW5n YSAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8ICAgICAg MSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVn cmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8 ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdy ZWF0IG1hbmdhICAgICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8 ICAgOSB8ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBm aWN0aW9uCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hu b2xvZ3kgYm9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8 ICAgICAgMSB8IGhvZ2UgICAgICAgICAgICAgICAgICAgIHwgIDMzIHwgdGVjaG5vbG9neQorKDEx IHJvd3MpCisKIC0tIGRhdGFiYXNlIHN1cGVydXNlciBkb2VzIGJ5cGFzcyBSTFMgcG9saWN5IHdo ZW4gZGlzYWJsZWQKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJp dHkgVE8gT0ZGOwpAQCAtNTQzLDYgKzczNywzNSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5Owog ICA0NCB8IG1hbmdhCiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2Nf Y2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2Qg OiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVs LCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xl YWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwK K05PVElDRTogIGZfbGVhayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9 PiBteSBmaXJzdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9U SUNFOiAgZl9sZWFrID0+IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+ IGdyZWF0IHRlY2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitO T1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVh ayA9PiBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGhvZ2UKKyAg ICAgIHBndXNlciAgICAgICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgICAgZHRpdGxlICAgICAgICAg IHwgY2lkIHwgICAgICBjbmFtZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19ybHNfYm9iICAgfCAgIDEgfCAgICAgIDEgfCBteSBmaXJzdCBub3ZlbCAgICAgICAg ICB8ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDIgfCAgICAgIDIgfCBteSBz ZWNvbmQgbm92ZWwgICAgICAgICB8ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAg IDMgfCAgICAgIDIgfCBteSBzY2llbmNlIGZpY3Rpb24gICAgICB8ICAyMiB8IHNjaWVuY2UgZmlj dGlvbgorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmlyc3QgbWFuZ2Eg ICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA1IHwgICAgICAy IHwgbXkgc2Vjb25kIG1hbmdhICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nh cm9sIHwgICA2IHwgICAgICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2ll bmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRl Y2hub2xvZ3kgYm9vayAgIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwg ICA4IHwgICAgICAxIHwgZ3JlYXQgbWFuZ2EgICAgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJl Z3Jlc3NfcmxzX2RhdmUgIHwgICA5IHwgICAgICAxIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24g fCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19kYXZlICB8ICAxMCB8ICAgICAg MiB8IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3Nf cmxzX2Nhcm9sIHwgIDExIHwgICAgICAxIHwgaG9nZSAgICAgICAgICAgICAgICAgICAgfCAgMzMg fCB0ZWNobm9sb2d5CisoMTEgcm93cykKKwogLS0gZGF0YWJhc2Ugbm9uLXN1cGVydXNlciB3aXRo IGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93 X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTU3MSw2ICs3OTQsMzUgQEAgU0VMRUNUICogRlJPTSBjYXRl Z29yeTsKICAgNDQgfCBtYW5nYQogKDQgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291 bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBk LmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOworTk9USUNF OiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25k IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBm X2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbWFu Z2EKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZf bGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBt YW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBo b2dlCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAgICAgICAgIGR0aXRsZSAg ICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwgbXkgZmlyc3Qgbm92ZWwg ICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAyIHwgICAgICAy IHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9uICAgICAgfCAgMjIgfCBzY2ll bmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNCB8ICAgICAgMSB8IG15IGZpcnN0 IG1hbmdhICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNSB8 ICAgICAgMiB8IG15IHNlY29uZCBtYW5nYSAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNz X3Jsc19jYXJvbCB8ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbiAgIHwgIDIy IHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAgIDcgfCAgICAgIDIgfCBn cmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19j YXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAgICAgICAgIHwgIDQ0IHwgbWFu Z2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8IGF3ZXNvbWUgc2NpZW5jZSBm aWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfZGF2ZSAgfCAgMTAg fCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8IHRlY2hub2xvZ3kKKyBy ZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8ICAgICAgMSB8IGhvZ2UgICAgICAgICAgICAgICAgICAg IHwgIDMzIHwgdGVjaG5vbG9neQorKDExIHJvd3MpCisKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3Qg YXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAt NTk5LDYgKzg1MSwzNSBAQCBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OwogICA0NCB8IG1hbmdhCiAo NCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVS RSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5j aWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qg bm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVh ayA9PiBteSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBtYW5n YQorTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+ IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xv Z3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IG1hbmdhCitOT1RJQ0U6ICBmX2xlYWsg PT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHRl Y2hub2xvZ3kgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGhvZ2UKKyAgICAgIHBndXNlciAgICAg ICB8IGRpZCB8IGRsZXZlbCB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIHwgY2lkIHwgICAgICBj bmFtZSAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ybHNfYm9i ICAgfCAgIDEgfCAgICAgIDEgfCBteSBmaXJzdCBub3ZlbCAgICAgICAgICB8ICAxMSB8IG5vdmVs CisgcmVncmVzc19ybHNfYm9iICAgfCAgIDIgfCAgICAgIDIgfCBteSBzZWNvbmQgbm92ZWwgICAg ICAgICB8ICAxMSB8IG5vdmVsCisgcmVncmVzc19ybHNfYm9iICAgfCAgIDMgfCAgICAgIDIgfCBt eSBzY2llbmNlIGZpY3Rpb24gICAgICB8ICAyMiB8IHNjaWVuY2UgZmljdGlvbgorIHJlZ3Jlc3Nf cmxzX2JvYiAgIHwgICA0IHwgICAgICAxIHwgbXkgZmlyc3QgbWFuZ2EgICAgICAgICAgfCAgNDQg fCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICA1IHwgICAgICAyIHwgbXkgc2Vjb25kIG1h bmdhICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA2IHwgICAg ICAxIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyBy ZWdyZXNzX3Jsc19jYXJvbCB8ICAgNyB8ICAgICAgMiB8IGdyZWF0IHRlY2hub2xvZ3kgYm9vayAg IHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgICA4IHwgICAgICAxIHwg Z3JlYXQgbWFuZ2EgICAgICAgICAgICAgfCAgNDQgfCBtYW5nYQorIHJlZ3Jlc3NfcmxzX2RhdmUg IHwgICA5IHwgICAgICAxIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24gfCAgMjIgfCBzY2llbmNl IGZpY3Rpb24KKyByZWdyZXNzX3Jsc19kYXZlICB8ICAxMCB8ICAgICAgMiB8IGF3ZXNvbWUgdGVj aG5vbG9neSBib29rIHwgIDMzIHwgdGVjaG5vbG9neQorIHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgIDEx IHwgICAgICAxIHwgaG9nZSAgICAgICAgICAgICAgICAgICAgfCAgMzMgfCB0ZWNobm9sb2d5Ciso MTEgcm93cykKKwogLS0gUkxTIHBvbGljeSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lciB3 aGVuIFJMUyBkaXNhYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf YWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTYyNyw2ICs5MDgsMzUgQEAgU0VM RUNUICogRlJPTSBjYXRlZ29yeTsKICAgNDQgfCBtYW5nYQogKDQgcm93cykKIAorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1B VENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0t PihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5w Z3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIg QlkgZGlkOworTk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xl YWsgPT4gbXkgc2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSBmaWN0 aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3QgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9 PiBteSBzZWNvbmQgbWFuZ2EKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rp b24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZf bGVhayA9PiBncmVhdCBtYW5nYQorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBm aWN0aW9uCitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKK05PVElD RTogIGZfbGVhayA9PiBob2dlCisgICAgICBwZ3VzZXIgICAgICAgfCBkaWQgfCBkbGV2ZWwgfCAg ICAgICAgIGR0aXRsZSAgICAgICAgICB8IGNpZCB8ICAgICAgY25hbWUgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LSstLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAxIHwgICAgICAxIHwg bXkgZmlyc3Qgbm92ZWwgICAgICAgICAgfCAgMTEgfCBub3ZlbAorIHJlZ3Jlc3NfcmxzX2JvYiAg IHwgICAyIHwgICAgICAyIHwgbXkgc2Vjb25kIG5vdmVsICAgICAgICAgfCAgMTEgfCBub3ZlbAor IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgICAzIHwgICAgICAyIHwgbXkgc2NpZW5jZSBmaWN0aW9uICAg ICAgfCAgMjIgfCBzY2llbmNlIGZpY3Rpb24KKyByZWdyZXNzX3Jsc19ib2IgICB8ICAgNCB8ICAg ICAgMSB8IG15IGZpcnN0IG1hbmdhICAgICAgICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Js c19ib2IgICB8ICAgNSB8ICAgICAgMiB8IG15IHNlY29uZCBtYW5nYSAgICAgICAgIHwgIDQ0IHwg bWFuZ2EKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgNiB8ICAgICAgMSB8IGdyZWF0IHNjaWVuY2Ug ZmljdGlvbiAgIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19ybHNfY2Fyb2wgfCAg IDcgfCAgICAgIDIgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sgICB8ICAzMyB8IHRlY2hub2xvZ3kK KyByZWdyZXNzX3Jsc19jYXJvbCB8ICAgOCB8ICAgICAgMSB8IGdyZWF0IG1hbmdhICAgICAgICAg ICAgIHwgIDQ0IHwgbWFuZ2EKKyByZWdyZXNzX3Jsc19kYXZlICB8ICAgOSB8ICAgICAgMSB8IGF3 ZXNvbWUgc2NpZW5jZSBmaWN0aW9uIHwgIDIyIHwgc2NpZW5jZSBmaWN0aW9uCisgcmVncmVzc19y bHNfZGF2ZSAgfCAgMTAgfCAgICAgIDIgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vayB8ICAzMyB8 IHRlY2hub2xvZ3kKKyByZWdyZXNzX3Jsc19jYXJvbCB8ICAxMSB8ICAgICAgMSB8IGhvZ2UgICAg ICAgICAgICAgICAgICAgIHwgIDMzIHwgdGVjaG5vbG9neQorKDExIHJvd3MpCisKIC0tCiAtLSBU YWJsZSBpbmhlcml0YW5jZSBhbmQgUkxTIHBvbGljeQogLS0KQEAgLTY0Myw2ICs5NTMsMTIgQEAg Q1JFQVRFIFRBQkxFIHQzIChpZCBpbnQgbm90IG51bGwgcHJpbWFyeSBrZXksIGMgdGV4dCwgYiB0 ZXh0LCBhIGludCk7CiBBTFRFUiBUQUJMRSB0MyBJTkhFUklUIHQxOwogR1JBTlQgQUxMIE9OIHQz IFRPIHB1YmxpYzsKIENPUFkgdDMoaWQsIGEsYixjKSBGUk9NIHN0ZGluOworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGl0cGcKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZKGlkKSBE RUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGlkLCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xhc3MgYXMg dGFibGVvaWQpLAorICAgICAgICB0MiBLRVkoaWQpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAo aWQsIGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBhcyB0YWJsZW9pZCksCisgICAgICAgIHQzIEtF WShpZCkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpZCwgYSwgYiwgdGFibGVvaWQ6OnJlZ2Ns YXNzIGFzIHRhYmxlb2lkKSk7CitHUkFOVCBBTEwgT04gaXRwZyBUTyBwdWJsaWM7CiBDUkVBVEUg UE9MSUNZIHAxIE9OIHQxIEZPUiBBTEwgVE8gUFVCTElDIFVTSU5HIChhICUgMiA9IDApOyAtLSBi ZSBldmVuIG51bWJlcgogQ1JFQVRFIFBPTElDWSBwMiBPTiB0MiBGT1IgQUxMIFRPIFBVQkxJQyBV U0lORyAoYSAlIDIgPSAxKTsgLS0gYmUgb2RkIG51bWJlcgogQUxURVIgVEFCTEUgdDEgRU5BQkxF IFJPVyBMRVZFTCBTRUNVUklUWTsKQEAgLTY3MCw2ICs5ODYsMjggQEAgRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOwogICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCiAo NyByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkg Q09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0t LS0tCisgMTAyIHwgMiB8IGJiYgorIDEwNCB8IDQgfCBkYWQKKyAyMDIgfCAyIHwgYmNkCisgMjA0 IHwgNCB8IGRlZgorIDMwMiB8IDIgfCB5eXkKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMg KHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24g dDEgdDFfMQorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisgICAtPiAgU2VxIFNjYW4g b24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisgICAtPiAgU2VxIFNj YW4gb24gdDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisoNyByb3dzKQor CiBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBi YmIKIE5PVElDRTogIGZfbGVhayA9PiBkYWQKQEAgLTY5Nyw2ICsxMDM1LDMzIEBAIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYik7CiAgICAgICAgICBG aWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkg Q09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElD RTogIGZfbGVhayA9PiBkYWQKK05PVElDRTogIGZfbGVhayA9PiBiY2QKK05PVElDRTogIGZfbGVh ayA9PiBkZWYKK05PVElDRTogIGZfbGVhayA9PiB5eXkKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0r LS0tKy0tLS0tCisgMTAyIHwgMiB8IGJiYgorIDEwNCB8IDQgfCBkYWQKKyAyMDIgfCAyIHwgYmNk CisgMjA0IHwgNCB8IGRlZgorIDMwMiB8IDIgfCB5eXkKKyg1IHJvd3MpCisKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hF UkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiB0 MSB0MV8xCisgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisg ICAtPiAgU2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAw KSBBTkQgZl9sZWFrKGIpKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZp bHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg3IHJvd3MpCisKIC0tIHJlZmVy ZW5jZSB0byBzeXN0ZW0gY29sdW1uCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00g dDE7CiAgdGFibGVvaWQgfCBpZCAgfCBhIHwgIGIgIApAQCAtODE1LDYgKzExODAsMjYgQEAgRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgYSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIEZST00gdDIg VU5JT04gQUxMIFNFTEVDVCBhLAogICAgLT4gIFNlcSBTY2FuIG9uIHQzCiAoNCByb3dzKQogCist LSBsYWJlbCBkaXNqdW5jdGlvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRD SCAodCA6IHQyIHwgdDMpIENPTFVNTlMgKHQuYSwgdC5iLCB0LnRhYmxlb2lkKSk7CisgYSB8ICBi ICB8IHRhYmxlb2lkIAorLS0tKy0tLS0tKy0tLS0tLS0tLS0KKyAxIHwgYWJjIHwgdDIKKyAzIHwg Y2RlIHwgdDIKKyAxIHwgeHh4IHwgdDMKKyAyIHwgeXl5IHwgdDMKKyAzIHwgenp6IHwgdDMKKyg1 IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo aXRwZyBNQVRDSCAodCA6IHQyIHwgdDMpIENPTFVNTlMgKHQuYSwgdC5iLCB0LnRhYmxlb2lkKSk7 CisgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDIKKyAgICAgICAgIEZpbHRl cjogKChhICUgMikgPSAxKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzCisoNCByb3dzKQorCiAtLSBz dXBlcnVzZXIgaXMgYWxsb3dlZCB0byBieXBhc3MgUkxTIGNoZWNrcwogUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CkBAIC04NTcsNiArMTI0Miw0 NSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIp OwogICAgICAgICAgRmlsdGVyOiBmX2xlYWsoYikKICg3IHJvd3MpCiAKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxIFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5T ICh0LmlkLCB0LmEsIHQuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9s ZWFrID0+IGJiYgorTk9USUNFOiAgZl9sZWFrID0+IGNjYworTk9USUNFOiAgZl9sZWFrID0+IGRh ZAorTk9USUNFOiAgZl9sZWFrID0+IGFiYworTk9USUNFOiAgZl9sZWFrID0+IGJjZAorTk9USUNF OiAgZl9sZWFrID0+IGNkZQorTk9USUNFOiAgZl9sZWFrID0+IGRlZgorTk9USUNFOiAgZl9sZWFr ID0+IHh4eAorTk9USUNFOiAgZl9sZWFrID0+IHl5eQorTk9USUNFOiAgZl9sZWFrID0+IHp6egor IGlkICB8IGEgfCAgYiAgCistLS0tLSstLS0rLS0tLS0KKyAxMDEgfCAxIHwgYWJhCisgMTAyIHwg MiB8IGJiYgorIDEwMyB8IDMgfCBjY2MKKyAxMDQgfCA0IHwgZGFkCisgMjAxIHwgMSB8IGFiYwor IDIwMiB8IDIgfCBiY2QKKyAyMDMgfCAzIHwgY2RlCisgMjA0IHwgNCB8IGRlZgorIDMwMSB8IDEg fCB4eHgKKyAzMDIgfCAyIHwgeXl5CisgMzAzIHwgMyB8IHp6egorKDExIHJvd3MpCisKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CisgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVu ZAorICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzEKKyAgICAgICAgIEZpbHRlcjogZl9sZWFrKGIp CisgICAtPiAgU2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiBmX2xlYWsoYikK KyAgIC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8zCisgICAgICAgICBGaWx0ZXI6IGZfbGVhayhiKQor KDcgcm93cykKKwogLS0gbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5 cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTg5 OSw2ICsxMzIzLDQ1IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVS RSBmX2xlYWsoYik7CiAgICAgICAgICBGaWx0ZXI6IGZfbGVhayhiKQogKDcgcm93cykKIAorU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9sZWFrKHQu YikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitO T1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCitOT1RJQ0U6ICBm X2xlYWsgPT4gZGFkCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4g YmNkCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2RlCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGVmCitOT1RJ Q0U6ICBmX2xlYWsgPT4geHh4CitOT1RJQ0U6ICBmX2xlYWsgPT4geXl5CitOT1RJQ0U6ICBmX2xl YWsgPT4genp6CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQorIDEwMSB8IDEgfCBh YmEKKyAxMDIgfCAyIHwgYmJiCisgMTAzIHwgMyB8IGNjYworIDEwNCB8IDQgfCBkYWQKKyAyMDEg fCAxIHwgYWJjCisgMjAyIHwgMiB8IGJjZAorIDIwMyB8IDMgfCBjZGUKKyAyMDQgfCA0IHwgZGVm CisgMzAxIHwgMSB8IHh4eAorIDMwMiB8IDIgfCB5eXkKKyAzMDMgfCAzIHwgenp6CisoMTEgcm93 cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBn IE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5iKSkgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIp KTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMQorICAgICAgICAgRmlsdGVy OiBmX2xlYWsoYikKKyAgIC0+ICBTZXEgU2NhbiBvbiB0MiB0MV8yCisgICAgICAgICBGaWx0ZXI6 IGZfbGVhayhiKQorICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjog Zl9sZWFrKGIpCisoNyByb3dzKQorCiAtLQogLS0gUGFydGl0aW9uZWQgVGFibGVzCiAtLQpAQCAt OTI5LDYgKzEzOTIsOSBAQCBJTlNFUlQgSU5UTyBwYXJ0X2RvY3VtZW50IFZBTFVFUwogICAgICgg OCwgNTUsIDIsICdyZWdyZXNzX3Jsc19jYXJvbCcsICdncmVhdCBzYXRpcmUnKSwKICAgICAoIDks IDExLCAxLCAncmVncmVzc19ybHNfZGF2ZScsICdhd2Vzb21lIHNjaWVuY2UgZmljdGlvbicpLAog ICAgICgxMCwgOTksIDIsICdyZWdyZXNzX3Jsc19kYXZlJywgJ2F3ZXNvbWUgdGVjaG5vbG9neSBi b29rJyk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggcHRwZworICAgIFZFUlRFWCBUQUJMRVMgKHBh cnRfZG9jdW1lbnQgS0VZIChkaWQpLCBwYXJ0X2RvY3VtZW50X3NhdGlyZSBLRVkgKGRpZCkpOwor R1JBTlQgQUxMIE9OIHB0cGcgVE8gcHVibGljOwogQUxURVIgVEFCTEUgcGFydF9kb2N1bWVudCBF TkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogLS0gQ3JlYXRlIHBvbGljeSBvbiBwYXJlbnQKIC0t IHVzZXIncyBzZWN1cml0eSBsZXZlbCBtdXN0IGJlIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRvIGRv Y3VtZW50J3MKQEAgLTEwMDEsMTkgKzE0NjcsNDkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICBG aWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkp CiAoMTAgcm93cykKIAotLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKLVNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7Ci1TRUxFQ1QgKiBGUk9NIHBh cnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOworU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9s ZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9y LCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKIE5PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBu b3ZlbAotTk9USUNFOiAgZl9sZWFrID0+IG15IHNlY29uZCBub3ZlbAogTk9USUNFOiAgZl9sZWFr ID0+IGdyZWF0IHNjaWVuY2UgZmljdGlvbgogTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2Np ZW5jZSBmaWN0aW9uCiBOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCi1OT1RJQ0U6 ICBmX2xlYWsgPT4gZ3JlYXQgc2F0aXJlCi1OT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSB0 ZXh0Ym9vawotTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9vawotTk9USUNFOiAgZl9s ZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kgYm9vawotTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUg dGVjaG5vbG9neSBib29rCisgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBkYXV0aG9yICAgICAg fCAgICAgICAgIGR0aXRsZSAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8ICAxMSB8ICAgICAg MSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDQgfCAgNTUgfCAgICAg IDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQorICAgNiB8ICAxMSB8ICAg ICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA5IHwg IDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlv bgorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUp KSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkg T1JERVIgQlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29y dAorICAgU29ydCBLZXk6IHBhcnRfZG9jdW1lbnQuZGlkCisgICBJbml0UGxhbiAxCisgICAgIC0+ ICBJbmRleCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAg SW5kZXggQ29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyAgIC0+ICBBcHBlbmQKKyAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8x CisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBB TkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVu dF9zYXRpcmUgcGFydF9kb2N1bWVudF8yCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVs IDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMworICAg ICAgICAgICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZf bGVhayhkdGl0bGUpKQorKDEyIHJvd3MpCisKKy0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3Nfcmxz X2Nhcm9sCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOworU0VM RUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRp ZDsKK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBub3ZlbAorTk9USUNFOiAgZl9sZWFrID0+ IG15IHNlY29uZCBub3ZlbAorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNjaWVuY2UgZmljdGlv bgorTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCitOT1RJQ0U6ICBm X2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2F0aXJl CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2NpZW5jZSB0ZXh0Ym9vaworTk9USUNFOiAgZl9sZWFr ID0+IG15IGhpc3RvcnkgYm9vaworTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHRlY2hub2xvZ3kg Ym9vaworTk9USUNFOiAgZl9sZWFrID0+IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCiAgZGlkIHwg Y2lkIHwgZGxldmVsIHwgICAgICBkYXV0aG9yICAgICAgfCAgICAgICAgIGR0aXRsZSAgICAgICAg ICAKIC0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwg bXkgZmlyc3Qgbm92ZWwKQEAgLTEwNDMsNiArMTUzOSw0OCBAQCBFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAgICAg ICAgIEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRp dGxlKSkKICgxMCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENI IChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRp ZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkgT1JERVIgQlkgZGlkOwor Tk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkg c2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCitO T1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVh ayA9PiBteSBmaXJzdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05P VElDRTogIGZfbGVhayA9PiBteSBzY2llbmNlIHRleHRib29rCitOT1RJQ0U6ICBmX2xlYWsgPT4g bXkgaGlzdG9yeSBib29rCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgdGVjaG5vbG9neSBib29r CitOT1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSB0ZWNobm9sb2d5IGJvb2sKKyBkaWQgfCBjaWQg fCBkbGV2ZWwgfCAgICAgIGRhdXRob3IgICAgICB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIAor LS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAxIHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBm aXJzdCBub3ZlbAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkg c2Vjb25kIG5vdmVsCisgICAzIHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBt eSBzY2llbmNlIHRleHRib29rCisgICA0IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9i ICAgfCBteSBmaXJzdCBzYXRpcmUKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19i b2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3Nfcmxz X2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA3IHwgIDk5IHwgICAgICAyIHwgcmVn cmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyAgIDggfCAgNTUgfCAgICAg IDIgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNhdGlyZQorICAgOSB8ICAxMSB8ICAgICAg MSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyAgMTAgfCAg OTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNvbWUgdGVjaG5vbG9neSBib29r CisoMTAgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUp KSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSkg T1JERVIgQlkgZGlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29y dAorICAgU29ydCBLZXk6IHBhcnRfZG9jdW1lbnQuZGlkCisgICBJbml0UGxhbiAxCisgICAgIC0+ ICBJbmRleCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAg SW5kZXggQ29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyAgIC0+ICBBcHBlbmQKKyAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8x CisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5jb2wxKSBB TkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVu dF9zYXRpcmUgcGFydF9kb2N1bWVudF8yCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoZGxldmVs IDw9IChJbml0UGxhbiAxKS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9ub25maWN0aW9uIHBhcnRfZG9jdW1lbnRfMworICAg ICAgICAgICAgICAgRmlsdGVyOiAoKGRsZXZlbCA8PSAoSW5pdFBsYW4gMSkuY29sMSkgQU5EIGZf bGVhayhkdGl0bGUpKQorKDEyIHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3Nfcmxz X2RhdmUKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZGF2ZTsKIFNFTEVD VCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBPUkRFUiBCWSBkaWQ7 CkBAIC0xMDY4LDYgKzE2MDYsMjkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiAgICAgICAgICAgIEluZGV4IENv bmQ6IChwZ3VzZXIgPSBDVVJSRU5UX1VTRVIpCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5k dGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRp dGxlKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVh ayA9PiBteSBzZWNvbmQgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZp Y3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorIGRpZCB8 IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICBkdGl0bGUgICAgICAg ICAgCistLS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgIDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8 IG15IGZpcnN0IG5vdmVsCisgICAyIHwgIDExIHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAg fCBteSBzZWNvbmQgbm92ZWwKKyAgIDYgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJv bCB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbgorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3Nf cmxzX2RhdmUgIHwgYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyg0IHJvd3MpCisKK0VYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBh cnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lk LCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcGFydF9kb2N1bWVudF9maWN0aW9u IHBhcnRfZG9jdW1lbnQKKyAgIEZpbHRlcjogKChjaWQgPCA1NSkgQU5EIChkbGV2ZWwgPD0gKElu aXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIEluaXRQbGFuIDEKKyAgICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNjb3VudAorICAgICAgICAg ICBJbmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorKDUgcm93cykKKwogLS0gcHAx IEVSUk9SCiBJTlNFUlQgSU5UTyBwYXJ0X2RvY3VtZW50IFZBTFVFUyAoMTAwLCAxMSwgNSwgJ3Jl Z3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBwcDEnKTsgLS0gZmFpbAogRVJST1I6ICBuZXcgcm93 IHZpb2xhdGVzIHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJwYXJ0X2RvY3Vt ZW50IgpAQCAtMTEwNiw2ICsxNjY3LDE3IEBAIE5PVElDRTogIGZfbGVhayA9PiB0ZXN0aW5nIFJM UyB3aXRoIHBhcnRpdGlvbnMKICAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZl ICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwogKDMgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJF IGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1 dGhvciwgZC5kdGl0bGUpKTsKK05PVElDRTogIGZfbGVhayA9PiBteSBmaXJzdCBzYXRpcmUKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTogIGZfbGVhayA9PiB0ZXN0aW5n IFJMUyB3aXRoIHBhcnRpdGlvbnMKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRob3Ig ICAgICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDQg fCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNhdGlyZQorICAg OCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisgMTAw IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0ZXN0aW5nIFJMUyB3aXRoIHBh cnRpdGlvbnMKKygzIHJvd3MpCisKIC0tIFR1cm4gb24gUkxTIGFuZCBjcmVhdGUgcG9saWN5IG9u IGNoaWxkIHRvIHNob3cgUkxTIGlzIGNoZWNrZWQgYmVmb3JlIGNvbnN0cmFpbnRzCiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQUxURVIgVEFCTEUgcGFydF9k b2N1bWVudF9zYXRpcmUgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKQEAgLTExMjEsNiArMTY5 MywxMSBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhk dGl0bGUpIE9SREVSIEJZIGRpZDsKIC0tLS0tKy0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLQogKDAgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAo ZCA6IHBhcnRfZG9jdW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMg KGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBj aWQgfCBkbGV2ZWwgfCBkYXV0aG9yIHwgZHRpdGxlIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tCisoMCByb3dzKQorCiAtLSBUaGUgcGFyZW50IGxvb2tzIHNhbWUgYXMg YmVmb3JlCiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRUxFQ1QgKiBGUk9N IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwpAQCAtMTE0 Niw2ICsxNzIzLDI5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2Rv Y3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAgICBJbmRleCBDb25kOiAocGd1 c2VyID0gQ1VSUkVOVF9VU0VSKQogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkg Q09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwor Tk9USUNFOiAgZl9sZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkg c2Vjb25kIG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCitO T1RJQ0U6ICBmX2xlYWsgPT4gYXdlc29tZSBzY2llbmNlIGZpY3Rpb24KKyBkaWQgfCBjaWQgfCBk bGV2ZWwgfCAgICAgIGRhdXRob3IgICAgICB8ICAgICAgICAgZHRpdGxlICAgICAgICAgIAorLS0t LS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAxIHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJz dCBub3ZlbAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2Vj b25kIG5vdmVsCisgICA2IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVh dCBzY2llbmNlIGZpY3Rpb24KKyAgIDkgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZl ICB8IGF3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uCisoNCByb3dzKQorCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3Vt ZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2 ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHBhcnRfZG9jdW1lbnRfZmljdGlvbiBwYXJ0X2Rv Y3VtZW50CisgICBGaWx0ZXI6ICgoY2lkIDwgNTUpIEFORCAoZGxldmVsIDw9IChJbml0UGxhbiAx KS5jb2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBJbmRl eCBTY2FuIHVzaW5nIHVhY2NvdW50X3BrZXkgb24gdWFjY291bnQKKyAgICAgICAgICAgSW5kZXgg Q29uZDogKHBndXNlciA9IENVUlJFTlRfVVNFUikKKyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBm cm9tIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0 bGUpIE9SREVSIEJZIGRpZDsKQEAgLTExOTAsNiArMTc5MCw0OCBAQCBFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKICAg ICAgICAgIEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWso ZHRpdGxlKSkKICgxMCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1B VENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChk LmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitOT1RJQ0U6ICBm X2xlYWsgPT4gbXkgZmlyc3Qgbm92ZWwKK05PVElDRTogIGZfbGVhayA9PiBteSBzZWNvbmQgbm92 ZWwKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2llbmNlIGZpY3Rpb24KK05PVElDRTogIGZf bGVhayA9PiBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorTk9USUNFOiAgZl9sZWFrID0+IG15IGZp cnN0IHNhdGlyZQorTk9USUNFOiAgZl9sZWFrID0+IGdyZWF0IHNhdGlyZQorTk9USUNFOiAgZl9s ZWFrID0+IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworTk9USUNFOiAgZl9sZWFrID0+IG15 IHNjaWVuY2UgdGV4dGJvb2sKK05PVElDRTogIGZfbGVhayA9PiBteSBoaXN0b3J5IGJvb2sKK05P VElDRTogIGZfbGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKK05PVElDRTogIGZfbGVhayA9 PiBhd2Vzb21lIHRlY2hub2xvZ3kgYm9vaworIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1 dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwK KyAgIDIgfCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNlY29uZCBub3Zl bAorICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5j ZSBmaWN0aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vz b21lIHNjaWVuY2UgZmljdGlvbgorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNf Y2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19k YXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworICAgMyB8ICA5OSB8ICAgICAgMiB8 IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2NpZW5jZSB0ZXh0Ym9vaworICAgNSB8ICA5OSB8ICAg ICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgaGlzdG9yeSBib29rCisgICA3IHwgIDk5IHwg ICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyAgMTAg fCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8IGF3ZXNvbWUgdGVjaG5vbG9neSBi b29rCisoMTEgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0 bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxl KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIEluaXRQbGFuIDEKKyAg ICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdWFjY291bnRfcGtleSBvbiB1YWNjb3VudAorICAgICAg ICAgICBJbmRleCBDb25kOiAocGd1c2VyID0gQ1VSUkVOVF9VU0VSKQorICAgLT4gIFNlcSBTY2Fu IG9uIHBhcnRfZG9jdW1lbnRfZmljdGlvbiBwYXJ0X2RvY3VtZW50XzEKKyAgICAgICAgIEZpbHRl cjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAg IC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X3NhdGlyZSBwYXJ0X2RvY3VtZW50XzIKKyAg ICAgICAgIEZpbHRlcjogKChkbGV2ZWwgPD0gKEluaXRQbGFuIDEpLmNvbDEpIEFORCBmX2xlYWso ZHRpdGxlKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2RvY3VtZW50X25vbmZpY3Rpb24gcGFy dF9kb2N1bWVudF8zCisgICAgICAgICBGaWx0ZXI6ICgoZGxldmVsIDw9IChJbml0UGxhbiAxKS5j b2wxKSBBTkQgZl9sZWFrKGR0aXRsZSkpCisoMTAgcm93cykKKwogLS0gb25seSBvd25lciBjYW4g Y2hhbmdlIHBvbGljaWVzCiBBTFRFUiBQT0xJQ1kgcHAxIE9OIHBhcnRfZG9jdW1lbnQgVVNJTkcg KHRydWUpOyAgICAtLWZhaWwKIEVSUk9SOiAgbXVzdCBiZSBvd25lciBvZiB0YWJsZSBwYXJ0X2Rv Y3VtZW50CkBAIC0xMjE0LDYgKzE4NTYsMjEgQEAgTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3Rv cnkgYm9vawogICAgNSB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IGhpc3Rv cnkgYm9vawogKDUgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRD SCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5k aWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworTk9USUNFOiAgZl9s ZWFrID0+IG15IGZpcnN0IG5vdmVsCitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgc2Vjb25kIG5vdmVs CitOT1RJQ0U6ICBmX2xlYWsgPT4gbXkgZmlyc3Qgc2F0aXJlCitOT1RJQ0U6ICBmX2xlYWsgPT4g bXkgc2NpZW5jZSB0ZXh0Ym9vaworTk9USUNFOiAgZl9sZWFrID0+IG15IGhpc3RvcnkgYm9vawor IGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICBkYXV0aG9yICAgICB8ICAgICAgIGR0aXRsZSAgICAg ICAgCistLS0tLSstLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgIDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgfCBteSBmaXJz dCBub3ZlbAorICAgMiB8ICAxMSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNlY29u ZCBub3ZlbAorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IGZpcnN0 IHNhdGlyZQorICAgMyB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiB8IG15IHNjaWVu Y2UgdGV4dGJvb2sKKyAgIDUgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgfCBteSBo aXN0b3J5IGJvb2sKKyg1IHJvd3MpCisKIC0tIHZpZXdwb2ludCBmcm9tIHJsc19yZWdyZXNfY2Fy b2wgYWdhaW4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBT RUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkg ZGlkOwpAQCAtMTIzOSw2ICsxODk2LDI5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogICAgICAgICAgRmlsdGVy OiAoKGRhdXRob3IgPSBDVVJSRU5UX1VTRVIpIEFORCBmX2xlYWsoZHRpdGxlKSkKICg3IHJvd3Mp CiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3Vt ZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2 ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzY2ll bmNlIGZpY3Rpb24KK05PVElDRTogIGZfbGVhayA9PiBncmVhdCBzYXRpcmUKK05PVElDRTogIGZf bGVhayA9PiBncmVhdCB0ZWNobm9sb2d5IGJvb2sKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAg IGRhdXRob3IgICAgICB8ICAgICAgICBkdGl0bGUgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDYgfCAg MTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNjaWVuY2UgZmljdGlvbgor ICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0aXJlCisg ICA3IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0ZWNobm9sb2d5 IGJvb2sKKygzIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRp dGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRs ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBwYXJ0X2Rv Y3VtZW50X2ZpY3Rpb24gcGFydF9kb2N1bWVudF8xCisgICAgICAgICBGaWx0ZXI6ICgoZGF1dGhv ciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQorICAgLT4gIFNlcSBTY2FuIG9u IHBhcnRfZG9jdW1lbnRfc2F0aXJlIHBhcnRfZG9jdW1lbnRfMgorICAgICAgICAgRmlsdGVyOiAo KGRhdXRob3IgPSBDVVJSRU5UX1VTRVIpIEFORCBmX2xlYWsoZHRpdGxlKSkKKyAgIC0+ICBTZXEg U2NhbiBvbiBwYXJ0X2RvY3VtZW50X25vbmZpY3Rpb24gcGFydF9kb2N1bWVudF8zCisgICAgICAg ICBGaWx0ZXI6ICgoZGF1dGhvciA9IENVUlJFTlRfVVNFUikgQU5EIGZfbGVhayhkdGl0bGUpKQor KDcgcm93cykKKwogLS0gZGF0YWJhc2Ugc3VwZXJ1c2VyIGRvZXMgYnlwYXNzIFJMUyBwb2xpY3kg d2hlbiBlbmFibGVkCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9OOwpAQCAtMTI1OCw2ICsxOTM4LDIyIEBAIFNFTEVDVCAqIEZST00gcGFydF9kb2N1 bWVudCBPUkRFUiBCWSBkaWQ7CiAgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2 ZSAgfCB0ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKICgxMSByb3dzKQogCitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAo ZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworIGRpZCB8IGNp ZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAg ICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgMSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Jv YiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAgIDIgfCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19i b2IgICB8IG15IHNlY29uZCBub3ZlbAorICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3Nfcmxz X2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBmaWN0aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVn cmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHNjaWVuY2UgZmljdGlvbgorICAgNCB8ICA1NSB8ICAg ICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwg ICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAg ICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwor ICAgMyB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgc2NpZW5jZSB0ZXh0 Ym9vaworICAgNSB8ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgaGlzdG9y eSBib29rCisgICA3IHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCB0 ZWNobm9sb2d5IGJvb2sKKyAgMTAgfCAgOTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19kYXZlICB8 IGF3ZXNvbWUgdGVjaG5vbG9neSBib29rCisoMTEgcm93cykKKwogU0VMRUNUICogRlJPTSBwYXJ0 X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBieSBkaWQ7CiAgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAg ICBkYXV0aG9yICAgICAgfCAgICAgICAgICAgZHRpdGxlICAgICAgICAgICAgCiAtLS0tLSstLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkBAIC0xMjY2LDYgKzE5NjIsMTQgQEAgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3Nh dGlyZSBPUkRFUiBieSBkaWQ7CiAgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2 ZSAgfCB0ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKICgzIHJvd3MpCiAKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSkgQ09M VU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworIGRp ZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAg ICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3Nf cmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVz c19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNz X3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucworKDMgcm93cykKKwogLS0g ZGF0YWJhc2Ugbm9uLXN1cGVydXNlciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBS TFMgcG9saWN5IHdoZW4gZGlzYWJsZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKQEAgLTEyODUsNiAr MTk4OSwyMiBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JERVIgQlkgZGlkOwogIDEw MCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBw YXJ0aXRpb25zCiAoMTEgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBN QVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWws IGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAgIGRhdXRo b3IgICAgICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IDEgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IG5vdmVsCisg ICAyIHwgIDExIHwgICAgICAyIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBzZWNvbmQgbm92ZWwK KyAgIDYgfCAgMTEgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNjaWVuY2Ug ZmljdGlvbgorICAgOSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgYXdlc29t ZSBzY2llbmNlIGZpY3Rpb24KKyAgIDQgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2Ig ICB8IG15IGZpcnN0IHNhdGlyZQorICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nh cm9sIHwgZ3JlYXQgc2F0aXJlCisgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2 ZSAgfCB0ZXN0aW5nIFJMUyB3aXRoIHBhcnRpdGlvbnMKKyAgIDMgfCAgOTkgfCAgICAgIDIgfCBy ZWdyZXNzX3Jsc19ib2IgICB8IG15IHNjaWVuY2UgdGV4dGJvb2sKKyAgIDUgfCAgOTkgfCAgICAg IDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNyB8ICA5OSB8ICAg ICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgdGVjaG5vbG9neSBib29rCisgIDEwIHwg IDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hub2xvZ3kgYm9v aworKDExIHJvd3MpCisKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIg YnkgZGlkOwogIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAgICAgIHwgICAgICAg ICAgIGR0aXRsZSAgICAgICAgICAgIAogLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI5Myw2ICsyMDEzLDE0 IEBAIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUgT1JERVIgYnkgZGlkOwogIDEw MCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMgd2l0aCBw YXJ0aXRpb25zCiAoMyByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1B VENIIChkIDogcGFydF9kb2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5k bGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKKyBkaWQgfCBjaWQgfCBkbGV2ZWwgfCAgICAg IGRhdXRob3IgICAgICB8ICAgICAgICAgICBkdGl0bGUgICAgICAgICAgICAKKy0tLS0tKy0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgIDQgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGZpcnN0IHNh dGlyZQorICAgOCB8ICA1NSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2F0 aXJlCisgMTAwIHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCB0ZXN0aW5nIFJM UyB3aXRoIHBhcnRpdGlvbnMKKygzIHJvd3MpCisKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBw bHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtMTMx MiwyMSArMjA0MCw0OSBAQCBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgT1JERVIgYnkgZGlk OwogIDEwMCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMg d2l0aCBwYXJ0aXRpb25zCiAoMTEgcm93cykKIAotU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 X3NhdGlyZSBPUkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1B VENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwg ZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhv ciAgICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAogLS0tLS0rLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg MSB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgbm92ZWwKKyAg IDIgfCAgMTEgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNlY29uZCBub3ZlbAor ICAgNiB8ICAxMSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgc2NpZW5jZSBm aWN0aW9uCisgICA5IHwgIDExIHwgICAgICAxIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21l IHNjaWVuY2UgZmljdGlvbgogICAgNCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAg IHwgbXkgZmlyc3Qgc2F0aXJlCiAgICA4IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fy b2wgfCBncmVhdCBzYXRpcmUKICAxMDAgfCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZl ICB8IHRlc3RpbmcgUkxTIHdpdGggcGFydGl0aW9ucwotKDMgcm93cykKKyAgIDMgfCAgOTkgfCAg ICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IHNjaWVuY2UgdGV4dGJvb2sKKyAgIDUgfCAg OTkgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19ib2IgICB8IG15IGhpc3RvcnkgYm9vaworICAgNyB8 ICA5OSB8ICAgICAgMiB8IHJlZ3Jlc3NfcmxzX2Nhcm9sIHwgZ3JlYXQgdGVjaG5vbG9neSBib29r CisgIDEwIHwgIDk5IHwgICAgICAyIHwgcmVncmVzc19ybHNfZGF2ZSAgfCBhd2Vzb21lIHRlY2hu b2xvZ3kgYm9vaworKDExIHJvd3MpCiAKLS0tIFdoZW4gUkxTIGRpc2FibGVkLCBvdGhlciB1c2Vy cyBnZXQgRVJST1IuCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7 Ci1TRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKK1NFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9z YXRpcmUgT1JERVIgYnkgZGlkOworIGRpZCB8IGNpZCB8IGRsZXZlbCB8ICAgICAgZGF1dGhvciAg ICAgIHwgICAgICAgICAgIGR0aXRsZSAgICAgICAgICAgIAorLS0tLS0rLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgNCB8 ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2JvYiAgIHwgbXkgZmlyc3Qgc2F0aXJlCisgICA4 IHwgIDU1IHwgICAgICAyIHwgcmVncmVzc19ybHNfY2Fyb2wgfCBncmVhdCBzYXRpcmUKKyAxMDAg fCAgNTUgfCAgICAgIDEgfCByZWdyZXNzX3Jsc19kYXZlICB8IHRlc3RpbmcgUkxTIHdpdGggcGFy dGl0aW9ucworKDMgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRD SCAoZCA6IHBhcnRfZG9jdW1lbnRfc2F0aXJlKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxl dmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CisgZGlkIHwgY2lkIHwgZGxldmVsIHwgICAgICBk YXV0aG9yICAgICAgfCAgICAgICAgICAgZHRpdGxlICAgICAgICAgICAgCistLS0tLSstLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICA0IHwgIDU1IHwgICAgICAxIHwgcmVncmVzc19ybHNfYm9iICAgfCBteSBmaXJzdCBzYXRp cmUKKyAgIDggfCAgNTUgfCAgICAgIDIgfCByZWdyZXNzX3Jsc19jYXJvbCB8IGdyZWF0IHNhdGly ZQorIDEwMCB8ICA1NSB8ICAgICAgMSB8IHJlZ3Jlc3NfcmxzX2RhdmUgIHwgdGVzdGluZyBSTFMg d2l0aCBwYXJ0aXRpb25zCisoMyByb3dzKQorCistLSBXaGVuIFJMUyBkaXNhYmxlZCwgb3RoZXIg dXNlcnMgZ2V0IEVSUk9SLgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19k YXZlOworU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1l bnQgT1JERVIgYnkgZGlkOwogRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ct bGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAicGFydF9kb2N1bWVudCIKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50KSBDT0xVTU5T IChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitFUlJPUjog IHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9y IHRhYmxlICJwYXJ0X2RvY3VtZW50IgogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGly ZSBPUkRFUiBieSBkaWQ7CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1s ZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxlICJwYXJ0X2RvY3VtZW50X3NhdGlyZSIKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3Nh dGlyZSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRs ZSkpOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJp dHkgcG9saWN5IGZvciB0YWJsZSAicGFydF9kb2N1bWVudF9zYXRpcmUiCiAtLSBDaGVjayBiZWhh dmlvciB3aXRoIGEgcG9saWN5IHRoYXQgdXNlcyBhIFN1YlBsYW4gbm90IGFuIEluaXRQbGFuLgog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFVCByb3dfc2Vj dXJpdHkgVE8gT047CkBAIC0xMzYyLDEwICsyMTE4LDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBkZXBlbmRlbnQ7IC0tIEFmdGVyIGRyb3AsIHNob3VsZCBiZSB1bnF1YWxp ZmllCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRF IFRBQkxFIHJlYzEgKHggaW50ZWdlciwgeSBpbnRlZ2VyKTsKIENSRUFURSBQT0xJQ1kgcjEgT04g cmVjMSBVU0lORyAoeCA9IChTRUxFQ1Qgci54IEZST00gcmVjMSByIFdIRVJFIHkgPSByLnkpKTsK K0NSRUFURSBQUk9QRVJUWSBHUkFQSCBydHBnIFZFUlRFWCBUQUJMRVMgKHJlYzEgS0VZICh4KSk7 CiBBTFRFUiBUQUJMRSByZWMxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsgLS0g ZmFpbCwgZGlyZWN0IHJlY3Vyc2lvbgogRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0 ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIGRp cmVjdCByZWN1cnNpb24KK0VSUk9SOiAgaW5maW5pdGUgcmVjdXJzaW9uIGRldGVjdGVkIGluIHBv bGljeSBmb3IgcmVsYXRpb24gInJlYzEiCiAtLQogLS0gTXV0dWFsIHJlY3Vyc2lvbgogLS0KQEAg LTEzNzcsNiArMjEzNiw4IEBAIEFMVEVSIFRBQkxFIHJlYzIgRU5BQkxFIFJPVyBMRVZFTCBTRUNV UklUWTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNU ICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uCiBFUlJPUjogIGluZmlu aXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54 LCByLnkpKTsgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbgorRVJST1I6ICBpbmZpbml0ZSByZWN1 cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKIC0tCiAtLSBNdXR1 YWwgcmVjdXJzaW9uIHZpYSB2aWV3cwogLS0KQEAgLTEzODksNiArMjE1MCw4IEBAIEFMVEVSIFBP TElDWSByMiBPTiByZWMyIFVTSU5HIChhID0gKFNFTEVDVCB4IEZST00gcmVjMXYgV0hFUkUgeSA9 IGIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNU ICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSB2aWV3cwogRVJS T1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAi cmVjMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENP TFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCitF UlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9u ICJyZWMxIgogLS0KIC0tIE11dHVhbCByZWN1cnNpb24gdmlhIC5zLmIgdmlld3MKIC0tCkBAIC0x NDA1LDYgKzIxNjgsMjcgQEAgQ1JFQVRFIFBPTElDWSByMiBPTiByZWMyIFVTSU5HIChhID0gKFNF TEVDVCB4IEZST00gcmVjMXYgV0hFUkUgeSA9IGIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1 YWwgcmVjdXJzaW9uIHZpYSBzLmIuIHZpZXdzCiBFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBk ZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFp bCwgbXV0dWFsIHJlY3Vyc2lvbiB2aWEgcy5iLiB2aWV3cworRVJST1I6ICBpbmZpbml0ZSByZWN1 cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKKy0tCistLSBEaXJl Y3QgYW5kIG11dHVhbCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCistLQorU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVSIFBPTElDWSByMSBPTiByZWMx IFVTSU5HICh4ID0gKFNFTEVDVCB4IEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJl YzEpIENPTFVNTlMgKHIueCwgci55KSkgV0hFUkUgeCA9IHkpKTsKK1NFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWls LCBkaXJlY3QgcmVjdXJzaW9uIHZpYSBHUkFQSF9UQUJMRQorRVJST1I6ICBpbmZpbml0ZSByZWN1 cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAicmVjMSIKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7 IC0tIGZhaWwsIGRpcmVjdCByZWN1cnNpb24gdmlhIEdSQVBIX1RBQkxFCitFUlJPUjogIGluZmlu aXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJyZWMxIgorU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0FMVEVSIFBST1BFUlRZ IEdSQVBIIHJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJlYzIgS0VZIChhKSk7CitBTFRFUiBQT0xJ Q1kgcjEgT04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1QgYSBGUk9NIEdSQVBIX1RBQkxFIChydHBn IE1BVENIIChyOiByZWMyKSBDT0xVTU5TIChyLmEsIHIuYikpIFdIRVJFIGIgPSB5KSk7CitBTFRF UiBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBGUk9NIEdSQVBIX1RBQkxF IChydHBnIE1BVENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpV0hFUkUgeSA9IGIpKTsK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworU0VMRUNUICogRlJP TSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSBHUkFQSF9UQUJMRQorRVJS T1I6ICBpbmZpbml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAi cmVjMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENP TFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIEdSQVBIX1RB QkxFCitFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3RlZCBpbiBwb2xpY3kgZm9yIHJl bGF0aW9uICJyZWMxIgogLS0KIC0tIHJlY3Vyc2l2ZSBSTFMgYW5kIFZJRVdzIGluIHBvbGljeQog LS0KQEAgLTE0MTMsNyArMjE5Nyw5IEBAIENSRUFURSBUQUJMRSBzMSAoYSBpbnQsIGIgdGV4dCk7 CiBJTlNFUlQgSU5UTyBzMSAoU0VMRUNUIHgsIHB1YmxpYy5maXBzaGFzaCh4Ojp0ZXh0KSBGUk9N IGdlbmVyYXRlX3NlcmllcygtMTAsMTApIHgpOwogQ1JFQVRFIFRBQkxFIHMyICh4IGludCwgeSB0 ZXh0KTsKIElOU0VSVCBJTlRPIHMyIChTRUxFQ1QgeCwgcHVibGljLmZpcHNoYXNoKHg6OnRleHQp IEZST00gZ2VuZXJhdGVfc2VyaWVzKC02LDYpIHgpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIHJ2 dHBnIFZFUlRFWCBUQUJMRVMgKHMxIEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHMxLCBzMiBU TyByZWdyZXNzX3Jsc19ib2I7CitHUkFOVCBTRUxFQ1QgT04gcnZ0cGcgVE8gcmVncmVzc19ybHNf Ym9iOwogQ1JFQVRFIFBPTElDWSBwMSBPTiBzMSBVU0lORyAoYSBpbiAoc2VsZWN0IHggZnJvbSBz MiB3aGVyZSB5IGxpa2UgJyUyZiUnKSk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHMyIFVTSU5HICh4 IGluIChzZWxlY3QgYSBmcm9tIHMxIHdoZXJlIGIgbGlrZSAnJTIyJScpKTsKIENSRUFURSBQT0xJ Q1kgcDMgT04gczEgRk9SIElOU0VSVCBXSVRIIENIRUNLIChhID0gKFNFTEVDVCBhIEZST00gczEp KTsKQEAgLTE0MjMsNiArMjIwOSw4IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgdjIgQVMgU0VMRUNUICogRlJPTSBzMiBXSEVSRSB5IGxp a2UgJyVhZiUnOwogU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWsoYik7IC0tIGZhaWwgKGlu ZmluaXRlIHJlY3Vyc2lvbikKIEVSUk9SOiAgaW5maW5pdGUgcmVjdXJzaW9uIGRldGVjdGVkIGlu IHBvbGljeSBmb3IgcmVsYXRpb24gInMxIgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnZ0 cGcgTUFUQ0ggKHMgOiBzMSkgV0hFUkUgZl9sZWFrKHMuYikgQ09MVU1OUyAocy5hLCBzLmIpKTsg LS0gZmFpbCAoaW5maW5pdGUgcmVjdXJzaW9uKQorRVJST1I6ICBpbmZpbml0ZSByZWN1cnNpb24g ZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAiczEiCiBJTlNFUlQgSU5UTyBzMSBWQUxV RVMgKDEsICdmb28nKTsgLS0gZmFpbCAoaW5maW5pdGUgcmVjdXJzaW9uKQogRVJST1I6ICBpbmZp bml0ZSByZWN1cnNpb24gZGV0ZWN0ZWQgaW4gcG9saWN5IGZvciByZWxhdGlvbiAiczEiCiBTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwpAQCAtMTQ0Niw2ICsyMjM0 LDIzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBvbmx5IHMxIFdIRVJFIGZf bGVhayhiKTsKICAgICAgICAgICAgRmlsdGVyOiAoKCh4ICUgMikgPSAwKSBBTkQgKHkgfn4gJyUy ZiUnOjp0ZXh0KSkKICg1IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ2dHBn IE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5iKSk7CitO T1RJQ0U6ICBmX2xlYWsgPT4gMDNiMjY5NDQ4OTA5MjlmZjc1MTY1M2FjYjJmMmFmNzkKKyBhICB8 ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgLTYgfCAwM2IyNjk0NDg5MDkyOWZmNzUxNjUzYWNiMmYyYWY3 OQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKHJ2dHBnIE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwg cy5iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHMxCisgICBGaWx0ZXI6ICgoQU5Z IChhID0gKGhhc2hlZCBTdWJQbGFuIDEpLmNvbDEpKSBBTkQgZl9sZWFrKGIpKQorICAgU3ViUGxh biAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiBzMgorICAgICAgICAgICBGaWx0ZXI6ICgoKHggJSAy KSA9IDApIEFORCAoeSB+fiAnJTJmJSc6OnRleHQpKQorKDUgcm93cykKKwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIEFMVEVSIFBPTElDWSBwMSBPTiBzMSBV U0lORyAoYSBpbiAoc2VsZWN0IHggZnJvbSB2MikpOyAtLSB1c2luZyBWSUVXIGluIFJMUyBwb2xp Y3kKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwpAQCAtMTQ2Niw2 ICsyMjcxLDIzIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzMSBXSEVSRSBm X2xlYWsoYik7CiAgICAgICAgICAgIEZpbHRlcjogKCgoeCAlIDIpID0gMCkgQU5EICh5IH5+ICcl YWYlJzo6dGV4dCkpCiAoNSByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRw ZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwor Tk9USUNFOiAgZl9sZWFrID0+IDAzYjI2OTQ0ODkwOTI5ZmY3NTE2NTNhY2IyZjJhZjc5CisgYSAg fCAgICAgICAgICAgICAgICBiICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIC02IHwgMDNiMjY5NDQ4OTA5MjlmZjc1MTY1M2FjYjJmMmFm NzkKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEs IHMuYikpOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBzMQorICAgRmlsdGVyOiAoKEFO WSAoYSA9IChoYXNoZWQgU3ViUGxhbiAxKS5jb2wxKSkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBs YW4gMQorICAgICAtPiAgU2VxIFNjYW4gb24gczIKKyAgICAgICAgICAgRmlsdGVyOiAoKCh4ICUg MikgPSAwKSBBTkQgKHkgfn4gJyVhZiUnOjp0ZXh0KSkKKyg1IHJvd3MpCisKIFNFTEVDVCAoU0VM RUNUIHggRlJPTSBzMSBMSU1JVCAxKSB4eCwgKiBGUk9NIHMyIFdIRVJFIHkgbGlrZSAnJTI4JSc7 CiAgeHggfCB4ICB8ICAgICAgICAgICAgICAgIHkgICAgICAgICAgICAgICAgIAogLS0tLSstLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE0OTEsNiArMjMxMyw4IEBA IEFMVEVSIFBPTElDWSBwMiBPTiBzMiBVU0lORyAoeCBpbiAoc2VsZWN0IGEgZnJvbSBzMSB3aGVy ZSBiIGxpa2UgJyVkMiUnKSk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfcmxz X2JvYjsKIFNFTEVDVCAqIEZST00gczEgV0hFUkUgZl9sZWFrKGIpOwktLSBmYWlsIChpbmZpbml0 ZSByZWN1cnNpb24gdmlhIHZpZXcpCiBFUlJPUjogIGluZmluaXRlIHJlY3Vyc2lvbiBkZXRlY3Rl ZCBpbiBwb2xpY3kgZm9yIHJlbGF0aW9uICJzMSIKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHJ2dHBnIE1BVENIIChzIDogczEpIFdIRVJFIGZfbGVhayhzLmIpIENPTFVNTlMgKHMuYSwgcy5i KSk7CS0tIGZhaWwgKGluZmluaXRlIHJlY3Vyc2lvbiB2aWEgdmlldykKK0VSUk9SOiAgaW5maW5p dGUgcmVjdXJzaW9uIGRldGVjdGVkIGluIHBvbGljeSBmb3IgcmVsYXRpb24gInMxIgogLS0gcHJl cGFyZWQgc3RhdGVtZW50IHdpdGggcmVncmVzc19ybHNfYWxpY2UgcHJpdmlsZWdlCiBQUkVQQVJF IHAxKGludCkgQVMgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBhIDw9ICQxOwogRVhFQ1VURSBwMSgy KTsKQEAgLTE1MTMsNiArMjMzNywyNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDEo Mik7CiAgICAgICAgICBGaWx0ZXI6ICgoYSA8PSAyKSBBTkQgKChhICUgMikgPSAwKSkKICg3IHJv d3MpCiAKK1BSRVBBUkUgcHBnMShpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0 cGcgTUFUQ0ggKHQgOiB0MSkgV0hFUkUgdC5hIDw9ICQxIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5i KSk7CitFWEVDVVRFIHBwZzEoMik7CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQor IDEwMiB8IDIgfCBiYmIKKyAyMDIgfCAyIHwgYmNkCisgMzAyIHwgMiB8IHl5eQorKDMgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzEoMik7CisgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFf MQorICAgICAgICAgRmlsdGVyOiAoKGEgPD0gMikgQU5EICgoYSAlIDIpID0gMCkpCisgICAtPiAg U2VxIFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPD0gMikgQU5EICgoYSAl IDIpID0gMCkpCisgICAtPiAgU2VxIFNjYW4gb24gdDMgdDFfMworICAgICAgICAgRmlsdGVyOiAo KGEgPD0gMikgQU5EICgoYSAlIDIpID0gMCkpCisoNyByb3dzKQorCiAtLSBzdXBlcnVzZXIgaXMg YWxsb3dlZCB0byBieXBhc3MgUkxTIGNoZWNrcwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OwogU0VUIHJvd19zZWN1cml0eSBUTyBPRkY7CkBAIC0xNTc5LDYgKzI0MjQsMjkgQEAgRVhQTEFJ TiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxKDIpOwogICAgICAgICAgRmlsdGVyOiAoYSA8PSAyKQog KDcgcm93cykKIAorRVhFQ1VURSBwcGcxKDIpOworIGlkICB8IGEgfCAgYiAgCistLS0tLSstLS0r LS0tLS0KKyAxMDEgfCAxIHwgYWJhCisgMTAyIHwgMiB8IGJiYgorIDIwMSB8IDEgfCBhYmMKKyAy MDIgfCAyIHwgYmNkCisgMzAxIHwgMSB8IHh4eAorIDMwMiB8IDIgfCB5eXkKKyg2IHJvd3MpCisK K0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcxKDIpOworICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBT ZXEgU2NhbiBvbiB0MSB0MV8xCisgICAgICAgICBGaWx0ZXI6IChhIDw9IDIpCisgICAtPiAgU2Vx IFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoYSA8PSAyKQorICAgLT4gIFNlcSBT Y2FuIG9uIHQzIHQxXzMKKyAgICAgICAgIEZpbHRlcjogKGEgPD0gMikKKyg3IHJvd3MpCisKIFBS RVBBUkUgcDIoaW50KSBBUyBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGEgPSAkMTsKIEVYRUNVVEUg cDIoMik7CiAgaWQgIHwgYSB8ICBiICAKQEAgLTE2MDAsNiArMjQ2OCwyNyBAQCBFWFBMQUlOIChD T1NUUyBPRkYpIEVYRUNVVEUgcDIoMik7CiAgICAgICAgICBGaWx0ZXI6IChhID0gMikKICg3IHJv d3MpCiAKK1BSRVBBUkUgcHBnMihpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0 cGcgTUFUQ0ggKHQgOiB0MSkgV0hFUkUgdC5hID0gJDEgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIp KTsKK0VYRUNVVEUgcHBnMigyKTsKKyBpZCAgfCBhIHwgIGIgIAorLS0tLS0rLS0tKy0tLS0tCisg MTAyIHwgMiB8IGJiYgorIDIwMiB8IDIgfCBiY2QKKyAzMDIgfCAyIHwgeXl5CisoMyByb3dzKQor CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcHBnMigyKTsKKyAgICAgICAgUVVFUlkgUExB TiAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAg U2VxIFNjYW4gb24gdDEgdDFfMQorICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisgICAtPiAgU2Vx IFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisgICAtPiAgU2VxIFNj YW4gb24gdDMgdDFfMworICAgICAgICAgRmlsdGVyOiAoYSA9IDIpCisoNyByb3dzKQorCiAtLSBh bHNvLCBjYXNlIHdoZW4gcHJpdmlsZWdlIHN3aXRjaCBmcm9tIHN1cGVydXNlcgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9O OwpAQCAtMTYyMyw2ICsyNTEyLDI2IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwMigy KTsKICAgICAgICAgIEZpbHRlcjogKChhID0gMikgQU5EICgoYSAlIDIpID0gMCkpCiAoNyByb3dz KQogCitFWEVDVVRFIHBwZzIoMik7CisgaWQgIHwgYSB8ICBiICAKKy0tLS0tKy0tLSstLS0tLQor IDEwMiB8IDIgfCBiYmIKKyAyMDIgfCAyIHwgYmNkCisgMzAyIHwgMiB8IHl5eQorKDMgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzIoMik7CisgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzEK KyAgICAgICAgIEZpbHRlcjogKChhID0gMikgQU5EICgoYSAlIDIpID0gMCkpCisgICAtPiAgU2Vx IFNjYW4gb24gdDIgdDFfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPSAyKSBBTkQgKChhICUgMikg PSAwKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8zCisgICAgICAgICBGaWx0ZXI6ICgoYSA9 IDIpIEFORCAoKGEgJSAyKSA9IDApKQorKDcgcm93cykKKwogLS0KIC0tIFVQREFURSAvIERFTEVU RSBhbmQgUm93LWxldmVsIHNlY3VyaXR5CiAtLQpAQCAtMTkwMyw2ICsyODEyLDggQEAgR1JBTlQg QUxMIE9OIGIxIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgYnYxIFdJVEggKHNlY3VyaXR5X2JhcnJpZXIp IEFTIFNFTEVDVCAqIEZST00gYjEgV0hFUkUgYSA+IDAgV0lUSCBDSEVDSyBPUFRJT047CiBHUkFO VCBBTEwgT04gYnYxIFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IHNidnBnIFZFUlRFWCBUQUJMRVMgKGJ2MSBLRVkgKGEpKTsKK0dSQU5UIEFMTCBPTiBzYnZwZyBU TyByZWdyZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfY2Fyb2w7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gYnYxIFdIRVJFIGZf bGVhayhiKTsKICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIApA QCAtMTkyOCw2ICsyODM5LDMwIEBAIE5PVElDRTogIGZfbGVhayA9PiA0YTQ0ZGMxNTM2NDIwNGE4 MGZlODBlOTAzOTQ1NWNjMQogIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEK ICg1IHJvd3MpCiAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoc2J2cGcgTUFUQ0ggKGIgOiBidjEpIFdIRVJFIGZfbGVhayhiLmIpIENPTFVNTlMgKGIuYSwg Yi5iKSk7CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNj YW4gb24gYnYxCisgICBGaWx0ZXI6IGZfbGVhayhidjEuYikKKyAgIC0+ICBTZXEgU2NhbiBvbiBi MQorICAgICAgICAgRmlsdGVyOiAoKGEgPiAwKSBBTkQgKChhICUgMikgPSAwKSkKKyg0IHJvd3Mp CisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHNidnBnIE1BVENIIChiIDogYnYxKSBXSEVS RSBmX2xlYWsoYi5iKSBDT0xVTU5TIChiLmEsIGIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGQ0 NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGIyMjc3 NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKK05PVElDRTogIGZfbGVhayA9PiBlN2Y2YzAxMTc3 NmU4ZGI3Y2QzMzBiNTQxNzRmZDc2ZgorTk9USUNFOiAgZl9sZWFrID0+IDJjNjI0MjMyY2RkMjIx NzcxMjk0ZGZiYjMxMGFjYTAwCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGE0NGRjMTUzNjQyMDRhODBm ZTgwZTkwMzk0NTVjYzEKKyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAor LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDIgfCBkNDczNWUzYTI2 NWUxNmVlZTAzZjU5NzE4YjliNWQwMworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2 NDFkMDIKKyAgNiB8IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYy NDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgw ZTkwMzk0NTVjYzEKKyg1IHJvd3MpCisKIElOU0VSVCBJTlRPIGJ2MSBWQUxVRVMgKC0xLCAneHh4 Jyk7IC0tIHNob3VsZCBmYWlsIHZpZXcgV0NPCiBFUlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93 LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgImIxIgogSU5TRVJUIElOVE8gYnYxIFZB TFVFUyAoMTEsICd4eHgnKTsgLS0gc2hvdWxkIGZhaWwgUkxTIGNoZWNrCkBAIC0yMzYzLDcgKzMy OTgsOCBAQCBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MSAoYSBpbnQsIGIgdGV4dCk7CiBD UkVBVEUgVEFCTEUgejIgKGEgaW50LCBiIHRleHQpOwotR1JBTlQgU0VMRUNUIE9OIHoxLHoyIFRP IHJlZ3Jlc3NfcmxzX2dyb3VwMSwgcmVncmVzc19ybHNfZ3JvdXAyLAorQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGd0cGcgVkVSVEVYIFRBQkxFUyAoejEgS0VZIChhKSwgejIgS0VZIChhKSk7CitHUkFO VCBTRUxFQ1QgT04gejEsejIsIGd0cGcgVE8gcmVncmVzc19ybHNfZ3JvdXAxLCByZWdyZXNzX3Js c19ncm91cDIsCiAgICAgcmVncmVzc19ybHNfYm9iLCByZWdyZXNzX3Jsc19jYXJvbDsKIElOU0VS VCBJTlRPIHoxIFZBTFVFUwogICAgICgxLCAnYWJhJyksCkBAIC0yMzkwLDYgKzMzMjYsMjIgQEAg RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKICAg IEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHou YikgQ09MVU1OUyAoei5hLCB6LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTog IGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgorIDQgfCBkYWQK KygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHou YikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZp bHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIFBSRVBBUkUg cGxhbmNhY2hlX3Rlc3QgQVMgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBM QUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3Q7CiAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgIApAQCAtMjM5OCw2ICszMzUwLDE0IEBAIEVYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKICAgIEZpbHRlcjogKCgoYSAlIDIp ID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rl c3QgQVMgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVS RSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBF WEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0OworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkK KygyIHJvd3MpCisKIFBSRVBBUkUgcGxhbmNhY2hlX3Rlc3QyIEFTIFdJVEggcSBBUyBNQVRFUklB TElaRUQgKFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIHEs ejI7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QyOwogICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIApAQCAtMjQxMSw2ICsz MzcxLDE5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gejIKICg3IHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hl X3BnX3Rlc3QyIEFTIFdJVEggcSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyh6LmEs IHouYikpKSBTRUxFQ1QgKiBGUk9NIHEsIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejIp IENPTFVNTlMgKHouYSwgei5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNh Y2hlX3BnX3Rlc3QyOworICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIE5lc3RlZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejEKKyAgICAg ICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorICAgLT4gIENURSBT Y2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoy CisoNyByb3dzKQorCiBQUkVQQVJFIHBsYW5jYWNoZV90ZXN0MyBBUyBXSVRIIHEgQVMgTUFURVJJ QUxJWkVEIChTRUxFQ1QgKiBGUk9NIHoyKSBTRUxFQ1QgKiBGUk9NIHEsejEgV0hFUkUgZl9sZWFr KHoxLmIpOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsKICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCkBAIC0y NDI0LDYgKzMzOTcsMTkgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90 ZXN0MzsKICAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhi KSkKICg3IHJvd3MpCiAKK1BSRVBBUkUgcGxhbmNhY2hlX3BnX3Rlc3QzIEFTIFdJVEggcSBBUyBN QVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6 MikgQ09MVU1OUyh6LmEsIHouYikpKSBTRUxFQ1QgKiBGUk9NIHEsIEdSQVBIX1RBQkxFIChndHBn IE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CitF WFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3QzOworICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AK KyAgIENURSBxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorICAgLT4gIENURSBTY2FuIG9uIHEK KyAgIC0+ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAg ICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisoNyByb3dzKQor CiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ncm91cDE7CiBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZf bGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBiYmIKQEAgLTI0NDEsNiArMzQyNywyMiBAQCBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwogICAg RmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5i KSBDT0xVTU5TICh6LmEsIHouYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNFOiAg Zl9sZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisgNCB8IGRhZAor KDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5i KSk7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmls dGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorKDIgcm93cykKKwogRVhQTEFJTiAo Q09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0OwogICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC0yNDcyLDQzICszNDc0LDI2IEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VU RSBwbGFuY2FjaGVfdGVzdDM7CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDAp IEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCi1TRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcmxzX2Nhcm9sOwotU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7Ci1OT1RJ Q0U6ICBmX2xlYWsgPT4gYWJhCi1OT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCi0gYSB8ICBiICAKLS0t LSstLS0tLQotIDEgfCBhYmEKLSAzIHwgY2NjCi0oMiByb3dzKQotCi1FWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwotICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gU2VxIFNjYW4gb24gejEKLSAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5E IGZfbGVhayhiKSkKLSgyIHJvd3MpCi0KLUVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfdGVzdDsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfcGdfdGVz dDsKICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNlcSBTY2FuIG9uIHoxCi0gICBGaWx0 ZXI6ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisgICBGaWx0ZXI6ICgoKGEgJSAyKSA9 IDApIEFORCBmX2xlYWsoYikpCiAoMiByb3dzKQogCi1FWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcGxhbmNhY2hlX3Rlc3QyOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNo ZV9wZ190ZXN0MjsKICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBOZXN0ZWQgTG9vcAogICAgQ1RFIHEKICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCi0gICAgICAg ICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgICAgICAgICAgRmls dGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAgLT4gIENURSBTY2FuIG9uIHEK ICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoyCiAoNyByb3dz KQogCi1FWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCkBAIC0y NTE3LDEwICszNTAyLDEwIEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf dGVzdDM7CiAgICAtPiAgQ1RFIFNjYW4gb24gcQogICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gejEKLSAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0g MSkgQU5EIGZfbGVhayhiKSkKKyAgICAgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkg QU5EIGZfbGVhayhiKSkKICg3IHJvd3MpCiAKLVNFVCBST0xFIHJlZ3Jlc3NfcmxzX2dyb3VwMjsK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBG Uk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKIE5PVElDRTogIGZfbGVhayA9PiBhYmEKIE5PVElDRTog IGZfbGVhayA9PiBjY2MKQEAgLTI1MzcsNyArMzUyMiwxMTggQEAgRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKICAgIEZpbHRlcjogKCgoYSAlIDIp ID0gMSkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKLUVYUExBSU4gKENPU1RTIE9GRikgRVhF Q1VURSBwbGFuY2FjaGVfdGVzdDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFU Q0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAoei5hLCB6LmIpKTsKK05PVElD RTogIGZfbGVhayA9PiBhYmEKK05PVElDRTogIGZfbGVhayA9PiBjY2MKKyBhIHwgIGIgIAorLS0t Ky0tLS0tCisgMSB8IGFiYQorIDMgfCBjY2MKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBm X2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVh ayhiKSkKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVf dGVzdDsKKyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBG aWx0ZXI6ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCitFWFBMQUlO IChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QyOworICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBDVEUgcQorICAgICAt PiAgU2VxIFNjYW4gb24gejEKKyAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQg Zl9sZWFrKGIpKQorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHoyCisoNyByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIENURSBxCisgICAgIC0+ICBT ZXEgU2NhbiBvbiB6MgorICAgLT4gIENURSBTY2FuIG9uIHEKKyAgIC0+ICBNYXRlcmlhbGl6ZQor ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoKGEg JSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoNyByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIp KQorKDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190 ZXN0MjsKKyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0 ZWQgTG9vcAorICAgQ1RFIHEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAgIEZp bHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIC0+ICBDVEUgU2NhbiBvbiBx CisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorKDcgcm93 cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKKyAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3Rl ZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejIKKyAgIC0+ICBDVEUgU2Nh biBvbiBxCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MQor ICAgICAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQorKDcg cm93cykKKworU0VUIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAyOworU0VMRUNUICogRlJPTSB6MSBX SEVSRSBmX2xlYWsoYik7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsg PT4gY2NjCisgYSB8ICBiICAKKy0tLSstLS0tLQorIDEgfCBhYmEKKyAzIHwgY2NjCisoMiByb3dz KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIp OworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRl cjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09M VU1OUyAoei5hLCB6LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBhYmEKK05PVElDRTogIGZfbGVh ayA9PiBjY2MKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDMgfCBjY2MKKygyIHJv d3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3Rw ZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOwor ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjog KCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIFNlcSBTY2FuIG9uIHoxCkBAIC0yNTY4LDEzICszNjY0LDQ2IEBAIEVYUExBSU4gKENPU1RT IE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7CiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgo KGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCiAoNyByb3dzKQogCitFWFBMQUlOIChDT1NUUyBP RkYpIEVYRUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFr KGIpKQorKDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9w Z190ZXN0MjsKKyAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBO ZXN0ZWQgTG9vcAorICAgQ1RFIHEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHoxCisgICAgICAgICAg IEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIC0+ICBDVEUgU2NhbiBv biBxCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MgorKDcg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsK KyAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5l c3RlZCBMb29wCisgICBDVEUgcQorICAgICAtPiAgU2VxIFNjYW4gb24gejIKKyAgIC0+ICBDVEUg U2NhbiBvbiBxCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB6 MQorICAgICAgICAgICAgICAgRmlsdGVyOiAoKChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQor KDcgcm93cykKKwogLS0KIC0tIFZpZXdzIHNob3VsZCBmb2xsb3cgcG9saWN5IGZvciB2aWV3IG93 bmVyLgogLS0KIC0tIFZpZXcgYW5kIFRhYmxlIG93bmVyIGFyZSB0aGUgc2FtZS4KIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVklFVyBybHNfdmll dyBBUyBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNU IE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRP IHJlZ3Jlc3NfcmxzX2JvYjsKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3Qgb3duZXIgb2Yg dmlldyBvciB0YWJsZS4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CkBA IC0yNTk3LDYgKzM3MjYsMjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJs c192aWV3OwogICAgRmlsdGVyOiBmX2xlYWsoYikKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikp OworTk9USUNFOiAgZl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNF OiAgZl9sZWFrID0+IGNjYworTk9USUNFOiAgZl9sZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0r LS0tLS0KKyAxIHwgYWJhCisgMiB8IGJiYgorIDMgfCBjY2MKKyA0IHwgZGFkCisoNCByb3dzKQor CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFU Q0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICBRVUVSWSBQTEFOICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiBm X2xlYWsoYikKKygyIHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHZpZXcvdGFibGUgb3duZXIuICBTaG91 bGQgcmV0dXJuIGFsbCByZWNvcmRzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19hbGljZTsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CkBAIC0yNjE5LDExICszNzY4LDM0 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRl cjogZl9sZWFrKGIpCiAoMiByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBn IE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVh ayA9PiBhYmEKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVhayA9PiBjY2MK K05PVElDRTogIGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQor IDIgfCBiYmIKKyAzIHwgY2NjCisgNCB8IGRhZAorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykg Q09MVU1OUyAoci5hLCByLmIpKTsKKyAgICAgUVVFUlkgUExBTiAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogZl9sZWFrKGIpCisoMiByb3dz KQorCitEUk9QIFBST1BFUlRZIEdSQVBIIHZ0cGc7CiBEUk9QIFZJRVcgcmxzX3ZpZXc7CiAtLSBW aWV3IGFuZCBUYWJsZSBvd25lcnMgYXJlIGRpZmZlcmVudC4KIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgQVMgU0VMRUNUICog RlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3ZpZXcgVE8gcmVn cmVzc19ybHNfYWxpY2U7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdnRwZyBWRVJURVggVEFCTEVT IChybHNfdmlldyBLRVkgKGEpKTsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3Nfcmxz X2FsaWNlOwogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IGJ1dCBp cyBvd25lciBvZiB0YWJsZS4KIC0tIFNob3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3 IG93bmVyIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19h bGljZTsKQEAgLTI2NDMsNiArMzgxNSwyMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcmxzX3ZpZXc7CiAgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikp CiAoMiByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBy bHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKK05P VElDRTogIGZfbGVhayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8IGJiYgorIDQg fCBkYWQKKygyIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7Cisg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAo KChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQorKDIgcm93cykKKwogLS0gUXVlcnkgYXMgcm9s ZSB0aGF0IGlzIG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIgb2Ygdmlldy4KIC0tIFNo b3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVyIHBvbGljaWVzLgogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CkBAIC0yNjYyLDYgKzM4NTAsMjIg QEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVy OiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5i KSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8 ICBiICAKKy0tLSstLS0tLQorIDIgfCBiYmIKKyA0IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJs c192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhi KSkKKygyIHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9m IHRoZSB0YWJsZSBvciB2aWV3IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1m YWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCkBAIC0yNjcxLDYgKzM4NzUsNyBAQCBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciB2aWV3IHJsc192aWV3CiAtLSBRdWVyeSBhcyByb2xlIHRoYXQg aXMgbm90IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRoIHBlcm1pc3Npb25zLgog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBHUkFOVCBTRUxFQ1Qg T04gcmxzX3ZpZXcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFOVCBTRUxFQ1QgT04gdnRwZyBU TyByZWdyZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogTk9USUNFOiAgZl9sZWFrID0+IGJi YgpAQCAtMjY4OCw2ICszODkzLDIyIEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBybHNfdmlldzsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgy IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorTk9USUNF OiAgZl9sZWFrID0+IGRhZAorIGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisgNCB8IGRh ZAorKDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKKyAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoKGEg JSAyKSA9IDApIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQorCiAtLSBQb2xpY3kgcmVxdWlyaW5n IGFjY2VzcyB0byBhbm90aGVyIHRhYmxlLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MV9ibGFja2xpc3QgKGEgaW50KTsKQEAgLTI2 OTksMTIgKzM5MjAsMjAgQEAgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlz c2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFj a2xpc3QKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWls IC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJs ZSB6MV9ibGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6 IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmll ZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChy OiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5p ZWQuCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIC0t IFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJsZSBvciB2aWV3 IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBk ZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QK IEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVy bWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9i bGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIC0tIFF1ZXJ5 IGFzIHJvbGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdGFibGUgYnV0IGlzIG93bmVyIG9mIHZpZXcg d2l0aCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNf YWxpY2U7CiBHUkFOVCBTRUxFQ1QgT04gejFfYmxhY2tsaXN0IFRPIHJlZ3Jlc3NfcmxzX2JvYjsK QEAgLTI3MjUsNiArMzk1NCwyMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g cmxzX3ZpZXc7CiAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKICg0IHJvd3MpCiAK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xV TU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgorIGEgfCAgYiAgCistLS0r LS0tLS0KKyAyIHwgYmJiCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwg ci5iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6ICgoTk9UIChBTlkgKGEg PSAoaGFzaGVkIFN1YlBsYW4gMSkuY29sMSkpKSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFr KGIpKQorICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xpc3QKKyg0 IHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0 YWJsZSBvciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKQEAgLTI3NDMsMTAg KzM5ODgsMjcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3Owog ICAgICAtPiAgU2VxIFNjYW4gb24gejFfYmxhY2tsaXN0CiAoNCByb3dzKQogCitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCBy LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBiYmIKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMiB8 IGJiYgorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTZXEgU2NhbiBvbiB6MQorICAgRmlsdGVyOiAoKE5PVCAoQU5ZIChhID0gKGhhc2hlZCBT dWJQbGFuIDEpLmNvbDEpKSkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyAgIFN1 YlBsYW4gMQorICAgICAtPiAgU2VxIFNjYW4gb24gejFfYmxhY2tsaXN0CisoNCByb3dzKQorCiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogUkVWT0tFIFNFTEVD VCBPTiB6MV9ibGFja2xpc3QgRlJPTSByZWdyZXNzX3Jsc19ib2I7CiBEUk9QIFBPTElDWSBwMyBP TiB6MTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOworRFJPUCBQ Uk9QRVJUWSBHUkFQSCB2dHBnOwogRFJPUCBWSUVXIHJsc192aWV3OwogLS0KIC0tIFNlY3VyaXR5 IGludm9rZXIgdmlld3Mgc2hvdWxkIGZvbGxvdyBwb2xpY3kgZm9yIGN1cnJlbnQgdXNlci4KQEAg LTI3NTUsOCArNDAxNywxMSBAQCBEUk9QIFZJRVcgcmxzX3ZpZXc7CiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAo c2VjdXJpdHlfaW52b2tlcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhi KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtF WSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIEdS QU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKK0dSQU5UIFNFTEVD VCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJl Z3Jlc3NfcmxzX2Nhcm9sOwogLS0gUXVlcnkgYXMgdGFibGUgb3duZXIuICBTaG91bGQgcmV0dXJu IGFsbCByZWNvcmRzLgogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIE5PVElDRTogIGZfbGVhayA9 PiBhYmEKQEAgLTI3NzgsNiArNDA0MywyNiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcmxzX3ZpZXc7CiAgICBGaWx0ZXI6IGZfbGVhayhiKQogKDIgcm93cykKIAorU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIu YSwgci5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJi CitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBi ICAKKy0tLSstLS0tLQorIDEgfCBhYmEKKyAyIHwgYmJiCisgMyB8IGNjYworIDQgfCBkYWQKKyg0 IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo dnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CisgICAgIFFVRVJZ IFBMQU4gICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBG aWx0ZXI6IGZfbGVhayhiKQorKDIgcm93cykKKwogLS0gUXVlcmllcyBhcyBvdGhlciB1c2Vycy4K IC0tIFNob3VsZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiBjdXJyZW50IHVzZXIncyBwb2xpY2ll cy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwpAQCAtMjc5Nyw5 ICs0MDgyLDI1IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsK ICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKLVNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7Ci1TRUxFQ1QgKiBGUk9N IHJsc192aWV3OwotTk9USUNFOiAgZl9sZWFrID0+IGFiYQorU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJ Q0U6ICBmX2xlYWsgPT4gYmJiCitOT1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0t LSstLS0tLQorIDIgfCBiYmIKKyA0IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJv d3MpCisKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CitTRUxF Q1QgKiBGUk9NIHJsc192aWV3OworTk9USUNFOiAgZl9sZWFrID0+IGFiYQogTk9USUNFOiAgZl9s ZWFrID0+IGNjYwogIGEgfCAgYiAgCiAtLS0rLS0tLS0KQEAgLTI4MTQsMTQgKzQxMTUsMzQgQEAg RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVyOiAo KChhICUgMikgPSAxKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykKIAorU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7 CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJhCitOT1RJQ0U6ICBmX2xlYWsgPT4gY2NjCisgYSB8ICBi ICAKKy0tLSstLS0tLQorIDEgfCBhYmEKKyAzIHwgY2NjCisoMiByb3dzKQorCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjogKCgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkK KygyIHJvd3MpCisKIC0tIFZpZXcgYW5kIHRhYmxlIG93bmVycyBhcmUgZGlmZmVyZW50LgogU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVSVFkg R1JBUEggdnRwZzsKIERST1AgVklFVyBybHNfdmlldzsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJpdHlf aW52b2tlcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwog R1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOwogR1JBTlQgU0VM RUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOworR1JBTlQgU0VMRUNUIE9OIHZ0 cGcgVE8gcmVncmVzc19ybHNfYWxpY2U7CitHUkFOVCBTRUxFQ1QgT04gdnRwZyBUTyByZWdyZXNz X3Jsc19jYXJvbDsKIC0tIFF1ZXJ5IGFzIHRhYmxlIG93bmVyLiAgU2hvdWxkIHJldHVybiBhbGwg cmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBT RUxFQ1QgKiBGUk9NIHJsc192aWV3OwpAQCAtMjg0NCw2ICs0MTY1LDI2IEBAIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogZl9sZWFrKGIpCiAo MiByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVhayA9PiBhYmEKK05PVElD RTogIGZfbGVhayA9PiBiYmIKK05PVElDRTogIGZfbGVhayA9PiBjY2MKK05PVElDRTogIGZfbGVh ayA9PiBkYWQKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorIDIgfCBiYmIKKyAzIHwg Y2NjCisgNCB8IGRhZAorKDQgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCBy LmIpKTsKKyAgICAgUVVFUlkgUExBTiAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gejEKKyAgIEZpbHRlcjogZl9sZWFrKGIpCisoMiByb3dzKQorCiAtLSBRdWVyaWVz IGFzIG90aGVyIHVzZXJzLgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1cnJl bnQgdXNlcidzIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19ib2I7CkBAIC0yODYzLDYgKzQyMDQsMjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OwogICAgRmlsdGVyOiAoKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIp KQogKDIgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjog cmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gYmJiCitO T1RJQ0U6ICBmX2xlYWsgPT4gZGFkCisgYSB8ICBiICAKKy0tLSstLS0tLQorIDIgfCBiYmIKKyA0 IHwgZGFkCisoMiByb3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwor ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gejEKKyAgIEZpbHRlcjog KCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3Owog Tk9USUNFOiAgZl9sZWFrID0+IGFiYQpAQCAtMjg4MCw2ICs0MjM3LDIyIEBAIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKICAgIEZpbHRlcjogKCgoYSAlIDIpID0g MSkgQU5EIGZfbGVhayhiKSkKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAg Zl9sZWFrID0+IGFiYQorTk9USUNFOiAgZl9sZWFrID0+IGNjYworIGEgfCAgYiAgCistLS0rLS0t LS0KKyAxIHwgYWJhCisgMyB8IGNjYworKDIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1O UyAoci5hLCByLmIpKTsKKyAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9u IHoxCisgICBGaWx0ZXI6ICgoKGEgJSAyKSA9IDEpIEFORCBmX2xlYWsoYikpCisoMiByb3dzKQor CiAtLSBQb2xpY3kgcmVxdWlyaW5nIGFjY2VzcyB0byBhbm90aGVyIHRhYmxlLgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgcDMgT04g ejEgQVMgUkVTVFJJQ1RJVkUgVVNJTkcgKGEgTk9UIElOIChTRUxFQ1QgYSBGUk9NIHoxX2JsYWNr bGlzdCkpOwpAQCAtMjg4OSwxMiArNDI2MiwyMCBAQCBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAt LWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHRhYmxlIHoxX2JsYWNrbGlzdAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJs c192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo dnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBl cm1pc3Npb24gZGVuaWVkLgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgejFf YmxhY2tsaXN0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBw ZXJtaXNzaW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHox X2JsYWNrbGlzdAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhl IHRhYmxlIG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwg LSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxl IHoxX2JsYWNrbGlzdAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHRhYmxlIHoxX2JsYWNrbGlzdAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Np b24gZGVuaWVkLgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgejFfYmxhY2ts aXN0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcg TUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNz aW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHoxX2JsYWNr bGlzdAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMg b3duZXIgb2YgdmlldyB3aXRoIHBlcm1pc3Npb25zLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TiByZWdyZXNzX3Jsc19hbGljZTsKIEdSQU5UIFNFTEVDVCBPTiB6MV9ibGFja2xpc3QgVE8gcmVn cmVzc19ybHNfYm9iOwpAQCAtMjkxNSwxMiArNDI5NiwzMiBAQCBFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CiAgICAgIC0+ICBTZXEgU2NhbiBvbiB6MV9ibGFja2xp c3QKICg0IHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6 IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworTk9USUNFOiAgZl9sZWFrID0+IGJiYgor IGEgfCAgYiAgCistLS0rLS0tLS0KKyAyIHwgYmJiCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcp IENPTFVNTlMgKHIuYSwgci5iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHoxCisgICBGaWx0ZXI6 ICgoTk9UIChBTlkgKGEgPSAoaGFzaGVkIFN1YlBsYW4gMSkuY29sMSkpKSBBTkQgKChhICUgMikg PSAwKSBBTkQgZl9sZWFrKGIpKQorICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB6 MV9ibGFja2xpc3QKKyg0IHJvd3MpCisKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhl IG93bmVyIG9mIHRoZSB0YWJsZSBvciB2aWV3IHdpdGhvdXQgcGVybWlzc2lvbnMuCiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNf dmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiBFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciB0YWJsZSB6MV9ibGFja2xpc3QKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZh aWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRh YmxlIHoxX2JsYWNrbGlzdAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1m YWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0 YWJsZSB6MV9ibGFja2xpc3QKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVy IG9mIHRoZSB0YWJsZSBvciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlz dCBUTyByZWdyZXNzX3Jsc19jYXJvbDsKQEAgLTI5NDEsMTQgKzQzNDIsMzMgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogICAgICAtPiAgU2VxIFNjYW4gb24g ejFfYmxhY2tsaXN0CiAoNCByb3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBn IE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK05PVElDRTogIGZfbGVh ayA9PiBhYmEKKyBhIHwgIGIgIAorLS0tKy0tLS0tCisgMSB8IGFiYQorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6 IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB6MQor ICAgRmlsdGVyOiAoKE5PVCAoQU5ZIChhID0gKGhhc2hlZCBTdWJQbGFuIDEpLmNvbDEpKSkgQU5E ICgoYSAlIDIpID0gMSkgQU5EIGZfbGVhayhiKSkKKyAgIFN1YlBsYW4gMQorICAgICAtPiAgU2Vx IFNjYW4gb24gejFfYmxhY2tsaXN0CisoNCByb3dzKQorCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcmxzX2JvYjsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1AgVklF VyBybHNfdmlldzsKIC0tCiAtLSBDb21tYW5kIHNwZWNpZmljCiAtLQogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB4MSAoYSBpbnQsIGIg dGV4dCwgYyB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjc3RwZyBWRVJURVggVEFCTEVT ICh4MSBLRVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB4MSBUTyBQVUJMSUM7CitHUkFOVCBBTEwgT04g Y3N0cGcgVE8gUFVCTElDOwogSU5TRVJUIElOVE8geDEgVkFMVUVTCiAgICAgKDEsICdhYmMnLCAn cmVncmVzc19ybHNfYm9iJyksCiAgICAgKDIsICdiY2QnLCAncmVncmVzc19ybHNfYm9iJyksCkBA IC0yOTgyLDYgKzQ0MDIsMjMgQEAgTk9USUNFOiAgZl9sZWFrID0+IGZnaAogIDggfCBmZ2ggfCBy ZWdyZXNzX3Jsc19jYXJvbAogKDYgcm93cykKIAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo Y3N0cGcgTUFUQ0ggKHggOiB4MSkgV0hFUkUgZl9sZWFrKHguYikgQ09MVU1OUyAoeC5hLCB4LmIs IHguYykpIE9SREVSIEJZIGEgQVNDOworTk9USUNFOiAgZl9sZWFrID0+IGFiYworTk9USUNFOiAg Zl9sZWFrID0+IGJjZAorTk9USUNFOiAgZl9sZWFrID0+IGRlZgorTk9USUNFOiAgZl9sZWFrID0+ IGVmZworTk9USUNFOiAgZl9sZWFrID0+IGZnaAorTk9USUNFOiAgZl9sZWFrID0+IGZnaAorIGEg fCAgYiAgfCAgICAgICAgIGMgICAgICAgICAKKy0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t CisgMSB8IGFiYyB8IHJlZ3Jlc3NfcmxzX2JvYgorIDIgfCBiY2QgfCByZWdyZXNzX3Jsc19ib2IK KyA0IHwgZGVmIHwgcmVncmVzc19ybHNfY2Fyb2wKKyA1IHwgZWZnIHwgcmVncmVzc19ybHNfYm9i CisgNiB8IGZnaCB8IHJlZ3Jlc3NfcmxzX2JvYgorIDggfCBmZ2ggfCByZWdyZXNzX3Jsc19jYXJv bAorKDYgcm93cykKKwogVVBEQVRFIHgxIFNFVCBiID0gYiB8fCAnX3VwZHQnIFdIRVJFIGZfbGVh ayhiKSBSRVRVUk5JTkcgKjsKIE5PVElDRTogIGZfbGVhayA9PiBhYmMKIE5PVElDRTogIGZfbGVh ayA9PiBiY2QKQEAgLTMwMTcsNiArNDQ1NCwyMyBAQCBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoX3Vw ZHQKICA4IHwgZmdoX3VwZHQgfCByZWdyZXNzX3Jsc19jYXJvbAogKDYgcm93cykKIAorU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoY3N0cGcgTUFUQ0ggKHggOiB4MSkgV0hFUkUgZl9sZWFrKHgu YikgQ09MVU1OUyAoeC5hLCB4LmIsIHguYykpIE9SREVSIEJZIGEgQVNDOworTk9USUNFOiAgZl9s ZWFrID0+IGNkZQorTk9USUNFOiAgZl9sZWFrID0+IGZnaAorTk9USUNFOiAgZl9sZWFrID0+IGJj ZF91cGR0CitOT1RJQ0U6ICBmX2xlYWsgPT4gZGVmX3VwZHQKK05PVElDRTogIGZfbGVhayA9PiBm Z2hfdXBkdAorTk9USUNFOiAgZl9sZWFrID0+IGZnaF91cGR0CisgYSB8ICAgIGIgICAgIHwgICAg ICAgICBjICAgICAgICAgCistLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMiB8 IGJjZF91cGR0IHwgcmVncmVzc19ybHNfYm9iCisgMyB8IGNkZSAgICAgIHwgcmVncmVzc19ybHNf Y2Fyb2wKKyA0IHwgZGVmX3VwZHQgfCByZWdyZXNzX3Jsc19jYXJvbAorIDYgfCBmZ2hfdXBkdCB8 IHJlZ3Jlc3NfcmxzX2JvYgorIDcgfCBmZ2ggICAgICB8IHJlZ3Jlc3NfcmxzX2Nhcm9sCisgOCB8 IGZnaF91cGR0IHwgcmVncmVzc19ybHNfY2Fyb2wKKyg2IHJvd3MpCisKIFVQREFURSB4MSBTRVQg YiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiBOT1RJQ0U6ICBm X2xlYWsgPT4gY2RlCiBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoCkBAIC0zMDU3LDcgKzQ1MTEsOSBA QCBOT1RJQ0U6ICBmX2xlYWsgPT4gZmdoX3VwZHRfdXBkdAogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB5MSAoYSBpbnQsIGIgdGV4dCk7 CiBDUkVBVEUgVEFCTEUgeTIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IHN2YnRwZyBWRVJURVggVEFCTEVTICh5MSBLRVkgKGEpLCB5MiBLRVkgKGEpKTsKIEdSQU5UIEFM TCBPTiB5MSwgeTIgVE8gcmVncmVzc19ybHNfYm9iOworR1JBTlQgQUxMIE9OIHN2YnRwZyBUTyBy ZWdyZXNzX3Jsc19ib2I7CiBDUkVBVEUgUE9MSUNZIHAxIE9OIHkxIEZPUiBBTEwgVVNJTkcgKGEg JSAyID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHkxIEZPUiBTRUxFQ1QgVVNJTkcgKGEgPiAy KTsKIENSRUFURSBQT0xJQ1kgcDEgT04geTEgRk9SIFNFTEVDVCBVU0lORyAoYSAlIDIgPSAxKTsg IC0tZmFpbApAQCAtMzA3Miw2ICs0NTI4LDcgQEAgQUxURVIgVEFCTEUgeTIgRU5BQkxFIFJPVyBM RVZFTCBTRUNVUklUWTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxp Y2U7CiBDUkVBVEUgVklFVyBybHNfc2J2IFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTCiAgICAg U0VMRUNUICogRlJPTSB5MSBXSEVSRSBmX2xlYWsoYik7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBz dmJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJsc19zYnYgS0VZIChhKSk7CiBFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3NidiBXSEVSRSAoYSA9IDEpOwogICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkBAIC0zMDc5LDYgKzQ1MzYsMTQgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIHJsc19zYnYgV0hFUkUgKGEgPSAxKTsKICAgIEZpbHRlcjogKGZfbGVhayhiKSBBTkQgKGEg PSAxKSkKICgyIHJvd3MpCiAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoc3ZidHBnIE1BVENIIChyOiBybHNfc2J2KSBXSEVSRSByLmEgPSAxIENPTFVNTlMg KHIuYSwgci5iKSk7CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB5MQorICAgRmlsdGVy OiAoZl9sZWFrKGIpIEFORCAoYSA9IDEpKQorKDIgcm93cykKKworQUxURVIgUFJPUEVSVFkgR1JB UEggc3ZidHBnIERST1AgVkVSVEVYIFRBQkxFUyAocmxzX3Nidik7CiBEUk9QIFZJRVcgcmxzX3Ni djsKIC0tIENyZWF0ZSB2aWV3IGFzIHJvbGUgdGhhdCBkb2VzIG5vdCBvd24gdGFibGUuICBSTFMg c2hvdWxkIGJlIGFwcGxpZWQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfcmxz X2JvYjsKQEAgLTMxNDAsNiArNDYwNSw0NiBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00geTIgV0hFUkUgZl9sZWFrKGIpOwogICAgRmlsdGVyOiAoKCgoYSAlIDQpID0gMCkgT1Ig KChhICUgMykgPSAwKSBPUiAoKGEgJSAyKSA9IDApKSBBTkQgZl9sZWFrKGIpKQogKDIgcm93cykK IAorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5MikgV0hFUkUg Zl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKK05PVElDRTogIGZfbGVhayA9PiA1ZmVj ZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQorTk9USUNFOiAgZl9sZWFrID0+IGQ0NzM1ZTNh MjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGUwNzQwODU2MmJl ZGI4YjYwY2UwNWMxZGVjZmUzYWQKK05PVElDRTogIGZfbGVhayA9PiA0YjIyNzc3N2Q0ZGQxZmM2 MWM2Zjg4NGY0ODY0MWQwMgorTk9USUNFOiAgZl9sZWFrID0+IGU3ZjZjMDExNzc2ZThkYjdjZDMz MGI1NDE3NGZkNzZmCitOT1RJQ0U6ICBmX2xlYWsgPT4gMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJi MzEwYWNhMDAKK05PVElDRTogIGZfbGVhayA9PiAxOTU4MWUyN2RlN2NlZDAwZmYxY2U1MGIyMDQ3 ZTdhNQorTk9USUNFOiAgZl9sZWFrID0+IDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2Mx CitOT1RJQ0U6ICBmX2xlYWsgPT4gNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKK05P VElDRTogIGZfbGVhayA9PiA4NTI3YTg5MWUyMjQxMzY5NTBmZjMyY2EyMTJiNDViYworTk9USUNF OiAgZl9sZWFrID0+IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CitOT1RJQ0U6ICBm X2xlYWsgPT4gYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKK05PVElDRTogIGZfbGVh ayA9PiA0ZWM5NTk5ZmMyMDNkMTc2YTMwMTUzNmMyZTA5MWExOQorTk9USUNFOiAgZl9sZWFrID0+ IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgYSAgfCAgICAgICAgICAgICAgICBi ICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNh MjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDMgfCA0ZTA3NDA4NTYyYmVkYjhiNjBjZTA1YzFk ZWNmZTNhZAorICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3 ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5 NGRmYmIzMTBhY2EwMAorICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAx MCB8IDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3 ZjE0MWNiZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1 YmMKKyAxNSB8IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CisgMTYgfCBiMTdlZjZk MTljN2E1YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZj MmUwOTFhMTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisoMTQgcm93 cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0 cGcgTUFUQ0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoeS5iKSBDT0xVTU5TICh5LmEsIHkuYikpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g eTIKKyAgIEZpbHRlcjogKCgoKGEgJSA0KSA9IDApIE9SICgoYSAlIDMpID0gMCkgT1IgKChhICUg MikgPSAwKSkgQU5EIGZfbGVhayhiKSkKKygyIHJvd3MpCisKIC0tCiAtLSBRdWFsIHB1c2gtZG93 biBvZiBsZWFreSBmdW5jdGlvbnMsIHdoZW4gbm90IHJlZmVycmluZyB0byB0YWJsZQogLS0KQEAg LTMxOTAsNiArNDY5NSw1MyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00geTIg V0hFUkUgZl9sZWFrKCdhYmMnKTsKICAgIEZpbHRlcjogKGZfbGVhaygnYWJjJzo6dGV4dCkgQU5E ICgoKGEgJSA0KSA9IDApIE9SICgoYSAlIDMpID0gMCkgT1IgKChhICUgMikgPSAwKSkpCiAoMiBy b3dzKQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0ggKHk6IHkyKSBX SEVSRSBmX2xlYWsoJ2FiYycpIENPTFVNTlMgKHkuYSwgeS5iKSk7CitOT1RJQ0U6ICBmX2xlYWsg PT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitO T1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBm X2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4g YWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJ Q0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xl YWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJj CitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6 ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsg PT4gYWJjCitOT1RJQ0U6ICBmX2xlYWsgPT4gYWJjCisgYSAgfCAgICAgICAgICAgICAgICBiICAg ICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1 ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDMgfCA0ZTA3NDA4NTYyYmVkYjhiNjBjZTA1YzFkZWNm ZTNhZAorICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZj MDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRm YmIzMTBhY2EwMAorICA5IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMCB8 IDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3ZjE0 MWNiZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1YmMK KyAxNSB8IGU2MjlmYTY1OThkNzMyNzY4ZjdjNzI2YjRiNjIxMjg1CisgMTYgfCBiMTdlZjZkMTlj N2E1YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUw OTFhMTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisoMTQgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcg TUFUQ0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoJ2FiYycpIENPTFVNTlMgKHkuYSwgeS5iKSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFNlcSBTY2FuIG9uIHkyCisgICBGaWx0ZXI6IChmX2xlYWsoJ2FiYyc6OnRleHQpIEFO RCAoKChhICUgNCkgPSAwKSBPUiAoKGEgJSAzKSA9IDApIE9SICgoYSAlIDIpID0gMCkpKQorKDIg cm93cykKKwogQ1JFQVRFIFRBQkxFIHRlc3RfcXVhbF9wdXNoZG93biAoCiAgICAgYWJjIHRleHQK ICk7CkBAIC0zMjQ4LDE4ICs0ODAwLDIyIEBAIERST1AgVEFCTEUgdGVzdF9xdWFsX3B1c2hkb3du OwogLS0gUGxhbmNhY2hlIGludmFsaWRhdGUgb24gdXNlciBjaGFuZ2UuCiAtLQogUkVTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJPUCBUQUJM RSB0MSBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMK IERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDIKIGRyb3AgY2FzY2FkZXMgdG8gdGFi bGUgdDMKIENSRUFURSBUQUJMRSB0MSAoYSBpbnRlZ2VyKTsKIEdSQU5UIFNFTEVDVCBPTiB0MSBU TyByZWdyZXNzX3Jsc19ib2IsIHJlZ3Jlc3NfcmxzX2Nhcm9sOworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGl0cGcgVkVSVEVYIFRBQkxFUyAodDEgS0VZKGEpKTsKK0dSQU5UIFNFTEVDVCBPTiBpdHBn IFRPIHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVzc19ybHNfY2Fyb2w7CiBDUkVBVEUgUE9MSUNZIHAx IE9OIHQxIFRPIHJlZ3Jlc3NfcmxzX2JvYiBVU0lORyAoKGEgJSAyKSA9IDApOwogQ1JFQVRFIFBP TElDWSBwMiBPTiB0MSBUTyByZWdyZXNzX3Jsc19jYXJvbCBVU0lORyAoKGEgJSA0KSA9IDApOwog QUxURVIgVEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIC0tIFByZXBhcmUgYXMg cmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ib2I7CiBQUkVQQVJFIHJvbGVf aW52YWwgQVMgU0VMRUNUICogRlJPTSB0MTsKK1BSRVBBUkUgcm9sZV9pbnZhbF9wZyBBUyBTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hKSk7 CiAtLSBDaGVjayBwbGFuCiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsK ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAKQEAgLTMyNjgsNiArNDgyNCwxMyBAQCBFWFBMQUlO IChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgIEZpbHRlcjogKChhICUgMikgPSAw KQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWxfcGc7 CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgMikgPSAwKQorKDIgcm93cykKKwogLS0g Q2hhbmdlIHRvIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19jYXJvbDsK IC0tIENoZWNrIHBsYW4tIHNob3VsZCBiZSBkaWZmZXJlbnQKQEAgLTMyNzgsNiArNDg0MSwxMyBA QCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbDsKICAgIEZpbHRlcjogKChh ICUgNCkgPSAwKQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVf aW52YWxfcGc7CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChhICUgNCkgPSAwKQorKDIgcm93 cykKKwogLS0gQ2hhbmdlIGJhY2sgdG8gcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNz X3Jsc19ib2I7CiAtLSBDaGVjayBwbGFuLSBzaG91bGQgYmUgYmFjayB0byBvcmlnaW5hbApAQCAt MzI4OCwxNSArNDg1OCwyNSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZh bDsKICAgIEZpbHRlcjogKChhICUgMikgPSAwKQogKDIgcm93cykKIAorRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHJvbGVfaW52YWxfcGc7CisgICAgICAgUVVFUlkgUExBTiAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gdDEKKyAgIEZpbHRlcjogKChh ICUgMikgPSAwKQorKDIgcm93cykKKwogLS0KIC0tIENURSBhbmQgUkxTCiAtLQogUkVTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBnOwogRFJPUCBUQUJM RSB0MSBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIHQxIChhIGludGVnZXIsIGIgdGV4dCk7CitDUkVB VEUgUFJPUEVSVFkgR1JBUEggaXRwZyBWRVJURVggVEFCTEVTICh0MSBLRVkoYSkpOwogQ1JFQVRF IFBPTElDWSBwMSBPTiB0MSBVU0lORyAoYSAlIDIgPSAwKTsKIEFMVEVSIFRBQkxFIHQxIEVOQUJM RSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBBTEwgT04gdDEgVE8gcmVncmVzc19ybHNfYm9i OworR1JBTlQgQUxMIE9OIGl0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogSU5TRVJUIElOVE8gdDEg KFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MCwyMCkgeCk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFdJ VEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIp KSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CkBAIC0zMzI0LDIxICs0OTA0LDE2MyBAQCBOT1RJQ0U6ICBm X2xlYWsgPT4gZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1YzMKICAxNiB8IGIxN2VmNmQx OWM3YTViMWVlODNiOTA3YzU5NTUyNmRjCiAgMTggfCA0ZWM5NTk5ZmMyMDNkMTc2YTMwMTUzNmMy ZTA5MWExOQogIDIwIHwgZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0MmZiNTc1YzMKLSgxMSByb3dz KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpCi1XSVRIIGN0ZTEgQVMgTUFURVJJQUxJWkVEIChTRUxF Q1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKSkgU0VMRUNUICogRlJPTSBjdGUxOwotICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIENURSBTY2FuIG9uIGN0ZTEK LSAgIENURSBjdGUxCi0gICAgIC0+ICBTZXEgU2NhbiBvbiB0MQotICAgICAgICAgICBGaWx0ZXI6 ICgoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCi0oNCByb3dzKQorKDExIHJvd3MpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1dJVEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZS T00gdDEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CisgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1RFIFNjYW4gb24gY3RlMQorICAgQ1RF IGN0ZTEKKyAgICAgLT4gIFNlcSBTY2FuIG9uIHQxCisgICAgICAgICAgIEZpbHRlcjogKCgoYSAl IDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg0IHJvd3MpCisKK1dJVEggY3RlMSBBUyBNQVRFUklB TElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBXSEVS RSBmX2xlYWsodC5iKSBDT0xVTU5TICh0LmEsIHQuYikpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CitO T1RJQ0U6ICBmX2xlYWsgPT4gNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKK05PVElD RTogIGZfbGVhayA9PiBkNDczNWUzYTI2NWUxNmVlZTAzZjU5NzE4YjliNWQwMworTk9USUNFOiAg Zl9sZWFrID0+IDRiMjI3Nzc3ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCitOT1RJQ0U6ICBmX2xl YWsgPT4gZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKK05PVElDRTogIGZfbGVhayA9 PiAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorTk9USUNFOiAgZl9sZWFrID0+IDRh NDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCitOT1RJQ0U6ICBmX2xlYWsgPT4gNmI1MWQ0 MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKK05PVElDRTogIGZfbGVhayA9PiA4NTI3YTg5MWUy MjQxMzY5NTBmZjMyY2EyMTJiNDViYworTk9USUNFOiAgZl9sZWFrID0+IGIxN2VmNmQxOWM3YTVi MWVlODNiOTA3YzU5NTUyNmRjCitOT1RJQ0U6ICBmX2xlYWsgPT4gNGVjOTU5OWZjMjAzZDE3NmEz MDE1MzZjMmUwOTFhMTkKK05PVElDRTogIGZfbGVhayA9PiBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4 YTQyZmI1NzVjMworIGEgIHwgICAgICAgICAgICAgICAgYiAgICAgICAgICAgICAgICAgCistLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCB8IDVmZWNlYjY2ZmZjODZm MzhkOTUyNzg2YzZkNjk2Yzc5CisgIDIgfCBkNDczNWUzYTI2NWUxNmVlZTAzZjU5NzE4YjliNWQw MworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIKKyAgNiB8IGU3ZjZjMDEx Nzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIz MTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKKyAxMiB8IDZi NTFkNDMxZGY1ZDdmMTQxY2JlY2VjY2Y3OWVkZjNkCisgMTQgfCA4NTI3YTg5MWUyMjQxMzY5NTBm ZjMyY2EyMTJiNDViYworIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKKyAx OCB8IDRlYzk1OTlmYzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CisgMjAgfCBmNWNhMzhmNzQ4YTFk NmVhZjcyNmI4YTQyZmI1NzVjMworKDExIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1dJ VEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcg TUFUQ0ggKHQ6IHQxKSBXSEVSRSBmX2xlYWsodC5iKSBDT0xVTU5TICh0LmEsIHQuYikpKSBTRUxF Q1QgKiBGUk9NIGN0ZTE7CisgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQ1RFIFNjYW4gb24gY3RlMQorICAgQ1RFIGN0ZTEKKyAgICAgLT4gIFNlcSBTY2FuIG9u IHQxCisgICAgICAgICAgIEZpbHRlcjogKCgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKKyg0 IHJvd3MpCisKK1dJVEggY3RlMSBBUyAoVVBEQVRFIHQxIFNFVCBhID0gYSArIDEgUkVUVVJOSU5H ICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1mYWlsCitFUlJPUjogIG5ldyByb3cgdmlvbGF0ZXMg cm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInQxIgorV0lUSCBjdGUxIEFTIChV UERBVEUgdDEgU0VUIGEgPSBhIFJFVFVSTklORyAqKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7IC0tb2sK KyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDAgfCA1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2 ZDY5NmM3OQorICAyIHwgZDQ3MzVlM2EyNjVlMTZlZWUwM2Y1OTcxOGI5YjVkMDMKKyAgNCB8IDRi MjI3Nzc3ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCisgIDYgfCBlN2Y2YzAxMTc3NmU4ZGI3Y2Qz MzBiNTQxNzRmZDc2ZgorICA4IHwgMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKKyAx MCB8IDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1Y2MxCisgMTIgfCA2YjUxZDQzMWRmNWQ3 ZjE0MWNiZWNlY2NmNzllZGYzZAorIDE0IHwgODUyN2E4OTFlMjI0MTM2OTUwZmYzMmNhMjEyYjQ1 YmMKKyAxNiB8IGIxN2VmNmQxOWM3YTViMWVlODNiOTA3YzU5NTUyNmRjCisgMTggfCA0ZWM5NTk5 ZmMyMDNkMTc2YTMwMTUzNmMyZTA5MWExOQorIDIwIHwgZjVjYTM4Zjc0OGExZDZlYWY3MjZiOGE0 MmZiNTc1YzMKKygxMSByb3dzKQorCitXSVRIIGN0ZTEgQVMgKElOU0VSVCBJTlRPIHQxIFZBTFVF UyAoMjEsICdGYWlsJykgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1mYWlsCitF UlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFi bGUgInQxIgorV0lUSCBjdGUxIEFTIChJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDIwLCAnU3VjY2Vz cycpIFJFVFVSTklORyAqKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7IC0tb2sKKyBhICB8ICAgIGIgICAg CistLS0tKy0tLS0tLS0tLQorIDIwIHwgU3VjY2VzcworKDEgcm93KQorCistLQorLS0gUmVuYW1l IFBvbGljeQorLS0KK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIFBPTElDWSBw MSBPTiB0MSBSRU5BTUUgVE8gcDE7IC0tZmFpbAorRVJST1I6ICBwb2xpY3kgInAxIiBmb3IgdGFi bGUgInQxIiBhbHJlYWR5IGV4aXN0cworU0VMRUNUIHBvbG5hbWUsIHJlbG5hbWUKKyAgICBGUk9N IHBnX3BvbGljeSBwb2wKKyAgICBKT0lOIHBnX2NsYXNzIHBjIE9OIChwYy5vaWQgPSBwb2wucG9s cmVsaWQpCisgICAgV0hFUkUgcmVsbmFtZSA9ICd0MSc7CisgcG9sbmFtZSB8IHJlbG5hbWUgCist LS0tLS0tLS0rLS0tLS0tLS0tCisgcDEgICAgICB8IHQxCisoMSByb3cpCisKK0FMVEVSIFBPTElD WSBwMSBPTiB0MSBSRU5BTUUgVE8gcDI7IC0tb2sKK1NFTEVDVCBwb2xuYW1lLCByZWxuYW1lCisg ICAgRlJPTSBwZ19wb2xpY3kgcG9sCisgICAgSk9JTiBwZ19jbGFzcyBwYyBPTiAocGMub2lkID0g cG9sLnBvbHJlbGlkKQorICAgIFdIRVJFIHJlbG5hbWUgPSAndDEnOworIHBvbG5hbWUgfCByZWxu YW1lIAorLS0tLS0tLS0tKy0tLS0tLS0tLQorIHAyICAgICAgfCB0MQorKDEgcm93KQorCistLQor LS0gQ2hlY2sgSU5TRVJUIFNFTEVDVAorLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOworQ1JFQVRFIFRBQkxFIHQyIChhIGludGVnZXIsIGIgdGV4dCk7CitJTlNF UlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSB0MSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIElOU0VS VCBJTlRPIHQyIChTRUxFQ1QgKiBGUk9NIHQxKTsKKyAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbnNlcnQgb24gdDIKKyAg IC0+ICBTZXEgU2NhbiBvbiB0MQorICAgICAgICAgRmlsdGVyOiAoKGEgJSAyKSA9IDApCisoMyBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHQyOworIGEgIHwgICAgICAgICAgICAgICAgYiAgICAgICAg ICAgICAgICAgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMCB8 IDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisgIDIgfCBkNDczNWUzYTI2NWUxNmVl ZTAzZjU5NzE4YjliNWQwMworICA0IHwgNGIyMjc3NzdkNGRkMWZjNjFjNmY4ODRmNDg2NDFkMDIK KyAgNiB8IGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCisgIDggfCAyYzYyNDIzMmNk ZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAorIDEwIHwgNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0 NTVjYzEKKyAxMiB8IDZiNTFkNDMxZGY1ZDdmMTQxY2JlY2VjY2Y3OWVkZjNkCisgMTQgfCA4NTI3 YTg5MWUyMjQxMzY5NTBmZjMyY2EyMTJiNDViYworIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5 MDdjNTk1NTI2ZGMKKyAxOCB8IDRlYzk1OTlmYzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CisgMjAg fCBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4YTQyZmI1NzVjMworIDIwIHwgU3VjY2VzcworKDEyIHJv d3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MjsKKyAgIFFVRVJZIFBM QU4gICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MgorKDEgcm93KQorCitDUkVB VEUgVEFCTEUgdDMgQVMgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00gdDM7CisgYSAg fCAgICAgICAgICAgICAgICBiICAgICAgICAgICAgICAgICAKKy0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZj NzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3 N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgorICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0 MTc0ZmQ3NmYKKyAgOCB8IDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0 YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFj YmVjZWNjZjc5ZWRmM2QKKyAxNCB8IDg1MjdhODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisg MTYgfCBiMTdlZjZkMTljN2E1YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAz ZDE3NmEzMDE1MzZjMmUwOTFhMTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3 NWMzCisgMjAgfCBTdWNjZXNzCisoMTIgcm93cykKIAotV0lUSCBjdGUxIEFTIChVUERBVEUgdDEg U0VUIGEgPSBhICsgMSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLWZhaWwKLUVS Uk9SOiAgbmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJs ZSAidDEiCi1XSVRIIGN0ZTEgQVMgKFVQREFURSB0MSBTRVQgYSA9IGEgUkVUVVJOSU5HICopIFNF TEVDVCAqIEZST00gY3RlMTsgLS1vaworU0VMRUNUICogSU5UTyB0NCBGUk9NIHQxOworU0VMRUNU ICogRlJPTSB0NDsKICBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAogLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIDAgfCA1ZmVjZWI2NmZmYzg2 ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQpAQCAtMzM1Miw0OCArNTA3NCwxMyBAQCBXSVRIIGN0ZTEgQVMg KFVQREFURSB0MSBTRVQgYSA9IGEgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1v awogIDE2IHwgYjE3ZWY2ZDE5YzdhNWIxZWU4M2I5MDdjNTk1NTI2ZGMKICAxOCB8IDRlYzk1OTlm YzIwM2QxNzZhMzAxNTM2YzJlMDkxYTE5CiAgMjAgfCBmNWNhMzhmNzQ4YTFkNmVhZjcyNmI4YTQy ZmI1NzVjMwotKDExIHJvd3MpCi0KLVdJVEggY3RlMSBBUyAoSU5TRVJUIElOVE8gdDEgVkFMVUVT ICgyMSwgJ0ZhaWwnKSBSRVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLWZhaWwKLUVS Uk9SOiAgbmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJs ZSAidDEiCi1XSVRIIGN0ZTEgQVMgKElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMjAsICdTdWNjZXNz JykgUkVUVVJOSU5HICopIFNFTEVDVCAqIEZST00gY3RlMTsgLS1vawotIGEgIHwgICAgYiAgICAK LS0tLS0rLS0tLS0tLS0tCiAgMjAgfCBTdWNjZXNzCi0oMSByb3cpCi0KLS0tCi0tLSBSZW5hbWUg UG9saWN5Ci0tLQotUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwotQUxURVIgUE9MSUNZIHAx IE9OIHQxIFJFTkFNRSBUTyBwMTsgLS1mYWlsCi1FUlJPUjogIHBvbGljeSAicDEiIGZvciB0YWJs ZSAidDEiIGFscmVhZHkgZXhpc3RzCi1TRUxFQ1QgcG9sbmFtZSwgcmVsbmFtZQotICAgIEZST00g cGdfcG9saWN5IHBvbAotICAgIEpPSU4gcGdfY2xhc3MgcGMgT04gKHBjLm9pZCA9IHBvbC5wb2xy ZWxpZCkKLSAgICBXSEVSRSByZWxuYW1lID0gJ3QxJzsKLSBwb2xuYW1lIHwgcmVsbmFtZSAKLS0t LS0tLS0tLSstLS0tLS0tLS0KLSBwMSAgICAgIHwgdDEKLSgxIHJvdykKLQotQUxURVIgUE9MSUNZ IHAxIE9OIHQxIFJFTkFNRSBUTyBwMjsgLS1vawotU0VMRUNUIHBvbG5hbWUsIHJlbG5hbWUKLSAg ICBGUk9NIHBnX3BvbGljeSBwb2wKLSAgICBKT0lOIHBnX2NsYXNzIHBjIE9OIChwYy5vaWQgPSBw b2wucG9scmVsaWQpCi0gICAgV0hFUkUgcmVsbmFtZSA9ICd0MSc7Ci0gcG9sbmFtZSB8IHJlbG5h bWUgCi0tLS0tLS0tLS0rLS0tLS0tLS0tCi0gcDIgICAgICB8IHQxCi0oMSByb3cpCisoMTIgcm93 cykKIAotLS0KLS0tIENoZWNrIElOU0VSVCBTRUxFQ1QKLS0tCi1TRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKK0RST1AgVEFCTEUgdDIsIHQzLCB0NDsKIENSRUFURSBU QUJMRSB0MiAoYSBpbnRlZ2VyLCBiIHRleHQpOwotSU5TRVJUIElOVE8gdDIgKFNFTEVDVCAqIEZS T00gdDEpOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBJTlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJP TSB0MSk7CitJTlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBN QVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSkpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBJ TlNFUlQgSU5UTyB0MiAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEpIENPTFVNTlMgKHQuYSwgdC5iKSkpOwogICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluc2VydCBvbiB0MgpAQCAtMzQy NCw3ICs1MTExLDcgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQyOwogIFNl cSBTY2FuIG9uIHQyCiAoMSByb3cpCiAKLUNSRUFURSBUQUJMRSB0MyBBUyBTRUxFQ1QgKiBGUk9N IHQxOworQ1JFQVRFIFRBQkxFIHQzIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcg TUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOwogU0VMRUNUICogRlJPTSB0MzsKICBh ICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAgICAgICAgIAogLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDQyLDcgKzUxMjksNyBAQCBTRUxFQ1QgKiBGUk9N IHQzOwogIDIwIHwgU3VjY2VzcwogKDEyIHJvd3MpCiAKLVNFTEVDVCAqIElOVE8gdDQgRlJPTSB0 MTsKK1NFTEVDVCAqIElOVE8gdDQgRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEp IENPTFVNTlMgKHQuYSwgdC5iKSk7CiBTRUxFQ1QgKiBGUk9NIHQ0OwogIGEgIHwgICAgICAgICAg ICAgICAgYiAgICAgICAgICAgICAgICAgCiAtLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KQEAgLTM0NjYsNyArNTE1MywxNCBAQCBTRUxFQ1QgKiBGUk9NIHQ0OwogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSBibG9n IChpZCBpbnRlZ2VyLCBhdXRob3IgdGV4dCwgcG9zdCB0ZXh0KTsKIENSRUFURSBUQUJMRSBjb21t ZW50IChibG9nX2lkIGludGVnZXIsIG1lc3NhZ2UgdGV4dCk7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEgganRwZworICAgIFZFUlRFWCBUQUJMRVMgKGJsb2cgS0VZIChpZCkpCisgICAgRURHRSBUQUJM RVMKKyAgICAoY29tbWVudCBLRVkgKGJsb2dfaWQpCisgICAgIFNPVVJDRSBLRVkgKGJsb2dfaWQp IFJFRkVSRU5DRVMgYmxvZyhpZCkKKyAgICAgREVTVElOQVRJT04gS0VZIChibG9nX2lkKSBSRUZF UkVOQ0VTIGJsb2coaWQpKTsKIEdSQU5UIEFMTCBPTiBibG9nLCBjb21tZW50IFRPIHJlZ3Jlc3Nf cmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBqdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBQ T0xJQ1kgYmxvZ18xIE9OIGJsb2cgVVNJTkcgKGlkICUgMiA9IDApOwogQUxURVIgVEFCTEUgYmxv ZyBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogSU5TRVJUIElOVE8gYmxvZyBWQUxVRVMKQEAg LTM0OTksNiArNTE5MywxMyBAQCBTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1l bnQgSk9JTiBibG9nIE9OIGlkID0gYmxvZ19pZDsKICAgMiB8IGJvYiAgICB8IHdobyBkaWQgaXQ/ CiAoMiByb3dzKQogCitTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIEdSQVBIX1RBQkxF IChqdHBnIE1BVENIIChiOiBibG9nKS1bYzogY29tbWVudF0tPihiKSBDT0xVTU5TIChiLmlkIEFT IGlkLCBiLmF1dGhvciBBUyBhdXRob3IsIGMubWVzc2FnZSBBUyBtZXNzYWdlKSk7CisgaWQgfCBh dXRob3IgfCAgIG1lc3NhZ2UgICAKKy0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICA0IHwg YWxpY2UgIHwgaW5zYW5lIQorICAyIHwgYm9iICAgIHwgd2hvIGRpZCBpdD8KKygyIHJvd3MpCisK IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgUE9M SUNZIGNvbW1lbnRfMSBPTiBjb21tZW50IFVTSU5HIChibG9nX2lkIDwgNCk7CiBBTFRFUiBUQUJM RSBjb21tZW50IEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC0zNTE2LDcgKzUyMTcsMTQg QEAgU0VMRUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBjb21tZW50IEpPSU4gYmxvZyBPTiBp ZCA9IGJsb2dfaWQ7CiAgIDIgfCBib2IgICAgfCB3aG8gZGlkIGl0PwogKDEgcm93KQogCitTRUxF Q1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIEdSQVBIX1RBQkxFIChqdHBnIE1BVENIIChiOiBi bG9nKS1bYzogY29tbWVudF0tPihiKSBDT0xVTU5TIChiLmlkIEFTIGlkLCBiLmF1dGhvciBBUyBh dXRob3IsIGMubWVzc2FnZSBBUyBtZXNzYWdlKSk7CisgaWQgfCBhdXRob3IgfCAgIG1lc3NhZ2Ug ICAKKy0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICAyIHwgYm9iICAgIHwgd2hvIGRpZCBp dD8KKygxIHJvdykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGlj ZTsKK0RST1AgUFJPUEVSVFkgR1JBUEgganRwZzsKIERST1AgVEFCTEUgYmxvZywgY29tbWVudDsK IC0tCiAtLSBEZWZhdWx0IERlbnkgUG9saWN5CkBAIC0zNTI0LDYgKzUyMzIsNyBAQCBEUk9QIFRB QkxFIGJsb2csIGNvbW1lbnQ7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFBP TElDWSBwMiBPTiB0MTsKIEFMVEVSIFRBQkxFIHQxIE9XTkVSIFRPIHJlZ3Jlc3NfcmxzX2FsaWNl OworR1JBTlQgU0VMRUNUIE9OIGl0cGcgVE8gcmVncmVzc19ybHNfYWxpY2U7CiAtLSBDaGVjayB0 aGF0IGRlZmF1bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byBzdXBlcnVzZXIuCiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CiBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAtMzU1OSw2ICs1MjY4LDM5 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICBTZXEgU2NhbiBvbiB0 MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0 MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyBhICB8ICAgICAgICAgICAgICAgIGIgICAgICAgICAg ICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIDEgfCA2 Yjg2YjI3M2ZmMzRmY2UxOWQ2YjgwNGVmZjVhM2Y1NworICAzIHwgNGUwNzQwODU2MmJlZGI4YjYw Y2UwNWMxZGVjZmUzYWQKKyAgNSB8IGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYxCisg IDcgfCA3OTAyNjk5YmU0MmM4YThlNDZmYmJiNDUwMTcyNjUxNworICA5IHwgMTk1ODFlMjdkZTdj ZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMSB8IDRmYzgyYjI2YWVjYjQ3ZDI4NjhjNGVmYmUzNTgx NzMyCisgMTMgfCAzZmRiYTM1ZjA0ZGM4YzQ2Mjk4NmM5OTJiY2Y4NzU1NAorIDE1IHwgZTYyOWZh NjU5OGQ3MzI3NjhmN2M3MjZiNGI2MjEyODUKKyAxNyB8IDQ1MjM1NDBmMTUwNGNkMTcxMDBjNDgz NWU4NWI3ZWVmCisgMTkgfCA5NDAwZjFiMjFjYjUyN2Q3ZmEzZDNlYWJiYTkzNTU3YQorICAwIHwg NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0NzM1ZTNhMjY1ZTE2ZWVl MDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgor ICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKyAgOCB8IDJjNjI0MjMyY2Rk MjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1 NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRmM2QKKyAxNCB8IDg1Mjdh ODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBiMTdlZjZkMTljN2E1YjFlZTgzYjkw N2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZjMmUwOTFhMTkKKyAyMCB8 IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgMjAgfCBTdWNjZXNzCisoMjIgcm93 cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBn IE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgIFFVRVJZIFBMQU4gICAKKy0t LS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MQorKDEgcm93KQorCiAtLSBDaGVjayB0aGF0 IGRlZmF1bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lci4KIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHQxOwpAQCAt MzU5NCw2ICs1MzM2LDM5IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsK ICBTZXEgU2NhbiBvbiB0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChp dHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyBhICB8ICAgICAgICAgICAg ICAgIGIgICAgICAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgIDEgfCA2Yjg2YjI3M2ZmMzRmY2UxOWQ2YjgwNGVmZjVhM2Y1NworICAzIHwgNGUw NzQwODU2MmJlZGI4YjYwY2UwNWMxZGVjZmUzYWQKKyAgNSB8IGVmMmQxMjdkZTM3Yjk0MmJhYWQw NjE0NWU1NGIwYzYxCisgIDcgfCA3OTAyNjk5YmU0MmM4YThlNDZmYmJiNDUwMTcyNjUxNworICA5 IHwgMTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKyAxMSB8IDRmYzgyYjI2YWVjYjQ3 ZDI4NjhjNGVmYmUzNTgxNzMyCisgMTMgfCAzZmRiYTM1ZjA0ZGM4YzQ2Mjk4NmM5OTJiY2Y4NzU1 NAorIDE1IHwgZTYyOWZhNjU5OGQ3MzI3NjhmN2M3MjZiNGI2MjEyODUKKyAxNyB8IDQ1MjM1NDBm MTUwNGNkMTcxMDBjNDgzNWU4NWI3ZWVmCisgMTkgfCA5NDAwZjFiMjFjYjUyN2Q3ZmEzZDNlYWJi YTkzNTU3YQorICAwIHwgNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKyAgMiB8IGQ0 NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThiOWI1ZDAzCisgIDQgfCA0YjIyNzc3N2Q0ZGQxZmM2MWM2 Zjg4NGY0ODY0MWQwMgorICA2IHwgZTdmNmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKyAg OCB8IDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCisgMTAgfCA0YTQ0ZGMxNTM2NDIw NGE4MGZlODBlOTAzOTQ1NWNjMQorIDEyIHwgNmI1MWQ0MzFkZjVkN2YxNDFjYmVjZWNjZjc5ZWRm M2QKKyAxNCB8IDg1MjdhODkxZTIyNDEzNjk1MGZmMzJjYTIxMmI0NWJjCisgMTYgfCBiMTdlZjZk MTljN2E1YjFlZTgzYjkwN2M1OTU1MjZkYworIDE4IHwgNGVjOTU5OWZjMjAzZDE3NmEzMDE1MzZj MmUwOTFhMTkKKyAyMCB8IGY1Y2EzOGY3NDhhMWQ2ZWFmNzI2YjhhNDJmYjU3NWMzCisgMjAgfCBT dWNjZXNzCisoMjIgcm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgIFFV RVJZIFBMQU4gICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0MQorKDEgcm93KQor CiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBhcHBsaWVzIHRvIG5vbi1vd25lci9ub24tc3Vw ZXJ1c2VyIHdoZW4gUkxTIG9uLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwpAQCAtMzYwOSw2ICs1Mzg0LDE4IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICAgIE9uZS1UaW1lIEZpbHRlcjog ZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworIGEgfCBiIAorLS0tKy0tLQorKDAgcm93cykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRpbWUgRmls dGVyOiBmYWxzZQorKDIgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHQxOwogIGEgfCBiIApAQCAtMzYyMiw2ICs1NDA5LDE4 IEBAIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKICAgIE9uZS1UaW1lIEZp bHRlcjogZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcg TUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworIGEgfCBiIAorLS0tKy0tLQorKDAg cm93cykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChp dHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKKyAgICAgICAgUVVFUlkgUExB TiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRp bWUgRmlsdGVyOiBmYWxzZQorKDIgcm93cykKKwogLS0KIC0tIENPUFkgVE8vRlJPTQogLS0KQEAg LTM2MjksOSArNTQyOCwxMSBAQCBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFRB QkxFIGNvcHlfdCBDQVNDQURFOwogRVJST1I6ICB0YWJsZSAiY29weV90IiBkb2VzIG5vdCBleGlz dAogQ1JFQVRFIFRBQkxFIGNvcHlfdCAoYSBpbnRlZ2VyLCBiIHRleHQpOworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGN0cGcgVkVSVEVYIFRBQkxFUyAoY29weV90IEtFWSAoYSkpOwogQ1JFQVRFIFBP TElDWSBwMSBPTiBjb3B5X3QgVVNJTkcgKGEgJSAyID0gMCk7CiBBTFRFUiBUQUJMRSBjb3B5X3Qg RU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIEFMTCBPTiBjb3B5X3QgVE8gcmVncmVz c19ybHNfYm9iLCByZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKK0dSQU5UIEFMTCBPTiBjdHBnIFRP IHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBJTlNFUlQgSU5UTyBj b3B5X3QgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMCwxMCkgeCk7CiAtLSBDaGVjayBDT1BZIFRPIGFzIFN1cGVydXNlci9vd25lci4KIFJF U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKQEAgLTM2NDgsNiArNTQ0OSwxOCBAQCBDT1BZIChT RUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1J VEVSICcsJzsKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1ODFlMjdk ZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1 Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5 X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERF TElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5CisxLDZiODZi MjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNmNTk3MThi OWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3Nzc3ZDRk ZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1NGIwYzYx Cis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQyYzhhOGU0 NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAwCis5LDE5 NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBl OTAzOTQ1NWNjMQogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIENPUFkgKFNFTEVDVCAqIEZST00g Y29weV90IE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwogMCw1 ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQpAQCAtMzY2MSwxMSArNTQ3NCwyNSBAQCBD T1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEgg REVMSU1JVEVSICcsJzsKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDksMTk1 ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5 MDM5NDU1Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChj OiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBX SVRIIERFTElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5Cisx LDZiODZiMjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVlMDNm NTk3MThiOWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRiMjI3 Nzc3ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0NWU1 NGIwYzYxCis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTliZTQy YzhhOGU0NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFjYTAw Cis5LDE5NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIwNGE4 MGZlODBlOTAzOTQ1NWNjMQogLS0gQ2hlY2sgQ09QWSBUTyBhcyB1c2VyIHdpdGggcGVybWlzc2lv bnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCByb3df c2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBB U0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tZmFpbCAtIHdvdWxkIGJlIGFmZmVj dGVkIGJ5IFJMUwogRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwg c2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAiY29weV90IgorQ09QWSAoU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9S REVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSB3b3Vs ZCBiZSBhZmZlY3RlZCBieSBSTFMKK0VSUk9SOiAgcXVlcnkgd291bGQgYmUgYWZmZWN0ZWQgYnkg cm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgImNvcHlfdCIKIFNFVCByb3dfc2Vj dXJpdHkgVE8gT047CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykg VE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vawogMCw1ZmVjZWI2NmZmYzg2ZjM4ZDk1 Mjc4NmM2ZDY5NmM3OQpAQCAtMzY3NCw2ICs1NTAxLDEzIEBAIENPUFkgKFNFTEVDVCAqIEZST00g Y29weV90IE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLW9r CiA2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCiA4LDJjNjI0MjMyY2RkMjIxNzcx Mjk0ZGZiYjMxMGFjYTAwCiAxMCw0YTQ0ZGMxNTM2NDIwNGE4MGZlODBlOTAzOTQ1NWNjMQorQ09Q WSAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xV TU5TIChjLmEsIGMuYikpIE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIg JywnOworMCw1ZmVjZWI2NmZmYzg2ZjM4ZDk1Mjc4NmM2ZDY5NmM3OQorMixkNDczNWUzYTI2NWUx NmVlZTAzZjU5NzE4YjliNWQwMworNCw0YjIyNzc3N2Q0ZGQxZmM2MWM2Zjg4NGY0ODY0MWQwMgor NixlN2Y2YzAxMTc3NmU4ZGI3Y2QzMzBiNTQxNzRmZDc2ZgorOCwyYzYyNDIzMmNkZDIyMTc3MTI5 NGRmYmIzMTBhY2EwMAorMTAsNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKIC0tIENo ZWNrIENPUFkgVE8gYXMgdXNlciB3aXRoIHBlcm1pc3Npb25zIGFuZCBCWVBBU1NSTFMKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBTRVQgcm93X3Nl Y3VyaXR5IFRPIE9GRjsKQEAgLTM2ODksNiArNTUyMywxOCBAQCBDT1BZIChTRUxFQ1QgKiBGUk9N IGNvcHlfdCBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1v awogOCwyYzYyNDIzMmNkZDIyMTc3MTI5NGRmYmIzMTBhY2EwMAogOSwxOTU4MWUyN2RlN2NlZDAw ZmYxY2U1MGIyMDQ3ZTdhNQogMTAsNGE0NGRjMTUzNjQyMDRhODBmZTgwZTkwMzk0NTVjYzEKK0NP UFkgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09M VU1OUyAoYy5hLCBjLmIpKSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVS ICcsJzsKKzAsNWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKKzEsNmI4NmIyNzNmZjM0 ZmNlMTlkNmI4MDRlZmY1YTNmNTcKKzIsZDQ3MzVlM2EyNjVlMTZlZWUwM2Y1OTcxOGI5YjVkMDMK KzMsNGUwNzQwODU2MmJlZGI4YjYwY2UwNWMxZGVjZmUzYWQKKzQsNGIyMjc3NzdkNGRkMWZjNjFj NmY4ODRmNDg2NDFkMDIKKzUsZWYyZDEyN2RlMzdiOTQyYmFhZDA2MTQ1ZTU0YjBjNjEKKzYsZTdm NmMwMTE3NzZlOGRiN2NkMzMwYjU0MTc0ZmQ3NmYKKzcsNzkwMjY5OWJlNDJjOGE4ZTQ2ZmJiYjQ1 MDE3MjY1MTcKKzgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKKzksMTk1ODFlMjdk ZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKKzEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4MGU5MDM5NDU1 Y2MxCiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3Qg T1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKIDAsNWZl Y2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzkKQEAgLTM3MDIsMTQgKzU1NDgsMzAgQEAgQ09Q WSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERF TElNSVRFUiAnLCc7IC0tb2sKIDgsMmM2MjQyMzJjZGQyMjE3NzEyOTRkZmJiMzEwYWNhMDAKIDks MTk1ODFlMjdkZTdjZWQwMGZmMWNlNTBiMjA0N2U3YTUKIDEwLDRhNDRkYzE1MzY0MjA0YTgwZmU4 MGU5MDM5NDU1Y2MxCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENI IChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9V VCBXSVRIIERFTElNSVRFUiAnLCc7CiswLDVmZWNlYjY2ZmZjODZmMzhkOTUyNzg2YzZkNjk2Yzc5 CisxLDZiODZiMjczZmYzNGZjZTE5ZDZiODA0ZWZmNWEzZjU3CisyLGQ0NzM1ZTNhMjY1ZTE2ZWVl MDNmNTk3MThiOWI1ZDAzCiszLDRlMDc0MDg1NjJiZWRiOGI2MGNlMDVjMWRlY2ZlM2FkCis0LDRi MjI3Nzc3ZDRkZDFmYzYxYzZmODg0ZjQ4NjQxZDAyCis1LGVmMmQxMjdkZTM3Yjk0MmJhYWQwNjE0 NWU1NGIwYzYxCis2LGU3ZjZjMDExNzc2ZThkYjdjZDMzMGI1NDE3NGZkNzZmCis3LDc5MDI2OTli ZTQyYzhhOGU0NmZiYmI0NTAxNzI2NTE3Cis4LDJjNjI0MjMyY2RkMjIxNzcxMjk0ZGZiYjMxMGFj YTAwCis5LDE5NTgxZTI3ZGU3Y2VkMDBmZjFjZTUwYjIwNDdlN2E1CisxMCw0YTQ0ZGMxNTM2NDIw NGE4MGZlODBlOTAzOTQ1NWNjMQogLS0gQ2hlY2sgQ09QWSBUTyBhcyB1c2VyIHdpdGhvdXQgcGVy bWlzc2lvbnMuIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAo U0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElN SVRFUiAnLCc7IC0tZmFpbCAtIHdvdWxkIGJlIGFmZmVjdGVkIGJ5IFJMUwogRVJST1I6ICBxdWVy eSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJs ZSAiY29weV90IgorQ09QWSAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAo YzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9SREVSIEJZIGEgQVNDKSBUTyBTVERPVVQg V0lUSCBERUxJTUlURVIgJywnOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSBy b3ctbGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAiY29weV90IgogU0VUIHJvd19zZWN1 cml0eSBUTyBPTjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90IE9SREVSIEJZIGEgQVNDKSBU TyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZAog RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgY29weV90CitDT1BZIChTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwg Yy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBwcm9wZXJ0eSBncmFwaCBjdHBnCiAtLSBDaGVjayBD T1BZIHJlbGF0aW9uIFRPOyBrZWVwIGl0IGp1c3Qgb25lIHJvdyB0byBhdm9pZCByZW9yZGVyaW5n IGlzc3VlcwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBU TyBPTjsKQEAgLTM4MTMsNiArNTY3NSw3IEBAIFNFVCByb3dfc2VjdXJpdHkgVE8gT047CiBDT1BZ IGNvcHlfdCBGUk9NIFNURElOOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGNvcHlfdAogUkVTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBjdHBnOwogRFJPUCBUQUJMRSBjb3B5X3Q7CiBE Uk9QIFRBQkxFIGNvcHlfcmVsX3RvIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRv IHRhYmxlIGNvcHlfcmVsX3RvX2NoaWxkCkBAIC00MDA1LDkgKzU4NjgsMTEgQEAgU0VMRUNUIGF0 dG5hbWUsIG1vc3RfY29tbW9uX3ZhbHMgRlJPTSBwZ19zdGF0cwogLS0KIEJFR0lOOwogQ1JFQVRF IFRBQkxFIGNvbGxfdCAoYykgQVMgVkFMVUVTICgnYmFyJzo6dGV4dCk7CitDUkVBVEUgUFJPUEVS VFkgR1JBUEggY2x0cGcgVkVSVEVYIFRBQkxFUyAoY29sbF90IEtFWSAoYykpOwogQ1JFQVRFIFBP TElDWSBjb2xsX3AgT04gY29sbF90IFVTSU5HIChjIDwgKCdmb28nOjp0ZXh0IENPTExBVEUgIkMi KSk7CiBBTFRFUiBUQUJMRSBjb2xsX3QgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5U IFNFTEVDVCBPTiBjb2xsX3QgVE8gcmVncmVzc19ybHNfYWxpY2U7CitHUkFOVCBTRUxFQ1QgT04g Y2x0cGcgVE8gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKHN0cmluZ190b19hcnJheShwb2xx dWFsLCAnOicpKVs3XSBBUyBpbnB1dGNvbGxpZCBGUk9NIHBnX3BvbGljeSBXSEVSRSBwb2xyZWxp ZCA9ICdjb2xsX3QnOjpyZWdjbGFzczsKICAgIGlucHV0Y29sbGlkICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC00MDIxLDYgKzU4ODYsMTIgQEAgU0VMRUNUICogRlJPTSBjb2xsX3Q7CiAgYmFy CiAoMSByb3cpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNsdHBnIE1BVENIIChjOiBj b2xsX3QpIENPTFVNTlMgKGMuYykpOworICBjICAKKy0tLS0tCisgYmFyCisoMSByb3cpCisKIFJP TExCQUNLOwogLS0KIC0tIFNoYXJlZCBPYmplY3QgRGVwZW5kZW5jaWVzCkBAIC00MDkzLDcgKzU5 NjQsOCBAQCBDUkVBVEUgVEFCTEUgcjEgKGEgaW50KTsKIENSRUFURSBUQUJMRSByMiAoYSBpbnQp OwogSU5TRVJUIElOVE8gcjEgVkFMVUVTICgxMCksICgyMCk7CiBJTlNFUlQgSU5UTyByMiBWQUxV RVMgKDEwKSwgKDIwKTsKLUdSQU5UIEFMTCBPTiByMSwgcjIgVE8gcmVncmVzc19ybHNfYm9iOwor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIHRydHBnIFZFUlRFWCBUQUJMRVMgKHIyIEtFWSAoYSkpOwor R1JBTlQgQUxMIE9OIHIxLCByMiwgdHJ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogQ1JFQVRFIFBP TElDWSBwMSBPTiByMSBVU0lORyAodHJ1ZSk7CiBBTFRFUiBUQUJMRSByMSBFTkFCTEUgUk9XIExF VkVMIFNFQ1VSSVRZOwogQ1JFQVRFIFBPTElDWSBwMSBPTiByMiBGT1IgU0VMRUNUIFVTSU5HICh0 cnVlKTsKQEAgLTQxNjUsNyArNjAzNyw0MyBAQCBTRUxFQ1QgKiBGUk9NIHIyOwogIDIwCiAoMiBy b3dzKQogCitJTlNFUlQgSU5UTyByMSBTRUxFQ1QgYSBGUk9NIEdSQVBIX1RBQkxFICh0cnRwZyBN QVRDSCAocjogcjIpIENPTFVNTlMgKHIuYSkpIHIyIFJFVFVSTklORyAqOyAtLSBPSworIGEgIAor LS0tLQorIDEwCisgMjAKKygyIHJvd3MpCisKK1VQREFURSByMSBTRVQgYSA9IHIyLmEgKyAyIEZS T00gR1JBUEhfVEFCTEUgKHRydHBnIE1BVENIIChyOiByMikgQ09MVU1OUyAoci5hKSkgcjIgV0hF UkUgcjEuYSA9IHIyLmEgUkVUVVJOSU5HICo7IC0tIE9LCisgYSAgfCBhICAKKy0tLS0rLS0tLQor IDEyIHwgMTAKKyAyMiB8IDIwCisoMiByb3dzKQorCitERUxFVEUgRlJPTSByMSBVU0lORyBHUkFQ SF9UQUJMRSAodHJ0cGcgTUFUQ0ggKHI6IHIyKSBDT0xVTU5TIChyLmEpKSByMiBXSEVSRSByMS5h ID0gcjIuYSArIDIgUkVUVVJOSU5HICo7IC0tIE9LCisgYSAgfCBhICAKKy0tLS0rLS0tLQorIDEy IHwgMTAKKyAyMiB8IDIwCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHIxOworIGEgIAorLS0t LQorIDExCisgMjEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gcjI7CisgYSAgCistLS0tCisg MTAKKyAyMAorKDIgcm93cykKKwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19hbGljZTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdHJ0cGc7CiBEUk9QIFRBQkxFIHIxOwogRFJP UCBUQUJMRSByMjsKIC0tCkBAIC00MTc0LDYgKzYwODIsNyBAQCBEUk9QIFRBQkxFIHIyOwogU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFVCByb3dfc2VjdXJp dHkgPSBvbjsKIENSRUFURSBUQUJMRSByMSAoYSBpbnQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBI IGZybHN0cGcgVkVSVEVYIFRBQkxFUyAocjEgS0VZIChhKSk7CiBJTlNFUlQgSU5UTyByMSBWQUxV RVMgKDEwKSwgKDIwKTsKIENSRUFURSBQT0xJQ1kgcDEgT04gcjEgVVNJTkcgKGZhbHNlKTsKIEFM VEVSIFRBQkxFIHIxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC00MTg0LDYgKzYwOTMs MTEgQEAgVEFCTEUgcjE7CiAtLS0KICgwIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGZybHN0cGcgTUFUQ0ggKHI6IHIxKSBDT0xVTU5TIChyLmEpKTsKKyBhIAorLS0tCisoMCBy b3dzKQorCiAtLSBSTFMgZXJyb3IKIElOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMSk7CiBFUlJPUjog IG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSBmb3IgdGFibGUgInIx IgpAQCAtNDIwNiwxMiArNjEyMCwxNiBAQCBTRVQgcm93X3NlY3VyaXR5ID0gb2ZmOwogVEFCTEUg cjE7CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0 eSBwb2xpY3kgZm9yIHRhYmxlICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9y IHRoZSB0YWJsZSdzIG93bmVyLCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNF Q1VSSVRZLgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZnJsc3RwZyBNQVRDSCAocjogcjEp IENPTFVNTlMgKHIuYSkpOworRVJST1I6ICBxdWVyeSB3b3VsZCBiZSBhZmZlY3RlZCBieSByb3ct bGV2ZWwgc2VjdXJpdHkgcG9saWN5IGZvciB0YWJsZSAicjEiCitISU5UOiAgVG8gZGlzYWJsZSB0 aGUgcG9saWN5IGZvciB0aGUgdGFibGUncyBvd25lciwgdXNlIEFMVEVSIFRBQkxFIE5PIEZPUkNF IFJPVyBMRVZFTCBTRUNVUklUWS4KIFVQREFURSByMSBTRVQgYSA9IDE7CiBFUlJPUjogIHF1ZXJ5 IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgZm9yIHRhYmxl ICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kgZm9yIHRoZSB0YWJsZSdzIG93bmVy LCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZLgogREVMRVRFIEZS T00gcjE7CiBFUlJPUjogIHF1ZXJ5IHdvdWxkIGJlIGFmZmVjdGVkIGJ5IHJvdy1sZXZlbCBzZWN1 cml0eSBwb2xpY3kgZm9yIHRhYmxlICJyMSIKIEhJTlQ6ICBUbyBkaXNhYmxlIHRoZSBwb2xpY3kg Zm9yIHRoZSB0YWJsZSdzIG93bmVyLCB1c2UgQUxURVIgVEFCTEUgTk8gRk9SQ0UgUk9XIExFVkVM IFNFQ1VSSVRZLgorRFJPUCBQUk9QRVJUWSBHUkFQSCBmcmxzdHBnOwogRFJPUCBUQUJMRSByMTsK IC0tCiAtLSBGT1JDRSBST1cgTEVWRUwgU0VDVVJJVFkgZG9lcyBub3QgYnJlYWsgUkkKQEAgLTQ1 MTAsOCArNjQyOCwxMCBAQCBEUk9QIFRBQkxFIHJlZl90Ymw7CiBDUkVBVEUgVEFCTEUgcmxzX3Ri bCAoYSBpbnQpOwogSU5TRVJUIElOVE8gcmxzX3RibCBTRUxFQ1QgeC8xMCBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAxMDApIHg7CiBBTkFMWVpFIHJsc190Ymw7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggbG90cGcgVkVSVEVYIFRBQkxFUyAocmxzX3RibCBLRVkgKGEpKTsKIEFMVEVSIFRBQkxFIHJs c190YmwgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdGJs IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIGxvdHBnIFRPIHJlZ3Jlc3Nf cmxzX2FsaWNlOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK IENSRUFURSBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KSBSRVRVUk5TIGJvb2wKICAgICBBUyAn QkVHSU4gUkFJU0UgTk9USUNFICcnb3BfbGVhayA9PiAlLCAlJycsICQxLCAkMjsgUkVUVVJOICQx IDwgJDI7IEVORCcKQEAgLTQ1MzAsOSArNjQ1MCwyMCBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gcmxzX3RibCBXSEVSRSBhIDw8PCAxMDAwIG9yIGEgPDw8IDkwMDsKICAgIE9u ZS1UaW1lIEZpbHRlcjogZmFsc2UKICgyIHJvd3MpCiAKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGxvdHBnIE1BVENIIChyOiBybHNfdGJsKSBXSEVSRSByLmEgPDw8IDEwMDAgQ09MVU1OUyAo ci5hKSk7CisgYSAKKy0tLQorKDAgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo bG90cGcgTUFUQ0ggKHI6IHJsc190YmwgV0hFUkUgci5hIDw8PCAxMDAwKSBDT0xVTU5TIChyLmEp KTsKKyBhIAorLS0tCisoMCByb3dzKQorCiBEUk9QIE9QRVJBVE9SIDw8PCAoaW50LCBpbnQpOwog RFJPUCBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KTsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTjsKK0RST1AgUFJPUEVSVFkgR1JBUEggbG90cGc7CiBEUk9QIFRBQkxFIHJsc190Ymw7CiAt LSBCdWcgIzE2MDA2OiB3aG9sZS1yb3cgVmFycyBpbiBhIHBvbGljeSBkb24ndCBwbGF5IG5pY2Ug d2l0aCBzdWItc2VsZWN0cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19h bGljZTsKQEAgLTQ3MDAsMjkgKzY2MzEsMzggQEAgRFJPUCBUQUJMRSBybHNfdDsKIC0tCiBSRVNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFNDSEVNQSByZWdyZXNzX3Jsc19zY2hlbWEg Q0FTQ0FERTsKLU5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMzAgb3RoZXIgb2JqZWN0cworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzOSBvdGhlciBvYmplY3RzCiBERVRBSUw6ICBkcm9wIGNh c2NhZGVzIHRvIGZ1bmN0aW9uIGZfbGVhayh0ZXh0KQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB1 YWNjb3VudAogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjYXRlZ29yeQogZHJvcCBjYXNjYWRlcyB0 byB0YWJsZSBkb2N1bWVudAorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhY2NfY2F0 CiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHBhcnRfZG9jdW1lbnQKK2Ryb3AgY2FzY2FkZXMgdG8g cHJvcGVydHkgZ3JhcGggcHRwZwogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBkZXBlbmRlbnQKIGRy b3AgY2FzY2FkZXMgdG8gdGFibGUgcmVjMQorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFw aCBydHBnCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHJlYzIKIGRyb3AgY2FzY2FkZXMgdG8gdmll dyByZWMxdgogZHJvcCBjYXNjYWRlcyB0byB2aWV3IHJlYzJ2CiBkcm9wIGNhc2NhZGVzIHRvIHRh YmxlIHMxCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHMyCitkcm9wIGNhc2NhZGVzIHRvIHByb3Bl cnR5IGdyYXBoIHJ2dHBnCiBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdjIKIGRyb3AgY2FzY2FkZXMg dG8gdGFibGUgYjEKIGRyb3AgY2FzY2FkZXMgdG8gdmlldyBidjEKK2Ryb3AgY2FzY2FkZXMgdG8g cHJvcGVydHkgZ3JhcGggc2J2cGcKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgejEKIGRyb3AgY2Fz Y2FkZXMgdG8gdGFibGUgejIKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggZ3RwZwog ZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB6MV9ibGFja2xpc3QKIGRyb3AgY2FzY2FkZXMgdG8gdGFi bGUgeDEKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggY3N0cGcKIGRyb3AgY2FzY2Fk ZXMgdG8gdGFibGUgeTEKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgeTIKK2Ryb3AgY2FzY2FkZXMg dG8gcHJvcGVydHkgZ3JhcGggc3ZidHBnCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHQxCitkcm9w IGNhc2NhZGVzIHRvIHByb3BlcnR5IGdyYXBoIGl0cGcKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUg dDIKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDMKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdDQK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAppbmRleCBmNjFkYmJmOTU4MS4uMGZiZWE0 MThmMGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5LnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yb3dzZWN1cml0eS5zcWwKQEAgLTg2LDYgKzg2LDE0 IEBAIElOU0VSVCBJTlRPIGRvY3VtZW50IFZBTFVFUwogICAgICggOSwgMjIsIDEsICdyZWdyZXNz X3Jsc19kYXZlJywgJ2F3ZXNvbWUgc2NpZW5jZSBmaWN0aW9uJyksCiAgICAgKDEwLCAzMywgMiwg J3JlZ3Jlc3NfcmxzX2RhdmUnLCAnYXdlc29tZSB0ZWNobm9sb2d5IGJvb2snKTsKIAorQ1JFQVRF IFBST1BFUlRZIEdSQVBIIGFjY19jYXQKKyAgICBWRVJURVggVEFCTEVTICh1YWNjb3VudCwgY2F0 ZWdvcnkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBkb2N1bWVudAorICAgICAgICBTT1VS Q0UgS0VZIChkYXV0aG9yKSBSRUZFUkVOQ0VTIHVhY2NvdW50IChwZ3VzZXIpCisgICAgICAgIERF U1RJTkFUSU9OIEtFWSAoY2lkKSBSRUZFUkVOQ0VTIGNhdGVnb3J5IChjaWQpKTsKK0dSQU5UIEFM TCBPTiBhY2NfY2F0IFRPIHB1YmxpYzsKKwogQUxURVIgVEFCTEUgZG9jdW1lbnQgRU5BQkxFIFJP VyBMRVZFTCBTRUNVUklUWTsKIAogLS0gdXNlcidzIHNlY3VyaXR5IGxldmVsIG11c3QgYmUgaGln aGVyIHRoYW4gb3IgZXF1YWwgdG8gZG9jdW1lbnQncwpAQCAtMTE2LDYgKzEyNCw5IEBAIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VUIHJvd19zZWN1cml0eSBU TyBPTjsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIg QlkgZGlkOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBOQVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hF UkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291 bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBk LmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSB0 cnkgYSBzYW1wbGVkIHZlcnNpb24KIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgVEFCTEVTQU1QTEUg QkVSTk9VTExJKDUwKSBSRVBFQVRBQkxFKDApCkBAIC0xMjUsNiArMTM2LDkgQEAgU0VMRUNUICog RlJPTSBkb2N1bWVudCBUQUJMRVNBTVBMRSBCRVJOT1VMTEkoNTApIFJFUEVBVEFCTEUoMCkKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9N IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIFNFTEVDVCAqIEZS T00gZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9S REVSIEJZIGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdI RVJFIGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBj LmNpZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdHJ5IGEgc2FtcGxlZCB2ZXJzaW9u CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFRBQkxFU0FNUExFIEJFUk5PVUxMSSg1MCkgUkVQRUFU QUJMRSgwKQpAQCAtMTMyLDE0ICsxNDYsMjMgQEAgU0VMRUNUICogRlJPTSBkb2N1bWVudCBUQUJM RVNBTVBMRSBCRVJOT1VMTEkoNTApIFJFUEVBVEFCTEUoMCkKIAogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBX SEVSRSBmX2xlYWsoZHRpdGxlKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1 IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDog Y2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIs IGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlk OwogCiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJF IGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgTkFU VVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0 aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVN TlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkp IE9SREVSIEJZIGRpZDsKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGRvY3Vt ZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGRvY3VtZW50IE5BVFVSQUwgSk9JTiBjYXRlZ29yeSBXSEVSRSBmX2xlYWsoZHRpdGxlKTsK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5k dGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSA0NCB3b3VsZCB0ZWNo bmljYWxseSBmYWlsIGZvciBib3RoIHAyciBhbmQgcDFyLCBidXQgd2Ugc2hvdWxkIGdldCBhbiBl cnJvcgogLS0gYmFjayBmcm9tIHAxciBmb3IgdGhpcyBiZWNhdXNlIGl0IHNvcnRzIGZpcnN0CkBA IC0xNTgsMTQgKzE4MSwyMyBAQCBBTFRFUiBQT0xJQ1kgcDEgT04gZG9jdW1lbnQgVVNJTkcgKGRh dXRob3IgPSBjdXJyZW50X3VzZXIpOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9S REVSIEJZIGRpZDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5 IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIGJ5IGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVRDSCAodSA6IHVh Y2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSldLT4oYyA6IGNhdGVn b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKHUucGd1c2VyLCBkLmRp ZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkpIE9SREVSIEJZIGRpZDsKIAog LS0gdmlld3BvaW50IGZyb20gcmxzX3JlZ3Jlc19jYXJvbCBhZ2FpbgogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQgV0hF UkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogU0VMRUNUICogRlJPTSBkb2N1bWVudCBO QVRVUkFMIEpPSU4gY2F0ZWdvcnkgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgYnkgZGlkOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQu ZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09M VU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1l KSkgT1JERVIgQlkgZGlkOwogCiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZG9j dW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gZG9jdW1lbnQgTkFUVVJBTCBKT0lOIGNhdGVnb3J5IFdIRVJFIGZfbGVhayhkdGl0bGUp OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBk b2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBk LmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAKIC0tIGludGVyYWN0aW9u IG9mIEZLL1BLIGNvbnN0cmFpbnRzCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2FsaWNlOwpAQCAtMjAwLDMwICsyMzIsNDUgQEAgUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIFNFTEVDVCAqIEZST00gZG9jdW1lbnQ7CiBT RUxFQ1QgKiBGUk9NIGNhdGVnb3J5OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoYWNjX2Nh dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDogdWFjY291bnQpLVtkIDog ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0ZWdvcnkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQuZGlkLCBkLmRsZXZlbCwg ZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwogCiAtLSBkYXRhYmFzZSBz dXBlcnVzZXIgZG9lcyBieXBhc3MgUkxTIHBvbGljeSB3aGVuIGRpc2FibGVkCiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZS T00gZG9jdW1lbnQ7CiBTRUxFQ1QgKiBGUk9NIGNhdGVnb3J5OworU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAoYWNjX2NhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BVENIICh1IDog dWFjY291bnQpLVtkIDogZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKV0tPihjIDogY2F0 ZWdvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyAodS5wZ3VzZXIsIGQu ZGlkLCBkLmRsZXZlbCwgZC5kdGl0bGUsIGMuY2lkLCBjLmNuYW1lKSkgT1JERVIgQlkgZGlkOwog CiAtLSBkYXRhYmFzZSBub24tc3VwZXJ1c2VyIHdpdGggYnlwYXNzIHByaXZpbGVnZSBjYW4gYnlw YXNzIFJMUyBwb2xpY3kgd2hlbiBkaXNhYmxlZAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNU ICogRlJPTSBkb2N1bWVudDsKIFNFTEVDVCAqIEZST00gY2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChhY2NfY2F0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0gg KHUgOiB1YWNjb3VudCktW2QgOiBkb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMg OiBjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNl ciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBk aWQ7CiAKIC0tIFJMUyBwb2xpY3kgZG9lcyBub3QgYXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBS TFMgZW5hYmxlZC4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7 CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogU0VMRUNUICogRlJPTSBkb2N1bWVudDsKIFNFTEVD VCAqIEZST00gY2F0ZWdvcnk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChhY2NfY2F0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUQ0ggKHUgOiB1YWNjb3VudCktW2QgOiBkb2N1 bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpXS0+KGMgOiBjYXRlZ29yeSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDT0xVTU5TICh1LnBndXNlciwgZC5kaWQsIGQuZGxldmVsLCBkLmR0 aXRsZSwgYy5jaWQsIGMuY25hbWUpKSBPUkRFUiBCWSBkaWQ7CiAKIC0tIFJMUyBwb2xpY3kgZG9l cyBub3QgYXBwbHkgdG8gdGFibGUgb3duZXIgd2hlbiBSTFMgZGlzYWJsZWQuCiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VUIHJvd19zZWN1cml0eSBUTyBP RkY7CiBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VMRUNUICogRlJPTSBjYXRlZ29yeTsKK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGFjY19jYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNQVRDSCAodSA6IHVhY2NvdW50KS1bZCA6IGRvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0 aXRsZSldLT4oYyA6IGNhdGVnb3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVN TlMgKHUucGd1c2VyLCBkLmRpZCwgZC5kbGV2ZWwsIGQuZHRpdGxlLCBjLmNpZCwgYy5jbmFtZSkp IE9SREVSIEJZIGRpZDsKIAogLS0KIC0tIFRhYmxlIGluaGVyaXRhbmNlIGFuZCBSTFMgcG9saWN5 CkBAIC0yNjMsNiArMzEwLDEzIEBAIENPUFkgdDMoaWQsIGEsYixjKSBGUk9NIHN0ZGluOwogMzAz CTMJenp6CVoKIFwuCiAKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBpdHBnCisgICAgVkVSVEVYIFRB QkxFUyAoCisgICAgICAgIHQxIEtFWShpZCkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChpZCwg YSwgYiwgdGFibGVvaWQ6OnJlZ2NsYXNzIGFzIHRhYmxlb2lkKSwKKyAgICAgICAgdDIgS0VZKGlk KSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGlkLCBhLCBiLCB0YWJsZW9pZDo6cmVnY2xhc3Mg YXMgdGFibGVvaWQpLAorICAgICAgICB0MyBLRVkoaWQpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElF UyAoaWQsIGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFzcyBhcyB0YWJsZW9pZCkpOworR1JBTlQgQUxM IE9OIGl0cGcgVE8gcHVibGljOworCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHQxIEZPUiBBTEwgVE8g UFVCTElDIFVTSU5HIChhICUgMiA9IDApOyAtLSBiZSBldmVuIG51bWJlcgogQ1JFQVRFIFBPTElD WSBwMiBPTiB0MiBGT1IgQUxMIFRPIFBVQkxJQyBVU0lORyAoYSAlIDIgPSAxKTsgLS0gYmUgb2Rk IG51bWJlcgogCkBAIC0yNzMsOSArMzI3LDEzIEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYm9iOwogCiBTRUxFQ1QgKiBGUk9NIHQxOwogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRD SCAodDogdDEpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0 LmlkLCB0LmEsIHQuYikpOwogCiBTRUxFQ1QgKiBGUk9NIHQxIFdIRVJFIGZfbGVhayhiKTsKIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYik7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSBXSEVSRSBmX2xlYWsodC5i KSkgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEgV0hFUkUgZl9sZWFrKHQuYikp IENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CiAKIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29s dW1uCiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdDE7CkBAIC0yOTUsMTggKzM1 MywyNSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFr KGIpIEZPUiBTSEFSRTsKIC0tIHVuaW9uIGFsbCBxdWVyeQogU0VMRUNUIGEsIGIsIHRhYmxlb2lk OjpyZWdjbGFzcyBGUk9NIHQyIFVOSU9OIEFMTCBTRUxFQ1QgYSwgYiwgdGFibGVvaWQ6OnJlZ2Ns YXNzIEZST00gdDM7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBhLCBiLCB0YWJsZW9pZDo6 cmVnY2xhc3MgRlJPTSB0MiBVTklPTiBBTEwgU0VMRUNUIGEsIGIsIHRhYmxlb2lkOjpyZWdjbGFz cyBGUk9NIHQzOworLS0gbGFiZWwgZGlzanVuY3Rpb24KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKGl0cGcgTUFUQ0ggKHQgOiB0MiB8IHQzKSBDT0xVTU5TICh0LmEsIHQuYiwgdC50YWJsZW9p ZCkpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBn IE1BVENIICh0IDogdDIgfCB0MykgQ09MVU1OUyAodC5hLCB0LmIsIHQudGFibGVvaWQpKTsKIAog LS0gc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYnlwYXNzIFJMUyBjaGVja3MKIFJFU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJP TSB0MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g dDEgV0hFUkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRD SCAodDogdDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0gg KHQ6IHQxIFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOwogCiAt LSBub24tc3VwZXJ1c2VyIHdpdGggYnlwYXNzIHByaXZpbGVnZSBjYW4gYnlwYXNzIFJMUyBwb2xp Y3kgd2hlbiBkaXNhYmxlZAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19l eGVtcHRfdXNlcjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogU0VMRUNUICogRlJPTSB0MSBX SEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hF UkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDog dDEgV0hFUkUgZl9sZWFrKHQuYikpIENPTFVNTlMgKHQuaWQsIHQuYSwgdC5iKSk7CitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQx IFdIRVJFIGZfbGVhayh0LmIpKSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikpOwogCiAtLQogLS0g UGFydGl0aW9uZWQgVGFibGVzCkBAIC0zNDQsNiArNDA5LDExIEBAIElOU0VSVCBJTlRPIHBhcnRf ZG9jdW1lbnQgVkFMVUVTCiAgICAgKCA5LCAxMSwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAnYXdl c29tZSBzY2llbmNlIGZpY3Rpb24nKSwKICAgICAoMTAsIDk5LCAyLCAncmVncmVzc19ybHNfZGF2 ZScsICdhd2Vzb21lIHRlY2hub2xvZ3kgYm9vaycpOwogCitDUkVBVEUgUFJPUEVSVFkgR1JBUEgg cHRwZworICAgIFZFUlRFWCBUQUJMRVMgKHBhcnRfZG9jdW1lbnQgS0VZIChkaWQpLCBwYXJ0X2Rv Y3VtZW50X3NhdGlyZSBLRVkgKGRpZCkpOworCitHUkFOVCBBTEwgT04gcHRwZyBUTyBwdWJsaWM7 CisKIEFMVEVSIFRBQkxFIHBhcnRfZG9jdW1lbnQgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsK IAogLS0gQ3JlYXRlIHBvbGljeSBvbiBwYXJlbnQKQEAgLTM2MywxNiArNDMzLDIyIEBAIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VUIHJvd19zZWN1cml0eSBU TyBPTjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBP UkRFUiBCWSBkaWQ7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcGFydF9kb2N1 bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0 cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVN TlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKSBPUkRFUiBC WSBkaWQ7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0 cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVN TlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKSBPUkRFUiBC WSBkaWQ7CiAKIC0tIHZpZXdwb2ludCBmcm9tIHJlZ3Jlc3NfcmxzX2Nhcm9sCiBTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBwYXJ0X2Rv Y3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQg V0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwg ZC5kYXV0aG9yLCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQg V0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwg ZC5kYXV0aG9yLCBkLmR0aXRsZSkpIE9SREVSIEJZIGRpZDsKIAogLS0gdmlld3BvaW50IGZyb20g cmVncmVzc19ybHNfZGF2ZQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19k YXZlOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9S REVSIEJZIGRpZDsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2RvY3Vt ZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRw ZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1O UyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDog cGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5j aWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIHBwMSBFUlJPUgogSU5T RVJUIElOVE8gcGFydF9kb2N1bWVudCBWQUxVRVMgKDEwMCwgMTEsIDUsICdyZWdyZXNzX3Jsc19k YXZlJywgJ3Rlc3RpbmcgcHAxJyk7IC0tIGZhaWwKQEAgLTM4OCw2ICs0NjQsNyBAQCBJTlNFUlQg SU5UTyBwYXJ0X2RvY3VtZW50X3NhdGlyZSBWQUxVRVMgKDEwMCwgNTUsIDEsICdyZWdyZXNzX3Js c19kYXZlJywgJ3Rlc3RpbgogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVh ayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKIC0tIEJ1dCB3ZSBjYW4gaWYgd2UgbG9vayBkaXJlY3Rs eQogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBXSEVSRSBmX2xlYWsoZHRpdGxl KSBPUkRFUiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudF9zYXRpcmUgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09MVU1OUyAo ZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogCiAtLSBUdXJu IG9uIFJMUyBhbmQgY3JlYXRlIHBvbGljeSBvbiBjaGlsZCB0byBzaG93IFJMUyBpcyBjaGVja2Vk IGJlZm9yZSBjb25zdHJhaW50cwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19hbGljZTsKQEAgLTM5OSwxNSArNDc2LDIwIEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfZGF2ZTsKIElOU0VSVCBJTlRPIHBhcnRfZG9jdW1lbnRfc2F0aXJlIFZBTFVF UyAoMTAxLCA1NSwgMSwgJ3JlZ3Jlc3NfcmxzX2RhdmUnLCAndGVzdGluZyBSTFMgd2l0aCBwYXJ0 aXRpb25zJyk7IC0tIGZhaWwKIC0tIEFuZCBub3cgd2UgY2Fubm90IHNlZSBkaXJlY3RseSBpbnRv IHRoZSBwYXJ0aXRpb24gZWl0aGVyLCBkdWUgdG8gUkxTCiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9j dW1lbnRfc2F0aXJlIFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZIGRpZDsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50X3NhdGlyZSBX SEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBk LmRhdXRob3IsIGQuZHRpdGxlKSk7CiAtLSBUaGUgcGFyZW50IGxvb2tzIHNhbWUgYXMgYmVmb3Jl CiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Jsc19kYXZlCiBTRUxFQ1QgKiBGUk9NIHBhcnRf ZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSk7 CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVu dCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVs LCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVh ayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwg ZC5kdGl0bGUpKTsKIAogLS0gdmlld3BvaW50IGZyb20gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHBh cnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRsZSkgT1JERVIgQlkgZGlkOwogRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGR0aXRs ZSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1 bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxl dmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2RvY3VtZW50IFdIRVJFIGZf bGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhv ciwgZC5kdGl0bGUpKTsKIAogLS0gb25seSBvd25lciBjYW4gY2hhbmdlIHBvbGljaWVzCiBBTFRF UiBQT0xJQ1kgcHAxIE9OIHBhcnRfZG9jdW1lbnQgVVNJTkcgKHRydWUpOyAgICAtLWZhaWwKQEAg LTQxOSwzNiArNTAxLDQ2IEBAIEFMVEVSIFBPTElDWSBwcDEgT04gcGFydF9kb2N1bWVudCBVU0lO RyAoZGF1dGhvciA9IGN1cnJlbnRfdXNlcik7CiAtLSB2aWV3cG9pbnQgZnJvbSByZWdyZXNzX3Js c19ib2IgYWdhaW4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwog U0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpIE9SREVSIEJZ IGRpZDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHB0cGcgTUFUQ0ggKGQgOiBwYXJ0X2Rv Y3VtZW50IFdIRVJFIGZfbGVhayhkLmR0aXRsZSkpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5k bGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKIAogLS0gdmlld3BvaW50IGZyb20gcmxzX3Jl Z3Jlc19jYXJvbCBhZ2FpbgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19j YXJvbDsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZHRpdGxlKSBP UkRFUiBCWSBkaWQ7Ci0KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBwYXJ0X2Rv Y3VtZW50IFdIRVJFIGZfbGVhayhkdGl0bGUpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo cHRwZyBNQVRDSCAoZCA6IHBhcnRfZG9jdW1lbnQgV0hFUkUgZl9sZWFrKGQuZHRpdGxlKSkgQ09M VU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChk IDogcGFydF9kb2N1bWVudCBXSEVSRSBmX2xlYWsoZC5kdGl0bGUpKSBDT0xVTU5TIChkLmRpZCwg ZC5jaWQsIGQuZGxldmVsLCBkLmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIGRhdGFiYXNlIHN1 cGVydXNlciBkb2VzIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZW5hYmxlZAogUkVTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OOwogU0VUIHJvd19zZWN1cml0eSBUTyBPTjsKIFNFTEVDVCAqIEZST00g cGFydF9kb2N1bWVudCBPUkRFUiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChw dHBnIE1BVENIIChkIDogcGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRs ZXZlbCwgZC5kYXV0aG9yLCBkLmR0aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50 X3NhdGlyZSBPUkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1B VENIIChkIDogcGFydF9kb2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5k bGV2ZWwsIGQuZGF1dGhvciwgZC5kdGl0bGUpKTsKIAogLS0gZGF0YWJhc2Ugbm9uLXN1cGVydXNl ciB3aXRoIGJ5cGFzcyBwcml2aWxlZ2UgY2FuIGJ5cGFzcyBSTFMgcG9saWN5IHdoZW4gZGlzYWJs ZWQKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfZXhlbXB0X3VzZXI7CiBT RVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBPUkRF UiBCWSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFy dF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9yLCBk LmR0aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBieSBk aWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9kb2N1 bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhvciwg ZC5kdGl0bGUpKTsKIAogLS0gUkxTIHBvbGljeSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25l ciB3aGVuIFJMUyBlbmFibGVkLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19hbGljZTsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT047CiBTRUxFQ1QgKiBGUk9NIHBhcnRfZG9j dW1lbnQgT1JERVIgYnkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRD SCAoZCA6IHBhcnRfZG9jdW1lbnQpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQu ZGF1dGhvciwgZC5kdGl0bGUpKTsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudF9zYXRpcmUg T1JERVIgYnkgZGlkOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocHRwZyBNQVRDSCAoZCA6 IHBhcnRfZG9jdW1lbnRfc2F0aXJlKSBDT0xVTU5TIChkLmRpZCwgZC5jaWQsIGQuZGxldmVsLCBk LmRhdXRob3IsIGQuZHRpdGxlKSk7CiAKIC0tIFdoZW4gUkxTIGRpc2FibGVkLCBvdGhlciB1c2Vy cyBnZXQgRVJST1IuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2RhdmU7 CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9GRjsKIFNFTEVDVCAqIEZST00gcGFydF9kb2N1bWVudCBP UkRFUiBieSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDog cGFydF9kb2N1bWVudCkgQ09MVU1OUyAoZC5kaWQsIGQuY2lkLCBkLmRsZXZlbCwgZC5kYXV0aG9y LCBkLmR0aXRsZSkpOwogU0VMRUNUICogRlJPTSBwYXJ0X2RvY3VtZW50X3NhdGlyZSBPUkRFUiBi eSBkaWQ7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChwdHBnIE1BVENIIChkIDogcGFydF9k b2N1bWVudF9zYXRpcmUpIENPTFVNTlMgKGQuZGlkLCBkLmNpZCwgZC5kbGV2ZWwsIGQuZGF1dGhv ciwgZC5kdGl0bGUpKTsKIAogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0aCBhIHBvbGljeSB0aGF0IHVz ZXMgYSBTdWJQbGFuIG5vdCBhbiBJbml0UGxhbi4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYWxpY2U7CkBAIC00ODQsOSArNTc2LDExIEBAIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBkZXBlbmRlbnQ7IC0tIEFmdGVyIGRyb3AsIHNob3VsZCBiZSB1bnF1 YWxpZmllCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JF QVRFIFRBQkxFIHJlYzEgKHggaW50ZWdlciwgeSBpbnRlZ2VyKTsKIENSRUFURSBQT0xJQ1kgcjEg T04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1Qgci54IEZST00gcmVjMSByIFdIRVJFIHkgPSByLnkp KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBydHBnIFZFUlRFWCBUQUJMRVMgKHJlYzEgS0VZICh4 KSk7CiBBTFRFUiBUQUJMRSByZWMxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsg LS0gZmFpbCwgZGlyZWN0IHJlY3Vyc2lvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRw ZyBNQVRDSCAocjogcmVjMSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgZGlyZWN0IHJl Y3Vyc2lvbgogCiAtLQogLS0gTXV0dWFsIHJlY3Vyc2lvbgpAQCAtNDk5LDYgKzU5Myw3IEBAIEFM VEVSIFRBQkxFIHJlYzIgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHJlYzE7ICAgIC0t IGZhaWwsIG11dHVhbCByZWN1cnNpb24KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcg TUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1 cnNpb24KIAogLS0KIC0tIE11dHVhbCByZWN1cnNpb24gdmlhIHZpZXdzCkBAIC01MTIsNiArNjA3 LDcgQEAgQUxURVIgUE9MSUNZIHIyIE9OIHJlYzIgVVNJTkcgKGEgPSAoU0VMRUNUIHggRlJPTSBy ZWMxdiBXSEVSRSB5ID0gYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmVjMTsgICAgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lv biB2aWEgdmlld3MKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJl YzEpIENPTFVNTlMgKHIueCwgci55KSk7IC0tIGZhaWwsIG11dHVhbCByZWN1cnNpb24gdmlhIHZp ZXdzCiAKIC0tCiAtLSBNdXR1YWwgcmVjdXJzaW9uIHZpYSAucy5iIHZpZXdzCkBAIC01MjgsNiAr NjI0LDI0IEBAIENSRUFURSBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBG Uk9NIHJlYzF2IFdIRVJFIHkgPSBiKSk7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVj dXJzaW9uIHZpYSBzLmIuIHZpZXdzCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydHBnIE1B VENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkpOyAtLSBmYWlsLCBtdXR1YWwgcmVjdXJz aW9uIHZpYSBzLmIuIHZpZXdzCisKKy0tCistLSBEaXJlY3QgYW5kIG11dHVhbCByZWN1cnNpb24g dmlhIEdSQVBIX1RBQkxFCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Js c19hbGljZTsKK0FMVEVSIFBPTElDWSByMSBPTiByZWMxIFVTSU5HICh4ID0gKFNFTEVDVCB4IEZS T00gR1JBUEhfVEFCTEUgKHJ0cGcgTUFUQ0ggKHI6IHJlYzEpIENPTFVNTlMgKHIueCwgci55KSkg V0hFUkUgeCA9IHkpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9i OworU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBkaXJlY3QgcmVjdXJzaW9uIHZpYSBH UkFQSF9UQUJMRQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVj MSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgZGlyZWN0IHJlY3Vyc2lvbiB2aWEgR1JB UEhfVEFCTEUKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK K0FMVEVSIFBST1BFUlRZIEdSQVBIIHJ0cGcgQUREIFZFUlRFWCBUQUJMRVMgKHJlYzIgS0VZIChh KSk7CitBTFRFUiBQT0xJQ1kgcjEgT04gcmVjMSBVU0lORyAoeCA9IChTRUxFQ1QgYSBGUk9NIEdS QVBIX1RBQkxFIChydHBnIE1BVENIIChyOiByZWMyKSBDT0xVTU5TIChyLmEsIHIuYikpIFdIRVJF IGIgPSB5KSk7CitBTFRFUiBQT0xJQ1kgcjIgT04gcmVjMiBVU0lORyAoYSA9IChTRUxFQ1QgeCBG Uk9NIEdSQVBIX1RBQkxFIChydHBnIE1BVENIIChyOiByZWMxKSBDT0xVTU5TIChyLngsIHIueSkp V0hFUkUgeSA9IGIpKTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9i OworU0VMRUNUICogRlJPTSByZWMxOyAgICAtLSBmYWlsLCBtdXR1YWwgcmVjdXJzaW9uIHZpYSBH UkFQSF9UQUJMRQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAocnRwZyBNQVRDSCAocjogcmVj MSkgQ09MVU1OUyAoci54LCByLnkpKTsgLS0gZmFpbCwgbXV0dWFsIHJlY3Vyc2lvbiB2aWEgR1JB UEhfVEFCTEUKIAogLS0KIC0tIHJlY3Vyc2l2ZSBSTFMgYW5kIFZJRVdzIGluIHBvbGljeQpAQCAt NTM5LDcgKzY1MywxMCBAQCBJTlNFUlQgSU5UTyBzMSAoU0VMRUNUIHgsIHB1YmxpYy5maXBzaGFz aCh4Ojp0ZXh0KSBGUk9NIGdlbmVyYXRlX3NlcmllcygtMTAsMTApCiBDUkVBVEUgVEFCTEUgczIg KHggaW50LCB5IHRleHQpOwogSU5TRVJUIElOVE8gczIgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hh c2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoLTYsNikgeCk7CiAKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCBydnRwZyBWRVJURVggVEFCTEVTIChzMSBLRVkgKGEpKTsKKwogR1JBTlQgU0VM RUNUIE9OIHMxLCBzMiBUTyByZWdyZXNzX3Jsc19ib2I7CitHUkFOVCBTRUxFQ1QgT04gcnZ0cGcg VE8gcmVncmVzc19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHMxIFVTSU5HIChhIGlu IChzZWxlY3QgeCBmcm9tIHMyIHdoZXJlIHkgbGlrZSAnJTJmJScpKTsKIENSRUFURSBQT0xJQ1kg cDIgT04gczIgVVNJTkcgKHggaW4gKHNlbGVjdCBhIGZyb20gczEgd2hlcmUgYiBsaWtlICclMjIl JykpOwpAQCAtNTUxLDYgKzY2OCw3IEBAIEFMVEVSIFRBQkxFIHMyIEVOQUJMRSBST1cgTEVWRUwg U0VDVVJJVFk7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENS RUFURSBWSUVXIHYyIEFTIFNFTEVDVCAqIEZST00gczIgV0hFUkUgeSBsaWtlICclYWYlJzsKIFNF TEVDVCAqIEZST00gczEgV0hFUkUgZl9sZWFrKGIpOyAtLSBmYWlsIChpbmZpbml0ZSByZWN1cnNp b24pCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVS RSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOyAtLSBmYWlsIChpbmZpbml0ZSByZWN1 cnNpb24pCiAKIElOU0VSVCBJTlRPIHMxIFZBTFVFUyAoMSwgJ2ZvbycpOyAtLSBmYWlsIChpbmZp bml0ZSByZWN1cnNpb24pCiAKQEAgLTU2MSwxMiArNjc5LDE2IEBAIEFMVEVSIFBPTElDWSBwMiBP TiBzMiBVU0lORyAoeCAlIDIgPSAwKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBzMSBXSEVSRSBmX2xlYWsoYik7CS0tIE9LCiBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gb25seSBzMSBXSEVSRSBmX2xlYWsoYik7CitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xl YWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBmX2xlYWsocy5i KSBDT0xVTU5TIChzLmEsIHMuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcmxzX2FsaWNlOwogQUxURVIgUE9MSUNZIHAxIE9OIHMxIFVTSU5HIChhIGluIChzZWxlY3Qg eCBmcm9tIHYyKSk7IC0tIHVzaW5nIFZJRVcgaW4gUkxTIHBvbGljeQogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHMxIFdIRVJFIGZfbGVh ayhiKTsJLS0gT0sKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzMSBXSEVSRSBm X2xlYWsoYik7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMx KSBXSEVSRSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOworRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVS RSBmX2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwogCiBTRUxFQ1QgKFNFTEVDVCB4IEZS T00gczEgTElNSVQgMSkgeHgsICogRlJPTSBzMiBXSEVSRSB5IGxpa2UgJyUyOCUnOwogRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKFNFTEVDVCB4IEZST00gczEgTElNSVQgMSkgeHgsICogRlJP TSBzMiBXSEVSRSB5IGxpa2UgJyUyOCUnOwpAQCAtNTc1LDExICs2OTcsMTUgQEAgU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIEFMVEVSIFBPTElDWSBwMiBPTiBz MiBVU0lORyAoeCBpbiAoc2VsZWN0IGEgZnJvbSBzMSB3aGVyZSBiIGxpa2UgJyVkMiUnKSk7CiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00g czEgV0hFUkUgZl9sZWFrKGIpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1cnNpb24gdmlhIHZpZXcp CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChydnRwZyBNQVRDSCAocyA6IHMxKSBXSEVSRSBm X2xlYWsocy5iKSBDT0xVTU5TIChzLmEsIHMuYikpOwktLSBmYWlsIChpbmZpbml0ZSByZWN1cnNp b24gdmlhIHZpZXcpCiAKIC0tIHByZXBhcmVkIHN0YXRlbWVudCB3aXRoIHJlZ3Jlc3NfcmxzX2Fs aWNlIHByaXZpbGVnZQogUFJFUEFSRSBwMShpbnQpIEFTIFNFTEVDVCAqIEZST00gdDEgV0hFUkUg YSA8PSAkMTsKIEVYRUNVVEUgcDEoMik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcDEo Mik7CitQUkVQQVJFIHBwZzEoaW50KSBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBn IE1BVENIICh0IDogdDEpIFdIRVJFIHQuYSA8PSAkMSBDT0xVTU5TICh0LmlkLCB0LmEsIHQuYikp OworRVhFQ1VURSBwcGcxKDIpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBwZzEoMik7 CiAKIC0tIHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGJ5cGFzcyBSTFMgY2hlY2tzCiBSRVNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT047CkBAIC01OTAsMTYgKzcxNiwyMyBAQCBFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpOwogLS0gcGxhbiBjYWNoZSBz aG91bGQgYmUgaW52YWxpZGF0ZWQKIEVYRUNVVEUgcDEoMik7CiBFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcDEoMik7CitFWEVDVVRFIHBwZzEoMik7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVY RUNVVEUgcHBnMSgyKTsKIAogUFJFUEFSRSBwMihpbnQpIEFTIFNFTEVDVCAqIEZST00gdDEgV0hF UkUgYSA9ICQxOwogRVhFQ1VURSBwMigyKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw MigyKTsKK1BSRVBBUkUgcHBnMihpbnQpIEFTIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0 cGcgTUFUQ0ggKHQgOiB0MSkgV0hFUkUgdC5hID0gJDEgQ09MVU1OUyAodC5pZCwgdC5hLCB0LmIp KTsKK0VYRUNVVEUgcHBnMigyKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcyKDIp OwogCiAtLSBhbHNvLCBjYXNlIHdoZW4gcHJpdmlsZWdlIHN3aXRjaCBmcm9tIHN1cGVydXNlcgog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9OOwogRVhFQ1VURSBwMigyKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw MigyKTsKK0VYRUNVVEUgcHBnMigyKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwcGcy KDIpOwogCiAtLQogLS0gVVBEQVRFIC8gREVMRVRFIGFuZCBSb3ctbGV2ZWwgc2VjdXJpdHkKQEAg LTY3OCwxMSArODExLDE1IEBAIEdSQU5UIEFMTCBPTiBiMSBUTyByZWdyZXNzX3Jsc19ib2I7CiBT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVXIGJ2 MSBXSVRIIChzZWN1cml0eV9iYXJyaWVyKSBBUyBTRUxFQ1QgKiBGUk9NIGIxIFdIRVJFIGEgPiAw IFdJVEggQ0hFQ0sgT1BUSU9OOwogR1JBTlQgQUxMIE9OIGJ2MSBUTyByZWdyZXNzX3Jsc19jYXJv bDsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBzYnZwZyBWRVJURVggVEFCTEVTIChidjEgS0VZIChh KSk7CitHUkFOVCBBTEwgT04gc2J2cGcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CiAKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiAKIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBidjEgV0hFUkUgZl9sZWFrKGIpOwogU0VMRUNUICogRlJPTSBidjEg V0hFUkUgZl9sZWFrKGIpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChzYnZwZyBNQVRDSCAoYiA6IGJ2MSkgV0hFUkUgZl9sZWFrKGIuYikgQ09MVU1OUyAo Yi5hLCBiLmIpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHNidnBnIE1BVENIIChiIDog YnYxKSBXSEVSRSBmX2xlYWsoYi5iKSBDT0xVTU5TIChiLmEsIGIuYikpOwogCiBJTlNFUlQgSU5U TyBidjEgVkFMVUVTICgtMSwgJ3h4eCcpOyAtLSBzaG91bGQgZmFpbCB2aWV3IFdDTwogSU5TRVJU IElOVE8gYnYxIFZBTFVFUyAoMTEsICd4eHgnKTsgLS0gc2hvdWxkIGZhaWwgUkxTIGNoZWNrCkBA IC0xMDI3LDggKzExNjQsOSBAQCBTRUxFQ1QgKiBGUk9NIGRvY3VtZW50OwogU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBUQUJMRSB6MSAoYSBpbnQs IGIgdGV4dCk7CiBDUkVBVEUgVEFCTEUgejIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIGd0cGcgVkVSVEVYIFRBQkxFUyAoejEgS0VZIChhKSwgejIgS0VZIChhKSk7CiAK LUdSQU5UIFNFTEVDVCBPTiB6MSx6MiBUTyByZWdyZXNzX3Jsc19ncm91cDEsIHJlZ3Jlc3Nfcmxz X2dyb3VwMiwKK0dSQU5UIFNFTEVDVCBPTiB6MSx6MiwgZ3RwZyBUTyByZWdyZXNzX3Jsc19ncm91 cDEsIHJlZ3Jlc3NfcmxzX2dyb3VwMiwKICAgICByZWdyZXNzX3Jsc19ib2IsIHJlZ3Jlc3Nfcmxz X2Nhcm9sOwogCiBJTlNFUlQgSU5UTyB6MSBWQUxVRVMKQEAgLTEwNDUsMzkgKzExODMsNjIgQEAg QUxURVIgVEFCTEUgejEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xl YWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFr KGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVS RSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVh ayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CiAKIFBSRVBBUkUgcGxhbmNhY2hlX3Rlc3QgQVMg U0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVY RUNVVEUgcGxhbmNhY2hlX3Rlc3Q7CitQUkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0IEFTIFNFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHou YikgQ09MVU1OUyAoei5hLCB6LmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfcGdfdGVzdDsKIAogUFJFUEFSRSBwbGFuY2FjaGVfdGVzdDIgQVMgV0lUSCBxIEFTIE1B VEVSSUFMSVpFRCAoU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYikpIFNFTEVDVCAqIEZS T00gcSx6MjsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7CitQ UkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0MiBBUyBXSVRIIHEgQVMgTUFURVJJQUxJWkVEIChTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6 LmIpIENPTFVNTlMoei5hLCB6LmIpKSkgU0VMRUNUICogRlJPTSBxLCBHUkFQSF9UQUJMRSAoZ3Rw ZyBNQVRDSCAoeiA6IHoyKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKIAogUFJFUEFSRSBwbGFuY2FjaGVfdGVzdDMg QVMgV0lUSCBxIEFTIE1BVEVSSUFMSVpFRCAoU0VMRUNUICogRlJPTSB6MikgU0VMRUNUICogRlJP TSBxLHoxIFdIRVJFIGZfbGVhayh6MS5iKTsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBw bGFuY2FjaGVfdGVzdDM7CitQUkVQQVJFIHBsYW5jYWNoZV9wZ190ZXN0MyBBUyBXSVRIIHEgQVMg TUFURVJJQUxJWkVEIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDog ejIpIENPTFVNTlMoei5hLCB6LmIpKSkgU0VMRUNUICogRlJPTSBxLCBHUkFQSF9UQUJMRSAoZ3Rw ZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MzsKIAogU0VUIFJP TEUgcmVncmVzc19ybHNfZ3JvdXAxOwogU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7 CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRDSCAoeiA6IHoxKSBXSEVSRSBmX2xl YWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIp IENPTFVNTlMgKHouYSwgei5iKSk7CiAKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFu Y2FjaGVfdGVzdDsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDI7 CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNhY2hlX3Rlc3QzOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0OworRVhQTEFJTiAoQ09TVFMgT0ZG KSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VU RSBwbGFuY2FjaGVfcGdfdGVzdDM7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKIEVYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB6MSBXSEVSRSBmX2xlYWsoYik7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDogejEpIFdIRVJFIGZfbGVhayh6LmIpIENP TFVNTlMgKHouYSwgei5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGd0cGcgTUFUQ0ggKHogOiB6MSkgV0hFUkUgZl9sZWFrKHouYikgQ09MVU1OUyAo ei5hLCB6LmIpKTsKIAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0 OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MjsKIEVYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDM7CitFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcGxhbmNhY2hlX3BnX3Rlc3Q7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUg cGxhbmNhY2hlX3BnX3Rlc3QyOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNo ZV9wZ190ZXN0MzsKIAogU0VUIFJPTEUgcmVncmVzc19ybHNfZ3JvdXAyOwogU0VMRUNUICogRlJP TSB6MSBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g ejEgV0hFUkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZ3RwZyBNQVRD SCAoeiA6IHoxKSBXSEVSRSBmX2xlYWsoei5iKSBDT0xVTU5TICh6LmEsIHouYikpOworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChndHBnIE1BVENIICh6IDog ejEpIFdIRVJFIGZfbGVhayh6LmIpIENPTFVNTlMgKHouYSwgei5iKSk7CiAKIEVYUExBSU4gKENP U1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfdGVzdDsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhF Q1VURSBwbGFuY2FjaGVfdGVzdDI7CiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcGxhbmNh Y2hlX3Rlc3QzOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0 OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV9wZ190ZXN0MjsKK0VYUExB SU4gKENPU1RTIE9GRikgRVhFQ1VURSBwbGFuY2FjaGVfcGdfdGVzdDM7CiAKIC0tCiAtLSBWaWV3 cyBzaG91bGQgZm9sbG93IHBvbGljeSBmb3IgdmlldyBvd25lci4KQEAgLTEwODUsMzUgKzEyNDYs NDggQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHBsYW5jYWNoZV90ZXN0MzsKIC0tIFZp ZXcgYW5kIFRhYmxlIG93bmVyIGFyZSB0aGUgc2FtZS4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVklFVyBybHNfdmlldyBBUyBTRUxFQ1QgKiBG Uk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBnIFZFUlRF WCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192aWV3IFRP IHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2Jv YjsKIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IG9yIHRhYmxl LiAgU2hvdWxkIHJldHVybiBhbGwgcmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVlcnkgYXMgdmlldy90YWJsZSBvd25l ci4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFC TEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJ TiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBy bHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsK IERST1AgVklFVyBybHNfdmlldzsKIAogLS0gVmlldyBhbmQgVGFibGUgb3duZXJzIGFyZSBkaWZm ZXJlbnQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFU RSBWSUVXIHJsc192aWV3IEFTIFNFTEVDVCAqIEZST00gejEgV0hFUkUgZl9sZWFrKGIpOwogR1JB TlQgU0VMRUNUIE9OIHJsc192aWV3IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworQ1JFQVRFIFBST1BF UlRZIEdSQVBIIHZ0cGcgVkVSVEVYIFRBQkxFUyAocmxzX3ZpZXcgS0VZIChhKSk7CitHUkFOVCBT RUxFQ1QgT04gdnRwZyBUTyByZWdyZXNzX3Jsc19hbGljZTsKIAogLS0gUXVlcnkgYXMgcm9sZSB0 aGF0IGlzIG5vdCBvd25lciBvZiB2aWV3IGJ1dCBpcyBvd25lciBvZiB0YWJsZS4KIC0tIFNob3Vs ZCByZXR1cm4gcmVjb3JkcyBiYXNlZCBvbiB2aWV3IG93bmVyIHBvbGljaWVzLgogU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIFNFTEVDVCAqIEZST00gcmxzX3Zp ZXc7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5h LCByLmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo dnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAKIC0tIFF1ZXJ5 IGFzIHJvbGUgdGhhdCBpcyBub3Qgb3duZXIgb2YgdGFibGUgYnV0IGlzIG93bmVyIG9mIHZpZXcu CiAtLSBTaG91bGQgcmV0dXJuIHJlY29yZHMgYmFzZWQgb24gdmlldyBvd25lciBwb2xpY2llcy4K IFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJP TSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsK K1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xV TU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAog LS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZp ZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19ybHNfY2Fyb2w7CkBAIC0xMTIzLDEwICsxMjk3LDEzIEBAIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCiAtLSBR dWVyeSBhcyByb2xlIHRoYXQgaXMgbm90IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3 aXRoIHBlcm1pc3Npb25zLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19i b2I7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3ZpZXcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CitHUkFO VCBTRUxFQ1QgT04gdnRwZyBUTyByZWdyZXNzX3Jsc19jYXJvbDsKIAogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CiBF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7CitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIp KTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CiAKIC0tIFBvbGljeSByZXF1 aXJpbmcgYWNjZXNzIHRvIGFub3RoZXIgdGFibGUuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfcmxzX2FsaWNlOwpAQCAtMTEzOCwxMSArMTMxNSwxNSBAQCBDUkVBVEUgUE9MSUNZ IHAzIE9OIHoxIEFTIFJFU1RSSUNUSVZFIFVTSU5HIChhIE5PVCBJTiAoU0VMRUNUIGEgRlJPTSB6 MV9ibGFja2xpcwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBT RUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lv biBkZW5pZWQuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitF WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0gg KHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRl bmllZC4KIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRh YmxlIG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBw ZXJtaXNzaW9uIGRlbmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNf dmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsgLS1mYWls IC0gcGVybWlzc2lvbiBkZW5pZWQuCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikp OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlz IG5vdCBvd25lciBvZiB0YWJsZSBidXQgaXMgb3duZXIgb2YgdmlldyB3aXRoIHBlcm1pc3Npb25z LgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKQEAgLTExNTEs MTcgKzEzMzIsMjIgQEAgR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBUTyByZWdyZXNzX3Js c19ib2I7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVD VCAqIEZST00gcmxzX3ZpZXc7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxz X3ZpZXc7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmll dykgQ09MVU1OUyAoci5hLCByLmIpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5i KSk7CiAKIC0tIFF1ZXJ5IGFzIHJvbGUgdGhhdCBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSB0YWJs ZSBvciB2aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19hbGljZTsKIFJFVk9LRSBTRUxFQ1QgT04gejFfYmxhY2tsaXN0IEZST00gcmVn cmVzc19ybHNfYm9iOwogRFJPUCBQT0xJQ1kgcDMgT04gejE7CiAKIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19ybHNfYm9iOworRFJPUCBQUk9QRVJUWSBHUkFQSCB2dHBnOwogRFJP UCBWSUVXIHJsc192aWV3OwogCiAtLQpAQCAtMTE3MSw0NyArMTM1Nyw2NiBAQCBEUk9QIFZJRVcg cmxzX3ZpZXc7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwog Q1JFQVRFIFZJRVcgcmxzX3ZpZXcgV0lUSCAoc2VjdXJpdHlfaW52b2tlcikgQVMKICAgICBTRUxF Q1QgKiBGUk9NIHoxIFdIRVJFIGZfbGVhayhiKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCB2dHBn IFZFUlRFWCBUQUJMRVMgKHJsc192aWV3IEtFWSAoYSkpOwogR1JBTlQgU0VMRUNUIE9OIHJsc192 aWV3IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdy ZXNzX3Jsc19jYXJvbDsKK0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsK K0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogCiAtLSBRdWVyeSBh cyB0YWJsZSBvd25lci4gIFNob3VsZCByZXR1cm4gYWxsIHJlY29yZHMuCiBTRUxFQ1QgKiBGUk9N IHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3Owor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVN TlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiAt LSBRdWVyaWVzIGFzIG90aGVyIHVzZXJzLgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2Vk IG9uIGN1cnJlbnQgdXNlcidzIHBvbGljaWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo dnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192 aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNf dmlldykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gVmlldyBhbmQgdGFibGUgb3duZXJzIGFy ZSBkaWZmZXJlbnQuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNl OworRFJPUCBQUk9QRVJUWSBHUkFQSCB2dHBnOwogRFJPUCBWSUVXIHJsc192aWV3OwogCiBTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIENSRUFURSBWSUVXIHJsc192 aWV3IFdJVEggKHNlY3VyaXR5X2ludm9rZXIpIEFTCiAgICAgU0VMRUNUICogRlJPTSB6MSBXSEVS RSBmX2xlYWsoYik7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggdnRwZyBWRVJURVggVEFCTEVTIChy bHNfdmlldyBLRVkgKGEpKTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Js c19hbGljZTsKIEdSQU5UIFNFTEVDVCBPTiBybHNfdmlldyBUTyByZWdyZXNzX3Jsc19jYXJvbDsK K0dSQU5UIFNFTEVDVCBPTiB2dHBnIFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNU IE9OIHZ0cGcgVE8gcmVncmVzc19ybHNfY2Fyb2w7CiAKIC0tIFF1ZXJ5IGFzIHRhYmxlIG93bmVy LiAgU2hvdWxkIHJldHVybiBhbGwgcmVjb3Jkcy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJs c192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOwogCiAtLSBRdWVyaWVzIGFzIG90aGVyIHVzZXJz LgogLS0gU2hvdWxkIHJldHVybiByZWNvcmRzIGJhc2VkIG9uIGN1cnJlbnQgdXNlcidzIHBvbGlj aWVzLgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1Qg KiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192 aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcp IENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikp OwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VMRUNU ICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNf dmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3 KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAoci5hLCByLmIp KTsKIAogLS0gUG9saWN5IHJlcXVpcmluZyBhY2Nlc3MgdG8gYW5vdGhlciB0YWJsZS4KIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CkBAIC0xMjIxLDExICsxNDI2 LDE1IEBAIENSRUFURSBQT0xJQ1kgcDMgT04gejEgQVMgUkVTVFJJQ1RJVkUgVVNJTkcgKGEgTk9U IElOIChTRUxFQ1QgYSBGUk9NIHoxX2JsYWNrbGlzCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O IHJlZ3Jlc3NfcmxzX2JvYjsKIFNFTEVDVCAqIEZST00gcmxzX3ZpZXc7IC0tZmFpbCAtIHBlcm1p c3Npb24gZGVuaWVkLgogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3 OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBw ZXJtaXNzaW9uIGRlbmllZC4KK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQ SF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7IC0t ZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogCiAtLSBRdWVyeSBhcyByb2xlIHRoYXQgaXMgbm90 IHRoZSBvd25lciBvZiB0aGUgdGFibGUgb3IgdmlldyB3aXRob3V0IHBlcm1pc3Npb25zLgogU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19jYXJvbDsKIFNFTEVDVCAqIEZST00g cmxzX3ZpZXc7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5T IChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KK0VYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBNQVRDSCAocjogcmxzX3ZpZXcp IENPTFVNTlMgKHIuYSwgci5iKSk7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkLgogCiAtLSBR dWVyeSBhcyByb2xlIHRoYXQgaXMgbm90IG93bmVyIG9mIHRhYmxlIGJ1dCBpcyBvd25lciBvZiB2 aWV3IHdpdGggcGVybWlzc2lvbnMuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2FsaWNlOwpAQCAtMTIzNCwxMSArMTQ0MywxNSBAQCBHUkFOVCBTRUxFQ1QgT04gejFfYmxh Y2tsaXN0IFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSBybHNfdmlldzsKIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBybHNfdmlldzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0 cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBDT0xVTU5TIChyLmEsIHIuYikpOworRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmll dykgQ09MVU1OUyAoci5hLCByLmIpKTsKIAogLS0gUXVlcnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0 aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0aG91dCBwZXJtaXNzaW9ucy4KIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJs c192aWV3OyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIEVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBybHNfdmlldzsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFICh2dHBnIE1BVENIIChyOiBybHNfdmlldykgQ09MVU1OUyAo ci5hLCByLmIpKTsgLS1mYWlsIC0gcGVybWlzc2lvbiBkZW5pZWQuCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOyAtLWZhaWwgLSBwZXJtaXNzaW9uIGRlbmllZC4KIAogLS0gUXVl cnkgYXMgcm9sZSB0aGF0IGlzIG5vdCB0aGUgb3duZXIgb2YgdGhlIHRhYmxlIG9yIHZpZXcgd2l0 aCBwZXJtaXNzaW9ucy4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxp Y2U7CkBAIC0xMjQ3LDggKzE0NjAsMTEgQEAgR1JBTlQgU0VMRUNUIE9OIHoxX2JsYWNrbGlzdCBU TyByZWdyZXNzX3Jsc19jYXJvbDsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHJsc192aWV3OwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIHJsc192aWV3OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAodnRwZyBN QVRDSCAocjogcmxzX3ZpZXcpIENPTFVNTlMgKHIuYSwgci5iKSk7CitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKHZ0cGcgTUFUQ0ggKHI6IHJsc192aWV3KSBD T0xVTU5TIChyLmEsIHIuYikpOwogCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2JvYjsKK0RST1AgUFJPUEVSVFkgR1JBUEggdnRwZzsKIERST1AgVklFVyBybHNfdmlldzsK IAogLS0KQEAgLTEyNTcsNyArMTQ3Myw5IEBAIERST1AgVklFVyBybHNfdmlldzsKIFNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiAKIENSRUFURSBUQUJMRSB4MSAo YSBpbnQsIGIgdGV4dCwgYyB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjc3RwZyBWRVJU RVggVEFCTEVTICh4MSBLRVkgKGEpKTsKIEdSQU5UIEFMTCBPTiB4MSBUTyBQVUJMSUM7CitHUkFO VCBBTEwgT04gY3N0cGcgVE8gUFVCTElDOwogCiBJTlNFUlQgSU5UTyB4MSBWQUxVRVMKICAgICAo MSwgJ2FiYycsICdyZWdyZXNzX3Jsc19ib2InKSwKQEAgLTEyNzksMTAgKzE0OTcsMTIgQEAgQUxU RVIgVEFCTEUgeDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRUxFQ1QgKiBGUk9NIHgxIFdIRVJFIGZfbGVh ayhiKSBPUkRFUiBCWSBhIEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNzdHBnIE1B VENIICh4IDogeDEpIFdIRVJFIGZfbGVhayh4LmIpIENPTFVNTlMgKHguYSwgeC5iLCB4LmMpKSBP UkRFUiBCWSBhIEFTQzsKIFVQREFURSB4MSBTRVQgYiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xl YWsoYikgUkVUVVJOSU5HICo7CiAKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19y bHNfY2Fyb2w7CiBTRUxFQ1QgKiBGUk9NIHgxIFdIRVJFIGZfbGVhayhiKSBPUkRFUiBCWSBhIEFT QzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGNzdHBnIE1BVENIICh4IDogeDEpIFdIRVJF IGZfbGVhayh4LmIpIENPTFVNTlMgKHguYSwgeC5iLCB4LmMpKSBPUkRFUiBCWSBhIEFTQzsKIFVQ REFURSB4MSBTRVQgYiA9IGIgfHwgJ191cGR0JyBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7 CiBERUxFVEUgRlJPTSB4MSBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7CiAKQEAgLTEyOTIs OCArMTUxMiwxMCBAQCBERUxFVEUgRlJPTSB4MSBXSEVSRSBmX2xlYWsoYikgUkVUVVJOSU5HICo7 CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2FsaWNlOwogQ1JFQVRFIFRB QkxFIHkxIChhIGludCwgYiB0ZXh0KTsKIENSRUFURSBUQUJMRSB5MiAoYSBpbnQsIGIgdGV4dCk7 CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggc3ZidHBnIFZFUlRFWCBUQUJMRVMgKHkxIEtFWSAoYSks IHkyIEtFWSAoYSkpOwogCiBHUkFOVCBBTEwgT04geTEsIHkyIFRPIHJlZ3Jlc3NfcmxzX2JvYjsK K0dSQU5UIEFMTCBPTiBzdmJ0cGcgVE8gcmVncmVzc19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZ IHAxIE9OIHkxIEZPUiBBTEwgVVNJTkcgKGEgJSAyID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9O IHkxIEZPUiBTRUxFQ1QgVVNJTkcgKGEgPiAyKTsKQEAgLTEzMTAsNyArMTUzMiwxMCBAQCBBTFRF UiBUQUJMRSB5MiBFTkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOwogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBWSUVXIHJsc19zYnYgV0lUSCAoc2Vj dXJpdHlfYmFycmllcikgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHkxIFdIRVJFIGZfbGVhayhiKTsK K0FMVEVSIFBST1BFUlRZIEdSQVBIIHN2YnRwZyBBREQgVkVSVEVYIFRBQkxFUyAocmxzX3NidiBL RVkgKGEpKTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBybHNfc2J2IFdIRVJF IChhID0gMSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KHN2YnRwZyBNQVRDSCAocjogcmxzX3NidikgV0hFUkUgci5hID0gMSBDT0xVTU5TIChyLmEsIHIu YikpOworQUxURVIgUFJPUEVSVFkgR1JBUEggc3ZidHBnIERST1AgVkVSVEVYIFRBQkxFUyAocmxz X3Nidik7CiBEUk9QIFZJRVcgcmxzX3NidjsKIAogLS0gQ3JlYXRlIHZpZXcgYXMgcm9sZSB0aGF0 IGRvZXMgbm90IG93biB0YWJsZS4gIFJMUyBzaG91bGQgYmUgYXBwbGllZC4KQEAgLTEzMzEsMTIg KzE1NTYsMTYgQEAgQ1JFQVRFIFBPTElDWSBwMyBPTiB5MiBVU0lORyAoYSAlIDQgPSAwKTsKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB5 MiBXSEVSRSBmX2xlYWsoYik7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00geTIg V0hFUkUgZl9sZWFrKGIpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENI ICh5OiB5MikgV0hFUkUgZl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKK0VYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoc3ZidHBnIE1BVENIICh5OiB5 MikgV0hFUkUgZl9sZWFrKHkuYikgQ09MVU1OUyAoeS5hLCB5LmIpKTsKIAogLS0KIC0tIFF1YWwg cHVzaC1kb3duIG9mIGxlYWt5IGZ1bmN0aW9ucywgd2hlbiBub3QgcmVmZXJyaW5nIHRvIHRhYmxl CiAtLQogU0VMRUNUICogRlJPTSB5MiBXSEVSRSBmX2xlYWsoJ2FiYycpOwogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHkyIFdIRVJFIGZfbGVhaygnYWJjJyk7CitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChzdmJ0cGcgTUFUQ0ggKHk6IHkyKSBXSEVSRSBmX2xlYWsoJ2FiYycp IENPTFVNTlMgKHkuYSwgeS5iKSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKHN2YnRwZyBNQVRDSCAoeTogeTIpIFdIRVJFIGZfbGVhaygnYWJjJykgQ09M VU1OUyAoeS5hLCB5LmIpKTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RfcXVhbF9wdXNoZG93biAoCiAg ICAgYWJjIHRleHQKQEAgLTEzNTcsMTIgKzE1ODYsMTcgQEAgRFJPUCBUQUJMRSB0ZXN0X3F1YWxf cHVzaGRvd247CiAtLQogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogCitEUk9QIFBST1BF UlRZIEdSQVBIIGl0cGc7CiBEUk9QIFRBQkxFIHQxIENBU0NBREU7CiAKIENSRUFURSBUQUJMRSB0 MSAoYSBpbnRlZ2VyKTsKIAogR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcmxzX2JvYiwg cmVncmVzc19ybHNfY2Fyb2w7CiAKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBpdHBnIFZFUlRFWCBU QUJMRVMgKHQxIEtFWShhKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJlZ3Jlc3Nfcmxz X2JvYiwgcmVncmVzc19ybHNfY2Fyb2w7CisKIENSRUFURSBQT0xJQ1kgcDEgT04gdDEgVE8gcmVn cmVzc19ybHNfYm9iIFVTSU5HICgoYSAlIDIpID0gMCk7CiBDUkVBVEUgUE9MSUNZIHAyIE9OIHQx IFRPIHJlZ3Jlc3NfcmxzX2Nhcm9sIFVTSU5HICgoYSAlIDQpID0gMCk7CiAKQEAgLTEzNzEsMzAg KzE2MDUsMzcgQEAgQUxURVIgVEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIC0t IFByZXBhcmUgYXMgcmVncmVzc19ybHNfYm9iCiBTRVQgUk9MRSByZWdyZXNzX3Jsc19ib2I7CiBQ UkVQQVJFIHJvbGVfaW52YWwgQVMgU0VMRUNUICogRlJPTSB0MTsKK1BSRVBBUkUgcm9sZV9pbnZh bF9wZyBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09M VU1OUyAodC5hKSk7CiAtLSBDaGVjayBwbGFuCiBFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUg cm9sZV9pbnZhbDsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSByb2xlX2ludmFsX3BnOwog CiAtLSBDaGFuZ2UgdG8gcmVncmVzc19ybHNfY2Fyb2wKIFNFVCBST0xFIHJlZ3Jlc3NfcmxzX2Nh cm9sOwogLS0gQ2hlY2sgcGxhbi0gc2hvdWxkIGJlIGRpZmZlcmVudAogRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHJvbGVfaW52YWw7CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcm9s ZV9pbnZhbF9wZzsKIAogLS0gQ2hhbmdlIGJhY2sgdG8gcmVncmVzc19ybHNfYm9iCiBTRVQgUk9M RSByZWdyZXNzX3Jsc19ib2I7CiAtLSBDaGVjayBwbGFuLSBzaG91bGQgYmUgYmFjayB0byBvcmln aW5hbAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJvbGVfaW52YWw7CitFWFBMQUlOIChD T1NUUyBPRkYpIEVYRUNVVEUgcm9sZV9pbnZhbF9wZzsKIAogLS0KIC0tIENURSBhbmQgUkxTCiAt LQogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworRFJPUCBQUk9QRVJUWSBHUkFQSCBpdHBn OwogRFJPUCBUQUJMRSB0MSBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIHQxIChhIGludGVnZXIsIGIg dGV4dCk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggaXRwZyBWRVJURVggVEFCTEVTICh0MSBLRVko YSkpOwogQ1JFQVRFIFBPTElDWSBwMSBPTiB0MSBVU0lORyAoYSAlIDIgPSAwKTsKIAogQUxURVIg VEFCTEUgdDEgRU5BQkxFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogR1JBTlQgQUxMIE9OIHQxIFRP IHJlZ3Jlc3NfcmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBpdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsK IAogSU5TRVJUIElOVE8gdDEgKFNFTEVDVCB4LCBwdWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMCwyMCkgeCk7CiAKQEAgLTE0MDMsNiArMTY0NCw5IEBAIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9iOwogV0lUSCBjdGUxIEFTIE1BVEVS SUFMSVpFRCAoU0VMRUNUICogRlJPTSB0MSBXSEVSRSBmX2xlYWsoYikpIFNFTEVDVCAqIEZST00g Y3RlMTsKIEVYUExBSU4gKENPU1RTIE9GRikKIFdJVEggY3RlMSBBUyBNQVRFUklBTElaRUQgKFNF TEVDVCAqIEZST00gdDEgV0hFUkUgZl9sZWFrKGIpKSBTRUxFQ1QgKiBGUk9NIGN0ZTE7CitXSVRI IGN0ZTEgQVMgTUFURVJJQUxJWkVEIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgV0hFUkUgZl9sZWFrKHQuYikgQ09MVU1OUyAodC5hLCB0LmIpKSkgU0VMRUNU ICogRlJPTSBjdGUxOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBjdGUxIEFTIE1BVEVSSUFM SVpFRCAoU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIFdIRVJF IGZfbGVhayh0LmIpIENPTFVNTlMgKHQuYSwgdC5iKSkpIFNFTEVDVCAqIEZST00gY3RlMTsKIAog V0lUSCBjdGUxIEFTIChVUERBVEUgdDEgU0VUIGEgPSBhICsgMSBSRVRVUk5JTkcgKikgU0VMRUNU ICogRlJPTSBjdGUxOyAtLWZhaWwKIFdJVEggY3RlMSBBUyAoVVBEQVRFIHQxIFNFVCBhID0gYSBS RVRVUk5JTkcgKikgU0VMRUNUICogRlJPTSBjdGUxOyAtLW9rCkBAIC0xNDQxLDYgKzE2ODUsMTYg QEAgQ1JFQVRFIFRBQkxFIHQzIEFTIFNFTEVDVCAqIEZST00gdDE7CiBTRUxFQ1QgKiBGUk9NIHQz OwogU0VMRUNUICogSU5UTyB0NCBGUk9NIHQxOwogU0VMRUNUICogRlJPTSB0NDsKK0RST1AgVEFC TEUgdDIsIHQzLCB0NDsKK0NSRUFURSBUQUJMRSB0MiAoYSBpbnRlZ2VyLCBiIHRleHQpOworSU5T RVJUIElOVE8gdDIgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQx KSBDT0xVTU5TICh0LmEsIHQuYikpKTsKK0VYUExBSU4gKENPU1RTIE9GRikgSU5TRVJUIElOVE8g dDIgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5T ICh0LmEsIHQuYikpKTsKK1NFTEVDVCAqIEZST00gdDI7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gdDI7CitDUkVBVEUgVEFCTEUgdDMgQVMgU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitTRUxFQ1QgKiBG Uk9NIHQzOworU0VMRUNUICogSU5UTyB0NCBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0 OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKK1NFTEVDVCAqIEZST00gdDQ7CiAKIC0tCiAtLSBS TFMgd2l0aCBKT0lOCkBAIC0xNDQ4LDggKzE3MDIsMTUgQEAgU0VMRUNUICogRlJPTSB0NDsKIFNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBDUkVBVEUgVEFCTEUg YmxvZyAoaWQgaW50ZWdlciwgYXV0aG9yIHRleHQsIHBvc3QgdGV4dCk7CiBDUkVBVEUgVEFCTEUg Y29tbWVudCAoYmxvZ19pZCBpbnRlZ2VyLCBtZXNzYWdlIHRleHQpOworQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGp0cGcKKyAgICBWRVJURVggVEFCTEVTIChibG9nIEtFWSAoaWQpKQorICAgIEVER0Ug VEFCTEVTCisgICAgKGNvbW1lbnQgS0VZIChibG9nX2lkKQorICAgICBTT1VSQ0UgS0VZIChibG9n X2lkKSBSRUZFUkVOQ0VTIGJsb2coaWQpCisgICAgIERFU1RJTkFUSU9OIEtFWSAoYmxvZ19pZCkg UkVGRVJFTkNFUyBibG9nKGlkKSk7CiAKIEdSQU5UIEFMTCBPTiBibG9nLCBjb21tZW50IFRPIHJl Z3Jlc3NfcmxzX2JvYjsKK0dSQU5UIEFMTCBPTiBqdHBnIFRPIHJlZ3Jlc3NfcmxzX2JvYjsKIAog Q1JFQVRFIFBPTElDWSBibG9nXzEgT04gYmxvZyBVU0lORyAoaWQgJSAyID0gMCk7CiAKQEAgLTE0 NzUsNiArMTczNiw3IEBAIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYm9i OwogU0VMRUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBibG9nIEpPSU4gY29tbWVudCBPTiBp ZCA9IGJsb2dfaWQ7CiAtLSBDaGVjayBOb24tUkxTIEpPSU4gd2l0aCBSTFMuCiBTRUxFQ1QgaWQs IGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9JTiBibG9nIE9OIGlkID0gYmxvZ19pZDsK K1NFTEVDVCBpZCwgYXV0aG9yLCBtZXNzYWdlIEZST00gR1JBUEhfVEFCTEUgKGp0cGcgTUFUQ0gg KGI6IGJsb2cpLVtjOiBjb21tZW50XS0+KGIpIENPTFVNTlMgKGIuaWQgQVMgaWQsIGIuYXV0aG9y IEFTIGF1dGhvciwgYy5tZXNzYWdlIEFTIG1lc3NhZ2UpKTsKIAogU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKIENSRUFURSBQT0xJQ1kgY29tbWVudF8xIE9OIGNv bW1lbnQgVVNJTkcgKGJsb2dfaWQgPCA0KTsKQEAgLTE0ODUsOCArMTc0NywxMCBAQCBTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2JvYjsKIC0tIENoZWNrIFJMUyBKT0lOIFJM UwogU0VMRUNUIGlkLCBhdXRob3IsIG1lc3NhZ2UgRlJPTSBibG9nIEpPSU4gY29tbWVudCBPTiBp ZCA9IGJsb2dfaWQ7CiBTRUxFQ1QgaWQsIGF1dGhvciwgbWVzc2FnZSBGUk9NIGNvbW1lbnQgSk9J TiBibG9nIE9OIGlkID0gYmxvZ19pZDsKK1NFTEVDVCBpZCwgYXV0aG9yLCBtZXNzYWdlIEZST00g R1JBUEhfVEFCTEUgKGp0cGcgTUFUQ0ggKGI6IGJsb2cpLVtjOiBjb21tZW50XS0+KGIpIENPTFVN TlMgKGIuaWQgQVMgaWQsIGIuYXV0aG9yIEFTIGF1dGhvciwgYy5tZXNzYWdlIEFTIG1lc3NhZ2Up KTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1Ag UFJPUEVSVFkgR1JBUEgganRwZzsKIERST1AgVEFCTEUgYmxvZywgY29tbWVudDsKIAogLS0KQEAg LTE0OTUsMjUgKzE3NTksMzQgQEAgRFJPUCBUQUJMRSBibG9nLCBjb21tZW50OwogUkVTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBQT0xJQ1kgcDIgT04gdDE7CiBBTFRFUiBUQUJMRSB0 MSBPV05FUiBUTyByZWdyZXNzX3Jsc19hbGljZTsKK0dSQU5UIFNFTEVDVCBPTiBpdHBnIFRPIHJl Z3Jlc3NfcmxzX2FsaWNlOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBkb2VzIG5vdCBh cHBseSB0byBzdXBlcnVzZXIuCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBTRUxFQ1Qg KiBGUk9NIHQxOwogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoaXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5i KSk7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcg TUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1 bHQgZGVueSBkb2VzIG5vdCBhcHBseSB0byB0YWJsZSBvd25lci4KIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CiBTRUxFQ1QgKiBGUk9NIHQxOwogRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHQxOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAo aXRwZyBNQVRDSCAodDogdDEpIENPTFVNTlMgKHQuYSwgdC5iKSk7CitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5T ICh0LmEsIHQuYikpOwogCiAtLSBDaGVjayB0aGF0IGRlZmF1bHQgZGVueSBhcHBsaWVzIHRvIG5v bi1vd25lci9ub24tc3VwZXJ1c2VyIHdoZW4gUkxTIG9uLgogU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogU0VMRUNUICog RlJPTSB0MTsKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFUQ0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikp OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1B VENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0LmIpKTsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19ybHNfYm9iOwogU0VMRUNUICogRlJPTSB0MTsKIEVYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSB0MTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGl0cGcgTUFU Q0ggKHQ6IHQxKSBDT0xVTU5TICh0LmEsIHQuYikpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChpdHBnIE1BVENIICh0OiB0MSkgQ09MVU1OUyAodC5hLCB0 LmIpKTsKIAogLS0KIC0tIENPUFkgVE8vRlJPTQpAQCAtMTUyMiwxMSArMTc5NSwxMyBAQCBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gdDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT047CiBEUk9QIFRBQkxFIGNvcHlfdCBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIGNvcHlfdCAo YSBpbnRlZ2VyLCBiIHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGN0cGcgVkVSVEVYIFRB QkxFUyAoY29weV90IEtFWSAoYSkpOwogQ1JFQVRFIFBPTElDWSBwMSBPTiBjb3B5X3QgVVNJTkcg KGEgJSAyID0gMCk7CiAKIEFMVEVSIFRBQkxFIGNvcHlfdCBFTkFCTEUgUk9XIExFVkVMIFNFQ1VS SVRZOwogCiBHUkFOVCBBTEwgT04gY29weV90IFRPIHJlZ3Jlc3NfcmxzX2JvYiwgcmVncmVzc19y bHNfZXhlbXB0X3VzZXI7CitHUkFOVCBBTEwgT04gY3RwZyBUTyByZWdyZXNzX3Jsc19ib2IsIHJl Z3Jlc3NfcmxzX2V4ZW1wdF91c2VyOwogCiBJTlNFUlQgSU5UTyBjb3B5X3QgKFNFTEVDVCB4LCBw dWJsaWMuZmlwc2hhc2goeDo6dGV4dCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCwxMCkgeCk7CiAK QEAgLTE1MzQsMjkgKzE4MDksMzcgQEAgSU5TRVJUIElOVE8gY29weV90IChTRUxFQ1QgeCwgcHVi bGljLmZpcHNoYXNoKHg6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDAsMTAKIFJFU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTjsKIFNFVCByb3dfc2VjdXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VM RUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRF UiAnLCc7CitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBj b3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRI IERFTElNSVRFUiAnLCc7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICog RlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7 CitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3Qp IENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElN SVRFUiAnLCc7CiAKIC0tIENoZWNrIENPUFkgVE8gYXMgdXNlciB3aXRoIHBlcm1pc3Npb25zLgog U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19ib2I7CiBTRVQgcm93X3NlY3Vy aXR5IFRPIE9GRjsKIENPUFkgKFNFTEVDVCAqIEZST00gY29weV90IE9SREVSIEJZIGEgQVNDKSBU TyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOyAtLWZhaWwgLSB3b3VsZCBiZSBhZmZlY3RlZCBi eSBSTFMKK0NPUFkgKFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNv cHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIpKSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEgg REVMSU1JVEVSICcsJzsgLS1mYWlsIC0gd291bGQgYmUgYWZmZWN0ZWQgYnkgUkxTCiBTRVQgcm93 X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBB U0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKK0NPUFkgKFNFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIp KSBPUkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsKIAogLS0gQ2hl Y2sgQ09QWSBUTyBhcyB1c2VyIHdpdGggcGVybWlzc2lvbnMgYW5kIEJZUEFTU1JMUwogU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19leGVtcHRfdXNlcjsKIFNFVCByb3dfc2Vj dXJpdHkgVE8gT0ZGOwogQ09QWSAoU0VMRUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0Mp IFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7IC0tb2sKK0NPUFkgKFNFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGN0cGcgTUFUQ0ggKGM6IGNvcHlfdCkgQ09MVU1OUyAoYy5hLCBjLmIpKSBP UkRFUiBCWSBhIEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsKIFNFVCByb3dfc2Vj dXJpdHkgVE8gT047CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBhIEFTQykg VE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1vaworQ09QWSAoU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoY3RwZyBNQVRDSCAoYzogY29weV90KSBDT0xVTU5TIChjLmEsIGMuYikpIE9S REVSIEJZIGEgQVNDKSBUTyBTVERPVVQgV0lUSCBERUxJTUlURVIgJywnOwogCiAtLSBDaGVjayBD T1BZIFRPIGFzIHVzZXIgd2l0aG91dCBwZXJtaXNzaW9ucy4gU0VUIHJvd19zZWN1cml0eSBUTyBP RkY7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcmxzX2Nhcm9sOwogU0VUIHJv d19zZWN1cml0eSBUTyBPRkY7CiBDT1BZIChTRUxFQ1QgKiBGUk9NIGNvcHlfdCBPUkRFUiBCWSBh IEFTQykgVE8gU1RET1VUIFdJVEggREVMSU1JVEVSICcsJzsgLS1mYWlsIC0gd291bGQgYmUgYWZm ZWN0ZWQgYnkgUkxTCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChjdHBnIE1BVENI IChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9V VCBXSVRIIERFTElNSVRFUiAnLCc7CiBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSAoU0VM RUNUICogRlJPTSBjb3B5X3QgT1JERVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRF UiAnLCc7IC0tZmFpbCAtIHBlcm1pc3Npb24gZGVuaWVkCitDT1BZIChTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChjdHBnIE1BVENIIChjOiBjb3B5X3QpIENPTFVNTlMgKGMuYSwgYy5iKSkgT1JE RVIgQlkgYSBBU0MpIFRPIFNURE9VVCBXSVRIIERFTElNSVRFUiAnLCc7CiAKIC0tIENoZWNrIENP UFkgcmVsYXRpb24gVE87IGtlZXAgaXQganVzdCBvbmUgcm93IHRvIGF2b2lkIHJlb3JkZXJpbmcg aXNzdWVzCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CkBAIC0xNjc0LDYgKzE5NTcsNyBA QCBTRVQgcm93X3NlY3VyaXR5IFRPIE9OOwogQ09QWSBjb3B5X3QgRlJPTSBTVERJTjsgLS1mYWls IC0gcGVybWlzc2lvbiBkZW5pZWQuCiAKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0RS T1AgUFJPUEVSVFkgR1JBUEggY3RwZzsKIERST1AgVEFCTEUgY29weV90OwogRFJPUCBUQUJMRSBj b3B5X3JlbF90byBDQVNDQURFOwogCkBAIC0xNzY5LDEyICsyMDUzLDE1IEBAIFNFTEVDVCBhdHRu YW1lLCBtb3N0X2NvbW1vbl92YWxzIEZST00gcGdfc3RhdHMKIC0tCiBCRUdJTjsKIENSRUFURSBU QUJMRSBjb2xsX3QgKGMpIEFTIFZBTFVFUyAoJ2Jhcic6OnRleHQpOworQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGNsdHBnIFZFUlRFWCBUQUJMRVMgKGNvbGxfdCBLRVkgKGMpKTsKIENSRUFURSBQT0xJ Q1kgY29sbF9wIE9OIGNvbGxfdCBVU0lORyAoYyA8ICgnZm9vJzo6dGV4dCBDT0xMQVRFICJDIikp OwogQUxURVIgVEFCTEUgY29sbF90IEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBT RUxFQ1QgT04gY29sbF90IFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOworR1JBTlQgU0VMRUNUIE9OIGNs dHBnIFRPIHJlZ3Jlc3NfcmxzX2FsaWNlOwogU0VMRUNUIChzdHJpbmdfdG9fYXJyYXkocG9scXVh bCwgJzonKSlbN10gQVMgaW5wdXRjb2xsaWQgRlJPTSBwZ19wb2xpY3kgV0hFUkUgcG9scmVsaWQg PSAnY29sbF90Jzo6cmVnY2xhc3M7CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cmxzX2FsaWNlOwogU0VMRUNUICogRlJPTSBjb2xsX3Q7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChjbHRwZyBNQVRDSCAoYzogY29sbF90KSBDT0xVTU5TIChjLmMpKTsKIFJPTExCQUNLOwog CiAtLQpAQCAtMTgzNyw4ICsyMTI0LDkgQEAgQ1JFQVRFIFRBQkxFIHIxIChhIGludCk7CiBDUkVB VEUgVEFCTEUgcjIgKGEgaW50KTsKIElOU0VSVCBJTlRPIHIxIFZBTFVFUyAoMTApLCAoMjApOwog SU5TRVJUIElOVE8gcjIgVkFMVUVTICgxMCksICgyMCk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEgg dHJ0cGcgVkVSVEVYIFRBQkxFUyAocjIgS0VZIChhKSk7CiAKLUdSQU5UIEFMTCBPTiByMSwgcjIg VE8gcmVncmVzc19ybHNfYm9iOworR1JBTlQgQUxMIE9OIHIxLCByMiwgdHJ0cGcgVE8gcmVncmVz c19ybHNfYm9iOwogCiBDUkVBVEUgUE9MSUNZIHAxIE9OIHIxIFVTSU5HICh0cnVlKTsKIEFMVEVS IFRBQkxFIHIxIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CkBAIC0xODY0LDggKzIxNTIsMTQg QEAgVVBEQVRFIHIxIFNFVCBhID0gcjIuYSArIDIgRlJPTSByMiBXSEVSRSByMS5hID0gcjIuYSBS RVRVUk5JTkcgKjsgLS0gT0sKIERFTEVURSBGUk9NIHIxIFVTSU5HIHIyIFdIRVJFIHIxLmEgPSBy Mi5hICsgMiBSRVRVUk5JTkcgKjsgLS0gT0sKIFNFTEVDVCAqIEZST00gcjE7CiBTRUxFQ1QgKiBG Uk9NIHIyOworSU5TRVJUIElOVE8gcjEgU0VMRUNUIGEgRlJPTSBHUkFQSF9UQUJMRSAodHJ0cGcg TUFUQ0ggKHI6IHIyKSBDT0xVTU5TIChyLmEpKSByMiBSRVRVUk5JTkcgKjsgLS0gT0sKK1VQREFU RSByMSBTRVQgYSA9IHIyLmEgKyAyIEZST00gR1JBUEhfVEFCTEUgKHRydHBnIE1BVENIIChyOiBy MikgQ09MVU1OUyAoci5hKSkgcjIgV0hFUkUgcjEuYSA9IHIyLmEgUkVUVVJOSU5HICo7IC0tIE9L CitERUxFVEUgRlJPTSByMSBVU0lORyBHUkFQSF9UQUJMRSAodHJ0cGcgTUFUQ0ggKHI6IHIyKSBD T0xVTU5TIChyLmEpKSByMiBXSEVSRSByMS5hID0gcjIuYSArIDIgUkVUVVJOSU5HICo7IC0tIE9L CitTRUxFQ1QgKiBGUk9NIHIxOworU0VMRUNUICogRlJPTSByMjsKIAogU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsKK0RST1AgUFJPUEVSVFkgR1JBUEggdHJ0cGc7 CiBEUk9QIFRBQkxFIHIxOwogRFJPUCBUQUJMRSByMjsKIApAQCAtMTg3NSw2ICsyMTY5LDcgQEAg RFJPUCBUQUJMRSByMjsKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxp Y2U7CiBTRVQgcm93X3NlY3VyaXR5ID0gb247CiBDUkVBVEUgVEFCTEUgcjEgKGEgaW50KTsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBmcmxzdHBnIFZFUlRFWCBUQUJMRVMgKHIxIEtFWSAoYSkpOwog SU5TRVJUIElOVE8gcjEgVkFMVUVTICgxMCksICgyMCk7CiAKIENSRUFURSBQT0xJQ1kgcDEgT04g cjEgVVNJTkcgKGZhbHNlKTsKQEAgLTE4ODMsNiArMjE3OCw3IEBAIEFMVEVSIFRBQkxFIHIxIEZP UkNFIFJPVyBMRVZFTCBTRUNVUklUWTsKIAogLS0gTm8gZXJyb3IsIGJ1dCBubyByb3dzCiBUQUJM RSByMTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGZybHN0cGcgTUFUQ0ggKHI6IHIxKSBD T0xVTU5TIChyLmEpKTsKIAogLS0gUkxTIGVycm9yCiBJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEp OwpAQCAtMTg5OCw5ICsyMTk0LDExIEBAIFRBQkxFIHIxOwogU0VUIHJvd19zZWN1cml0eSA9IG9m ZjsKIC0tIHRoZXNlIGFsbCBmYWlsLCB3b3VsZCBiZSBhZmZlY3RlZCBieSBSTFMKIFRBQkxFIHIx OworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZnJsc3RwZyBNQVRDSCAocjogcjEpIENPTFVN TlMgKHIuYSkpOwogVVBEQVRFIHIxIFNFVCBhID0gMTsKIERFTEVURSBGUk9NIHIxOwogCitEUk9Q IFBST1BFUlRZIEdSQVBIIGZybHN0cGc7CiBEUk9QIFRBQkxFIHIxOwogCiAtLQpAQCAtMjE5Myw5 ICsyNDkxLDExIEBAIERST1AgVEFCTEUgcmVmX3RibDsKIENSRUFURSBUQUJMRSBybHNfdGJsIChh IGludCk7CiBJTlNFUlQgSU5UTyBybHNfdGJsIFNFTEVDVCB4LzEwIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgeDsKIEFOQUxZWkUgcmxzX3RibDsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBs b3RwZyBWRVJURVggVEFCTEVTIChybHNfdGJsIEtFWSAoYSkpOwogCiBBTFRFUiBUQUJMRSBybHNf dGJsIEVOQUJMRSBST1cgTEVWRUwgU0VDVVJJVFk7CiBHUkFOVCBTRUxFQ1QgT04gcmxzX3RibCBU TyByZWdyZXNzX3Jsc19hbGljZTsKK0dSQU5UIFNFTEVDVCBPTiBsb3RwZyBUTyByZWdyZXNzX3Js c19hbGljZTsKIAogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3Jsc19hbGljZTsK IENSRUFURSBGVU5DVElPTiBvcF9sZWFrKGludCwgaW50KSBSRVRVUk5TIGJvb2wKQEAgLTIyMDUs OSArMjUwNSwxMiBAQCBDUkVBVEUgT1BFUkFUT1IgPDw8IChwcm9jZWR1cmUgPSBvcF9sZWFrLCBs ZWZ0YXJnID0gaW50LCByaWdodGFyZyA9IGludCwKICAgICAgICAgICAgICAgICAgICAgIHJlc3Ry aWN0ID0gc2NhbGFybHRzZWwpOwogU0VMRUNUICogRlJPTSBybHNfdGJsIFdIRVJFIGEgPDw8IDEw MDA7CiBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcmxzX3RibCBXSEVSRSBhIDw8 PCAxMDAwIG9yIGEgPDw8IDkwMDsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGxvdHBnIE1B VENIIChyOiBybHNfdGJsKSBXSEVSRSByLmEgPDw8IDEwMDAgQ09MVU1OUyAoci5hKSk7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChsb3RwZyBNQVRDSCAocjogcmxzX3RibCBXSEVSRSByLmEg PDw8IDEwMDApIENPTFVNTlMgKHIuYSkpOwogRFJPUCBPUEVSQVRPUiA8PDwgKGludCwgaW50KTsK IERST1AgRlVOQ1RJT04gb3BfbGVhayhpbnQsIGludCk7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT047CitEUk9QIFBST1BFUlRZIEdSQVBIIGxvdHBnOwogRFJPUCBUQUJMRSBybHNfdGJsOwog CiAtLSBCdWcgIzE2MDA2OiB3aG9sZS1yb3cgVmFycyBpbiBhIHBvbGljeSBkb24ndCBwbGF5IG5p Y2Ugd2l0aCBzdWItc2VsZWN0cwotLSAKMi4zOS41Cgo= --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0006-Property-collation-and-edge-vertex-link-support.patch" Content-Disposition: attachment; filename="v10-0006-Property-collation-and-edge-vertex-link-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6iooc6 RnJvbSA1MDA0MDBjMzUyNDFiNjI1ODY3OGNlNGI2OTAyOGI4ODAwNmY0NDg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyOCBPY3QgMjAyNCAxNjozNjoyNyArMDUzMApTdWJqZWN0OiBb UEFUQ0ggdjEwIDA2LzEyXSBQcm9wZXJ0eSBjb2xsYXRpb24gYW5kIGVkZ2UtdmVydGV4IGxpbmsg c3VwcG9ydAoKVGhlIGNvbW1pdCBoYXMgZm9sbG93aW5nIGNoYW5nZXMuCgoxLiBjb2xsYXRpb24g b2YgYSBwcm9wZXJ0eQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGUgdmFsdWVzIHdpdGgg ZGlmZmVyaW5nIGNvbGxhdGlvbnMgY2FuIG5vdCBiZSBjb2xsYXRlZC4gVGhpcyBtZWFucwp0aGF0 IHdlIHdpbGwgbm90IGFibGUgdG8gY29tcGFyZSwgc29ydCwgb3Igb3JkZXIgdmFsdWVzIG9mIHBy b3BlcnRpZXMKd2l0aCB0aGUgc2FtZSBuYW1lIGlmIHRoZXkgaGF2ZSBkaWZmZXJlbnQgY29sbGF0 aW9ucyBpbiBkaWZmZXJlbnQKZWxlbWVudHMgb3IgZGlmZmVyZW50IGxhYmVscy4gIFRoaXMgcmVz dHJpY3RzIHRoZSBwcm9wZXJ0eSdzIHVzYWdlIGluCmdyYXBoIHRhYmxlIHF1ZXJ5LiBIZW5jZSB0 aGUgY29sbGF0aW9uIG9mIGFsbCB0aGUgcHJvcGVydGllcyB3aXRoIHRoZQpzYW1lIG5hbWUgbmVl ZHMgdG8gYmUgdGhlIHNhbWUuIEVuZm9yY2UgdGhpcy4KCk9mdGVuIHRoZSBjb2xsYXRpb24gb2Yg YSBwcm9wZXJ0eSByZWZlcmVuY2UgaXMgcmVxdWlyZWQgYmVmb3JlCmdyYXBoX3RhYmxlIGlzIHJl d3JpdHRlbi4gRm9yIGV4YW1wbGUsIGFzc2lnbl9xdWVyeV9jb2xsYXRpb24oKSBpcwpjYWxsZWQg ZHVyaW5nIHRyYW5zZm9ybVNlbGVjdFN0bXQoKSB3aGljaCBpcyBjYWxsZWQgYmVmb3JlIGNhbGxp bmcKcmV3cml0ZUdyYXBoVGFibGUoKS4gSGVuY2UgdGhlIGNvbGxhdGlvbiBvZiBhIHByb3BlcnR5 IG5lZWRzIHRvIGJlCmFjY2Vzc2libGUgYmVmb3JlIGFueSBwcm9wZXJ0eSByZWZlcmVuY2UgaXMg YWNjZXNzZWQuIEhlbmNlIHRoZQpjb2xsYXRpb24gb2YgYSBwcm9wZXJ0eSBpcyBzdG9yZWQgaW4g cGdfcHJvcGdyYXBoX3Byb3BlcnR5LgoKTm90ZTogVGhpcyBpcyBub3QgZXhwbGljaXRseSBzcGVj aWZpZWQgaW4gU2VjdGlvbiA5LjE1LCAiQ29uc2lzdGVuY3kKY2hlY2sgb2YgYSB0YWJ1bGFyIHBy b3BlcnR5IGdyYXBoIGRlc2NyaXB0b3IiLCBzeW50YXggcnVsZSA0LmMuaWlpLjIgb2YKU1FML1BH USBzdGFuZGFyZC4KCjIuIGNvbGxhdGlvbiBvZiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGtleXMg b2YgYW4gZWRnZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KSWYgY29sbGF0aW9ucyBvZiBlZGdlIGtleSBhbmQgdGhlIGNvcnJlc3BvbmRpbmcg cmVmZXJlbmNlZCBrZXkgZGlmZmVyLAphbiBlZGdlIG1heSBlbmQgdXAgYmVpbmcgYWRqYWNlbnQg dG8gdW5kZXNpcmVkIHZlcnRleC4gUHJvaGliaXQgc3VjaCBhCmNhc2Ugd2hlbiBrZXkgY29sdW1u cyBhcmUgZXhwbGljaXRseSBzcGVjaWZpZWQuCgpXaGVuIGVkZ2UgYW5kIHZlcnRleCBrZXlzIGFy ZSBkZXJpdmVkIGZyb20gdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQsCndlIGRvIG5vdCBjaGVj ayBjb2xsYXRpb25zIGFnYWluIHNpbmNlIHRoZSBjb25zdHJhaW50IGl0c2VsZiBlbnN1cmVzCm9u ZS10by1tYW55IGVkZ2UtdG8tdmVydGV4IG1hcHBpbmcuCgpOb3RlOiBUaGlzIGlzIG5vdCBzcGVj aWZpZWQgaW4gU2VjdGlvbiA5LjE0LCAiQ3JlYXRpb24gb2YgYW4gZWRnZSB0YWJsZQpkZXNjcmlw dG9yIi4KCjMuIEVkZ2UtdmVydGV4IGxpbmsgcXVhbHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KV2hlbiBjcmVhdGluZyBhbiBlZGdlIGVsZW1lbnQgbWFrZSBzdXJl IHRoYXQgdGhlcmUgZXhpc3RzIGFuIGVxdWFsaXR5Cm9wZXJhdG9ycyB0aGF0IGNhbiBiZSB1c2Vk IHRvIG1hdGNoIHZlcnRleCBhbmQgZWRnZSBrZXlzLiBGYWlsIHRoZSBEREwgaWYKc3VjaCBhbiBv cGVyYXRvciBkb2VzIG5vdCBleGlzdC4gVXNlIHRoZSBzYW1lIGVxdWFsaXR5IG9wZXJhdG9ycyB0 byBidWlsZAp2ZXJ0ZXgtZWRnZSBxdWFscyBpbiBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxz KCkuIEFsc28gYWRkIGEKZGVwZW5kZW5jeSBvZiB0aGUgZWRnZSBvbiB0aGUgZXF1YWxpdHkgb3Bl cmF0b3Igc28gdGhhdCBpdCBjYW4gbm90IGJlCmRyb3BwZWQgd2l0aG91dCBkcm9wcGluZyB0aGUg ZWRnZS4KCk5vdGUgZm9yIHJldmlld2VyczoKVGhlIGNvZGUgaW4gQVRBZGRGb3JlaWduS2V5Q29u c3RyYWludCgpIGxvb2tzIHVwIHRocmVlIGRpZmZlcmVudAplcXVhbGl0eSBvcGVyYXRvcnMgYW5k IGl0J3MgZGlmZmljdWx0IHRvIHNlcGFyYXRlIHRoZSBjb2RlIGxvb2tpbmcgdXAKanVzdCBQSz1G SyBvcGVyYXRvcnMuIFNvIGNvdWxkIG5vdCBtb3ZlIHNvbWUgY29tbW9uIGNvZGUgdG8gYSBmdW5j dGlvbgp3aGljaCBjYW4gYmUgdXNlZCBhdCBib3RoIHBsYWNlcy4KCjQuIFRlc3RzCi0tLS0tLS0t CkFkZHMgdGVzdHMgZm9yIGFib3ZlIGl0ZW1zLgoKVGhlIGNvbGxhdGlvbiB0ZXN0cywgdGVzdCB0 aGF0CgphLiB0aGUgY29sbGF0aW9uIGlzIGNvcnJlY3RseSBzZXQgZm9yIHRoZSBjb2x1bW5zIHBy b2plY3RlZCBieQpHUkFQSF9UQUJMRSBjbGF1c2UuCgpiLiBxdWFscyBjb3JyZXNwb25kaW5nIHRv IHRoZSB2YXJpb3VzIFdIRVJFIGNsYXVzZSBpbiBHUkFQSF9UQUJMRSBoYXZlCmNvcnJlY3QgY29s bGF0aW9uIHNldAoKYy4gcXVhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgZWRnZS12ZXJ0ZXggbGlu a3MgaGF2ZSBjb3JyZWN0IGNvbGxhdGlvbgpzZXQuCgpOb3RlOiBUaGVzZSB0ZXN0cyBjb21iaW5l ZCB3aXRoIHRlc3RzIGluIGNvbGxhdGUuc3FsIGFuZCBvdGhlciBjb2xsYXRpb24Kc3BlY2lmaWMg dGVzdHMgaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIGNvdmVyZWQgYWxsIHNjZW5hcmlvcyB0ZXN0aW5n CmNvbGxhdGlvbnMgaW4gdGhlIGNvbnRleHQgb2YgR1JBUEhfVEFCTEUuIE1vcmUgY29sbGF0aW9u IHNwZWNpZmljIHRlc3RzCm1heSBiZSBhZGRlZCBhcyByZXF1aXJlZC4KCkF1dGhvcjogQXNodXRv c2ggQmFwYXQKLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAg ICAgfCAgNDkgKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3Fs ICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgICAgICAg ICAgfCAyMjIgKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAg ICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFi bGUuYyAgICAgICAgIHwgIDE2ICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMgICAgICAgfCAxMjIgKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdy YXBoX2VsZW1lbnQuaCAgICB8ICAxMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFw aF9wcm9wZXJ0eS5oICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAg ICAgICAgICAgICAgIHwgICAyICsKIC4uLi9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgu b3V0ICAgICAgICB8IDI2MSArKysrKysrKysrKysrKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZ3JhcGhfdGFibGUub3V0ICAgICB8IDExMSArKysrKysrLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL3NxbC9j cmVhdGVfcHJvcGVydHlfZ3JhcGguc3FsICAgICB8ICA3NyArKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCAgICAgICAgICB8ICA0MSArKy0KIDE1IGZpbGVzIGNoYW5n ZWQsIDgxNiBpbnNlcnRpb25zKCspLCAxMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRl eCBiYmI2ZjM5NTdjMi4uNjJhODAyNTE5NmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDU1LDYgKzY0 NTUsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZn dDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+cGdlc3JjZXFvcDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZFtdPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3BlcmF0b3IiPjxzdHJ1Y3Ru YW1lPnBnX29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGFuIGVk Z2UsIGFuIGFycmF5IG9mIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IKKyAgICAgICA8c3RydWN0Zmll bGQ+cGdlc3JjcmVmPC9zdHJ1Y3RmaWVsZD4gPQorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2VzcmNr ZXk8L3N0cnVjdGZpZWxkPiBjb21wYXJpc29uLiAoTnVsbCBmb3IgYSB2ZXJ0ZXguKQorICAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+cGdlZGVzdGtleTwvc3RydWN0ZmllbGQ+IDx0eXBlPmlu dDJbXTwvdHlwZT4KQEAgLTY0ODMsNiArNjQ5NSwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgIGFuZCB0aGUgZGVzdGluYXRpb24gdmVydGV4LgogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5wZ2VkZXN0ZXFvcDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZFtdPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctb3BlcmF0b3IiPjxz dHJ1Y3RuYW1lPnBnX29wZXJhdG9yPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9y IGFuIGVkZ2UsIGFuIGFycmF5IG9mIGVxdWFsaXR5IG9wZXJhdG9ycyBmb3IKKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGdlZGVzdHJlZjwvc3RydWN0ZmllbGQ+ID0KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGdlZGVzdGtleTwvc3RydWN0ZmllbGQ+IGNvbXBhcmlzb24uIChOdWxsIGZvciBhIHZlcnRleC4p CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8 L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTY3NTQsNiArNjc3OCwzMSBAQCBTQ1JBTS1TSEEtMjU2 JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBs YWNlYWJsZT4mbAogICAgICAgIG11bHRpcGxlIHRpbWVzIGluIGRpZmZlcmVudCBlbGVtZW50cyBh bmQgbGFiZWxzLikKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdwdHlwbW9kPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgPGxpdGVyYWw+dHlwbW9kPC9saXRlcmFsPiB0byBiZSBhcHBsaWVkIHRvIHRoZSBkYXRh IHR5cGUgb2YgdGhpcyBwcm9wZXJ0eS4KKyAgICAgIChUaGlzIGlzIHJlcXVpcmVkIHRvIGJlIGZp eGVkIGZvciBhIGdpdmVuIHByb3BlcnR5IGluIGEgcHJvcGVydHkgZ3JhcGgsCisgICAgICBldmVu IGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWZpbmVkIG11bHRpcGxlIHRpbWVzIGluIGRpZmZlcmVudCBl bGVtZW50cyBhbmQKKyAgICAgIGxhYmVscy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnBncGNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVm ZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+ cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQg Y29sbGF0aW9uIG9mIHRoaXMgcHJvcGVydHksIG9yIHplcm8gaWYgdGhlIHByb3BlcnR5IGlzIG5v dCBvZgorICAgICAgIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUuICAoVGhpcyBpcyByZXF1aXJlZCB0 byBiZSBmaXhlZCBmb3IgYSBnaXZlbgorICAgICAgIHByb3BlcnR5IGluIGEgcHJvcGVydHkgZ3Jh cGgsIGV2ZW4gaWYgdGhlIHByb3BlcnR5IGlzIGRlZmluZWQgbXVsdGlwbGUKKyAgICAgICB0aW1l cyBpbiBkaWZmZXJlbnQgZWxlbWVudHMgYW5kIGxhYmVscy4pCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4IDI3OTM4OGJk Zjc1Li45Yjc5M2EwY2FkZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1h dGlvbl9zY2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2No ZW1hLnNxbApAQCAtMzI3MSw5ICszMjcxLDkgQEAgQ1JFQVRFIFZJRVcgcGdfcHJvcGVydHlfZGF0 YV90eXBlcyBBUwogICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNo YXJhY3Rlcl9zZXRfY2F0YWxvZywKICAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBjaGFyYWN0ZXJfc2V0X3NjaGVtYSwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIHNx bF9pZGVudGlmaWVyKSBBUyBjaGFyYWN0ZXJfc2V0X25hbWUsCi0gICAgICAgICAgIENBU1QobnVs bCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX2NhdGFsb2csIC0tIEZJWE1FCi0gICAg ICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX3NjaGVtYSwg LS0gRklYTUUKLSAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb2xs YXRpb25fbmFtZSwgLS0gRklYTUUKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkg QVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9jYXRhbG9nLAorICAgICAgICAgICBDQVNU KG5jLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9zY2hlbWEsCisgICAg ICAgICAgIENBU1QoYy5jb2xsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX25h bWUsCiAgICAgICAgICAgIENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNf cHJlY2lzaW9uLAogICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBu dW1lcmljX3ByZWNpc2lvbl9yYWRpeCwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFs X251bWJlcikgQVMgbnVtZXJpY19zY2FsZSwKQEAgLTMyOTcsNiArMzI5Nyw4IEBAIENSRUFURSBW SUVXIHBnX3Byb3BlcnR5X2RhdGFfdHlwZXMgQVMKICAgICAgICAgIEpPSU4gKHBnX3R5cGUgdCBK T0lOIHBnX25hbWVzcGFjZSBudCBPTiAodC50eXBuYW1lc3BhY2UgPSBudC5vaWQpKSBPTiBwZ3Au cGdwdHlwaWQgPSB0Lm9pZAogICAgICAgICAgTEVGVCBKT0lOIChwZ190eXBlIGJ0IEpPSU4gcGdf bmFtZXNwYWNlIG5idCBPTiAoYnQudHlwbmFtZXNwYWNlID0gbmJ0Lm9pZCkpCiAgICAgICAgICAg IE9OICh0LnR5cHR5cGUgPSAnZCcgQU5EIHQudHlwYmFzZXR5cGUgPSBidC5vaWQpCisgICAgICAg ICBMRUZUIEpPSU4gKHBnX2NvbGxhdGlvbiBjIEpPSU4gcGdfbmFtZXNwYWNlIG5jIE9OIChjLmNv bGxuYW1lc3BhY2UgPSBuYy5vaWQpKQorICAgICAgICAgICBPTiBwZ3AucGdwY29sbGF0aW9uID0g Yy5vaWQgQU5EIChuYy5uc3BuYW1lLCBjLmNvbGxuYW1lKSA8PiAoJ3BnX2NhdGFsb2cnLCAnZGVm YXVsdCcpCiAKICAgICBXSEVSRSBwZy5yZWxraW5kID0gJ2cnCiAgICAgICAgICAgQU5EIChOT1Qg cGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3Jh cGhjbWRzLmMKaW5kZXggYmYzMzNkZDJkYzIuLmMyNjk3NmIyYTJhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJvcGdyYXBoY21kcy5jCkBAIC0xNCwyMCArMTQsMjcgQEAKIAogI2luY2x1ZGUgImFjY2Vz cy9nZW5hbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJh Y2Nlc3MvbmJ0cmVlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRh bG9nL2luZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NsYXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3JfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvcGdyYXBoX2VsZW1lbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9l bGVtZW50X2xhYmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvcGdyYXBoY21kcy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgorI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29s bGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2lu Y2x1ZGUgInV0aWxzL2FycmF5LmgiCkBAIC01MiwxMiArNTksMTQgQEAgc3RydWN0IGVsZW1lbnRf aW5mbwogCU9pZAkJCXNyY3JlbGlkOwogCUFycmF5VHlwZSAgKnNyY2tleTsKIAlBcnJheVR5cGUg ICpzcmNyZWY7CisJQXJyYXlUeXBlICAqc3JjZXFvcDsKIAogCWNoYXIJICAgKmRlc3R2ZXJ0ZXg7 CiAJT2lkCQkJZGVzdHZlcnRleGlkOwogCU9pZAkJCWRlc3RyZWxpZDsKIAlBcnJheVR5cGUgICpk ZXN0a2V5OwogCUFycmF5VHlwZSAgKmRlc3RyZWY7CisJQXJyYXlUeXBlICAqZGVzdGVxb3A7CiAK IAlMaXN0CSAgICpsYWJlbHM7CiB9OwpAQCAtNjgsOCArNzcsOCBAQCBzdGF0aWMgQXJyYXlUeXBl ICpwcm9wZ3JhcGhfZWxlbWVudF9nZXRfa2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlz dCAqa2V5Ywogc3RhdGljIHZvaWQgcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlzdCAqcmVmY29scywKIAkJ CQkJCQkJCQlSZWxhdGlvbiBlZGdlX3JlbCwgUmVsYXRpb24gcmVmX3JlbCwKIAkJCQkJCQkJCQlj b25zdCBjaGFyICphbGlhc25hbWUsIGludCBsb2NhdGlvbiwgY29uc3QgY2hhciAqdHlwZSwKLQkJ CQkJCQkJCQlBcnJheVR5cGUgKipvdXRrZXksIEFycmF5VHlwZSAqKm91dHJlZik7Ci1zdGF0aWMg QXJyYXlUeXBlICphcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29u c3QgTGlzdCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpOwor CQkJCQkJCQkJCUFycmF5VHlwZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmLCBBcnJheVR5 cGUgKipvdXRlcW9wKTsKK3N0YXRpYyBBdHRyTnVtYmVyICphcnJheV9mcm9tX2NvbHVtbl9saXN0 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwg UmVsYXRpb24gZWxlbWVudF9yZWwpOwogc3RhdGljIEFycmF5VHlwZSAqYXJyYXlfZnJvbV9hdHRu dW1zKGludCBudW1hdHRycywgY29uc3QgQXR0ck51bWJlciAqYXR0bnVtcyk7CiBzdGF0aWMgT2lk CWluc2VydF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVs ZW1lbnRfaW5mbyAqZWluZm8pOwogc3RhdGljIE9pZAlpbnNlcnRfbGFiZWxfcmVjb3JkKE9pZCBn cmFwaGlkLCBPaWQgcGVvaWQsIGNvbnN0IGNoYXIgKmxhYmVsKTsKQEAgLTIxNywxMCArMjI2LDEw IEBAIENyZWF0ZVByb3BHcmFwaChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZVByb3BH cmFwaFN0bXQgKnN0bXQpCiAKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwg ZWRnZS0+ZXNyY2tleSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3JjcmVsLAogCQkJCQkJ CQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJTT1VSQ0UiLAotCQkJCQkJCQkJ JmVpbmZvLT5zcmNrZXksICZlaW5mby0+c3JjcmVmKTsKKwkJCQkJCQkJCSZlaW5mby0+c3Jja2V5 LCAmZWluZm8tPnNyY3JlZiwgJmVpbmZvLT5zcmNlcW9wKTsKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0 X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3RrZXksIGVkZ2UtPmVkZXN0dmVydGV4Y29scywg cmVsLCBkZXN0cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24s ICJERVNUSU5BVElPTiIsCi0JCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJl Zik7CisJCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZiwgJmVpbmZvLT5k ZXN0ZXFvcCk7CiAKIAkJZWluZm8tPmxhYmVscyA9IGVkZ2UtPmxhYmVsczsKIApAQCAtMzM2LDcg KzM0NSw4IEBAIHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBj b25zdCBMaXN0ICprZXlfY2xhdXNlLCBSZWxhdGlvbiBlCiAJfQogCWVsc2UKIAl7Ci0JCWEgPSBh cnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwgbG9jYXRpb24sIGVsZW1l bnRfcmVsKTsKKwkJYSA9IGFycmF5X2Zyb21fYXR0bnVtcyhsaXN0X2xlbmd0aChrZXlfY2xhdXNl KSwKKwkJCQkJCQkgICBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5X2NsYXVzZSwg bG9jYXRpb24sIGVsZW1lbnRfcmVsKSk7CiAJfQogCiAJcmV0dXJuIGE7CkBAIC0zNjAsOCArMzcw LDE1IEBAIHN0YXRpYyB2b2lkCiBwcm9wZ3JhcGhfZWRnZV9nZXRfcmVmX2tleXMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICprZXljb2xzLCBjb25zdCBMaXN0ICpyZWZjb2xzLAogCQkJ CQkJCVJlbGF0aW9uIGVkZ2VfcmVsLCBSZWxhdGlvbiByZWZfcmVsLAogCQkJCQkJCWNvbnN0IGNo YXIgKmFsaWFzbmFtZSwgaW50IGxvY2F0aW9uLCBjb25zdCBjaGFyICp0eXBlLAotCQkJCQkJCUFy cmF5VHlwZSAqKm91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmKQorCQkJCQkJCUFycmF5VHlwZSAq Km91dGtleSwgQXJyYXlUeXBlICoqb3V0cmVmLCBBcnJheVR5cGUgKipvdXRlcW9wKQogeworCWlu dAkJCW5rZXlzOworCUF0dHJOdW1iZXIgKmtleWF0dG51bXM7CisJQXR0ck51bWJlciAqcmVmYXR0 bnVtczsKKwlPaWQJCSAgICprZXllcW9wczsKKwlEYXR1bQkgICAqZGF0dW1zOworCWludAkJCWk7 CisKIAlBc3NlcnQoKGtleWNvbHMgJiYgcmVmY29scykgfHwgKCFrZXljb2xzICYmICFyZWZjb2xz KSk7CiAKIAlpZiAoa2V5Y29scykKQEAgLTM3Miw4ICszODksODkgQEAgcHJvcGdyYXBoX2VkZ2Vf Z2V0X3JlZl9rZXlzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29u c3QgTGlzdAogCQkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBjb2x1bW5zIGluICVz IHZlcnRleCBkZWZpbml0aW9uIG9mIGVkZ2UgXCIlc1wiIiwgdHlwZSwgYWxpYXNuYW1lKSwKIAkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKIAotCQkqb3V0a2V5ID0g YXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0aW9uLCBlZGdlX3Jl bCk7Ci0JCSpvdXRyZWYgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgcmVmY29scywg bG9jYXRpb24sIHJlZl9yZWwpOworCQlua2V5cyA9IGxpc3RfbGVuZ3RoKGtleWNvbHMpOworCQlr ZXlhdHRudW1zID0gYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGtleWNvbHMsIGxvY2F0 aW9uLCBlZGdlX3JlbCk7CisJCXJlZmF0dG51bXMgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBz dGF0ZSwgcmVmY29scywgbG9jYXRpb24sIHJlZl9yZWwpOworCQlrZXllcW9wcyA9IHBhbGxvY19h cnJheShPaWQsIG5rZXlzKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgbmtleXM7IGkrKykKKwkJewor CQkJT2lkCQkJa2V5dHlwZTsKKwkJCWludDMyCQlrZXl0eXBtb2Q7CisJCQlPaWQJCQlrZXljb2xs OworCQkJT2lkCQkJcmVmdHlwZTsKKwkJCWludDMyCQlyZWZ0eXBtb2Q7CisJCQlPaWQJCQlyZWZj b2xsOworCQkJT2lkCQkJb3BjOworCQkJT2lkCQkJb3BmOworCQkJU3RyYXRlZ3lOdW1iZXIgc3Ry YXRlZ3k7CisKKwkJCS8qCisJCQkgKiBMb29rdXAgZXF1YWxpdHkgb3BlcmF0b3IgdG8gYmUgdXNl ZCBmb3IgZWRnZSBhbmQgdmVydGV4IGtleS4KKwkJCSAqIFZlcnRleCBrZXkgaXMgZXF1aXZhbGVu dCB0byBwcmltYXJ5IGtleSBhbmQgZWRnZSBrZXkgaXMgc2ltaWxhcgorCQkJICogdG8gZm9yZWln biBrZXkgc2luY2UgZWRnZSBrZXkgcmVmZXJlbmNlcyB2ZXJ0ZXgga2V5LiBIZW5jZQorCQkJICog dmVydGV4IGtleSBpcyB1c2VkIGFzIGxlZnQgb3BlcmFuZCBhbmQgZWRnZSBrZXkgaXMgdXNlZCBh cworCQkJICogcmlnaHQgb3BlcmFuZC4gVGhlIG1ldGhvZCB1c2VkIHRvIGZpbmQgdGhlIGVxdWFs aXR5IG9wZXJhdG9ycworCQkJICogaXMgc2ltaWxhciB0byB0aGUgbWV0aG9kIHVzZWQgdG8gZmlu ZCBlcXVhbGl0eSBvcGVyYXRvcnMgZm9yCisJCQkgKiBGSy9QSyBjb21wYXJpc29uIGluIEFUQWRk Rm9yZWlnbktleUNvbnN0cmFpbnQoKSBleGNlcHQgdGhhdAorCQkJICogb3BjbGFzcyBvZiB0aGUg dGhlIHZlcnRleCBrZXkgdHlwZSBpcyB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQuCisJCQkgKiBT aW5jZSB3ZSBuZWVkIG9ubHkgZXF1YWxpdHkgb3BlcmF0b3JzIHdlIHVzZSBib3RoIEJUIGFuZCBI QVNICisJCQkgKiBzdHJhdGVnaWVzLgorCQkJICoKKwkJCSAqIElmIHRoZSByZXF1aXJlZCBvcGVy YXRvcnMgZG8gbm90IGV4aXN0LCB3ZSBjYW4gbm90IGNvbnN0cnVjdAorCQkJICogcXVhbHMgbGlu a2luZyBhbiBlZGdlIHRvIGl0cyBhZGphY2VudCB2ZXJ0ZXhlcy4KKwkJCSAqLworCQkJZ2V0X2F0 dHR5cGV0eXBtb2Rjb2xsKFJlbGF0aW9uR2V0UmVsaWQoZWRnZV9yZWwpLCBrZXlhdHRudW1zW2ld LCAma2V5dHlwZSwgJmtleXR5cG1vZCwgJmtleWNvbGwpOworCQkJZ2V0X2F0dHR5cGV0eXBtb2Rj b2xsKFJlbGF0aW9uR2V0UmVsaWQocmVmX3JlbCksIHJlZmF0dG51bXNbaV0sICZyZWZ0eXBlLCAm cmVmdHlwbW9kLCAmcmVmY29sbCk7CisJCQlrZXllcW9wc1tpXSA9IEludmFsaWRPaWQ7CisJCQlz dHJhdGVneSA9IEJURXF1YWxTdHJhdGVneU51bWJlcjsKKwkJCW9wYyA9IEdldERlZmF1bHRPcENs YXNzKHJlZnR5cGUsIEJUUkVFX0FNX09JRCk7CisJCQlpZiAoIU9pZElzVmFsaWQob3BjKSkKKwkJ CXsKKwkJCQlvcGMgPSBHZXREZWZhdWx0T3BDbGFzcyhyZWZ0eXBlLCBIQVNIX0FNX09JRCk7CisJ CQkJc3RyYXRlZ3kgPSBIVEVxdWFsU3RyYXRlZ3lOdW1iZXI7CisJCQl9CisJCQlpZiAoT2lkSXNW YWxpZChvcGMpKQorCQkJeworCQkJCW9wZiA9IGdldF9vcGNsYXNzX2ZhbWlseShvcGMpOworCQkJ CWlmIChPaWRJc1ZhbGlkKG9wZikpCisJCQkJeworCQkJCQlrZXllcW9wc1tpXSA9IGdldF9vcGZh bWlseV9tZW1iZXIob3BmLCByZWZ0eXBlLCBrZXl0eXBlLCBzdHJhdGVneSk7CisJCQkJCWlmICgh T2lkSXNWYWxpZChrZXllcW9wc1tpXSkpCisJCQkJCXsKKwkJCQkJCS8qIExhc3QgcmVzb3J0LCBp bXBsaWNpdCBjYXN0LiAqLworCQkJCQkJaWYgKGNhbl9jb2VyY2VfdHlwZSgxLCAma2V5dHlwZSwg JnJlZnR5cGUsIENPRVJDSU9OX0lNUExJQ0lUKSkKKwkJCQkJCQlrZXllcW9wc1tpXSA9IGdldF9v cGZhbWlseV9tZW1iZXIob3BmLCByZWZ0eXBlLCByZWZ0eXBlLCBzdHJhdGVneSk7CisJCQkJCX0K KwkJCQl9CisJCQl9CisKKwkJCWlmICghT2lkSXNWYWxpZChrZXllcW9wc1tpXSkpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJ ZXJybXNnKCJubyBlcXVhbGl0eSBvcGVyYXRvciBleGlzdHMgZm9yICVzIGtleSBjb21wYXJpc29u IG9mIGVkZ2UgXCIlc1wiIiwKKwkJCQkJCQkgICB0eXBlLCBhbGlhc25hbWUpLAorCQkJCQkJcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsKKworCQkJLyoKKwkJCSAqIElmIGNv bGxhdGlvbnMgb2Yga2V5IGF0dHJpYnV0ZSBhbmQgcmVmZXJlbmNlZCBhdHRyaWJ1dGUgYXJlCisJ CQkgKiBkaWZmZXJlbnQsIGFuIGVkZ2UgbWF5IGVuZCB1cCBiZWluZyBhZGphY2VudCB0byB1bmRl c2lyZWQKKwkJCSAqIHZlcnRleGVzLiAgUHJvaGliaXQgc3VjaCBhIGNhc2UuCisJCQkgKgorCQkJ ICogUEsvRksgYWxsb3dzIGRpZmZlcmVudCBjb2xsYXRpb25zIGFzIGxvbmcgYXMgdGhleSBhcmUK KwkJCSAqIGRldGVybWluaXN0aWMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIEJ1dCB3ZSBj YW4gYmUgYSBiaXQKKwkJCSAqIHN0cmljdGVyIGhlcmUgYW5kIGZvbGxvdyBTUUwgc3RhbmRhcmQu CisJCQkgKi8KKwkJCWlmIChrZXljb2xsICE9IHJlZmNvbGwgJiYKKwkJCQlrZXljb2xsICE9IERF RkFVTFRfQ09MTEFUSU9OX09JRCAmJiByZWZjb2xsICE9IERFRkFVTFRfQ09MTEFUSU9OX09JRCAm JgorCQkJCU9pZElzVmFsaWQoa2V5Y29sbCkgJiYgT2lkSXNWYWxpZChyZWZjb2xsKSkKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJ CQllcnJtc2coImNvbGxhdGlvbiBtaXNtYXRjaCBpbiAlcyBrZXkgb2YgZWRnZSBcIiVzXCI6ICVz IHZzLiAlcyIsCisJCQkJCQkJICAgdHlwZSwgYWxpYXNuYW1lLAorCQkJCQkJCSAgIGdldF9jb2xs YXRpb25fbmFtZShrZXljb2xsKSwgZ2V0X2NvbGxhdGlvbl9uYW1lKHJlZmNvbGwpKSwKKwkJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSk7CisJCX0KIAl9CiAJZWxzZQog CXsKQEAgLTQwMiwyNSArNTAwLDM0IEBAIHByb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhQYXJz ZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3QgKmtleWNvbHMsIGNvbnN0IExpc3QKIAogCQlBc3Nl cnQoZmspOwogCi0JCSpvdXRrZXkgPSBhcnJheV9mcm9tX2F0dG51bXMoZmstPm5rZXlzLCBmay0+ Y29ua2V5KTsKLQkJKm91dHJlZiA9IGFycmF5X2Zyb21fYXR0bnVtcyhmay0+bmtleXMsIGZrLT5j b25ma2V5KTsKKwkJbmtleXMgPSBmay0+bmtleXM7CisJCWtleWF0dG51bXMgPSBmay0+Y29ua2V5 OworCQlyZWZhdHRudW1zID0gZmstPmNvbmZrZXk7CisJCWtleWVxb3BzID0gZmstPmNvbnBmZXFv cDsKIAl9CisKKwkqb3V0a2V5ID0gYXJyYXlfZnJvbV9hdHRudW1zKG5rZXlzLCBrZXlhdHRudW1z KTsKKwkqb3V0cmVmID0gYXJyYXlfZnJvbV9hdHRudW1zKG5rZXlzLCByZWZhdHRudW1zKTsKKwlk YXR1bXMgPSAoRGF0dW0gKikgcGFsbG9jKHNpemVvZihEYXR1bSkgKiBua2V5cyk7CisJZm9yIChp ID0gMDsgaSA8IG5rZXlzOyBpKyspCisJCWRhdHVtc1tpXSA9IE9iamVjdElkR2V0RGF0dW0oa2V5 ZXFvcHNbaV0pOworCSpvdXRlcW9wID0gY29uc3RydWN0X2FycmF5X2J1aWx0aW4oZGF0dW1zLCBu a2V5cywgT0lET0lEKTsKIH0KIAogLyoKICAqIENvbnZlcnQgbGlzdCBvZiBjb2x1bW4gbmFtZXMg aW4gdGhlIHNwZWNpZmllZCByZWxhdGlvbiBpbnRvIGFuIGFycmF5IG9mCiAgKiBjb2x1bW4gbnVt YmVycy4KICAqLwotc3RhdGljIEFycmF5VHlwZSAqCitzdGF0aWMgQXR0ck51bWJlciAqCiBhcnJh eV9mcm9tX2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqY29sbmFt ZXMsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpCiB7CiAJaW50CQkJbnVtYXR0 cnM7Ci0JRGF0dW0JICAgKmF0dG51bXNkOworCUF0dHJOdW1iZXIgKmF0dG51bXM7CiAJaW50CQkJ aTsKIAlMaXN0Q2VsbCAgICpsYzsKIAogCW51bWF0dHJzID0gbGlzdF9sZW5ndGgoY29sbmFtZXMp OwotCWF0dG51bXNkID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1hdHRycyk7CisJYXR0bnVtcyA9 IHBhbGxvY19hcnJheShBdHRyTnVtYmVyLCBudW1hdHRycyk7CiAKIAlpID0gMDsKIAlmb3JlYWNo KGxjLCBjb2xuYW1lcykKQEAgLTQzNiwxNCArNTQzLDE0IEBAIGFycmF5X2Zyb21fY29sdW1uX2xp c3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICpjb2xuYW1lcywgaW50IGxvY2F0aW9u LCBSCiAJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMg bm90IGV4aXN0IiwKIAkJCQkJCQljb2xuYW1lLCBnZXRfcmVsX25hbWUocmVsaWQpKSwKIAkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwotCQlhdHRudW1zZFtpKytd ID0gSW50MTZHZXREYXR1bShhdHRudW0pOworCQlhdHRudW1zW2krK10gPSBhdHRudW07CiAJfQog CiAJZm9yIChpbnQgaiA9IDA7IGogPCBudW1hdHRyczsgaisrKQogCXsKIAkJZm9yIChpbnQgayA9 IGogKyAxOyBrIDwgbnVtYXR0cnM7IGsrKykKIAkJewotCQkJaWYgKERhdHVtR2V0SW50MTYoYXR0 bnVtc2Rbal0pID09IERhdHVtR2V0SW50MTYoYXR0bnVtc2Rba10pKQorCQkJaWYgKGF0dG51bXNb al0gPT0gYXR0bnVtc1trXSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJCSBlcnJtc2coImdyYXBoIGtl eSBjb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzIiksCkBAIC00NTEsNyAr NTU4LDcgQEAgYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0 IExpc3QgKmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFIKIAkJfQogCX0KIAotCXJldHVybiBjb25z dHJ1Y3RfYXJyYXlfYnVpbHRpbihhdHRudW1zZCwgbnVtYXR0cnMsIElOVDJPSUQpOworCXJldHVy biBhdHRudW1zOwogfQogCiBzdGF0aWMgQXJyYXlUeXBlICoKQEAgLTQ4NCw2ICs1OTEsMjMgQEAg YXJyYXlfb2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhPaWQgcmVsaWQsIEFycmF5VHlwZSAqYXJy LCBPYmplY3RBZGRyZXNzZXMgKmFkZHIKIAl9CiB9CiAKK3N0YXRpYyB2b2lkCithcnJheV9vZl9v cGVyc190b19vYmplY3RhZGRycyhBcnJheVR5cGUgKmFyciwgT2JqZWN0QWRkcmVzc2VzICphZGRy cykKK3sKKwlEYXR1bQkgICAqb3BlcnNkOworCWludAkJCW51bW9wZXJzOworCisJZGVjb25zdHJ1 Y3RfYXJyYXlfYnVpbHRpbihhcnIsIE9JRE9JRCwgJm9wZXJzZCwgTlVMTCwgJm51bW9wZXJzKTsK KworCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtb3BlcnM7IGkrKykKKwl7CisJCU9iamVjdEFkZHJl c3MgcmVmZXJlbmNlZDsKKworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE9wZXJhdG9y UmVsYXRpb25JZCwgRGF0dW1HZXRPYmplY3RJZChvcGVyc2RbaV0pKTsKKwkJYWRkX2V4YWN0X29i amVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisJfQorfQorCiAvKgogICogSW5zZXJ0 IGEgcmVjb3JkIGZvciBhbiBlbGVtZW50IGludG8gdGhlIHBnX3Byb3BncmFwaF9lbGVtZW50IGNh dGFsb2cuICBBbHNvCiAgKiBpbnNlcnRzIGxhYmVscyBhbmQgcHJvcGVydGllcyBpbnRvIHRoZWly IHJlc3BlY3RpdmUgY2F0YWxvZ3MuCkBAIC01MjQsNiArNjQ4LDEwIEBAIGluc2VydF9lbGVtZW50 X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWlu Zm8pCiAJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZiAtIDFdID0g UG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNyZWYpOwogCWVsc2UKIAkJbnVsbHNbQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5zcmNl cW9wKQorCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNlcW9wIC0gMV0g PSBQb2ludGVyR2V0RGF0dW0oZWluZm8tPnNyY2Vxb3ApOworCWVsc2UKKwkJbnVsbHNbQW51bV9w Z19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNlcW9wIC0gMV0gPSB0cnVlOwogCWlmIChlaW5mby0+ ZGVzdGtleSkKIAkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSAt IDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5kZXN0a2V5KTsKIAllbHNlCkBAIC01MzIsNiAr NjYwLDEwIEBAIGluc2VydF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNzIHBnYWRkcmVzcywg c3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pCiAJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9l bGVtZW50X3BnZWRlc3RyZWYgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShlaW5mby0+ZGVzdHJlZik7 CiAJZWxzZQogCQludWxsc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RyZWYgLSAx XSA9IHRydWU7CisJaWYgKGVpbmZvLT5kZXN0ZXFvcCkKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdy YXBoX2VsZW1lbnRfcGdlZGVzdGVxb3AgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShlaW5mby0+ZGVz dGVxb3ApOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0 ZXFvcCAtIDFdID0gdHJ1ZTsKIAogCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERl c2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwogCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7 CkBAIC01NDksMTMgKzY4MSwxNyBAQCBpbnNlcnRfZWxlbWVudF9yZWNvcmQoT2JqZWN0QWRkcmVz cyBwZ2FkZHJlc3MsIHN0cnVjdCBlbGVtZW50X2luZm8gKmVpbmZvKQogCWFkZF9leGFjdF9vYmpl Y3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOwogCWFycmF5X29mX2F0dG51bXNfdG9fb2Jq ZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+a2V5LCBhZGRycyk7CiAKLQkvKiBBZGQgZGVw ZW5kZW5jaWVzIG9uIHZlcnRpY2VzICovCisJLyoKKwkgKiBBZGQgZGVwZW5kZW5jaWVzIG9uIHZl cnRpY2VzIGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMgdXNlZCBmb3Iga2V5CisJICogY29tcGFyaXNv bi4KKwkgKi8KIAlpZiAoZWluZm8tPnNyY3ZlcnRleGlkKQogCXsKIAkJT2JqZWN0QWRkcmVzc1Nl dChyZWZlcmVuY2VkLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgZWluZm8tPnNyY3ZlcnRl eGlkKTsKIAkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CiAJ CWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+c3Jj a2V5LCBhZGRycyk7CiAJCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnNy Y3JlbGlkLCBlaW5mby0+c3JjcmVmLCBhZGRycyk7CisJCWFycmF5X29mX29wZXJzX3RvX29iamVj dGFkZHJzKGVpbmZvLT5zcmNlcW9wLCBhZGRycyk7CiAJfQogCWlmIChlaW5mby0+ZGVzdHZlcnRl eGlkKQogCXsKQEAgLTU2MywxMCArNjk5LDkgQEAgaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKE9iamVj dEFkZHJlc3MgcGdhZGRyZXNzLCBzdHJ1Y3QgZWxlbWVudF9pbmZvICplaW5mbykKIAkJYWRkX2V4 YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CiAJCWFycmF5X29mX2F0dG51 bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5mby0+ZGVzdGtleSwgYWRkcnMpOwog CQlhcnJheV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5kZXN0cmVsaWQsIGVpbmZv LT5kZXN0cmVmLCBhZGRycyk7CisJCWFycmF5X29mX29wZXJzX3RvX29iamVjdGFkZHJzKGVpbmZv LT5kZXN0ZXFvcCwgYWRkcnMpOwogCX0KIAotCS8qIFRPRE86IGRlcGVuZGVuY2llcyBvbiBlcXVh bGl0eSBvcGVyYXRvcnMsIGxpa2UgZm9yIGZvcmVpZ24ga2V5cyAqLwotCiAJcmVjb3JkX29iamVj dF9hZGRyZXNzX2RlcGVuZGVuY2llcygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwp OwogCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwpAQCAtNzY2LDYgKzkwMSw3IEBAIGluc2Vy dF9wcm9wZXJ0eV9yZWNvcmRzKE9pZCBncmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJl bGlkLCBjb25zdCBQcm9wR3JhCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCiAJdHAgPSB0 cmFuc2Zvcm1UYXJnZXRMaXN0KHBzdGF0ZSwgcHJvcGxpc3QsIEVYUFJfS0lORF9QUk9QR1JBUEhf UFJPUEVSVFkpOworCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9kZSAqKSB0cCk7 CiAKIAlmb3JlYWNoKGxjLCB0cCkKIAl7CkBAIC03ODQsOSArOTIwLDE1IEBAIGluc2VydF9wcm9w ZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdlcmVsaWQsIGNv bnN0IGNoYXIgKnByCiB7CiAJT2lkCQkJcHJvcG9pZDsKIAlPaWQJCQlleHBydHlwaWQ7CisJaW50 MzIJCWV4cHJ0eXBtb2Q7CisJT2lkCQkJZXhwcmNvbGxhdGlvbjsKIAlPaWQJCQlwcm9wdHlwaWQ7 CisJaW50MzIJCXByb3B0eXBtb2Q7CisJT2lkCQkJcHJvcGNvbGxhdGlvbjsKIAogCWV4cHJ0eXBp ZCA9IGV4cHJUeXBlKChjb25zdCBOb2RlICopIGV4cHIpOworCWV4cHJjb2xsYXRpb24gPSBleHBy Q29sbGF0aW9uKChjb25zdCBOb2RlICopIGV4cHIpOworCWV4cHJ0eXBtb2QgPSBleHByVHlwbW9k KChjb25zdCBOb2RlICopIGV4cHIpOwogCiAJLyoKIAkgKiBJbnNlcnQgaW50byBwZ19wcm9wZ3Jh cGhfcHJvcGVydHkgaWYgbm90IGFscmVhZHkgZXhpc3RpbmcuCkBAIC04MDMsNiArOTQ1LDggQEAg aW5zZXJ0X3Byb3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFiZWxvaWQsIE9pZCBw Z2VyZWxpZCwgY29uc3QgY2hhciAqcHIKIAkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOwogCiAJ CXByb3B0eXBpZCA9IGV4cHJ0eXBpZDsKKwkJcHJvcHR5cG1vZCA9IGV4cHJ0eXBtb2Q7CisJCXBy b3Bjb2xsYXRpb24gPSBleHByY29sbGF0aW9uOwogCiAJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdy YXBoUHJvcGVydHlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIApAQCAtODEyLDYgKzk1 Niw4IEBAIGluc2VydF9wcm9wZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lk LCBPaWQgcGdlcmVsaWQsIGNvbnN0IGNoYXIgKnByCiAJCW5hbWVzdHJjcHkoJnByb3BuYW1lZGF0 YSwgcHJvcG5hbWUpOwogCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwbmFt ZSAtIDFdID0gTmFtZUdldERhdHVtKCZwcm9wbmFtZWRhdGEpOwogCQl2YWx1ZXNbQW51bV9wZ19w cm9wZ3JhcGhfcHJvcGVydHlfcGdwdHlwaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ocHJvcHR5 cGlkKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X3BncHR5cG1vZCAtIDFd ID0gSW50MzJHZXREYXR1bShwcm9wdHlwbW9kKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBo X3Byb3BlcnR5X3BncGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwcm9wY29sbGF0 aW9uKTsKIAogCQl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2 YWx1ZXMsIG51bGxzKTsKIAkJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKQEAgLTgyOCw3 ICs5NzQsMTMgQEAgaW5zZXJ0X3Byb3BlcnR5X3JlY29yZChPaWQgZ3JhcGhpZCwgT2lkIGVsbGFi ZWxvaWQsIE9pZCBwZ2VyZWxpZCwgY29uc3QgY2hhciAqcHIKIAl9CiAJZWxzZQogCXsKLQkJcHJv cHR5cGlkID0gR2V0U3lzQ2FjaGVPaWQxKFBST1BHUkFQSFBST1BPSUQsIEFudW1fcGdfcHJvcGdy YXBoX3Byb3BlcnR5X3BncHR5cGlkLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQpKTsKKwkJSGVh cFR1cGxlCXBncHR1cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhQUk9QT0lELCBPYmplY3RJ ZEdldERhdHVtKHByb3BvaWQpKTsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdwZm9y bSA9IChGb3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHBncHR1cCk7CisKKwkJ cHJvcHR5cGlkID0gcGdwZm9ybS0+cGdwdHlwaWQ7CisJCXByb3B0eXBtb2QgPSBwZ3Bmb3JtLT5w Z3B0eXBtb2Q7CisJCXByb3Bjb2xsYXRpb24gPSBwZ3Bmb3JtLT5wZ3Bjb2xsYXRpb247CisJCVJl bGVhc2VTeXNDYWNoZShwZ3B0dXApOwogCX0KIAogCS8qCkBAIC04NDUsNiArOTk3LDMyIEBAIGlu c2VydF9wcm9wZXJ0eV9yZWNvcmQoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdl cmVsaWQsIGNvbnN0IGNoYXIgKnByCiAJCQkJZXJyZGV0YWlsKCJJbiBhIHByb3BlcnR5IGdyYXBo LCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgZGF0YSB0 eXBlIGluIGVhY2ggbGFiZWwuIikpOwogCX0KIAorCS8qIFNpbWlsYXJseSBmb3IgY29sbGF0aW9u ICovCisJaWYgKHByb3Bjb2xsYXRpb24gIT0gZXhwcmNvbGxhdGlvbikKKwl7CisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJw cm9wZXJ0eSBcIiVzXCIgY29sbGF0aW9uIG1pc21hdGNoOiAlcyB2cy4gJXMiLAorCQkJCQkgICBw cm9wbmFtZSwgZ2V0X2NvbGxhdGlvbl9uYW1lKHByb3Bjb2xsYXRpb24pLCBnZXRfY29sbGF0aW9u X25hbWUoZXhwcmNvbGxhdGlvbikpLAorCQkJCWVycmRldGFpbCgiSW4gYSBwcm9wZXJ0eSBncmFw aCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBoYXZlIHRoZSBzYW1lIGNvbGxh dGlvbiBpbiBlYWNoIGxhYmVsLiIpKTsKKwl9CisKKwkvKgorCSAqIEFuZCB0eXBtb2QuIEl0IGRv ZXMgbm90IHNlZW0gdG8gYmUgbmVjZXNzYXJ5IHRvIGVuZm9yY2UgdHlwbW9kCisJICogY29uc2lz dGVuY3kgYWNyb3NzIHByb3BlcnRpZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiBCdXQgd2hlbiBwcm9w ZXJ0aWVzCisJICogd2l0aCB0aGUgc2FtZSBuYW1lIGhhdmUgZGlmZmVyZW50IHR5cG1vZHMsIGl0 IGlzIG5vdCBjbGVhciB3aGljaCBvbmUKKwkgKiBzaG91bGQgYmUgdXNlZCBhcyB0aGUgdHlwbW9k IG9mIHRoZSBncmFwaCBwcm9wZXJ0eSB3aGVuIHR5cG1vZCBvZiBhCisJICogcHJvcGVydHkgaXMg cmVxdWVzdGVkIGJlZm9yZSBmZXRjaGluZyBhbnkgb2YgdGhlIHByb3BlcnR5IGV4cHJlc3Npb25z LgorCSAqLworCWlmIChwcm9wdHlwbW9kICE9IGV4cHJ0eXBtb2QpCisJeworCQllcmVwb3J0KEVS Uk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCWVycm1zZygicHJv cGVydHkgXCIlc1wiIGRhdGEgdHlwZSBtb2RpZmllciBtaXNtYXRjaDogJWQgdnMuICVkIiwKKwkJ CQkJICAgcHJvcG5hbWUsIHByb3B0eXBtb2QsIGV4cHJ0eXBtb2QpLAorCQkJCWVycmRldGFpbCgi SW4gYSBwcm9wZXJ0eSBncmFwaCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBo YXZlIHRoZSBzYW1lIHR5cGUgbW9kaWZpZXIgaW4gZWFjaCBsYWJlbC4iKSk7CisJfQorCiAJLyoK IAkgKiBJbnNlcnQgaW50byBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkKIAkgKi8KQEAgLTEy MzYsMTAgKzE0MTQsMTAgQEAgQWx0ZXJQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25z dCBBbHRlclByb3BHcmFwaFN0bXQgKnN0bXQpCiAKIAkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9r ZXlzKHBzdGF0ZSwgZWRnZS0+ZXNyY2tleSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3Jj cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJTT1VSQ0Ui LAotCQkJCQkJCQkJJmVpbmZvLT5zcmNrZXksICZlaW5mby0+c3JjcmVmKTsKKwkJCQkJCQkJCSZl aW5mby0+c3Jja2V5LCAmZWluZm8tPnNyY3JlZiwgJmVpbmZvLT5zcmNlcW9wKTsKIAkJcHJvcGdy YXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZWRlc3RrZXksIGVkZ2UtPmVkZXN0 dmVydGV4Y29scywgcmVsLCBkZXN0cmVsLAogCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwgZWRn ZS0+bG9jYXRpb24sICJERVNUSU5BVElPTiIsCi0JCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZl aW5mby0+ZGVzdHJlZik7CisJCQkJCQkJCQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJl ZiwgJmVpbmZvLT5kZXN0ZXFvcCk7CiAKIAkJZWluZm8tPmxhYmVscyA9IGVkZ2UtPmxhYmVsczsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2Vu ZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCAzZTRjNTJiODljNS4uODE0NjNlNjcxMTcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCkBAIC01NDAsOCArNTQwLDcgQEAgZXhwclR5cG1vZChjb25zdCBOb2Rl ICpleHByKQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQlyZXR1cm4gZXhwclR5cG1vZCgo Tm9kZSAqKSAoKGNvbnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOwogCQljYXNl IFRfR3JhcGhQcm9wZXJ0eVJlZjoKLQkJCS8qIFRPRE8gKi8KLQkJCXJldHVybiAtMTsKKwkJCXJl dHVybiAoKGNvbnN0IEdyYXBoUHJvcGVydHlSZWYgKikgZXhwciktPnR5cG1vZDsKIAkJZGVmYXVs dDoKIAkJCWJyZWFrOwogCX0KQEAgLTEwNjUsNyArMTA2NCw3IEBAIGV4cHJDb2xsYXRpb24oY29u c3QgTm9kZSAqZXhwcikKIAkJCWNvbGwgPSBleHByQ29sbGF0aW9uKChOb2RlICopICgoY29uc3Qg UGxhY2VIb2xkZXJWYXIgKikgZXhwciktPnBoZXhwcik7CiAJCQlicmVhazsKIAkJY2FzZSBUX0dy YXBoUHJvcGVydHlSZWY6Ci0JCQljb2xsID0gREVGQVVMVF9DT0xMQVRJT05fT0lEOwkvKiBGSVhN RSAqLworCQkJY29sbCA9ICgoY29uc3QgR3JhcGhQcm9wZXJ0eVJlZiAqKSBleHByKS0+Y29sbGF0 aW9uOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVk IG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Y29sbGF0ZS5jCmluZGV4IDYwYmNjNWY0MTQ1Li44ZjkxMjA2NWEwMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29sbGF0ZS5jCkBAIC01NDYsNiArNTQ2LDcgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fs a2VyKE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCWNh c2UgVF9DYXNlVGVzdEV4cHI6CiAJCWNhc2UgVF9TZXRUb0RlZmF1bHQ6CiAJCWNhc2UgVF9DdXJy ZW50T2ZFeHByOgorCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKIAogCQkJLyoKIAkJCSAqIEdl bmVyYWwgY2FzZSBmb3IgY2hpbGRsZXNzIGV4cHJlc3Npb24gbm9kZXMuICBUaGVzZSBzaG91bGQK QEAgLTU3MSwxMyArNTcyLDYgQEAgYXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUs IGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQgKmNvbnRleHQpCiAJCQlsb2NhdGlvbiA9IGV4cHJM b2NhdGlvbihub2RlKTsKIAkJCWJyZWFrOwogCi0JCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgot CQkJLyogRklYTUUgKi8KLQkJCWNvbGxhdGlvbiA9IERFRkFVTFRfQ09MTEFUSU9OX09JRDsKLQkJ CXN0cmVuZ3RoID0gQ09MTEFURV9JTVBMSUNJVDsKLQkJCWxvY2F0aW9uID0gLTE7Ci0JCQlicmVh azsKLQogCQlkZWZhdWx0OgogCQkJewogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBo dGFibGUuYwppbmRleCBiMDg4MzA2YjViMy4uYTg3NjlhNjdiNmEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2dyYXBodGFibGUuYwpAQCAtNTYsMTggKzU2LDI0IEBAIHRyYW5zZm9ybUdyYXBoVGFi bGVQcm9wZXJ0eVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJaWYg KGxpc3RfbWVtYmVyKGdwc3RhdGUtPnZhcmlhYmxlcywgZmllbGQxKSkKIAkJewogCQkJR3JhcGhQ cm9wZXJ0eVJlZiAqZ3ByID0gbWFrZU5vZGUoR3JhcGhQcm9wZXJ0eVJlZik7Ci0JCQlPaWQJCQlw cm9waWQ7CisJCQlIZWFwVHVwbGUJcGdwdHVwOworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVy dHkgcGdwZm9ybTsKIAotCQkJcHJvcGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSFBST1BO QU1FLCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQsIE9iamVjdElkR2V0RGF0dW0oZ3Bz dGF0ZS0+Z3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOwotCQkJaWYgKCFwcm9w aWQpCisJCQlwZ3B0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFJPUEdSQVBIUFJPUE5BTUUsIE9iamVj dElkR2V0RGF0dW0oZ3BzdGF0ZS0+Z3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkp OworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBncHR1cCkpCiAJCQkJZXJlcG9ydChFUlJPUiwK IAkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkJZXJybXNnKCJwcm9w ZXJ0eSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBwcm9wbmFtZSkpOworCQkJcGdwZm9ybSA9IChG b3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHBncHR1cCk7CiAKIAkJCWdwci0+ bG9jYXRpb24gPSBjcmVmLT5sb2NhdGlvbjsKIAkJCWdwci0+ZWx2YXJuYW1lID0gZWx2YXJuYW1l OwotCQkJZ3ByLT5wcm9waWQgPSBwcm9waWQ7Ci0JCQlncHItPnR5cGVJZCA9IEdldFN5c0NhY2hl T2lkMShQUk9QR1JBUEhQUk9QT0lELCBBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3B0eXBp ZCwgT2JqZWN0SWRHZXREYXR1bShwcm9waWQpKTsKKwkJCWdwci0+cHJvcGlkID0gcGdwZm9ybS0+ b2lkOworCQkJZ3ByLT50eXBlSWQgPSBwZ3Bmb3JtLT5wZ3B0eXBpZDsKKwkJCWdwci0+dHlwbW9k ID0gcGdwZm9ybS0+cGdwdHlwbW9kOworCQkJZ3ByLT5jb2xsYXRpb24gPSBwZ3Bmb3JtLT5wZ3Bj b2xsYXRpb247CisKKwkJCVJlbGVhc2VTeXNDYWNoZShwZ3B0dXApOwogCiAJCQlyZXR1cm4gKE5v ZGUgKikgZ3ByOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVH cmFwaFRhYmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5k ZXggOWMxNGZhM2IxYjcuLjgwZTI4ZGI3NTJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl R3JhcGhUYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAog I2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3Iu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsLmgiCkBAIC0yMyw3ICsyNCwxMCBAQAogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRl ICJwYXJzZXIvYW5hbHl6ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9k ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgpAQCAtODMsNyArODcsNyBAQCBzdHJ1Y3QgcGF0aF9l bGVtZW50CiB9OwogCiBzdGF0aWMgTm9kZSAqcmVwbGFjZV9wcm9wZXJ0eV9yZWZzKE9pZCBwcm9w Z3JhcGhpZCwgTm9kZSAqbm9kZSwgY29uc3QgTGlzdCAqbWFwcGluZ3MpOwotc3RhdGljIExpc3Qg KmJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdl cnRpLCBpbnQgcmVmcnRpLCBBdHRyTnVtYmVyIGNhdGFsb2dfa2V5X2F0dG51bSwgQXR0ck51bWJl ciBjYXRhbG9nX3JlZl9hdHRudW0pOworc3RhdGljIExpc3QgKmJ1aWxkX2VkZ2VfdmVydGV4X2xp bmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBPaWQg cmVmaWQsIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2df cmVmX2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX2Vxb3BfYXR0bnVtKTsKIHN0YXRpYyBMaXN0 ICpnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBM aXN0ICplbGVtZW50X3BhdHRlcm5zKTsKIHN0YXRpYyBRdWVyeSAqZ2VuZXJhdGVfcXVlcnlfZm9y X2dyYXBoX3BhdGgoUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoKTsKIHN0YXRpYyBOb2Rl ICpnZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKExpc3QgKnBhdGhxdWVyaWVzLCBMaXN0 ICoqcnRhYmxlLCBMaXN0ICoqdGFyZ2V0bGlzdCk7CkBAIC0zNzMsNiArMzc3LDIzIEBAIGdlbmVy YXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwg TGlzdCAqcGF0aHF1ZXJpZXMsCiAvKgogICogQ29uc3RydWN0IGEgcXVlcnkgcmVwcmVzZW50aW5n IGdpdmVuIGdyYXBoIHBhdGguCiAgKgorICogVGhlIHF1ZXJ5IGNvbnRhaW5zOgorICoKKyAqIDEu IHRhcmdldGxpc3QgY29ycmVzcG9uZGluZyB0aGUgQ09MVU1OUyBjbGF1c2Ugb2YgR1JBUEhfVEFC TEUgY2xhdXNlCisgKgorICogMi4gcXVhbHMgY29ycmVzcG9uZGluZyB0byB0aGUgV0hFUkUgY2xh dXNlIG9mIGluZGl2aWR1YWwgZWxlbWVudHMsIFdIRVJFCisgKiBjbGF1c2UgaW4gR1JBUEhfVEFC TEUgY2xhdXNlIGFuZCBxdWFscyByZXByZXNlbnRpbmcgZWRnZS12ZXJ0ZXggbGlua3MuCisgKgor ICogMy4gZnJvbWxpc3QgY29udGFpbmluZyBhbGwgZWxlbWVudHMgaW4gdGhlIHBhdGgKKyAqCisg KiBUaGUgY29sbGF0aW9ucyBvZiBwcm9wZXJ0eSBleHByZXNzaW9ucyBhcmUgb2J0YWluZWQgZnJv bSB0aGUgY2F0YWxvZyBhbmQKKyAqIHN1YnN0aXR1dGVkIGluIHBsYWNlIG9mIGEgcHJvcGVydHkg cmVmZXJlbmNlLiBUaGUgY29sbGF0aW9ucyBvZiBleHByZXNzaW9ucworICogaW4gQ09MVU1OUyBh bmQgV0hFUkUgY2xhdXNlcyBhcmUgYXNzaWduZWQgYmVmb3JlIHJld3JpdGluZyB0aGUgZ3JhcGgg dGFibGUuCisgKiBUaGUgY29sbGF0aW9ucyBvZiB0aGUgZWRnZS12ZXJ0ZXggbGluayBxdWFscyBh cmUgYXNzaWduZWQgd2hlbiBjcmFmdGluZyB0aG9zZQorICogcXVhbHMuIFRodXMgZXZlcnl0aGlu ZyBpbiB0aGUgcXVlcnkgdGhhdCByZXF1aXJlcyBjb2xsYXRpb24gYXNzaWdubWVudCBoYXMKKyAq IGJlZW4gdGFrZW4gY2FyZSBvZiBhbHJlYWR5LiBTbyBubyBjb2xsYXRpb24gYXNzaWdubWVudCBp cyByZXF1aXJlZCBpbiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCiAgKiBNb3JlIGRldGFpbHMgaW4g dGhlIHByb2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybigpLgogICov CiBzdGF0aWMgUXVlcnkgKgpAQCAtNTUyLDYgKzU3MywxMiBAQCBnZW5lcmF0ZV9xdWVyeV9mb3Jf ZW1wdHlfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIC8qCiAgKiBDb25zdHJ1Y3Qg YSBxdWVyeSB3aGljaCBpcyBVTklPTiBvZiBnaXZlbiBwYXRoIHF1ZXJpZXMuCiAgKgorICogVGhl IFVOSU9OIHF1ZXJ5IGRlcml2ZXMgY29sbGF0aW9ucyBvZiBpdHMgdGFyZ2V0bGlzdCBlbnRyaWVz IGZyb20gdGhlCisgKiBjb3JyZXNwb25kaW5nIHRhcmdldGxpc3QgZW50cmllcyBvZiB0aGUgcGF0 aCBxdWVyaWVzIGFuZCBwcm9qZWN0cyBpdC4gVGhlCisgKiB0YXJnZXRsaXN0cyBvZiBwYXRoIHF1 ZXJpZXMgYmVpbmcgVU5JT04nZWQgYWxyZWFkeSBoYXZlIGNvbGxhdGlvbnMgYXNzaWduZWQuCisg KiBUaGUgc2FtZSBjb2xsYXRpb25zIGFyZSB1c2VkIGZvciB0YXJnZXRsaXN0IG9mIFVOSU9OIHF1 ZXJ5LiBUaHVzIHRoZXJlIGlzIG5vCisgKiBzZXBhcmF0ZSBjb2xsYXRpb24gYXNzaWdubWVudCBy ZXF1aXJlZCBpbiB0aGlzIGZ1bmN0aW9uLgorICoKICAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBn aXZlbiBwYXRocXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0cnVjdGluZwogICogU2V0T3BlcmF0aW9u U3RtdCByZWNydXJzaXZlbHkuIEhlbmNlIHRoZSBmdW5jdGlvbiBhbHdheXMgcmV0dXJucyB3aXRo CiAgKiBgcGF0aHF1ZXJpZXNgIHNldCB0byBOSUwuCkBAIC03NDcsMTEgKzc3NCwxNSBAQCBjcmVh dGVfZ3BlX2Zvcl9lbGVtZW50KHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYsIE9pZCBlbGVtb2lkKQog CQkgKiBlYWNoIHRpbWUuCiAJCSAqLwogCQlwZS0+c3JjX3F1YWxzID0gYnVpbGRfZWRnZV92ZXJ0 ZXhfbGlua19xdWFscyhlbGV0dXAsIHBmLT5mYWN0b3Jwb3MgKyAxLCBwZi0+c3JjX3BmLT5mYWN0 b3Jwb3MgKyAxLAorCQkJCQkJCQkJCQkJCSBwZS0+c3JjdmVydGV4aWQsCiAJCQkJCQkJCQkJCQkJ IEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jja2V5LAotCQkJCQkJCQkJCQkJCSBBbnVt X3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7CisJCQkJCQkJCQkJCQkJIEFudW1fcGdf cHJvcGdyYXBoX2VsZW1lbnRfcGdlc3JjcmVmLAorCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3Bn cmFwaF9lbGVtZW50X3BnZXNyY2Vxb3ApOwogCQlwZS0+ZGVzdF9xdWFscyA9IGJ1aWxkX2VkZ2Vf dmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPmRlc3RfcGYt PmZhY3RvcnBvcyArIDEsCisJCQkJCQkJCQkJCQkJICBwZS0+ZGVzdHZlcnRleGlkLAogCQkJCQkJ CQkJCQkJCSAgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5LAotCQkJCQkJCQkJ CQkJCSAgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0cmVmKTsKKwkJCQkJCQkJCQkJ CQkgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiwKKwkJCQkJCQkJCQkJCQkg IEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGVxb3ApOwogCX0KIAogCVJlbGVhc2VT eXNDYWNoZShlbGV0dXApOwpAQCAtMTEyMiwxOCArMTE1MywyNiBAQCByZXBsYWNlX3Byb3BlcnR5 X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5ncykK IH0KIAogLyoKLSAqIEJ1aWxkIGpvaW4gcXVhbGlmaWNhdGlvbiBleHByZXNzaW9ucyBiZXR3ZWVu IGVkZ2UgYW5kIHZlcnRleCB0YWJsZXMuCisgKiBCdWlsZCBqb2luIHF1YWxpZmljYXRpb24gZXhw cmVzc2lvbnMgYmV0d2VlbiBlZGdlIGFuZCB2ZXJ0ZXggdGFibGVzIHVzaW5nCisgKiBlcXVhbGl0 eSBvcGVyYXRvcnMgaWRlbnRpZmllZCBhdCB0aGUgdGltZSBvZiBjcmVhdGluZyB0aGUgZWRnZS4K ICAqLwogc3RhdGljIExpc3QgKgotYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVw bGUgZWRnZXR1cCwgaW50IGVkZ2VydGksIGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19r ZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0dG51bSkKK2J1aWxkX2VkZ2VfdmVy dGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRp LCBPaWQgcmVmaWQsIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNh dGFsb2dfcmVmX2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX2Vxb3BfYXR0bnVtKQogewogCUxp c3QJICAgKnF1YWxzID0gTklMOwogCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQgcGdlZm9ybTsK IAlEYXR1bQkJZGF0dW07CiAJRGF0dW0JICAgKmQxLAotCQkJICAgKmQyOworCQkJICAgKmQyLAor CQkJICAgKmQzOwogCWludAkJCW4xLAotCQkJCW4yOworCQkJCW4yLAorCQkJCW4zOworCVBhcnNl U3RhdGUgKnBzdGF0ZSA9IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsKKwlIZWFwVHVwbGUJcmVmdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKHJlZmlk KSk7CisJT2lkCQkJcmVmcmVsaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNU UlVDVChyZWZ0dXApKS0+cGdlcmVsaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUocmVmdHVwKTsKIAog CXBnZWZvcm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKGVkZ2V0dXAp OwogCkBAIC0xMTQzLDMzICsxMTgyLDc0IEBAIGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMo SGVhcFR1cGxlIGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBBdHRyTnVtCiAJZGF0 dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lELCBlZGdldHVwLCBjYXRh bG9nX3JlZl9hdHRudW0pOwogCWRlY29uc3RydWN0X2FycmF5X2J1aWx0aW4oRGF0dW1HZXRBcnJh eVR5cGVQKGRhdHVtKSwgSU5UMk9JRCwgJmQyLCBOVUxMLCAmbjIpOwogCisJZGF0dW0gPSBTeXND YWNoZUdldEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lELCBlZGdldHVwLCBjYXRhbG9nX2Vxb3Bf YXR0bnVtKTsKKwlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtR2V0QXJyYXlUeXBlUChk YXR1bSksIE9JRE9JRCwgJmQzLCBOVUxMLCAmbjMpOworCiAJaWYgKG4xICE9IG4yKQogCQllbG9n KEVSUk9SLCAiYXJyYXkgc2l6ZSBrZXkgKCVkKSB2cyByZWYgKCVkKSBtaXNtYXRjaCBmb3IgZWxl bWVudCBJRCAldSIsIGNhdGFsb2dfa2V5X2F0dG51bSwgY2F0YWxvZ19yZWZfYXR0bnVtLCBwZ2Vm b3JtLT5vaWQpOworCWlmIChuMSAhPSBuMykKKwkJZWxvZyhFUlJPUiwgImFycmF5IHNpemUga2V5 ICglZCkgdnMgb3BlcmF0b3IgKCVkKSBtaXNtYXRjaCBmb3IgZWxlbWVudCBJRCAldSIsIGNhdGFs b2dfa2V5X2F0dG51bSwgY2F0YWxvZ19lcW9wX2F0dG51bSwgcGdlZm9ybS0+b2lkKTsKIAogCWZv ciAoaW50IGkgPSAwOyBpIDwgbjE7IGkrKykKIAl7CiAJCUF0dHJOdW1iZXIJa2V5YXR0biA9IERh dHVtR2V0SW50MTYoZDFbaV0pOwogCQlBdHRyTnVtYmVyCXJlZmF0dG4gPSBEYXR1bUdldEludDE2 KGQyW2ldKTsKKwkJT2lkCQkJZXFvcCA9IERhdHVtR2V0T2JqZWN0SWQoZDNbaV0pOworCQlWYXIJ CSAgICprZXl2YXI7CisJCVZhcgkJICAgKnJlZnZhcjsKIAkJT2lkCQkJYXR0dHlwaWQ7Ci0JCVR5 cGVDYWNoZUVudHJ5ICp0eXBlbnRyeTsKLQkJT3BFeHByCSAgICpvcDsKKwkJaW50MzIJCWF0dHR5 cG1vZDsKKwkJT2lkCQkJYXR0Y29sbDsKKwkJSGVhcFR1cGxlCXR1cDsKKwkJRm9ybV9wZ19vcGVy YXRvciBvcGZvcm07CisJCUxpc3QJICAgKmFyZ3M7CisJCU9pZAkJCWFjdHVhbF9hcmdfdHlwZXNb Ml07CisJCU9pZAkJCWRlY2xhcmVkX2FyZ190eXBlc1syXTsKKwkJT3BFeHByCSAgICpsaW5rcXVh bDsKKworCQlnZXRfYXR0dHlwZXR5cG1vZGNvbGwocGdlZm9ybS0+cGdlcmVsaWQsIGtleWF0dG4s ICZhdHR0eXBpZCwgJmF0dHR5cG1vZCwgJmF0dGNvbGwpOworCQlrZXl2YXIgPSBtYWtlVmFyKGVk Z2VydGksIGtleWF0dG4sIGF0dHR5cGlkLCBhdHR0eXBtb2QsIGF0dGNvbGwsIDApOworCQlnZXRf YXR0dHlwZXR5cG1vZGNvbGwocmVmcmVsaWQsIHJlZmF0dG4sICZhdHR0eXBpZCwgJmF0dHR5cG1v ZCwgJmF0dGNvbGwpOworCQlyZWZ2YXIgPSBtYWtlVmFyKHJlZnJ0aSwgcmVmYXR0biwgYXR0dHlw aWQsIGF0dHR5cG1vZCwgYXR0Y29sbCwgMCk7CisKKwkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKE9Q RVJPSUQsIE9iamVjdElkR2V0RGF0dW0oZXFvcCkpOworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo dHVwKSkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGVyYXRvciAl dSIsIGVxb3ApOworCQlvcGZvcm0gPSAoRm9ybV9wZ19vcGVyYXRvcikgR0VUU1RSVUNUKHR1cCk7 CisJCS8qIEFuIGVxdWFsaXR5IG9wZXJhdG9yIGlzIGEgYmluYXJ5IG9wZXJhdG9yIHJldHVybmlu ZyBib29sZWFuIHJlc3VsdC4gKi8KKwkJQXNzZXJ0KG9wZm9ybS0+b3Bya2luZCA9PSAnYicKKwkJ CSAgICYmIFJlZ1Byb2NlZHVyZUlzVmFsaWQob3Bmb3JtLT5vcHJjb2RlKQorCQkJICAgJiYgb3Bm b3JtLT5vcHJyZXN1bHQgPT0gQk9PTE9JRAorCQkJICAgJiYgIWdldF9mdW5jX3JldHNldChvcGZv cm0tPm9wcmNvZGUpKTsKIAogCQkvKgotCQkgKiBUT0RPOiBBc3N1bWVzIHR5cGVzIHRoZSBzYW1l IG9uIGJvdGggc2lkZXM7IG5vIGNvbGxhdGlvbnMgeWV0LiBTb21lCi0JCSAqIG9mIHRoaXMgY291 bGQgcHJvYmFibHkgYmUgc2hhcmVkIHdpdGggZm9yZWlnbiBrZXkgdHJpZ2dlcnMuCisJCSAqIFBy ZXBhcmUgb3BlcmFuZHMgYW5kIGNhc3QgdGhlbSB0byB0aGUgdHlwZXMgcmVxdWlyZWQgYnkgdGhl CisJCSAqIGVxdWFsaXR5IG9wZXJhdG9yLiBTaW1pbGFyIHRvIFBLL0ZLIHFhdWxzLCByZWZlcmVu Y2VkIHZlcnRleCBrZXkgaXMKKwkJICogdXNlZCBhcyBsZWZ0IG9wZXJhbmQgYW5kIHJlZmVyZW5j aW5nIGVkZ2Uga2V5IGlzIHVzZWQgYXMgcmlnaHQKKwkJICogb3BlcmFuZC4KIAkJICovCi0JCWF0 dHR5cGlkID0gZ2V0X2F0dHR5cGUocGdlZm9ybS0+cGdlcmVsaWQsIGtleWF0dG4pOwotCQl0eXBl bnRyeSA9IGxvb2t1cF90eXBlX2NhY2hlKGF0dHR5cGlkLCBUWVBFQ0FDSEVfRVFfT1BSKTsKLQot CQlvcCA9IG1ha2VOb2RlKE9wRXhwcik7Ci0JCW9wLT5sb2NhdGlvbiA9IC0xOwotCQlvcC0+b3Bu byA9IHR5cGVudHJ5LT5lcV9vcHI7Ci0JCW9wLT5vcHJlc3VsdHR5cGUgPSBCT09MT0lEOwotCQlv cC0+YXJncyA9IGxpc3RfbWFrZTIobWFrZVZhcihlZGdlcnRpLCBrZXlhdHRuLCBhdHR0eXBpZCwg LTEsIDAsIDApLAotCQkJCQkJCSAgbWFrZVZhcihyZWZydGksIHJlZmF0dG4sIGF0dHR5cGlkLCAt MSwgMCwgMCkpOwotCQlxdWFscyA9IGxhcHBlbmQocXVhbHMsIG9wKTsKKwkJYXJncyA9IGxpc3Rf bWFrZTIocmVmdmFyLCBrZXl2YXIpOworCQlhY3R1YWxfYXJnX3R5cGVzWzBdID0gZXhwclR5cGUo KE5vZGUgKikgcmVmdmFyKTsKKwkJYWN0dWFsX2FyZ190eXBlc1sxXSA9IGV4cHJUeXBlKChOb2Rl ICopIGtleXZhcik7CisJCWRlY2xhcmVkX2FyZ190eXBlc1swXSA9IG9wZm9ybS0+b3BybGVmdDsK KwkJZGVjbGFyZWRfYXJnX3R5cGVzWzFdID0gb3Bmb3JtLT5vcHJyaWdodDsKKwkJbWFrZV9mbl9h cmd1bWVudHMocHN0YXRlLCBhcmdzLCBhY3R1YWxfYXJnX3R5cGVzLCBkZWNsYXJlZF9hcmdfdHlw ZXMpOworCisJCWxpbmtxdWFsID0gbWFrZU5vZGUoT3BFeHByKTsKKwkJbGlua3F1YWwtPm9wbm8g PSBvcGZvcm0tPm9pZDsKKwkJbGlua3F1YWwtPm9wZnVuY2lkID0gb3Bmb3JtLT5vcHJjb2RlOwor CQlsaW5rcXVhbC0+b3ByZXN1bHR0eXBlID0gb3Bmb3JtLT5vcHJyZXN1bHQ7CisJCWxpbmtxdWFs LT5vcHJldHNldCA9IGZhbHNlOworCQkvKiBvcGNvbGxpZCBhbmQgaW5wdXRjb2xsaWQgd2lsbCBi ZSBzZXQgYnkgcGFyc2VfY29sbGF0ZS5jICovCisJCWxpbmtxdWFsLT5hcmdzID0gYXJnczsKKwkJ bGlua3F1YWwtPmxvY2F0aW9uID0gLTE7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCXF1 YWxzID0gbGFwcGVuZChxdWFscywgbGlua3F1YWwpOwogCX0KIAorCWFzc2lnbl9leHByX2NvbGxh dGlvbnMocHN0YXRlLCAoTm9kZSAqKSBxdWFscyk7CisKIAlyZXR1cm4gcXVhbHM7CiB9CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAppbmRleCAyYmMyMDY2YjZj MS4uZmVhMDZjMDk2M2UgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdy YXBoX2VsZW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVt ZW50LmgKQEAgLTYyLDYgKzYyLDExIEBAIENBVEFMT0cocGdfcHJvcGdyYXBoX2VsZW1lbnQsODI5 OSxQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCkKIAkgKi8KIAlpbnQxNgkJcGdlc3JjcmVmWzFd OwogCisJLyoKKwkgKiBmb3IgZWRnZXM6IE9pZHMgb2YgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyBm b3IgY29tcGFyaW5nIHNvdXJjZSBrZXlzCisJICovCisJT2lkCQkJcGdlc3JjZXFvcFsxXTsKKwog CS8qCiAJICogZm9yIGVkZ2VzOiBkZXN0aW5hdGlvbiB2ZXJ0ZXgga2V5IChjb2x1bW4gbnVtYmVy cyBpbiBwZ2VyZWxpZCByZWxhdGlvbikKIAkgKi8KQEAgLTcyLDYgKzc3LDEyIEBAIENBVEFMT0co cGdfcHJvcGdyYXBoX2VsZW1lbnQsODI5OSxQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCkKIAkg KiBpbiByZWxhdGlvbiByZWFjaGVkIHZpYSBwZ2VkZXN0dmVydGV4aWQpCiAJICovCiAJaW50MTYJ CXBnZWRlc3RyZWZbMV07CisKKwkvKgorCSAqIGZvciBlZGdlczogT2lkcyBvZiB0aGUgZXF1YWxp dHkgb3BlcmF0b3JzIGZvciBjb21wYXJpbmcgZGVzdGluYXRpb24KKwkgKiBrZXlzCisJICovCisJ T2lkCQkJcGdlZGVzdGVxb3BbMV07CiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2Vs ZW1lbnQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3By b3BlcnR5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oCmlu ZGV4IGI4OTIxYWNlMzBjLi4yNDBiMzRmMDM5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb3BncmFwaF9wcm9wZXJ0eS5oCkBAIC0zNiw2ICszNiwxMiBAQCBDQVRBTE9HKHBnX3Byb3Bn cmFwaF9wcm9wZXJ0eSw4MzA2LFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCkKIAogCS8qIGRh dGEgdHlwZSBvZiB0aGUgcHJvcGVydHkgKi8KIAlPaWQJCQlwZ3B0eXBpZCBCS0lfTE9PS1VQX09Q VChwZ190eXBlKTsKKworCS8qIHR5cGVtb2Qgb2YgdGhlIHByb3BlcnR5ICovCisJaW50MzIJCXBn cHR5cG1vZDsKKworCS8qIGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHkgKi8KKwlPaWQJCQlwZ3Bj b2xsYXRpb24gQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKIH0gRm9ybURhdGFfcGdfcHJv cGdyYXBoX3Byb3BlcnR5OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CmluZGV4IGJiOTU4NGJjOTJkLi40MmEzYWRkZDhiMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAg LTIxNzYsNiArMjE3Niw4IEBAIHR5cGVkZWYgc3RydWN0IEdyYXBoUHJvcGVydHlSZWYKIAljb25z dCBjaGFyICplbHZhcm5hbWU7CiAJT2lkCQkJcHJvcGlkOwogCU9pZAkJCXR5cGVJZDsKKwlpbnQz MgkJdHlwbW9kOworCU9pZAkJCWNvbGxhdGlvbjsKIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gR3Jh cGhQcm9wZXJ0eVJlZjsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfcHJvcGVydHlfZ3JhcGgub3V0CmluZGV4IDcwYzRhZmRhNTJjLi5kMzVjMDJiNDYyYyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBo Lm91dApAQCAtMTg3LDYgKzE4Nyw5NCBAQCBHUkFOVCBTRUxFQ1QgT04gUFJPUEVSVFkgR1JBUEgg ZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKIEdSQU5UIFVQREFURSBPTiBQUk9QRVJUWSBHUkFQ SCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAogRVJST1I6ICBpbnZhbGlkIHBy aXZpbGVnZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkgZ3JhcGgKIFJFU0VUIFJPTEU7CistLSBj b2xsYXRpb24KK0NSRUFURSBUQUJMRSB0YzEgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxF IHRjMiAoYSBpbnQsIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgdGMzIChhIGludCwgYiB0ZXh0IENP TExBVEUgIkMiKTsKK0NSRUFURSBUQUJMRSBlYzEgKGVrMSBpbnQsIGVrMiBpbnQsIGViIHRleHQp OworQ1JFQVRFIFRBQkxFIGVjMiAoZWsxIGludCwgZWsyIGludCwgZWIgdGV4dCBDT0xMQVRFICJQ T1NJWCIpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGdjMQorICAgIFZFUlRFWCBUQUJMRVMgKHRj MSBLRVkgKGEpLCB0YzIgS0VZIChhKSwgdGMzIEtFWSAoYSkpOyAtLSBmYWlsCitFUlJPUjogIHBy b3BlcnR5ICJiIiBjb2xsYXRpb24gbWlzbWF0Y2g6IGRlZmF1bHQgdnMuIEMKK0RFVEFJTDogIElu IGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFtZSBoYXMgdG8gaGF2 ZSB0aGUgc2FtZSBjb2xsYXRpb24gaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQUk9QRVJUWSBHUkFQ SCBnYzEKKyAgICBWRVJURVggVEFCTEVTICh0YzEgS0VZIChhKSwgdGMyIEtFWSAoYSkpCisgICAg RURHRSBUQUJMRVMgKAorICAgICAgICBlYzEgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNP VVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElP TiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVr MikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAg ICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpKTsgLS0gZmFp bAorRVJST1I6ICBwcm9wZXJ0eSAiZWIiIGNvbGxhdGlvbiBtaXNtYXRjaDogZGVmYXVsdCB2cy4g UE9TSVgKK0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNh bWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24gaW4gZWFjaCBsYWJlbC4KK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICh0YzEgS0VZIChhKSBE RUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEpLCB0YzMgS0VZIChiKSkKKyAgICBFREdFIFRBQkxF UyAoCisgICAgICAgIGVjMiBLRVkgKGVrMSwgZWIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChl azEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlYikg UkVGRVJFTkNFUyB0YzMgKGIpKTsgLS0gZmFpbAorRVJST1I6ICBjb2xsYXRpb24gbWlzbWF0Y2gg aW4gREVTVElOQVRJT04ga2V5IG9mIGVkZ2UgImVjMiI6IFBPU0lYIHZzLiBDCitMSU5FIDQ6ICAg ICAgICAgZWMyIEtFWSAoZWsxLCBlYikKKyAgICAgICAgICAgICAgICBeCitDUkVBVEUgUFJPUEVS VFkgR1JBUEggZ2MxCisgICAgVkVSVEVYIFRBQkxFUyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEp KQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAg ICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVT VElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKSk7CitBTFRFUiBQUk9QRVJUWSBH UkFQSCBnYzEgQUREIFZFUlRFWCBUQUJMRVMgKHRjMyBLRVkgKGEpKTsgLS0gZmFpbAorRVJST1I6 ICBwcm9wZXJ0eSAiYiIgY29sbGF0aW9uIG1pc21hdGNoOiBkZWZhdWx0IHZzLiBDCitERVRBSUw6 ICBJbiBhIHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRv IGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uIGluIGVhY2ggbGFiZWwuCitBTFRFUiBQUk9QRVJUWSBH UkFQSCBnYzEgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsy KQorICAgICAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisg ICAgICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKSk7 IC0tIGZhaWwKK0VSUk9SOiAgcHJvcGVydHkgImViIiBjb2xsYXRpb24gbWlzbWF0Y2g6IGRlZmF1 bHQgdnMuIFBPU0lYCitERVRBSUw6ICBJbiBhIHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9m IHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uIGluIGVhY2ggbGFi ZWwuCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisg ICAgICAgIHRjMyBLRVkgKGEpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoYSwgYiBDT0xMQVRF IHBnX2NhdGFsb2cuREVGQVVMVCBBUyBiKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQURE IEVER0UgVEFCTEVTICgKKyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAgICAgICAg ICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICAg ICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAg ICAgIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoZWsxLCBlazIsIGViIENPTExBVEUgcGdfY2F0 YWxvZy5ERUZBVUxUIEFTIGViKSk7CitEUk9QIFBST1BFUlRZIEdSQVBIIGdjMTsKK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdGMxIEtFWSAo YSkgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIENPTExBVEUgIkMiIEFT IGIpLAorICAgICAgICB0YzIgS0VZIChhKSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEsIChi IENPTExBVEUgIkMiKTo6dmFyY2hhciBBUyBiKSwKKyAgICAgICAgdGMzIEtFWSAoYSkgREVGQVVM VCBMQUJFTCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIEFTIGIpKQorICAgIEVER0UgVEFCTEVT ICgKKyAgICAgICAgZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChl azEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIp IFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVT IChlazEsIGVrMiwgZWIpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAg IFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5B VElPTiBLRVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpCisgICAgICAgICAgICBERUZBVUxUIExB QkVMIFBST1BFUlRJRVMgKGVrMSwgZWsyLCBlYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBB UyBlYikpOworLS0gdHlwZSBpbmNvc2lzdGVuY3kgY2hlY2sKK0NSRUFURSBUQUJMRSB2MSAoYSBp bnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgZShrMSB0ZXh0LCBrMiB0ZXh0 LCBjIHRleHQpOworQ1JFQVRFIFRBQkxFIHYyIChtIHRleHQsIG4gdGV4dCk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggZ3QKKyAgICBWRVJURVggVEFCTEVTICh2MSBLRVkgKGEpLCB2MiBLRVkgKG0p KQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZSBLRVkgKGsxLCBrMikKKyAgICAgICAgU09V UkNFIEtFWSAoazEpIFJFRkVSRU5DRVMgdjEoYSkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChr MikgUkVGRVJFTkNFUyB2MihtKSk7IC0tIGZhaWwKK0VSUk9SOiAgbm8gZXF1YWxpdHkgb3BlcmF0 b3IgZXhpc3RzIGZvciBTT1VSQ0Uga2V5IGNvbXBhcmlzb24gb2YgZWRnZSAiZSIKK0xJTkUgNDog ICAgICAgICBlIEtFWSAoazEsIGsyKQorICAgICAgICAgICAgICAgIF4KK0FMVEVSIFRBQkxFIGUg RFJPUCBDT0xVTU4gazEsIEFERCBDT0xVTU4gazEgYmlnaW50IHByaW1hcnkga2V5OworQ1JFQVRF IFBST1BFUlRZIEdSQVBIIGd0CisgICAgVkVSVEVYIFRBQkxFUyAodjEgS0VZIChhKSwgdjIgS0VZ IChtKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUgS0VZIChrMSwgazIpCisgICAgICAg IFNPVVJDRSBLRVkgKGsxKSBSRUZFUkVOQ0VTIHYxKGEpCisgICAgICAgIERFU1RJTkFUSU9OIEtF WSAoazIpIFJFRkVSRU5DRVMgdjIobSkpOwogLS0gaW5mb3JtYXRpb24gc2NoZW1hCiBTRUxFQ1Qg KiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkgcHJvcGVy dHlfZ3JhcGhfbmFtZTsKICBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3Jh cGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSAKQEAgLTE5Niw3ICsyODQsOSBAQCBT RUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtZTsKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUKLSg1IHJvd3MpCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMQorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndAorKDcgcm93cykK IAogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JE RVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKICBwcm9wZXJ0 eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlf Z3JhcGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQgfCB0 YWJsZV9jYXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFtZSB8 IGVsZW1lbnRfdGFibGVfZGVmaW5pdGlvbiAKQEAgLTIxNiw3ICszMDYsMTUgQEAgU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkgcHJvcGVy dHlfZ3JhcGhfbmFtZSwKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAgICAg fCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgdDExICAgICAgICB8IAogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAg ICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MTIgICAgICAgIHwgCiAgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAg fCB0MTMgICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxMyAgICAgICAgfCAKLSgxNSByb3dz KQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnYzEgICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IEVER0UgICAgICAg ICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBl YzEgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwg RURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGVjMiAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMSAgICAgICAg ICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgdGMxICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwg dGMyICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0YzIgICAgICAgIHwgCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAg ICAgICAgICAgfCB0YzMgICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHRjMyAgICAgICAgfCAK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg Z3QgICAgICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBFREdFICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZSAg ICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjEgICAgICAgICAgICAgICAgICB8IFZF UlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCB2MSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MiAgICAgICAgICAg ICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IHYyICAgICAgICAgfCAKKygyMyByb3dzKQogCiBTRUxFQ1QgKiBG Uk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVS IEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIG9yZGluYWxfcG9z aXRpb247CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVt YSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2FsaWFzIHwgY29sdW1u X25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIApAQCAtMjQwLDcgKzMzOCwxOCBAQCBTRUxFQ1QgKiBG Uk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVS IEJZIHByb3BlcnR5XwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDExICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEy ICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAg ICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICAgICB8IGMgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgMQotKDE5IHJvd3MpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzEgICAgICAgICAg ICAgICAgIHwgZWsxICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCBlYzEgICAgICAgICAgICAgICAgIHwgZWsyICAgICAgICAgfCAgICAgICAgICAgICAgICAy CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWsxICAgICAgICAg fCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAg ICAgIHwgZWsyICAgICAgICAgfCAgICAgICAgICAgICAgICAyCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAg fCB0YzEgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdj MSAgICAgICAgICAgICAgICAgfCB0YzIgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMgICAgICAgICAgICAgICAg IHwgYSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBl ICAgICAgICAgICAgICAgICAgIHwgazEgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAg ICAgICAgICAgICAgICAgfCBlICAgICAgICAgICAgICAgICAgIHwgazIgICAgICAgICAgfCAgICAg ICAgICAgICAgICAyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwg YSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MiAg ICAgICAgICAgICAgICAgIHwgbSAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisoMzAgcm93 cykKIAogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWRnZV90YWJsZV9jb21w b25lbnRzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVkZ2VfdGFibGVfYWxpYXMsIGVk Z2VfZW5kIERFU0MsIG9yZGluYWxfcG9zaXRpb247CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8 ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlZGdl X3RhYmxlX2FsaWFzIHwgdmVydGV4X3RhYmxlX2FsaWFzIHwgIGVkZ2VfZW5kICAgfCBlZGdlX3Rh YmxlX2NvbHVtbl9uYW1lIHwgdmVydGV4X3RhYmxlX2NvbHVtbl9uYW1lIHwgb3JkaW5hbF9wb3Np dGlvbiAKQEAgLTI1Nyw3ICszNjYsMTMgQEAgU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hl bWEucGdfZWRnZV90YWJsZV9jb21wb25lbnRzIE9SREVSIEJZIHByb3BlcnR5X2dyYXAKICByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgfCBE RVNUSU5BVElPTiB8IHQgICAgICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAyCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAg ICAgICAgIHwgdDExICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAgfCBkICAgICAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQog IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAg ICB8IERFU1RJTkFUSU9OIHwgZSAgICAgICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKLSgxMiByb3dzKQorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAg ICAgIHwgZWMxICAgICAgICAgICAgICB8IHRjMSAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAg IHwgZWsxICAgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgfCB0 YzIgICAgICAgICAgICAgICAgfCBERVNUSU5BVElPTiB8IGVrMiAgICAgICAgICAgICAgICAgICAg fCBhICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAg ICAgICAgICAgfCBlYzIgICAgICAgICAgICAgIHwgdGMxICAgICAgICAgICAgICAgIHwgU09VUkNF ICAgICAgfCBlazEgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMyICAgICAgICAgICAg ICB8IHRjMiAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgZWsyICAgICAgICAgICAgICAg ICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAg ICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgfCBT T1VSQ0UgICAgICB8IGsxICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAgICAgICAg ICAgICAgIHwgdjIgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBrMiAgICAgICAgICAg ICAgICAgICAgIHwgbSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQor KDE4IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRf dGFibGVfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVf YWxpYXMsIGxhYmVsX25hbWU7CiAgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5 X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2Fs aWFzIHwgbGFiZWxfbmFtZSAKQEAgLTI4MCwxMSArMzk1LDE5IEBAIFNFTEVDVCAqIEZST00gaW5m b3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5 X2dyYXBoCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgIHwgdDExCiAg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1 ICAgICAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAgICAgIHwgdDEyCiAgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAg ICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgdDEzCi0oMTggcm93cykKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAg ICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgICAgfCBlYzEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAg ICB8IGVjMiAgICAgICAgICAgICAgICAgfCBlYzIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMSAg ICAgICAgICAgICAgICAgfCB0YzEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMiAgICAgICAgICAg ICAgICAgfCB0YzIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IHRjMyAgICAgICAgICAgICAgICAgfCB0 YzMKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZ3QgICAgICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBlCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAg ICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAgICAgIHwgdjEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAg ICB8IHYyICAgICAgICAgICAgICAgICAgfCB2MgorKDI2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00g aW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfcHJvcGVydGllcyBPUkRFUiBCWSBw cm9wZXJ0eV9ncmFwaF9uYW1lLCBlbGVtZW50X3RhYmxlX2FsaWFzLCBwcm9wZXJ0eV9uYW1lOwot IHByb3BlcnR5X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBw cm9wZXJ0eV9ncmFwaF9uYW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUg fCBwcm9wZXJ0eV9leHByZXNzaW9uIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHByb3BlcnR5 X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9n cmFwaF9uYW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUgfCAgICAgICAg IHByb3BlcnR5X2V4cHJlc3Npb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAg fCBhICAgICAgICAgICAgIHwgYQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAg ICAgICB8IGkgICAgICAgICAgICAgfCBpCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAg ICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKQEAgLTMyMCw3ICs0NDMsMjYgQEAgU0VMRUNU ICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzIE9S REVSIEJZIHByb3BlcnR5X2cKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAg ICAgfCBjICAgICAgICAgICAgIHwgYwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAg ICAgICAgICB8IGQgICAgICAgICAgICAgfCBkCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAg ICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICB8IGUKLSgzNSByb3dzKQorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAg ICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IGViICAgICAgICAgICAgfCBlYgorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAg ICAgICAgICAgICAgIHwgZWMxICAgICAgICAgICAgICAgICB8IGVrMSAgICAgICAgICAgfCBlazEK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg Z2MxICAgICAgICAgICAgICAgICB8IGVjMSAgICAgICAgICAgICAgICAgfCBlazIgICAgICAgICAg IHwgZWsyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWIgICAg ICAgICAgICB8IChlYiBDT0xMQVRFICJkZWZhdWx0IikKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVj MiAgICAgICAgICAgICAgICAgfCBlazEgICAgICAgICAgIHwgZWsxCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCBlYzIgICAgICAgICAgICAgICAgIHwgZWsyICAgICAgICAgICB8IGVrMgorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAg ICAgICAgICAgIHwgdGMxICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAg ICAgICAgICAgICAgICAgfCB0YzEgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8ICgo Yik6OmNoYXJhY3RlciB2YXJ5aW5nIENPTExBVEUgIkMiKQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwg dGMyICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAg ICAgfCB0YzIgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8ICgoYik6OmNoYXJhY3Rl ciB2YXJ5aW5nIENPTExBVEUgIkMiKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMzICAgICAgICAg ICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0YzMgICAg ICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IChiKTo6Y2hhcmFjdGVyIHZhcnlpbmcKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3Qg ICAgICAgICAgICAgICAgICB8IGUgICAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwg YworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICAgICAgICB8IGsxICAgICAgICAg ICAgfCBrMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICAgICAgICB8IGsyICAg ICAgICAgICAgfCBrMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjEgICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgICAgICAg ICAgIHwgYiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYyICAgICAgICAg ICAgICAgICAgfCBtICAgICAgICAgICAgIHwgbQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgdjIgICAg ICAgICAgICAgICAgICB8IG4gICAgICAgICAgICAgfCBuCisoNTQgcm93cykKIAogU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxfcHJvcGVydGllcyBPUkRFUiBCWSBwcm9w ZXJ0eV9ncmFwaF9uYW1lLCBsYWJlbF9uYW1lLCBwcm9wZXJ0eV9uYW1lOwogIHByb3BlcnR5X2dy YXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFw aF9uYW1lIHwgbGFiZWxfbmFtZSB8IHByb3BlcnR5X25hbWUgCkBAIC0zNjcsNyArNTA5LDI2IEBA IFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JE RVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAg IHwgYwogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICB8IGQKICByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAg ICAgICB8IHQxMyAgICAgICAgfCBlCi0oNDIgcm93cykKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGVj MSAgICAgICAgfCBlYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICB8IGVrMQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEg ICAgICAgICAgICAgICAgIHwgZWMxICAgICAgICB8IGVrMgorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwg ZWMyICAgICAgICB8IGViCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgIHwgZWsxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdj MSAgICAgICAgICAgICAgICAgfCBlYzIgICAgICAgIHwgZWsyCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAg fCB0YzEgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMxICAgICAgICB8IGIKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2Mx ICAgICAgICAgICAgICAgICB8IHRjMiAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCB0 YzIgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMzICAgICAgICB8IGEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAg ICAgICAgICAgICAgICB8IHRjMyAgICAgICAgfCBiCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBlICAg ICAgICAgIHwgYworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICB8IGsxCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAg ICAgICAgICAgICAgfCBlICAgICAgICAgIHwgazIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYxICAg ICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCB2MSAgICAgICAgIHwgYgorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAg ICAgICAgICAgIHwgdjIgICAgICAgICB8IG0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYyICAgICAg ICAgfCBuCisoNjEgcm93cykKIAogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdf bGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGxhYmVsX25hbWU7CiAgcHJvcGVy dHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5 X2dyYXBoX25hbWUgfCBsYWJlbF9uYW1lIApAQCAtMzkwLDM5ICs1NTEsNTkgQEAgU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBo X25hbWUsIGxhYmVsX24KICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMQogIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAg ICAgIHwgdDEyCiAgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMKLSgxOCByb3dzKQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAg ICAgICAgICAgIHwgZWMxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYzIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAg ICAgICB8IHRjMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgdGMyCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAg fCB0YzMKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IGUKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8IHYxCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0 ICAgICAgICAgICAgICAgICAgfCB2MgorKDI2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gaW5mb3Jt YXRpb25fc2NoZW1hLnBnX3Byb3BlcnR5X2RhdGFfdHlwZXMgT1JERVIgQlkgcHJvcGVydHlfZ3Jh cGhfbmFtZSwgcHJvcGVydHlfbmFtZTsKLSBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJv cGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3BlcnR5X25h bWUgfCBkYXRhX3R5cGUgfCBjaGFyYWN0ZXJfbWF4aW11bV9sZW5ndGggfCBjaGFyYWN0ZXJfb2N0 ZXRfbGVuZ3RoIHwgY2hhcmFjdGVyX3NldF9jYXRhbG9nIHwgY2hhcmFjdGVyX3NldF9zY2hlbWEg fCBjaGFyYWN0ZXJfc2V0X25hbWUgfCBjb2xsYXRpb25fY2F0YWxvZyB8IGNvbGxhdGlvbl9zY2hl bWEgfCBjb2xsYXRpb25fbmFtZSB8IG51bWVyaWNfcHJlY2lzaW9uIHwgbnVtZXJpY19wcmVjaXNp b25fcmFkaXggfCBudW1lcmljX3NjYWxlIHwgZGF0ZXRpbWVfcHJlY2lzaW9uIHwgaW50ZXJ2YWxf dHlwZSB8IGludGVydmFsX3ByZWNpc2lvbiB8IHVzZXJfZGVmaW5lZF90eXBlX2NhdGFsb2cgfCB1 c2VyX2RlZmluZWRfdHlwZV9zY2hlbWEgfCB1c2VyX2RlZmluZWRfdHlwZV9uYW1lIHwgc2NvcGVf Y2F0YWxvZyB8IHNjb3BlX3NjaGVtYSB8IHNjb3BlX25hbWUgfCBtYXhpbXVtX2NhcmRpbmFsaXR5 IHwgZHRkX2lkZW50aWZpZXIgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCi0gcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGIKLSByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGkg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgaQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgaiAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCi0gcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCBrICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50 NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGsKLSByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQg ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgdAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB4Ci0gcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHkKLSByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHog ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgegotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCi0gcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAg ICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGIKLSByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHgg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgeAotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICB8IHRleHQg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB5Ci0gcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAg ICAgICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHoKLSByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGEg ICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgYQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVn ZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBpCi0gcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCBpX2ogICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50 NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGlfagotIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwg a2sgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgfCBrawotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHRl eHQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFs b2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0Ci0g cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwg aW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHgKLSByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IHl5ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAg ICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgIHwgeXkKLSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHp6ICAgICAgICAgICAgfCB0 ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRh bG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgenoK LSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzUgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYQotIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAg IHwgYiAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBiCi0gcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICAgIHwg aW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMK LSByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzUgICAgICAgICAgICAgICAgICB8IGQgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZAotIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAg IHwgZSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBlCi0oMjcgcm93cykKKyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwg ICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByb3Bl cnR5X25hbWUgfCAgICAgZGF0YV90eXBlICAgICB8IGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCB8 IGNoYXJhY3Rlcl9vY3RldF9sZW5ndGggfCBjaGFyYWN0ZXJfc2V0X2NhdGFsb2cgfCBjaGFyYWN0 ZXJfc2V0X3NjaGVtYSB8IGNoYXJhY3Rlcl9zZXRfbmFtZSB8IGNvbGxhdGlvbl9jYXRhbG9nIHwg Y29sbGF0aW9uX3NjaGVtYSB8IGNvbGxhdGlvbl9uYW1lIHwgbnVtZXJpY19wcmVjaXNpb24gfCBu dW1lcmljX3ByZWNpc2lvbl9yYWRpeCB8IG51bWVyaWNfc2NhbGUgfCBkYXRldGltZV9wcmVjaXNp b24gfCBpbnRlcnZhbF90eXBlIHwgaW50ZXJ2YWxfcHJlY2lzaW9uIHwgdXNlcl9kZWZpbmVkX3R5 cGVfY2F0YWxvZyB8IHVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYSB8IHVzZXJfZGVmaW5lZF90eXBl X25hbWUgfCBzY29wZV9jYXRhbG9nIHwgc2NvcGVfc2NoZW1hIHwgc2NvcGVfbmFtZSB8IG1heGlt dW1fY2FyZGluYWxpdHkgfCBkdGRfaWRlbnRpZmllciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAg ICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICB8IGludGVn ZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdf Y2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8 IGkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzIgICAgICAgICAgICAgICAgICB8IGogICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAg ICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBqCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAg ICAgICAgICAgICAgfCBrICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgaworIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgdCAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHggICAgICAg ICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgIHwgdGV4 dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwgeQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHRleHQgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAg ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHoKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAg ICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAg ICAgfCBiICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9u ICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgeCAgICAg ICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgfCB0 ZXh0ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8 IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9n ICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgegorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAg ICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAg ICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IGkgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Np b24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBpX2og ICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8 ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHwgaV9qCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBrayAgICAgICAgICAg IHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAg ICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHwga2sKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2Nh dGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB0 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAg ICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAg ICAgICAgICAgIHwgeXkgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwg dGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAg fCB6eiAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAg ICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Np b24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgIHwgenoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGEgICAgICAg ICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwgaW50 ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgYyAgICAgICAgICAgICB8IGludGVnZXIgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAg ICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGMKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAg ICAgICAgICAgICAgICB8IGQgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAg ICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBkCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAg ICAgfCBlICAgICAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9u ICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnYzEgICAgICAgICAgICAgICAgIHwgYSAgICAg ICAgICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAgfCBj aGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgcGdfY2F0YWxvZyAg ICAgICB8IEMgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8 IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHZhcmNoYXIgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgfCBiCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGdjMSAgICAgICAgICAgICAgICAgfCBlYiAgICAgICAgICAgIHwgdGV4dCAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9n ICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgZWIKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2Mx ICAgICAgICAgICAgICAgICB8IGVrMSAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlazEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ2MxICAgICAgICAg ICAgICAgICB8IGVrMiAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGlu dDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlazIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZ3QgICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAg ICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAg ICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgYyAgICAgICAgICAgICB8IHRleHQg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdf Y2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8 IGMKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZ3QgICAgICAgICAgICAgICAgICB8IGsxICAgICAgICAgICAgfCBiaWdpbnQgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAg ICAgICAgICAgICB8IGludDggICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBrMQorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAg ICAgICAgICAgICAgIHwgazIgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg cmVncmVzc2lvbiAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAg IHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGsyCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGd0ICAgICAgICAgICAgICAg ICAgfCBtICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9u ICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHwgbQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBndCAgICAgICAgICAgICAgICAgIHwgbiAgICAg ICAgICAgICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgfCAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAg ICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICB8IG4KKygzOSByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5wZ19wcm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzIFdIRVJFIGdyYW50ZWUgTElLRSAn cmVncmVzcyUnIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWU7CiAgICAgICAgZ3JhbnRvciAg ICAgICB8ICAgICAgIGdyYW50ZWUgICAgICAgfCBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAg cHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IHByaXZpbGVn ZV90eXBlIHwgaXNfZ3JhbnRhYmxlIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ncmFwaF90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3Rh YmxlLm91dAppbmRleCAzNzk2Mjk3Y2IwNy4uMGE1NzRiMTBmNGIgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC01MTcsNyArNTE3LDggQEAgU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihhIGlzIHZsMSkgQ09MVU1OUyAo YS52bmFtZSBBUyBzZWwKICB2MTMgIHwgdjIzICAgICB8ICAgICAgMzAgfCAgICAgICAxMDMwCiAo MiByb3dzKQogCi0tLSBhZGQgYW4gZWRnZSB3aXRoIHNhbWUgdmVydGV4IGFzIHNvdXJjZSBhbmQg ZGVzdGluYXRpb24gdG8gdGVzdCBsb29wcworLS0gYWRkIGFuIGVkZ2Ugd2l0aCBzYW1lIHZlcnRl eCBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHRvIHRlc3QgbG9vcHMuIEFsc28KKy0tIHVzZSB0 aGlzIGZvciBjb2xsYXRpb24gdGVzdHMKIENSRUFURSBUQUJMRSBlM18zIChzcmNfaWQgaW50LAog ICAgICAgICAgICAgICAgICAgICBkZXN0X2lkIGludCwKICAgICAgICAgICAgICAgICAgICAgZW5h bWUgdmFyY2hhcigxMCksCkBAIC01MzAsOCArNTMxLDM1IEBAIEFMVEVSIFBST1BFUlRZIEdSQVBI IGcxIEFERCBFREdFIFRBQkxFUyAoCiAgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKGVuYW1l IEFTIGVsbmFtZSkKICk7CiBJTlNFUlQgSU5UTyBlM18zIFZBTFVFUyAoMjAwMywgMjAwMywgJ2Uz MzEnLCAxMDAxMCk7CitJTlNFUlQgSU5UTyBlM18zIFZBTFVFUyAoMjAwMywgMjAwMywgJ0UzMzEn LCAxMDAxMCk7CiAtLSBjeWNsaWMgcGF0dGVybiB3aXRoIGVkZ2UgcGF0dGVybnMgd2l0aCBzYW1l IHZhcmlhYmxlIG5hbWUKLVNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1b Yl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9v cF9uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4o YSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3BfbmFt ZSkpIE9SREVSIEJZIGxvb3BfbmFtZSBBU0M7Cisgc2VsZiB8IGxvb3BfbmFtZSAKKy0tLS0tLSst LS0tLS0tLS0tLQorIHYzMyAgfCBlMzMxCisgdjMzICB8IEUzMzEKKygyIHJvd3MpCisKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xV TU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9v cF9uYW1lIENPTExBVEUgIkMiIEFTQzsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0t LS0tLS0tCisgdjMzICB8IEUzMzEKKyB2MzMgIHwgZTMzMQorKDIgcm93cykKKworU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLVtiIElTIGVsMiBXSEVSRSBiLmVuYW1lID4g J0UzMzEnIENPTExBVEUgIkMiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2Vs ZiwgYi5lbmFtZSBBUyBsb29wX25hbWUpKTsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0t LS0tLS0tLS0tCisgdjMzICB8IGUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoZzEgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZW5hbWUgPiAnRTMz MScgQ09MTEFURSAiQyIgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxvb3Bf bmFtZSkpOworIHNlbGYgfCBsb29wX25hbWUgCistLS0tLS0rLS0tLS0tLS0tLS0KKyB2MzMgIHwg ZTMzMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSkt W2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1lIEFTIGxv b3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIjsKICBzZWxmIHwg bG9vcF9uYW1lIAogLS0tLS0tKy0tLS0tLS0tLS0tCiAgdjMzICB8IGUzMzEKQEAgLTU0MSw0MCAr NTY5LDg5IEBAIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihj KS1bYl0tPihkKSBDT0xVTU5TIChhLnZuYW1lIEFTIGFuCiBFUlJPUjogIEFuIGVkZ2UgY2FuIG5v dCBjb25uZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5Y2xpYyBwYXR0ZXJu LgogLS0gcHJvcGVydHkgZ3JhcGggd2l0aCBzb21lIG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFu ZCBwcm9wZXJ0aWVzIHNhbWUgYXMgdGhlCiAtLSBwcmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBj b21wb25lbnRzIGZyb20gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBncmFwaCBhcmUKLS0tIHVzZWQu CistLSB1c2VkLiBBbHNvIHVzZSB0aGlzIGZvciBjb2xsYXRpb24gdGVzdHMKIGNyZWF0ZSBwcm9w ZXJ0eSBncmFwaCBnMgogdmVydGV4IHRhYmxlcyAoCiAJdjEKLSAgICAgICAgbGFiZWwgbDEgcHJv cGVydGllcyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKyAgICAgICAgbGFiZWwgbDEgcHJv cGVydGllcyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKSwKIAl2MiBrZXkg KGlkMSwgaWQyKQotICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBh cyBlbG5hbWUpLAorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBD T0xMQVRFICJDIiBhcyBlbG5hbWUpLAogCXYzCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMg KCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAo J2cyLicgfHwgdm5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKQogKQogZWRnZSB0YWJsZXMgKAog CWUxXzIga2V5IChpZF8xLCBpZF8yXzEsIGlkXzJfMikKIAkJc291cmNlIGtleSAoaWRfMSkgcmVm ZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVy ZW5jZXMgdjIgKGlkMSwgaWQyKQotICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8 fCBlbmFtZSBhcyBlbG5hbWUpLAorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8 fCBlbmFtZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRf MSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNl cyB2MyAoaWQpCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFz IGVsbmFtZSksCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIENP TExBVEUgIkMiIGFzIGVsbmFtZSksCiAgICAgZTJfMyBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8z KQogICAgICAgICBzb3VyY2Uga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQx LCBpZDIpCiAgICAgICAgIGRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQp Ci0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSkK KyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIg YXMgZWxuYW1lKSwKKyAgICBlM18zIEtFWSAoc3JjX2lkLCBkZXN0X2lkKQorICAgICAgICBTT1VS Q0UgS0VZIChzcmNfaWQpIFJFRkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBERVNUSU5BVElPTiBL RVkgKHNyY19pZCkgUkVGRVJFTkNFUyB2MyAoaWQpCisgICAgICAgIExBQkVMIGwxIFBST1BFUlRJ RVMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUgIkMiIGFzIGVsbmFtZSkKICk7Ci1zZWxlY3Qgc24s IGNuLCBkbiBmcm9tIGdyYXBoX3RhYmxlIChnMiBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFd LT4oZGVzdCA6IGwxKSBjb2x1bW5zIChzcmMuZWxuYW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBj biwgZGVzdC5lbG5hbWUgYXMgZG4pKTsKK3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFi bGUgKGcyIG1hdGNoIChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMg KHNyYy5lbG5hbWUgYXMgc24sIGNvbm4uZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikp IE9SREVSIEJZIDEsIDIsIDM7CiAgICBzbiAgIHwgICBjbiAgICB8ICAgZG4gICAKIC0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLQotIGcyLnYxMiB8IGcyLmUxMjIgfCBnMi52MjEKICBnMi52MTEg fCBnMi5lMTIxIHwgZzIudjIyCi0gZzIudjEzIHwgZzIuZTEyMyB8IGcyLnYyMwogIGcyLnYxMSB8 IGcyLmUxMzEgfCBnMi52MzMKICBnMi52MTEgfCBnMi5lMTMyIHwgZzIudjMxCisgZzIudjEyIHwg ZzIuZTEyMiB8IGcyLnYyMQorIGcyLnYxMyB8IGcyLmUxMjMgfCBnMi52MjMKICBnMi52MjIgfCBn Mi5lMjMxIHwgZzIudjMyCi0oNiByb3dzKQorIGcyLnYzMyB8IGcyLkUzMzEgfCBnMi52MzMKKyBn Mi52MzMgfCBnMi5lMzMxIHwgZzIudjMzCisoOCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUg QVMgc2VsZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IiBBUyBsb29wX25h bWUpKSBPUkRFUiBCWSBsb29wX25hbWUgQVNDOworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0t LS0tKy0tLS0tLS0tLS0tCisgZzIudjMzIHwgZzIuZTMzMQorIGcyLnYzMyB8IGcyLkUzMzEKKygy IHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVS RSBiLmVsbmFtZSA+ICdnMi5FMzMxJ10tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFtZSBB UyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKTsKKyAgc2VsZiAgfCBsb29wX25hbWUgCist LS0tLS0tLSstLS0tLS0tLS0tLQorIGcyLnYzMyB8IGcyLmUzMzEKKygxIHJvdykKKworU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJF IGIuZWxuYW1lID4gJ2cyLkUzMzEnIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1l IEFTIGxvb3BfbmFtZSkpOworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0tLS0tLS0t LS0tCisgZzIudjMzIHwgZzIuZTMzMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS5lbG5hbWUgQVMg c2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9vcF9uYW1lID4gJ2cyLkUzMzEn OworICBzZWxmICB8IGxvb3BfbmFtZSAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tCisgZzIudjMzIHwg ZzIuZTMzMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAo YSktW2IgV0hFUkUgYi5lbG5hbWUgPiAnZzIuZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZh dWx0Il0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBB UyBsb29wX25hbWUpKTsKKyAgc2VsZiAgfCBsb29wX25hbWUgCistLS0tLS0tLSstLS0tLS0tLS0t LQorIGcyLnYzMyB8IGcyLkUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIFdIRVJFIGIuZWxuYW1lID4gJ2cyLmUz MzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCIgQ09MVU1OUyAoYS5lbG5hbWUgQVMgc2Vs ZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSk7CisgIHNlbGYgIHwgbG9vcF9uYW1lIAorLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBnMi52MzMgfCBnMi5FMzMxCisoMSByb3cpCisKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChh LmVsbmFtZSBBUyBzZWxmLCBiLmVsbmFtZSBBUyBsb29wX25hbWUpKSBXSEVSRSBsb29wX25hbWUg PiAnZzIuZTMzMScgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZhdWx0IjsKKyAgc2VsZiAgfCBsb29w X25hbWUgCistLS0tLS0tLSstLS0tLS0tLS0tLQorIGcyLnYzMyB8IGcyLkUzMzEKKygxIHJvdykK IAogQ1JFQVRFIFZJRVcgY3VzdG9tZXJzX3VzIEFTIFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00g R1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNz ID0gJ1VTJyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5u YW1lIEFTIGN1c3RvbWVyX25hbWUpKTsKIFNFTEVDVCBwZ19nZXRfdmlld2RlZignY3VzdG9tZXJz X3VzJzo6cmVnY2xhc3MpOwpAQCAtNjcxLDYgKzc0OCwxNCBAQCBTRUxFQ1QgKgogICAgICAgICAg ICAxIHwgY3VzdG9tZXIxIHwgVVMgICAgICB8IHJlZGFjdGVkMQogKDEgcm93KQogCistLSBncmFw aCB0YWJsZSBpbiBhIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVSRSBj by5jdXN0b21lcl9pZCA9CisgICAgKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBIX1RBQkxF IChteXNob3AyIE1BVENIIChjZyBJUyBjdXN0b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9ICdVUycp LVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGNnLmN1c3RvbWVy X2lkKSkpOworIGN1c3RvbWVyX2lkIHwgICBuYW1lICAgIHwgYWRkcmVzcyAKKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBjdXN0b21lcjEgfCBVUwor KDEgcm93KQorCiAtLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKIFNFTEVDVCBzbmFtZSwgZG5h bWUKICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDNiNDFmYzdiYTA0Li45YWQxNzI3NWYy NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKQEAgLTI3NywzICsyNzcs NCBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3BscHBy b3BpZH0gPT4gcGdfcHJvcGdyYXBoX3Byb3BlcgogTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdy YXBoX2xhYmVsX3Byb3BlcnR5IHtwbHBlbGxhYmVsaWR9ID0+IHBnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfcHJvcGVydHkge3Bn cHBnaWR9ID0+IHBnX2NsYXNzIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhf cHJvcGVydHkge3BncHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBw Z19wcm9wZ3JhcGhfcHJvcGVydHkge3BncGNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbAppbmRl eCA0ZjliNWMwMzQ5Yi4uOWExZmU0ZmM2ZGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbApAQCAtMTQ3LDYgKzE0Nyw4MyBAQCBHUkFOVCBTRUxF Q1QgT04gUFJPUEVSVFkgR1JBUEggZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKIEdSQU5UIFVQ REFURSBPTiBQUk9QRVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFp bAogUkVTRVQgUk9MRTsKIAorLS0gY29sbGF0aW9uCitDUkVBVEUgVEFCTEUgdGMxIChhIGludCwg YiB0ZXh0KTsKK0NSRUFURSBUQUJMRSB0YzIgKGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxF IHRjMyAoYSBpbnQsIGIgdGV4dCBDT0xMQVRFICJDIik7CisKK0NSRUFURSBUQUJMRSBlYzEgKGVr MSBpbnQsIGVrMiBpbnQsIGViIHRleHQpOworQ1JFQVRFIFRBQkxFIGVjMiAoZWsxIGludCwgZWsy IGludCwgZWIgdGV4dCBDT0xMQVRFICJQT1NJWCIpOworCitDUkVBVEUgUFJPUEVSVFkgR1JBUEgg Z2MxCisgICAgVkVSVEVYIFRBQkxFUyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEpLCB0YzMgS0VZ IChhKSk7IC0tIGZhaWwKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnYzEKKyAgICBWRVJURVggVEFC TEVTICh0YzEgS0VZIChhKSwgdGMyIEtFWSAoYSkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAg ICBlYzEgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJF TkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikgUkVGRVJFTkNF UyB0YzIgKGEpLAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJD RSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBL RVkgKGVrMikgUkVGRVJFTkNFUyB0YzIgKGEpKTsgLS0gZmFpbAorQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGdjMQorICAgIFZFUlRFWCBUQUJMRVMgKHRjMSBLRVkgKGEpIERFRkFVTFQgTEFCRUwgUFJP UEVSVElFUyAoYSksIHRjMyBLRVkgKGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMy IEtFWSAoZWsxLCBlYikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVrMSkgUkVGRVJFTkNFUyB0 YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGViKSBSRUZFUkVOQ0VTIHRjMyAo YikpOyAtLSBmYWlsCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ2MxCisgICAgVkVSVEVYIFRBQkxF UyAodGMxIEtFWSAoYSksIHRjMiBLRVkgKGEpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAg ZWMxIEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5D RVMgdGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMg dGMyIChhKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIFZFUlRFWCBUQUJMRVMgKHRj MyBLRVkgKGEpKTsgLS0gZmFpbAorQUxURVIgUFJPUEVSVFkgR1JBUEggZ2MxIEFERCBFREdFIFRB QkxFUyAoCisgICAgICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgICAgICBT T1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMgdGMxIChhKQorICAgICAgICAgICAgICAgIERFU1RJ TkFUSU9OIEtFWSAoZWsyKSBSRUZFUkVOQ0VTIHRjMiAoYSkpOyAtLSBmYWlsCitBTFRFUiBQUk9Q RVJUWSBHUkFQSCBnYzEKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHRjMyBLRVkg KGEpIERFRkFVTFQgTEFCRUwgUFJPUEVSVElFUyAoYSwgYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVG QVVMVCBBUyBiKSk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnYzEgQUREIEVER0UgVEFCTEVTICgK KyAgICAgICAgICAgIGVjMiBLRVkgKGVrMSwgZWsyKQorICAgICAgICAgICAgICAgIFNPVVJDRSBL RVkgKGVrMSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICAgICAgREVTVElOQVRJT04g S0VZIChlazIpIFJFRkVSRU5DRVMgdGMyIChhKQorICAgICAgICAgICAgICAgIERFRkFVTFQgTEFC RUwgUFJPUEVSVElFUyAoZWsxLCBlazIsIGViIENPTExBVEUgcGdfY2F0YWxvZy5ERUZBVUxUIEFT IGViKSk7CitEUk9QIFBST1BFUlRZIEdSQVBIIGdjMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBn YzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdGMxIEtFWSAoYSkgREVGQVVMVCBMQUJF TCBQUk9QRVJUSUVTIChhLCBiOjp2YXJjaGFyIENPTExBVEUgIkMiIEFTIGIpLAorICAgICAgICB0 YzIgS0VZIChhKSBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMgKGEsIChiIENPTExBVEUgIkMiKTo6 dmFyY2hhciBBUyBiKSwKKyAgICAgICAgdGMzIEtFWSAoYSkgREVGQVVMVCBMQUJFTCBQUk9QRVJU SUVTIChhLCBiOjp2YXJjaGFyIEFTIGIpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZWMx IEtFWSAoZWsxLCBlazIpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChlazEpIFJFRkVSRU5DRVMg dGMxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChlazIpIFJFRkVSRU5DRVMgdGMy IChhKQorICAgICAgICAgICAgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVTIChlazEsIGVrMiwgZWIp LAorICAgICAgICBlYzIgS0VZIChlazEsIGVrMikKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGVr MSkgUkVGRVJFTkNFUyB0YzEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGVrMikg UkVGRVJFTkNFUyB0YzIgKGEpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMIFBST1BFUlRJRVMg KGVrMSwgZWsyLCBlYiBDT0xMQVRFIHBnX2NhdGFsb2cuREVGQVVMVCBBUyBlYikpOworCistLSB0 eXBlIGluY29zaXN0ZW5jeSBjaGVjaworQ1JFQVRFIFRBQkxFIHYxIChhIGludCBwcmltYXJ5IGtl eSwgYiB0ZXh0KTsKK0NSRUFURSBUQUJMRSBlKGsxIHRleHQsIGsyIHRleHQsIGMgdGV4dCk7CitD UkVBVEUgVEFCTEUgdjIgKG0gdGV4dCwgbiB0ZXh0KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBn dAorICAgIFZFUlRFWCBUQUJMRVMgKHYxIEtFWSAoYSksIHYyIEtFWSAobSkpCisgICAgRURHRSBU QUJMRVMgKAorICAgICAgICBlIEtFWSAoazEsIGsyKQorICAgICAgICBTT1VSQ0UgS0VZIChrMSkg UkVGRVJFTkNFUyB2MShhKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKGsyKSBSRUZFUkVOQ0VT IHYyKG0pKTsgLS0gZmFpbAorQUxURVIgVEFCTEUgZSBEUk9QIENPTFVNTiBrMSwgQUREIENPTFVN TiBrMSBiaWdpbnQgcHJpbWFyeSBrZXk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3QKKyAgICBW RVJURVggVEFCTEVTICh2MSBLRVkgKGEpLCB2MiBLRVkgKG0pKQorICAgIEVER0UgVEFCTEVTICgK KyAgICAgICAgZSBLRVkgKGsxLCBrMikKKyAgICAgICAgU09VUkNFIEtFWSAoazEpIFJFRkVSRU5D RVMgdjEoYSkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChrMikgUkVGRVJFTkNFUyB2MihtKSk7 CiAKIC0tIGluZm9ybWF0aW9uIHNjaGVtYQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ncmFwaF90YWJsZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5z cWwKaW5kZXggOTA1YmU5ZGYwMWIuLjk3N2JmMjc3NGU1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3Jh cGhfdGFibGUuc3FsCkBAIC0zMjIsNyArMzIyLDggQEAgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJM RSAoZzEgTUFUQ0ggKGEgaXMgdmwxKS0+KGIpLT4oYSBpcyB2bDIpIFdIRVJFIGEudm5hbWUgPD4K IFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIHZsMSktPihiKS0+KGEp IENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBB UyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3Vn aDsKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYSBpcyB2 bDEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9w MSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhy b3VnaDsKIAotLS0gYWRkIGFuIGVkZ2Ugd2l0aCBzYW1lIHZlcnRleCBhcyBzb3VyY2UgYW5kIGRl c3RpbmF0aW9uIHRvIHRlc3QgbG9vcHMKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2ZXJ0ZXgg YXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzLiBBbHNvCistLSB1c2UgdGhp cyBmb3IgY29sbGF0aW9uIHRlc3RzCiBDUkVBVEUgVEFCTEUgZTNfMyAoc3JjX2lkIGludCwKICAg ICAgICAgICAgICAgICAgICAgZGVzdF9pZCBpbnQsCiAgICAgICAgICAgICAgICAgICAgIGVuYW1l IHZhcmNoYXIoMTApLApAQCAtMzM2LDM3ICszMzcsNTMgQEAgQUxURVIgUFJPUEVSVFkgR1JBUEgg ZzEgQUREIEVER0UgVEFCTEVTICgKICk7CiAKIElOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAz LCAyMDAzLCAnZTMzMScsIDEwMDEwKTsKK0lOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAy MDAzLCAnRTMzMScsIDEwMDEwKTsKIC0tIGN5Y2xpYyBwYXR0ZXJuIHdpdGggZWRnZSBwYXR0ZXJu cyB3aXRoIHNhbWUgdmFyaWFibGUgbmFtZQotU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEg TUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5l bmFtZSBBUyBsb29wX25hbWUpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENI IChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUg QVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1lIEFTQzsKK1NFTEVDVCAqIEZST00gR1JB UEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihhKS1bYl0tPihhKSBDT0xVTU5TIChhLnZuYW1l IEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSkgT1JERVIgQlkgbG9vcF9uYW1lIENPTExB VEUgIkMiIEFTQzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYiBJ UyBlbDIgV0hFUkUgYi5lbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIl0tPihhKS1bYl0tPihhKSBD T0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIuZW5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgV0hFUkUg Yi5lbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIiBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIu ZW5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLmVuYW1l IEFTIGxvb3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdFMzMxJyBDT0xMQVRFICJDIjsKIFNF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS1bYl0tPihjKS1bYl0tPihkKSBD T0xVTU5TIChhLnZuYW1lIEFTIGFuYW1lLCBiLmVuYW1lIEFTIGJuYW1lLCBjLnZuYW1lIEFTIGNu YW1lLCBkLnZuYW1lIEFTIGRuYW1lKSk7IC0tZXJyb3IKIAogLS0gcHJvcGVydHkgZ3JhcGggd2l0 aCBzb21lIG9mIHRoZSBlbGVtZW50cywgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzIHNhbWUgYXMgdGhl CiAtLSBwcmV2aW91cyBvbmUuIFRlc3Qgd2hldGhlciBjb21wb25lbnRzIGZyb20gdGhlIHNwZWNp ZmllZCBwcm9wZXJ0eSBncmFwaCBhcmUKLS0tIHVzZWQuCistLSB1c2VkLiBBbHNvIHVzZSB0aGlz IGZvciBjb2xsYXRpb24gdGVzdHMKIGNyZWF0ZSBwcm9wZXJ0eSBncmFwaCBnMgogdmVydGV4IHRh YmxlcyAoCiAJdjEKLSAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUg YXMgZWxuYW1lKSwKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUg Q09MTEFURSAiQyIgYXMgZWxuYW1lKSwKIAl2MiBrZXkgKGlkMSwgaWQyKQotICAgICAgICBsYWJl bCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUpLAorICAgICAgICBsYWJl bCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBDT0xMQVRFICJDIiBhcyBlbG5hbWUpLAog CXYzCi0gICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFt ZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgdm5hbWUgQ09MTEFURSAi QyIgYXMgZWxuYW1lKQogKQogZWRnZSB0YWJsZXMgKAogCWUxXzIga2V5IChpZF8xLCBpZF8yXzEs IGlkXzJfMikKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3Rp bmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQotICAg ICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBhcyBlbG5hbWUpLAorICAg ICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBDT0xMQVRFICJDIiBhcyBl bG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCiAJ CWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAgICAgIGxhYmVs IGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSksCisgICAgICAgIGxhYmVs IGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1lIENPTExBVEUgIkMiIGFzIGVsbmFtZSksCiAg ICAgZTJfMyBrZXkgKGlkXzJfMSwgaWRfMl8yLCBpZF8zKQogICAgICAgICBzb3VyY2Uga2V5IChp ZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCiAgICAgICAgIGRlc3RpbmF0 aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCi0gICAgICAgIGxhYmVsIGwxIHByb3Bl cnRpZXMgKCdnMi4nIHx8IGVuYW1lIGFzIGVsbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVy dGllcyAoJ2cyLicgfHwgZW5hbWUgQ09MTEFURSAiQyIgYXMgZWxuYW1lKSwKKyAgICBlM18zIEtF WSAoc3JjX2lkLCBkZXN0X2lkKQorICAgICAgICBTT1VSQ0UgS0VZIChzcmNfaWQpIFJFRkVSRU5D RVMgdjMgKGlkKQorICAgICAgICBERVNUSU5BVElPTiBLRVkgKHNyY19pZCkgUkVGRVJFTkNFUyB2 MyAoaWQpCisgICAgICAgIExBQkVMIGwxIFBST1BFUlRJRVMgKCdnMi4nIHx8IGVuYW1lIENPTExB VEUgIkMiIGFzIGVsbmFtZSkKICk7Ci1zZWxlY3Qgc24sIGNuLCBkbiBmcm9tIGdyYXBoX3RhYmxl IChnMiBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6IGwxKSBjb2x1bW5zIChz cmMuZWxuYW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVzdC5lbG5hbWUgYXMgZG4pKTsK K3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBsMSkt W2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNvbHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNvbm4u ZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBhcyBkbikpIE9SREVSIEJZIDEsIDIsIDM7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09M VU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQ09MTEFURSBwZ19jYXRhbG9nLiJkZWZh dWx0IiBBUyBsb29wX25hbWUpKSBPUkRFUiBCWSBsb29wX25hbWUgQVNDOworU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiIFdIRVJFIGIuZWxuYW1lID4gJ2cyLkUzMzEn XS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxv b3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+ KGEpLVtiXS0+KGEpIFdIRVJFIGIuZWxuYW1lID4gJ2cyLkUzMzEnIENPTFVNTlMgKGEuZWxuYW1l IEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFT IHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpIFdIRVJFIGxvb3BfbmFtZSA+ICdnMi5FMzMx JzsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcyIE1BVENIIChhKS1bYiBXSEVSRSBiLmVs bmFtZSA+ICdnMi5lMzMxJyBDT0xMQVRFIHBnX2NhdGFsb2cuImRlZmF1bHQiXS0+KGEpLVtiXS0+ KGEpIENPTFVNTlMgKGEuZWxuYW1lIEFTIHNlbGYsIGIuZWxuYW1lIEFTIGxvb3BfbmFtZSkpOwor U0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzIgTUFUQ0ggKGEpLVtiXS0+KGEpLVtiXS0+KGEp IFdIRVJFIGIuZWxuYW1lID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCIg Q09MVU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSk7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMiBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09M VU1OUyAoYS5lbG5hbWUgQVMgc2VsZiwgYi5lbG5hbWUgQVMgbG9vcF9uYW1lKSkgV0hFUkUgbG9v cF9uYW1lID4gJ2cyLmUzMzEnIENPTExBVEUgcGdfY2F0YWxvZy4iZGVmYXVsdCI7CiAKIENSRUFU RSBWSUVXIGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RB QkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycp LVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBj dXN0b21lcl9uYW1lKSk7CiAKQEAgLTQyOCw2ICs0NDUsMTAgQEAgU0VMRUNUICoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGNnLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9t ZXJfbmFtZV9yZWRhY3RlZCkpCiAgICAgV0hFUkUgY28uY3VzdG9tZXJfaWQgPSAxOwogCistLSBn cmFwaCB0YWJsZSBpbiBhIHN1YnF1ZXJ5CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVycyBjbyBXSEVS RSBjby5jdXN0b21lcl9pZCA9CisgICAgKFNFTEVDVCBjdXN0b21lcl9pZCBGUk9NIEdSQVBIX1RB QkxFIChteXNob3AyIE1BVENIIChjZyBJUyBjdXN0b21lcnMgV0hFUkUgY2cuYWRkcmVzcyA9ICdV UycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGNnLmN1c3Rv bWVyX2lkKSkpOworCiAtLSBxdWVyeSB3aXRoaW4gZ3JhcGggdGFibGUKIFNFTEVDVCBzbmFtZSwg ZG5hbWUKICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCi0tIAoy LjM5LjUKCg== --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0005-Access-permissions-on-property-graph.patch" Content-Disposition: attachment; filename="v10-0005-Access-permissions-on-property-graph.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioog7 RnJvbSBiNTEwYTczY2UyMjZiYmMyY2U5MDhiOTJkZTljYzA2YWY4NmE5ZTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXQub3NzQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxNyBPY3QgMjAyNCAxNDo1OToyNiArMDUzMApTdWJqZWN0OiBb UEFUQ0ggdjEwIDA1LzEyXSBBY2Nlc3MgcGVybWlzc2lvbnMgb24gcHJvcGVydHkgZ3JhcGgKCkFj Y2VzcyB0byB0aGUgcHJvcGVydHkgZ3JhcGggcmVmZXJlbmNlZCBpbiBHUkFQSF9UQUJMRSBjbGF1 c2UgYW5kIHRoZQpiYXNlIHJlbGF0aW9ucyB1bmRlcmx5aW5nIHRoZSBncmFwaCBwYXR0ZXJuIHNw ZWNpZmllZCBpbiB0aGF0IGNsYXVzZSBhcmUKZ292ZXJuZWQgYnkgdGhlIGZvbGxvd2luZyBydWxl cy4KCjEuIEEgdXNlciBuZWVkcyBTRUxFQ1QgcHJpdmlsZWdlIHRvIGFjY2VzcyBhIHByb3BlcnR5 IGdyYXBoIGluIHRoZSBxdWVyeS4KCjIuIFRoZSBwcm9wZXJ0eSBncmFwaCBpdHNlbGYgYWN0cyBz aW1pbGFyIHRvIGEgc2VjdXJpdHkgaW52b2tlciB2aWV3IGluCiAgIHRoZSBzZW5zZSB0aGF0IHRo ZSBjdXJyZW50X3VzZXIgc2hvdWxkIGhhdmUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhlCiAgIHRh YmxlcyBhbmQgY29sdW1ucywgdW5kZXJseWluZyB0aGUgZ3JhcGggcGF0dGVybi4gRm9yIGV4YW1w bGUsIGEKICAgcHJvcGVydHkgZ3JhcGggZzEgY29udGFpbnMgZ3JhcGggZWxlbWVudCB0YWJsZXMg ZTEgYW5kIGUyLiBBc3N1bWUgdHdvCiAgIHVzZXJzIHUxIGFuZCB1MiB3aXRoIHByaXZpbGVnZXMg dG8gYWNjZXNzIGUxIGFuZCBlMiByZXNwZWN0aXZlbHkuCiAgIExldCdzIGFsc28gYXNzdW1lIHRo YXQgdGhleSBoYXZlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoZSBwcm9wZXJ0eQogICBncmFwaCBn MS4gdTEsIGFzIHRoZSBjdXJyZW50IHVzZXIsIHdvdWxkIGJlIGFibGUgdG8gcnVuIHF1ZXJ5CiAg IGludm9sdmluZyBnMSBzdWNjZXNzZnVsbHkgYXMgbG9uZyBhcyBpdCBkb2VzICpub3QqIHJlcXVp cmUgYWNjZXNzIHRvCiAgIGUyLiAgU2ltaWxhcmx5IHUyIHdvdWxkIGJlIGFibGUgdG8gcnVuIHF1 ZXJ5IGludm9sdmluZyBnMQogICBzdWNjZXNzZnVsbHkgYXMgbG9uZyBhcyBpdCBkb2VzICpub3Qq IHJlcXVpcmUgYWNjZXNzIHRvIGUxLgoKMy4gSWYgYSBwcm9wZXJ0eSBncmFwaCBpcyByZWZlcmVu Y2VkIGluIGEgc2VjdXJpdHkgZGVmaW5lciB2aWV3LCBhY2Nlc3MKICAgdG8gdGhlIHByb3BlcnR5 IGdyYXBoIGlzIGdvdmVybmVkIGJ5IHRoZSBwcml2aWxlZ2VzIG9mIHRoZSBvd25lciBvZgogICB0 aGUgdmlldyBidXQgdGhlIGFjY2VzcyB0byB0aGUgYmFzZSByZWxhdGlvbnMgdW5kZXJseWluZyB0 aGUgZ3JhcGgKICAgcGF0dGVybiBhcmUgZ292ZXJuZWQgYnkgdGhlIHByaXZpbGVnZXMgb2YgdGhl IHVzZXIgZXhlY3V0aW5nIHRoZQogICBxdWVyeS4gVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBhY2Nl c3MgdG8gdGhlIGJhc2UgcmVsYXRpb25zCiAgIHVuZGVybHlpbmcgYSBzZWN1cml0eSBpbnZva2Vy IHZpZXcgcmVmZXJlbmNlZCBmcm9tIGEgc2VjdXJpdHkgZGVmaW5lcgogICB2aWV3IGlzIGhhbmRs ZWQuCiAgIGFjY2VzcwoKNC4gV2UgaGF2ZSBub3QgaW1wbGVtZW50ZWQgc2VjdXJpdHkgZGVmaW5l ciBwcm9wZXJ0eSBncmFwaHMgc2luY2UKICAgU1FML1BHUSBzdGFuZGFyZCBkb2VzIG5vdCBtZW50 aW9uIHRob3NlLgoKTm90ZToKClRoZSBwcml2aWxlZ2VzIHRlc3RzIGRlZmluZWQgdmlld3Mgd2hp Y2ggYXJlIG93bmVkIGJ5IHVzZXJzIG90aGVyIHRoYW4KdGhlIHRhYmxlIG93bmVycy4gUmlnaHQg bm93LCBwcm9wZXJ0eSBncmFwaCBjYW4gbm90IGNvbnRhaW4gcmVsYXRpb25zCndoaWNoIGFyZSBu b3Qgb3duZWQgYnkgaXRzIG93bmVyLiBIZW5jZSBJIGhhdmUgbm90IGFkZGVkIHRlc3RzIGZvcgp0 ZXN0aW5nIHZpZXcgYWNjZXNzIHRocm91Z2ggcHJvcGVydHkgZ3JhcGhzLiBQZXIgU1FML1BHUSBz dGFuZGFyZCwgYQpwcm9wZXJ0eSBncmFwaCBjYW4gY29udGFpbiBhbnkgcmVsYXRpb24gYXMgbG9u ZyBhcyBpdCBoYXMgU0VMRUNUCnByaXZpbGVnZSBvbiB0aGF0IHJlbGF0aW9uLiBPbmNlIHdlIGlt cGxlbWVudCB3aGF0IHN0YW5kYXJkIHNheXMsIHdlIGNhbgphZGQgdGhlIHRlc3RzIHdpdGggdmll d3MgYW5kIHByZWZlcnJhYmx5IGFkZCB0aGUgdmlld3MgYXMgZWRnZSB0YWJsZXMuCgpBdXRob3I6 IEFzaHV0b3NoIEJhcGF0IDxhc2h1dG9zaC5iYXBhdC5vc3NAZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYTg1NTc5NWQtZTY5 Ny00ZmE1LTg2OTgtZDIwMTIyMTI2NTY3QGVpc2VudHJhdXQub3JnCi0tLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCB8ICA4ICsrCiBzcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgICAgIHwgMTggKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wcml2aWxlZ2VzLm91dCAgICB8IDkxICsrKysrKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgICAgICAgICB8IDU4ICsrKysrKysrKysr KysKIDQgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbAppbmRleCBmODhkMTE5NGNiYy4uYWUzMDFiNTJl MGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbApAQCAt Mjc2LDYgKzI3NiwxNCBAQCBDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzEKICAgIFByb3BlcnR5IGdy YXBocyBhcmUgcXVlcmllZCB1c2luZyB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+ IGNsYXVzZQogICAgb2YgPHhyZWYgbGlua2VuZD0ic3FsLXNlbGVjdCIvPi4KICAgPC9wYXJhPgor CisgIDxwYXJhPgorICAgQWNjZXNzIHRvIHRoZSBiYXNlIHJlbGF0aW9ucyB1bmRlcmx5aW5nIHRo ZSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4KKyAgIGNsYXVzZSBpcyBkZXRlcm1pbmVk IGJ5IHRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgdXNlciBleGVjdXRpbmcgdGhlIHF1ZXJ5LAorICAg cmF0aGVyIHRoYW4gdGhlIHByb3BlcnR5IGdyYXBoIG93bmVyLiBUaHVzLCB0aGUgdXNlciBvZiBh IHByb3BlcnR5IGdyYXBoIG11c3QKKyAgIGhhdmUgdGhlIHJlbGV2YW50IHBlcm1pc3Npb25zIG9u IHRoZSBwcm9wZXJ0eSBncmFwaCBhbmQgYmFzZSByZWxhdGlvbnMKKyAgIHVuZGVybHlpbmcgdGhl IDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1c2UuCisgIDwvcGFyYT4KICA8L3Jl ZnNlY3QxPgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9y ZXdyaXRlR3JhcGhUYWJsZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJs ZS5jCmluZGV4IDFlYTVhNWNhZWIxLi45YzE0ZmEzYjFiNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUv cmV3cml0ZUdyYXBoVGFibGUuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAj aW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXpl ci5oIgogI2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl X25vZGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKQEAgLTM4MCw2ICsz ODEsNyBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChSYW5nZVRibEVudHJ5ICpydGUs IExpc3QgKmdyYXBoX3BhdGgpCiAJUXVlcnkJICAgKnBhdGhfcXVlcnkgPSBtYWtlTm9kZShRdWVy eSk7CiAJTGlzdAkgICAqZnJvbWxpc3QgPSBOSUw7CiAJTGlzdAkgICAqcXVhbF9leHBycyA9IE5J TDsKKwlMaXN0CSAgICp2YXJzOwogCiAJcGF0aF9xdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VM RUNUOwogCkBAIC00OTMsNiArNDk1LDIyIEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRo KFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJCQkJCQkJCSAgcmVwbGFj ZV9wcm9wZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsCiAJCQkJCQkJCQkJCQkJCQkoTm9kZSAqKSBydGUt PmdyYXBoX3RhYmxlX2NvbHVtbnMsCiAJCQkJCQkJCQkJCQkJCQlncmFwaF9wYXRoKSk7CisKKwkv KgorCSAqIE1hcmsgdGhlIGNvbHVtbnMgYmVpbmcgYWNjZXNzZWQgaW4gdGhlIHBhdGggcXVlcnkg YXMgcmVxdWlyaW5nIFNFTEVDVAorCSAqIHByaXZpbGVnZS4gQW55IGxhdGVyYWwgY29sdW1ucyBz aG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgd2hlbiB0aGUKKwkgKiBjb3JyZXNwb25kaW5nIENvbHVt blJlZnMgd2VyZSB0cmFuc2Zvcm1lZC4gSWdub3JlIHRob3NlIGhlcmUuCisJICovCisJdmFycyA9 IHB1bGxfdmFyc19vZl9sZXZlbCgoTm9kZSAqKSBsaXN0X21ha2UyKHF1YWxfZXhwcnMsIHBhdGhf cXVlcnktPnRhcmdldExpc3QpLCAwKTsKKwlmb3JlYWNoX25vZGUoVmFyLCB2YXIsIHZhcnMpCisJ eworCQlSVEVQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8gPSBnZXRSVEVQZXJtaXNzaW9uSW5mbyhw YXRoX3F1ZXJ5LT5ydGVwZXJtaW5mb3MsCisJCQkJCQkJCQkJCQkJCSAgIHJ0X2ZldGNoKHZhci0+ dmFybm8sIHBhdGhfcXVlcnktPnJ0YWJsZSkpOworCisJCS8qIE11c3Qgb2Zmc2V0IHRoZSBhdHRu dW0gdG8gZml0IGluIGEgYml0bWFwc2V0ICovCisJCXBlcm1pbmZvLT5zZWxlY3RlZENvbHMgPSBi bXNfYWRkX21lbWJlcihwZXJtaW5mby0+c2VsZWN0ZWRDb2xzLAorCQkJCQkJCQkJCQkJdmFyLT52 YXJhdHRubyAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCX0KIAlyZXR1 cm4gcGF0aF9xdWVyeTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wcml2aWxlZ2VzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5v dXQKaW5kZXggNmIwMTMxMzEwMWIuLjAxYjVhZjIxYzEzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHJpdmlsZWdlcy5vdXQKQEAgLTI5NTUsOSArMjk1NSwxMDAgQEAgcmV2b2tlIHNlbGVj dCBvbiBkZXBfcHJpdl90ZXN0IGZyb20gcmVncmVzc19wcml2X3VzZXI0IGNhc2NhZGU7CiAKIHNl dCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIxOwogZHJvcCB0YWJsZSBkZXBfcHJpdl90 ZXN0OworLS0KKy0tIFByb3BlcnR5IGdyYXBocworLS0KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVz c19wcml2X3VzZXIxOworY3JlYXRlIHByb3BlcnR5IGdyYXBoIHB0ZzEKKwl2ZXJ0ZXggdGFibGVz ICgKKwkJYXRlc3Q1IGtleSAoZm91cikKKwkJCWRlZmF1bHQgbGFiZWwgcHJvcGVydGllcyAoZm91 cikKKwkJCWxhYmVsIGx0dGMgcHJvcGVydGllcyAodGhyZWUgYXMgbHR0Y2spLAorCQlhdGVzdDEg a2V5IChhKQorCQkJZGVmYXVsdCBsYWJlbAorCQkJbGFiZWwgbHR0YyBwcm9wZXJ0aWVzIChhIGFz IGx0dGNrKSwKKwkJYXRlc3QyIGtleSAoY29sMSkKKwkJCWRlZmF1bHQgbGFiZWwKKwkJCWxhYmVs IGx0diBwcm9wZXJ0aWVzIChjb2wxIGFzIGx0dmspKTsKKy0tIHNlbGVjdCBwcml2aWxlZ2VzIG9u IHByb3BlcnR5IGdyYXBoIGFzIHdlbGwgYXMgdGFibGUKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFi bGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0NSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7 IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCisoMCByb3dzKQorCitncmFudCBzZWxlY3Qgb24gcHRn MSB0byByZWdyZXNzX3ByaXZfdXNlcjI7CitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91 c2VyMjsKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkg Q09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCiso MCByb3dzKQorCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBwcm9wZXJ0eSBncmFwaCBidXQgbm90 IHRhYmxlCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUp IENPTFVNTlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3IgdGFibGUgYXRlc3Q1CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChw dGcxIG1hdGNoICggOiBsdHRjKSBDT0xVTU5TICgxIGFzIHZhbHVlKSkgbGltaXQgMDsgLS0gZmFp bHMKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorc2V0IHNlc3Np b24gcm9sZSByZWdyZXNzX3ByaXZfdXNlcjM7CistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiB0YWJs ZSBidXQgbm90IHByb3BlcnR5IGdyYXBoCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcx IG1hdGNoICggOiBhdGVzdDEpIENPTFVNTlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWls cworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHJvcGVydHkgZ3JhcGggcHRnMQorLS0g c2VsZWN0IHByaXZpbGVnZXMgb24gbmVpdGhlcgorc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAo cHRnMSBtYXRjaCAoIDogYXRlc3Q1KSBDT0xVTU5TICgxIGFzIHZhbHVlKSkgbGltaXQgMDsgLS0g ZmFpbHMKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHByb3BlcnR5IGdyYXBoIHB0ZzEK Ky0tIGNvbHVtbiBwcml2aWxlZ2VzCitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2Vy MTsKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKHYgOiBsdHRjKSBDT0xV TU5TICh2Lmx0dGNrKSkgbGltaXQgMDsgLS0gb2sKKyBsdHRjayAKKy0tLS0tLS0KKygwIHJvd3Mp CisKK2dyYW50IHNlbGVjdCBvbiBwdGcxIHRvIHJlZ3Jlc3NfcHJpdl91c2VyNDsKK3NldCBzZXNz aW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXI0Oworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAo cHRnMSBtYXRjaCAoYSA6IGF0ZXN0NSkgQ09MVU1OUyAoYS5mb3VyKSkgbGltaXQgMDsgLS0gb2sK KyBmb3VyIAorLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChw dGcxIG1hdGNoICh2IDogbHR0YykgQ09MVU1OUyAodi5sdHRjaykpIGxpbWl0IDA7IC0tIGZhaWwK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0NQorLS0gYWNjZXNzIHBy b3BlcnR5IGdyYXBoIHRocm91Z2ggc2VjdXJpdHkgZGVmaW5lciB2aWV3CitzZXQgc2Vzc2lvbiBy b2xlIHJlZ3Jlc3NfcHJpdl91c2VyNDsKK2NyZWF0ZSB2aWV3IGF0cGd2MSBhcyBzZWxlY3QgKiBm cm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDEpIENPTFVNTlMgKDEgYXMgdmFs dWUpKSBsaW1pdCAwOworZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MSB0byByZWdyZXNzX3ByaXZfdXNl cjM7CitzZWxlY3QgKiBmcm9tIGF0cGd2MTsgLS0gb2sKKyB2YWx1ZSAKKy0tLS0tLS0KKygwIHJv d3MpCisKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIzOworc2VsZWN0ICogZnJv bSBhdHBndjE7IC0tIG9rCisgdmFsdWUgCistLS0tLS0tCisoMCByb3dzKQorCitzZXQgc2Vzc2lv biByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyNDsKK2NyZWF0ZSB2aWV3IGF0cGd2MiBhcyBzZWxlY3Qg KiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICh2IDogbHR2KSBDT0xVTU5TICh2Lmx0dmsp KSBsaW1pdCAwOworLS0gdGhvdWdoIHRoZSBzZXNzaW9uIHVzZXIgaXMgdGhlIG93bmVyIG9mIHRo ZSB2aWV3IGFuZCBhbHNvIGhhcyBhY2Nlc3MgdG8gdGhlCistLSBwcm9wZXJ0eSBncmFwaCwgaXQg ZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gYSB0YWJsZSByZWZlcmVuY2VkIGluIHRoZSBncmFwaAor LS0gcGF0dGVybgorc2VsZWN0ICogZnJvbSBhdHBndjI7IC0tIGZhaWwKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHRhYmxlIGF0ZXN0MgorZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MiB0byBy ZWdyZXNzX3ByaXZfdXNlcjI7CistLSBUaGUgdXNlciB3aG8gb3RoZXJ3aXNlIGRvZXMgbm90IGhh dmUgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBncmFwaCwgZ2V0cworLS0gYWNjZXNzIHRvIGl0IHRo cm91Z2ggYSBzZWN1cml0eSBkZWZpbmVyIHZpZXcgYW5kIHVzZXMgaXQgc3VjY2Vzc2Z1bGx5IHNp bmNlCistLSBpdCBoYXMgYWNjZXNzIHRvIHRoZSB0YWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgZ3Jh cGggcGF0dGVybi4KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIyOworc2VsZWN0 ICogZnJvbSBhdHBndjI7IC0tIG9rCisgbHR2ayAKKy0tLS0tLQorKDAgcm93cykKKwogLS0gY2xl YW4gdXAKIFxjCiBkcm9wIHNlcXVlbmNlIHhfc2VxOworZHJvcCB2aWV3IGF0cGd2MTsKK2Ryb3Ag dmlldyBhdHBndjI7Citkcm9wIHByb3BlcnR5IGdyYXBoIHB0ZzE7CiBEUk9QIEFHR1JFR0FURSBw cml2X3Rlc3RhZ2cxKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmMyKGludCk7CiBE Uk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmM0KGJvb2xlYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2 aWxlZ2VzLnNxbAppbmRleCA2MGU3NDQzYmY1OS4uMDFjZGYwZjllMzkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3ByaXZpbGVnZXMuc3FsCkBAIC0xNzQ5LDYgKzE3NDksNjAgQEAgcmV2b2tlIHNlbGVjdCBv biBkZXBfcHJpdl90ZXN0IGZyb20gcmVncmVzc19wcml2X3VzZXI0IGNhc2NhZGU7CiBzZXQgc2Vz c2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIGRyb3AgdGFibGUgZGVwX3ByaXZfdGVzdDsK IAorLS0KKy0tIFByb3BlcnR5IGdyYXBocworLS0KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19w cml2X3VzZXIxOworY3JlYXRlIHByb3BlcnR5IGdyYXBoIHB0ZzEKKwl2ZXJ0ZXggdGFibGVzICgK KwkJYXRlc3Q1IGtleSAoZm91cikKKwkJCWRlZmF1bHQgbGFiZWwgcHJvcGVydGllcyAoZm91cikK KwkJCWxhYmVsIGx0dGMgcHJvcGVydGllcyAodGhyZWUgYXMgbHR0Y2spLAorCQlhdGVzdDEga2V5 IChhKQorCQkJZGVmYXVsdCBsYWJlbAorCQkJbGFiZWwgbHR0YyBwcm9wZXJ0aWVzIChhIGFzIGx0 dGNrKSwKKwkJYXRlc3QyIGtleSAoY29sMSkKKwkJCWRlZmF1bHQgbGFiZWwKKwkJCWxhYmVsIGx0 diBwcm9wZXJ0aWVzIChjb2wxIGFzIGx0dmspKTsKKy0tIHNlbGVjdCBwcml2aWxlZ2VzIG9uIHBy b3BlcnR5IGdyYXBoIGFzIHdlbGwgYXMgdGFibGUKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUg KHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0NSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0t IG9rCitncmFudCBzZWxlY3Qgb24gcHRnMSB0byByZWdyZXNzX3ByaXZfdXNlcjI7CitzZXQgc2Vz c2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUg KHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7IC0t IG9rCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBwcm9wZXJ0eSBncmFwaCBidXQgbm90IHRhYmxl CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVN TlMgKDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworc2VsZWN0ICogZnJvbSBncmFwaF90 YWJsZSAocHRnMSBtYXRjaCAoIDogbHR0YykgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7 IC0tIGZhaWxzCitzZXQgc2Vzc2lvbiByb2xlIHJlZ3Jlc3NfcHJpdl91c2VyMzsKKy0tIHNlbGVj dCBwcml2aWxlZ2VzIG9uIHRhYmxlIGJ1dCBub3QgcHJvcGVydHkgZ3JhcGgKK3NlbGVjdCAqIGZy b20gZ3JhcGhfdGFibGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1 ZSkpIGxpbWl0IDA7IC0tIGZhaWxzCistLSBzZWxlY3QgcHJpdmlsZWdlcyBvbiBuZWl0aGVyCitz ZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChwdGcxIG1hdGNoICggOiBhdGVzdDUpIENPTFVNTlMg KDEgYXMgdmFsdWUpKSBsaW1pdCAwOyAtLSBmYWlscworLS0gY29sdW1uIHByaXZpbGVnZXMKK3Nl dCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIxOworc2VsZWN0ICogZnJvbSBncmFwaF90 YWJsZSAocHRnMSBtYXRjaCAodiA6IGx0dGMpIENPTFVNTlMgKHYubHR0Y2spKSBsaW1pdCAwOyAt LSBvaworZ3JhbnQgc2VsZWN0IG9uIHB0ZzEgdG8gcmVncmVzc19wcml2X3VzZXI0Oworc2V0IHNl c3Npb24gcm9sZSByZWdyZXNzX3ByaXZfdXNlcjQ7CitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxl IChwdGcxIG1hdGNoIChhIDogYXRlc3Q1KSBDT0xVTU5TIChhLmZvdXIpKSBsaW1pdCAwOyAtLSBv aworc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAocHRnMSBtYXRjaCAodiA6IGx0dGMpIENPTFVN TlMgKHYubHR0Y2spKSBsaW1pdCAwOyAtLSBmYWlsCistLSBhY2Nlc3MgcHJvcGVydHkgZ3JhcGgg dGhyb3VnaCBzZWN1cml0eSBkZWZpbmVyIHZpZXcKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19w cml2X3VzZXI0OworY3JlYXRlIHZpZXcgYXRwZ3YxIGFzIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFi bGUgKHB0ZzEgbWF0Y2ggKCA6IGF0ZXN0MSkgQ09MVU1OUyAoMSBhcyB2YWx1ZSkpIGxpbWl0IDA7 CitncmFudCBzZWxlY3Qgb24gYXRwZ3YxIHRvIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK3NlbGVjdCAq IGZyb20gYXRwZ3YxOyAtLSBvaworc2V0IHNlc3Npb24gcm9sZSByZWdyZXNzX3ByaXZfdXNlcjM7 CitzZWxlY3QgKiBmcm9tIGF0cGd2MTsgLS0gb2sKK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19w cml2X3VzZXI0OworY3JlYXRlIHZpZXcgYXRwZ3YyIGFzIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFi bGUgKHB0ZzEgbWF0Y2ggKHYgOiBsdHYpIENPTFVNTlMgKHYubHR2aykpIGxpbWl0IDA7CistLSB0 aG91Z2ggdGhlIHNlc3Npb24gdXNlciBpcyB0aGUgb3duZXIgb2YgdGhlIHZpZXcgYW5kIGFsc28g aGFzIGFjY2VzcyB0byB0aGUKKy0tIHByb3BlcnR5IGdyYXBoLCBpdCBkb2VzIG5vdCBoYXZlIGFj Y2VzcyB0byBhIHRhYmxlIHJlZmVyZW5jZWQgaW4gdGhlIGdyYXBoCistLSBwYXR0ZXJuCitzZWxl Y3QgKiBmcm9tIGF0cGd2MjsgLS0gZmFpbAorZ3JhbnQgc2VsZWN0IG9uIGF0cGd2MiB0byByZWdy ZXNzX3ByaXZfdXNlcjI7CistLSBUaGUgdXNlciB3aG8gb3RoZXJ3aXNlIGRvZXMgbm90IGhhdmUg YWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBncmFwaCwgZ2V0cworLS0gYWNjZXNzIHRvIGl0IHRocm91 Z2ggYSBzZWN1cml0eSBkZWZpbmVyIHZpZXcgYW5kIHVzZXMgaXQgc3VjY2Vzc2Z1bGx5IHNpbmNl CistLSBpdCBoYXMgYWNjZXNzIHRvIHRoZSB0YWJsZXMgcmVmZXJlbmNlZCBpbiB0aGUgZ3JhcGgg cGF0dGVybi4KK3NldCBzZXNzaW9uIHJvbGUgcmVncmVzc19wcml2X3VzZXIyOworc2VsZWN0ICog ZnJvbSBhdHBndjI7IC0tIG9rCiAKIC0tIGNsZWFuIHVwCiAKQEAgLTE3NTYsNiArMTgxMCwxMCBA QCBkcm9wIHRhYmxlIGRlcF9wcml2X3Rlc3Q7CiAKIGRyb3Agc2VxdWVuY2UgeF9zZXE7CiAKK2Ry b3AgdmlldyBhdHBndjE7Citkcm9wIHZpZXcgYXRwZ3YyOworZHJvcCBwcm9wZXJ0eSBncmFwaCBw dGcxOworCiBEUk9QIEFHR1JFR0FURSBwcml2X3Rlc3RhZ2cxKGludCk7CiBEUk9QIEZVTkNUSU9O IHByaXZfdGVzdGZ1bmMyKGludCk7CiBEUk9QIEZVTkNUSU9OIHByaXZfdGVzdGZ1bmM0KGJvb2xl YW4pOwotLSAKMi4zOS41Cgo= --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0004-Fixes-following-issues.patch" Content-Disposition: attachment; filename="v10-0004-Fixes-following-issues.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6iook8 RnJvbSA3YWU0NjExN2I2ZTE0Mzg4NDY1MjQzYjVkMjU3OTY4ZmMxMTJlMzk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAyMSBBdWcgMjAyNCAxOTo0MTo0OCArMDUzMApTdWJqZWN0 OiBbUEFUQ0ggdjEwIDA0LzEyXSBGaXhlcyBmb2xsb3dpbmcgaXNzdWVzCgoxLiBBIHF1ZXJ5IGNv bnRhaW5pbmcgR1JBUEhfVEFCTEUgcmVmZXJlbmNlIHVzZWQgaW4gYSBVREYgY2F1c2VzCiAgIHNl Z21lbnRhdGlvbiBmYXVsdDogRWFybGllciB2ZXJzaW9uIG9mIHBhdGNoZXMgdXNlZAogICBwX3Bv c3RfY29sdW1ucmVmX2hvb2sgdG8gdHJhbnNmb3JtIGEgcHJvcGVydHkgcmVmZXJlbmNlIGluIGEK ICAgR1JBUEhfVEFCTEUgcmVmZXJlbmNlLiBCdXQgcmVsYXRlZCBob29rcyBhbmQgbWVtYmVycyBp biBQYXJzZVN0YXRlCiAgIGFyZSB1c2VkIGJ5IG90aGVyIG5vbi1jb3JlIG1vZHVsZXMgbGlrZSBw bHBnc3FsLiBJZiBhIHF1ZXJ5IGluc2lkZSBhCiAgIHBscGdzcWwgZnVuY3Rpb24gaGFzIEdSQVBI X1RBQkxFIHJlZmVyZW5jZSBpbiBpdCB0aGUgdXNhZ2Ugb2YgdGhlc2UKICAgaG9va3MgY29uZmxp Y3RzLiBTaW5jZSBHUkFQSF9UQUJMRSBpcyBhIGNvcmUgZmVhdHVyZSwgaXQncyBiZXR0ZXIgdG8K ICAgaW50cm9kdWNlIGEgbmV3IG1lbWJlciBQYXJzZVN0YXRlOjpwX2dyYXBoX3RhYmxlX3BzdGF0 ZSwgb2YgdHlwZQogICBHcmFwaFRhYmxlUGFyc2VTdGF0ZSwgdG8gaG9sZCB0aGUgbmFtZXNwYWNl IGZvciB0aGUgR1JBUEhfVEFCTEUKICAgcmVmZXJlbmNlIGJlaW5nIHRyYW5zZm9ybWVkLiBJdCBp cyBpbmxpbmUgd2l0aAogICBQYXJzZVN0YXRlOjpwX3BhcmVudF9jdGUgb3IgUGFyc2VTdGF0ZTo6 cF9xdWVyeUVudiB3aGljaCBoYXZlIHNpbWlsYXIKICAgcHVycG9zZXMuIFdpdGggdGhhdCBjaGFu Z2UgZGVmaW5pdGlvbiBvZiBHcmFwaFRhYmxlUGFyc2VTdGF0ZSBpcwogICBtb3ZlZCB0byBwYXJz ZW5vZGVzLmggd2hlcmUgQ29tbW9uVGFibGVFeHByIGFuZCBRdWVyeUVudmlyb25tZW50IGFyZQog ICBhbHNvIGRlZmluZWQuIFRoZSBmdW5jdGlvbiB1c2luZyB0aGUgUGFyc2VTdGF0ZTo6cF9ncmFw aF90YWJsZV9wc3RhdGUKICAgaXMgcmVuYW1lZCB0byB0cmFuc2Zvcm1HcmFwaFRhYmxlUHJvcGVy dHlSZWYoKSB0byBiZSBpbmxpbmUgd2l0aAogICBuYW1lcyBvZiBvdGhlciBzaW1pbGFyIGZ1bmN0 aW9ucy4gVGhpcyBjaGFuZ2UgYWxzbyBhbGxvd3MKICAgR3JhcGhUYWJsZVBhcnNlU3RhdGUgYXJn dW1lbnQgdG8gYmUgcmVtb3ZlZCBmcm9tIGEgZmV3IGZ1bmN0aW9ucy4KCjIuIEVSUk9SOiAgdW5y ZWNvZ25pemVkIGxvY2sgbW9kZTogMCB2aWEgU2NhblF1ZXJ5Rm9yTG9ja3MoKTogQWZ0ZXIKICAg Zml4aW5nIHRoZSBmaXJzdCBidWcsIEkgcmFuIGludG8gYWJvdmUgZXJyb3IuIEFuIFJURV9HUkFQ SF9UQUJMRSBpcwogICBjb252ZXJ0ZWQgdG8gUlRFX1NVQlFVRVJZIGFmdGVyIHRyYW5zZm9ybWF0 aW9uIHdpdGggcmVsaWQgPSBPSUQgb2YKICAgdGhlIHByb3BlcnR5IGdyYXBoIGJlaW5nIHJlZmVy ZW5jZWQgaW4gR1JBUEhfVEFCTEUgY2xhdXNlLiBGdW5jdGlvbnMKICAgY2FsbGVkIGZyb20gU2Nh blF1ZXJ5Rm9yTG9ja3MoKSB0YWtlIGxvY2tzIHdoZW4gUmFuZ2VUYmxSZWY6OnJlbGlkIGlzCiAg IHZhbGlkOyB3aGljaCBpcyBkZXNpcmFibGUgc2luY2Ugd2Ugd2FudCB0byBsb2NrIHRoZSBwcm9w ZXJ0eSBncmFwaAogICB3aGlsZSBpdCdzIGJlaW5nIHVzZWQuIFNvIHNldCBSYW5nZVRibFJlZjo6 cmVsbG9ja21vZGUgdG8KICAgICAgIEFjY2Vzc1NoYXJlTG9jay4KCjMuIFByb2hpYml0cyBzdWJx dWVyeSB3aXRoaW4gR1JBUEhfVEFCTEUgcmVmZXJlbmNlOiBJbiBvcmRlciB0byBzdXBwb3J0CiAg IGl0IHRoZSBoYXNTdWJsaW5rcyBmbGFnIG5lZWRzIHRvIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBx dWVyaWVzCiAgIHByb2R1Y2VkIGFzIGEgcmVzdWx0IG9mIHJld3JpdGluZyBncmFwaCB0YWJsZSBS VEUuIEl0IG5lZWRzIGEgYml0IG9mCiAgIGNvZGUgYW5kIHNvbWUgbm9uLXRyaXZpYWwgdGVzdGlu Zy4gIFNvIG5vdCBkb25lIHJpZ2h0IG5vdy4KCjQuIFN1cHBvcnQgZWRnZSBwYXR0ZXJucyBpbiBh bnkgZGlyZWN0aW9uOiBTdWNoIGVkZ2UgcGF0dGVybnMgc2F0aXNmeQogICBlZGdlcyBpbiBlaXRo ZXIgZGlyZWN0aW9uLgoKNS4gSWYgdGhlcmUgYXJlIG11bHRpcGxlIGZvcmVpZ24ga2V5cyBvbiBh biBlZGdlIHRhYmxlLCB0aGUgbGFzdCBvbmUKICAgdGhhdCBhcHBlYXJzIGluIHRoZSBsaXN0IHJl dHVybmVkIGJ5IFJlbGF0aW9uR2V0RktleUxpc3QoKSBpcyB1c2VkIHRvCiAgIGNyZWF0ZSBhIHZl cnRleCByZWZlcmVuY2UgZnJvbSB0aGF0IGVkZ2UuIFRoaXMgbWF5IGxlYWQgdG8gd3JvbmcKICAg ZWRnZS12ZXJ0ZXggbGlua2FnZS4gUmVtZW1iZXIgdGhlIGNvcnJlY3Qgb25lIGluc3RlYWQuCgo2 LiBOb2RlIHJlYWQgYW5kIHdyaXRlIGZ1bmN0aW9ucyBkaWQgbm90IHJlYWQgYW5kIHdyaXRlIHRo ZSByZWxraW5kLAogICByZWxsb2NrbW9kZSBhbmQgcGVybWluZm9pbmRleCBldmVuIHdoZW4gdGhv c2UgYXJlIHVzZWQgaW4gYSBncmFwaAogICB0YWJsZSBSYW5nZVRibEVudHJ5LiBGaXggdGhhdC4K CkFkZGl0aW9uYWwgY2hhbmdlcwoxLiBUZXN0IGZvciBhIGpvaW4gYmV0d2VlbiBHUkFQSF9UQUJM RSBhbmQgYSByZWd1bGFyIHRhYmxlLgoyLiBDaGFuZ2VkIGEgZmV3IGxvb3BzIG92ZXIgbGlzdHMg dG8gdXNlIGZvcmVhY2hfbm9kZSByZWR1Y2luZyBhbmQKICAgc2ltcGxpZnlpbmcgY29kZSBhIGJp dC4KMy4gSW1wcm92ZWQgY29tbWVudHMuCgpBdXRob3I6IEFzaHV0b3NoIEJhcGF0ClJlcG9ydGVk IEJ5OiBBamF5IFBhbCwgSnVud2FuZyBaaG91Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJv cGdyYXBoY21kcy5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5j cy5jICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5j cy5jICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Ns YXVzZS5jICAgICAgICAgICAgIHwgIDMwICsrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMgICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3Jh cGh0YWJsZS5jICAgICAgICAgfCAgNDMgKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5jICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVH cmFwaFRhYmxlLmMgICAgICAgfCAxNDggKysrKysrKysrKy0tLS0tLS0tCiBzcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2dyYXBodGFibGUuaCAgICAgICAgIHwgIDExICstCiBzcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDUgKwogLi4uL2V4cGVjdGVkL2NyZWF0 ZV9wcm9wZXJ0eV9ncmFwaC5vdXQgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2dyYXBoX3RhYmxlLm91dCAgICAgfCAgODEgKysrKysrKysrLQogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsICAgICAgICAgIHwgIDQ1ICsrKysrKwogMTQgZmlsZXMg Y2hhbmdlZCwgMjk0IGluc2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMKaW5kZXggODQzMGJmZGE3YjcuLmJmMzMzZGQyZGMyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCkBAIC0zNzcsMTggKzM3NywxNiBAQCBwcm9w Z3JhcGhfZWRnZV9nZXRfcmVmX2tleXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICpr ZXljb2xzLCBjb25zdCBMaXN0CiAJfQogCWVsc2UKIAl7Ci0JCUxpc3QJICAgKmZrZXlzOwotCQlM aXN0Q2VsbCAgICpsYzsKIAkJaW50CQkJY291bnQgPSAwOwogCQlGb3JlaWduS2V5Q2FjaGVJbmZv ICpmayA9IE5VTEw7CiAKLQkJZmtleXMgPSBSZWxhdGlvbkdldEZLZXlMaXN0KGVkZ2VfcmVsKTsK LQkJZm9yZWFjaChsYywgZmtleXMpCisJCWZvcmVhY2hfbm9kZShGb3JlaWduS2V5Q2FjaGVJbmZv LCB0bXAsIFJlbGF0aW9uR2V0RktleUxpc3QoZWRnZV9yZWwpKQogCQl7Ci0JCQlmayA9IGxmaXJz dF9ub2RlKEZvcmVpZ25LZXlDYWNoZUluZm8sIGxjKTsKLQotCQkJaWYgKGZrLT5jb25mcmVsaWQg PT0gUmVsYXRpb25HZXRSZWxpZChyZWZfcmVsKSkKKwkJCWlmICh0bXAtPmNvbmZyZWxpZCA9PSBS ZWxhdGlvbkdldFJlbGlkKHJlZl9yZWwpKQorCQkJeworCQkJCWZrID0gdG1wOwogCQkJCWNvdW50 Kys7CisJCQl9CiAJCX0KIAogCQlpZiAoY291bnQgPT0gMCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL25vZGVzL291dGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCmluZGV4 IDNiMzZmOTk2YjAzLi45ZDVjZTEwNzIxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv b3V0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCkBAIC01NjAsOSAr NTYwLDEzIEBAIF9vdXRSYW5nZVRibEVudHJ5KFN0cmluZ0luZm8gc3RyLCBjb25zdCBSYW5nZVRi bEVudHJ5ICpub2RlKQogCQkJV1JJVEVfT0lEX0ZJRUxEKHJlbGlkKTsKIAkJCWJyZWFrOwogCQlj YXNlIFJURV9HUkFQSF9UQUJMRToKLQkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7CiAJCQlXUklU RV9OT0RFX0ZJRUxEKGdyYXBoX3BhdHRlcm4pOwogCQkJV1JJVEVfTk9ERV9GSUVMRChncmFwaF90 YWJsZV9jb2x1bW5zKTsKKwkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBmaWVsZHMsIHRv bzogKi8KKwkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7CisJCQlXUklURV9DSEFSX0ZJRUxEKHJl bGtpbmQpOworCQkJV1JJVEVfSU5UX0ZJRUxEKHJlbGxvY2ttb2RlKTsKKwkJCVdSSVRFX1VJTlRf RklFTEQocGVybWluZm9pbmRleCk7CiAJCQlicmVhazsKIAkJY2FzZSBSVEVfUkVTVUxUOgogCQkJ Lyogbm8gZXh0cmEgZmllbGRzICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFk ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCmluZGV4IDUyYjQ1MmYxNWYy Li5lYzE4N2EyMDhhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKQEAgLTQyMCw5ICs0MjAsMTMgQEAg X3JlYWRSYW5nZVRibEVudHJ5KHZvaWQpCiAJCQlSRUFEX09JRF9GSUVMRChyZWxpZCk7CiAJCQli cmVhazsKIAkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6Ci0JCQlSRUFEX09JRF9GSUVMRChyZWxpZCk7 CiAJCQlSRUFEX05PREVfRklFTEQoZ3JhcGhfcGF0dGVybik7CiAJCQlSRUFEX05PREVfRklFTEQo Z3JhcGhfdGFibGVfY29sdW1ucyk7CisJCQkvKiB3ZSByZS11c2UgdGhlc2UgUkVMQVRJT04gZmll bGRzLCB0b286ICovCisJCQlSRUFEX09JRF9GSUVMRChyZWxpZCk7CisJCQlSRUFEX0NIQVJfRklF TEQocmVsa2luZCk7CisJCQlSRUFEX0lOVF9GSUVMRChyZWxsb2NrbW9kZSk7CisJCQlSRUFEX1VJ TlRfRklFTEQocGVybWluZm9pbmRleCk7CiAJCQlicmVhazsKIAkJY2FzZSBSVEVfUkVTVUxUOgog CQkJLyogbm8gZXh0cmEgZmllbGRzICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY2xhdXNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKaW5kZXgg OGJmNDY1MGI0NWIuLjI5ZjUxOGY2YWRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY2xhdXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCkBA IC05MTUsNiArOTE1LDcgQEAgdHJhbnNmb3JtUmFuZ2VHcmFwaFRhYmxlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmFuZ2VHcmFwaFRhYmxlICpyZ3QpCiAJTGlzdAkgICAqY29sbmFtZXMgPSBOSUw7CiAJ TGlzdENlbGwgICAqbGM7CiAJaW50CQkJcmVzbm8gPSAwOworCWJvb2wJCXNhdmVkX2hhc1N1Ymxp bmtzOwogCiAJcmVsID0gcGFyc2VyT3BlblRhYmxlKHBzdGF0ZSwgcmd0LT5ncmFwaF9uYW1lLCBB Y2Nlc3NTaGFyZUxvY2spOwogCWlmIChyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1BS T1BHUkFQSCkKQEAgLTkyOCwxMiArOTI5LDIxIEBAIHRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlR3JhcGhUYWJsZSAqcmd0KQogCiAJZ3BzdGF0ZS0+Z3Jh cGhpZCA9IGdyYXBoaWQ7CiAKLQlwc3RhdGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9vayA9IGdyYXBo X3RhYmxlX3Byb3BlcnR5X3JlZmVyZW5jZTsKLQlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSBn cHN0YXRlOworCS8qCisJICogVGhlIHN5bnRheCBkb2VzIG5vdCBhbGxvdyBuZXN0ZWQgR1JBUEhf VEFCTEUgYW5kIHRoaXMgZnVuY3Rpb24KKwkgKiBwcm9oaWJpdHMgc3VicXVlcnkgd2l0aGluIEdS QVBIX1RBQkxFLiBUaGVyZSBzaG91bGQgYmUgb25seSBvbmUKKwkgKiBHUkFQSF9UQUJMRSBiZWlu ZyB0cmFuc2Zvcm1lZCBhdCBhIHRpbWUuCisJICovCisJQXNzZXJ0KCFwc3RhdGUtPnBfZ3JhcGhf dGFibGVfcHN0YXRlKTsKKwlwc3RhdGUtPnBfZ3JhcGhfdGFibGVfcHN0YXRlID0gZ3BzdGF0ZTsK KwogCUFzc2VydCghcHN0YXRlLT5wX2xhdGVyYWxfYWN0aXZlKTsKIAlwc3RhdGUtPnBfbGF0ZXJh bF9hY3RpdmUgPSB0cnVlOwogCi0JZ3AgPSB0cmFuc2Zvcm1HcmFwaFBhdHRlcm4ocHN0YXRlLCBn cHN0YXRlLCByZ3QtPmdyYXBoX3BhdHRlcm4pOworCXNhdmVkX2hhc1N1YmxpbmtzID0gcHN0YXRl LT5wX2hhc1N1YkxpbmtzOworCXBzdGF0ZS0+cF9oYXNTdWJMaW5rcyA9IGZhbHNlOworCisJZ3Ag PSB0cmFuc2Zvcm1HcmFwaFBhdHRlcm4ocHN0YXRlLCByZ3QtPmdyYXBoX3BhdHRlcm4pOwogCiAJ Zm9yZWFjaChsYywgcmd0LT5jb2x1bW5zKQogCXsKQEAgLTk2OCwxMCArOTc4LDIwIEBAIHRyYW5z Zm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlR3JhcGhUYWJsZSAq cmd0KQogCiAJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCi0JcHN0YXRlLT5wX3ByZV9jb2x1 bW5yZWZfaG9vayA9IE5VTEw7Ci0JcHN0YXRlLT5wX3JlZl9ob29rX3N0YXRlID0gTlVMTDsKKwlw c3RhdGUtPnBfZ3JhcGhfdGFibGVfcHN0YXRlID0gTlVMTDsKIAlwc3RhdGUtPnBfbGF0ZXJhbF9h Y3RpdmUgPSBmYWxzZTsKIAorCS8qCisJICogSWYgd2Ugc3VwcG9ydCBzdWJxdWVyaWVzIHdpdGhp biBHUkFQSF9UQUJMRSwgdGhvc2UgbmVlZCB0byBiZQorCSAqIHByb3BhZ2F0ZWQgdG8gdGhlIHF1 ZXJpZXMgcmVzdWx0aW5nIGZyb20gcmV3cml0aW5nIGdyYXBoIHRhYmxlIFJURS4gV2UKKwkgKiBk b24ndCBkbyB0aGF0IHJpZ2h0IG5vdywgaGVuY2UgcHJvaGliaXQgaXQgZm9yIG5vdy4KKwkgKi8K KwlpZiAocHN0YXRlLT5wX2hhc1N1YkxpbmtzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzdWJxdWVy aWVzIHdpdGhpbiBHUkFQSF9UQUJMRSByZWZlcmVuY2UgYXJlIG5vdCBzdXBwb3J0ZWQiKSkpOwor CXBzdGF0ZS0+cF9oYXNTdWJMaW5rcyA9IHNhdmVkX2hhc1N1YmxpbmtzOworCiAJcmV0dXJuIGFk ZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUocHN0YXRlLCBncmFwaGlkLCBjYXN0Tm9kZShH cmFwaFBhdHRlcm4sIGdwKSwgY29sdW1ucywgY29sbmFtZXMsIHJndC0+YWxpYXMsIGZhbHNlLCB0 cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggNjVmMmM4ODgwNzYuLjFiYTk3 ODY5YTUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHBy LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFy c2VfZ3JhcGh0YWJsZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Rhcmdl dC5oIgpAQCAtODIzLDYgKzgyNCwxMCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCQlicmVhazsKIAl9CiAKKwkvKiBUcnkgaXQgYXMg YSBncmFwaCB0YWJsZSBwcm9wZXJ0eSByZWZlcmVuY2UuICovCisJaWYgKG5vZGUgPT0gTlVMTCkK KwkJbm9kZSA9IHRyYW5zZm9ybUdyYXBoVGFibGVQcm9wZXJ0eVJlZihwc3RhdGUsIGNyZWYpOwor CiAJLyoKIAkgKiBOb3cgZ2l2ZSB0aGUgUG9zdFBhcnNlQ29sdW1uUmVmSG9vaywgaWYgYW55LCBh IGNoYW5jZS4gIFdlIHBhc3MgdGhlCiAJICogdHJhbnNsYXRpb24tc28tZmFyIHNvIHRoYXQgaXQg Y2FuIHRocm93IGFuIGVycm9yIGlmIGl0IHdpc2hlcyBpbiB0aGUKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZ3JhcGh0YWJsZS5jCmluZGV4IDFhOTcxNjg3MDI0Li5iMDg4MzA2YjViMyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jCkBAIC0zMywxMiArMzMsMTUgQEAKIAogCiAvKgot ICogUmVzb2x2ZSBhIHByb3BlcnR5IHJlZmVyZW5jZS4KKyAqIFRyYW5zZm9ybSBhIHByb3BlcnR5 IHJlZmVyZW5jZS4KICAqLwogTm9kZSAqCi1ncmFwaF90YWJsZV9wcm9wZXJ0eV9yZWZlcmVuY2Uo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYsIE5vZGUgKnZhcikKK3RyYW5zZm9y bUdyYXBoVGFibGVQcm9wZXJ0eVJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3Jl ZikKIHsKLQlHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSA9IHBzdGF0ZS0+cF9yZWZfaG9v a19zdGF0ZTsKKwlHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSA9IHBzdGF0ZS0+cF9ncmFw aF90YWJsZV9wc3RhdGU7CisKKwlpZiAoIWdwc3RhdGUpCisJCXJldHVybiBOVUxMOwogCiAJaWYg KGxpc3RfbGVuZ3RoKGNyZWYtPmZpZWxkcykgPT0gMikKIAl7CkBAIC0xNDQsOCArMTQ3LDEwIEBA IHRyYW5zZm9ybUxhYmVsRXhwcihHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTm9kZSAq bGFiZWxleHByKQogICogVHJhbnNmb3JtIGEgR3JhcGhFbGVtZW50UGF0dGVybi4KICAqLwogc3Rh dGljIE5vZGUgKgotdHJhbnNmb3JtR3JhcGhFbGVtZW50UGF0dGVybihQYXJzZVN0YXRlICpwc3Rh dGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpn ZXApCit0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3Jh cGhFbGVtZW50UGF0dGVybiAqZ2VwKQogeworCUdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRl ID0gcHN0YXRlLT5wX2dyYXBoX3RhYmxlX3BzdGF0ZTsKKwogCWlmIChnZXAtPnZhcmlhYmxlKQog CQlncHN0YXRlLT52YXJpYWJsZXMgPSBsYXBwZW5kKGdwc3RhdGUtPnZhcmlhYmxlcywgbWFrZVN0 cmluZyhwc3RyZHVwKGdlcC0+dmFyaWFibGUpKSk7CiAKQEAgLTE2MSwxNyArMTY2LDEzIEBAIHRy YW5zZm9ybUdyYXBoRWxlbWVudFBhdHRlcm4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxl UGFyc2VTdGF0ZSAqZ3BzdGF0ZSwKICAqIFRyYW5zZm9ybSBhIHBhdGggdGVybSAobGlzdCBvZiBH cmFwaEVsZW1lbnRQYXR0ZXJuJ3MpLgogICovCiBzdGF0aWMgTm9kZSAqCi10cmFuc2Zvcm1QYXRo VGVybShQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBM aXN0ICpwYXRoX3Rlcm0pCit0cmFuc2Zvcm1QYXRoVGVybShQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKnBhdGhfdGVybSkKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7Ci0JTGlzdENlbGwgICAq bGM7Ci0KLQlmb3JlYWNoKGxjLCBwYXRoX3Rlcm0pCi0JewotCQlOb2RlCSAgICpuID0gdHJhbnNm b3JtR3JhcGhFbGVtZW50UGF0dGVybihwc3RhdGUsIGdwc3RhdGUsIGxmaXJzdF9ub2RlKEdyYXBo RWxlbWVudFBhdHRlcm4sIGxjKSk7CiAKLQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOwot CX0KKwlmb3JlYWNoX25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgZ2VwLCBwYXRoX3Rlcm0pCisJ CXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LAorCQkJCQkJIHRyYW5zZm9ybUdyYXBoRWxlbWVudFBh dHRlcm4ocHN0YXRlLCBnZXApKTsKIAogCXJldHVybiAoTm9kZSAqKSByZXN1bHQ7CiB9CkBAIC0x ODAsMTcgKzE4MSwxMiBAQCB0cmFuc2Zvcm1QYXRoVGVybShQYXJzZVN0YXRlICpwc3RhdGUsIEdy YXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBMaXN0ICpwYXRoXwogICogVHJhbnNmb3JtIGEg cGF0aCBwYXR0ZXJuIGxpc3QgKGxpc3Qgb2YgcGF0aCB0ZXJtcykuCiAgKi8KIHN0YXRpYyBOb2Rl ICoKLXRyYW5zZm9ybVBhdGhQYXR0ZXJuTGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIEdyYXBoVGFi bGVQYXJzZVN0YXRlICpncHN0YXRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCit0cmFuc2Zvcm1QYXRo UGF0dGVybkxpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiB7CiAJ TGlzdAkgICAqcmVzdWx0ID0gTklMOwotCUxpc3RDZWxsICAgKmxjOwogCi0JZm9yZWFjaChsYywg cGF0aF9wYXR0ZXJuKQotCXsKLQkJTm9kZQkgICAqbiA9IHRyYW5zZm9ybVBhdGhUZXJtKHBzdGF0 ZSwgZ3BzdGF0ZSwgbGZpcnN0KGxjKSk7Ci0KLQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4p OwotCX0KKwlmb3JlYWNoX25vZGUoTGlzdCwgcGF0aF90ZXJtLCBwYXRoX3BhdHRlcm4pCisJCXJl c3VsdCA9IGxhcHBlbmQocmVzdWx0LCB0cmFuc2Zvcm1QYXRoVGVybShwc3RhdGUsIHBhdGhfdGVy bSkpOwogCiAJcmV0dXJuIChOb2RlICopIHJlc3VsdDsKIH0KQEAgLTE5OSw5ICsxOTUsMTIgQEAg dHJhbnNmb3JtUGF0aFBhdHRlcm5MaXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJsZVBh cnNlU3RhdGUgKmdwc3RhdGUsIExpc3QKICAqIFRyYW5zZm9ybSBhIEdyYXBoUGF0dGVybi4KICAq LwogTm9kZSAqCi10cmFuc2Zvcm1HcmFwaFBhdHRlcm4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcmFw aFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuKQor dHJhbnNmb3JtR3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhQYXR0ZXJuICpn cmFwaF9wYXR0ZXJuKQogewotCWdyYXBoX3BhdHRlcm4tPnBhdGhfcGF0dGVybl9saXN0ID0gKExp c3QgKikgdHJhbnNmb3JtUGF0aFBhdHRlcm5MaXN0KHBzdGF0ZSwgZ3BzdGF0ZSwgZ3JhcGhfcGF0 dGVybi0+cGF0aF9wYXR0ZXJuX2xpc3QpOworCUxpc3QJICAgKnBhdGhfcGF0dGVybl9saXN0ID0g Y2FzdE5vZGUoTGlzdCwKKwkJCQkJCQkJCQkJIHRyYW5zZm9ybVBhdGhQYXR0ZXJuTGlzdChwc3Rh dGUsIGdyYXBoX3BhdHRlcm4tPnBhdGhfcGF0dGVybl9saXN0KSk7CisKKwlncmFwaF9wYXR0ZXJu LT5wYXRoX3BhdHRlcm5fbGlzdCA9IHBhdGhfcGF0dGVybl9saXN0OwogCWdyYXBoX3BhdHRlcm4t PndoZXJlQ2xhdXNlID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGdyYXBoX3BhdHRlcm4tPndoZXJl Q2xhdXNlLCBFWFBSX0tJTkRfV0hFUkUpOwogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRl LCBncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmMKaW5kZXggYmY1NTI4Y2E1ZTMuLjNmZWE5OTQ4NTM1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfcmVsYXRpb24uYwpAQCAtMjE3MSw2ICsyMTcxLDcgQEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9y R3JhcGhUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJcnRlLT5ncmFwaF9wYXR0ZXJuID0gZ3Jh cGhfcGF0dGVybjsKIAlydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMgPSBjb2x1bW5zOwogCXJ0ZS0+ YWxpYXMgPSBhbGlhczsKKwlydGUtPnJlbGxvY2ttb2RlID0gQWNjZXNzU2hhcmVMb2NrOwogCiAJ ZXJlZiA9IGFsaWFzID8gY29weU9iamVjdChhbGlhcykgOiBtYWtlQWxpYXMocmVmbmFtZSwgTklM KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5j IGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCmluZGV4IDZlMmU2ZWQz OGI4Li4xZWE1YTVjYWViMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl R3JhcGhUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUu YwpAQCAtNDEsMTIgKzQxLDExIEBACiAvKgogICogUmVwcmVzZW50cyBvbmUgcGF0aCBmYWN0b3Ig aW4gYSBwYXRoLgogICoKLSAqIE9uZSBwYXRoIGZhY3RvciBjb3JyZXNwb25kcyB0byBvbmUgZWxl bWVudCBwYXR0ZXJuIGluIGEgc2ltcGxlIHBhdGguCisgKiBJbiBhIG5vbi1jeWNsaWMgcGF0aCwg b25lIHBhdGggZmFjdG9yIGNvcnJlc3BvbmRzIHRvIG9uZSBlbGVtZW50IHBhdHRlcm4uCiAgKgog ICogSW4gYSBjeWNsaWMgcGF0aCwgb25lIHBhdGggZmFjdG9yIG1heSBjb3JyZXNwb25kIHRvIG9u ZSBvciBtb3JlIGVsZW1lbnQKLSAqIHBhdHRlcm5zIGFsbCBwb2ludGluZyB0byB0aGUgc2FtZSBn cmFwaCBlbGVtZW50LiBUaGUgbWVtYmVycyBvZiBzdWNoIGEgcGF0aAotICogZmFjdG9yIGFyZSBh IGNvbWJpbmF0aW9uIG9mIGNvcnJlc3BvbmRpbmcgc3BlY2lmaWNhdGlvbnMgaW4gdGhlIGVsZW1l bnQKLSAqIHBhdHRlcm5zLgorICogcGF0dGVybnMgc2hhcmluZyB0aGUgc2FtZSB2YXJpYWJsZSBu YW1lLCB0aHVzIHBvaW50aW5nIHRvIHRoZSBzYW1lIGdyYXBoCisgKiBlbGVtZW50LgogICovCiBz dHJ1Y3QgcGF0aF9mYWN0b3IKIHsKQEAgLTY2LDE3ICs2NSwyMCBAQCBzdHJ1Y3QgcGF0aF9mYWN0 b3IKICAqIFJlcHJlc2VudHMgb25lIHByb3BlcnR5IGdyYXBoIGVsZW1lbnQgKHZlcnRleCBvciBl ZGdlKSBpbiB0aGUgcGF0aC4KICAqCiAgKiBMYWJlbCBleHByZXNzaW9uIGluIGFuIGVsZW1lbnQg cGF0dGVybiByZXNvbHZlcyBpbnRvIGEgc2V0IG9mIGVsZW1lbnRzLiBGb3IKLSAqIGVhY2ggb2Yg dGhvc2UgZWxlbWVudHMgd2UgY3JlYXRlIG9uZSBncmFwaF9wYXRoX2VsZW1lbnQgb2JqZWN0Lgor ICogZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB3ZSBjcmVhdGUgb25lIHBhdGhfZWxlbWVudCBvYmpl Y3QuCiAgKi8KIHN0cnVjdCBwYXRoX2VsZW1lbnQKIHsKKwkvKiBQYXRoIGZhY3RvciBmcm9tIHdo aWNoIHRoaXMgZWxlbWVudCBpcyBkZXJpdmVkLiAqLworCXN0cnVjdCBwYXRoX2ZhY3RvciAqcGF0 aF9mYWN0b3I7CiAJT2lkCQkJZWxlbW9pZDsKIAlPaWQJCQlyZWxvaWQ7CisJLyogU291cmNlIGFu ZCBkZXN0aW5hdGlvbiB2ZXJ0ZXggZWxlbWVudHMgZm9yIGFuIGVkZ2UgZWxlbWVudC4gKi8KIAlP aWQJCQlzcmN2ZXJ0ZXhpZDsKIAlPaWQJCQlkZXN0dmVydGV4aWQ7Ci0JTGlzdAkgICAqcXVhbF9l eHByczsKLQkvKiBQYXRoIGZhY3RvciBmcm9tIHdoaWNoIHRoaXMgZWxlbWVudCBpcyBkZXJpdmVk LiAqLwotCXN0cnVjdCBwYXRoX2ZhY3RvciAqcGF0aF9mYWN0b3I7CisJLyogU291cmNlIGFuZCBk ZXN0aW5hdGlvbiBjb25kaXRpb25zIGZvciBhbiBlZGdlIGVsZW1lbnQuICovCisJTGlzdAkgICAq c3JjX3F1YWxzOworCUxpc3QJICAgKmRlc3RfcXVhbHM7CiB9OwogCiBzdGF0aWMgTm9kZSAqcmVw bGFjZV9wcm9wZXJ0eV9yZWZzKE9pZCBwcm9wZ3JhcGhpZCwgTm9kZSAqbm9kZSwgY29uc3QgTGlz dCAqbWFwcGluZ3MpOwpAQCAtMTg3LDIzICsxODksMjIgQEAgZ2VuZXJhdGVfcXVlcmllc19mb3Jf cGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQogCS8q CiAJICogRm9yIGV2ZXJ5IGVsZW1lbnQgcGF0dGVybiBpbiB0aGUgZ2l2ZW4gcGF0aCBwYXR0ZXJu IGNvbGxlY3QgYWxsIHRoZQogCSAqIGdyYXBoIGVsZW1lbnRzIHRoYXQgc2F0aXNmeSB0aGUgZWxl bWVudCBwYXR0ZXJuLgorCSAqCisJICogRWxlbWVudCBwYXR0ZXJucyB3aXRoIHRoZSBzYW1lIG5h bWUgcmVwcmVzZW50IHRoZSBzYW1lIGVsZW1lbnQgYW5kCisJICogaGVuY2Ugc2FtZSBwYXRoIGZh Y3Rvci4gVGhleSBkbyBub3QgYWRkIGEgbmV3IGdyYXBoIGVsZW1lbnQgdG8gdGhlCisJICogcXVl cnkgYnV0IGFmZmVjdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQgZWxlbWVudHMuIE1lcmdlIHN1Y2gg ZWxlbWVudHMKKwkgKiBwYXR0ZXJucyBpbnRvIGEgc2luZ2xlIHBhdGggZmFjdG9yLgogCSAqLwog CWZvcmVhY2hfbm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuLCBnZXAsIHBhdGhfcGF0dGVybikKIAl7 CiAJCXN0cnVjdCBwYXRoX2ZhY3RvciAqcGYgPSBOVUxMOwogCi0JCWlmIChnZXAtPmtpbmQgIT0g VkVSVEVYX1BBVFRFUk4gJiYKLQkJCWdlcC0+a2luZCAhPSBFREdFX1BBVFRFUk5fTEVGVCAmJiBn ZXAtPmtpbmQgIT0gRURHRV9QQVRURVJOX1JJR0hUKQotCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9y dGVkIGVsZW1lbnQgcGF0dGVybiBraW5kOiAlcyIsIGdldF9nZXBfa2luZF9uYW1lKGdlcC0+a2lu ZCkpOworCQlpZiAoZ2VwLT5raW5kICE9IFZFUlRFWF9QQVRURVJOICYmICFJU19FREdFX1BBVFRF Uk4oZ2VwLT5raW5kKSkKKwkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBlbGVtZW50IHBhdHRl cm4ga2luZDogXCIlc1wiIiwgZ2V0X2dlcF9raW5kX25hbWUoZ2VwLT5raW5kKSk7CiAKIAkJaWYg KGdlcC0+cXVhbnRpZmllcikKIAkJCWVsb2coRVJST1IsICJlbGVtZW50IHBhdHRlcm4gcXVhbnRp ZmllciBub3Qgc3VwcG9ydGVkIHlldCIpOwogCi0JCS8qCi0JCSAqIEVsZW1lbnQgcGF0dGVybnMg d2l0aCB0aGUgc2FtZSBuYW1lIHJlcHJlc2VudCB0aGUgc2FtZSBlbGVtZW50IGFuZAotCQkgKiBo ZW5jZSBzYW1lIHBhdGggZmFjdG9yLiBUaGV5IGRvIG5vdCBhZGQgYSBuZXcgZ3JhcGggZWxlbWVu dCB0byB0aGUKLQkJICogcXVlcnkgYnV0IGFmZmVjdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQgZWxl bWVudHMuCi0JCSAqLwogCQlmb3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9mYWN0b3IsIG90aGVyLCBw YXRoX2ZhY3RvcnMpCiAJCXsKIAkJCWlmIChnZXAtPnZhcmlhYmxlICYmIG90aGVyLT52YXJpYWJs ZSAmJgpAQCAtMjI3LDEyICsyMjgsMTQgQEAgZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0 ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQogCQkJCQlvdGhlci0+ bGFiZWxleHByID0gZ2VwLT5sYWJlbGV4cHI7CiAJCQkJZWxzZSBpZiAoZ2VwLT5sYWJlbGV4cHIg JiYgIWVxdWFsKG90aGVyLT5sYWJlbGV4cHIsIGdlcC0+bGFiZWxleHByKSkKIAkJCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJLyogWFhYOiBVc2UgY29ycmVjdCBlcnJvciBjb2RlLiAqLwotCQkJCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkJCSBlcnJt c2coImVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgXCIlc1wiIGJ1dCBk aWZmZXJlbnQgbGFiZWwgZXhwcmVzc2lvbnMiLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJlbGVtZW50IHBhdHRlcm5zIHdp dGggc2FtZSB2YXJpYWJsZSBuYW1lIFwiJXNcIiBidXQgZGlmZmVyZW50IGxhYmVsIGV4cHJlc3Np b25zIGFyZSBub3Qgc3VwcG9ydGVkIiwKIAkJCQkJCQkJCWdlcC0+dmFyaWFibGUpKSk7CiAKLQkJ CQkvKiBCb3RoIHNldHMgb2YgY29uZGl0aW9ucyBhcHBseSB0byB0aGUgZWxlbWVudCBwYXR0ZXJu LiAqLworCQkJCS8qCisJCQkJICogQ29uZGl0aW9ucyBmcm9tIGJvdGggZWxlbWVudHMgcGF0dGVy bnMgY29uc3RyYWluIHRoZSBncmFwaAorCQkJCSAqIGVsZW1lbnQuIENvbWJpbmUgYnkgQU5EaW5n IHRoZW0uCisJCQkJICovCiAJCQkJaWYgKCFvdGhlci0+d2hlcmVDbGF1c2UpCiAJCQkJCW90aGVy LT53aGVyZUNsYXVzZSA9IGdlcC0+d2hlcmVDbGF1c2U7CiAJCQkJZWxzZSBpZiAoZ2VwLT53aGVy ZUNsYXVzZSkKQEAgLTI1OSwxOSArMjYyLDI3IEBAIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhf cGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0dGVybikKIAkJfQogCiAJ CS8qCi0JCSAqIFNldHVwIGFkamFjZW50IHBhdGggZmFjdG9ycy4gSWYgbXVsdGlwbGUgZWRnZSBw YXR0ZXJucyBzaGFyZSB0aGUKLQkJICogc2FtZSB2YXJpYWJsZSBuYW1lLCB0aGV5IGNvbnN0YWlu IHRoZSBhZGphY2VudCB2ZXJ0ZXggcGF0dGVybnMKLQkJICogc2luY2UgYW4gZWRnZSBjYW4gY29u bmVjdCBvbmx5IG9uZSBwYWlyIG9mIHZlcnRleGVzIGFuZCB0aG9zZQotCQkgKiB2ZXJ0ZXhlcyBh bHNvIG5lZWQgdG8gcmVwZWF0ZWQgYWxvbmcgd2l0aCB0aGUgZWRnZSAoYSB3YWxrKS4gVGhpcwot CQkgKiBtZWFucyB0aGF0IHdlIGhhdmUgdG8gY29hbGVzY2UgdGhlIHZlcnRleCBwYXR0ZXJucyBh ZGphY2VudCB0byBhCi0JCSAqIHJlcGVhdGVkIGVkZ2UgZXZlbiB0aG91Z2ggdGhleSBoYXZlIGRp ZmZlcmVudCB2YXJpYWJsZXMuICBFLmcuCi0JCSAqIChhKS1bYl0tPihjKS1bYl08LShkKSBpbXBs aWVzIHRoYXQgKGEpIGFuZCAoZCkgcmVwcmVzZW50IHRoZSBzYW1lCisJCSAqIFNldHVwIGxpbmtz IHRvIHRoZSBwcmV2aW91cyBwYXRoIGZhY3Rvci4gSWYgdGhlIHByZXZpb3VzIHBhdGgKKwkJICog ZmFjdG9yIGlzIGFuIGVkZ2UsIHRoaXMgcGF0aCBmYWN0b3IgcmVwcmVzZW50cyBhbiBhZGphY2Vu dCB2ZXJ0ZXg7CisJCSAqIHNvdXJjZSB2ZXJ0ZXggZm9yIGFuIGVkZ2UgcG9pbnRpbmcgbGVmdCBv ciBkZXN0aW5hdGlvbiB2ZXJ0ZXggZm9yCisJCSAqIGFuIGVkZ2UgcG9pbnRpbmcgcmlnaHQuIEVk Z2UgcG9pbnRpbmcgaW4gYW55IGRpcmVjdGlvbiBpcyB0cmVhdGVkCisJCSAqIHNpbWlsYXIgdG8g dGhhdCBwb2ludGluZyBpbiByaWdodCBkaXJlY3Rpb24gaGVyZS4gV2hlbiBjb25zdHJ1Y3RpbmcK KwkJICogYSBxdWVyeSwgaW4gZ2VuZXJhdGVfcXVlcnlfZm9yX2dyYXBoX3BhdGgoKSB3ZSB3aWxs IHN3YXAgc291cmNlIGFuZAorCQkgKiBkZXN0aW5hdGlvbiBlbGVtZW50cyBpZiB0aGUgZWRnZSBl bGVtZW50IHR1cm5zIG91dCB0byBiZSBhbmQgZWRnZQorCQkgKiBwb2ludGluZyBpbiBsZWZ0IGRp cmVjdGlvbi4KKwkJICoKKwkJICogSWYgbXVsdGlwbGUgZWRnZSBwYXR0ZXJucyBzaGFyZSB0aGUg c2FtZSB2YXJpYWJsZSBuYW1lLCB0aGV5CisJCSAqIGNvbnN0YWluIHRoZSBhZGphY2VudCB2ZXJ0 ZXggcGF0dGVybnMgc2luY2UgYW4gZWRnZSBjYW4gY29ubmVjdAorCQkgKiBvbmx5IG9uZSBwYWly IG9mIHZlcnRleGVzLiBUaG9zZSB2ZXJ0ZXggcGF0dGVybnMgYWxzbyBuZWVkIHRvCisJCSAqIHJl cGVhdGVkIGFuZCBtZXJnZWQgYWxvbmcgd2l0aCB0aGUgcmVwZWF0ZWQgZWRnZSAoYSB3YWxrIG9m IGdyYXBoKQorCQkgKiBldmVuIHRob3VnaCB0aGV5IGhhdmUgZGlmZmVyZW50IHZhcmlhYmxlcy4g IEUuZy4KKwkJICogKGEpLVtiXS0+KGMpPC1bYl0tKGQpIGltcGxpZXMgdGhhdCAoYSkgYW5kIChk KSByZXByZXNlbnQgdGhlIHNhbWUKIAkJICogdmVydGV4IGVsZW1lbnQgcGF0dGVybi4gVGhpcyBp cyBzbGlnaGx5IGhhcmRlciB0byBpbXBsZW1lbnQgYW5kCiAJCSAqIHByb2JhYmx5IGxlc3MgdXNl ZnVsLiBIZW5jZSBub3Qgc3VwcG9ydGVkIGZvciBub3cuCiAJCSAqLwogCQlpZiAocHJldl9wZikK IAkJewotCQkJaWYgKHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUKQorCQkJaWYg KHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX1JJR0hUIHx8IHByZXZfcGYtPmtpbmQgPT0g RURHRV9QQVRURVJOX0FOWSkKIAkJCXsKIAkJCQlBc3NlcnQoIUlTX0VER0VfUEFUVEVSTihwZi0+ a2luZCkpOwogCQkJCWlmIChwcmV2X3BmLT5kZXN0X3BmICYmIHByZXZfcGYtPmRlc3RfcGYgIT0g cGYpCkBAIC0yODUsMTMgKzI5Niw4IEBAIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVy bihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0dGVybikKIAkJCQkJZWxvZyhFUlJP UiwgIkFuIGVkZ2UgY2FuIG5vdCBjb25uZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBp biBhIGN5Y2xpYyBwYXR0ZXJuLiIpOwogCQkJCXByZXZfcGYtPnNyY19wZiA9IHBmOwogCQkJfQot CQkJZWxzZSBpZiAocHJldl9wZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fQU5ZKQotCQkJewotCQkJ CS8qIFdlIGRvbid0IHN1cHBvcnQgdW5kaXJlY3RlZCBlZGdlcyB5ZXQuICovCi0JCQkJQXNzZXJ0 KGZhbHNlKTsKLQkJCX0KIAotCQkJaWYgKHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCkK KwkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQgfHwgcGYtPmtpbmQgPT0gRURH RV9QQVRURVJOX0FOWSkKIAkJCXsKIAkJCQlBc3NlcnQoIUlTX0VER0VfUEFUVEVSTihwcmV2X3Bm LT5raW5kKSk7CiAJCQkJaWYgKHBmLT5zcmNfcGYgJiYgcGYtPnNyY19wZiAhPSBwcmV2X3BmKQpA QCAtMzA1LDExICszMTEsNiBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFu Z2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiAJCQkJCWVsb2coRVJST1IsICJB biBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4gYSBj eWNsaWMgcGF0dGVybi4iKTsKIAkJCQlwZi0+ZGVzdF9wZiA9IHByZXZfcGY7CiAJCQl9Ci0JCQll bHNlIGlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fQU5ZKQotCQkJewotCQkJCS8qIFdlIGRv bid0IHN1cHBvcnQgdW5kaXJlY3RlZCBlZGdlcyB5ZXQuICovCi0JCQkJQXNzZXJ0KGZhbHNlKTsK LQkJCX0KIAkJfQogCiAJCXByZXZfcGYgPSBwZjsKQEAgLTM4OSwzMSArMzkwLDYyIEBAIGdlbmVy YXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhf cGF0aCkKIAkJUmVsYXRpb24JcmVsOwogCQlQYXJzZU5hbWVzcGFjZUl0ZW0gKnBuaTsKIAotCQlB c3NlcnQocGYtPmtpbmQgPT0gVkVSVEVYX1BBVFRFUk4gfHwKLQkJCSAgIHBmLT5raW5kID09IEVE R0VfUEFUVEVSTl9MRUZUIHx8IHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdIVCk7CisJCUFz c2VydChwZi0+a2luZCA9PSBWRVJURVhfUEFUVEVSTiB8fCBJU19FREdFX1BBVFRFUk4ocGYtPmtp bmQpKTsKIAotCQlpZiAocGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgcGYtPmtpbmQg PT0gRURHRV9QQVRURVJOX1JJR0hUKQorCQkvKiBBZGQgY29uZGl0aW9ucyByZXByZXNlbnRpbmcg ZWRnZSBjb25ubmVjdGlvbnMuICovCisJCWlmIChJU19FREdFX1BBVFRFUk4ocGYtPmtpbmQpKQog CQl7CiAJCQlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpzcmNfcGU7Ci0JCQlzdHJ1Y3QgcGF0aF9lbGVt ZW50ICpkZXN0X2dlOworCQkJc3RydWN0IHBhdGhfZWxlbWVudCAqZGVzdF9wZTsKKwkJCUxpc3QJ ICAgKnNyY19xdWFsczsKKwkJCUxpc3QJICAgKmRlc3RfcXVhbHM7CiAKIAkJCUFzc2VydChwZi0+ c3JjX3BmICYmIHBmLT5kZXN0X3BmKTsKIAkJCXNyY19wZSA9IGxpc3RfbnRoKGdyYXBoX3BhdGgs IHBmLT5zcmNfcGYtPmZhY3RvcnBvcyk7Ci0JCQlkZXN0X2dlID0gbGlzdF9udGgoZ3JhcGhfcGF0 aCwgcGYtPmRlc3RfcGYtPmZhY3RvcnBvcyk7CisJCQlkZXN0X3BlID0gbGlzdF9udGgoZ3JhcGhf cGF0aCwgcGYtPmRlc3RfcGYtPmZhY3RvcnBvcyk7CiAKIAkJCS8qIE1ha2Ugc3VyZSB0aGF0IHRo ZSBsaW5rcyBvZiBhZGphY2VudCB2ZXJ0aWNlcyBhcmUgY29ycmVjdC4gKi8KIAkJCUFzc2VydChw Zi0+c3JjX3BmID09IHNyY19wZS0+cGF0aF9mYWN0b3IgJiYKLQkJCQkgICBwZi0+ZGVzdF9wZiA9 PSBkZXN0X2dlLT5wYXRoX2ZhY3Rvcik7CisJCQkJICAgcGYtPmRlc3RfcGYgPT0gZGVzdF9wZS0+ cGF0aF9mYWN0b3IpOwogCiAJCQkvKgogCQkJICogSWYgdGhlIGdpdmVuIGVkZ2UgZWxlbWVudCBk b2VzIG5vdCBjb25uZWN0IHRoZSBhZGphY2VudCB2ZXJ0ZXgKIAkJCSAqIGVsZW1lbnRzIGluIHRo aXMgcGF0aCwgdGhlIHBhdGggaXMgYnJva2VuLiBBYmFuZG9uIHRoaXMgcGF0aCBhcwogCQkJICog aXQgd29uJ3QgcmV0dXJuIGFueSByb3dzLgorCQkJICoKKwkJCSAqIEZvciBhbiBlZGdlIGVsZW1l bnQgcGF0dGVybiBwb2ludGluZyBpbiBhbnkgZGlyZWN0aW9uLCB0cnkKKwkJCSAqIHN3YXBwaW5n IHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHZlcnRleCBlbGVtZW50cy4KIAkJCSAqLwogCQkJ aWYgKHNyY19wZS0+ZWxlbW9pZCAhPSBwZS0+c3JjdmVydGV4aWQgfHwKLQkJCQlkZXN0X2dlLT5l bGVtb2lkICE9IHBlLT5kZXN0dmVydGV4aWQpCi0JCQkJcmV0dXJuIE5VTEw7CisJCQkJZGVzdF9w ZS0+ZWxlbW9pZCAhPSBwZS0+ZGVzdHZlcnRleGlkKQorCQkJeworCQkJCWlmIChwZi0+a2luZCA9 PSBFREdFX1BBVFRFUk5fQU5ZICYmCisJCQkJCWRlc3RfcGUtPmVsZW1vaWQgPT0gcGUtPnNyY3Zl cnRleGlkICYmCisJCQkJCXNyY19wZS0+ZWxlbW9pZCA9PSBwZS0+ZGVzdHZlcnRleGlkKQorCQkJ CXsKKwkJCQkJZGVzdF9xdWFscyA9IGNvcHlPYmplY3QocGUtPnNyY19xdWFscyk7CisJCQkJCXNy Y19xdWFscyA9IGNvcHlPYmplY3QocGUtPmRlc3RfcXVhbHMpOworCisJCQkJCS8qIFN3YXAgdGhl IHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmFybm9zIGluIHRoZSBxdWFscy4gKi8KKwkJCQkJQ2hh bmdlVmFyTm9kZXMoKE5vZGUgKikgZGVzdF9xdWFscywgcGUtPnBhdGhfZmFjdG9yLT5zcmNfcGYt PmZhY3RvcnBvcyArIDEsCisJCQkJCQkJCSAgIHBlLT5wYXRoX2ZhY3Rvci0+ZGVzdF9wZi0+ZmFj dG9ycG9zICsgMSwgMCk7CisJCQkJCUNoYW5nZVZhck5vZGVzKChOb2RlICopIHNyY19xdWFscywg cGUtPnBhdGhfZmFjdG9yLT5kZXN0X3BmLT5mYWN0b3Jwb3MgKyAxLAorCQkJCQkJCQkgICBwZS0+ cGF0aF9mYWN0b3ItPnNyY19wZi0+ZmFjdG9ycG9zICsgMSwgMCk7CisJCQkJfQorCQkJCWVsc2UK KwkJCQkJcmV0dXJuIE5VTEw7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJc3JjX3F1YWxzID0g Y29weU9iamVjdChwZS0+c3JjX3F1YWxzKTsKKwkJCQlkZXN0X3F1YWxzID0gY29weU9iamVjdChw ZS0+ZGVzdF9xdWFscyk7CisJCQl9CisKKwkJCXF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFs X2V4cHJzLCBzcmNfcXVhbHMpOworCQkJcXVhbF9leHBycyA9IGxpc3RfY29uY2F0KHF1YWxfZXhw cnMsIGRlc3RfcXVhbHMpOwogCQl9CisJCWVsc2UKKwkJCUFzc2VydCghcGUtPnNyY19xdWFscyAm JiAhcGUtPmRlc3RfcXVhbHMpOwogCiAJCS8qIENyZWF0ZSBSYW5nZVRibEVudHJ5IGZvciB0aGlz IGVsZW1lbnQgdGFibGUuICovCiAJCXJlbCA9IHRhYmxlX29wZW4ocGUtPnJlbG9pZCwgQWNjZXNz U2hhcmVMb2NrKTsKQEAgLTQ0Miw3ICs0NzQsNiBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhf cGF0aChSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKmdyYXBoX3BhdGgpCiAKIAkJCXF1YWxfZXhw cnMgPSBsYXBwZW5kKHF1YWxfZXhwcnMsIHRyKTsKIAkJfQotCQlxdWFsX2V4cHJzID0gbGlzdF9j b25jYXQocXVhbF9leHBycywgcGUtPnF1YWxfZXhwcnMpOwogCX0KIAogCWlmIChydGUtPmdyYXBo X3BhdHRlcm4tPndoZXJlQ2xhdXNlKQpAQCAtNDU3LDcgKzQ4OCw3IEBAIGdlbmVyYXRlX3F1ZXJ5 X2Zvcl9ncmFwaF9wYXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAlw YXRoX3F1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihmcm9tbGlzdCwKIAkJCQkJCQkJCQko Tm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIHF1YWxfZXhwcnMsIC0xKSk7CiAKLQkvKiBF YWNoIHBhdGggcXVlcnkgcHJvamVjdHMgdGhlIGNvbHVtbnMgc3BlY2lmaWVkIGluIHRoZSBHUkFI X1RBQkxFIGNsYXVzZSAqLworCS8qIEVhY2ggcGF0aCBxdWVyeSBwcm9qZWN0cyB0aGUgQ09MVU1O UyBzcGVjaWZpZWQgaW4gdGhlIEdSQUhfVEFCTEUuICovCiAJcGF0aF9xdWVyeS0+dGFyZ2V0TGlz dCA9IGNhc3ROb2RlKExpc3QsCiAJCQkJCQkJCQkgIHJlcGxhY2VfcHJvcGVydHlfcmVmcyhydGUt PnJlbGlkLAogCQkJCQkJCQkJCQkJCQkJKE5vZGUgKikgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5z LApAQCAtNjY3LDcgKzY5OCw2IEBAIGNyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoc3RydWN0IHBhdGhf ZmFjdG9yICpwZiwgT2lkIGVsZW1vaWQpCiAJcGUtPnBhdGhfZmFjdG9yID0gcGY7CiAJcGUtPmVs ZW1vaWQgPSBlbGVtb2lkOwogCXBlLT5yZWxvaWQgPSBwZ2Vmb3JtLT5wZ2VyZWxpZDsKLQlwZS0+ cXVhbF9leHBycyA9IE5JTDsKIAogCS8qCiAJICogV2hlbiB0aGUgcGF0aCBjb250YWluaW5nIHRo aXMgZWxlbWVudCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEgcXVlcnkKQEAgLTY4MSw4ICs3MTEs NiBAQCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYsIE9pZCBl bGVtb2lkKQogCSAqLwogCWlmIChJU19FREdFX1BBVFRFUk4ocGYtPmtpbmQpKQogCXsKLQkJTGlz dAkgICAqZWRnZV9xdWFsOwotCiAJCXBlLT5zcmN2ZXJ0ZXhpZCA9IHBnZWZvcm0tPnBnZXNyY3Zl cnRleGlkOwogCQlwZS0+ZGVzdHZlcnRleGlkID0gcGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkOwog CQlBc3NlcnQocGYtPnNyY19wZiAmJiBwZi0+ZGVzdF9wZik7CkBAIC03MDAsMTQgKzcyOCwxMiBA QCBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KHN0cnVjdCBwYXRoX2ZhY3RvciAqcGYsIE9pZCBlbGVt b2lkKQogCQkgKiBudW1iZXIgb2YgcGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4sIGZldGNo aW5nIHRoZSBjYXRhbG9nIGVudHJ5CiAJCSAqIGVhY2ggdGltZS4KIAkJICovCi0JCWVkZ2VfcXVh bCA9IGJ1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsg MSwgcGYtPnNyY19wZi0+ZmFjdG9ycG9zICsgMSwKLQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3Bn cmFwaF9lbGVtZW50X3BnZXNyY2tleSwKLQkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9l bGVtZW50X3BnZXNyY3JlZik7Ci0JCXBlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocGUtPnF1 YWxfZXhwcnMsIGVkZ2VfcXVhbCk7Ci0JCWVkZ2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVydGV4X2xp bmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPmRlc3RfcGYtPmZhY3RvcnBv cyArIDEsCi0JCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5 LAotCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZik7Ci0J CXBlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocGUtPnF1YWxfZXhwcnMsIGVkZ2VfcXVhbCk7 CisJCXBlLT5zcmNfcXVhbHMgPSBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1cCwg cGYtPmZhY3RvcnBvcyArIDEsIHBmLT5zcmNfcGYtPmZhY3RvcnBvcyArIDEsCisJCQkJCQkJCQkJ CQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jja2V5LAorCQkJCQkJCQkJCQkJCSBB bnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZik7CisJCXBlLT5kZXN0X3F1YWxzID0g YnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0dXAsIHBmLT5mYWN0b3Jwb3MgKyAxLCBw Zi0+ZGVzdF9wZi0+ZmFjdG9ycG9zICsgMSwKKwkJCQkJCQkJCQkJCQkgIEFudW1fcGdfcHJvcGdy YXBoX2VsZW1lbnRfcGdlZGVzdGtleSwKKwkJCQkJCQkJCQkJCQkgIEFudW1fcGdfcHJvcGdyYXBo X2VsZW1lbnRfcGdlZGVzdHJlZik7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKGVsZXR1cCk7CkBA IC03MjcsNyArNzUzLDcgQEAgZ2V0X2dlcF9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktp bmQgZ2Vwa2luZCkKIAkJY2FzZSBFREdFX1BBVFRFUk5fUklHSFQ6CiAJCQlyZXR1cm4gImVkZ2Ug cG9pbnRpbmcgcmlnaHQiOwogCQljYXNlIEVER0VfUEFUVEVSTl9BTlk6Ci0JCQlyZXR1cm4gInVu ZGlyZWN0ZWQgZWRnZSI7CisJCQlyZXR1cm4gImVkZ2UgcG9pbnRpbmcgYW55IGRpcmVjdGlvbiI7 CiAJCWNhc2UgUEFSRU5fRVhQUjoKIAkJCXJldHVybiAibmVzdGVkIHBhdGggcGF0dGVybiI7CiAJ fQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGIzNzQyZTNiNDQ4Li4zYTNmN2UyMTFmYyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDQ0NSw0ICs0NDQ1LDEwIEBAIHR5cGVkZWYgc3RydWN0 IERyb3BTdWJzY3JpcHRpb25TdG10CiAJRHJvcEJlaGF2aW9yIGJlaGF2aW9yOwkJLyogUkVTVFJJ Q1Qgb3IgQ0FTQ0FERSBiZWhhdmlvciAqLwogfSBEcm9wU3Vic2NyaXB0aW9uU3RtdDsKIAordHlw ZWRlZiBzdHJ1Y3QgR3JhcGhUYWJsZVBhcnNlU3RhdGUKK3sKKwlPaWQJCQlncmFwaGlkOworCUxp c3QJICAgKnZhcmlhYmxlczsKK30gR3JhcGhUYWJsZVBhcnNlU3RhdGU7CisKICNlbmRpZgkJCQkJ CQkvKiBQQVJTRU5PREVTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ncmFwaHRhYmxlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCmlu ZGV4IGFmMGY1NTBjZDJjLi40Y2VmZDVhY2Y5ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2dyYXBodGFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3Jh cGh0YWJsZS5oCkBAIC0xNCwxOCArMTQsMTEgQEAKICNpZm5kZWYgUEFSU0VfR1JBUEhUQUJMRV9I CiAjZGVmaW5lIFBBUlNFX0dSQVBIVEFCTEVfSAogCi0jaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rl cy5oIgogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf bm9kZS5oIgogCi10eXBlZGVmIHN0cnVjdCBHcmFwaFRhYmxlUGFyc2VTdGF0ZQotewotCU9pZAkJ CWdyYXBoaWQ7Ci0JTGlzdAkgICAqdmFyaWFibGVzOwotfSBHcmFwaFRhYmxlUGFyc2VTdGF0ZTsK K2V4dGVybiBOb2RlICp0cmFuc2Zvcm1HcmFwaFRhYmxlUHJvcGVydHlSZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpOwogCi1leHRlcm4gTm9kZSAqZ3JhcGhfdGFibGVfcHJv cGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLCBOb2Rl ICp2YXIpOwotCi1leHRlcm4gTm9kZSAqdHJhbnNmb3JtR3JhcGhQYXR0ZXJuKFBhcnNlU3RhdGUg KnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsIEdyYXBoUGF0dGVybiAqZ3Jh cGhfcGF0dGVybik7CitleHRlcm4gTm9kZSAqdHJhbnNmb3JtR3JhcGhQYXR0ZXJuKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuKTsKIAogI2VuZGlmCQkJCQkJ CS8qIFBBUlNFX0dSQVBIVEFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggNTRk NmY2YjliNzYuLjQwZGI2YTI4YjAxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTE5Myw2 ICsxOTMsOSBAQCB0eXBlZGVmIE5vZGUgKigqQ29lcmNlUGFyYW1Ib29rKSAoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQYXJhbSAqcGFyYW0sCiAgKiBwX3Jlc29sdmVfdW5rbm93bnM6IHJlc29sdmUgdW5r bm93bi10eXBlIFNFTEVDVCBvdXRwdXQgY29sdW1ucyBhcyB0eXBlIFRFWFQKICAqICh0aGlzIGlz IHRydWUgYnkgZGVmYXVsdCkuCiAgKgorICogcF9ncmFwaF90YWJsZV9wc3RhdGU6IE5hbWVzcGFj ZSBmb3IgdGhlIEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBiZWluZworICogdHJhbnNmb3JtZWQsIGlm IGFueS4KKyAqCiAgKiBwX2hhc0FnZ3MsIHBfaGFzV2luZG93RnVuY3MsIGV0YzogdHJ1ZSBpZiB3 ZSd2ZSBmb3VuZCBhbnkgb2YgdGhlIGluZGljYXRlZAogICogY29uc3RydWN0cyBpbiB0aGUgcXVl cnkuCiAgKgpAQCAtMjM4LDYgKzI0MSw4IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJCQkJCQkJCQkg KiB0eXBlIHRleHQgKi8KIAogCVF1ZXJ5RW52aXJvbm1lbnQgKnBfcXVlcnlFbnY7CS8qIGN1cnIg ZW52LCBpbmNsIHJlZnMgdG8gZW5jbG9zaW5nIGVudiAqLworCUdyYXBoVGFibGVQYXJzZVN0YXRl ICpwX2dyYXBoX3RhYmxlX3BzdGF0ZTsgLyogQ3VycmVudCBncmFwaCB0YWJsZQorCQkJCQkJCQkJ CQkJICogbmFtZXNwYWNlLCBpZiBhbnkgKi8KIAogCS8qIEZsYWdzIHRlbGxpbmcgYWJvdXQgdGhp bmdzIGZvdW5kIGluIHRoZSBxdWVyeTogKi8KIAlib29sCQlwX2hhc0FnZ3M7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKaW5kZXgg NDMzMTZmYmMwMjkuLjcwYzRhZmRhNTJjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgub3V0CkBAIC05Niw3ICs5Niw3IEBAIFNFTEVD VCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnNSc6OnJlZ2NsYXNzKTsKICAgICAgICAgIHQxMiBLRVkg KGIpIFBST1BFUlRJRVMgKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgRURHRSBU QUJMRVMgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAg IHQxMyBLRVkgKGMpIFNPVVJDRSBLRVkgKGUpIFJFRkVSRU5DRVMgdDExIChhKSBERVNUSU5BVElP TiBLRVkgKGUpIFJFRkVSRU5DRVMgdDEyIChiKSBQUk9QRVJUSUVTIChjLCBkLCBlKSsKKyAgICAg ICAgIHQxMyBLRVkgKGMpIFNPVVJDRSBLRVkgKGQpIFJFRkVSRU5DRVMgdDExIChhKSBERVNUSU5B VElPTiBLRVkgKGUpIFJFRkVSRU5DRVMgdDEyIChiKSBQUk9QRVJUSUVTIChjLCBkLCBlKSsKICAg ICAgKQogKDEgcm93KQogCkBAIC0yNTUsNyArMjU1LDcgQEAgU0VMRUNUICogRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEucGdfZWRnZV90YWJsZV9jb21wb25lbnRzIE9SREVSIEJZIHByb3BlcnR5X2dy YXAKICByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAg ICAgICAgfCBTT1VSQ0UgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCiAgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBl MiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCB4ICAg ICAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgMQogIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQzICAgICAg ICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgdCAgICAgICAgICAgICAgICAgICAgICB8IHkgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKLSByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAg ICB8IHQxMyAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgfCBTT1VSQ0UgICAgICB8 IGUgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgIHwgdDEx ICAgICAgICAgICAgICAgIHwgU09VUkNFICAgICAgfCBkICAgICAgICAgICAgICAgICAgICAgIHwg YSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQogIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAg ICAgICAgIHwgdDEzICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAgICB8IERFU1RJTkFU SU9OIHwgZSAgICAgICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIDEKICgxMiByb3dzKQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Z3JhcGhfdGFibGUub3V0CmluZGV4IDg3YWIzZTMxYWY4Li4zNzk2Mjk3Y2IwNyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKQEAgLTM0OSw2ICszNDksMjUgQEAg c2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9tIGdyYXBo X3RhYmxlIChnMSBtYXRjaCAoYSBpcwogIHYxMSB8IGUxMzIgfCB2MzEgIHwgdmwzX3Byb3AgfCAg ICAgICAgfCAgIDIwMTAKICg0IHJvd3MpCiAKKy0tIGVkZ2VzIGRpcmVjdGVkIGluIGJvdGggd2F5 cyAtIHRvIGFuZCBmcm9tIHYyCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAo c3JjIElTIHZsMiktW2Nvbm5dLShkZXN0KSBDT0xVTU5TIChzcmMudm5hbWUgQVMgc25hbWUsIGNv bm4uZW5hbWUgQVMgY25hbWUsIGRlc3Qudm5hbWUgQVMgZG5hbWUpKTsKKyBzbmFtZSB8IGNuYW1l IHwgZG5hbWUgCistLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorIHYyMSAgIHwgZTEyMiAgfCB2MTIK KyB2MjIgICB8IGUxMjEgIHwgdjExCisgdjIxICAgfCBlMjExICB8IHYxMgorIHYyMiAgIHwgZTIz MSAgfCB2MzIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENI IChzcmMgSVMgdmwyKS0oZGVzdCkgQ09MVU1OUyAoc3JjLnZuYW1lIEFTIHNuYW1lLCBkZXN0LnZu YW1lIEFTIGRuYW1lKSk7Cisgc25hbWUgfCBkbmFtZSAKKy0tLS0tLS0rLS0tLS0tLQorIHYyMSAg IHwgdjEyCisgdjIyICAgfCB2MTEKKyB2MjEgICB8IHYxMgorIHYyMiAgIHwgdjMyCisoNCByb3dz KQorCiAtLSBFcnJvcnMKIC0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZw cm9wMgogc2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxl IChnMSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1u cyAoYS52bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29u biwgYy52bmFtZSBhcyBkZXN0KSk7CkBAIC00ODMsNyArNTAyLDcgQEAgU0VMRUNUICogRlJPTSBH UkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgd2hlcmUgYS52cHJvcDEgYmV0d2VlbiAyMCBhbmQgMjAw MCktPihiIHcKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlzIGwxKS1b YSBpcyBsMV0tPihiIGlzIGwxKSBjb2x1bW5zIChhLmVuYW1lIEFTIGFlbmFtZSwgYi5lbmFtZSBB UyBiZW5hbWUpKSBPUkRFUiBCWSAxLCAyOyAtLSBlcnJvcgogRVJST1I6ICBlbGVtZW50IHBhdHRl cm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lICJhIiBidXQgZGlmZmVyZW50IGVsZW1lbnQgcGF0 dGVybiB0eXBlcwogU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMgdmwx KS0+KGIpLT4oYSBpcyB2bDIpIFdIRVJFIGEudm5hbWUgPD4gYi52bmFtZSBDT0xVTU5TIChhLnZu YW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52 cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7ICAtLSBlcnJvcgot RVJST1I6ICBlbGVtZW50IHBhdHRlcm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lICJhIiBidXQg ZGlmZmVyZW50IGxhYmVsIGV4cHJlc3Npb25zCitFUlJPUjogIGVsZW1lbnQgcGF0dGVybnMgd2l0 aCBzYW1lIHZhcmlhYmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgbGFiZWwgZXhwcmVzc2lvbnMg YXJlIG5vdCBzdXBwb3J0ZWQKIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChh IGlzIHZsMSktPihiKS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0 aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JE RVIgQlkgc2VsZiwgdGhyb3VnaDsKICBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdo X3AxIAogLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCkBAIC02MDQsNSAr NjIzLDY1IEBAIFNFTEVDVCAqIEZST00gY3VzdG9tZXJzX3VzX3JlZGFjdGVkOwogIHJlZGFjdGVk MQogKDEgcm93KQogCistLSBHUkFQSF9UQUJMRSBpbiBVREZzCitDUkVBVEUgRlVOQ1RJT04gb3V0 X2RlZ3JlZShzbmFtZSB2YXJjaGFyKSBSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0RFQ0xBUkUKKyAg ICBvdXRfZGVncmVlIGludDsKK0JFR0lOCisgICAgU0VMRUNUIGNvdW50KCopIElOVE8gb3V0X2Rl Z3JlZQorICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIFdIRVJFIHNyYy52 bmFtZSA9IHNuYW1lKS0+KCkgQ09MVU1OUyAoc3JjLnZuYW1lKSk7CisgICAgUkVUVVJOIG91dF9k ZWdyZWU7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNUSU9OIGRpcmVj dF9jb25uZWN0aW9ucyhzbmFtZSB2YXJjaGFyKQorUkVUVVJOUyBUQUJMRSAoY25hbWUgdmFyY2hh ciwgZG5hbWUgdmFyY2hhcikKK0FTICQkCisgICAgU0VMRUNUIGNuYW1lLCBkbmFtZQorICAgICAg ICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoc3JjIFdIRVJFIHNyYy52bmFtZSA9IHNuYW1l KS1bY29ubl0tPihkc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGNv bm4uZW5hbWUgQVMgY25hbWUsIGRzdC52bmFtZSBBUyBkbmFtZSkpOworJCQgTEFOR1VBR0UgU1FM OworU0VMRUNUIHNuYW1lLCBvdXRfZGVncmVlKHNuYW1lKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoc3JjIElTIHZsMSkgQ09MVU1OUyAoc3JjLnZuYW1lIEFTIHNuYW1lKSk7Cisgc25hbWUg fCBvdXRfZGVncmVlIAorLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2MTEgICB8IDMKKyB2MTIgICB8 IDEKKyB2MTMgICB8IDEKKygzIHJvd3MpCisKK1NFTEVDVCBzbmFtZSwgY25hbWUsIGRuYW1lCisg ICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJUyB2bDEpIENPTFVNTlMgKHNyYy52 bmFtZSBBUyBzbmFtZSkpLAorICAgICAgICAgTEFURVJBTCBkaXJlY3RfY29ubmVjdGlvbnMoc25h bWUpOworIHNuYW1lIHwgY25hbWUgfCBkbmFtZSAKKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tCisg djExICAgfCBlMTIxICB8IHYyMgorIHYxMSAgIHwgZTEzMSAgfCB2MzMKKyB2MTEgICB8IGUxMzIg IHwgdjMxCisgdjEyICAgfCBlMTIyICB8IHYyMQorIHYxMyAgIHwgZTEyMyAgfCB2MjMKKyg1IHJv d3MpCisKKy0tIEdSQVBIX1RBQkxFIGpvaW5lZCB0byBhIHJlZ3VsYXIgdGFibGUKK1NFTEVDVCAq CisgICAgRlJPTSBjdXN0b21lcnMgY28sCisgICAgICAgICBHUkFQSF9UQUJMRSAobXlzaG9wMiBN QVRDSCAoY2cgSVMgY3VzdG9tZXJzIFdIRVJFIGNnLmFkZHJlc3MgPSBjby5hZGRyZXNzKS1bSVMg Y3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ09MVU1OUyAoY2cubmFtZV9yZWRhY3RlZCBBUyBjdXN0b21lcl9uYW1lX3JlZGFjdGVk KSkKKyAgICBXSEVSRSBjby5jdXN0b21lcl9pZCA9IDE7CisgY3VzdG9tZXJfaWQgfCAgIG5hbWUg ICAgfCBhZGRyZXNzIHwgY3VzdG9tZXJfbmFtZV9yZWRhY3RlZCAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAx IHwgY3VzdG9tZXIxIHwgVVMgICAgICB8IHJlZGFjdGVkMQorKDEgcm93KQorCistLSBxdWVyeSB3 aXRoaW4gZ3JhcGggdGFibGUKK1NFTEVDVCBzbmFtZSwgZG5hbWUKKyAgICBGUk9NIEdSQVBIX1RB QkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgV0hF UkUgc3JjLnZwcm9wMSA+IChTRUxFQ1QgbWF4KHYxLnZwcm9wMSkgRlJPTSB2MSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICBDT0xVTU5TKHNyYy52bmFtZSBhcyBzbmFtZSwgZGVzdC52bmFtZSBh cyBkbmFtZSkpOworRVJST1I6ICBzdWJxdWVyaWVzIHdpdGhpbiBHUkFQSF9UQUJMRSByZWZlcmVu Y2UgYXJlIG5vdCBzdXBwb3J0ZWQKK1NFTEVDVCBzbmFtZSwgZG5hbWUKKyAgICBGUk9NIEdSQVBI X1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAg V0hFUkUgb3V0X2RlZ3JlZShzcmMudm5hbWUpID4gKFNFTEVDVCBtYXgob3V0X2RlZ3JlZShubmFt ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAobm9kZSkgQ09MVU1OUyAobm9kZS52 bmFtZSBBUyBubmFtZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMoc3JjLnZu YW1lIGFzIHNuYW1lLCBkZXN0LnZuYW1lIGFzIGRuYW1lKSk7CitFUlJPUjogIHN1YnF1ZXJpZXMg d2l0aGluIEdSQVBIX1RBQkxFIHJlZmVyZW5jZSBhcmUgbm90IHN1cHBvcnRlZAogLS0gbGVhdmUg Zm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0ZXN0cwogLS1EUk9QIFNDSEVNQSBncmFwaF90YWJsZV90 ZXN0cyBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFi bGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCmluZGV4IGYzNDYx NjE2M2FhLi45MDViZTlkZjAxYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3Jh cGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbApA QCAtMjYyLDYgKzI2Miw5IEBAIFNFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChh IElTIHZsMSB8IHZsMikgQ09MVU1OUyAoYS52bmFtZSwKIGEudnByb3AxKSk7CiAtLSB2cHJvcDIg aXMgYXNzb2NpYXRlZCB3aXRoIHZsMiBidXQgbm90IHZsMwogc2VsZWN0IHNyYywgY29ubiwgZGVz dCwgbHByb3AxLCB2cHJvcDIsIHZwcm9wMSBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBp cyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52bmFtZSBhcyBz cmMsIGIuZW5hbWUgYXMgY29ubiwgYy52bmFtZSBhcyBkZXN0LCBjLmxwcm9wMSwgYy52cHJvcDIs IGMudnByb3AxKSk7CistLSBlZGdlcyBkaXJlY3RlZCBpbiBib3RoIHdheXMgLSB0byBhbmQgZnJv bSB2MgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJUyB2bDIpLVtj b25uXS0oZGVzdCkgQ09MVU1OUyAoc3JjLnZuYW1lIEFTIHNuYW1lLCBjb25uLmVuYW1lIEFTIGNu YW1lLCBkZXN0LnZuYW1lIEFTIGRuYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoc3JjIElTIHZsMiktKGRlc3QpIENPTFVNTlMgKHNyYy52bmFtZSBBUyBzbmFtZSwg ZGVzdC52bmFtZSBBUyBkbmFtZSkpOwogCiAtLSBFcnJvcnMKIC0tIHZsMSBpcyBub3QgYXNzb2Np YXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgpAQCAtMzk0LDUgKzM5Nyw0NyBAQCBDUkVBVEUgVklF VyBjdXN0b21lcnNfdXNfcmVkYWN0ZWQgQVMgU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlz aG9wMiBNQVRDSCAoYwogCiBTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyc191c19yZWRhY3RlZDsKIAor LS0gR1JBUEhfVEFCTEUgaW4gVURGcworQ1JFQVRFIEZVTkNUSU9OIG91dF9kZWdyZWUoc25hbWUg dmFyY2hhcikgUkVUVVJOUyB2YXJjaGFyIEFTICQkCitERUNMQVJFCisgICAgb3V0X2RlZ3JlZSBp bnQ7CitCRUdJTgorICAgIFNFTEVDVCBjb3VudCgqKSBJTlRPIG91dF9kZWdyZWUKKyAgICAgICAg RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBXSEVSRSBzcmMudm5hbWUgPSBzbmFtZSkt PigpIENPTFVNTlMgKHNyYy52bmFtZSkpOworICAgIFJFVFVSTiBvdXRfZGVncmVlOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIEZVTkNUSU9OIGRpcmVjdF9jb25uZWN0aW9u cyhzbmFtZSB2YXJjaGFyKQorUkVUVVJOUyBUQUJMRSAoY25hbWUgdmFyY2hhciwgZG5hbWUgdmFy Y2hhcikKK0FTICQkCisgICAgU0VMRUNUIGNuYW1lLCBkbmFtZQorICAgICAgICBGUk9NIEdSQVBI X1RBQkxFIChnMSBNQVRDSCAoc3JjIFdIRVJFIHNyYy52bmFtZSA9IHNuYW1lKS1bY29ubl0tPihk c3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGNvbm4uZW5hbWUgQVMg Y25hbWUsIGRzdC52bmFtZSBBUyBkbmFtZSkpOworJCQgTEFOR1VBR0UgU1FMOworCitTRUxFQ1Qg c25hbWUsIG91dF9kZWdyZWUoc25hbWUpIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChzcmMg SVMgdmwxKSBDT0xVTU5TIChzcmMudm5hbWUgQVMgc25hbWUpKTsKK1NFTEVDVCBzbmFtZSwgY25h bWUsIGRuYW1lCisgICAgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKHNyYyBJUyB2bDEpIENP TFVNTlMgKHNyYy52bmFtZSBBUyBzbmFtZSkpLAorICAgICAgICAgTEFURVJBTCBkaXJlY3RfY29u bmVjdGlvbnMoc25hbWUpOworCistLSBHUkFQSF9UQUJMRSBqb2luZWQgdG8gYSByZWd1bGFyIHRh YmxlCitTRUxFQ1QgKgorICAgIEZST00gY3VzdG9tZXJzIGNvLAorICAgICAgICAgR1JBUEhfVEFC TEUgKG15c2hvcDIgTUFUQ0ggKGNnIElTIGN1c3RvbWVycyBXSEVSRSBjZy5hZGRyZXNzID0gY28u YWRkcmVzcyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENPTFVNTlMgKGNnLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJf bmFtZV9yZWRhY3RlZCkpCisgICAgV0hFUkUgY28uY3VzdG9tZXJfaWQgPSAxOworCistLSBxdWVy eSB3aXRoaW4gZ3JhcGggdGFibGUKK1NFTEVDVCBzbmFtZSwgZG5hbWUKKyAgICBGUk9NIEdSQVBI X1RBQkxFIChnMSBNQVRDSCAoc3JjKS0+KGRlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAg V0hFUkUgc3JjLnZwcm9wMSA+IChTRUxFQ1QgbWF4KHYxLnZwcm9wMSkgRlJPTSB2MSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICBDT0xVTU5TKHNyYy52bmFtZSBhcyBzbmFtZSwgZGVzdC52bmFt ZSBhcyBkbmFtZSkpOworU0VMRUNUIHNuYW1lLCBkbmFtZQorICAgIEZST00gR1JBUEhfVEFCTEUg KGcxIE1BVENIIChzcmMpLT4oZGVzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBv dXRfZGVncmVlKHNyYy52bmFtZSkgPiAoU0VMRUNUIG1heChvdXRfZGVncmVlKG5uYW1lKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChub2RlKSBDT0xVTU5TIChub2RlLnZuYW1lIEFT IG5uYW1lKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgQ09MVU1OUyhzcmMudm5hbWUgYXMg c25hbWUsIGRlc3Qudm5hbWUgYXMgZG5hbWUpKTsKKwogLS0gbGVhdmUgZm9yIHBnX3VwZ3JhZGUv cGdfZHVtcCB0ZXN0cwogLS1EUk9QIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBDQVNDQURFOwot LSAKMi4zOS41Cgo= --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0003-Support-cyclic-path-pattern.patch" Content-Disposition: attachment; filename="v10-0003-Support-cyclic-path-pattern.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioon9 RnJvbSAxODY4ZDZjNjIxNGIwYzE0N2UyMDQzY2I2NTYyNDZhNzhjNTVjNDhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVGh1LCAxIEF1ZyAyMDI0IDEwOjUyOjM1ICswNTMwClN1YmplY3Q6 IFtQQVRDSCB2MTAgMDMvMTJdIFN1cHBvcnQgY3ljbGljIHBhdGggcGF0dGVybi4KCkEgY3ljbGlj IHBhdGggcGF0dGVybiBpcyBhIHBhdGggcGF0dGVybnMgd2hlcmUgYW4gZWxlbWVudCBwYXR0ZXJu IHZhcmlhYmxlCnJlcGVhdHMgaW4gbXVsdGlwbGUgZWxlbWVudCBwYXRoIHBhdHRlcm5zLiBJbiBz dWNoIGEgcGF0aCBwYXR0ZXJuIHRoZSBlbGVtZW50CnBhdHRlcm5zIHdpdGggdGhlIHNhbWUgdmFy aWFibGUgaW5kaWNhdGUgdGhlIHNhbWUgZWxlbWVudCBpbiB0aGUgcGF0aC4KCkVsZW1lbnRzIHdo aWNoIHNoYXJlIHRoZSB2YXJpYWJsZSBuYW1lIHNob3VsZCBoYXZlIHRoZSBzYW1lIGVsZW1lbnQg dHlwZS4gVGhlCmVsZW1lbnQgcGF0dGVybnMgc2hhcmluZyB0aGUgc2FtZSB2YXJpYWJsZSBuYW1l IHNob3VsZCBoYXZlIHNhbWUgbGFiZWwKZXhwcmVzc2lvbi4gVGhlIHBhdHRlcm5zIG1heSBiZSBo YXZlIGRpZmZlcmVudCBjb25kaXRpb25zIHdoaWNoIGFyZSBmaW5hbGx5CkFORGVkIHNpbmNlIHRo ZXkgYWxsIHJlcHJlc2VudCB0aGUgc2FtZSBlbGVtZW50LgoKV2hpbGUgaXQncyBlYXN5IHRvIGlt YWdpbmUgYSByZXBlYXRlZCB2ZXJ0ZXggcGF0dGVybiwgYSByZXBlYXRlZCBlZGdlIHBhdHRlcm4K aXMgc2xpZ2h0bHkgY29tcGxleC4gQW4gZWRnZSBjb25uZWN0cyBvbmx5IHR3byB2ZXJ0aWNlcywg YW5kIHRodXMgYSByZXBlYXRlZAplZGdlIHBhdHRlcm4gY29uc3RyYWlucyB0aGUgYWRqYWNlbnQg dmVydGV4IHBhdHRlcm5zIGV2ZW4gaWYgdGhleSBoYXZlCmRpZmZlcmVudCB2YXJpYWJsZSBuYW1l cy4gU3VjaCBwYXR0ZXJucyBhcmUgbm90IHN1cHBvcnRlZC4KCkF1dGhvcjogQXNodXRvc2ggQmFw YXQKLS0tCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMgICB8IDM5MCAr KysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3Rh YmxlLm91dCB8IDExOSArKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5z cWwgICAgICB8ICA1MiArKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDA3IGluc2VydGlvbnMoKyksIDE1 NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVH cmFwaFRhYmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5k ZXggNGI3ODdhMmU4OGYuLjZlMmU2ZWQzOGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl R3JhcGhUYWJsZS5jCkBAIC0zOCwyNCArMzgsNDUgQEAKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNo ZS5oIgogCiAKKy8qCisgKiBSZXByZXNlbnRzIG9uZSBwYXRoIGZhY3RvciBpbiBhIHBhdGguCisg KgorICogT25lIHBhdGggZmFjdG9yIGNvcnJlc3BvbmRzIHRvIG9uZSBlbGVtZW50IHBhdHRlcm4g aW4gYSBzaW1wbGUgcGF0aC4KKyAqCisgKiBJbiBhIGN5Y2xpYyBwYXRoLCBvbmUgcGF0aCBmYWN0 b3IgbWF5IGNvcnJlc3BvbmQgdG8gb25lIG9yIG1vcmUgZWxlbWVudAorICogcGF0dGVybnMgYWxs IHBvaW50aW5nIHRvIHRoZSBzYW1lIGdyYXBoIGVsZW1lbnQuIFRoZSBtZW1iZXJzIG9mIHN1Y2gg YSBwYXRoCisgKiBmYWN0b3IgYXJlIGEgY29tYmluYXRpb24gb2YgY29ycmVzcG9uZGluZyBzcGVj aWZpY2F0aW9ucyBpbiB0aGUgZWxlbWVudAorICogcGF0dGVybnMuCisgKi8KK3N0cnVjdCBwYXRo X2ZhY3RvcgoreworCUdyYXBoRWxlbWVudFBhdHRlcm5LaW5kIGtpbmQ7CisJY29uc3QgY2hhciAq dmFyaWFibGU7CisJTm9kZQkgICAqbGFiZWxleHByOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOwor CWludAkJCWZhY3RvcnBvczsJCS8qIFBvc2l0aW9uIG9mIHRoaXMgcGF0aCBmYWN0b3IgaW4gYSBw YXRoLiAqLworCUxpc3QJICAgKmxhYmVsb2lkczsJCS8qIE9JRHMgb2YgYWxsIHRoZSBsYWJlbHMg cmVmZXJlbmNlZCBpbgorCQkJCQkJCQkgKiBsYWJlbGV4cHIuICovCisJLyogTGlua3MgdG8gdmVy dGV4IHBhdGggZmFjdG9ycyBjb25uZWN0ZWQgYnkgdGhpcyBlZGdlIHBhdGggZmFjdG9yLiAqLwor CXN0cnVjdCBwYXRoX2ZhY3RvciAqc3JjX3BmOworCXN0cnVjdCBwYXRoX2ZhY3RvciAqZGVzdF9w ZjsKK307CisKIC8qCiAgKiBSZXByZXNlbnRzIG9uZSBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICh2 ZXJ0ZXggb3IgZWRnZSkgaW4gdGhlIHBhdGguCiAgKgogICogTGFiZWwgZXhwcmVzc2lvbiBpbiBh biBlbGVtZW50IHBhdHRlcm4gcmVzb2x2ZXMgaW50byBhIHNldCBvZiBlbGVtZW50cy4gRm9yCiAg KiBlYWNoIG9mIHRob3NlIGVsZW1lbnRzIHdlIGNyZWF0ZSBvbmUgZ3JhcGhfcGF0aF9lbGVtZW50 IG9iamVjdC4KICAqLwotc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudAorc3RydWN0IHBhdGhfZWxl bWVudAogewogCU9pZAkJCWVsZW1vaWQ7CiAJT2lkCQkJcmVsb2lkOwotCWludAkJCXJ0aW5kZXg7 Ci0JTGlzdAkgICAqbGFiZWxvaWRzOwogCU9pZAkJCXNyY3ZlcnRleGlkOwotCWludAkJCXNyY2Vs ZW1fcG9zOwogCU9pZAkJCWRlc3R2ZXJ0ZXhpZDsKLQlpbnQJCQlkZXN0ZWxlbV9wb3M7CiAJTGlz dAkgICAqcXVhbF9leHByczsKLQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpwYXJlbnRfZ2VwOworCS8q IFBhdGggZmFjdG9yIGZyb20gd2hpY2ggdGhpcyBlbGVtZW50IGlzIGRlcml2ZWQuICovCisJc3Ry dWN0IHBhdGhfZmFjdG9yICpwYXRoX2ZhY3RvcjsKIH07CiAKIHN0YXRpYyBOb2RlICpyZXBsYWNl X3Byb3BlcnR5X3JlZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICpt YXBwaW5ncyk7CkBAIC02Nyw3ICs4OCw3IEBAIHN0YXRpYyBMaXN0ICpnZW5lcmF0ZV9xdWVyaWVz X2Zvcl9wYXRoX3BhdHRlcm5fcmVjdXJzZShSYW5nZVRibEVudHJ5ICpydGUsIExpc3QKIHN0YXRp YyBRdWVyeSAqZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVu dHJ5ICpydGUpOwogc3RhdGljIFF1ZXJ5ICpnZW5lcmF0ZV91bmlvbl9mcm9tX3BhdGhxdWVyaWVz KExpc3QgKipwYXRocXVlcmllcyk7CiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2dlcF9raW5kX25h bWUoR3JhcGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7Ci1zdGF0aWMgTGlzdCAqZ2V0X2Vs ZW1lbnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAs IGludCBlbGVtcG9zKTsKK3N0YXRpYyBMaXN0ICpnZXRfcGF0aF9lbGVtZW50c19mb3JfcGF0aF9m YWN0b3IoT2lkIHByb3BncmFwaGlkLCBzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBmKTsKIHN0YXRpYyBi b29sIGlzX3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxvaWQsIE9pZCBw cm9wb2lkKTsKIHN0YXRpYyBjb25zdCBjaGFyICpnZXRfZ3JhcGhfZWxlbV9raW5kX25hbWUoR3Jh cGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CiBzdGF0aWMgTm9kZSAqZ2V0X2VsZW1lbnRf cHJvcGVydHlfZXhwcihPaWQgZWxlbW9pZCwgT2lkIHByb3BvaWQsIGludCBydGluZGV4KTsKQEAg LTE1Nyw4ICsxNzgsOSBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VU YmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiB7CiAJTGlzdAkgICAqcGF0aHF1ZXJp ZXMgPSBOSUw7CiAJTGlzdAkgICAqcGF0aF9lbGVtX2xpc3RzID0gTklMOwotCUxpc3RDZWxsICAg KmxjOwotCWludAkJCWVsZW1wb3MgPSAwOworCWludAkJCWZhY3RvcnBvcyA9IDA7CisJTGlzdAkg ICAqcGF0aF9mYWN0b3JzID0gTklMOworCXN0cnVjdCBwYXRoX2ZhY3RvciAqcHJldl9wZiA9IE5V TEw7CiAKIAlBc3NlcnQobGlzdF9sZW5ndGgocGF0aF9wYXR0ZXJuKSA+IDApOwogCkBAIC0xNjYs OSArMTg4LDkgQEAgZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50 cnkgKnJ0ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQogCSAqIEZvciBldmVyeSBlbGVtZW50IHBhdHRl cm4gaW4gdGhlIGdpdmVuIHBhdGggcGF0dGVybiBjb2xsZWN0IGFsbCB0aGUKIAkgKiBncmFwaCBl bGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIGVsZW1lbnQgcGF0dGVybi4KIAkgKi8KLQlmb3JlYWNo KGxjLCBwYXRoX3BhdHRlcm4pCisJZm9yZWFjaF9ub2RlKEdyYXBoRWxlbWVudFBhdHRlcm4sIGdl cCwgcGF0aF9wYXR0ZXJuKQogCXsKLQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0 X25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpOworCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKnBm ID0gTlVMTDsKIAogCQlpZiAoZ2VwLT5raW5kICE9IFZFUlRFWF9QQVRURVJOICYmCiAJCQlnZXAt PmtpbmQgIT0gRURHRV9QQVRURVJOX0xFRlQgJiYgZ2VwLT5raW5kICE9IEVER0VfUEFUVEVSTl9S SUdIVCkKQEAgLTE3NywxMyArMTk5LDEzMiBAQCBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3Bh dHRlcm4oUmFuZ2VUYmxFbnRyeSAqcnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCiAJCWlmIChnZXAt PnF1YW50aWZpZXIpCiAJCQllbG9nKEVSUk9SLCAiZWxlbWVudCBwYXR0ZXJuIHF1YW50aWZpZXIg bm90IHN1cHBvcnRlZCB5ZXQiKTsKIAotCQlwYXRoX2VsZW1fbGlzdHMgPSBsYXBwZW5kKHBhdGhf ZWxlbV9saXN0cywKLQkJCQkJCQkJICBnZXRfZWxlbWVudHNfZm9yX2dlcChydGUtPnJlbGlkLCBn ZXAsIGVsZW1wb3MrKykpOworCQkvKgorCQkgKiBFbGVtZW50IHBhdHRlcm5zIHdpdGggdGhlIHNh bWUgbmFtZSByZXByZXNlbnQgdGhlIHNhbWUgZWxlbWVudCBhbmQKKwkJICogaGVuY2Ugc2FtZSBw YXRoIGZhY3Rvci4gVGhleSBkbyBub3QgYWRkIGEgbmV3IGdyYXBoIGVsZW1lbnQgdG8gdGhlCisJ CSAqIHF1ZXJ5IGJ1dCBhZmZlY3QgdGhlIGxpbmtzIG9mIGFkamFjZW50IGVsZW1lbnRzLgorCQkg Ki8KKwkJZm9yZWFjaF9wdHIoc3RydWN0IHBhdGhfZmFjdG9yLCBvdGhlciwgcGF0aF9mYWN0b3Jz KQorCQl7CisJCQlpZiAoZ2VwLT52YXJpYWJsZSAmJiBvdGhlci0+dmFyaWFibGUgJiYKKwkJCQlz dHJjbXAoZ2VwLT52YXJpYWJsZSwgb3RoZXItPnZhcmlhYmxlKSA9PSAwKQorCQkJeworCQkJCWlm IChvdGhlci0+a2luZCAhPSBnZXAtPmtpbmQpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCS8q IFhYWDogdXNlIGNvcnJlY3QgZXJyb3IgY29kZS4gKi8KKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNnKCJlbGVtZW50IHBhdHRl cm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lIFwiJXNcIiBidXQgZGlmZmVyZW50IGVsZW1lbnQg cGF0dGVybiB0eXBlcyIsCisJCQkJCQkJCQlnZXAtPnZhcmlhYmxlKSkpOworCisJCQkJLyoKKwkJ CQkgKiBJZiBvbmx5IG9uZSBvZiB0aGUgdHdvIGVsZW1lbnQgcGF0dGVybnMgaGFzIGEgbGFiZWwK KwkJCQkgKiBleHByZXNzaW9uIHVzZSBpdC4gT3RoZXJ3aXNlIG1ha2Ugc3VyZSB0aGF0IGJvdGgg b2YgdGhlbQorCQkJCSAqIGhhdmUgdGhlIHNhbWUgbGFiZWwgZXhwcmVzc2lvbi4gSWYgdGhleSBo YXZlIGRpZmZlcmVudAorCQkJCSAqIGxhYmVsIGV4cHJlc3Npb25zIHRoZXkgbmVlZCB0byBiZSBj b25qdW5jdGVkLiBMYWJlbAorCQkJCSAqIGNvbmp1Y3Rpb24gaXMgbm90IHN1cHBvcnRlZCByaWdo dCBub3cuCisJCQkJICovCisJCQkJaWYgKCFvdGhlci0+bGFiZWxleHByKQorCQkJCQlvdGhlci0+ bGFiZWxleHByID0gZ2VwLT5sYWJlbGV4cHI7CisJCQkJZWxzZSBpZiAoZ2VwLT5sYWJlbGV4cHIg JiYgIWVxdWFsKG90aGVyLT5sYWJlbGV4cHIsIGdlcC0+bGFiZWxleHByKSkKKwkJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJLyogWFhYOiBVc2UgY29ycmVjdCBlcnJvciBjb2RlLiAqLworCQkJCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCSBlcnJt c2coImVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgXCIlc1wiIGJ1dCBk aWZmZXJlbnQgbGFiZWwgZXhwcmVzc2lvbnMiLAorCQkJCQkJCQkJZ2VwLT52YXJpYWJsZSkpKTsK KworCQkJCS8qIEJvdGggc2V0cyBvZiBjb25kaXRpb25zIGFwcGx5IHRvIHRoZSBlbGVtZW50IHBh dHRlcm4uICovCisJCQkJaWYgKCFvdGhlci0+d2hlcmVDbGF1c2UpCisJCQkJCW90aGVyLT53aGVy ZUNsYXVzZSA9IGdlcC0+d2hlcmVDbGF1c2U7CisJCQkJZWxzZSBpZiAoZ2VwLT53aGVyZUNsYXVz ZSkKKwkJCQkJb3RoZXItPndoZXJlQ2xhdXNlID0gKE5vZGUgKikgbWFrZUJvb2xFeHByKEFORF9F WFBSLAorCQkJCQkJCQkJCQkJCQkJICAgbGlzdF9tYWtlMihvdGhlci0+d2hlcmVDbGF1c2UsIGdl cC0+d2hlcmVDbGF1c2UpLAorCQkJCQkJCQkJCQkJCQkJICAgLTEpOworCQkJCXBmID0gb3RoZXI7 CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoIXBmKQorCQl7CisJCQl7CisJCQkJcGYg PSBwYWxsb2MwX29iamVjdChzdHJ1Y3QgcGF0aF9mYWN0b3IpOworCQkJCXBmLT5mYWN0b3Jwb3Mg PSBmYWN0b3Jwb3MrKzsKKwkJCQlwZi0+a2luZCA9IGdlcC0+a2luZDsKKwkJCQlwZi0+bGFiZWxl eHByID0gZ2VwLT5sYWJlbGV4cHI7CisJCQkJcGYtPnZhcmlhYmxlID0gZ2VwLT52YXJpYWJsZTsK KwkJCQlwZi0+d2hlcmVDbGF1c2UgPSBnZXAtPndoZXJlQ2xhdXNlOworCisJCQkJcGF0aF9mYWN0 b3JzID0gbGFwcGVuZChwYXRoX2ZhY3RvcnMsIHBmKTsKKwkJCX0KKwkJfQorCisJCS8qCisJCSAq IFNldHVwIGFkamFjZW50IHBhdGggZmFjdG9ycy4gSWYgbXVsdGlwbGUgZWRnZSBwYXR0ZXJucyBz aGFyZSB0aGUKKwkJICogc2FtZSB2YXJpYWJsZSBuYW1lLCB0aGV5IGNvbnN0YWluIHRoZSBhZGph Y2VudCB2ZXJ0ZXggcGF0dGVybnMKKwkJICogc2luY2UgYW4gZWRnZSBjYW4gY29ubmVjdCBvbmx5 IG9uZSBwYWlyIG9mIHZlcnRleGVzIGFuZCB0aG9zZQorCQkgKiB2ZXJ0ZXhlcyBhbHNvIG5lZWQg dG8gcmVwZWF0ZWQgYWxvbmcgd2l0aCB0aGUgZWRnZSAoYSB3YWxrKS4gVGhpcworCQkgKiBtZWFu cyB0aGF0IHdlIGhhdmUgdG8gY29hbGVzY2UgdGhlIHZlcnRleCBwYXR0ZXJucyBhZGphY2VudCB0 byBhCisJCSAqIHJlcGVhdGVkIGVkZ2UgZXZlbiB0aG91Z2ggdGhleSBoYXZlIGRpZmZlcmVudCB2 YXJpYWJsZXMuICBFLmcuCisJCSAqIChhKS1bYl0tPihjKS1bYl08LShkKSBpbXBsaWVzIHRoYXQg KGEpIGFuZCAoZCkgcmVwcmVzZW50IHRoZSBzYW1lCisJCSAqIHZlcnRleCBlbGVtZW50IHBhdHRl cm4uIFRoaXMgaXMgc2xpZ2hseSBoYXJkZXIgdG8gaW1wbGVtZW50IGFuZAorCQkgKiBwcm9iYWJs eSBsZXNzIHVzZWZ1bC4gSGVuY2Ugbm90IHN1cHBvcnRlZCBmb3Igbm93LgorCQkgKi8KKwkJaWYg KHByZXZfcGYpCisJCXsKKwkJCWlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdI VCkKKwkJCXsKKwkJCQlBc3NlcnQoIUlTX0VER0VfUEFUVEVSTihwZi0+a2luZCkpOworCQkJCWlm IChwcmV2X3BmLT5kZXN0X3BmICYmIHByZXZfcGYtPmRlc3RfcGYgIT0gcGYpCisJCQkJCWVsb2co RVJST1IsICJBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2 ZW4gaW4gYSBjeWNsaWMgcGF0dGVybi4iKTsKKwkJCQlwcmV2X3BmLT5kZXN0X3BmID0gcGY7CisJ CQl9CisJCQllbHNlIGlmIChwcmV2X3BmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUKQorCQkJ eworCQkJCUFzc2VydCghSVNfRURHRV9QQVRURVJOKHBmLT5raW5kKSk7CisJCQkJaWYgKHByZXZf cGYtPnNyY19wZiAmJiBwcmV2X3BmLT5zcmNfcGYgIT0gcGYpCisJCQkJCWVsb2coRVJST1IsICJB biBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2ZW4gaW4gYSBj eWNsaWMgcGF0dGVybi4iKTsKKwkJCQlwcmV2X3BmLT5zcmNfcGYgPSBwZjsKKwkJCX0KKwkJCWVs c2UgaWYgKHByZXZfcGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0FOWSkKKwkJCXsKKwkJCQkvKiBX ZSBkb24ndCBzdXBwb3J0IHVuZGlyZWN0ZWQgZWRnZXMgeWV0LiAqLworCQkJCUFzc2VydChmYWxz ZSk7CisJCQl9CisKKwkJCWlmIChwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpCisJCQl7 CisJCQkJQXNzZXJ0KCFJU19FREdFX1BBVFRFUk4ocHJldl9wZi0+a2luZCkpOworCQkJCWlmIChw Zi0+c3JjX3BmICYmIHBmLT5zcmNfcGYgIT0gcHJldl9wZikKKwkJCQkJZWxvZyhFUlJPUiwgIkFu IGVkZ2UgY2FuIG5vdCBjb25uZWN0IG1vcmUgdGhhbiB0d28gdmVydGV4ZXMgZXZlbiBpbiBhIGN5 Y2xpYyBwYXR0ZXJuLiIpOworCQkJCXBmLT5zcmNfcGYgPSBwcmV2X3BmOworCQkJfQorCQkJZWxz ZSBpZiAocGYtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQpCisJCQl7CisJCQkJQXNzZXJ0KCFJ U19FREdFX1BBVFRFUk4ocHJldl9wZi0+a2luZCkpOworCQkJCWlmIChwZi0+ZGVzdF9wZiAmJiBw Zi0+ZGVzdF9wZiAhPSBwcmV2X3BmKQorCQkJCQllbG9nKEVSUk9SLCAiQW4gZWRnZSBjYW4gbm90 IGNvbm5lY3QgbW9yZSB0aGFuIHR3byB2ZXJ0ZXhlcyBldmVuIGluIGEgY3ljbGljIHBhdHRlcm4u Iik7CisJCQkJcGYtPmRlc3RfcGYgPSBwcmV2X3BmOworCQkJfQorCQkJZWxzZSBpZiAocGYtPmtp bmQgPT0gRURHRV9QQVRURVJOX0FOWSkKKwkJCXsKKwkJCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVu ZGlyZWN0ZWQgZWRnZXMgeWV0LiAqLworCQkJCUFzc2VydChmYWxzZSk7CisJCQl9CisJCX0KKwor CQlwcmV2X3BmID0gcGY7CiAJfQogCisJLyoKKwkgKiBDb2xsZWN0IGxpc3Qgb2YgZWxlbWVudHMg Zm9yIGVhY2ggcGF0aCBmYWN0b3IuIERvIHRoaXMgYWZ0ZXIgYWxsIHRoZQorCSAqIGVkZ2UgbGlu a3MgYXJlIHNldHVwIGNvcnJlY3RseS4KKwkgKi8KKwlmb3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9m YWN0b3IsIHBmLCBwYXRoX2ZhY3RvcnMpCisJCXBhdGhfZWxlbV9saXN0cyA9IGxhcHBlbmQocGF0 aF9lbGVtX2xpc3RzLAorCQkJCQkJCQkgIGdldF9wYXRoX2VsZW1lbnRzX2Zvcl9wYXRoX2ZhY3Rv cihydGUtPnJlbGlkLCBwZikpOworCiAJcGF0aHF1ZXJpZXMgPSBnZW5lcmF0ZV9xdWVyaWVzX2Zv cl9wYXRoX3BhdHRlcm5fcmVjdXJzZShydGUsIHBhdGhxdWVyaWVzLAogCQkJCQkJCQkJCQkJCQkJ TklMLCBwYXRoX2VsZW1fbGlzdHMsIDApOwotCiAJaWYgKCFwYXRocXVlcmllcykKIAkJcGF0aHF1 ZXJpZXMgPSBsaXN0X21ha2UxKGdlbmVyYXRlX3F1ZXJ5X2Zvcl9lbXB0eV9wYXRoX3BhdHRlcm4o cnRlKSk7CiAKQEAgLTE5NiwxNSArMzM3LDEyIEBAIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhf cGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUsIExpc3QgKnBhdGhfcGF0dGVybikKIHN0YXRpYyBM aXN0ICoKIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKFJhbmdlVGJs RW50cnkgKnJ0ZSwgTGlzdCAqcGF0aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRoLCBMaXN0ICpwYXRo X2VsZW1fbGlzdHMsIGludCBlbGVtcG9zKQogewotCUxpc3QJICAgKmdlcF9lbGVtcyA9IGxpc3Rf bnRoX25vZGUoTGlzdCwgcGF0aF9lbGVtX2xpc3RzLCBlbGVtcG9zKTsKLQlMaXN0Q2VsbCAgICps YzsKKwlMaXN0CSAgICpwYXRoX2VsZW1zID0gbGlzdF9udGhfbm9kZShMaXN0LCBwYXRoX2VsZW1f bGlzdHMsIGVsZW1wb3MpOwogCi0JZm9yZWFjaChsYywgZ2VwX2VsZW1zKQorCWZvcmVhY2hfcHRy KHN0cnVjdCBwYXRoX2VsZW1lbnQsIHBlLCBwYXRoX2VsZW1zKQogCXsKLQkJc3RydWN0IGdyYXBo X3BhdGhfZWxlbWVudCAqZWxlbSA9IGxmaXJzdChsYyk7Ci0KIAkJLyogVXBkYXRlIGN1cnJlbnQg cGF0aCBiZWluZyBidWlsdCB3aXRoIGN1cnJlbnQgZWxlbWVudC4gKi8KLQkJY3VyX3BhdGggPSBs YXBwZW5kKGN1cl9wYXRoLCBlbGVtKTsKKwkJY3VyX3BhdGggPSBsYXBwZW5kKGN1cl9wYXRoLCBw ZSk7CiAKIAkJLyoKIAkJICogSWYgdGhpcyBpcyB0aGUgbGFzdCBlbGVtZW50IGluIHRoZSBwYXRo LCBnZW5lcmF0ZSBxdWVyeSBmb3IgdGhlCkBAIC0yMzgsNTAgKzM3Niw0NyBAQCBnZW5lcmF0ZV9x dWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm5fcmVjdXJzZShSYW5nZVRibEVudHJ5ICpydGUsIExpc3Qg KnBhdGhxdWVyaWVzLAogc3RhdGljIFF1ZXJ5ICoKIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9w YXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIHsKLQlMaXN0Q2VsbCAg ICpsYzsKIAlRdWVyeQkgICAqcGF0aF9xdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlMaXN0CSAg ICpmcm9tbGlzdCA9IE5JTDsKIAlMaXN0CSAgICpxdWFsX2V4cHJzID0gTklMOwogCiAJcGF0aF9x dWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOwogCi0JZm9yZWFjaChsYywgZ3JhcGhfcGF0 aCkKKwlmb3JlYWNoX3B0cihzdHJ1Y3QgcGF0aF9lbGVtZW50LCBwZSwgZ3JhcGhfcGF0aCkKIAl7 Ci0JCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZSA9IChzdHJ1Y3QgZ3JhcGhfcGF0aF9l bGVtZW50ICopIGxmaXJzdChsYyk7Ci0JCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IGdwZS0+ cGFyZW50X2dlcDsKKwkJc3RydWN0IHBhdGhfZmFjdG9yICpwZiA9IHBlLT5wYXRoX2ZhY3RvcjsK IAkJUmFuZ2VUYmxSZWYgKnJ0cjsKIAkJUmVsYXRpb24JcmVsOwogCQlQYXJzZU5hbWVzcGFjZUl0 ZW0gKnBuaTsKIAotCQlBc3NlcnQoZ2VwLT5raW5kID09IFZFUlRFWF9QQVRURVJOIHx8Ci0JCQkg ICBnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFU VEVSTl9SSUdIVCk7Ci0JCUFzc2VydCghZ2VwLT5xdWFudGlmaWVyKTsKKwkJQXNzZXJ0KHBmLT5r aW5kID09IFZFUlRFWF9QQVRURVJOIHx8CisJCQkgICBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5f TEVGVCB8fCBwZi0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpOwogCi0JCWlmIChnZXAtPmtp bmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdI VCkKKwkJaWYgKHBmLT5raW5kID09IEVER0VfUEFUVEVSTl9MRUZUIHx8IHBmLT5raW5kID09IEVE R0VfUEFUVEVSTl9SSUdIVCkKIAkJewotCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqc3Jj X2dwZSA9IGxpc3RfbnRoKGdyYXBoX3BhdGgsIGdwZS0+c3JjZWxlbV9wb3MpOwotCQkJc3RydWN0 IGdyYXBoX3BhdGhfZWxlbWVudCAqZGVzdF9ncGUgPSBsaXN0X250aChncmFwaF9wYXRoLCBncGUt PmRlc3RlbGVtX3Bvcyk7CisJCQlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpzcmNfcGU7CisJCQlzdHJ1 Y3QgcGF0aF9lbGVtZW50ICpkZXN0X2dlOwogCi0JCQkvKgotCQkJICogTWFrZSBzdXJlIHRoYXQg dGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZWxlbWVudHMgb2YgdGhpcyBlZGdlCi0JCQkgKiBh cmUgcGxhY2VkIGF0IHRoZSBleHBlY3RlZCBwb3NpdGlvbiBhbmQgaGF2ZSB0aGUgY29ycmV0Ci0J CQkgKiBSYW5nZVRibEVudHJ5IGluZGV4ZXMgYXMgc2V0dXAgYnkgY3JlYXRlX2dwZV9mb3JfZWxl bWVudCgpLgotCQkJICovCi0JCQlBc3NlcnQoZ3BlLT5zcmNlbGVtX3BvcyA9PSBzcmNfZ3BlLT5y dGluZGV4IC0gMSAmJgotCQkJCSAgIGdwZS0+ZGVzdGVsZW1fcG9zID09IGRlc3RfZ3BlLT5ydGlu ZGV4IC0gMSk7CisJCQlBc3NlcnQocGYtPnNyY19wZiAmJiBwZi0+ZGVzdF9wZik7CisJCQlzcmNf cGUgPSBsaXN0X250aChncmFwaF9wYXRoLCBwZi0+c3JjX3BmLT5mYWN0b3Jwb3MpOworCQkJZGVz dF9nZSA9IGxpc3RfbnRoKGdyYXBoX3BhdGgsIHBmLT5kZXN0X3BmLT5mYWN0b3Jwb3MpOworCisJ CQkvKiBNYWtlIHN1cmUgdGhhdCB0aGUgbGlua3Mgb2YgYWRqYWNlbnQgdmVydGljZXMgYXJlIGNv cnJlY3QuICovCisJCQlBc3NlcnQocGYtPnNyY19wZiA9PSBzcmNfcGUtPnBhdGhfZmFjdG9yICYm CisJCQkJICAgcGYtPmRlc3RfcGYgPT0gZGVzdF9nZS0+cGF0aF9mYWN0b3IpOwogCiAJCQkvKgog CQkJICogSWYgdGhlIGdpdmVuIGVkZ2UgZWxlbWVudCBkb2VzIG5vdCBjb25uZWN0IHRoZSBhZGph Y2VudCB2ZXJ0ZXgKIAkJCSAqIGVsZW1lbnRzIGluIHRoaXMgcGF0aCwgdGhlIHBhdGggaXMgYnJv a2VuLiBBYmFuZG9uIHRoaXMgcGF0aCBhcwogCQkJICogaXQgd29uJ3QgcmV0dXJuIGFueSByb3dz LgogCQkJICovCi0JCQlpZiAoc3JjX2dwZS0+ZWxlbW9pZCAhPSBncGUtPnNyY3ZlcnRleGlkIHx8 Ci0JCQkJZGVzdF9ncGUtPmVsZW1vaWQgIT0gZ3BlLT5kZXN0dmVydGV4aWQpCisJCQlpZiAoc3Jj X3BlLT5lbGVtb2lkICE9IHBlLT5zcmN2ZXJ0ZXhpZCB8fAorCQkJCWRlc3RfZ2UtPmVsZW1vaWQg IT0gcGUtPmRlc3R2ZXJ0ZXhpZCkKIAkJCQlyZXR1cm4gTlVMTDsKIAkJfQogCiAJCS8qIENyZWF0 ZSBSYW5nZVRibEVudHJ5IGZvciB0aGlzIGVsZW1lbnQgdGFibGUuICovCi0JCXJlbCA9IHRhYmxl X29wZW4oZ3BlLT5yZWxvaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCXJlbCA9IHRhYmxlX29wZW4o cGUtPnJlbG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJcG5pID0gYWRkUmFuZ2VUYWJsZUVudHJ5 Rm9yUmVsYXRpb24obWFrZV9wYXJzZXN0YXRlKE5VTEwpLCByZWwsIEFjY2Vzc1NoYXJlTG9jaywK IAkJCQkJCQkJCQkJTlVMTCwgdHJ1ZSwgZmFsc2UpOwogCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9j ayk7CkBAIC0yOTcsMTcgKzQzMiwxNyBAQCBnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0aChS YW5nZVRibEVudHJ5ICpydGUsIExpc3QgKmdyYXBoX3BhdGgpCiAJCSAqIGhvbGRzIHRydWUuIFRo YXQgdGhlIGVsZW1lbnRzJyBSYW5nZVRibEVudHJ5cyBhcmUgYWRkZWQgaW4gdGhlCiAJCSAqIG9y ZGVyIGluIHdoaWNoIHRoZXkgYXBwZWFyIGluIHRoZSBwYXRoLgogCQkgKi8KLQkJQXNzZXJ0KGdw ZS0+cnRpbmRleCA9PSBydHItPnJ0aW5kZXgpOworCQlBc3NlcnQocGYtPmZhY3RvcnBvcyArIDEg PT0gcnRyLT5ydGluZGV4KTsKIAotCQlpZiAoZ2VwLT53aGVyZUNsYXVzZSkKKwkJaWYgKHBmLT53 aGVyZUNsYXVzZSkKIAkJewogCQkJTm9kZQkgICAqdHI7CiAKLQkJCXRyID0gcmVwbGFjZV9wcm9w ZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsIGdlcC0+d2hlcmVDbGF1c2UsIGxpc3RfbWFrZTEoZ3BlKSk7 CisJCQl0ciA9IHJlcGxhY2VfcHJvcGVydHlfcmVmcyhydGUtPnJlbGlkLCBwZi0+d2hlcmVDbGF1 c2UsIGxpc3RfbWFrZTEocGUpKTsKIAogCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVhbF9leHBy cywgdHIpOwogCQl9Ci0JCXF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJzLCBncGUt PnF1YWxfZXhwcnMpOworCQlxdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocXVhbF9leHBycywgcGUt PnF1YWxfZXhwcnMpOwogCX0KIAogCWlmIChydGUtPmdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNl KQpAQCAtMzM5LDcgKzQ3NCw2IEBAIHN0YXRpYyBRdWVyeSAqCiBnZW5lcmF0ZV9xdWVyeV9mb3Jf ZW1wdHlfcGF0aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIHsKIAlRdWVyeQkgICAqcXVl cnkgPSBtYWtlTm9kZShRdWVyeSk7Ci0JTGlzdENlbGwgICAqbGM7CiAKIAlxdWVyeS0+Y29tbWFu ZFR5cGUgPSBDTURfU0VMRUNUOwogCkBAIC0zNTUsOSArNDg5LDggQEAgZ2VuZXJhdGVfcXVlcnlf Zm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUpCiAJICogY29sdW1ucyBh cyBwcm9qZWN0ZWQgYnkgR1JBUEhfVEFCTEUgY2xhdXNlLiBEbyB0aGlzIGJ5IGNvbnN0cnVjdGlu ZyBhCiAJICogdGFyZ2V0IGxpc3QgZnVsbCBvZiBOVUxMIHZhbHVlcy4KIAkgKi8KLQlmb3JlYWNo KGxjLCBydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMpCisJZm9yZWFjaF9ub2RlKFRhcmdldEVudHJ5 LCB0ZSwgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zKQogCXsKLQkJVGFyZ2V0RW50cnkgKnRlID0g Y29weU9iamVjdChsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMpKTsKIAkJTm9kZQkgICAqbnRl ID0gKE5vZGUgKikgdGUtPmV4cHI7CiAKIAkJdGUtPmV4cHIgPSAoRXhwciAqKSBtYWtlTnVsbENv bnN0KGV4cHJUeXBlKG50ZSksIGV4cHJUeXBtb2QobnRlKSwgZXhwckNvbGxhdGlvbihudGUpKTsK QEAgLTQ4MywxMyArNjE2LDkgQEAgZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcyhMaXN0 ICpwYXRocXVlcmllcywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGwKIAkJICovCiAJCWlm ICh0YXJnZXRsaXN0KQogCQl7Ci0JCQlMaXN0Q2VsbCAgICp0bDsKLQogCQkJKnRhcmdldGxpc3Qg PSBOSUw7Ci0JCQlmb3JlYWNoKHRsLCBscXVlcnktPnRhcmdldExpc3QpCisJCQlmb3JlYWNoX25v ZGUoVGFyZ2V0RW50cnksIHRsZSwgbHF1ZXJ5LT50YXJnZXRMaXN0KQogCQkJewotCQkJCVRhcmdl dEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KHRsKTsKLQogCQkJCWlmICghdGxl LT5yZXNqdW5rKQogCQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBlbmQoKnRhcmdldGxpc3QsIHRsZSk7 CiAJCQl9CkBAIC01MTYsMjkgKzY0NSwyOSBAQCBnZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVy aWVzKExpc3QgKnBhdGhxdWVyaWVzLCBMaXN0ICoqcnRhYmxlLCBMaXN0ICoqdGFyZ2V0bAogICog SWYgdGhlIHR5cGUgb2YgZ3JhcGggZWxlbWVudCBkb2VzIG5vdCBmaXQgdGhlIGVsZW1lbnQgcGF0 dGVybiBraW5kLCB0aGUKICAqIGZ1bmN0aW9uIHJldHVybnMgTlVMTC4KICAqLwotc3RhdGljIHN0 cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKgotY3JlYXRlX2dwZV9mb3JfZWxlbWVudChHcmFwaEVs ZW1lbnRQYXR0ZXJuICpnZXAsIE9pZCBlbGVtb2lkLCBpbnQgZWxlbXBvcykKK3N0YXRpYyBzdHJ1 Y3QgcGF0aF9lbGVtZW50ICoKK2NyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoc3RydWN0IHBhdGhfZmFj dG9yICpwZiwgT2lkIGVsZW1vaWQpCiB7CiAJSGVhcFR1cGxlCWVsZXR1cCA9IFNlYXJjaFN5c0Nh Y2hlMShQUk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7CiAJRm9ybV9w Z19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtOwotCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQg KmdwZTsKKwlzdHJ1Y3QgcGF0aF9lbGVtZW50ICpwZTsKIAogCWlmICghZWxldHVwKQogCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAl dSIsIGVsZW1vaWQpOwogCXBnZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdF VFNUUlVDVChlbGV0dXApKTsKIAotCWlmICgocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZF UlRFWCAmJiBnZXAtPmtpbmQgIT0gVkVSVEVYX1BBVFRFUk4pIHx8Ci0JCShwZ2Vmb3JtLT5wZ2Vr aW5kID09IFBHRUtJTkRfRURHRSAmJiAhSVNfRURHRV9QQVRURVJOKGdlcC0+a2luZCkpKQorCWlm ICgocGdlZm9ybS0+cGdla2luZCA9PSBQR0VLSU5EX1ZFUlRFWCAmJiBwZi0+a2luZCAhPSBWRVJU RVhfUEFUVEVSTikgfHwKKwkJKHBnZWZvcm0tPnBnZWtpbmQgPT0gUEdFS0lORF9FREdFICYmICFJ U19FREdFX1BBVFRFUk4ocGYtPmtpbmQpKSkKIAl7CiAJCVJlbGVhc2VTeXNDYWNoZShlbGV0dXAp OwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQlncGUgPSBwYWxsb2MwX29iamVjdChzdHJ1Y3QgZ3Jh cGhfcGF0aF9lbGVtZW50KTsKLQlncGUtPnBhcmVudF9nZXAgPSBnZXA7Ci0JZ3BlLT5lbGVtb2lk ID0gZWxlbW9pZDsKLQlncGUtPnJlbG9pZCA9IHBnZWZvcm0tPnBnZXJlbGlkOwotCWdwZS0+cXVh bF9leHBycyA9IE5JTDsKKwlwZSA9IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBwYXRoX2VsZW1lbnQp OworCXBlLT5wYXRoX2ZhY3RvciA9IHBmOworCXBlLT5lbGVtb2lkID0gZWxlbW9pZDsKKwlwZS0+ cmVsb2lkID0gcGdlZm9ybS0+cGdlcmVsaWQ7CisJcGUtPnF1YWxfZXhwcnMgPSBOSUw7CiAKIAkv KgogCSAqIFdoZW4gdGhlIHBhdGggY29udGFpbmluZyB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252 ZXJ0ZWQgaW50byBhIHF1ZXJ5CkBAIC01NTAsNTQgKzY3OSw0MCBAQCBjcmVhdGVfZ3BlX2Zvcl9l bGVtZW50KEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgT2lkIGVsZW1vaWQsIGludCBlbGVtcG9z KQogCSAqIGFzIHRoZSBudW1iZXIgb2YgcGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4uIEhl bmNlIHNhdmUgdGhlIGFzc3VtZWQKIAkgKiBydGluZGV4IHNvIHRoYXQgaXQgY2FuIGJlIHZlcmlm aWVkIGxhdGVyLgogCSAqLwotCWdwZS0+cnRpbmRleCA9IGVsZW1wb3MgKyAxOwotCi0JaWYgKElT X0VER0VfUEFUVEVSTihnZXAtPmtpbmQpKQorCWlmIChJU19FREdFX1BBVFRFUk4ocGYtPmtpbmQp KQogCXsKLQkJaW50CQkJc3JjX3J0aW5kZXg7Ci0JCWludAkJCWRlc3RfcnRpbmRleDsKIAkJTGlz dAkgICAqZWRnZV9xdWFsOwogCi0JCWdwZS0+c3JjdmVydGV4aWQgPSBwZ2Vmb3JtLT5wZ2VzcmN2 ZXJ0ZXhpZDsKLQkJZ3BlLT5kZXN0dmVydGV4aWQgPSBwZ2Vmb3JtLT5wZ2VkZXN0dmVydGV4aWQ7 CisJCXBlLT5zcmN2ZXJ0ZXhpZCA9IHBnZWZvcm0tPnBnZXNyY3ZlcnRleGlkOworCQlwZS0+ZGVz dHZlcnRleGlkID0gcGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkOworCQlBc3NlcnQocGYtPnNyY19w ZiAmJiBwZi0+ZGVzdF9wZik7CiAKLQkJaWYgKGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklH SFQpCi0JCXsKLQkJCWdwZS0+c3JjZWxlbV9wb3MgPSBlbGVtcG9zIC0gMTsKLQkJCWdwZS0+ZGVz dGVsZW1fcG9zID0gZWxlbXBvcyArIDE7Ci0JCQlzcmNfcnRpbmRleCA9IGdwZS0+cnRpbmRleCAt IDE7Ci0JCQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXggKyAxOwotCQl9Ci0JCWVsc2UgaWYg KGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCkKLQkJewotCQkJZ3BlLT5zcmNlbGVtX3Bv cyA9IGVsZW1wb3MgKyAxOwotCQkJZ3BlLT5kZXN0ZWxlbV9wb3MgPSBlbGVtcG9zIC0gMTsKLQkJ CXNyY19ydGluZGV4ID0gZ3BlLT5ydGluZGV4ICsgMTsKLQkJCWRlc3RfcnRpbmRleCA9IGdwZS0+ cnRpbmRleCAtIDE7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKiBXZSBkb24ndCBzdXBwb3J0IHVu ZGlyZWN0ZWQgZWRnZXMgeWV0LiAqLwotCQkJQXNzZXJ0KGZhbHNlKTsKLQkJCWdwZS0+c3JjZWxl bV9wb3MgPSBlbGVtcG9zOwotCQkJZ3BlLT5kZXN0ZWxlbV9wb3MgPSBlbGVtcG9zOwotCQkJc3Jj X3J0aW5kZXggPSBncGUtPnJ0aW5kZXg7Ci0JCQlkZXN0X3J0aW5kZXggPSBncGUtPnJ0aW5kZXg7 Ci0JCX0KLQotCQllZGdlX3F1YWwgPSBidWlsZF9lZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1 cCwgZ3BlLT5ydGluZGV4LCBzcmNfcnRpbmRleCwKKwkJLyoKKwkJICogV2hlbiB0aGUgcGF0aCBj b250YWluaW5nIHRoaXMgZWxlbWVudCB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEKKwkJICogcXVl cnkgKGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKCkpIHRoaXMgZWxlbWVudCB3aWxsIGJl CisJCSAqIGNvbnZlcnRlZCBpbnRvIGEgUmFuZ2VUYmxFbnRyeS4gVGhlIFJhbmdlVGJsRW50cnlz IGFyZSBjcmVhdGVkIGluCisJCSAqIHRoZSBzYW1lIG9yZGVyIGluIHdoaWNoIGVsZW1lbnRzIGFw cGVhciBpbiB0aGUgcGF0aCBhbmQgdGh1cyBnZXQKKwkJICogY29uc2VjdXRpdmUgUmFuZ2VUYWJs ZSBpbmRleGVzLiBTbyB3ZSBjYW4gc2FmZWx5IGFzc2lnbiB0aGUKKwkJICogUmFuZ2VUYWJsZSBp bmRleCBvZiB0aGlzIGVsZW1lbnQgYmVmb3JlIGNyZWF0aW5nIFJhbmdlVGJsRW50cnkgZm9yCisJ CSAqIGl0LiBUaGlzIGhlbHBzIGNyYWZ0aW5nIHRoZSBxdWFscyBsaW5raW5nIGFuIGVkZ2UgdG8g dGhlIGFkamFjZW50CisJCSAqIHZlcnRleGVzIG9ubHkgb25jZSB3aGlsZSB3ZSBoYXZlIGFjY2Vz cyB0byB0aGUgY2F0YWxvZyBlbnRyeSBvZiB0aGUKKwkJICogZWxlbWVudC4gT3RoZXJ3aXNlLCB3 ZSBuZWVkIHRvIGNyYWZ0IHRoZSBxdWFscyBhcyBtYW55IHRpbWVzIGFzIHRoZQorCQkgKiBudW1i ZXIgb2YgcGF0aHMgdGhpcyBlbGVtZW50IGFwcGVhcnMgaW4sIGZldGNoaW5nIHRoZSBjYXRhbG9n IGVudHJ5CisJCSAqIGVhY2ggdGltZS4KKwkJICovCisJCWVkZ2VfcXVhbCA9IGJ1aWxkX2VkZ2Vf dmVydGV4X2xpbmtfcXVhbHMoZWxldHVwLCBwZi0+ZmFjdG9ycG9zICsgMSwgcGYtPnNyY19wZi0+ ZmFjdG9ycG9zICsgMSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3Bn ZXNyY2tleSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3Jl Zik7Ci0JCWdwZS0+cXVhbF9leHBycyA9IGxpc3RfY29uY2F0KGdwZS0+cXVhbF9leHBycywgZWRn ZV9xdWFsKTsKLQkJZWRnZV9xdWFsID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhlbGV0 dXAsIGdwZS0+cnRpbmRleCwgZGVzdF9ydGluZGV4LAorCQlwZS0+cXVhbF9leHBycyA9IGxpc3Rf Y29uY2F0KHBlLT5xdWFsX2V4cHJzLCBlZGdlX3F1YWwpOworCQllZGdlX3F1YWwgPSBidWlsZF9l ZGdlX3ZlcnRleF9saW5rX3F1YWxzKGVsZXR1cCwgcGYtPmZhY3RvcnBvcyArIDEsIHBmLT5kZXN0 X3BmLT5mYWN0b3Jwb3MgKyAxLAogCQkJCQkJCQkJCQkJIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfcGdlZGVzdGtleSwKIAkJCQkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3Bn ZWRlc3RyZWYpOwotCQlncGUtPnF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChncGUtPnF1YWxfZXhw cnMsIGVkZ2VfcXVhbCk7CisJCXBlLT5xdWFsX2V4cHJzID0gbGlzdF9jb25jYXQocGUtPnF1YWxf ZXhwcnMsIGVkZ2VfcXVhbCk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKGVsZXR1cCk7CiAKLQly ZXR1cm4gZ3BlOworCXJldHVybiBwZTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgpAQCAtNjY5 LDE1ICs3ODQsMTAgQEAgZ2V0X2xhYmVsc19mb3JfZXhwcihPaWQgcHJvcGdyYXBoaWQsIE5vZGUg KmxhYmVsZXhwcikKIAl7CiAJCUJvb2xFeHByICAgKmJlID0gY2FzdE5vZGUoQm9vbEV4cHIsIGxh YmVsZXhwcik7CiAJCUxpc3QJICAgKmxhYmVsX2V4cHJzID0gYmUtPmFyZ3M7Ci0JCUxpc3RDZWxs ICAgKmxsYzsKIAogCQlsYWJlbF9vaWRzID0gTklMOwotCQlmb3JlYWNoKGxsYywgbGFiZWxfZXhw cnMpCi0JCXsKLQkJCUdyYXBoTGFiZWxSZWYgKmdsciA9IGxmaXJzdF9ub2RlKEdyYXBoTGFiZWxS ZWYsIGxsYyk7Ci0KKwkJZm9yZWFjaF9ub2RlKEdyYXBoTGFiZWxSZWYsIGdsciwgbGFiZWxfZXhw cnMpCiAJCQlsYWJlbF9vaWRzID0gbGFwcGVuZF9vaWQobGFiZWxfb2lkcywgZ2xyLT5sYWJlbGlk KTsKLQkJfQogCX0KIAllbHNlCiAJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBsYWJlbCBleHBy ZXNzaW9uIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhsYWJlbGV4cHIpKTsKQEAgLTY5OCwyMiAr ODA4LDIxIEBAIGdldF9sYWJlbHNfZm9yX2V4cHIoT2lkIHByb3BncmFwaGlkLCBOb2RlICpsYWJl bGV4cHIpCiAgKiBgZWxlbXBvc2AgaXMgcG9zaXRpb24gb2YgdGhlIGVsZW1lbnQgcGF0dGVybiBp biB0aGUgcGF0aCBwYXR0ZXJuLgogICovCiBzdGF0aWMgTGlzdCAqCi1nZXRfZWxlbWVudHNfZm9y X2dlcChPaWQgcHJvcGdyYXBoaWQsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgaW50IGVsZW1w b3MpCitnZXRfcGF0aF9lbGVtZW50c19mb3JfcGF0aF9mYWN0b3IoT2lkIHByb3BncmFwaGlkLCBz dHJ1Y3QgcGF0aF9mYWN0b3IgKnBmKQogewotCUxpc3QJICAgKmxhYmVsX29pZHMgPSBnZXRfbGFi ZWxzX2Zvcl9leHByKHByb3BncmFwaGlkLCBnZXAtPmxhYmVsZXhwcik7CisJTGlzdAkgICAqbGFi ZWxfb2lkcyA9IGdldF9sYWJlbHNfZm9yX2V4cHIocHJvcGdyYXBoaWQsIHBmLT5sYWJlbGV4cHIp OwogCUxpc3QJICAgKmVsZW1fb2lkc19zZWVuID0gTklMOwotCUxpc3QJICAgKmVsZW1fZ3BlX29p ZHMgPSBOSUw7Ci0JTGlzdAkgICAqZWxlbV9ncGVzID0gTklMOwotCUxpc3RDZWxsICAgKmxjOwor CUxpc3QJICAgKnBmX2VsZW1fb2lkcyA9IE5JTDsKKwlMaXN0CSAgICpwYXRoX2VsZW1lbnRzID0g TklMOworCUxpc3QJICAgKnVucmVzb2x2ZWRfbGFiZWxzID0gTklMOwogCVJlbGF0aW9uCXJlbDsK IAlTeXNTY2FuRGVzYyBzY2FuOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlIZWFwVHVwbGUJdHVw OwogCiAJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBB Y2Nlc3NTaGFyZUxvY2spOwotCWZvcmVhY2gobGMsIGxhYmVsX29pZHMpCisJZm9yZWFjaF9vaWQo bGFiZWxvaWQsIGxhYmVsX29pZHMpCiAJewotCQlPaWQJCQlsYWJlbG9pZCA9IGxmaXJzdF9vaWQo bGMpOwogCQlib29sCQlmb3VuZCA9IGZhbHNlOwogCiAJCVNjYW5LZXlJbml0KCZrZXlbMF0sCkBA IC03MzYsMTIgKzg0NSwxMiBAQCBnZXRfZWxlbWVudHNfZm9yX2dlcChPaWQgcHJvcGdyYXBoaWQs IEdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCwgaW50IGVsZW1wb3MpCiAJCQkJICogdGhlIGN1cnJl bnQgbGFiZWwgaGFzIGF0IGxlYXN0IG9uZSBlbGVtZW50LCB0aGF0IHNhdGlzZmllcwogCQkJCSAq IHRoZSBnaXZlbiBlbGVtZW50IHBhdHRlcm4sIGFzc29jaWF0ZWQgd2l0aCBpdC4KIAkJCQkgKi8K LQkJCQlzdHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICpncGUgPSBjcmVhdGVfZ3BlX2Zvcl9lbGVt ZW50KGdlcCwgZWxlbV9vaWQsIGVsZW1wb3MpOworCQkJCXN0cnVjdCBwYXRoX2VsZW1lbnQgKnBl ID0gY3JlYXRlX2dwZV9mb3JfZWxlbWVudChwZiwgZWxlbV9vaWQpOwogCi0JCQkJaWYgKGdwZSkK KwkJCQlpZiAocGUpCiAJCQkJewotCQkJCQllbGVtX2dwZXMgPSBsYXBwZW5kKGVsZW1fZ3Blcywg Z3BlKTsKLQkJCQkJZWxlbV9ncGVfb2lkcyA9IGxhcHBlbmRfb2lkKGVsZW1fZ3BlX29pZHMsIGVs ZW1fb2lkKTsKKwkJCQkJcGF0aF9lbGVtZW50cyA9IGxhcHBlbmQocGF0aF9lbGVtZW50cywgcGUp OworCQkJCQlwZl9lbGVtX29pZHMgPSBsYXBwZW5kX29pZChwZl9lbGVtX29pZHMsIGVsZW1fb2lk KTsKIAkJCQkJZm91bmQgPSB0cnVlOwogCQkJCX0KIApAQCAtNzQ5LDExICs4NTgsMTEgQEAgZ2V0 X2VsZW1lbnRzX2Zvcl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpn ZXAsIGludCBlbGVtcG9zKQogCQkJCSAqIEFkZCB0aGUgZ3JhcGggZWxlbWVudCB0byB0aGUgZWxl bWVudHMgY29uc2lkZXJlZCBzbyBmYXIgdG8KIAkJCQkgKiBhdm9pZCBwcm9jZXNzaW5nIHNhbWUg ZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUKIAkJCQkgKiBsYWJlbHMgbXVsdGlwbGUg dGltZXMuIEFsc28gYXZvaWRzIGNyZWF0aW5nIGR1cGxpY2F0ZQotCQkJCSAqIEdyYXBoUGF0aEVs ZW1lbnRzLgorCQkJCSAqIHBhdGhfZWxlbWVudCBzdHJ1Y3R1cmVzLgogCQkJCSAqLwogCQkJCWVs ZW1fb2lkc19zZWVuID0gbGFwcGVuZF9vaWQoZWxlbV9vaWRzX3NlZW4sIGxhYmVsX2VsZW0tPnBn ZWxlbGlkKTsKIAkJCX0KLQkJCWVsc2UgaWYgKGxpc3RfbWVtYmVyX29pZChlbGVtX2dwZV9vaWRz LCBlbGVtX29pZCkpCisJCQllbHNlIGlmIChsaXN0X21lbWJlcl9vaWQocGZfZWxlbV9vaWRzLCBl bGVtX29pZCkpCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBUaGUgZ3JhcGggZWxlbWVudCBpcyBrbm93 biB0byBxdWFsaWZ5IHRoZSBnaXZlbiBlbGVtZW50CkBAIC03NzQsMzAgKzg4MywyNyBAQCBnZXRf ZWxlbWVudHNfZm9yX2dlcChPaWQgcHJvcGdyYXBoaWQsIEdyYXBoRWxlbWVudFBhdHRlcm4gKmdl cCwgaW50IGVsZW1wb3MpCiAJCQkgKiBlcnJvciBpZiB0aGUgbGFiZWwgd2FzIGV4cGxpY2l0bHkg c3BlY2lmaWVkIGluIHRoZSBlbGVtZW50CiAJCQkgKiBwYXR0ZXJuLiBPdGhlcndpc2UganVzdCBS ZW1vdmUgaXQgZnJvbSB0aGUgbGlzdC4KIAkJCSAqLwotCQkJaWYgKCFnZXAtPmxhYmVsZXhwcikK LQkJCQlmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KGxhYmVsX29pZHMsIGxjKTsKKwkJCWlmICghcGYt PmxhYmVsZXhwcikKKwkJCQl1bnJlc29sdmVkX2xhYmVscyA9IGxhcHBlbmRfb2lkKHVucmVzb2x2 ZWRfbGFiZWxzLCBsYWJlbG9pZCk7CiAJCQllbHNlCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ CShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCiAJCQkJCQkgZXJybXNnKCJjYW4g bm90IGZpbmQgbGFiZWwgXCIlc1wiIGluIHByb3BlcnR5IGdyYXBoIFwiJXNcIiBmb3IgZWxlbWVu dCB0eXBlIFwiJXNcIiIsCiAJCQkJCQkJCWdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShsYWJlbG9p ZCksCiAJCQkJCQkJCWdldF9yZWxfbmFtZShwcm9wZ3JhcGhpZCksCi0JCQkJCQkJCWdldF9ncmFw aF9lbGVtX2tpbmRfbmFtZShnZXAtPmtpbmQpKSkpOworCQkJCQkJCQlnZXRfZ3JhcGhfZWxlbV9r aW5kX25hbWUocGYtPmtpbmQpKSkpOwogCQl9CiAKIAkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsK IAl9CiAJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JLyogVXBkYXRlIHRo ZSBmaWx0ZXJlZCBsYWJlbCBsaXN0IGluIGVhY2ggZ3JhcGhfcGF0aF9lbGVtZW50LiAqLwotCWZv cmVhY2gobGMsIGVsZW1fZ3BlcykKLQl7Ci0JCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdw ZSA9IGxmaXJzdChsYyk7Ci0KLQkJZ3BlLT5sYWJlbG9pZHMgPSBsYWJlbF9vaWRzOwotCX0KLQot CXJldHVybiBlbGVtX2dwZXM7CisJLyoKKwkgKiBSZW1lbWJlciB0aGUgT0lEcyBvZiByZXNvbHZl ZCBsYWJlbHMgZm9yIHRoZSBnaXZlbiBwYXRoIGZhY3RvciBmb3IKKwkgKiBsYXRlciB1c2UgLgor CSAqLworCXBmLT5sYWJlbG9pZHMgPSBsaXN0X2RpZmZlcmVuY2Vfb2lkKGxhYmVsX29pZHMsIHVu cmVzb2x2ZWRfbGFiZWxzKTsKKwlyZXR1cm4gcGF0aF9lbGVtZW50czsKIH0KIAogc3RhdGljIGNv bnN0IGNoYXIgKgpAQCAtODQ2LDE1ICs5NTIsMTMgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211 dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICoK IAl7CiAJCUdyYXBoUHJvcGVydHlSZWYgKmdwciA9IChHcmFwaFByb3BlcnR5UmVmICopIG5vZGU7 CiAJCU5vZGUJICAgKm4gPSBOVUxMOwotCQlMaXN0Q2VsbCAgICpsYzsKLQkJc3RydWN0IGdyYXBo X3BhdGhfZWxlbWVudCAqZm91bmRfbWFwcGluZyA9IE5VTEw7CisJCXN0cnVjdCBwYXRoX2VsZW1l bnQgKmZvdW5kX21hcHBpbmcgPSBOVUxMOworCQlzdHJ1Y3QgcGF0aF9mYWN0b3IgKm1hcHBpbmdf ZmFjdG9yID0gTlVMTDsKIAkJTGlzdAkgICAqdW5yZWxhdGVkX2xhYmVscyA9IE5JTDsKIAotCQlm b3JlYWNoKGxjLCBjb250ZXh0LT5tYXBwaW5ncykKKwkJZm9yZWFjaF9wdHIoc3RydWN0IHBhdGhf ZWxlbWVudCwgbSwgY29udGV4dC0+bWFwcGluZ3MpCiAJCXsKLQkJCXN0cnVjdCBncmFwaF9wYXRo X2VsZW1lbnQgKm0gPSBsZmlyc3QobGMpOwotCi0JCQlpZiAobS0+cGFyZW50X2dlcC0+dmFyaWFi bGUgJiYgc3RyY21wKGdwci0+ZWx2YXJuYW1lLCBtLT5wYXJlbnRfZ2VwLT52YXJpYWJsZSkgPT0g MCkKKwkJCWlmIChtLT5wYXRoX2ZhY3Rvci0+dmFyaWFibGUgJiYgc3RyY21wKGdwci0+ZWx2YXJu YW1lLCBtLT5wYXRoX2ZhY3Rvci0+dmFyaWFibGUpID09IDApCiAJCQl7CiAJCQkJZm91bmRfbWFw cGluZyA9IG07CiAJCQkJYnJlYWs7CkBAIC04NjMsMTMgKzk2NywxNCBAQCByZXBsYWNlX3Byb3Bl cnR5X3JlZnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZz X2NvbnRleHQgKgogCQlpZiAoIWZvdW5kX21hcHBpbmcpCiAJCQllbG9nKEVSUk9SLCAidW5kZWZp bmVkIGVsZW1lbnQgdmFyaWFibGUgXCIlc1wiIiwgZ3ByLT5lbHZhcm5hbWUpOwogCisJCW1hcHBp bmdfZmFjdG9yID0gZm91bmRfbWFwcGluZy0+cGF0aF9mYWN0b3I7CisKIAkJLyoKIAkJICogRmlu ZCBwcm9wZXJ0eSBkZWZpbml0aW9uIGZvciBnaXZlbiBlbGVtZW50IHRocm91Z2ggYW55IG9mIHRo ZQogCQkgKiBhc3NvY2lhdGVkIGxhYmVscy4KIAkJICovCi0JCWZvcmVhY2gobGMsIGZvdW5kX21h cHBpbmctPmxhYmVsb2lkcykKKwkJZm9yZWFjaF9vaWQobGFiZWxvaWQsIG1hcHBpbmdfZmFjdG9y LT5sYWJlbG9pZHMpCiAJCXsKLQkJCU9pZAkJCWxhYmVsb2lkID0gbGZpcnN0X29pZChsYyk7CiAJ CQlPaWQJCQllbGVtX2xhYmVsaWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIRUxFTUVOVExB QkVMRUxFTUVOVExBQkVMLAogCQkJCQkJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfbGFiZWxfb2lkLAogCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oZm91bmRfbWFw cGluZy0+ZWxlbW9pZCksCkBAIC04OTIsNyArOTk3LDcgQEAgcmVwbGFjZV9wcm9wZXJ0eV9yZWZz X211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0 ICoKIAogCQkJCW4gPSBzdHJpbmdUb05vZGUoVGV4dERhdHVtR2V0Q1N0cmluZyhTeXNDYWNoZUdl dEF0dHJOb3ROdWxsKFBST1BHUkFQSExBQkVMUFJPUCwKIAkJCQkJCQkJCQkJCQkJCQkJCQl0dXAs IEFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X3BscGV4cHIpKSk7Ci0JCQkJQ2hhbmdl VmFyTm9kZXMobiwgMSwgZm91bmRfbWFwcGluZy0+cnRpbmRleCwgMCk7CisJCQkJQ2hhbmdlVmFy Tm9kZXMobiwgMSwgbWFwcGluZ19mYWN0b3ItPmZhY3RvcnBvcyArIDEsIDApOwogCiAJCQkJUmVs ZWFzZVN5c0NhY2hlKHR1cCk7CiAJCQl9CkBAIC05MTAsMTIgKzEwMTUsMTEgQEAgcmVwbGFjZV9w cm9wZXJ0eV9yZWZzX211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlf cmVmc19jb250ZXh0ICoKIAkJLyogU2VlIGlmIHdlIGNhbiByZXNvbHZlIHRoZSBwcm9wZXJ0eSBp biBzb21lIG90aGVyIHdheS4gKi8KIAkJaWYgKCFuKQogCQl7Ci0JCQlMaXN0Q2VsbCAgICpsY3U7 CiAJCQlib29sCQlwcm9wX2Fzc29jaWF0ZWQgPSBmYWxzZTsKIAotCQkJZm9yZWFjaChsY3UsIHVu cmVsYXRlZF9sYWJlbHMpCisJCQlmb3JlYWNoX29pZChsb2lkLCB1bnJlbGF0ZWRfbGFiZWxzKQog CQkJewotCQkJCWlmIChpc19wcm9wZXJ0eV9hc3NvY2lhdGVkX3dpdGhfbGFiZWwobGZpcnN0X29p ZChsY3UpLCBncHItPnByb3BpZCkpCisJCQkJaWYgKGlzX3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0 aF9sYWJlbChsb2lkLCBncHItPnByb3BpZCkpCiAJCQkJewogCQkJCQlwcm9wX2Fzc29jaWF0ZWQg PSB0cnVlOwogCQkJCQlicmVhazsKQEAgLTk0MSw3ICsxMDQ1LDcgQEAgcmVwbGFjZV9wcm9wZXJ0 eV9yZWZzX211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0IHJlcGxhY2VfcHJvcGVydHlfcmVmc19j b250ZXh0ICoKIAkJCQkgKiByb3dzIHRvIHRoZSBHUkFQSF9UQUJMRS4KIAkJCQkgKi8KIAkJCQlu ID0gZ2V0X2VsZW1lbnRfcHJvcGVydHlfZXhwcihmb3VuZF9tYXBwaW5nLT5lbGVtb2lkLCBncHIt PnByb3BpZCwKLQkJCQkJCQkJCQkJICBmb3VuZF9tYXBwaW5nLT5ydGluZGV4KTsKKwkJCQkJCQkJ CQkJICBtYXBwaW5nX2ZhY3Rvci0+ZmFjdG9ycG9zICsgMSk7CiAKIAkJCQlpZiAoIW4pCiAJCQkJ ewpAQCAtOTU0LDcgKzEwNTgsNyBAQCByZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvcihOb2Rl ICpub2RlLCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgKgogCiAJCWlmICgh bikKIAkJCWVsb2coRVJST1IsICJwcm9wZXJ0eSBcIiVzXCIgb2YgZWxlbWVudCB2YXJpYWJsZSBc IiVzXCIgbm90IGZvdW5kIiwKLQkJCQkgZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+ cHJvcGlkKSwgZm91bmRfbWFwcGluZy0+cGFyZW50X2dlcC0+dmFyaWFibGUpOworCQkJCSBnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUoZ3ByLT5wcm9waWQpLCBtYXBwaW5nX2ZhY3Rvci0+dmFy aWFibGUpOwogCiAJCXJldHVybiBuOwogCX0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFw aF90YWJsZS5vdXQKaW5kZXggZGUwZDE2M2U4MzAuLjg3YWIzZTMxYWY4IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dApAQCAtMzQ5LDE0ICszNDksNiBAQCBzZWxl Y3Qgc3JjLCBjb25uLCBkZXN0LCBscHJvcDEsIHZwcm9wMiwgdnByb3AxIGZyb20gZ3JhcGhfdGFi bGUgKGcxIG1hdGNoIChhIGlzCiAgdjExIHwgZTEzMiB8IHYzMSAgfCB2bDNfcHJvcCB8ICAgICAg ICB8ICAgMjAxMAogKDQgcm93cykKIAotLS0gV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4K LVNFTEVDVCBzZWxmLCB0aHJvdWdoIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIp LT4oYykgV0hFUkUgYS52bmFtZSA9IGMudm5hbWUgYW5kIGEudm5hbWUgPD4gYi52bmFtZSBDT0xV TU5TIChhLnZuYW1lIGFzIHNlbGYsIGIudm5hbWUgYXMgdGhyb3VnaCkpOwotIHNlbGYgfCB0aHJv dWdoIAotLS0tLS0tKy0tLS0tLS0tLQotIHYxMiAgfCB2MjEKLSB2MjEgIHwgdjEyCi0oMiByb3dz KQotCiAtLSBFcnJvcnMKIC0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZw cm9wMgogc2VsZWN0IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxl IChnMSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1u cyAoYS52bmFtZSBhcyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29u biwgYy52bmFtZSBhcyBkZXN0KSk7CkBAIC00MjAsNiArNDEyLDExNCBAQCBzZWxlY3Qgc24sIGNu LCBkbiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4o ZGVzdCA6IGwxKQogIHYyMiB8IGUyMzEgfCB2MzIKICg2IHJvd3MpCiAKKy0tIFRlc3RzIGZvciBj eWNsaWMgZ3JhcGggcGF0dGVybnMKKy0tIEFkZCBzb21lIG1vcmUgY3ljbGVzIGluIGdyYXBoCitD UkVBVEUgVEFCTEUgZTNfMiAoaWRfMyBpbnQsCisgICAgICAgICAgICAgICAgICAgIGlkXzJfMSBp bnQsCisgICAgICAgICAgICAgICAgICAgIGlkXzJfMiBpbnQsCisgICAgICAgICAgICAgICAgICAg IGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBlcHJvcDEgaW50KTsKK0FM VEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAoCisgICAgZTNfMiBLRVkgKGlk XzMsIGlkXzJfMSwgaWRfMl8yKQorICAgICAgICBTT1VSQ0UgS0VZIChpZF8zKSBSRUZFUkVOQ0VT IHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChpZF8yXzEsIGlkXzJfMikgUkVGRVJF TkNFUyB2MiAoaWQxLCBpZDIpCisgICAgICAgIExBQkVMIGVsMiBQUk9QRVJUSUVTIChlbmFtZSwg ZXByb3AxICogMTAgQVMgbHByb3AyKQorICAgICAgICBMQUJFTCBsMSBQUk9QRVJUSUVTIChlbmFt ZSBBUyBlbG5hbWUpCispOworSU5TRVJUIElOVE8gZTFfMiBWQUxVRVMgKDMsIDEwMDAsIDMsICdl MTIzJywgMTAwMDcpOworSU5TRVJUIElOVE8gZTJfMSBWQUxVRVMgKDEwMDAsIDMsIDMsICdlMjEy JywgMTAwMDgpOworSU5TRVJUIElOVE8gZTNfMiBWQUxVRVMgKDIwMDIsIDEwMDAsIDIsICdlMzIx JywgMTAwMDkpOworLS0gY3ljbGljIHBhdHRlcm4gdXNpbmcgV0hFUkUgY2xhdXNlIGluIGdyYXBo IHBhdHRlcm4sCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSktPihiKS0+ KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52 bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdo X3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEg fCB0aHJvdWdoX3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg djEyICB8IHYyMSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwg ICAgICAzMCB8ICAgICAgIDEwMzAKKyB2MjEgIHwgdjEyICAgICB8ICAgIDEwMTAgfCAgICAgICAg IDIwCisgdjIyICB8IHYzMiAgICAgfCAgICAxMDIwIHwgICAgICAgMjAyMAorIHYyMyAgfCB2MTMg ICAgIHwgICAgMTAzMCB8ICAgICAgICAgMzAKKyB2MzIgIHwgdjIyICAgICB8ICAgIDIwMjAgfCAg ICAgICAxMDIwCisoNiByb3dzKQorCistLSBjeWNsaWMgcGF0dGVybiB1c2luZyBlbGVtZW50cyB3 aXRoIHNhbWUgdmFyaWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFU Q0ggKGEpLT4oYiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhy b3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVS IEJZIHNlbGYsIHRocm91Z2g7Cisgc2VsZiB8IHRocm91Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9w MSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHYxMiAgfCB2MjEg ICAgIHwgICAgICAyMCB8ICAgICAgIDEwMTAKKyB2MTMgIHwgdjIzICAgICB8ICAgICAgMzAgfCAg ICAgICAxMDMwCisgdjIxICB8IHYxMiAgICAgfCAgICAxMDEwIHwgICAgICAgICAyMAorIHYyMiAg fCB2MzIgICAgIHwgICAgMTAyMCB8ICAgICAgIDIwMjAKKyB2MjMgIHwgdjEzICAgICB8ICAgIDEw MzAgfCAgICAgICAgIDMwCisgdjMyICB8IHYyMiAgICAgfCAgICAyMDIwIHwgICAgICAgMTAyMAor KDYgcm93cykKKworLS0gY3ljbGljIHBhdHRlcm4gd2l0aCBXSEVSRSBjbGF1c2UKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIHdoZXJlIGEudnByb3AxIDwgMjAwMCktPihi IHdoZXJlIGIudnByb3AxID4gMjApLT4oYSB3aGVyZSBhLnZwcm9wMSA+IDIwKSBDT0xVTU5TIChh LnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwg Yi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7Cisgc2VsZiB8 IHRocm91Z2ggfCBzZWxmX3AxIHwgdGhyb3VnaF9wMSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAgICAgIDEwMzAK KyB2MjIgIHwgdjMyICAgICB8ICAgIDEwMjAgfCAgICAgICAyMDIwCisgdjIzICB8IHYxMyAgICAg fCAgICAxMDMwIHwgICAgICAgICAzMAorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9U QUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiB3aGVyZSBiLnZwcm9wMSA+IDIwKS0+KGEgd2hlcmUgYS52 cHJvcDEgYmV0d2VlbiAyMCBhbmQgMjAwMCkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZu YW1lIEFTIHRocm91Z2gsIGEudnByb3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hf cDEpKSBPUkRFUiBCWSBzZWxmLCB0aHJvdWdoOworIHNlbGYgfCB0aHJvdWdoIHwgc2VsZl9wMSB8 IHRocm91Z2hfcDEgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2 MTIgIHwgdjIxICAgICB8ICAgICAgMjAgfCAgICAgICAxMDEwCisgdjEzICB8IHYyMyAgICAgfCAg ICAgIDMwIHwgICAgICAgMTAzMAorIHYyMiAgfCB2MzIgICAgIHwgICAgMTAyMCB8ICAgICAgIDIw MjAKKyB2MjMgIHwgdjEzICAgICB8ICAgIDEwMzAgfCAgICAgICAgIDMwCisoNCByb3dzKQorCitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSB3aGVyZSBhLnZwcm9wMSBiZXR3 ZWVuIDIwIGFuZCAyMDAwKS0+KGIgd2hlcmUgYi52cHJvcDEgPiAyMCktPihhIHdoZXJlIGEudnBy b3AxIGJldHdlZW4gMjAgYW5kIDIwMDApIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFt ZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3Ax KSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0 aHJvdWdoX3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEy ICB8IHYyMSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAg ICAzMCB8ICAgICAgIDEwMzAKKyB2MjIgIHwgdjMyICAgICB8ICAgIDEwMjAgfCAgICAgICAyMDIw CisgdjIzICB8IHYxMyAgICAgfCAgICAxMDMwIHwgICAgICAgICAzMAorKDQgcm93cykKKworU0VM RUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMgbDEpLVthIGlzIGwxXS0+KGIg aXMgbDEpIGNvbHVtbnMgKGEuZW5hbWUgQVMgYWVuYW1lLCBiLmVuYW1lIEFTIGJlbmFtZSkpIE9S REVSIEJZIDEsIDI7IC0tIGVycm9yCitFUlJPUjogIGVsZW1lbnQgcGF0dGVybnMgd2l0aCBzYW1l IHZhcmlhYmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgZWxlbWVudCBwYXR0ZXJuIHR5cGVzCitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhIGlz IHZsMikgV0hFUkUgYS52bmFtZSA8PiBiLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwg Yi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJv dWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsgIC0tIGVycm9yCitFUlJPUjogIGVsZW1l bnQgcGF0dGVybnMgd2l0aCBzYW1lIHZhcmlhYmxlIG5hbWUgImEiIGJ1dCBkaWZmZXJlbnQgbGFi ZWwgZXhwcmVzc2lvbnMKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIGlz IHZsMSktPihiKS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJv dWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIg Qlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJvdWdoX3Ax IAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8IHYyMSAg ICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAzMCB8ICAg ICAgIDEwMzAKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENI IChhKS0+KGIpLT4oYSBpcyB2bDEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBB UyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkg T1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKKyBzZWxmIHwgdGhyb3VnaCB8IHNlbGZfcDEgfCB0aHJv dWdoX3AxIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdjEyICB8 IHYyMSAgICAgfCAgICAgIDIwIHwgICAgICAgMTAxMAorIHYxMyAgfCB2MjMgICAgIHwgICAgICAz MCB8ICAgICAgIDEwMzAKKygyIHJvd3MpCisKKy0tIGFkZCBhbiBlZGdlIHdpdGggc2FtZSB2ZXJ0 ZXggYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzCitDUkVBVEUgVEFCTEUg ZTNfMyAoc3JjX2lkIGludCwKKyAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCBpbnQsCisgICAg ICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBl cHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRBQkxFUyAoCisg ICAgZTNfMyBLRVkgKHNyY19pZCwgZGVzdF9pZCkKKyAgICAgICAgU09VUkNFIEtFWSAoc3JjX2lk KSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChzcmNfaWQpIFJF RkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBMQUJFTCBlbDIgUFJPUEVSVElFUyAoZW5hbWUsIGVw cm9wMSAqIDEwIEFTIGxwcm9wMikKKyAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElFUyAoZW5hbWUg QVMgZWxuYW1lKQorKTsKK0lOU0VSVCBJTlRPIGUzXzMgVkFMVUVTICgyMDAzLCAyMDAzLCAnZTMz MScsIDEwMDEwKTsKKy0tIGN5Y2xpYyBwYXR0ZXJuIHdpdGggZWRnZSBwYXR0ZXJucyB3aXRoIHNh bWUgdmFyaWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEp LVtiXS0+KGEpLVtiXS0+KGEpIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi5lbmFtZSBBUyBs b29wX25hbWUpKTsKKyBzZWxmIHwgbG9vcF9uYW1lIAorLS0tLS0tKy0tLS0tLS0tLS0tCisgdjMz ICB8IGUzMzEKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0gg KGEpLVtiXS0+KGMpLVtiXS0+KGQpIENPTFVNTlMgKGEudm5hbWUgQVMgYW5hbWUsIGIuZW5hbWUg QVMgYm5hbWUsIGMudm5hbWUgQVMgY25hbWUsIGQudm5hbWUgQVMgZG5hbWUpKTsgLS1lcnJvcgor RVJST1I6ICBBbiBlZGdlIGNhbiBub3QgY29ubmVjdCBtb3JlIHRoYW4gdHdvIHZlcnRleGVzIGV2 ZW4gaW4gYSBjeWNsaWMgcGF0dGVybi4KIC0tIHByb3BlcnR5IGdyYXBoIHdpdGggc29tZSBvZiB0 aGUgZWxlbWVudHMsIGxhYmVscyBhbmQgcHJvcGVydGllcyBzYW1lIGFzIHRoZQogLS0gcHJldmlv dXMgb25lLiBUZXN0IHdoZXRoZXIgY29tcG9uZW50cyBmcm9tIHRoZSBzcGVjaWZpZWQgcHJvcGVy dHkgZ3JhcGggYXJlCiAtLSB1c2VkLgpAQCAtNDUxLDEwICs1NTEsMTEgQEAgc2VsZWN0IHNuLCBj biwgZG4gZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+ KGRlc3QgOiBsMSkKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQogIGcyLnYxMiB8IGcyLmUx MjIgfCBnMi52MjEKICBnMi52MTEgfCBnMi5lMTIxIHwgZzIudjIyCisgZzIudjEzIHwgZzIuZTEy MyB8IGcyLnYyMwogIGcyLnYxMSB8IGcyLmUxMzEgfCBnMi52MzMKICBnMi52MTEgfCBnMi5lMTMy IHwgZzIudjMxCiAgZzIudjIyIHwgZzIuZTIzMSB8IGcyLnYzMgotKDUgcm93cykKKyg2IHJvd3Mp CiAKIENSRUFURSBWSUVXIGN1c3RvbWVyc191cyBBUyBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9N IEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVz cyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMu bmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ2N1c3RvbWVy c191cyc6OnJlZ2NsYXNzKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBo X3RhYmxlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbAppbmRleCA0 ODY1OTRhOTkzNC4uZjM0NjE2MTYzYWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2dyYXBoX3RhYmxlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5z cWwKQEAgLTI2Miw4ICsyNjIsNiBAQCBTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRD SCAoYSBJUyB2bDEgfCB2bDIpIENPTFVNTlMgKGEudm5hbWUsCiBhLnZwcm9wMSkpOwogLS0gdnBy b3AyIGlzIGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5vdCB2bDMKIHNlbGVjdCBzcmMsIGNvbm4s IGRlc3QsIGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2gg KGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2bDMpIGNvbHVtbnMgKGEudm5hbWUg YXMgc3JjLCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCwgYy5scHJvcDEsIGMudnBy b3AyLCBjLnZwcm9wMSkpOwotLS0gV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4KLVNFTEVD VCBzZWxmLCB0aHJvdWdoIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIpLT4oYykg V0hFUkUgYS52bmFtZSA9IGMudm5hbWUgYW5kIGEudm5hbWUgPD4gYi52bmFtZSBDT0xVTU5TIChh LnZuYW1lIGFzIHNlbGYsIGIudm5hbWUgYXMgdGhyb3VnaCkpOwogCiAtLSBFcnJvcnMKIC0tIHZs MSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgpAQCAtMjg5LDYgKzI4Nyw1 NiBAQCBzZWxlY3Qgdm4gZnJvbSBhbGxfdmVydGljZXMgZXhjZXB0IChzZWxlY3Qgc3ZuIGZyb20g YWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyB1bmlvbgogLS0gcXVlcnkgYWxsIGNvbm5lY3Rpb25zIHVz aW5nIGEgbGFiZWwgc2hhcmVkIGJ5IHZlcnRpY2VzIGFuZCBlZGdlcwogc2VsZWN0IHNuLCBjbiwg ZG4gZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRl c3QgOiBsMSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5hbWUgYXMgY24sIGRl c3QuZWxuYW1lIGFzIGRuKSk7CiAKKy0tIFRlc3RzIGZvciBjeWNsaWMgZ3JhcGggcGF0dGVybnMK Ky0tIEFkZCBzb21lIG1vcmUgY3ljbGVzIGluIGdyYXBoCitDUkVBVEUgVEFCTEUgZTNfMiAoaWRf MyBpbnQsCisgICAgICAgICAgICAgICAgICAgIGlkXzJfMSBpbnQsCisgICAgICAgICAgICAgICAg ICAgIGlkXzJfMiBpbnQsCisgICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAor ICAgICAgICAgICAgICAgICAgICBlcHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcx IEFERCBFREdFIFRBQkxFUyAoCisgICAgZTNfMiBLRVkgKGlkXzMsIGlkXzJfMSwgaWRfMl8yKQor ICAgICAgICBTT1VSQ0UgS0VZIChpZF8zKSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVT VElOQVRJT04gS0VZIChpZF8yXzEsIGlkXzJfMikgUkVGRVJFTkNFUyB2MiAoaWQxLCBpZDIpCisg ICAgICAgIExBQkVMIGVsMiBQUk9QRVJUSUVTIChlbmFtZSwgZXByb3AxICogMTAgQVMgbHByb3Ay KQorICAgICAgICBMQUJFTCBsMSBQUk9QRVJUSUVTIChlbmFtZSBBUyBlbG5hbWUpCispOworCitJ TlNFUlQgSU5UTyBlMV8yIFZBTFVFUyAoMywgMTAwMCwgMywgJ2UxMjMnLCAxMDAwNyk7CitJTlNF UlQgSU5UTyBlMl8xIFZBTFVFUyAoMTAwMCwgMywgMywgJ2UyMTInLCAxMDAwOCk7CitJTlNFUlQg SU5UTyBlM18yIFZBTFVFUyAoMjAwMiwgMTAwMCwgMiwgJ2UzMjEnLCAxMDAwOSk7CisKKy0tIGN5 Y2xpYyBwYXR0ZXJuIHVzaW5nIFdIRVJFIGNsYXVzZSBpbiBncmFwaCBwYXR0ZXJuLAorU0VMRUNU ICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4oYiktPihjKSBXSEVSRSBhLnZuYW1l ID0gYy52bmFtZSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwg YS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNl bGYsIHRocm91Z2g7CistLSBjeWNsaWMgcGF0dGVybiB1c2luZyBlbGVtZW50cyB3aXRoIHNhbWUg dmFyaWFibGUgbmFtZQorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEpLT4o YiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIudm5hbWUgQVMgdGhyb3VnaCwgYS52 cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3VnaF9wMSkpIE9SREVSIEJZIHNlbGYs IHRocm91Z2g7CistLSBjeWNsaWMgcGF0dGVybiB3aXRoIFdIRVJFIGNsYXVzZQorU0VMRUNUICog RlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgd2hlcmUgYS52cHJvcDEgPCAyMDAwKS0+KGIg d2hlcmUgYi52cHJvcDEgPiAyMCktPihhIHdoZXJlIGEudnByb3AxID4gMjApIENPTFVNTlMgKGEu dm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBi LnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKK1NFTEVDVCAq IEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhKS0+KGIgd2hlcmUgYi52cHJvcDEgPiAyMCkt PihhIHdoZXJlIGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIwMDApIENPTFVNTlMgKGEudm5hbWUg QVMgc2VsZiwgYi52bmFtZSBBUyB0aHJvdWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9w MSBBUyB0aHJvdWdoX3AxKSkgT1JERVIgQlkgc2VsZiwgdGhyb3VnaDsKK1NFTEVDVCAqIEZST00g R1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIHdoZXJlIGEudnByb3AxIGJldHdlZW4gMjAgYW5kIDIw MDApLT4oYiB3aGVyZSBiLnZwcm9wMSA+IDIwKS0+KGEgd2hlcmUgYS52cHJvcDEgYmV0d2VlbiAy MCBhbmQgMjAwMCkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBiLnZuYW1lIEFTIHRocm91Z2gs IGEudnByb3AxIEFTIHNlbGZfcDEsIGIudnByb3AxIEFTIHRocm91Z2hfcDEpKSBPUkRFUiBCWSBz ZWxmLCB0aHJvdWdoOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgaXMg bDEpLVthIGlzIGwxXS0+KGIgaXMgbDEpIGNvbHVtbnMgKGEuZW5hbWUgQVMgYWVuYW1lLCBiLmVu YW1lIEFTIGJlbmFtZSkpIE9SREVSIEJZIDEsIDI7IC0tIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChnMSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhIGlzIHZsMikgV0hFUkUgYS52 bmFtZSA8PiBiLnZuYW1lIENPTFVNTlMgKGEudm5hbWUgQVMgc2VsZiwgYi52bmFtZSBBUyB0aHJv dWdoLCBhLnZwcm9wMSBBUyBzZWxmX3AxLCBiLnZwcm9wMSBBUyB0aHJvdWdoX3AxKSkgT1JERVIg Qlkgc2VsZiwgdGhyb3VnaDsgIC0tIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoYSBpcyB2bDEpLT4oYiktPihhKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYsIGIu dm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhyb3Vn aF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChnMSBNQVRDSCAoYSktPihiKS0+KGEgaXMgdmwxKSBDT0xVTU5TIChhLnZuYW1lIEFTIHNlbGYs IGIudm5hbWUgQVMgdGhyb3VnaCwgYS52cHJvcDEgQVMgc2VsZl9wMSwgYi52cHJvcDEgQVMgdGhy b3VnaF9wMSkpIE9SREVSIEJZIHNlbGYsIHRocm91Z2g7CisKKy0tIGFkZCBhbiBlZGdlIHdpdGgg c2FtZSB2ZXJ0ZXggYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiB0byB0ZXN0IGxvb3BzCitDUkVB VEUgVEFCTEUgZTNfMyAoc3JjX2lkIGludCwKKyAgICAgICAgICAgICAgICAgICAgZGVzdF9pZCBp bnQsCisgICAgICAgICAgICAgICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAg ICAgICAgICBlcHJvcDEgaW50KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcxIEFERCBFREdFIFRB QkxFUyAoCisgICAgZTNfMyBLRVkgKHNyY19pZCwgZGVzdF9pZCkKKyAgICAgICAgU09VUkNFIEtF WSAoc3JjX2lkKSBSRUZFUkVOQ0VTIHYzIChpZCkKKyAgICAgICAgREVTVElOQVRJT04gS0VZIChz cmNfaWQpIFJFRkVSRU5DRVMgdjMgKGlkKQorICAgICAgICBMQUJFTCBlbDIgUFJPUEVSVElFUyAo ZW5hbWUsIGVwcm9wMSAqIDEwIEFTIGxwcm9wMikKKyAgICAgICAgTEFCRUwgbDEgUFJPUEVSVElF UyAoZW5hbWUgQVMgZWxuYW1lKQorKTsKKworSU5TRVJUIElOVE8gZTNfMyBWQUxVRVMgKDIwMDMs IDIwMDMsICdlMzMxJywgMTAwMTApOworLS0gY3ljbGljIHBhdHRlcm4gd2l0aCBlZGdlIHBhdHRl cm5zIHdpdGggc2FtZSB2YXJpYWJsZSBuYW1lCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoYSktW2JdLT4oYSktW2JdLT4oYSkgQ09MVU1OUyAoYS52bmFtZSBBUyBzZWxmLCBi LmVuYW1lIEFTIGxvb3BfbmFtZSkpOworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFU Q0ggKGEpLVtiXS0+KGMpLVtiXS0+KGQpIENPTFVNTlMgKGEudm5hbWUgQVMgYW5hbWUsIGIuZW5h bWUgQVMgYm5hbWUsIGMudm5hbWUgQVMgY25hbWUsIGQudm5hbWUgQVMgZG5hbWUpKTsgLS1lcnJv cgorCiAtLSBwcm9wZXJ0eSBncmFwaCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMg YW5kIHByb3BlcnRpZXMgc2FtZSBhcyB0aGUKIC0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVy IGNvbXBvbmVudHMgZnJvbSB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQogLS0gdXNl ZC4KLS0gCjIuMzkuNQoK --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0002-support-WHERE-clause-in-graph-pattern.patch" Content-Disposition: attachment; filename="v10-0002-support-WHERE-clause-in-graph-pattern.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioor10 RnJvbSBjMTM4OGZiMDJhMTkzMzJhNGQ4MzYwMjIxZWNjYzBkNGY0OTliMTM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBc2h1dG9zaCBCYXBhdCA8YXNodXRvc2guYmFwYXRAZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogTW9uLCA4IEp1bCAyMDI0IDExOjUzOjI1ICswNTMwClN1YmplY3Q6 IFtQQVRDSCB2MTAgMDIvMTJdIHN1cHBvcnQgV0hFUkUgY2xhdXNlIGluIGdyYXBoIHBhdHRlcm4K Ci0tLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jICAgfCAgOSArKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dCB8IDMzICsrKysr KysrKysrKysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwg ICAgICB8IDE0ICsrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVH cmFwaFRhYmxlLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKaW5k ZXggZWUxMTU5NGQyY2YuLjRiNzg3YTJlODhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl R3JhcGhUYWJsZS5jCkBAIC0zMTAsNiArMzEwLDE1IEBAIGdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFw aF9wYXRoKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZ3JhcGhfcGF0aCkKIAkJcXVhbF9leHBy cyA9IGxpc3RfY29uY2F0KHF1YWxfZXhwcnMsIGdwZS0+cXVhbF9leHBycyk7CiAJfQogCisJaWYg KHJ0ZS0+Z3JhcGhfcGF0dGVybi0+d2hlcmVDbGF1c2UpCisJeworCQlOb2RlCSAgICpwYXRoX3F1 YWxzID0gcmVwbGFjZV9wcm9wZXJ0eV9yZWZzKHJ0ZS0+cmVsaWQsCisJCQkJCQkJCQkJCQkJICAg KE5vZGUgKikgcnRlLT5ncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwKKwkJCQkJCQkJCQkJCQkg ICBncmFwaF9wYXRoKTsKKworCQlxdWFsX2V4cHJzID0gbGFwcGVuZChxdWFsX2V4cHJzLCBwYXRo X3F1YWxzKTsKKwl9CisKIAlwYXRoX3F1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihmcm9t bGlzdCwKIAkJCQkJCQkJCQkoTm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIHF1YWxfZXhw cnMsIC0xKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhf dGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5vdXQKaW5k ZXggODEzZmM5YWEyNTUuLmRlMGQxNjNlODMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dyYXBoX3RhYmxlLm91dApAQCAtMjM3LDYgKzIzNywxMiBAQCBjcmVhdGUgdGFibGUgZTFfMiAo aWRfMSBpbnQsCiAJCQkJCWlkXzJfMiBpbnQsCiAJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAogCQkJ CQllcHJvcDEgaW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MiBhbmQgdjEKK2NyZWF0ZSB0YWJs ZSBlMl8xIChpZF8yXzEgaW50LAorCQkJCQlpZF8yXzIgaW50LAorICAgICAgICAgICAgICAgICAg ICBpZF8xIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQpOwog LS0gZWRnZSBjb25uZWN0aW5nIHYxIGFuZCB2MwogY3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50 LAogCQkJCQlpZF8zIGludCwKQEAgLTI2OCw2ICsyNzQsMTEgQEAgZWRnZSB0YWJsZXMgKAogCQlk ZXN0aW5hdGlvbiBrZXkgKGlkXzJfMSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikK IAkJbGFiZWwgZWwxIHByb3BlcnRpZXMgKGVwcm9wMSwgZW5hbWUpCiAgICAgICAgIGxhYmVsIGwx IHByb3BlcnRpZXMgKGVuYW1lIGFzIGVsbmFtZSksCisJZTJfMSBrZXkgKGlkXzJfMSwgaWRfMl8y LCBpZF8xKQorCQlzb3VyY2Uga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQx LCBpZDIpCisJCWRlc3RpbmF0aW9uIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWxh YmVsIGVsMSBwcm9wZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQorICAgICAgICBsYWJlbCBsMSBwcm9w ZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAogCWUxXzMKIAkJc291cmNlIGtleSAoaWRfMSkgcmVm ZXJlbmNlcyB2MSAoaWQpCiAJCWRlc3RpbmF0aW9uIGtleSAoaWRfMykgcmVmZXJlbmNlcyB2MyAo aWQpCkBAIC0yOTYsMTcgKzMwNywxOCBAQCBpbnNlcnQgaW50byBlMV8yIHZhbHVlcyAoMSwgMTAw MCwgMiwgJ2UxMjEnLCAxMDAwMSksCiBpbnNlcnQgaW50byBlMV8zIHZhbHVlcyAoMSwgMjAwMywg J2UxMzEnLCAxMDAwMyksCiAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMjAwMSwgJ2UxMzIn LCAxMDAwNCk7CiBpbnNlcnQgaW50byBlMl8zIHZhbHVlcyAoMTAwMCwgMiwgMjAwMiwgJ2UyMzEn LCAxMDAwNSk7CitpbnNlcnQgaW50byBlMl8xIHZhbHVlcyAoMTAwMCwgMSwgMiwgJ2UyMTEnLCAx MDAwNik7CiAtLSBlbXB0eSBlbGVtZW50IHBhdGggcGF0dGVybiwgY291bnRzIG51bWJlciBvZiBl ZGdlcyBpbiB0aGUgZ3JhcGgKIFNFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoKS1bXS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKICBjb3VudCAKIC0tLS0tLS0KLSAg ICAgNQorICAgICA2CiAoMSByb3cpCiAKIFNFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxF IChnMSBNQVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKICBjb3VudCAKIC0tLS0tLS0K LSAgICAgNQorICAgICA2CiAoMSByb3cpCiAKIC0tIFZlcnRleCBlbGVtZW50IHYyIGhhcyBsYWJl bCB2bDMgd2hpY2ggZXhwb3NlcyBwcm9wZXJ0eSB2cHJvcDEuIEJ1dCB2bDMgaXMKQEAgLTMzNyw2 ICszNDksMTQgQEAgc2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZwcm9w MSBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBpcwogIHYxMSB8IGUxMzIgfCB2MzEgIHwg dmwzX3Byb3AgfCAgICAgICAgfCAgIDIwMTAKICg0IHJvd3MpCiAKKy0tIFdIRVJFIGNsYXVzZSBp biBncmFwaCBwYXR0ZXJuCitTRUxFQ1Qgc2VsZiwgdGhyb3VnaCBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoYSktPihiKS0+KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIGFuZCBhLnZuYW1l IDw+IGIudm5hbWUgQ09MVU1OUyAoYS52bmFtZSBhcyBzZWxmLCBiLnZuYW1lIGFzIHRocm91Z2gp KTsKKyBzZWxmIHwgdGhyb3VnaCAKKy0tLS0tLSstLS0tLS0tLS0KKyB2MTIgIHwgdjIxCisgdjIx ICB8IHYxMgorKDIgcm93cykKKwogLS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQg d2l0aCBwcm9wZXJ0eSB2cHJvcDIKIHNlbGVjdCBzcmMsIHNyY192cHJvcDIsIGNvbm4sIGRlc3Qg ZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2 bDIgfCB2bDMpIGNvbHVtbnMgKGEudm5hbWUgYXMgc3JjLCBhLnZwcm9wMiBhcyBzcmNfdnByb3Ay LCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCkpOwpAQCAtMzYyLDggKzM4Miw5IEBA IHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3Qp IGNvbHVtbnMgKHNyYy52bmFtZSBhcyBzCiAgdjExICAgIHwgZTEyMSAgIHwgdjIyICAgIHwgICAx MCB8ICAgICAgfCAgICAgICAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAxMDAwMSB8ICAg ICAgIAogIHYxMSAgICB8IGUxMzEgICB8IHYzMyAgICB8ICAgMTAgfCAgICAgIHwgICAgICAgICAg fCAyMDMwIHwgICAgICB8IHZsM19wcm9wIHwgMTAwMDMgfCAgICAgICAKICB2MTEgICAgfCBlMTMy ICAgfCB2MzEgICAgfCAgIDEwIHwgICAgICB8ICAgICAgICAgIHwgMjAxMCB8ICAgICAgfCB2bDNf cHJvcCB8IDEwMDA0IHwgICAgICAgCisgdjIxICAgIHwgZTIxMSAgIHwgdjEyICAgIHwgMTAxMCB8 IDExMDAgfCB2bDJfcHJvcCB8ICAgMjAgfCAgICAgIHwgICAgICAgICAgfCAxMDAwNiB8ICAgICAg IAogIHYyMiAgICB8IGUyMzEgICB8IHYzMiAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAy MDIwIHwgICAgICB8IHZsM19wcm9wIHwgICAgICAgfCAxMDAwNTAKLSg1IHJvd3MpCisoNiByb3dz KQogCiAtLSB0aHJlZSBsYWJlbCBkaXNqdW5jdGlvbgogc2VsZWN0ICogZnJvbSBncmFwaF90YWJs ZSAoZzEgbWF0Y2ggKHNyYyBJUyB2bDEgfCB2bDIgfCB2bDMpLVtjb25uXS0+KGRlc3QpIGNvbHVt bnMgKHNyYy52bmFtZSBhcyBzdm5hbWUsIGNvbm4uZW5hbWUgYXMgY2VuYW1lLCBkZXN0LnZuYW1l IGFzIGR2bmFtZSkpOwpAQCAtMzczLDggKzM5NCw5IEBAIHNlbGVjdCAqIGZyb20gZ3JhcGhfdGFi bGUgKGcxIG1hdGNoIChzcmMgSVMgdmwxIHwgdmwyIHwgdmwzKS1bY29ubl0tPihkZXN0KSBjb2x1 CiAgdjExICAgIHwgZTEyMSAgIHwgdjIyCiAgdjExICAgIHwgZTEzMSAgIHwgdjMzCiAgdjExICAg IHwgZTEzMiAgIHwgdjMxCisgdjIxICAgIHwgZTIxMSAgIHwgdjEyCiAgdjIyICAgIHwgZTIzMSAg IHwgdjMyCi0oNSByb3dzKQorKDYgcm93cykKIAogLS0gZ3JhcGgnaWNhbCBxdWVyeTogZmluZCBh IHZlcnRleCB3aGljaCBpcyBub3QgY29ubmVjdGVkIHRvIGFueSBvdGhlciB2ZXJ0ZXggYXMgYSBz b3VyY2Ugb3IgYSBkZXN0aW5hdGlvbi4KIHdpdGggYWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyBhcyAo c2VsZWN0IHN2biwgZHZuIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+ KGRlc3QpIGNvbHVtbnMgKHNyYy52bmFtZSBhcyBzdm4sIGRlc3Qudm5hbWUgYXMgZHZuKSkpLApA QCAtMzk0LDggKzQxNiw5IEBAIHNlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3JhcGhfdGFibGUgKGcx IG1hdGNoIChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpCiAgdjExIHwgZTEyMSB8 IHYyMgogIHYxMSB8IGUxMzEgfCB2MzMKICB2MTEgfCBlMTMyIHwgdjMxCisgdjIxIHwgZTIxMSB8 IHYxMgogIHYyMiB8IGUyMzEgfCB2MzIKLSg1IHJvd3MpCisoNiByb3dzKQogCiAtLSBwcm9wZXJ0 eSBncmFwaCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHByb3BlcnRpZXMg c2FtZSBhcyB0aGUKIC0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBvbmVudHMgZnJv bSB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhf dGFibGUuc3FsCmluZGV4IDJiNDNiMTM2ZWFjLi40ODY1OTRhOTkzNCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2dyYXBoX3RhYmxlLnNxbApAQCAtMTY5LDYgKzE2OSwxMiBAQCBjcmVhdGUgdGFibGUgZTFf MiAoaWRfMSBpbnQsCiAJCQkJCWlkXzJfMiBpbnQsCiAJCQkJCWVuYW1lIHZhcmNoYXIoMTApLAog CQkJCQllcHJvcDEgaW50KTsKKy0tIGVkZ2UgY29ubmVjdGluZyB2MiBhbmQgdjEKK2NyZWF0ZSB0 YWJsZSBlMl8xIChpZF8yXzEgaW50LAorCQkJCQlpZF8yXzIgaW50LAorICAgICAgICAgICAgICAg ICAgICBpZF8xIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQp OwogCiAtLSBlZGdlIGNvbm5lY3RpbmcgdjEgYW5kIHYzCiBjcmVhdGUgdGFibGUgZTFfMyAoaWRf MSBpbnQsCkBAIC0yMDMsNiArMjA5LDExIEBAIGVkZ2UgdGFibGVzICgKIAkJZGVzdGluYXRpb24g a2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2MiAoaWQxLCBpZDIpCiAJCWxhYmVsIGVs MSBwcm9wZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQogICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVz IChlbmFtZSBhcyBlbG5hbWUpLAorCWUyXzEga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRfMSkKKwkJ c291cmNlIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorCQlk ZXN0aW5hdGlvbiBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlsYWJlbCBlbDEgcHJv cGVydGllcyAoZXByb3AxLCBlbmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5h bWUgYXMgZWxuYW1lKSwKIAllMV8zCiAJCXNvdXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEg KGlkKQogCQlkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQpAQCAtMjM2 LDYgKzI0Nyw3IEBAIGluc2VydCBpbnRvIGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScs IDEwMDAxKSwKIGluc2VydCBpbnRvIGUxXzMgdmFsdWVzICgxLCAyMDAzLCAnZTEzMScsIDEwMDAz KSwKICAgICAgICAgICAgICAgICAgICAgICAgICgxLCAyMDAxLCAnZTEzMicsIDEwMDA0KTsKIGlu c2VydCBpbnRvIGUyXzMgdmFsdWVzICgxMDAwLCAyLCAyMDAyLCAnZTIzMScsIDEwMDA1KTsKK2lu c2VydCBpbnRvIGUyXzEgdmFsdWVzICgxMDAwLCAxLCAyLCAnZTIxMScsIDEwMDA2KTsKIAogLS0g ZW1wdHkgZWxlbWVudCBwYXRoIHBhdHRlcm4sIGNvdW50cyBudW1iZXIgb2YgZWRnZXMgaW4gdGhl IGdyYXBoCiBTRUxFQ1QgY291bnQoKikgRlJPTSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKCktW10t PigpIENPTFVNTlMgKDEgYXMgb25lKSk7CkBAIC0yNTAsNiArMjYyLDggQEAgU0VMRUNUICogRlJP TSBHUkFQSF9UQUJMRSAoZzEgTUFUQ0ggKGEgSVMgdmwxIHwgdmwyKSBDT0xVTU5TIChhLnZuYW1l LAogYS52cHJvcDEpKTsKIC0tIHZwcm9wMiBpcyBhc3NvY2lhdGVkIHdpdGggdmwyIGJ1dCBub3Qg dmwzCiBzZWxlY3Qgc3JjLCBjb25uLCBkZXN0LCBscHJvcDEsIHZwcm9wMiwgdnByb3AxIGZyb20g Z3JhcGhfdGFibGUgKGcxIG1hdGNoIChhIGlzIHZsMSktW2IgaXMgZWwxXS0+KGMgaXMgdmwyIHwg dmwzKSBjb2x1bW5zIChhLnZuYW1lIGFzIHNyYywgYi5lbmFtZSBhcyBjb25uLCBjLnZuYW1lIGFz IGRlc3QsIGMubHByb3AxLCBjLnZwcm9wMiwgYy52cHJvcDEpKTsKKy0tIFdIRVJFIGNsYXVzZSBp biBncmFwaCBwYXR0ZXJuCitTRUxFQ1Qgc2VsZiwgdGhyb3VnaCBGUk9NIEdSQVBIX1RBQkxFIChn MSBNQVRDSCAoYSktPihiKS0+KGMpIFdIRVJFIGEudm5hbWUgPSBjLnZuYW1lIGFuZCBhLnZuYW1l IDw+IGIudm5hbWUgQ09MVU1OUyAoYS52bmFtZSBhcyBzZWxmLCBiLnZuYW1lIGFzIHRocm91Z2gp KTsKIAogLS0gRXJyb3JzCiAtLSB2bDEgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBwcm9wZXJ0eSB2 cHJvcDIKLS0gCjIuMzkuNQoK --00000000000074adbd062dcaf7b5 Content-Type: application/octet-stream; name="v10-0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ.patch" Content-Disposition: attachment; filename="v10-0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m6z6ioov11 RnJvbSA5YWFiMDJhZDI2NDI2MDRlYmU3ZjYwYzUxYzVjN2ZkMzkwNjIwMmEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRyYXV0Lm9y Zz4KRGF0ZTogVGh1LCAyNyBKdW4gMjAyNCAxNDoxMDo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDAxLzEyXSBXSVA6IFNRTCBQcm9wZXJ0eSBHcmFwaCBRdWVyaWVzIChTUUwvUEdRKQoKSW1w bGVtZW50YXRpb24gb2YgU1FMIHByb3BlcnR5IGdyYXBoIHF1ZXJpZXMsIGFjY29yZGluZyB0byBT UUwvUEdRCnN0YW5kYXJkIChJU08gOTA3NS0xNjoyMDIzKS4KCkF1dGhvcjogUGV0ZXIgRWlzZW50 cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+CkF1dGhvcjogQXNodXRvc2ggQmFwYXQgPGFzaHV0 b3NoLmJhcGF0Lm9zc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVz cWwub3JnL21lc3NhZ2UtaWQvZmxhdC9hODU1Nzk1ZC1lNjk3LTRmYTUtODY5OC1kMjAxMjIxMjY1 NjdAZWlzZW50cmF1dC5vcmcKCkRlc2NyaXB0aW9uIG9mIGZpeGVzIGFkZGVkIHRvIHRoZSBvcmln aW5hbCBwYXRjaAoKMS4gRml4ZXMgc3VnZ2VzdGVkIGJ5IHBncGVybHRpZHkuCgoyLiBiaW5hcnlf dXBncmFkZV9zZXRfcGdfY2xhc3Nfb2lkKCkgY2FsbCBmaXg6IEFmdGVyCiAgIDZlMWM0YTAzYTk3 OGVkMzU3NDEyNGQ4ZjJiZTIyYmEyZTVhNGIxZTkKICAgYmluYXJ5X3VwZ3JhZGVfc2V0X3BnX2Ns YXNzX29pZCgpIGRvZXNuJ3QgbmVlZCB0aGUgKG5vdyBub24tZXhpc3RlbnQpCiAgIGxhc3QgYXJn dW1lbnQuCgozLiBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KCkgY2FsbCBmaXg6CiAgIDg5 ZjkwOGE2ZDBhYzEzMzdjODY4NjI1MDA4Yzk1OTg0ODdkMTg0ZTcgYWRkZWQgYSBuZXcgcGFyYW1l dGVyCiAgIHdpdGhQZXJpb2QgdG8gZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheSgpLiBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQKICAgdG8gZGVjb21waWxlIGtleXMgaW4gcHJvcGVydHkgZ3JhcGgg ZGVmaW5pdGlvbi4gS0VZcyBpbiBwcm9wZXJ0eQogICBncmFwaCBkZWZpbml0aW9uIGFyZSBub3Qg dGVtcG9yYWwgYW5kIHRodXMgZG8gbm90IG5lZWQgdG8gc3BlY2lmeQogICBQRVJJT0QgaW4gdGhl aXIgZGVmaW5pdGlvbi4gSGVuY2UgcGFzcyBgZmFsc2VgIHRvCiAgIGRlY29tcGlsZV9jb2x1bW5f aW5kZXhfYXJyYXkoKSB3aGVuIGNhbGxlZCBmb3Igd2hpbGUgZGVjb21waWxpbmcgYQogICBwcm9w ZXJ0eSBncmFwaCBkZWZpbml0aW9uLgoKNC4gU3B1cmlvdXMgY29sdW1uIG5vdCBmb3VuZCBlcnJv cjogQXR0cmlidXRlIG5hbWUgZnJvbSBhIGhlYXAgdHVwbGUKICAgbmVlZHMgdG8gYmUgY29waWVk IGJlZm9yZSByZWxlYXNpbmcgdGhlIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0dXBsZQogICBhbmQg dGhlIHRhYmxlIHNjYW4uCgo1LiBNZXJnZSBjb25mbGljdCBmaXhlcyBpbiBwYXJzZXIucGw6IGFm dGVyIEVDUEcgcmVsYXRlZCByZWZhY3RvcmluZwogICBmcm9tIGNvbW1pdHMgYXJvdW5kIDZiMDA1 NDk5NDQ3NTEyYWJmYTFlNGFkZDg3ZGNmM2UyODU5YzRmOWUuCgo2LiBNZXJnZSBjb25mbGljdCBp biBhbHRlci5jIGFuZCBhY2xjaGsuYyB3aGVuIG1lcmdpbmcgd2l0aCBIRUFEID0KICAgYWFjODMx Y2FmYTZmMzEwNmRmY2JkMzI5ODc1NzgwMWMyOTkzNTFmYwoKNy4gRml4IGNvbXBpbGF0aW9uIGVy cm9yIGluIHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoKToKUmVsYXRpb25HZXRQcmltYXJ5S2V5 SW5kZXgoKSwgY2FsbGVkIGJ5IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkoKSByZXF1aXJlcyBh CnNlY29uZCBhcmd1bWVudCBzcGVjaWZ5aW5nIHdoZXRoZXIgREVGRVJSRUQgcHJpbWFyeSBrZXkg Y29uc3RyYWludHMgYXJlCmFjY2VwdGFibGUuIFNRTC9QR1Egc3RhbmRhcmQgc2VjdGlvbiA5LjEy LCBTeW50YXggUnVsZSA0IG1lbnRpb25zIG9ubHkgcHJpbWFyeQprZXkgYW5kIGRvZXMgbm90IGRp c2N1c3MgREVGRVJSRURuZXNzLiBGaXggY29tcGlsYXRpb24gZmFpbHVyZSBieSBwYXNzaW5nICJ0 cnVlIgp0byBSZWxhdGlvbkdldFByaW1hcnlLZXlJbmRleCgpIGFzIHNlY29uZCBhcmd1bWVudC4g Tm8gYWRqdXN0bWVudCB0byB0aGUKZG9jdW1lbnRhdGlvbiBpcyBuZWVkZWQgc2luY2UgaXQgbWVu dGlvbmVkIHByaW1hcnkga2V5IHdpdGhvdXQgREVGRVJSRURuZXNzLgoKOC4gTWVyZ2UgY29uZmxp Y3QgZml4ZXMgdG8gZ3JhbS55LCBwc3FsLXJlZi5zZ21sLCBwc3FsL2hlbHAuYywKICAgcHJpbW5v ZGVzLmggd2hlbiBtZXJnaW5nIHdpdGggSEVBRCA9CiAgIGZkNGM0ZWRlNzA4ZmM1YWZmYjA0MzYy YmI1YThiZGMzMTM2ZmE5NjMKLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAg ICAgICAgICAgICAgfCAgNDcxICsrKystCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMjI1ICsrLQogZG9jL3NyYy9zZ21sL2ZlYXR1cmVzLnNnbWwgICAg ICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxNSArCiBkb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1h LnNnbWwgICAgICAgICAgfCAxMDkyICsrKysrKysrKysrCiAuLi4vc2dtbC9rZXl3b3Jkcy9zcWwy MDIzLTE2LW5vbnJlc2VydmVkLnR4dCAgfCAgIDI3ICsKIGRvYy9zcmMvc2dtbC9rZXl3b3Jkcy9z cWwyMDIzLTE2LXJlc2VydmVkLnR4dCB8ICAgMTIgKwogZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dt bCAgICAgICAgICAgICAgICAgICAgIHwgIDE2OCArKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxl cy5zZ21sICAgICAgICAgICAgICAgIHwgICAgMyArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2V4 dGVuc2lvbi5zZ21sICAgICAgICAgfCAgICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3By b3BlcnR5X2dyYXBoLnNnbWwgICAgfCAgMjk5ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50 LnNnbWwgICAgICAgICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9w cm9wZXJ0eV9ncmFwaC5zZ21sICAgfCAgMzEwICsrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3By b3BlcnR5X2dyYXBoLnNnbWwgICAgIHwgIDExMSArKwogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5z Z21sICAgICAgICAgICAgICAgICAgIHwgICAgNyArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJl Zi5zZ21sICAgICAgICAgICAgICAgIHwgICAxMyArLQogZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uu c2dtbCAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBkb2Mvc3JjL3NnbWwvcmVmL3NlY3VyaXR5 X2xhYmVsLnNnbWwgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNn bWwgICAgICAgICAgICAgICAgICB8ICAgNDMgKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21s ICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j ICAgICAgICAgICAgICAgICAgfCAgIDI0ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jICAgICAgICAgICAgICB8ICAgMTEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlv bl9zY2hlbWEuc3FsICAgIHwgIDM2NCArKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFk ZHJlc3MuYyAgICAgICAgICAgfCAgMzA2ICsrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jbGFz cy5jICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0 dXJlcy50eHQgICAgICAgICAgfCAgMTAwICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyAg ICAgICAgICAgICAgICAgIHwgICAyOCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMu YyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmln Z2VyLmMgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxk ICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21k cy5jICAgICAgICAgIHwgMTcwNiArKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAgMTUgKy0KIHNyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgNzIgKwogc3JjL2JhY2tlbmQvbm9kZXMvb3V0 ZnVuY3MuYyAgICAgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9ub2Rlcy9yZWFk ZnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9w YXRoL2FsbHBhdGhzLmMgICAgICAgICB8ICAgIDQgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3By ZXAvcHJlcGpvaW50cmVlLmMgICAgIHwgICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZp bGUgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMgICAgICAgICAgICAgICAgICB8ICAyOTggKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgNzA4ICsrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9t ZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgICAxMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY2xhdXNlLmMgICAgICAgICAgICAgfCAgIDg5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9jb2xsYXRlLmMgICAgICAgICAgICB8ICAgIDcgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYyAgICAgICAgICAgICAgIHwgICAgNiArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9n cmFwaHRhYmxlLmMgICAgICAgICB8ICAyMDkgKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5jICAgICAgICAgICB8ICAgOTggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90 YXJnZXQuYyAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCAg ICAgICAgICAgICAgICAgICAgIHwgICAxMyArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9NYWtlZmls ZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdy YXBoVGFibGUuYyAgICAgICB8IDEwOTggKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3Jld3JpdGUv cmV3cml0ZUhhbmRsZXIuYyAgICAgICAgICB8ICAgMTEgKwogc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMgICAgICAgICAgICAgICAgICAgIHwgICAzNCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgNTM3ICsrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvbHN5c2NhY2hlLmMgICAgICAgICAgIHwgICAzOCArCiBzcmMvYmluL3BnX2R1bXAvY29t bW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiBzcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMgICAgICAgICAgfCAgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNjcgKy0KIHNyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAgMTIgKwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQu YyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MyArLQogc3JjL2Jpbi9wc3FsL2hlbHAuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgIDY3ICstCiBzcmMvZmVfdXRpbHMvcHNxbHNjYW4u bCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01h a2VmaWxlICAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y2xhc3MuaCAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdCAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b3BncmFwaF9lbGVtZW50LmggICAgfCAgMTAzICsKIC4uLi9jYXRhbG9nL3BnX3Byb3BncmFwaF9l bGVtZW50X2xhYmVsLmggICAgICB8ICAgNTEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9w Z3JhcGhfbGFiZWwuaCAgICAgIHwgICA1MSArCiAuLi4vY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFi ZWxfcHJvcGVydHkuaCAgICAgfCAgIDU5ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdy YXBoX3Byb3BlcnR5LmggICB8ICAgNTQgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHJvcGdyYXBo Y21kcy5oICAgICAgICAgIHwgICAyMyArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg ICAgICAgICAgICAgICAgfCAgMTM5ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAg ICAgICAgICAgICAgICAgfCAgIDIyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmggICAg ICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAg ICAgICAgICAgICAgIHwgICAgOSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJs ZS5oICAgICAgICAgfCAgIDMxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAg ICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgg ICAgICAgICAgIHwgICAgOCArCiBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxl LmggICAgICAgfCAgIDIxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICAg ICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggICAgICAgICAgICAgICAg ICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAg ICAgICAgfCAgICAzICsKIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbCAgICAg ICAgICB8ICAgIDYgKy0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubCAgICAgICAg ICAgICB8ICAgMTIgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAgICAg ICAgICB8ICAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl9nZW5lcmljLm91 dCAgIHwgICA1MSArLQogLi4uL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQgICAg ICAgIHwgIDQ5NiArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncmFwaF90YWJsZS5v dXQgICAgIHwgIDQ4NCArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRk cmVzcy5vdXQgIHwgICAxNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5v dXQgICAgICAgIHwgICAxMSArCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAg ICAgICAgICAgfCAgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9hbHRlcl9nZW5lcmljLnNx bCAgICAgICAgfCAgIDM0ICsKIC4uLi9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvcGVydHlfZ3JhcGgu c3FsICAgICB8ICAxOTAgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCAg ICAgICAgICB8ICAzMzYgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Mu c3FsICAgICAgIHwgICAgNCArLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAg ICAgICAgICAgIHwgICAyMSArCiAxMDQgZmlsZXMgY2hhbmdlZCwgMTA5MTkgaW5zZXJ0aW9ucygr KSwgMjA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9rZXl3 b3Jkcy9zcWwyMDIzLTE2LW5vbnJlc2VydmVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9z cmMvc2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dt bAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxl LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRh YmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFw aF9lbGVtZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5oCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVydHlf Z3JhcGgub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n cmFwaF90YWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9j cmVhdGVfcHJvcGVydHlfZ3JhcGguc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBlZTU5YTdlMTVkMC4u YmJiNmYzOTU3YzIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0yNDAsNiArMjQwLDMxIEBACiAgICAgICA8 ZW50cnk+ZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzPC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFw aC1lbGVtZW50Ij48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0bmFtZT48 L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcm9wZXJ0eSBncmFwaCBlbGVtZW50cyAodmVy dGljZXMgYW5kIGVkZ2VzKTwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtZWxlbWVudC1sYWJl bCI+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw8L3N0cnVjdG5hbWU+PC9s aW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+cHJvcGVydHkgZ3JhcGggbGlua3MgYmV0d2VlbiBl bGVtZW50cyBhbmQgbGFiZWxzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbCI+PHN0 cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2xhYmVsPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5Pgor ICAgICAgPGVudHJ5PnByb3BlcnR5IGdyYXBoIGxhYmVsczwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wcm9w Z3JhcGgtbGFiZWwtcHJvcGVydHkiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9sYWJlbF9wcm9w ZXJ0eTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcm9wZXJ0eSBn cmFwaCBsYWJlbC1zcGVjaWZpYyBwcm9wZXJ0eSBkZWZpbml0aW9uczwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wcm9wZ3JhcGgtcHJvcGVydHkiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9wcm9wZXJ0eTwv c3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcm9wZXJ0eSBncmFwaCBw cm9wZXJ0aWVzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXB1YmxpY2F0aW9uIj48c3RydWN0bmFtZT5wZ19w dWJsaWNhdGlvbjwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5wdWJs aWNhdGlvbnMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb248L2VudHJ5PgpAQCAtMjEyMiw3ICsyMTQ3 LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8 L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0ZXJhbD5jPC9saXRlcmFs PiA9IGNvbXBvc2l0ZSB0eXBlLAogICAgICAgIDxsaXRlcmFsPmY8L2xpdGVyYWw+ID0gZm9yZWln biB0YWJsZSwKICAgICAgICA8bGl0ZXJhbD5wPC9saXRlcmFsPiA9IHBhcnRpdGlvbmVkIHRhYmxl LAotICAgICAgIDxsaXRlcmFsPkk8L2xpdGVyYWw+ID0gcGFydGl0aW9uZWQgaW5kZXgKKyAgICAg ICA8bGl0ZXJhbD5JPC9saXRlcmFsPiA9IHBhcnRpdGlvbmVkIGluZGV4LAorICAgICAgIDxsaXRl cmFsPmc8L2xpdGVyYWw+ID0gcHJvcGVydHkgZ3JhcGgKICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICA8L3Jvdz4KIApAQCAtNjI5MCw2ICs2MzE2LDQ0OSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtZWxl bWVudCI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0 bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgt ZWxlbWVudCI+CisgICA8cHJpbWFyeT5wZ19wcm9wZ3JhcGhfZWxlbWVudDwvcHJpbWFyeT4KKyAg PC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19w cm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0bmFtZT4gc3RvcmVzCisgICBpbmZvcm1hdGlvbiBhYm91 dCB0aGUgdmVydGljZXMgYW5kIGVkZ2VzIG9mIGEgcHJvcGVydHkgZ3JhcGgsIGNvbGxlY3RpdmVs eQorICAgY2FsbGVkIHRoZSBlbGVtZW50cyBvZiB0aGUgcHJvcGVydHkgZ3JhcGguCisgIDwvcGFy YT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2VsZW1l bnQ8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAg ICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBl CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZ2Vw Z2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxs aW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBnX2NsYXNzPC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHRoZSBwcm9wZXJ0eSBncmFw aCB0aGF0IHRoaXMgZWxlbWVudCBiZWxvbmdzIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnBnZXJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBnX2Ns YXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHRoZSB0YWJs ZSB0byBjb250YWlucyB0aGUgZGF0YSBmb3IgdGhpcyBwcm9wZXJ0eSBncmFwaCBlbGVtZW50Cisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWFsaWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBhbGlh cyBvZiB0aGUgZWxlbWVudC4gIFRoaXMgaXMgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGVs ZW1lbnQKKyAgICAgICB3aXRoaW4gdGhlIGdyYXBoLiAgSXQgaXMgc2V0IHdoZW4gdGhlIHByb3Bl cnR5IGdyYXBoIGlzIGRlZmluZWQgYW5kCisgICAgICAgZGVmYXVsdHMgdG8gdGhlIG5hbWUgb2Yg dGhlIHVuZGVybHlpbmcgZWxlbWVudCB0YWJsZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cGdla2luZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICA8bGl0ZXJhbD52PC9saXRlcmFsPiBmb3IgYSB2ZXJ0ZXgs IDxsaXRlcmFsPmU8L2xpdGVyYWw+IGZvciBhbiBlZGdlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnBnZXNyY3ZlcnRleGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWVsZW1l bnQiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgRm9yIGFuIGVkZ2UsIGEgbGluayB0byB0aGUgc291cmNlIHZlcnRleC4gICha ZXJvIGZvciBhIHZlcnRleC4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWRlc3R2 ZXJ0ZXhpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNl cyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50Ij48c3RydWN0bmFt ZT5wZ19wcm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEZv ciBhbiBlZGdlLCBhIGxpbmsgdG8gdGhlIGRlc3RpbmF0aW9uIHZlcnRleC4gIChaZXJvIGZvciBh IHZlcnRleC4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBnZWtleTwvc3RydWN0Zmll bGQ+IDx0eXBlPmludDJbXTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3Ru YW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQW4gYXJyYXkgb2YgY29sdW1uIG51bWJlcnMgaW4g dGhlIHRhYmxlIHJlZmVyZW5jZWQgYnkKKyAgICAgICA8c3RydWN0bmFtZT5wZ2VyZWxpZDwvc3Ry dWN0bmFtZT4gdGhhdCBkZWZpbmVzIHRoZSBrZXkgdG8gdXNlIGZvciB0aGlzCisgICAgICAgZWxl bWVudCB0YWJsZS4gIChUaGlzIGRlZmF1bHRzIHRvIHRoZSBwcmltYXJ5IGtleSB3aGVuIHRoZSBw cm9wZXJ0eQorICAgICAgIGdyYXBoIGlzIGNyZWF0ZWQuKQorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5wZ2VzcmNrZXk8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyW108L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1dGUiPjxzdHJ1 Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5hdHRu dW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEZv ciBhbiBlZGdlLCBhbiBhcnJheSBvZiBjb2x1bW4gbnVtYmVycyBpbiB0aGUgdGFibGUgcmVmZXJl bmNlZCBieQorICAgICAgIDxzdHJ1Y3RuYW1lPnBnZXJlbGlkPC9zdHJ1Y3RuYW1lPiB0aGF0IGRl ZmluZXMgdGhlIHNvdXJjZSBrZXkgdG8gdXNlCisgICAgICAgZm9yIHRoaXMgZWxlbWVudCB0YWJs ZS4gIChOdWxsIGZvciBhIHZlcnRleC4pICBUaGUgY29tYmluYXRpb24gb2YKKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGdlc3Jja2V5PC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk PnBnZXNyY3JlZjwvc3RydWN0ZmllbGQ+IGNyZWF0ZXMgdGhlIGxpbmsgYmV0d2VlbiB0aGUgZWRn ZQorICAgICAgIGFuZCB0aGUgc291cmNlIHZlcnRleC4KKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+cGdlc3JjcmVmPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MltdPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0 bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVt PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3Ig YW4gZWRnZSwgYW4gYXJyYXkgb2YgY29sdW1uIG51bWJlcnMgaW4gdGhlIHRhYmxlIHJlYWNoZWQg dmlhCisgICAgICAgPHN0cnVjdG5hbWU+cGdlc3JjdmVydGV4aWQ8L3N0cnVjdG5hbWU+LiAgKE51 bGwgZm9yIGEgdmVydGV4LikgIFRoZQorICAgICAgIGNvbWJpbmF0aW9uIG9mIDxzdHJ1Y3RmaWVs ZD5wZ2VzcmNrZXk8L3N0cnVjdGZpZWxkPiBhbmQKKyAgICAgICA8c3RydWN0ZmllbGQ+cGdlc3Jj cmVmPC9zdHJ1Y3RmaWVsZD4gY3JlYXRlcyB0aGUgbGluayBiZXR3ZWVuIHRoZSBlZGdlCisgICAg ICAgYW5kIHRoZSBzb3VyY2UgdmVydGV4LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w Z2VkZXN0a2V5PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MltdPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5w Z19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1 Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgYW4gZWRn ZSwgYW4gYXJyYXkgb2YgY29sdW1uIG51bWJlcnMgaW4gdGhlIHRhYmxlIHJlZmVyZW5jZWQgYnkK KyAgICAgICA8c3RydWN0bmFtZT5wZ2VyZWxpZDwvc3RydWN0bmFtZT4gdGhhdCBkZWZpbmVzIHRo ZSBkZXN0aW5hdGlvbiBrZXkgdG8gdXNlCisgICAgICAgZm9yIHRoaXMgZWxlbWVudCB0YWJsZS4g IChOdWxsIGZvciBhIHZlcnRleC4pICBUaGUgY29tYmluYXRpb24gb2YKKyAgICAgICA8c3RydWN0 ZmllbGQ+cGdlZGVzdGtleTwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5w Z2VkZXN0cmVmPC9zdHJ1Y3RmaWVsZD4gY3JlYXRlcyB0aGUgbGluayBiZXR3ZWVuIHRoZSBlZGdl CisgICAgICAgYW5kIHRoZSBkZXN0aW5hdGlvbiB2ZXJ0ZXguCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnBnZWRlc3RyZWY8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyW108L3R5cGU+Cisg ICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdHRyaWJ1dGUiPjxz dHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5h dHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IEZvciBhbiBlZGdlLCBhbiBhcnJheSBvZiBjb2x1bW4gbnVtYmVycyBpbiB0aGUgdGFibGUgcmVh Y2hlZCB2aWEKKyAgICAgICA8c3RydWN0bmFtZT5wZ2VkZXN0dmVydGV4aWQ8L3N0cnVjdG5hbWU+ LiAgKE51bGwgZm9yIGEgdmVydGV4LikgIFRoZQorICAgICAgIGNvbWJpbmF0aW9uIG9mIDxzdHJ1 Y3RmaWVsZD5wZ2VkZXN0a2V5PC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk PnBnZWRlc3RyZWY8L3N0cnVjdGZpZWxkPiBjcmVhdGVzIHRoZSBsaW5rIGJldHdlZW4gdGhlIGVk Z2UKKyAgICAgICBhbmQgdGhlIGRlc3RpbmF0aW9uIHZlcnRleC4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+ CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtZWxlbWVudC1s YWJlbCI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDwv c3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1wcm9w Z3JhcGgtZWxlbWVudC1sYWJlbCI+CisgICA8cHJpbWFyeT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9s YWJlbDwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxv ZyA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDwvc3RydWN0bmFtZT4gc3Rv cmVzCisgICBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCBsYWJlbHMgYXBwbHkgdG8gd2hpY2ggZWxl bWVudHMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf cHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAg PHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwv dGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wZ2VsbGFiZWxpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFw aC1sYWJlbCI+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2xhYmVsPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHRoZSBsYWJlbAorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5wZ2VsZWxpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50 Ij48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfZWxlbWVudDwvc3RydWN0bmFtZT48L2xpbms+Ljxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIFJlZmVyZW5jZSB0byB0aGUgZWxlbWVudAorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8 L3NlY3QxPgorCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbCI+CisgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8L3N0cnVjdG5hbWU+PC90aXRsZT4K KworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWxhYmVsIj4KKyAgIDxw cmltYXJ5PnBnX3Byb3BncmFwaF9sYWJlbDwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAg PHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8L3N0 cnVjdG5hbWU+IHN0b3JlcworICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhYmVscyBpbiBhIHBy b3BlcnR5IGdyYXBoLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX3Byb3BncmFwaF9sYWJlbDwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8 dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnBnbHBnaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+Cisg ICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVj dG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1 Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZlcmVuY2Ug dG8gdGhlIHByb3BlcnR5IGdyYXBoIHRoYXQgdGhpcyBsYWJlbCBiZWxvbmdzIHRvCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnBnbGxhYmVsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBuYW1lIG9mIHRo ZSBsYWJlbC4gIFRoaXMgaXMgdW5pcXVlIGFtb25nIHRoZSBsYWJlbHMgaW4gYSBncmFwaC4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3Jv dXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1wcm9w Z3JhcGgtbGFiZWwtcHJvcGVydHkiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBo X2xhYmVsX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJjYXRhbG9nLXBnLXByb3BncmFwaC1sYWJlbC1wcm9wZXJ0eSI+CisgICA8cHJpbWFyeT5wZ19w cm9wZ3JhcGhfbGFiZWxfcHJvcGVydHk8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxw YXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3Bl cnR5PC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9wZXJ0 aWVzIGluIGEgcHJvcGVydHkgZ3JhcGggdGhhdCBhcmUgc3BlY2lmaWMgdG8gYQorICAgbGFiZWwu ICBJbiBwYXJ0aWN1bGFyLCB0aGlzIHN0b3JlcyB0aGUgZXhwcmVzc2lvbiB0aGF0IGRlZmluZXMg dGhlCisgICBwcm9wZXJ0eS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHk8L3N0cnVjdG5hbWU+IENvbHVtbnM8 L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wbHBwcm9waWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wcm9wZ3JhcGgtcHJvcGVydHkiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9wcm9wZXJ0eTwv c3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJlZmVyZW5jZSB0byB0aGUgcHJvcGVydHkK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGxwZWxsYWJlbGlkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctcHJvcGdyYXBoLWVsZW1lbnQtbGFiZWwiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9l bGVtZW50X2xhYmVsPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRv IHRoZSBsYWJlbCAoaW5kaXJlY3RseSB2aWEKKyAgICAgICA8c3RydWN0bmFtZT5wZ19wcm9wZ3Jh cGhfZWxlbWVudF9sYWJlbDwvc3RydWN0bmFtZT4sIHdoaWNoIHRoZW4gbGlua3MKKyAgICAgICB0 byA8c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWw8L3N0cnVjdG5hbWU+KQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5wbHBleHByPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdfbm9kZV90 cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRXhwcmVzc2lv biB0cmVlIChpbiA8ZnVuY3Rpb24+bm9kZVRvU3RyaW5nKCk8L2Z1bmN0aW9uPiByZXByZXNlbnRh dGlvbikKKyAgICAgICBmb3IgdGhlIHByb3BlcnR5J3MgZGVmaW5pdGlvbi4gIFRoZSBleHByZXNz aW9uIHJlZmVyZW5jZXMgdGhlIHRhYmxlCisgICAgICAgcmVhY2hlZCB2aWEgPHN0cnVjdG5hbWU+ cGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw8L3N0cnVjdG5hbWU+IGFuZAorICAgICAgIDxzdHJ1 Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPi4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFi bGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1wcm9wZ3JhcGgtcHJvcGVy dHkiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJvcGdyYXBoX3Byb3BlcnR5PC9zdHJ1Y3Ru YW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLXByb3BncmFwaC1w cm9wZXJ0eSI+CisgICA8cHJpbWFyeT5wZ19wcm9wZ3JhcGhfcHJvcGVydHk8L3ByaW1hcnk+Cisg IDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdf cHJvcGdyYXBoX3Byb3BlcnR5PC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBwcm9wZXJ0aWVzIGluIGEgcHJvcGVydHkgZ3JhcGguICBUaGlzIG9ubHkgc3RvcmVz CisgICBpbmZvcm1hdGlvbiB0aGF0IGFwcGxpZXMgdG8gYSBwcm9wZXJ0eSB0aHJvdWdob3V0IHRo ZSBncmFwaCwgaW5kZXBlbmRlbnQgb2YKKyAgIHdoYXQgbGFiZWwgb3IgZWxlbWVudCBpdCBpcyBv bi4gIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIGluY2x1ZGluZyB0aGUKKyAgIGFjdHVhbCBleHBy ZXNzaW9ucyB0aGF0IGRlZmluZSB0aGUgcHJvcGVydGllcyBhcmUgaW4gdGhlIGNhdGFsb2cgPGxp bmsKKyAgIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJvcGdyYXBoLWxhYmVsLXByb3BlcnR5Ij48c3Ry dWN0bmFtZT5wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHk8L3N0cnVjdG5hbWU+PC9saW5rPi4K KyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZ3Jh cGhfcHJvcGVydHk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xz PSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENv bHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlv bgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAg ICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wZ3BwZ2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZl cmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBnX2Ns YXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHRoZSBwcm9w ZXJ0eSBncmFwaCB0aGF0IHRoaXMgcHJvcGVydHkgYmVsb25ncyB0bworICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5wZ3BuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0 eS4gIFRoaXMgaXMgdW5pcXVlIGFtb25nIHRoZSBwcm9wZXJ0aWVzIGluIGEKKyAgICAgICBncmFw aC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGdwdHlwaWQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgVGhlIGRhdGEgdHlwZSBvZiB0aGlzIHByb3BlcnR5LiAgKFRoaXMgaXMgcmVxdWlyZWQg dG8gYmUgZml4ZWQgZm9yIGEKKyAgICAgICBnaXZlbiBwcm9wZXJ0eSBpbiBhIHByb3BlcnR5IGdy YXBoLCBldmVuIGlmIHRoZSBwcm9wZXJ0eSBpcyBkZWZpbmVkCisgICAgICAgbXVsdGlwbGUgdGlt ZXMgaW4gZGlmZmVyZW50IGVsZW1lbnRzIGFuZCBsYWJlbHMuKQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4K KyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXB1YmxpY2F0aW9uIj4KICAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApp bmRleCBhZTE1NmI2YjFjZC4uMzJjZjQ3NGE2MDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTIwMTIsNyArMjAxMiw3IEBA IFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICA8cGFyYT4KICAgICAg ICBBbGxvd3MgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiBmcm9tCiAgICAgICAgYW55IGNvbHVt biwgb3Igc3BlY2lmaWMgY29sdW1uKHMpLCBvZiBhIHRhYmxlLCB2aWV3LCBtYXRlcmlhbGl6ZWQK LSAgICAgICB2aWV3LCBvciBvdGhlciB0YWJsZS1saWtlIG9iamVjdC4KKyAgICAgICB2aWV3LCBw cm9wZXJ0eSBncmFwaCwgb3Igb3RoZXIgdGFibGUtbGlrZSBvYmplY3QuCiAgICAgICAgQWxzbyBh bGxvd3MgdXNlIG9mIDxjb21tYW5kPkNPUFkgVE88L2NvbW1hbmQ+LgogICAgICAgIFRoaXMgcHJp dmlsZWdlIGlzIGFsc28gbmVlZGVkIHRvIHJlZmVyZW5jZSBleGlzdGluZyBjb2x1bW4gdmFsdWVz IGluCiAgICAgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9j b21tYW5kPiwKQEAgLTUzNTAsNiArNTM1MCwyMjkgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikg RlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwog ICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImRkbC1wcm9wZXJ0eS1ncmFwaHMi PgorICA8dGl0bGU+UHJvcGVydHkgR3JhcGhzPC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9 ImRkbC1wcm9wZXJ0eS1ncmFwaHMiPgorICAgPHByaW1hcnk+cHJvcGVydHkgZ3JhcGg8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgQSBwcm9wZXJ0eSBncmFwaCBpcyBh IHdheSB0byByZXByZXNlbnQgZGF0YWJhc2UgY29udGVudHMsIGluc3RlYWQgb2YgdXNpbmcKKyAg IHJlbGF0aW9uYWwgc3RydWN0dXJlcyBzdWNoIGFzIHRhYmxlcy4gIEEgcHJvcGVydHkgZ3JhcGgg Y2FuIHRoZW4gYmUgcXVlcmllZAorICAgdXNpbmcgZ3JhcGggcGF0dGVybiBtYXRjaGluZyBzeW50 YXgsIGluc3RlYWQgb2Ygam9pbiBxdWVyaWVzIHR5cGljYWwgb2YKKyAgIHJlbGF0aW9uYWwgZGF0 YWJhc2VzLiAgUG9zdGdyZVNRTCBpbXBsZW1lbnRzIFNRTC9QR1E8Zm9vdG5vdGU+PHBhcmE+SGVy ZSwKKyAgIFBHUSBzdGFuZHMgZm9yIDxxdW90ZT5wcm9wZXJ0eSBncmFwaCBxdWVyeTwvcXVvdGU+ LiAgSW4gdGhlIGphcmdvbiBvZiBncmFwaAorICAgZGF0YWJhc2VzLCA8cXVvdGU+cHJvcGVydHkg Z3JhcGg8L3F1b3RlPiBpcyBub3JtYWxseSBhYmJyZXZpYXRlZCBhcyBQRywKKyAgIHdoaWNoIGlz IGNsZWFybHkgY29uZnVzaW5nIGZvciBwcmFjdGlvbmVycyBvZiBQb3N0Z3JlU1FMLCBhbHNvIHVz dWFsbHkKKyAgIGFiYnJldmlhdGVkIGFzIFBHLjwvcGFyYT48L2Zvb3Rub3RlPiwgd2hpY2ggaXMg cGFydCBvZiB0aGUgU1FMIHN0YW5kYXJkLAorICAgd2hlcmUgYSBwcm9wZXJ0eSBncmFwaCBpcyBk ZWZpbmVkIGFzIGEga2luZCBvZiByZWFkLW9ubHkgdmlldyBvdmVyCisgICByZWxhdGlvbmFsIHRh Ymxlcy4gIFNvIHRoZSBhY3R1YWwgZGF0YSBpcyBzdGlsbCBpbiB0YWJsZXMgb3IgdGFibGUtbGlr ZQorICAgb2JqZWN0cywgYnV0IGlzIGV4cG9zZWQgYXMgYSBncmFwaCBmb3IgZ3JhcGggcXVlcnlp bmcgb3BlcmF0aW9ucy4gIChUaGlzIGlzCisgICBpbiBjb250cmFzdCB0byBuYXRpdmUgZ3JhcGgg ZGF0YWJhc2VzLCB3aGVyZSB0aGUgZGF0YSBpcyBzdG9yZWQgZGlyZWN0bHkgaW4KKyAgIGEgZ3Jh cGggc3RydWN0dXJlLikgIFVuZGVybmVhdGgsIGJvdGggcmVsYXRpb25hbCBxdWVyaWVzIGFuZCBn cmFwaCBxdWVyaWVzCisgICB1c2UgdGhlIHNhbWUgcXVlcnkgcGxhbm5pbmcgYW5kIGV4ZWN1dGlv biBpbmZyYXN0dWN0dXJlLCBhbmQgaW4gZmFjdAorICAgcmVsYXRpb25hbCBhbmQgZ3JhcGggcXVl cmllcyBjYW4gYmUgY29tYmluZWQgYW5kIG1peGVkIGluIHNpbmdsZSBxdWVyaWVzLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBBIGdyYXBoIGlzIGEgc2V0IG9mIHZlcnRpY2VzIGFuZCBlZGdl cy4gIEVhY2ggZWRnZSBoYXMgdHdvIGRpc3Rpbmd1aXNoYWJsZQorICAgYXNzb2NpYXRlZCB2ZXJ0 aWNlcyBjYWxsZWQgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmVydGljZXMuICAoU28gaW4K KyAgIHRoaXMgbW9kZWwsIGFsbCBlZGdlcyBhcmUgZGlyZWN0ZWQuKSAgVmVydGljZXMgYW5kIGVk Z2VzIHRvZ2V0aGVyIGFyZQorICAgY2FsbGVkIHRoZSBlbGVtZW50cyBvZiB0aGUgZ3JhcGguICBB IHByb3BlcnR5IGdyYXBoIGV4dGVuZHMgdGhpcyB3ZWxsLWtub3duCisgICBtYXRoZW1hdGljYWwg c3RydWN0dXJlIHdpdGggYSB3YXkgdG8gcmVwcmVzZW50IHVzZXIgZGF0YS4gIEluIGEgcHJvcGVy dHkKKyAgIGdyYXBoLCBlYWNoIHZlcnRleCBvciBlZGdlIGhhcyBvbmUgb3IgbW9yZSBhc3NvY2lh dGVkIGxhYmVscywgYW5kIGVhY2gKKyAgIGxhYmVsIGhhcyB6ZXJvIG9yIG1vcmUgcHJvcGVydGll cy4gIFRoZSBsYWJlbHMgYXJlIHNpbWlsYXIgdG8gdGFibGUgcm93CisgICB0eXBlcyBpbiB0aGF0 IHRoZXkgZGVmaW5lIHRoZSBraW5kIG9mIHRoZSBjb250YWluZWQgZGF0YSBhbmQgaXRzIHN0cnVj dHVyZS4KKyAgIFRoZSBwcm9wZXJ0aWVzIGFyZSBzaW1pbGFyIHRvIGNvbHVtbnMgaW4gdGhhdCB0 aGV5IGNvbnRhaW4gdGhlIGFjdHVhbCBkYXRhLgorICAgSW4gZmFjdCwgYnkgZGVmYXVsdCwgYSBw cm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uIGV4cG9zZXMgdGhlIHVuZGVybHlpbmcKKyAgIHRhYmxl cyBhbmQgY29sdW1ucyBhcyBsYWJlbHMgYW5kIHByb3BlcnRpZXMsIGJ1dCBtb3JlIGNvbXBsaWNh dGVkCisgICBkZWZpbml0aW9ucyBhcmUgcG9zc2libGUuCisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgdGFibGUgZGVmaW5pdGlvbnM6Cis8cHJvZ3JhbWxp c3Rpbmc+CitDUkVBVEUgVEFCTEUgcHJvZHVjdHMgKAorICAgIHByb2R1Y3Rfbm8gaW50ZWdlciBQ UklNQVJZIEtFWSwKKyAgICBuYW1lIHZhcmNoYXIsCisgICAgcHJpY2UgbnVtZXJpYworKTsKKwor Q1JFQVRFIFRBQkxFIGN1c3RvbWVycyAoCisgICAgY3VzdG9tZXJfaWQgaW50ZWdlciBQUklNQVJZ IEtFWSwKKyAgICBuYW1lIHZhcmNoYXIsCisgICAgYWRkcmVzcyB2YXJjaGFyCispOworCitDUkVB VEUgVEFCTEUgb3JkZXJzICgKKyAgICBvcmRlcl9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAg IG9yZGVyZWRfd2hlbiBkYXRlCispOworCitDUkVBVEUgVEFCTEUgb3JkZXJfaXRlbXMgKAorICAg IG9yZGVyX2l0ZW1zX2lkIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgb3JkZXJfaWQgaW50ZWdl ciBSRUZFUkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpLAorICAgIHByb2R1Y3Rfbm8gaW50ZWdlciBS RUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKSwKKyAgICBxdWFudGl0eSBpbnRlZ2VyCisp OworCitDUkVBVEUgVEFCTEUgY3VzdG9tZXJfb3JkZXJzICgKKyAgICBjdXN0b21lcl9vcmRlcnNf aWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2VyIFJFRkVSRU5D RVMgY3VzdG9tZXJzIChjdXN0b21lcl9pZCksCisgICAgb3JkZXJfaWQgaW50ZWdlciBSRUZFUkVO Q0VTIG9yZGVycyAob3JkZXJfaWQpCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIFdoZW4gbWFw cGluZyB0aGlzIHRvIGEgZ3JhcGgsIHRoZSBmaXJzdCB0aHJlZSB0YWJsZXMgd291bGQgYmUgdGhl IHZlcnRpY2VzCisgICBhbmQgdGhlIGxhc3QgdHdvIHRhYmxlcyB3b3VsZCBiZSB0aGUgZWRnZXMu ICBUaGUgZm9yZWlnbi1rZXkgZGVmaW5pdGlvbnMKKyAgIGNvcnJlc3BvbmQgdG8gdGhlIGZhY3Qg dGhhdCBlZGdlcyBsaW5rIHR3byB2ZXJ0aWNlcy4gIChHcmFwaCBkZWZpbml0aW9ucworICAgd29y ayBtb3JlIG5hdHVyYWxseSB3aXRoIG1hbnktdG8tbWFueSByZWxhdGlvbnNoaXBzLCBzbyB0aGlz IGV4YW1wbGUgaXMKKyAgIG9yZ2FuaXplZCBsaWtlIHRoYXQsIGV2ZW4gdGhvdWdoIG9uZS10by1t YW55IHJlbGF0aW9uc2hpcHMgbWlnaHQgYmUgdXNlZAorICAgaGVyZSBpbiBhIHB1cmUgcmVsYXRp b25hbCBhcHByb2FjaC4pCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEhlcmUgaXMgYW4gZXhh bXBsZSBob3cgYSBwcm9wZXJ0eSBncmFwaCBjb3VsZCBiZSBkZWZpbmVkIG9uIHRvcCBvZiB0aGVz ZQorICAgdGFibGVzOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15 c2hvcAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICBwcm9kdWN0cywKKyAgICAgICAgY3Vz dG9tZXJzLAorICAgICAgICBvcmRlcnMKKyAgICApCisgICAgRURHRSBUQUJMRVMgKAorICAgICAg ICBvcmRlcl9pdGVtcyBTT1VSQ0Ugb3JkZXJzIERFU1RJTkFUSU9OIHByb2R1Y3RzLAorICAgICAg ICBjdXN0b21lcl9vcmRlcnMgU09VUkNFIGN1c3RvbWVycyBERVNUSU5BVElPTiBvcmRlcnMKKyAg ICApOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhpcyBn cmFwaCBjb3VsZCB0aGVuIGJlIHF1ZXJpZWQgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5nPgor LS0gZ2V0IGxpc3Qgb2YgY3VzdG9tZXJzIGFjdGl2ZSB0b2RheQorU0VMRUNUIGN1c3RvbWVyX25h bWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyktW0lTIGN1 c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycyBXSEVSRSBvcmRlcmVkX3doZW4gPSBjdXJyZW50 X2RhdGUpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7Cis8L3Byb2dyYW1saXN0 aW5nPgorICAgY29ycmVzcG9uZGluZyBhcHByb3hpbWF0ZWx5IHRvIHRoaXMgcmVsYXRpb25hbCBx dWVyeToKKzxwcm9ncmFtbGlzdGluZz4KKy0tIGdldCBsaXN0IG9mIGN1c3RvbWVycyBhY3RpdmUg dG9kYXkKK1NFTEVDVCBjdXN0b21lcnMubmFtZSBGUk9NIGN1c3RvbWVycyBKT0lOIGN1c3RvbWVy X29yZGVycyBVU0lORyAoY3VzdG9tZXJfaWQpIEpPSU4gb3JkZXJzIFVTSU5HIChvcmRlcl9pZCkg V0hFUkUgb3JkZXJzLm9yZGVyZWRfd2hlbiA9IGN1cnJlbnRfZGF0ZTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBhYm92ZSBkZWZpbml0aW9uIHJlcXVp cmVzIHRoYXQgYWxsIHRhYmxlcyBoYXZlIHByaW1hcnkga2V5cyBhbmQgdGhhdAorICAgZm9yIGVh Y2ggZWRnZSB0aGVyZSBpcyBhbiBhcHByb3ByaWF0ZSBmb3JlaWduIGtleS4gIE90aGVyd2lzZSwg YWRkaXRpb25hbAorICAgY2xhdXNlcyBoYXZlIHRvIGJlIHNwZWNpZmllZCB0byBpZGVudGlmeSB0 aGUga2V5IGNvbHVtbnMuICBGb3IgZXhhbXBsZSwKKyAgIHRoaXMgd291bGQgYmUgdGhlIGZ1bGx5 IHZlcmJvc2UgZGVmaW5pdGlvbiB0aGF0IGRvZXMgbm90IHJlbHkgb24gcHJpbWFyeQorICAgYW5k IGZvcmVpZ24ga2V5czoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBt eXNob3AKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVjdHMgS0VZIChwcm9kdWN0 X25vKSwKKyAgICAgICAgY3VzdG9tZXJzIEtFWSAoY3VzdG9tZXJfaWQpLAorICAgICAgICBvcmRl cnMgS0VZIChvcmRlcl9pZCkKKyAgICApCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBvcmRl cl9pdGVtcyBLRVkgKG9yZGVyX2l0ZW1zX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAob3Jk ZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFU SU9OIEtFWSAocHJvZHVjdF9ubykgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisg ICAgICAgIGN1c3RvbWVyX29yZGVycyBLRVkgKGN1c3RvbWVyX29yZGVyc19pZCkKKyAgICAgICAg ICAgIFNPVVJDRSBLRVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9t ZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VT IG9yZGVycyAob3JkZXJfaWQpCisgICAgKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIEFzIG1lbnRpb25lZCBhYm92ZSwgYnkgZGVmYXVsdCwgdGhlIG5hbWVz IG9mIHRoZSB0YWJsZXMgYW5kIGNvbHVtbnMgYXJlCisgICBleHBvc2VkIGFzIGxhYmVscyBhbmQg cHJvcGVydGllcywgcmVzcGVjdGl2ZWx5LiAgVGhlIGNsYXVzZXMgPGxpdGVyYWw+SVMKKyAgIGN1 c3RvbWVyPC9saXRlcmFsPiwgPGxpdGVyYWw+SVMgb3JkZXI8L2xpdGVyYWw+LCBldGMuIGluIHRo ZQorICAgPGxpdGVyYWw+TUFUQ0g8L2xpdGVyYWw+IGNsYXVzZSBpbiBmYWN0IHJlZmVyIHRvIGxh YmVscywgbm90IHRhYmxlIG5hbWVzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBPbmUgdXNl IG9mIGxhYmVscyBpcyB0byBleHBvc2UgYSB0YWJsZSB0aHJvdWdoIGEgZGlmZmVyZW50IG5hbWUg aW4gdGhlCisgICBncmFwaC4gIEZvciBleGFtcGxlLCBpbiBncmFwaHMsIHZlcnRpY2VzIHR5cGlj YWxseSBoYXZlIHNpbmd1bGFyIG5vdW5zIGFzCisgICBsYWJlbHMgYW5kIGVkZ2VzIHR5cGljYWxs eSBoYXZlIHZlcmJzIGFzIGxhYmVscywgc3VjaCBhcyA8cXVvdGU+aXM8L3F1b3RlPiwKKyAgIDxx dW90ZT5oYXM8L3F1b3RlPiwgPHF1b3RlPmNvbnRhaW5zPC9xdW90ZT4sIG9yIHNvbWV0aGluZyBz cGVjaWZpYyBsaWtlCisgICA8cXVvdGU+YXBwcm92ZXM8L3F1b3RlPi4gIFdlIGNhbiBpbnRyb2R1 Y2Ugc3VjaCBsYWJlbHMgaW50byBvdXIgZXhhbXBsZQorICAgbGlrZSB0aGlzOgorPHByb2dyYW1s aXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZFUlRFWCBUQUJMRVMg KAorICAgICAgICBwcm9kdWN0cyBMQUJFTCBwcm9kdWN0LAorICAgICAgICBjdXN0b21lcnMgTEFC RUwgY3VzdG9tZXIsCisgICAgICAgIG9yZGVycyBMQUJFTCBvcmRlcgorICAgICkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIFNPVVJDRSBvcmRlcnMgREVTVElOQVRJT04g cHJvZHVjdHMgTEFCRUwgY29udGFpbnMsCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBTT1VSQ0Ug Y3VzdG9tZXJzIERFU1RJTkFUSU9OIG9yZGVycyBMQUJFTCBoYXMKKyAgICApOworPC9wcm9ncmFt bGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgV2l0aCB0aGlzIGRlZmluaXRpb24s IHdlIGNhbiB3cml0ZSBhIHF1ZXJ5IGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK1NFTEVD VCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYzpjdXN0b21l ciktWzpoYXNdLT4obzpvcmRlciBXSEVSRSBvcmRlcmVkX3doZW4gPSBjdXJyZW50X2RhdGUpIENP TFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAg V2l0aCB0aGUgbmV3IGxhYmVscyBhbmQgdXNpbmcgdGhlIGNvbG9uIGluc3RlYWQgb2YgPGxpdGVy YWw+SVM8L2xpdGVyYWw+LAorICAgd2hpY2ggYXJlIGVxdWl2YWxlbnQsIHRoZSA8bGl0ZXJhbD5N QVRDSDwvbGl0ZXJhbD4gY2xhdXNlIGlzIG5vdyBtb3JlCisgICBjb21wYWN0IGFuZCBpbnR1aXRp dmUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIEFub3RoZXIgdXNlIGlzIHRvIGFwcGx5IHRo ZSBzYW1lIGxhYmVsIHRvIG11bHRpcGxlIGVsZW1lbnQgdGFibGVzLiAgRm9yCisgICBleGFtcGxl LCBjb25zaWRlciB0aGlzIGFkZGl0aW9uYWwgdGFibGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVB VEUgVEFCTEUgZW1wbG95ZWVzICgKKyAgICBlbXBsb3llZV9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZ LAorICAgIGVtcGxveWVlX25hbWUgdmFyY2hhciwKKyAgICAuLi4KKyk7Cis8L3Byb2dyYW1saXN0 aW5nPgorYW5kIHRoZSBmb2xsb3dpbmcgZ3JhcGggZGVmaW5pdGlvbjoKKzxwcm9ncmFtbGlzdGlu Zz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBteXNob3AKKyAgICBWRVJURVggVEFCTEVTICgKKyAg ICAgICAgcHJvZHVjdHMgTEFCRUwgcHJvZHVjdCwKKyAgICAgICAgY3VzdG9tZXJzIExBQkVMIGN1 c3RvbWVyIExBQkVMIHBlcnNvbiBQUk9QRVJUSUVTIChuYW1lKSwKKyAgICAgICAgb3JkZXJzIExB QkVMIG9yZGVyLAorICAgICAgICBlbXBsb3llZXMgTEFCRUwgZW1wbG95ZWUgTEFCRUwgcGVyc29u IFBST1BFUlRJRVMgKGVtcGxveWVlX25hbWUgQVMgbmFtZSkKKyAgICApCisgICAgRURHRSBUQUJM RVMgKAorICAgICAgICBvcmRlcl9pdGVtcyBTT1VSQ0Ugb3JkZXJzIERFU1RJTkFUSU9OIHByb2R1 Y3RzIExBQkVMIGNvbnRhaW5zLAorICAgICAgICBjdXN0b21lcl9vcmRlcnMgU09VUkNFIGN1c3Rv bWVycyBERVNUSU5BVElPTiBvcmRlcnMgTEFCRUwgaGFzCisgICAgKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICAoSW4gcHJhY3RpY2UsIHRoZXJlIG91Z2h0IHRvIGJlIGFuIGVkZ2UgbGlua2luZyB0 aGUKKyAgIDxsaXRlcmFsPmVtcGxveWVlczwvbGl0ZXJhbD4gdGFibGUgdG8gc29tZXRoaW5nLCBi dXQgaXQgaXMgYWxsb3dlZCBsaWtlCisgICB0aGlzLikgIFRoZW4gd2UgY2FuIHJ1biBhIHF1ZXJ5 IGxpa2UgdGhpcyAoaW5jb21wbGV0ZSk6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgLi4uIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoOnBlcnNvbiBXSEVSRSBuYW1lID0gJy4uLicp LVtdLT4uLi4gQ09MVU1OUyAoLi4uKSk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgVGhpcyB3b3Vs ZCBhdXRvbWF0aWNhbGx5IGNvbnNpZGVyIGJvdGggdGhlIDxsaXRlcmFsPmN1c3RvbWVyczwvbGl0 ZXJhbD4gYW5kCisgICB0aGUgPGxpdGVyYWw+ZW1wbG95ZWVzPC9saXRlcmFsPiB0YWJsZXMgd2hl biBsb29raW5nIGZvciBhbiBlZGdlIHdpdGggdGhlCisgICA8bGl0ZXJhbD5wZXJzb248L2xpdGVy YWw+IGxhYmVsLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaGVuIG1vcmUgdGhhbiBvbmUg ZWxlbWVudCB0YWJsZSBoYXMgdGhlIHNhbWUgbGFiZWwsIGl0IGlzIHJlcXVpcmVkIHRoYXQKKyAg IHRoZSBwcm9wZXJ0aWVzIG1hdGNoIGluIG51bWJlciwgbmFtZSwgYW5kIHR5cGUuICBJbiB0aGUg ZXhhbXBsZSwgd2Ugc3BlY2lmeQorICAgYW4gZXhwbGljaXQgcHJvcGVydHkgbGlzdCBhbmQgaW4g b25lIGNhc2Ugb3ZlcnJpZGUgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbgorICAgdG8gYWNoaWV2ZSB0 aGlzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBGb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBz eW50YXggZm9yIGNyZWF0aW5nIHByb3BlcnR5IGdyYXBocywgc2VlIDxsaW5rCisgICBsaW5rZW5k PSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj48Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkKKyAg IEdSQVBIPC9jb21tYW5kPjwvbGluaz4uICBNb3JlIGRldGFpbHMgYWJvdXQgdGhlIGdyYXBoIHF1 ZXJ5IHN5bnRheCBpcyBpbgorICAgPHhyZWYgbGlua2VuZD0icXVlcmllcy1ncmFwaCIvPi4KKyAg PC9wYXJhPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgogICA8dGl0bGU+ T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9mZWF0dXJlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL2ZlYXR1cmVzLnNnbWwKaW5kZXggOTY2ZmQz OTg4MjcuLjFhYmU2Y2NkM2Q1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZmVhdHVyZXMuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZmVhdHVyZXMuc2dtbApAQCAtNzAsMTAgKzcwLDEwIEBACiAK ICA8cGFyYT4KICAgVGhlIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gY29y ZSBjb3ZlcnMgcGFydHMgMSwgMiwgOSwKLSAgMTEsIGFuZCAxNC4gIFBhcnQgMyBpcyBjb3ZlcmVk IGJ5IHRoZSBPREJDIGRyaXZlciwgYW5kIHBhcnQgMTMgaXMKKyAgMTEsIDE0LCBhbmQgMTYuICBQ YXJ0IDMgaXMgY292ZXJlZCBieSB0aGUgT0RCQyBkcml2ZXIsIGFuZCBwYXJ0IDEzIGlzCiAgIGNv dmVyZWQgYnkgdGhlIFBML0phdmEgcGx1Zy1pbiwgYnV0IGV4YWN0IGNvbmZvcm1hbmNlIGlzIGN1 cnJlbnRseQogICBub3QgYmVpbmcgdmVyaWZpZWQgZm9yIHRoZXNlIGNvbXBvbmVudHMuICBUaGVy ZSBhcmUgY3VycmVudGx5IG5vCi0gIGltcGxlbWVudGF0aW9ucyBvZiBwYXJ0cyA0LCAxMCwgMTUs IGFuZCAxNgorICBpbXBsZW1lbnRhdGlvbnMgb2YgcGFydHMgNCwgMTAsIGFuZCAxNQogICBmb3Ig PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPi4KICA8L3BhcmE+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmlu ZGV4IDdlZmM4MTkzNmFiLi4xOGQyMjQ3OTljYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNjE0OSw2ICsyNjE0OSwy MSBAQCBTRUxFQ1QgcGdfdHlwZV9pc192aXNpYmxlKCdteXNjaGVtYS53aWRnZXQnOjpyZWd0eXBl KTsKICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCisgICAgICA8cm93Pgor ICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3Np Z25hdHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5wZ19nZXRf cHJvcGdyYXBoZGVmPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1 bmN0aW9uPnBnX2dldF9wcm9wZ3JhcGhkZWY8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+cHJvcGdy YXBoPC9wYXJhbWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+ dGV4dDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAg ICBSZWNvbnN0cnVjdHMgdGhlIGNyZWF0aW5nIGNvbW1hbmQgZm9yIGEgcHJvcGVydHkgZ3JhcGgu CisgICAgICAgIChUaGlzIGlzIGEgZGVjb21waWxlZCByZWNvbnN0cnVjdGlvbiwgbm90IHRoZSBv cmlnaW5hbCB0ZXh0CisgICAgICAgIG9mIHRoZSBjb21tYW5kLikKKyAgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJm dW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxp bmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNn bWwgYi9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKaW5kZXggMTlkZmZlN2Jl NmEuLmU2NTYxNTQzZjYyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2No ZW1hLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCkBAIC00 MTcxLDYgKzQxNzEsMTA5OCBAQCBPUkRFUiBCWSBjLm9yZGluYWxfcG9zaXRpb247CiAgIDwvdGFi bGU+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1lZGdlLXRhYmxlLWNv bXBvbmVudHMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfZWRnZV90YWJsZV9jb21wb25lbnRzPC9s aXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8bGl0ZXJhbD5wZ19lZGdl X3RhYmxlX2NvbXBvbmVudHM8L2xpdGVyYWw+IGlkZW50aWZpZXMgd2hpY2gKKyAgIGNvbHVtbnMg YXJlIHBhcnQgb2YgdGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiB2ZXJ0ZXgga2V5cywgYXMgd2Vs bCBhcyB0aGVpcgorICAgY29ycmVzcG9uZGluZyBjb2x1bW5zIGluIHRoZSB2ZXJ0ZXggdGFibGVz IGJlaW5nIGxpbmtlZCB0bywgaW4gdGhlIGVkZ2UKKyAgIHRhYmxlcyBvZiBwcm9wZXJ0eSBncmFw aHMgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBkYXRhYmFzZS4gIE9ubHkgdGhvc2UKKyAgIHByb3Bl cnR5IGdyYXBocyBhcmUgc2hvd24gdGhhdCB0aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8g KGJ5IHdheSBvZgorICAgYmVpbmcgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSku CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHZl cnRleCBsaW5rcyBvZiBlZGdlIHRhYmxlcyBhcmUgc3BlY2lmaWVkIGluCisgICA8Y29tbWFuZD5D UkVBVEUgUFJPUEVSVFkgR1JBUEg8L2NvbW1hbmQ+IGFuZCBkZWZhdWx0IHRvIGZvcmVpZ24ga2V5 cyBpbgorICAgY2VydGFpbiBjYXNlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHM8L3N0cnVjdG5hbWU+IENvbHVt bnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBw cm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5lZGdlX3RhYmxlX2FsaWFzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lk ZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg ZWxlbWVudCB0YWJsZSBhbGlhcyBvZiB0aGUgZWRnZSB0YWJsZSBiZWluZyBkZXNjcmliZWQKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmVydGV4X3RhYmxlX2FsaWFzPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBUaGUgZWxlbWVudCB0YWJsZSBhbGlhcyBvZiB0aGUgc291cmNlIG9yIGRlc3Rp bmF0aW9uIHZlcnRleCB0YWJsZSBiZWluZyBsaW5rZWQgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+ZWRnZV9lbmQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0YTwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEVpdGhlciA8bGl0ZXJhbD5T T1VSQ0U8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRFU1RJTkFUSU9OPC9saXRlcmFsPjsKKyAgICAg ICBzcGVjaWZpZXMgd2hpY2ggZWRnZSBsaW5rIGlzIGJlaW5nIGRlc2NyaWJlZC4KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+ZWRnZV90YWJsZV9jb2x1bW5fbmFtZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgTmFtZSBvZiB0aGUgY29sdW1uIHRoYXQgaXMgcGFydCBvZiB0aGUgc291cmNlIG9y IGRlc3RpbmF0aW9uIHZlcnRleCBrZXkgaW4gdGhpcyBlZGdlIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZlcnRleF90YWJsZV9jb2x1bW5fbmFtZTwvc3RydWN0ZmllbGQ+IDx0 eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgTmFtZSBvZiB0aGUgY29sdW1uIHRoYXQgaXMgcGFydCBvZiB0aGUga2V5IGluIHRoZSBz b3VyY2Ugb3IgZGVzdGluYXRpb24KKyAgICAgICB2ZXJ0ZXggdGFibGUgYmVpbmcgbGlua2VkIHRv CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9yZGluYWxfcG9zaXRpb248L3N0cnVjdGZp ZWxkPiA8dHlwZT5jYXJkaW5hbF9udW1iZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBPcmRpbmFsIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW5zIHdpdGhpbiB0aGUg a2V5IChjb3VudCBzdGFydHMgYXQgMSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwor IDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1lbGVtZW50LXRhYmxlLWtleS1jb2x1bW5zIj4KKyAg PHRpdGxlPjxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVfa2V5X2NvbHVtbnM8L2xpdGVyYWw+PC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnBnX2VsZW1lbnRfa2V5X2Nv bHVtbnM8L2xpdGVyYWw+IGlkZW50aWZpZXMgd2hpY2ggY29sdW1ucworICAgYXJlIHBhcnQgb2Yg dGhlIGtleXMgb2YgdGhlIGVsZW1lbnQgdGFibGVzIG9mIHByb3BlcnR5IGdyYXBocyBkZWZpbmVk IGluCisgICB0aGUgY3VycmVudCBkYXRhYmFzZS4gIE9ubHkgdGhvc2UgcHJvcGVydHkgZ3JhcGhz IGFyZSBzaG93biB0aGF0IHRoZQorICAgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8gKGJ5IHdh eSBvZiBiZWluZyB0aGUgb3duZXIgb3IgaGF2aW5nIHNvbWUKKyAgIHByaXZpbGVnZSkuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBrZXkgb2YgYW4gZWxlbWVudCB0YWJsZSB1bmlxdWVs eSBpZGVudGlmaWVzIHRoZSByb3dzIGluIGl0LiAgSXQgaXMKKyAgIGVpdGhlciBzcGVjaWZpZWQg dXNpbmcgdGhlIDxsaXRlcmFsPktFWTwvbGl0ZXJhbD4gY2xhdXNlIGluIDxjb21tYW5kPkNSRUFU RQorICAgUFJPUEVSVFkgR1JBUEg8L2NvbW1hbmQ+IG9yIGRlZmF1bHRzIHRvIHRoZSBwcmltYXJ5 IGtleS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19l bGVtZW50X3RhYmxlX2tleV9jb2x1bW5zPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAg IDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8 L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBl PnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgg KGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cHJvcGVydHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZp ZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRo ZSBzY2hlbWEgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNx bF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg TmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ ZWxlbWVudF90YWJsZV9hbGlhczwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRWxlbWVudCB0YWJsZSBh bGlhcyAodW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gZWxlbWVudCB0YWJsZSB3aXRoaW4gYQorICAg ICAgIHByb3BlcnR5IGdyYXBoKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb2x1bW5f bmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgY29sdW1uIHRoYXQgaXMgcGFy dCBvZiB0aGUga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9yZGluYWxfcG9zaXRp b248L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5hbF9udW1iZXI8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBPcmRpbmFsIHBvc2l0aW9uIG9mIHRoZSBjb2x1bW4g d2l0aGluIHRoZSBrZXkgKGNvdW50IHN0YXJ0cyBhdCAxKQorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8 L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLWVsZW1lbnQtdGFibGUtbGFiZWxz Ij4KKyAgPHRpdGxlPjxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzPC9saXRlcmFsPjwv dGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8bGl0ZXJhbD5wZ19lbGVtZW50X3RhYmxl X2xhYmVsczwvbGl0ZXJhbD4gc2hvd3Mgd2hpY2ggbGFiZWxzIGFyZQorICAgZGVmaW5lZCBvbiB0 aGUgZWxlbWVudCB0YWJsZXMgb2YgcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4gdGhlIGN1cnJl bnQKKyAgIGRhdGFiYXNlLiAgT25seSB0aG9zZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNob3duIHRo YXQgdGhlIGN1cnJlbnQgdXNlciBoYXMKKyAgIGFjY2VzcyB0byAoYnkgd2F5IG9mIGJlaW5nIHRo ZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisKKyAgPHRhYmxl PgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0 YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250 YWlucyB0aGUgcHJvcGVydHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250YWlucyB0aGUgcHJvcGVy dHkgZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZWxlbWVudF90YWJsZV9hbGlhczwvc3RydWN0ZmllbGQ+ IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgRWxlbWVudCB0YWJsZSBhbGlhcyAodW5pcXVlIGlkZW50aWZpZXIgb2YgYW4gZWxl bWVudCB0YWJsZSB3aXRoaW4gYQorICAgICAgIHByb3BlcnR5IGdyYXBoKQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5sYWJlbF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50 aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9m IHRoZSBsYWJlbAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJv ZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJp bmZvc2NoZW1hLXBnLWVsZW1lbnQtdGFibGUtcHJvcGVydGllcyI+CisgIDx0aXRsZT48bGl0ZXJh bD5wZ19lbGVtZW50X3RhYmxlX3Byb3BlcnRpZXM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzPC9saXRlcmFs PiBzaG93cyB0aGUgZGVmaW5pdGlvbnMKKyAgIG9mIHRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgZWxl bWVudCB0YWJsZXMgb2YgcHJvcGVydHkgZ3JhcGhzIGRlZmluZWQgaW4gdGhlCisgICBjdXJyZW50 IGRhdGFiYXNlLiAgT25seSB0aG9zZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNob3duIHRoYXQgdGhl IGN1cnJlbnQKKyAgIHVzZXIgaGFzIGFjY2VzcyB0byAoYnkgd2F5IG9mIGJlaW5nIHRoZSBvd25l ciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2VsZW1lbnRfdGFibGVfcHJvcGVydGllczwvc3RydWN0bmFt ZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX2NhdGFs b2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRoYXQgY29udGFp bnMgdGhlIHByb3BlcnR5IGdyYXBoIChhbHdheXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX3NjaGVtYTwvc3RydWN0Zmll bGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5 IGdyYXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmVsZW1lbnRfdGFibGVfYWxpYXM8L3N0cnVjdGZpZWxkPiA8 dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIEVsZW1lbnQgdGFibGUgYWxpYXMgKHVuaXF1ZSBpZGVudGlmaWVyIG9mIGFuIGVsZW1l bnQgdGFibGUgd2l0aGluIGEKKyAgICAgICBwcm9wZXJ0eSBncmFwaCkKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVu dGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBv ZiB0aGUgcHJvcGVydHkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZXhw cmVzc2lvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXJhY3Rlcl9kYXRhPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRXhwcmVzc2lvbiBvZiB0aGUgcHJvcGVydHkg ZGVmaW5pdGlvbiBmb3IgdGhpcyBlbGVtZW50IHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwv c2VjdDE+CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGctZWxlbWVudC10YWJsZXMiPgorICA8 dGl0bGU+PGxpdGVyYWw+cGdfZWxlbWVudF90YWJsZXM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8 cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVzPC9saXRlcmFsPiBj b250YWlucyBpbmZvcm1hdGlvbiBhYm91dAorICAgdGhlIGVsZW1lbnQgdGFibGVzIG9mIHByb3Bl cnR5IGdyYXBocyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IGRhdGFiYXNlLgorICAgT25seSB0aG9z ZSBwcm9wZXJ0eSBncmFwaHMgYXJlIHNob3duIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNj ZXNzIHRvCisgICAoYnkgd2F5IG9mIGJlaW5nIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2 aWxlZ2UpLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBn X2VsZW1lbnRfdGFibGVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAg Y29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3Jp cHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgor CisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVu dGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBv ZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGggKGFsd2F5cyB0 aGUgY3VycmVudCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVy dHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEg dGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlm aWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0 aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZWxlbWVudF90 YWJsZV9hbGlhczwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRWxlbWVudCB0YWJsZSBhbGlhcyAodW5p cXVlIGlkZW50aWZpZXIgb2YgYW4gZWxlbWVudCB0YWJsZSB3aXRoaW4gYQorICAgICAgIHByb3Bl cnR5IGdyYXBoKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5lbGVtZW50X3RhYmxlX2tp bmQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0YTwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBraW5kIG9mIHRoZSBlbGVtZW50IHRhYmxlOiA8 bGl0ZXJhbD5FREdFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5WRVJURVg8L2xpdGVyYWw+CisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRhYmxlX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNlIHRoYXQgY29udGFpbnMgdGhlIHJlZmVyZW5jZWQgdGFi bGUgKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dGFibGVfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hl bWEgdGhhdCBjb250YWlucyB0aGUgcmVmZXJlbmNlZCB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50YWJsZV9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSB0 YWJsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBlbGVtZW50IHRhYmxlIGRlZmluaXRpb24KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZWxlbWVudF90YWJsZV9kZWZpbml0aW9uPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+Y2hhcmFjdGVyX2RhdGE8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+Cisg PC9zZWN0MT4KKworIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1sYWJlbC1wcm9wZXJ0aWVzIj4K KyAgPHRpdGxlPjxsaXRlcmFsPnBnX2xhYmVsX3Byb3BlcnRpZXM8L2xpdGVyYWw+PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxsaXRlcmFsPnBnX2xhYmVsX3Byb3BlcnRpZXM8L2xp dGVyYWw+IHNob3dzIHdoaWNoIHByb3BlcnRpZXMgYXJlCisgICBkZWZpbmVkIG9uIGxhYmVscyBk ZWZpbmVkIGluIHByb3BlcnR5IGdyYXBocyBkZWZpbmVkIGluIHRoZSBjdXJyZW50CisgICBkYXRh YmFzZS4gIE9ubHkgdGhvc2UgcHJvcGVydHkgZ3JhcGhzIGFyZSBzaG93biB0aGF0IHRoZSBjdXJy ZW50IHVzZXIgaGFzCisgICBhY2Nlc3MgdG8gKGJ5IHdheSBvZiBiZWluZyB0aGUgb3duZXIgb3Ig aGF2aW5nIHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ19sYWJlbF9wcm9wZXJ0aWVzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90 aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0YWxvZzwvc3RydWN0Zmll bGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250YWlucyB0aGUgcHJvcGVy dHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3Fs X2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBO YW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250YWlucyB0aGUgcHJvcGVydHkgZ3JhcGgKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFtZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+bGFiZWxfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgbGFi ZWwKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfbmFtZTwvc3RydWN0Zmll bGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9z ZWN0MT4KKworIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wZy1sYWJlbHMiPgorICA8dGl0bGU+PGxp dGVyYWw+cGdfbGFiZWxzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgdmll dyA8bGl0ZXJhbD5wZ19sYWJlbHM8L2xpdGVyYWw+IGNvbnRhaW5zIGFsbCB0aGUgbGFiZWxzIGRl ZmluZWQgaW4KKyAgIHByb3BlcnR5IGdyYXBocyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IGRhdGFi YXNlLiAgT25seSB0aG9zZSBwcm9wZXJ0eQorICAgZ3JhcGhzIGFyZSBzaG93biB0aGF0IHRoZSBj dXJyZW50IHVzZXIgaGFzIGFjY2VzcyB0byAoYnkgd2F5IG9mIGJlaW5nIHRoZQorICAgb3duZXIg b3IgaGF2aW5nIHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19sYWJlbHM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgor ICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg IDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFw aCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRp ZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2Yg dGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHRoZSBwcm9wZXJ0eV9ncmFwaAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5sYWJlbF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBsYWJlbAorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91 cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBnLXBy b3BlcnR5LWRhdGEtdHlwZXMiPgorICA8dGl0bGU+PGxpdGVyYWw+cGdfcHJvcGVydHlfZGF0YV90 eXBlczwvbGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIHZpZXcgPGxpdGVyYWw+ cGdfcHJvcGVydHlfZGF0YV90eXBlczwvbGl0ZXJhbD4gc2hvd3MgdGhlIGRhdGEgdHlwZXMgb2YK KyAgIHRoZSBwcm9wZXJ0aWVzIGluIHByb3BlcnR5IGdyYXBocyBkZWZpbmVkIGluIHRoZSBjdXJy ZW50IGRhdGFiYXNlLiAgT25seQorICAgdGhvc2UgcHJvcGVydHkgZ3JhcGhzIGFyZSBzaG93biB0 aGF0IHRoZSBjdXJyZW50IHVzZXIgaGFzIGFjY2VzcyB0byAoYnkgd2F5CisgICBvZiBiZWluZyB0 aGUgb3duZXIgb3IgaGF2aW5nIHNvbWUgcHJpdmlsZWdlKS4KKyAgPC9wYXJhPgorCisgIDx0YWJs ZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wcm9wZXJ0eV9kYXRhX3R5cGVzPC9zdHJ1Y3Ru YW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfY2F0 YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgZGF0YWJhc2UgdGhhdCBjb250 YWlucyB0aGUgcHJvcGVydHkgZ3JhcGggKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSkKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfc2NoZW1hPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhhdCBjb250YWlucyB0aGUgcHJvcGVy dHkgZ3JhcGgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfZ3JhcGhfbmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHlfZ3JhcGgKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+cHJvcGVydHlfbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBl PnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgTmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZGF0 YV90eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcmFjdGVyX2RhdGE8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEYXRhIHR5cGUgb2YgdGhlIHByb3BlcnR5LCBp ZiBpdCBpcyBhIGJ1aWx0LWluIHR5cGUsIG9yCisgICAgICAgPGxpdGVyYWw+QVJSQVk8L2xpdGVy YWw+IGlmIGl0IGlzIHNvbWUgYXJyYXkgKGluIHRoYXQgY2FzZSwgc2VlIHRoZQorICAgICAgIHZp ZXcgPGxpdGVyYWw+ZWxlbWVudF90eXBlczwvbGl0ZXJhbD4pLCBlbHNlCisgICAgICAgPGxpdGVy YWw+VVNFUi1ERUZJTkVEPC9saXRlcmFsPiAoaW4gdGhhdCBjYXNlLCB0aGUgdHlwZSBpcyBpZGVu dGlmaWVkCisgICAgICAgaW4gPGxpdGVyYWw+YXR0cmlidXRlX3VkdF9uYW1lPC9saXRlcmFsPiBh bmQgYXNzb2NpYXRlZCBjb2x1bW5zKS4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNo YXJhY3Rlcl9tYXhpbXVtX2xlbmd0aDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJl cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIDxsaXRlcmFs PmRhdGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmllcyBhIGNoYXJhY3RlciBvciBiaXQKKyAgICAg ICBzdHJpbmcgdHlwZSwgdGhlIGRlY2xhcmVkIG1heGltdW0gbGVuZ3RoOyBudWxsIGZvciBhbGwg b3RoZXIKKyAgICAgICBkYXRhIHR5cGVzIG9yIGlmIG5vIG1heGltdW0gbGVuZ3RoIHdhcyBkZWNs YXJlZC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2hhcmFjdGVyX29jdGV0X2xlbmd0 aDwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJlcjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIDxsaXRlcmFsPmRhdGFfdHlwZTwvbGl0ZXJhbD4g aWRlbnRpZmllcyBhIGNoYXJhY3RlciB0eXBlLAorICAgICAgIHRoZSBtYXhpbXVtIHBvc3NpYmxl IGxlbmd0aCBpbiBvY3RldHMgKGJ5dGVzKSBvZiBhIGRhdHVtOyBudWxsCisgICAgICAgZm9yIGFs bCBvdGhlciBkYXRhIHR5cGVzLiAgVGhlIG1heGltdW0gb2N0ZXQgbGVuZ3RoIGRlcGVuZHMgb24K KyAgICAgICB0aGUgZGVjbGFyZWQgY2hhcmFjdGVyIG1heGltdW0gbGVuZ3RoIChzZWUgYWJvdmUp IGFuZCB0aGUKKyAgICAgICBzZXJ2ZXIgZW5jb2RpbmcuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmNoYXJhY3Rlcl9zZXRfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVu dGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQXBwbGll cyB0byBhIGZlYXR1cmUgbm90IGF2YWlsYWJsZSBpbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNoYXJhY3Rlcl9zZXRf c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZh aWxhYmxlIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+Y2hhcmFjdGVyX3NldF9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBBcHBsaWVzIHRvIGEgZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y29s bGF0aW9uX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIGRhdGFiYXNl IGNvbnRhaW5pbmcgdGhlIGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHkgKGFsd2F5cworICAgICAg IHRoZSBjdXJyZW50IGRhdGFiYXNlKSwgbnVsbCBpZiBkZWZhdWx0IG9yIHRoZSBkYXRhIHR5cGUg b2YgdGhlCisgICAgICAgcHJvcGVydHkgaXMgbm90IGNvbGxhdGFibGUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y29sbGF0aW9uX3NjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9p ZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFt ZSBvZiB0aGUgc2NoZW1hIGNvbnRhaW5pbmcgdGhlIGNvbGxhdGlvbiBvZiB0aGUgcHJvcGVydHks IG51bGwgaWYKKyAgICAgICBkZWZhdWx0IG9yIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHByb3BlcnR5 IGlzIG5vdCBjb2xsYXRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNvbGxhdGlv bl9uYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBjb2xsYXRpb24gb2YgdGhl IHByb3BlcnR5LCBudWxsIGlmIGRlZmF1bHQgb3IgdGhlIGRhdGEgdHlwZQorICAgICAgIG9mIHRo ZSBwcm9wZXJ0eSBpcyBub3QgY29sbGF0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5udW1lcmljX3ByZWNpc2lvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251bWJlcjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIDxsaXRlcmFsPmRh dGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmllcyBhIG51bWVyaWMgdHlwZSwgdGhpcworICAgICAg IGNvbHVtbiBjb250YWlucyB0aGUgKGRlY2xhcmVkIG9yIGltcGxpY2l0KSBwcmVjaXNpb24gb2Yg dGhlCisgICAgICAgdHlwZSBmb3IgdGhpcyBhdHRyaWJ1dGUuICBUaGUgcHJlY2lzaW9uIGluZGlj YXRlcyB0aGUgbnVtYmVyIG9mCisgICAgICAgc2lnbmlmaWNhbnQgZGlnaXRzLiAgSXQgY2FuIGJl IGV4cHJlc3NlZCBpbiBkZWNpbWFsIChiYXNlIDEwKQorICAgICAgIG9yIGJpbmFyeSAoYmFzZSAy KSB0ZXJtcywgYXMgc3BlY2lmaWVkIGluIHRoZSBjb2x1bW4KKyAgICAgICA8bGl0ZXJhbD5udW1l cmljX3ByZWNpc2lvbl9yYWRpeDwvbGl0ZXJhbD4uICBGb3IgYWxsIG90aGVyIGRhdGEKKyAgICAg ICB0eXBlcywgdGhpcyBjb2x1bW4gaXMgbnVsbC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+bnVtZXJpY19wcmVjaXNpb25fcmFkaXg8L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5hbF9u dW1iZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiA8bGl0 ZXJhbD5kYXRhX3R5cGU8L2xpdGVyYWw+IGlkZW50aWZpZXMgYSBudW1lcmljIHR5cGUsIHRoaXMK KyAgICAgICBjb2x1bW4gaW5kaWNhdGVzIGluIHdoaWNoIGJhc2UgdGhlIHZhbHVlcyBpbiB0aGUg Y29sdW1ucworICAgICAgIDxsaXRlcmFsPm51bWVyaWNfcHJlY2lzaW9uPC9saXRlcmFsPiBhbmQK KyAgICAgICA8bGl0ZXJhbD5udW1lcmljX3NjYWxlPC9saXRlcmFsPiBhcmUgZXhwcmVzc2VkLiAg VGhlIHZhbHVlIGlzCisgICAgICAgZWl0aGVyIDIgb3IgMTAuICBGb3IgYWxsIG90aGVyIGRhdGEg dHlwZXMsIHRoaXMgY29sdW1uIGlzIG51bGwuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk Pm51bWVyaWNfc2NhbGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5hbF9udW1iZXI8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiA8bGl0ZXJhbD5kYXRhX3R5 cGU8L2xpdGVyYWw+IGlkZW50aWZpZXMgYW4gZXhhY3QgbnVtZXJpYworICAgICAgIHR5cGUsIHRo aXMgY29sdW1uIGNvbnRhaW5zIHRoZSAoZGVjbGFyZWQgb3IgaW1wbGljaXQpIHNjYWxlIG9mCisg ICAgICAgdGhlIHR5cGUgZm9yIHRoaXMgYXR0cmlidXRlLiAgVGhlIHNjYWxlIGluZGljYXRlcyB0 aGUgbnVtYmVyIG9mCisgICAgICAgc2lnbmlmaWNhbnQgZGlnaXRzIHRvIHRoZSByaWdodCBvZiB0 aGUgZGVjaW1hbCBwb2ludC4gIEl0IGNhbgorICAgICAgIGJlIGV4cHJlc3NlZCBpbiBkZWNpbWFs IChiYXNlIDEwKSBvciBiaW5hcnkgKGJhc2UgMikgdGVybXMsIGFzCisgICAgICAgc3BlY2lmaWVk IGluIHRoZSBjb2x1bW4KKyAgICAgICA8bGl0ZXJhbD5udW1lcmljX3ByZWNpc2lvbl9yYWRpeDwv bGl0ZXJhbD4uICBGb3IgYWxsIG90aGVyIGRhdGEKKyAgICAgICB0eXBlcywgdGhpcyBjb2x1bW4g aXMgbnVsbC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZGF0ZXRpbWVfcHJlY2lzaW9u PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPGxpdGVyYWw+ZGF0YV90eXBlPC9saXRlcmFsPiBp ZGVudGlmaWVzIGEgZGF0ZSwgdGltZSwKKyAgICAgICB0aW1lc3RhbXAsIG9yIGludGVydmFsIHR5 cGUsIHRoaXMgY29sdW1uIGNvbnRhaW5zIHRoZSAoZGVjbGFyZWQKKyAgICAgICBvciBpbXBsaWNp dCkgZnJhY3Rpb25hbCBzZWNvbmRzIHByZWNpc2lvbiBvZiB0aGUgdHlwZSBmb3IgdGhpcworICAg ICAgIGF0dHJpYnV0ZSwgdGhhdCBpcywgdGhlIG51bWJlciBvZiBkZWNpbWFsIGRpZ2l0cyBtYWlu dGFpbmVkCisgICAgICAgZm9sbG93aW5nIHRoZSBkZWNpbWFsIHBvaW50IGluIHRoZSBzZWNvbmRz IHZhbHVlLiAgRm9yIGFsbAorICAgICAgIG90aGVyIGRhdGEgdHlwZXMsIHRoaXMgY29sdW1uIGlz IG51bGwuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmludGVydmFsX3R5cGU8L3N0cnVj dGZpZWxkPiA8dHlwZT5jaGFyYWN0ZXJfZGF0YTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIElmIDxsaXRlcmFsPmRhdGFfdHlwZTwvbGl0ZXJhbD4gaWRlbnRpZmll cyBhbiBpbnRlcnZhbCB0eXBlLAorICAgICAgIHRoaXMgY29sdW1uIGNvbnRhaW5zIHRoZSBzcGVj aWZpY2F0aW9uIHdoaWNoIGZpZWxkcyB0aGUKKyAgICAgICBpbnRlcnZhbHMgaW5jbHVkZSBmb3Ig dGhpcyBhdHRyaWJ1dGUsIGUuZy4sIDxsaXRlcmFsPllFQVIgVE8KKyAgICAgICBNT05USDwvbGl0 ZXJhbD4sIDxsaXRlcmFsPkRBWSBUTyBTRUNPTkQ8L2xpdGVyYWw+LCBldGMuICBJZiBubworICAg ICAgIGZpZWxkIHJlc3RyaWN0aW9ucyB3ZXJlIHNwZWNpZmllZCAodGhhdCBpcywgdGhlIGludGVy dmFsCisgICAgICAgYWNjZXB0cyBhbGwgZmllbGRzKSwgYW5kIGZvciBhbGwgb3RoZXIgZGF0YSB0 eXBlcywgdGhpcyBmaWVsZAorICAgICAgIGlzIG51bGwuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmludGVydmFsX3ByZWNpc2lvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNhcmRpbmFsX251 bWJlcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFwcGxpZXMg dG8gYSBmZWF0dXJlIG5vdCBhdmFpbGFibGUKKyAgICAgICBpbiA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+CisgICAgICAgKHNlZSA8bGl0ZXJhbD5kYXRldGltZV9wcmVjaXNp b248L2xpdGVyYWw+IGZvciB0aGUgZnJhY3Rpb25hbAorICAgICAgIHNlY29uZHMgcHJlY2lzaW9u IG9mIGludGVydmFsIHR5cGUgcHJvcGVydGllcykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dXNlcl9kZWZpbmVkX3R5cGVfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVu dGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBv ZiB0aGUgZGF0YWJhc2UgdGhhdCB0aGUgcHJvcGVydHkgZGF0YSB0eXBlIGlzIGRlZmluZWQgaW4K KyAgICAgICAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD51c2VyX2RlZmluZWRfdHlwZV9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT5z cWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IHRoZSBwcm9wZXJ0eSBkYXRhIHR5cGUgaXMgZGVmaW5l ZCBpbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX2RlZmluZWRfdHlwZV9uYW1l PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBkYXRhIHR5cGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NvcGVfY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0 eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUgbm90IGF2YWlsYWJsZSBpbiA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnNj b3BlX3NjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQXBwbGllcyB0byBhIGZlYXR1cmUgbm90 IGF2YWlsYWJsZSBpbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnNjb3BlX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5z cWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IEFwcGxpZXMgdG8gYSBmZWF0dXJlIG5vdCBhdmFpbGFibGUgaW4gPHByb2R1Y3RuYW1lPlBvc3Rn cmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5tYXhpbXVt X2NhcmRpbmFsaXR5PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2FyZGluYWxfbnVtYmVyPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWx3YXlzIG51bGwsIGJlY2F1c2Ug YXJyYXlzIGFsd2F5cyBoYXZlIHVubGltaXRlZCBtYXhpbXVtIGNhcmRpbmFsaXR5IGluIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+ZHRkX2lkZW50aWZpZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRlbnRpZmllcjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFuIGlkZW50aWZpZXIg b2YgdGhlIGRhdGEgdHlwZSBkZXNjcmlwdG9yIG9mIHRoZSBwcm9wZXJ0eSwgdW5pcXVlCisgICAg ICAgYW1vbmcgdGhlIGRhdGEgdHlwZSBkZXNjcmlwdG9ycyBwZXJ0YWluaW5nIHRvIHRoZSBwcm9w ZXJ0eSBncmFwaC4gIFRoaXMKKyAgICAgICBpcyBtYWlubHkgdXNlZnVsIGZvciBqb2luaW5nIHdp dGggb3RoZXIgaW5zdGFuY2VzIG9mIHN1Y2gKKyAgICAgICBpZGVudGlmaWVycy4gIChUaGUgc3Bl Y2lmaWMgZm9ybWF0IG9mIHRoZSBpZGVudGlmaWVyIGlzIG5vdAorICAgICAgIGRlZmluZWQgYW5k IG5vdCBndWFyYW50ZWVkIHRvIHJlbWFpbiB0aGUgc2FtZSBpbiBmdXR1cmUKKyAgICAgICB2ZXJz aW9ucy4pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4K KyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImluZm9z Y2hlbWEtcGctcHJvcGVydHktZ3JhcGgtcHJpdmlsZWdlcyI+CisgIDx0aXRsZT48bGl0ZXJhbD5w Z19wcm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBUaGUgdmlldyA8bGl0ZXJhbD5wcm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzPC9saXRlcmFs PiBpZGVudGlmaWVzIGFsbAorICAgcHJpdmlsZWdlcyBncmFudGVkIG9uIHByb3BlcnR5IGdyYXBo cyB0byBhIGN1cnJlbnRseSBlbmFibGVkIHJvbGUgb3IgYnkgYQorICAgY3VycmVudGx5IGVuYWJs ZWQgcm9sZS4gIFRoZXJlIGlzIG9uZSByb3cgZm9yIGVhY2ggY29tYmluYXRpb24gb2YgcHJvcGVy dHkKKyAgIGdyYXBoLCBncmFudG9yLCBhbmQgZ3JhbnRlZS4KKyAgPC9wYXJhPgorCisgIDx0YWJs ZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wcm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzPC9zdHJ1 Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFk PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Z3JhbnRvcjwvc3RydWN0 ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgcm9sZSB0aGF0IGdyYW50ZWQgdGhlIHByaXZpbGVn ZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ncmFudGVlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBOYW1lIG9mIHRoZSByb2xlIHRoYXQgdGhlIHByaXZpbGVnZSB3YXMgZ3JhbnRlZCB0bwor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9jYXRhbG9nPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBkYXRhYmFzZSB0aGF0IGNvbnRhaW5zIHRoZSBw cm9wZXJ0eSBncmFwaCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlw ZT5zcWxfaWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIE5hbWUgb2YgdGhlIHNjaGVtYSB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBncmFwaAor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wcm9wZXJ0eV9ncmFwaF9uYW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBncmFwaAorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5wcml2aWxlZ2VfdHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXJhY3Rl cl9kYXRhPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVHlwZSBv ZiB0aGUgcHJpdmlsZWdlOiA8bGl0ZXJhbD5TRUxFQ1Q8L2xpdGVyYWw+IGlzIHRoZSBvbmx5IHBy aXZpbGVnZQorICAgICAgIHR5cGUgYXBwbGljYWJsZSB0byBwcm9wZXJ0eSBncmFwaHMuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlzX2dyYW50YWJsZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pnllc19vcl9ubzwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxs aXRlcmFsPllFUzwvbGl0ZXJhbD4gaWYgdGhlIHByaXZpbGVnZSBpcyBncmFudGFibGUsIDxsaXRl cmFsPk5PPC9saXRlcmFsPiBpZiBub3QKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwor IDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1wcm9wZXJ0eS1ncmFwaHMiPgorICA8dGl0bGU+PGxpdGVy YWw+cHJvcGVydHlfZ3JhcGhzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUg dmlldyA8bGl0ZXJhbD5wcm9wZXJ0eV9ncmFwaHM8L2xpdGVyYWw+IGNvbnRhaW5zIGFsbCBwcm9w ZXJ0eSBncmFwaHMKKyAgIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgZGF0YWJhc2UuICBPbmx5IHRo b3NlIHByb3BlcnR5IGdyYXBocyBhcmUgc2hvd24gdGhhdAorICAgdGhlIGN1cnJlbnQgdXNlciBo YXMgYWNjZXNzIHRvIChieSB3YXkgb2YgYmVpbmcgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lCisg ICBwcml2aWxlZ2UpLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnByb3BlcnR5X2dyYXBoczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdy b3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX2NhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxf aWRlbnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5h bWUgb2YgdGhlIGRhdGFiYXNlIHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdyYXBoIChhbHdh eXMgdGhlIGN1cnJlbnQgZGF0YWJhc2UpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBy b3BlcnR5X2dyYXBoX3NjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPnNxbF9pZGVudGlmaWVyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2No ZW1hIHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IGdyYXBoCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnByb3BlcnR5X2dyYXBoX25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5zcWxfaWRl bnRpZmllcjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUg b2YgdGhlIHByb3BlcnR5X2dyYXBoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKICA8 c2VjdDEgaWQ9ImluZm9zY2hlbWEtcmVmZXJlbnRpYWwtY29uc3RyYWludHMiPgogICA8dGl0bGU+ PGxpdGVyYWw+cmVmZXJlbnRpYWxfY29uc3RyYWludHM8L2xpdGVyYWw+PC90aXRsZT4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0 IGIvZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zOTc1NmM2MDY3ZAotLS0gL2Rldi9u dWxsCisrKyBiL2RvYy9zcmMvc2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LW5vbnJlc2VydmVkLnR4 dApAQCAtMCwwICsxLDI3IEBACitBQ1lDTElDCitCSU5ESU5HUworQk9VTkQKK0RFU1RJTkFUSU9O CitESUZGRVJFTlQKK0RJUkVDVEVECitFREdFCitFREdFUworRUxFTUVOVFMKK0xBQkVMCitMQUJF TEVECitOT0RFCitQQVRIUworUFJPUEVSVElFUworUFJPUEVSVFkKK1BST1BFUlRZX0dSQVBIX0NB VEFMT0cKK1BST1BFUlRZX0dSQVBIX05BTUUKK1BST1BFUlRZX0dSQVBIX1NDSEVNQQorUkVMQVRJ T05TSElQCitSRUxBVElPTlNISVBTCitTSE9SVEVTVAorU0lOR0xFVE9OUworU1RFUAorVEFCTEVT CitUUkFJTAorVkVSVEVYCitXQUxLCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwva2V5d29yZHMv c3FsMjAyMy0xNi1yZXNlcnZlZC50eHQgYi9kb2Mvc3JjL3NnbWwva2V5d29yZHMvc3FsMjAyMy0x Ni1yZXNlcnZlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNi ZGQ3ZTJiMjcyCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL2tleXdvcmRzL3NxbDIw MjMtMTYtcmVzZXJ2ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0FMTF9ESUZGRVJFTlQKK0JJTkRJ TkdfQ09VTlQKK0VMRU1FTlRfSUQKK0VMRU1FTlRfTlVNQkVSCitFWFBPUlQKK0dSQVBICitHUkFQ SF9UQUJMRQorTUFUQ0hOVU0KK1BBVEhfTEVOR1RICitQQVRIX05BTUUKK1BST1BFUlRZX0VYSVNU UworU0FNRQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbCBiL2RvYy9zcmMv c2dtbC9xdWVyaWVzLnNnbWwKaW5kZXggMzcyY2NlMWE0ODcuLjQxYTZmNDIzYzY0IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcXVlcmllcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9xdWVyaWVz LnNnbWwKQEAgLTg2Myw2ICs4NjMsMTEgQEAgT1JERVIgQlkgcDsKICAgICAgdG8gY29sdW1ucyBw cm92aWRlZCBieSBwcmVjZWRpbmcgPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4gaXRlbXMgaW4gYW55 IGNhc2UuCiAgICAgPC9wYXJhPgogCisgICAgPHBhcmE+CisgICAgIEEgPGxpdGVyYWw+R1JBUEhf VEFCTEU8L2xpdGVyYWw+IDxsaXRlcmFsPkZST008L2xpdGVyYWw+IGl0ZW0gY2FuIGFsc28KKyAg ICAgYWx3YXlzIGNvbnRhaW4gbGF0ZXJhbCByZWZlcmVuY2VzLgorICAgIDwvcGFyYT4KKwogICAg IDxwYXJhPgogICAgICBBIDxsaXRlcmFsPkxBVEVSQUw8L2xpdGVyYWw+IGl0ZW0gY2FuIGFwcGVh ciBhdCB0aGUgdG9wIGxldmVsIGluIHRoZQogICAgICA8bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiBs aXN0LCBvciB3aXRoaW4gYSA8bGl0ZXJhbD5KT0lOPC9saXRlcmFsPiB0cmVlLiAgSW4gdGhlIGxh dHRlcgpAQCAtMjc0NSw0ICsyNzUwLDE2NyBAQCBTRUxFQ1QgKiBGUk9NIHQ7CiAKICA8L3NlY3Qx PgogCisgPHNlY3QxIGlkPSJxdWVyaWVzLWdyYXBoIj4KKyAgPHRpdGxlPkdyYXBoIFF1ZXJpZXM8 L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgc3VibGFu Z3VhZ2UgZm9yIHF1ZXJ5aW5nIHByb3BlcnR5IGdyYXBocywKKyAgIGRlZmluZWQgYXMgZGVzY3Jp YmVkIGluIDx4cmVmIGxpbmtlbmQ9ImRkbC1wcm9wZXJ0eS1ncmFwaHMiLz4uCisgIDwvcGFyYT4K KworICA8c2VjdDIgaWQ9InF1ZXJpZXMtZ3JhcGgtb3ZlcnZpZXciPgorICAgPHRpdGxlPk92ZXJ2 aWV3PC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQ29uc2lkZXIgdGhpcyBleGFtcGxlIGZyb20g PHhyZWYgbGlua2VuZD0iZGRsLXByb3BlcnR5LWdyYXBocyIvPjoKKzxwcm9ncmFtbGlzdGluZz4K Ky0tIGdldCBsaXN0IG9mIGN1c3RvbWVycyBhY3RpdmUgdG9kYXkKK1NFTEVDVCBjdXN0b21lcl9u YW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBj dXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMgV0hFUkUgby5vcmRlcmVkX3doZW4gPSBjdXJy ZW50X2RhdGUpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgIFRoZSBncmFwaCBxdWVyeSBwYXJ0IGhhcHBlbnMgaW5zaWRlIHRoZSA8bGl0 ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4KKyAgICBjb25zdHJ1Y3QuICBBcyBmYXIgYXMgdGhl IHJlc3Qgb2YgdGhlIHF1ZXJ5IGlzIGNvbmNlcm5lZCwgdGhpcyBhY3RzIGxpa2UgYQorICAgIHRh YmxlIGZ1bmN0aW9uIGluIHRoYXQgaXQgcHJvZHVjZXMgYSBjb21wdXRlZCB0YWJsZSBhcyBvdXRw dXQuICBMaWtlIG90aGVyCisgICAgPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4gY2xhdXNlIGVsZW1l bnRzLCB0YWJsZSBhbGlhcyBhbmQgY29sdW1uIGFsaWFzCisgICAgbmFtZXMgY2FuIGJlIGFzc2ln bmVkIHRvIHRoZSByZXN1bHQsIGFuZCB0aGUgcmVzdWx0IGNhbiBiZSBqb2luZWQgd2l0aAorICAg IG90aGVyIHRhYmxlcywgc3Vic2VxdWVudGx5IGZpbHRlcmVkLCBhbmQgc28gb24sIGZvciBleGFt cGxlOgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIC4uLiBGUk9NIEdSQVBIX1RBQkxFIChteWdy YXBoIE1BVENIIC4uLiBDT0xVTU5TICguLi4pKSBBUyBteXJlc3VsdCAoYSwgYiwgYykgSk9JTiBv dGhlcnRhYmxlIFVTSU5HIChhKSBXSEVSRSBiID4gMCBPUkRFUiBCWSBjOworPC9wcm9ncmFtbGlz dGluZz4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIDxsaXRlcmFsPkdSQVBIX1RB QkxFPC9saXRlcmFsPiBjbGF1c2UgY29uc2lzdHMgb2YgdGhlIGdyYXBoIG5hbWUsCisgICAgZm9s bG93ZWQgYnkgdGhlIGtleXdvcmQgPGxpdGVyYWw+TUFUQ0g8L2xpdGVyYWw+LCBmb2xsb3dlZCBi eSBhIGdyYXBoCisgICAgcGF0dGVybiBleHByZXNzaW9uIChzZWUgYmVsb3cpLCBmb2xsb3dlZCBi eSB0aGUga2V5d29yZAorICAgIDxsaXRlcmFsPkNPTFVNTlM8L2xpdGVyYWw+IGFuZCBhIGNvbHVt biBsaXN0LgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0MiBpZD0icXVlcmllcy1n cmFwaC1wYXR0ZXJucyI+CisgICA8dGl0bGU+R3JhcGggUGF0dGVybnM8L3RpdGxlPgorCisgICA8 cGFyYT4KKyAgICBUaGUgY29yZSBvZiB0aGUgZ3JhcGggcXVlcnlpbmcgZnVuY3Rpb25hbGl0eSBp cyB0aGUgZ3JhcGggcGF0dGVybiwgd2hpY2gKKyAgICBhcHBlYXJzIGFmdGVyIHRoZSBrZXl3b3Jk IDxsaXRlcmFsPk1BVENIPC9saXRlcmFsPi4gIEZvcm1hbGx5LCBhIGdyYXBoCisgICAgcGF0dGVy biBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYXRoIHBhdHRlcm5zLiAgQSBwYXRoIGlzIGEgc2Vx dWVuY2Ugb2YKKyAgICBncmFwaCBlbGVtZW50cywgc3RhcnRpbmcgYW5kIGVuZGluZyB3aXRoIGEg dmVydGV4IGFuZCBhbHRlcm5hdGluZyBiZXR3ZWVuCisgICAgdmVydGljZXMgYW5kIGVkZ2VzLiAg QSBwYXRoIHBhdHRlcm4gaXMgYSBzeW50YWN0aWMgZXhwcmVzc2lvbnMgdGhhdAorICAgIG1hdGNo ZXMgcGF0aHMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEEgcGF0aCBwYXR0ZXJuIHRo dXMgbWF0Y2hlcyBhIHNlcXVlbmNlIG9mIHZlcnRpY2VzIGFuZCBlZGdlcy4gIFRoZQorICAgIHNp bXBsZXN0IHBvc3NpYmxlIHBhdGggcGF0dGVybiBpcworPHByb2dyYW1saXN0aW5nPgorKCkKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hpY2ggbWF0Y2hlcyBhIHNpbmdsZSB2ZXJ0ZXguICBUaGUg bmV4dCBzaW1wbGVzdCBwYXR0ZXJuIHdvdWxkIGJlCis8cHJvZ3JhbWxpc3Rpbmc+CisoKS1bXS0+ KCkKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hpY2ggbWF0Y2hlcyBhIHZlcnRleCBmb2xsb3dl ZCBieSBhbiBlZGdlIGZvbGxvd2VkIGJ5IGEgdmVydGV4LiAgVGhlCisgICAgY2hhcmFjdGVycyA8 bGl0ZXJhbD4oKTwvbGl0ZXJhbD4gYXJlIGEgdmVydGV4IHBhdHRlcm4gYW5kIHRoZSBjaGFyYWN0 ZXJzCisgICAgPGxpdGVyYWw+LVtdLT48L2xpdGVyYWw+IGFyZSBhbiBlZGdlIHBhdHRlcm4uCisg ICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZXNlIGNoYXJhY3RlcnMgY2FuIGFsc28gYmUg c2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UsIGZvciBleGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgor KCApIC0gWyBdIC0gPiAoICkKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAgIDx0 aXA+CisgICAgPHBhcmE+CisgICAgIEEgd2F5IHRvIHJlbWVtYmVyIHRoZXNlIHN5bWJvbHMgaXMg dGhhdCBpbiB2aXN1YWwgcmVwcmVzZW50YXRpb25zIG9mCisgICAgIHByb3BlcnR5IGdyYXBocywg dmVydGljZXMgYXJlIHVzdWFsbHkgY2lyY2xlcyAobGlrZQorICAgICA8bGl0ZXJhbD4oKTwvbGl0 ZXJhbD4pIGFuZCBlZGdlcyBoYXZlIHJlY3Rhbmd1bGFyIGxhYmVscyAobGlrZQorICAgICA8bGl0 ZXJhbD5bXTwvbGl0ZXJhbD4pLgorICAgIDwvcGFyYT4KKyAgIDwvdGlwPgorCisgICA8cGFyYT4K KyAgICBUaGUgYWJvdmUgcGF0dGVybnMgd291bGQgbWF0Y2ggYW55IHZlcnRleCwgb3IgYW55IHR3 byB2ZXJ0aWNlcyBjb25uZWN0ZWQKKyAgICBieSBhbnkgZWRnZSwgd2hpY2ggaXNuJ3QgdmVyeSBp bnRlcmVzdGluZy4gIE5vcm1hbGx5LCB3ZSB3YW50IHRvIHNlYXJjaAorICAgIGZvciBlbGVtZW50 cyAodmVydGljZXMgYW5kIGVkZ2VzKSB0aGF0IGhhdmUgY2VydGFpbiBjaGFyYWN0ZXJpc3RpY3Mu CisgICAgVGhlc2UgY2hhcmFjdGVyaXN0aWNzIGFyZSB3cml0dGVuIGluIGJldHdlZW4gdGhlIHBh cmVudGhlc2VzIG9yIGJyYWNrZXRzLgorICAgIChUaGlzIGlzIGFsc28gY2FsbGVkIGFuIGVsZW1l bnQgcGF0dGVybiBmaWxsZXIuKSAgVHlwaWNhbGx5LCB3ZSB3b3VsZAorICAgIHNlYXJjaCBmb3Ig ZWxlbWVudHMgd2l0aCBhIGNlcnRhaW4gbGFiZWwuICBUaGlzIGlzIHdyaXR0ZW4gZWl0aGVyIGJ5 CisgICAgPGxpdGVyYWw+SVMgPHJlcGxhY2VhYmxlPmxhYmVsbmFtZTwvcmVwbGFjZWFibGU+PC9s aXRlcmFsPiBvciBlcXVpdmFsZW50bHkKKyAgICA8bGl0ZXJhbD46PHJlcGxhY2VhYmxlPmxhYmVs bmFtZTwvcmVwbGFjZWFibGU+PC9saXRlcmFsPi4gIEZvciBleGFtcGxlLAorICAgIHRoaXMgd291 bGQgbWF0Y2ggYWxsIHZlcnRpY2VzIHdpdGggdGhlIGxhYmVsIDxsaXRlcmFsPnBlcnNvbjwvbGl0 ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CisoSVMgcGVyc29uKQorPC9wcm9ncmFtbGlzdGluZz4K KyAgICBvcgorPHByb2dyYW1saXN0aW5nPgorKDpwZXJzb24pCis8L3Byb2dyYW1saXN0aW5nPgor ICAgIChGcm9tIG5vdyBvbiwgd2Ugd2lsbCBqdXN0IHVzZSB0aGUgY29sb24gc3ludGF4LCBmb3Ig c2ltcGxpY2l0eS4gIEJ1dCBpdAorICAgIGhlbHBzIHRvIHJlYWQgaXQgYXMgPHF1b3RlPmlzPC9x dW90ZT4gZm9yIHVuZGVyc3RhbmRpbmcuKSAgVGhlIG5leHQKKyAgICBleGFtcGxlIHdvdWxkIG1h dGNoIGEgdmVydGV4IHdpdGggdGhlIGxhYmVsIDxsaXRlcmFsPnBlcnNvbjwvbGl0ZXJhbD4KKyAg ICBjb25uZWN0ZWQgdG8gYSB2ZXJ0ZXggd2l0aCB0aGUgbGFiZWwgPGxpdGVyYWw+YWNjb3VudDwv bGl0ZXJhbD4gY29ubmVjdGVkCisgICAgYnkgYW4gZWRnZSB3aXRoIHRoZSBsYWJlbCA8bGl0ZXJh bD5oYXM8L2xpdGVyYWw+LgorPHByb2dyYW1saXN0aW5nPgorKDpwZXJzb24pLVs6aGFzXS0+KDph Y2NvdW50KQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICBNdWx0aXBsZSBsYWJlbHMgY2FuIGFsc28g YmUgbWF0Y2hlZCwgdXNpbmcgPHF1b3RlPm9yPC9xdW90ZT4gc2VtYW50aWNzOgorPHByb2dyYW1s aXN0aW5nPgorKDpwZXJzb24pLVs6aGFzXS0+KDphY2NvdW50fGNyZWRpdGNhcmQpCis8L3Byb2dy YW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBSZWNhbGwgdGhhdCBlZGdl cyBhcmUgZGlyZWN0ZWQuICBUaGUgb3RoZXIgZGlyZWN0aW9uIGlzIGFsc28gcG9zc2libGUgaW4g YQorICAgIHBhdGggcGF0dGVybiwgZm9yIGV4YW1wbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOmFj Y291bnQpJmx0Oy1bOmhhc10tKDpwZXJzb24pCis8L3Byb2dyYW1saXN0aW5nPgorICAgIEl0IGlz IGFsc28gcG9zc2libGUgdG8gbWF0Y2ggYm90aCBkaXJlY3Rpb25zOgorPHByb2dyYW1saXN0aW5n PgorKDpwZXJzb24pLVs6aXNfZnJpZW5kX29mXS0oOnBlcnNvbikKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgVGhpcyBoYXMgYSBtZWFuaW5nIG9mIDxxdW90ZT5vcjwvcXVvdGU+OiBBbiBlZGdlIGlu IGVpdGhlciBkaXJlY3Rpb24gd291bGQKKyAgICBtYXRjaC4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgSW4gbWFueSBjYXNlcywgdGhlIGVkZ2UgcGF0dGVybnMgZG9uJ3QgbmVlZCBhIGZp bGxlci4gIChBbGwgdGhlIGZpbHRlcmluZworICAgIHRoZW4gaGFwcGVucyBvbiB0aGUgdmVydGlj ZXMuKSAgRm9yIHRoZXNlIGNhc2VzLCBhbiBhYmJyZXZpYXRlZCBlZGdlCisgICAgcGF0dGVybiBz eW50YXggaXMgYXZhaWxhYmxlIHRoYXQgb21pdHMgdGhlIGJyYWNrZXRzLCBmb3IgZXhhbXBsZToK Kzxwcm9ncmFtbGlzdGluZz4KKyg6cGVyc29uKS0+KDphY2NvdW50KQorKDphY291bnQpJmx0Oy0o OnBlcnNvbikKKyg6cGVyc29uKS0oOnBlcnNvbikKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgQXMg aXMgb2Z0ZW4gdGhlIGNhc2UsIGFiYnJldmlhdGVkIHN5bnRheCBjYW4gbWFrZSBleHByZXNzaW9u cyBtb3JlIGNvbXBhY3QKKyAgICBidXQgYWxzbyBzb21ldGltZXMgaGFyZGVyIHRvIHVuZGVyc3Rh bmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEZ1cnRoZXJtb3JlLCBpdCBpcyBwb3Nz aWJsZSB0byBkZWZpbmUgZ3JhcGggcGF0dGVybiB2YXJpYWJsZXMgaW4gdGhlIHBhdGgKKyAgICBw YXR0ZXJuIGV4cHJlc3Npb25zLiAgVGhlc2UgYXJlIGJvdW5kIHRvIHRoZSBtYXRjaGVkIGVsZW1l bnRzIGFuZCBjYW4gYmUKKyAgICB1c2VkIHRvIHJlZmVyIHRvIHRoZSBwcm9wZXJ0eSB2YWx1ZXMg ZnJvbSB0aG9zZSBlbGVtZW50cy4gIFRoZSBtb3N0CisgICAgaW1wb3J0YW50IHVzZSBpcyB0byB1 c2UgdGhlbSBpbiB0aGUgPGxpdGVyYWw+Q09MVU1OUzwvbGl0ZXJhbD4gY2xhdXNlIHRvCisgICAg ZGVmaW5lIHRoZSB0YWJ1bGFyIHJlc3VsdCBvZiB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xp dGVyYWw+IGNsYXVzZS4KKyAgICBGb3IgZXhhbXBsZSAoYXNzdW1pbmcgYXBwcm9wcmlhdGUgZGVm aW5pdGlvbnMgb2YgdGhlIHByb3BlcnR5IGdyYXBoIGFzCisgICAgd2VsbCBhcyB0aGUgdW5kZXJs eWluZyB0YWJsZXMpOgorPHByb2dyYW1saXN0aW5nPgorR1JBUEhfVEFCTEUgKG15Z3JhcGggTUFU Q0ggKHA6cGVyc29uKS1baDpoYXNdLT4oYTphY2NvdW50KQorICAgICAgICAgICAgIENPTFVNTlMg KHAubmFtZSBBUyBwZXJzb25fbmFtZSwgaC5zaW5jZSBBUyBoYXNfYWNjb3VudF9zaW5jZSwgYS5u dW0gQVMgYWNjb3VudF9udW1iZXIpCis8L3Byb2dyYW1saXN0aW5nPgorICAgIDxsaXRlcmFsPldI RVJFPC9saXRlcmFsPiBjbGF1c2VzIGNhbiBiZSB1c2VkIGluc2lkZSBlbGVtZW50IHBhdHRlcm5z IHRvCisgICAgZmlsdGVyIG1hdGNoZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbiktWzpo YXNdLT4oYTphY2NvdW50IFdIRVJFIGEudHlwZSA9ICdzYXZpbmdzJykKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CisKKyAgIDwhLS0gVE9ETzogbXVsdGlwbGUgcGF0aCBwYXR0ZXJucyBp biBhIGdyYXBoIHBhdHRlcm4gKGNvbW1hLXNlcGFyYXRlZCkgLS0+CisKKyAgIDwhLS0gVE9ETzog cXVhbnRpZmllcnMgLS0+CisKKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiA8L2NoYXB0ZXI+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2N2EuLmVmYmJmMjgzYzQ5IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sCkBAIC0yNyw2ICsyNyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxl IHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJPcGVy YXRvckZhbWlseSBTWVNURU0gImFsdGVyX29wZmFtaWx5LnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJQ b2xpY3kgICAgICAgIFNZU1RFTSAiYWx0ZXJfcG9saWN5LnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJQ cm9jZWR1cmUgICAgIFNZU1RFTSAiYWx0ZXJfcHJvY2VkdXJlLnNnbWwiPgorPCFFTlRJVFkgYWx0 ZXJQcm9wZXJ0eUdyYXBoIFNZU1RFTSAiYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbCI+CiA8IUVO VElUWSBhbHRlclB1YmxpY2F0aW9uICAgU1lTVEVNICJhbHRlcl9wdWJsaWNhdGlvbi5zZ21sIj4K IDwhRU5USVRZIGFsdGVyUm9sZSAgICAgICAgICBTWVNURU0gImFsdGVyX3JvbGUuc2dtbCI+CiA8 IUVOVElUWSBhbHRlclJvdXRpbmUgICAgICAgU1lTVEVNICJhbHRlcl9yb3V0aW5lLnNnbWwiPgpA QCAtNzksNiArODAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxl cyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZU9wZXJhdG9yRmFtaWx5IFNZU1RF TSAiY3JlYXRlX29wZmFtaWx5LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlUG9saWN5ICAgICAgIFNZ U1RFTSAiY3JlYXRlX3BvbGljeS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVByb2NlZHVyZSAgICBT WVNURU0gImNyZWF0ZV9wcm9jZWR1cmUuc2dtbCI+Cis8IUVOVElUWSBjcmVhdGVQcm9wZXJ0eUdy YXBoIFNZU1RFTSAiY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRl UHVibGljYXRpb24gIFNZU1RFTSAiY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwiPgogPCFFTlRJVFkg Y3JlYXRlUm9sZSAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3JvbGUuc2dtbCI+CiA8IUVOVElUWSBj cmVhdGVSdWxlICAgICAgICAgU1lTVEVNICJjcmVhdGVfcnVsZS5zZ21sIj4KQEAgLTEyNyw2ICsx MjksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlz IGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BPd25lZCAgICAgICAgICBTWVNURU0gImRyb3Bfb3du ZWQuc2dtbCI+CiA8IUVOVElUWSBkcm9wUG9saWN5ICAgICAgICAgU1lTVEVNICJkcm9wX3BvbGlj eS5zZ21sIj4KIDwhRU5USVRZIGRyb3BQcm9jZWR1cmUgICAgICBTWVNURU0gImRyb3BfcHJvY2Vk dXJlLnNnbWwiPgorPCFFTlRJVFkgZHJvcFByb3BlcnR5R3JhcGggIFNZU1RFTSAiZHJvcF9wcm9w ZXJ0eV9ncmFwaC5zZ21sIj4KIDwhRU5USVRZIGRyb3BQdWJsaWNhdGlvbiAgICBTWVNURU0gImRy b3BfcHVibGljYXRpb24uc2dtbCI+CiA8IUVOVElUWSBkcm9wUm9sZSAgICAgICAgICAgU1lTVEVN ICJkcm9wX3JvbGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wUm91dGluZSAgICAgICAgU1lTVEVNICJk cm9wX3JvdXRpbmUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2V4 dGVuc2lvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNpb24uc2dtbAppbmRl eCBjODE5YzdiYjRlMy4uNjAyMThmY2QwMWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfZXh0ZW5zaW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNp b24uc2dtbApAQCAtNDYsNiArNDYsNyBAQCBBTFRFUiBFWFRFTlNJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWNlYQogICBPUEVS QVRPUiBGQU1JTFkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9y ZXBsYWNlYWJsZT4gVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21l dGhvZDwvcmVwbGFjZWFibGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFOR1VBR0UgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBQUk9D RURVUkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVyZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbW9kZTwv cmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbmFtZTwv cmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3R5cGU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKKyAgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBST1VUSU5F IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb3V0aW5lX25hbWU8L3JlcGxhY2VhYmxl PiBbICggWyBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNl YWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNl YWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gXSApIF0gfAogICBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBTRVFVRU5DRSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CkBAIC0xNzksNyAr MTgwLDcgQEAgQUxURVIgRVhURU5TSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWEKICAgICAgICBUaGUgbmFtZSBvZiBhbiBv YmplY3QgdG8gYmUgYWRkZWQgdG8gb3IgcmVtb3ZlZCBmcm9tIHRoZSBleHRlbnNpb24uCiAgICAg ICAgTmFtZXMgb2YgdGFibGVzLAogICAgICAgIGFnZ3JlZ2F0ZXMsIGRvbWFpbnMsIGZvcmVpZ24g dGFibGVzLCBmdW5jdGlvbnMsIG9wZXJhdG9ycywKLSAgICAgICBvcGVyYXRvciBjbGFzc2VzLCBv cGVyYXRvciBmYW1pbGllcywgcHJvY2VkdXJlcywgcm91dGluZXMsIHNlcXVlbmNlcywgdGV4dCBz ZWFyY2ggb2JqZWN0cywKKyAgICAgICBvcGVyYXRvciBjbGFzc2VzLCBvcGVyYXRvciBmYW1pbGll cywgcHJvY2VkdXJlcywgcHJvcGVydHkgZ3JhcGhzLCByb3V0aW5lcywgc2VxdWVuY2VzLCB0ZXh0 IHNlYXJjaCBvYmplY3RzLAogICAgICAgIHR5cGVzLCBhbmQgdmlld3MgY2FuIGJlIHNjaGVtYS1x dWFsaWZpZWQuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb3BlcnR5X2dyYXBoLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3Byb3BlcnR5X2dyYXBoLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjYwNGM1MTgwMTE3Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wcm9wZXJ0eV9ncmFwaC5zZ21sCkBAIC0wLDAgKzEsMjk5IEBACis8IS0tCitk b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb3BlcnR5X2dyYXBoLnNnbWwKK1Bvc3RncmVTUUwgZG9j dW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVyLXByb3BlcnR5LWdyYXBo Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1hbHRlci1wcm9wZXJ0eS1ncmFwaCI+CisgIDxwcmlt YXJ5PkFMVEVSIFBST1BFUlRZIEdSQVBIPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJl Zm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExh bmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1l ZGl2PgorICA8cmVmbmFtZT5BTFRFUiBQUk9QRVJUWSBHUkFQSDwvcmVmbmFtZT4KKyAgPHJlZnB1 cnBvc2U+Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGFuIFNRTC1wcm9wZXJ0eSBncmFwaDwvcmVm cHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+ CitBTFRFUiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IEFERAorICAgIFsge1ZFUlRFWHxOT0RFfSBUQUJMRVMgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX2RlZmluaXRpb248L3JlcGxhY2Vh YmxlPiBbLCAuLi5dICkgXQorICAgIFsge0VER0V8UkVMQVRJT05TSElQfSBUQUJMRVMgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9kZWZpbml0aW9uPC9yZXBsYWNl YWJsZT4gWywgLi4uXSApIF0KKworQUxURVIgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QCisgICAge1ZFUlRFWHxOT0RF fSBUQUJMRVMgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX2Fs aWFzPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworQUxU RVIgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBEUk9QCisgICAge0VER0V8UkVMQVRJT05TSElQfSBUQUJMRVMgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9hbGlhczwvcmVwbGFjZWFibGU+IFss IC4uLl0gKSBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUxURVIKKyAg ICB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5lbGVtZW50X3RhYmxlX2FsaWFzPC9yZXBsYWNlYWJsZT4KKyAgICB7IEFE RCBMQUJFTCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bGFiZWxfbmFtZTwvcmVwbGFj ZWFibGU+IFsgTk8gUFJPUEVSVElFUyB8IFBST1BFUlRJRVMgQUxMIENPTFVNTlMgfCBQUk9QRVJU SUVTICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb3BlcnR5X25hbWU8 L3JlcGxhY2VhYmxlPiBdIH0gWywgLi4uXSApIF0gfSBbIC4uLiBdCisKK0FMVEVSIFBST1BFUlRZ IEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g QUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3RhYmxlX2FsaWFzPC9yZXBsYWNlYWJsZT4K KyAgICBEUk9QIExBQkVMIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5sYWJlbF9uYW1l PC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCitBTFRFUiBQUk9QRVJUWSBH UkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IEFM VEVSCisgICAge1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJMRSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9hbGlhczwvcmVwbGFjZWFibGU+Cisg ICAgQUxURVIgTEFCRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxhYmVsX25hbWU8 L3JlcGxhY2VhYmxlPiBBREQgUFJPUEVSVElFUyAoIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBbIEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wcm9wZXJ0eV9uYW1lPC9yZXBsYWNlYWJsZT4gXSB9IFssIC4uLl0gKQorCitB TFRFUiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IEFMVEVSCisgICAge1ZFUlRFWHxOT0RFfEVER0V8UkVMQVRJT05TSElQfSBU QUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9hbGlhczwv cmVwbGFjZWFibGU+CisgICAgQUxURVIgTEFCRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIFBST1BFUlRJRVMgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0g KSBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJS RU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxURVIgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBS T1BFUlRZIEdSQVBIIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNp c2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8 cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9jb21tYW5kPiBjaGFuZ2Vz IHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBleGlzdGluZyBwcm9wZXJ0eSBncmFwaC4gIFRoZXJl IGFyZSBzZXZlcmFsIHN1YmZvcm1zOgorCisgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkFERCB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElP TlNISVB9IFRBQkxFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRoaXMgZm9ybSBhZGRzIG5ldyB2ZXJ0ZXggb3IgZWRnZSB0YWJsZXMsIHVz aW5nIHRoZSBzYW1lIHN5bnRheCBhcworICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGUt cHJvcGVydHktZ3JhcGgiPjxjb21tYW5kPkNSRUFURSBQUk9QRVJUWQorICAgICAgIEdSQVBIPC9j b21tYW5kPjwvbGluaz4uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5E Uk9QIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEVTPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIHJlbW92 ZXMgYSB2ZXJ0ZXggb3IgZWRnZSB0YWJsZSBmcm9tIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAgICAg ICAoT25seSB0aGUgYXNzb2NpYXRpb24gb2YgdGhlIHRhYmxlIHdpdGggdGhlIGdyYXBoIHJlbW92 ZWQuICBUaGUgdGFibGUKKyAgICAgICBpdHNlbGYgaXMgbm90IGRyb3BwZWQuKQorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVIge1ZFUlRFWHxOT0RFfEVER0V8UkVM QVRJT05TSElQfSBUQUJMRSAuLi4gQUREIExBQkVMPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxp c3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIGFkZHMgYSBuZXcgbGFiZWwg dG8gYW4gZXhpc3RpbmcgdmVydGV4IG9yIGVkZ2UgdGFibGUsIHVzaW5nCisgICAgICAgdGhlIHNh bWUgc3ludGF4IGFzIDxsaW5rCisgICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1n cmFwaCI+PGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZCisgICAgICAgR1JBUEg8L2NvbW1hbmQ+PC9s aW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkFMVEVSIHtWRVJU RVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEUgLi4uIERST1AgTEFCRUw8L2xpdGVyYWw+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0g cmVtb3ZlcyBhIG5ldyBsYWJlbCBmcm9tIGFuIGV4aXN0aW5nIHZlcnRleCBvciBlZGdlIHRhYmxl LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QUxURVIge1ZFUlRFWHxO T0RFfEVER0V8UkVMQVRJT05TSElQfSBUQUJMRSAuLi4gQUxURVIgTEFCRUwgLi4uIEFERCBQUk9Q RVJUSUVTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgVGhpcyBmb3JtIGFkZHMgbmV3IHByb3BlcnRpZXMgdG8gYW4gZXhpc3RpbmcgbGFiZWwg b24gYW4gZXhpc3RpbmcKKyAgICAgICB2ZXJ0ZXggb3IgZWRnZSB0YWJsZS4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkFMVEVSIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFU SU9OU0hJUH0gVEFCTEUgLi4uIEFMVEVSIExBQkVMIC4uLiBEUk9QIFBST1BFUlRJRVM8L2xpdGVy YWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZv cm0gcmVtb3ZlcyBwcm9wZXJ0aWVzIGZyb20gYW4gZXhpc3RpbmcgbGFiZWwgb24gYW4gZXhpc3Rp bmcKKyAgICAgICB2ZXJ0ZXggb3IgZWRnZSB0YWJsZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9s aXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAg IDx0ZXJtPjxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgor ICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVyIG9mIHRoZSBw cm9wZXJ0eSBncmFwaCB0byB0aGUgc3BlY2lmaWVkIHVzZXIuCisgICAgICA8L3BhcmE+CisgICAg IDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5Pgor ICAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgbmFtZSBvZiBh IHByb3BlcnR5IGdyYXBoLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+ U0VUIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJh PgorICAgICAgIFRoaXMgZm9ybSBtb3ZlcyB0aGUgcHJvcGVydHkgZ3JhcGggaW50byBhbm90aGVy IHNjaGVtYS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBZb3Ug bXVzdCBvd24gdGhlIHByb3BlcnR5IGdyYXBoIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQUk9QRVJU WQorICAgR1JBUEg8L2NvbW1hbmQ+LiAgVG8gY2hhbmdlIGEgcHJvcGVydHkgZ3JhcGgncyBzY2hl bWEsIHlvdSBtdXN0IGFsc28gaGF2ZQorICAgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2 aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEuICBUbyBhbHRlciB0aGUgb3duZXIsCisgICB5b3UgbXVz dCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0aGUgbmV3IG93bmlu ZyByb2xlLCBhbmQKKyAgIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9saXRl cmFsPiBwcml2aWxlZ2Ugb24gdGhlIHByb3BlcnR5CisgICBncmFwaCdzIHNjaGVtYS4gIChUaGVz ZSByZXN0cmljdGlvbnMgZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lcgorICAgZG9lc24n dCBkbyBhbnl0aGluZyB5b3UgY291bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcg dGhlIHByb3BlcnR5CisgICBncmFwaC4gIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBhbHRlciBv d25lcnNoaXAgb2YgYW55IHByb3BlcnR5IGdyYXBoCisgICBhbnl3YXkuKQorICA8L3BhcmE+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgor CisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIChvcHRpb25hbGx5IHNjaGVtYS1x dWFsaWZpZWQpIG9mIGEgcHJvcGVydHkgZ3JhcGggdG8gYmUgYWx0ZXJlZC4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhl IHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IGV4aXN0LiAgQSBub3RpY2UgaXMKKyAgICAgIGlzc3Vl ZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVkZ2VfdGFibGVf ZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBTZWUgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaCI+ PGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZCisgICAgICBHUkFQSDwvY29tbWFuZD48L2xpbms+Lgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52 ZXJ0ZXhfdGFibGVfYWxpYXM8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9hbGlhczwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgYWxpYXMgb2YgYW4g ZXhpc3RpbmcgdmVydGV4IG9yIGVkZ2UgdGFibGUgdG8gb3BlcmF0ZSBvbi4gIChOb3RlIHRoYXQK KyAgICAgIHRoZSBhbGlhcyBpcyBwb3RlbnRpYWxseSBkaWZmZXJlbnQgZnJvbSB0aGUgbmFtZSBv ZiB0aGUgdW5kZXJseWluZworICAgICAgdGFibGUsIGlmIHRoZSB2ZXJ0ZXggb3IgZWRnZSB0YWJs ZSB3YXMgY3JlYXRlZCB3aXRoIDxsaXRlcmFsPkFTCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD4uKQorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5sYWJlbF9uYW1lPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnByb3BlcnR5X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTZWUgPGxpbmsgbGlua2VuZD0ic3Fs LWNyZWF0ZS1wcm9wZXJ0eS1ncmFwaCI+PGNvbW1hbmQ+Q1JFQVRFIFBST1BFUlRZCisgICAgICBH UkFQSDwvY29tbWFuZD48L2xpbms+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUgbmV3 IG93bmVyIG9mIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBuYW1lIGZvciB0 aGUgcHJvcGVydHkgZ3JhcGguCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBwcm9w ZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPk5vdGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSBjb25zaXN0ZW5jeSBjaGVj a3Mgb24gYSBwcm9wZXJ0eSBncmFwaCBkZXNjcmliZWQgYXQgPHhyZWYKKyAgIGxpbmtlbmQ9InNx bC1jcmVhdGUtcHJvcGVydHktZ3JhcGgtbm90ZXMiLz4gbXVzdCBiZSBtYWludGFpbmVkIGJ5Cisg ICA8Y29tbWFuZD5BTFRFUiBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gb3BlcmF0aW9ucy4gIElu IHNvbWUgY2FzZXMsIGl0CisgICBtaWdodCBiZSBuZWNlc3NhcnkgdG8gbWFrZSBtdWx0aXBsZSBh bHRlcmF0aW9ucyBpbiBhIHNpbmdsZSBjb21tYW5kIHRvCisgICBzYXRpc2Z5IHRoZSBjaGVja3Mu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBs ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFJPUEVSVFkg R1JBUEggZzEgQUREIFZFUlRFWCBUQUJMRVMgKHYyKTsKKworQUxURVIgUFJPUEVSVFkgR1JBUEgg ZzEgQUxURVIgVkVSVEVYIFRBQkxFIHYxIERST1AgTEFCRUwgZm9vOworCitBTFRFUiBQUk9QRVJU WSBHUkFQSCBnMSBSRU5BTUUgVE8gZzI7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisK KyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8L2NvbW1hbmQ+IGNv bmZvcm1zIHRvIElTTy9JRUMgOTA3NS0xNgorICAgKFNRTC9QR1EpLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt Y3JlYXRlLXByb3BlcnR5LWdyYXBoIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1kcm9wLXByb3BlcnR5LWdyYXBoIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y29tbWVudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0M2M1 NmIxMzMuLjdiMjUxNDc2ZTI0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNDcsNiArNDcsNyBA QCBDT01NRU5UIE9OCiAgIFBPTElDWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cG9s aWN5X25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFOR1VBR0UgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAog ICBQUk9DRURVUkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVyZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJn bW9kZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJn bmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3R5 cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKKyAgUFJPUEVSVFkgR1JBUEggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBs YWNlYWJsZT4gfAogICBST0xFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3Rf bmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUk9VVElORSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm91dGluZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+YXJnbW9kZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+YXJnbmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmFyZ3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mODhkMTE5NGNiYwotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKQEAgLTAsMCArMSwzMTAg QEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKK1Bv c3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZS1w cm9wZXJ0eS1ncmFwaCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdy YXBoIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFBST1BFUlRZIEdSQVBIPC9wcmltYXJ5PgorIDwvaW5k ZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBQUk9QRVJUWSBH UkFQSDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFBST1BFUlRZIEdSQVBIPC9y ZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYW4gU1FMLXByb3BlcnR5IGdyYXBoPC9yZWZw dXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4K K0NSRUFURSBbIFRFTVAgfCBURU1QT1JBUlkgXSBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CisgICAgWyB7VkVSVEVYfE5PREV9 IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0ZXhfdGFibGVfZGVm aW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisgICAgWyB7RURHRXxSRUxBVElPTlNI SVB9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX2Rl ZmluaXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXQorCis8cGhyYXNlPndoZXJlIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbjwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZlcnRleF90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdIFsgS0VZICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0gWyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9sYWJlbF9hbmRfcHJv cGVydGllczwvcmVwbGFjZWFibGU+IF0KKworPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmVkZ2VfdGFibGVfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhy YXNlPgorCisgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVkZ2VfdGFibGVfbmFt ZTwvcmVwbGFjZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFz PC9yZXBsYWNlYWJsZT4gXSBbIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisgICAgICAgIFNPVVJDRSBbIEtF WSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gKSBSRUZFUkVOQ0VTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXQorICAgICAgICBERVNU SU5BVElPTiBbIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFt ZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBSRUZFUkVOQ0VTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlc3RfdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAg ICAgICAgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9sYWJl bF9hbmRfcHJvcGVydGllczwvcmVwbGFjZWFibGU+IF0KKworPHBocmFzZT5hbmQgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3Byb3BlcnRpZXM8 L3JlcGxhY2VhYmxlPiBpcyBlaXRoZXI6PC9waHJhc2U+CisKKyAgICBOTyBQUk9QRVJUSUVTIHwg UFJPUEVSVElFUyBBTEwgQ09MVU1OUyB8IFBST1BFUlRJRVMgKCB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+IF0gfSBbLCAuLi5d ICkKKworPHBocmFzZT5vcjo8L3BocmFzZT4KKworICAgeyB7IExBQkVMIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5sYWJlbF9uYW1lPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIExBQkVM IH0gWyBOTyBQUk9QRVJUSUVTIHwgUFJPUEVSVElFUyBBTEwgQ09MVU1OUyB8IFBST1BFUlRJRVMg KCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwvcmVw bGFjZWFibGU+IF0gfSBbLCAuLi5dICkgXSB9IFsuLi5dCis8L3N5bm9wc2lzPgorPC9yZWZzeW5v cHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gZGVm aW5lcyBhIHByb3BlcnR5IGdyYXBoLiAgQQorICAgcHJvcGVydHkgZ3JhcGggY29uc2lzdHMgb2Yg dmVydGljZXMgYW5kIGVkZ2VzLCB0b2dldGhlciBjYWxsZWQgZWxlbWVudHMsCisgICBlYWNoIHdp dGggYXNzb2NpYXRlZCBsYWJlbHMgYW5kIHByb3BlcnRpZXMsIGFuZCBjYW4gYmUgcXVlcmllZCB1 c2luZyB0aGUKKyAgIDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1c2Ugb2YgPHhy ZWYgbGlua2VuZD0ic3FsLXNlbGVjdCIvPiB3aXRoCisgICBhIHNwZWNpYWwgcGF0aCBtYXRjaGlu ZyBzeW50YXguICBUaGUgZGF0YSBpbiB0aGUgZ3JhcGggaXMgc3RvcmVkIGluIHJlZ3VsYXIKKyAg IHRhYmxlcyAob3Igdmlld3MsIGZvcmVpZ24gdGFibGVzLCBldGMuKS4gIEVhY2ggdmVydGV4IG9y IGVkZ2UgY29ycmVzcG9uZHMKKyAgIHRvIGEgdGFibGUuICBUaGUgcHJvcGVydHkgZ3JhcGggZGVm aW5pdGlvbiBsaW5rcyB0aGVzZSB0YWJsZXMgdG9nZXRoZXIgaW50bworICAgYSBncmFwaCBzdHJ1 Y3R1cmUgdGhhdCBjYW4gYmUgcXVlcmllZCB1c2luZyBncmFwaCBxdWVyeSB0ZWNobmlxdWVzLgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8 L2NvbW1hbmQ+IGRvZXMgbm90IHBoeXNpY2FsbHkgbWF0ZXJpYWxpemUgYQorICAgZ3JhcGguICBJ dCBpcyB0aHVzIHNpbWlsYXIgdG8gPGNvbW1hbmQ+Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+IGluIHRo YXQgaXQKKyAgIHJlY29yZHMgYSBzdHJ1Y3R1cmUgdGhhdCBpcyB1c2VkIG9ubHkgd2hlbiB0aGUg ZGVmaW5lZCBvYmplY3QgaXMgcXVlcmllZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSWYg YSBzY2hlbWEgbmFtZSBpcyBnaXZlbiAoZm9yIGV4YW1wbGUsIDxsaXRlcmFsPkNSRUFURSBQUk9Q RVJUWSBHUkFQSAorICAgbXlzY2hlbWEubXlncmFwaCAuLi48L2xpdGVyYWw+KSB0aGVuIHRoZSBw cm9wZXJ0eSBncmFwaCBpcyBjcmVhdGVkIGluIHRoZQorICAgc3BlY2lmaWVkIHNjaGVtYS4gIE90 aGVyd2lzZSBpdCBpcyBjcmVhdGVkIGluIHRoZSBjdXJyZW50IHNjaGVtYS4KKyAgIFRlbXBvcmFy eSBwcm9wZXJ0eSBncmFwaHMgZXhpc3QgaW4gYSBzcGVjaWFsIHNjaGVtYSwgc28gYSBzY2hlbWEg bmFtZQorICAgY2Fubm90IGJlIGdpdmVuIHdoZW4gY3JlYXRpbmcgYSB0ZW1wb3JhcnkgcHJvcGVy dHkgZ3JhcGguICBQcm9wZXJ0eSBncmFwaHMKKyAgIHNoYXJlIGEgbmFtZXNwYWNlIHdpdGggdGFi bGVzIGFuZCBvdGhlciByZWxhdGlvbiB0eXBlcywgc28gdGhlIG5hbWUgb2YgdGhlCisgICBwcm9w ZXJ0eSBncmFwaCBtdXN0IGJlIGRpc3RpbmN0IGZyb20gdGhlIG5hbWUgb2YgYW55IG90aGVyIHJl bGF0aW9uICh0YWJsZSwKKyAgIHNlcXVlbmNlLCBpbmRleCwgdmlldywgbWF0ZXJpYWxpemVkIHZp ZXcsIG9yIGZvcmVpZ24gdGFibGUpIGluIHRoZSBzYW1lCisgICBzY2hlbWEuCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+ CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1h LXF1YWxpZmllZCkgb2YgdGhlIG5ldyBwcm9wZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5WRVJURVg8L2xpdGVyYWw+LzxsaXRlcmFsPk5PREU8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVER0U8L2xpdGVyYWw+LzxsaXRlcmFsPlJFTEFU SU9OU0hJUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZXNlIGtleXdvcmRzIGFyZSBzeW5vbnltcywgcmVzcGVjdGl2ZWx5LgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0ZXhfdGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSBvZiBhIHRhYmxlIHRoYXQgd2lsbCBjb250YWluIHZlcnRpY2VzIGlu IHRoZSBuZXcgcHJvcGVydHkKKyAgICAgIGdyYXBoLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3RhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUg b2YgYSB0YWJsZSB0aGF0IHdpbGwgY29udGFpbiBlZGdlcyBpbiB0aGUgbmV3IHByb3BlcnR5IGdy YXBoLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hbGlhczwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdmVydGV4IG9yIGVkZ2UgdGFi bGUuICBUaGlzIGRlZmF1bHRzIHRvIHRoZQorICAgICAgbmFtZSBvZiB0aGUgdGFibGUuICBBbGlh c2VzIG11c3QgYmUgdW5pcXVlIGluIGEgcHJvcGVydHkgZ3JhcGgKKyAgICAgIGRlZmluaXRpb24g KGFjcm9zcyBhbGwgdmVydGV4IHRhYmxlIGFuZCBlZGdlIHRhYmxlIGRlZmluaXRpb25zKS4KKyAg ICAgIChUaGVyZWZvcmUsIGlmIGEgdGFibGUgaXMgdXNlZCBtb3JlIHRoYW4gb25jZSBhcyBhIHZl cnRleCBvciBlZGdlIHRhYmxlLAorICAgICAgdGhlbiBhbiBleHBsaWNpdCBhbGlhcyBtdXN0IGJl IHNwZWNpZmllZCBmb3IgYXQgbGVhc3Qgb25lIG9mIHRoZW0gdG8KKyAgICAgIGRpc3Rpbmd1aXNo IHRoZW0uKQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPktFWSAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0g KTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEg c2V0IG9mIGNvbHVtbnMgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgcm93IGluIHRoZSB2ZXJ0 ZXggb3IgZWRnZQorICAgICAgdGFibGUuICBEZWZhdWx0cyB0byB0aGUgcHJpbWFyeSBrZXkuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNv dXJjZV90YWJsZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kZXN0X3RhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSB2ZXJ0ZXggdGFibGVzIHRoYXQgdGhlIGVk Z2UgdGFibGUgaXMgbGlua2VkIHRvLiAgVGhlc2UgcmVmZXIgdG8gdGhlCisgICAgICBhbGlhc2Vz IG9mIGEgdGhlIHZlcnRleCB0YWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJh bD5LRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dICkgUkVGRVJFTkNFUyAuLi4gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICk8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUd28gc2V0cyBvZiBjb2x1 bW5zIHRoYXQgY29ubmVjdCB0aGUgZWRnZSB0YWJsZSBhbmQgdGhlIHNvdXJjZSBvcgorICAgICAg ZGVzdGluYXRpb24gdmVydGV4IHRhYmxlLCBsaWtlIGluIGEgZm9yZWlnbi1rZXkgcmVsYXRpb25z aGlwLiAgSWYgYQorICAgICAgZm9yZWlnbi1rZXkgY29uc3RyYWludCBiZXR3ZWVuIHRoZSB0d28g dGFibGVzIGV4aXN0cywgaXQgaXMgdXNlZCBieQorICAgICAgZGVmYXVsdC4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJs ZV9sYWJlbF9hbmRfcHJvcGVydGllczwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBEZWZpbmVzIHRoZSBsYWJlbHMgYW5kIHByb3BlcnRpZXMg Zm9yIHRoZSBlbGVtZW50ICh2ZXJ0ZXggb3IgZWRnZSkKKyAgICAgIHRhYmxlLiAgRWFjaCBlbGVt ZW50IGhhcyBhdCBsZWFzdCBvbmUgbGFiZWwuICBCeSBkZWZhdWx0LCB0aGUgbGFiZWwgaXMKKyAg ICAgIHRoZSBzYW1lIGFzIHRoZSBlbGVtZW50IHRhYmxlIGFsaWFzLiAgVGhpcyBjYW4gYmUgc3Bl Y2lmaWVkIGV4cGxpY2l0bHkKKyAgICAgIGFzIDxsaXRlcmFsPkRFRkFVTFQgTEFCRUw8L2xpdGVy YWw+LiAgQWx0ZXJuYXRpdmVseSwgb25lIG9yIG1vcmUgZnJlZWx5CisgICAgICBjaG9zZW4gbGFi ZWwgbmFtZXMgY2FuIGJlIHNwZWNpZmllZC4gIChMYWJlbCBuYW1lcyBkbyBub3QgaGF2ZSB0byBi ZQorICAgICAgdW5pcXVlIGFjcm9zcyBhIHByb3BlcnR5IGdyYXBoLiAgSXQgaXMgY2FuIGJlIHVz ZWZ1bCB0byBhc3NpZ24gdGhlIHNhbWUKKyAgICAgIGxhYmVsIHRvIGRpZmZlcmVudCBlbGVtZW50 cy4pICBFYWNoIGxhYmVsIGhhcyBhIGxpc3QgKHBvc3NpYmx5IGVtcHR5KSBvZgorICAgICAgcHJv cGVydGllcy4gIEJ5IGRlZmF1bHQsIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUgYXJlIGF1dG9tYXRp Y2FsbHkKKyAgICAgIGV4cG9zZWQgYXMgcHJvcGVydGllcy4gIFRoaXMgY2FuIGJlIHNwZWNpZmll ZCBleHBsaWNpdGx5IGFzCisgICAgICA8bGl0ZXJhbD5QUk9QRVJUSUVTIEFMTCBDT0xVTU5TPC9s aXRlcmFsPi4gIEFsdGVybmF0aXZlbHksIGEgbGlzdCBvZgorICAgICAgZXhwcmVzc2lvbnMsIHdo aWNoIGNhbiByZWZlciB0byB0aGUgY29sdW1ucyBvZiB0aGUgdW5kZXJseWluZyB0YWJsZSwgY2Fu CisgICAgICBiZSBzcGVjaWZpZWQgYXMgcHJvcGVydGllcy4gIElmIHRoZSBleHByZXNzaW9ucyBh cmUgbm90IGEgcGxhaW4gY29sdW1uCisgICAgICByZWZlcmVuY2UsIHRoZW4gYW4gZXhwbGljaXQg cHJvcGVydHkgbmFtZSBtdXN0IGFsc28gYmUgc3BlY2lmaWVkLgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoLW5vdGVz Ij4KKyAgPHRpdGxlPk5vdGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSBmb2xsb3dpbmcg Y29uc2lzdGVuY3kgY2hlY2tzIG11c3QgYmUgc2F0aXNmaWVkIGJ5IGEgcHJvcGVydHkgZ3JhcGgg ZGVmaW5pdGlvbjoKKworICAgPGl0ZW1pemVkbGlzdD4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgSW4gYSBwcm9wZXJ0eSBncmFwaCwgbGFiZWxzIHdpdGggdGhlIHNhbWUgbmFt ZSBhcHBsaWVkIHRvIGRpZmZlcmVudAorICAgICAgcHJvcGVydHkgZ3JhcGggZWxlbWVudHMgbXVz dCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBwcm9wZXJ0aWVzIGFuZAorICAgICAgdGhvc2UgcHJv cGVydGllcyBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZXMuICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxv d2luZworICAgICAgd291bGQgYmUgYWxsb3dlZDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQ Uk9QRVJUWSBHUkFQSCBnMQorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB2MSBMQUJFTCBm b28gUFJPUEVSVElFUyAoeCwgeSksCisgICAgICAgIHYyIExBQkVMIGZvbyBQUk9QRVJUSUVTICh4 LCB5KQorICAgICkgLi4uCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgYnV0IHRoaXMgd291bGQg bm90OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxCisgICAgVkVS VEVYIFRBQkxFUyAoCisgICAgICAgIHYxIExBQkVMIGZvbyBQUk9QRVJUSUVTICh4LCB5KSwKKyAg ICAgICAgdjIgTEFCRUwgZm9vIFBST1BFUlRJRVMgKHopCisgICAgKSAuLi4KKzwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgSW4gYSBwcm9wZXJ0eSBncmFwaCwgYWxsIHByb3BlcnRpZXMgd2l0aCB0aGUg c2FtZSBuYW1lIG11c3QgaGF2ZSB0aGUKKyAgICAgIHNhbWUgZGF0YSB0eXBlLCBpbmRlcGVuZGVu dCBvZiB3aGljaCBsYWJlbCB0aGV5IGFyZSBvbi4gIEZvciBleGFtcGxlLAorICAgICAgdGhpcyB3 b3VsZCBiZSBhbGxvd2VkOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIHYxIChhIGlu dCwgYiBpbnQpOworQ1JFQVRFIFRBQkxFIHYyIChhIGludCwgYiBpbnQpOworCitDUkVBVEUgUFJP UEVSVFkgR1JBUEggZzEKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdjEgTEFCRUwgZm9v IFBST1BFUlRJRVMgKGEsIGIpLAorICAgICAgICB2MiBMQUJFTCBiYXIgUFJPUEVSVElFUyAoYSwg YikKKyAgICApIC4uLgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIGJ1dCB0aGlzIHdvdWxkIG5v dDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSB2MSAoYSBpbnQsIGIgaW50KTsKK0NS RUFURSBUQUJMRSB2MiAoYSBpbnQsIGIgdmFyY2hhcik7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQ SCBnMQorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB2MSBMQUJFTCBmb28gUFJPUEVSVElF UyAoYSwgYiksCisgICAgICAgIHYyIExBQkVMIGJhciBQUk9QRVJUSUVTIChhLCBiKQorICAgICkg Li4uCis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEZvciBlYWNoIHByb3BlcnR5IGdyYXBoIGVsZW1l bnQsIGFsbCBwcm9wZXJ0aWVzIHdpdGggdGhlIHNhbWUgbmFtZSBtdXN0CisgICAgICBoYXZlIHRo ZSBzYW1lIGV4cHJlc3Npb24gZm9yIGVhY2ggbGFiZWwuICBGb3IgZXhhbXBsZSwgdGhpcyB3b3Vs ZCBiZQorICAgICAgYWxsb3dlZDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBnMQorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB2MSBMQUJFTCBmb28gUFJPUEVS VElFUyAoeCBBUyBhICogMikgTEFCRUwgYmFyIFBST1BFUlRJRVMgKHggQVMgYSAqIDIpCisgICAg KSAuLi4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgICBidXQgdGhpcyB3b3VsZCBub3Q6Cis8cHJv Z3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzEKKyAgICBWRVJURVggVEFCTEVT ICgKKyAgICAgICAgdjEgTEFCRUwgZm9vIFBST1BFUlRJRVMgKHggQVMgYSAqIDIpIExBQkVMIGJh ciBQUk9QRVJUSUVTICh4IEFTIGEgKiAxMCkKKyAgICApIC4uLgorPC9wcm9ncmFtbGlzdGluZz48 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgPC9pdGVtaXplZGxpc3Q+CisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFByb3BlcnR5IGdyYXBocyBhcmUgcXVlcmllZCB1c2luZyB0aGUgPGxp dGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVzZQorICAgb2YgPHhyZWYgbGlua2VuZD0i c3FsLXNlbGVjdCIvPi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitD UkVBVEUgUFJPUEVSVFkgR1JBUEggZzEKKyAgICBWRVJURVggVEFCTEVTICh2MSwgdjIsIHYzKQor ICAgIEVER0UgVEFCTEVTIChlMSBTT1VSQ0UgdjEgREVTVElOQVRJT04gdjIsCisgICAgICAgICAg ICAgICAgIGUyIFNPVVJDRSB2MSBERVNUSU5BVElPTiB2Myk7Cis8L3Byb2dyYW1saXN0aW5nPjwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0 eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8 L2NvbW1hbmQ+IGNvbmZvcm1zIHRvIElTTy9JRUMgOTA3NS0xNgorICAgKFNRTC9QR1EpLgorICA8 L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90 aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtYWx0ZXItcHJvcGVydHktZ3JhcGgiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtcHJvcGVydHktZ3JhcGgiLz48L21lbWJlcj4KKyAgPC9z aW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX3Byb3BlcnR5X2dyYXBoLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfcHJvcGVydHlfZ3JhcGguc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMzFjYjc3YTJhZjEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfcHJvcGVydHlfZ3JhcGguc2dtbApAQCAtMCwwICsxLDExMSBAQAorPCEtLQorZG9jL3NyYy9z Z21sL3JlZi9kcm9wX3Byb3BlcnR5X2dyYXBoLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3AtcHJvcGVydHktZ3JhcGgiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWRyb3AtcHJvcGVydHktZ3JhcGgiPgorICA8cHJpbWFyeT5EUk9QIFBS T1BFUlRZIEdSQVBIPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkRST1AgUFJPUEVSVFkgR1JBUEg8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52 b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVt ZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZu YW1lPkRST1AgUFJPUEVSVFkgR1JBUEg8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBh biBTUUwtcHJvcGVydHkgZ3JhcGg8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJl ZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorRFJPUCBQUk9QRVJUWSBHUkFQSCBbIElGIEVYSVNU UyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXSBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNk aXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBh cmE+CisgICA8Y29tbWFuZD5EUk9QIFBST1BFUlRZIEdSQVBIPC9jb21tYW5kPiBkcm9wcyBhbiBl eGlzdGluZyBwcm9wZXJ0eSBncmFwaC4KKyAgIFRvIGV4ZWN1dGUgdGhpcyBjb21tYW5kIHlvdSBt dXN0IGJlIHRoZSBvd25lciBvZiB0aGUgcHJvcGVydHkgZ3JhcGguCisgIDwvcGFyYT4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAg PHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYg RVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBwcm9wZXJ0eSBncmFwaCBkb2VzIG5vdCBl eGlzdC4gIEEgbm90aWNlIGlzCisgICAgICBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBu YW1lIChvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIHRoZSBwcm9wZXJ0eSBncmFwaCB0 byByZW1vdmUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEF1dG9tYXRp Y2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBwcm9wZXJ0eSBncmFwaCwgYW5k IGluCisgICAgICB0dXJuIGFsbCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMg KHNlZSA8eHJlZgorICAgICAgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgcHJvcGVydHkgZ3Jh cGggaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAgdGhlIGRlZmF1 bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+Cisg IDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5F eGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIFBST1BF UlRZIEdSQVBIIGcxOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgPGNvbW1hbmQ+RFJPUCBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gY29uZm9ybXMgdG8gSVNP L0lFQyA5MDc1LTE2CisgICAoU1FML1BHUSksIGV4Y2VwdCB0aGF0IHRoZSBzdGFuZGFyZCBvbmx5 IGFsbG93cyBvbmUgcHJvcGVydHkgZ3JhcGggdG8gYmUKKyAgIGRyb3BwZWQgcGVyIGNvbW1hbmQs IGFuZCBhcGFydCBmcm9tIHRoZSA8bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+CisgICBvcHRp b24sIHdoaWNoIGlzIGEgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRl bnNpb24uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1l bWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIi8+PC9tZW1iZXI+ CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlci1wcm9wZXJ0eS1ncmFwaCIvPjwv bWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dy YW50LnNnbWwKaW5kZXggOTk5ZjY1N2Q1YzAuLjExMzJjMTYwOGNlIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21s CkBAIC04Miw2ICs4MiwxMSBAQCBHUkFOVCB7IHsgU0VUIHwgQUxURVIgU1lTVEVNIH0gWywgLi4u IF0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQogICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBH UkFOVCBPUFRJT04gXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFNFTEVD VCB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gUFJPUEVSVFkgR1JBUEggPHJlcGxhY2Vh YmxlPmdyYXBoX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgVE8gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFssIC4u Ll0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisKIEdS QU5UIHsgeyBDUkVBVEUgfCBVU0FHRSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQog ICAgIE9OIFNDSEVNQSA8cmVwbGFjZWFibGU+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dCiAgICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNh dGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCkBAIC0xMTks NyArMTI0LDcgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFt ZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgIHRoYXQgZ3JhbnRzIHByaXZp bGVnZXMgb24gYSBkYXRhYmFzZSBvYmplY3QgKHRhYmxlLCBjb2x1bW4sIHZpZXcsCiAgICBmb3Jl aWduIHRhYmxlLCBzZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVpZ24tZGF0YSB3cmFwcGVyLCBmb3Jl aWduIHNlcnZlciwKICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUsIHByb2NlZHVyYWwgbGFuZ3VhZ2Us IGxhcmdlIG9iamVjdCwgY29uZmlndXJhdGlvbgotICAgcGFyYW1ldGVyLCBzY2hlbWEsIHRhYmxl c3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRzCisgICBwYXJhbWV0ZXIsIHByb3Bl cnR5IGdyYXBoLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRoYXQgZ3Jh bnRzCiAgICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRzIGFyZSBzaW1pbGFy IGluIG1hbnkgd2F5cywgYnV0CiAgICB0aGV5IGFyZSBkaWZmZXJlbnQgZW5vdWdoIHRvIGJlIGRl c2NyaWJlZCBzZXBhcmF0ZWx5LgogICA8L3BhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXgg ZjMwNDRmYWMxZmEuLjViMzVjM2U1NDUzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Bz cWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0xMjgz LDcgKzEyODMsNyBAQCBTRUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAKICAgICAgICAgPGxpc3RpdGVt PgogICAgICAgICA8cGFyYT4KLSAgICAgICAgRm9yIGVhY2ggcmVsYXRpb24gKHRhYmxlLCB2aWV3 LCBtYXRlcmlhbGl6ZWQgdmlldywgaW5kZXgsIHNlcXVlbmNlLAorICAgICAgICBGb3IgZWFjaCBy ZWxhdGlvbiAodGFibGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBpbmRleCwgcHJvcGVydHkg Z3JhcGgsIHNlcXVlbmNlLAogICAgICAgICBvciBmb3JlaWduIHRhYmxlKQogICAgICAgICBvciBj b21wb3NpdGUgdHlwZSBtYXRjaGluZyB0aGUKICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiwgc2hvdyBhbGwKQEAgLTEzMjMsOSArMTMy Myw5IEBAIFNFTEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAgPHBhcmE+CiAgICAgICAgIElm IDxjb21tYW5kPlxkPC9jb21tYW5kPiBpcyB1c2VkIHdpdGhvdXQgYQogICAgICAgICA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGFyZ3VtZW50LCBp dCBpcwotICAgICAgICBlcXVpdmFsZW50IHRvIDxjb21tYW5kPlxkdHZtc0U8L2NvbW1hbmQ+IHdo aWNoIHdpbGwgc2hvdyBhIGxpc3Qgb2YKLSAgICAgICAgYWxsIHZpc2libGUgdGFibGVzLCB2aWV3 cywgbWF0ZXJpYWxpemVkIHZpZXdzLCBzZXF1ZW5jZXMgYW5kCi0gICAgICAgIGZvcmVpZ24gdGFi bGVzLgorICAgICAgICBlcXVpdmFsZW50IHRvIDxjb21tYW5kPlxkdHZtc0VHPC9jb21tYW5kPiB3 aGljaCB3aWxsIHNob3cgYSBsaXN0IG9mCisgICAgICAgIGFsbCB2aXNpYmxlIHRhYmxlcywgdmll d3MsIG1hdGVyaWFsaXplZCB2aWV3cywgc2VxdWVuY2VzLAorICAgICAgICBmb3JlaWduIHRhYmxl cywgYW5kIHByb3BlcnR5IGdyYXBocy4KICAgICAgICAgVGhpcyBpcyBwdXJlbHkgYSBjb252ZW5p ZW5jZSBtZWFzdXJlLgogICAgICAgICA8L3BhcmE+CiAgICAgICAgIDxwYXJhPgpAQCAtMTYzMyw2 ICsxNjMzLDcgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogCiAgICAgICA8dmFybGlzdGVudHJ5 IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZGUiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5c ZEVbU3grXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRHW1N4K10gWyA8bGluayBsaW5rZW5k PSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRl cm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDx0ZXJt PjxsaXRlcmFsPlxkaVtTeCtdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+ IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZG1bU3grXSBbIDxs aW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KICAg ICAgICAgPHRlcm0+PGxpdGVyYWw+XGRzW1N4K10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1w YXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2Vh YmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CkBAIC0xNjQxLDEwICsxNjQyLDEwIEBAIFNF TEVDVCAkMSBccGFyc2Ugc3RtdDEKIAogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgIDxwYXJh PgotICAgICAgICBJbiB0aGlzIGdyb3VwIG9mIGNvbW1hbmRzLCB0aGUgbGV0dGVycyA8bGl0ZXJh bD5FPC9saXRlcmFsPiwKKyAgICAgICAgSW4gdGhpcyBncm91cCBvZiBjb21tYW5kcywgdGhlIGxl dHRlcnMgPGxpdGVyYWw+RTwvbGl0ZXJhbD4sIDxsaXRlcmFsPkc8L2xpdGVyYWw+LAogICAgICAg ICA8bGl0ZXJhbD5pPC9saXRlcmFsPiwgPGxpdGVyYWw+bTwvbGl0ZXJhbD4sIDxsaXRlcmFsPnM8 L2xpdGVyYWw+LAogICAgICAgICA8bGl0ZXJhbD50PC9saXRlcmFsPiwgYW5kIDxsaXRlcmFsPnY8 L2xpdGVyYWw+Ci0gICAgICAgIHN0YW5kIGZvciBmb3JlaWduIHRhYmxlLCBpbmRleCwgbWF0ZXJp YWxpemVkIHZpZXcsCisgICAgICAgIHN0YW5kIGZvciBmb3JlaWduIHRhYmxlLCBpbmRleCwgcHJv cGVydHkgZ3JhcGgsIG1hdGVyaWFsaXplZCB2aWV3LAogICAgICAgICBzZXF1ZW5jZSwgdGFibGUs IGFuZCB2aWV3LAogICAgICAgICByZXNwZWN0aXZlbHkuCiAgICAgICAgIFlvdSBjYW4gc3BlY2lm eSBhbnkgb3IgYWxsIG9mCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFhMS4uOTQ4YWM1 MzQ0NDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAtMTA0LDYgKzEwNCwxMyBAQCBSRVZPS0UgWyBH UkFOVCBPUFRJT04gRk9SIF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIENBU0NB REUgfCBSRVNUUklDVCBdCiAKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsgU0VM RUNUIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFj ZWFibGU+Z3JhcGhfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICBGUk9NIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBb LCAuLi5dCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5y b2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBDQVNDQURFIHwgUkVTVFJJ Q1QgXQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICB7IHsgQ1JFQVRFIHwgVVNB R0UgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KICAgICBPTiBTQ0hFTUEgPHJlcGxh Y2VhYmxlPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9zZWN1cml0eV9sYWJlbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWN1 cml0eV9sYWJlbC5zZ21sCmluZGV4IGU1ZTVmYjQ4M2U5Li45Yjk3MDg1YTNmZCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9zZWN1cml0eV9sYWJlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbApAQCAtMzUsNiArMzUsNyBAQCBTRUNVUklUWSBMQUJF TCBbIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJvdmlkZXI8L3JlcGxhY2Vh YmxlPiBdIE9OCiAgIE1BVEVSSUFMSVpFRCBWSUVXIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFOR1VB R0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJs ZT4gfAogICBQUk9DRURVUkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVy ZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+YXJnbW9kZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+YXJnbmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFyZ3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKKyAgUFJPUEVSVFkgR1JBUEgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4K ICAgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1l PC9yZXBsYWNlYWJsZT4gfAogICBST0xFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5v YmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUk9VVElORSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm91dGluZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbW9kZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL3NlbGVjdC5zZ21sCmluZGV4IGQ3MDg5ZWFjMGJlLi4xYzZlZTk5ODQxNCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Nl bGVjdC5zZ21sCkBAIC01OSw2ICs1OSw3IEBAIFNFTEVDVCBbIEFMTCB8IERJU1RJTkNUIFsgT04g KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjCiAgICAg WyBMQVRFUkFMIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZ1bmN0aW9uX25hbWU8 L3JlcGxhY2VhYmxlPiAoIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3VtZW50 PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgQVMgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX2RlZmluaXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkKICAgICBbIExB VEVSQUwgXSBST1dTIEZST00oIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mdW5jdGlv bl9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5h cmd1bWVudDwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIFsgQVMgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX2RlZmluaXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkg XSBbLCAuLi5dICkKICAgICAgICAgICAgICAgICBbIFdJVEggT1JESU5BTElUWSBdIFsgWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IFsgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2FsaWFzPC9yZXBsYWNlYWJsZT4g WywgLi4uXSApIF0gXQorICAgIEdSQVBIX1RBQkxFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmdyYXBoX25hbWU8L3JlcGxhY2VhYmxlPiBNQVRDSCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Z3JhcGhfcGF0dGVybjwvcmVwbGFjZWFibGU+IENPTFVNTlMgKCB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBUyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IF0gfSBbLCAu Li5dICkgKSBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3Jl cGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9hbGlh czwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIF0KICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmpvaW5fdHlwZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5mcm9tX2l0ZW08L3JlcGxhY2VhYmxlPiB7IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5qb2luX2NvbmRpdGlvbjwvcmVwbGFjZWFibGU+IHwgVVNJTkcgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl9jb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkg WyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl91c2luZ19hbGlhczwvcmVw bGFjZWFibGU+IF0gfQogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mcm9tX2l0 ZW08L3JlcGxhY2VhYmxlPiBOQVRVUkFMIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5q b2luX3R5cGU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJv bV9pdGVtPC9yZXBsYWNlYWJsZT4KICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4gQ1JPU1MgSk9JTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4KQEAgLTU4Nyw2ICs1ODgsNDggQEAgVEFC TEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICogXQogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxsaXRlcmFsPkdSQVBIX1RBQkxF ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBoX25hbWU8L3JlcGxhY2VhYmxl PiBNQVRDSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Z3JhcGhfcGF0dGVybjwvcmVw bGFjZWFibGU+IENPTFVNTlMgKCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IF0gfSBbLCAuLi5dICkgKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgY2xhdXNlIHByb2R1Y2Vz IG91dHB1dCBmcm9tIG1hdGNoaW5nIHRoZSBzcGVjaWZ5aW5nIGdyYXBoIHBhdHRlcm4KKyAgICAg ICAgYWdhaW5zdCBhIHByb3BlcnR5IGdyYXBoLiAgU2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1wcm9w ZXJ0eS1ncmFwaHMiLz4KKyAgICAgICAgYW5kIDx4cmVmIGxpbmtlbmQ9InF1ZXJpZXMtZ3JhcGgi Lz4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+ CisgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ncmFwaF9uYW1lPC9yZXBs YWNlYWJsZT4gaXMgdGhlIG5hbWUKKyAgICAgICAgKG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmll ZCkgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkgZ3JhcGggKGRlZmluZWQKKyAgICAgICAgd2l0aCA8 eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIi8+KS4KKyAgICAgICA8L3Bh cmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmdyYXBoX3BhdHRlcm48L3JlcGxhY2VhYmxlPiBpcyBhIGdyYXBoCisgICAgICAgIHBhdHRl cm4gaW4gYSBzcGVjaWFsIGdyYXBoIHBhdHRlcm4gc3VibGFuZ3VhZ2UuICBTZWUgPHhyZWYKKyAg ICAgICAgbGlua2VuZD0icXVlcmllcy1ncmFwaC1wYXR0ZXJucyIvPi4KKyAgICAgICA8L3BhcmE+ CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIDxsaXRlcmFsPkNPTFVNTlM8L2xpdGVyYWw+ IGNsYXVzZSBkZWZpbmVzIHRoZSBvdXRwdXQgY29sdW1ucyBvZgorICAgICAgICB0aGUgPGxpdGVy YWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVzZS4gIDxyZXBsYWNlYWJsZQorICAgICAgICBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gaXMgYSBzY2FsYXIgZXhw cmVzc2lvbgorICAgICAgICB1c2luZyB0aGUgZ3JhcGggcGF0dGVybiB2YXJpYWJsZXMgZGVmaW5l ZCBpbiB0aGUgPHJlcGxhY2VhYmxlCisgICAgICAgIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBoX3Bh dHRlcm48L3JlcGxhY2VhYmxlPi4gIFRoZSBuYW1lIG9mIHRoZSBvdXRwdXQKKyAgICAgICAgY29s dW1ucyBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSA8bGl0ZXJhbD5BUzwvbGl0ZXJhbD4gY2xhdXNl cy4gIElmIHRoZQorICAgICAgICBleHByZXNzaW9ucyBhcmUgc2ltcGxlIHByb3BlcnR5IHJlZmVy ZW5jZXMsIHRoZSBwcm9wZXJ0eSBuYW1lcyBhcmUKKyAgICAgICAgdXNlZCBhcyB0aGUgb3V0cHV0 IG5hbWVzLCBvdGhlcndpc2UgYW4gZXhwbGljaXQgbmFtZSBtdXN0IGJlCisgICAgICAgIHNwZWNp ZmllZC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgTGlrZSBmb3Ig b3RoZXIgPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4gY2xhdXNlIGl0ZW1zLCBhIHRhYmxlIGFsaWFz CisgICAgICAgIG5hbWUgYW5kIGNvbHVtbiBhbGlhcyBuYW1lcyBtYXkgZm9sbG93IHRoZSA8bGl0 ZXJhbD5HUkFQSF9UQUJMRQorICAgICAgICAoLi4uKTwvbGl0ZXJhbD4gY2xhdXNlLiAgKEEgY29s dW1uIGFsaWFzIGxpc3Qgd291bGQgYmUgcmVkdW5kYW50IHdpdGgKKyAgICAgICAgdGhlIDxsaXRl cmFsPkNPTFVNTlM8L2xpdGVyYWw+IGNsYXVzZS4pCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAg ICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5qb2luX3R5cGU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBmZjg1 YWNlODNmYy4uNmRlM2FmYTdiMTYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTU1LDYgKzU1LDcgQEAK ICAgICZhbHRlck9wZXJhdG9yRmFtaWx5OwogICAgJmFsdGVyUG9saWN5OwogICAgJmFsdGVyUHJv Y2VkdXJlOworICAgJmFsdGVyUHJvcGVydHlHcmFwaDsKICAgICZhbHRlclB1YmxpY2F0aW9uOwog ICAgJmFsdGVyUm9sZTsKICAgICZhbHRlclJvdXRpbmU7CkBAIC0xMDcsNiArMTA4LDcgQEAKICAg ICZjcmVhdGVPcGVyYXRvckZhbWlseTsKICAgICZjcmVhdGVQb2xpY3k7CiAgICAmY3JlYXRlUHJv Y2VkdXJlOworICAgJmNyZWF0ZVByb3BlcnR5R3JhcGg7CiAgICAmY3JlYXRlUHVibGljYXRpb247 CiAgICAmY3JlYXRlUm9sZTsKICAgICZjcmVhdGVSdWxlOwpAQCAtMTU1LDYgKzE1Nyw3IEBACiAg ICAmZHJvcE93bmVkOwogICAgJmRyb3BQb2xpY3k7CiAgICAmZHJvcFByb2NlZHVyZTsKKyAgICZk cm9wUHJvcGVydHlHcmFwaDsKICAgICZkcm9wUHVibGljYXRpb247CiAgICAmZHJvcFJvbGU7CiAg ICAmZHJvcFJvdXRpbmU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAwMmE3NTRjYzMwYS4uNWJmOGJk Y2ZhM2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMjkxLDYgKzI5MSw5IEBAIHJlc3RyaWN0X2Fu ZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29s IGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sg PSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNU X1BST1BHUkFQSDoKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QUk9QR1JBUEg7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0 IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3QgcmVhY2hlZCwgYnV0IGtlZXAgY29tcGls ZXIgcXVpZXQgKi8KQEAgLTUzNSw2ICs1MzgsMTAgQEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0 bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9B Q0w7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3IgcGFyYW1ldGVyIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgor CQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QUk9QR1JBUEg7CisJCQllcnJvcm1z ZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcHJvcGVydHkg Z3JhcGgiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBzdG10LT5vYmp0eXBlKTsK QEAgLTYwNSw2ICs2MTIsNyBAQCBFeGVjR3JhbnRTdG10X29pZHMoSW50ZXJuYWxHcmFudCAqaXN0 bXQpCiAJewogCQljYXNlIE9CSkVDVF9UQUJMRToKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CisJ CWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCUV4ZWNHcmFudF9SZWxhdGlvbihpc3RtdCk7CiAJ CQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CkBAIC02ODcsNiArNjk1LDcgQEAgb2Jq ZWN0TmFtZXNUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmpuYW1lcywgYm9vbCBp c19ncmFudCkKIAogCQljYXNlIE9CSkVDVF9UQUJMRToKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6 CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAogCQkJLyoKIAkJCSAqIEhlcmUsIHdlIGRvbid0 IHVzZSBnZXRfb2JqZWN0X2FkZHJlc3MoKS4gIEl0IHJlcXVpcmVzIHRoYXQgdGhlCkBAIC04MDQs NiArODEzLDEwIEBAIG9iamVjdHNJblNjaGVtYVRvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExp c3QgKm5zcG5hbWVzKQogCQkJCW9ianMgPSBnZXRSZWxhdGlvbnNJbk5hbWVzcGFjZShuYW1lc3Bh Y2VJZCwgUkVMS0lORF9TRVFVRU5DRSk7CiAJCQkJb2JqZWN0cyA9IGxpc3RfY29uY2F0KG9iamVj dHMsIG9ianMpOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJCW9i anMgPSBnZXRSZWxhdGlvbnNJbk5hbWVzcGFjZShuYW1lc3BhY2VJZCwgUkVMS0lORF9QUk9QR1JB UEgpOworCQkJCW9iamVjdHMgPSBsaXN0X2NvbmNhdChvYmplY3RzLCBvYmpzKTsKKwkJCQlicmVh azsKIAkJCWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgogCQkJY2FzZSBPQkpFQ1RfUFJPQ0VEVVJFOgog CQkJY2FzZSBPQkpFQ1RfUk9VVElORToKQEAgLTEwMDUsNiArMTAxOCwxMCBAQCBFeGVjQWx0ZXJE ZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2 aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUE7 CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBm b3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJYWxs X3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QUk9QR1JBUEg7CisJCQllcnJvcm1zZyA9IGdl dHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcHJvcGVydHkgZ3JhcGgi KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBH cmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBhY3Rpb24tPm9ianR5cGUpOwpAQCAt MjY5OSw2ICsyNzE2LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0 VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9QUk9DRURVUkU6CiAJCQkJCQltc2cgPSBn ZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBwcm9jZWR1cmUgJXMiKTsKIAkJCQkJ CWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CisJCQkJCQltc2cgPSBnZXR0ZXh0 X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBwcm9wZXJ0eSBncmFwaCAlcyIpOworCQkJCQkJ YnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4 dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgcHVibGljYXRpb24gJXMiKTsKIAkJCQkJCWJy ZWFrOwpAQCAtMjgyNSw2ICsyODQ1LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVy ciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9QUk9DRURVUkU6CiAJCQkJ CQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgcHJvY2VkdXJlICVzIik7CiAJ CQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJCQkJbXNnID0gZ2V0 dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHByb3BlcnR5IGdyYXBoICVzIik7CisJCQkJCQli cmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCQkJCQltc2cgPSBnZXR0ZXh0 X25vb3AoIm11c3QgYmUgb3duZXIgb2YgcHVibGljYXRpb24gJXMiKTsKIAkJCQkJCWJyZWFrOwpA QCAtMjk2MSw2ICsyOTg0LDcgQEAgcGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBv YmplY3Rfb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJCQlwZ19hdHRyaWJ1 dGVfYWNsbWFzayhvYmplY3Rfb2lkLCBhdHRudW0sIHJvbGVpZCwgbWFzaywgaG93KTsKIAkJY2Fz ZSBPQkpFQ1RfVEFCTEU6CiAJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgorCQljYXNlIE9CSkVDVF9Q Uk9QR1JBUEg6CiAJCQlyZXR1cm4gcGdfY2xhc3NfYWNsbWFzayhvYmplY3Rfb2lkLCByb2xlaWQs IG1hc2ssIGhvdyk7CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJcmV0dXJuIG9iamVjdF9h Y2xtYXNrKERhdGFiYXNlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCAxODMxNmEzOTY4Yi4uNzBjZDgwMDU2Zjkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC01MCw2ICs1MCwxMSBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcGFyYW1ldGVyX2FjbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9wZ3JhcGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1l bnRfbGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Uu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oIgpAQCAtMTQ1Myw2ICsx NDU4LDExIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBpbnQgZmxh Z3MpCiAJCWNhc2UgQWNjZXNzTWV0aG9kUmVsYXRpb25JZDoKIAkJY2FzZSBBY2Nlc3NNZXRob2RP cGVyYXRvclJlbGF0aW9uSWQ6CiAJCWNhc2UgQWNjZXNzTWV0aG9kUHJvY2VkdXJlUmVsYXRpb25J ZDoKKwkJY2FzZSBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJY2FzZSBQcm9wZ3JhcGhF bGVtZW50TGFiZWxSZWxhdGlvbklkOgorCQljYXNlIFByb3BncmFwaExhYmVsUmVsYXRpb25JZDoK KwkJY2FzZSBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVsYXRpb25JZDoKKwkJY2FzZSBQcm9wZ3Jh cGhQcm9wZXJ0eVJlbGF0aW9uSWQ6CiAJCWNhc2UgTmFtZXNwYWNlUmVsYXRpb25JZDoKIAkJY2Fz ZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKQEAg LTIxNjMsNiArMjE3Myw3IEBAIGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2Rl LAogCQkJc3dpdGNoIChydGUtPnJ0ZWtpbmQpCiAJCQl7CiAJCQkJY2FzZSBSVEVfUkVMQVRJT046 CisJCQkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CiAJCQkJCWFkZF9vYmplY3RfYWRkcmVzcyhSZWxh dGlvblJlbGF0aW9uSWQsIHJ0ZS0+cmVsaWQsIDAsCiAJCQkJCQkJCQkgICBjb250ZXh0LT5hZGRy cyk7CiAJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1h dGlvbl9zY2hlbWEuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEu c3FsCmluZGV4IGE3YmZmY2E5M2QxLi4yNzkzODhiZGY3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbApAQCAtMzAwOSwzICszMDA5LDM2NyBAQCBDUkVBVEUg VklFVyB1c2VyX21hcHBpbmdzIEFTCiAgICAgRlJPTSBfcGdfdXNlcl9tYXBwaW5nczsKIAogR1JB TlQgU0VMRUNUIE9OIHVzZXJfbWFwcGluZ3MgVE8gUFVCTElDOworCisKKy0tIFNRTC9QR1Egdmll d3M7IHRoZXNlIHVzZSBzZWN0aW9uIG51bWJlcnMgZnJvbSBwYXJ0IDE2IG9mIHRoZSBzdGFuZGFy ZC4KKworLyoKKyAqIDE1LjIKKyAqIFBHX0RFRklORURfTEFCRUxfU0VUUyB2aWV3CisgKi8KKwor LS0gVE9ETworCisKKy8qCisgKiAxNS4zCisgKiBQR19ERUZJTkVEX0xBQkVMX1NFVF9MQUJFTFMg dmlldworICovCisKKy0tIFRPRE8KKworCisvKgorICogMTUuNAorICogUEdfRURHRV9ERUZJTkVE X0xBQkVMX1NFVFMgdmlldworICovCisKKy0tIFRPRE8KKworCisvKgorICogMTUuNQorICogUEdf RURHRV9UQUJMRV9DT01QT05FTlRTIHZpZXcKKyAqLworCitDUkVBVEUgVklFVyBwZ19lZGdlX3Rh YmxlX2NvbXBvbmVudHMgQVMKKyAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMg c3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENB U1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVt YSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9w ZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKGVnLnBnZWFsaWFzIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyBlZGdlX3RhYmxlX2FsaWFzLAorICAgICAgICAgICBDQVNUKHYucGdlYWxpYXMg QVMgc3FsX2lkZW50aWZpZXIpIEFTIHZlcnRleF90YWJsZV9hbGlhcywKKyAgICAgICAgICAgQ0FT VChDQVNFIGVnLmVuZCBXSEVOICdzcmMnIFRIRU4gJ1NPVVJDRScgV0hFTiAnZGVzdCcgVEhFTiAn REVTVElOQVRJT04nIEVORCBBUyBjaGFyYWN0ZXJfZGF0YSkgQVMgZWRnZV9lbmQsCisgICAgICAg ICAgIENBU1QoYWUuYXR0bmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgZWRnZV90YWJsZV9jb2x1 bW5fbmFtZSwKKyAgICAgICAgICAgQ0FTVChhdi5hdHRuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBB UyB2ZXJ0ZXhfdGFibGVfY29sdW1uX25hbWUsCisgICAgICAgICAgIENBU1QoKGVnLmVna2V5KS5u IEFTIGNhcmRpbmFsX251bWJlcikgQVMgb3JkaW5hbF9wb3NpdGlvbgorICAgIEZST00gcGdfbmFt ZXNwYWNlIG5wZworICAgICAgICAgSk9JTgorICAgICAgICAgKFNFTEVDVCAqIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsa2luZCA9ICdnJykgQVMgcGcKKyAgICAgICAgICAgT04gbnBnLm9pZCA9IHBn LnJlbG5hbWVzcGFjZQorICAgICAgICAgSk9JTgorICAgICAgICAgKFNFTEVDVCBwZ2VwZ2lkLCBw Z2VhbGlhcywgcGdlcmVsaWQsICdzcmMnIEFTIGVuZCwgcGdlc3JjdmVydGV4aWQgQVMgdmVydGV4 aWQsIF9wZ19leHBhbmRhcnJheShwZ2VzcmNrZXkpIEFTIGVna2V5LCBfcGdfZXhwYW5kYXJyYXko cGdlc3JjcmVmKSBBUyBlZ3JlZiBGUk9NIHBnX3Byb3BncmFwaF9lbGVtZW50IFdIRVJFIHBnZWtp bmQgPSAnZScKKyAgICAgICAgICBVTklPTiBBTEwKKyAgICAgICAgICBTRUxFQ1QgcGdlcGdpZCwg cGdlYWxpYXMsIHBnZXJlbGlkLCAnZGVzdCcgQVMgZW5kLCBwZ2VkZXN0dmVydGV4aWQgQVMgdmVy dGV4aWQsIF9wZ19leHBhbmRhcnJheShwZ2VkZXN0a2V5KSBBUyBlZ2tleSwgX3BnX2V4cGFuZGFy cmF5KHBnZWRlc3RyZWYpIEFTIGVncmVmIEZST00gcGdfcHJvcGdyYXBoX2VsZW1lbnQgV0hFUkUg cGdla2luZCA9ICdlJworICAgICAgICAgKSBBUyBlZworICAgICAgICAgICBPTiBwZy5vaWQgPSBl Zy5wZ2VwZ2lkCisgICAgICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUICogRlJPTSBwZ19wcm9w Z3JhcGhfZWxlbWVudCBXSEVSRSBwZ2VraW5kID0gJ3YnKSBBUyB2CisgICAgICAgICAgIE9OIGVn LnZlcnRleGlkID0gdi5vaWQKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1QgKiBGUk9N IHBnX2F0dHJpYnV0ZSBXSEVSRSBOT1QgYXR0aXNkcm9wcGVkKSBBUyBhZQorICAgICAgICAgICBP TiBlZy5wZ2VyZWxpZCA9IGFlLmF0dHJlbGlkIEFORCAoZWcuZWdrZXkpLnggPSBhZS5hdHRudW0K KyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1QgKiBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBOT1QgYXR0aXNkcm9wcGVkKSBBUyBhdgorICAgICAgICAgICBPTiB2LnBnZXJlbGlkID0gYXYu YXR0cmVsaWQgQU5EIChlZy5lZ3JlZikueCA9IGF2LmF0dG51bQorICAgIFdIRVJFIE5PVCBwZ19p c19vdGhlcl90ZW1wX3NjaGVtYShucGcub2lkKQorICAgICAgICAgIEFORCAocGdfaGFzX3JvbGUo cGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVfcHJpdmls ZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHBnX2VkZ2VfdGFibGVf Y29tcG9uZW50cyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjYKKyAqIFBHX0VER0VfVFJJUExF VFMgdmlldworICovCisKKy0tIFRPRE8KKworCisvKgorICogMTUuNworICogUEdfRUxFTUVOVF9U QUJMRV9LRVlfQ09MVU1OUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfZWxlbWVudF90YWJs ZV9rZXlfY29sdW1ucyBBUworICAgIFNFTEVDVCBDQVNUKGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBz cWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZywKKyAgICAgICAgICAgQ0FT VChucGcubnNwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfc2NoZW1h LAorICAgICAgICAgICBDQVNUKHBnLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3Bl cnR5X2dyYXBoX25hbWUsCisgICAgICAgICAgIENBU1QocGdlYWxpYXMgQVMgc3FsX2lkZW50aWZp ZXIpIEFTIGVsZW1lbnRfdGFibGVfYWxpYXMsCisgICAgICAgICAgIENBU1QoYS5hdHRuYW1lIEFT IHNxbF9pZGVudGlmaWVyKSBBUyBjb2x1bW5fbmFtZSwKKyAgICAgICAgICAgQ0FTVCgoZWwuZWtl eSkubiBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG9yZGluYWxfcG9zaXRpb24KKyAgICBGUk9NIHBn X25hbWVzcGFjZSBucGcKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1QgKiBGUk9NIHBn X2NsYXNzIFdIRVJFIHJlbGtpbmQgPSAnZycpIEFTIHBnCisgICAgICAgICAgIE9OIG5wZy5vaWQg PSBwZy5yZWxuYW1lc3BhY2UKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1QgcGdlcGdp ZCwgcGdlYWxpYXMsIHBnZXJlbGlkLCBfcGdfZXhwYW5kYXJyYXkocGdla2V5KSBBUyBla2V5IEZS T00gcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEFTIGVsCisgICAgICAgICAgIE9OIHBnLm9pZCA9IGVs LnBnZXBnaWQKKyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1QgKiBGUk9NIHBnX2F0dHJp YnV0ZSBXSEVSRSBOT1QgYXR0aXNkcm9wcGVkKSBBUyBhCisgICAgICAgICAgIE9OIGVsLnBnZXJl bGlkID0gYS5hdHRyZWxpZCBBTkQgKGVsLmVrZXkpLnggPSBhLmF0dG51bQorICAgIFdIRVJFIE5P VCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShucGcub2lkKQorICAgICAgICAgIEFORCAocGdfaGFz X3JvbGUocGcucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVf cHJpdmlsZWdlKHBnLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHBnX2VsZW1l bnRfdGFibGVfa2V5X2NvbHVtbnMgVE8gUFVCTElDOworCisKKy8qCisgKiAxNS44CisgKiBQR19F TEVNRU5UX1RBQkxFX0xBQkVMUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfZWxlbWVudF90 YWJsZV9sYWJlbHMgQVMKKyAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENBU1Qo bnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwK KyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0 eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKGUucGdlYWxpYXMgQVMgc3FsX2lkZW50aWZp ZXIpIEFTIGVsZW1lbnRfdGFibGVfYWxpYXMsCisgICAgICAgICAgIENBU1QobC5wZ2xsYWJlbCBB UyBzcWxfaWRlbnRpZmllcikgQVMgbGFiZWxfbmFtZQorICAgIEZST00gcGdfbmFtZXNwYWNlIG5w ZywgcGdfY2xhc3MgcGcsIHBnX3Byb3BncmFwaF9lbGVtZW50IGUsIHBnX3Byb3BncmFwaF9lbGVt ZW50X2xhYmVsIGVsLCBwZ19wcm9wZ3JhcGhfbGFiZWwgbAorICAgIFdIRVJFIHBnLnJlbG5hbWVz cGFjZSA9IG5wZy5vaWQKKyAgICAgICAgICBBTkQgZS5wZ2VwZ2lkID0gcGcub2lkCisgICAgICAg ICAgQU5EIGVsLnBnZWxlbGlkID0gZS5vaWQKKyAgICAgICAgICBBTkQgZWwucGdlbGxhYmVsaWQg PSBsLm9pZAorICAgICAgICAgIEFORCBwZy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5EIChO T1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19o YXNfcm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJs ZV9wcml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdfZWxl bWVudF90YWJsZV9sYWJlbHMgVE8gUFVCTElDOworCisKKy8qCisgKiAxNS45CisgKiBQR19FTEVN RU5UX1RBQkxFX1BST1BFUlRJRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2VsZW1lbnRf dGFibGVfcHJvcGVydGllcyBBUworICAgIFNFTEVDVCBESVNUSU5DVAorICAgICAgICAgICBDQVNU KGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhf Y2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChucGcubnNwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikg QVMgcHJvcGVydHlfZ3JhcGhfc2NoZW1hLAorICAgICAgICAgICBDQVNUKHBnLnJlbG5hbWUgQVMg c3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX25hbWUsCisgICAgICAgICAgIENBU1Qo ZS5wZ2VhbGlhcyBBUyBzcWxfaWRlbnRpZmllcikgQVMgZWxlbWVudF90YWJsZV9hbGlhcywKKyAg ICAgICAgICAgQ0FTVChwci5wZ3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9u YW1lLAorICAgICAgICAgICBDQVNUKHBnX2dldF9leHByKHBscC5wbHBleHByLCBlLnBnZXJlbGlk KSBBUyBjaGFyYWN0ZXJfZGF0YSkgQVMgcHJvcGVydHlfZXhwcmVzc2lvbgorICAgIEZST00gcGdf bmFtZXNwYWNlIG5wZywgcGdfY2xhc3MgcGcsIHBnX3Byb3BncmFwaF9lbGVtZW50IGUsIHBnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsIGVsLCBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxw LCBwZ19wcm9wZ3JhcGhfcHJvcGVydHkgcHIKKyAgICBXSEVSRSBwZy5yZWxuYW1lc3BhY2UgPSBu cGcub2lkCisgICAgICAgICAgQU5EIGUucGdlcGdpZCA9IHBnLm9pZAorICAgICAgICAgIEFORCBl bC5wZ2VsZWxpZCA9IGUub2lkCisgICAgICAgICAgQU5EIHBscC5wbHBlbGxhYmVsaWQgPSBlbC5v aWQKKyAgICAgICAgICBBTkQgcHIub2lkID0gcGxwLnBscHByb3BpZAorICAgICAgICAgIEFORCBw Zy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5EIChOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hl bWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShwZy5yZWxvd25lciwgJ1VT QUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJsZV9wcml2aWxlZ2UocGcub2lkLCAnU0VM RUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdfZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzIFRP IFBVQkxJQzsKKworCisvKgorICogMTUuMTAKKyAqIFBHX0VMRU1FTlRfVEFCTEVTIHZpZXcKKyAq LworCitDUkVBVEUgVklFVyBwZ19lbGVtZW50X3RhYmxlcyBBUworICAgIFNFTEVDVCBDQVNUKGN1 cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0 YWxvZywKKyAgICAgICAgICAgQ0FTVChucGcubnNwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMg cHJvcGVydHlfZ3JhcGhfc2NoZW1hLAorICAgICAgICAgICBDQVNUKHBnLnJlbG5hbWUgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX25hbWUsCisgICAgICAgICAgIENBU1QoZS5w Z2VhbGlhcyBBUyBzcWxfaWRlbnRpZmllcikgQVMgZWxlbWVudF90YWJsZV9hbGlhcywKKyAgICAg ICAgICAgQ0FTVChDQVNFIGUucGdla2luZCBXSEVOICdlJyBUSEVOICdFREdFJyBXSEVOICd2JyBU SEVOICdWRVJURVgnIEVORCBBUyBjaGFyYWN0ZXJfZGF0YSkgQVMgZWxlbWVudF90YWJsZV9raW5k LAorICAgICAgICAgICBDQVNUKGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikg QVMgdGFibGVfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChudC5uc3BuYW1lIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyB0YWJsZV9zY2hlbWEsCisgICAgICAgICAgIENBU1QodC5yZWxuYW1lIEFTIHNx bF9pZGVudGlmaWVyKSBBUyB0YWJsZV9uYW1lLAorICAgICAgICAgICBDQVNUKE5VTEwgQVMgY2hh cmFjdGVyX2RhdGEpIEFTIGVsZW1lbnRfdGFibGVfZGVmaW5pdGlvbgorICAgIEZST00gcGdfbmFt ZXNwYWNlIG5wZywgcGdfY2xhc3MgcGcsIHBnX3Byb3BncmFwaF9lbGVtZW50IGUsIHBnX2NsYXNz IHQsIHBnX25hbWVzcGFjZSBudAorICAgIFdIRVJFIHBnLnJlbG5hbWVzcGFjZSA9IG5wZy5vaWQK KyAgICAgICAgICBBTkQgZS5wZ2VwZ2lkID0gcGcub2lkCisgICAgICAgICAgQU5EIGUucGdlcmVs aWQgPSB0Lm9pZAorICAgICAgICAgIEFORCB0LnJlbG5hbWVzcGFjZSA9IG50Lm9pZAorICAgICAg ICAgIEFORCBwZy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5EIChOT1QgcGdfaXNfb3RoZXJf dGVtcF9zY2hlbWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShwZy5yZWxv d25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJsZV9wcml2aWxlZ2UocGcu b2lkLCAnU0VMRUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdfZWxlbWVudF90YWJsZXMgVE8g UFVCTElDOworCisKKy8qCisgKiAxNS4xMQorICogUEdfTEFCRUxfUFJPUEVSVElFUyB2aWV3Cisg Ki8KKworQ1JFQVRFIFZJRVcgcGdfbGFiZWxfcHJvcGVydGllcyBBUworICAgIFNFTEVDVCBESVNU SU5DVAorICAgICAgICAgICBDQVNUKGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmll cikgQVMgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChucGcubnNwbmFt ZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfc2NoZW1hLAorICAgICAgICAg ICBDQVNUKHBnLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX25h bWUsCisgICAgICAgICAgIENBU1QobC5wZ2xsYWJlbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgbGFi ZWxfbmFtZSwKKyAgICAgICAgICAgQ0FTVChwci5wZ3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBB UyBwcm9wZXJ0eV9uYW1lCisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbnBnLCBwZ19jbGFzcyBwZywg cGdfcHJvcGdyYXBoX2VsZW1lbnQgZSwgcGdfcHJvcGdyYXBoX2xhYmVsIGwsIHBnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsIGVsLCBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxwLCBwZ19w cm9wZ3JhcGhfcHJvcGVydHkgcHIKKyAgICBXSEVSRSBwZy5yZWxuYW1lc3BhY2UgPSBucGcub2lk CisgICAgICAgICAgQU5EIGUucGdlcGdpZCA9IHBnLm9pZAorICAgICAgICAgIEFORCBlbC5wZ2Vs ZWxpZCA9IGUub2lkCisgICAgICAgICAgQU5EIHBscC5wbHBlbGxhYmVsaWQgPSBlbC5vaWQKKyAg ICAgICAgICBBTkQgcHIub2lkID0gcGxwLnBscHByb3BpZAorICAgICAgICAgIEFORCBlbC5wZ2Vs bGFiZWxpZCA9IGwub2lkCisgICAgICAgICAgQU5EIHBnLnJlbGtpbmQgPSAnZycKKyAgICAgICAg ICBBTkQgKE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShucGcub2lkKSkKKyAgICAgICAgICBB TkQgKHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1Ig aGFzX3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBP TiBwZ19sYWJlbF9wcm9wZXJ0aWVzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTIKKyAqIFBH X0xBQkVMUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfbGFiZWxzIEFTCisgICAgU0VMRUNU IENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9n cmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFt ZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAg Q0FTVChsLnBnbGxhYmVsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBsYWJlbF9uYW1lCisgICAgRlJP TSBwZ19uYW1lc3BhY2UgbnBnLCBwZ19jbGFzcyBwZywgcGdfcHJvcGdyYXBoX2xhYmVsIGwKKyAg ICBXSEVSRSBwZy5yZWxuYW1lc3BhY2UgPSBucGcub2lkCisgICAgICAgICAgQU5EIGwucGdscGdp ZCA9IHBnLm9pZAorICAgICAgICAgIEFORCBwZy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5E IChOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChw Z19oYXNfcm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190 YWJsZV9wcml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdf bGFiZWxzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTMKKyAqIFBHX1BST1BFUlRZX0RBVEFf VFlQRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX3Byb3BlcnR5X2RhdGFfdHlwZXMgQVMK KyAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFT IHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMg c3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FT VChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAor ICAgICAgICAgICBDQVNUKHBncC5wZ3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0 eV9uYW1lLAorCisgICAgICAgICAgIENBU1QoCisgICAgICAgICAgICAgQ0FTRSBXSEVOIHQudHlw dHlwZSA9ICdkJyBUSEVOCisgICAgICAgICAgICAgICBDQVNFIFdIRU4gYnQudHlwZWxlbSA8PiAw IEFORCBidC50eXBsZW4gPSAtMSBUSEVOICdBUlJBWScKKyAgICAgICAgICAgICAgICAgICAgV0hF TiBuYnQubnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBUSEVOIGZvcm1hdF90eXBlKHQudHlwYmFzZXR5 cGUsIG51bGwpCisgICAgICAgICAgICAgICAgICAgIEVMU0UgJ1VTRVItREVGSU5FRCcgRU5ECisg ICAgICAgICAgICAgRUxTRQorICAgICAgICAgICAgICAgQ0FTRSBXSEVOIHQudHlwZWxlbSA8PiAw IEFORCB0LnR5cGxlbiA9IC0xIFRIRU4gJ0FSUkFZJworICAgICAgICAgICAgICAgICAgICBXSEVO IG50Lm5zcG5hbWUgPSAncGdfY2F0YWxvZycgVEhFTiBmb3JtYXRfdHlwZShwZ3AucGdwdHlwaWQs IG51bGwpCisgICAgICAgICAgICAgICAgICAgIEVMU0UgJ1VTRVItREVGSU5FRCcgRU5ECisgICAg ICAgICAgICAgRU5ECisgICAgICAgICAgICAgQVMgY2hhcmFjdGVyX2RhdGEpCisgICAgICAgICAg ICAgQVMgZGF0YV90eXBlLAorCisgICAgICAgICAgIENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1i ZXIpIEFTIGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCwKKyAgICAgICAgICAgQ0FTVChudWxsIEFT IGNhcmRpbmFsX251bWJlcikgQVMgY2hhcmFjdGVyX29jdGV0X2xlbmd0aCwKKyAgICAgICAgICAg Q0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjaGFyYWN0ZXJfc2V0X2NhdGFsb2csCisg ICAgICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY2hhcmFjdGVyX3NldF9z Y2hlbWEsCisgICAgICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY2hhcmFj dGVyX3NldF9uYW1lLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFT IGNvbGxhdGlvbl9jYXRhbG9nLCAtLSBGSVhNRQorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9zY2hlbWEsIC0tIEZJWE1FCisgICAgICAgICAgIENB U1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX25hbWUsIC0tIEZJWE1FCisg ICAgICAgICAgIENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNfcHJlY2lz aW9uLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBudW1lcmlj X3ByZWNpc2lvbl9yYWRpeCwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJl cikgQVMgbnVtZXJpY19zY2FsZSwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251 bWJlcikgQVMgZGF0ZXRpbWVfcHJlY2lzaW9uLAorICAgICAgICAgICBDQVNUKG51bGwgQVMgY2hh cmFjdGVyX2RhdGEpIEFTIGludGVydmFsX3R5cGUsCisgICAgICAgICAgIENBU1QobnVsbCBBUyBj YXJkaW5hbF9udW1iZXIpIEFTIGludGVydmFsX3ByZWNpc2lvbiwKKworICAgICAgICAgICBDQVNU KGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdXNlcl9kZWZpbmVkX3R5 cGVfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChjb2FsZXNjZShuYnQubnNwbmFtZSwgbnQubnNw bmFtZSkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHVzZXJfZGVmaW5lZF90eXBlX3NjaGVtYSwKKyAg ICAgICAgICAgQ0FTVChjb2FsZXNjZShidC50eXBuYW1lLCB0LnR5cG5hbWUpIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyB1c2VyX2RlZmluZWRfdHlwZV9uYW1lLAorCisgICAgICAgICAgIENBU1QobnVs bCBBUyBzcWxfaWRlbnRpZmllcikgQVMgc2NvcGVfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChu dWxsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBzY29wZV9zY2hlbWEsCisgICAgICAgICAgIENBU1Qo bnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgc2NvcGVfbmFtZSwKKworICAgICAgICAgICBDQVNU KG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBtYXhpbXVtX2NhcmRpbmFsaXR5LAorICAgICAg ICAgICBDQVNUKHBncC5wZ3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBkdGRfaWRlbnRpZmll cgorCisgICAgRlJPTSBwZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdwCisgICAgICAgICBKT0lOIChw Z19jbGFzcyBwZyBKT0lOIHBnX25hbWVzcGFjZSBucGcgT04gKHBnLnJlbG5hbWVzcGFjZSA9IG5w Zy5vaWQpKSBPTiBwZ3AucGdwcGdpZCA9IHBnLm9pZAorICAgICAgICAgSk9JTiAocGdfdHlwZSB0 IEpPSU4gcGdfbmFtZXNwYWNlIG50IE9OICh0LnR5cG5hbWVzcGFjZSA9IG50Lm9pZCkpIE9OIHBn cC5wZ3B0eXBpZCA9IHQub2lkCisgICAgICAgICBMRUZUIEpPSU4gKHBnX3R5cGUgYnQgSk9JTiBw Z19uYW1lc3BhY2UgbmJ0IE9OIChidC50eXBuYW1lc3BhY2UgPSBuYnQub2lkKSkKKyAgICAgICAg ICAgT04gKHQudHlwdHlwZSA9ICdkJyBBTkQgdC50eXBiYXNldHlwZSA9IGJ0Lm9pZCkKKworICAg IFdIRVJFIHBnLnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5PVCBwZ19pc19vdGhlcl90 ZW1wX3NjaGVtYShucGcub2lkKSkKKyAgICAgICAgICBBTkQgKHBnX2hhc19yb2xlKHBnLnJlbG93 bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxlX3ByaXZpbGVnZShwZy5v aWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19wcm9wZXJ0eV9kYXRhX3R5cGVz IFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTQKKyAqIFBHX1BST1BFUlRZX0dSQVBIX1BSSVZJ TEVHRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX3Byb3BlcnR5X2dyYXBoX3ByaXZpbGVn ZXMgQVMKKyAgICBTRUxFQ1QgQ0FTVCh1X2dyYW50b3Iucm9sbmFtZSBBUyBzcWxfaWRlbnRpZmll cikgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgQ0FTVChncmFudGVlLnJvbG5hbWUgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIGdyYW50ZWUsCisgICAgICAgICAgIENBU1QoY3VycmVudF9kYXRhYmFzZSgp IEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAg ICBDQVNUKG5jLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3Nj aGVtYSwKKyAgICAgICAgICAgQ0FTVChjLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHBy b3BlcnR5X2dyYXBoX25hbWUsCisgICAgICAgICAgIENBU1QoYy5wcnR5cGUgQVMgY2hhcmFjdGVy X2RhdGEpIEFTIHByaXZpbGVnZV90eXBlLAorICAgICAgICAgICBDQVNUKAorICAgICAgICAgICAg IENBU0UgV0hFTgorICAgICAgICAgICAgICAgICAgLS0gb2JqZWN0IG93bmVyIGFsd2F5cyBoYXMg Z3JhbnQgb3B0aW9ucworICAgICAgICAgICAgICAgICAgcGdfaGFzX3JvbGUoZ3JhbnRlZS5vaWQs IGMucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAgICBPUiBjLmdyYW50YWJsZQor ICAgICAgICAgICAgICAgICAgVEhFTiAnWUVTJyBFTFNFICdOTycgRU5EIEFTIHllc19vcl9ubykg QVMgaXNfZ3JhbnRhYmxlCisKKyAgICBGUk9NICgKKyAgICAgICAgICAgIFNFTEVDVCBvaWQsIHJl bG5hbWUsIHJlbG5hbWVzcGFjZSwgcmVsa2luZCwgcmVsb3duZXIsIChhY2xleHBsb2RlKGNvYWxl c2NlKHJlbGFjbCwgYWNsZGVmYXVsdCgncicsIHJlbG93bmVyKSkpKS4qIEZST00gcGdfY2xhc3MK KyAgICAgICAgICkgQVMgYyAob2lkLCByZWxuYW1lLCByZWxuYW1lc3BhY2UsIHJlbGtpbmQsIHJl bG93bmVyLCBncmFudG9yLCBncmFudGVlLCBwcnR5cGUsIGdyYW50YWJsZSksCisgICAgICAgICBw Z19uYW1lc3BhY2UgbmMsCisgICAgICAgICBwZ19hdXRoaWQgdV9ncmFudG9yLAorICAgICAgICAg KAorICAgICAgICAgICBTRUxFQ1Qgb2lkLCByb2xuYW1lIEZST00gcGdfYXV0aGlkCisgICAgICAg ICAgIFVOSU9OIEFMTAorICAgICAgICAgICBTRUxFQ1QgMDo6b2lkLCAnUFVCTElDJworICAgICAg ICAgKSBBUyBncmFudGVlIChvaWQsIHJvbG5hbWUpCisKKyAgICBXSEVSRSBjLnJlbG5hbWVzcGFj ZSA9IG5jLm9pZAorICAgICAgICAgIEFORCBjLnJlbGtpbmQgSU4gKCdnJykKKyAgICAgICAgICBB TkQgYy5ncmFudGVlID0gZ3JhbnRlZS5vaWQKKyAgICAgICAgICBBTkQgYy5ncmFudG9yID0gdV9n cmFudG9yLm9pZAorICAgICAgICAgIEFORCBjLnBydHlwZSBJTiAoJ1NFTEVDVCcpCisgICAgICAg ICAgQU5EIChwZ19oYXNfcm9sZSh1X2dyYW50b3Iub2lkLCAnVVNBR0UnKQorICAgICAgICAgICAg ICAgT1IgcGdfaGFzX3JvbGUoZ3JhbnRlZS5vaWQsICdVU0FHRScpCisgICAgICAgICAgICAgICBP UiBncmFudGVlLnJvbG5hbWUgPSAnUFVCTElDJyk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19wcm9w ZXJ0eV9ncmFwaF9wcml2aWxlZ2VzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTUKKyAqIFBH X1ZFUlRFWF9ERUZJTkVEX0xBQkVMX1NFVFMgdmlldworICovCisKKy0tIFRPRE8KKworCisvKgor ICogMTUuMTYKKyAqIFBST1BFUlRZX0dSQVBIUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcHJv cGVydHlfZ3JhcGhzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNx bF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNU KG5jLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwK KyAgICAgICAgICAgQ0FTVChjLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5 X2dyYXBoX25hbWUKKyAgICBGUk9NIHBnX25hbWVzcGFjZSBuYywgcGdfY2xhc3MgYworICAgIFdI RVJFIGMucmVsbmFtZXNwYWNlID0gbmMub2lkCisgICAgICAgICAgQU5EIGMucmVsa2luZCA9ICdn JworICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5jLm9pZCkpCisg ICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShjLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAg ICAgICAgT1IgaGFzX3RhYmxlX3ByaXZpbGVnZShjLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQg U0VMRUNUIE9OIHByb3BlcnR5X2dyYXBocyBUTyBQVUJMSUM7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jCmluZGV4IGQ4ZWI4ZDNkZWFhLi42ZWFlZTM0NWFkMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmMKQEAgLTQ3LDYgKzQ3LDExIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wYXJhbWV0ZXJfYWNsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wb2xpY3kuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9l bGVtZW50LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb3BncmFwaF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgiCkBAIC0zNzAsNiArMzc1LDc2IEBAIHN0 YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJCU9CSkVD VF9PUEZBTUlMWSwKIAkJdHJ1ZQogCX0sCisJeworCQkicHJvcGVydHkgZ3JhcGggZWxlbWVudCIs CisJCVByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkLAorCQlQcm9wZ3JhcGhFbGVtZW50T2JqZWN0 SW5kZXhJZCwKKwkJUFJPUEdSQVBIRUxPSUQsCisJCVBST1BHUkFQSEVMQUxJQVMsCisJCUFudW1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfb2lkLAorCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3Bn ZWFsaWFzLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUlu dmFsaWRBdHRyTnVtYmVyLAorCQktMSwKKwkJZmFsc2UKKwl9LAorCXsKKwkJInByb3BlcnR5IGdy YXBoIGVsZW1lbnQgbGFiZWwiLAorCQlQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLAor CQlQcm9wZ3JhcGhFbGVtZW50TGFiZWxPYmplY3RJbmRleElkLAorCQktMSwKKwkJLTEsCisJCUFu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0 ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJCSJwcm9wZXJ0eSBncmFwaCBsYWJl bCIsCisJCVByb3BncmFwaExhYmVsUmVsYXRpb25JZCwKKwkJUHJvcGdyYXBoTGFiZWxPYmplY3RJ bmRleElkLAorCQlQUk9QR1JBUEhMQUJFTE9JRCwKKwkJUFJPUEdSQVBITEFCRUxOQU1FLAorCQlB bnVtX3BnX3Byb3BncmFwaF9sYWJlbF9vaWQsCisJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Bn bGxhYmVsLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUlu dmFsaWRBdHRyTnVtYmVyLAorCQktMSwKKwkJZmFsc2UKKwl9LAorCXsKKwkJInByb3BlcnR5IGdy YXBoIGxhYmVsIHByb3BlcnR5IiwKKwkJUHJvcGdyYXBoTGFiZWxQcm9wZXJ0eVJlbGF0aW9uSWQs CisJCVByb3BncmFwaExhYmVsUHJvcGVydHlPYmplY3RJbmRleElkLAorCQktMSwKKwkJLTEsCisJ CUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X29pZCwKKwkJSW52YWxpZEF0dHJOdW1i ZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxp ZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJeworCQkicHJvcGVydHkgZ3JhcGgg cHJvcGVydHkiLAorCQlQcm9wZ3JhcGhQcm9wZXJ0eVJlbGF0aW9uSWQsCisJCVByb3BncmFwaFBy b3BlcnR5T2JqZWN0SW5kZXhJZCwKKwkJLTEsCisJCVBST1BHUkFQSFBST1BOQU1FLAorCQlBbnVt X3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQsCisJCUFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5 X3BncG5hbWUsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJ SW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCiAJewogCQkicm9sZSIsCiAJ CUF1dGhJZFJlbGF0aW9uSWQsCkBAIC02NzksNiArNzU0LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBvYmplY3RfdHlwZV9tYXAKIAl7CiAJCSJmb3JlaWduIHRhYmxlIiwgT0JKRUNUX0ZPUkVJR05f VEFCTEUKIAl9LAorCXsKKwkJInByb3BlcnR5IGdyYXBoIiwgT0JKRUNUX1BST1BHUkFQSAorCX0s CiAJewogCQkidGFibGUgY29sdW1uIiwgT0JKRUNUX0NPTFVNTgogCX0sCkBAIC04MTQsNiArODky LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkicG9saWN5 IiwgT0JKRUNUX1BPTElDWQogCX0sCisJeworCQkicHJvcGVydHkgZ3JhcGggZWxlbWVudCIsIC0x CisJfSwKKwl7CisJCSJwcm9wZXJ0eSBncmFwaCBsYWJlbCIsIC0xCisJfSwKKwl7CisJCSJwcm9w ZXJ0eSBncmFwaCBwcm9wZXJ0eSIsIC0xCisJfSwKIAl7CiAJCSJwdWJsaWNhdGlvbiIsIE9CSkVD VF9QVUJMSUNBVElPTgogCX0sCkBAIC05NDksNiArMTAzNiw3IEBAIGdldF9vYmplY3RfYWRkcmVz cyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCWNhc2UgT0JKRUNUX1ZJRVc6 CiAJCQljYXNlIE9CSkVDVF9NQVRWSUVXOgogCQkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToK KwkJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCQlhZGRyZXNzID0KIAkJCQkJZ2V0X3JlbGF0 aW9uX2J5X3F1YWxpZmllZF9uYW1lKG9ianR5cGUsIGNhc3ROb2RlKExpc3QsIG9iamVjdCksCiAJ CQkJCQkJCQkJCQkgICAmcmVsYXRpb24sIGxvY2ttb2RlLApAQCAtMTM2MSw2ICsxNDQ5LDEzIEBA IGdldF9yZWxhdGlvbl9ieV9xdWFsaWZpZWRfbmFtZShPYmplY3RUeXBlIG9ianR5cGUsIExpc3Qg Km9iamVjdCwKIAkJCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYW4gaW5kZXgiLAogCQkJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpKSk7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0g UkVMS0lORF9QUk9QR1JBUEgpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVS UkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBh IHByb3BlcnR5IGdyYXBoIiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRp b24pKSkpOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgogCQkJaWYgKHJlbGF0 aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSkKIAkJCQllcmVwb3J0KEVS Uk9SLApAQCAtMjI3Niw2ICsyMzcxLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNU SU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JKRUNUX0lOREVYOgog CQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJ CWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9C SkVDVF9DT0xMQVRJT046CkBAIC0yMzk1LDYgKzI0OTEsNyBAQCBjaGVja19vYmplY3Rfb3duZXJz aGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNz LAogCQljYXNlIE9CSkVDVF9WSUVXOgogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgogCQljYXNlIE9C SkVDVF9GT1JFSUdOX1RBQkxFOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCWNhc2UgT0JK RUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfUlVMRToKIAkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoK QEAgLTM5NjYsNiArNDA2MywxODIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJ Y2FzZSBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVw OworCQkJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQgcGdlZm9ybTsKKworCQkJCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICV1IiwK KwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXBnZWZvcm0gPSAoRm9ybV9wZ19wcm9w Z3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAocGdlZm9ybS0+cGdla2lu ZCA9PSBQR0VLSU5EX1ZFUlRFWCkKKwkJCQkJLyogdHJhbnNsYXRvcjogZm9sbG93ZWQgYnksIGUu Zy4sICJwcm9wZXJ0eSBncmFwaCAlcyIgKi8KKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LCBfKCJ2ZXJ0ZXggJXMgb2YgIiksIE5hbWVTdHIocGdlZm9ybS0+cGdlYWxpYXMpKTsKKwkJCQll bHNlIGlmIChwZ2Vmb3JtLT5wZ2VraW5kID09IFBHRUtJTkRfRURHRSkKKwkJCQkJLyogdHJhbnNs YXRvcjogZm9sbG93ZWQgYnksIGUuZy4sICJwcm9wZXJ0eSBncmFwaCAlcyIgKi8KKwkJCQkJYXBw ZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJlZGdlICVzIG9mICIpLCBOYW1lU3RyKHBnZWZvcm0t PnBnZWFsaWFzKSk7CisJCQkJZWxzZQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICI/ Pz8gZWxlbWVudCAlcyBvZiAiLCBOYW1lU3RyKHBnZWZvcm0tPnBnZWFsaWFzKSk7CisJCQkJZ2V0 UmVsYXRpb25EZXNjcmlwdGlvbigmYnVmZmVyLCBwZ2Vmb3JtLT5wZ2VwZ2lkLCBmYWxzZSk7CisK KwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIFBy b3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQ6CisJCQl7CisJCQkJUmVsYXRpb24JcmVsOwor CQkJCVN5c1NjYW5EZXNjIHNjYW47CisJCQkJU2NhbktleURhdGEga2V5WzFdOworCQkJCUhlYXBU dXBsZQl0dXBsZTsKKwkJCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHBnZWxmb3Jt OworCQkJCU9iamVjdEFkZHJlc3Mgb2E7CisKKwkJCQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFw aEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJU2NhbktleUlu aXQoJmtleVswXSwKKwkJCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX29pZCwK KwkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJT2JqZWN0SWRH ZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisKKwkJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5z Y2FuKHJlbCwgUHJvcGdyYXBoRWxlbWVudExhYmVsT2JqZWN0SW5kZXhJZCwgdHJ1ZSwgTlVMTCwg MSwga2V5KTsKKwkJCQl0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Nhbik7CisJCQkJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJ CQkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZmluZCB0dXBsZSBmb3IgZWxlbWVudCBsYWJlbCAl dSIsIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJ CQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJ fQorCisJCQkJcGdlbGZvcm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCkgR0VU U1RSVUNUKHR1cGxlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygibGFiZWwg JXMgb2YgIiksIGdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShwZ2VsZm9ybS0+cGdlbGxhYmVsaWQp KTsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9hLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwg cGdlbGZvcm0tPnBnZWxlbGlkKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIs IGdldE9iamVjdERlc2NyaXB0aW9uKCZvYSwgZmFsc2UpKTsKKworCQkJCXN5c3RhYmxlX2VuZHNj YW4oc2Nhbik7CisJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCWJy ZWFrOworCQkJfQorCisJCWNhc2UgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkOgorCQkJeworCQkJ CVJlbGF0aW9uCXJlbDsKKwkJCQlTeXNTY2FuRGVzYyBzY2FuOworCQkJCVNjYW5LZXlEYXRhIGtl eVsxXTsKKwkJCQlIZWFwVHVwbGUJdHVwbGU7CisJCQkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwg cGdsZm9ybTsKKworCQkJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklk LCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCVNjYW5LZXlJbml0KCZrZXlbMF0sCisJCQkJCQkJQW51 bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLAorCQkJCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwg Rl9PSURFUSwKKwkJCQkJCQlPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwor CQkJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBQcm9wZ3JhcGhMYWJlbE9iamVjdElu ZGV4SWQsIHRydWUsIE5VTEwsIDEsIGtleSk7CisJCQkJdHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0 KHNjYW4pOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCQkJeworCQkJCQlp ZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY291bGQgbm90IGZpbmQgdHVwbGUg Zm9yIGxhYmVsICV1Iiwgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQkJc3lzdGFibGVfZW5kc2Nh bihzY2FuKTsKKwkJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCQli cmVhazsKKwkJCQl9CisKKwkJCQlwZ2xmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsKSBH RVRTVFJVQ1QodHVwbGUpOworCisJCQkJLyogdHJhbnNsYXRvcjogZm9sbG93ZWQgYnksIGUuZy4s ICJwcm9wZXJ0eSBncmFwaCAlcyIgKi8KKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8o ImxhYmVsICVzIG9mICIpLCBOYW1lU3RyKHBnbGZvcm0tPnBnbGxhYmVsKSk7CisJCQkJZ2V0UmVs YXRpb25EZXNjcmlwdGlvbigmYnVmZmVyLCBwZ2xmb3JtLT5wZ2xwZ2lkLCBmYWxzZSk7CisKKwkJ CQlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIFByb3BncmFwaExhYmVsUHJvcGVy dHlSZWxhdGlvbklkOgorCQkJeworCQkJCVJlbGF0aW9uCXJlbDsKKwkJCQlTeXNTY2FuRGVzYyBz Y2FuOworCQkJCVNjYW5LZXlEYXRhIGtleVsxXTsKKwkJCQlIZWFwVHVwbGUJdHVwbGU7CisJCQkJ Rm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxwZm9ybTsKKwkJCQlPYmplY3RBZGRy ZXNzIG9hOworCisJCQkJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhMYWJlbFByb3BlcnR5UmVs YXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJ CQkJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X29pZCwKKwkJCQkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShvYmplY3Qt Pm9iamVjdElkKSk7CisKKwkJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdy YXBoTGFiZWxQcm9wZXJ0eU9iamVjdEluZGV4SWQsIHRydWUsIE5VTEwsIDEsIGtleSk7CisJCQkJ dHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXBsZSkpCisJCQkJeworCQkJCQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9S LCAiY291bGQgbm90IGZpbmQgdHVwbGUgZm9yIGxhYmVsIHByb3BlcnR5ICV1Iiwgb2JqZWN0LT5v YmplY3RJZCk7CisKKwkJCQkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQkJdGFibGVfY2xv c2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQlwbHBm b3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5KSBHRVRTVFJVQ1QodHVwbGUp OworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwcm9wZXJ0eSAlcyBvZiAiKSwg Z2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCkpOworCQkJCU9i amVjdEFkZHJlc3NTZXQob2EsIFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIHBscGZv cm0tPnBscGVsbGFiZWxpZCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCBn ZXRPYmplY3REZXNjcmlwdGlvbigmb2EsIGZhbHNlKSk7CisKKwkJCQlzeXN0YWJsZV9lbmRzY2Fu KHNjYW4pOworCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQlicmVh azsKKwkJCX0KKworCQljYXNlIFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZDoKKwkJCXsKKwkJ CQlSZWxhdGlvbglyZWw7CisJCQkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJCQlTY2FuS2V5RGF0YSBr ZXlbMV07CisJCQkJSGVhcFR1cGxlCXR1cGxlOworCQkJCUZvcm1fcGdfcHJvcGdyYXBoX3Byb3Bl cnR5IHBncGZvcm07CisKKwkJCQlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaFByb3BlcnR5UmVs YXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJ CQkJCUFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCwKKwkJCQkJCQlCVEVxdWFsU3RyYXRl Z3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVj dElkKSk7CisKKwkJCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdyYXBoUHJv cGVydHlPYmplY3RJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkpOworCQkJCXR1cGxlID0gc3lz dGFibGVfZ2V0bmV4dChzY2FuKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQor CQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5v dCBmaW5kIHR1cGxlIGZvciBwcm9wZXJ0eSAldSIsIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJ CXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJcGdwZm9ybSA9IChGb3JtX3BnX3By b3BncmFwaF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQkJCS8qIHRyYW5zbGF0b3I6 IGZvbGxvd2VkIGJ5LCBlLmcuLCAicHJvcGVydHkgZ3JhcGggJXMiICovCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJwcm9wZXJ0eSAlcyBvZiAiKSwgTmFtZVN0cihwZ3Bmb3JtLT5w Z3BuYW1lKSk7CisJCQkJZ2V0UmVsYXRpb25EZXNjcmlwdGlvbigmYnVmZmVyLCBwZ3Bmb3JtLT5w Z3BwZ2lkLCBmYWxzZSk7CisKKwkJCQlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCXRhYmxl X2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNl IFB1YmxpY2F0aW9uUmVsYXRpb25JZDoKIAkJCXsKIAkJCQljaGFyCSAgICpwdWJuYW1lID0gZ2V0 X3B1YmxpY2F0aW9uX25hbWUob2JqZWN0LT5vYmplY3RJZCwKQEAgLTQxNTEsNiArNDQyNCwxMCBA QCBnZXRSZWxhdGlvbkRlc2NyaXB0aW9uKFN0cmluZ0luZm8gYnVmZmVyLCBPaWQgcmVsaWQsIGJv b2wgbWlzc2luZ19vaykKIAkJCWFwcGVuZFN0cmluZ0luZm8oYnVmZmVyLCBfKCJmb3JlaWduIHRh YmxlICVzIiksCiAJCQkJCQkJIHJlbG5hbWUpOwogCQkJYnJlYWs7CisJCWNhc2UgUkVMS0lORF9Q Uk9QR1JBUEg6CisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZmZlciwgXygicHJvcGVydHkgZ3JhcGgg JXMiKSwKKwkJCQkJCQkgcmVsbmFtZSk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNo b3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJYXBwZW5kU3RyaW5nSW5mbyhidWZmZXIsIF8oInJlbGF0 aW9uICVzIiksCkBAIC00NjQwLDYgKzQ5MTcsMTggQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAicG9saWN5Iik7CiAJCQlicmVhazsKIAorCQljYXNl IFByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmZmVyLCAicHJvcGVydHkgZ3JhcGggZWxlbWVudCIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQ cm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZm ZXIsICJwcm9wZXJ0eSBncmFwaCBsYWJlbCIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQcm9wZ3Jh cGhQcm9wZXJ0eVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIs ICJwcm9wZXJ0eSBncmFwaCBwcm9wZXJ0eSIpOworCQkJYnJlYWs7CisKIAkJY2FzZSBQdWJsaWNh dGlvblJlbGF0aW9uSWQ6CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJwdWJs aWNhdGlvbiIpOwogCQkJYnJlYWs7CkBAIC00NzIxLDYgKzUwMTAsOSBAQCBnZXRSZWxhdGlvblR5 cGVEZXNjcmlwdGlvbihTdHJpbmdJbmZvIGJ1ZmZlciwgT2lkIHJlbGlkLCBpbnQzMiBvYmplY3RT dWJJZCwKIAkJY2FzZSBSRUxLSU5EX0ZPUkVJR05fVEFCTEU6CiAJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZmZlciwgImZvcmVpZ24gdGFibGUiKTsKIAkJCWJyZWFrOworCQljYXNlIFJFTEtJ TkRfUFJPUEdSQVBIOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWZmZXIsICJwcm9wZXJ0 eSBncmFwaCIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhl cmUgKi8KIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmZmVyLCAicmVsYXRpb24iKTsKQEAg LTU4ODEsNiArNjE3MywxOCBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFk ZHJlc3MgKm9iamVjdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFByb3BncmFwaEVsZW1l bnRSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXUgVE9ETyIsIG9i amVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKKwkJY2FzZSBQcm9wZ3JhcGhMYWJlbFJlbGF0 aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIldSBUT0RPIiwgb2JqZWN0LT5v YmplY3RJZCk7CisJCQlicmVhazsKKworCQljYXNlIFByb3BncmFwaFByb3BlcnR5UmVsYXRpb25J ZDoKKwkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiV1IFRPRE8iLCBvYmplY3QtPm9iamVj dElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgUHVibGljYXRpb25SZWxhdGlvbklkOgogCQkJewog CQkJCWNoYXIJICAgKnB1Ym5hbWU7CkBAIC02MTg3LDYgKzY0OTEsOCBAQCBnZXRfcmVsa2luZF9v Ymp0eXBlKGNoYXIgcmVsa2luZCkKIAkJCXJldHVybiBPQkpFQ1RfTUFUVklFVzsKIAkJY2FzZSBS RUxLSU5EX0ZPUkVJR05fVEFCTEU6CiAJCQlyZXR1cm4gT0JKRUNUX0ZPUkVJR05fVEFCTEU7CisJ CWNhc2UgUkVMS0lORF9QUk9QR1JBUEg6CisJCQlyZXR1cm4gT0JKRUNUX1BST1BHUkFQSDsKIAkJ Y2FzZSBSRUxLSU5EX1RPQVNUVkFMVUU6CiAJCQlyZXR1cm4gT0JKRUNUX1RBQkxFOwogCQlkZWZh dWx0OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jbGFzcy5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jbGFzcy5jCmluZGV4IDE4ZWVjYmRmYzA2Li45ZGVmNjE4ZjU5YSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jbGFzcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY2xhc3MuYwpAQCAtNDUsNiArNDUsOCBAQCBlcnJkZXRhaWxfcmVsa2lu ZF9ub3Rfc3VwcG9ydGVkKGNoYXIgcmVsa2luZCkKIAkJCXJldHVybiBlcnJkZXRhaWwoIlRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcy4iKTsKIAkJ Y2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX0lOREVYOgogCQkJcmV0dXJuIGVycmRldGFpbCgiVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGFydGl0aW9uZWQgaW5kZXhlcy4iKTsK KwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCXJldHVybiBlcnJkZXRhaWwoIlRoaXMgb3Bl cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHByb3BlcnR5IGdyYXBocy4iKTsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgcmVsa2luZDogJyVjJyIsIHJlbGtpbmQp OwogCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0 dXJlcy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggMmYy NTBkMmM1N2IuLjI0YWJlM2RiMDQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Nx bF9mZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0 CkBAIC0zNDgsNiArMzQ4LDEwNiBAQCBGODY2CUZFVENIIEZJUlNUIGNsYXVzZTogUEVSQ0VOVCBv cHRpb24JCQlOTwogRjg2NwlGRVRDSCBGSVJTVCBjbGF1c2U6IFdJVEggVElFUyBvcHRpb24JCQlZ RVMJCiBGODY4CU9SREVSIEJZIGluIGdyb3VwZWQgdGFibGUJCQlZRVMJCiBGODY5CVNRTCBpbXBs ZW1lbnRhdGlvbiBpbmZvIHBvcHVsYXRpb24JCQlZRVMJCitHMDAwCUdyYXBoIHBhdHRlcm4JCQlZ RVMJU1FML1BHUSByZXF1aXJlZAorRzAwMQlSZXBlYXRhYmxlLWVsZW1lbnRzIG1hdGNoIG1vZGUJ CQlZRVMJU1FML1BHUSByZXF1aXJlZAorRzAwMglEaWZmZXJlbnQtZWRnZXMgbWF0Y2ggbW9kZQkJ CU5PCQorRzAwMwlFeHBsaWNpdCBSRVBFQVRBQkxFIEVMRU1FTlRTIGtleXdvcmQJCQlOTwkKK0cw MDQJUGF0aCB2YXJpYWJsZXMJCQlOTwkKK0cwMDUJUGF0aCBzZWFyY2ggcHJlZml4IGluIGEgcGF0 aCBwYXR0ZXJuCQkJTk8JCitHMDA2CUdyYXBoIHBhdHRlcm4gS0VFUCBjbGF1c2U6IHBhdGggbW9k ZSBwcmVmaXgJCQlOTwkKK0cwMDcJR3JhcGggcGF0dGVybiBLRUVQIGNsYXVzZTogcGF0aCBzZWFy Y2ggcHJlZml4CQkJTk8JCitHMDA4CUdyYXBoIHBhdHRlcm4gV0hFUkUgY2xhdXNlCQkJWUVTCVNR TC9QR1EgcmVxdWlyZWQKK0cwMTAJRXhwbGljaXQgV0FMSyBrZXl3b3JkCQkJTk8JCitHMDExCUFk dmFuY2VkIHBhdGggbW9kZXM6IFRSQUlMCQkJTk8JCitHMDEyCUFkdmFuY2VkIHBhdGggbW9kZXM6 IFNJTVBMRQkJCU5PCQorRzAxMwlBZHZhbmNlZCBwYXRoIG1vZGVzOiBBQ1lDTElDCQkJTk8JCitH MDE0CUV4cGxpY2l0IFBBVEgvUEFUSFMga2V5d29yZHMJCQlOTwkKK0cwMTUJQWxsIHBhdGggc2Vh cmNoOiBleHBsaWNpdCBBTEwga2V5d29yZAkJCU5PCQorRzAxNglBbnkgcGF0aCBzZWFyY2gJCQlO TwkKK0cwMTcJQWxsIHNob3J0ZXN0IHBhdGggc2VhcmNoCQkJTk8JCitHMDE4CUFueSBzaG9ydGVz dCBwYXRoIHNlYXJjaAkJCU5PCQorRzAxOQlDb3VudGVkIHNob3J0ZXN0IHBhdGggc2VhcmNoCQkJ Tk8JCitHMDIwCUNvdW50ZWQgc2hvcnRlc3QgZ3JvdXAgc2VhcmNoCQkJTk8JCitHMDMwCVBhdGgg bXVsdGlzZXQgYWx0ZXJuYXRpb24JCQlOTwkKK0cwMzEJUGF0aCBtdWx0aXNldCBhbHRlcm5hdGlv bjogdmFyaWFibGUgbGVuZ3RoIHBhdGggb3BlcmFuZHMJCQlOTwkKK0cwMzIJUGF0aCBwYXR0ZXJu IHVuaW9uCQkJTk8JCitHMDMzCVBhdGggcGF0dGVybiB1bmlvbjogdmFyaWFibGUgbGVuZ3RoIHBh dGggb3BlcmFuZHMJCQlOTwkKK0cwMzQJUGF0aCBjb25jYXRlbmF0aW9uCQkJWUVTCVNRTC9QR1Eg cmVxdWlyZWQKK0cwMzUJUXVhbnRpZmllZCBwYXRocwkJCU5PCQorRzAzNglRdWFudGlmaWVkIGVk Z2VzCQkJTk8JCitHMDM3CVF1ZXN0aW9uZWQgcGF0aHMJCQlOTwkKK0cwMzgJUGFyZW50aGVzaXpl ZCBwYXRoIHBhdHRlcm4gZXhwcmVzc2lvbgkJCU5PCQorRzAzOQlTaW1wbGlmaWVkIHBhdGggcGF0 dGVybiBleHByZXNzaW9uOiBmdWxsIGRlZmF1bHRpbmcJCQlOTwkKK0cwNDAJVmVydGV4IHBhdHRl cm4JCQlZRVMJU1FML1BHUSByZXF1aXJlZAorRzA0MQlOb24tbG9jYWwgZWxlbWVudCBwYXR0ZXJu IHByZWRpY2F0ZXMJCQlOTwkKK0cwNDIJQmFzaWMgZnVsbCBlZGdlIHBhdHRlcm5zCQkJWUVTCVNR TC9QR1EgcmVxdWlyZWQKK0cwNDMJQ29tcGxldGUgZnVsbCBlZGdlIHBhdHRlcm5zCQkJTk8JCitH MDQ0CUJhc2ljIGFiYnJldmlhdGVkIGVkZ2UgcGF0dGVybnMJCQlZRVMJCitHMDQ1CUNvbXBsZXRl IGFiYnJldmlhdGVkIGVkZ2UgcGF0dGVybnMJCQlOTwkKK0cwNDYJUmVsYXhlZCB0b3BvbG9naWNh bCBjb25zaXN0ZW5jeTogYWRqYWNlbnQgdmVydGV4IHBhdHRlcm5zCQkJTk8JCitHMDQ3CVJlbGF4 ZWQgdG9wb2xvZ2ljYWwgY29uc2lzdGVuY3k6IGNvbmNpc2UgZWRnZSBwYXR0ZXJucwkJCU5PCQor RzA0OAlQYXJlbnRoZXNpemVkIHBhdGggcGF0dGVybjogc3VicGF0aCB2YXJpYWJsZSBkZWNsYXJh dGlvbgkJCU5PCQorRzA0OQlQYXJlbnRoZXNpemVkIHBhdGggcGF0dGVybjogcGF0aCBtb2RlIHBy ZWZpeAkJCU5PCQorRzA1MAlQYXJlbnRoZXNpemVkIHBhdGggcGF0dGVybjogV0hFUkUgY2xhdXNl CQkJTk8JCitHMDUxCVBhcmVudGhlc2l6ZWQgcGF0aCBwYXR0ZXJuOiBub24tbG9jYWwgcHJlZGlj YXRlcwkJCU5PCQorRzA2MAlCb3VuZGVkIGdyYXBoIHBhdHRlcm4gcXVhbnRpZmllcnMJCQlOTwkK K0cwNjEJVW5ib3VuZGVkIGdyYXBoIHBhdHRlcm4gcXVhbnRpZmllcnMJCQlOTwkKK0cwNzAJTGFi ZWwgZXhwcmVzc2lvbjogbGFiZWwgZGlzanVuY3Rpb24JCQlOTwlTUUwvUEdRIHJlcXVpcmVkCitH MDcxCUxhYmVsIGV4cHJlc3Npb246IGxhYmVsIGNvbmp1bmN0aW9uCQkJTk8JCitHMDcyCUxhYmVs IGV4cHJlc3Npb246IGxhYmVsIG5lZ2F0aW9uCQkJTk8JCitHMDczCUxhYmVsIGV4cHJlc3Npb246 IGluZGl2aWR1YWwgbGFiZWwgbmFtZQkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDc0CUxhYmVs IGV4cHJlc3Npb246IHdpbGRjYXJkIGxhYmVsCQkJTk8JCitHMDc1CVBhcmVudGhlc2l6ZWQgbGFi ZWwgZXhwcmVzc2lvbgkJCU5PCQorRzA4MAlTaW1wbGlmaWVkIHBhdGggcGF0dGVybiBleHByZXNz aW9uOiBiYXNpYyBkZWZhdWx0aW5nCQkJTk8JCitHMDgxCVNpbXBsaWZpZWQgcGF0aCBwYXR0ZXJu IGV4cHJlc3Npb246IGZ1bGwgb3ZlcnJpZGVzCQkJTk8JCitHMDgyCVNpbXBsaWZpZWQgcGF0aCBw YXR0ZXJuIGV4cHJlc3Npb246IGJhc2ljIG92ZXJyaWRlcwkJCU5PCQorRzA5MAlQcm9wZXJ0eSBy ZWZlcmVuY2UJCQlZRVMJU1FML1BHUSByZXF1aXJlZAorRzEwMAlFTEVNRU5UX0lEIGZ1bmN0aW9u CQkJTk8JCitHMTEwCUlTIERJUkVDVEVEIHByZWRpY2F0ZQkJCU5PCQorRzExMQlJUyBMQUJFTEVE IHByZWRpY2F0ZQkJCU5PCQorRzExMglJUyBTT1VSQ0UgYW5kIElTIERFU1RJTkFUSU9OIHByZWRp Y2F0ZQkJCU5PCQorRzExMwlBTExfRElGRkVSRU5UIHByZWRpY2F0ZQkJCU5PCQorRzExNAlTQU1F IHByZWRpY2F0ZQkJCU5PCQorRzExNQlQUk9QRVJUWV9FWElTVFMgcHJlZGljYXRlCQkJTk8JCitH MTIwCVdpdGhpbi1tYXRjaCBhZ2dyZWdhdGVzCQkJTk8JCitHODAwCVBBVEhfTkFNRSBmdW5jdGlv bgkJCU5PCQorRzgwMQlFTEVNRU5UX05VTUJFUiBmdW5jdGlvbgkJCU5PCQorRzgwMglQQVRIX0xF TkdUSCBmdW5jdGlvbgkJCU5PCQorRzgwMwlNQVRDSE5VTSBmdW5jdGlvbgkJCU5PCQorRzgxMAlJ UyBCT1VORCBwcmVkaWNhdGUJCQlOTwkKK0c4MTEJSVMgQk9VTkQgcHJlZGljYXRlOiBBUyBvcHRp b24JCQlOTwkKK0c4MjAJQklORElOR19DT1VOVAkJCU5PCQorRzgzMAlDb2xvbiBpbiAnaXMgbGFi ZWwnIGV4cHJlc3Npb24JCQlZRVMJCitHODQwCVBhdGgtb3JkZXJlZCBhZ2dyZWdhdGVzCQkJTk8J CitHODUwCVNRTC9QR1EgSW5mb3JtYXRpb24gU2NoZW1hIHZpZXdzCQkJWUVTCQorRzg2MAlHRVQg RElBR05PU1RJQ1MgZW5oYW5jZW1lbnRzIGZvciBTUUwtcHJvcGVydHkgZ3JhcGhzCQkJTk8JCitH OTAwCUdSQVBIX1RBQkxFCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0c5MDEJR1JBUEhfVEFCTEU6 IE9ORSBST1cgUEVSIFZFUlRFWAkJCU5PCQorRzkwMglHUkFQSF9UQUJMRTogT05FIFJPVyBQRVIg U1RFUAkJCU5PCQorRzkwMwlHUkFQSF9UQUJMRTogZXhwbGljaXQgT05FIFJPVyBQRVIgTUFUQ0gg a2V5d29yZHMJCQlOTwkKK0c5MDQJQWxsIHByb3BlcnRpZXMgcmVmZXJlbmNlCQkJTk8JCitHOTA1 CUdSQVBIX1RBQkxFOiBvcHRpb25hbCBDT0xVTU5TIGNsYXVzZQkJCU5PCQorRzkwNglHUkFQSF9U QUJMRTogZXhwbGljaXQgRVhQT1JUIEFMTAkJCU5PCQorRzkwNwlHUkFQSF9UQUJMRTogRVhQT1JU IEFMTCBFWENFUFQJCQlOTwkKK0c5MDgJR1JBUEhfVEFCTEU6IEVYUE9SVCBTSU5HTEVUT05TIGxp c3QJCQlOTwkKK0c5MDkJR1JBUEhfVEFCTEU6IGV4cGxpY2l0IEVYUE9SVCBOTyBTSU5HTEVUT05T CQkJTk8JCitHOTEwCUdSQVBIX1RBQkxFOiAnaW4gcGF0aHMgY2xhdXNlJwkJCU5PCQorRzkyMAlE REwtYmFzZWQgU1FMLXByb3BlcnR5IGdyYXBocwkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHOTIx CUVtcHR5IFNRTC1wcm9wZXJ0eSBncmFwaAkJCVlFUwkKK0c5MjIJVmlld3MgYXMgZWxlbWVudCB0 YWJsZXMJCQlZRVMJCitHOTIzCUluLWxpbmUgdmlld3MgYXMgZWxlbWVudCB0YWJsZXMJCQlOTwkK K0c5MjQJRXhwbGljaXQga2V5IGNsYXVzZSBmb3IgZWxlbWVudCB0YWJsZXMJCQlZRVMJU1FML1BH USByZXF1aXJlZAorRzkyNQlFeHBsaWNpdCBsYWJlbCBhbmQgcHJvcGVydGllcyBjbGF1c2UgZm9y IGVsZW1lbnQgdGFibGVzCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0c5MjYJTW9yZSB0aGFuIG9u ZSBsYWJlbCBmb3IgdmVydGV4IHRhYmxlcwkJCVlFUwkKK0c5MjcJTW9yZSB0aGFuIG9uZSBsYWJl bCBmb3IgZWRnZSB0YWJsZXMJCQlZRVMJCitHOTI4CVZhbHVlIGV4cHJlc3Npb25zIGFzIHByb3Bl cnRpZXMgYW5kIHJlbmFtaW5nIG9mIHByb3BlcnRpZXMJCQlZRVMJCitHOTI5CUxhYmVscyBhbmQg cHJvcGVydGllczogRVhDRVBUIGxpc3QJCQlOTwkKK0c5NDAJTXVsdGktc291cmNlZC9kZXN0aW5l ZCBlZGdlcwkJCVlFUwkKK0c5NDEJSW1wbGljaXQgcmVtb3ZhbCBvZiBpbmNvbXBsZXRlIGVkZ2Vz CQkJWUVTCQorRzk1MAlBbHRlciBwcm9wZXJ0eSBncmFwaCBzdGF0ZW1lbnQ6IEFERC9EUk9QIGVs ZW1lbnQgdGFibGUJCQlZRVMJCitHOTYwCUFsdGVyIGVsZW1lbnQgdGFibGUgZGVmaW5pdGlvbjog QUREL0RST1AgTEFCRUwJCQlZRVMJCitHOTcwCUFsdGVyIGVsZW1lbnQgdGFibGUgZGVmaW5pdGlv bjogQUxURVIgTEFCRUwJCQlZRVMJCitHOTgwCURST1AgUFJPUEVSVFkgR1JBUEg6IENBU0NBREUg ZHJvcCBiZWhhdmlvcgkJCVlFUwkKIFIwMTAJUm93IHBhdHRlcm4gcmVjb2duaXRpb246IEZST00g Y2xhdXNlCQkJTk8JCiBSMDIwCVJvdyBwYXR0ZXJuIHJlY29nbml0aW9uOiBXSU5ET1cgY2xhdXNl CQkJTk8JCiBSMDMwCVJvdyBwYXR0ZXJuIHJlY29nbml0aW9uOiBmdWxsIGFnZ3JlZ2F0ZSBzdXBw b3J0CQkJTk8JCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4ZjczNDhmOTFjLi42MjYwZDZiNzll ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTQ2LDYgKzQ2LDcgQEAgT0JKUyA9IFwKIAlwb3J0 YWxjbWRzLm8gXAogCXByZXBhcmUubyBcCiAJcHJvY2xhbmcubyBcCisJcHJvcGdyYXBoY21kcy5v IFwKIAlwdWJsaWNhdGlvbmNtZHMubyBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9hbHRlci5jCmluZGV4IDc4YzFkNGUxYjg0Li43MTRmZWVmNTQ2MyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hbHRlci5jCkBAIC0zODAsNiArMzgwLDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAq c3RtdCkKIAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKIAkJY2FzZSBPQkpFQ1RfSU5ERVg6CiAJCWNh c2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCXJl dHVybiBSZW5hbWVSZWxhdGlvbihzdG10KTsKIAogCQljYXNlIE9CSkVDVF9DT0xVTU46CkBAIC01 MzMsNiArNTM0LDcgQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVt YVN0bXQgKnN0bXQsCiAJCWNhc2UgT0JKRUNUX1RBQkxFOgogCQljYXNlIE9CSkVDVF9WSUVXOgog CQljYXNlIE9CSkVDVF9NQVRWSUVXOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCQlhZGRy ZXNzID0gQWx0ZXJUYWJsZU5hbWVzcGFjZShzdG10LAogCQkJCQkJCQkJCSAgb2xkU2NoZW1hQWRk ciA/ICZvbGROc3BPaWQgOiBOVUxMKTsKIAkJCWJyZWFrOwpAQCAtODY2LDYgKzg2OCw3IEBAIEV4 ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfT1BD TEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BST0NFRFVSRToK KwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQljYXNlIE9CSkVDVF9ST1VUSU5FOgogCQljYXNl IE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UQUJMRVNQQUNFOgpAQCAtODc0 LDExICs4NzcsMjYgQEAgRXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10ICpzdG10KQog CQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAotCQkJCWFkZHJlc3MgPSBnZXRfb2Jq ZWN0X2FkZHJlc3Moc3RtdC0+b2JqZWN0VHlwZSwKLQkJCQkJCQkJCQkJIHN0bXQtPm9iamVjdCwK LQkJCQkJCQkJCQkJIE5VTEwsCi0JCQkJCQkJCQkJCSBBY2Nlc3NFeGNsdXNpdmVMb2NrLAotCQkJ CQkJCQkJCQkgZmFsc2UpOworCQkJCWlmIChzdG10LT5yZWxhdGlvbikKKwkJCQl7CisJCQkJCVJl bGF0aW9uCXJlbGF0aW9uOworCisJCQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJlc3NfcnYo c3RtdC0+b2JqZWN0VHlwZSwKKwkJCQkJCQkJCQkJCQlzdG10LT5yZWxhdGlvbiwKKwkJCQkJCQkJ CQkJCQlOSUwsCisJCQkJCQkJCQkJCQkJJnJlbGF0aW9uLAorCQkJCQkJCQkJCQkJCUFjY2Vzc0V4 Y2x1c2l2ZUxvY2ssCisJCQkJCQkJCQkJCQkJZmFsc2UpOworCQkJCQlyZWxhdGlvbl9jbG9zZShy ZWxhdGlvbiwgTm9Mb2NrKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJYWRkcmVzcyA9 IGdldF9vYmplY3RfYWRkcmVzcyhzdG10LT5vYmplY3RUeXBlLAorCQkJCQkJCQkJCQkJIHN0bXQt Pm9iamVjdCwKKwkJCQkJCQkJCQkJCSBOVUxMLAorCQkJCQkJCQkJCQkJIEFjY2Vzc0V4Y2x1c2l2 ZUxvY2ssCisJCQkJCQkJCQkJCQkgZmFsc2UpOworCQkJCX0KIAogCQkJCUFsdGVyT2JqZWN0T3du ZXJfaW50ZXJuYWwoYWRkcmVzcy5jbGFzc0lkLCBhZGRyZXNzLm9iamVjdElkLAogCQkJCQkJCQkJ CSAgbmV3b3duZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggY2ViOWEyMjliNjMuLjA3 MzlmZDlkNTY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTQ4Miw2ICs0ODIsNyBAQCBk b2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCkK IAkJY2FzZSBPQkpFQ1RfRk9SRUlHTl9UQUJMRToKIAkJY2FzZSBPQkpFQ1RfSU5ERVg6CiAJCWNh c2UgT0JKRUNUX01BVFZJRVc6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpF Q1RfUk9MRToKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQ VElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwppbmRleCBlZGMyYzk4OGUyOS4u OTE3MWMzOWExMzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdn ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNzAs NiArMjE3MCw3IEBAIHN0cmluZ2lmeV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkK IAkJY2FzZSBPQkpFQ1RfT1BFUkFUT1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNl IE9CSkVDVF9QT0xJQ1k6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1Rf UFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2Fz ZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgpAQCAtMjI1NCw2ICsyMjU1LDcgQEAgc3RyaW5naWZ5 X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BG QU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCWNhc2UgT0JKRUNUX1BPTElD WToKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoK IAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9CSkVDVF9QVUJM SUNBVElPTl9SRUw6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGVmMGQ0MDdhMzgzLi4y MWEyMmQxMGI0NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTM0LDYgKzM0LDcgQEAg YmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncG9ydGFsY21kcy5jJywKICAgJ3ByZXBhcmUu YycsCiAgICdwcm9jbGFuZy5jJywKKyAgJ3Byb3BncmFwaGNtZHMuYycsCiAgICdwdWJsaWNhdGlv bmNtZHMuYycsCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjg0MzBiZmRhN2I3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHJvcGdyYXBoY21kcy5jCkBAIC0wLDAgKzEsMTcwNiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogcHJvcGdyYXBoY21kcy5jCisgKgkgIHByb3BlcnR5IGdyYXBoIG1hbmlwdWxhdGlvbgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvYmFja2VuZC9j b21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lu Y2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRl ICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5j bHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKKyNpbmNs dWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9w Z3JhcGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRf bGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9wcm9wZ3Jh cGhjbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCisjaW5jbHVkZSAibm9k ZXMvbm9kZUZ1bmNzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCisjaW5j bHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCisj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgor I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2lu Y2x1ZGUgInV0aWxzL3J1bGV1dGlscy5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisK Kworc3RydWN0IGVsZW1lbnRfaW5mbworeworCU9pZAkJCWVsZW1lbnRpZDsKKwljaGFyCQlraW5k OworCU9pZAkJCXJlbGlkOworCWNoYXIJICAgKmFsaWFzbmFtZTsKKwlBcnJheVR5cGUgICprZXk7 CisKKwljaGFyCSAgICpzcmN2ZXJ0ZXg7CisJT2lkCQkJc3JjdmVydGV4aWQ7CisJT2lkCQkJc3Jj cmVsaWQ7CisJQXJyYXlUeXBlICAqc3Jja2V5OworCUFycmF5VHlwZSAgKnNyY3JlZjsKKworCWNo YXIJICAgKmRlc3R2ZXJ0ZXg7CisJT2lkCQkJZGVzdHZlcnRleGlkOworCU9pZAkJCWRlc3RyZWxp ZDsKKwlBcnJheVR5cGUgICpkZXN0a2V5OworCUFycmF5VHlwZSAgKmRlc3RyZWY7CisKKwlMaXN0 CSAgICpsYWJlbHM7Cit9OworCisKK3N0YXRpYyBBcnJheVR5cGUgKnByb3BncmFwaF9lbGVtZW50 X2dldF9rZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICprZXljb2xzLCBSZWxhdGlv biBlbGVtZW50X3JlbCwKKwkJCQkJCQkJCQkJY29uc3QgY2hhciAqYWxpYXNuYW1lLCBpbnQgbG9j YXRpb24pOworc3RhdGljIHZvaWQgcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgY29uc3QgTGlzdCAqa2V5Y29scywgY29uc3QgTGlzdCAqcmVmY29scywKKwkJ CQkJCQkJCQlSZWxhdGlvbiBlZGdlX3JlbCwgUmVsYXRpb24gcmVmX3JlbCwKKwkJCQkJCQkJCQlj b25zdCBjaGFyICphbGlhc25hbWUsIGludCBsb2NhdGlvbiwgY29uc3QgY2hhciAqdHlwZSwKKwkJ CQkJCQkJCQlBcnJheVR5cGUgKipvdXRrZXksIEFycmF5VHlwZSAqKm91dHJlZik7CitzdGF0aWMg QXJyYXlUeXBlICphcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29u c3QgTGlzdCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpOwor c3RhdGljIEFycmF5VHlwZSAqYXJyYXlfZnJvbV9hdHRudW1zKGludCBudW1hdHRycywgY29uc3Qg QXR0ck51bWJlciAqYXR0bnVtcyk7CitzdGF0aWMgT2lkCWluc2VydF9lbGVtZW50X3JlY29yZChP YmplY3RBZGRyZXNzIHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pOworc3Rh dGljIE9pZAlpbnNlcnRfbGFiZWxfcmVjb3JkKE9pZCBncmFwaGlkLCBPaWQgcGVvaWQsIGNvbnN0 IGNoYXIgKmxhYmVsKTsKK3N0YXRpYyB2b2lkIGluc2VydF9wcm9wZXJ0eV9yZWNvcmRzKE9pZCBn cmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBjb25zdCBQcm9wR3JhcGhQcm9w ZXJ0aWVzICpwcm9wZXJ0aWVzKTsKK3N0YXRpYyB2b2lkIGluc2VydF9wcm9wZXJ0eV9yZWNvcmQo T2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVsb2lkLCBPaWQgcGdlcmVsaWQsIGNvbnN0IGNoYXIgKnBy b3BuYW1lLCBjb25zdCBFeHByICpleHByKTsKK3N0YXRpYyB2b2lkIGNoZWNrX2VsZW1lbnRfcHJv cGVydGllcyhPaWQgcGVvaWQpOworc3RhdGljIHZvaWQgY2hlY2tfZWxlbWVudF9sYWJlbF9wcm9w ZXJ0aWVzKE9pZCBlbGxhYmVsb2lkKTsKK3N0YXRpYyB2b2lkIGNoZWNrX2FsbF9sYWJlbHNfcHJv cGVydGllcyhPaWQgcGdyZWxpZCk7CitzdGF0aWMgT2lkCWdldF92ZXJ0ZXhfb2lkKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgT2lkIHBncmVsaWQsIGNvbnN0IGNoYXIgKmFsaWFzLCBpbnQgbG9jYXRpb24p Oworc3RhdGljIE9pZAlnZXRfZWRnZV9vaWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBPaWQgcGdyZWxp ZCwgY29uc3QgY2hhciAqYWxpYXMsIGludCBsb2NhdGlvbik7CitzdGF0aWMgT2lkCWdldF9lbGVt ZW50X3JlbGlkKE9pZCBwZWlkKTsKK3N0YXRpYyBMaXN0ICpnZXRfZ3JhcGhfbGFiZWxfaWRzKE9p ZCBncmFwaGlkKTsKK3N0YXRpYyBMaXN0ICpnZXRfbGFiZWxfZWxlbWVudF9sYWJlbF9pZHMoT2lk IGxhYmVsaWQpOworc3RhdGljIExpc3QgKmdldF9lbGVtZW50X2xhYmVsX3Byb3BlcnR5X25hbWVz KE9pZCBlbGxhYmVsb2lkKTsKK3N0YXRpYyBMaXN0ICpnZXRfZ3JhcGhfcHJvcGVydHlfaWRzKE9p ZCBncmFwaGlkKTsKKworCisvKgorICogQ1JFQVRFIFBST1BFUlRZIEdSQVBICisgKi8KK09iamVj dEFkZHJlc3MKK0NyZWF0ZVByb3BHcmFwaChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0 ZVByb3BHcmFwaFN0bXQgKnN0bXQpCit7CisJQ3JlYXRlU3RtdCAqY3N0bXQgPSBtYWtlTm9kZShD cmVhdGVTdG10KTsKKwljaGFyCQljb21wb25lbnRzX3BlcnNpc3RlbmNlOworCUxpc3RDZWxsICAg KmxjOworCU9iamVjdEFkZHJlc3MgcGdhZGRyZXNzOworCUxpc3QJICAgKnZlcnRleF9pbmZvcyA9 IE5JTDsKKwlMaXN0CSAgICplZGdlX2luZm9zID0gTklMOworCUxpc3QJICAgKmVsZW1lbnRfYWxp YXNlcyA9IE5JTDsKKwlMaXN0CSAgICplbGVtZW50X29pZHMgPSBOSUw7CisKKwlpZiAoc3RtdC0+ cGduYW1lLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9VTkxPR0dFRCkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVy cm1zZygicHJvcGVydHkgZ3JhcGhzIGNhbm5vdCBiZSB1bmxvZ2dlZCBiZWNhdXNlIHRoZXkgZG8g bm90IGhhdmUgc3RvcmFnZSIpKSk7CisKKwljb21wb25lbnRzX3BlcnNpc3RlbmNlID0gUkVMUEVS U0lTVEVOQ0VfUEVSTUFORU5UOworCisJZm9yZWFjaChsYywgc3RtdC0+dmVydGV4X3RhYmxlcykK Kwl7CisJCVByb3BHcmFwaFZlcnRleCAqdmVydGV4ID0gbGZpcnN0X25vZGUoUHJvcEdyYXBoVmVy dGV4LCBsYyk7CisJCXN0cnVjdCBlbGVtZW50X2luZm8gKnZpbmZvOworCQlSZWxhdGlvbglyZWw7 CisKKwkJdmluZm8gPSBwYWxsb2MwX29iamVjdChzdHJ1Y3QgZWxlbWVudF9pbmZvKTsKKwkJdmlu Zm8tPmtpbmQgPSBQR0VLSU5EX1ZFUlRFWDsKKworCQl2aW5mby0+cmVsaWQgPSBSYW5nZVZhckdl dFJlbGlkRXh0ZW5kZWQodmVydGV4LT52dGFibGUsIEFjY2Vzc1NoYXJlTG9jaywgMCwgUmFuZ2VW YXJDYWxsYmFja093bnNSZWxhdGlvbiwgTlVMTCk7CisKKwkJcmVsID0gdGFibGVfb3Blbih2aW5m by0+cmVsaWQsIE5vTG9jayk7CisKKwkJaWYgKHJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9 PSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQkJY29tcG9uZW50c19wZXJzaXN0ZW5jZSA9IFJFTFBF UlNJU1RFTkNFX1RFTVA7CisKKwkJaWYgKHZlcnRleC0+dnRhYmxlLT5hbGlhcykKKwkJCXZpbmZv LT5hbGlhc25hbWUgPSB2ZXJ0ZXgtPnZ0YWJsZS0+YWxpYXMtPmFsaWFzbmFtZTsKKwkJZWxzZQor CQkJdmluZm8tPmFsaWFzbmFtZSA9IHZlcnRleC0+dnRhYmxlLT5yZWxuYW1lOworCisJCWlmIChs aXN0X21lbWJlcihlbGVtZW50X2FsaWFzZXMsIG1ha2VTdHJpbmcodmluZm8tPmFsaWFzbmFtZSkp KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfVEFC TEUpLAorCQkJCQkgZXJybXNnKCJhbGlhcyBcIiVzXCIgdXNlZCBtb3JlIHRoYW4gb25jZSBhcyBl bGVtZW50IHRhYmxlIiwgdmluZm8tPmFsaWFzbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCB2ZXJ0ZXgtPmxvY2F0aW9uKSkpOworCisJCXZpbmZvLT5rZXkgPSBwcm9wZ3Jh cGhfZWxlbWVudF9nZXRfa2V5KHBzdGF0ZSwgdmVydGV4LT52a2V5LCByZWwsIHZpbmZvLT5hbGlh c25hbWUsIHZlcnRleC0+bG9jYXRpb24pOworCisJCXZpbmZvLT5sYWJlbHMgPSB2ZXJ0ZXgtPmxh YmVsczsKKworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwkJdmVydGV4X2luZm9zID0g bGFwcGVuZCh2ZXJ0ZXhfaW5mb3MsIHZpbmZvKTsKKworCQllbGVtZW50X2FsaWFzZXMgPSBsYXBw ZW5kKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmluZyh2aW5mby0+YWxpYXNuYW1lKSk7CisJfQor CisJZm9yZWFjaChsYywgc3RtdC0+ZWRnZV90YWJsZXMpCisJeworCQlQcm9wR3JhcGhFZGdlICpl ZGdlID0gbGZpcnN0X25vZGUoUHJvcEdyYXBoRWRnZSwgbGMpOworCQlzdHJ1Y3QgZWxlbWVudF9p bmZvICplaW5mbzsKKwkJUmVsYXRpb24JcmVsOworCQlMaXN0Q2VsbCAgICpsYzI7CisJCU9pZAkJ CXNyY3JlbGlkOworCQlPaWQJCQlkZXN0cmVsaWQ7CisJCVJlbGF0aW9uCXNyY3JlbDsKKwkJUmVs YXRpb24JZGVzdHJlbDsKKworCQllaW5mbyA9IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBlbGVtZW50 X2luZm8pOworCQllaW5mby0+a2luZCA9IFBHRUtJTkRfRURHRTsKKworCQllaW5mby0+cmVsaWQg PSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoZWRnZS0+ZXRhYmxlLCBBY2Nlc3NTaGFyZUxvY2ss IDAsIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24sIE5VTEwpOworCisJCXJlbCA9IHRhYmxl X29wZW4oZWluZm8tPnJlbGlkLCBOb0xvY2spOworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVscGVy c2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJCWNvbXBvbmVudHNfcGVyc2lzdGVu Y2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOworCisJCWlmIChlZGdlLT5ldGFibGUtPmFsaWFzKQor CQkJZWluZm8tPmFsaWFzbmFtZSA9IGVkZ2UtPmV0YWJsZS0+YWxpYXMtPmFsaWFzbmFtZTsKKwkJ ZWxzZQorCQkJZWluZm8tPmFsaWFzbmFtZSA9IGVkZ2UtPmV0YWJsZS0+cmVsbmFtZTsKKworCQlp ZiAobGlzdF9tZW1iZXIoZWxlbWVudF9hbGlhc2VzLCBtYWtlU3RyaW5nKGVpbmZvLT5hbGlhc25h bWUpKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X1RBQkxFKSwKKwkJCQkJIGVycm1zZygiYWxpYXMgXCIlc1wiIHVzZWQgbW9yZSB0aGFuIG9uY2Ug YXMgZWxlbWVudCB0YWJsZSIsIGVpbmZvLT5hbGlhc25hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZWRnZS0+bG9jYXRpb24pKSk7CisKKwkJZWluZm8tPmtleSA9IHByb3Bn cmFwaF9lbGVtZW50X2dldF9rZXkocHN0YXRlLCBlZGdlLT5la2V5LCByZWwsIGVpbmZvLT5hbGlh c25hbWUsIGVkZ2UtPmxvY2F0aW9uKTsKKworCQllaW5mby0+c3JjdmVydGV4ID0gZWRnZS0+ZXNy Y3ZlcnRleDsKKwkJZWluZm8tPmRlc3R2ZXJ0ZXggPSBlZGdlLT5lZGVzdHZlcnRleDsKKworCQlz cmNyZWxpZCA9IDA7CisJCWRlc3RyZWxpZCA9IDA7CisJCWZvcmVhY2gobGMyLCB2ZXJ0ZXhfaW5m b3MpCisJCXsKKwkJCXN0cnVjdCBlbGVtZW50X2luZm8gKnZpbmZvID0gbGZpcnN0KGxjMik7CisK KwkJCWlmIChzdHJjbXAodmluZm8tPmFsaWFzbmFtZSwgZWRnZS0+ZXNyY3ZlcnRleCkgPT0gMCkK KwkJCQlzcmNyZWxpZCA9IHZpbmZvLT5yZWxpZDsKKworCQkJaWYgKHN0cmNtcCh2aW5mby0+YWxp YXNuYW1lLCBlZGdlLT5lZGVzdHZlcnRleCkgPT0gMCkKKwkJCQlkZXN0cmVsaWQgPSB2aW5mby0+ cmVsaWQ7CisKKwkJCWlmIChzcmNyZWxpZCAmJiBkZXN0cmVsaWQpCisJCQkJYnJlYWs7CisJCX0K KwkJaWYgKCFzcmNyZWxpZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCSBlcnJtc2coInNvdXJjZSB2ZXJ0 ZXggXCIlc1wiIG9mIGVkZ2UgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQllZGdlLT5l c3JjdmVydGV4LCBlaW5mby0+YWxpYXNuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkpOworCQlpZiAoIWRlc3RyZWxpZCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiks CisJCQkJCSBlcnJtc2coImRlc3RpbmF0aW9uIHZlcnRleCBcIiVzXCIgb2YgZWRnZSBcIiVzXCIg ZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCWVkZ2UtPmVkZXN0dmVydGV4LCBlaW5mby0+YWxpYXNu YW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkp OworCisJCXNyY3JlbCA9IHRhYmxlX29wZW4oc3JjcmVsaWQsIE5vTG9jayk7CisJCWRlc3RyZWwg PSB0YWJsZV9vcGVuKGRlc3RyZWxpZCwgTm9Mb2NrKTsKKworCQlwcm9wZ3JhcGhfZWRnZV9nZXRf cmVmX2tleXMocHN0YXRlLCBlZGdlLT5lc3Jja2V5LCBlZGdlLT5lc3JjdmVydGV4Y29scywgcmVs LCBzcmNyZWwsCisJCQkJCQkJCQllaW5mby0+YWxpYXNuYW1lLCBlZGdlLT5sb2NhdGlvbiwgIlNP VVJDRSIsCisJCQkJCQkJCQkmZWluZm8tPnNyY2tleSwgJmVpbmZvLT5zcmNyZWYpOworCQlwcm9w Z3JhcGhfZWRnZV9nZXRfcmVmX2tleXMocHN0YXRlLCBlZGdlLT5lZGVzdGtleSwgZWRnZS0+ZWRl c3R2ZXJ0ZXhjb2xzLCByZWwsIGRlc3RyZWwsCisJCQkJCQkJCQllaW5mby0+YWxpYXNuYW1lLCBl ZGdlLT5sb2NhdGlvbiwgIkRFU1RJTkFUSU9OIiwKKwkJCQkJCQkJCSZlaW5mby0+ZGVzdGtleSwg JmVpbmZvLT5kZXN0cmVmKTsKKworCQllaW5mby0+bGFiZWxzID0gZWRnZS0+bGFiZWxzOworCisJ CXRhYmxlX2Nsb3NlKGRlc3RyZWwsIE5vTG9jayk7CisJCXRhYmxlX2Nsb3NlKHNyY3JlbCwgTm9M b2NrKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwkJZWRnZV9pbmZvcyA9IGxh cHBlbmQoZWRnZV9pbmZvcywgZWluZm8pOworCisJCWVsZW1lbnRfYWxpYXNlcyA9IGxhcHBlbmQo ZWxlbWVudF9hbGlhc2VzLCBtYWtlU3RyaW5nKGVpbmZvLT5hbGlhc25hbWUpKTsKKwl9CisKKwlj c3RtdC0+cmVsYXRpb24gPSBzdG10LT5wZ25hbWU7CisJY3N0bXQtPm9uY29tbWl0ID0gT05DT01N SVRfTk9PUDsKKworCS8qCisJICogQXV0b21hdGljYWxseSBtYWtlIGl0IHRlbXBvcmFyeSBpZiBh bnkgY29tcG9uZW50IHRhYmxlcyBhcmUgdGVtcG9yYXJ5CisJICogKHNlZSBhbHNvIERlZmluZVZp ZXcoKSkuCisJICovCisJaWYgKHN0bXQtPnBnbmFtZS0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVS U0lTVEVOQ0VfUEVSTUFORU5UCisJCSYmIGNvbXBvbmVudHNfcGVyc2lzdGVuY2UgPT0gUkVMUEVS U0lTVEVOQ0VfVEVNUCkKKwl7CisJCWNzdG10LT5yZWxhdGlvbiA9IGNvcHlPYmplY3QoY3N0bXQt PnJlbGF0aW9uKTsKKwkJY3N0bXQtPnJlbGF0aW9uLT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBFUlNJ U1RFTkNFX1RFTVA7CisJCWVyZXBvcnQoTk9USUNFLAorCQkJCShlcnJtc2coInByb3BlcnR5IGdy YXBoIFwiJXNcIiB3aWxsIGJlIHRlbXBvcmFyeSIsCisJCQkJCQlzdG10LT5wZ25hbWUtPnJlbG5h bWUpKSk7CisJfQorCisJcGdhZGRyZXNzID0gRGVmaW5lUmVsYXRpb24oY3N0bXQsIFJFTEtJTkRf UFJPUEdSQVBILCBJbnZhbGlkT2lkLCBOVUxMLCBOVUxMKTsKKworCWZvcmVhY2gobGMsIHZlcnRl eF9pbmZvcykKKwl7CisJCXN0cnVjdCBlbGVtZW50X2luZm8gKnZpbmZvID0gbGZpcnN0KGxjKTsK KwkJT2lkCQkJcGVvaWQ7CisKKwkJcGVvaWQgPSBpbnNlcnRfZWxlbWVudF9yZWNvcmQocGdhZGRy ZXNzLCB2aW5mbyk7CisJCWVsZW1lbnRfb2lkcyA9IGxhcHBlbmRfb2lkKGVsZW1lbnRfb2lkcywg cGVvaWQpOworCX0KKworCWZvcmVhY2gobGMsIGVkZ2VfaW5mb3MpCisJeworCQlzdHJ1Y3QgZWxl bWVudF9pbmZvICplaW5mbyA9IGxmaXJzdChsYyk7CisJCU9pZAkJCXBlb2lkOworCQlMaXN0Q2Vs bCAgICpsYzI7CisKKwkJLyoKKwkJICogTG9vayB1cCB0aGUgdmVydGljZXMgYWdhaW4uICBOb3cg dGhlIHZlcnRpY2VzIGhhdmUgT0lEcyBhc3NpZ25lZCwKKwkJICogd2hpY2ggd2UgbmVlZC4KKwkJ ICovCisJCWZvcmVhY2gobGMyLCB2ZXJ0ZXhfaW5mb3MpCisJCXsKKwkJCXN0cnVjdCBlbGVtZW50 X2luZm8gKnZpbmZvID0gbGZpcnN0KGxjMik7CisKKwkJCWlmIChzdHJjbXAodmluZm8tPmFsaWFz bmFtZSwgZWluZm8tPnNyY3ZlcnRleCkgPT0gMCkKKwkJCXsKKwkJCQllaW5mby0+c3JjdmVydGV4 aWQgPSB2aW5mby0+ZWxlbWVudGlkOworCQkJCWVpbmZvLT5zcmNyZWxpZCA9IHZpbmZvLT5yZWxp ZDsKKwkJCX0KKwkJCWlmIChzdHJjbXAodmluZm8tPmFsaWFzbmFtZSwgZWluZm8tPmRlc3R2ZXJ0 ZXgpID09IDApCisJCQl7CisJCQkJZWluZm8tPmRlc3R2ZXJ0ZXhpZCA9IHZpbmZvLT5lbGVtZW50 aWQ7CisJCQkJZWluZm8tPmRlc3RyZWxpZCA9IHZpbmZvLT5yZWxpZDsKKwkJCX0KKwkJCWlmIChl aW5mby0+c3JjdmVydGV4aWQgJiYgZWluZm8tPmRlc3R2ZXJ0ZXhpZCkKKwkJCQlicmVhazsKKwkJ fQorCQlBc3NlcnQoZWluZm8tPnNyY3ZlcnRleGlkKTsKKwkJQXNzZXJ0KGVpbmZvLT5kZXN0dmVy dGV4aWQpOworCQlBc3NlcnQoZWluZm8tPnNyY3JlbGlkKTsKKwkJQXNzZXJ0KGVpbmZvLT5kZXN0 cmVsaWQpOworCQlwZW9pZCA9IGluc2VydF9lbGVtZW50X3JlY29yZChwZ2FkZHJlc3MsIGVpbmZv KTsKKwkJZWxlbWVudF9vaWRzID0gbGFwcGVuZF9vaWQoZWxlbWVudF9vaWRzLCBwZW9pZCk7CisJ fQorCisJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCWZvcmVhY2hfb2lkKHBlb2lkLCBl bGVtZW50X29pZHMpCisJCWNoZWNrX2VsZW1lbnRfcHJvcGVydGllcyhwZW9pZCk7CisJY2hlY2tf YWxsX2xhYmVsc19wcm9wZXJ0aWVzKHBnYWRkcmVzcy5vYmplY3RJZCk7CisKKwlyZXR1cm4gcGdh ZGRyZXNzOworfQorCisvKgorICogUHJvY2VzcyB0aGUga2V5IGNsYXVzZSBzcGVjaWZpZWQgZm9y IGFuIGVsZW1lbnQuICBJZiBrZXlfY2xhdXNlIGlzIG5vbi1OSUwsCisgKiB0aGVuIGl0IGlzIGEg bGlzdCBvZiBjb2x1bW4gbmFtZXMuICBPdGhlcndpc2UsIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUK KyAqIHJlbGF0aW9uIGlzIHVzZWQuICBUaGUgcmV0dXJuIHZhbHVlIGlzIGFuIGFycmF5IG9mIGNv bHVtbiBudW1iZXJzLgorICovCitzdGF0aWMgQXJyYXlUeXBlICoKK3Byb3BncmFwaF9lbGVtZW50 X2dldF9rZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICprZXlfY2xhdXNlLCBSZWxh dGlvbiBlbGVtZW50X3JlbCwgY29uc3QgY2hhciAqYWxpYXNuYW1lLCBpbnQgbG9jYXRpb24pCit7 CisJQXJyYXlUeXBlICAqYTsKKworCWlmIChrZXlfY2xhdXNlID09IE5JTCkKKwl7CisJCU9pZAkJ CXBraWR4ID0gUmVsYXRpb25HZXRQcmltYXJ5S2V5SW5kZXgoZWxlbWVudF9yZWwsIGZhbHNlKTsK KworCQlpZiAoIXBraWR4KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RF X0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coIm5vIGtleSBzcGVjaWZp ZWQgYW5kIG5vIHN1aXRhYmxlIHByaW1hcnkga2V5IGV4aXN0cyBmb3IgZGVmaW5pdGlvbiBvZiBl bGVtZW50IFwiJXNcIiIsIGFsaWFzbmFtZSksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSk7CisJCWVsc2UKKwkJeworCQkJUmVsYXRpb24JaW5kZXhEZXNjOworCisJ CQlpbmRleERlc2MgPSBpbmRleF9vcGVuKHBraWR4LCBBY2Nlc3NTaGFyZUxvY2spOworCQkJYSA9 IGFycmF5X2Zyb21fYXR0bnVtcyhpbmRleERlc2MtPnJkX2luZGV4LT5pbmRrZXkuZGltMSwgaW5k ZXhEZXNjLT5yZF9pbmRleC0+aW5ka2V5LnZhbHVlcyk7CisJCQlpbmRleF9jbG9zZShpbmRleERl c2MsIE5vTG9jayk7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJYSA9IGFycmF5X2Zyb21fY29sdW1u X2xpc3QocHN0YXRlLCBrZXlfY2xhdXNlLCBsb2NhdGlvbiwgZWxlbWVudF9yZWwpOworCX0KKwor CXJldHVybiBhOworfQorCisvKgorICogUHJvY2VzcyB0aGUgc291cmNlIG9yIGRlc3RpbmF0aW9u IGxpbmsgb2YgYW4gZWRnZS4KKyAqCisgKiBrZXljb2xzIGFuZCByZWZjb2xzIGFyZSBjb2x1bW4g bmFtZXMgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCBhbmQgcmVmZXJlbmNlZAorICogKHZlcnRleCkg Y29sdW1ucy4gIElmIHRoZXkgYXJlIGJvdGggTklMLCBhIG1hdGNoaW5nIGZvcmVpZ24ga2V5IGlz IGxvb2tlZAorICogdXAuCisgKgorICogZWRnZV9yZWwgYW5kIHJlZl9yZWwgYXJlIHRoZSBsb2Nh bCBhbmQgcmVmZXJlbmNlZCBlbGVtZW50IHRhYmxlcy4KKyAqCisgKiBhbGlhc25hbWUsIGxvY2F0 aW9uLCBhbmQgdHlwZSBhcmUgZm9yIGVycm9yIG1lc3NhZ2VzLiAgdHlwZSBpcyBlaXRoZXIKKyAq ICJTT1VSQ0UiIG9yICJERVNUSU5BVElPTiIuCisgKgorICogVGhlIG91dHB1dHMgYXJlIGFycmF5 cyBvZiBjb2x1bW4gbnVtYmVycyBpbiBvdXRrZXkgYW5kIG91dHJlZi4KKyAqLworc3RhdGljIHZv aWQKK3Byb3BncmFwaF9lZGdlX2dldF9yZWZfa2V5cyhQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0 IExpc3QgKmtleWNvbHMsIGNvbnN0IExpc3QgKnJlZmNvbHMsCisJCQkJCQkJUmVsYXRpb24gZWRn ZV9yZWwsIFJlbGF0aW9uIHJlZl9yZWwsCisJCQkJCQkJY29uc3QgY2hhciAqYWxpYXNuYW1lLCBp bnQgbG9jYXRpb24sIGNvbnN0IGNoYXIgKnR5cGUsCisJCQkJCQkJQXJyYXlUeXBlICoqb3V0a2V5 LCBBcnJheVR5cGUgKipvdXRyZWYpCit7CisJQXNzZXJ0KChrZXljb2xzICYmIHJlZmNvbHMpIHx8 ICgha2V5Y29scyAmJiAhcmVmY29scykpOworCisJaWYgKGtleWNvbHMpCisJeworCQlpZiAobGlz dF9sZW5ndGgoa2V5Y29scykgIT0gbGlzdF9sZW5ndGgocmVmY29scykpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJ CQkJCWVycm1zZygibWlzbWF0Y2hpbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4gJXMgdmVydGV4IGRl ZmluaXRpb24gb2YgZWRnZSBcIiVzXCIiLCB0eXBlLCBhbGlhc25hbWUpLAorCQkJCQlwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCisJCSpvdXRrZXkgPSBhcnJheV9mcm9t X2NvbHVtbl9saXN0KHBzdGF0ZSwga2V5Y29scywgbG9jYXRpb24sIGVkZ2VfcmVsKTsKKwkJKm91 dHJlZiA9IGFycmF5X2Zyb21fY29sdW1uX2xpc3QocHN0YXRlLCByZWZjb2xzLCBsb2NhdGlvbiwg cmVmX3JlbCk7CisJfQorCWVsc2UKKwl7CisJCUxpc3QJICAgKmZrZXlzOworCQlMaXN0Q2VsbCAg ICpsYzsKKwkJaW50CQkJY291bnQgPSAwOworCQlGb3JlaWduS2V5Q2FjaGVJbmZvICpmayA9IE5V TEw7CisKKwkJZmtleXMgPSBSZWxhdGlvbkdldEZLZXlMaXN0KGVkZ2VfcmVsKTsKKwkJZm9yZWFj aChsYywgZmtleXMpCisJCXsKKwkJCWZrID0gbGZpcnN0X25vZGUoRm9yZWlnbktleUNhY2hlSW5m bywgbGMpOworCisJCQlpZiAoZmstPmNvbmZyZWxpZCA9PSBSZWxhdGlvbkdldFJlbGlkKHJlZl9y ZWwpKQorCQkJCWNvdW50Kys7CisJCX0KKworCQlpZiAoY291bnQgPT0gMCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQllcnJtc2co Im5vICVzIGtleSBzcGVjaWZpZWQgYW5kIG5vIHN1aXRhYmxlIGZvcmVpZ24ga2V5IGV4aXN0cyBm b3IgZGVmaW5pdGlvbiBvZiBlZGdlIFwiJXNcIiIsIHR5cGUsIGFsaWFzbmFtZSksCisJCQkJCXBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSk7CisJCWVsc2UgaWYgKGNvdW50ID4g MSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQllcnJtc2coIm1vcmUgdGhhbiBvbmUgc3VpdGFibGUgZm9yZWlnbiBrZXkgZXhpc3Rz IGZvciAlcyBrZXkgb2YgZWRnZSBcIiVzXCIiLCB0eXBlLCBhbGlhc25hbWUpLAorCQkJCQlwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCisJCUFzc2VydChmayk7CisKKwkJ Km91dGtleSA9IGFycmF5X2Zyb21fYXR0bnVtcyhmay0+bmtleXMsIGZrLT5jb25rZXkpOworCQkq b3V0cmVmID0gYXJyYXlfZnJvbV9hdHRudW1zKGZrLT5ua2V5cywgZmstPmNvbmZrZXkpOworCX0K K30KKworLyoKKyAqIENvbnZlcnQgbGlzdCBvZiBjb2x1bW4gbmFtZXMgaW4gdGhlIHNwZWNpZmll ZCByZWxhdGlvbiBpbnRvIGFuIGFycmF5IG9mCisgKiBjb2x1bW4gbnVtYmVycy4KKyAqLworc3Rh dGljIEFycmF5VHlwZSAqCithcnJheV9mcm9tX2NvbHVtbl9saXN0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgY29uc3QgTGlzdCAqY29sbmFtZXMsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9y ZWwpCit7CisJaW50CQkJbnVtYXR0cnM7CisJRGF0dW0JICAgKmF0dG51bXNkOworCWludAkJCWk7 CisJTGlzdENlbGwgICAqbGM7CisKKwludW1hdHRycyA9IGxpc3RfbGVuZ3RoKGNvbG5hbWVzKTsK KwlhdHRudW1zZCA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtYXR0cnMpOworCisJaSA9IDA7CisJ Zm9yZWFjaChsYywgY29sbmFtZXMpCisJeworCQljaGFyCSAgICpjb2xuYW1lID0gc3RyVmFsKGxm aXJzdChsYykpOworCQlPaWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQoZWxlbWVudF9yZWwp OworCQlBdHRyTnVtYmVyCWF0dG51bTsKKworCQlhdHRudW0gPSBnZXRfYXR0bnVtKHJlbGlkLCBj b2xuYW1lKTsKKwkJaWYgKCFhdHRudW0pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wi IG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJY29sbmFtZSwgZ2V0 X3JlbF9uYW1lKHJlbGlkKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2Nh dGlvbikpKTsKKwkJYXR0bnVtc2RbaSsrXSA9IEludDE2R2V0RGF0dW0oYXR0bnVtKTsKKwl9CisK Kwlmb3IgKGludCBqID0gMDsgaiA8IG51bWF0dHJzOyBqKyspCisJeworCQlmb3IgKGludCBrID0g aiArIDE7IGsgPCBudW1hdHRyczsgaysrKQorCQl7CisJCQlpZiAoRGF0dW1HZXRJbnQxNihhdHRu dW1zZFtqXSkgPT0gRGF0dW1HZXRJbnQxNihhdHRudW1zZFtrXSkpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJ CQkJCQkgZXJybXNnKCJncmFwaCBrZXkgY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVw bGljYXRlcyIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkp OworCQl9CisJfQorCisJcmV0dXJuIGNvbnN0cnVjdF9hcnJheV9idWlsdGluKGF0dG51bXNkLCBu dW1hdHRycywgSU5UMk9JRCk7Cit9CisKK3N0YXRpYyBBcnJheVR5cGUgKgorYXJyYXlfZnJvbV9h dHRudW1zKGludCBudW1hdHRycywgY29uc3QgQXR0ck51bWJlciAqYXR0bnVtcykKK3sKKwlEYXR1 bQkgICAqYXR0bnVtc2Q7CisKKwlhdHRudW1zZCA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtYXR0 cnMpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1hdHRyczsgaSsrKQorCQlhdHRudW1zZFtp XSA9IEludDE2R2V0RGF0dW0oYXR0bnVtc1tpXSk7CisKKwlyZXR1cm4gY29uc3RydWN0X2FycmF5 X2J1aWx0aW4oYXR0bnVtc2QsIG51bWF0dHJzLCBJTlQyT0lEKTsKK30KKworc3RhdGljIHZvaWQK K2FycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoT2lkIHJlbGlkLCBBcnJheVR5cGUgKmFy ciwgT2JqZWN0QWRkcmVzc2VzICphZGRycykKK3sKKwlEYXR1bQkgICAqYXR0bnVtc2Q7CisJaW50 CQkJbnVtYXR0cnM7CisKKwlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKGFyciwgSU5UMk9JRCwg JmF0dG51bXNkLCBOVUxMLCAmbnVtYXR0cnMpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1h dHRyczsgaSsrKQorCXsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOworCisJCU9iamVjdEFk ZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCwgRGF0dW1H ZXRJbnQxNihhdHRudW1zZFtpXSkpOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVy ZW5jZWQsIGFkZHJzKTsKKwl9Cit9CisKKy8qCisgKiBJbnNlcnQgYSByZWNvcmQgZm9yIGFuIGVs ZW1lbnQgaW50byB0aGUgcGdfcHJvcGdyYXBoX2VsZW1lbnQgY2F0YWxvZy4gIEFsc28KKyAqIGlu c2VydHMgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzIGludG8gdGhlaXIgcmVzcGVjdGl2ZSBjYXRhbG9n cy4KKyAqLworc3RhdGljIE9pZAoraW5zZXJ0X2VsZW1lbnRfcmVjb3JkKE9iamVjdEFkZHJlc3Mg cGdhZGRyZXNzLCBzdHJ1Y3QgZWxlbWVudF9pbmZvICplaW5mbykKK3sKKwlPaWQJCQlncmFwaGlk ID0gcGdhZGRyZXNzLm9iamVjdElkOworCVJlbGF0aW9uCXJlbDsKKwlOYW1lRGF0YQlhbGlhc25h bWU7CisJT2lkCQkJcGVvaWQ7CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wcm9wZ3JhcGhfZWxl bWVudF0gPSB7MH07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBoX2VsZW1lbnRdID0g ezB9OworCUhlYXBUdXBsZQl0dXA7CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2JqZWN0QWRk cmVzcyByZWZlcmVuY2VkOworCU9iamVjdEFkZHJlc3NlcyAqYWRkcnM7CisKKwlyZWwgPSB0YWJs ZV9vcGVuKFByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CXBlb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgUHJvcGdyYXBoRWxlbWVudE9iamVjdElu ZGV4SWQsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfb2lkKTsKKwllaW5mby0+ZWxlbWVudGlk ID0gcGVvaWQ7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfb2lkIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKHBlb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVu dF9wZ2VwZ2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGdyYXBoaWQpOworCXZhbHVlc1tBbnVt X3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXJlbGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGVp bmZvLT5yZWxpZCk7CisJbmFtZXN0cmNweSgmYWxpYXNuYW1lLCBlaW5mby0+YWxpYXNuYW1lKTsK Kwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VhbGlhcyAtIDFdID0gTmFtZUdl dERhdHVtKCZhbGlhc25hbWUpOworCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3Bn ZWtpbmQgLSAxXSA9IENoYXJHZXREYXR1bShlaW5mby0+a2luZCk7CisJdmFsdWVzW0FudW1fcGdf cHJvcGdyYXBoX2VsZW1lbnRfcGdlc3JjdmVydGV4aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o ZWluZm8tPnNyY3ZlcnRleGlkKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9w Z2VkZXN0dmVydGV4aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oZWluZm8tPmRlc3R2ZXJ0ZXhp ZCk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdla2V5IC0gMV0gPSBQb2lu dGVyR2V0RGF0dW0oZWluZm8tPmtleSk7CisKKwlpZiAoZWluZm8tPnNyY2tleSkKKwkJdmFsdWVz W0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jja2V5IC0gMV0gPSBQb2ludGVyR2V0RGF0 dW0oZWluZm8tPnNyY2tleSk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVt ZW50X3BnZXNyY2tleSAtIDFdID0gdHJ1ZTsKKwlpZiAoZWluZm8tPnNyY3JlZikKKwkJdmFsdWVz W0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3JjcmVmIC0gMV0gPSBQb2ludGVyR2V0RGF0 dW0oZWluZm8tPnNyY3JlZik7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVt ZW50X3BnZXNyY3JlZiAtIDFdID0gdHJ1ZTsKKwlpZiAoZWluZm8tPmRlc3RrZXkpCisJCXZhbHVl c1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RrZXkgLSAxXSA9IFBvaW50ZXJHZXRE YXR1bShlaW5mby0+ZGVzdGtleSk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3Byb3BncmFwaF9l bGVtZW50X3BnZWRlc3RrZXkgLSAxXSA9IHRydWU7CisJaWYgKGVpbmZvLT5kZXN0cmVmKQorCQl2 YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0cmVmIC0gMV0gPSBQb2ludGVy R2V0RGF0dW0oZWluZm8tPmRlc3RyZWYpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VkZXN0cmVmIC0gMV0gPSB0cnVlOworCisJdHVwID0gaGVhcF9mb3JtX3R1 cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxl SW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJT2JqZWN0QWRkcmVz c1NldChteXNlbGYsIFByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkLCBwZW9pZCk7CisKKwkvKiBB ZGQgZGVwZW5kZW5jeSBvbiB0aGUgcHJvcGVydHkgZ3JhcGggKi8KKwlyZWNvcmREZXBlbmRlbmN5 T24oJm15c2VsZiwgJnBnYWRkcmVzcywgREVQRU5ERU5DWV9BVVRPKTsKKworCWFkZHJzID0gbmV3 X29iamVjdF9hZGRyZXNzZXMoKTsKKworCS8qIEFkZCBkZXBlbmRlbmN5IG9uIHRoZSByZWxhdGlv biAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBl aW5mby0+cmVsaWQpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRk cnMpOworCWFycmF5X29mX2F0dG51bXNfdG9fb2JqZWN0YWRkcnMoZWluZm8tPnJlbGlkLCBlaW5m by0+a2V5LCBhZGRycyk7CisKKwkvKiBBZGQgZGVwZW5kZW5jaWVzIG9uIHZlcnRpY2VzICovCisJ aWYgKGVpbmZvLT5zcmN2ZXJ0ZXhpZCkKKwl7CisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNl ZCwgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQsIGVpbmZvLT5zcmN2ZXJ0ZXhpZCk7CisJCWFk ZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCQlhcnJheV9vZl9h dHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5yZWxpZCwgZWluZm8tPnNyY2tleSwgYWRkcnMp OworCQlhcnJheV9vZl9hdHRudW1zX3RvX29iamVjdGFkZHJzKGVpbmZvLT5zcmNyZWxpZCwgZWlu Zm8tPnNyY3JlZiwgYWRkcnMpOworCX0KKwlpZiAoZWluZm8tPmRlc3R2ZXJ0ZXhpZCkKKwl7CisJ CU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQs IGVpbmZvLT5kZXN0dmVydGV4aWQpOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVy ZW5jZWQsIGFkZHJzKTsKKwkJYXJyYXlfb2ZfYXR0bnVtc190b19vYmplY3RhZGRycyhlaW5mby0+ cmVsaWQsIGVpbmZvLT5kZXN0a2V5LCBhZGRycyk7CisJCWFycmF5X29mX2F0dG51bXNfdG9fb2Jq ZWN0YWRkcnMoZWluZm8tPmRlc3RyZWxpZCwgZWluZm8tPmRlc3RyZWYsIGFkZHJzKTsKKwl9CisK KwkvKiBUT0RPOiBkZXBlbmRlbmNpZXMgb24gZXF1YWxpdHkgb3BlcmF0b3JzLCBsaWtlIGZvciBm b3JlaWduIGtleXMgKi8KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15 c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgTm9M b2NrKTsKKworCWlmIChlaW5mby0+bGFiZWxzKQorCXsKKwkJTGlzdENlbGwgICAqbGM7CisKKwkJ Zm9yZWFjaChsYywgZWluZm8tPmxhYmVscykKKwkJeworCQkJUHJvcEdyYXBoTGFiZWxBbmRQcm9w ZXJ0aWVzICpscCA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcywgbGMp OworCQkJT2lkCQkJZWxsYWJlbG9pZDsKKworCQkJaWYgKGxwLT5sYWJlbCkKKwkJCQllbGxhYmVs b2lkID0gaW5zZXJ0X2xhYmVsX3JlY29yZChncmFwaGlkLCBwZW9pZCwgbHAtPmxhYmVsKTsKKwkJ CWVsc2UKKwkJCQllbGxhYmVsb2lkID0gaW5zZXJ0X2xhYmVsX3JlY29yZChncmFwaGlkLCBwZW9p ZCwgZWluZm8tPmFsaWFzbmFtZSk7CisJCQlpbnNlcnRfcHJvcGVydHlfcmVjb3JkcyhncmFwaGlk LCBlbGxhYmVsb2lkLCBlaW5mby0+cmVsaWQsIGxwLT5wcm9wZXJ0aWVzKTsKKworCQkJQ29tbWFu ZENvdW50ZXJJbmNyZW1lbnQoKTsKKwkJfQorCX0KKwllbHNlCisJeworCQlPaWQJCQllbGxhYmVs b2lkOworCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3Bl cnRpZXMpOworCisJCXByLT5hbGwgPSB0cnVlOworCQlwci0+bG9jYXRpb24gPSAtMTsKKworCQll bGxhYmVsb2lkID0gaW5zZXJ0X2xhYmVsX3JlY29yZChncmFwaGlkLCBwZW9pZCwgZWluZm8tPmFs aWFzbmFtZSk7CisJCWluc2VydF9wcm9wZXJ0eV9yZWNvcmRzKGdyYXBoaWQsIGVsbGFiZWxvaWQs IGVpbmZvLT5yZWxpZCwgcHIpOworCX0KKworCXJldHVybiBwZW9pZDsKK30KKworLyoKKyAqIElu c2VydCByZWNvcmRzIGZvciBhIGxhYmVsIGludG8gdGhlIHBnX3Byb3BncmFwaF9sYWJlbCBhbmQK KyAqIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIGNhdGFsb2dzLCBhbmQgcmVnaXN0ZXIgZGVw ZW5kZW5jaWVzLgorICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgbmV3IHBnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsIHJlY29yZC4KKyAqLworc3RhdGljIE9pZAoraW5zZXJ0X2xhYmVsX3Jl Y29yZChPaWQgZ3JhcGhpZCwgT2lkIHBlb2lkLCBjb25zdCBjaGFyICpsYWJlbCkKK3sKKwlPaWQJ CQlsYWJlbG9pZDsKKwlPaWQJCQllbGxhYmVsb2lkOworCisJLyoKKwkgKiBJbnNlcnQgaW50byBw Z19wcm9wZ3JhcGhfbGFiZWwgaWYgbm90IGFscmVhZHkgZXhpc3RpbmcuCisJICovCisJbGFiZWxv aWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBITEFCRUxOQU1FLCBBbnVtX3BnX3Byb3BncmFw aF9sYWJlbF9vaWQsIE9iamVjdElkR2V0RGF0dW0oZ3JhcGhpZCksIENTdHJpbmdHZXREYXR1bShs YWJlbCkpOworCWlmICghbGFiZWxvaWQpCisJeworCQlSZWxhdGlvbglyZWw7CisJCURhdHVtCQl2 YWx1ZXNbTmF0dHNfcGdfcHJvcGdyYXBoX2xhYmVsXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTmF0 dHNfcGdfcHJvcGdyYXBoX2xhYmVsXSA9IHswfTsKKwkJTmFtZURhdGEJbGFiZWxuYW1lOworCQlI ZWFwVHVwbGUJdHVwOworCQlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwkJT2JqZWN0QWRkcmVzcyBy ZWZlcmVuY2VkOworCisJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklk LCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlsYWJlbG9pZCA9IEdldE5ld09pZFdpdGhJbmRleChy ZWwsIFByb3BncmFwaExhYmVsT2JqZWN0SW5kZXhJZCwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxf b2lkKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2xhYmVsX29pZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShsYWJlbG9pZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9w Z2xwZ2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGdyYXBoaWQpOworCQluYW1lc3RyY3B5KCZs YWJlbG5hbWUsIGxhYmVsKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3BnbGxh YmVsIC0gMV0gPSBOYW1lR2V0RGF0dW0oJmxhYmVsbmFtZSk7CisKKwkJdHVwID0gaGVhcF9mb3Jt X3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJCUNhdGFsb2dU dXBsZUluc2VydChyZWwsIHR1cCk7CisJCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkJT2JqZWN0 QWRkcmVzc1NldChteXNlbGYsIFByb3BncmFwaExhYmVsUmVsYXRpb25JZCwgbGFiZWxvaWQpOwor CisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBncmFw aGlkKTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRF TkNZX0FVVE8pOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwl9CisKKwkvKgorCSAq IEluc2VydCBpbnRvIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsCisJICovCisJeworCQlSZWxh dGlvbglyZWw7CisJCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFi ZWxdID0gezB9OworCQlib29sCQludWxsc1tOYXR0c19wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJl bF0gPSB7MH07CisJCUhlYXBUdXBsZQl0dXA7CisJCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCQlP YmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisKKwkJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhF bGVtZW50TGFiZWxSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQllbGxhYmVsb2lk ID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgUHJvcGdyYXBoRWxlbWVudExhYmVsT2JqZWN0SW5k ZXhJZCwgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9vaWQpOworCQl2YWx1ZXNbQW51 bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0o ZWxsYWJlbG9pZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX3Bn ZWxsYWJlbGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGxhYmVsb2lkKTsKKwkJdmFsdWVzW0Fu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfcGdlbGVsaWQgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0ocGVvaWQpOworCisJCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2Ny KHJlbCksIHZhbHVlcywgbnVsbHMpOworCQlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CQloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBQcm9w Z3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBlbGxhYmVsb2lkKTsKKworCQlPYmplY3RBZGRy ZXNzU2V0KHJlZmVyZW5jZWQsIFByb3BncmFwaExhYmVsUmVsYXRpb25JZCwgbGFiZWxvaWQpOwor CQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfQVVU Tyk7CisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoRWxlbWVudFJlbGF0 aW9uSWQsIHBlb2lkKTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2Vk LCBERVBFTkRFTkNZX0FVVE8pOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwl9CisK KwlyZXR1cm4gZWxsYWJlbG9pZDsKK30KKworLyoKKyAqIEluc2VydCByZWNvcmRzIGZvciBwcm9w ZXJ0aWVzIGludG8gdGhlIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSBjYXRhbG9nLgorICovCitzdGF0 aWMgdm9pZAoraW5zZXJ0X3Byb3BlcnR5X3JlY29yZHMoT2lkIGdyYXBoaWQsIE9pZCBlbGxhYmVs b2lkLCBPaWQgcGdlcmVsaWQsIGNvbnN0IFByb3BHcmFwaFByb3BlcnRpZXMgKnByb3BlcnRpZXMp Cit7CisJTGlzdAkgICAqcHJvcGxpc3QgPSBOSUw7CisJUGFyc2VTdGF0ZSAqcHN0YXRlOworCVBh cnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCUxpc3QJICAgKnRwOworCVJlbGF0aW9uCXJlbDsK KwlMaXN0Q2VsbCAgICpsYzsKKworCWlmIChwcm9wZXJ0aWVzLT5hbGwpCisJeworCQlSZWxhdGlv bglhdHRSZWxhdGlvbjsKKwkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJU2NhbktleURhdGEga2V5WzFd OworCQlIZWFwVHVwbGUJYXR0cmlidXRlVHVwbGU7CisKKwkJYXR0UmVsYXRpb24gPSB0YWJsZV9v cGVuKEF0dHJpYnV0ZVJlbGF0aW9uSWQsIFJvd1NoYXJlTG9jayk7CisJCVNjYW5LZXlJbml0KCZr ZXlbMF0sCisJCQkJCUFudW1fcGdfYXR0cmlidXRlX2F0dHJlbGlkLAorCQkJCQlCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCU9iamVjdElkR2V0RGF0dW0ocGdlcmVsaWQpKTsK KwkJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihhdHRSZWxhdGlvbiwgQXR0cmlidXRlUmVsaWRO dW1JbmRleElkLAorCQkJCQkJCQkgIHRydWUsIE5VTEwsIDEsIGtleSk7CisJCXdoaWxlIChIZWFw VHVwbGVJc1ZhbGlkKGF0dHJpYnV0ZVR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJ CXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RS VUNUKGF0dHJpYnV0ZVR1cGxlKTsKKwkJCUNvbHVtblJlZiAgKmNyOworCQkJUmVzVGFyZ2V0ICAq cnQ7CisKKwkJCWlmIChhdHQtPmF0dG51bSA8PSAwIHx8IGF0dC0+YXR0aXNkcm9wcGVkKQorCQkJ CWNvbnRpbnVlOworCisJCQljciA9IG1ha2VOb2RlKENvbHVtblJlZik7CisJCQlydCA9IG1ha2VO b2RlKFJlc1RhcmdldCk7CisKKwkJCWNyLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmco cHN0cmR1cChOYW1lU3RyKGF0dC0+YXR0bmFtZSkpKSk7CisJCQljci0+bG9jYXRpb24gPSAtMTsK KworCQkJcnQtPm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoYXR0LT5hdHRuYW1lKSk7CisJCQlydC0+ dmFsID0gKE5vZGUgKikgY3I7CisJCQlydC0+bG9jYXRpb24gPSAtMTsKKworCQkJcHJvcGxpc3Qg PSBsYXBwZW5kKHByb3BsaXN0LCBydCk7CisJCX0KKwkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsK KwkJdGFibGVfY2xvc2UoYXR0UmVsYXRpb24sIFJvd1NoYXJlTG9jayk7CisJfQorCWVsc2UKKwl7 CisJCXByb3BsaXN0ID0gcHJvcGVydGllcy0+cHJvcGVydGllczsKKworCQlmb3JlYWNoKGxjLCBw cm9wbGlzdCkKKwkJeworCQkJUmVzVGFyZ2V0ICAqcnQgPSBsZmlyc3Rfbm9kZShSZXNUYXJnZXQs IGxjKTsKKworCQkJaWYgKCFydC0+bmFtZSAmJiAhSXNBKHJ0LT52YWwsIENvbHVtblJlZikpCisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAor CQkJCQkJZXJybXNnKCJwcm9wZXJ0eSBuYW1lIHJlcXVpcmVkIiksCisJCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24oTlVMTCwgcnQtPmxvY2F0aW9uKSk7CisJCX0KKwl9CisKKwlyZWwgPSB0YWJsZV9v cGVuKHBnZXJlbGlkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcHN0YXRlID0gbWFrZV9wYXJzZXN0 YXRlKE5VTEwpOworCW5zaXRlbSA9IGFkZFJhbmdlVGFibGVFbnRyeUZvclJlbGF0aW9uKHBzdGF0 ZSwKKwkJCQkJCQkJCQkgICByZWwsCisJCQkJCQkJCQkJICAgQWNjZXNzU2hhcmVMb2NrLAorCQkJ CQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJCQkJICAgZmFsc2UsCisJCQkJCQkJCQkJICAgdHJ1ZSk7 CisJYWRkTlNJdGVtVG9RdWVyeShwc3RhdGUsIG5zaXRlbSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7CisK Kwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwl0cCA9IHRyYW5zZm9ybVRhcmdldExpc3Qo cHN0YXRlLCBwcm9wbGlzdCwgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9QRVJUWSk7CisKKwlmb3Jl YWNoKGxjLCB0cCkKKwl7CisJCVRhcmdldEVudHJ5ICp0ZSA9IGxmaXJzdF9ub2RlKFRhcmdldEVu dHJ5LCBsYyk7CisKKwkJaW5zZXJ0X3Byb3BlcnR5X3JlY29yZChncmFwaGlkLCBlbGxhYmVsb2lk LCBwZ2VyZWxpZCwgdGUtPnJlc25hbWUsIHRlLT5leHByKTsKKwl9Cit9CisKKy8qCisgKiBJbnNl cnQgcmVjb3JkcyBmb3IgYSBwcm9wZXJ0eSBpbnRvIHRoZSBwZ19wcm9wZ3JhcGhfcHJvcGVydHkg YW5kCisgKiBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgY2F0YWxvZ3MsIGFuZCByZWdpc3Rl ciBkZXBlbmRlbmNpZXMuCisgKi8KK3N0YXRpYyB2b2lkCitpbnNlcnRfcHJvcGVydHlfcmVjb3Jk KE9pZCBncmFwaGlkLCBPaWQgZWxsYWJlbG9pZCwgT2lkIHBnZXJlbGlkLCBjb25zdCBjaGFyICpw cm9wbmFtZSwgY29uc3QgRXhwciAqZXhwcikKK3sKKwlPaWQJCQlwcm9wb2lkOworCU9pZAkJCWV4 cHJ0eXBpZDsKKwlPaWQJCQlwcm9wdHlwaWQ7CisKKwlleHBydHlwaWQgPSBleHByVHlwZSgoY29u c3QgTm9kZSAqKSBleHByKTsKKworCS8qCisJICogSW5zZXJ0IGludG8gcGdfcHJvcGdyYXBoX3By b3BlcnR5IGlmIG5vdCBhbHJlYWR5IGV4aXN0aW5nLgorCSAqLworCXByb3BvaWQgPSBHZXRTeXND YWNoZU9pZDIoUFJPUEdSQVBIUFJPUE5BTUUsIEFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29p ZCwgT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKSwgQ1N0cmluZ0dldERhdHVtKHByb3BuYW1lKSk7 CisJaWYgKCFwcm9wb2lkKQorCXsKKwkJUmVsYXRpb24JcmVsOworCQlOYW1lRGF0YQlwcm9wbmFt ZWRhdGE7CisJCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHJvcGdyYXBoX3Byb3BlcnR5XSA9IHsw fTsKKwkJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBoX3Byb3BlcnR5XSA9IHswfTsKKwkJ SGVhcFR1cGxlCXR1cDsKKwkJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJCU9iamVjdEFkZHJlc3Mg cmVmZXJlbmNlZDsKKworCQlwcm9wdHlwaWQgPSBleHBydHlwaWQ7CisKKwkJcmVsID0gdGFibGVf b3BlbihQcm9wZ3JhcGhQcm9wZXJ0eVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ CXByb3BvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBQcm9wZ3JhcGhQcm9wZXJ0eU9iamVj dEluZGV4SWQsIEFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCk7CisJCXZhbHVlc1tBbnVt X3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ocHJvcG9p ZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3BwZ2lkIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKGdyYXBoaWQpOworCQluYW1lc3RyY3B5KCZwcm9wbmFtZWRhdGEsIHBy b3BuYW1lKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X3BncG5hbWUgLSAx XSA9IE5hbWVHZXREYXR1bSgmcHJvcG5hbWVkYXRhKTsKKwkJdmFsdWVzW0FudW1fcGdfcHJvcGdy YXBoX3Byb3BlcnR5X3BncHR5cGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHByb3B0eXBpZCk7 CisKKwkJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVz LCBudWxscyk7CisJCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJCWhlYXBfZnJlZXR1 cGxlKHR1cCk7CisKKwkJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFByb3BncmFwaFByb3BlcnR5 UmVsYXRpb25JZCwgcHJvcG9pZCk7CisKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBS ZWxhdGlvblJlbGF0aW9uSWQsIGdyYXBoaWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2Vs ZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfQVVUTyk7CisJCU9iamVjdEFkZHJlc3NTZXQocmVm ZXJlbmNlZCwgVHlwZVJlbGF0aW9uSWQsIHByb3B0eXBpZCk7CisJCXJlY29yZERlcGVuZGVuY3lP bigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJCXRhYmxlX2Ns b3NlKHJlbCwgTm9Mb2NrKTsKKwl9CisJZWxzZQorCXsKKwkJcHJvcHR5cGlkID0gR2V0U3lzQ2Fj aGVPaWQxKFBST1BHUkFQSFBST1BPSUQsIEFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X3BncHR5 cGlkLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQpKTsKKwl9CisKKwkvKgorCSAqIENoZWNrIHRo YXQgaW4gdGhlIGdyYXBoLCBhbGwgcHJvcGVydGllcyB3aXRoIHRoZSBzYW1lIG5hbWUgaGF2ZSB0 aGUKKwkgKiBzYW1lIHR5cGUgKGluZGVwZW5kZW50IG9mIHdoaWNoIGxhYmVsIHRoZXkgYXJlIG9u KS4gIChTZWUgU1FML1BHUQorCSAqIHN1YmNsYXVzZSAiQ29uc2lzdGVuY3kgY2hlY2sgb2YgYSB0 YWJ1bGFyIHByb3BlcnR5IGdyYXBoIGRlc2NyaXB0b3IiLikKKwkgKi8KKwlpZiAocHJvcHR5cGlk ICE9IGV4cHJ0eXBpZCkKKwl7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJwcm9wZXJ0eSBcIiVzXCIgZGF0YSB0eXBlIG1p c21hdGNoOiAlcyB2cy4gJXMiLAorCQkJCQkgICBwcm9wbmFtZSwgZm9ybWF0X3R5cGVfYmUocHJv cHR5cGlkKSwgZm9ybWF0X3R5cGVfYmUoZXhwcnR5cGlkKSksCisJCQkJZXJyZGV0YWlsKCJJbiBh IHByb3BlcnR5IGdyYXBoLCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUg dGhlIHNhbWUgZGF0YSB0eXBlIGluIGVhY2ggbGFiZWwuIikpOworCX0KKworCS8qCisJICogSW5z ZXJ0IGludG8gcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5CisJICovCisJeworCQlSZWxhdGlv bglyZWw7CisJCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5 XSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5 XSA9IHswfTsKKwkJT2lkCQkJcGxwb2lkOworCQlIZWFwVHVwbGUJdHVwOworCQlPYmplY3RBZGRy ZXNzIG15c2VsZjsKKwkJT2JqZWN0QWRkcmVzcyByZWZlcmVuY2VkOworCisJCXJlbCA9IHRhYmxl X29wZW4oUHJvcGdyYXBoTGFiZWxQcm9wZXJ0eVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2sp OworCisJCXBscG9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFByb3BncmFwaExhYmVsUHJv cGVydHlPYmplY3RJbmRleElkLCBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9vaWQp OworCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfb2lkIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKHBscG9pZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9sYWJl bF9wcm9wZXJ0eV9wbHBwcm9waWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ocHJvcG9pZCk7CisJ CXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBlbGxhYmVsaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0oZWxsYWJlbG9pZCk7CisJCXZhbHVlc1tBbnVtX3BnX3Byb3Bn cmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBleHByIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG5v ZGVUb1N0cmluZyhleHByKSk7CisKKwkJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0 RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1 cCk7CisJCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkJT2JqZWN0QWRkcmVzc1NldChteXNlbGYs IFByb3BncmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkLCBwbHBvaWQpOworCisJCU9iamVjdEFk ZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLCBwcm9wb2lk KTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZ X0FVVE8pOworCisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoRWxlbWVu dExhYmVsUmVsYXRpb25JZCwgZWxsYWJlbG9pZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlz ZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9BVVRPKTsKKworCQlyZWNvcmREZXBlbmRlbmN5 T25TaW5nbGVSZWxFeHByKCZteXNlbGYsIChOb2RlICopIGNvcHlPYmplY3QoZXhwciksIHBnZXJl bGlkLCBERVBFTkRFTkNZX05PUk1BTCwgREVQRU5ERU5DWV9OT1JNQUwsIGZhbHNlKTsKKworCQl0 YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJfQorfQorCisvKgorICogQ2hlY2sgdGhhdCBmb3Ig dGhlIGdpdmVuIGdyYXBoIGVsZW1lbnQsIGFsbCBwcm9wZXJ0aWVzIHdpdGggdGhlIHNhbWUgbmFt ZQorICogaGF2ZSB0aGUgc2FtZSBleHByZXNzaW9uIGZvciBlYWNoIGxhYmVsLiAgKFNlZSBTUUwv UEdRIHN1YmNsYXVzZSAiQ3JlYXRpb24KKyAqIG9mIGFuIGVsZW1lbnQgdGFibGUgZGVzY3JpcHRv ciIuKQorICoKKyAqIFdlIGNoZWNrIHRoaXMgYWZ0ZXIgYWxsIHRoZSBjYXRhbG9nIHJlY29yZHMg YXJlIGFscmVhZHkgaW5zZXJ0ZWQuICBUaGlzCisgKiBtYWtlcyBpdCBlYXNpZXIgdG8gc2hhcmUg dGhpcyBjb2RlIGJldHdlZW4gQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFuZCBBTFRFUgorICogUFJP UEVSVFkgR1JBUEguICBXZSBwYXNzIGluIHRoZSBlbGVtZW50IE9JRCBzbyB0aGF0IEFMVEVSIFBS T1BFUlRZIEdSQVBICisgKiBvbmx5IGhhcyB0byBjaGVjayB0aGUgZWxlbWVudCBpdCBoYXMganVz dCBvcGVyYXRlZCBvbi4gIENSRUFURSBQUk9QRVJUWQorICogR1JPVVAgY2hlY2tzIGFsbCBlbGVt ZW50cyBpdCBoYXMgY3JlYXRlZC4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX2VsZW1lbnRfcHJv cGVydGllcyhPaWQgcGVvaWQpCit7CisJUmVsYXRpb24JcmVsMTsKKwlTY2FuS2V5RGF0YSBrZXkx WzFdOworCVN5c1NjYW5EZXNjIHNjYW4xOworCUhlYXBUdXBsZQl0dXBsZTE7CisJTGlzdAkgICAq cHJvcG9pZHMgPSBOSUw7CisJTGlzdAkgICAqcHJvcGV4cHJzID0gTklMOworCisJcmVsMSA9IHRh YmxlX29wZW4oUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKwlTY2FuS2V5SW5pdCgma2V5MVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50 X2xhYmVsX3BnZWxlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJ CQlPYmplY3RJZEdldERhdHVtKHBlb2lkKSk7CisKKwlzY2FuMSA9IHN5c3RhYmxlX2JlZ2luc2Nh bihyZWwxLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxFbGVtZW50TGFiZWxJbmRleElkLCB0cnVlLCBO VUxMLCAxLCBrZXkxKTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZTEgPSBzeXN0YWJs ZV9nZXRuZXh0KHNjYW4xKSkpCisJeworCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVs IGVsbGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCkgR0VUU1RSVUNUKHR1 cGxlMSk7CisJCVJlbGF0aW9uCXJlbDI7CisJCVNjYW5LZXlEYXRhIGtleTJbMV07CisJCVN5c1Nj YW5EZXNjIHNjYW4yOworCQlIZWFwVHVwbGUJdHVwbGUyOworCisJCXJlbDIgPSB0YWJsZV9vcGVu KFByb3BncmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCQlT Y2FuS2V5SW5pdCgma2V5MlswXSwKKwkJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVy dHlfcGxwZWxsYWJlbGlkLAorCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJ CQkJCU9iamVjdElkR2V0RGF0dW0oZWxsYWJlbC0+b2lkKSk7CisKKwkJc2NhbjIgPSBzeXN0YWJs ZV9iZWdpbnNjYW4ocmVsMiwgUHJvcGdyYXBoTGFiZWxQcm9wZXJ0eUxhYmVsUHJvcEluZGV4SWQs IHRydWUsIE5VTEwsIDEsIGtleTIpOworCQl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZTIg PSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4yKSkpCisJCXsKKwkJCUZvcm1fcGdfcHJvcGdyYXBoX2xh YmVsX3Byb3BlcnR5IGxwcm9wID0gKEZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5KSBH RVRTVFJVQ1QodHVwbGUyKTsKKwkJCU9pZAkJCXByb3BvaWQ7CisJCQlEYXR1bQkJZGF0dW07CisJ CQlib29sCQlpc251bGw7CisJCQljaGFyCSAgICpwcm9wZXhwcjsKKwkJCUxpc3RDZWxsICAgKmxj MSwKKwkJCQkJICAgKmxjMjsKKwkJCWJvb2wJCWZvdW5kOworCisJCQlwcm9wb2lkID0gbHByb3At PnBscHByb3BpZDsKKwkJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlMiwgQW51bV9wZ19wcm9w Z3JhcGhfbGFiZWxfcHJvcGVydHlfcGxwZXhwciwgUmVsYXRpb25HZXREZXNjcihyZWwyKSwgJmlz bnVsbCk7CisJCQlBc3NlcnQoIWlzbnVsbCk7CisJCQlwcm9wZXhwciA9IFRleHREYXR1bUdldENT dHJpbmcoZGF0dW0pOworCisJCQlmb3VuZCA9IGZhbHNlOworCQkJZm9yYm90aChsYzEsIHByb3Bv aWRzLCBsYzIsIHByb3BleHBycykKKwkJCXsKKwkJCQlpZiAocHJvcG9pZCA9PSBsZmlyc3Rfb2lk KGxjMSkpCisJCQkJeworCQkJCQlOb2RlCSAgICpuYSwKKwkJCQkJCQkgICAqbmI7CisKKwkJCQkJ bmEgPSBzdHJpbmdUb05vZGUocHJvcGV4cHIpOworCQkJCQluYiA9IHN0cmluZ1RvTm9kZShsZmly c3QobGMyKSk7CisKKwkJCQkJZm91bmQgPSB0cnVlOworCisJCQkJCWlmICghZXF1YWwobmEsIG5i KSkKKwkJCQkJeworCQkJCQkJSGVhcFR1cGxlCXR1cGxlMzsKKwkJCQkJCUZvcm1fcGdfcHJvcGdy YXBoX2VsZW1lbnQgZWxmb3JtOworCQkJCQkJTGlzdAkgICAqZHBjb250ZXh0OworCQkJCQkJY2hh cgkgICAqZHBhLAorCQkJCQkJCQkgICAqZHBiOworCisJCQkJCQl0dXBsZTMgPSBTZWFyY2hTeXND YWNoZTEoUFJPUEdSQVBIRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocGVvaWQpKTsKKwkJCQkJCWlm ICghdHVwbGUzKQorCQkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBw cm9wZXJ0eSBncmFwaCBlbGVtZW50ICV1IiwgcGVvaWQpOworCQkJCQkJZWxmb3JtID0gKEZvcm1f cGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXBsZTMpOworCQkJCQkJZHBjb250ZXh0 ID0gZGVwYXJzZV9jb250ZXh0X2ZvcihnZXRfcmVsX25hbWUoZWxmb3JtLT5wZ2VyZWxpZCksIGVs Zm9ybS0+cGdlcmVsaWQpOworCisJCQkJCQlkcGEgPSBkZXBhcnNlX2V4cHJlc3Npb24obmEsIGRw Y29udGV4dCwgZmFsc2UsIGZhbHNlKTsKKwkJCQkJCWRwYiA9IGRlcGFyc2VfZXhwcmVzc2lvbihu YiwgZHBjb250ZXh0LCBmYWxzZSwgZmFsc2UpOworCisJCQkJCQkvKgorCQkJCQkJICogc2hvdyBp biBzb3J0ZWQgb3JkZXIgdG8ga2VlcCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YKKwkJCQkJCSAqIGlu ZGV4IG9yZGVyCisJCQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoZHBhLCBkcGIpID4gMCkKKwkJ CQkJCXsKKwkJCQkJCQljaGFyCSAgICp0bXA7CisKKwkJCQkJCQl0bXAgPSBkcGE7CisJCQkJCQkJ ZHBhID0gZHBiOworCQkJCQkJCWRwYiA9IHRtcDsKKwkJCQkJCX0KKworCQkJCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCWVy cm1zZygiZWxlbWVudCBcIiVzXCIgcHJvcGVydHkgXCIlc1wiIGV4cHJlc3Npb24gbWlzbWF0Y2g6 ICVzIHZzLiAlcyIsCisJCQkJCQkJCQkgICBOYW1lU3RyKGVsZm9ybS0+cGdlYWxpYXMpLCBnZXRf cHJvcGdyYXBoX3Byb3BlcnR5X25hbWUocHJvcG9pZCksIGRwYSwgZHBiKSwKKwkJCQkJCQkJZXJy ZGV0YWlsKCJJbiBhIHByb3BlcnR5IGdyYXBoIGVsZW1lbnQsIGEgcHJvcGVydHkgb2YgdGhlIHNh bWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBleHByZXNzaW9uIGluIGVhY2ggbGFiZWwuIikp OworCisJCQkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUzKTsKKwkJCQkJfQorCisJCQkJCWJyZWFr OworCQkJCX0KKwkJCX0KKworCQkJaWYgKCFmb3VuZCkKKwkJCXsKKwkJCQlwcm9wb2lkcyA9IGxh cHBlbmRfb2lkKHByb3BvaWRzLCBwcm9wb2lkKTsKKwkJCQlwcm9wZXhwcnMgPSBsYXBwZW5kKHBy b3BleHBycywgcHJvcGV4cHIpOworCQkJfQorCQl9CisJCXN5c3RhYmxlX2VuZHNjYW4oc2NhbjIp OworCQl0YWJsZV9jbG9zZShyZWwyLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KKworCXN5c3RhYmxl X2VuZHNjYW4oc2NhbjEpOworCXRhYmxlX2Nsb3NlKHJlbDEsIEFjY2Vzc1NoYXJlTG9jayk7Cit9 CisKKy8qCisgKiBDaGVjayB0aGF0IGZvciB0aGUgZ2l2ZW4gZWxlbWVudCBsYWJlbCwgYWxsIGxh YmVscyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoZQorICogZ3JhcGggaGF2ZSB0aGUgc2FtZSBudW1i ZXIgYW5kIG5hbWVzIG9mIHByb3BlcnRpZXMgKGluZGVwZW5kZW50IG9mIHdoaWNoCisgKiBlbGVt ZW50IHRoZXkgYXJlIG9uKS4gIChTZWUgU1FML1BHUSBzdWJjbGF1c2UgIkNvbnNpc3RlbmN5IGNo ZWNrIG9mIGEKKyAqIHRhYnVsYXIgcHJvcGVydHkgZ3JhcGggZGVzY3JpcHRvciIuKQorICoKKyAq IFdlIGNoZWNrIHRoaXMgYWZ0ZXIgYWxsIHRoZSBjYXRhbG9nIHJlY29yZHMgYXJlIGFscmVhZHkg aW5zZXJ0ZWQuICBUaGlzCisgKiBtYWtlcyBpdCBlYXNpZXIgdG8gc2hhcmUgdGhpcyBjb2RlIGJl dHdlZW4gQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFuZCBBTFRFUgorICogUFJPUEVSVFkgR1JBUEgu ICBXZSBwYXNzIGluIHRoZSBlbGVtZW50IGxhYmVsIE9JRCBzbyB0aGF0IHNvbWUgdmFyaWFudHMg b2YKKyAqIEFMVEVSIFBST1BFUlRZIEdSQVBIIG9ubHkgaGF2ZSB0byBjaGVjayB0aGUgZWxlbWVu dCBsYWJlbCBpdCBoYXMganVzdAorICogb3BlcmF0ZWQgb24uICBDUkVBVEUgUFJPUEVSVFkgR1JP VVAgYW5kIG90aGVyIEFMVEVSIFBST1BFUlRZIEdSQVBIIHZhcmlhbnRzCisgKiBjaGVjayBhbGwg bGFiZWxzLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfZWxlbWVudF9sYWJlbF9wcm9wZXJ0aWVz KE9pZCBlbGxhYmVsb2lkKQoreworCVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBzY2FuOwor CVNjYW5LZXlEYXRhIGtleVsxXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJbGFiZWxpZCA9 IEludmFsaWRPaWQ7CisJT2lkCQkJcmVmX2VsbGFiZWxvaWQgPSBJbnZhbGlkT2lkOworCUxpc3QJ ICAgKm15cHJvcHMsCisJCQkgICAqcmVmcHJvcHM7CisJTGlzdAkgICAqZGlmZjEsCisJCQkgICAq ZGlmZjI7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9u SWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkvKgorCSAqIEdldCBlbGVtZW50IGxhYmVsIGluZm8K KwkgKi8KKwlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfbGFiZWxfb2lkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwKKwkJCQlGX09JREVRLCBP YmplY3RJZEdldERhdHVtKGVsbGFiZWxvaWQpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2Fu KHJlbCwgUHJvcGdyYXBoRWxlbWVudExhYmVsT2JqZWN0SW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwg a2V5KTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2Nh bikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCBlbGxhYmVsID0gKEZv cm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJbGFi ZWxpZCA9IGVsbGFiZWwtPnBnZWxsYWJlbGlkOworCX0KKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4p OworCWlmICghbGFiZWxpZCkKKwkJZWxvZyhFUlJPUiwgImVsZW1lbnQgbGFiZWwgJXUgbm90IGZv dW5kIiwgZWxsYWJlbG9pZCk7CisKKwkvKgorCSAqIEZpbmQgYSByZWZlcmVuY2UgZWxlbWVudCBs YWJlbCB0byBmZXRjaCBsYWJlbCBwcm9wZXJ0aWVzLiAgVGhlCisJICogcmVmZXJlbmNlIGVsZW1l bnQgbGFiZWwgaGFzIHRvIGhhdmUgdGhlIGxhYmVsIE9JRCBhcyB0aGUgb25lIGJlaW5nCisJICog Y2hlY2tlZCBidXQgYmUgZGlzdGluY3QgZnJvbSB0aGUgb25lIGJlaW5nIGNoZWNrZWQuCisJICov CisJU2NhbktleUluaXQoJmtleVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xh YmVsX3BnZWxsYWJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwKKwkJCQlGX09JREVR LCBPYmplY3RJZEdldERhdHVtKGxhYmVsaWQpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2Fu KHJlbCwgUHJvcGdyYXBoRWxlbWVudExhYmVsTGFiZWxJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBr ZXkpOworCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChz Y2FuKSkpCisJeworCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIG90aGVyZWxsYWJl bCA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1QodHVwbGUpOwor CisJCWlmIChvdGhlcmVsbGFiZWwtPm9pZCAhPSBlbGxhYmVsb2lkKQorCQl7CisJCQlyZWZfZWxs YWJlbG9pZCA9IG90aGVyZWxsYWJlbC0+b2lkOworCQkJYnJlYWs7CisJCX0KKwl9CisJc3lzdGFi bGVfZW5kc2NhbihzY2FuKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsK KworCS8qCisJICogSWYgdGhlcmUgaXMgbm90IHByZXZpb3VzIGRlZmluaXRpb24gb2YgdGhpcyBs YWJlbCwgdGhlbiB3ZSBhcmUgZG9uZS4KKwkgKi8KKwlpZiAoIXJlZl9lbGxhYmVsb2lkKQorCQly ZXR1cm47CisKKwkvKgorCSAqIE5vdyBjaGVjayBudW1iZXIgYW5kIG5hbWVzLgorCSAqCisJICog WFhYIFdlIGNvdWxkIHByb3ZpZGUgbW9yZSBkZXRhaWwgaW4gdGhlIGVycm9yIG1lc3NhZ2VzLCBi dXQgdGhhdCB3b3VsZAorCSAqIHByb2JhYmx5IG9ubHkgYmUgdXNlZnVsIGZvciBzb21lIEFMVEVS IGNvbW1hbmRzLCBiZWNhdXNlIG90aGVyd2lzZSBpdCdzCisJICogbm90IHJlYWxseSBjbGVhciB3 aGljaCBsYWJlbCBkZWZpbml0aW9uIGlzIHRoZSB3cm9uZyBvbmUsIGFuZCBzbyB5b3UnZAorCSAq IGhhdmUgdG8gY29uc3RydWN0IGEgcmF0aGVyIHZlcmJvc2UgcmVwb3J0IHRvIGJlIG9mIGFueSB1 c2UuICBMZXQncyBrZWVwCisJICogaXQgc2ltcGxlIGZvciBub3cuCisJICovCisKKwlteXByb3Bz ID0gZ2V0X2VsZW1lbnRfbGFiZWxfcHJvcGVydHlfbmFtZXMoZWxsYWJlbG9pZCk7CisJcmVmcHJv cHMgPSBnZXRfZWxlbWVudF9sYWJlbF9wcm9wZXJ0eV9uYW1lcyhyZWZfZWxsYWJlbG9pZCk7CisK KwlpZiAobGlzdF9sZW5ndGgocmVmcHJvcHMpICE9IGxpc3RfbGVuZ3RoKG15cHJvcHMpKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklU SU9OKSwKKwkJCQllcnJtc2coIm1pc21hdGNoaW5nIG51bWJlciBvZiBwcm9wZXJ0aWVzIGluIGRl ZmluaXRpb24gb2YgbGFiZWwgXCIlc1wiIiwgZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKGxhYmVs aWQpKSk7CisKKwlkaWZmMSA9IGxpc3RfZGlmZmVyZW5jZShteXByb3BzLCByZWZwcm9wcyk7CisJ ZGlmZjIgPSBsaXN0X2RpZmZlcmVuY2UocmVmcHJvcHMsIG15cHJvcHMpOworCisJaWYgKGRpZmYx IHx8IGRpZmYyKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQllcnJtc2coIm1pc21hdGNoaW5nIHByb3BlcnRpZXMg bmFtZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCBcIiVzXCIiLCBnZXRfcHJvcGdyYXBoX2xhYmVs X25hbWUobGFiZWxpZCkpKTsKK30KKworLyoKKyAqIEFzIGFib3ZlLCBidXQgY2hlY2sgYWxsIGxh YmVscyBvZiBhIGdyYXBoLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfYWxsX2xhYmVsc19wcm9w ZXJ0aWVzKE9pZCBwZ3JlbGlkKQoreworCWZvcmVhY2hfb2lkKGxhYmVsb2lkLCBnZXRfZ3JhcGhf bGFiZWxfaWRzKHBncmVsaWQpKQorCXsKKwkJZm9yZWFjaF9vaWQoZWxsYWJlbG9pZCwgZ2V0X2xh YmVsX2VsZW1lbnRfbGFiZWxfaWRzKGxhYmVsb2lkKSkKKwkJeworCQkJY2hlY2tfZWxlbWVudF9s YWJlbF9wcm9wZXJ0aWVzKGVsbGFiZWxvaWQpOworCQl9CisJfQorfQorCisvKgorICogQUxURVIg UFJPUEVSVFkgR1JBUEgKKyAqLworT2JqZWN0QWRkcmVzcworQWx0ZXJQcm9wR3JhcGgoUGFyc2VT dGF0ZSAqcHN0YXRlLCBjb25zdCBBbHRlclByb3BHcmFwaFN0bXQgKnN0bXQpCit7CisJT2lkCQkJ cGdyZWxpZDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlPYmplY3RBZGRyZXNzIHBnYWRkcmVzczsKKwor CXBncmVsaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+cGduYW1lLAorCQkJCQkJ CQkJICAgU2hhcmVSb3dFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJICAgc3RtdC0+bWlzc2luZ19v ayA/IFJWUl9NSVNTSU5HX09LIDogMCwKKwkJCQkJCQkJCSAgIFJhbmdlVmFyQ2FsbGJhY2tPd25z UmVsYXRpb24sCisJCQkJCQkJCQkgICBOVUxMKTsKKwlpZiAocGdyZWxpZCA9PSBJbnZhbGlkT2lk KQorCXsKKwkJZXJlcG9ydChOT1RJQ0UsCisJCQkJKGVycm1zZygicmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0LCBza2lwcGluZyIsCisJCQkJCQlzdG10LT5wZ25hbWUtPnJlbG5hbWUpKSk7 CisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwl9CisKKwlPYmplY3RBZGRyZXNzU2V0 KHBnYWRkcmVzcywgUmVsYXRpb25SZWxhdGlvbklkLCBwZ3JlbGlkKTsKKworCWZvcmVhY2gobGMs IHN0bXQtPmFkZF92ZXJ0ZXhfdGFibGVzKQorCXsKKwkJUHJvcEdyYXBoVmVydGV4ICp2ZXJ0ZXgg PSBsZmlyc3Rfbm9kZShQcm9wR3JhcGhWZXJ0ZXgsIGxjKTsKKwkJc3RydWN0IGVsZW1lbnRfaW5m byAqdmluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJT2lkCQkJcGVvaWQ7CisKKwkJdmluZm8gPSBw YWxsb2MwX29iamVjdChzdHJ1Y3QgZWxlbWVudF9pbmZvKTsKKwkJdmluZm8tPmtpbmQgPSBQR0VL SU5EX1ZFUlRFWDsKKworCQl2aW5mby0+cmVsaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQo dmVydGV4LT52dGFibGUsIEFjY2Vzc1NoYXJlTG9jaywgMCwgUmFuZ2VWYXJDYWxsYmFja093bnNS ZWxhdGlvbiwgTlVMTCk7CisKKwkJcmVsID0gdGFibGVfb3Blbih2aW5mby0+cmVsaWQsIE5vTG9j ayk7CisKKwkJaWYgKHJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5D RV9URU1QICYmIGdldF9yZWxfcGVyc2lzdGVuY2UocGdyZWxpZCkgIT0gUkVMUEVSU0lTVEVOQ0Vf VEVNUCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCisJCQkJCSBlcnJtc2coImNhbm5vdCBhZGQgdGVtcG9yYXJ5IGVs ZW1lbnQgdGFibGUgdG8gbm9uLXRlbXBvcmFyeSBwcm9wZXJ0eSBncmFwaCIpLAorCQkJCQkgZXJy ZGV0YWlsKCJUYWJsZSBcIiVzXCIgaXMgYSB0ZW1wb3JhcnkgdGFibGUuIiwgZ2V0X3JlbF9uYW1l KHZpbmZvLT5yZWxpZCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmVydGV4 LT52dGFibGUtPmxvY2F0aW9uKSkpOworCisJCWlmICh2ZXJ0ZXgtPnZ0YWJsZS0+YWxpYXMpCisJ CQl2aW5mby0+YWxpYXNuYW1lID0gdmVydGV4LT52dGFibGUtPmFsaWFzLT5hbGlhc25hbWU7CisJ CWVsc2UKKwkJCXZpbmZvLT5hbGlhc25hbWUgPSB2ZXJ0ZXgtPnZ0YWJsZS0+cmVsbmFtZTsKKwor CQl2aW5mby0+a2V5ID0gcHJvcGdyYXBoX2VsZW1lbnRfZ2V0X2tleShwc3RhdGUsIHZlcnRleC0+ dmtleSwgcmVsLCB2aW5mby0+YWxpYXNuYW1lLCB2ZXJ0ZXgtPmxvY2F0aW9uKTsKKworCQl2aW5m by0+bGFiZWxzID0gdmVydGV4LT5sYWJlbHM7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2sp OworCisJCXBlb2lkID0gaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKHBnYWRkcmVzcywgdmluZm8pOwor CisJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJCWNoZWNrX2VsZW1lbnRfcHJvcGVydGll cyhwZW9pZCk7CisJCWNoZWNrX2FsbF9sYWJlbHNfcHJvcGVydGllcyhwZ3JlbGlkKTsKKwl9CisK Kwlmb3JlYWNoKGxjLCBzdG10LT5hZGRfZWRnZV90YWJsZXMpCisJeworCQlQcm9wR3JhcGhFZGdl ICplZGdlID0gbGZpcnN0X25vZGUoUHJvcEdyYXBoRWRnZSwgbGMpOworCQlzdHJ1Y3QgZWxlbWVu dF9pbmZvICplaW5mbzsKKwkJUmVsYXRpb24JcmVsOworCQlSZWxhdGlvbglzcmNyZWw7CisJCVJl bGF0aW9uCWRlc3RyZWw7CisJCU9pZAkJCXBlb2lkOworCisJCWVpbmZvID0gcGFsbG9jMF9vYmpl Y3Qoc3RydWN0IGVsZW1lbnRfaW5mbyk7CisJCWVpbmZvLT5raW5kID0gUEdFS0lORF9FREdFOwor CisJCWVpbmZvLT5yZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChlZGdlLT5ldGFibGUs IEFjY2Vzc1NoYXJlTG9jaywgMCwgUmFuZ2VWYXJDYWxsYmFja093bnNSZWxhdGlvbiwgTlVMTCk7 CisKKwkJcmVsID0gdGFibGVfb3BlbihlaW5mby0+cmVsaWQsIE5vTG9jayk7CisKKwkJaWYgKHJl bC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QICYmIGdldF9y ZWxfcGVyc2lzdGVuY2UocGdyZWxpZCkgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElP TiksCisJCQkJCSBlcnJtc2coImNhbm5vdCBhZGQgdGVtcG9yYXJ5IGVsZW1lbnQgdGFibGUgdG8g bm9uLXRlbXBvcmFyeSBwcm9wZXJ0eSBncmFwaCIpLAorCQkJCQkgZXJyZGV0YWlsKCJUYWJsZSBc IiVzXCIgaXMgYSB0ZW1wb3JhcnkgdGFibGUuIiwgZ2V0X3JlbF9uYW1lKGVpbmZvLT5yZWxpZCkp LAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZWRnZS0+ZXRhYmxlLT5sb2NhdGlv bikpKTsKKworCQlpZiAoZWRnZS0+ZXRhYmxlLT5hbGlhcykKKwkJCWVpbmZvLT5hbGlhc25hbWUg PSBlZGdlLT5ldGFibGUtPmFsaWFzLT5hbGlhc25hbWU7CisJCWVsc2UKKwkJCWVpbmZvLT5hbGlh c25hbWUgPSBlZGdlLT5ldGFibGUtPnJlbG5hbWU7CisKKwkJZWluZm8tPmtleSA9IHByb3BncmFw aF9lbGVtZW50X2dldF9rZXkocHN0YXRlLCBlZGdlLT5la2V5LCByZWwsIGVpbmZvLT5hbGlhc25h bWUsIGVkZ2UtPmxvY2F0aW9uKTsKKworCQllaW5mby0+c3JjdmVydGV4aWQgPSBnZXRfdmVydGV4 X29pZChwc3RhdGUsIHBncmVsaWQsIGVkZ2UtPmVzcmN2ZXJ0ZXgsIGVkZ2UtPmxvY2F0aW9uKTsK KwkJZWluZm8tPmRlc3R2ZXJ0ZXhpZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwg ZWRnZS0+ZWRlc3R2ZXJ0ZXgsIGVkZ2UtPmxvY2F0aW9uKTsKKworCQllaW5mby0+c3JjcmVsaWQg PSBnZXRfZWxlbWVudF9yZWxpZChlaW5mby0+c3JjdmVydGV4aWQpOworCQllaW5mby0+ZGVzdHJl bGlkID0gZ2V0X2VsZW1lbnRfcmVsaWQoZWluZm8tPmRlc3R2ZXJ0ZXhpZCk7CisKKwkJc3JjcmVs ID0gdGFibGVfb3BlbihlaW5mby0+c3JjcmVsaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWRlc3Ry ZWwgPSB0YWJsZV9vcGVuKGVpbmZvLT5kZXN0cmVsaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJ cHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ZXNyY2tleSwgZWRnZS0+ ZXNyY3ZlcnRleGNvbHMsIHJlbCwgc3JjcmVsLAorCQkJCQkJCQkJZWluZm8tPmFsaWFzbmFtZSwg ZWRnZS0+bG9jYXRpb24sICJTT1VSQ0UiLAorCQkJCQkJCQkJJmVpbmZvLT5zcmNrZXksICZlaW5m by0+c3JjcmVmKTsKKwkJcHJvcGdyYXBoX2VkZ2VfZ2V0X3JlZl9rZXlzKHBzdGF0ZSwgZWRnZS0+ ZWRlc3RrZXksIGVkZ2UtPmVkZXN0dmVydGV4Y29scywgcmVsLCBkZXN0cmVsLAorCQkJCQkJCQkJ ZWluZm8tPmFsaWFzbmFtZSwgZWRnZS0+bG9jYXRpb24sICJERVNUSU5BVElPTiIsCisJCQkJCQkJ CQkmZWluZm8tPmRlc3RrZXksICZlaW5mby0+ZGVzdHJlZik7CisKKwkJZWluZm8tPmxhYmVscyA9 IGVkZ2UtPmxhYmVsczsKKworCQl0YWJsZV9jbG9zZShkZXN0cmVsLCBOb0xvY2spOworCQl0YWJs ZV9jbG9zZShzcmNyZWwsIE5vTG9jayk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwor CisJCXBlb2lkID0gaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKHBnYWRkcmVzcywgZWluZm8pOworCisJ CUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisJCWNoZWNrX2VsZW1lbnRfcHJvcGVydGllcyhw ZW9pZCk7CisJCWNoZWNrX2FsbF9sYWJlbHNfcHJvcGVydGllcyhwZ3JlbGlkKTsKKwl9CisKKwlm b3JlYWNoKGxjLCBzdG10LT5kcm9wX3ZlcnRleF90YWJsZXMpCisJeworCQljaGFyCSAgICphbGlh cyA9IHN0clZhbChsZmlyc3QobGMpKTsKKwkJT2lkCQkJcGVvaWQ7CisJCU9iamVjdEFkZHJlc3Mg b2JqOworCisJCXBlb2lkID0gZ2V0X3ZlcnRleF9vaWQocHN0YXRlLCBwZ3JlbGlkLCBhbGlhcywg LTEpOworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQs IHBlb2lkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3BfYmVoYXZpb3IsIDAp OworCX0KKworCWZvcmVhY2gobGMsIHN0bXQtPmRyb3BfZWRnZV90YWJsZXMpCisJeworCQljaGFy CSAgICphbGlhcyA9IHN0clZhbChsZmlyc3QobGMpKTsKKwkJT2lkCQkJcGVvaWQ7CisJCU9iamVj dEFkZHJlc3Mgb2JqOworCisJCXBlb2lkID0gZ2V0X2VkZ2Vfb2lkKHBzdGF0ZSwgcGdyZWxpZCwg YWxpYXMsIC0xKTsKKwkJT2JqZWN0QWRkcmVzc1NldChvYmosIFByb3BncmFwaEVsZW1lbnRSZWxh dGlvbklkLCBwZW9pZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9wX2JlaGF2 aW9yLCAwKTsKKwl9CisKKwkvKiBSZW1vdmUgYW55IG9ycGhhbmVkIHBnX3Byb3BncmFwaF9sYWJl bCBlbnRyaWVzICovCisJaWYgKHN0bXQtPmRyb3BfdmVydGV4X3RhYmxlcyB8fCBzdG10LT5kcm9w X2VkZ2VfdGFibGVzKQorCXsKKwkJZm9yZWFjaF9vaWQobGFiZWxvaWQsIGdldF9ncmFwaF9sYWJl bF9pZHMocGdyZWxpZCkpCisJCXsKKwkJCWlmICghZ2V0X2xhYmVsX2VsZW1lbnRfbGFiZWxfaWRz KGxhYmVsb2lkKSkKKwkJCXsKKwkJCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQkJCU9iamVjdEFk ZHJlc3NTZXQob2JqLCBQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQsIGxhYmVsb2lkKTsKKwkJCQlw ZXJmb3JtRGVsZXRpb24oJm9iaiwgc3RtdC0+ZHJvcF9iZWhhdmlvciwgMCk7CisJCQl9CisJCX0K Kwl9CisKKwlmb3JlYWNoKGxjLCBzdG10LT5hZGRfbGFiZWxzKQorCXsKKwkJUHJvcEdyYXBoTGFi ZWxBbmRQcm9wZXJ0aWVzICpscCA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVy dGllcywgbGMpOworCQlPaWQJCQlwZW9pZDsKKwkJT2lkCQkJcGdlcmVsaWQ7CisJCU9pZAkJCWVs bGFiZWxvaWQ7CisKKwkJQXNzZXJ0KGxwLT5sYWJlbCk7CisKKwkJaWYgKHN0bXQtPmVsZW1lbnRf a2luZCA9PSBQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRFWCkKKwkJCXBlb2lkID0gZ2V0X3Zl cnRleF9vaWQocHN0YXRlLCBwZ3JlbGlkLCBzdG10LT5lbGVtZW50X2FsaWFzLCAtMSk7CisJCWVs c2UKKwkJCXBlb2lkID0gZ2V0X2VkZ2Vfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVu dF9hbGlhcywgLTEpOworCisJCXBnZXJlbGlkID0gZ2V0X2VsZW1lbnRfcmVsaWQocGVvaWQpOwor CisJCWVsbGFiZWxvaWQgPSBpbnNlcnRfbGFiZWxfcmVjb3JkKHBncmVsaWQsIHBlb2lkLCBscC0+ bGFiZWwpOworCQlpbnNlcnRfcHJvcGVydHlfcmVjb3JkcyhwZ3JlbGlkLCBlbGxhYmVsb2lkLCBw Z2VyZWxpZCwgbHAtPnByb3BlcnRpZXMpOworCisJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7 CisJCWNoZWNrX2VsZW1lbnRfcHJvcGVydGllcyhwZW9pZCk7CisJCWNoZWNrX2VsZW1lbnRfbGFi ZWxfcHJvcGVydGllcyhlbGxhYmVsb2lkKTsKKwl9CisKKwlpZiAoc3RtdC0+ZHJvcF9sYWJlbCkK Kwl7CisJCU9pZAkJCXBlb2lkOworCQlPaWQJCQlsYWJlbG9pZDsKKwkJT2lkCQkJZWxsYWJlbG9p ZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJaWYgKHN0bXQtPmVsZW1lbnRfa2luZCA9PSBQ Uk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRFWCkKKwkJCXBlb2lkID0gZ2V0X3ZlcnRleF9vaWQo cHN0YXRlLCBwZ3JlbGlkLCBzdG10LT5lbGVtZW50X2FsaWFzLCAtMSk7CisJCWVsc2UKKwkJCXBl b2lkID0gZ2V0X2VkZ2Vfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlhcywg LTEpOworCisJCWxhYmVsb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSExBQkVMTkFNRSwK KwkJCQkJCQkJICAgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLAorCQkJCQkJCQkgICBPYmpl Y3RJZEdldERhdHVtKHBncmVsaWQpLAorCQkJCQkJCQkgICBDU3RyaW5nR2V0RGF0dW0oc3RtdC0+ ZHJvcF9sYWJlbCkpOworCQlpZiAoIWxhYmVsb2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5 IGdyYXBoIFwiJXNcIiBlbGVtZW50IFwiJXNcIiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJ CSAgIGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+ZHJv cF9sYWJlbCksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0xKSk7CisKKwkJZWxs YWJlbG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhFTEVNRU5UTEFCRUxFTEVNRU5UTEFC RUwsCisJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9vaWQsCisJCQkJ CQkJCQkgT2JqZWN0SWRHZXREYXR1bShwZW9pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1 bShsYWJlbG9pZCkpOworCisJCWlmICghZWxsYWJlbG9pZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJZXJybXNnKCJwcm9w ZXJ0eSBncmFwaCBcIiVzXCIgZWxlbWVudCBcIiVzXCIgaGFzIG5vIGxhYmVsIFwiJXNcIiIsCisJ CQkJCQkgICBnZXRfcmVsX25hbWUocGdyZWxpZCksIHN0bXQtPmVsZW1lbnRfYWxpYXMsIHN0bXQt PmRyb3BfbGFiZWwpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJ CU9iamVjdEFkZHJlc3NTZXQob2JqLCBQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBl bGxhYmVsb2lkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3BfYmVoYXZpb3Is IDApOworCisJCS8qIFJlbW92ZSBhbnkgb3JwaGFuZWQgcGdfcHJvcGdyYXBoX2xhYmVsIGVudHJp ZXMgKi8KKwkJaWYgKCFnZXRfbGFiZWxfZWxlbWVudF9sYWJlbF9pZHMobGFiZWxvaWQpKQorCQl7 CisJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkLCBsYWJl bG9pZCk7CisJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgc3RtdC0+ZHJvcF9iZWhhdmlvciwgMCk7 CisJCX0KKwl9CisKKwlpZiAoc3RtdC0+YWRkX3Byb3BlcnRpZXMpCisJeworCQlPaWQJCQlwZW9p ZDsKKwkJT2lkCQkJcGdlcmVsaWQ7CisJCU9pZAkJCWxhYmVsb2lkOworCQlPaWQJCQllbGxhYmVs b2lkOworCisJCWlmIChzdG10LT5lbGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lO RF9WRVJURVgpCisJCQlwZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3Rt dC0+ZWxlbWVudF9hbGlhcywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChw c3RhdGUsIHBncmVsaWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9 IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdf cHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlk KSwKKwkJCQkJCQkJICAgQ1N0cmluZ0dldERhdHVtKHN0bXQtPmFsdGVyX2xhYmVsKSk7CisJCWlm ICghbGFiZWxvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGVsZW1l bnQgXCIlc1wiIGhhcyBubyBsYWJlbCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBn cmVsaWQpLCBzdG10LT5lbGVtZW50X2FsaWFzLCBzdG10LT5hbHRlcl9sYWJlbCksCisJCQkJCXBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0xKSk7CisKKwkJZWxsYWJlbG9pZCA9IEdldFN5c0Nh Y2hlT2lkMihQUk9QR1JBUEhFTEVNRU5UTEFCRUxFTEVNRU5UTEFCRUwsCisJCQkJCQkJCQkgQW51 bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9vaWQsCisJCQkJCQkJCQkgT2JqZWN0SWRHZXRE YXR1bShwZW9pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShsYWJlbG9pZCkpOworCQlp ZiAoIWVsbGFiZWxvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGVs ZW1lbnQgXCIlc1wiIGhhcyBubyBsYWJlbCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3JlbF9uYW1l KHBncmVsaWQpLCBzdG10LT5lbGVtZW50X2FsaWFzLCBzdG10LT5hbHRlcl9sYWJlbCksCisJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0xKSk7CisKKwkJcGdlcmVsaWQgPSBnZXRfZWxl bWVudF9yZWxpZChwZW9pZCk7CisKKwkJaW5zZXJ0X3Byb3BlcnR5X3JlY29yZHMocGdyZWxpZCwg ZWxsYWJlbG9pZCwgcGdlcmVsaWQsIHN0bXQtPmFkZF9wcm9wZXJ0aWVzKTsKKworCQlDb21tYW5k Q291bnRlckluY3JlbWVudCgpOworCQljaGVja19lbGVtZW50X3Byb3BlcnRpZXMocGVvaWQpOwor CQljaGVja19lbGVtZW50X2xhYmVsX3Byb3BlcnRpZXMoZWxsYWJlbG9pZCk7CisJfQorCisJaWYg KHN0bXQtPmRyb3BfcHJvcGVydGllcykKKwl7CisJCU9pZAkJCXBlb2lkOworCQlPaWQJCQlsYWJl bG9pZDsKKwkJT2lkCQkJZWxsYWJlbG9pZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJaWYg KHN0bXQtPmVsZW1lbnRfa2luZCA9PSBQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRFWCkKKwkJ CXBlb2lkID0gZ2V0X3ZlcnRleF9vaWQocHN0YXRlLCBwZ3JlbGlkLCBzdG10LT5lbGVtZW50X2Fs aWFzLCAtMSk7CisJCWVsc2UKKwkJCXBlb2lkID0gZ2V0X2VkZ2Vfb2lkKHBzdGF0ZSwgcGdyZWxp ZCwgc3RtdC0+ZWxlbWVudF9hbGlhcywgLTEpOworCisJCWxhYmVsb2lkID0gR2V0U3lzQ2FjaGVP aWQyKFBST1BHUkFQSExBQkVMTkFNRSwKKwkJCQkJCQkJICAgQW51bV9wZ19wcm9wZ3JhcGhfbGFi ZWxfb2lkLAorCQkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHBncmVsaWQpLAorCQkJCQkJCQkg ICBDU3RyaW5nR2V0RGF0dW0oc3RtdC0+YWx0ZXJfbGFiZWwpKTsKKwkJaWYgKCFsYWJlbG9pZCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNU KSwKKwkJCQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgZWxlbWVudCBcIiVzXCIgaGFz IG5vIGxhYmVsIFwiJXNcIiIsCisJCQkJCQkgICBnZXRfcmVsX25hbWUocGdyZWxpZCksIHN0bXQt PmVsZW1lbnRfYWxpYXMsIHN0bXQtPmFsdGVyX2xhYmVsKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgLTEpKTsKKworCQllbGxhYmVsb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BH UkFQSEVMRU1FTlRMQUJFTEVMRU1FTlRMQUJFTCwKKwkJCQkJCQkJCSBBbnVtX3BnX3Byb3BncmFw aF9lbGVtZW50X2xhYmVsX29pZCwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKHBlb2lkKSwK KwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKGxhYmVsb2lkKSk7CisKKwkJaWYgKCFlbGxhYmVs b2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9P QkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBoIFwiJXNcIiBlbGVtZW50IFwiJXNc IiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAgIGdldF9yZWxfbmFtZShwZ3JlbGlkKSwg c3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0ZXJfbGFiZWwpLAorCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJCWZvcmVhY2gobGMsIHN0bXQtPmRyb3BfcHJvcGVy dGllcykKKwkJeworCQkJY2hhcgkgICAqcHJvcG5hbWUgPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJ CQlPaWQJCQlwcm9wb2lkOworCQkJT2lkCQkJcGxwb2lkOworCisJCQlwcm9wb2lkID0gR2V0U3lz Q2FjaGVPaWQyKFBST1BHUkFQSFBST1BOQU1FLAorCQkJCQkJCQkJICBBbnVtX3BnX3Byb3BncmFw aF9wcm9wZXJ0eV9vaWQsCisJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocGdyZWxpZCksCisJ CQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOworCQkJaWYgKCFwcm9wb2lkKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVD VCksCisJCQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBoIFwiJXNcIiBlbGVtZW50IFwiJXNcIiBs YWJlbCBcIiVzXCIgaGFzIG5vIHByb3BlcnR5IFwiJXNcIiIsCisJCQkJCQkJICAgZ2V0X3JlbF9u YW1lKHBncmVsaWQpLCBzdG10LT5lbGVtZW50X2FsaWFzLCBzdG10LT5hbHRlcl9sYWJlbCwgcHJv cG5hbWUpLAorCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgLTEpKTsKKworCQkJcGxw b2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSExBQkVMUFJPUCwgQW51bV9wZ19wcm9wZ3Jh cGhfbGFiZWxfcHJvcGVydHlfb2lkLCBPYmplY3RJZEdldERhdHVtKGVsbGFiZWxvaWQpLCBPYmpl Y3RJZEdldERhdHVtKHByb3BvaWQpKTsKKworCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFByb3Bn cmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkLCBwbHBvaWQpOworCQkJcGVyZm9ybURlbGV0aW9u KCZvYmosIHN0bXQtPmRyb3BfYmVoYXZpb3IsIDApOworCQl9CisKKwkJY2hlY2tfZWxlbWVudF9s YWJlbF9wcm9wZXJ0aWVzKGVsbGFiZWxvaWQpOworCX0KKworCS8qIFJlbW92ZSBhbnkgb3JwaGFu ZWQgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IGVudHJpZXMgKi8KKwlpZiAoc3RtdC0+ZHJvcF9wcm9w ZXJ0aWVzIHx8IHN0bXQtPmRyb3BfdmVydGV4X3RhYmxlcyB8fCBzdG10LT5kcm9wX2VkZ2VfdGFi bGVzKQorCXsKKwkJZm9yZWFjaF9vaWQocHJvcG9pZCwgZ2V0X2dyYXBoX3Byb3BlcnR5X2lkcyhw Z3JlbGlkKSkKKwkJeworCQkJUmVsYXRpb24JcmVsOworCQkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJ CVNjYW5LZXlEYXRhIGtleVsxXTsKKworCQkJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhMYWJl bFByb3BlcnR5UmVsYXRpb25JZCwgUm93U2hhcmVMb2NrKTsKKwkJCVNjYW5LZXlJbml0KCZrZXlb MF0sCisJCQkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBwcm9waWQsCisJ CQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQlPYmplY3RJZEdldERh dHVtKHByb3BvaWQpKTsKKwkJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBJbnZhbGlk T2lkIC8qIEZJWE1FICovICwKKwkJCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMSwga2V5KTsKKwkJCWlm ICghc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkKKwkJCXsKKwkJCQlPYmplY3RBZGRyZXNzIG9iajsK KworCQkJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQcm9wZ3JhcGhQcm9wZXJ0eVJlbGF0aW9uSWQs IHByb3BvaWQpOworCQkJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9wX2JlaGF2aW9y LCAwKTsKKwkJCX0KKworCQkJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCXRhYmxlX2Nsb3Nl KHJlbCwgUm93U2hhcmVMb2NrKTsKKwkJfQorCX0KKworCXJldHVybiBwZ2FkZHJlc3M7Cit9CisK Ky8qCisgKiBHZXQgT0lEIG9mIHZlcnRleCBmcm9tIGdyYXBoIE9JRCBhbmQgZWxlbWVudCBhbGlh cy4gIEVsZW1lbnQgbXVzdCBiZSBhCisgKiB2ZXJ0ZXgsIG90aGVyd2lzZSBlcnJvci4KKyAqLwor c3RhdGljIE9pZAorZ2V0X3ZlcnRleF9vaWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBPaWQgcGdyZWxp ZCwgY29uc3QgY2hhciAqYWxpYXMsIGludCBsb2NhdGlvbikKK3sKKwlIZWFwVHVwbGUJdHVwbGU7 CisJT2lkCQkJcGVvaWQ7CisKKwl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQUk9QR1JBUEhFTEFM SUFTLCBPYmplY3RJZEdldERhdHVtKHBncmVsaWQpLCBDU3RyaW5nR2V0RGF0dW0oYWxpYXMpKTsK KwlpZiAoIXR1cGxlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coInByb3BlcnR5IGdyYXBoIFwiJXNcIiBoYXMgbm8g ZWxlbWVudCB3aXRoIGFsaWFzIFwiJXNcIiIsCisJCQkJCSAgIGdldF9yZWxfbmFtZShwZ3JlbGlk KSwgYWxpYXMpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSk7CisK KwlpZiAoKChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJVQ1QodHVwbGUpKS0+cGdl a2luZCAhPSBQR0VLSU5EX1ZFUlRFWCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQllcnJtc2coImVsZW1lbnQgXCIlc1wiIG9mIHByb3Bl cnR5IGdyYXBoIFwiJXNcIiBpcyBub3QgYSB2ZXJ0ZXgiLAorCQkJCQkgICBhbGlhcywgZ2V0X3Jl bF9uYW1lKHBncmVsaWQpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpOworCisJcGVvaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0 dXBsZSkpLT5vaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJcmV0dXJuIHBlb2lk OworfQorCisvKgorICogR2V0IE9JRCBvZiBlZGdlIGZyb20gZ3JhcGggT0lEIGFuZCBlbGVtZW50 IGFsaWFzLiAgRWxlbWVudCBtdXN0IGJlIGFuIGVkZ2UsCisgKiBvdGhlcndpc2UgZXJyb3IuCisg Ki8KK3N0YXRpYyBPaWQKK2dldF9lZGdlX29pZChQYXJzZVN0YXRlICpwc3RhdGUsIE9pZCBwZ3Jl bGlkLCBjb25zdCBjaGFyICphbGlhcywgaW50IGxvY2F0aW9uKQoreworCUhlYXBUdXBsZQl0dXBs ZTsKKwlPaWQJCQlwZW9pZDsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBST1BHUkFQSEVM QUxJQVMsIE9iamVjdElkR2V0RGF0dW0ocGdyZWxpZCksIENTdHJpbmdHZXREYXR1bShhbGlhcykp OworCWlmICghdHVwbGUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wiIGhhcyBu byBlbGVtZW50IHdpdGggYWxpYXMgXCIlc1wiIiwKKwkJCQkJICAgZ2V0X3JlbF9uYW1lKHBncmVs aWQpLCBhbGlhcyksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKTsK KworCWlmICgoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXBsZSkpLT5w Z2VraW5kICE9IFBHRUtJTkRfRURHRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQllcnJtc2coImVsZW1lbnQgXCIlc1wiIG9mIHByb3Bl cnR5IGdyYXBoIFwiJXNcIiBpcyBub3QgYW4gZWRnZSIsCisJCQkJCSAgIGFsaWFzLCBnZXRfcmVs X25hbWUocGdyZWxpZCkpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9u KSk7CisKKwlwZW9pZCA9ICgoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1 cGxlKSktPm9pZDsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gcGVvaWQ7 Cit9CisKKy8qCisgKiBHZXQgdGhlIGVsZW1lbnQgdGFibGUgcmVsYXRpb24gT0lEIGZyb20gdGhl IE9JRCBvZiB0aGUgZWxlbWVudC4KKyAqLworc3RhdGljIE9pZAorZ2V0X2VsZW1lbnRfcmVsaWQo T2lkIHBlaWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCXBnZXJlbGlkOworCisJdHVw bGUgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocGVp ZCkpOworCWlmICghdHVwbGUpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZv ciBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICV1IiwgcGVpZCk7CisKKwlwZ2VyZWxpZCA9ICgoRm9y bV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cGxlKSktPnBnZXJlbGlkOworCisJ UmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCXJldHVybiBwZ2VyZWxpZDsKK30KKworLyoKKyAq IEdldCBhIGxpc3Qgb2YgYWxsIGxhYmVsIE9JRHMgb2YgYSBncmFwaC4KKyAqLworc3RhdGljIExp c3QgKgorZ2V0X2dyYXBoX2xhYmVsX2lkcyhPaWQgZ3JhcGhpZCkKK3sKKwlSZWxhdGlvbglyZWw7 CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXlbMV07CisJSGVhcFR1cGxlCXR1 cGxlOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdy YXBoTGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCVNjYW5LZXlJbml0KCZrZXlb MF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcGdscGdpZCwKKwkJCQlCVEVxdWFsU3Ry YXRlZ3lOdW1iZXIsCisJCQkJRl9PSURFUSwgT2JqZWN0SWRHZXREYXR1bShncmFwaGlkKSk7CisJ c2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFwaExhYmVsR3JhcGhOYW1lSW5k ZXhJZCwgdHJ1ZSwgTlVMTCwgMSwga2V5KTsKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXBs ZSA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJcmVzdWx0ID0gbGFwcGVuZF9vaWQo cmVzdWx0LCAoKEZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lk KTsKKwl9CisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwl0YWJsZV9jbG9zZShyZWwsIEFjY2Vz c1NoYXJlTG9jayk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogR2V0IGEgbGlzdCBv ZiBhbGwgZWxlbWVudCBsYWJlbCBPSURzIGZvciBhIGxhYmVsLgorICovCitzdGF0aWMgTGlzdCAq CitnZXRfbGFiZWxfZWxlbWVudF9sYWJlbF9pZHMoT2lkIGxhYmVsaWQpCit7CisJUmVsYXRpb24J cmVsOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5WzFdOworCUhlYXBUdXBs ZQl0dXBsZTsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFBy b3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJU2Nhbktl eUluaXQoJmtleVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX3BnZWxs YWJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwKKwkJCQlGX09JREVRLCBPYmplY3RJ ZEdldERhdHVtKGxhYmVsaWQpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJv cGdyYXBoRWxlbWVudExhYmVsTGFiZWxJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBrZXkpOworCXdo aWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJ eworCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsICgoRm9ybV9wZ19wcm9wZ3JhcGhfZWxl bWVudF9sYWJlbCkgR0VUU1RSVUNUKHR1cGxlKSktPm9pZCk7CisJfQorCXN5c3RhYmxlX2VuZHNj YW4oc2Nhbik7CisJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJu IHJlc3VsdDsKK30KKworLyoKKyAqIEdldCB0aGUgbmFtZXMgb2YgcHJvcGVydGllcyBhc3NvY2lh dGVkIHdpdGggdGhlIGdpdmVuIGVsZW1lbnQgbGFiZWwgT0lELgorICoKKyAqIFRoZSByZXN1bHQg aXMgYSBsaXN0IG9mIFN0cmluZyBub2RlcyAoc28gd2UgY2FuIHVzZSBsaXN0IGZ1bmN0aW9ucyB0 bworICogZGV0ZWN0IGRpZmZlcmVuY2VzKS4KKyAqLworc3RhdGljIExpc3QgKgorZ2V0X2VsZW1l bnRfbGFiZWxfcHJvcGVydHlfbmFtZXMoT2lkIGVsbGFiZWxvaWQpCit7CisJUmVsYXRpb24JcmVs OworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5WzFdOworCUhlYXBUdXBsZQl0 dXBsZTsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFByb3Bn cmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2Nhbktl eUluaXQoJmtleVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBl bGxhYmVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVj dElkR2V0RGF0dW0oZWxsYWJlbG9pZCkpOworCisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nhbihy ZWwsIFByb3BncmFwaExhYmVsUHJvcGVydHlMYWJlbFByb3BJbmRleElkLCB0cnVlLCBOVUxMLCAx LCBrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsK KwkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkgcGxwZm9ybSA9IChGb3JtX3BnX3By b3BncmFwaF9sYWJlbF9wcm9wZXJ0eSkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQlyZXN1bHQgPSBs YXBwZW5kKHJlc3VsdCwgbWFrZVN0cmluZyhnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUocGxw Zm9ybS0+cGxwcHJvcGlkKSkpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFi bGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwor LyoKKyAqIEdldCBhIGxpc3Qgb2YgYWxsIHByb3BlcnR5IE9JRHMgb2YgYSBncmFwaC4KKyAqLwor c3RhdGljIExpc3QgKgorZ2V0X2dyYXBoX3Byb3BlcnR5X2lkcyhPaWQgZ3JhcGhpZCkKK3sKKwlS ZWxhdGlvbglyZWw7CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXlbMV07CisJ SGVhcFR1cGxlCXR1cGxlOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCXJlbCA9IHRhYmxl X29wZW4oUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCVNj YW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwcGdp ZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJCQkJRl9PSURFUSwgT2JqZWN0SWRHZXRE YXR1bShncmFwaGlkKSk7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIFByb3BncmFw aFByb3BlcnR5TmFtZUluZGV4SWQsIHRydWUsIE5VTEwsIDEsIGtleSk7CisJd2hpbGUgKEhlYXBU dXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCXJlc3Vs dCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgKChGb3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSkgR0VU U1RSVUNUKHR1cGxlKSktPm9pZCk7CisJfQorCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFi bGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJcmV0dXJuIHJlc3VsdDsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IGNlZTVkN2JiYjljLi4zNTEyMzJhMzlkMCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZWNsYWJlbC5jCkBAIC04MCw2ICs4MCw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmpl Y3RUeXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNh c2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCWNhc2UgT0JKRUNUX1BPTElDWToKKwkJY2FzZSBP QkpFQ1RfUFJPUEdSQVBIOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJ CWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJY2FzZSBPQkpFQ1RfUlVMRToKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNTgyM2ZjZTkzNDAuLjNlMWVmZjM3NDc1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMzA3LDYgKzMwNywxMiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRyb3Btc2dzdHJpbmdzIGRyb3Btc2dzdHJpbmdhcnJheVtdID0gewogCQlnZXR0ZXh0X25v b3AoImluZGV4IFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKSwKIAkJZ2V0dGV4dF9u b29wKCJcIiVzXCIgaXMgbm90IGFuIGluZGV4IiksCiAJZ2V0dGV4dF9ub29wKCJVc2UgRFJPUCBJ TkRFWCB0byByZW1vdmUgYW4gaW5kZXguIil9LAorCXtSRUxLSU5EX1BST1BHUkFQSCwKKwkJRVJS Q09ERV9VTkRFRklORURfT0JKRUNULAorCQlnZXR0ZXh0X25vb3AoInByb3BlcnR5IGdyYXBoIFwi JXNcIiBkb2VzIG5vdCBleGlzdCIpLAorCQlnZXR0ZXh0X25vb3AoInByb3BlcnR5IGdyYXBoIFwi JXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKSwKKwkJZ2V0dGV4dF9ub29wKCJcIiVzXCIg aXMgbm90IGEgcHJvcGVydHkgZ3JhcGgiKSwKKwlnZXR0ZXh0X25vb3AoIlVzZSBEUk9QIFBST1BF UlRZIEdSQVBIIHRvIHJlbW92ZSBhIHByb3BlcnR5IGdyYXBoLiIpfSwKIAl7J1wwJywgMCwgTlVM TCwgTlVMTCwgTlVMTCwgTlVMTH0KIH07CiAKQEAgLTE1NTksNiArMTU2NSwxMCBAQCBSZW1vdmVS ZWxhdGlvbnMoRHJvcFN0bXQgKmRyb3ApCiAJCQlyZWxraW5kID0gUkVMS0lORF9GT1JFSUdOX1RB QkxFOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJcmVsa2luZCA9 IFJFTEtJTkRfUFJPUEdSQVBIOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgZHJvcCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBkcm9w LT5yZW1vdmVUeXBlKTsKQEAgLTE1MTY1LDYgKzE1MTc1LDcgQEAgQVRFeGVjQ2hhbmdlT3duZXIo T2lkIHJlbGF0aW9uT2lkLCBPaWQgbmV3T3duZXJJZCwgYm9vbCByZWN1cnNpbmcsIExPQ0tNT0RF IGxvY2sKIAkJY2FzZSBSRUxLSU5EX01BVFZJRVc6CiAJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RB QkxFOgogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEU6CisJCWNhc2UgUkVMS0lORF9Q Uk9QR1JBUEg6CiAJCQkvKiBvayB0byBjaGFuZ2Ugb3duZXIgKi8KIAkJCWJyZWFrOwogCQljYXNl IFJFTEtJTkRfSU5ERVg6CkBAIC0xODczMSw2ICsxODc0MiwxMSBAQCBSYW5nZVZhckNhbGxiYWNr Rm9yQWx0ZXJSZWxhdGlvbihjb25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJl bGlkLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAogCQkJCSBlcnJt c2coIlwiJXNcIiBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsIHJ2LT5yZWxuYW1lKSkpOwogCisJ aWYgKHJlbHR5cGUgPT0gT0JKRUNUX1BST1BHUkFQSCAmJiByZWxraW5kICE9IFJFTEtJTkRfUFJP UEdSQVBIKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JK RUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaCIs IHJ2LT5yZWxuYW1lKSkpOworCiAJaWYgKHJlbHR5cGUgPT0gT0JKRUNUX0lOREVYICYmIHJlbGtp bmQgIT0gUkVMS0lORF9JTkRFWCAmJgogCQlyZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURf SU5ERVgKIAkJJiYgIUlzQShzdG10LCBSZW5hbWVTdG10KSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CmluZGV4IDM5ZDgwY2NmYmFkLi42NjQ5MWU0NTNiOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CkBAIC02MDEsNyArNjAxLDcgQEAgRXhlY0NoZWNrUGVybWlzc2lvbnMoTGlzdCAqcmFuZ2VUYWJs ZSwgTGlzdCAqcnRlcGVybWluZm9zLAogCQkJICovCiAJCQlBc3NlcnQocnRlLT5ydGVraW5kID09 IFJURV9SRUxBVElPTiB8fAogCQkJCSAgIChydGUtPnJ0ZWtpbmQgPT0gUlRFX1NVQlFVRVJZICYm Ci0JCQkJCXJ0ZS0+cmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcpKTsKKwkJCQkJKHJ0ZS0+cmVsa2lu ZCA9PSBSRUxLSU5EX1ZJRVcgfHwgcnRlLT5yZWxraW5kID09IFJFTEtJTkRfUFJPUEdSQVBIKSkp OwogCiAJCQkodm9pZCkgZ2V0UlRFUGVybWlzc2lvbkluZm8ocnRlcGVybWluZm9zLCBydGUpOwog CQkJLyogTWFueS10by1vbmUgbWFwcGluZyBub3QgYWxsb3dlZCAqLwpAQCAtMTEzOCw2ICsxMTM4 LDEyIEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywg Q21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCWJyZWFrOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2Ug UkVMS0lORF9QUk9QR1JBUEg6CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSBwcm9w ZXJ0eSBncmFwaCBcIiVzXCIiLAorCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlc3Vs dFJlbCkpKSk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLApAQCAtMTIwMiw2ICsxMjA4LDEz IEBAIENoZWNrVmFsaWRSb3dNYXJrUmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5cGUgbWFya1R5 cGUpCiAJCQkJCQkgZXJybXNnKCJjYW5ub3QgbG9jayByb3dzIGluIGZvcmVpZ24gdGFibGUgXCIl c1wiIiwKIAkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJCWJyZWFr OworCQljYXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJLyogU2hvdWxkIG5vdCBnZXQgaGVyZTsg cmV3cml0ZXIgc2hvdWxkIGhhdmUgZXhwYW5kZWQgdGhlIGdyYXBoICovCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVy cm1zZygiY2Fubm90IGxvY2sgcm93cyBpbiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIiLAorCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCA3YmM4MjM1MDdmMS4uM2U0YzUyYjg5YzUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCkBAIC0yODQsNiArMjg0LDkgQEAgZXhwclR5cGUoY29uc3QgTm9k ZSAqZXhwcikKIAkJY2FzZSBUX1BsYWNlSG9sZGVyVmFyOgogCQkJdHlwZSA9IGV4cHJUeXBlKChO b2RlICopICgoY29uc3QgUGxhY2VIb2xkZXJWYXIgKikgZXhwciktPnBoZXhwcik7CiAJCQlicmVh azsKKwkJY2FzZSBUX0dyYXBoUHJvcGVydHlSZWY6CisJCQl0eXBlID0gKChjb25zdCBHcmFwaFBy b3BlcnR5UmVmICopIGV4cHIpLT50eXBlSWQ7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhw cikpOwogCQkJdHlwZSA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAg LTUzNiw2ICs1MzksOSBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQlyZXR1cm4g ZXhwclR5cG1vZCgoTm9kZSAqKSAoKGNvbnN0IFJldHVybmluZ0V4cHIgKikgZXhwciktPnJldGV4 cHIpOwogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6CiAJCQlyZXR1cm4gZXhwclR5cG1vZCgoTm9k ZSAqKSAoKGNvbnN0IFBsYWNlSG9sZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOworCQljYXNlIFRf R3JhcGhQcm9wZXJ0eVJlZjoKKwkJCS8qIFRPRE8gKi8KKwkJCXJldHVybiAtMTsKIAkJZGVmYXVs dDoKIAkJCWJyZWFrOwogCX0KQEAgLTEwNTgsNiArMTA2NCw5IEBAIGV4cHJDb2xsYXRpb24oY29u c3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1BsYWNlSG9sZGVyVmFyOgogCQkJY29sbCA9IGV4cHJD b2xsYXRpb24oKE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAqKSBleHByKS0+cGhleHBy KTsKIAkJCWJyZWFrOworCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKKwkJCWNvbGwgPSBERUZB VUxUX0NPTExBVElPTl9PSUQ7CS8qIEZJWE1FICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWco ZXhwcikpOwogCQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8K QEAgLTIxMjgsNiArMjEzNyw3IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQljYXNlIFRfUmFuZ2VUYmxSZWY6CiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJ CWNhc2UgVF9DVEVTZWFyY2hDbGF1c2U6CisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgogCQlj YXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJCS8qIHByaW1pdGl2ZSBub2RlIHR5cGVzIHdpdGgg bm8gZXhwcmVzc2lvbiBzdWJub2RlcyAqLwogCQkJYnJlYWs7CkBAIC0yNjY4LDYgKzI2NzgsMjYg QEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0 cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9HcmFwaEVsZW1lbnRQYXR0ZXJuOgorCQkJ eworCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChHcmFwaEVsZW1lbnRQYXR0ZXJuICop IG5vZGU7CisKKwkJCQlpZiAoV0FMSyhnZXAtPnN1YmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsK KwkJCQlpZiAoV0FMSyhnZXAtPndoZXJlQ2xhdXNlKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9 CisJCQlicmVhazsKKwkJY2FzZSBUX0dyYXBoUGF0dGVybjoKKwkJCXsKKwkJCQlHcmFwaFBhdHRl cm4gKmdwID0gKEdyYXBoUGF0dGVybiAqKSBub2RlOworCisJCQkJaWYgKExJU1RfV0FMSyhncC0+ cGF0aF9wYXR0ZXJuX2xpc3QpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhncC0+ d2hlcmVDbGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlkZWZh dWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkg KGludCkgbm9kZVRhZyhub2RlKSk7CkBAIC0yODYxLDYgKzI4OTEsMTIgQEAgcmFuZ2VfdGFibGVf ZW50cnlfd2Fsa2VyX2ltcGwoUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJaWYgKFdBTEsocnRlLT52 YWx1ZXNfbGlzdHMpKQogCQkJCXJldHVybiB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgUlRFX0dS QVBIX1RBQkxFOgorCQkJaWYgKFdBTEsocnRlLT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQlyZXR1cm4g dHJ1ZTsKKwkJCWlmIChXQUxLKHJ0ZS0+Z3JhcGhfdGFibGVfY29sdW1ucykpCisJCQkJcmV0dXJu IHRydWU7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfQ1RFOgogCQljYXNlIFJURV9OQU1FRFRVUExF U1RPUkU6CiAJCWNhc2UgUlRFX1JFU1VMVDoKQEAgLTM5MTMsNiArMzk0OSwxMCBAQCByYW5nZV90 YWJsZV9tdXRhdG9yX2ltcGwoTGlzdCAqcnRhYmxlLAogCQkJY2FzZSBSVEVfVkFMVUVTOgogCQkJ CU1VVEFURShuZXdydGUtPnZhbHVlc19saXN0cywgcnRlLT52YWx1ZXNfbGlzdHMsIExpc3QgKik7 CiAJCQkJYnJlYWs7CisJCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCQlNVVRBVEUobmV3cnRl LT5ncmFwaF9wYXR0ZXJuLCBydGUtPmdyYXBoX3BhdHRlcm4sIEdyYXBoUGF0dGVybiAqKTsKKwkJ CQlNVVRBVEUobmV3cnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zLCBydGUtPmdyYXBoX3RhYmxlX2Nv bHVtbnMsIExpc3QgKik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFJURV9DVEU6CiAJCQljYXNlIFJU RV9OQU1FRFRVUExFU1RPUkU6CiAJCQljYXNlIFJURV9SRVNVTFQ6CkBAIC00NTQ3LDYgKzQ1ODcs MTggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQly ZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfUmFuZ2VHcmFwaFRhYmxlOgor CQkJeworCQkJCVJhbmdlR3JhcGhUYWJsZSAqcmd0ID0gKFJhbmdlR3JhcGhUYWJsZSAqKSBub2Rl OworCisJCQkJaWYgKFdBTEsocmd0LT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQkJcmV0dXJuIHRydWU7 CisJCQkJaWYgKFdBTEsocmd0LT5jb2x1bW5zKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYg KFdBTEsocmd0LT5hbGlhcykpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJ CWNhc2UgVF9UeXBlTmFtZToKIAkJCXsKIAkJCQlUeXBlTmFtZSAgICp0biA9IChUeXBlTmFtZSAq KSBub2RlOwpAQCAtNDcwNSw2ICs0NzU3LDI2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2Vy X2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBUX0dyYXBoRWxlbWVudFBhdHRlcm46CisJCQl7CisJCQkJR3JhcGhFbGVtZW50UGF0dGVy biAqZ2VwID0gKEdyYXBoRWxlbWVudFBhdHRlcm4gKikgbm9kZTsKKworCQkJCWlmIChXQUxLKGdl cC0+c3ViZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKGdlcC0+d2hlcmVD bGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRfR3Jh cGhQYXR0ZXJuOgorCQkJeworCQkJCUdyYXBoUGF0dGVybiAqZ3AgPSAoR3JhcGhQYXR0ZXJuICop IG5vZGU7CisKKwkJCQlpZiAoV0FMSyhncC0+cGF0aF9wYXR0ZXJuX2xpc3QpKQorCQkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhncC0+d2hlcmVDbGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhub2RlKSk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0 ZnVuY3MuYwppbmRleCBiYjliZGQ2NzE5Mi4uM2IzNmY5OTZiMDMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL25vZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3Mu YwpAQCAtNTU5LDYgKzU1OSwxMSBAQCBfb3V0UmFuZ2VUYmxFbnRyeShTdHJpbmdJbmZvIHN0ciwg Y29uc3QgUmFuZ2VUYmxFbnRyeSAqbm9kZSkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElP TiBmaWVsZHMsIHRvbzogKi8KIAkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7CiAJCQlicmVhazsK KwkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQlXUklURV9PSURfRklFTEQocmVsaWQpOworCQkJ V1JJVEVfTk9ERV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVdSSVRFX05PREVfRklFTEQoZ3Jh cGhfdGFibGVfY29sdW1ucyk7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfUkVTVUxUOgogCQkJLyog bm8gZXh0cmEgZmllbGRzICovCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25v ZGVzL3JlYWRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKaW5kZXggNjRk M2EwOWY3NjUuLjUyYjQ1MmYxNWYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFk ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwpAQCAtNDE5LDYgKzQx OSwxMSBAQCBfcmVhZFJhbmdlVGJsRW50cnkodm9pZCkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBS RUxBVElPTiBmaWVsZHMsIHRvbzogKi8KIAkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsKIAkJCWJy ZWFrOworCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsK KwkJCVJFQURfTk9ERV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVJFQURfTk9ERV9GSUVMRChn cmFwaF90YWJsZV9jb2x1bW5zKTsKKwkJCWJyZWFrOwogCQljYXNlIFJURV9SRVNVTFQ6CiAJCQkv KiBubyBleHRyYSBmaWVsZHMgKi8KIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Fs bHBhdGhzLmMKaW5kZXggMTExNWViZWVlMjkuLjFlMTQyMTgxMjM4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wYXRoL2FsbHBhdGhzLmMKQEAgLTcyOCw2ICs3MjgsMTAgQEAgc2V0X3JlbF9jb25zaWRl cl9wYXJhbGxlbChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJICovCiAJ CQlyZXR1cm47CiAKKwkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkvKiBzaG91bGRuJ3QgaGFw cGVuIGhlcmUgKi8KKwkJCWJyZWFrOworCiAJCWNhc2UgUlRFX1JFU1VMVDoKIAkJCS8qIFJFU1VM VCBSVEVzLCBpbiB0aGVtc2VsdmVzLCBhcmUgbm8gcHJvYmxlbS4gKi8KIAkJCWJyZWFrOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwppbmRleCA1ZDkyMjVlOTkwOS4u NDhmNTM2OGRhMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5j CkBAIC0xMzU1LDYgKzEzNTUsMTAgQEAgcHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lcklu Zm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJCWNhc2UgUlRF X0dST1VQOgogCQkJCQkvKiB0aGVzZSBjYW4ndCBjb250YWluIGFueSBsYXRlcmFsIHJlZmVyZW5j ZXMgKi8KIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkJCS8qIHNo b3VsZG4ndCBoYXBwZW4gaGVyZSAqLworCQkJCQlBc3NlcnQoZmFsc2UpOworCQkJCQlicmVhazsK IAkJCX0KIAkJfQogCX0KQEAgLTI0MjUsNiArMjQyOSwxMCBAQCByZXBsYWNlX3ZhcnNfaW5fam9p bnRyZWUoTm9kZSAqanRub2RlLAogCQkJCQkJLyogdGhlc2Ugc2hvdWxkbid0IGJlIG1hcmtlZCBM QVRFUkFMICovCiAJCQkJCQlBc3NlcnQoZmFsc2UpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2Ug UlRFX0dSQVBIX1RBQkxFOgorCQkJCQkJLyogc2hvdWxkbid0IGhhcHBlbiBoZXJlICovCisJCQkJ CQlBc3NlcnQoZmFsc2UpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQogCQl9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9wYXJzZXIvTWFr ZWZpbGUKaW5kZXggOGMwZmUyOGQ2M2YuLjhiNWE0YWY2YmYyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL01ha2VmaWxlCkBA IC0yMyw2ICsyMyw3IEBAIE9CSlMgPSBcCiAJcGFyc2VfZW5yLm8gXAogCXBhcnNlX2V4cHIubyBc CiAJcGFyc2VfZnVuYy5vIFwKKwlwYXJzZV9ncmFwaHRhYmxlLm8gXAogCXBhcnNlX2pzb250YWJs ZS5vIFwKIAlwYXJzZV9tZXJnZS5vIFwKIAlwYXJzZV9ub2RlLm8gXApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggNzZmNThiM2FjYTMuLjRmZjBkMGY0ZjA3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTIx NDksNyArMjE0OSw2IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBTZWxlY3RTdG10ICpzdG10LAogCQljaGFyCQlzZWxlY3ROYW1lWzMyXTsKIAkJUGFyc2VO YW1lc3BhY2VJdGVtICpuc2l0ZW07CiAJCVJhbmdlVGJsUmVmICpydHI7Ci0JCUxpc3RDZWxsICAg KnRsOwogCiAJCS8qCiAJCSAqIFRyYW5zZm9ybSBTZWxlY3RTdG10IGludG8gYSBRdWVyeS4KQEAg LTIxODksNiArMjE4OCw4IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblRyZWUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBTZWxlY3RTdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHRhcmdldGxpc3QpCiAJCXsK KwkJCUxpc3RDZWxsICAgKnRsOworCiAJCQkqdGFyZ2V0bGlzdCA9IE5JTDsKIAkJCWZvcmVhY2go dGwsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQogCQkJewpAQCAtMjIyMyw4ICsyMjI0LDYgQEAg dHJhbnNmb3JtU2V0T3BlcmF0aW9uVHJlZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQg KnN0bXQsCiAJCVNldE9wZXJhdGlvblN0bXQgKm9wID0gbWFrZU5vZGUoU2V0T3BlcmF0aW9uU3Rt dCk7CiAJCUxpc3QJICAgKmx0YXJnZXRsaXN0OwogCQlMaXN0CSAgICpydGFyZ2V0bGlzdDsKLQkJ TGlzdENlbGwgICAqbHRsOwotCQlMaXN0Q2VsbCAgICpydGw7CiAJCWNvbnN0IGNoYXIgKmNvbnRl eHQ7CiAJCWJvb2wJCXJlY3Vyc2l2ZSA9IChwc3RhdGUtPnBfcGFyZW50X2N0ZSAmJgogCQkJCQkJ CQkgcHN0YXRlLT5wX3BhcmVudF9jdGUtPmN0ZXJlY3Vyc2l2ZSk7CkBAIC0yMjU5LDE2MSArMjI1 OCwxNzAgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9uVHJlZShQYXJzZVN0YXRlICpwc3RhdGUsIFNl bGVjdFN0bXQgKnN0bXQsCiAJCQkJCQkJCQkJCSBmYWxzZSwKIAkJCQkJCQkJCQkJICZydGFyZ2V0 bGlzdCk7CiAKLQkJLyoKLQkJICogVmVyaWZ5IHRoYXQgdGhlIHR3byBjaGlsZHJlbiBoYXZlIHRo ZSBzYW1lIG51bWJlciBvZiBub24tanVuawotCQkgKiBjb2x1bW5zLCBhbmQgZGV0ZXJtaW5lIHRo ZSB0eXBlcyBvZiB0aGUgbWVyZ2VkIG91dHB1dCBjb2x1bW5zLgotCQkgKi8KLQkJaWYgKGxpc3Rf bGVuZ3RoKGx0YXJnZXRsaXN0KSAhPSBsaXN0X2xlbmd0aChydGFyZ2V0bGlzdCkpCi0JCQllcmVw b3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCSBl cnJtc2coImVhY2ggJXMgcXVlcnkgbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBjb2x1bW5z IiwKLQkJCQkJCQljb250ZXh0KSwKLQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsCi0J CQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2RlICopIHJ0YXJnZXRsaXN0KSkpKTsKKwkJY29uc3Ry dWN0U2V0T3BUYXJnZXRsaXN0KG9wLCBsdGFyZ2V0bGlzdCwgcnRhcmdldGxpc3QsIHRhcmdldGxp c3QsCisJCQkJCQkJCSBjb250ZXh0LCBwc3RhdGUsIHJlY3Vyc2l2ZSk7CiAKLQkJaWYgKHRhcmdl dGxpc3QpCi0JCQkqdGFyZ2V0bGlzdCA9IE5JTDsKLQkJb3AtPmNvbFR5cGVzID0gTklMOwotCQlv cC0+Y29sVHlwbW9kcyA9IE5JTDsKLQkJb3AtPmNvbENvbGxhdGlvbnMgPSBOSUw7Ci0JCW9wLT5n cm91cENsYXVzZXMgPSBOSUw7Ci0JCWZvcmJvdGgobHRsLCBsdGFyZ2V0bGlzdCwgcnRsLCBydGFy Z2V0bGlzdCkKLQkJewotCQkJVGFyZ2V0RW50cnkgKmx0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZp cnN0KGx0bCk7Ci0JCQlUYXJnZXRFbnRyeSAqcnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3Qo cnRsKTsKLQkJCU5vZGUJICAgKmxjb2xub2RlID0gKE5vZGUgKikgbHRsZS0+ZXhwcjsKLQkJCU5v ZGUJICAgKnJjb2xub2RlID0gKE5vZGUgKikgcnRsZS0+ZXhwcjsKLQkJCU9pZAkJCWxjb2x0eXBl ID0gZXhwclR5cGUobGNvbG5vZGUpOwotCQkJT2lkCQkJcmNvbHR5cGUgPSBleHByVHlwZShyY29s bm9kZSk7Ci0JCQlOb2RlCSAgICpiZXN0ZXhwcjsKLQkJCWludAkJCWJlc3Rsb2NhdGlvbjsKLQkJ CU9pZAkJCXJlc2NvbHR5cGU7Ci0JCQlpbnQzMgkJcmVzY29sdHlwbW9kOwotCQkJT2lkCQkJcmVz Y29sY29sbDsKLQotCQkJLyogc2VsZWN0IGNvbW1vbiB0eXBlLCBzYW1lIGFzIENBU0UgZXQgYWwg Ki8KLQkJCXJlc2NvbHR5cGUgPSBzZWxlY3RfY29tbW9uX3R5cGUocHN0YXRlLAotCQkJCQkJCQkJ CQlsaXN0X21ha2UyKGxjb2xub2RlLCByY29sbm9kZSksCi0JCQkJCQkJCQkJCWNvbnRleHQsCi0J CQkJCQkJCQkJCSZiZXN0ZXhwcik7Ci0JCQliZXN0bG9jYXRpb24gPSBleHByTG9jYXRpb24oYmVz dGV4cHIpOworCQlyZXR1cm4gKE5vZGUgKikgb3A7CisJfQorfQogCi0JCQkvKgotCQkJICogVmVy aWZ5IHRoZSBjb2VyY2lvbnMgYXJlIGFjdHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZh aWwKLQkJCSAqIGxhdGVyIGFueXdheSwgYnV0IHdlIHdhbnQgdG8gZmFpbCBub3cgd2hpbGUgd2Ug aGF2ZSBzdWZmaWNpZW50Ci0JCQkgKiBjb250ZXh0IHRvIHByb2R1Y2UgYW4gZXJyb3IgY3Vyc29y IHBvc2l0aW9uLgotCQkJICoKLQkJCSAqIEZvciBhbGwgbm9uLVVOS05PV04tdHlwZSBjYXNlcywg d2UgdmVyaWZ5IGNvZXJjaWJpbGl0eSBidXQgd2UKLQkJCSAqIGRvbid0IG1vZGlmeSB0aGUgY2hp bGQncyBleHByZXNzaW9uLCBmb3IgZmVhciBvZiBjaGFuZ2luZyB0aGUKLQkJCSAqIGNoaWxkIHF1 ZXJ5J3Mgc2VtYW50aWNzLgotCQkJICoKLQkJCSAqIElmIGEgY2hpbGQgZXhwcmVzc2lvbiBpcyBh biBVTktOT1dOLXR5cGUgQ29uc3Qgb3IgUGFyYW0sIHdlCi0JCQkgKiB3YW50IHRvIHJlcGxhY2Ug aXQgd2l0aCB0aGUgY29lcmNlZCBleHByZXNzaW9uLiAgVGhpcyBjYW4gb25seQotCQkJICogaGFw cGVuIHdoZW4gdGhlIGNoaWxkIGlzIGEgbGVhZiBzZXQtb3Agbm9kZS4gIEl0J3Mgc2FmZSB0bwot CQkJICogcmVwbGFjZSB0aGUgZXhwcmVzc2lvbiBiZWNhdXNlIGlmIHRoZSBjaGlsZCBxdWVyeSdz IHNlbWFudGljcwotCQkJICogZGVwZW5kZWQgb24gdGhlIHR5cGUgb2YgdGhpcyBvdXRwdXQgY29s dW1uLCBpdCdkIGhhdmUgYWxyZWFkeQotCQkJICogY29lcmNlZCB0aGUgVU5LTk9XTiB0byBzb21l dGhpbmcgZWxzZS4gIFdlIHdhbnQgdG8gZG8gdGhpcwotCQkJICogYmVjYXVzZSAoYSkgd2Ugd2Fu dCB0byB2ZXJpZnkgdGhhdCBhIENvbnN0IGlzIHZhbGlkIGZvciB0aGUKLQkJCSAqIHRhcmdldCB0 eXBlLCBvciByZXNvbHZlIHRoZSBhY3R1YWwgdHlwZSBvZiBhbiBVTktOT1dOIFBhcmFtLAotCQkJ ICogYW5kIChiKSB3ZSB3YW50IHRvIGF2b2lkIHVubmVjZXNzYXJ5IGRpc2NyZXBhbmNpZXMgYmV0 d2VlbiB0aGUKLQkJCSAqIG91dHB1dCB0eXBlIG9mIHRoZSBjaGlsZCBxdWVyeSBhbmQgdGhlIHJl c29sdmVkIHRhcmdldCB0eXBlLgotCQkJICogU3VjaCBhIGRpc2NyZXBhbmN5IHdvdWxkIGRpc2Fi bGUgb3B0aW1pemF0aW9uIGluIHRoZSBwbGFubmVyLgotCQkJICoKLQkJCSAqIElmIGl0J3Mgc29t ZSBvdGhlciBVTktOT1dOLXR5cGUgbm9kZSwgZWcgYSBWYXIsIHdlIGRvIG5vdGhpbmcKLQkJCSAq IChrbm93aW5nIHRoYXQgY29lcmNlX3RvX2NvbW1vbl90eXBlIHdvdWxkIGZhaWwpLiAgVGhlIHBs YW5uZXIKLQkJCSAqIGlzIHNvbWV0aW1lcyBhYmxlIHRvIGZvbGQgYW4gVU5LTk9XTiBWYXIgdG8g YSBjb25zdGFudCBiZWZvcmUKLQkJCSAqIGl0IGhhcyB0byBjb2VyY2UgdGhlIHR5cGUsIHNvIGZh aWxpbmcgbm93IHdvdWxkIGp1c3QgYnJlYWsKLQkJCSAqIGNhc2VzIHRoYXQgbWlnaHQgd29yay4K LQkJCSAqLwotCQkJaWYgKGxjb2x0eXBlICE9IFVOS05PV05PSUQpCi0JCQkJbGNvbG5vZGUgPSBj b2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKLQkJCQkJCQkJCQkJCSByZXNj b2x0eXBlLCBjb250ZXh0KTsKLQkJCWVsc2UgaWYgKElzQShsY29sbm9kZSwgQ29uc3QpIHx8Ci0J CQkJCSBJc0EobGNvbG5vZGUsIFBhcmFtKSkKLQkJCXsKLQkJCQlsY29sbm9kZSA9IGNvZXJjZV90 b19jb21tb25fdHlwZShwc3RhdGUsIGxjb2xub2RlLAotCQkJCQkJCQkJCQkJIHJlc2NvbHR5cGUs IGNvbnRleHQpOwotCQkJCWx0bGUtPmV4cHIgPSAoRXhwciAqKSBsY29sbm9kZTsKLQkJCX0KK3Zv aWQKK2NvbnN0cnVjdFNldE9wVGFyZ2V0bGlzdChTZXRPcGVyYXRpb25TdG10ICpvcCwgTGlzdCAq bHRhcmdldGxpc3QsIExpc3QgKnJ0YXJnZXRsaXN0LAorCQkJCQkJIExpc3QgKip0YXJnZXRsaXN0 LCBjb25zdCBjaGFyICpjb250ZXh0LCBQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgYm9vbCBy ZWN1cnNpdmUpCit7CisJTGlzdENlbGwgICAqbHRsOworCUxpc3RDZWxsICAgKnJ0bDsKIAotCQkJ aWYgKHJjb2x0eXBlICE9IFVOS05PV05PSUQpCi0JCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29t bW9uX3R5cGUocHN0YXRlLCByY29sbm9kZSwKLQkJCQkJCQkJCQkJCSByZXNjb2x0eXBlLCBjb250 ZXh0KTsKLQkJCWVsc2UgaWYgKElzQShyY29sbm9kZSwgQ29uc3QpIHx8Ci0JCQkJCSBJc0EocmNv bG5vZGUsIFBhcmFtKSkKLQkJCXsKLQkJCQlyY29sbm9kZSA9IGNvZXJjZV90b19jb21tb25fdHlw ZShwc3RhdGUsIHJjb2xub2RlLAotCQkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOwot CQkJCXJ0bGUtPmV4cHIgPSAoRXhwciAqKSByY29sbm9kZTsKLQkJCX0KKwkvKgorCSAqIFZlcmlm eSB0aGF0IHRoZSB0d28gY2hpbGRyZW4gaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2Ygbm9uLWp1bmsg Y29sdW1ucywKKwkgKiBhbmQgZGV0ZXJtaW5lIHRoZSB0eXBlcyBvZiB0aGUgbWVyZ2VkIG91dHB1 dCBjb2x1bW5zLgorCSAqLworCWlmIChsaXN0X2xlbmd0aChsdGFyZ2V0bGlzdCkgIT0gbGlzdF9s ZW5ndGgocnRhcmdldGxpc3QpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnKCJlYWNoICVzIHF1ZXJ5IG11c3QgaGF2ZSB0 aGUgc2FtZSBudW1iZXIgb2YgY29sdW1ucyIsCisJCQkJCQljb250ZXh0KSwKKwkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBydGFy Z2V0bGlzdCkpKSk7CiAKLQkJCXJlc2NvbHR5cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBz dGF0ZSwKLQkJCQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUsIHJjb2xub2RlKSwKLQkJCQkJ CQkJCQkJCXJlc2NvbHR5cGUpOworCWlmICh0YXJnZXRsaXN0KQorCQkqdGFyZ2V0bGlzdCA9IE5J TDsKKwlvcC0+Y29sVHlwZXMgPSBOSUw7CisJb3AtPmNvbFR5cG1vZHMgPSBOSUw7CisJb3AtPmNv bENvbGxhdGlvbnMgPSBOSUw7CisJb3AtPmdyb3VwQ2xhdXNlcyA9IE5JTDsKIAotCQkJLyoKLQkJ CSAqIFNlbGVjdCBjb21tb24gY29sbGF0aW9uLiAgQSBjb21tb24gY29sbGF0aW9uIGlzIHJlcXVp cmVkIGZvcgotCQkJICogYWxsIHNldCBvcGVyYXRvcnMgZXhjZXB0IFVOSU9OIEFMTDsgc2VlIFNR TDoyMDA4IDcuMTMgPHF1ZXJ5Ci0JCQkgKiBleHByZXNzaW9uPiBTeW50YXggUnVsZSAxNWMuICAo SWYgd2UgZmFpbCB0byBpZGVudGlmeSBhIGNvbW1vbgotCQkJICogY29sbGF0aW9uIGZvciBhIFVO SU9OIEFMTCBjb2x1bW4sIHRoZSBjb2xDb2xsYXRpb25zIGVsZW1lbnQKLQkJCSAqIHdpbGwgYmUg c2V0IHRvIEludmFsaWRPaWQsIHdoaWNoIG1heSByZXN1bHQgaW4gYSBydW50aW1lIGVycm9yCi0J CQkgKiBpZiBzb21ldGhpbmcgYXQgYSBoaWdoZXIgcXVlcnkgbGV2ZWwgd2FudHMgdG8gdXNlIHRo ZSBjb2x1bW4ncwotCQkJICogY29sbGF0aW9uLikKLQkJCSAqLwotCQkJcmVzY29sY29sbCA9IHNl bGVjdF9jb21tb25fY29sbGF0aW9uKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCSBsaXN0X21ha2UyKGxj b2xub2RlLCByY29sbm9kZSksCi0JCQkJCQkJCQkJCQkgKG9wLT5vcCA9PSBTRVRPUF9VTklPTiAm JiBvcC0+YWxsKSk7CisJZm9yYm90aChsdGwsIGx0YXJnZXRsaXN0LCBydGwsIHJ0YXJnZXRsaXN0 KQorCXsKKwkJVGFyZ2V0RW50cnkgKmx0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGx0bCk7 CisJCVRhcmdldEVudHJ5ICpydGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChydGwpOworCQlO b2RlCSAgICpsY29sbm9kZSA9IChOb2RlICopIGx0bGUtPmV4cHI7CisJCU5vZGUJICAgKnJjb2xu b2RlID0gKE5vZGUgKikgcnRsZS0+ZXhwcjsKKwkJT2lkCQkJbGNvbHR5cGUgPSBleHByVHlwZShs Y29sbm9kZSk7CisJCU9pZAkJCXJjb2x0eXBlID0gZXhwclR5cGUocmNvbG5vZGUpOworCQlOb2Rl CSAgICpiZXN0ZXhwcjsKKwkJaW50CQkJYmVzdGxvY2F0aW9uOworCQlPaWQJCQlyZXNjb2x0eXBl OworCQlpbnQzMgkJcmVzY29sdHlwbW9kOworCQlPaWQJCQlyZXNjb2xjb2xsOworCisJCS8qIHNl bGVjdCBjb21tb24gdHlwZSwgc2FtZSBhcyBDQVNFIGV0IGFsICovCisJCXJlc2NvbHR5cGUgPSBz ZWxlY3RfY29tbW9uX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCWxpc3RfbWFrZTIobGNvbG5vZGUs IHJjb2xub2RlKSwKKwkJCQkJCQkJCQljb250ZXh0LAorCQkJCQkJCQkJCSZiZXN0ZXhwcik7CisJ CWJlc3Rsb2NhdGlvbiA9IGV4cHJMb2NhdGlvbihiZXN0ZXhwcik7CiAKLQkJCS8qIGVtaXQgcmVz dWx0cyAqLwotCQkJb3AtPmNvbFR5cGVzID0gbGFwcGVuZF9vaWQob3AtPmNvbFR5cGVzLCByZXNj b2x0eXBlKTsKLQkJCW9wLT5jb2xUeXBtb2RzID0gbGFwcGVuZF9pbnQob3AtPmNvbFR5cG1vZHMs IHJlc2NvbHR5cG1vZCk7Ci0JCQlvcC0+Y29sQ29sbGF0aW9ucyA9IGxhcHBlbmRfb2lkKG9wLT5j b2xDb2xsYXRpb25zLCByZXNjb2xjb2xsKTsKKwkJLyoKKwkJICogVmVyaWZ5IHRoZSBjb2VyY2lv bnMgYXJlIGFjdHVhbGx5IHBvc3NpYmxlLiAgSWYgbm90LCB3ZSdkIGZhaWwKKwkJICogbGF0ZXIg YW55d2F5LCBidXQgd2Ugd2FudCB0byBmYWlsIG5vdyB3aGlsZSB3ZSBoYXZlIHN1ZmZpY2llbnQK KwkJICogY29udGV4dCB0byBwcm9kdWNlIGFuIGVycm9yIGN1cnNvciBwb3NpdGlvbi4KKwkJICoK KwkJICogRm9yIGFsbCBub24tVU5LTk9XTi10eXBlIGNhc2VzLCB3ZSB2ZXJpZnkgY29lcmNpYmls aXR5IGJ1dCB3ZSBkb24ndAorCQkgKiBtb2RpZnkgdGhlIGNoaWxkJ3MgZXhwcmVzc2lvbiwgZm9y IGZlYXIgb2YgY2hhbmdpbmcgdGhlIGNoaWxkCisJCSAqIHF1ZXJ5J3Mgc2VtYW50aWNzLgorCQkg KgorCQkgKiBJZiBhIGNoaWxkIGV4cHJlc3Npb24gaXMgYW4gVU5LTk9XTi10eXBlIENvbnN0IG9y IFBhcmFtLCB3ZSB3YW50IHRvCisJCSAqIHJlcGxhY2UgaXQgd2l0aCB0aGUgY29lcmNlZCBleHBy ZXNzaW9uLiAgVGhpcyBjYW4gb25seSBoYXBwZW4gd2hlbgorCQkgKiB0aGUgY2hpbGQgaXMgYSBs ZWFmIHNldC1vcCBub2RlLiAgSXQncyBzYWZlIHRvIHJlcGxhY2UgdGhlCisJCSAqIGV4cHJlc3Np b24gYmVjYXVzZSBpZiB0aGUgY2hpbGQgcXVlcnkncyBzZW1hbnRpY3MgZGVwZW5kZWQgb24gdGhl CisJCSAqIHR5cGUgb2YgdGhpcyBvdXRwdXQgY29sdW1uLCBpdCdkIGhhdmUgYWxyZWFkeSBjb2Vy Y2VkIHRoZSBVTktOT1dOCisJCSAqIHRvIHNvbWV0aGluZyBlbHNlLiAgV2Ugd2FudCB0byBkbyB0 aGlzIGJlY2F1c2UgKGEpIHdlIHdhbnQgdG8KKwkJICogdmVyaWZ5IHRoYXQgYSBDb25zdCBpcyB2 YWxpZCBmb3IgdGhlIHRhcmdldCB0eXBlLCBvciByZXNvbHZlIHRoZQorCQkgKiBhY3R1YWwgdHlw ZSBvZiBhbiBVTktOT1dOIFBhcmFtLCBhbmQgKGIpIHdlIHdhbnQgdG8gYXZvaWQKKwkJICogdW5u ZWNlc3NhcnkgZGlzY3JlcGFuY2llcyBiZXR3ZWVuIHRoZSBvdXRwdXQgdHlwZSBvZiB0aGUgY2hp bGQKKwkJICogcXVlcnkgYW5kIHRoZSByZXNvbHZlZCB0YXJnZXQgdHlwZS4gU3VjaCBhIGRpc2Ny ZXBhbmN5IHdvdWxkCisJCSAqIGRpc2FibGUgb3B0aW1pemF0aW9uIGluIHRoZSBwbGFubmVyLgor CQkgKgorCQkgKiBJZiBpdCdzIHNvbWUgb3RoZXIgVU5LTk9XTi10eXBlIG5vZGUsIGVnIGEgVmFy LCB3ZSBkbyBub3RoaW5nCisJCSAqIChrbm93aW5nIHRoYXQgY29lcmNlX3RvX2NvbW1vbl90eXBl IHdvdWxkIGZhaWwpLiAgVGhlIHBsYW5uZXIgaXMKKwkJICogc29tZXRpbWVzIGFibGUgdG8gZm9s ZCBhbiBVTktOT1dOIFZhciB0byBhIGNvbnN0YW50IGJlZm9yZSBpdCBoYXMKKwkJICogdG8gY29l cmNlIHRoZSB0eXBlLCBzbyBmYWlsaW5nIG5vdyB3b3VsZCBqdXN0IGJyZWFrIGNhc2VzIHRoYXQK KwkJICogbWlnaHQgd29yay4KKwkJICovCisJCWlmIChsY29sdHlwZSAhPSBVTktOT1dOT0lEKQor CQkJbGNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKKwkJ CQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQllbHNlIGlmIChJc0EobGNvbG5vZGUs IENvbnN0KSB8fAorCQkJCSBJc0EobGNvbG5vZGUsIFBhcmFtKSkKKwkJeworCQkJbGNvbG5vZGUg PSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBsY29sbm9kZSwKKwkJCQkJCQkJCQkJIHJl c2NvbHR5cGUsIGNvbnRleHQpOworCQkJbHRsZS0+ZXhwciA9IChFeHByICopIGxjb2xub2RlOwor CQl9CiAKLQkJCS8qCi0JCQkgKiBGb3IgYWxsIGNhc2VzIGV4Y2VwdCBVTklPTiBBTEwsIGlkZW50 aWZ5IHRoZSBncm91cGluZyBvcGVyYXRvcnMKLQkJCSAqIChhbmQsIGlmIGF2YWlsYWJsZSwgc29y dGluZyBvcGVyYXRvcnMpIHRoYXQgd2lsbCBiZSB1c2VkIHRvCi0JCQkgKiBlbGltaW5hdGUgZHVw bGljYXRlcy4KLQkJCSAqLwotCQkJaWYgKG9wLT5vcCAhPSBTRVRPUF9VTklPTiB8fCAhb3AtPmFs bCkKLQkJCXsKLQkJCQlQYXJzZUNhbGxiYWNrU3RhdGUgcGNic3RhdGU7CisJCWlmIChyY29sdHlw ZSAhPSBVTktOT1dOT0lEKQorCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0 YXRlLCByY29sbm9kZSwKKwkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQllbHNl IGlmIChJc0EocmNvbG5vZGUsIENvbnN0KSB8fAorCQkJCSBJc0EocmNvbG5vZGUsIFBhcmFtKSkK KwkJeworCQkJcmNvbG5vZGUgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCByY29sbm9k ZSwKKwkJCQkJCQkJCQkJIHJlc2NvbHR5cGUsIGNvbnRleHQpOworCQkJcnRsZS0+ZXhwciA9IChF eHByICopIHJjb2xub2RlOworCQl9CiAKLQkJCQlzZXR1cF9wYXJzZXJfZXJycG9zaXRpb25fY2Fs bGJhY2soJnBjYnN0YXRlLCBwc3RhdGUsCi0JCQkJCQkJCQkJCQkgIGJlc3Rsb2NhdGlvbik7CisJ CXJlc2NvbHR5cG1vZCA9IHNlbGVjdF9jb21tb25fdHlwbW9kKHBzdGF0ZSwKKwkJCQkJCQkJCQkJ bGlzdF9tYWtlMihsY29sbm9kZSwgcmNvbG5vZGUpLAorCQkJCQkJCQkJCQlyZXNjb2x0eXBlKTsK IAotCQkJCS8qCi0JCQkJICogSWYgaXQncyBhIHJlY3Vyc2l2ZSB1bmlvbiwgd2UgbmVlZCB0byBy ZXF1aXJlIGhhc2hpbmcKLQkJCQkgKiBzdXBwb3J0LgotCQkJCSAqLwotCQkJCW9wLT5ncm91cENs YXVzZXMgPSBsYXBwZW5kKG9wLT5ncm91cENsYXVzZXMsCi0JCQkJCQkJCQkJICAgbWFrZVNvcnRH cm91cENsYXVzZUZvclNldE9wKHJlc2NvbHR5cGUsIHJlY3Vyc2l2ZSkpOworCQkvKgorCQkgKiBT ZWxlY3QgY29tbW9uIGNvbGxhdGlvbi4gIEEgY29tbW9uIGNvbGxhdGlvbiBpcyByZXF1aXJlZCBm b3IgYWxsCisJCSAqIHNldCBvcGVyYXRvcnMgZXhjZXB0IFVOSU9OIEFMTDsgc2VlIFNRTDoyMDA4 IDcuMTMgPHF1ZXJ5CisJCSAqIGV4cHJlc3Npb24+IFN5bnRheCBSdWxlIDE1Yy4gIChJZiB3ZSBm YWlsIHRvIGlkZW50aWZ5IGEgY29tbW9uCisJCSAqIGNvbGxhdGlvbiBmb3IgYSBVTklPTiBBTEwg Y29sdW1uLCB0aGUgY29sQ29sbGF0aW9ucyBlbGVtZW50IHdpbGwgYmUKKwkJICogc2V0IHRvIElu dmFsaWRPaWQsIHdoaWNoIG1heSByZXN1bHQgaW4gYSBydW50aW1lIGVycm9yIGlmIHNvbWV0aGlu ZworCQkgKiBhdCBhIGhpZ2hlciBxdWVyeSBsZXZlbCB3YW50cyB0byB1c2UgdGhlIGNvbHVtbidz IGNvbGxhdGlvbi4pCisJCSAqLworCQlyZXNjb2xjb2xsID0gc2VsZWN0X2NvbW1vbl9jb2xsYXRp b24ocHN0YXRlLAorCQkJCQkJCQkJCQkgbGlzdF9tYWtlMihsY29sbm9kZSwgcmNvbG5vZGUpLAor CQkJCQkJCQkJCQkgKG9wLT5vcCA9PSBTRVRPUF9VTklPTiAmJiBvcC0+YWxsKSk7CiAKLQkJCQlj YW5jZWxfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7Ci0JCQl9CisJCS8q IGVtaXQgcmVzdWx0cyAqLworCQlvcC0+Y29sVHlwZXMgPSBsYXBwZW5kX29pZChvcC0+Y29sVHlw ZXMsIHJlc2NvbHR5cGUpOworCQlvcC0+Y29sVHlwbW9kcyA9IGxhcHBlbmRfaW50KG9wLT5jb2xU eXBtb2RzLCByZXNjb2x0eXBtb2QpOworCQlvcC0+Y29sQ29sbGF0aW9ucyA9IGxhcHBlbmRfb2lk KG9wLT5jb2xDb2xsYXRpb25zLCByZXNjb2xjb2xsKTsKIAotCQkJLyoKLQkJCSAqIENvbnN0cnVj dCBhIGR1bW15IHRsaXN0IGVudHJ5IHRvIHJldHVybi4gIFdlIHVzZSBhIFNldFRvRGVmYXVsdAot CQkJICogbm9kZSBmb3IgdGhlIGV4cHJlc3Npb24sIHNpbmNlIGl0IGNhcnJpZXMgZXhhY3RseSB0 aGUgZmllbGRzCi0JCQkgKiBuZWVkZWQsIGJ1dCBhbnkgb3RoZXIgZXhwcmVzc2lvbiBub2RlIHR5 cGUgd291bGQgZG8gYXMgd2VsbC4KLQkJCSAqLwotCQkJaWYgKHRhcmdldGxpc3QpCi0JCQl7Ci0J CQkJU2V0VG9EZWZhdWx0ICpyZXNjb2xub2RlID0gbWFrZU5vZGUoU2V0VG9EZWZhdWx0KTsKLQkJ CQlUYXJnZXRFbnRyeSAqcmVzdGxlOwotCi0JCQkJcmVzY29sbm9kZS0+dHlwZUlkID0gcmVzY29s dHlwZTsKLQkJCQlyZXNjb2xub2RlLT50eXBlTW9kID0gcmVzY29sdHlwbW9kOwotCQkJCXJlc2Nv bG5vZGUtPmNvbGxhdGlvbiA9IHJlc2NvbGNvbGw7Ci0JCQkJcmVzY29sbm9kZS0+bG9jYXRpb24g PSBiZXN0bG9jYXRpb247Ci0JCQkJcmVzdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHJl c2NvbG5vZGUsCi0JCQkJCQkJCQkJIDAsIC8qIG5vIG5lZWQgdG8gc2V0IHJlc25vICovCi0JCQkJ CQkJCQkJIE5VTEwsCi0JCQkJCQkJCQkJIGZhbHNlKTsKLQkJCQkqdGFyZ2V0bGlzdCA9IGxhcHBl bmQoKnRhcmdldGxpc3QsIHJlc3RsZSk7Ci0JCQl9CisJCS8qCisJCSAqIEZvciBhbGwgY2FzZXMg ZXhjZXB0IFVOSU9OIEFMTCwgaWRlbnRpZnkgdGhlIGdyb3VwaW5nIG9wZXJhdG9ycworCQkgKiAo YW5kLCBpZiBhdmFpbGFibGUsIHNvcnRpbmcgb3BlcmF0b3JzKSB0aGF0IHdpbGwgYmUgdXNlZCB0 bworCQkgKiBlbGltaW5hdGUgZHVwbGljYXRlcy4KKwkJICovCisJCWlmIChvcC0+b3AgIT0gU0VU T1BfVU5JT04gfHwgIW9wLT5hbGwpCisJCXsKKwkJCVBhcnNlQ2FsbGJhY2tTdGF0ZSBwY2JzdGF0 ZTsKKworCQkJc2V0dXBfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSwgcHN0 YXRlLAorCQkJCQkJCQkJCQkgIGJlc3Rsb2NhdGlvbik7CisKKwkJCS8qIElmIGl0J3MgYSByZWN1 cnNpdmUgdW5pb24sIHdlIG5lZWQgdG8gcmVxdWlyZSBoYXNoaW5nIHN1cHBvcnQuICovCisJCQlv cC0+Z3JvdXBDbGF1c2VzID0gbGFwcGVuZChvcC0+Z3JvdXBDbGF1c2VzLAorCQkJCQkJCQkJICAg bWFrZVNvcnRHcm91cENsYXVzZUZvclNldE9wKHJlc2NvbHR5cGUsIHJlY3Vyc2l2ZSkpOworCisJ CQljYW5jZWxfcGFyc2VyX2VycnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7CiAJCX0KIAot CQlyZXR1cm4gKE5vZGUgKikgb3A7CisJCS8qCisJCSAqIENvbnN0cnVjdCBhIGR1bW15IHRsaXN0 IGVudHJ5IHRvIHJldHVybi4gIFdlIHVzZSBhIFNldFRvRGVmYXVsdAorCQkgKiBub2RlIGZvciB0 aGUgZXhwcmVzc2lvbiwgc2luY2UgaXQgY2FycmllcyBleGFjdGx5IHRoZSBmaWVsZHMKKwkJICog bmVlZGVkLCBidXQgYW55IG90aGVyIGV4cHJlc3Npb24gbm9kZSB0eXBlIHdvdWxkIGRvIGFzIHdl bGwuCisJCSAqLworCQlpZiAodGFyZ2V0bGlzdCkKKwkJeworCQkJU2V0VG9EZWZhdWx0ICpyZXNj b2xub2RlID0gbWFrZU5vZGUoU2V0VG9EZWZhdWx0KTsKKwkJCVRhcmdldEVudHJ5ICpyZXN0bGU7 CisKKwkJCXJlc2NvbG5vZGUtPnR5cGVJZCA9IHJlc2NvbHR5cGU7CisJCQlyZXNjb2xub2RlLT50 eXBlTW9kID0gcmVzY29sdHlwbW9kOworCQkJcmVzY29sbm9kZS0+Y29sbGF0aW9uID0gcmVzY29s Y29sbDsKKwkJCXJlc2NvbG5vZGUtPmxvY2F0aW9uID0gYmVzdGxvY2F0aW9uOworCQkJcmVzdGxl ID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHJlc2NvbG5vZGUsCisJCQkJCQkJCQkgMCwgLyog bm8gbmVlZCB0byBzZXQgcmVzbm8gKi8KKwkJCQkJCQkJCSBOVUxMLAorCQkJCQkJCQkJIGZhbHNl KTsKKwkJCSp0YXJnZXRsaXN0ID0gbGFwcGVuZCgqdGFyZ2V0bGlzdCwgcmVzdGxlKTsKKwkJfQog CX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZDM4ODc2MjhkNDYuLjhhMjNjZGQ5YTQyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTI4OCw2ICsyODgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDcmVh dGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3Jl YXRlVGFibGVTcGFjZVN0bXQKIAkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3Rt dCBDcmVhdGVGb3JlaWduVGFibGVTdG10CiAJCUNyZWF0ZUFzc2VydGlvblN0bXQgQ3JlYXRlVHJh bnNmb3JtU3RtdCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVFdmVudFRyaWdTdG10CisJCUNyZWF0ZVBy b3BHcmFwaFN0bXQgQWx0ZXJQcm9wR3JhcGhTdG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVz ZXJNYXBwaW5nU3RtdCBDcmVhdGVSb2xlU3RtdCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRi U3RtdCBEZWNsYXJlQ3Vyc29yU3RtdCBEZWZpbmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQg RG9TdG10CiAJCURyb3BPcENsYXNzU3RtdCBEcm9wT3BGYW1pbHlTdG10IERyb3BTdG10CkBAIC02 NzIsNiArNjczLDM2IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJanNvbl9vYmplY3Rf Y29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9u dWxsX2NsYXVzZV9vcHQKIAorJXR5cGUgPGxpc3Q+CXZlcnRleF90YWJsZXNfY2xhdXNlIGVkZ2Vf dGFibGVzX2NsYXVzZQorCQkJCW9wdF92ZXJ0ZXhfdGFibGVzX2NsYXVzZSBvcHRfZWRnZV90YWJs ZXNfY2xhdXNlCisJCQkJdmVydGV4X3RhYmxlX2xpc3QKKwkJCQlvcHRfZ3JhcGhfdGFibGVfa2V5 X2NsYXVzZQorCQkJCWVkZ2VfdGFibGVfbGlzdAorCQkJCXNvdXJjZV92ZXJ0ZXhfdGFibGUgZGVz dGluYXRpb25fdmVydGV4X3RhYmxlCisJCQkJb3B0X2VsZW1lbnRfdGFibGVfbGFiZWxfYW5kX3By b3BlcnRpZXMKKwkJCQlsYWJlbF9hbmRfcHJvcGVydGllc19saXN0CisJCQkJYWRkX2xhYmVsX2xp c3QKKyV0eXBlIDxub2RlPgl2ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbiBlZGdlX3RhYmxlX2RlZmlu aXRpb24KKyV0eXBlIDxhbGlhcz4Jb3B0X3Byb3BncmFwaF90YWJsZV9hbGlhcworJXR5cGUgPHN0 cj4JCWVsZW1lbnRfdGFibGVfbGFiZWxfY2xhdXNlCisldHlwZSA8bm9kZT4JbGFiZWxfYW5kX3By b3BlcnRpZXMgZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVzCisJCQkJYWRkX2xhYmVsCisldHlwZSA8 aXZhbD4JdmVydGV4X29yX2VkZ2UKKworJXR5cGUgPGxpc3Q+CW9wdF9ncmFwaF9wYXR0ZXJuX3F1 YW50aWZpZXIKKwkJCQlwYXRoX3BhdHRlcm5fbGlzdAorCQkJCXBhdGhfcGF0dGVybgorCQkJCXBh dGhfcGF0dGVybl9leHByZXNzaW9uCisJCQkJcGF0aF90ZXJtCisldHlwZSA8bm9kZT4JZ3JhcGhf cGF0dGVybgorCQkJCXBhdGhfZmFjdG9yCisJCQkJcGF0aF9wcmltYXJ5CisJCQkJb3B0X2lzX2xh YmVsX2V4cHJlc3Npb24KKwkJCQlsYWJlbF9leHByZXNzaW9uCisJCQkJbGFiZWxfZGlzanVuY3Rp b24KKwkJCQlsYWJlbF90ZXJtCisldHlwZSA8c3RyPgkJb3B0X2NvbGlkCisKIAogLyoKICAqIE5v bi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0aGUgImZs ZXgiIGxleGVyLgpAQCAtNzE1LDE4ICs3NDYsMTggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAlDVVJSRU5UX1RJTUUgQ1VSUkVOVF9USU1FU1RBTVAgQ1VSUkVOVF9VU0VSIENVUlNPUiBDWUNM RQogCiAJREFUQV9QIERBVEFCQVNFIERBWV9QIERFQUxMT0NBVEUgREVDIERFQ0lNQUxfUCBERUNM QVJFIERFRkFVTFQgREVGQVVMVFMKLQlERUZFUlJBQkxFIERFRkVSUkVEIERFRklORVIgREVMRVRF X1AgREVMSU1JVEVSIERFTElNSVRFUlMgREVQRU5EUyBERVBUSCBERVNDCisJREVGRVJSQUJMRSBE RUZFUlJFRCBERUZJTkVSIERFTEVURV9QIERFTElNSVRFUiBERUxJTUlURVJTIERFUEVORFMgREVQ VEggREVTQyBERVNUSU5BVElPTgogCURFVEFDSCBESUNUSU9OQVJZIERJU0FCTEVfUCBESVNDQVJE IERJU1RJTkNUIERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKIAlET1VCTEVfUCBEUk9QCiAKLQlFQUNI IEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNPRElORyBFTkNSWVBURUQgRU5EX1AgRU5GT1JDRUQg RU5VTV9QIEVSUk9SX1AKLQlFU0NBUEUgRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVESU5HIEVY Q0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOCi0JRVhQUkVTU0lPTiBFWFRFTlNJT04gRVhU RVJOQUwgRVhUUkFDVAorCUVBQ0ggRURHRSBFTFNFIEVNUFRZX1AgRU5BQkxFX1AgRU5DT0RJTkcg RU5DUllQVEVEIEVORF9QIEVORk9SQ0VEIEVOVU1fUAorCUVSUk9SX1AgRVNDQVBFIEVWRU5UIEVY Q0VQVCBFWENMVURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhFQ1VURSBFWElTVFMKKwlFWFBMQUlO IEVYUFJFU1NJT04gRVhURU5TSU9OIEVYVEVSTkFMIEVYVFJBQ1QKIAogCUZBTFNFX1AgRkFNSUxZ IEZFVENIIEZJTFRFUiBGSU5BTElaRSBGSVJTVF9QIEZMT0FUX1AgRk9MTE9XSU5HIEZPUgogCUZP UkNFIEZPUkVJR04gRk9STUFUIEZPUldBUkQgRlJFRVpFIEZST00gRlVMTCBGVU5DVElPTiBGVU5D VElPTlMKIAotCUdFTkVSQVRFRCBHTE9CQUwgR1JBTlQgR1JBTlRFRCBHUkVBVEVTVCBHUk9VUF9Q IEdST1VQSU5HIEdST1VQUworCUdFTkVSQVRFRCBHTE9CQUwgR1JBTlQgR1JBTlRFRCBHUkFQSCBH UkFQSF9UQUJMRSBHUkVBVEVTVCBHUk9VUF9QIEdST1VQSU5HIEdST1VQUwogCiAJSEFORExFUiBI QVZJTkcgSEVBREVSX1AgSE9MRCBIT1VSX1AKIApAQCAtNzQ3LDcgKzc3OCw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhW QUxVRSBNRVJHRSBNRVJHRV9BQ1RJT04gTUVUSE9ECiAJTUlOVVRFX1AgTUlOVkFMVUUgTU9ERSBN T05USF9QIE1PVkUKIAotCU5BTUVfUCBOQU1FUyBOQVRJT05BTCBOQVRVUkFMIE5DSEFSIE5FU1RF RCBORVcgTkVYVCBORkMgTkZEIE5GS0MgTkZLRCBOTworCU5BTUVfUCBOQU1FUyBOQVRJT05BTCBO QVRVUkFMIE5DSEFSIE5FU1RFRCBORVcgTkVYVCBORkMgTkZEIE5GS0MgTkZLRCBOTyBOT0RFCiAJ Tk9ORSBOT1JNQUxJWkUgTk9STUFMSVpFRAogCU5PVCBOT1RISU5HIE5PVElGWSBOT1ROVUxMIE5P V0FJVCBOVUxMX1AgTlVMTElGCiAJTlVMTFNfUCBOVU1FUklDCkBAIC03NTksMTIgKzc5MCwxMiBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlz dCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVBBUkFMTEVMIFBBUkFNRVRFUiBQQVJTRVIgUEFS VElBTCBQQVJUSVRJT04gUEFTU0lORyBQQVNTV09SRCBQQVRICiAJUEVSSU9EIFBMQUNJTkcgUExB TiBQTEFOUyBQT0xJQ1kKIAlQT1NJVElPTiBQUkVDRURJTkcgUFJFQ0lTSU9OIFBSRVNFUlZFIFBS RVBBUkUgUFJFUEFSRUQgUFJJTUFSWQotCVBSSU9SIFBSSVZJTEVHRVMgUFJPQ0VEVVJBTCBQUk9D RURVUkUgUFJPQ0VEVVJFUyBQUk9HUkFNIFBVQkxJQ0FUSU9OCisJUFJJT1IgUFJJVklMRUdFUyBQ Uk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFJPUEVSVElFUyBQUk9QRVJU WSBQVUJMSUNBVElPTgogCiAJUVVPVEUgUVVPVEVTCiAKIAlSQU5HRSBSRUFEIFJFQUwgUkVBU1NJ R04gUkVDVVJTSVZFIFJFRl9QIFJFRkVSRU5DRVMgUkVGRVJFTkNJTkcKLQlSRUZSRVNIIFJFSU5E RVggUkVMQVRJVkVfUCBSRUxFQVNFIFJFTkFNRSBSRVBFQVRBQkxFIFJFUExBQ0UgUkVQTElDQQor CVJFRlJFU0ggUkVJTkRFWCBSRUxBVElPTlNISVAgUkVMQVRJVkVfUCBSRUxFQVNFIFJFTkFNRSBS RVBFQVRBQkxFIFJFUExBQ0UgUkVQTElDQQogCVJFU0VUIFJFU1RBUlQgUkVTVFJJQ1QgUkVUVVJO IFJFVFVSTklORyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJPTExVUAogCVJP VVRJTkUgUk9VVElORVMgUk9XIFJPV1MgUlVMRQogCkBAIC03ODQsNyArODE1LDcgQEAgc3RhdGlj IE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFz ZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBV U0lORwogCiAJVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBW QVJDSEFSIFZBUklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZJ UlRVQUwgVk9MQVRJTEUKKwlWRVJCT1NFIFZFUlNJT05fUCBWRVJURVggVklFVyBWSUVXUyBWSVJU VUFMIFZPTEFUSUxFCiAKIAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRI SU4gV0lUSE9VVCBXT1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtODgyLDcgKzkxMyw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAlbm9uYXNzb2MJVU5CT1VOREVEIE5FU1RFRCAvKiBpZGVhbGx5 IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRlbmNlIGFzIElERU5UICovCiAlbm9uYXNzb2MJSURFTlQg UEFSVElUSU9OIFJBTkdFIFJPV1MgR1JPVVBTIFBSRUNFRElORyBGT0xMT1dJTkcgQ1VCRSBST0xM VVAKIAkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRI Ci0lbGVmdAkJT3AgT1BFUkFUT1IJCS8qIG11bHRpLWNoYXJhY3RlciBvcHMgYW5kIHVzZXItZGVm aW5lZCBvcGVyYXRvcnMgKi8KKyVsZWZ0CQlPcCBPUEVSQVRPUiBSSUdIVF9BUlJPVyAnfCcJLyog bXVsdGktY2hhcmFjdGVyIG9wcyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJ CScrJyAnLScKICVsZWZ0CQknKicgJy8nICclJwogJWxlZnQJCSdeJwpAQCAtMTAwOSw2ICsxMDQw LDcgQEAgc3RtdDoKIAkJCXwgQWx0ZXJPcGVyYXRvclN0bXQKIAkJCXwgQWx0ZXJUeXBlU3RtdAog CQkJfCBBbHRlclBvbGljeVN0bXQKKwkJCXwgQWx0ZXJQcm9wR3JhcGhTdG10CiAJCQl8IEFsdGVy U2VxU3RtdAogCQkJfCBBbHRlclN5c3RlbVN0bXQKIAkJCXwgQWx0ZXJUYWJsZVN0bXQKQEAgLTEw NDksNiArMTA4MSw3IEBAIHN0bXQ6CiAJCQl8IEFsdGVyT3BGYW1pbHlTdG10CiAJCQl8IENyZWF0 ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CisJCQl8IENyZWF0ZVByb3BHcmFwaFN0 bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENyZWF0 ZVN0bXQKQEAgLTcwMjksNiArNzA2Miw3IEBAIG9iamVjdF90eXBlX2FueV9uYW1lOgogCQkJfCBN QVRFUklBTElaRUQgVklFVwkJCQkJCXsgJCQgPSBPQkpFQ1RfTUFUVklFVzsgfQogCQkJfCBJTkRF WAkJCQkJCQkJCXsgJCQgPSBPQkpFQ1RfSU5ERVg7IH0KIAkJCXwgRk9SRUlHTiBUQUJMRQkJCQkJ CQl7ICQkID0gT0JKRUNUX0ZPUkVJR05fVEFCTEU7IH0KKwkJCXwgUFJPUEVSVFkgR1JBUEgJCQkJ CQl7ICQkID0gT0JKRUNUX1BST1BHUkFQSDsgfQogCQkJfCBDT0xMQVRJT04JCQkJCQkJCXsgJCQg PSBPQkpFQ1RfQ09MTEFUSU9OOyB9CiAJCQl8IENPTlZFUlNJT05fUAkJCQkJCQl7ICQkID0gT0JK RUNUX0NPTlZFUlNJT047IH0KIAkJCXwgU1RBVElTVElDUwkJCQkJCQl7ICQkID0gT0JKRUNUX1NU QVRJU1RJQ19FWFQ7IH0KQEAgLTc4ODUsNiArNzkxOSwxNSBAQCBwcml2aWxlZ2VfdGFyZ2V0Ogog CQkJCQluLT5vYmpzID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IFBST1BFUlRZIEdS QVBIIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJp dlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKworCQkJCQluLT50YXJndHlw ZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1BST1BHUkFQ SDsKKwkJCQkJbi0+b2JqcyA9ICQzOworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBTQ0hFTUEg bmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFs bG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC05MjA4LDYgKzkyNTEsMzY2IEBAIG9wdF9pZl9l eGlzdHM6IElGX1AgRVhJU1RTCQkJCQkJeyAkJCA9IHRydWU7IH0KIAkJOwogCiAKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorICoKKyAqCQlDUkVBVEUgUFJPUEVSVFkgR1JBUEgKKyAqCQlBTFRFUiBQ Uk9QRVJUWSBHUkFQSAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQ3JlYXRlUHJvcEdy YXBoU3RtdDogQ1JFQVRFIE9wdFRlbXAgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgb3B0 X3ZlcnRleF90YWJsZXNfY2xhdXNlIG9wdF9lZGdlX3RhYmxlc19jbGF1c2UKKwkJCQl7CisJCQkJ CUNyZWF0ZVByb3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQcm9wR3JhcGhTdG10KTsK KworCQkJCQluLT5wZ25hbWUgPSAkNTsKKwkJCQkJbi0+cGduYW1lLT5yZWxwZXJzaXN0ZW5jZSA9 ICQyOworCQkJCQluLT52ZXJ0ZXhfdGFibGVzID0gJDY7CisJCQkJCW4tPmVkZ2VfdGFibGVzID0g JDc7CisKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQk7CisKK29wdF92ZXJ0ZXhfdGFi bGVzX2NsYXVzZToKKwkJCXZlcnRleF90YWJsZXNfY2xhdXNlCQkJCXsgJCQgPSAkMTsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJCQkJeyAkJCA9IE5JTDsgfQorCQk7CisKK3ZlcnRleF90YWJsZXNfY2xh dXNlOgorCQkJdmVydGV4X3N5bm9ueW0gVEFCTEVTICcoJyB2ZXJ0ZXhfdGFibGVfbGlzdCAnKScJ eyAkJCA9ICQ0OyB9CisJCTsKKwordmVydGV4X3N5bm9ueW06IE5PREUgfCBWRVJURVgKKwkJOwor Cit2ZXJ0ZXhfdGFibGVfbGlzdDogdmVydGV4X3RhYmxlX2RlZmluaXRpb24JCQkJCQl7ICQkID0g bGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgdmVydGV4X3RhYmxlX2xpc3QgJywnIHZlcnRleF90YWJs ZV9kZWZpbml0aW9uCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJCTsKKwordmVydGV4X3Rh YmxlX2RlZmluaXRpb246IHF1YWxpZmllZF9uYW1lIG9wdF9wcm9wZ3JhcGhfdGFibGVfYWxpYXMg b3B0X2dyYXBoX3RhYmxlX2tleV9jbGF1c2UKKwkJCQlvcHRfZWxlbWVudF90YWJsZV9sYWJlbF9h bmRfcHJvcGVydGllcworCQkJCXsKKwkJCQkJUHJvcEdyYXBoVmVydGV4ICpuID0gbWFrZU5vZGUo UHJvcEdyYXBoVmVydGV4KTsKKworCQkJCQkkMS0+YWxpYXMgPSAkMjsKKwkJCQkJbi0+dnRhYmxl ID0gJDE7CisJCQkJCW4tPnZrZXkgPSAkMzsKKwkJCQkJbi0+bGFiZWxzID0gJDQ7CisJCQkJCW4t PmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCitv cHRfcHJvcGdyYXBoX3RhYmxlX2FsaWFzOgorCQkJQVMgbmFtZQorCQkJCXsKKwkJCQkJJCQgPSBt YWtlTm9kZShBbGlhcyk7CisJCQkJCSQkLT5hbGlhc25hbWUgPSAkMjsKKwkJCQl9CisJCQl8IC8q RU1QVFkqLwkJCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisKK29wdF9ncmFwaF90YWJsZV9rZXlf Y2xhdXNlOgorCQkJS0VZICcoJyBjb2x1bW5MaXN0ICcpJwkJCQl7ICQkID0gJDM7IH0KKwkJCXwg LypFTVBUWSovCQkJCQkJCXsgJCQgPSBOSUw7IH0KKwkJOworCitvcHRfZWRnZV90YWJsZXNfY2xh dXNlOgorCQkJZWRnZV90YWJsZXNfY2xhdXNlCQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgLypFTVBU WSovCQkJCQkJCXsgJCQgPSBOSUw7IH0KKwkJOworCitlZGdlX3RhYmxlc19jbGF1c2U6CisJCQll ZGdlX3N5bm9ueW0gVEFCTEVTICcoJyBlZGdlX3RhYmxlX2xpc3QJJyknCQkJeyAkJCA9ICQ0OyB9 CisJCTsKKworZWRnZV9zeW5vbnltOiBFREdFIHwgUkVMQVRJT05TSElQCisJCTsKKworZWRnZV90 YWJsZV9saXN0OiBlZGdlX3RhYmxlX2RlZmluaXRpb24JCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgk MSk7IH0KKwkJCXwgZWRnZV90YWJsZV9saXN0ICcsJyBlZGdlX3RhYmxlX2RlZmluaXRpb24JCXsg JCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwkJOworCitlZGdlX3RhYmxlX2RlZmluaXRpb246IHF1 YWxpZmllZF9uYW1lIG9wdF9wcm9wZ3JhcGhfdGFibGVfYWxpYXMgb3B0X2dyYXBoX3RhYmxlX2tl eV9jbGF1c2UKKwkJCQlzb3VyY2VfdmVydGV4X3RhYmxlIGRlc3RpbmF0aW9uX3ZlcnRleF90YWJs ZSBvcHRfZWxlbWVudF90YWJsZV9sYWJlbF9hbmRfcHJvcGVydGllcworCQkJCXsKKwkJCQkJUHJv cEdyYXBoRWRnZSAqbiA9IG1ha2VOb2RlKFByb3BHcmFwaEVkZ2UpOworCisJCQkJCSQxLT5hbGlh cyA9ICQyOworCQkJCQluLT5ldGFibGUgPSAkMTsKKwkJCQkJbi0+ZWtleSA9ICQzOworCQkJCQlu LT5lc3Jja2V5ID0gbGluaXRpYWwoJDQpOworCQkJCQluLT5lc3JjdmVydGV4ID0gbHNlY29uZCgk NCk7CisJCQkJCW4tPmVzcmN2ZXJ0ZXhjb2xzID0gbHRoaXJkKCQ0KTsKKwkJCQkJbi0+ZWRlc3Rr ZXkgPSBsaW5pdGlhbCgkNSk7CisJCQkJCW4tPmVkZXN0dmVydGV4ID0gbHNlY29uZCgkNSk7CisJ CQkJCW4tPmVkZXN0dmVydGV4Y29scyA9IGx0aGlyZCgkNSk7CisJCQkJCW4tPmxhYmVscyA9ICQ2 OworCQkJCQluLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CisJCTsKKworc291cmNlX3ZlcnRleF90YWJsZTogU09VUkNFIG5hbWUKKwkJCQl7CisJCQkJCSQk ID0gbGlzdF9tYWtlMyhOVUxMLCAkMiwgTlVMTCk7CisJCQkJfQorCQkJCXwgU09VUkNFIEtFWSAn KCcgY29sdW1uTGlzdCAnKScgUkVGRVJFTkNFUyBuYW1lICcoJyBjb2x1bW5MaXN0ICcpJworCQkJ CXsKKwkJCQkJJCQgPSBsaXN0X21ha2UzKCQ0LCAkNywgJDkpOworCQkJCX0KKwkJOworCitkZXN0 aW5hdGlvbl92ZXJ0ZXhfdGFibGU6IERFU1RJTkFUSU9OIG5hbWUKKwkJCQl7CisJCQkJCSQkID0g bGlzdF9tYWtlMyhOVUxMLCAkMiwgTlVMTCk7CisJCQkJfQorCQkJCXwgREVTVElOQVRJT04gS0VZ ICcoJyBjb2x1bW5MaXN0ICcpJyBSRUZFUkVOQ0VTIG5hbWUgJygnIGNvbHVtbkxpc3QgJyknCisJ CQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTMoJDQsICQ3LCAkOSk7CisJCQkJfQorCQk7CisKK29w dF9lbGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzOgorCQkJZWxlbWVudF90YWJsZV9w cm9wZXJ0aWVzCisJCQkJeworCQkJCQlQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMgKmxwID0g bWFrZU5vZGUoUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzKTsKKworCQkJCQlscC0+cHJvcGVy dGllcyA9IChQcm9wR3JhcGhQcm9wZXJ0aWVzICopICQxOworCQkJCQlscC0+bG9jYXRpb24gPSBA MTsKKworCQkJCQkkJCA9IGxpc3RfbWFrZTEobHApOworCQkJCX0KKwkJCXwgbGFiZWxfYW5kX3By b3BlcnRpZXNfbGlzdAorCQkJCXsKKwkJCQkJJCQgPSAkMTsKKwkJCQl9CisJCQl8IC8qRU1QVFkq LworCQkJCXsKKwkJCQkJUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzICpscCA9IG1ha2VOb2Rl KFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyk7CisJCQkJCVByb3BHcmFwaFByb3BlcnRpZXMg KnByID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGllcyk7CisKKwkJCQkJcHItPmFsbCA9IHRy dWU7CisJCQkJCXByLT5sb2NhdGlvbiA9IC0xOworCQkJCQlscC0+cHJvcGVydGllcyA9IHByOwor CQkJCQlscC0+bG9jYXRpb24gPSAtMTsKKworCQkJCQkkJCA9IGxpc3RfbWFrZTEobHApOworCQkJ CX0KKwkJOworCitlbGVtZW50X3RhYmxlX3Byb3BlcnRpZXM6CisJCQlOTyBQUk9QRVJUSUVTCisJ CQkJeworCQkJCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFBy b3BlcnRpZXMpOworCisJCQkJCXByLT5wcm9wZXJ0aWVzID0gTklMOworCQkJCQlwci0+bG9jYXRp b24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIHByOworCQkJCX0KKwkJCXwgUFJPUEVSVElF UyBBTEwgQ09MVU1OUworCQkJLyp8IFBST1BFUlRJRVMgQVJFIEFMTCBDT0xVTU5TICovCisJCQkJ eworCQkJCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3Bl cnRpZXMpOworCisJCQkJCXByLT5hbGwgPSB0cnVlOworCQkJCQlwci0+bG9jYXRpb24gPSBAMTsK KworCQkJCQkkJCA9IChOb2RlICopIHByOworCQkJCX0KKwkJCXwgUFJPUEVSVElFUyAnKCcgeG1s X2F0dHJpYnV0ZV9saXN0ICcpJworCQkJCXsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIg PSBtYWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlwci0+cHJvcGVydGllcyA9 ICQzOworCQkJCQlwci0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIHByOwor CQkJCX0KKwkJOworCitsYWJlbF9hbmRfcHJvcGVydGllc19saXN0OgorCQkJbGFiZWxfYW5kX3By b3BlcnRpZXMKKwkJCQl7CisJCQkJCSQkID0gbGlzdF9tYWtlMSgkMSk7CisJCQkJfQorCQkJfCBs YWJlbF9hbmRfcHJvcGVydGllc19saXN0IGxhYmVsX2FuZF9wcm9wZXJ0aWVzCisJCQkJeworCQkJ CQkkJCA9IGxhcHBlbmQoJDEsICQyKTsKKwkJCQl9CisJCTsKKworbGFiZWxfYW5kX3Byb3BlcnRp ZXM6CisJCQllbGVtZW50X3RhYmxlX2xhYmVsX2NsYXVzZQorCQkJCXsKKwkJCQkJUHJvcEdyYXBo TGFiZWxBbmRQcm9wZXJ0aWVzICpscCA9IG1ha2VOb2RlKFByb3BHcmFwaExhYmVsQW5kUHJvcGVy dGllcyk7CisJCQkJCVByb3BHcmFwaFByb3BlcnRpZXMgKnByID0gbWFrZU5vZGUoUHJvcEdyYXBo UHJvcGVydGllcyk7CisKKwkJCQkJcHItPmFsbCA9IHRydWU7CisJCQkJCXByLT5sb2NhdGlvbiA9 IC0xOworCisJCQkJCWxwLT5sYWJlbCA9ICQxOworCQkJCQlscC0+cHJvcGVydGllcyA9IHByOwor CQkJCQlscC0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIGxwOworCQkJCX0K KwkJCXwgZWxlbWVudF90YWJsZV9sYWJlbF9jbGF1c2UgZWxlbWVudF90YWJsZV9wcm9wZXJ0aWVz CisJCQkJeworCQkJCQlQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMgKmxwID0gbWFrZU5vZGUo UHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzKTsKKworCQkJCQlscC0+bGFiZWwgPSAkMTsKKwkJ CQkJbHAtPnByb3BlcnRpZXMgPSAoUHJvcEdyYXBoUHJvcGVydGllcyAqKSAkMjsKKwkJCQkJbHAt PmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBscDsKKwkJCQl9CisJCTsKKwor ZWxlbWVudF90YWJsZV9sYWJlbF9jbGF1c2U6CisJCQlMQUJFTCBuYW1lCisJCQkJeworCQkJCQkk JCA9ICQyOworCQkJCX0KKwkJCXwgREVGQVVMVCBMQUJFTAorCQkJCXsKKwkJCQkJJCQgPSBOVUxM OworCQkJCX0KKwkJOworCitBbHRlclByb3BHcmFwaFN0bXQ6CisJCQlBTFRFUiBQUk9QRVJUWSBH UkFQSCBxdWFsaWZpZWRfbmFtZSBBRERfUCB2ZXJ0ZXhfdGFibGVzX2NsYXVzZQorCQkJCXsKKwkJ CQkJQWx0ZXJQcm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsK KworCQkJCQluLT5wZ25hbWUgPSAkNDsKKwkJCQkJbi0+YWRkX3ZlcnRleF90YWJsZXMgPSAkNjsK KworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQ SCBxdWFsaWZpZWRfbmFtZSBBRERfUCB2ZXJ0ZXhfdGFibGVzX2NsYXVzZSBBRERfUCBlZGdlX3Rh Ymxlc19jbGF1c2UKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmFk ZF92ZXJ0ZXhfdGFibGVzID0gJDY7CisJCQkJCW4tPmFkZF9lZGdlX3RhYmxlcyA9ICQ4OworCisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1 YWxpZmllZF9uYW1lIEFERF9QIGVkZ2VfdGFibGVzX2NsYXVzZQorCQkJCXsKKwkJCQkJQWx0ZXJQ cm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsKKworCQkJCQlu LT5wZ25hbWUgPSAkNDsKKwkJCQkJbi0+YWRkX2VkZ2VfdGFibGVzID0gJDY7CisKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVk X25hbWUgRFJPUCB2ZXJ0ZXhfc3lub255bSBUQUJMRVMgJygnIG5hbWVfbGlzdCAnKScgb3B0X2Ry b3BfYmVoYXZpb3IKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmRy b3BfdmVydGV4X3RhYmxlcyA9ICQ5OworCQkJCQluLT5kcm9wX2JlaGF2aW9yID0gJDExOworCisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1 YWxpZmllZF9uYW1lIERST1AgZWRnZV9zeW5vbnltIFRBQkxFUyAnKCcgbmFtZV9saXN0ICcpJyBv cHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0ZXJQcm9wR3JhcGhTdG10ICpuID0gbWFr ZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsKKworCQkJCQluLT5wZ25hbWUgPSAkNDsKKwkJCQkJ bi0+ZHJvcF9lZGdlX3RhYmxlcyA9ICQ5OworCQkJCQluLT5kcm9wX2JlaGF2aW9yID0gJDExOwor CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBI IHF1YWxpZmllZF9uYW1lIEFMVEVSIHZlcnRleF9vcl9lZGdlIFRBQkxFIG5hbWUKKwkJCQlhZGRf bGFiZWxfbGlzdAorCQkJCXsKKwkJCQkJQWx0ZXJQcm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJQcm9wR3JhcGhTdG10KTsKKworCQkJCQluLT5wZ25hbWUgPSAkNDsKKwkJCQkJbi0+ZWxl bWVudF9raW5kID0gJDY7CisJCQkJCW4tPmVsZW1lbnRfYWxpYXMgPSAkODsKKwkJCQkJbi0+YWRk X2xhYmVscyA9ICQ5OworCisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVS IFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIEFMVEVSIHZlcnRleF9vcl9lZGdlIFRBQkxF IG5hbWUKKwkJCQlEUk9QIExBQkVMIG5hbWUgb3B0X2Ryb3BfYmVoYXZpb3IKKwkJCQl7CisJCQkJ CUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisK KwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4tPmVsZW1lbnRfa2luZCA9ICQ2OworCQkJCQlu LT5lbGVtZW50X2FsaWFzID0gJDg7CisJCQkJCW4tPmRyb3BfbGFiZWwgPSAkMTE7CisJCQkJCW4t PmRyb3BfYmVoYXZpb3IgPSAkMTI7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ CXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUxURVIgdmVydGV4X29yX2Vk Z2UgVEFCTEUgbmFtZQorCQkJCUFMVEVSIExBQkVMIG5hbWUgQUREX1AgUFJPUEVSVElFUyAnKCcg eG1sX2F0dHJpYnV0ZV9saXN0ICcpJworCQkJCXsKKwkJCQkJQWx0ZXJQcm9wR3JhcGhTdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGll cyAqcHIgPSBtYWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQluLT5wZ25hbWUg PSAkNDsKKwkJCQkJbi0+ZWxlbWVudF9raW5kID0gJDY7CisJCQkJCW4tPmVsZW1lbnRfYWxpYXMg PSAkODsKKwkJCQkJbi0+YWx0ZXJfbGFiZWwgPSAkMTE7CisKKwkJCQkJcHItPnByb3BlcnRpZXMg PSAkMTU7CisJCQkJCXByLT5sb2NhdGlvbiA9IEAxMzsKKwkJCQkJbi0+YWRkX3Byb3BlcnRpZXMg PSBwcjsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJU WSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBTFRFUiB2ZXJ0ZXhfb3JfZWRnZSBUQUJMRSBuYW1lCisJ CQkJQUxURVIgTEFCRUwgbmFtZSBEUk9QIFBST1BFUlRJRVMgJygnIG5hbWVfbGlzdCAnKScgb3B0 X2Ryb3BfYmVoYXZpb3IKKwkJCQl7CisJCQkJCUFsdGVyUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VO b2RlKEFsdGVyUHJvcEdyYXBoU3RtdCk7CisKKwkJCQkJbi0+cGduYW1lID0gJDQ7CisJCQkJCW4t PmVsZW1lbnRfa2luZCA9ICQ2OworCQkJCQluLT5lbGVtZW50X2FsaWFzID0gJDg7CisJCQkJCW4t PmFsdGVyX2xhYmVsID0gJDExOworCQkJCQluLT5kcm9wX3Byb3BlcnRpZXMgPSAkMTU7CisJCQkJ CW4tPmRyb3BfYmVoYXZpb3IgPSAkMTc7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K KwkJOworCit2ZXJ0ZXhfb3JfZWRnZToKKwkJCXZlcnRleF9zeW5vbnltCQkJCQkJeyAkJCA9IFBS T1BHUkFQSF9FTEVNRU5UX0tJTkRfVkVSVEVYOyB9CisJCQl8IGVkZ2Vfc3lub255bQkJCQkJCXsg JCQgPSBQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX0VER0U7IH0KKwkJOworCithZGRfbGFiZWxfbGlz dDoKKwkJCWFkZF9sYWJlbAkJCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgYWRk X2xhYmVsX2xpc3QgYWRkX2xhYmVsCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQyKTsJfQorCQk7CisK K2FkZF9sYWJlbDogQUREX1AgTEFCRUwgbmFtZSBlbGVtZW50X3RhYmxlX3Byb3BlcnRpZXMKKwkJ CQl7CisJCQkJCVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBtYWtlTm9kZShQcm9w R3JhcGhMYWJlbEFuZFByb3BlcnRpZXMpOworCisJCQkJCWxwLT5sYWJlbCA9ICQzOworCQkJCQls cC0+cHJvcGVydGllcyA9IChQcm9wR3JhcGhQcm9wZXJ0aWVzICopICQ0OworCQkJCQlscC0+bG9j YXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIGxwOworCQkJCX0KKwkJOworCisKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICoKICAqCQlDUkVBVEUgVFJBTlNGT1JNIC8gRFJPUCBUUkFO U0ZPUk0KQEAgLTk1MDgsNiArOTkxMSwxNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUg YWdncmVnYXRlX3dpdGhfYXJndHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19v ayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBQUk9Q RVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVu YW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUg PSBPQkpFQ1RfUFJPUEdSQVBIOworCQkJCQluLT5yZWxhdGlvbiA9ICQ0OworCQkJCQluLT5uZXdu YW1lID0gJDc7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAq KW47CisJCQkJfQogCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFTkFNRSBUTyBuYW1lCiAJ CQkJewogCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CkBAIC0xMDEz Myw2ICsxMDU0NiwyNiBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFJP UEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlB bHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQp OworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfUFJPUEdSQVBIOworCQkJCQluLT5yZWxh dGlvbiA9ICQ0OworCQkJCQluLT5uZXdzY2hlbWEgPSAkNzsKKwkJCQkJbi0+bWlzc2luZ19vayA9 IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZ IEdSQVBIIElGX1AgRVhJU1RTIHF1YWxpZmllZF9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsK KwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hl bWFTdG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1BST1BHUkFQSDsKKwkJCQkJ bi0+cmVsYXRpb24gPSAkNjsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDk7CisJCQkJCW4tPm1pc3Np bmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFJP VVRJTkUgZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBTRVQgU0NIRU1BIG5hbWUKIAkJCQl7CiAJCQkJ CUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3Rt dCk7CkBAIC0xMDQ3Niw2ICsxMDkwOSwxNSBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVH QVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5l d293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBS T1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJ CQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10KTsKKworCQkJCQlu LT5vYmplY3RUeXBlID0gT0JKRUNUX1BST1BHUkFQSDsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNDsK KwkJCQkJbi0+bmV3b3duZXIgPSAkNzsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJ CXwgQUxURVIgUk9VVElORSBmdW5jdGlvbl93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVj CiAJCQkJewogCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJTdG10 KTsKQEAgLTEzNjQ4LDYgKzE0MDkwLDE3IEBAIHRhYmxlX3JlZjoJcmVsYXRpb25fZXhwciBvcHRf YWxpYXNfY2xhdXNlCiAJCQkJCW4tPmFsaWFzID0gJDM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IEdSQVBIX1RBQkxFICcoJyBxdWFsaWZpZWRfbmFtZSBNQVRDSCBncmFwaF9w YXR0ZXJuIENPTFVNTlMgJygnIHhtbF9hdHRyaWJ1dGVfbGlzdCAnKScgJyknIG9wdF9hbGlhc19j bGF1c2UKKwkJCQl7CisJCQkJCVJhbmdlR3JhcGhUYWJsZSAqbiA9IG1ha2VOb2RlKFJhbmdlR3Jh cGhUYWJsZSk7CisKKwkJCQkJbi0+Z3JhcGhfbmFtZSA9ICQzOworCQkJCQluLT5ncmFwaF9wYXR0 ZXJuID0gY2FzdE5vZGUoR3JhcGhQYXR0ZXJuLCAkNSk7CisJCQkJCW4tPmNvbHVtbnMgPSAkODsK KwkJCQkJbi0+YWxpYXMgPSAkMTE7CisJCQkJCW4tPmxvY2F0aW9uID0gQDE7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IHNlbGVjdF93aXRoX3BhcmVucyBvcHRfYWxpYXNfY2xh dXNlCiAJCQkJewogCQkJCQlSYW5nZVN1YnNlbGVjdCAqbiA9IG1ha2VOb2RlKFJhbmdlU3Vic2Vs ZWN0KTsKQEAgLTE0OTkyLDYgKzE1NDQ1LDEwIEBAIGFfZXhwcjoJCWNfZXhwcgkJCQkJCQkJCXsg JCQgPSAkMTsgfQogCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09Q LCAiPj0iLCAkMSwgJDMsIEAyKTsgfQogCQkJfCBhX2V4cHIgTk9UX0VRVUFMUyBhX2V4cHIKIAkJ CQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgIjw+IiwgJDEsICQz LCBAMik7IH0KKwkJCXwgYV9leHByIFJJR0hUX0FSUk9XIGFfZXhwcgorCQkJCXsgJCQgPSAoTm9k ZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAiLT4iLCAkMSwgJDMsIEAyKTsgfQorCQkJ fCBhX2V4cHIgJ3wnIGFfZXhwcgorCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHBy KEFFWFBSX09QLCAifCIsICQxLCAkMywgQDIpOyB9CiAKIAkJCXwgYV9leHByIHF1YWxfT3AgYV9l eHByCQkJCSVwcmVjIE9wCiAJCQkJeyAkJCA9IChOb2RlICopIG1ha2VBX0V4cHIoQUVYUFJfT1As ICQyLCAkMSwgJDMsIEAyKTsgfQpAQCAtMTU0NzEsNiArMTU5MjgsMTAgQEAgYl9leHByOgkJY19l eHByCiAJCQkJeyAkJCA9IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIoQUVYUFJfT1AsICI+PSIs ICQxLCAkMywgQDIpOyB9CiAJCQl8IGJfZXhwciBOT1RfRVFVQUxTIGJfZXhwcgogCQkJCXsgJCQg PSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAiPD4iLCAkMSwgJDMsIEAyKTsg fQorCQkJfCBiX2V4cHIgUklHSFRfQVJST1cgYl9leHByCisJCQkJeyAkJCA9IChOb2RlICopIG1h a2VTaW1wbGVBX0V4cHIoQUVYUFJfT1AsICItPiIsICQxLCAkMywgQDIpOyB9CisJCQl8IGJfZXhw ciAnfCcgYl9leHByCisJCQkJeyAkJCA9IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIoQUVYUFJf T1AsICJ8IiwgJDEsICQzLCBAMik7IH0KIAkJCXwgYl9leHByIHF1YWxfT3AgYl9leHByCQkJCSVw cmVjIE9wCiAJCQkJeyAkJCA9IChOb2RlICopIG1ha2VBX0V4cHIoQUVYUFJfT1AsICQyLCAkMSwg JDMsIEAyKTsgfQogCQkJfCBxdWFsX09wIGJfZXhwcgkJCQkJJXByZWMgT3AKQEAgLTE2NjM5LDYg KzE3MTAwLDggQEAgTWF0aE9wOgkJICcrJwkJCQkJCQkJCXsgJCQgPSAiKyI7IH0KIAkJCXwgTEVT U19FUVVBTFMJCQkJCQkJeyAkJCA9ICI8PSI7IH0KIAkJCXwgR1JFQVRFUl9FUVVBTFMJCQkJCQl7 ICQkID0gIj49IjsgfQogCQkJfCBOT1RfRVFVQUxTCQkJCQkJCXsgJCQgPSAiPD4iOyB9CisJCQl8 IFJJR0hUX0FSUk9XCQkJCQkJCXsgJCQgPSAiLT4iOyB9CisJCQl8ICd8JwkJCQkJCQkJCXsgJCQg PSAifCI7IH0KIAkJOwogCiBxdWFsX09wOglPcApAQCAtMTcyMzAsNiArMTc2OTMsMjEzIEBAIGpz b25fYXJyYXlfYWdncmVnYXRlX29yZGVyX2J5X2NsYXVzZV9vcHQ6CiAJCQl8IC8qIEVNUFRZICov CQkJCQkJCXsgJCQgPSBOSUw7IH0KIAkJOwogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoK KyAqCWdyYXBoIHBhdHRlcm5zCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitncmFwaF9w YXR0ZXJuOgorCQkJcGF0aF9wYXR0ZXJuX2xpc3Qgd2hlcmVfY2xhdXNlCisJCQkJeworCQkJCQlH cmFwaFBhdHRlcm4gKmdwID0gbWFrZU5vZGUoR3JhcGhQYXR0ZXJuKTsKKworCQkJCQlncC0+cGF0 aF9wYXR0ZXJuX2xpc3QgPSAkMTsKKwkJCQkJZ3AtPndoZXJlQ2xhdXNlID0gJDI7CisJCQkJCSQk ID0gKE5vZGUgKikgZ3A7CisJCQkJfQorCQk7CisKK3BhdGhfcGF0dGVybl9saXN0OgorCQkJcGF0 aF9wYXR0ZXJuCQkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBwYXRoX3BhdHRl cm5fbGlzdCAnLCcgcGF0aF9wYXR0ZXJuCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwkJOwor CitwYXRoX3BhdHRlcm46CisJCQlwYXRoX3BhdHRlcm5fZXhwcmVzc2lvbgkJCQkJeyAkJCA9ICQx OyB9CisJCTsKKworLyoKKyAqIHBhdGggcGF0dGVybiBleHByZXNzaW9uCisgKi8KKworcGF0aF9w YXR0ZXJuX2V4cHJlc3Npb246CisJCQlwYXRoX3Rlcm0JCQkJCQkJCXsgJCQgPSAkMTsgfQorCQkJ LyogfCBwYXRoX211bHRpc2V0X2FsdGVybmF0aW9uICovCisJCQkvKiB8IHBhdGhfcGF0dGVybl91 bmlvbiAqLworCQk7CisKK3BhdGhfdGVybToKKwkJCXBhdGhfZmFjdG9yCQkJCQkJCQl7ICQkID0g bGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgcGF0aF90ZXJtIHBhdGhfZmFjdG9yCQkJCQl7ICQkID0g bGFwcGVuZCgkMSwgJDIpOyB9CisJCTsKKworcGF0aF9mYWN0b3I6CisJCQlwYXRoX3ByaW1hcnkg b3B0X2dyYXBoX3BhdHRlcm5fcXVhbnRpZmllcgorCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0 dGVybiAqZ2VwID0gKEdyYXBoRWxlbWVudFBhdHRlcm4gKikgJDE7CisKKwkJCQkJZ2VwLT5xdWFu dGlmaWVyID0gJDI7CisJCQkJfQorCQk7CisKK3BhdGhfcHJpbWFyeToKKwkJCScoJyBvcHRfY29s aWQgb3B0X2lzX2xhYmVsX2V4cHJlc3Npb24gd2hlcmVfY2xhdXNlICcpJworCQkJCXsKKwkJCQkJ R3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50UGF0dGVybik7 CisKKwkJCQkJZ2VwLT5raW5kID0gVkVSVEVYX1BBVFRFUk47CisJCQkJCWdlcC0+dmFyaWFibGUg PSAkMjsKKwkJCQkJZ2VwLT5sYWJlbGV4cHIgPSAkMzsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9 ICQ0OworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7 CisJCQkJfQorCQkJLyogZnVsbCBlZGdlIHBvaW50aW5nIGxlZnQ6IDwtWyB4eHggXS0gKi8KKwkJ CXwgJzwnICctJyAnWycgb3B0X2NvbGlkIG9wdF9pc19sYWJlbF9leHByZXNzaW9uIHdoZXJlX2Ns YXVzZSAnXScgJy0nCisJCQkJeworCQkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtl Tm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJCQlnZXAtPmtpbmQgPSBFREdFX1BBVFRF Uk5fTEVGVDsKKwkJCQkJZ2VwLT52YXJpYWJsZSA9ICQ0OworCQkJCQlnZXAtPmxhYmVsZXhwciA9 ICQ1OworCQkJCQlnZXAtPndoZXJlQ2xhdXNlID0gJDY7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBA MTsKKworCQkJCQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9CisJCQkvKiBmdWxsIGVkZ2UgcG9p bnRpbmcgcmlnaHQ6IC1bIHh4eCBdLT4gKi8KKwkJCXwgJy0nICdbJyBvcHRfY29saWQgb3B0X2lz X2xhYmVsX2V4cHJlc3Npb24gd2hlcmVfY2xhdXNlICddJyAnLScgJz4nCisJCQkJeworCQkJCQlH cmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsK KworCQkJCQlnZXAtPmtpbmQgPSBFREdFX1BBVFRFUk5fUklHSFQ7CisJCQkJCWdlcC0+dmFyaWFi bGUgPSAkMzsKKwkJCQkJZ2VwLT5sYWJlbGV4cHIgPSAkNDsKKwkJCQkJZ2VwLT53aGVyZUNsYXVz ZSA9ICQ1OworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBn ZXA7CisJCQkJfQorCQkJfCAnLScgJ1snIG9wdF9jb2xpZCBvcHRfaXNfbGFiZWxfZXhwcmVzc2lv biB3aGVyZV9jbGF1c2UgJ10nIFJJR0hUX0FSUk9XCisJCQkJeworCQkJCQlHcmFwaEVsZW1lbnRQ YXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJCQlnZXAt PmtpbmQgPSBFREdFX1BBVFRFUk5fUklHSFQ7CisJCQkJCWdlcC0+dmFyaWFibGUgPSAkMzsKKwkJ CQkJZ2VwLT5sYWJlbGV4cHIgPSAkNDsKKwkJCQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQ1OworCQkJ CQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQor CQkJLyogZnVsbCBlZGdlIGFueSBkaXJlY3Rpb246IC1bIHh4eCBdLSAqLworCQkJfCAnLScgJ1sn IG9wdF9jb2xpZCBvcHRfaXNfbGFiZWxfZXhwcmVzc2lvbiB3aGVyZV9jbGF1c2UgJ10nICctJwor CQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVt ZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX0FOWTsKKwkJCQkJ Z2VwLT52YXJpYWJsZSA9ICQzOworCQkJCQlnZXAtPmxhYmVsZXhwciA9ICQ0OworCQkJCQlnZXAt PndoZXJlQ2xhdXNlID0gJDU7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9 IChOb2RlICopIGdlcDsKKwkJCQl9CisJCQkvKiBhYmJyZXZpYXRlZCBlZGdlIHBhdHRlcm5zICov CisJCQl8ICc8JyAnLScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IG1h a2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdlcC0+a2luZCA9IEVER0VfUEFU VEVSTl9MRUZUOworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAq KSBnZXA7CisJCQkJfQorCQkJfCAnLScgJz4nCisJCQkJeworCQkJCQlHcmFwaEVsZW1lbnRQYXR0 ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJCQlnZXAtPmtp bmQgPSBFREdFX1BBVFRFUk5fUklHSFQ7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBAMTsKKworCQkJ CQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9CisJCQl8IFJJR0hUX0FSUk9XCisJCQkJeworCQkJ CQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJu KTsKKworCQkJCQlnZXAtPmtpbmQgPSBFREdFX1BBVFRFUk5fUklHSFQ7CisJCQkJCWdlcC0+bG9j YXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9CisJCQl8ICctJwor CQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVt ZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX0FOWTsKKwkJCQkJ Z2VwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJ CXwgJygnIHBhdGhfcGF0dGVybl9leHByZXNzaW9uIHdoZXJlX2NsYXVzZSAnKScKKwkJCQl7CisJ CQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRl cm4pOworCisJCQkJCWdlcC0+a2luZCA9IFBBUkVOX0VYUFI7CisJCQkJCWdlcC0+c3ViZXhwciA9 ICQyOworCQkJCQlnZXAtPndoZXJlQ2xhdXNlID0gJDM7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBA MTsKKworCQkJCQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9CisJCTsKKworb3B0X2NvbGlkOgor CQkJQ29sSWQJCQl7ICQkID0gJDE7IH0KKwkJCXwgLypFTVBUWSovCQl7ICQkID0gTlVMTDsgfQor CQk7CisKK29wdF9pc19sYWJlbF9leHByZXNzaW9uOgorCQkJSVMgbGFiZWxfZXhwcmVzc2lvbgkJ eyAkJCA9ICQyOyB9CisJCQl8ICc6JyBsYWJlbF9leHByZXNzaW9uCXsgJCQgPSAkMjsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCisvKgorICogZ3JhcGggcGF0dGVy biBxdWFudGlmaWVyCisgKi8KKworb3B0X2dyYXBoX3BhdHRlcm5fcXVhbnRpZmllcjoKKwkJCSd7 JyBJY29uc3QgJ30nCQkJCQl7ICQkID0gbGlzdF9tYWtlMl9pbnQoJDIsICQyKTsgfQorCQkJfCAn eycgJywnIEljb25zdCAnfScJCQl7ICQkID0gbGlzdF9tYWtlMl9pbnQoMCwgJDMpOyB9CisJCQl8 ICd7JyBJY29uc3QgJywnIEljb25zdCAnfScJCXsgJCQgPSBsaXN0X21ha2UyX2ludCgkMiwgJDQp OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKworLyoKKyAqIGxh YmVsIGV4cHJlc3Npb24KKyAqLworCitsYWJlbF9leHByZXNzaW9uOgorCQkJbGFiZWxfdGVybQor CQkJfCBsYWJlbF9kaXNqdW5jdGlvbgorCQk7CisKK2xhYmVsX2Rpc2p1bmN0aW9uOgorCQkJbGFi ZWxfZXhwcmVzc2lvbiAnfCcgbGFiZWxfdGVybQorCQkJCXsgJCQgPSBtYWtlT3JFeHByKCQxLCAk MywgQDIpOyB9CisJCTsKKworbGFiZWxfdGVybToKKwkJCW5hbWUKKwkJCQl7ICQkID0gbWFrZUNv bHVtblJlZigkMSwgTklMLCBAMSwgeXlzY2FubmVyKTsgfQorCQk7CisKKwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAgKgogICoJdGFyZ2V0IGxpc3QgZm9yIFNFTEVDVApAQCAtMTc3NTAsNiArMTg0 MjAsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IERFTElNSVRFUlMKIAkJCXwgREVQRU5E UwogCQkJfCBERVBUSAorCQkJfCBERVNUSU5BVElPTgogCQkJfCBERVRBQ0gKIAkJCXwgRElDVElP TkFSWQogCQkJfCBESVNBQkxFX1AKQEAgLTE3NzU5LDYgKzE4NDMwLDcgQEAgdW5yZXNlcnZlZF9r ZXl3b3JkOgogCQkJfCBET1VCTEVfUAogCQkJfCBEUk9QCiAJCQl8IEVBQ0gKKwkJCXwgRURHRQog CQkJfCBFTVBUWV9QCiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCkBAIC0xNzc4OSw2ICsx ODQ2MSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgR0VORVJBVEVECiAJCQl8IEdMT0JB TAogCQkJfCBHUkFOVEVECisJCQl8IEdSQVBICiAJCQl8IEdST1VQUwogCQkJfCBIQU5ETEVSCiAJ CQl8IEhFQURFUl9QCkBAIC0xNzg1Myw2ICsxODUyNiw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoK IAkJCXwgTkZLQwogCQkJfCBORktECiAJCQl8IE5PCisJCQl8IE5PREUKIAkJCXwgTk9STUFMSVpF RAogCQkJfCBOT1RISU5HCiAJCQl8IE5PVElGWQpAQCAtMTc4OTUsNiArMTg1NjksOCBAQCB1bnJl c2VydmVkX2tleXdvcmQ6CiAJCQl8IFBST0NFRFVSRQogCQkJfCBQUk9DRURVUkVTCiAJCQl8IFBS T0dSQU0KKwkJCXwgUFJPUEVSVElFUworCQkJfCBQUk9QRVJUWQogCQkJfCBQVUJMSUNBVElPTgog CQkJfCBRVU9URQogCQkJfCBRVU9URVMKQEAgLTE3OTA2LDYgKzE4NTgyLDcgQEAgdW5yZXNlcnZl ZF9rZXl3b3JkOgogCQkJfCBSRUZFUkVOQ0lORwogCQkJfCBSRUZSRVNICiAJCQl8IFJFSU5ERVgK KwkJCXwgUkVMQVRJT05TSElQCiAJCQl8IFJFTEFUSVZFX1AKIAkJCXwgUkVMRUFTRQogCQkJfCBS RU5BTUUKQEAgLTE3OTk1LDYgKzE4NjcyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBW QUxVRV9QCiAJCQl8IFZBUllJTkcKIAkJCXwgVkVSU0lPTl9QCisJCQl8IFZFUlRFWAogCQkJfCBW SUVXCiAJCQl8IFZJRVdTCiAJCQl8IFZJUlRVQUwKQEAgLTE4MDM0LDYgKzE4NzEyLDcgQEAgY29s X25hbWVfa2V5d29yZDoKIAkJCXwgRVhJU1RTCiAJCQl8IEVYVFJBQ1QKIAkJCXwgRkxPQVRfUAor CQkJfCBHUkFQSF9UQUJMRQogCQkJfCBHUkVBVEVTVAogCQkJfCBHUk9VUElORwogCQkJfCBJTk9V VApAQCAtMTgzMjUsNiArMTkwMDQsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IERFUEVO RFMKIAkJCXwgREVQVEgKIAkJCXwgREVTQworCQkJfCBERVNUSU5BVElPTgogCQkJfCBERVRBQ0gK IAkJCXwgRElDVElPTkFSWQogCQkJfCBESVNBQkxFX1AKQEAgLTE4MzM2LDYgKzE5MDE2LDcgQEAg YmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBET1VCTEVfUAogCQkJfCBEUk9QCiAJCQl8IEVBQ0gK KwkJCXwgRURHRQogCQkJfCBFTFNFCiAJCQl8IEVNUFRZX1AKIAkJCXwgRU5BQkxFX1AKQEAgLTE4 Mzc0LDYgKzE5MDU1LDggQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBHRU5FUkFURUQKIAkJ CXwgR0xPQkFMCiAJCQl8IEdSQU5URUQKKwkJCXwgR1JBUEgKKwkJCXwgR1JBUEhfVEFCTEUKIAkJ CXwgR1JFQVRFU1QKIAkJCXwgR1JPVVBJTkcKIAkJCXwgR1JPVVBTCkBAIC0xODQ2OSw2ICsxOTE1 Miw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTkZLQwogCQkJfCBORktECiAJCQl8IE5P CisJCQl8IE5PREUKIAkJCXwgTk9ORQogCQkJfCBOT1JNQUxJWkUKIAkJCXwgTk9STUFMSVpFRApA QCAtMTg1MjQsNiArMTkyMDgsOCBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFBST0NFRFVS RQogCQkJfCBQUk9DRURVUkVTCiAJCQl8IFBST0dSQU0KKwkJCXwgUFJPUEVSVElFUworCQkJfCBQ Uk9QRVJUWQogCQkJfCBQVUJMSUNBVElPTgogCQkJfCBRVU9URQogCQkJfCBRVU9URVMKQEAgLTE4 NTM3LDYgKzE5MjIzLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBSRUZFUkVOQ0lORwog CQkJfCBSRUZSRVNICiAJCQl8IFJFSU5ERVgKKwkJCXwgUkVMQVRJT05TSElQCiAJCQl8IFJFTEFU SVZFX1AKIAkJCXwgUkVMRUFTRQogCQkJfCBSRU5BTUUKQEAgLTE4NjUxLDYgKzE5MzM4LDcgQEAg YmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJCQl8IFZF UlNJT05fUAorCQkJfCBWRVJURVgKIAkJCXwgVklFVwogCQkJfCBWSUVXUwogCQkJfCBWSVJUVUFM CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24uYnVpbGQgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvbWVzb24uYnVpbGQKaW5kZXggODc0YWE3NDlhYTYuLjY4ODExNGNlNjg2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL21lc29uLmJ1aWxkCkBAIC0xMCw2ICsxMCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3BhcnNlX2Vuci5jJywKICAgJ3BhcnNlX2V4cHIuYycsCiAgICdwYXJzZV9mdW5j LmMnLAorICAncGFyc2VfZ3JhcGh0YWJsZS5jJywKICAgJ3BhcnNlX2pzb250YWJsZS5jJywKICAg J3BhcnNlX21lcmdlLmMnLAogICAncGFyc2Vfbm9kZS5jJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpp bmRleCA5ZTU2N2YzY2M0NS4uMWMzZmM2YmJmODUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAg LTU4MCw2ICs1ODAsMTQgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwog CisJCWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9QRVJUWToKKwkJCWlmIChpc0FnZykKKwkJ CQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBwcm9wZXJ0 eSBkZWZpbml0aW9uIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJCQkJZXJyID0gXygiZ3JvdXBp bmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gcHJvcGVydHkgZGVmaW5pdGlvbiBleHBy ZXNzaW9ucyIpOworCisJCQlicmVhazsKKwogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQogCQkJICogY29tcGlsZXIg d2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4cHJLaW5kIHdpdGhvdXQKQEAgLTk3MCw2 ICs5NzgsOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdp bmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2lu ZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdSQVBIX1BST1BFUlRZ OgorCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gcHJvcGVy dHkgZGVmaW5pdGlvbiBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBU aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCAyZTY0ZmNhZTdiMi4uOGJmNDY1MGI0NWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vf Z3JhcGh0YWJsZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9vcGVyLmgiCiAjaW5jbHVkZSAi cGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5o IgpAQCAtNjUsNiArNjYsOCBAQCBzdGF0aWMgUGFyc2VOYW1lc3BhY2VJdGVtICp0cmFuc2Zvcm1S YW5nZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCSAgUmFuZ2VGdW5j dGlvbiAqcik7CiBzdGF0aWMgUGFyc2VOYW1lc3BhY2VJdGVtICp0cmFuc2Zvcm1SYW5nZVRhYmxl RnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkgICBSYW5nZVRhYmxlRnVuYyAq cnRmKTsKK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0gKnRyYW5zZm9ybVJhbmdlR3JhcGhUYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJCQkJUmFuZ2VHcmFwaFRhYmxlICpyZ3Qp Owogc3RhdGljIFRhYmxlU2FtcGxlQ2xhdXNlICp0cmFuc2Zvcm1SYW5nZVRhYmxlU2FtcGxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlSYW5nZVRhYmxlU2FtcGxlICpydHMpOwog c3RhdGljIFBhcnNlTmFtZXNwYWNlSXRlbSAqZ2V0TlNJdGVtRm9yU3BlY2lhbFJlbGF0aW9uVHlw ZXMoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtODk4LDYgKzkwMSw4MCBAQCB0cmFuc2Zvcm1SYW5n ZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGFibGVGdW5jICpydGYpCiAJCQkJ CQkJCQkJICB0ZiwgcnRmLT5hbGlhcywgaXNfbGF0ZXJhbCwgdHJ1ZSk7CiB9CiAKKy8qCisgKiB0 cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUgLS0gdHJhbnNmb3JtIGEgR1JBUEhfVEFCTEUgY2xhdXNl CisgKi8KK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0gKgordHJhbnNmb3JtUmFuZ2VHcmFwaFRh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VHcmFwaFRhYmxlICpyZ3QpCit7CisJUmVsYXRp b24JcmVsOworCU9pZAkJCWdyYXBoaWQ7CisJR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUg PSBwYWxsb2MwX29iamVjdChHcmFwaFRhYmxlUGFyc2VTdGF0ZSk7CisJTm9kZQkgICAqZ3A7CisJ TGlzdAkgICAqY29sdW1ucyA9IE5JTDsKKwlMaXN0CSAgICpjb2xuYW1lcyA9IE5JTDsKKwlMaXN0 Q2VsbCAgICpsYzsKKwlpbnQJCQlyZXNubyA9IDA7CisKKwlyZWwgPSBwYXJzZXJPcGVuVGFibGUo cHN0YXRlLCByZ3QtPmdyYXBoX25hbWUsIEFjY2Vzc1NoYXJlTG9jayk7CisJaWYgKHJlbC0+cmRf cmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUFJPUEdSQVBIKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CWVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJZXJybXNnKCJcIiVzXCIg aXMgbm90IGEgcHJvcGVydHkgZ3JhcGgiLAorCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCByZ3QtPmdyYXBoX25hbWUt PmxvY2F0aW9uKSk7CisKKwlncmFwaGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCisJZ3Bz dGF0ZS0+Z3JhcGhpZCA9IGdyYXBoaWQ7CisKKwlwc3RhdGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9v ayA9IGdyYXBoX3RhYmxlX3Byb3BlcnR5X3JlZmVyZW5jZTsKKwlwc3RhdGUtPnBfcmVmX2hvb2tf c3RhdGUgPSBncHN0YXRlOworCUFzc2VydCghcHN0YXRlLT5wX2xhdGVyYWxfYWN0aXZlKTsKKwlw c3RhdGUtPnBfbGF0ZXJhbF9hY3RpdmUgPSB0cnVlOworCisJZ3AgPSB0cmFuc2Zvcm1HcmFwaFBh dHRlcm4ocHN0YXRlLCBncHN0YXRlLCByZ3QtPmdyYXBoX3BhdHRlcm4pOworCisJZm9yZWFjaChs Yywgcmd0LT5jb2x1bW5zKQorCXsKKwkJUmVzVGFyZ2V0ICAqcnQgPSBsZmlyc3Rfbm9kZShSZXNU YXJnZXQsIGxjKTsKKwkJTm9kZQkgICAqY29sZXhwcjsKKwkJVGFyZ2V0RW50cnkgKnRlOworCQlj aGFyCSAgICpjb2xuYW1lOworCisJCWNvbGV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgcnQt PnZhbCwgRVhQUl9LSU5EX1NFTEVDVF9UQVJHRVQpOworCisJCWlmIChydC0+bmFtZSkKKwkJCWNv bG5hbWUgPSBydC0+bmFtZTsKKwkJZWxzZQorCQl7CisJCQlpZiAoSXNBKGNvbGV4cHIsIEdyYXBo UHJvcGVydHlSZWYpKQorCQkJCWNvbG5hbWUgPSBnZXRfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWUo Y2FzdE5vZGUoR3JhcGhQcm9wZXJ0eVJlZiwgY29sZXhwciktPnByb3BpZCk7CisJCQllbHNlCisJ CQl7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCQkJZXJybXNnKCJjb21wbGV4IGdyYXBoIHRhYmxlIGNvbHVtbiBtdXN0IHNwZWNp ZnkgYW4gZXhwbGljaXQgY29sdW1uIG5hbWUiKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIHJ0LT5sb2NhdGlvbikpOworCQkJCWNvbG5hbWUgPSBOVUxMOworCQkJfQorCQl9CisK KwkJY29sbmFtZXMgPSBsYXBwZW5kKGNvbG5hbWVzLCBtYWtlU3RyaW5nKGNvbG5hbWUpKTsKKwor CQl0ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSBjb2xleHByLCArK3Jlc25vLCBjb2xuYW1l LCBmYWxzZSk7CisJCWNvbHVtbnMgPSBsYXBwZW5kKGNvbHVtbnMsIHRlKTsKKwl9CisKKwl0YWJs ZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlwc3RhdGUtPnBfcHJlX2NvbHVtbnJlZl9ob29rID0g TlVMTDsKKwlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSBOVUxMOworCXBzdGF0ZS0+cF9sYXRl cmFsX2FjdGl2ZSA9IGZhbHNlOworCisJcmV0dXJuIGFkZFJhbmdlVGFibGVFbnRyeUZvckdyYXBo VGFibGUocHN0YXRlLCBncmFwaGlkLCBjYXN0Tm9kZShHcmFwaFBhdHRlcm4sIGdwKSwgY29sdW1u cywgY29sbmFtZXMsIHJndC0+YWxpYXMsIGZhbHNlLCB0cnVlKTsKK30KKwogLyoKICAqIHRyYW5z Zm9ybVJhbmdlVGFibGVTYW1wbGUgLS0tIHRyYW5zZm9ybSBhIFRBQkxFU0FNUExFIGNsYXVzZQog ICoKQEAgLTExMjEsNiArMTE5OCwxOCBAQCB0cmFuc2Zvcm1Gcm9tQ2xhdXNlSXRlbShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKm4sCiAJCXJ0ci0+cnRpbmRleCA9IG5zaXRlbS0+cF9ydGluZGV4 OwogCQlyZXR1cm4gKE5vZGUgKikgcnRyOwogCX0KKwllbHNlIGlmIChJc0EobiwgUmFuZ2VHcmFw aFRhYmxlKSkKKwl7CisJCVJhbmdlVGJsUmVmICpydHI7CisJCVBhcnNlTmFtZXNwYWNlSXRlbSAq bnNpdGVtOworCisJCW5zaXRlbSA9IHRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShwc3RhdGUsIChS YW5nZUdyYXBoVGFibGUgKikgbik7CisJCSp0b3BfbnNpdGVtID0gbnNpdGVtOworCQkqbmFtZXNw YWNlID0gbGlzdF9tYWtlMShuc2l0ZW0pOworCQlydHIgPSBtYWtlTm9kZShSYW5nZVRibFJlZik7 CisJCXJ0ci0+cnRpbmRleCA9IG5zaXRlbS0+cF9ydGluZGV4OworCQlyZXR1cm4gKE5vZGUgKikg cnRyOworCX0KIAllbHNlIGlmIChJc0EobiwgUmFuZ2VUYWJsZVNhbXBsZSkpCiAJewogCQkvKiBU QUJMRVNBTVBMRSBjbGF1c2UgKHdyYXBwaW5nIHNvbWUgb3RoZXIgdmFsaWQgRlJPTSBub2RlKSAq LwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKaW5kZXggZDJlMjE4MzUzZjMuLjYwYmNjNWY0 MTQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKQEAgLTU3MSw2ICs1NzEsMTMgQEAg YXNzaWduX2NvbGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2Nv bnRleHQgKmNvbnRleHQpCiAJCQlsb2NhdGlvbiA9IGV4cHJMb2NhdGlvbihub2RlKTsKIAkJCWJy ZWFrOwogCisJCWNhc2UgVF9HcmFwaFByb3BlcnR5UmVmOgorCQkJLyogRklYTUUgKi8KKwkJCWNv bGxhdGlvbiA9IERFRkFVTFRfQ09MTEFUSU9OX09JRDsKKwkJCXN0cmVuZ3RoID0gQ09MTEFURV9J TVBMSUNJVDsKKwkJCWxvY2F0aW9uID0gLTE7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJ ewogCQkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBiYWQxZGY3MzJlYS4uNjVmMmM4 ODgwNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTc1LDYgKzU3NSw3IEBAIHRyYW5z Zm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2Fz ZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVN TjoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdS QVBIX1BST1BFUlRZOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAKQEAgLTE4NTgsNiArMTg1 OSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJs aW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fu bm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQli cmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfUFJPUEdSQVBIX1BST1BFUlRZOgorCQkJZXJyID0gXygi Y2Fubm90IHVzZSBzdWJxdWVyeSBpbiBwcm9wZXJ0eSBkZWZpbml0aW9uIGV4cHJlc3Npb24iKTsK KwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZh dWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMjA3LDYgKzMyMTEsOCBAQCBQYXJzZUV4 cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJHRU5FUkFURUQg QVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJcmV0dXJuICJDWUNMRSI7CisJ CWNhc2UgRVhQUl9LSU5EX1BST1BHUkFQSF9QUk9QRVJUWToKKwkJCXJldHVybiAicHJvcGVydHkg ZGVmaW5pdGlvbiBleHByZXNzaW9uIjsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKaW5kZXggNTgzYmJiZjIzMmYuLjYyZGY2YjhlYzAyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKQEAgLTI2NTgsNiArMjY1OCw5IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCWNhc2UgRVhQ Ul9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNl IEVYUFJfS0lORF9QUk9QR1JBUEhfUFJPUEVSVFk6CisJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5n IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gcHJvcGVydHkgZGVmaW5pdGlvbiBleHByZXNz aW9ucyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5 IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf Z3JhcGh0YWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xYTk3 MTY4NzAyNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFw aHRhYmxlLmMKQEAgLTAsMCArMSwyMDkgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBh cnNlX2dyYXBodGFibGUuYworICoJICBwYXJzaW5nIG9mIEdSQVBIX1RBQkxFCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhl IFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJ ICBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5jCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3Mv Z2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNj ZXNzL3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oIgorI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgInBhcnNlci9w YXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKKyNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2Rl LmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKKyNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCisKKworLyoKKyAqIFJlc29sdmUgYSBwcm9wZXJ0eSByZWZlcmVuY2UuCisgKi8KK05v ZGUgKgorZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29sdW1uUmVmICpjcmVmLCBOb2RlICp2YXIpCit7CisJR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdw c3RhdGUgPSBwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGU7CisKKwlpZiAobGlzdF9sZW5ndGgoY3Jl Zi0+ZmllbGRzKSA9PSAyKQorCXsKKwkJTm9kZQkgICAqZmllbGQxID0gbGluaXRpYWwoY3JlZi0+ ZmllbGRzKTsKKwkJTm9kZQkgICAqZmllbGQyID0gbHNlY29uZChjcmVmLT5maWVsZHMpOworCQlj aGFyCSAgICplbHZhcm5hbWU7CisJCWNoYXIJICAgKnByb3BuYW1lOworCisJCWVsdmFybmFtZSA9 IHN0clZhbChmaWVsZDEpOworCQlwcm9wbmFtZSA9IHN0clZhbChmaWVsZDIpOworCisJCWlmIChs aXN0X21lbWJlcihncHN0YXRlLT52YXJpYWJsZXMsIGZpZWxkMSkpCisJCXsKKwkJCUdyYXBoUHJv cGVydHlSZWYgKmdwciA9IG1ha2VOb2RlKEdyYXBoUHJvcGVydHlSZWYpOworCQkJT2lkCQkJcHJv cGlkOworCisJCQlwcm9waWQgPSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIUFJPUE5BTUUsIEFu dW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCwgT2JqZWN0SWRHZXREYXR1bShncHN0YXRlLT5n cmFwaGlkKSwgQ1N0cmluZ0dldERhdHVtKHByb3BuYW1lKSk7CisJCQlpZiAoIXByb3BpZCkKKwkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJ CQkJCQllcnJtc2coInByb3BlcnR5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIHByb3BuYW1lKSk7 CisKKwkJCWdwci0+bG9jYXRpb24gPSBjcmVmLT5sb2NhdGlvbjsKKwkJCWdwci0+ZWx2YXJuYW1l ID0gZWx2YXJuYW1lOworCQkJZ3ByLT5wcm9waWQgPSBwcm9waWQ7CisJCQlncHItPnR5cGVJZCA9 IEdldFN5c0NhY2hlT2lkMShQUk9QR1JBUEhQUk9QT0lELCBBbnVtX3BnX3Byb3BncmFwaF9wcm9w ZXJ0eV9wZ3B0eXBpZCwgT2JqZWN0SWRHZXREYXR1bShwcm9waWQpKTsKKworCQkJcmV0dXJuIChO b2RlICopIGdwcjsKKwkJfQorCX0KKworCXJldHVybiBOVUxMOworfQorCisvKgorICogVHJhbnNm b3JtIGEgbGFiZWwgZXhwcmVzc2lvbi4KKyAqLworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtTGFi ZWxFeHByKEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBOb2RlICpsYWJlbGV4cHIpCit7 CisJTm9kZQkgICAqcmVzdWx0OworCisJaWYgKGxhYmVsZXhwciA9PSBOVUxMKQorCQlyZXR1cm4g TlVMTDsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKKwlzd2l0Y2ggKG5vZGVUYWcobGFiZWxl eHByKSkKKwl7CisJCWNhc2UgVF9Db2x1bW5SZWY6CisJCQl7CisJCQkJQ29sdW1uUmVmICAqY3Jl ZiA9IChDb2x1bW5SZWYgKikgbGFiZWxleHByOworCQkJCWNvbnN0IGNoYXIgKmxhYmVsbmFtZTsK KwkJCQlPaWQJCQlsYWJlbGlkOworCQkJCUdyYXBoTGFiZWxSZWYgKmxyZWY7CisKKwkJCQlBc3Nl cnQobGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA9PSAxKTsKKwkJCQlsYWJlbG5hbWUgPSBzdHJW YWwobGluaXRpYWwoY3JlZi0+ZmllbGRzKSk7CisKKwkJCQlsYWJlbGlkID0gR2V0U3lzQ2FjaGVP aWQyKFBST1BHUkFQSExBQkVMTkFNRSwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLCBPYmpl Y3RJZEdldERhdHVtKGdwc3RhdGUtPmdyYXBoaWQpLCBDU3RyaW5nR2V0RGF0dW0obGFiZWxuYW1l KSk7CisJCQkJaWYgKCFsYWJlbGlkKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCWVycmNv ZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJCQllcnJtc2coImxhYmVsIFwiJXNc IiBkb2VzIG5vdCBleGlzdCBpbiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIiLCBsYWJlbG5hbWUsIGdl dF9yZWxfbmFtZShncHN0YXRlLT5ncmFwaGlkKSkpOworCisJCQkJbHJlZiA9IG1ha2VOb2RlKEdy YXBoTGFiZWxSZWYpOworCQkJCWxyZWYtPmxhYmVsaWQgPSBsYWJlbGlkOworCQkJCWxyZWYtPmxv Y2F0aW9uID0gY3JlZi0+bG9jYXRpb247CisKKwkJCQlyZXN1bHQgPSAoTm9kZSAqKSBscmVmOwor CQkJCWJyZWFrOworCQkJfQorCisJCWNhc2UgVF9Cb29sRXhwcjoKKwkJCXsKKwkJCQlCb29sRXhw ciAgICpiZSA9IChCb29sRXhwciAqKSBsYWJlbGV4cHI7CisJCQkJTGlzdENlbGwgICAqbGM7CisJ CQkJTGlzdAkgICAqYXJncyA9IE5JTDsKKworCQkJCWZvcmVhY2gobGMsIGJlLT5hcmdzKQorCQkJ CXsKKwkJCQkJTm9kZQkgICAqYXJnID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKKworCQkJCQlhcmcg PSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0ZSwgYXJnKTsKKwkJCQkJYXJncyA9IGxhcHBlbmQo YXJncywgYXJnKTsKKwkJCQl9CisKKwkJCQlyZXN1bHQgPSAoTm9kZSAqKSBtYWtlQm9vbEV4cHIo YmUtPmJvb2xvcCwgYXJncywgYmUtPmxvY2F0aW9uKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQlk ZWZhdWx0OgorCQkJLyogc2hvdWxkIG5vdCByZWFjaCBoZXJlICovCisJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGxhYmVsZXhwcikpOwor CQkJcmVzdWx0ID0gTlVMTDsJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCWJyZWFrOwor CX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBUcmFuc2Zvcm0gYSBHcmFwaEVsZW1l bnRQYXR0ZXJuLgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0 ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsIEdy YXBoRWxlbWVudFBhdHRlcm4gKmdlcCkKK3sKKwlpZiAoZ2VwLT52YXJpYWJsZSkKKwkJZ3BzdGF0 ZS0+dmFyaWFibGVzID0gbGFwcGVuZChncHN0YXRlLT52YXJpYWJsZXMsIG1ha2VTdHJpbmcocHN0 cmR1cChnZXAtPnZhcmlhYmxlKSkpOworCisJZ2VwLT5sYWJlbGV4cHIgPSB0cmFuc2Zvcm1MYWJl bEV4cHIoZ3BzdGF0ZSwgZ2VwLT5sYWJlbGV4cHIpOworCisJZ2VwLT53aGVyZUNsYXVzZSA9IHRy YW5zZm9ybUV4cHIocHN0YXRlLCBnZXAtPndoZXJlQ2xhdXNlLCBFWFBSX0tJTkRfV0hFUkUpOwor CWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBnZXAtPndoZXJlQ2xhdXNlKTsKKworCXJl dHVybiAoTm9kZSAqKSBnZXA7Cit9CisKKy8qCisgKiBUcmFuc2Zvcm0gYSBwYXRoIHRlcm0gKGxp c3Qgb2YgR3JhcGhFbGVtZW50UGF0dGVybidzKS4KKyAqLworc3RhdGljIE5vZGUgKgordHJhbnNm b3JtUGF0aFRlcm0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3Bz dGF0ZSwgTGlzdCAqcGF0aF90ZXJtKQoreworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0 Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhfdGVybSkKKwl7CisJCU5vZGUJICAgKm4g PSB0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKHBzdGF0ZSwgZ3BzdGF0ZSwgbGZpcnN0X25v ZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpKTsKKworCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3Vs dCwgbik7CisJfQorCisJcmV0dXJuIChOb2RlICopIHJlc3VsdDsKK30KKworLyoKKyAqIFRyYW5z Zm9ybSBhIHBhdGggcGF0dGVybiBsaXN0IChsaXN0IG9mIHBhdGggdGVybXMpLgorICovCitzdGF0 aWMgTm9kZSAqCit0cmFuc2Zvcm1QYXRoUGF0dGVybkxpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBH cmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlzdCAqcGF0aF9wYXR0ZXJuKQoreworCUxp c3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHBh dGhfcGF0dGVybikKKwl7CisJCU5vZGUJICAgKm4gPSB0cmFuc2Zvcm1QYXRoVGVybShwc3RhdGUs IGdwc3RhdGUsIGxmaXJzdChsYykpOworCisJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsK Kwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcmVzdWx0OworfQorCisvKgorICogVHJhbnNmb3JtIGEg R3JhcGhQYXR0ZXJuLgorICovCitOb2RlICoKK3RyYW5zZm9ybUdyYXBoUGF0dGVybihQYXJzZVN0 YXRlICpwc3RhdGUsIEdyYXBoVGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBHcmFwaFBhdHRlcm4g KmdyYXBoX3BhdHRlcm4pCit7CisJZ3JhcGhfcGF0dGVybi0+cGF0aF9wYXR0ZXJuX2xpc3QgPSAo TGlzdCAqKSB0cmFuc2Zvcm1QYXRoUGF0dGVybkxpc3QocHN0YXRlLCBncHN0YXRlLCBncmFwaF9w YXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCk7CisJZ3JhcGhfcGF0dGVybi0+d2hlcmVDbGF1c2Ug PSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZ3JhcGhfcGF0dGVybi0+d2hlcmVDbGF1c2UsIEVYUFJf S0lORF9XSEVSRSk7CisJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGdyYXBoX3BhdHRl cm4tPndoZXJlQ2xhdXNlKTsKKworCXJldHVybiAoTm9kZSAqKSBncmFwaF9wYXR0ZXJuOworfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCAwNGVjZjY0YjFmYy4uYmY1NTI4Y2E1 ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yMTQxLDYgKzIxNDEsOTgg QEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yVGFibGVGdW5jKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJCQkJcnRlLT5jb2xjb2xsYXRpb25zKTsKIH0KIAorUGFyc2VOYW1lc3BhY2VJdGVtICoKK2Fk ZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJ CQlPaWQgZ3JhcGhpZCwKKwkJCQkJCQkJR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuLAorCQkJ CQkJCQlMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQlMaXN0ICpjb2xuYW1lcywKKwkJCQkJCQkJQWxp YXMgKmFsaWFzLAorCQkJCQkJCQlib29sIGxhdGVyYWwsCisJCQkJCQkJCWJvb2wgaW5Gcm9tQ2wp Cit7CisJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbWFrZU5vZGUoUmFuZ2VUYmxFbnRyeSk7CisJY2hh cgkgICAqcmVmbmFtZSA9IGFsaWFzID8gYWxpYXMtPmFsaWFzbmFtZSA6IHBzdHJkdXAoImdyYXBo X3RhYmxlIik7CisJQWxpYXMJICAgKmVyZWY7CisJaW50CQkJbnVtYWxpYXNlczsKKwlpbnQJCQl2 YXJhdHRubzsKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpjb2x0eXBlcyA9IE5JTDsKKwlM aXN0CSAgICpjb2x0eXBtb2RzID0gTklMOworCUxpc3QJICAgKmNvbGNvbGxhdGlvbnMgPSBOSUw7 CisJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOworCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNp dGVtOworCisJQXNzZXJ0KHBzdGF0ZSAhPSBOVUxMKTsKKworCXJ0ZS0+cnRla2luZCA9IFJURV9H UkFQSF9UQUJMRTsKKwlydGUtPnJlbGlkID0gZ3JhcGhpZDsKKwlydGUtPnJlbGtpbmQgPSBSRUxL SU5EX1BST1BHUkFQSDsKKwlydGUtPmdyYXBoX3BhdHRlcm4gPSBncmFwaF9wYXR0ZXJuOworCXJ0 ZS0+Z3JhcGhfdGFibGVfY29sdW1ucyA9IGNvbHVtbnM7CisJcnRlLT5hbGlhcyA9IGFsaWFzOwor CisJZXJlZiA9IGFsaWFzID8gY29weU9iamVjdChhbGlhcykgOiBtYWtlQWxpYXMocmVmbmFtZSwg TklMKTsKKworCWlmICghZXJlZi0+Y29sbmFtZXMpCisJCWVyZWYtPmNvbG5hbWVzID0gY29sbmFt ZXM7CisKKwludW1hbGlhc2VzID0gbGlzdF9sZW5ndGgoZXJlZi0+Y29sbmFtZXMpOworCisJLyog ZmlsbCBpbiBhbnkgdW5zcGVjaWZpZWQgYWxpYXMgY29sdW1ucyAqLworCXZhcmF0dG5vID0gMDsK Kwlmb3JlYWNoKGxjLCBjb2xuYW1lcykKKwl7CisJCXZhcmF0dG5vKys7CisJCWlmICh2YXJhdHRu byA+IG51bWFsaWFzZXMpCisJCQllcmVmLT5jb2xuYW1lcyA9IGxhcHBlbmQoZXJlZi0+Y29sbmFt ZXMsIGxmaXJzdChsYykpOworCX0KKwlpZiAodmFyYXR0bm8gPCBudW1hbGlhc2VzKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNF KSwKKwkJCQkgZXJybXNnKCJHUkFQSF9UQUJMRSBcIiVzXCIgaGFzICVkIGNvbHVtbnMgYXZhaWxh YmxlIGJ1dCAlZCBjb2x1bW5zIHNwZWNpZmllZCIsCisJCQkJCQlyZWZuYW1lLCB2YXJhdHRubywg bnVtYWxpYXNlcykpKTsKKworCXJ0ZS0+ZXJlZiA9IGVyZWY7CisKKwlmb3JlYWNoKGxjLCBjb2x1 bW5zKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gbGZpcnN0X25vZGUoVGFyZ2V0RW50cnksIGxj KTsKKwkJTm9kZQkgICAqY29sZXhwciA9IChOb2RlICopIHRlLT5leHByOworCisJCWNvbHR5cGVz ID0gbGFwcGVuZF9vaWQoY29sdHlwZXMsIGV4cHJUeXBlKGNvbGV4cHIpKTsKKwkJY29sdHlwbW9k cyA9IGxhcHBlbmRfaW50KGNvbHR5cG1vZHMsIGV4cHJUeXBtb2QoY29sZXhwcikpOworCQljb2xj b2xsYXRpb25zID0gbGFwcGVuZF9vaWQoY29sY29sbGF0aW9ucywgZXhwckNvbGxhdGlvbihjb2xl eHByKSk7CisJfQorCisJLyoKKwkgKiBTZXQgZmxhZ3MgYW5kIGFjY2VzcyBwZXJtaXNzaW9ucy4K KwkgKi8KKwlydGUtPmxhdGVyYWwgPSBsYXRlcmFsOworCXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21D bDsKKworCXBlcm1pbmZvID0gYWRkUlRFUGVybWlzc2lvbkluZm8oJnBzdGF0ZS0+cF9ydGVwZXJt aW5mb3MsIHJ0ZSk7CisJcGVybWluZm8tPnJlcXVpcmVkUGVybXMgPSBBQ0xfU0VMRUNUOworCisJ LyoKKwkgKiBBZGQgY29tcGxldGVkIFJURSB0byBwc3RhdGUncyByYW5nZSB0YWJsZSBsaXN0LCBz byB0aGF0IHdlIGtub3cgaXRzCisJICogaW5kZXguICBCdXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRo ZSBqb2luIGxpc3QgLS0tIGNhbGxlciBtdXN0IGRvIHRoYXQgaWYKKwkgKiBhcHByb3ByaWF0ZS4K KwkgKi8KKwlwc3RhdGUtPnBfcnRhYmxlID0gbGFwcGVuZChwc3RhdGUtPnBfcnRhYmxlLCBydGUp OworCisJLyoKKwkgKiBCdWlsZCBhIFBhcnNlTmFtZXNwYWNlSXRlbSwgYnV0IGRvbid0IGFkZCBp dCB0byB0aGUgcHN0YXRlJ3MgbmFtZXNwYWNlCisJICogbGlzdCAtLS0gY2FsbGVyIG11c3QgZG8g dGhhdCBpZiBhcHByb3ByaWF0ZS4KKwkgKi8KKwluc2l0ZW0gPSBidWlsZE5TSXRlbUZyb21MaXN0 cyhydGUsIGxpc3RfbGVuZ3RoKHBzdGF0ZS0+cF9ydGFibGUpLAorCQkJCQkJCQkgIGNvbHR5cGVz LCBjb2x0eXBtb2RzLCBjb2xjb2xsYXRpb25zKTsKKworCW5zaXRlbS0+cF9wZXJtaW5mbyA9IHBl cm1pbmZvOworCisJcmV0dXJuIG5zaXRlbTsKK30KKwogLyoKICAqIEFkZCBhbiBlbnRyeSBmb3Ig YSBWQUxVRVMgbGlzdCB0byB0aGUgcHN0YXRlJ3MgcmFuZ2UgdGFibGUgKHBfcnRhYmxlKS4KICAq IFRoZW4sIGNvbnN0cnVjdCBhbmQgcmV0dXJuIGEgUGFyc2VOYW1lc3BhY2VJdGVtIGZvciB0aGUg bmV3IFJURS4KQEAgLTMwMzksNiArMzEzMSw3IEBAIGV4cGFuZFJURShSYW5nZVRibEVudHJ5ICpy dGUsIGludCBydGluZGV4LCBpbnQgc3VibGV2ZWxzX3VwLAogCQljYXNlIFJURV9WQUxVRVM6CiAJ CWNhc2UgUlRFX0NURToKIAkJY2FzZSBSVEVfTkFNRURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9H UkFQSF9UQUJMRToKIAkJCXsKIAkJCQkvKiBUYWJsZWZ1bmMsIFZhbHVlcywgQ1RFLCBvciBFTlIg UlRFICovCiAJCQkJTGlzdENlbGwgICAqYWxpYXNwX2l0ZW0gPSBsaXN0X2hlYWQocnRlLT5lcmVm LT5jb2xuYW1lcyk7CkBAIC0zNDIzLDEwICszNTE2LDExIEBAIGdldF9ydGVfYXR0cmlidXRlX2lz X2Ryb3BwZWQoUmFuZ2VUYmxFbnRyeSAqcnRlLCBBdHRyTnVtYmVyIGF0dG51bSkKIAkJY2FzZSBS VEVfVkFMVUVTOgogCQljYXNlIFJURV9DVEU6CiAJCWNhc2UgUlRFX0dST1VQOgorCQljYXNlIFJU RV9HUkFQSF9UQUJMRToKIAogCQkJLyoKLQkJCSAqIFN1YnNlbGVjdCwgVGFibGUgRnVuY3Rpb25z LCBWYWx1ZXMsIENURSwgR1JPVVAgUlRFcyBuZXZlciBoYXZlCi0JCQkgKiBkcm9wcGVkIGNvbHVt bnMKKwkJCSAqIFN1YnNlbGVjdCwgVGFibGUgRnVuY3Rpb25zLCBWYWx1ZXMsIENURSwgR1JPVVAg UlRFcywgUHJvcGVydHkKKwkJCSAqIGdyYXBoIHJlZmVyZW5jZXMgbmV2ZXIgaGF2ZSBkcm9wcGVk IGNvbHVtbnMKIAkJCSAqLwogCQkJcmVzdWx0ID0gZmFsc2U7CiAJCQlicmVhazsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJhMGQ5ZDRkNS4uOGE0NjliMDE2OGUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTM2MCw2ICszNjAsMTAgQEAgbWFya1RhcmdldExpc3RP cmlnaW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBUYXJnZXRFbnRyeSAqdGxlLAogCQkJdGxlLT5yZXNv cmlndGJsID0gcnRlLT5yZWxpZDsKIAkJCXRsZS0+cmVzb3JpZ2NvbCA9IGF0dG51bTsKIAkJCWJy ZWFrOworCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCXRsZS0+cmVzb3JpZ3RibCA9IHJ0ZS0+ cmVsaWQ7CisJCQl0bGUtPnJlc29yaWdjb2wgPSBJbnZhbGlkQXR0ck51bWJlcjsKKwkJCWJyZWFr OwogCQljYXNlIFJURV9TVUJRVUVSWToKIAkJCS8qIFN1YnNlbGVjdC1pbi1GUk9NOiBjb3B5IHVw IGZyb20gdGhlIHN1YnNlbGVjdCAqLwogCQkJaWYgKGF0dG51bSAhPSBJbnZhbGlkQXR0ck51bWJl cikKQEAgLTE1ODEsNiArMTU4NSw3IEBAIGV4cGFuZFJlY29yZFZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgVmFyICp2YXIsIGludCBsZXZlbHN1cCkKIAkJY2FzZSBSVEVfUkVMQVRJT046CiAJ CWNhc2UgUlRFX1ZBTFVFUzoKIAkJY2FzZSBSVEVfTkFNRURUVVBMRVNUT1JFOgorCQljYXNlIFJU RV9HUkFQSF9UQUJMRToKIAkJY2FzZSBSVEVfUkVTVUxUOgogCiAJCQkvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3NjYW4ubCBiL3NyYy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKaW5k ZXggMDg5OTA4MzFmZTguLjhlN2JhNWVlNjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvc2Nhbi5sCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9zY2FuLmwKQEAgLTM1Miw2ICszNTIs OCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9lcXVhbHMJIj49IgogbGVzc19ncmVhdGVy CSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUgdGhlcmUgaXMgbm8gbmVlZCBmb3IgbGVm dF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5nbGUgb3BlcmF0b3IuICovCityaWdodF9h cnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRoZSBzZXQgb2YgY2hhcnMgdGhhdCBzaG91 bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3RlcgpAQCAtMzYzLDcgKzM2NSw3IEBAIG5v dF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2UgZWl0aGVyIHNldCwgYWRqdXN0IHRoZSBj aGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQogICogcnVsZSBmb3IgIm9wZXJhdG9yIiEK ICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwvXCVcXlw8XD5cPV0KK3NlbGYJCQlbLCgp XFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9wX2NoYXJzCQlbXH5cIVxAXCNcXlwmXHxc YFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7b3BfY2hhcnN9KwogCkBAIC04NzgsNiAr ODgwLDExIEBAIG90aGVyCQkJLgogCQkJCQlyZXR1cm4gTk9UX0VRVUFMUzsKIAkJCQl9CiAKK3ty aWdodF9hcnJvd30JeworCQkJCQlTRVRfWVlMTE9DKCk7CisJCQkJCXJldHVybiBSSUdIVF9BUlJP VzsKKwkJCQl9CisKIHtzZWxmfQkJCXsKIAkJCQkJU0VUX1lZTExPQygpOwogCQkJCQlyZXR1cm4g eXl0ZXh0WzBdOwpAQCAtOTU1LDcgKzk2Miw3IEBAIG90aGVyCQkJLgogCQkJCQkJICogdGhhdCB0 aGUgInNlbGYiIHJ1bGUgd291bGQgaGF2ZS4KIAkJCQkJCSAqLwogCQkJCQkJaWYgKG5jaGFycyA9 PSAxICYmCi0JCQkJCQkJc3RyY2hyKCIsKClbXS47OistKi8lXjw+PSIsIHl5dGV4dFswXSkpCisJ CQkJCQkJc3RyY2hyKCIsKClbXS47OnwrLSovJV48Pj0iLCB5eXRleHRbMF0pKQogCQkJCQkJCXJl dHVybiB5eXRleHRbMF07CiAJCQkJCQkvKgogCQkJCQkJICogTGlrZXdpc2UsIGlmIHdoYXQgd2Ug aGF2ZSBsZWZ0IGlzIHR3byBjaGFycywgYW5kCkBAIC05NzUsNiArOTgyLDggQEAgb3RoZXIJCQku CiAJCQkJCQkJCXJldHVybiBOT1RfRVFVQUxTOwogCQkJCQkJCWlmICh5eXRleHRbMF0gPT0gJyEn ICYmIHl5dGV4dFsxXSA9PSAnPScpCiAJCQkJCQkJCXJldHVybiBOT1RfRVFVQUxTOworCQkJCQkJ CWlmICh5eXRleHRbMF0gPT0gJy0nICYmIHl5dGV4dFsxXSA9PSAnPicpCisJCQkJCQkJCXJldHVy biBSSUdIVF9BUlJPVzsKIAkJCQkJCX0KIAkJCQkJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXdyaXRlL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9NYWtlZmlsZQppbmRleCA0 NjgwNzUyZTZhNy4uMDkwNzAwNDdiN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUv TWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9NYWtlZmlsZQpAQCAtMTQsNiArMTQs NyBAQCBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCiAKIE9CSlMg PSBcCiAJcmV3cml0ZURlZmluZS5vIFwKKwlyZXdyaXRlR3JhcGhUYWJsZS5vIFwKIAlyZXdyaXRl SGFuZGxlci5vIFwKIAlyZXdyaXRlTWFuaXAubyBcCiAJcmV3cml0ZVJlbW92ZS5vIFwKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9yZXdy aXRlL21lc29uLmJ1aWxkCmluZGV4IDU2MTVkMDg1YmEzLi45MWE0MjU2MDliNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9yZXdy aXRlL21lc29uLmJ1aWxkCkBAIC0yLDYgKzIsNyBAQAogCiBiYWNrZW5kX3NvdXJjZXMgKz0gZmls ZXMoCiAgICdyZXdyaXRlRGVmaW5lLmMnLAorICAncmV3cml0ZUdyYXBoVGFibGUuYycsCiAgICdy ZXdyaXRlSGFuZGxlci5jJywKICAgJ3Jld3JpdGVNYW5pcC5jJywKICAgJ3Jld3JpdGVSZW1vdmUu YycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMg Yi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVlMTE1OTRkMmNmCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5jCkBAIC0wLDAgKzEsMTA5OCBA QAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcmV3cml0ZUdyYXBoVGFibGUuYworICoJCVN1 cHBvcnQgZm9yIHJld3JpdGluZyBHUkFQSF9UQUJMRSBjbGF1c2VzLgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFj a2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf cHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxf cHJvcGVydHkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oIgor I2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5o IgorI2luY2x1ZGUgInBhcnNlci9hbmFseXplLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25v ZGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2V0cmVlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCisjaW5j bHVkZSAicGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3Jp dGVHcmFwaFRhYmxlLmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgorI2lu Y2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIK KyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgi CisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcnVsZXV0aWxz LmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworCisvKgorICogUmVwcmVzZW50cyBv bmUgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAodmVydGV4IG9yIGVkZ2UpIGluIHRoZSBwYXRoLgor ICoKKyAqIExhYmVsIGV4cHJlc3Npb24gaW4gYW4gZWxlbWVudCBwYXR0ZXJuIHJlc29sdmVzIGlu dG8gYSBzZXQgb2YgZWxlbWVudHMuIEZvcgorICogZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB3ZSBj cmVhdGUgb25lIGdyYXBoX3BhdGhfZWxlbWVudCBvYmplY3QuCisgKi8KK3N0cnVjdCBncmFwaF9w YXRoX2VsZW1lbnQKK3sKKwlPaWQJCQllbGVtb2lkOworCU9pZAkJCXJlbG9pZDsKKwlpbnQJCQly dGluZGV4OworCUxpc3QJICAgKmxhYmVsb2lkczsKKwlPaWQJCQlzcmN2ZXJ0ZXhpZDsKKwlpbnQJ CQlzcmNlbGVtX3BvczsKKwlPaWQJCQlkZXN0dmVydGV4aWQ7CisJaW50CQkJZGVzdGVsZW1fcG9z OworCUxpc3QJICAgKnF1YWxfZXhwcnM7CisJR3JhcGhFbGVtZW50UGF0dGVybiAqcGFyZW50X2dl cDsKK307CisKK3N0YXRpYyBOb2RlICpyZXBsYWNlX3Byb3BlcnR5X3JlZnMoT2lkIHByb3BncmFw aGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5ncyk7CitzdGF0aWMgTGlzdCAqYnVp bGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVwbGUgZWRnZXR1cCwgaW50IGVkZ2VydGks IGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNh dGFsb2dfcmVmX2F0dG51bSk7CitzdGF0aWMgTGlzdCAqZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0 aF9wYXR0ZXJuKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqZWxlbWVudF9wYXR0ZXJucyk7Citz dGF0aWMgUXVlcnkgKmdlbmVyYXRlX3F1ZXJ5X2Zvcl9ncmFwaF9wYXRoKFJhbmdlVGJsRW50cnkg KnJ0ZSwgTGlzdCAqcGF0aCk7CitzdGF0aWMgTm9kZSAqZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRo cXVlcmllcyhMaXN0ICpwYXRocXVlcmllcywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGxp c3QpOworc3RhdGljIExpc3QgKmdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1 cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRo LCBMaXN0ICpwYXRoX3BhdHRlcm5fbGlzdHMsIGludCBlbGVtcG9zKTsKK3N0YXRpYyBRdWVyeSAq Z2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUp Oworc3RhdGljIFF1ZXJ5ICpnZW5lcmF0ZV91bmlvbl9mcm9tX3BhdGhxdWVyaWVzKExpc3QgKipw YXRocXVlcmllcyk7CitzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2dlcF9raW5kX25hbWUoR3JhcGhF bGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CitzdGF0aWMgTGlzdCAqZ2V0X2VsZW1lbnRzX2Zv cl9nZXAoT2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAsIGludCBlbGVt cG9zKTsKK3N0YXRpYyBib29sIGlzX3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJlbChPaWQg bGFiZWxvaWQsIE9pZCBwcm9wb2lkKTsKK3N0YXRpYyBjb25zdCBjaGFyICpnZXRfZ3JhcGhfZWxl bV9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2luZCk7CitzdGF0aWMgTm9k ZSAqZ2V0X2VsZW1lbnRfcHJvcGVydHlfZXhwcihPaWQgZWxlbW9pZCwgT2lkIHByb3BvaWQsIGlu dCBydGluZGV4KTsKKworLyoKKyAqIENvbnZlcnQgR1JBUEhfVEFCTEUgY2xhdXNlIGludG8gYSBz dWJxdWVyeSB1c2luZyByZWxhdGlvbmFsCisgKiBvcGVyYXRvcnMuCisgKi8KK1F1ZXJ5ICoKK3Jl d3JpdGVHcmFwaFRhYmxlKFF1ZXJ5ICpwYXJzZXRyZWUsIGludCBydF9pbmRleCkKK3sKKwlSYW5n ZVRibEVudHJ5ICpydGU7CisJUXVlcnkJICAgKmdyYXBoX3RhYmxlX3F1ZXJ5OworCUxpc3QJICAg KnBhdGhfcGF0dGVybjsKKwlMaXN0CSAgICpwYXRocXVlcmllcyA9IE5JTDsKKworCXJ0ZSA9IHJ0 X2ZldGNoKHJ0X2luZGV4LCBwYXJzZXRyZWUtPnJ0YWJsZSk7CisKKwlpZiAobGlzdF9sZW5ndGgo cnRlLT5ncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCkgIT0gMSkKKwkJZWxvZyhFUlJP UiwgInVuc3VwcG9ydGVkIHBhdGggcGF0dGVybiBsaXN0IGxlbmd0aCIpOworCisJcGF0aF9wYXR0 ZXJuID0gbGluaXRpYWwocnRlLT5ncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCk7CisJ cGF0aHF1ZXJpZXMgPSBnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4ocnRlLCBwYXRo X3BhdHRlcm4pOworCWdyYXBoX3RhYmxlX3F1ZXJ5ID0gZ2VuZXJhdGVfdW5pb25fZnJvbV9wYXRo cXVlcmllcygmcGF0aHF1ZXJpZXMpOworCisJQWNxdWlyZVJld3JpdGVMb2NrcyhncmFwaF90YWJs ZV9xdWVyeSwgdHJ1ZSwgZmFsc2UpOworCisJcnRlLT5ydGVraW5kID0gUlRFX1NVQlFVRVJZOwor CXJ0ZS0+c3VicXVlcnkgPSBncmFwaF90YWJsZV9xdWVyeTsKKwlydGUtPmxhdGVyYWwgPSB0cnVl OworCisJLyoKKwkgKiBSZXNldCBubyBsb25nZXIgYXBwbGljYWJsZSBmaWVsZHMsIHRvIGFwcGVh c2UKKwkgKiBXUklURV9SRUFEX1BBUlNFX1BMQU5fVFJFRVMuCisJICovCisJcnRlLT5ncmFwaF9w YXR0ZXJuID0gTlVMTDsKKwlydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMgPSBOSUw7CisKKyNpZiAw CisJZWxvZyhJTkZPLCAicmV3cml0dGVuOlxuJXMiLCBwZ19nZXRfcXVlcnlkZWYoY29weU9iamVj dChwYXJzZXRyZWUpLCBmYWxzZSkpOworI2VuZGlmCisKKwlyZXR1cm4gcGFyc2V0cmVlOworfQor CisvKgorICogR2VuZXJhdGUgcXVlcmllcyByZXByZXNldGluZyB0aGUgZ2l2ZW4gcGF0aCBwYXR0 ZXJuIGFwcGxpZWQgdG8gdGhlIGdpdmVuCisgKiBwcm9wZXJ0eSBncmFwaC4KKyAqCisgKiBBIHBh dGggcGF0dGVybiBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBlbGVtZW50IHBhdHRlcm5zLiBFYWNo IG9mIHRoZSBlbGVtZW50CisgKiBwYXR0ZXJucyBtYXkgYmUgc2F0aXNmaWVkIGJ5IG11bHRpcGxl IGVsZW1lbnRzLiBBIHBhdGggc2F0aXNmeWluZyB0aGUgZ2l2ZW4KKyAqIHBhdGggcGF0dGVybiBj b25zaXN0cyBvZiBvbmUgZWxlbWVudCBmcm9tIGVhY2ggZWxlbWVudCBwYXR0ZXJuLiBFYWNoIG9m IHRoZXNlCisgKiBwYXRocyBpcyBjb252ZXJ0ZWQgaW50byBhIHF1ZXJ5IGNvbm5lY3RpbmcgYWxs IHRoZSBlbGVtZW50cyBpbiB0aGF0IHBhdGguCisgKiBUaGVyZSBjYW4gYmUgYXMgbWFueSBwYXRo cyBhcyB0aGUgbnVtYmVyIG9mIGNvbWJpbmF0aW9ucyBvZiB0aGUgZWxlbWVudHMuCisgKiBDb21w dXRlIGFsbCB0aGVzZSBwYXRocyBhbmQgY29udmVydCBlYWNoIG9mIHRoZW0gaW50byBhIHF1ZXJ5 LiBTZXQgb2YgdGhlc2UKKyAqIHF1ZXJpZXMgaXMgcmV0dXJuZWQuCisgKgorICogQXNzdW1pbmcg dGhhdCB0aGUgbnVtYmVyaW5nIHN0YXJ0cyBhdCAwLCBldmVyeSBlbGVtZW50IHBhdHRlcm4gYXQg YW4gZXZlbgorICogbnVtYmVyZWQgcG9zaXRpb24gaW4gdGhlIHBhdGggaXMgYSB2ZXJ0ZXggcGF0 dGVybi4gRXZlcnkgZWxlbWVudCBpbiBldmVuCisgKiBudW1iZXJlZCBwb3NpdGlvbiBpcyBhbiBl ZGdlIHBhdHRlcm4uIFRodXMgZXZlcnkgZXZlbiBudW1iZXJlZCBlbGVtZW50IGlzIGEKKyAqIHZl cnRleCB0YWJsZSBhbmQgb2RkIG51bWJlcmVkIGVsZW1lbnQgaXMgYW4gZWRnZSB0YWJsZS4gQW4g ZWRnZSBjb25uZWN0cyB0d28KKyAqIHZlcnRpY2VzIGlkZW50aWZpZWQgYnkgdGhlIHNvdXJjZSBh bmQgZGVzdGluYXRpb24ga2V5cyByZXNwZWN0aXZlbHkuIFRoZQorICogY29ubmVjdGlvbnMgYmV0 d2VlbiB2ZXJ0ZXggcm93cyBmcm9tIGRpZmZlcmVudCB2ZXJ0ZXggdGFibGVzIGNhbiBiZSBjb21w dXRlZAorICogYnkgYXBwbHlpbmcgcmVsYXRpb25hbCBqb2luIGJldHdlZW4gZWRnZSB0YWJsZSBh bmQgdGhlIGFkamFjZW50IHZlcnRleCB0YWJsZXMKKyAqIHJlc3BlY3RpdmVseS4gSGVuY2UgYSBx dWVyeSByZXByZXNlbnRpbmcgYSBwYXRoIGNvbnNpc3RzIG9mIEpPSU4gYmV0d2VlbgorICogYWRq YWNlbnQgdmVydGV4IGFuZCBlZGdlIHRhYmxlcy4KKyAqCisgKiBBIHBhdGggcGF0dGVybiBpbiBp dHNlbGYgaXMgYSBLLXBhcnRpdGUgZ3JhcGggd2hlcmUgSyA9IG51bWJlciBvZiBlbGVtZW50Cisg KiBwYXR0ZXJucyBpbiB0aGUgcGF0aCBwYXR0ZXJuLiBUaGUgcG9zc2libGUgcGF0aHMgYXJlIGNv bXB1dGVkIGJ5IHBlcmZvcm1pbmcgYQorICogREZTIGluIHRoaXMgZ3JhcGguIFRoZSBERlMgaXMg aW1wbGVtZW50ZWQgYXMgcmVjdXJzaW9uLiBBIHBhdGggaXMgY29udmVydGVkCisgKiBpbnRvIHRo ZSBjb3JyZXNwb25kaW5nIHF1ZXJ5IGFzIHNvb24gYXMgdGhlIGxhc3QgdmVydGV4IHRhYmxlIGlz IHJlYWNoZWQuCisgKgorICogZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKCkgc3Rh cnRzIHRoZSByZWN1cnNpb24gYnV0IGFjdHVhbCB3b3JrIGlzCisgKiBkb25lIGJ5IGdlbmVyYXRl X3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1cnNlKCkuCisgKiBnZW5lcmF0ZV9xdWVyeV9m b3JfZ3JhcGhfcGF0aCgpIGNvbnN0cnVjdHMgYSBxdWVyeSBmb3IgYSBnaXZlbiBwYXRoLgorICoK KyAqIEEgcGF0aCBwYXR0ZXJuIG1heSByZXN1bHQgaW50byBubyBwYXRoIGlmIGFueSBvZiB0aGUg ZWxlbWVudCBwYXR0ZXJuIHlpZWxkcworICogbm8gZWxlbWVudHMgb3IgZWRnZSBwYXR0ZXJucyB5 aWVsZCBubyBlZGdlcyBjb25uZWN0aW5nIGFkamFjZW50IHZlcnRleAorICogcGF0dGVybnMuIElu IHN1Y2ggYSBjYXNlIGEgcXVlcnkgd2hpY2ggcmV0dXJucyBubyByZXN1bHQgaXMgcmV0dXJuZWQK KyAqIChnZW5lcmF0ZV9xdWVyeV9mb3JfZW1wdHlfcGF0aF9wYXR0ZXJuKCkpLgorICoKKyAqICdw YXRoX3BhdHRlcm4nIGlzIGdpdmVuIHBhdGggcGF0dGVybgorICogJ3J0ZScgcmVmZXJlbmNlcyB0 aGUgcHJvcGVydHkgZ3JhcGggaW4gdGhlIEdSQVBIX1RBQkxFIGNsYXVzZQorICovCitzdGF0aWMg TGlzdCAqCitnZW5lcmF0ZV9xdWVyaWVzX2Zvcl9wYXRoX3BhdHRlcm4oUmFuZ2VUYmxFbnRyeSAq cnRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCit7CisJTGlzdAkgICAqcGF0aHF1ZXJpZXMgPSBOSUw7 CisJTGlzdAkgICAqcGF0aF9lbGVtX2xpc3RzID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCWlu dAkJCWVsZW1wb3MgPSAwOworCisJQXNzZXJ0KGxpc3RfbGVuZ3RoKHBhdGhfcGF0dGVybikgPiAw KTsKKworCS8qCisJICogRm9yIGV2ZXJ5IGVsZW1lbnQgcGF0dGVybiBpbiB0aGUgZ2l2ZW4gcGF0 aCBwYXR0ZXJuIGNvbGxlY3QgYWxsIHRoZQorCSAqIGdyYXBoIGVsZW1lbnRzIHRoYXQgc2F0aXNm eSB0aGUgZWxlbWVudCBwYXR0ZXJuLgorCSAqLworCWZvcmVhY2gobGMsIHBhdGhfcGF0dGVybikK Kwl7CisJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IGxmaXJzdF9ub2RlKEdyYXBoRWxlbWVu dFBhdHRlcm4sIGxjKTsKKworCQlpZiAoZ2VwLT5raW5kICE9IFZFUlRFWF9QQVRURVJOICYmCisJ CQlnZXAtPmtpbmQgIT0gRURHRV9QQVRURVJOX0xFRlQgJiYgZ2VwLT5raW5kICE9IEVER0VfUEFU VEVSTl9SSUdIVCkKKwkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBlbGVtZW50IHBhdHRlcm4g a2luZDogJXMiLCBnZXRfZ2VwX2tpbmRfbmFtZShnZXAtPmtpbmQpKTsKKworCQlpZiAoZ2VwLT5x dWFudGlmaWVyKQorCQkJZWxvZyhFUlJPUiwgImVsZW1lbnQgcGF0dGVybiBxdWFudGlmaWVyIG5v dCBzdXBwb3J0ZWQgeWV0Iik7CisKKwkJcGF0aF9lbGVtX2xpc3RzID0gbGFwcGVuZChwYXRoX2Vs ZW1fbGlzdHMsCisJCQkJCQkJCSAgZ2V0X2VsZW1lbnRzX2Zvcl9nZXAocnRlLT5yZWxpZCwgZ2Vw LCBlbGVtcG9zKyspKTsKKwl9CisKKwlwYXRocXVlcmllcyA9IGdlbmVyYXRlX3F1ZXJpZXNfZm9y X3BhdGhfcGF0dGVybl9yZWN1cnNlKHJ0ZSwgcGF0aHF1ZXJpZXMsCisJCQkJCQkJCQkJCQkJCQlO SUwsIHBhdGhfZWxlbV9saXN0cywgMCk7CisKKwlpZiAoIXBhdGhxdWVyaWVzKQorCQlwYXRocXVl cmllcyA9IGxpc3RfbWFrZTEoZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5X3BhdGhfcGF0dGVybihy dGUpKTsKKworCXJldHVybiBwYXRocXVlcmllczsKK30KKworLyoKKyAqIFJlY3Vyc2l2ZSB3b3Jr aG9yc2UgZnVuY3Rpb24gb2YgZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuKCkuCisg Ki8KK3N0YXRpYyBMaXN0ICoKK2dlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybl9yZWN1 cnNlKFJhbmdlVGJsRW50cnkgKnJ0ZSwgTGlzdCAqcGF0aHF1ZXJpZXMsIExpc3QgKmN1cl9wYXRo LCBMaXN0ICpwYXRoX2VsZW1fbGlzdHMsIGludCBlbGVtcG9zKQoreworCUxpc3QJICAgKmdlcF9l bGVtcyA9IGxpc3RfbnRoX25vZGUoTGlzdCwgcGF0aF9lbGVtX2xpc3RzLCBlbGVtcG9zKTsKKwlM aXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGdlcF9lbGVtcykKKwl7CisJCXN0cnVjdCBn cmFwaF9wYXRoX2VsZW1lbnQgKmVsZW0gPSBsZmlyc3QobGMpOworCisJCS8qIFVwZGF0ZSBjdXJy ZW50IHBhdGggYmVpbmcgYnVpbHQgd2l0aCBjdXJyZW50IGVsZW1lbnQuICovCisJCWN1cl9wYXRo ID0gbGFwcGVuZChjdXJfcGF0aCwgZWxlbSk7CisKKwkJLyoKKwkJICogSWYgdGhpcyBpcyB0aGUg bGFzdCBlbGVtZW50IGluIHRoZSBwYXRoLCBnZW5lcmF0ZSBxdWVyeSBmb3IgdGhlCisJCSAqIGNv bXBsZXRlZCBwYXRoLiBFbHNlIHJlY3Vyc2UgcHJvY2Vzc2luZyB0aGUgbmV4dCBlbGVtZW50Lgor CQkgKi8KKwkJaWYgKGxpc3RfbGVuZ3RoKHBhdGhfZWxlbV9saXN0cykgPT0gbGlzdF9sZW5ndGgo Y3VyX3BhdGgpKQorCQl7CisJCQlRdWVyeQkgICAqcGF0aHF1ZXJ5ID0gZ2VuZXJhdGVfcXVlcnlf Zm9yX2dyYXBoX3BhdGgocnRlLCBjdXJfcGF0aCk7CisKKwkJCUFzc2VydChlbGVtcG9zID09IGxp c3RfbGVuZ3RoKHBhdGhfZWxlbV9saXN0cykgLSAxKTsKKwkJCWlmIChwYXRocXVlcnkpCisJCQkJ cGF0aHF1ZXJpZXMgPSBsYXBwZW5kKHBhdGhxdWVyaWVzLCBwYXRocXVlcnkpOworCQl9CisJCWVs c2UKKwkJCXBhdGhxdWVyaWVzID0gZ2VuZXJhdGVfcXVlcmllc19mb3JfcGF0aF9wYXR0ZXJuX3Jl Y3Vyc2UocnRlLCBwYXRocXVlcmllcywKKwkJCQkJCQkJCQkJCQkJCQkJY3VyX3BhdGgsCisJCQkJ CQkJCQkJCQkJCQkJCXBhdGhfZWxlbV9saXN0cywKKwkJCQkJCQkJCQkJCQkJCQkJZWxlbXBvcyAr IDEpOworCQkvKiBNYWtlIHdheSBmb3IgdGhlIG5leHQgZWxlbWVudCBhdCB0aGUgc2FtZSBwb3Np dGlvbi4gKi8KKwkJY3VyX3BhdGggPSBsaXN0X2RlbGV0ZV9sYXN0KGN1cl9wYXRoKTsKKwl9CisK KwlyZXR1cm4gcGF0aHF1ZXJpZXM7Cit9CisKKy8qCisgKiBDb25zdHJ1Y3QgYSBxdWVyeSByZXBy ZXNlbnRpbmcgZ2l2ZW4gZ3JhcGggcGF0aC4KKyAqCisgKiBNb3JlIGRldGFpbHMgaW4gdGhlIHBy b2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhfcGF0dGVybigpLgorICovCitzdGF0 aWMgUXVlcnkgKgorZ2VuZXJhdGVfcXVlcnlfZm9yX2dyYXBoX3BhdGgoUmFuZ2VUYmxFbnRyeSAq cnRlLCBMaXN0ICpncmFwaF9wYXRoKQoreworCUxpc3RDZWxsICAgKmxjOworCVF1ZXJ5CSAgICpw YXRoX3F1ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCUxpc3QJICAgKmZyb21saXN0ID0gTklMOwor CUxpc3QJICAgKnF1YWxfZXhwcnMgPSBOSUw7CisKKwlwYXRoX3F1ZXJ5LT5jb21tYW5kVHlwZSA9 IENNRF9TRUxFQ1Q7CisKKwlmb3JlYWNoKGxjLCBncmFwaF9wYXRoKQorCXsKKwkJc3RydWN0IGdy YXBoX3BhdGhfZWxlbWVudCAqZ3BlID0gKHN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKikgbGZp cnN0KGxjKTsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gZ3BlLT5wYXJlbnRfZ2VwOwor CQlSYW5nZVRibFJlZiAqcnRyOworCQlSZWxhdGlvbglyZWw7CisJCVBhcnNlTmFtZXNwYWNlSXRl bSAqcG5pOworCisJCUFzc2VydChnZXAtPmtpbmQgPT0gVkVSVEVYX1BBVFRFUk4gfHwKKwkJCSAg IGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fTEVGVCB8fCBnZXAtPmtpbmQgPT0gRURHRV9QQVRU RVJOX1JJR0hUKTsKKwkJQXNzZXJ0KCFnZXAtPnF1YW50aWZpZXIpOworCisJCWlmIChnZXAtPmtp bmQgPT0gRURHRV9QQVRURVJOX0xFRlQgfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVSTl9SSUdI VCkKKwkJeworCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxlbWVudCAqc3JjX2dwZSA9IGxpc3RfbnRo KGdyYXBoX3BhdGgsIGdwZS0+c3JjZWxlbV9wb3MpOworCQkJc3RydWN0IGdyYXBoX3BhdGhfZWxl bWVudCAqZGVzdF9ncGUgPSBsaXN0X250aChncmFwaF9wYXRoLCBncGUtPmRlc3RlbGVtX3Bvcyk7 CisKKwkJCS8qCisJCQkgKiBNYWtlIHN1cmUgdGhhdCB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlv biBlbGVtZW50cyBvZiB0aGlzIGVkZ2UKKwkJCSAqIGFyZSBwbGFjZWQgYXQgdGhlIGV4cGVjdGVk IHBvc2l0aW9uIGFuZCBoYXZlIHRoZSBjb3JyZXQKKwkJCSAqIFJhbmdlVGJsRW50cnkgaW5kZXhl cyBhcyBzZXR1cCBieSBjcmVhdGVfZ3BlX2Zvcl9lbGVtZW50KCkuCisJCQkgKi8KKwkJCUFzc2Vy dChncGUtPnNyY2VsZW1fcG9zID09IHNyY19ncGUtPnJ0aW5kZXggLSAxICYmCisJCQkJICAgZ3Bl LT5kZXN0ZWxlbV9wb3MgPT0gZGVzdF9ncGUtPnJ0aW5kZXggLSAxKTsKKworCQkJLyoKKwkJCSAq IElmIHRoZSBnaXZlbiBlZGdlIGVsZW1lbnQgZG9lcyBub3QgY29ubmVjdCB0aGUgYWRqYWNlbnQg dmVydGV4CisJCQkgKiBlbGVtZW50cyBpbiB0aGlzIHBhdGgsIHRoZSBwYXRoIGlzIGJyb2tlbi4g QWJhbmRvbiB0aGlzIHBhdGggYXMKKwkJCSAqIGl0IHdvbid0IHJldHVybiBhbnkgcm93cy4KKwkJ CSAqLworCQkJaWYgKHNyY19ncGUtPmVsZW1vaWQgIT0gZ3BlLT5zcmN2ZXJ0ZXhpZCB8fAorCQkJ CWRlc3RfZ3BlLT5lbGVtb2lkICE9IGdwZS0+ZGVzdHZlcnRleGlkKQorCQkJCXJldHVybiBOVUxM OworCQl9CisKKwkJLyogQ3JlYXRlIFJhbmdlVGJsRW50cnkgZm9yIHRoaXMgZWxlbWVudCB0YWJs ZS4gKi8KKwkJcmVsID0gdGFibGVfb3BlbihncGUtPnJlbG9pZCwgQWNjZXNzU2hhcmVMb2NrKTsK KwkJcG5pID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVsYXRpb24obWFrZV9wYXJzZXN0YXRlKE5V TEwpLCByZWwsIEFjY2Vzc1NoYXJlTG9jaywKKwkJCQkJCQkJCQkJTlVMTCwgdHJ1ZSwgZmFsc2Up OworCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisJCXBhdGhfcXVlcnktPnJ0YWJsZSA9IGxh cHBlbmQocGF0aF9xdWVyeS0+cnRhYmxlLCBwbmktPnBfcnRlKTsKKwkJcGF0aF9xdWVyeS0+cnRl cGVybWluZm9zID0gbGFwcGVuZChwYXRoX3F1ZXJ5LT5ydGVwZXJtaW5mb3MsIHBuaS0+cF9wZXJt aW5mbyk7CisJCXBuaS0+cF9ydGUtPnBlcm1pbmZvaW5kZXggPSBsaXN0X2xlbmd0aChwYXRoX3F1 ZXJ5LT5ydGVwZXJtaW5mb3MpOworCQlydHIgPSBtYWtlTm9kZShSYW5nZVRibFJlZik7CisJCXJ0 ci0+cnRpbmRleCA9IGxpc3RfbGVuZ3RoKHBhdGhfcXVlcnktPnJ0YWJsZSk7CisJCWZyb21saXN0 ID0gbGFwcGVuZChmcm9tbGlzdCwgcnRyKTsKKworCQkvKgorCQkgKiBNYWtlIHN1cmUgdGhhdCB0 aGUgYXNzdW1wdGlvbiBtZW50aW9uZWQgaW4gY3JlYXRlX2dwZV9mb3JfZWxlbWVudCgpCisJCSAq IGhvbGRzIHRydWUuIFRoYXQgdGhlIGVsZW1lbnRzJyBSYW5nZVRibEVudHJ5cyBhcmUgYWRkZWQg aW4gdGhlCisJCSAqIG9yZGVyIGluIHdoaWNoIHRoZXkgYXBwZWFyIGluIHRoZSBwYXRoLgorCQkg Ki8KKwkJQXNzZXJ0KGdwZS0+cnRpbmRleCA9PSBydHItPnJ0aW5kZXgpOworCisJCWlmIChnZXAt PndoZXJlQ2xhdXNlKQorCQl7CisJCQlOb2RlCSAgICp0cjsKKworCQkJdHIgPSByZXBsYWNlX3By b3BlcnR5X3JlZnMocnRlLT5yZWxpZCwgZ2VwLT53aGVyZUNsYXVzZSwgbGlzdF9tYWtlMShncGUp KTsKKworCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVhbF9leHBycywgdHIpOworCQl9CisJCXF1 YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJzLCBncGUtPnF1YWxfZXhwcnMpOworCX0K KworCXBhdGhfcXVlcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKGZyb21saXN0LAorCQkJCQkJ CQkJCShOb2RlICopIG1ha2VCb29sRXhwcihBTkRfRVhQUiwgcXVhbF9leHBycywgLTEpKTsKKwor CS8qIEVhY2ggcGF0aCBxdWVyeSBwcm9qZWN0cyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhl IEdSQUhfVEFCTEUgY2xhdXNlICovCisJcGF0aF9xdWVyeS0+dGFyZ2V0TGlzdCA9IGNhc3ROb2Rl KExpc3QsCisJCQkJCQkJCQkgIHJlcGxhY2VfcHJvcGVydHlfcmVmcyhydGUtPnJlbGlkLAorCQkJ CQkJCQkJCQkJCQkJKE5vZGUgKikgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zLAorCQkJCQkJCQkJ CQkJCQkJZ3JhcGhfcGF0aCkpOworCXJldHVybiBwYXRoX3F1ZXJ5OworfQorCisvKgorICogQ29u c3RydWN0IGEgcXVlcnkgd2hpY2ggd291bGQgbm90IHJldHVybiBhbnkgcm93cy4KKyAqCisgKiBN b3JlIGRldGFpbHMgaW4gdGhlIHByb2xvZ3VlIG9mIGdlbmVyYXRlX3F1ZXJpZXNfZm9yX3BhdGhf cGF0dGVybigpLgorICovCitzdGF0aWMgUXVlcnkgKgorZ2VuZXJhdGVfcXVlcnlfZm9yX2VtcHR5 X3BhdGhfcGF0dGVybihSYW5nZVRibEVudHJ5ICpydGUpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0g bWFrZU5vZGUoUXVlcnkpOworCUxpc3RDZWxsICAgKmxjOworCisJcXVlcnktPmNvbW1hbmRUeXBl ID0gQ01EX1NFTEVDVDsKKworCisJcXVlcnktPnJ0YWJsZSA9IE5JTDsKKwlxdWVyeS0+cnRlcGVy bWluZm9zID0gTklMOworCisKKwlxdWVyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIoTklMLCAo Tm9kZSAqKSBtYWtlQm9vbENvbnN0KGZhbHNlLCBmYWxzZSkpOworCisJLyoKKwkgKiBFdmVuIHRo b3VnaCBubyByb3dzIGFyZSByZXR1cm5lZCwgdGhlIHJlc3VsdCBzdGlsbCBwcm9qZWN0cyB0aGUg c2FtZQorCSAqIGNvbHVtbnMgYXMgcHJvamVjdGVkIGJ5IEdSQVBIX1RBQkxFIGNsYXVzZS4gRG8g dGhpcyBieSBjb25zdHJ1Y3RpbmcgYQorCSAqIHRhcmdldCBsaXN0IGZ1bGwgb2YgTlVMTCB2YWx1 ZXMuCisJICovCisJZm9yZWFjaChsYywgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zKQorCXsKKwkJ VGFyZ2V0RW50cnkgKnRlID0gY29weU9iamVjdChsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwgbGMp KTsKKwkJTm9kZQkgICAqbnRlID0gKE5vZGUgKikgdGUtPmV4cHI7CisKKwkJdGUtPmV4cHIgPSAo RXhwciAqKSBtYWtlTnVsbENvbnN0KGV4cHJUeXBlKG50ZSksIGV4cHJUeXBtb2QobnRlKSwgZXhw ckNvbGxhdGlvbihudGUpKTsKKwkJcXVlcnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHF1ZXJ5LT50 YXJnZXRMaXN0LCB0ZSk7CisJfQorCisJcmV0dXJuIHF1ZXJ5OworfQorCisvKgorICogQ29uc3Ry dWN0IGEgcXVlcnkgd2hpY2ggaXMgVU5JT04gb2YgZ2l2ZW4gcGF0aCBxdWVyaWVzLgorICoKKyAq IFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBwYXRocXVlcmllcyBsaXN0IHdoaWxlIGNvbnN0 cnVjdGluZworICogU2V0T3BlcmF0aW9uU3RtdCByZWNydXJzaXZlbHkuIEhlbmNlIHRoZSBmdW5j dGlvbiBhbHdheXMgcmV0dXJucyB3aXRoCisgKiBgcGF0aHF1ZXJpZXNgIHNldCB0byBOSUwuCisg Ki8KK3N0YXRpYyBRdWVyeSAqCitnZW5lcmF0ZV91bmlvbl9mcm9tX3BhdGhxdWVyaWVzKExpc3Qg KipwYXRocXVlcmllcykKK3sKKwlMaXN0CSAgICpydGFibGUgPSBOSUw7CisJUXVlcnkJICAgKnNh bXBsZVF1ZXJ5ID0gbGluaXRpYWxfbm9kZShRdWVyeSwgKnBhdGhxdWVyaWVzKTsKKwlTZXRPcGVy YXRpb25TdG10ICpzb3N0bXQ7CisJUXVlcnkJICAgKnVuaW9uX3F1ZXJ5OworCWludAkJCXJlc25v OworCUxpc3RDZWxsICAgKmxjdGwsCisJCQkgICAqbGN0LAorCQkJICAgKmxjbSwKKwkJCSAgICps Y2M7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgoKnBhdGhxdWVyaWVzKSA+IDApOworCisJLyogSWYg dGhlcmUncyBvbmx5IG9uZSBwYXRocXVlcnksIG5vIG5lZWQgdG8gY29uc3RydWN0IGEgVU5JT04g cXVlcnkuICovCisJaWYgKGxpc3RfbGVuZ3RoKCpwYXRocXVlcmllcykgPT0gMSkKKwl7CisJCSpw YXRocXVlcmllcyA9IE5JTDsKKwkJcmV0dXJuIHNhbXBsZVF1ZXJ5OworCX0KKworCXNvc3RtdCA9 IGNhc3ROb2RlKFNldE9wZXJhdGlvblN0bXQsCisJCQkJCSAgZ2VuZXJhdGVfc2V0b3BfZnJvbV9w YXRocXVlcmllcygqcGF0aHF1ZXJpZXMsICZydGFibGUsIE5VTEwpKTsKKworCS8qIEVuY2Fwc3Vs YXRlIHRoZSBzZXQgb3BlcmF0aW9uIHN0YXRlbWVudCBpbnRvIGEgUXVlcnkuICovCisJdW5pb25f cXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJdW5pb25fcXVlcnktPmNvbW1hbmRUeXBlID0gQ01E X1NFTEVDVDsKKwl1bmlvbl9xdWVyeS0+cnRhYmxlID0gcnRhYmxlOworCXVuaW9uX3F1ZXJ5LT5z ZXRPcGVyYXRpb25zID0gKE5vZGUgKikgc29zdG10OworCXVuaW9uX3F1ZXJ5LT5ydGVwZXJtaW5m b3MgPSBOSUw7CisJdW5pb25fcXVlcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKE5JTCwgTlVM TCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGR1bW15IHRhcmdldGxpc3QgZm9yIG91dGVyIHF1ZXJ5 IHVzaW5nIGNvbHVtbiBuYW1lcyBmcm9tIG9uZQorCSAqIG9mIHRoZSBxdWVyaWVzIGFuZCBjb21t b24gZGF0YXR5cGVzL2NvbGxhdGlvbnMgb2YgdG9wbW9zdCBzZXQKKwkgKiBvcGVyYXRpb24uICBJ dCBzaG91bGRuJ3QgbWF0dGVyIHdoaWNoIHF1ZXJ5LiBBbHNvIGl0IHNob3VsZG4ndCBtYXR0ZXIK KwkgKiB3aGljaCBSVCBpbmRleCBpcyB1c2VkIGFzIHZhcm5vIGluIHRoZSB0YXJnZXQgbGlzdCBl bnRyaWVzLCBhcyBsb25nIGFzCisJICogaXQgY29ycmVzcG9uZHMgdG8gYSByZWFsIFJUIGVudHJ5 OyBlbHNlIGZ1bm55IHRoaW5ncyBtYXkgaGFwcGVuIHdoZW4KKwkgKiB0aGUgdHJlZSBpcyBtYXNo ZWQgYnkgcnVsZSByZXdyaXRpbmcuIFNvIHdlIHVzZSAxIHNpbmNlIHRoZXJlJ3MgYWx3YXlzCisJ ICogb25lIFJUIGVudHJ5IGF0IGxlYXN0LgorCSAqLworCUFzc2VydChydF9mZXRjaCgxLCBydGFi bGUpKTsKKwl1bmlvbl9xdWVyeS0+dGFyZ2V0TGlzdCA9IE5VTEw7CisJcmVzbm8gPSAxOworCWZv cmZvdXIobGN0LCBzb3N0bXQtPmNvbFR5cGVzLAorCQkJbGNtLCBzb3N0bXQtPmNvbFR5cG1vZHMs CisJCQlsY2MsIHNvc3RtdC0+Y29sQ29sbGF0aW9ucywKKwkJCWxjdGwsIHNhbXBsZVF1ZXJ5LT50 YXJnZXRMaXN0KQorCXsKKwkJT2lkCQkJY29sVHlwZSA9IGxmaXJzdF9vaWQobGN0KTsKKwkJaW50 MzIJCWNvbFR5cG1vZCA9IGxmaXJzdF9pbnQobGNtKTsKKwkJT2lkCQkJY29sQ29sbGF0aW9uID0g bGZpcnN0X29pZChsY2MpOworCQlUYXJnZXRFbnRyeSAqc2FtcGxlX3RsZSA9IChUYXJnZXRFbnRy eSAqKSBsZmlyc3QobGN0bCk7CisJCWNoYXIJICAgKmNvbE5hbWU7CisJCVRhcmdldEVudHJ5ICp0 bGU7CisJCVZhcgkJICAgKnZhcjsKKworCQlBc3NlcnQoIXNhbXBsZV90bGUtPnJlc2p1bmspOwor CQljb2xOYW1lID0gcHN0cmR1cChzYW1wbGVfdGxlLT5yZXNuYW1lKTsKKwkJdmFyID0gbWFrZVZh cigxLCBzYW1wbGVfdGxlLT5yZXNubywgY29sVHlwZSwgY29sVHlwbW9kLCBjb2xDb2xsYXRpb24s IDApOworCQl2YXItPmxvY2F0aW9uID0gZXhwckxvY2F0aW9uKChOb2RlICopIHNhbXBsZV90bGUt PmV4cHIpOworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgdmFyLCAoQXR0ck51bWJl cikgcmVzbm8rKywgY29sTmFtZSwgZmFsc2UpOworCQl1bmlvbl9xdWVyeS0+dGFyZ2V0TGlzdCA9 IGxhcHBlbmQodW5pb25fcXVlcnktPnRhcmdldExpc3QsIHRsZSk7CisJfQorCisJKnBhdGhxdWVy aWVzID0gTklMOworCXJldHVybiB1bmlvbl9xdWVyeTsKK30KKworLyoKKyAqIENvbnN0cnVjdCBh IHF1ZXJ5IHdoaWNoIGlzIFVOSU9OIG9mIGFsbCB0aGUgZ2l2ZW4gcGF0aCBxdWVyaWVzLgorICoK KyAqIFRoZSBmdW5jdGlvbiBkZXN0cm95cyBnaXZlbiBwYXRocXVlcmllcyBsaXN0IHdoaWxlIGNv bnN0cnVjdGluZworICogU2V0T3BlcmF0aW9uU3RtdCByZWN1cnNpdmVseS4KKyAqLworc3RhdGlj IE5vZGUgKgorZ2VuZXJhdGVfc2V0b3BfZnJvbV9wYXRocXVlcmllcyhMaXN0ICpwYXRocXVlcmll cywgTGlzdCAqKnJ0YWJsZSwgTGlzdCAqKnRhcmdldGxpc3QpCit7CisJU2V0T3BlcmF0aW9uU3Rt dCAqc29zdG10OworCVF1ZXJ5CSAgICpscXVlcnk7CisJTm9kZQkgICAqcmFyZzsKKwlSYW5nZVRi bFJlZiAqbHJ0ciA9IG1ha2VOb2RlKFJhbmdlVGJsUmVmKTsKKwlMaXN0CSAgICpydGFyZ2V0bGlz dDsKKwlQYXJzZU5hbWVzcGFjZUl0ZW0gKnBuaTsKKworCS8qIFJlY3Vyc2lvbiB0ZXJtaW5hdGlv biBjb25kaXRpb24uICovCisJaWYgKGxpc3RfbGVuZ3RoKHBhdGhxdWVyaWVzKSA9PSAwKQorCXsK KwkJKnRhcmdldGxpc3QgPSBOSUw7CisJCXJldHVybiBOVUxMOworCX0KKworCWxxdWVyeSA9IGxp bml0aWFsX25vZGUoUXVlcnksIHBhdGhxdWVyaWVzKTsKKworCXBuaSA9IGFkZFJhbmdlVGFibGVF bnRyeUZvclN1YnF1ZXJ5KG1ha2VfcGFyc2VzdGF0ZShOVUxMKSwgbHF1ZXJ5LCBOVUxMLAorCQkJ CQkJCQkJCWZhbHNlLCBmYWxzZSk7CisJKnJ0YWJsZSA9IGxhcHBlbmQoKnJ0YWJsZSwgcG5pLT5w X3J0ZSk7CisJbHJ0ci0+cnRpbmRleCA9IGxpc3RfbGVuZ3RoKCpydGFibGUpOworCXJhcmcgPSBn ZW5lcmF0ZV9zZXRvcF9mcm9tX3BhdGhxdWVyaWVzKGxpc3RfZGVsZXRlX2ZpcnN0KHBhdGhxdWVy aWVzKSwgcnRhYmxlLCAmcnRhcmdldGxpc3QpOworCWlmIChyYXJnID09IE5VTEwpCisJeworCQkv KgorCQkgKiBObyBmdXJ0aGVyIHBhdGggcXVlcmllcyBpbiB0aGUgbGlzdC4gQ29udmVydCB0aGUg bGFzdCBxdWVyeSBpbnRvIGFuCisJCSAqIFJhbmdlVGJsUmVmIGFzIGV4cGVjdGVkIGJ5IFNldE9w ZXJhdGlvblN0bXQuIEV4dHJhY3QgYSBsaXN0IG9mIHRoZQorCQkgKiBub24tanVuayBUTEVzIGZv ciB1cHBlci1sZXZlbCBwcm9jZXNzaW5nLgorCQkgKi8KKwkJaWYgKHRhcmdldGxpc3QpCisJCXsK KwkJCUxpc3RDZWxsICAgKnRsOworCisJCQkqdGFyZ2V0bGlzdCA9IE5JTDsKKwkJCWZvcmVhY2go dGwsIGxxdWVyeS0+dGFyZ2V0TGlzdCkKKwkJCXsKKwkJCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRh cmdldEVudHJ5ICopIGxmaXJzdCh0bCk7CisKKwkJCQlpZiAoIXRsZS0+cmVzanVuaykKKwkJCQkJ KnRhcmdldGxpc3QgPSBsYXBwZW5kKCp0YXJnZXRsaXN0LCB0bGUpOworCQkJfQorCQl9CisJCXJl dHVybiAoTm9kZSAqKSBscnRyOworCX0KKworCXNvc3RtdCA9IG1ha2VOb2RlKFNldE9wZXJhdGlv blN0bXQpOworCXNvc3RtdC0+b3AgPSBTRVRPUF9VTklPTjsKKwlzb3N0bXQtPmFsbCA9IHRydWU7 CisJc29zdG10LT5sYXJnID0gKE5vZGUgKikgbHJ0cjsKKwlzb3N0bXQtPnJhcmcgPSByYXJnOwor CWNvbnN0cnVjdFNldE9wVGFyZ2V0bGlzdChzb3N0bXQsIGxxdWVyeS0+dGFyZ2V0TGlzdCwgcnRh cmdldGxpc3QsIHRhcmdldGxpc3QsICJVTklPTiIsIE5VTEwsIGZhbHNlKTsKKworCXJldHVybiAo Tm9kZSAqKSBzb3N0bXQ7Cit9CisKKy8qCisgKiBDb25zdHJ1Y3QgYSBncmFwaF9wYXRoX2VsZW1l bnQgb2JqZWN0IGZvciB0aGUgZ3JhcGggZWxlbWVudCBnaXZlbiBieSBgZWxlbW9pZGAKKyAqIHN0 YXRpc2ZpZWQgYnkgdGhlIGdyYXBoIGVsZW1lbnQgcGF0dGVybiBgZ2VwYC4KKyAqCisgKiAnZWxl bXBvc2AgaXMgdGhlIHBvc2l0aW9uIG9mIGdpdmVuIGVsZW1lbnQgcGF0dGVybiBpbiB0aGUgcGF0 aCBwYXR0ZXJuLgorICoKKyAqIElmIHRoZSB0eXBlIG9mIGdyYXBoIGVsZW1lbnQgZG9lcyBub3Qg Zml0IHRoZSBlbGVtZW50IHBhdHRlcm4ga2luZCwgdGhlCisgKiBmdW5jdGlvbiByZXR1cm5zIE5V TEwuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICoKK2NyZWF0ZV9ncGVf Zm9yX2VsZW1lbnQoR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwLCBPaWQgZWxlbW9pZCwgaW50IGVs ZW1wb3MpCit7CisJSGVhcFR1cGxlCWVsZXR1cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhF TE9JRCwgT2JqZWN0SWRHZXREYXR1bShlbGVtb2lkKSk7CisJRm9ybV9wZ19wcm9wZ3JhcGhfZWxl bWVudCBwZ2Vmb3JtOworCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmdwZTsKKworCWlmICgh ZWxldHVwKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkg Z3JhcGggZWxlbWVudCAldSIsIGVsZW1vaWQpOworCXBnZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdy YXBoX2VsZW1lbnQpIEdFVFNUUlVDVChlbGV0dXApKTsKKworCWlmICgocGdlZm9ybS0+cGdla2lu ZCA9PSBQR0VLSU5EX1ZFUlRFWCAmJiBnZXAtPmtpbmQgIT0gVkVSVEVYX1BBVFRFUk4pIHx8CisJ CShwZ2Vmb3JtLT5wZ2VraW5kID09IFBHRUtJTkRfRURHRSAmJiAhSVNfRURHRV9QQVRURVJOKGdl cC0+a2luZCkpKQorCXsKKwkJUmVsZWFzZVN5c0NhY2hlKGVsZXR1cCk7CisJCXJldHVybiBOVUxM OworCX0KKworCWdwZSA9IHBhbGxvYzBfb2JqZWN0KHN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQp OworCWdwZS0+cGFyZW50X2dlcCA9IGdlcDsKKwlncGUtPmVsZW1vaWQgPSBlbGVtb2lkOworCWdw ZS0+cmVsb2lkID0gcGdlZm9ybS0+cGdlcmVsaWQ7CisJZ3BlLT5xdWFsX2V4cHJzID0gTklMOwor CisJLyoKKwkgKiBXaGVuIHRoZSBwYXRoIGNvbnRhaW5pbmcgdGhpcyBlbGVtZW50IHdpbGwgYmUg Y29udmVydGVkIGludG8gYSBxdWVyeQorCSAqIChnZW5lcmF0ZV9xdWVyeV9mb3JfZ3JhcGhfcGF0 aCgpKSB0aGlzIGVsZW1lbnQgd2lsbCBiZSBjb252ZXJ0ZWQgaW50byBhCisJICogUmFuZ2VUYmxF bnRyeS4gVGhlIFJhbmdlVGJsRW50cnlzIGFyZSBjcmVhdGVkIGluIHRoZSBzYW1lIG9yZGVyIGlu CisJICogd2hpY2ggZWxlbWVudHMgYXBwZWFyIGluIHRoZSBwYXRoIGFuZCB0aHVzIGdldCBjb25z ZWN1dGl2ZSBydGluZGV4ZXMuCisJICogS25vd2luZyB0aG9zZSBydGluZGV4ZXMgaGVyZSBtYWtl cyBpdCBwb3NzaWJsZSB0byBjcmFmdCBlbGVtZW50cycgcXVhbAorCSAqIGV4cHJlc3Npb25zIG9u bHkgb25jZS4gT3RoZXJ3aXNlIHRoZXkgbmVlZCB0byBiZSBjcmFmdGVkIGFzIG1hbnkgdGltZXMK KwkgKiBhcyB0aGUgbnVtYmVyIG9mIHBhdGhzIHRoaXMgZWxlbWVudCBhcHBlYXJzIGluLiBIZW5j ZSBzYXZlIHRoZSBhc3N1bWVkCisJICogcnRpbmRleCBzbyB0aGF0IGl0IGNhbiBiZSB2ZXJpZmll ZCBsYXRlci4KKwkgKi8KKwlncGUtPnJ0aW5kZXggPSBlbGVtcG9zICsgMTsKKworCWlmIChJU19F REdFX1BBVFRFUk4oZ2VwLT5raW5kKSkKKwl7CisJCWludAkJCXNyY19ydGluZGV4OworCQlpbnQJ CQlkZXN0X3J0aW5kZXg7CisJCUxpc3QJICAgKmVkZ2VfcXVhbDsKKworCQlncGUtPnNyY3ZlcnRl eGlkID0gcGdlZm9ybS0+cGdlc3JjdmVydGV4aWQ7CisJCWdwZS0+ZGVzdHZlcnRleGlkID0gcGdl Zm9ybS0+cGdlZGVzdHZlcnRleGlkOworCisJCWlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJO X1JJR0hUKQorCQl7CisJCQlncGUtPnNyY2VsZW1fcG9zID0gZWxlbXBvcyAtIDE7CisJCQlncGUt PmRlc3RlbGVtX3BvcyA9IGVsZW1wb3MgKyAxOworCQkJc3JjX3J0aW5kZXggPSBncGUtPnJ0aW5k ZXggLSAxOworCQkJZGVzdF9ydGluZGV4ID0gZ3BlLT5ydGluZGV4ICsgMTsKKwkJfQorCQllbHNl IGlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRURVJOX0xFRlQpCisJCXsKKwkJCWdwZS0+c3JjZWxl bV9wb3MgPSBlbGVtcG9zICsgMTsKKwkJCWdwZS0+ZGVzdGVsZW1fcG9zID0gZWxlbXBvcyAtIDE7 CisJCQlzcmNfcnRpbmRleCA9IGdwZS0+cnRpbmRleCArIDE7CisJCQlkZXN0X3J0aW5kZXggPSBn cGUtPnJ0aW5kZXggLSAxOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogV2UgZG9uJ3Qgc3VwcG9y dCB1bmRpcmVjdGVkIGVkZ2VzIHlldC4gKi8KKwkJCUFzc2VydChmYWxzZSk7CisJCQlncGUtPnNy Y2VsZW1fcG9zID0gZWxlbXBvczsKKwkJCWdwZS0+ZGVzdGVsZW1fcG9zID0gZWxlbXBvczsKKwkJ CXNyY19ydGluZGV4ID0gZ3BlLT5ydGluZGV4OworCQkJZGVzdF9ydGluZGV4ID0gZ3BlLT5ydGlu ZGV4OworCQl9CisKKwkJZWRnZV9xdWFsID0gYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhl bGV0dXAsIGdwZS0+cnRpbmRleCwgc3JjX3J0aW5kZXgsCisJCQkJCQkJCQkJCQkgQW51bV9wZ19w cm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXksCisJCQkJCQkJCQkJCQkgQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9wZ2VzcmNyZWYpOworCQlncGUtPnF1YWxfZXhwcnMgPSBsaXN0X2NvbmNhdChn cGUtPnF1YWxfZXhwcnMsIGVkZ2VfcXVhbCk7CisJCWVkZ2VfcXVhbCA9IGJ1aWxkX2VkZ2VfdmVy dGV4X2xpbmtfcXVhbHMoZWxldHVwLCBncGUtPnJ0aW5kZXgsIGRlc3RfcnRpbmRleCwKKwkJCQkJ CQkJCQkJCSBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWRlc3RrZXksCisJCQkJCQkJCQkJ CQkgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0cmVmKTsKKwkJZ3BlLT5xdWFsX2V4 cHJzID0gbGlzdF9jb25jYXQoZ3BlLT5xdWFsX2V4cHJzLCBlZGdlX3F1YWwpOworCX0KKworCVJl bGVhc2VTeXNDYWNoZShlbGV0dXApOworCisJcmV0dXJuIGdwZTsKK30KKworc3RhdGljIGNvbnN0 IGNoYXIgKgorZ2V0X2dlcF9raW5kX25hbWUoR3JhcGhFbGVtZW50UGF0dGVybktpbmQgZ2Vwa2lu ZCkKK3sKKwlzd2l0Y2ggKGdlcGtpbmQpCisJeworCQljYXNlIFZFUlRFWF9QQVRURVJOOgorCQkJ cmV0dXJuICJ2ZXJ0ZXgiOworCQljYXNlIEVER0VfUEFUVEVSTl9MRUZUOgorCQkJcmV0dXJuICJl ZGdlIHBvaW50aW5nIGxlZnQiOworCQljYXNlIEVER0VfUEFUVEVSTl9SSUdIVDoKKwkJCXJldHVy biAiZWRnZSBwb2ludGluZyByaWdodCI7CisJCWNhc2UgRURHRV9QQVRURVJOX0FOWToKKwkJCXJl dHVybiAidW5kaXJlY3RlZCBlZGdlIjsKKwkJY2FzZSBQQVJFTl9FWFBSOgorCQkJcmV0dXJuICJu ZXN0ZWQgcGF0aCBwYXR0ZXJuIjsKKwl9CisKKwlwZ191bnJlYWNoYWJsZSgpOworfQorCisvKgor ICogUmV0dXJucyB0aGUgbGlzdCBvZiBPSURzIG9mIGdyYXBoIGxhYmVscyB3aGljaCB0aGUgZ2l2 ZW4gbGFiZWwgZXhwcmVzc2lvbgorICogcmVzb2x2ZXMgdG8gaW4gdGhlIGdpdmVuIHByb3BlcnR5 IGdyYXBoLgorICovCitzdGF0aWMgTGlzdCAqCitnZXRfbGFiZWxzX2Zvcl9leHByKE9pZCBwcm9w Z3JhcGhpZCwgTm9kZSAqbGFiZWxleHByKQoreworCUxpc3QJICAgKmxhYmVsX29pZHM7CisKKwlp ZiAoIWxhYmVsZXhwcikKKwl7CisJCVJlbGF0aW9uCXJlbDsKKwkJU3lzU2NhbkRlc2Mgc2NhbjsK KwkJU2NhbktleURhdGEga2V5WzFdOworCQlIZWFwVHVwbGUJdHVwOworCisJCS8qCisJCSAqIEFj Y29yZGluZyB0byBzZWN0aW9uIDkuMiAiQ29udGV4dHVhbCBpbmZlcmVuY2Ugb2YgYSBzZXQgb2Yg bGFiZWxzIgorCQkgKiBzdWJjbGF1c2UgMi5hLmlpIG9mIFNRTC9QR1Egc3RhbmRhcmQsIGVsZW1l bnQgcGF0dGVybiB3aGljaCBkb2VzCisJCSAqIG5vdCBoYXZlIGEgbGFiZWwgZXhwcmVzc2lvbiBp cyBjb25zaWRlcmVkIHRvIGhhdmUgbGFiZWwgZXhwcmVzc2lvbgorCQkgKiBlcXVpdmFsZW50IHRv ICclfCElJyB3aGljaCBpcyBzZXQgb2YgYWxsIGxhYmVscy4KKwkJICovCisJCWxhYmVsX29pZHMg PSBOSUw7CisJCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkLCBBY2Nl c3NTaGFyZUxvY2spOworCQlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCQlBbnVtX3BnX3Byb3Bn cmFwaF9sYWJlbF9wZ2xwZ2lkLAorCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJCQkJCUZf T0lERVEsIE9iamVjdElkR2V0RGF0dW0ocHJvcGdyYXBoaWQpKTsKKwkJc2NhbiA9IHN5c3RhYmxl X2JlZ2luc2NhbihyZWwsIFByb3BncmFwaExhYmVsR3JhcGhOYW1lSW5kZXhJZCwKKwkJCQkJCQkJ ICB0cnVlLCBOVUxMLCAxLCBrZXkpOworCQl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBz eXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwkJeworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwg bGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWwpIEdFVFNUUlVDVCh0dXApOworCisJCQls YWJlbF9vaWRzID0gbGFwcGVuZF9vaWQobGFiZWxfb2lkcywgbGFiZWwtPm9pZCk7CisJCX0KKwkJ c3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxv Y2spOworCX0KKwllbHNlIGlmIChJc0EobGFiZWxleHByLCBHcmFwaExhYmVsUmVmKSkKKwl7CisJ CUdyYXBoTGFiZWxSZWYgKmdsciA9IGNhc3ROb2RlKEdyYXBoTGFiZWxSZWYsIGxhYmVsZXhwcik7 CisKKwkJbGFiZWxfb2lkcyA9IGxpc3RfbWFrZTFfb2lkKGdsci0+bGFiZWxpZCk7CisJfQorCWVs c2UgaWYgKElzQShsYWJlbGV4cHIsIEJvb2xFeHByKSkKKwl7CisJCUJvb2xFeHByICAgKmJlID0g Y2FzdE5vZGUoQm9vbEV4cHIsIGxhYmVsZXhwcik7CisJCUxpc3QJICAgKmxhYmVsX2V4cHJzID0g YmUtPmFyZ3M7CisJCUxpc3RDZWxsICAgKmxsYzsKKworCQlsYWJlbF9vaWRzID0gTklMOworCQlm b3JlYWNoKGxsYywgbGFiZWxfZXhwcnMpCisJCXsKKwkJCUdyYXBoTGFiZWxSZWYgKmdsciA9IGxm aXJzdF9ub2RlKEdyYXBoTGFiZWxSZWYsIGxsYyk7CisKKwkJCWxhYmVsX29pZHMgPSBsYXBwZW5k X29pZChsYWJlbF9vaWRzLCBnbHItPmxhYmVsaWQpOworCQl9CisJfQorCWVsc2UKKwkJZWxvZyhF UlJPUiwgInVuc3VwcG9ydGVkIGxhYmVsIGV4cHJlc3Npb24gdHlwZTogJWQiLCAoaW50KSBub2Rl VGFnKGxhYmVsZXhwcikpOworCisJcmV0dXJuIGxhYmVsX29pZHM7Cit9CisKKy8qCisgKiBHaXZl biBhIGdyYXBoIGVsZW1lbnQgcGF0dGVybiBgZ2VwYCwgcmV0dXJuIGEgbGlzdCBvZiBhbGwgdGhl IGdyYXBoIGVsZW1lbnRzCisgKiB0aGF0IHNhdGlzZnkgdGhlIGdyYXBoIHBhdHRlcm4uCisgKgor ICogRmlyc3Qgd2UgZmluZCBhbGwgdGhlIGdyYXBoIGxhYmVscyB0aGF0IHNhdGlzZnkgdGhlIGxh YmVsIGV4cHJlc3Npb24gaW4KKyAqIGdyYXBoIGVsZW1lbnQgcGF0dGVybi4gRWFjaCBsYWJlbCBo YXMgYXNzb2NpYXRlZCB3aXRoIG9uZSBvciBtb3JlIGdyYXBoCisgKiBlbGVtZW50cy4gQSB1bmlv biBvZiBhbGwgc3VjaCBlbGVtZW50cyBzYXRpc2ZpZXMgdGhlIGVsZW1lbnQgcGF0dGVybi4gVGhl CisgKiByZXR1cm5lZCBsaXN0IGNvbnRhaW5zIG9uZSBncmFwaF9wYXRoX2VsZW1lbnQgb2JqZWN0 IHJlcHJlc2VudGluZyBlYWNoIG9mCisgKiB0aGVzZSBlbGVtZW50cyByZXNwZWN0aXZlbHkuCisg KgorICogYGVsZW1wb3NgIGlzIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50IHBhdHRlcm4gaW4gdGhl IHBhdGggcGF0dGVybi4KKyAqLworc3RhdGljIExpc3QgKgorZ2V0X2VsZW1lbnRzX2Zvcl9nZXAo T2lkIHByb3BncmFwaGlkLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAsIGludCBlbGVtcG9zKQor eworCUxpc3QJICAgKmxhYmVsX29pZHMgPSBnZXRfbGFiZWxzX2Zvcl9leHByKHByb3BncmFwaGlk LCBnZXAtPmxhYmVsZXhwcik7CisJTGlzdAkgICAqZWxlbV9vaWRzX3NlZW4gPSBOSUw7CisJTGlz dAkgICAqZWxlbV9ncGVfb2lkcyA9IE5JTDsKKwlMaXN0CSAgICplbGVtX2dwZXMgPSBOSUw7CisJ TGlzdENlbGwgICAqbGM7CisJUmVsYXRpb24JcmVsOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2Nh bktleURhdGEga2V5WzFdOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFBy b3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJZm9yZWFj aChsYywgbGFiZWxfb2lkcykKKwl7CisJCU9pZAkJCWxhYmVsb2lkID0gbGZpcnN0X29pZChsYyk7 CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJU2NhbktleUluaXQoJmtleVswXSwKKwkJCQkJ QW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9wZ2VsbGFiZWxpZCwKKwkJCQkJQlRFcXVh bFN0cmF0ZWd5TnVtYmVyLAorCQkJCQlGX09JREVRLCBPYmplY3RJZEdldERhdHVtKGxhYmVsb2lk KSk7CisJCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBQcm9wZ3JhcGhFbGVtZW50TGFi ZWxMYWJlbEluZGV4SWQsIHRydWUsCisJCQkJCQkJCSAgTlVMTCwgMSwga2V5KTsKKwkJd2hpbGUg KEhlYXBUdXBsZUlzVmFsaWQodHVwID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJCXsKKwkJ CUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwgbGFiZWxfZWxlbSA9IChGb3JtX3BnX3By b3BncmFwaF9lbGVtZW50X2xhYmVsKSBHRVRTVFJVQ1QodHVwKTsKKwkJCU9pZAkJCWVsZW1fb2lk ID0gbGFiZWxfZWxlbS0+cGdlbGVsaWQ7CisKKwkJCWlmICghbGlzdF9tZW1iZXJfb2lkKGVsZW1f b2lkc19zZWVuLCBlbGVtX29pZCkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBGb3VuZCBhIG5ldyBl bGVtZW50IHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGxhYmVscyBpbiB0aGUKKwkJCQkgKiBnaXZl biBlbGVtZW50IHBhdHRlcm4uIElmIGl0IGZpdHMgdGhlIGVsZW1lbnQgcGF0dGVybiBraW5kCisJ CQkJICogd2Ugd2lsbCBjcmVhdGUgR3JhcGhQYXRoUGF0dGVybiBvYmplY3QgZm9yIGl0IGFuZCBm bGFnIHRoYXQKKwkJCQkgKiB0aGUgY3VycmVudCBsYWJlbCBoYXMgYXQgbGVhc3Qgb25lIGVsZW1l bnQsIHRoYXQgc2F0aXNmaWVzCisJCQkJICogdGhlIGdpdmVuIGVsZW1lbnQgcGF0dGVybiwgYXNz b2NpYXRlZCB3aXRoIGl0LgorCQkJCSAqLworCQkJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQg KmdwZSA9IGNyZWF0ZV9ncGVfZm9yX2VsZW1lbnQoZ2VwLCBlbGVtX29pZCwgZWxlbXBvcyk7CisK KwkJCQlpZiAoZ3BlKQorCQkJCXsKKwkJCQkJZWxlbV9ncGVzID0gbGFwcGVuZChlbGVtX2dwZXMs IGdwZSk7CisJCQkJCWVsZW1fZ3BlX29pZHMgPSBsYXBwZW5kX29pZChlbGVtX2dwZV9vaWRzLCBl bGVtX29pZCk7CisJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQkvKgorCQkJCSAqIEFk ZCB0aGUgZ3JhcGggZWxlbWVudCB0byB0aGUgZWxlbWVudHMgY29uc2lkZXJlZCBzbyBmYXIgdG8K KwkJCQkgKiBhdm9pZCBwcm9jZXNzaW5nIHNhbWUgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggbXVs dGlwbGUKKwkJCQkgKiBsYWJlbHMgbXVsdGlwbGUgdGltZXMuIEFsc28gYXZvaWRzIGNyZWF0aW5n IGR1cGxpY2F0ZQorCQkJCSAqIEdyYXBoUGF0aEVsZW1lbnRzLgorCQkJCSAqLworCQkJCWVsZW1f b2lkc19zZWVuID0gbGFwcGVuZF9vaWQoZWxlbV9vaWRzX3NlZW4sIGxhYmVsX2VsZW0tPnBnZWxl bGlkKTsKKwkJCX0KKwkJCWVsc2UgaWYgKGxpc3RfbWVtYmVyX29pZChlbGVtX2dwZV9vaWRzLCBl bGVtX29pZCkpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgZ3JhcGggZWxlbWVudCBpcyBrbm93 biB0byBxdWFsaWZ5IHRoZSBnaXZlbiBlbGVtZW50CisJCQkJICogcGF0dGVybi4gRmxhZyB0aGF0 IHRoZSBjdXJyZW50IGxhYmVsIGhhcyBhdCBsZWFzdCBvbmUKKwkJCQkgKiBlbGVtZW50LCB0aGF0 IHNhdGlzZmllcyB0aGUgZ2l2ZW4gZWxlbWVudCBwYXR0ZXJuLAorCQkJCSAqIGFzc29jaWF0ZWQg d2l0aCBpdC4KKwkJCQkgKi8KKwkJCQlmb3VuZCA9IHRydWU7CisJCQl9CisJCX0KKworCQlpZiAo IWZvdW5kKQorCQl7CisJCQkvKgorCQkJICogV2UgZGlkIG5vdCBmaW5kIGFueSBlbGVtZW50LCB0 aGF0IGZpdHMgZ2l2ZW4gZWxlbWVudCBwYXR0ZXJuCisJCQkgKiBraW5kLCBhc3NvY2lhdGVkIHdp dGggdGhpcyBsYWJlbC4gVGhlIGxhYmVsIG9yIGl0cyBwcm9wZXJ0aWVzCisJCQkgKiBjYW4gbm90 IGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gZWxlbWVudCBwYXR0ZXJuLiBUaHJvdyBhbgor CQkJICogZXJyb3IgaWYgdGhlIGxhYmVsIHdhcyBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGUg ZWxlbWVudAorCQkJICogcGF0dGVybi4gT3RoZXJ3aXNlIGp1c3QgUmVtb3ZlIGl0IGZyb20gdGhl IGxpc3QuCisJCQkgKi8KKwkJCWlmICghZ2VwLT5sYWJlbGV4cHIpCisJCQkJZm9yZWFjaF9kZWxl dGVfY3VycmVudChsYWJlbF9vaWRzLCBsYyk7CisJCQllbHNlCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCQkgZXJybXNn KCJjYW4gbm90IGZpbmQgbGFiZWwgXCIlc1wiIGluIHByb3BlcnR5IGdyYXBoIFwiJXNcIiBmb3Ig ZWxlbWVudCB0eXBlIFwiJXNcIiIsCisJCQkJCQkJCWdldF9wcm9wZ3JhcGhfbGFiZWxfbmFtZShs YWJlbG9pZCksCisJCQkJCQkJCWdldF9yZWxfbmFtZShwcm9wZ3JhcGhpZCksCisJCQkJCQkJCWdl dF9ncmFwaF9lbGVtX2tpbmRfbmFtZShnZXAtPmtpbmQpKSkpOworCQl9CisKKwkJc3lzdGFibGVf ZW5kc2NhbihzY2FuKTsKKwl9CisJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwor CisJLyogVXBkYXRlIHRoZSBmaWx0ZXJlZCBsYWJlbCBsaXN0IGluIGVhY2ggZ3JhcGhfcGF0aF9l bGVtZW50LiAqLworCWZvcmVhY2gobGMsIGVsZW1fZ3BlcykKKwl7CisJCXN0cnVjdCBncmFwaF9w YXRoX2VsZW1lbnQgKmdwZSA9IGxmaXJzdChsYyk7CisKKwkJZ3BlLT5sYWJlbG9pZHMgPSBsYWJl bF9vaWRzOworCX0KKworCXJldHVybiBlbGVtX2dwZXM7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFy ICoKK2dldF9ncmFwaF9lbGVtX2tpbmRfbmFtZShHcmFwaEVsZW1lbnRQYXR0ZXJuS2luZCBnZXBr aW5kKQoreworCWlmIChnZXBraW5kID09IFZFUlRFWF9QQVRURVJOKQorCQlyZXR1cm4gInZlcnRl eCI7CisJZWxzZSBpZiAoSVNfRURHRV9QQVRURVJOKGdlcGtpbmQpKQorCQlyZXR1cm4gImVkZ2Ui OworCWVsc2UgaWYgKGdlcGtpbmQgPT0gUEFSRU5fRVhQUikKKwkJcmV0dXJuICJuZXN0ZWQgcGF0 aCBwYXR0ZXJuIjsKKworCXJldHVybiAidW5rbm93biI7Cit9CisKKy8qCisgKiBNdXRhdGluZyBw cm9wZXJ0eSByZWZlcmVuY2VzIGludG8gdGFibGUgdmFyaWFibGVzCisgKi8KKworc3RydWN0IHJl cGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0Cit7CisJT2lkCQkJcHJvcGdyYXBoaWQ7CisJY29u c3QgTGlzdCAqbWFwcGluZ3M7Cit9OworCitzdGF0aWMgTm9kZSAqCityZXBsYWNlX3Byb3BlcnR5 X3JlZnNfbXV0YXRvcihOb2RlICpub2RlLCBzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2Nv bnRleHQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisJ aWYgKElzQShub2RlLCBWYXIpKQorCXsKKwkJVmFyCQkgICAqdmFyID0gKFZhciAqKSBub2RlOwor CQlWYXIJCSAgICpuZXd2YXIgPSBjb3B5T2JqZWN0KHZhcik7CisKKwkJLyoKKwkJICogSWYgaXQn cyBhbHJlYWR5IGEgVmFyLCB0aGVuIGl0IHdhcyBhIGxhdGVyYWwgcmVmZXJlbmNlLiAgU2luY2Ug d2UKKwkJICogYXJlIGluIGEgc3VicXVlcnkgYWZ0ZXIgdGhlIHJld3JpdGUsIHdlIGhhdmUgdG8g aW5jcmVhc2UgdGhlIGxldmVsCisJCSAqIGJ5IG9uZS4KKwkJICovCisJCW5ld3Zhci0+dmFybGV2 ZWxzdXArKzsKKworCQlyZXR1cm4gKE5vZGUgKikgbmV3dmFyOworCX0KKwllbHNlIGlmIChJc0Eo bm9kZSwgR3JhcGhQcm9wZXJ0eVJlZikpCisJeworCQlHcmFwaFByb3BlcnR5UmVmICpncHIgPSAo R3JhcGhQcm9wZXJ0eVJlZiAqKSBub2RlOworCQlOb2RlCSAgICpuID0gTlVMTDsKKwkJTGlzdENl bGwgICAqbGM7CisJCXN0cnVjdCBncmFwaF9wYXRoX2VsZW1lbnQgKmZvdW5kX21hcHBpbmcgPSBO VUxMOworCQlMaXN0CSAgICp1bnJlbGF0ZWRfbGFiZWxzID0gTklMOworCisJCWZvcmVhY2gobGMs IGNvbnRleHQtPm1hcHBpbmdzKQorCQl7CisJCQlzdHJ1Y3QgZ3JhcGhfcGF0aF9lbGVtZW50ICpt ID0gbGZpcnN0KGxjKTsKKworCQkJaWYgKG0tPnBhcmVudF9nZXAtPnZhcmlhYmxlICYmIHN0cmNt cChncHItPmVsdmFybmFtZSwgbS0+cGFyZW50X2dlcC0+dmFyaWFibGUpID09IDApCisJCQl7CisJ CQkJZm91bmRfbWFwcGluZyA9IG07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKCFmb3Vu ZF9tYXBwaW5nKQorCQkJZWxvZyhFUlJPUiwgInVuZGVmaW5lZCBlbGVtZW50IHZhcmlhYmxlIFwi JXNcIiIsIGdwci0+ZWx2YXJuYW1lKTsKKworCQkvKgorCQkgKiBGaW5kIHByb3BlcnR5IGRlZmlu aXRpb24gZm9yIGdpdmVuIGVsZW1lbnQgdGhyb3VnaCBhbnkgb2YgdGhlCisJCSAqIGFzc29jaWF0 ZWQgbGFiZWxzLgorCQkgKi8KKwkJZm9yZWFjaChsYywgZm91bmRfbWFwcGluZy0+bGFiZWxvaWRz KQorCQl7CisJCQlPaWQJCQlsYWJlbG9pZCA9IGxmaXJzdF9vaWQobGMpOworCQkJT2lkCQkJZWxl bV9sYWJlbGlkID0gR2V0U3lzQ2FjaGVPaWQyKFBST1BHUkFQSEVMRU1FTlRMQUJFTEVMRU1FTlRM QUJFTCwKKwkJCQkJCQkJCQkJCQkgICBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX29p ZCwKKwkJCQkJCQkJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKGZvdW5kX21hcHBpbmctPmVsZW1v aWQpLAorCQkJCQkJCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0obGFiZWxvaWQpKTsKKworCQkJ aWYgKE9pZElzVmFsaWQoZWxlbV9sYWJlbGlkKSkKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwID0g U2VhcmNoU3lzQ2FjaGUyKFBST1BHUkFQSExBQkVMUFJPUCwgT2JqZWN0SWRHZXREYXR1bShlbGVt X2xhYmVsaWQpLAorCQkJCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKGdwci0+cHJvcGlkKSk7 CisKKwkJCQlpZiAoIXR1cCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFRoZSBsYWJlbCBpcyBh c3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGVsZW1lbnQgYnV0IGl0CisJCQkJCSAqIGlzIG5vdCBh c3NvY2lhdGVkIHdpdGggdGhlIHJlcXVpcmVkIHByb3BlcnR5LiBDaGVjaworCQkJCQkgKiBuZXh0 IGxhYmVsLgorCQkJCQkgKi8KKwkJCQkJY29udGludWU7CisJCQkJfQorCisJCQkJbiA9IHN0cmlu Z1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoUFJPUEdS QVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkJCQkJCQkJCXR1cCwgQW51bV9wZ19wcm9wZ3JhcGhf bGFiZWxfcHJvcGVydHlfcGxwZXhwcikpKTsKKwkJCQlDaGFuZ2VWYXJOb2RlcyhuLCAxLCBmb3Vu ZF9tYXBwaW5nLT5ydGluZGV4LCAwKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJ fQorCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICogTGFiZWwgaXMgbm90IGFzc29jaWF0ZWQg d2l0aCB0aGUgZWxlbWVudCBidXQgaXQgbWF5IGJlCisJCQkJICogYXNzb2NpYXRlZCB3aXRoIHRo ZSBwcm9wZXJ0eSB0aHJvdWdoIHNvbWUgb3RoZXIgZWxlbWVudC4KKwkJCQkgKiBTYXZlIGl0IGZv ciBsYXRlciB1c2UuCisJCQkJICovCisJCQkJdW5yZWxhdGVkX2xhYmVscyA9IGxhcHBlbmRfb2lk KHVucmVsYXRlZF9sYWJlbHMsIGxhYmVsb2lkKTsKKwkJCX0KKwkJfQorCisJCS8qIFNlZSBpZiB3 ZSBjYW4gcmVzb2x2ZSB0aGUgcHJvcGVydHkgaW4gc29tZSBvdGhlciB3YXkuICovCisJCWlmICgh bikKKwkJeworCQkJTGlzdENlbGwgICAqbGN1OworCQkJYm9vbAkJcHJvcF9hc3NvY2lhdGVkID0g ZmFsc2U7CisKKwkJCWZvcmVhY2gobGN1LCB1bnJlbGF0ZWRfbGFiZWxzKQorCQkJeworCQkJCWlm IChpc19wcm9wZXJ0eV9hc3NvY2lhdGVkX3dpdGhfbGFiZWwobGZpcnN0X29pZChsY3UpLCBncHIt PnByb3BpZCkpCisJCQkJeworCQkJCQlwcm9wX2Fzc29jaWF0ZWQgPSB0cnVlOworCQkJCQlicmVh azsKKwkJCQl9CisJCQl9CisKKwkJCWlmIChwcm9wX2Fzc29jaWF0ZWQpCisJCQl7CisJCQkJLyoK KwkJCQkgKiBUaGUgcHJvcGVydHkgaXMgYXNzb2NpYXRlZCB3aXRoIGF0IGxlYXN0IG9uZSBvZiB0 aGUgbGFiZWxzCisJCQkJICogdGhhdCBzYXRpc2Z5IGdpdmVuIGVsZW1lbnQgcGF0dGVybi4gSWYg aXQncyBhc3NvY2lhdGVkIHdpdGgKKwkJCQkgKiB0aGUgZ2l2ZW4gZWxlbWVudCB0aHJvdWdoIHNv bWUgYW55IG9mIHRoZSBsYWJlbHMsIHVzZQorCQkJCSAqIGNvcnJlc3BvbmRpZyB2YWx1ZSBleHBy ZXNzaW9uLiBPdGhlcndpc2UgTlVMTC4gUmVmLiBTUUwvUEdRCisJCQkJICogc3RhbmRhcmQgc2Vj dGlvbiA2LjUgUHJvcGVydHkgUmVmZXJlY2UsIEdlbmVyYWwgUnVsZSAyLmIuCisJCQkJICoKKwkJ CQkgKiBOT1RFOiBBbiBlbGVtZW50IHBhdGggcGF0dGVybiBtYXkgcmVzb2x2ZSB0byBtdWx0aXBs ZQorCQkJCSAqIGVsZW1lbnRzLiAgVGhlIGFib3ZlIHNlY3Rpb24gZG9lcyBub3Qgc2VlbSB0byBk ZXNjcmliZSB0aGlzCisJCQkJICogY2FzZS4gQnV0IGl0IGRlcGVuZHMgdXBvbiBob3cgdGhlIHRl cm0gRVIgaXMgaW50ZXJwcmV0ZWQuCisJCQkJICogRm9yIGEgZ2l2ZW4gcGF0aCB0aGVyZSdzIG9u bHkgb25lIGVsZW1lbnQgYm91bmQgdG8gYSBnaXZlbgorCQkJCSAqIEVSLiBIZW5jZSB0aGUgYWJv dmUgc3RhdGVkIHJ1bGUgY2FuIGJlIGFwcGxpZWQgaGVyZS4gIFRoZQorCQkJCSAqIHNlY3Rpb24g YWxzbyBzdGF0ZXMgdGhlIGNhc2Ugd2hlbiBubyBlbGVtZW50IGJpbmRzIHRvIEVSLgorCQkJCSAq IFdlIGNvbnNpZGVyIHN1Y2ggcGF0aHMgYXMgYnJva2VuIGFuZCBkbyBub3QgY29udHJpYnV0ZSBh bnkKKwkJCQkgKiByb3dzIHRvIHRoZSBHUkFQSF9UQUJMRS4KKwkJCQkgKi8KKwkJCQluID0gZ2V0 X2VsZW1lbnRfcHJvcGVydHlfZXhwcihmb3VuZF9tYXBwaW5nLT5lbGVtb2lkLCBncHItPnByb3Bp ZCwKKwkJCQkJCQkJCQkJICBmb3VuZF9tYXBwaW5nLT5ydGluZGV4KTsKKworCQkJCWlmICghbikK KwkJCQl7CisJCQkJCS8qIFhYWDogRG9lcyBjb2xsYXRpb24gb2YgTlVMTCB2YWx1ZSBtYXR0ZXI/ ICovCisJCQkJCW4gPSAoTm9kZSAqKSBtYWtlTnVsbENvbnN0KGdwci0+dHlwZUlkLCAtMSwgSW52 YWxpZE9pZCk7CisJCQkJfQorCQkJfQorCisJCX0KKworCQlpZiAoIW4pCisJCQllbG9nKEVSUk9S LCAicHJvcGVydHkgXCIlc1wiIG9mIGVsZW1lbnQgdmFyaWFibGUgXCIlc1wiIG5vdCBmb3VuZCIs CisJCQkJIGdldF9wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZShncHItPnByb3BpZCksIGZvdW5kX21h cHBpbmctPnBhcmVudF9nZXAtPnZhcmlhYmxlKTsKKworCQlyZXR1cm4gbjsKKwl9CisKKwlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211 dGF0b3IsIGNvbnRleHQpOworfQorCitzdGF0aWMgTm9kZSAqCityZXBsYWNlX3Byb3BlcnR5X3Jl ZnMoT2lkIHByb3BncmFwaGlkLCBOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5ncykKK3sK KwlzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgY29udGV4dDsKKworCWNvbnRl eHQubWFwcGluZ3MgPSBtYXBwaW5nczsKKwljb250ZXh0LnByb3BncmFwaGlkID0gcHJvcGdyYXBo aWQ7CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX211dGF0b3Iobm9kZSwgcmVwbGFjZV9wcm9w ZXJ0eV9yZWZzX211dGF0b3IsICZjb250ZXh0KTsKK30KKworLyoKKyAqIEJ1aWxkIGpvaW4gcXVh bGlmaWNhdGlvbiBleHByZXNzaW9ucyBiZXR3ZWVuIGVkZ2UgYW5kIHZlcnRleCB0YWJsZXMuCisg Ki8KK3N0YXRpYyBMaXN0ICoKK2J1aWxkX2VkZ2VfdmVydGV4X2xpbmtfcXVhbHMoSGVhcFR1cGxl IGVkZ2V0dXAsIGludCBlZGdlcnRpLCBpbnQgcmVmcnRpLCBBdHRyTnVtYmVyIGNhdGFsb2dfa2V5 X2F0dG51bSwgQXR0ck51bWJlciBjYXRhbG9nX3JlZl9hdHRudW0pCit7CisJTGlzdAkgICAqcXVh bHMgPSBOSUw7CisJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtOworCURhdHVtCQlk YXR1bTsKKwlEYXR1bQkgICAqZDEsCisJCQkgICAqZDI7CisJaW50CQkJbjEsCisJCQkJbjI7CisK KwlwZ2Vmb3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVChlZGdldHVw KTsKKworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChQUk9QR1JBUEhFTE9JRCwgZWRn ZXR1cCwgY2F0YWxvZ19rZXlfYXR0bnVtKTsKKwlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKERh dHVtR2V0QXJyYXlUeXBlUChkYXR1bSksIElOVDJPSUQsICZkMSwgTlVMTCwgJm4xKTsKKworCWRh dHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChQUk9QR1JBUEhFTE9JRCwgZWRnZXR1cCwgY2F0 YWxvZ19yZWZfYXR0bnVtKTsKKwlkZWNvbnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtR2V0QXJy YXlUeXBlUChkYXR1bSksIElOVDJPSUQsICZkMiwgTlVMTCwgJm4yKTsKKworCWlmIChuMSAhPSBu MikKKwkJZWxvZyhFUlJPUiwgImFycmF5IHNpemUga2V5ICglZCkgdnMgcmVmICglZCkgbWlzbWF0 Y2ggZm9yIGVsZW1lbnQgSUQgJXUiLCBjYXRhbG9nX2tleV9hdHRudW0sIGNhdGFsb2dfcmVmX2F0 dG51bSwgcGdlZm9ybS0+b2lkKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgbjE7IGkrKykKKwl7 CisJCUF0dHJOdW1iZXIJa2V5YXR0biA9IERhdHVtR2V0SW50MTYoZDFbaV0pOworCQlBdHRyTnVt YmVyCXJlZmF0dG4gPSBEYXR1bUdldEludDE2KGQyW2ldKTsKKwkJT2lkCQkJYXR0dHlwaWQ7CisJ CVR5cGVDYWNoZUVudHJ5ICp0eXBlbnRyeTsKKwkJT3BFeHByCSAgICpvcDsKKworCQkvKgorCQkg KiBUT0RPOiBBc3N1bWVzIHR5cGVzIHRoZSBzYW1lIG9uIGJvdGggc2lkZXM7IG5vIGNvbGxhdGlv bnMgeWV0LiBTb21lCisJCSAqIG9mIHRoaXMgY291bGQgcHJvYmFibHkgYmUgc2hhcmVkIHdpdGgg Zm9yZWlnbiBrZXkgdHJpZ2dlcnMuCisJCSAqLworCQlhdHR0eXBpZCA9IGdldF9hdHR0eXBlKHBn ZWZvcm0tPnBnZXJlbGlkLCBrZXlhdHRuKTsKKwkJdHlwZW50cnkgPSBsb29rdXBfdHlwZV9jYWNo ZShhdHR0eXBpZCwgVFlQRUNBQ0hFX0VRX09QUik7CisKKwkJb3AgPSBtYWtlTm9kZShPcEV4cHIp OworCQlvcC0+bG9jYXRpb24gPSAtMTsKKwkJb3AtPm9wbm8gPSB0eXBlbnRyeS0+ZXFfb3ByOwor CQlvcC0+b3ByZXN1bHR0eXBlID0gQk9PTE9JRDsKKwkJb3AtPmFyZ3MgPSBsaXN0X21ha2UyKG1h a2VWYXIoZWRnZXJ0aSwga2V5YXR0biwgYXR0dHlwaWQsIC0xLCAwLCAwKSwKKwkJCQkJCQkgIG1h a2VWYXIocmVmcnRpLCByZWZhdHRuLCBhdHR0eXBpZCwgLTEsIDAsIDApKTsKKwkJcXVhbHMgPSBs YXBwZW5kKHF1YWxzLCBvcCk7CisJfQorCisJcmV0dXJuIHF1YWxzOworfQorCisvKgorICogQ2hl Y2sgaWYgdGhlIGdpdmVuIHByb3BlcnR5IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbGFi ZWwuCisgKgorICogQSBsYWJlbCBwcm9qZWN0cyB0aGUgc2FtZSBzZXQgb2YgcHJvcGVydGllcyB0 aHJvdWdoIGV2ZXJ5IGVsZW1lbnQgaXQgaXMKKyAqIGFzc29jaWF0ZWQgd2l0aC4gRmluZCBhbnkg b2YgdGhlIGVsZW1lbnRzIGFuZCByZXR1cm4gdHJ1ZSBpZiB0aGF0IGVsZW1lbnQgaXMKKyAqIGFz c29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydHkuIEZhbHNlIG90aGVyd2lzZS4KKyAqLwor c3RhdGljIGJvb2wKK2lzX3Byb3BlcnR5X2Fzc29jaWF0ZWRfd2l0aF9sYWJlbChPaWQgbGFiZWxv aWQsIE9pZCBwcm9wb2lkKQoreworCVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBzY2FuOwor CVNjYW5LZXlEYXRhIGtleVsxXTsKKwlIZWFwVHVwbGUJdHVwOworCWJvb2wJCWFzc29jaWF0ZWQg PSBmYWxzZTsKKworCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoRWxlbWVudExhYmVsUmVsYXRp b25JZCwgUm93U2hhcmVMb2NrKTsKKwlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdf cHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfcGdlbGxhYmVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLAorCQkJCUZfT0lERVEsIE9iamVjdElkR2V0RGF0dW0obGFiZWxvaWQpKTsKKwlzY2Fu ID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdyYXBoRWxlbWVudExhYmVsTGFiZWxJbmRl eElkLAorCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMSwga2V5KTsKKworCWlmIChIZWFwVHVwbGVJc1Zh bGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9sYWJlbCBlbGVfbGFiZWwgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9s YWJlbCkgR0VUU1RSVUNUKHR1cCk7CisKKwkJYXNzb2NpYXRlZCA9IFNlYXJjaFN5c0NhY2hlRXhp c3RzMihQUk9QR1JBUEhMQUJFTFBST1AsCisJCQkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShl bGVfbGFiZWwtPm9pZCksIE9iamVjdElkR2V0RGF0dW0ocHJvcG9pZCkpOworCX0KKwlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgUm93U2hhcmVMb2NrKTsKKworCXJl dHVybiBhc3NvY2lhdGVkOworfQorCisvKgorICogSWYgZ2l2ZW4gZWxlbWVudCBoYXMgdGhlIGdp dmVuIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCBpdCwgdGhyb3VnaCBhbnkgb2YKKyAqIHRoZSBh c3NvY2lhdGVkIGxhYmVscywgcmV0dXJuIHZhbHVlIGV4cHJlc3Npb24gb2YgdGhlIHByb3BlcnR5 LiBPdGhlcndpc2UKKyAqIE5VTEwuCisgKi8KK3N0YXRpYyBOb2RlICoKK2dldF9lbGVtZW50X3By b3BlcnR5X2V4cHIoT2lkIGVsZW1vaWQsIE9pZCBwcm9wb2lkLCBpbnQgcnRpbmRleCkKK3sKKwlS ZWxhdGlvbglyZWw7CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXlbMV07CisJ SGVhcFR1cGxlCWxhYmVsdHVwOworCU5vZGUJICAgKm4gPSBOVUxMOworCisJcmVsID0gdGFibGVf b3BlbihQcm9wZ3JhcGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBSb3dTaGFyZUxvY2spOworCVNj YW5LZXlJbml0KCZrZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9w Z2VsZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsCisJCQkJRl9PSURFUSwgT2JqZWN0 SWRHZXREYXR1bShlbGVtb2lkKSk7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIFBy b3BncmFwaEVsZW1lbnRMYWJlbEVsZW1lbnRMYWJlbEluZGV4SWQsCisJCQkJCQkJICB0cnVlLCBO VUxMLCAxLCBrZXkpOworCisJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQobGFiZWx0dXAgPSBzeXN0 YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFi ZWwgZWxlX2xhYmVsID0gKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVD VChsYWJlbHR1cCk7CisKKwkJSGVhcFR1cGxlCXByb3B0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFJP UEdSQVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0oZWxlX2xhYmVs LT5vaWQpLCBPYmplY3RJZEdldERhdHVtKHByb3BvaWQpKTsKKworCQlpZiAoIXByb3B0dXApCisJ CQljb250aW51ZTsKKwkJbiA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKFN5c0Nh Y2hlR2V0QXR0ck5vdE51bGwoUFJPUEdSQVBITEFCRUxQUk9QLAorCQkJCQkJCQkJCQkJCQkJCQlw cm9wdHVwLCBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9wbHBleHByKSkpOworCQlD aGFuZ2VWYXJOb2RlcyhuLCAxLCBydGluZGV4LCAwKTsKKworCQlSZWxlYXNlU3lzQ2FjaGUocHJv cHR1cCk7CisJCWJyZWFrOworCX0KKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Ns b3NlKHJlbCwgUm93U2hhcmVMb2NrKTsKKworCXJldHVybiBuOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9y ZXdyaXRlSGFuZGxlci5jCmluZGV4IGU5OTZiZGMwZDIxLi42ODJlNzBiMWQ4MCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5k L3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgInBh cnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKICNp bmNsdWRlICJyZXdyaXRlL3Jld3JpdGVEZWZpbmUuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3Jp dGVHcmFwaFRhYmxlLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2lu Y2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRl U2VhcmNoQ3ljbGUuaCIKQEAgLTIwMjgsNiArMjAyOSwxNiBAQCBmaXJlUklScnVsZXMoUXVlcnkg KnBhcnNldHJlZSwgTGlzdCAqYWN0aXZlUklScykKIAogCQlydGUgPSBydF9mZXRjaChydF9pbmRl eCwgcGFyc2V0cmVlLT5ydGFibGUpOwogCisJCS8qCisJCSAqIENvbnZlcnQgR1JBUEhfVEFCTEUg Y2xhdXNlIGludG8gYSBzdWJxdWVyeSB1c2luZyByZWxhdGlvbmFsCisJCSAqIG9wZXJhdG9ycy4g IChUaGlzIHdpbGwgY2hhbmdlIHRoZSBydGVraW5kIHRvIHN1YnF1ZXJ5LCBzbyBpdCBtdXN0CisJ CSAqIGJlIGRvbmUgYmVmb3JlIHRoZSBzdWJxdWVyeSBoYW5kbGluZyBiZWxvdy4pCisJCSAqLwor CQlpZiAocnRlLT5ydGVraW5kID09IFJURV9HUkFQSF9UQUJMRSkKKwkJeworCQkJcGFyc2V0cmVl ID0gcmV3cml0ZUdyYXBoVGFibGUocGFyc2V0cmVlLCBydF9pbmRleCk7CisJCX0KKwogCQkvKgog CQkgKiBBIHN1YnF1ZXJ5IFJURSBjYW4ndCBoYXZlIGFzc29jaWF0ZWQgcnVsZXMsIHNvIHRoZXJl J3Mgbm90aGluZyB0bwogCQkgKiBkbyB0byB0aGlzIGxldmVsIG9mIHRoZSBxdWVyeSwgYnV0IHdl IG11c3QgcmVjdXJzZSBpbnRvIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAyNWZlM2Q1ODAxNi4uNTI0 NDM2MDQ1ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiY29t bWFuZHMvcG9ydGFsY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9wcm9jbGFuZy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Byb3BncmFwaGNt ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJj b21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKQEAg LTE0OCw2ICsxNDksNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpw YXJzZXRyZWUpCiAJCWNhc2UgVF9BbHRlck9wZXJhdG9yU3RtdDoKIAkJY2FzZSBUX0FsdGVyT3du ZXJTdG10OgogCQljYXNlIFRfQWx0ZXJQb2xpY3lTdG10OgorCQljYXNlIFRfQWx0ZXJQcm9wR3Jh cGhTdG10OgogCQljYXNlIFRfQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCWNhc2UgVF9BbHRlclJv bGVTZXRTdG10OgogCQljYXNlIFRfQWx0ZXJSb2xlU3RtdDoKQEAgLTE3OCw2ICsxODAsNyBAQCBD bGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2Ug VF9DcmVhdGVPcEZhbWlseVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVQTGFuZ1N0bXQ6CiAJCWNhc2Ug VF9DcmVhdGVQb2xpY3lTdG10OgorCQljYXNlIFRfQ3JlYXRlUHJvcEdyYXBoU3RtdDoKIAkJY2Fz ZSBUX0NyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJ Y2FzZSBUX0NyZWF0ZVJvbGVTdG10OgpAQCAtMTczOSw2ICsxNzQyLDE0IEBAIFByb2Nlc3NVdGls aXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJY29tbWFuZENvbGxlY3RlZCA9IHRydWU7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVQcm9wR3JhcGhTdG10OgorCQkJCWFkZHJl c3MgPSBDcmVhdGVQcm9wR3JhcGgocHN0YXRlLCAoQ3JlYXRlUHJvcEdyYXBoU3RtdCAqKSBwYXJz ZXRyZWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIFRfQWx0ZXJQcm9wR3JhcGhTdG10OgorCQkJ CWFkZHJlc3MgPSBBbHRlclByb3BHcmFwaChwc3RhdGUsIChBbHRlclByb3BHcmFwaFN0bXQgKikg cGFyc2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBUX0NyZWF0ZVRyYW5zZm9ybVN0bXQ6 CiAJCQkJYWRkcmVzcyA9IENyZWF0ZVRyYW5zZm9ybSgoQ3JlYXRlVHJhbnNmb3JtU3RtdCAqKSBw YXJzZXRyZWUpOwogCQkJCWJyZWFrOwpAQCAtMjAwNyw2ICsyMDE4LDcgQEAgRXhlY0Ryb3BTdG10 KERyb3BTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJ CWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6CisJCWNh c2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCVJlbW92ZVJlbGF0aW9ucyhzdG10KTsKIAkJCWJyZWFr OwogCQlkZWZhdWx0OgpAQCAtMjI4Myw2ICsyMjk1LDkgQEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFu ZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1BST0NFRFVSRToKIAkJCXRh ZyA9IENNRFRBR19BTFRFUl9QUk9DRURVUkU7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUFJP UEdSQVBIOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1BST1BFUlRZX0dSQVBIOworCQkJYnJlYWs7 CiAJCWNhc2UgT0JKRUNUX1JPTEU6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfUk9MRTsKIAkJCWJy ZWFrOwpAQCAtMjU1OSw2ICsyNTc0LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRy ZWUpCiAJCQkJY2FzZSBPQkpFQ1RfSU5ERVg6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX0lOREVY OwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CisJCQkJCXRhZyA9IENN RFRBR19EUk9QX1BST1BFUlRZX0dSQVBIOworCQkJCQlicmVhazsKIAkJCQljYXNlIE9CSkVDVF9U WVBFOgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9UWVBFOwogCQkJCQlicmVhazsKQEAgLTI5NDAs NiArMjk1OCwxNCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVQcm9wR3JhcGhTdG10OgorCQkJdGFnID0gQ01EVEFH X0NSRUFURV9QUk9QRVJUWV9HUkFQSDsKKwkJCWJyZWFrOworCisJCWNhc2UgVF9BbHRlclByb3BH cmFwaFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfUFJPUEVSVFlfR1JBUEg7CisJCQlicmVh azsKKwogCQljYXNlIFRfQ3JlYXRlVHJhbnNmb3JtU3RtdDoKIAkJCXRhZyA9IENNRFRBR19DUkVB VEVfVFJBTlNGT1JNOwogCQkJYnJlYWs7CkBAIC0zNjM3LDYgKzM2NjMsMTQgQEAgR2V0Q29tbWFu ZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWxldiA9IExPR1NUTVRfRERMOwogCQkJYnJl YWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVByb3BHcmFwaFN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RE TDsKKwkJCWJyZWFrOworCisJCWNhc2UgVF9BbHRlclByb3BHcmFwaFN0bXQ6CisJCQlsZXYgPSBM T0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9DcmVhdGVUcmFuc2Zvcm1TdG10Ogog CQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YwppbmRleCA1NGRhZDk3NTU1My4uMmUyMzcwMjNkOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKQEAgLTM0LDYgKzM0LDExIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcGFydGl0aW9uZWRfdGFibGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3Byb2MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgpAQCAtMzYxLDYgKzM2Niw5IEBAIHN0YXRpYyBjaGFyICpwZ19nZXRfaW5kZXhkZWZfd29y a2VyKE9pZCBpbmRleHJlbGlkLCBpbnQgY29sbm8sCiAJCQkJCQkJCQlib29sIGF0dHJzT25seSwg Ym9vbCBrZXlzT25seSwKIAkJCQkJCQkJCWJvb2wgc2hvd1RibFNwYywgYm9vbCBpbmhlcml0cywK IAkJCQkJCQkJCWludCBwcmV0dHlGbGFncywgYm9vbCBtaXNzaW5nX29rKTsKK3N0YXRpYyB2b2lk IG1ha2VfcHJvcGdyYXBoZGVmX2VsZW1lbnRzKFN0cmluZ0luZm8gYnVmLCBPaWQgcGdyZWxpZCwg Y2hhciBwZ2VraW5kKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX2xhYmVscyhTdHJp bmdJbmZvIGJ1ZiwgT2lkIGVsaWQsIGNvbnN0IGNoYXIgKmVsYWxpYXMsIE9pZCBlbHJlbGlkKTsK K3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX3Byb3BlcnRpZXMoU3RyaW5nSW5mbyBidWYs IE9pZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKTsKIHN0YXRpYyBjaGFyICpwZ19nZXRfc3RhdGlz dGljc29ial93b3JrZXIoT2lkIHN0YXRleHRpZCwgYm9vbCBjb2x1bW5zX29ubHksCiAJCQkJCQkJ CQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgY2hhciAqcGdfZ2V0X3BhcnRrZXlkZWZfd29y a2VyKE9pZCByZWxpZCwgaW50IHByZXR0eUZsYWdzLApAQCAtMTU5Nyw2ICsxNjA1LDMzMSBAQCBw Z19nZXRfcXVlcnlkZWYoUXVlcnkgKnF1ZXJ5LCBib29sIHByZXR0eSkKIAlyZXR1cm4gYnVmLmRh dGE7CiB9CiAKKy8qCisgKiBwZ19nZXRfcHJvcGdyYXBoZGVmIC0gZ2V0IHRoZSBkZWZpbml0aW9u IG9mIGEgcHJvcGVydHkgZ3JhcGgKKyAqLworRGF0dW0KK3BnX2dldF9wcm9wZ3JhcGhkZWYoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlwZ3JlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlT dHJpbmdJbmZvRGF0YSBidWY7CisJSGVhcFR1cGxlCWNsYXNzdHVwOworCUZvcm1fcGdfY2xhc3Mg Y2xhc3Nmb3JtOworCWNoYXIJICAgKm5hbWU7CisJY2hhcgkgICAqbnNwOworCisJaW5pdFN0cmlu Z0luZm8oJmJ1Zik7CisKKwljbGFzc3R1cCA9IFNlYXJjaFN5c0NhY2hlMShSRUxPSUQsIE9iamVj dElkR2V0RGF0dW0ocGdyZWxpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChjbGFzc3R1cCkp CisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwljbGFzc2Zvcm0gPSAoRm9ybV9wZ19jbGFzcykgR0VU U1RSVUNUKGNsYXNzdHVwKTsKKwluYW1lID0gTmFtZVN0cihjbGFzc2Zvcm0tPnJlbG5hbWUpOwor CisJaWYgKGNsYXNzZm9ybS0+cmVsa2luZCAhPSBSRUxLSU5EX1BST1BHUkFQSCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkg ZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJvcGVydHkgZ3JhcGgiLCBuYW1lKSkpOworCisJbnNw ID0gZ2V0X25hbWVzcGFjZV9uYW1lKGNsYXNzZm9ybS0+cmVsbmFtZXNwYWNlKTsKKworCWFwcGVu ZFN0cmluZ0luZm8oJmJ1ZiwgIkNSRUFURSBQUk9QRVJUWSBHUkFQSCAlcyIsCisJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3AsIG5hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZShj bGFzc3R1cCk7CisKKwltYWtlX3Byb3BncmFwaGRlZl9lbGVtZW50cygmYnVmLCBwZ3JlbGlkLCBQ R0VLSU5EX1ZFUlRFWCk7CisJbWFrZV9wcm9wZ3JhcGhkZWZfZWxlbWVudHMoJmJ1ZiwgcGdyZWxp ZCwgUEdFS0lORF9FREdFKTsKKworCVBHX1JFVFVSTl9URVhUX1Aoc3RyaW5nX3RvX3RleHQoYnVm LmRhdGEpKTsKK30KKworLyoKKyAqIEdlbmVyYXRlcyBhIFZFUlRFWCBUQUJMRVMgKC4uLikgb3Ig RURHRSBUQUJMRVMgKC4uLikgY2xhdXNlLiAgUGFzcyBpbiB0aGUKKyAqIHByb3BlcnR5IGdyYXBo IHJlbGF0aW9uIE9JRCBhbmQgdGhlIGVsZW1lbnQga2luZCAodmVydGV4IG9yIGVkZ2UpLiAgUmVz dWx0CisgKiBpcyBhcHBlbmRlZCB0byBidWYuCisgKi8KK3N0YXRpYyB2b2lkCittYWtlX3Byb3Bn cmFwaGRlZl9lbGVtZW50cyhTdHJpbmdJbmZvIGJ1ZiwgT2lkIHBncmVsaWQsIGNoYXIgcGdla2lu ZCkKK3sKKwlSZWxhdGlvbglwZ2VyZWw7CisJU2NhbktleURhdGEgc2NhbmtleVsxXTsKKwlTeXNT Y2FuRGVzYyBzY2FuOworCWJvb2wJCWZpcnN0OworCUhlYXBUdXBsZQl0dXA7CisKKwlwZ2VyZWwg PSB0YWJsZV9vcGVuKFByb3BncmFwaEVsZW1lbnRSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2sp OworCisJU2NhbktleUluaXQoJnNjYW5rZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxl bWVudF9wZ2VwZ2lkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlP YmplY3RJZEdldERhdHVtKHBncmVsaWQpKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4o cGdlcmVsLCBQcm9wZ3JhcGhFbGVtZW50QWxpYXNJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBzY2Fu a2V5KTsKKworCWZpcnN0ID0gdHJ1ZTsKKwl3aGlsZSAoKHR1cCA9IHN5c3RhYmxlX2dldG5leHQo c2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtID0gKEZvcm1f cGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNUUlVDVCh0dXApOworCQljaGFyCSAgICpyZWxuYW1l OworCQlEYXR1bQkJZGF0dW07CisJCWJvb2wJCWlzbnVsbDsKKworCQlpZiAocGdlZm9ybS0+cGdl a2luZCAhPSBwZ2VraW5kKQorCQkJY29udGludWU7CisKKwkJaWYgKGZpcnN0KQorCQl7CisJCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIlxuICAgICVzIFRBQkxFUyAoXG4iLCBwZ2VraW5kID09IFBH RUtJTkRfVkVSVEVYID8gIlZFUlRFWCIgOiAiRURHRSIpOworCQkJZmlyc3QgPSBmYWxzZTsKKwkJ fQorCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIixcbiIpOworCisJCXJlbG5hbWUg PSBnZXRfcmVsX25hbWUocGdlZm9ybS0+cGdlcmVsaWQpOworCQlpZiAocmVsbmFtZSAmJiBzdHJj bXAocmVsbmFtZSwgTmFtZVN0cihwZ2Vmb3JtLT5wZ2VhbGlhcykpID09IDApCisJCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIiAgICAgICAgJXMiLAorCQkJCQkJCSBnZW5lcmF0ZV9yZWxhdGlvbl9u YW1lKHBnZWZvcm0tPnBnZXJlbGlkLCBOSUwpKTsKKwkJZWxzZQorCQkJYXBwZW5kU3RyaW5nSW5m byhidWYsICIgICAgICAgICVzIEFTICVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfcmVsYXRpb25fbmFt ZShwZ2Vmb3JtLT5wZ2VyZWxpZCwgTklMKSwKKwkJCQkJCQkgTmFtZVN0cihwZ2Vmb3JtLT5wZ2Vh bGlhcykpOworCisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cCwgQW51bV9wZ19wcm9wZ3JhcGhf ZWxlbWVudF9wZ2VrZXksIFJlbGF0aW9uR2V0RGVzY3IocGdlcmVsKSwgJmlzbnVsbCk7CisJCWlm ICghaXNudWxsKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIp OworCQkJZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheShkYXR1bSwgcGdlZm9ybS0+cGdlcmVs aWQsIGZhbHNlLCBidWYpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJ CX0KKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgIm51bGwgcGdla2V5IGZvciBlbGVtZW50ICV1Iiwg cGdlZm9ybS0+b2lkKTsKKworCQlpZiAocGdla2luZCA9PSBQR0VLSU5EX0VER0UpCisJCXsKKwkJ CURhdHVtCQlzcmNrZXk7CisJCQlEYXR1bQkJc3JjcmVmOworCQkJRGF0dW0JCWRlc3RrZXk7CisJ CQlEYXR1bQkJZGVzdHJlZjsKKwkJCUhlYXBUdXBsZQl0dXAyOworCQkJRm9ybV9wZ19wcm9wZ3Jh cGhfZWxlbWVudCBwZ2Vmb3JtMjsKKworCQkJZGF0dW0gPSBoZWFwX2dldGF0dHIodHVwLCBBbnVt X3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSwgUmVsYXRpb25HZXREZXNjcihwZ2VyZWwp LCAmaXNudWxsKTsKKwkJCXNyY2tleSA9IGlzbnVsbCA/IDAgOiBkYXR1bTsKKwkJCWRhdHVtID0g aGVhcF9nZXRhdHRyKHR1cCwgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYsIFJl bGF0aW9uR2V0RGVzY3IocGdlcmVsKSwgJmlzbnVsbCk7CisJCQlzcmNyZWYgPSBpc251bGwgPyAw IDogZGF0dW07CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXAsIEFudW1fcGdfcHJvcGdyYXBo X2VsZW1lbnRfcGdlZGVzdGtleSwgUmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsK KwkJCWRlc3RrZXkgPSBpc251bGwgPyAwIDogZGF0dW07CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0 cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiwgUmVsYXRpb25HZXRE ZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCWRlc3RyZWYgPSBpc251bGwgPyAwIDogZGF0dW07 CisKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIFNPVVJDRSIpOworCQkJdHVwMiA9 IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShwZ2Vmb3Jt LT5wZ2VzcmN2ZXJ0ZXhpZCkpOworCQkJaWYgKCF0dXAyKQorCQkJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICV1IiwgcGdlZm9ybS0+ cGdlc3JjdmVydGV4aWQpOworCQkJcGdlZm9ybTIgPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVu dCkgR0VUU1RSVUNUKHR1cDIpOworCQkJaWYgKHNyY2tleSkKKwkJCXsKKwkJCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIpOworCQkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhf YXJyYXkoc3Jja2V5LCBwZ2Vmb3JtLT5wZ2VyZWxpZCwgZmFsc2UsIGJ1Zik7CisJCQkJYXBwZW5k U3RyaW5nSW5mbyhidWYsICIpIFJFRkVSRU5DRVMgJXMgKCIsIE5hbWVTdHIocGdlZm9ybTItPnBn ZWFsaWFzKSk7CisJCQkJZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheShzcmNyZWYsIHBnZWZv cm0yLT5wZ2VyZWxpZCwgZmFsc2UsIGJ1Zik7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhi dWYsICIpIik7CisJCQl9CisJCQllbHNlCisJCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIgJXMg IiwgTmFtZVN0cihwZ2Vmb3JtMi0+cGdlYWxpYXMpKTsKKwkJCVJlbGVhc2VTeXNDYWNoZSh0dXAy KTsKKworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgREVTVElOQVRJT04iKTsKKwkJ CXR1cDIgPSBTZWFyY2hTeXNDYWNoZTEoUFJPUEdSQVBIRUxPSUQsIE9iamVjdElkR2V0RGF0dW0o cGdlZm9ybS0+cGdlZGVzdHZlcnRleGlkKSk7CisJCQlpZiAoIXR1cDIpCisJCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHByb3BlcnR5IGdyYXBoIGVsZW1lbnQgJXUiLCBw Z2Vmb3JtLT5wZ2VkZXN0dmVydGV4aWQpOworCQkJcGdlZm9ybTIgPSAoRm9ybV9wZ19wcm9wZ3Jh cGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cDIpOworCQkJaWYgKGRlc3RrZXkpCisJCQl7CisJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgS0VZICgiKTsKKwkJCQlkZWNvbXBpbGVfY29s dW1uX2luZGV4X2FycmF5KGRlc3RrZXksIHBnZWZvcm0tPnBnZXJlbGlkLCBmYWxzZSwgYnVmKTsK KwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIikgUkVGRVJFTkNFUyAlcyAoIiwgTmFtZVN0cihw Z2Vmb3JtMi0+cGdlYWxpYXMpKTsKKwkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KGRl c3RyZWYsIHBnZWZvcm0yLT5wZ2VyZWxpZCwgZmFsc2UsIGJ1Zik7CisJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsICIpIik7CisJCQl9CisJCQllbHNlCisJCQkJYXBwZW5kU3RyaW5nSW5m byhidWYsICIgJXMiLCBOYW1lU3RyKHBnZWZvcm0yLT5wZ2VhbGlhcykpOworCQkJUmVsZWFzZVN5 c0NhY2hlKHR1cDIpOworCQl9CisKKwkJbWFrZV9wcm9wZ3JhcGhkZWZfbGFiZWxzKGJ1ZiwgcGdl Zm9ybS0+b2lkLCBOYW1lU3RyKHBnZWZvcm0tPnBnZWFsaWFzKSwgcGdlZm9ybS0+cGdlcmVsaWQp OworCX0KKwlpZiAoIWZpcnN0KQorCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIlxuICAgICkiKTsK KworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFibGVfY2xvc2UocGdlcmVsLCBBY2Nlc3NT aGFyZUxvY2spOworfQorCisvKgorICogR2VuZXJhdGVzIGxhYmVsIGFuZCBwcm9wZXJ0aWVzIGxp c3QuICBQYXNzIGluIHRoZSBlbGVtZW50IE9JRCwgdGhlIGVsZW1lbnQKKyAqIGFsaWFzLCBhbmQg dGhlIGdyYXBoIHJlbGF0aW9uIE9JRC4gIFJlc3VsdCBpcyBhcHBlbmQgdG8gYnVmLgorICovCitz dGF0aWMgdm9pZAorbWFrZV9wcm9wZ3JhcGhkZWZfbGFiZWxzKFN0cmluZ0luZm8gYnVmLCBPaWQg ZWxpZCwgY29uc3QgY2hhciAqZWxhbGlhcywgT2lkIGVscmVsaWQpCit7CisJUmVsYXRpb24JcGds cmVsOworCVNjYW5LZXlEYXRhIHNjYW5rZXlbMV07CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlpbnQJ CQljb3VudDsKKwlIZWFwVHVwbGUJdHVwOworCisJcGdscmVsID0gdGFibGVfb3BlbihQcm9wZ3Jh cGhFbGVtZW50TGFiZWxSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUlu aXQoJnNjYW5rZXlbMF0sCisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9wZ2Vs ZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRH ZXREYXR1bShlbGlkKSk7CisKKwljb3VudCA9IDA7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2Nh bihwZ2xyZWwsIFByb3BncmFwaEVsZW1lbnRMYWJlbEVsZW1lbnRMYWJlbEluZGV4SWQsIHRydWUs IE5VTEwsIDEsIHNjYW5rZXkpOworCXdoaWxlICgodHVwID0gc3lzdGFibGVfZ2V0bmV4dChzY2Fu KSkpCisJeworCQljb3VudCsrOworCX0KKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCisJLyog WFhYIG5lZWQgdG8gcmUtaW5pdCBzY2FuIGtleSBmb3Igc2Vjb25kIHNjYW4gKi8KKwlTY2FuS2V5 SW5pdCgmc2NhbmtleVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX3Bn ZWxlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmplY3RJ ZEdldERhdHVtKGVsaWQpKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdscmVsLCBQ cm9wZ3JhcGhFbGVtZW50TGFiZWxFbGVtZW50TGFiZWxJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBz Y2Fua2V5KTsKKworCXdoaWxlICgodHVwID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCisJewor CQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHBnZWxmb3JtID0gKEZvcm1fcGdfcHJv cGdyYXBoX2VsZW1lbnRfbGFiZWwpIEdFVFNUUlVDVCh0dXApOworCQljb25zdCBjaGFyICpsYWJl bG5hbWU7CisKKwkJbGFiZWxuYW1lID0gZ2V0X3Byb3BncmFwaF9sYWJlbF9uYW1lKHBnZWxmb3Jt LT5wZ2VsbGFiZWxpZCk7CisKKwkJaWYgKHN0cmNtcChsYWJlbG5hbWUsIGVsYWxpYXMpID09IDAp CisJCXsKKwkJCS8qIElmIHRoZSBkZWZhdWx0IGxhYmVsIGlzIHRoZSBvbmx5IGxhYmVsLCBkb24n dCBwcmludCBhbnl0aGluZy4gKi8KKwkJCWlmIChjb3VudCAhPSAxKQorCQkJCWFwcGVuZFN0cmlu Z0luZm8oYnVmLCAiIERFRkFVTFQgTEFCRUwiKTsKKwkJfQorCQllbHNlCisJCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIiBMQUJFTCAlcyIsIHF1b3RlX2lkZW50aWZpZXIobGFiZWxuYW1lKSk7CisK KwkJbWFrZV9wcm9wZ3JhcGhkZWZfcHJvcGVydGllcyhidWYsIHBnZWxmb3JtLT5vaWQsIGVscmVs aWQpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwl0YWJsZV9jbG9zZShwZ2xy ZWwsIEFjY2Vzc1NoYXJlTG9jayk7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gZm9yIG1h a2VfcHJvcGdyYXBoZGVmX3Byb3BlcnRpZXMoKTogU29ydCAocHJvcG5hbWUsIGV4cHIpCisgKiBw YWlycyBieSBuYW1lLgorICovCitzdGF0aWMgaW50Citwcm9wZGF0YV9ieV9uYW1lX2NtcChjb25z dCBMaXN0Q2VsbCAqYSwgY29uc3QgTGlzdENlbGwgKmIpCit7CisJTGlzdAkgICAqbGEgPSBsZmly c3Rfbm9kZShMaXN0LCBhKTsKKwlMaXN0CSAgICpsYiA9IGxmaXJzdF9ub2RlKExpc3QsIGIpOwor CWNoYXIJICAgKnBuYSA9IHN0clZhbChsaW5pdGlhbChsYSkpOworCWNoYXIJICAgKnBuYiA9IHN0 clZhbChsaW5pdGlhbChsYikpOworCisJcmV0dXJuIHN0cmNtcChwbmEsIHBuYik7Cit9CisKKy8q CisgKiBHZW5lcmF0ZXMgZWxlbWVudCB0YWJsZSBwcm9wZXJ0aWVzIGNsYXVzZSAoUFJPUEVSVElF UyAoLi4uKSBvciBOTworICogUFJPUEVSVElFUykuICBQYXNzIGluIGxhYmVsIE9ESSBhbmQgZWxl bWVudCB0YWJsZSBPSUQuICBSZXN1bHQgaXMgYXBwZW5kZWQKKyAqIHRvIGJ1Zi4KKyAqLworc3Rh dGljIHZvaWQKK21ha2VfcHJvcGdyYXBoZGVmX3Byb3BlcnRpZXMoU3RyaW5nSW5mbyBidWYsIE9p ZCBlbGxhYmVsaWQsIE9pZCBlbHJlbGlkKQoreworCVJlbGF0aW9uCXBscHJlbDsKKwlTY2FuS2V5 RGF0YSBzY2Fua2V5WzFdOworCVN5c1NjYW5EZXNjIHNjYW47CisJSGVhcFR1cGxlCXR1cDsKKwlM aXN0CSAgICpvdXRsaXN0ID0gTklMOworCisJcGxwcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhM YWJlbFByb3BlcnR5UmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCVNjYW5LZXlJbml0 KCZzY2Fua2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X3BscGVs bGFiZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0 SWRHZXREYXR1bShlbGxhYmVsaWQpKTsKKworCS8qCisJICogV2Ugd2FudCB0byBvdXRwdXQgdGhl IHByb3BlcnRpZXMgaW4gYSBkZXRlcm1pbmlzdGljIG9yZGVyLiAgU28gd2UgZmlyc3QKKwkgKiBy ZWFkIGFsbCB0aGUgZGF0YSwgdGhlbiBzb3J0LCB0aGVuIHByaW50IGl0LgorCSAqLworCXNjYW4g PSBzeXN0YWJsZV9iZWdpbnNjYW4ocGxwcmVsLCBQcm9wZ3JhcGhMYWJlbFByb3BlcnR5TGFiZWxQ cm9wSW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2NhbmtleSk7CisKKwl3aGlsZSAoKHR1cCA9IHN5 c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsKKwkJRm9ybV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJv cGVydHkgcGxwZm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSkgR0VUU1RS VUNUKHR1cCk7CisJCURhdHVtCQlleHByRGF0dW07CisJCWJvb2wJCWlzbnVsbDsKKwkJY2hhcgkg ICAqdG1wOworCQlOb2RlCSAgICpleHByOworCQljaGFyCSAgICpwcm9wbmFtZTsKKworCQlleHBy RGF0dW0gPSBoZWFwX2dldGF0dHIodHVwLCBBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0 eV9wbHBleHByLCBSZWxhdGlvbkdldERlc2NyKHBscHJlbCksICZpc251bGwpOworCQlBc3NlcnQo IWlzbnVsbCk7CisJCXRtcCA9IFRleHREYXR1bUdldENTdHJpbmcoZXhwckRhdHVtKTsKKwkJZXhw ciA9IHN0cmluZ1RvTm9kZSh0bXApOworCQlwZnJlZSh0bXApOworCisJCXByb3BuYW1lID0gZ2V0 X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKHBscGZvcm0tPnBscHByb3BpZCk7CisKKwkJb3V0bGlz dCA9IGxhcHBlbmQob3V0bGlzdCwgbGlzdF9tYWtlMihtYWtlU3RyaW5nKHByb3BuYW1lKSwgZXhw cikpOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJdGFibGVfY2xvc2UocGxwcmVs LCBBY2Nlc3NTaGFyZUxvY2spOworCisJbGlzdF9zb3J0KG91dGxpc3QsIHByb3BkYXRhX2J5X25h bWVfY21wKTsKKworCWlmIChvdXRsaXN0KQorCXsKKwkJTGlzdAkgICAqY29udGV4dDsKKwkJTGlz dENlbGwgICAqbGM7CisJCWJvb2wJCWZpcnN0ID0gdHJ1ZTsKKworCQljb250ZXh0ID0gZGVwYXJz ZV9jb250ZXh0X2ZvcihnZXRfcmVsYXRpb25fbmFtZShlbHJlbGlkKSwgZWxyZWxpZCk7CisKKwkJ YXBwZW5kU3RyaW5nSW5mbyhidWYsICIgUFJPUEVSVElFUyAoIik7CisKKwkJZm9yZWFjaChsYywg b3V0bGlzdCkKKwkJeworCQkJTGlzdAkgICAqZGF0YSA9IGxmaXJzdF9ub2RlKExpc3QsIGxjKTsK KwkJCWNoYXIJICAgKnByb3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKGRhdGEpKTsKKwkJCU5vZGUJ ICAgKmV4cHIgPSBsc2Vjb25kKGRhdGEpOworCisJCQlpZiAoZmlyc3QpCisJCQkJZmlyc3QgPSBm YWxzZTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgIik7CisKKwkJCWlm IChJc0EoZXhwciwgVmFyKSAmJiBzdHJjbXAocHJvcG5hbWUsIGdldF9hdHRuYW1lKGVscmVsaWQs IGNhc3ROb2RlKFZhciwgZXhwciktPnZhcmF0dG5vLCBmYWxzZSkpID09IDApCisJCQkJYXBwZW5k U3RyaW5nSW5mbyhidWYsICIlcyIsIHByb3BuYW1lKTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIiVzIEFTICVzIiwKKwkJCQkJCQkJIGRlcGFyc2VfZXhwcmVzc2lvbl9wcmV0 dHkoZXhwciwgY29udGV4dCwgZmFsc2UsIGZhbHNlLCAwLCAwKSwKKwkJCQkJCQkJIHByb3BuYW1l KTsKKwkJfQorCisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiKSIpOworCX0KKwllbHNlCisJCWFw cGVuZFN0cmluZ0luZm8oYnVmLCAiIE5PIFBST1BFUlRJRVMiKTsKK30KKwogLyoKICAqIHBnX2dl dF9zdGF0aXN0aWNzb2JqZGVmCiAgKgkJR2V0IHRoZSBkZWZpbml0aW9uIG9mIGFuIGV4dGVuZGVk IHN0YXRpc3RpY3Mgb2JqZWN0CkBAIC03NTIxLDYgKzc4NTQsMTcxIEBAIGdldF91dGlsaXR5X3F1 ZXJ5X2RlZihRdWVyeSAqcXVlcnksIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAl9CiB9CiAK KworLyoKKyAqIFBhcnNlIGJhY2sgYSBncmFwaCBsYWJlbCBleHByZXNzaW9uCisgKi8KK3N0YXRp YyB2b2lkCitnZXRfZ3JhcGhfbGFiZWxfZXhwcihOb2RlICpsYWJlbF9leHByLCBkZXBhcnNlX2Nv bnRleHQgKmNvbnRleHQpCit7CisJU3RyaW5nSW5mbwlidWYgPSBjb250ZXh0LT5idWY7CisKKwlj aGVja19zdGFja19kZXB0aCgpOworCisJc3dpdGNoIChub2RlVGFnKGxhYmVsX2V4cHIpKQorCXsK KwkJY2FzZSBUX0dyYXBoTGFiZWxSZWY6CisJCQl7CisJCQkJR3JhcGhMYWJlbFJlZiAqbHJlZiA9 IChHcmFwaExhYmVsUmVmICopIGxhYmVsX2V4cHI7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUobHJlZi0+ bGFiZWxpZCkpKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIFRfQm9vbEV4cHI6CisJCQl7 CisJCQkJQm9vbEV4cHIgICAqYmUgPSAoQm9vbEV4cHIgKikgbGFiZWxfZXhwcjsKKwkJCQlMaXN0 Q2VsbCAgICpsYzsKKwkJCQlib29sCQlmaXJzdCA9IHRydWU7CisKKwkJCQlBc3NlcnQoYmUtPmJv b2xvcCA9PSBPUl9FWFBSKTsKKworCQkJCWZvcmVhY2gobGMsIGJlLT5hcmdzKQorCQkJCXsKKwkJ CQkJaWYgKCFmaXJzdCkKKwkJCQkJeworCQkJCQkJaWYgKGJlLT5ib29sb3AgPT0gT1JfRVhQUikK KwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgInwiKTsKKwkJCQkJfQorCQkJCQll bHNlCisJCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCQlnZXRfZ3JhcGhfbGFiZWxfZXhwcihsZmly c3QobGMpLCBjb250ZXh0KTsKKwkJCQl9CisKKwkJCQlicmVhazsKKwkJCX0KKworCQlkZWZhdWx0 OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9k ZVRhZyhsYWJlbF9leHByKSk7CisJCQlicmVhazsKKwl9Cit9CisKKy8qCisgKiBQYXJzZSBiYWNr IGEgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2dldF9wYXRoX3Bh dHRlcm5fZXhwcl9kZWYoTGlzdCAqcGF0aF9wYXR0ZXJuX2V4cHIsIGRlcGFyc2VfY29udGV4dCAq Y29udGV4dCkKK3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAg ICpsYzsKKworCWZvcmVhY2gobGMsIHBhdGhfcGF0dGVybl9leHByKQorCXsKKwkJR3JhcGhFbGVt ZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0X25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpOwor CQljb25zdCBjaGFyICpzZXAgPSAiIjsKKworCQlzd2l0Y2ggKGdlcC0+a2luZCkKKwkJeworCQkJ Y2FzZSBWRVJURVhfUEFUVEVSTjoKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigi KTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRURVJOX0xFRlQ6CisJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICI8LVsiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRU RVJOX1JJR0hUOgorCQkJY2FzZSBFREdFX1BBVFRFUk5fQU5ZOgorCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCAiLVsiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUEFSRU5fRVhQUjoKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigiKTsKKwkJCQlicmVhazsKKwkJfQorCisJ CWlmIChnZXAtPnZhcmlhYmxlKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1Ziwg Z2VwLT52YXJpYWJsZSk7CisJCQlzZXAgPSAiICI7CisJCX0KKworCQlpZiAoZ2VwLT5sYWJlbGV4 cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBzZXApOworCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsICJJUyAiKTsKKwkJCWdldF9ncmFwaF9sYWJlbF9leHByKGdl cC0+bGFiZWxleHByLCBjb250ZXh0KTsKKwkJCXNlcCA9ICIgIjsKKwkJfQorCisJCWlmIChnZXAt PnN1YmV4cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBzZXApOworCQkJ Z2V0X3BhdGhfcGF0dGVybl9leHByX2RlZihnZXAtPnN1YmV4cHIsIGNvbnRleHQpOworCQkJc2Vw ID0gIiAiOworCQl9CisKKwkJaWYgKGdlcC0+d2hlcmVDbGF1c2UpCisJCXsKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCBzZXApOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs ICJXSEVSRSAiKTsKKwkJCWdldF9ydWxlX2V4cHIoZ2VwLT53aGVyZUNsYXVzZSwgY29udGV4dCwg ZmFsc2UpOworCQl9CisKKwkJc3dpdGNoIChnZXAtPmtpbmQpCisJCXsKKwkJCWNhc2UgVkVSVEVY X1BBVFRFUk46CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQkJYnJl YWs7CisJCQljYXNlIEVER0VfUEFUVEVSTl9MRUZUOgorCQkJY2FzZSBFREdFX1BBVFRFUk5fQU5Z OgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiXS0iKTsKKwkJCQlicmVhazsKKwkJ CWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCAiXS0+Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIFBBUkVOX0VYUFI6CisJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoZ2VwLT5x dWFudGlmaWVyKQorCQl7CisJCQlpbnQJCQlsb3dlciA9IGxpbml0aWFsX2ludChnZXAtPnF1YW50 aWZpZXIpOworCQkJaW50CQkJdXBwZXIgPSBsc2Vjb25kX2ludChnZXAtPnF1YW50aWZpZXIpOwor CisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInslZCwlZH0iLCBsb3dlciwgdXBwZXIpOworCQl9 CisJfQorfQorCisvKgorICogUGFyc2UgYmFjayBhIGdyYXBoIHBhdHRlcm4KKyAqLworc3RhdGlj IHZvaWQKK2dldF9ncmFwaF9wYXR0ZXJuX2RlZihHcmFwaFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4s IGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQt PmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29sCQlmaXJzdCA9IHRydWU7CisKKwlmb3JlYWNo KGxjLCBncmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCkKKwl7CisJCUxpc3QJICAgKnBh dGhfcGF0dGVybl9leHByID0gbGZpcnN0X25vZGUoTGlzdCwgbGMpOworCisJCWlmICghZmlyc3Qp CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiwgIik7CisJCWVsc2UKKwkJCWZpcnN0 ID0gZmFsc2U7CisKKwkJZ2V0X3BhdGhfcGF0dGVybl9leHByX2RlZihwYXRoX3BhdHRlcm5fZXhw ciwgY29udGV4dCk7CisJfQorCisJaWYgKGdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKQorCXsK KwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJXSEVSRSAiKTsKKwkJZ2V0X3J1bGVfZXhw cihncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwgY29udGV4dCwgZmFsc2UpOworCX0KK30KKwog LyoKICAqIERpc3BsYXkgYSBWYXIgYXBwcm9wcmlhdGVseS4KICAqCkBAIC04MTMxLDYgKzg2Mjks NyBAQCBnZXRfbmFtZV9mb3JfdmFyX2ZpZWxkKFZhciAqdmFyLCBpbnQgZmllbGRubywKIAkJY2Fz ZSBSVEVfUkVMQVRJT046CiAJCWNhc2UgUlRFX1ZBTFVFUzoKIAkJY2FzZSBSVEVfTkFNRURUVVBM RVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAkJY2FzZSBSVEVfUkVTVUxUOgogCiAJ CQkvKgpAQCAtMTA1NDUsNiArMTEwNDQsMTQgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBk ZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQlnZXRfdGFibGVmdW5jKChUYWJsZUZ1bmMgKikg bm9kZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9HcmFw aFByb3BlcnR5UmVmOgorCQkJeworCQkJCUdyYXBoUHJvcGVydHlSZWYgKmdwciA9IChHcmFwaFBy b3BlcnR5UmVmICopIG5vZGU7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzLiVzIiwg cXVvdGVfaWRlbnRpZmllcihncHItPmVsdmFybmFtZSksIHF1b3RlX2lkZW50aWZpZXIoZ2V0X3By b3BncmFwaF9wcm9wZXJ0eV9uYW1lKGdwci0+cHJvcGlkKSkpOworCQkJCWJyZWFrOworCQkJfQor CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQi LCAoaW50KSBub2RlVGFnKG5vZGUpKTsKIAkJCWJyZWFrOwpAQCAtMTI0MDQsNiArMTI5MTEsMzYg QEAgZ2V0X2Zyb21fY2xhdXNlX2l0ZW0oTm9kZSAqanRub2RlLCBRdWVyeSAqcXVlcnksIGRlcGFy c2VfY29udGV4dCAqY29udGV4dCkKIAkJCWNhc2UgUlRFX1RBQkxFRlVOQzoKIAkJCQlnZXRfdGFi bGVmdW5jKHJ0ZS0+dGFibGVmdW5jLCBjb250ZXh0LCB0cnVlKTsKIAkJCQlicmVhazsKKwkJCWNh c2UgUlRFX0dSQVBIX1RBQkxFOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiR1JB UEhfVEFCTEUgKCIpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBnZW5lcmF0ZV9y ZWxhdGlvbl9uYW1lKHJ0ZS0+cmVsaWQsIGNvbnRleHQtPm5hbWVzcGFjZXMpKTsKKwkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBNQVRDSCAiKTsKKwkJCQlnZXRfZ3JhcGhfcGF0dGVy bl9kZWYocnRlLT5ncmFwaF9wYXR0ZXJuLCBjb250ZXh0KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZiwgIiBDT0xVTU5TICgiKTsKKwkJCQl7CisJCQkJCUxpc3RDZWxsICAgKmxjOwor CQkJCQlib29sCQlmaXJzdCA9IHRydWU7CisKKwkJCQkJZm9yZWFjaChsYywgcnRlLT5ncmFwaF90 YWJsZV9jb2x1bW5zKQorCQkJCQl7CisJCQkJCQlUYXJnZXRFbnRyeSAqdGUgPSBsZmlyc3Rfbm9k ZShUYXJnZXRFbnRyeSwgbGMpOworCQkJCQkJZGVwYXJzZV9jb250ZXh0IGNvbnRleHQgPSB7MH07 CisKKwkJCQkJCWlmICghZmlyc3QpCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYs ICIsICIpOworCQkJCQkJZWxzZQorCQkJCQkJCWZpcnN0ID0gZmFsc2U7CisKKwkJCQkJCWNvbnRl eHQuYnVmID0gYnVmOworCisJCQkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIHRlLT5leHByLCAm Y29udGV4dCwgZmFsc2UpOworCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgQVMg Iik7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcih0 ZS0+cmVzbmFtZSkpOworCQkJCQl9CisJCQkJfQorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCAiKSIpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiKSIpOworCQkJCWJy ZWFrOwogCQkJY2FzZSBSVEVfVkFMVUVTOgogCQkJCS8qIFZhbHVlcyBsaXN0IFJURSAqLwogCQkJ CWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2Nh Y2hlLmMKaW5kZXggYmNmYTVjYjRhZGQuLmU1MGI2NzIxMTU1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYwpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3Bm YW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHVibGljYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3JhbmdlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWMuaCIKQEAgLTM3NDEsMyArMzc0MywzOSBAQCBn ZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAlyZXR1 cm4gc3VibmFtZTsKIH0KKworY2hhciAqCitnZXRfcHJvcGdyYXBoX2xhYmVsX25hbWUoT2lkIGxh YmVsb2lkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwljaGFyCSAgICpsYWJlbG5hbWU7CisKKwl0 dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhMQUJFTE9JRCwgbGFiZWxvaWQpOworCWlm ICghdHVwbGUpCisJeworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgbGFi ZWwgJXUiLCBsYWJlbG9pZCk7CisJCXJldHVybiBOVUxMOworCX0KKwlsYWJlbG5hbWUgPSBwc3Ry ZHVwKE5hbWVTdHIoKChGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCkgR0VUU1RSVUNUKHR1cGxlKSkt PnBnbGxhYmVsKSk7CisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCXJldHVybiBsYWJlbG5h bWU7Cit9CisKK2NoYXIgKgorZ2V0X3Byb3BncmFwaF9wcm9wZXJ0eV9uYW1lKE9pZCBwcm9wb2lk KQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwljaGFyCSAgICpwcm9wbmFtZTsKKworCXR1cGxlID0g U2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSFBST1BPSUQsIHByb3BvaWQpOworCWlmICghdHVwbGUp CisJeworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgJXUi LCBwcm9wb2lkKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXByb3BuYW1lID0gcHN0cmR1cChOYW1l U3RyKCgoRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5wZ3Bu YW1lKSk7CisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCXJldHVybiBwcm9wbmFtZTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9iaW4vcGdfZHVtcC9j b21tb24uYwppbmRleCA1NmI2YzM2OGFjZi4uYjI3ZTA1ODIwOTQgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAgLTQ5 Niw3ICs0OTYsOCBAQCBmbGFnSW5oQXR0cnMoQXJjaGl2ZSAqZm91dCwgRHVtcE9wdGlvbnMgKmRv cHQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcwogCQkvKiBTb21lIGtpbmRzIG5l dmVyIGhhdmUgcGFyZW50cyAqLwogCQlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfU0VR VUVOQ0UgfHwKIAkJCXRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcgfHwKLQkJCXRiaW5m by0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcpCisJCQl0YmluZm8tPnJlbGtpbmQgPT0gUkVM S0lORF9NQVRWSUVXIHx8CisJCQl0YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9QUk9QR1JBUEgp CiAJCQljb250aW51ZTsKIAogCQkvKiBEb24ndCBib3RoZXIgY29tcHV0aW5nIGFueXRoaW5nIGZv ciBub24tdGFyZ2V0IHRhYmxlcywgZWl0aGVyICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMKaW5kZXggNzA3YTNmYzg0NGMuLmUyODdhMzFlMjNlIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF9hcmNoaXZlci5jCkBAIC0zNjQ1LDYgKzM2NDUsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRp b24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAi RE9NQUlOIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIkZPUkVJR04gVEFCTEUiKSA9PSAwIHx8 CiAJCXN0cmNtcCh0eXBlLCAiTUFURVJJQUxJWkVEIFZJRVciKSA9PSAwIHx8CisJCXN0cmNtcCh0 eXBlLCAiUFJPUEVSVFkgR1JBUEgiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiU0VRVUVOQ0Ui KSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiU1RBVElTVElDUyIpID09IDAgfHwKIAkJc3RyY21w KHR5cGUsICJUQUJMRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDUyMGUxMzM4YzI4Li5hYjBi YTI5ZTliNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xNzAwLDEwICsxNzAwLDEwIEBAIGV4cGFuZF90YWJs ZV9uYW1lX3BhdHRlcm5zKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkgICJcbiAgICAgTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4iCiAJCQkJCQkgICJcbiAgICAgT04gbi5vaWQgT1BF UkFUT1IocGdfY2F0YWxvZy49KSBjLnJlbG5hbWVzcGFjZSIKIAkJCQkJCSAgIlxuV0hFUkUgYy5y ZWxraW5kIE9QRVJBVE9SKHBnX2NhdGFsb2cuPSkgQU5ZIgotCQkJCQkJICAiXG4gICAgKGFycmF5 WyclYycsICclYycsICclYycsICclYycsICclYycsICclYyddKVxuIiwKKwkJCQkJCSAgIlxuICAg IChhcnJheVsnJWMnLCAnJWMnLCAnJWMnLCAnJWMnLCAnJWMnLCAnJWMnLCAnJWMnXSlcbiIsCiAJ CQkJCQkgIFJFTEtJTkRfUkVMQVRJT04sIFJFTEtJTkRfU0VRVUVOQ0UsIFJFTEtJTkRfVklFVywK IAkJCQkJCSAgUkVMS0lORF9NQVRWSUVXLCBSRUxLSU5EX0ZPUkVJR05fVEFCTEUsCi0JCQkJCQkg IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpOworCQkJCQkJICBSRUxLSU5EX1BBUlRJVElPTkVE X1RBQkxFLCBSRUxLSU5EX1BST1BHUkFQSCk7CiAJCWluaXRQUUV4cEJ1ZmZlcigmZGJidWYpOwog CQlwcm9jZXNzU1FMTmFtZVBhdHRlcm4oR2V0Q29ubmVjdGlvbihmb3V0KSwgcXVlcnksIGNlbGwt PnZhbCwgdHJ1ZSwKIAkJCQkJCQkgIGZhbHNlLCAibi5uc3BuYW1lIiwgImMucmVsbmFtZSIsIE5V TEwsCkBAIC0yODcwLDYgKzI4NzAsOSBAQCBtYWtlVGFibGVEYXRhSW5mbyhEdW1wT3B0aW9ucyAq ZG9wdCwgVGFibGVJbmZvICp0YmluZm8pCiAJaWYgKHRiaW5mby0+ZGF0YU9iaiAhPSBOVUxMKQog CQlyZXR1cm47CiAKKwkvKiBTa2lwIHByb3BlcnR5IGdyYXBocyAobm8gZGF0YSB0byBkdW1wKSAq LworCWlmICh0YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9QUk9QR1JBUEgpCisJCXJldHVybjsK IAkvKiBTa2lwIFZJRVdzIChubyBkYXRhIHRvIGR1bXApICovCiAJaWYgKHRiaW5mby0+cmVsa2lu ZCA9PSBSRUxLSU5EX1ZJRVcpCiAJCXJldHVybjsKQEAgLTY5ODgsNyArNjk5MSw4IEBAIGdldFRh YmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSBDcHBBc1N0cmluZzIo UkVMS0lORF9DT01QT1NJVEVfVFlQRSkgIiwgIgogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5E X01BVFZJRVcpICIsICIKIAkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9GT1JFSUdOX1RBQkxF KSAiLCAiCi0JCQkJCQkgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIp XG4iCisJCQkJCQkgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIsICIK KwkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9QUk9QR1JBUEgpICIpXG4iCiAJCQkJCQkgIk9S REVSIEJZIGMub2lkIik7CiAKIAlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRh dGEsIFBHUkVTX1RVUExFU19PSyk7CkBAIC0xNTk3OCw4ICsxNTk4Miw2IEBAIGR1bXBUYWJsZVNj aGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAogCQlyZWx0eXBl bmFtZSA9ICJWSUVXIjsKIAotCQlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWSUVXICVz O1xuIiwgcXVhbHJlbG5hbWUpOwotCiAJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKIAkJCWJp bmFyeV91cGdyYWRlX3NldF9wZ19jbGFzc19vaWRzKGZvdXQsIHEsCiAJCQkJCQkJCQkJCSB0Ymlu Zm8tPmRvYmouY2F0SWQub2lkKTsKQEAgLTE2MDA1LDYgKzE2MDA3LDQ3IEBAIGR1bXBUYWJsZVNj aGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICJcbiAgV0lUSCAlcyBDSEVDSyBPUFRJT04iLCB0YmluZm8tPmNoZWNrb3B0 aW9uKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIjtcbiIpOwogCX0KKwllbHNlIGlmICh0 YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9QUk9QR1JBUEgpCisJeworCQlQUUV4cEJ1ZmZlciBx dWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJCVBHcmVzdWx0ICAgKnJlczsKKwkJaW50CQkJ bGVuOworCisJCXJlbHR5cGVuYW1lID0gIlBST1BFUlRZIEdSQVBIIjsKKworCQlpZiAoZG9wdC0+ YmluYXJ5X3VwZ3JhZGUpCisJCQliaW5hcnlfdXBncmFkZV9zZXRfcGdfY2xhc3Nfb2lkcyhmb3V0 LCBxLAorCQkJCQkJCQkJCQkgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CisKKwkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfcHJvcGdy YXBoZGVmKCcldSc6OnBnX2NhdGFsb2cub2lkKSBBUyBwZ2RlZiIsCisJCQkJCQkgIHRiaW5mby0+ ZG9iai5jYXRJZC5vaWQpOworCisJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCQlpZiAoUFFudHVwbGVzKHJlcykgIT0gMSkKKwkJ eworCQkJaWYgKFBRbnR1cGxlcyhyZXMpIDwgMSkKKwkJCQlwZ19mYXRhbCgicXVlcnkgdG8gb2J0 YWluIGRlZmluaXRpb24gb2YgcHJvcGVydHkgZ3JhcGggXCIlc1wiIHJldHVybmVkIG5vIGRhdGEi LAorCQkJCQkJIHRiaW5mby0+ZG9iai5uYW1lKTsKKwkJCWVsc2UKKwkJCQlwZ19mYXRhbCgicXVl cnkgdG8gb2J0YWluIGRlZmluaXRpb24gb2YgcHJvcGVydHkgZ3JhcGggXCIlc1wiIHJldHVybmVk IG1vcmUgdGhhbiBvbmUgZGVmaW5pdGlvbiIsCisJCQkJCQkgdGJpbmZvLT5kb2JqLm5hbWUpOwor CQl9CisKKwkJbGVuID0gUFFnZXRsZW5ndGgocmVzLCAwLCAwKTsKKworCQlpZiAobGVuID09IDAp CisJCQlwZ19mYXRhbCgiZGVmaW5pdGlvbiBvZiBwcm9wZXJ0eSBncmFwaCBcIiVzXCIgYXBwZWFy cyB0byBiZSBlbXB0eSAobGVuZ3RoIHplcm8pIiwKKwkJCQkJIHRiaW5mby0+ZG9iai5uYW1lKTsK KworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCBQUWdldHZhbHVlKHJlcywgMCwgMCkpOworCisJ CVBRY2xlYXIocmVzKTsKKwkJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxLCAiO1xuIik7CisJfQogCWVsc2UKIAl7CiAJCWNoYXIJICAgKnBhcnRr ZXlkZWYgPSBOVUxMOwpAQCAtMTYwODAsOCArMTYxMjMsNiBAQCBkdW1wVGFibGVTY2hlbWEoQXJj aGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCW51bVBhcmVudHMgPSB0Ymlu Zm8tPm51bVBhcmVudHM7CiAJCXBhcmVudHMgPSB0YmluZm8tPnBhcmVudHM7CiAKLQkJYXBwZW5k UFFFeHBCdWZmZXIoZGVscSwgIkRST1AgJXMgJXM7XG4iLCByZWx0eXBlbmFtZSwgcXVhbHJlbG5h bWUpOwotCiAJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKIAkJCWJpbmFyeV91cGdyYWRlX3Nl dF9wZ19jbGFzc19vaWRzKGZvdXQsIHEsCiAJCQkJCQkJCQkJCSB0YmluZm8tPmRvYmouY2F0SWQu b2lkKTsKQEAgLTE2ODI3LDYgKzE2ODY4LDggQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZv dXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiXG5B TFRFUiBUQUJMRSBPTkxZICVzIEZPUkNFIFJPVyBMRVZFTCBTRUNVUklUWTtcbiIsCiAJCQkJCQkg IHF1YWxyZWxuYW1lKTsKIAorCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QICVzICVzO1xu IiwgcmVsdHlwZW5hbWUsIHF1YWxyZWxuYW1lKTsKKwogCWlmIChkb3B0LT5iaW5hcnlfdXBncmFk ZSkKIAkJYmluYXJ5X3VwZ3JhZGVfZXh0ZW5zaW9uX21lbWJlcihxLCAmdGJpbmZvLT5kb2JqLAog CQkJCQkJCQkJCXJlbHR5cGVuYW1lLCBxcmVsbmFtZSwKQEAgLTE4NzY2LDYgKzE4ODA5LDE2IEBA IGdldERlcGVuZGVuY2llcyhBcmNoaXZlICpmb3V0KQogCQkJCQkJICJjbGFzc2lkID0gJ3BnX2Ft cHJvYyc6OnJlZ2NsYXNzIEFORCBvYmppZCA9IHAub2lkICIKIAkJCQkJCSAiQU5EIE5PVCAocmVm Y2xhc3NpZCA9ICdwZ19vcGZhbWlseSc6OnJlZ2NsYXNzIEFORCBhbXByb2NmYW1pbHkgPSByZWZv YmppZClcbiIpOwogCisJLyoKKwkgKiBUcmFuc2xhdGUgZGVwZW5kZW5jaWVzIG9mIHBnX3Byb3Bn cmFwaF9lbGVtZW50IGVudHJpZXMgaW50bworCSAqIGRlcGVuZGVuY2llcyBvZiB0aGVpciBwYXJl bnQgcGdfY2xhc3MgZW50cnkuCisJICovCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJV TklPTiBBTExcbiIKKwkJCQkJCSAiU0VMRUNUICdwZ19jbGFzcyc6OnJlZ2NsYXNzIEFTIGNsYXNz aWQsIHBnZXBnaWQgQVMgb2JqaWQsIHJlZmNsYXNzaWQsIHJlZm9iamlkLCBkZXB0eXBlICIKKwkJ CQkJCSAiRlJPTSBwZ19kZXBlbmQgZCwgcGdfcHJvcGdyYXBoX2VsZW1lbnQgcGdlICIKKwkJCQkJ CSAiV0hFUkUgZGVwdHlwZSBOT1QgSU4gKCdwJywgJ2UnLCAnaScpIEFORCAiCisJCQkJCQkgImNs YXNzaWQgPSAncGdfcHJvcGdyYXBoX2VsZW1lbnQnOjpyZWdjbGFzcyBBTkQgb2JqaWQgPSBwZ2Uu b2lkXG4iKTsKKwogCS8qIFNvcnQgdGhlIG91dHB1dCBmb3IgZWZmaWNpZW5jeSBiZWxvdyAqLwog CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiT1JERVIgQlkgMSwyIik7CiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKaW5kZXggYmM1ZDkyMjJhMjAuLmZhMDZhYTQwMDM3IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAv dC8wMDJfcGdfZHVtcC5wbApAQCAtMzAxMyw2ICszMDEzLDE4IEBAIG15ICV0ZXN0cyA9ICgKIAkJ fSwKIAl9LAogCisJJ0NSRUFURSBQUk9QRVJUWSBHUkFQSCBwcm9wZ3JhcGgnID0+IHsKKwkJY3Jl YXRlX29yZGVyID0+IDIwLAorCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgUFJPUEVSVFkgR1JBUEgg ZHVtcF90ZXN0LnByb3BncmFwaDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFJP UEVSVFkgR1JBUEggZHVtcF90ZXN0LnByb3BncmFwaFxFOworCQkJL3htLAorCQlsaWtlID0+CisJ CSAgeyAlZnVsbF9ydW5zLCAlZHVtcF90ZXN0X3NjaGVtYV9ydW5zLCBzZWN0aW9uX3ByZV9kYXRh ID0+IDEsIH0sCisJCXVubGlrZSA9PgorCQkgIHsgZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+ IDEsIG9ubHlfZHVtcF9tZWFzdXJlbWVudCA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgUFVCTElDQVRJT04gcHViMTsnLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNmM3NWM4ZGE2ZGEuLjZjMDU2 NmJjY2NlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4v cHNxbC9jb21tYW5kLmMKQEAgLTg4Myw3ICs4ODMsNyBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2Nh blN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQog CQkJCQlzdWNjZXNzID0gZGVzY3JpYmVUYWJsZURldGFpbHMocGF0dGVybiwgc2hvd192ZXJib3Nl LCBzaG93X3N5c3RlbSk7CiAJCQkJZWxzZQogCQkJCQkvKiBzdGFuZGFyZCBsaXN0aW5nIG9mIGlu dGVyZXN0aW5nIHRoaW5ncyAqLwotCQkJCQlzdWNjZXNzID0gbGlzdFRhYmxlcygidHZtc0UiLCBO VUxMLCBzaG93X3ZlcmJvc2UsIHNob3dfc3lzdGVtKTsKKwkJCQkJc3VjY2VzcyA9IGxpc3RUYWJs ZXMoInR2bXNFRyIsIE5VTEwsIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwogCQkJCWJyZWFr OwogCQkJY2FzZSAnQSc6CiAJCQkJewpAQCAtMTAxNyw2ICsxMDE3LDcgQEAgZXhlY19jb21tYW5k X2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNo YXIgKmNtZCkKIAkJCWNhc2UgJ2knOgogCQkJY2FzZSAncyc6CiAJCQljYXNlICdFJzoKKwkJCWNh c2UgJ0cnOgogCQkJCXN1Y2Nlc3MgPSBsaXN0VGFibGVzKCZjbWRbMV0sIHBhdHRlcm4sIHNob3df dmVyYm9zZSwgc2hvd19zeXN0ZW0pOwogCQkJCWJyZWFrOwogCQkJY2FzZSAncic6CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmlu ZGV4IDNiN2JhNjZmYWQwLi45YTM0YmU1YjZjMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTEwNjcsNiArMTA2Nyw3 IEBAIHBlcm1pc3Npb25zTGlzdChjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHNob3dTeXN0ZW0p CiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfTUFUVklFVykgIiBUSEVOICcl cyciCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfU0VRVUVOQ0UpICIgVEhF TiAnJXMnIgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5nMihSRUxLSU5EX0ZPUkVJR05fVEFC TEUpICIgVEhFTiAnJXMnIgorCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5nMihSRUxLSU5EX1BS T1BHUkFQSCkgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgRU5EIGFzIFwiJXNc IixcbiIKIAkJCQkJICAiICAiLApAQCAtMTA3Nyw2ICsxMDc4LDcgQEAgcGVybWlzc2lvbnNMaXN0 KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgc2hvd1N5c3RlbSkKIAkJCQkJICBnZXR0ZXh0X25v b3AoIm1hdGVyaWFsaXplZCB2aWV3IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJzZXF1ZW5jZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiZm9yZWlnbiB0YWJsZSIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgicHJvcGVydHkgZ3JhcGgiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoInBhcnRpdGlvbmVk IHRhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIikpOwogCkBAIC0xMTY4LDYgKzEx NzAsNyBAQCBwZXJtaXNzaW9uc0xpc3QoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCBzaG93U3lz dGVtKQogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX01BVFZJRVcpICIsIgogCQkJCQkJIENw cEFzU3RyaW5nMihSRUxLSU5EX1NFUVVFTkNFKSAiLCIKIAkJCQkJCSBDcHBBc1N0cmluZzIoUkVM S0lORF9GT1JFSUdOX1RBQkxFKSAiLCIKKwkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9QUk9Q R1JBUEgpICIsIgogCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxF KSAiKVxuIik7CiAKIAlpZiAoIXNob3dTeXN0ZW0gJiYgIXBhdHRlcm4pCkBAIC0yMDQ3LDYgKzIw NTAsMTAgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwK IAkJCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlBhcnRpdGlvbmVkIHRhYmxlIFwiJXMu JXNcIiIpLAogCQkJCQkJCQkgIHNjaGVtYW5hbWUsIHJlbGF0aW9ubmFtZSk7CiAJCQlicmVhazsK KwkJY2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZ0aXRsZSwg XygiUHJvcGVydHkgZ3JhcGggXCIlcy4lc1wiIiksCisJCQkJCQkJICBzY2hlbWFuYW1lLCByZWxh dGlvbm5hbWUpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiB1bnRyYW5zbGF0ZWQgdW5r bm93biByZWxraW5kICovCiAJCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsICI/JWM/IFwiJXMu JXNcIiIsCkBAIC0zMTUyLDYgKzMxNTksMzIgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJfQogCX0KIAorCS8qIEFkZCBwcm9wZXJ0eSBncmFwaCBk ZWZpbml0aW9uIGluIHZlcmJvc2UgbW9kZSAqLworCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBS RUxLSU5EX1BST1BHUkFQSCAmJiB2ZXJib3NlKQorCXsKKwkJUEdyZXN1bHQgICAqcmVzdWx0Owor CQljaGFyCSAgICpwZ2RlZiA9IE5VTEw7CisKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF9wcm9wZ3JhcGhkZWYoJyVzJzo6cGdfY2F0 YWxvZy5vaWQpOyIsCisJCQkJCQkgIG9pZCk7CisJCXJlc3VsdCA9IFBTUUxleGVjKGJ1Zi5kYXRh KTsKKwkJaWYgKCFyZXN1bHQpCisJCQlnb3RvIGVycm9yX3JldHVybjsKKworCQlpZiAoUFFudHVw bGVzKHJlc3VsdCkgPiAwKQorCQkJcGdkZWYgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXN1bHQs IDAsIDApKTsKKworCQlQUWNsZWFyKHJlc3VsdCk7CisKKwkJaWYgKHBnZGVmKQorCQl7CisJCQlw cmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBfKCJQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOiIp KTsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgJXMiLCBwZ2RlZik7CisJCQlwcmludFRh YmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7CisJCX0KKwl9CisKIAkvKiBHZXQgdmlld19k ZWYgaWYgdGFibGUgaXMgYSB2aWV3IG9yIG1hdGVyaWFsaXplZCB2aWV3ICovCiAJaWYgKCh0YWJs ZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX1ZJRVcgfHwKIAkJIHRhYmxlaW5mby5yZWxraW5kID09 IFJFTEtJTkRfTUFUVklFVykgJiYgdmVyYm9zZSkKQEAgLTQwMDUsNiArNDAzOCw3IEBAIGRlc2Ny aWJlUm9sZUdyYW50cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHNob3dTeXN0ZW0pCiAgKiBt IC0gbWF0ZXJpYWxpemVkIHZpZXdzCiAgKiBzIC0gc2VxdWVuY2VzCiAgKiBFIC0gZm9yZWlnbiB0 YWJsZSAoTm90ZTogZGlmZmVyZW50IGZyb20gJ2YnLCB0aGUgcmVsa2luZCB2YWx1ZSkKKyAqIEcg LSBwcm9wZXJ0eSBncmFwaHMKICAqIChhbnkgb3JkZXIgb2YgdGhlIGFib3ZlIGlzIGZpbmUpCiAg Ki8KIGJvb2wKQEAgLTQwMTYsNiArNDA1MCw3IEBAIGxpc3RUYWJsZXMoY29uc3QgY2hhciAqdGFi dHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzCiAJ Ym9vbAkJc2hvd01hdFZpZXdzID0gc3RyY2hyKHRhYnR5cGVzLCAnbScpICE9IE5VTEw7CiAJYm9v bAkJc2hvd1NlcSA9IHN0cmNocih0YWJ0eXBlcywgJ3MnKSAhPSBOVUxMOwogCWJvb2wJCXNob3dG b3JlaWduID0gc3RyY2hyKHRhYnR5cGVzLCAnRScpICE9IE5VTEw7CisJYm9vbAkJc2hvd1Byb3BH cmFwaHMgPSBzdHJjaHIodGFidHlwZXMsICdHJykgIT0gTlVMTDsKIAogCWludAkJCW50eXBlczsK IAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwpAQCAtNDAyNiwxMCArNDA2MSwxMCBAQCBsaXN0VGFibGVz KGNvbnN0IGNoYXIgKnRhYnR5cGVzLCBjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Us IGJvb2wgc2hvd1N5cwogCiAJLyogQ291bnQgdGhlIG51bWJlciBvZiBleHBsaWNpdGx5LXJlcXVl c3RlZCByZWxhdGlvbiB0eXBlcyAqLwogCW50eXBlcyA9IHNob3dUYWJsZXMgKyBzaG93SW5kZXhl cyArIHNob3dWaWV3cyArIHNob3dNYXRWaWV3cyArCi0JCXNob3dTZXEgKyBzaG93Rm9yZWlnbjsK KwkJc2hvd1NlcSArIHNob3dGb3JlaWduICsgc2hvd1Byb3BHcmFwaHM7CiAJLyogSWYgbm9uZSwg d2UgZGVmYXVsdCB0byBcZHR2bXNFIChidXQgc2VlIGFsc28gY29tbWFuZC5jKSAqLwogCWlmIChu dHlwZXMgPT0gMCkKLQkJc2hvd1RhYmxlcyA9IHNob3dWaWV3cyA9IHNob3dNYXRWaWV3cyA9IHNo b3dTZXEgPSBzaG93Rm9yZWlnbiA9IHRydWU7CisJCXNob3dUYWJsZXMgPSBzaG93Vmlld3MgPSBz aG93TWF0Vmlld3MgPSBzaG93U2VxID0gc2hvd0ZvcmVpZ24gPSBzaG93UHJvcEdyYXBocyA9IHRy dWU7CiAKIAlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CiAKQEAgLTQwNDYsNiArNDA4MSw3IEBAIGxp c3RUYWJsZXMoY29uc3QgY2hhciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSwgYm9vbCBzaG93U3lzCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJpbmcyKFJFTEtJ TkRfRk9SRUlHTl9UQUJMRSkgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJp bmcyKFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgV0hF TiAiIENwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX0lOREVYKSAiIFRIRU4gJyVzJyIK KwkJCQkJICAiIFdIRU4gIiBDcHBBc1N0cmluZzIoUkVMS0lORF9QUk9QR1JBUEgpICIgVEhFTiAn JXMnIgogCQkJCQkgICIgRU5EIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBn X2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBhcyBcIiVzXCIiLAogCQkJCQkgIGdldHRleHRfbm9v cCgiU2NoZW1hIiksCkBAIC00MDU5LDYgKzQwOTUsNyBAQCBsaXN0VGFibGVzKGNvbnN0IGNoYXIg KnRhYnR5cGVzLCBjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5 cwogCQkJCQkgIGdldHRleHRfbm9vcCgiZm9yZWlnbiB0YWJsZSIpLAogCQkJCQkgIGdldHRleHRf bm9vcCgicGFydGl0aW9uZWQgdGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoInBhcnRpdGlv bmVkIGluZGV4IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJwcm9wZXJ0eSBncmFwaCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSk7 CiAJY29sc19zb19mYXIgPSA0OwpAQCAtNDE0Niw2ICs0MTgzLDggQEAgbGlzdFRhYmxlcyhjb25z dCBjaGFyICp0YWJ0eXBlcywgY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29s IHNob3dTeXMKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIidzJywiKTsgLyogd2FzIFJF TEtJTkRfU1BFQ0lBTCAqLwogCWlmIChzaG93Rm9yZWlnbikKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkgIiwiKTsKKwlpZiAo c2hvd1Byb3BHcmFwaHMpCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIENwcEFzU3RyaW5n MihSRUxLSU5EX1BST1BHUkFQSCkgIiwiKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICInJyIpOwkvKiBkdW1teSAqLwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIpXG4iKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmlu ZGV4IGRhOGUxYWRlNWRmLi5lYzdlMjhiZGZmYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hl bHAuYworKysgYi9zcmMvYmluL3BzcWwvaGVscC5jCkBAIC0yNDcsNiArMjQ3LDcgQEAgc2xhc2hV c2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJSEVMUDAoIiAgXFxkRnBbeCtdIFtQQVRU RVJOXSAgICAgbGlzdCB0ZXh0IHNlYXJjaCBwYXJzZXJzXG4iKTsKIAlIRUxQMCgiICBcXGRGdFt4 K10gW1BBVFRFUk5dICAgICBsaXN0IHRleHQgc2VhcmNoIHRlbXBsYXRlc1xuIik7CiAJSEVMUDAo IiAgXFxkZ1tTeCtdIFtQQVRURVJOXSAgICAgbGlzdCByb2xlc1xuIik7CisJSEVMUDAoIiAgXFxk R1tTeCtdIFtQQVRURVJOXSAgICAgbGlzdCBwcm9wZXJ0eSBncmFwaHNcbiIpOwogCUhFTFAwKCIg IFxcZGlbU3grXSBbUEFUVEVSTl0gICAgIGxpc3QgaW5kZXhlc1xuIik7CiAJSEVMUDAoIiAgXFxk bFt4K10gICAgICAgICAgICAgICAgbGlzdCBsYXJnZSBvYmplY3RzLCBzYW1lIGFzIFxcbG9fbGlz dFxuIik7CiAJSEVMUDAoIiAgXFxkTFtTeCtdIFtQQVRURVJOXSAgICAgbGlzdCBwcm9jZWR1cmFs IGxhbmd1YWdlc1xuIik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNWY2ODk3Yzg0ODYuLjEx MjdjMDViOWM0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysr IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC03OTUsNiArNzk1LDE0IEBAIHN0 YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9wYXJ0aXRpb25lZF9pbmRl eGVzID0gewogCS5yZXN1bHQgPSAiYy5yZWxuYW1lIiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hl bWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhzID0geworCS5jYXRuYW1lID0gInBn X2NhdGFsb2cucGdfY2xhc3MgYyIsCisJLnNlbGNvbmRpdGlvbiA9ICJjLnJlbGtpbmQgSU4gKCIg Q3BwQXNTdHJpbmcyKFJFTEtJTkRfUFJPUEdSQVBIKSAiKSIsCisJLnZpc2NvbmRpdGlvbiA9ICJw Z19jYXRhbG9nLnBnX3RhYmxlX2lzX3Zpc2libGUoYy5vaWQpIiwKKwkubmFtZXNwYWNlID0gImMu cmVsbmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInBnX2NhdGFsb2cucXVvdGVfaWRlbnQoYy5yZWxu YW1lKSIsCit9OworCiAKIC8qIEFsbCByZWxhdGlvbnMgKi8KIHN0YXRpYyBjb25zdCBTY2hlbWFR dWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9yZWxhdGlvbnMgPSB7CkBAIC0xMjc3LDYgKzEyODUsNyBA QCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7 IlBBUlNFUiIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl90c19wYXJzZXJzLCBOVUxM LCBUSElOR19OT19TSE9XfSwKIAl7IlBPTElDWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiUFJP Q0VEVVJFIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvY2VkdXJlc30sCisJeyJQ Uk9QRVJUWSBHUkFQSCIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhz fSwKIAl7IlBVQkxJQ0FUSU9OIiwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfcHVibGljYXRpb25z fSwKIAl7IlJPTEUiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlc30sCiAJeyJST1VUSU5FIiwgTlVM TCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3JvdXRpbmVzLCBOVUxMLCBUSElOR19OT19DUkVB VEV9LApAQCAtMjY0MSw2ICsyNjUwLDIwIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBPTElDWSIsIE1hdGNoQW55LCAi T04iLCBNYXRjaEFueSwgIldJVEgiLCAiQ0hFQ0siKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwog CisJLyogQUxURVIgUFJPUEVSVFkgR1JBUEggKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJQUk9QRVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQ Uk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkFM VEVSIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55LCAi QUREfEFMVEVSfERST1AiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkVSVEVYIiwgIkVER0UiKTsKKwll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55LCAi QUREfERST1AiLCAiVkVSVEVYfEVER0UiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIik7CisJ ZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0Y2hB bnksICJBREQiKSAmJiBUYWlsTWF0Y2hlcygiRURHRSIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJM RVMiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1h dGNoQW55LCAiQUxURVIiLCAiVkVSVEVYfEVER0UiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEUi KTsKKwogCS8qIEFMVEVSIFJVTEUgPG5hbWU+LCBhZGQgT04gKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJSVUxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPTiIpOwpAQCAt MzEzNCw3ICszMTU3LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ CQkJCSAgIkZPUkVJR04gREFUQSBXUkFQUEVSIiwgIkZPUkVJR04gVEFCTEUiLAogCQkJCQkgICJG VU5DVElPTiIsICJJTkRFWCIsICJMQU5HVUFHRSIsICJMQVJHRSBPQkpFQ1QiLAogCQkJCQkgICJN QVRFUklBTElaRUQgVklFVyIsICJPUEVSQVRPUiIsICJQT0xJQ1kiLAotCQkJCQkgICJQUk9DRURV UkUiLCAiUFJPQ0VEVVJBTCBMQU5HVUFHRSIsICJQVUJMSUNBVElPTiIsICJST0xFIiwKKwkJCQkJ ICAiUFJPQ0VEVVJFIiwgIlBST0NFRFVSQUwgTEFOR1VBR0UiLCAiUFJPUEVSVFkgR1JBUEgiLCAi UFVCTElDQVRJT04iLCAiUk9MRSIsCiAJCQkJCSAgIlJPVVRJTkUiLCAiUlVMRSIsICJTQ0hFTUEi LCAiU0VRVUVOQ0UiLCAiU0VSVkVSIiwKIAkJCQkJICAiU1RBVElTVElDUyIsICJTVUJTQ1JJUFRJ T04iLCAiVEFCTEUiLAogCQkJCQkgICJUQUJMRVNQQUNFIiwgIlRFWFQgU0VBUkNIIiwgIlRSQU5T Rk9STSBGT1IiLApAQCAtMzE3Miw2ICszMTk1LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJfQogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiUFJP Q0VEVVJBTCIsICJMQU5HVUFHRSIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX2xhbmd1YWdlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJQ Uk9QRVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9m b3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9O IiwgIlJVTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9OIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJSVUxFIiwgTWF0Y2hBbnksICJPTiIpKQpAQCAtMzQ5 MCw2ICszNTE1LDI1IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVs c2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQT0xJQ1kiLCBNYXRjaEFueSwgIk9OIiwgTWF0Y2hB bnksICJBUyIsIE1hdGNoQW55LCAiVVNJTkciKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCisv KiBDUkVBVEUgUFJPUEVSVFkgR1JBUEggKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAi UFJPUEVSVFkiKSkKKwkJQ09NUExFVEVfV0lUSCgiR1JBUEgiKTsKKwllbHNlIGlmIChNYXRjaGVz KCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJ VEgoIlZFUlRFWCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIsICJH UkFQSCIsIE1hdGNoQW55LCAiVkVSVEVYfE5PREUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEVT Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0 Y2hBbnksICJWRVJURVh8Tk9ERSIsICJUQUJMRVMiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55 LCAiVkVSVEVYfE5PREUiLCAiVEFCTEVTIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRjaEFueSwgIlZFUlRFWHxOT0RFIiwgIlRBQkxF UyIsICIoKikiKSkKKwkJQ09NUExFVEVfV0lUSCgiRURHRSIpOworCWVsc2UgaWYgKEhlYWRNYXRj aGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiKSAmJiBUYWlsTWF0Y2hlcygiRURHRXxS RUxBVElPTlNISVAiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIik7CisJZWxzZSBpZiAoSGVh ZE1hdGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIsICJHUkFQSCIpICYmIFRhaWxNYXRjaGVzKCJF REdFfFJFTEFUSU9OU0hJUCIsICJUQUJMRVMiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCWVs c2UgaWYgKEhlYWRNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiKSAmJiBUYWls TWF0Y2hlcygiRURHRXxSRUxBVElPTlNISVAiLCAiVEFCTEVTIiwgIigiKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAogLyogQ1JFQVRF IFBVQkxJQ0FUSU9OICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnkpKQpAQCAtNDE5OSw2ICs0MjQzLDEyIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiUE9MSUNZIiwgTWF0 Y2hBbnksICJPTiIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNU UklDVCIpOwogCisJLyogRFJPUCBQUk9QRVJUWSBHUkFQSCAqLworCWVsc2UgaWYgKE1hdGNoZXMo IkRST1AiLCAiUFJPUEVSVFkiKSkKKwkJQ09NUExFVEVfV0lUSCgiR1JBUEgiKTsKKwllbHNlIGlm IChNYXRjaGVzKCJEUk9QIiwgIlBST1BFUlRZIiwgIkdSQVBIIikpCisJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Byb3BncmFwaHMpOworCiAJLyogRFJPUCBS VUxFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJSVUxFIiwgTWF0Y2hBbnkpKQogCQlD T01QTEVURV9XSVRIKCJPTiIpOwpAQCAtNDQ0Myw2ICs0NDkzLDcgQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJMQVJHRSBPQkpFQ1QiLAogCQkJCQkJ CQkJCQkiUEFSQU1FVEVSIiwKIAkJCQkJCQkJCQkJIlBST0NFRFVSRSIsCisJCQkJCQkJCQkJCSJQ Uk9QRVJUWSBHUkFQSCIsCiAJCQkJCQkJCQkJCSJST1VUSU5FIiwKIAkJCQkJCQkJCQkJIlNDSEVN QSIsCiAJCQkJCQkJCQkJCSJTRVFVRU5DRSIsCkBAIC00NTcxLDYgKzQ2MjIsMTQgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIKCJGUk9NIik7 CiAJfQogCisvKiBHUkFQSF9UQUJMRSAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFQSF9U QUJMRSIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdS QVBIX1RBQkxFIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfcHJvcGdyYXBocyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQVBIX1RBQkxF IiwgIigiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIk1BVENIIik7CisKIC8qIEdST1VQ IEJZICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00iLCBNYXRjaEFueSwgIkdST1VQIikp CiAJCUNPTVBMRVRFX1dJVEgoIkJZIik7CkBAIC00ODk0LDggKzQ5NTMsMTAgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIkNP TFVNTiIsICJBR0dSRUdBVEUiLCAiREFUQUJBU0UiLCAiRE9NQUlOIiwKIAkJCQkJICAiRVZFTlQg VFJJR0dFUiIsICJGT1JFSUdOIFRBQkxFIiwgIkZVTkNUSU9OIiwKIAkJCQkJICAiTEFSR0UgT0JK RUNUIiwgIk1BVEVSSUFMSVpFRCBWSUVXIiwgIkxBTkdVQUdFIiwKLQkJCQkJICAiUFVCTElDQVRJ T04iLCAiUFJPQ0VEVVJFIiwgIlJPTEUiLCAiUk9VVElORSIsICJTQ0hFTUEiLAorCQkJCQkgICJQ Uk9QRVJUWSBHUkFQSCIsICJQVUJMSUNBVElPTiIsICJQUk9DRURVUkUiLCAiUk9MRSIsICJST1VU SU5FIiwgIlNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFIiwgIlNVQlNDUklQVElPTiIsICJUQUJM RVNQQUNFIiwgIlRZUEUiLCAiVklFVyIpOworCWVsc2UgaWYgKE1hdGNoZXMoIlNFQ1VSSVRZIiwg IkxBQkVMIiwgIk9OIiwgIlBST1BFUlRZIiwgIkdSQVBIIikpCisJCUNPTVBMRVRFX1dJVEhfU0NI RU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Byb3BncmFwaHMpOwogCWVsc2UgaWYgKE1hdGNo ZXMoIlNFQ1VSSVRZIiwgIkxBQkVMIiwgIk9OIiwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiSVMiKTsKIApAQCAtNTMyNiw2ICs1Mzg3LDggQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIKCJPQkpFQ1QiKTsKIAkJZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURXxBTFRFUnxEUk9QIiwgIk1BVEVSSUFMSVpFRCIpKQog CQkJQ09NUExFVEVfV0lUSCgiVklFVyIpOworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRF fEFMVEVSfERST1AiLCAiUFJPUEVSVFkiKSkKKwkJCUNPTVBMRVRFX1dJVEgoIkdSQVBIIik7CiAJ CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJURVhUIikpCiAJCQlD T01QTEVURV9XSVRIKCJTRUFSQ0giKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURXxB TFRFUnxEUk9QIiwgIlVTRVIiKSkKZGlmZiAtLWdpdCBhL3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5s IGIvc3JjL2ZlX3V0aWxzL3BzcWxzY2FuLmwKaW5kZXggYjNjNmI4OGU5Y2EuLmEzNWJmYzcxYjE3 IDEwMDY0NAotLS0gYS9zcmMvZmVfdXRpbHMvcHNxbHNjYW4ubAorKysgYi9zcmMvZmVfdXRpbHMv cHNxbHNjYW4ubApAQCAtMjkzLDYgKzI5Myw4IEBAIGxlc3NfZXF1YWxzCQkiPD0iCiBncmVhdGVy X2VxdWFscwkiPj0iCiBsZXNzX2dyZWF0ZXIJIjw+Igogbm90X2VxdWFscwkJIiE9IgorLyogTm90 ZSB0aGVyZSBpcyBubyBuZWVkIGZvciBsZWZ0X2Fycm93LCBzaW5jZSAiPC0iIGlzIG5vdCBhIHNp bmdsZSBvcGVyYXRvci4gKi8KK3JpZ2h0X2Fycm93CQkiLT4iCiAKIC8qCiAgKiAic2VsZiIgaXMg dGhlIHNldCBvZiBjaGFycyB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhcyBzaW5nbGUtY2hhcmFj dGVyCkBAIC0zMDQsNyArMzA2LDcgQEAgbm90X2VxdWFscwkJIiE9IgogICogSWYgeW91IGNoYW5n ZSBlaXRoZXIgc2V0LCBhZGp1c3QgdGhlIGNoYXJhY3RlciBsaXN0cyBhcHBlYXJpbmcgaW4gdGhl CiAgKiBydWxlIGZvciAib3BlcmF0b3IiIQogICovCi1zZWxmCQkJWywoKVxbXF0uO1w6XCtcLVwq XC9cJVxeXDxcPlw9XQorc2VsZgkJCVssKClcW1xdLjtcOlx8XCtcLVwqXC9cJVxeXDxcPlw9XQog b3BfY2hhcnMJCVtcflwhXEBcI1xeXCZcfFxgXD9cK1wtXCpcL1wlXDxcPlw9XQogb3BlcmF0b3IJ CXtvcF9jaGFyc30rCiAKQEAgLTY1Miw2ICs2NTQsMTAgQEAgb3RoZXIJCQkuCiAJCQkJCUVDSE87 CiAJCQkJfQogCit7cmlnaHRfYXJyb3d9CXsKKwkJCQkJRUNITzsKKwkJCQl9CisKIAkvKgogCSAq IFRoZXNlIHJ1bGVzIGFyZSBzcGVjaWZpYyB0byBwc3FsIC0tLSB0aGV5IGltcGxlbWVudCBwYXJl bnRoZXNpcwogCSAqIGNvdW50aW5nIGFuZCBkZXRlY3Rpb24gb2YgY29tbWFuZC1lbmRpbmcgc2Vt aWNvbG9uLiAgVGhlc2UgbXVzdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtl ZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMmJiYzc4MDVmZTMuLjk3 ZWI1NDI0MTdhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgxLDEyIEBAIENBVEFMT0df SEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAogCXBnX3B1YmxpY2F0 aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2NyaXB0aW9uX3JlbC5o CisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ19wcm9wZ3JhcGhfZWxlbWVudC5oIFwKKwlw Z19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIFwKKwlwZ19wcm9wZ3JhcGhfbGFiZWwuaCBcCisJ cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmggXAorCXBnX3Byb3BncmFwaF9wcm9wZXJ0eS5o CiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZWMxY2Y0NjdmNmYuLjA3YjI2N2VmMDBjIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5LDExIEBAIGNhdGFsb2dfaGVhZGVycyA9 IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5oJywKICAg J3BnX3N1YnNjcmlwdGlvbl9yZWwuaCcsCisgICdwZ19wcm9wZ3JhcGhfZWxlbWVudC5oJywKKyAg J3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLmgnLAorICAncGdfcHJvcGdyYXBoX2xhYmVsLmgn LAorICAncGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgnLAorICAncGdfcHJvcGdyYXBoX3By b3BlcnR5LmgnLAogXQogCiAjIFRoZSAuZGF0IGZpbGVzIHdlIG5lZWQgY2FuIGp1c3QgYmUgbGlz dGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j bGFzcy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oCmluZGV4IGYwZDYxMmNhNDg3 Li42NDFjZTgwYmQyYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3MuaApAQCAtMTcxLDYgKzE3MSw3IEBA IE1BS0VfU1lTQ0FDSEUoUkVMTkFNRU5TUCwgcGdfY2xhc3NfcmVsbmFtZV9uc3BfaW5kZXgsIDEy OCk7CiAjZGVmaW5lCQkgIFJFTEtJTkRfRk9SRUlHTl9UQUJMRSAgICdmJwkvKiBmb3JlaWduIHRh YmxlICovCiAjZGVmaW5lCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgJ3AnIC8qIHBhcnRp dGlvbmVkIHRhYmxlICovCiAjZGVmaW5lCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVggJ0kn IC8qIHBhcnRpdGlvbmVkIGluZGV4ICovCisjZGVmaW5lCQkgIFJFTEtJTkRfUFJPUEdSQVBICQkg ICdnJwkvKiBwcm9wZXJ0eSBncmFwaCAqLwogCiAjZGVmaW5lCQkgIFJFTFBFUlNJU1RFTkNFX1BF Uk1BTkVOVAkncCcgLyogcmVndWxhciB0YWJsZSAqLwogI2RlZmluZQkJICBSRUxQRVJTSVNURU5D RV9VTkxPR0dFRAkndScgLyogdW5sb2dnZWQgcGVybWFuZW50IHRhYmxlICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdAppbmRleCA1YjhjMmFkMmE1NC4uMzViZWJiNzAzZDIgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdApAQCAtMzg3NCw2ICszODc0LDkgQEAKICAgcHJvYXJndHlwZXMgPT4gJ29pZCBv aWQnLCBwcm9zcmMgPT4gJ29pZGdlJyB9LAogCiAjIFN5c3RlbS12aWV3IHN1cHBvcnQgZnVuY3Rp b25zCit7IG9pZCA9PiAnODMwMicsIGRlc2NyID0+ICdzb3VyY2UgdGV4dCBvZiBhIHByb3BlcnR5 IGdyYXBoJywKKyAgcHJvbmFtZSA9PiAncGdfZ2V0X3Byb3BncmFwaGRlZicsIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBw cm9zcmMgPT4gJ3BnX2dldF9wcm9wZ3JhcGhkZWYnIH0sCiB7IG9pZCA9PiAnMTU3MycsIGRlc2Ny ID0+ICdzb3VyY2UgdGV4dCBvZiBhIHJ1bGUnLAogICBwcm9uYW1lID0+ICdwZ19nZXRfcnVsZWRl ZicsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsCiAgIHByb2FyZ3R5 cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX2dldF9ydWxlZGVmJyB9LApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4yYmMyMDY2YjZjMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAorICoJICBkZWZpbml0 aW9uIG9mIHRoZSAicHJvcGVydHkgZ3JhcGggZWxlbWVudHMiIHN5c3RlbSBjYXRhbG9nIChwZ19w cm9wZ3JhcGhfZWxlbWVudCkKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy NCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVy aXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfUFJPUEdSQVBIX0VMRU1FTlRfSAorI2RlZmluZSBQR19QUk9QR1JBUEhf RUxFTUVOVF9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJ cGdfcHJvcGdyYXBoX2VsZW1lbnQgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAq CQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudAorICogLS0tLS0t LS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3Byb3BncmFwaF9lbGVtZW50LDgyOTksUHJvcGdy YXBoRWxlbWVudFJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCisJLyogT0lEIG9mIHRoZSBw cm9wZXJ0eSBncmFwaCByZWxhdGlvbiAqLworCU9pZAkJCXBnZXBnaWQgQktJX0xPT0tVUChwZ19j bGFzcyk7CisKKwkvKiBPSUQgb2YgdGhlIGVsZW1lbnQgdGFibGUgKi8KKwlPaWQJCQlwZ2VyZWxp ZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsKKworCS8qIGVsZW1lbnQgYWxpYXMgKi8KKwlOYW1lRGF0 YQlwZ2VhbGlhczsKKworCS8qIHZlcnRleCBvciBlZGdlPyAtLSBzZWUgUEdFS0lORF8qIGJlbG93 ICovCisJY2hhcgkJcGdla2luZDsKKworCS8qIGZvciBlZGdlczogc291cmNlIHZlcnRleCAqLwor CU9pZAkJCXBnZXNyY3ZlcnRleGlkIEJLSV9MT09LVVBfT1BUKHBnX3Byb3BncmFwaF9lbGVtZW50 KTsKKworCS8qIGZvciBlZGdlczogZGVzdGluYXRpb24gdmVydGV4ICovCisJT2lkCQkJcGdlZGVz dHZlcnRleGlkIEJLSV9MT09LVVBfT1BUKHBnX3Byb3BncmFwaF9lbGVtZW50KTsKKworI2lmZGVm IENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICov CisJLyogZWxlbWVudCBrZXkgKGNvbHVtbiBudW1iZXJzIGluIHBnZXJlbGlkIHJlbGF0aW9uKSAq LworCWludDE2CQlwZ2VrZXlbMV0gQktJX0ZPUkNFX05PVF9OVUxMOworCisJLyoKKwkgKiBmb3Ig ZWRnZXM6IHNvdXJjZSB2ZXJ0ZXgga2V5IChjb2x1bW4gbnVtYmVycyBpbiBwZ2VyZWxpZCByZWxh dGlvbikKKwkgKi8KKwlpbnQxNgkJcGdlc3Jja2V5WzFdOworCisJLyoKKwkgKiBmb3IgZWRnZXM6 IHNvdXJjZSB2ZXJ0ZXggdGFibGUgcmVmZXJlbmNlZCBjb2x1bW5zIChjb2x1bW4gbnVtYmVycyBp bgorCSAqIHJlbGF0aW9uIHJlYWNoZWQgdmlhIHBnZXNyY3ZlcnRleGlkKQorCSAqLworCWludDE2 CQlwZ2VzcmNyZWZbMV07CisKKwkvKgorCSAqIGZvciBlZGdlczogZGVzdGluYXRpb24gdmVydGV4 IGtleSAoY29sdW1uIG51bWJlcnMgaW4gcGdlcmVsaWQgcmVsYXRpb24pCisJICovCisJaW50MTYJ CXBnZWRlc3RrZXlbMV07CisKKwkvKgorCSAqIGZvciBlZGdlczogZGVzdGluYXRpb24gdmVydGV4 IHRhYmxlIHJlZmVyZW5jZWQgY29sdW1ucyAoY29sdW1uIG51bWJlcnMKKwkgKiBpbiByZWxhdGlv biByZWFjaGVkIHZpYSBwZ2VkZXN0dmVydGV4aWQpCisJICovCisJaW50MTYJCXBnZWRlc3RyZWZb MV07CisjZW5kaWYKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnQ7CisKKy8qIC0tLS0t LS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IGNvcnJlc3BvbmRzIHRv IGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBnX3Byb3BncmFw aF9lbGVtZW50IHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZv cm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50ICpGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50Owor CitERUNMQVJFX1RPQVNUKHBnX3Byb3BncmFwaF9lbGVtZW50LCA4MzE1LCA4MzE2KTsKKworREVD TEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19wcm9wZ3JhcGhfZWxlbWVudF9vaWRfaW5kZXgsIDgz MDAsIFByb3BncmFwaEVsZW1lbnRPYmplY3RJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudCwg YnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3Byb3BncmFwaF9l bGVtZW50X2FsaWFzX2luZGV4LCA4MzAxLCBQcm9wZ3JhcGhFbGVtZW50QWxpYXNJbmRleElkLCBw Z19wcm9wZ3JhcGhfZWxlbWVudCwgYnRyZWUocGdlcGdpZCBvaWRfb3BzLCBwZ2VhbGlhcyBuYW1l X29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSEVMT0lELCBwZ19wcm9wZ3JhcGhfZWxl bWVudF9vaWRfaW5kZXgsIDEyOCk7CitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSEVMQUxJQVMsIHBn X3Byb3BncmFwaF9lbGVtZW50X2FsaWFzX2luZGV4LCAxMjgpOworCisjaWZkZWYgRVhQT1NFX1RP X0NMSUVOVF9DT0RFCisKKy8qCisgKiBTeW1ib2xpYyB2YWx1ZXMgZm9yIHBnZWtpbmQgY29sdW1u CisgKi8KKyNkZWZpbmUgUEdFS0lORF9WRVJURVggJ3YnCisjZGVmaW5lIFBHRUtJTkRfRURHRSAn ZScKKworI2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLworCisjZW5kaWYJ CQkJCQkJLyogUEdfUFJPUEdSQVBIX0VMRU1FTlRfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi45MTg1MWExOTI3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaApAQCAtMCwwICsxLDUxIEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbC5o CisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJl Z2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwuaAorICoKKyAqIE5PVEVTCisgKgkg IFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1h CisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVm IFBHX1BST1BHUkFQSF9FTEVNRU5UX0xBQkVMX0gKKyNkZWZpbmUgUEdfUFJPUEdSQVBIX0VMRU1F TlRfTEFCRUxfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0t LQorICoJCXBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIGRlZmluaXRpb24uICBjcHAgdHVybnMg dGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1l bnRfbGFiZWwKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhf ZWxlbWVudF9sYWJlbCw4MzA1LFByb3BncmFwaEVsZW1lbnRMYWJlbFJlbGF0aW9uSWQpCit7CisJ T2lkCQkJb2lkOworCisJLyogT0lEIG9mIHRoZSBsYWJlbCAqLworCU9pZAkJCXBnZWxsYWJlbGlk IEJLSV9MT09LVVAocGdfcHJvcGdyYXBoX2xhYmVsKTsKKworCS8qIE9JRCBvZiB0aGUgcHJvcGVy dHkgZ3JhcGggZWxlbWVudCAqLworCU9pZAkJCXBnZWxlbGlkIEJLSV9MT09LVVAocGdfcHJvcGdy YXBoX2VsZW1lbnQpOworfSBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbDsKKwor LyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwg Y29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQg b2YgcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0t LS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwgKkZv cm1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWw7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BL RVkocGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWxfb2lkX2luZGV4LCA4MzEyLCBQcm9wZ3JhcGhF bGVtZW50TGFiZWxPYmplY3RJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbCwgYnRy ZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3Byb3BncmFwaF9lbGVt ZW50X2xhYmVsX2VsZW1lbnRfbGFiZWxfaW5kZXgsIDgzMTMsIFByb3BncmFwaEVsZW1lbnRMYWJl bEVsZW1lbnRMYWJlbEluZGV4SWQsIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLCBidHJlZShw Z2VsZWxpZCBvaWRfb3BzLCBwZ2VsbGFiZWxpZCBvaWRfb3BzKSk7CitERUNMQVJFX0lOREVYKHBn X3Byb3BncmFwaF9lbGVtZW50X2xhYmVsX2xhYmVsX2luZGV4LCA4MzE3LCBQcm9wZ3JhcGhFbGVt ZW50TGFiZWxMYWJlbEluZGV4SWQsIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsLCBidHJlZShw Z2VsbGFiZWxpZCBvaWRfb3BzKSk7CisKK01BS0VfU1lTQ0FDSEUoUFJPUEdSQVBIRUxFTUVOVExB QkVMRUxFTUVOVExBQkVMLCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9sYWJlbF9lbGVtZW50X2xhYmVs X2luZGV4LCAxMjgpOworCisjZW5kaWYJCQkJCQkJLyogUEdfUFJPUEdSQVBIX0VMRU1FTlRfTEFC RUxfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFi ZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM2YjcxMTM1MWI1Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaApAQCAtMCwwICsx LDUxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wcm9wZ3JhcGhfbGFiZWwuaAor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFs b2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5m b3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfUFJPUEdS QVBIX0xBQkVMX0gKKyNkZWZpbmUgUEdfUFJPUEdSQVBIX0xBQkVMX0gKKworI2luY2x1ZGUgImNh dGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfZC5o IgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfcHJvcGdyYXBoX2xhYmVsIGRlZmluaXRp b24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdf cHJvcGdyYXBoX2xhYmVsCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfcHJv cGdyYXBoX2xhYmVsLDgzMDMsUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsKKworCS8qIE9JRCBvZiB0aGUgcHJvcGVydHkgZ3JhcGggcmVsYXRpb24gKi8KKwlPaWQJCQlw Z2xwZ2lkIEJLSV9MT09LVVAocGdfY2xhc3MpOworCisJLyogbGFiZWwgbmFtZSAqLworCU5hbWVE YXRhCXBnbGxhYmVsOworfSBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfbGFiZWw7CisKKy8qIC0tLS0t LS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCBjb3JyZXNwb25kcyB0byBh IHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wcm9wZ3JhcGhf bGFiZWwgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURh dGFfcGdfcHJvcGdyYXBoX2xhYmVsICpGb3JtX3BnX3Byb3BncmFwaF9sYWJlbDsKKworREVDTEFS RV9VTklRVUVfSU5ERVhfUEtFWShwZ19wcm9wZ3JhcGhfbGFiZWxfb2lkX2luZGV4LCA4MzA0LCBQ cm9wZ3JhcGhMYWJlbE9iamVjdEluZGV4SWQsIHBnX3Byb3BncmFwaF9sYWJlbCwgYnRyZWUob2lk IG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3Byb3BncmFwaF9sYWJlbF9ncmFw aF9uYW1lX2luZGV4LCA4MzE0LCBQcm9wZ3JhcGhMYWJlbEdyYXBoTmFtZUluZGV4SWQsIHBnX3By b3BncmFwaF9sYWJlbCwgYnRyZWUocGdscGdpZCBvaWRfb3BzLCBwZ2xsYWJlbCBuYW1lX29wcykp OworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSExBQkVMT0lELCBwZ19wcm9wZ3JhcGhfbGFiZWxf b2lkX2luZGV4LCAxMjgpOworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhMQUJFTE5BTUUsIHBnX3By b3BncmFwaF9sYWJlbF9ncmFwaF9uYW1lX2luZGV4LCAxMjgpOworCisjZW5kaWYJCQkJCQkJLyog UEdfUFJPUEdSQVBIX0xBQkVMX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b3BncmFwaF9sYWJlbF9wcm9wZXJ0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5hOTU5NTIxNTY3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgKQEAgLTAsMCArMSw1OSBAQAorLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5LmgKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBD YXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkg IGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX1BS T1BHUkFQSF9MQUJFTF9QUk9QRVJUWV9ICisjZGVmaW5lIFBHX1BST1BHUkFQSF9MQUJFTF9QUk9Q RVJUWV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQor ICoJCXBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRo aXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9sYWJlbF9w cm9wZXJ0eQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3Byb3BncmFwaF9s YWJlbF9wcm9wZXJ0eSw4MzE4LFByb3BncmFwaExhYmVsUHJvcGVydHlSZWxhdGlvbklkKQorewor CU9pZAkJCW9pZDsKKworCS8qIE9JRCBvZiB0aGUgcHJvcGVydHkgKi8KKwlPaWQJCQlwbHBwcm9w aWQgQktJX0xPT0tVUChwZ19wcm9wZ3JhcGhfcHJvcGVydHkpOworCisJLyogT0lEIG9mIHRoZSBl bGVtZW50IGxhYmVsICovCisJT2lkCQkJcGxwZWxsYWJlbGlkIEJLSV9MT09LVVAocGdfcHJvcGdy YXBoX2VsZW1lbnRfbGFiZWwpOworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJs ZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIHByb3BlcnR5IGV4cHJlc3Npb24g Ki8KKwlwZ19ub2RlX3RyZWUgcGxwZXhwciBCS0lfRk9SQ0VfTk9UX05VTEw7CisKKyNlbmRpZgor fSBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHk7CisKKy8qIC0tLS0tLS0tLS0t LS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSBjb3JyZXNwb25kcyB0 byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wcm9wZ3Jh cGhfbGFiZWxfcHJvcGVydHkgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5 cGVkZWYgRm9ybURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5ICpGb3JtX3BnX3Byb3Bn cmFwaF9sYWJlbF9wcm9wZXJ0eTsKKworREVDTEFSRV9UT0FTVChwZ19wcm9wZ3JhcGhfbGFiZWxf cHJvcGVydHksIDgzMTksIDgzMjApOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3By b3BncmFwaF9sYWJlbF9wcm9wZXJ0eV9vaWRfaW5kZXgsIDgzMjEsIFByb3BncmFwaExhYmVsUHJv cGVydHlPYmplY3RJbmRleElkLCBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHksIGJ0cmVlKG9p ZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhfbGFiZWxfcHJv cGVydHlfbGFiZWxfcHJvcF9pbmRleCwgODMyMiwgUHJvcGdyYXBoTGFiZWxQcm9wZXJ0eUxhYmVs UHJvcEluZGV4SWQsIHBnX3Byb3BncmFwaF9sYWJlbF9wcm9wZXJ0eSwgYnRyZWUocGxwZWxsYWJl bGlkIG9pZF9vcHMsIHBscHByb3BpZCBvaWRfb3BzKSk7CisKK01BS0VfU1lTQ0FDSEUoUFJPUEdS QVBITEFCRUxQUk9QLCBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHlfbGFiZWxfcHJvcF9pbmRl eCwgMTI4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1BST1BHUkFQSF9MQUJFTF9QUk9QRVJUWV9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0 eS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjg5MjFhY2UzMGMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oCkBAIC0w LDAgKzEsNTQgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Byb3BncmFwaF9wcm9w ZXJ0eS5oCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgKKyAqCisgKiBOT1RFUworICoJ ICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVt YQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRl ZiBQR19QUk9QR1JBUEhfUFJPUEVSVFlfSAorI2RlZmluZSBQR19QUk9QR1JBUEhfUFJPUEVSVFlf SAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3By b3BncmFwaF9wcm9wZXJ0eV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19wcm9w Z3JhcGhfcHJvcGVydHkgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBl ZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkKKyAqIC0tLS0tLS0tLS0t LS0tLS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhfcHJvcGVydHksODMwNixQcm9wZ3JhcGhQ cm9wZXJ0eVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCisJLyogT0lEIG9mIHRoZSBwcm9w ZXJ0eSBncmFwaCByZWxhdGlvbiAqLworCU9pZAkJCXBncHBnaWQgQktJX0xPT0tVUChwZ19jbGFz cyk7CisKKwkvKiBwcm9wZXJ0eSBuYW1lICovCisJTmFtZURhdGEJcGdwbmFtZTsKKworCS8qIGRh dGEgdHlwZSBvZiB0aGUgcHJvcGVydHkgKi8KKwlPaWQJCQlwZ3B0eXBpZCBCS0lfTE9PS1VQX09Q VChwZ190eXBlKTsKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX3Byb3BlcnR5OworCisvKiAtLS0t LS0tLS0tLS0tLS0tCisgKgkJRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkgY29ycmVzcG9uZHMg dG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcHJvcGdy YXBoX3Byb3BlcnR5IHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVm IEZvcm1EYXRhX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSAqRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVy dHk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcHJvcGdyYXBoX3Byb3BlcnR5X29p ZF9pbmRleCwgODMwNywgUHJvcGdyYXBoUHJvcGVydHlPYmplY3RJbmRleElkLCBwZ19wcm9wZ3Jh cGhfcHJvcGVydHksIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChw Z19wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZV9pbmRleCwgODMwOCwgUHJvcGdyYXBoUHJvcGVydHlO YW1lSW5kZXhJZCwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5LCBidHJlZShwZ3BwZ2lkIG9pZF9vcHMs IHBncG5hbWUgbmFtZV9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShQUk9QR1JBUEhQUk9QT0lELCBw Z19wcm9wZ3JhcGhfcHJvcGVydHlfb2lkX2luZGV4LCAxMjgpOworTUFLRV9TWVNDQUNIRShQUk9Q R1JBUEhQUk9QTkFNRSwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5X25hbWVfaW5kZXgsIDEyOCk7CisK KyNlbmRpZgkJCQkJCQkvKiBQR19QUk9QR1JBUEhfUFJPUEVSVFlfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvcHJvcGdyYXBoY21kcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4yNDQwYmQ0YTYwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3By b3BncmFwaGNtZHMuaApAQCAtMCwwICsxLDIzIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBwcm9wZ3JhcGhjbWRzLmgKKyAqCSAgcHJvdG90eXBlcyBmb3IgcHJvcGdyYXBoY21kcy5jLgor ICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9j b21tYW5kcy9wcm9wZ3JhcGhjbWRzLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aWZuZGVmIFBST1BHUkFQSENNRFNfSAorI2RlZmluZSBQUk9QR1JBUEhDTURTX0gKKworI2luY2x1 ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2Rl LmgiCisKK2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVByb3BHcmFwaChQYXJzZVN0YXRlICpw c3RhdGUsIGNvbnN0IENyZWF0ZVByb3BHcmFwaFN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQWx0ZXJQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBBbHRlclByb3BH cmFwaFN0bXQgKnN0bXQpOworCisjZW5kaWYJCQkJCQkJLyogUFJPUEdSQVBIQ01EU19IICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOGRkNDIxZmEwZWYuLmIzNzQyZTNiNDQ4IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC02OTMsNiArNjkzLDE5IEBAIHR5cGVkZWYgc3RydWN0IFJhbmdl VGFibGVGdW5jQ29sCiAJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3Ig LTEgaWYgdW5rbm93biAqLwogfSBSYW5nZVRhYmxlRnVuY0NvbDsKIAorLyoKKyAqIFJhbmdlR3Jh cGhUYWJsZSAtIHJhdyBmb3JtIG9mIEdSQVBIX1RBQkxFIGNsYXVzZQorICovCit0eXBlZGVmIHN0 cnVjdCBSYW5nZUdyYXBoVGFibGUKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKmdy YXBoX25hbWU7CisJc3RydWN0IEdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybjsKKwlMaXN0CSAg ICpjb2x1bW5zOworCUFsaWFzCSAgICphbGlhczsJCQkvKiB0YWJsZSBhbGlhcyAmIG9wdGlvbmFs IGNvbHVtbiBhbGlhc2VzICovCisJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlv biwgb3IgLTEgaWYgdW5rbm93biAqLworfSBSYW5nZUdyYXBoVGFibGU7CisKIC8qCiAgKiBSYW5n ZVRhYmxlU2FtcGxlIC0gVEFCTEVTQU1QTEUgYXBwZWFyaW5nIGluIGEgcmF3IEZST00gY2xhdXNl CiAgKgpAQCAtOTU5LDYgKzk3Miw0MiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJ0aXRpb25DbWQKIAli b29sCQljb25jdXJyZW50OwogfSBQYXJ0aXRpb25DbWQ7CiAKKy8qCisgKiBOb2RlcyBmb3IgZ3Jh cGggcGF0dGVybgorICovCisKK3R5cGVkZWYgc3RydWN0IEdyYXBoUGF0dGVybgoreworCU5vZGVU YWcJCXR5cGU7CisJTGlzdAkgICAqcGF0aF9wYXR0ZXJuX2xpc3Q7CisJTm9kZQkgICAqd2hlcmVD bGF1c2U7Cit9IEdyYXBoUGF0dGVybjsKKwordHlwZWRlZiBlbnVtIEdyYXBoRWxlbWVudFBhdHRl cm5LaW5kCit7CisJVkVSVEVYX1BBVFRFUk4sCisJRURHRV9QQVRURVJOX0xFRlQsCisJRURHRV9Q QVRURVJOX1JJR0hULAorCUVER0VfUEFUVEVSTl9BTlksCisJUEFSRU5fRVhQUiwKK30gR3JhcGhF bGVtZW50UGF0dGVybktpbmQ7CisKKyNkZWZpbmUgSVNfRURHRV9QQVRURVJOKGtpbmQpICgoa2lu ZCkgPT0gRURHRV9QQVRURVJOX0FOWSB8fCBcCisJCQkJCQkJICAgKGtpbmQpID09IEVER0VfUEFU VEVSTl9SSUdIVCB8fCBcCisJCQkJCQkJICAgKGtpbmQpID09IEVER0VfUEFUVEVSTl9MRUZUKQor Cit0eXBlZGVmIHN0cnVjdCBHcmFwaEVsZW1lbnRQYXR0ZXJuCit7CisJTm9kZVRhZwkJdHlwZTsK KwlHcmFwaEVsZW1lbnRQYXR0ZXJuS2luZCBraW5kOworCWNvbnN0IGNoYXIgKnZhcmlhYmxlOwor CU5vZGUJICAgKmxhYmVsZXhwcjsKKwlMaXN0CSAgICpzdWJleHByOworCU5vZGUJICAgKndoZXJl Q2xhdXNlOworCUxpc3QJICAgKnF1YW50aWZpZXI7CisJUGFyc2VMb2MJbG9jYXRpb247Cit9IEdy YXBoRWxlbWVudFBhdHRlcm47CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKglOb2RlcyBmb3Ig YSBRdWVyeSB0cmVlCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTEwMzEsNiArMTA4MCw3IEBA IHR5cGVkZWYgZW51bSBSVEVLaW5kCiAJUlRFX1ZBTFVFUywJCQkJCS8qIFZBTFVFUyAoPGV4cHJs aXN0PiksICg8ZXhwcmxpc3Q+KSwgLi4uICovCiAJUlRFX0NURSwJCQkJCS8qIGNvbW1vbiB0YWJs ZSBleHByIChXSVRIIGxpc3QgZWxlbWVudCkgKi8KIAlSVEVfTkFNRURUVVBMRVNUT1JFLAkJLyog dHVwbGVzdG9yZSwgZS5nLiBmb3IgQUZURVIgdHJpZ2dlcnMgKi8KKwlSVEVfR1JBUEhfVEFCTEUs CQkJLyogR1JBUEhfVEFCTEUgY2xhdXNlICovCiAJUlRFX1JFU1VMVCwJCQkJCS8qIFJURSByZXBy ZXNlbnRzIGFuIGVtcHR5IEZST00gY2xhdXNlOyBzdWNoCiAJCQkJCQkJCSAqIFJURXMgYXJlIGFk ZGVkIGJ5IHRoZSBwbGFubmVyLCB0aGV5J3JlIG5vdAogCQkJCQkJCQkgKiBwcmVzZW50IGR1cmlu ZyBwYXJzaW5nIG9yIHJld3JpdGluZyAqLwpAQCAtMTE5Miw2ICsxMjQyLDEyIEBAIHR5cGVkZWYg c3RydWN0IFJhbmdlVGJsRW50cnkKIAkgKi8KIAlUYWJsZUZ1bmMgICp0YWJsZWZ1bmM7CiAKKwkv KgorCSAqIEZpZWxkcyB2YWxpZCBmb3IgYSBncmFwaCB0YWJsZSBSVEUgKGVsc2UgTlVMTCk6CisJ ICovCisJR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuOworCUxpc3QJICAgKmdyYXBoX3RhYmxl X2NvbHVtbnM7CisKIAkvKgogCSAqIEZpZWxkcyB2YWxpZCBmb3IgYSB2YWx1ZXMgUlRFIChlbHNl IE5JTCk6CiAJICovCkBAIC0yMzM5LDYgKzIzOTUsNyBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlw ZQogCU9CSkVDVF9QQVJBTUVURVJfQUNMLAogCU9CSkVDVF9QT0xJQ1ksCiAJT0JKRUNUX1BST0NF RFVSRSwKKwlPQkpFQ1RfUFJPUEdSQVBILAogCU9CSkVDVF9QVUJMSUNBVElPTiwKIAlPQkpFQ1Rf UFVCTElDQVRJT05fTkFNRVNQQUNFLAogCU9CSkVDVF9QVUJMSUNBVElPTl9SRUwsCkBAIC00MDg1 LDYgKzQxNDIsODggQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlQ2FzdFN0bXQKIAlib29sCQlpbm91 dDsKIH0gQ3JlYXRlQ2FzdFN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCUNS RUFURSBQUk9QRVJUWSBHUkFQSCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlUHJvcEdyYXBoU3RtdAoreworCU5vZGVUYWcJCXR5 cGU7CisJUmFuZ2VWYXIgICAqcGduYW1lOworCUxpc3QJICAgKnZlcnRleF90YWJsZXM7CisJTGlz dAkgICAqZWRnZV90YWJsZXM7Cit9IENyZWF0ZVByb3BHcmFwaFN0bXQ7CisKK3R5cGVkZWYgc3Ry dWN0IFByb3BHcmFwaFZlcnRleAoreworCU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAqdnRh YmxlOworCUxpc3QJICAgKnZrZXk7CisJTGlzdAkgICAqbGFiZWxzOworCVBhcnNlTG9jCWxvY2F0 aW9uOworfSBQcm9wR3JhcGhWZXJ0ZXg7CisKK3R5cGVkZWYgc3RydWN0IFByb3BHcmFwaEVkZ2UK K3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKmV0YWJsZTsKKwlMaXN0CSAgICpla2V5 OworCUxpc3QJICAgKmVzcmNrZXk7CisJY2hhcgkgICAqZXNyY3ZlcnRleDsKKwlMaXN0CSAgICpl c3JjdmVydGV4Y29sczsKKwlMaXN0CSAgICplZGVzdGtleTsKKwljaGFyCSAgICplZGVzdHZlcnRl eDsKKwlMaXN0CSAgICplZGVzdHZlcnRleGNvbHM7CisJTGlzdAkgICAqbGFiZWxzOworCVBhcnNl TG9jCWxvY2F0aW9uOworfSBQcm9wR3JhcGhFZGdlOworCit0eXBlZGVmIHN0cnVjdCBQcm9wR3Jh cGhMYWJlbEFuZFByb3BlcnRpZXMKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNvbnN0IGNoYXIgKmxh YmVsOworCXN0cnVjdCBQcm9wR3JhcGhQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzOworCVBhcnNlTG9j CWxvY2F0aW9uOworfSBQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXM7CisKK3R5cGVkZWYgc3Ry dWN0IFByb3BHcmFwaFByb3BlcnRpZXMKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnBy b3BlcnRpZXM7CisJYm9vbAkJYWxsOworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBQcm9wR3JhcGhQ cm9wZXJ0aWVzOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKglBTFRFUiBQUk9QRVJU WSBHUkFQSCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCit0eXBl ZGVmIGVudW0gQWx0ZXJQcm9wR3JhcGhFbGVtZW50S2luZAoreworCVBST1BHUkFQSF9FTEVNRU5U X0tJTkRfVkVSVEVYID0gMSwKKwlQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX0VER0UgPSAyLAorfSBB bHRlclByb3BHcmFwaEVsZW1lbnRLaW5kOworCit0eXBlZGVmIHN0cnVjdCBBbHRlclByb3BHcmFw aFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnBnbmFtZTsKKwlib29sCQlt aXNzaW5nX29rOworCUxpc3QJICAgKmFkZF92ZXJ0ZXhfdGFibGVzOworCUxpc3QJICAgKmFkZF9l ZGdlX3RhYmxlczsKKwlMaXN0CSAgICpkcm9wX3ZlcnRleF90YWJsZXM7CisJTGlzdAkgICAqZHJv cF9lZGdlX3RhYmxlczsKKwlEcm9wQmVoYXZpb3IgZHJvcF9iZWhhdmlvcjsKKwlBbHRlclByb3BH cmFwaEVsZW1lbnRLaW5kIGVsZW1lbnRfa2luZDsKKwljb25zdCBjaGFyICplbGVtZW50X2FsaWFz OworCUxpc3QJICAgKmFkZF9sYWJlbHM7CisJY29uc3QgY2hhciAqZHJvcF9sYWJlbDsKKwljb25z dCBjaGFyICphbHRlcl9sYWJlbDsKKwlQcm9wR3JhcGhQcm9wZXJ0aWVzICphZGRfcHJvcGVydGll czsKKwlMaXN0CSAgICpkcm9wX3Byb3BlcnRpZXM7Cit9IEFsdGVyUHJvcEdyYXBoU3RtdDsKKwog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJQ1JFQVRFIFRSQU5TRk9STSBTdGF0ZW1lbnQK ICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggODM5ZTcx ZDUyZjQuLmJiOTU4NGJjOTJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMjE1Nyw2ICsyMTU3 LDI4IEBAIHR5cGVkZWYgc3RydWN0IFJldHVybmluZ0V4cHIKIAlFeHByCSAgICpyZXRleHByOwkJ LyogZXhwcmVzc2lvbiB0byBiZSByZXR1cm5lZCAqLwogfSBSZXR1cm5pbmdFeHByOwogCisvKgor ICogR3JhcGhMYWJlbFJlZiAtIGxhYmVsIHJlZmVyZW5jZSBpbiBsYWJlbCBleHByZXNzaW9uIGlu c2lkZSBHUkFQSF9UQUJMRSBjbGF1c2UKKyAqLwordHlwZWRlZiBzdHJ1Y3QgR3JhcGhMYWJlbFJl ZgoreworCU5vZGVUYWcJCXR5cGU7CisJT2lkCQkJbGFiZWxpZDsKKwlQYXJzZUxvYwlsb2NhdGlv bjsKK30gR3JhcGhMYWJlbFJlZjsKKworLyoKKyAqIEdyYXBoUHJvcGVydHlSZWYgLSBwcm9wZXJ0 eSByZWZlcmVuY2UgaW5zaWRlIEdSQVBIX1RBQkxFIGNsYXVzZQorICovCit0eXBlZGVmIHN0cnVj dCBHcmFwaFByb3BlcnR5UmVmCit7CisJRXhwcgkJeHByOworCWNvbnN0IGNoYXIgKmVsdmFybmFt ZTsKKwlPaWQJCQlwcm9waWQ7CisJT2lkCQkJdHlwZUlkOworCVBhcnNlTG9jCWxvY2F0aW9uOwor fSBHcmFwaFByb3BlcnR5UmVmOworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBUYXJnZXRF bnRyeSAtCiAgKgkgICBhIHRhcmdldCBlbnRyeSAodXNlZCBpbiBxdWVyeSB0YXJnZXQgbGlzdHMp CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2FuYWx5emUuaAppbmRleCBmMWJkMThjNDlmMi4uODdhZTUzNzk3ZDEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2FuYWx5emUuaApAQCAtNjMsNSArNjMsOCBAQCBleHRlcm4gTGlzdCAqQnVpbGRPbkNvbmZsaWN0 RXhjbHVkZWRUYXJnZXRsaXN0KFJlbGF0aW9uIHRhcmdldHJlbCwKIAkJCQkJCQkJCQkJICAgSW5k ZXggZXhjbFJlbEluZGV4KTsKIAogZXh0ZXJuIFNvcnRHcm91cENsYXVzZSAqbWFrZVNvcnRHcm91 cENsYXVzZUZvclNldE9wKE9pZCByZXNjb2x0eXBlLCBib29sIHJlcXVpcmVfaGFzaCk7CitleHRl cm4gdm9pZCBjb25zdHJ1Y3RTZXRPcFRhcmdldGxpc3QoU2V0T3BlcmF0aW9uU3RtdCAqb3AsIExp c3QgKmx0YXJnZXRsaXN0LAorCQkJCQkJCQkJIExpc3QgKnJ0YXJnZXRsaXN0LCBMaXN0ICoqdGFy Z2V0bGlzdCwgY29uc3QgY2hhciAqY29udGV4dCwKKwkJCQkJCQkJCSBQYXJzZVN0YXRlICpwc3Rh dGUsIGJvb2wgcmVjdXJzaXZlKTsKIAogI2VuZGlmCQkJCQkJCS8qIEFOQUxZWkVfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCmluZGV4IDQwY2YwOTBjZTYxLi4yMTRhNzUwYmY4NyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtMTM2LDYgKzEzNiw3IEBAIFBHX0tFWVdPUkQoImRlbGltaXRlcnMiLCBERUxJTUlURVJT LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJkZXBlbmRzIiwg REVQRU5EUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGVw dGgiLCBERVBUSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi ZGVzYyIsIERFU0MsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJk ZXN0aW5hdGlvbiIsIERFU1RJTkFUSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJkZXRhY2giLCBERVRBQ0gsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoImRpY3Rpb25hcnkiLCBESUNUSU9OQVJZLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJkaXNhYmxlIiwgRElTQUJMRV9QLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCkBAIC0xNDcsNiArMTQ4LDcgQEAgUEdfS0VZV09S RCgiZG9tYWluIiwgRE9NQUlOX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoImRvdWJsZSIsIERPVUJMRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJkcm9wIiwgRFJPUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgiZWFjaCIsIEVBQ0gsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKK1BHX0tFWVdPUkQoImVkZ2UiLCBFREdFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJlbHNlIiwgRUxTRSwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoImVtcHR5IiwgRU1QVFlfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5hYmxlIiwgRU5BQkxFX1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKQEAgLTE5MSw2ICsxOTMsOCBAQCBQR19LRVlXT1JEKCJnZW5lcmF0 ZWQiLCBHRU5FUkFURUQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImdsb2JhbCIsIEdMT0JBTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgiZ3JhbnQiLCBHUkFOVCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19L RVlXT1JEKCJncmFudGVkIiwgR1JBTlRFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQorUEdfS0VZV09SRCgiZ3JhcGgiLCBHUkFQSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQorUEdfS0VZV09SRCgiZ3JhcGhfdGFibGUiLCBHUkFQSF9UQUJMRSwgQ09MX05BTUVfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImdyZWF0ZXN0IiwgR1JFQVRFU1QsIENPTF9O QU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJncm91cCIsIEdST1VQX1AsIFJF U0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgiZ3JvdXBpbmciLCBHUk9VUElO RywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTI5NSw2ICsyOTksNyBAQCBQR19L RVlXT1JEKCJuZmQiLCBORkQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoIm5ma2MiLCBORktDLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJuZmtkIiwgTkZLRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgibm8iLCBOTywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZ V09SRCgibm9kZSIsIE5PREUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoIm5vbmUiLCBOT05FLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgibm9ybWFsaXplIiwgTk9STUFMSVpFLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibm9ybWFsaXplZCIsIE5PUk1BTElaRUQsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKQEAgLTM1Nyw2ICszNjIsOCBAQCBQR19LRVlXT1JEKCJwcm9jZWR1cmFs IiwgUFJPQ0VEVVJBTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgicHJvY2VkdXJlIiwgUFJPQ0VEVVJFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJwcm9jZWR1cmVzIiwgUFJPQ0VEVVJFUywgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicHJvZ3JhbSIsIFBST0dSQU0sIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInByb3BlcnRpZXMiLCBQUk9QRVJUSUVT LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJwcm9wZXJ0eSIs IFBST1BFUlRZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJw dWJsaWNhdGlvbiIsIFBVQkxJQ0FUSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJxdW90ZSIsIFFVT1RFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJxdW90ZXMiLCBRVU9URVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKQEAgLTM3MCw2ICszNzcsNyBAQCBQR19LRVlXT1JEKCJyZWZlcmVuY2VzIiwgUkVG RVJFTkNFUywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJlZmVy ZW5jaW5nIiwgUkVGRVJFTkNJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInJlZnJlc2giLCBSRUZSRVNILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJyZWluZGV4IiwgUkVJTkRFWCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQorUEdfS0VZV09SRCgicmVsYXRpb25zaGlwIiwgUkVMQVRJT05TSElQLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyZWxhdGl2ZSIsIFJFTEFU SVZFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJlbGVh c2UiLCBSRUxFQVNFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJyZW5hbWUiLCBSRU5BTUUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTQ4 OSw2ICs0OTcsNyBAQCBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVT RVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwg VFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZlcnNpb24i LCBWRVJTSU9OX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InZlcnRleCIsIFZFUlRFWCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgidmlldyIsIFZJRVcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoInZpZXdzIiwgVklFV1MsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInZpcnR1YWwiLCBWSVJUVUFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYWYwZjU1MGNkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICoKKyAqIHBhcnNlX2dyYXBodGFibGUuaAorICoJCXBhcnNpbmcgb2Yg R1JBUEhfVEFCTEUKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoK KyAqIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxlLmgKKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLworI2lmbmRlZiBQQVJTRV9HUkFQSFRBQkxFX0gKKyNkZWZpbmUgUEFSU0Vf R1JBUEhUQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAi bm9kZXMvcGdfbGlzdC5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisKK3R5cGVk ZWYgc3RydWN0IEdyYXBoVGFibGVQYXJzZVN0YXRlCit7CisJT2lkCQkJZ3JhcGhpZDsKKwlMaXN0 CSAgICp2YXJpYWJsZXM7Cit9IEdyYXBoVGFibGVQYXJzZVN0YXRlOworCitleHRlcm4gTm9kZSAq Z3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1u UmVmICpjcmVmLCBOb2RlICp2YXIpOworCitleHRlcm4gTm9kZSAqdHJhbnNmb3JtR3JhcGhQYXR0 ZXJuKFBhcnNlU3RhdGUgKnBzdGF0ZSwgR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsIEdy YXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybik7CisKKyNlbmRpZgkJCQkJCQkvKiBQQVJTRV9HUkFQ SFRBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDk5NDI4NDAxOWZiLi41NGQ2 ZjZiOWI3NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04Miw2ICs4Miw3IEBAIHR5cGVk ZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBj b25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8q IGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVf TUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlFWFBSX0tJTkRfUFJPUEdSQVBIX1BST1BF UlRZLAkvKiBkZXJpdmVkIHByb3BlcnR5IGV4cHJlc3Npb24gKi8KIH0gUGFyc2VFeHByS2luZDsK IAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCmluZGV4IDNlY2U1Y2Q0ZWVmLi45OWFh NzgzZmE1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTgxLDYgKzgxLDE0 IEBAIGV4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVFbnRyeUZvclRhYmxl RnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCSAgQWxpYXMgKmFsaWFzLAog CQkJCQkJCQkJCQkJCQkgIGJvb2wgbGF0ZXJhbCwKIAkJCQkJCQkJCQkJCQkJICBib29sIGluRnJv bUNsKTsKK2V4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVFbnRyeUZvckdy YXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQkJCQkgICBPaWQgZ3JhcGhp ZCwKKwkJCQkJCQkJCQkJCQkJICAgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuLAorCQkJCQkJ CQkJCQkJCQkgICBMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQkJCQkJCQkgICBMaXN0ICpjb2xuYW1l cywKKwkJCQkJCQkJCQkJCQkJICAgQWxpYXMgKmFsaWFzLAorCQkJCQkJCQkJCQkJCQkgICBib29s IGxhdGVyYWwsCisJCQkJCQkJCQkJCQkJCSAgIGJvb2wgaW5Gcm9tQ2wpOwogZXh0ZXJuIFBhcnNl TmFtZXNwYWNlSXRlbSAqYWRkUmFuZ2VUYWJsZUVudHJ5Rm9ySm9pbihQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkJCQkJCQkJIExpc3QgKmNvbG5hbWVzLAogCQkJCQkJCQkJCQkJCSBQYXJzZU5h bWVzcGFjZUNvbHVtbiAqbnNjb2x1bW5zLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmV3cml0 ZS9yZXdyaXRlR3JhcGhUYWJsZS5oIGIvc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlR3JhcGhU YWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYzAzMTlmNWNm YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFi bGUuaApAQCAtMCwwICsxLDIxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiByZXdyaXRl R3JhcGhUYWJsZS5oCisgKgkJU3VwcG9ydCBmb3IgcmV3cml0aW5nIEdSQVBIX1RBQkxFIGNsYXVz ZXMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMv aW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworI2lmbmRlZiBSRVdSSVRFR1JBUEhUQUJMRV9ICisjZGVmaW5lIFJFV1JJVEVHUkFQ SFRBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0ZXJuIFF1ZXJ5 ICpyZXdyaXRlR3JhcGhUYWJsZShRdWVyeSAqcGFyc2V0cmVlLCBpbnQgcnRfaW5kZXgpOworCisj ZW5kaWYJCQkJCQkJLyogUkVXUklURUdSQVBIVEFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApp bmRleCBkMjUwYTcxNGQ1OS4uZGYzYmMxZDZiMzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC00 OCw2ICs0OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfT1BFUkFUT1JfQ0xBU1MsICJBTFRF UiBPUEVSQVRPUiBDTEFTUyIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX09QRVJBVE9SX0ZBTUlMWSwgIkFMVEVSIE9QRVJBVE9SIEZBTUlMWSIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfUE9MSUNZLCAiQUxURVIgUE9MSUNZIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9QUk9DRURVUkUsICJB TFRFUiBQUk9DRURVUkUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FM VEVSX1BST1BFUlRZX0dSQVBILCAiQUxURVIgUFJPUEVSVFkgR1JBUEgiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1BVQkxJQ0FUSU9OLCAiQUxURVIgUFVCTElD QVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1JPTEUs ICJBTFRFUiBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxU RVJfUk9VVElORSwgIkFMVEVSIFJPVVRJTkUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMDMs NiArMTA0LDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfT1BFUkFUT1JfQ0xBU1MsICJDUkVB VEUgT1BFUkFUT1IgQ0xBU1MiLCB0cnVlLCBmYWxzZSwgZmEKIFBHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX09QRVJBVE9SX0ZBTUlMWSwgIkNSRUFURSBPUEVSQVRPUiBGQU1JTFkiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9QT0xJQ1ksICJDUkVBVEUgUE9MSUNZ IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUFJPQ0VEVVJF LCAiQ1JFQVRFIFBST0NFRFVSRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX1BST1BFUlRZX0dSQVBILCAiQ1JFQVRFIFBST1BFUlRZIEdSQVBIIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUFVCTElDQVRJT04sICJDUkVB VEUgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NS RUFURV9ST0xFLCAiQ1JFQVRFIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19DUkVBVEVfUk9VVElORSwgIkNSRUFURSBST1VUSU5FIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQpAQCAtMTU2LDYgKzE1OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9PUEVSQVRPUl9G QU1JTFksICJEUk9QIE9QRVJBVE9SIEZBTUlMWSIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURU QUcoQ01EVEFHX0RST1BfT1dORUQsICJEUk9QIE9XTkVEIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19EUk9QX1BPTElDWSwgIkRST1AgUE9MSUNZIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1BST0NFRFVSRSwgIkRST1AgUFJPQ0VEVVJF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1BST1BFUlRZX0dS QVBILCAiRFJPUCBQUk9QRVJUWSBHUkFQSCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9QVUJMSUNBVElPTiwgIkRST1AgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9MRSwgIkRST1AgUk9MRSIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9VVElORSwgIkRST1AgUk9V VElORSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxz L2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggMDFhZTViNzE5ZmQuLmU4YjQw M2Y4ZWRkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy9hY2wuaApAQCAtMTY2LDYgKzE2Niw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5 VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX0xBTkdVQUdFCQkoQUNMX1VTQUdFKQog I2RlZmluZSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVAkoQUNMX1NFTEVDVHxBQ0xfVVBEQVRF KQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMIChBQ0xfU0VUfEFDTF9BTFRF Ul9TWVNURU0pCisjZGVmaW5lIEFDTF9BTExfUklHSFRTX1BST1BHUkFQSAkoQUNMX1NFTEVDVCkK ICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFD TF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA2 ZmFiN2FhNjAwOS4uZTJkNzU4ZjFjOTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0yMDcsNiAr MjA3LDkgQEAgZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9v bCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3QgY2hh ciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0 aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spOwogCitleHRlcm4gY2hhciAqZ2V0 X3Byb3BncmFwaF9sYWJlbF9uYW1lKE9pZCBsYWJlbG9pZCk7CitleHRlcm4gY2hhciAqZ2V0X3By b3BncmFwaF9wcm9wZXJ0eV9uYW1lKE9pZCBwcm9wb2lkKTsKKwogI2RlZmluZSB0eXBlX2lzX2Fy cmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0 eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5z IG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5cGlkKSAgKGdl dF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv cHJlcHJvYy9wYXJzZS5wbAppbmRleCBmMjJjYTIxM2MyMS4uN2U1MTMzOWYzZmMgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wYXJzZS5wbAorKysgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3ByZXByb2MvcGFyc2UucGwKQEAgLTI1Niw5ICsyNTYsOSBAQCBzdWIgbWFpbgog CQkJJGhhc19pZl9jb21tYW5kID0gMSBpZiAvXlxzKmlmLzsKIAkJfQogCi0JCSMgTWFrZSBzdXJl IGFueSBicmFjZXMgYXJlIHNwbGl0IGludG8gc2VwYXJhdGUgZmllbGRzCi0JCXMvey8geyAvZzsK LQkJcy99LyB9IC9nOworCQkjIE1ha2Ugc3VyZSBhbnkgKHVucXVvdGVkKSBicmFjZXMgYXJlIHNw bGl0IGludG8gc2VwYXJhdGUgZmllbGRzCisJCXMvKD88IScpXHsoPyEnKS8geyAvZzsKKwkJcy8o PzwhJylcfSg/IScpLyB9IC9nOwogCiAJCSMgTGlrZXdpc2UgZm9yIGNvbW1lbnQgc3RhcnQvZW5k IG1hcmtlcnMKIAkJc3xcL1wqfCAvKiB8ZzsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2Vj cGcvcHJlcHJvYy9wZ2MubCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubAppbmRl eCA2MzI4M2E0YTFlNS4uNDg4OGJkZWI5NWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2Vj cGcvcHJlcHJvYy9wZ2MubAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcGdjLmwK QEAgLTMzNSw2ICszMzUsOCBAQCBsZXNzX2VxdWFscwkJIjw9IgogZ3JlYXRlcl9lcXVhbHMJIj49 IgogbGVzc19ncmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKKy8qIE5vdGUgdGhlcmUgaXMg bm8gbmVlZCBmb3IgbGVmdF9hcnJvdywgc2luY2UgIjwtIiBpcyBub3QgYSBzaW5nbGUgb3BlcmF0 b3IuICovCityaWdodF9hcnJvdwkJIi0+IgogCiAvKgogICogInNlbGYiIGlzIHRoZSBzZXQgb2Yg Y2hhcnMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgYXMgc2luZ2xlLWNoYXJhY3RlcgpAQCAtMzQ2 LDcgKzM0OCw3IEBAIG5vdF9lcXVhbHMJCSIhPSIKICAqIElmIHlvdSBjaGFuZ2UgZWl0aGVyIHNl dCwgYWRqdXN0IHRoZSBjaGFyYWN0ZXIgbGlzdHMgYXBwZWFyaW5nIGluIHRoZQogICogcnVsZSBm b3IgIm9wZXJhdG9yIiEKICAqLwotc2VsZgkJCVssKClcW1xdLjtcOlwrXC1cKlwvXCVcXlw8XD5c PV0KK3NlbGYJCQlbLCgpXFtcXS47XDpcfFwrXC1cKlwvXCVcXlw8XD5cPV0KIG9wX2NoYXJzCQlb XH5cIVxAXCNcXlwmXHxcYFw/XCtcLVwqXC9cJVw8XD5cPV0KIG9wZXJhdG9yCQl7b3BfY2hhcnN9 KwogCkBAIC04NTQsNiArODU2LDEwIEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15pXVtBLVphLXpd Knx7aWZ9fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCorCiAJCQkJCXJl dHVybiBOT1RfRVFVQUxTOwogCQkJCX0KIAore3JpZ2h0X2Fycm93fQl7CisJCQkJCXJldHVybiBS SUdIVF9BUlJPVzsKKwkJCQl9CisKIHtpbmZvcm1peF9zcGVjaWFsfSB7CiAJCQkJCS8qIGFyZSB3 ZSBzaW11bGF0aW5nIEluZm9ybWl4PyAqLwogCQkJCQlpZiAoSU5GT1JNSVhfTU9ERSkKQEAgLTk0 Nyw3ICs5NTMsNyBAQCBjcHBsaW5lCQkJe3NwYWNlfSojKFteaV1bQS1aYS16XSp8e2lmfXx7aWZk ZWZ9fHtpZm5kZWZ9fHtpbXBvcnR9KSgoXC9cKlteKi9dKlwqKwogCQkJCQkJICogdGhhdCB0aGUg InNlbGYiIHJ1bGUgd291bGQgaGF2ZS4KIAkJCQkJCSAqLwogCQkJCQkJaWYgKG5jaGFycyA9PSAx ICYmCi0JCQkJCQkJc3RyY2hyKCIsKClbXS47OistKi8lXjw+PSIsIHl5dGV4dFswXSkpCisJCQkJ CQkJc3RyY2hyKCIsKClbXS47OnwrLSovJV48Pj0iLCB5eXRleHRbMF0pKQogCQkJCQkJCXJldHVy biB5eXRleHRbMF07CiAKIAkJCQkJCS8qCkBAIC05NjgsNiArOTc0LDggQEAgY3BwbGluZQkJCXtz cGFjZX0qIyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVmfXx7aW1wb3J0fSkoKFwv XCpbXiovXSpcKisKIAkJCQkJCQkJcmV0dXJuIE5PVF9FUVVBTFM7CiAJCQkJCQkJaWYgKHl5dGV4 dFswXSA9PSAnIScgJiYgeXl0ZXh0WzFdID09ICc9JykKIAkJCQkJCQkJcmV0dXJuIE5PVF9FUVVB TFM7CisJCQkJCQkJaWYgKHl5dGV4dFswXSA9PSAnLScgJiYgeXl0ZXh0WzFdID09ICc+JykKKwkJ CQkJCQkJcmV0dXJuIFJJR0hUX0FSUk9XOwogCQkJCQkJfQogCQkJCQl9CiAKZGlmZiAtLWdpdCBh L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3Jh bS55CmluZGV4IDY0ZDJjMzYyYmY5Li42YzJmYmNlOWE4MyAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55CkBA IC0yNDMsNiArMjQzLDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJhbWV0ZXJzKFBM cGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGl2YWw+CUlDT05TVCBQQVJBTQogJXRv a2VuCQkJVFlQRUNBU1QgRE9UX0RPVCBDT0xPTl9FUVVBTFMgRVFVQUxTX0dSRUFURVIKICV0b2tl bgkJCUxFU1NfRVFVQUxTIEdSRUFURVJfRVFVQUxTIE5PVF9FUVVBTFMKKyV0b2tlbgkJCUJSQUNL RVRfUklHSFRfQVJST1cgTEVGVF9BUlJPV19CUkFDS0VUIE1JTlVTX0xFRlRfQlJBQ0tFVCBSSUdI VF9CUkFDS0VUX01JTlVTCiAKIC8qCiAgKiBPdGhlciB0b2tlbnMgcmVjb2duaXplZCBieSBwbHBn c3FsJ3MgbGV4ZXIgaW50ZXJmYWNlIGxheWVyIChwbF9zY2FubmVyLmMpLgpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl9nZW5lcmljLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfZ2VuZXJpYy5vdXQKaW5kZXggYWU1NGNiMjU0ZjkuLmFiOWNl OWU5YWNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX2dlbmVy aWMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfZ2VuZXJpYy5vdXQK QEAgLTUyMCw2ICs1MjAsNDkgQEAgRVJST1I6ICBsZWZ0IGFuZCByaWdodCBhc3NvY2lhdGVkIGRh dGEgdHlwZXMgZm9yIG9wZXJhdG9yIGNsYXNzIG9wdGlvbnMgcGFyc2luZwogQUxURVIgT1BFUkFU T1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lORyBidHJlZSBBREQgRlVOQ1RJT04gNSAoaW50NCkgdGVz dF9vcGNsYXNzX29wdGlvbnNfZnVuYyhpbnRlcm5hbCk7IC0tIE9rCiBBTFRFUiBPUEVSQVRPUiBG QU1JTFkgYWx0X29wZjE5IFVTSU5HIGJ0cmVlIERST1AgRlVOQ1RJT04gNSAoaW50NCwgaW50NCk7 CiBEUk9QIE9QRVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRyZWU7CistLQorLS0gUHJv cGVydHkgR3JhcGgKKy0tCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfYWx0ZXJf Z2VuZXJpY191c2VyMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgxOworQ1JFQVRF IFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDI7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggYWx0X2dy YXBoMzsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1FIFRPIGFsdF9ncmFw aDI7IC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0VSUk9SOiAgcmVsYXRpb24gImFsdF9ncmFw aDIiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgxIFJFTkFN RSBUTyBhbHRfZ3JhcGg0OyAtLSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMiBP V05FUiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7ICAtLSBmYWlsZWQgKG5vIHJvbGUg bWVtYmVyc2hpcCkKK0VSUk9SOiAgbXVzdCBiZSBhYmxlIHRvIFNFVCBST0xFICJyZWdyZXNzX2Fs dGVyX2dlbmVyaWNfdXNlcjIiCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgyIE9XTkVS IFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0tIE9LCitBTFRFUiBQUk9QRVJUWSBH UkFQSCBhbHRfZ3JhcGg0IFNFVCBTQ0hFTUEgYWx0X25zcDI7ICAtLSBPSworQUxURVIgUFJPUEVS VFkgR1JBUEggYWx0X25zcDIuYWx0X2dyYXBoNCBSRU5BTUUgVE8gYWx0X2dyYXBoMjsgIC0tIE9L CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgyIFNFVCBTQ0hFTUEgYWx0X25zcDI7ICAt LSBmYWlsZWQgKG5hbWUgY29uZmxpY3QpCitFUlJPUjogIHJlbGF0aW9uICJhbHRfZ3JhcGgyIiBh bHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgImFsdF9uc3AyIgorU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEgg YWx0X2dyYXBoNTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDMgUkVOQU1FIFRPIGFs dF9ncmFwaDU7ICAtLSBmYWlsZWQgKG5vdCBvd25lcikKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBv ZiBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgzCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGg1IFJFTkFNRSBUTyBhbHRfZ3JhcGg2OyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFs dF9ncmFwaDMgT1dORVIgVE8gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIyOyAgLS0gZmFpbGVk IChub3Qgb3duZXIpCitFUlJPUjogIG11c3QgYmUgb3duZXIgb2YgcHJvcGVydHkgZ3JhcGggYWx0 X2dyYXBoMworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoNiBPV05FUiBUTyByZWdyZXNz X2FsdGVyX2dlbmVyaWNfdXNlcjM7ICAtLSBmYWlsZWQgKG5vIHJvbGUgbWVtYmVyc2hpcCkKK0VS Uk9SOiAgbXVzdCBiZSBhYmxlIHRvIFNFVCBST0xFICJyZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNl cjMiCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgzIFNFVCBTQ0hFTUEgYWx0X25zcDI7 ICAtLSBmYWlsZWQgKG5vdCBvd25lcikKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBvZiBwcm9wZXJ0 eSBncmFwaCBhbHRfZ3JhcGgzCitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitTRUxFQ1Qg bnNwbmFtZSwgcmVsbmFtZSwgcm9sbmFtZQorICBGUk9NIHBnX2NsYXNzIGMsIHBnX25hbWVzcGFj ZSBuLCBwZ19hdXRoaWQgYQorICBXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkIEFORCBjLnJl bG93bmVyID0gYS5vaWQKKyAgICBBTkQgbi5uc3BuYW1lIGluICgnYWx0X25zcDEnLCAnYWx0X25z cDInKQorICAgIEFORCBjLnJlbGtpbmQgPSAnZycKKyAgT1JERVIgQlkgbnNwbmFtZSwgcmVsbmFt ZTsKKyBuc3BuYW1lICB8ICByZWxuYW1lICAgfCAgICAgICAgICAgcm9sbmFtZSAgICAgICAgICAg CistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGFsdF9uc3AxIHwgYWx0X2dyYXBoMiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMworIGFs dF9uc3AxIHwgYWx0X2dyYXBoMyB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMQorIGFsdF9u c3AxIHwgYWx0X2dyYXBoNiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMgorIGFsdF9uc3Ay IHwgYWx0X2dyYXBoMiB8IHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMQorKDQgcm93cykKKwog LS0KIC0tIFN0YXRpc3RpY3MKIC0tCkBAIC03MTAsNyArNzUzLDcgQEAgTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byBzZXJ2ZXIgYWx0X2ZzZXJ2MwogRFJPUCBMQU5HVUFHRSBhbHRfbGFuZzIgQ0FT Q0FERTsKIERST1AgTEFOR1VBR0UgYWx0X2xhbmczIENBU0NBREU7CiBEUk9QIFNDSEVNQSBhbHRf bnNwMSBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyOCBvdGhlciBvYmplY3Rz CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDMxIG90aGVyIG9iamVjdHMKIERFVEFJTDogIGRy b3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X2Z1bmMzKGludGVnZXIpCiBkcm9wIGNhc2NhZGVz IHRvIGZ1bmN0aW9uIGFsdF9hZ2czKGludGVnZXIpCiBkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9u IGFsdF9mdW5jNChpbnRlZ2VyKQpAQCAtNzI3LDYgKzc3MCw5IEBAIGRyb3AgY2FzY2FkZXMgdG8g b3BlcmF0b3IgZmFtaWx5IGFsdF9vcGMxIGZvciBhY2Nlc3MgbWV0aG9kIGhhc2gKIGRyb3AgY2Fz Y2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGMyIGZvciBhY2Nlc3MgbWV0aG9kIGhhc2gK IGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGY0IGZvciBhY2Nlc3MgbWV0 aG9kIGhhc2gKIGRyb3AgY2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9vcGYyIGZvciBh Y2Nlc3MgbWV0aG9kIGhhc2gKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggYWx0X2dy YXBoMgorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgzCitkcm9wIGNh c2NhZGVzIHRvIHByb3BlcnR5IGdyYXBoIGFsdF9ncmFwaDYKIGRyb3AgY2FzY2FkZXMgdG8gdGFi bGUgYWx0X3JlZ3Jlc3NfMQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBhbHRfcmVncmVzc18yCiBk cm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIGRpY3Rpb25hcnkgYWx0X3RzX2RpY3QzCkBAIC03 NDAsMTIgKzc4NiwxMyBAQCBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIHRlbXBsYXRlIGFs dF90c190ZW1wMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBwYXJzZXIgYWx0X3RzX3By czMKIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggcGFyc2VyIGFsdF90c19wcnMyCiBEUk9Q IFNDSEVNQSBhbHRfbnNwMiBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byA5IG90 aGVyIG9iamVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMTAgb3RoZXIgb2JqZWN0cwog REVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBhbHRfbnNwMi5hbHRfZnVuYzIoaW50 ZWdlcikKIGRyb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X25zcDIuYWx0X2FnZzIoaW50ZWdl cikKIGRyb3AgY2FzY2FkZXMgdG8gY29udmVyc2lvbiBhbHRfbnNwMi5hbHRfY29udjIKIGRyb3Ag Y2FzY2FkZXMgdG8gb3BlcmF0b3IgYWx0X25zcDIuQC1AKGludGVnZXIsaW50ZWdlcikKIGRyb3Ag Y2FzY2FkZXMgdG8gb3BlcmF0b3IgZmFtaWx5IGFsdF9uc3AyLmFsdF9vcGYyIGZvciBhY2Nlc3Mg bWV0aG9kIGhhc2gKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3JhcGggYWx0X25zcDIuYWx0 X2dyYXBoMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5IGFsdF9uc3Ay LmFsdF90c19kaWN0MgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9u IGFsdF9uc3AyLmFsdF90c19jb25mMgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCB0ZW1w bGF0ZSBhbHRfbnNwMi5hbHRfdHNfdGVtcDIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uNDMzMTZmYmMwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKQEAgLTAsMCArMSw0OTYg QEAKK0NSRUFURSBTQ0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzOworR1JBTlQgVVNB R0UgT04gU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyBUTyBQVUJMSUM7CitTRVQg c2VhcmNoX3BhdGggPSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CitDUkVBVEUgUk9MRSBy ZWdyZXNzX2dyYXBoX3VzZXIxOworQ1JFQVRFIFJPTEUgcmVncmVzc19ncmFwaF91c2VyMjsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBnMTsKK0NPTU1FTlQgT04gUFJPUEVSVFkgR1JBUEggZzEgSVMg J2EgZ3JhcGgnOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxOyAgLS0gZXJyb3I6IGR1cGxpY2F0 ZQorRVJST1I6ICByZWxhdGlvbiAiZzEiIGFscmVhZHkgZXhpc3RzCitDUkVBVEUgVEFCTEUgdDEg KGEgaW50LCBiIHRleHQpOworQ1JFQVRFIFRBQkxFIHQyIChpIGludCBQUklNQVJZIEtFWSwgaiBp bnQsIGsgaW50KTsKK0NSRUFURSBUQUJMRSB0MyAoeCBpbnQsIHkgdGV4dCwgeiB0ZXh0KTsKK0NS RUFURSBUQUJMRSBlMSAoYSBpbnQsIGkgaW50LCB0IHRleHQsIFBSSU1BUlkgS0VZIChhLCBpKSk7 CitDUkVBVEUgVEFCTEUgZTIgKGEgaW50LCB4IGludCwgdCB0ZXh0KTsKK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBnMgorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIERFRkFVTFQgTEFC RUwsIHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBMQUJFTCB0M2wyKQorICAgIEVER0UgVEFCTEVTICgK KyAgICAgICAgZTEKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEp CisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpLAorICAg ICAgICBlMiBLRVkgKGEsIHgpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VT IHQxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQz ICh4LCB5KQorICAgICk7CistLSB0ZXN0IGRlcGVuZGVuY2llcy9vYmplY3QgZGVzY3JpcHRpb25z CitEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAorRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSB0MSBi ZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB2ZXJ0ZXggdDEgb2Yg cHJvcGVydHkgZ3JhcGggZzIgZGVwZW5kcyBvbiB0YWJsZSB0MQorZWRnZSBlMSBvZiBwcm9wZXJ0 eSBncmFwaCBnMiBkZXBlbmRzIG9uIHRhYmxlIHQxCitlZGdlIGUyIG9mIHByb3BlcnR5IGdyYXBo IGcyIGRlcGVuZHMgb24gdGFibGUgdDEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBk cm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBUQUJMRSB0MSBEUk9QIENPTFVN TiBiOyAgLS0gbm9uLWtleSBjb2x1bW47IGZhaWwKK0VSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1u IGIgb2YgdGFibGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlM OiAgcHJvcGVydHkgYiBvZiBsYWJlbCB0MSBvZiB2ZXJ0ZXggdDEgb2YgcHJvcGVydHkgZ3JhcGgg ZzIgZGVwZW5kcyBvbiBjb2x1bW4gYiBvZiB0YWJsZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBD QVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVSIFRBQkxFIHQx IERST1AgQ09MVU1OIGE7ICAtLSBrZXkgY29sdW1uOyBmYWlsCitFUlJPUjogIGNhbm5vdCBkcm9w IGNvbHVtbiBhIG9mIHRhYmxlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQK K0RFVEFJTDogIHZlcnRleCB0MSBvZiBwcm9wZXJ0eSBncmFwaCBnMiBkZXBlbmRzIG9uIGNvbHVt biBhIG9mIHRhYmxlIHQxCitlZGdlIGUxIG9mIHByb3BlcnR5IGdyYXBoIGcyIGRlcGVuZHMgb24g Y29sdW1uIGEgb2YgdGFibGUgdDEKK2VkZ2UgZTIgb2YgcHJvcGVydHkgZ3JhcGggZzIgZGVwZW5k cyBvbiBjb2x1bW4gYSBvZiB0YWJsZSB0MQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRv IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGxpa2UgZzIgYnV0IGFzc2VtYmxl ZCB3aXRoIEFMVEVSCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzM7CitBTFRFUiBQUk9QRVJUWSBH UkFQSCBnMyBBREQgVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgREVGQVVMVCBMQUJFTCk7 CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMworICAgIEFERCBWRVJURVggVEFCTEVTICh0MyBLRVkg KHgpIExBQkVMIHQzbDEpCisgICAgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEgU09VUkNF IEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VT IHQyIChpKSwKKyAgICAgICAgZTIgS0VZIChhLCB4KSBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VT IHQxIChhKSBERVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgsIHkpCisgICAg KTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIEFMVEVSIFZFUlRFWCBUQUJMRSB0MyBBREQgTEFC RUwgdDNsMiBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIEFERCBMQUJFTCB0M2wzIFBST1BFUlRJRVMg QUxMIENPTFVNTlM7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFCTEUg dDMgRFJPUCBMQUJFTCB0M2wzeDsgIC0tIGVycm9yCitFUlJPUjogIHByb3BlcnR5IGdyYXBoICJn MyIgZWxlbWVudCAidDMiIGhhcyBubyBsYWJlbCAidDNsM3giCitBTFRFUiBQUk9QRVJUWSBHUkFQ SCBnMyBBTFRFUiBWRVJURVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wzOworQUxURVIgUFJPUEVS VFkgR1JBUEggZzMgRFJPUCBWRVJURVggVEFCTEVTICh0Mik7ICAtLSBmYWlsIChUT0RPOiBkdWJp b3VzIGVycm9yIG1lc3NhZ2UpCitFUlJPUjogIGNhbm5vdCBkcm9wIHZlcnRleCB0MiBvZiBwcm9w ZXJ0eSBncmFwaCBnMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6 ICBlZGdlIGUxIG9mIHByb3BlcnR5IGdyYXBoIGczIGRlcGVuZHMgb24gdmVydGV4IHQyIG9mIHBy b3BlcnR5IGdyYXBoIGczCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBWRVJU RVggVEFCTEVTICh0MikgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gZWRnZSBl MSBvZiBwcm9wZXJ0eSBncmFwaCBnMworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBFREdF IFRBQkxFUyAoZTIpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc0CisgICAgVkVSVEVYIFRBQkxF UyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAgICAgdDIgREVGQVVM VCBMQUJFTCBQUk9QRVJUSUVTIChpICsgaiBBUyBpX2osIGspLAorICAgICAgICB0MyBLRVkgKHgp IExBQkVMIHQzbDEgUFJPUEVSVElFUyAoeCwgeSBBUyB5eSkgTEFCRUwgdDNsMiBQUk9QRVJUSUVT ICh4LCB6IEFTIHp6KQorICAgICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxCisgICAg ICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAgREVT VElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKQorICAgICAgICAgICAgUFJPUEVSVElF UyBBTEwgQ09MVU1OUywKKyAgICAgICAgZTIgS0VZIChhLCB4KQorICAgICAgICAgICAgU09VUkNF IEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAo eCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkKKyAgICAgICAgICAgIFBST1BFUlRJRVMgQUxMIENP TFVNTlMKKyAgICApOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzQgQUxURVIgVkVSVEVYIFRBQkxF IHQyIEFMVEVSIExBQkVMIHQyIEFERCBQUk9QRVJUSUVTIChrICogMiBBUyBrayk7CitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBnNCBBTFRFUiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFCRUwgdDIgRFJP UCBQUk9QRVJUSUVTIChrKTsKK0NSRUFURSBUQUJMRSB0MTEgKGEgaW50IFBSSU1BUlkgS0VZKTsK K0NSRUFURSBUQUJMRSB0MTIgKGIgaW50IFBSSU1BUlkgS0VZKTsKK0NSRUFURSBUQUJMRSB0MTMg KAorICAgIGMgaW50IFBSSU1BUlkgS0VZLAorICAgIGQgaW50IFJFRkVSRU5DRVMgdDExLAorICAg IGUgaW50IFJFRkVSRU5DRVMgdDEyCispOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc1CisgICAg VkVSVEVYIFRBQkxFUyAodDExLCB0MTIpCisgICAgRURHRSBUQUJMRVMgKHQxMyBTT1VSQ0UgdDEx IERFU1RJTkFUSU9OIHQxMik7CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzUnOjpyZWdj bGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfcHJvcGdyYXBoZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cy5nNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgIFZFUlRFWCBUQUJMRVMgKCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTEgS0VZIChhKSBQUk9QRVJUSUVTIChhKSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTIgS0VZIChiKSBQUk9QRVJUSUVTIChi KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEVER0UgVEFCTEVTICggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICB0MTMgS0VZIChjKSBTT1VS Q0UgS0VZIChlKSBSRUZFUkVOQ0VTIHQxMSAoYSkgREVTVElOQVRJT04gS0VZIChlKSBSRUZFUkVO Q0VTIHQxMiAoYikgUFJPUEVSVElFUyAoYywgZCwgZSkrCisgICAgICkKKygxIHJvdykKKworLS0g ZXJyb3IgY2FzZXMKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneCBWRVJURVggVEFCTEVTICh4eCwg eXkpOworRVJST1I6ICByZWxhdGlvbiAieHgiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUgUFJPUEVS VFkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChpKSwgdDEgS0VZ IChhKSk7CitFUlJPUjogIGFsaWFzICJ0MSIgdXNlZCBtb3JlIHRoYW4gb25jZSBhcyBlbGVtZW50 IHRhYmxlCitMSU5FIDE6IC4uLlkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwg dDIgS0VZIChpKSwgdDEgS0VZIChhKS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBn eAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEFTIHR0IEtFWSAoYSksIHQyIEtFWSAoaSkpCisgICAg RURHRSBUQUJMRVMgKAorICAgICAgICBlMSBTT1VSQ0UgdDEgREVTVElOQVRJT04gdDIKKyAgICAp OworRVJST1I6ICBzb3VyY2UgdmVydGV4ICJ0MSIgb2YgZWRnZSAiZTEiIGRvZXMgbm90IGV4aXN0 CitMSU5FIDQ6ICAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJTkFUSU9OIHQyCisgICAgICAgICAg ICAgICAgXgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAodDEg S0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxIFNPVVJD RSB0MSBERVNUSU5BVElPTiB0eAorICAgICk7CitFUlJPUjogIGRlc3RpbmF0aW9uIHZlcnRleCAi dHgiIG9mIGVkZ2UgImUxIiBkb2VzIG5vdCBleGlzdAorTElORSA0OiAgICAgICAgIGUxIFNPVVJD RSB0MSBERVNUSU5BVElPTiB0eAorICAgICAgICAgICAgICAgIF4KK0NPTU1FTlQgT04gUFJPUEVS VFkgR1JBUEggZ3ggSVMgJ25vdCBhIGdyYXBoJzsKK0VSUk9SOiAgcmVsYXRpb24gImd4IiBkb2Vz IG5vdCBleGlzdAorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAo dDEgS0VZIChhKSwgdDIpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBTT1VSQ0UgdDEg REVTVElOQVRJT04gdDIgIC0tIG5vIGZvcmVpZ24ga2V5cworICAgICk7CitFUlJPUjogIG5vIFNP VVJDRSBrZXkgc3BlY2lmaWVkIGFuZCBubyBzdWl0YWJsZSBmb3JlaWduIGtleSBleGlzdHMgZm9y IGRlZmluaXRpb24gb2YgZWRnZSAiZTEiCitMSU5FIDQ6ICAgICAgICAgZTEgU09VUkNFIHQxIERF U1RJTkFUSU9OIHQyICAtLSBubyBmb3JlaWduIGtleXMKKyAgICAgICAgICAgICAgICBeCitDUkVB VEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZ IChhKSBMQUJFTCBmb28gUFJPUEVSVElFUyAoYSArIDEgQVMgYWEpCisgICAgICAgICAgICAgICAg ICAgTEFCRUwgYmFyIFBST1BFUlRJRVMgKDEgKyBhIEFTIGFhKSAgLS0gZXhwcmVzc2lvbiBtaXNt YXRjaAorICAgICk7CitFUlJPUjogIGVsZW1lbnQgInQxIiBwcm9wZXJ0eSAiYWEiIGV4cHJlc3Np b24gbWlzbWF0Y2g6ICgxICsgYSkgdnMuIChhICsgMSkKK0RFVEFJTDogIEluIGEgcHJvcGVydHkg Z3JhcGggZWxlbWVudCwgYSBwcm9wZXJ0eSBvZiB0aGUgc2FtZSBuYW1lIGhhcyB0byBoYXZlIHRo ZSBzYW1lIGV4cHJlc3Npb24gaW4gZWFjaCBsYWJlbC4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcy CisgICAgQUREIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBBUyB0MXggS0VZIChhKSBMQUJF TCBmb28gUFJPUEVSVElFUyAoYSArIDEgQVMgYWEpCisgICAgICAgICAgICAgICAgICAgICAgICAg IExBQkVMIGJhciBQUk9QRVJUSUVTICgxICsgYSBBUyBhYSkgIC0tIGV4cHJlc3Npb24gbWlzbWF0 Y2gKKyAgICApOworRVJST1I6ICBlbGVtZW50ICJ0MXgiIHByb3BlcnR5ICJhYSIgZXhwcmVzc2lv biBtaXNtYXRjaDogKDEgKyBhKSB2cy4gKGEgKyAxKQorREVUQUlMOiAgSW4gYSBwcm9wZXJ0eSBn cmFwaCBlbGVtZW50LCBhIHByb3BlcnR5IG9mIHRoZSBzYW1lIG5hbWUgaGFzIHRvIGhhdmUgdGhl IHNhbWUgZXhwcmVzc2lvbiBpbiBlYWNoIGxhYmVsLgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4 CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgUFJPUEVSVElFUyAoYiBB UyBwMSksCisgICAgICAgIHQyIFBST1BFUlRJRVMgKGsgQVMgcDEpICAtLSB0eXBlIG1pc21hdGNo CisgICAgKTsKK0VSUk9SOiAgcHJvcGVydHkgInAxIiBkYXRhIHR5cGUgbWlzbWF0Y2g6IHRleHQg dnMuIGludGVnZXIKK0RFVEFJTDogIEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2Yg dGhlIHNhbWUgbmFtZSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSBkYXRhIHR5cGUgaW4gZWFjaCBsYWJl bC4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcyIEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFC RUwgZm9vIFBST1BFUlRJRVMgKGIgQVMgayk7ICAtLSB0eXBlIG1pc21hdGNoCitFUlJPUjogIHBy b3BlcnR5ICJrIiBkYXRhIHR5cGUgbWlzbWF0Y2g6IGludGVnZXIgdnMuIHRleHQKK0RFVEFJTDog IEluIGEgcHJvcGVydHkgZ3JhcGgsIGEgcHJvcGVydHkgb2YgdGhlIHNhbWUgbmFtZSBoYXMgdG8g aGF2ZSB0aGUgc2FtZSBkYXRhIHR5cGUgaW4gZWFjaCBsYWJlbC4KK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBLRVkgKGEpIExBQkVMIGwx IFBST1BFUlRJRVMgKGEsIGEgQVMgYWEpLAorICAgICAgICB0MiBLRVkgKGkpIExBQkVMIGwxIFBS T1BFUlRJRVMgKGkgQVMgYSwgaiBBUyBiLCBrKSAgLS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHBy b3BlcnRpZXMgb24gbGFiZWwKKyAgICApOworRVJST1I6ICBtaXNtYXRjaGluZyBudW1iZXIgb2Yg cHJvcGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJsMSIKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICB0MSBLRVkgKGEpIExBQkVMIGwx IFBST1BFUlRJRVMgKGEsIGIpLAorICAgICAgICB0MiBLRVkgKGkpIExBQkVMIGwxIFBST1BFUlRJ RVMgKGkgQVMgYSkgIC0tIG1pc21hdGNoaW5nIG51bWJlciBvZiBwcm9wZXJ0aWVzIG9uIGxhYmVs CisgICAgKTsKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgaW4gZGVm aW5pdGlvbiBvZiBsYWJlbCAibDEiCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJU RVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChhLCBi KSwKKyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChpIEFTIGEsIGogQVMg aikgIC0tIG1pc21hdGNoaW5nIHByb3BlcnR5IG5hbWVzIG9uIGxhYmVsCisgICAgKTsKK0VSUk9S OiAgbWlzbWF0Y2hpbmcgcHJvcGVydGllcyBuYW1lcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJs MSIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFC RUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgeXksIGIgQVMgenopOyAgLS0gbWlzbWF0 Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKK0VSUk9SOiAgbWlzbWF0Y2hpbmcg bnVtYmVyIG9mIHByb3BlcnRpZXMgaW4gZGVmaW5pdGlvbiBvZiBsYWJlbCAidDNsMSIKK0FMVEVS IFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQ Uk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgenopOyAgLS0gbWlzbWF0Y2hpbmcgcHJvcGVydHkgbmFt ZXMgb24gbGFiZWwKK0VSUk9SOiAgbWlzbWF0Y2hpbmcgcHJvcGVydGllcyBuYW1lcyBpbiBkZWZp bml0aW9uIG9mIGxhYmVsICJ0M2wxIgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzQgQUxURVIgVkVS VEVYIFRBQkxFIHQxIEFERCBMQUJFTCB0M2wxIFBST1BFUlRJRVMgKGEgQVMgeCk7ICAtLSBtaXNt YXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBvbiBsYWJlbAorRVJST1I6ICBtaXNtYXRjaGlu ZyBudW1iZXIgb2YgcHJvcGVydGllcyBpbiBkZWZpbml0aW9uIG9mIGxhYmVsICJ0M2wxIgorQUxU RVIgUFJPUEVSVFkgR1JBUEggZzEgT1dORVIgVE8gcmVncmVzc19ncmFwaF91c2VyMTsKK1NFVCBS T0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjE7CitHUkFOVCBTRUxFQ1QgT04gUFJPUEVSVFkgR1JBUEgg ZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKK0dSQU5UIFVQREFURSBPTiBQUk9QRVJUWSBHUkFQ SCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAorRVJST1I6ICBpbnZhbGlkIHBy aXZpbGVnZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkgZ3JhcGgKK1JFU0VUIFJPTEU7CistLSBp bmZvcm1hdGlvbiBzY2hlbWEKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnByb3Bl cnR5X2dyYXBocyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lOworIHByb3BlcnR5X2dyYXBo X2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFwaF9u YW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMworIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNQorKDUgcm93cykKKworU0VM RUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkg cHJvcGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKKyBwcm9wZXJ0eV9ncmFw aF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhf bmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQgfCB0YWJsZV9j YXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFtZSB8IGVsZW1l bnRfdGFibGVfZGVmaW5pdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBFREdFICAgICAgICAg ICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZTEg ICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IEVE R0UgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBlMiAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAg ICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQy ICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDIgICAgICAgICB8IAorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAg ICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jl c3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MyAgICAgICAgIHwgCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcz ICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxICAg ICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCBWRVJU RVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgdDMgICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAg ICAgICB8IEVER0UgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBlMSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAg ICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGUyICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDEgICAgICAgICB8IAorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAg ICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MiAgICAg ICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgVkVSVEVY ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IHQzICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAg ICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgdDExICAgICAgICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAg ICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0MTIgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAg ICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQxMyAgICAgICAgfCAKKygxNSBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxl X2tleV9jb2x1bW5zIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVf YWxpYXMsIG9yZGluYWxfcG9zaXRpb247CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHBy b3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3Rh YmxlX2FsaWFzIHwgY29sdW1uX25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAg ICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAg IDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAg ICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAg ICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAg ICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAg ICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8 IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAg fCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUy ICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBh ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQyICAg ICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAg ICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMSAgICAgICAgICAgICAgICAgfCBhICAg ICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMiAgICAg ICAgICAgICAgICAgfCBiICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAg ICAgICAgICB8IHQxMyAgICAgICAgICAgICAgICAgfCBjICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIDEKKygxOSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19l ZGdlX3RhYmxlX2NvbXBvbmVudHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWRnZV90 YWJsZV9hbGlhcywgZWRnZV9lbmQgREVTQywgb3JkaW5hbF9wb3NpdGlvbjsKKyBwcm9wZXJ0eV9n cmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3Jh cGhfbmFtZSB8IGVkZ2VfdGFibGVfYWxpYXMgfCB2ZXJ0ZXhfdGFibGVfYWxpYXMgfCAgZWRnZV9l bmQgICB8IGVkZ2VfdGFibGVfY29sdW1uX25hbWUgfCB2ZXJ0ZXhfdGFibGVfY29sdW1uX25hbWUg fCBvcmRpbmFsX3Bvc2l0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAgICAgICAgIHwg U09VUkNFICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAg ICAgICAgICB8IHQyICAgICAgICAgICAgICAgICB8IERFU1RJTkFUSU9OIHwgaSAgICAgICAgICAg ICAgICAgICAgICB8IGkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAg ICAgfCBTT1VSQ0UgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMiAg ICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCB4ICAgICAg ICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQzICAgICAgICAg ICAgICAgICB8IERFU1RJTkFUSU9OIHwgdCAgICAgICAgICAgICAgICAgICAgICB8IHkgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IGUxICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0UgICAgICB8IGEg ICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgIHwgdDIgICAg ICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBpICAgICAgICAgICAgICAgICAgICAgIHwgaSAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgZTIgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAg IHwgYSAgICAgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0 MyAgICAgICAgICAgICAgICAgfCBERVNUSU5BVElPTiB8IHggICAgICAgICAgICAgICAgICAgICAg fCB4ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAg ICAgICAgICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgIHwgREVTVElO QVRJT04gfCB0ICAgICAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAg ICB8IHQxMSAgICAgICAgICAgICAgICB8IFNPVVJDRSAgICAgIHwgZSAgICAgICAgICAgICAgICAg ICAgICB8IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAg ICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAgICAgfCBE RVNUSU5BVElPTiB8IGUgICAgICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAxCisoMTIgcm93cykKKworU0VMRUNUICogRlJPTSBpbmZv cm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9sYWJlbHMgT1JERVIgQlkgcHJvcGVydHlf Z3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhcywgbGFiZWxfbmFtZTsKKyBwcm9wZXJ0eV9n cmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3Jh cGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBsYWJlbF9uYW1lIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAg ICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUy ICAgICAgICAgICAgICAgICAgfCBlMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAg ICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAgICAgIHwg dDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB0M2wxCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAg ICAgICAgIHwgdDEgICAgICAgICAgICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0 MyAgICAgICAgICAgICAgICAgIHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAg ICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAg ICAgfCBlMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IGUyCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgdDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCB0MgorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwg dDMgICAgICAgICAgICAgICAgICB8IHQzbDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAg ICAgICAgICAgICAgfCB0M2wyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAg ICAgIHwgdDExCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTIgICAgICAgICAgICAgICAgIHwgdDEy CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAgIHwgdDEzCisoMTggcm93 cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9w cm9wZXJ0aWVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxp YXMsIHByb3BlcnR5X25hbWU7CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5 X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2Fs aWFzIHwgcHJvcGVydHlfbmFtZSB8IHByb3BlcnR5X2V4cHJlc3Npb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgYSAg ICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAg fCBpICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAg ICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwg ZTIgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCB0MSAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAg ICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwgYgorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAg ICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgfCBpCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcy ICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAgICAgIHwgaiAgICAgICAgICAgICB8 IGoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzIgICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBrICAgICAgICAg ICAgIHwgaworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHggICAg ICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwg eSAgICAgICAgICAgICB8IHkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAg ICAgfCB6ICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAg ICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAg ICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQz ICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAg IHwgdDMgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAgICAgfCB5CisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHoKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAg ICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgIHwgYQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAg ICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgfCBp CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCBhICAgICAg ICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IHQg ICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAgICAgICAg IHwgeCAgICAgICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAg ICAgICAgfCBpX2ogICAgICAgICAgIHwgKGkgKyBqKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIg ICAgICAgICAgICAgICAgICB8IGtrICAgICAgICAgICAgfCAoayAqIDIpCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IHgKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAg ICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB5eSAgICAgICAgICAgIHwgeQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAg ICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHp6ICAgICAgICAgICAgfCB6 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAg ICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMiAgICAgICAgICAgICAgICAgfCBiICAgICAg ICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICAgICAgICAgICB8IGMg ICAgICAgICAgICAgfCBjCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAgICAgICAgICAg IHwgZCAgICAgICAgICAgICB8IGQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMyAgICAgICAgICAg ICAgICAgfCBlICAgICAgICAgICAgIHwgZQorKDM1IHJvd3MpCisKK1NFTEVDVCAqIEZST00gaW5m b3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlfZ3Jh cGhfbmFtZSwgbGFiZWxfbmFtZSwgcHJvcGVydHlfbmFtZTsKKyBwcm9wZXJ0eV9ncmFwaF9jYXRh bG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8 IGxhYmVsX25hbWUgfCBwcm9wZXJ0eV9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgIHwg YQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICB8IGkKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAg ICB8IGUxICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgIHwgYQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn MiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8 IGUyICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgIHwgYQorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQy ICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgIHwgagorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAg ICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGsKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzbDEg ICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgdDNsMSAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzbDIgICAg ICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgeQorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAg ICAgICAgIHwgdDNsMiAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAg fCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAg ICAgIHwgdDNsMSAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDEgICAgICAgfCB5 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGczICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAg IHwgdDNsMiAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDIgICAgICAgfCB5Cisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcz ICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwg ZTEgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgfCBpCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAg ICAgICAgICAgICAgICAgfCBlMSAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIg ICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgfCB0CisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAg ICAgICAgICAgICAgfCBlMiAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAg ICAgICB8IGlfagorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGtrCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAg ICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDNsMSAg ICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgeAorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAg ICAgICAgICAgIHwgdDNsMiAgICAgICB8IHp6CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTEgICAg ICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEyICAgICAgICB8IGIKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAg ICAgICAgICB8IHQxMyAgICAgICAgfCBjCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAgICAgICAgfCB0MTMgICAgICAg IHwgZAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDEzICAgICAgICB8IGUKKyg0MiByb3dzKQorCitT RUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19sYWJlbHMgT1JERVIgQlkgcHJvcGVy dHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFtZTsKKyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAg cHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IGxhYmVsX25h bWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgZTEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn MiAgICAgICAgICAgICAgICAgIHwgdDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzbDEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAg ICAgICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQxCisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAg ICAgICAgICAgfCB0M2wxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wyCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAg ICAgICAgfCBlMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDNsMQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NCAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgdDExCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAg ICAgICAgICAgICAgICAgfCB0MTIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IHQxMworKDE4IHJvd3Mp CisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX3Byb3BlcnR5X2RhdGFfdHlw ZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgcHJvcGVydHlfbmFtZTsKKyBwcm9wZXJ0 eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlf Z3JhcGhfbmFtZSB8IHByb3BlcnR5X25hbWUgfCBkYXRhX3R5cGUgfCBjaGFyYWN0ZXJfbWF4aW11 bV9sZW5ndGggfCBjaGFyYWN0ZXJfb2N0ZXRfbGVuZ3RoIHwgY2hhcmFjdGVyX3NldF9jYXRhbG9n IHwgY2hhcmFjdGVyX3NldF9zY2hlbWEgfCBjaGFyYWN0ZXJfc2V0X25hbWUgfCBjb2xsYXRpb25f Y2F0YWxvZyB8IGNvbGxhdGlvbl9zY2hlbWEgfCBjb2xsYXRpb25fbmFtZSB8IG51bWVyaWNfcHJl Y2lzaW9uIHwgbnVtZXJpY19wcmVjaXNpb25fcmFkaXggfCBudW1lcmljX3NjYWxlIHwgZGF0ZXRp bWVfcHJlY2lzaW9uIHwgaW50ZXJ2YWxfdHlwZSB8IGludGVydmFsX3ByZWNpc2lvbiB8IHVzZXJf ZGVmaW5lZF90eXBlX2NhdGFsb2cgfCB1c2VyX2RlZmluZWRfdHlwZV9zY2hlbWEgfCB1c2VyX2Rl ZmluZWRfdHlwZV9uYW1lIHwgc2NvcGVfY2F0YWxvZyB8IHNjb3BlX3NjaGVtYSB8IHNjb3BlX25h bWUgfCBtYXhpbXVtX2NhcmRpbmFsaXR5IHwgZHRkX2lkZW50aWZpZXIgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg dGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGIK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzIgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgaiAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBqCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBrICAgICAgICAgICAgIHwg aW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGsK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzIgICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgeCAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB5ICAgICAgICAgICAgIHwg dGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHkK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzIgICAgICAgICAgICAgICAgICB8IHogICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAg IHwgYSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCBiICAgICAgICAgICAgIHwg dGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGIK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzMgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAg IHwgeSAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwg dGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHoK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAg fCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAg IHwgaSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAg ICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBpX2ogICAgICAgICAgIHwg aW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0 YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGlf agorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnNCAgICAgICAgICAgICAgICAgIHwga2sgICAgICAgICAgICB8IGludGVnZXIgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAg ICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBraworIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAg ICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAg IHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdf Y2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8 IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzQgICAgICAgICAgICAgICAgICB8IHl5ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAg ICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeXkKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IHp6ICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24g ICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgenoKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAg ICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBiCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc1ICAgICAgICAgICAg ICAgICAgfCBjICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9u ICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICB8IGMKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzUgICAgICAgICAgICAgICAgICB8IGQgICAgICAgICAg ICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwgZAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnNSAgICAgICAgICAgICAgICAgIHwgZSAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAg ICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBlCisoMjcgcm93cykKKwor U0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3JhcGhfcHJpdmls ZWdlcyBXSEVSRSBncmFudGVlIExJS0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFw aF9uYW1lOworICAgICAgIGdyYW50b3IgICAgICAgfCAgICAgICBncmFudGVlICAgICAgIHwgcHJv cGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3Bl cnR5X2dyYXBoX25hbWUgfCBwcml2aWxlZ2VfdHlwZSB8IGlzX2dyYW50YWJsZSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19ncmFwaF91c2VyMSB8IHJl Z3Jlc3NfZ3JhcGhfdXNlcjEgfCByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzEgICAgICAgICAgICAgICAgICB8IFNFTEVDVCAgICAgICAgIHwg WUVTCisgcmVncmVzc19ncmFwaF91c2VyMSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjIgfCByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzEgICAgICAg ICAgICAgICAgICB8IFNFTEVDVCAgICAgICAgIHwgTk8KKygyIHJvd3MpCisKK1xhXHQKK1NFTEVD VCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMic6OnJlZ2NsYXNzKTsKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzIKKyAgICBWRVJURVggVEFCTEVTICgK KyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChp KSBQUk9QRVJUSUVTIChpLCBqLCBrKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJFTCB0M2wxIFBS T1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwgeikKKyAgICAp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBLRVkgKGEsIGkpIFNPVVJDRSBLRVkgKGEp IFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9OIEtFWSAoaSkgUkVGRVJFTkNFUyB0MiAoaSkg UFJPUEVSVElFUyAoYSwgaSwgdCksCisgICAgICAgIGUyIEtFWSAoYSwgeCkgU09VUkNFIEtFWSAo YSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQz ICh4LCB5KSBQUk9QRVJUSUVTIChhLCB0LCB4KQorICAgICkKK1NFTEVDVCBwZ19nZXRfcHJvcGdy YXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMuZzMKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZ IChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJFTCB0M2wxIFBS T1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwgeikKKyAgICAp CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzQnOjpyZWdjbGFzcyk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzLmc0CisgICAgVkVSVEVYIFRB QkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAgICAgdDIgS0VZ IChpKSBQUk9QRVJUSUVTICgoaSArIGopIEFTIGlfaiwgKGsgKiAyKSBBUyBrayksCisgICAgICAg IHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBQUk9QRVJUSUVTICh4LCB5IEFTIHl5KSBMQUJFTCB0M2wy IFBST1BFUlRJRVMgKHgsIHogQVMgenopCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAg ICAgZTEgS0VZIChhLCBpKSBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKSBERVNUSU5B VElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpIFBST1BFUlRJRVMgKGEsIGksIHQpLAorICAg ICAgICBlMiBLRVkgKGEsIHgpIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJ TkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkgUFJPUEVSVElFUyAoYSwgdCwg eCkKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZigncGdfdHlwZSc6OnJlZ2NsYXNz KTsgIC0tIGVycm9yCitFUlJPUjogICJwZ190eXBlIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaAor XGFcdAorXGRHIGcxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcmVsYXRp b25zCisgICAgICAgICAgIFNjaGVtYSAgICAgICAgICAgIHwgTmFtZSB8ICAgICAgVHlwZSAgICAg IHwgICAgICAgIE93bmVyICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcxICAgfCBwcm9wZXJ0eSBncmFwaCB8IHJlZ3Jlc3NfZ3JhcGhf dXNlcjEKKygxIHJvdykKKworLS0gVE9ETworXGQgZzEKK1Byb3BlcnR5IGdyYXBoICJjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEiCisgQ29sdW1uIHwgVHlwZSAKKy0tLS0tLS0tKy0tLS0t LQorCitcZCsgZzEKK1Byb3BlcnR5IGdyYXBoICJjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMu ZzEiCisgQ29sdW1uIHwgVHlwZSB8IFN0b3JhZ2UgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t CitQcm9wZXJ0eSBncmFwaCBkZWZpbml0aW9uOgorIENSRUFURSBQUk9QRVJUWSBHUkFQSCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEKKworRFJPUCBUQUJMRSBnMjsgIC0tIGVycm9yOiB3 cm9uZyBvYmplY3QgdHlwZQorRVJST1I6ICAiZzIiIGlzIG5vdCBhIHRhYmxlCitISU5UOiAgVXNl IERST1AgUFJPUEVSVFkgR1JBUEggdG8gcmVtb3ZlIGEgcHJvcGVydHkgZ3JhcGguCitEUk9QIFBS T1BFUlRZIEdSQVBIIGcxOworRFJPUCBQUk9QRVJUWSBHUkFQSCBnMTsgIC0tIGVycm9yOiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBwcm9wZXJ0eSBncmFwaCAiZzEiIGRvZXMgbm90IGV4aXN0CitE Uk9QIFBST1BFUlRZIEdSQVBIIElGIEVYSVNUUyBnMTsKK05PVElDRTogIHByb3BlcnR5IGdyYXBo ICJnMSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBsZWF2ZSBmb3IgcGdfdXBncmFkZS9w Z19kdW1wIHRlc3RzCistLURST1AgU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyBD QVNDQURFOworRFJPUCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjEsIHJlZ3Jlc3NfZ3JhcGhfdXNl cjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MTNmYzlhYTI1NQotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0CkBAIC0wLDAgKzEs NDg0IEBACitDUkVBVEUgU0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzOworR1JBTlQgVVNBR0UgT04g U0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hfcGF0aCA9IGdy YXBoX3RhYmxlX3Rlc3RzOworQ1JFQVRFIFRBQkxFIHByb2R1Y3RzICgKKyAgICBwcm9kdWN0X25v IGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIHByaWNlIG51bWVy aWMKKyk7CitDUkVBVEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2Vy IFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZhcmNoYXIKKyk7 CitDUkVBVEUgVEFCTEUgb3JkZXJzICgKKyAgICBvcmRlcl9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZ LAorICAgIG9yZGVyZWRfd2hlbiBkYXRlCispOworQ1JFQVRFIFRBQkxFIG9yZGVyX2l0ZW1zICgK KyAgICBvcmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9yZGVyX2lkIGlu dGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKSwKKyAgICBwcm9kdWN0X25vIGludGVn ZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgcXVhbnRpdHkgaW50ZWdl cgorKTsKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAorICAgIGN1c3RvbWVyX29yZGVy c19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVnZXIgUkVGRVJF TkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICBvcmRlcl9pZCBpbnRlZ2VyIFJFRkVS RU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7CitDUkVBVEUgVEFCTEUgd2lzaGxpc3RzICgKKyAg ICB3aXNobGlzdF9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIHdpc2hsaXN0X25hbWUgdmFy Y2hhcgorKTsKK0NSRUFURSBUQUJMRSB3aXNobGlzdF9pdGVtcyAoCisgICAgd2lzaGxpc3RfaXRl bXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFJFRkVS RU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCksCisgICAgcHJvZHVjdF9ubyBpbnRlZ2VyIFJF RkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCispOworQ1JFQVRFIFRBQkxFIGN1c3RvbWVy X3dpc2hsaXN0cyAoCisgICAgY3VzdG9tZXJfd2lzaGxpc3RfaWQgaW50ZWdlciBQUklNQVJZIEtF WSwKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgY3VzdG9tZXJzIChjdXN0b21l cl9pZCksCisgICAgd2lzaGxpc3RfaWQgaW50ZWdlciBSRUZFUkVOQ0VTIHdpc2hsaXN0cyAod2lz aGxpc3RfaWQpCispOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZFUlRFWCBU QUJMRVMgKAorICAgICAgICBwcm9kdWN0cywKKyAgICAgICAgY3VzdG9tZXJzLAorICAgICAgICBv cmRlcnMKKyAgICAgICAgICAgREVGQVVMVCBMQUJFTAorICAgICAgICAgICAgTEFCRUwgbGlzdHMg UFJPUEVSVElFUyAob3JkZXJfaWQgYXMgbm9kZV9pZCwgJ29yZGVyJzo6dmFyY2hhcigxMCkgYXMg bGlzdF90eXBlKSwKKyAgICAgICAgd2lzaGxpc3RzCisgICAgICAgICAgIERFRkFVTFQgTEFCRUwK KyAgICAgICAgICAgIExBQkVMIGxpc3RzIFBST1BFUlRJRVMgKHdpc2hsaXN0X2lkIGFzIG5vZGVf aWQsICd3aXNobGlzdCc6OnZhcmNoYXIoMTApIGFzIGxpc3RfdHlwZSkKKyAgICApCisgICAgRURH RSBUQUJMRVMgKAorICAgICAgICBvcmRlcl9pdGVtcyBLRVkgKG9yZGVyX2l0ZW1zX2lkKQorICAg ICAgICAgICAgU09VUkNFIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9p ZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJvZHVjdF9ubykgUkVGRVJFTkNFUyBw cm9kdWN0cyAocHJvZHVjdF9ubykKKyAgICAgICAgICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAg ICAgIExBQkVMIGxpc3RfaXRlbXMgUFJPUEVSVElFUyAob3JkZXJfaWQgYXMgbGlua19pZCwgcHJv ZHVjdF9ubyksCisgICAgICAgIHdpc2hsaXN0X2l0ZW1zIEtFWSAod2lzaGxpc3RfaXRlbXNfaWQp CisgICAgICAgICAgICBTT1VSQ0UgS0VZICh3aXNobGlzdF9pZCkgUkVGRVJFTkNFUyB3aXNobGlz dHMgKHdpc2hsaXN0X2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChwcm9kdWN0X25v KSBSRUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKQorICAgICAgICAgICAgREVGQVVMVCBM QUJFTAorICAgICAgICAgICAgTEFCRUwgbGlzdF9pdGVtcyBQUk9QRVJUSUVTICh3aXNobGlzdF9p ZCBhcyBsaW5rX2lkLCBwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3JkZXJzIEtFWSAo Y3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3VzdG9tZXJfaWQp IFJFRkVSRU5DRVMgY3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFU SU9OIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyAgICAgICAg ICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGN1c3RfbGlzdHMgUFJPUEVSVElF UyAoY3VzdG9tZXJfaWQsIG9yZGVyX2lkIGFzIGxpbmtfaWQpLAorICAgICAgICBjdXN0b21lcl93 aXNobGlzdHMgS0VZIChjdXN0b21lcl93aXNobGlzdF9pZCkKKyAgICAgICAgICAgIFNPVVJDRSBL RVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJfaWQpCisgICAg ICAgICAgICBERVNUSU5BVElPTiBLRVkgKHdpc2hsaXN0X2lkKSBSRUZFUkVOQ0VTIHdpc2hsaXN0 cyAod2lzaGxpc3RfaWQpCisgICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAgICAgICAgICBM QUJFTCBjdXN0X2xpc3RzIFBST1BFUlRJRVMgKGN1c3RvbWVyX2lkLCB3aXNobGlzdF9pZCBhcyBs aW5rX2lkKQorICAgICk7CitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICh4 eHggTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0 b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9u YW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICByZWxhdGlvbiAieHh4IiBkb2VzIG5vdCBleGlzdAor TElORSAxOiBTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFICh4eHggTUFUQ0gg KGMgSVMgY3VzdG8uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAocGdfY2xhc3Mg TUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21l cl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1l KSk7ICAtLSBlcnJvcgorRVJST1I6ICAicGdfY2xhc3MiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBo CitMSU5FIDE6IFNFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKHBnX2NsYXNz IE1BVENIIChjIElTIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3Ag TUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21l cl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGN4Lm5hbWUgQVMgY3VzdG9tZXJfbmFt ZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFi bGUgImN4IgorTElORSAxOiAuLi5VUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRl cnMpIENPTFVNTlMgKGN4Lm5hbWUgQVMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBG Uk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRk cmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMg KGMubmFtZXggQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAgcHJvcGVydHkg Im5hbWV4IiBkb2VzIG5vdCBleGlzdAorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9U QUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVyc3xlbXBsb3llZXMgV0hFUkUgYy5hZGRy ZXNzID0gJ1VTJyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAo Yy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0tIGVycm9yCitFUlJPUjogIGxhYmVsICJlbXBs b3llZXMiIGRvZXMgbm90IGV4aXN0IGluIHByb3BlcnR5IGdyYXBoICJteXNob3AiCitTRUxFQ1Qg Y3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdIENPTFVNTlMg KGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorRVJST1I6ICBzeW50YXggZXJy b3IgYXQgb3IgbmVhciAiQ09MVU1OUyIKK0xJTkUgMTogLi4ubWVycyBXSEVSRSBjLmFkZHJlc3Mg PSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXSBDT0xVTU5TIChjLi4uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSU5TRVJU IElOVE8gcHJvZHVjdHMgVkFMVUVTCisgICAgKDEsICdwcm9kdWN0MScsIDEwKSwKKyAgICAoMiwg J3Byb2R1Y3QyJywgMjApLAorICAgICgzLCAncHJvZHVjdDMnLCAzMCk7CitJTlNFUlQgSU5UTyBj dXN0b21lcnMgVkFMVUVTCisgICAgKDEsICdjdXN0b21lcjEnLCAnVVMnKSwKKyAgICAoMiwgJ2N1 c3RvbWVyMicsICdDQScpLAorICAgICgzLCAnY3VzdG9tZXIzJywgJ0dMJyk7CitJTlNFUlQgSU5U TyBvcmRlcnMgVkFMVUVTCisgICAgKDEsIGRhdGUgJzIwMjQtMDEtMDEnKSwKKyAgICAoMiwgZGF0 ZSAnMjAyNC0wMS0wMicpLAorICAgICgzLCBkYXRlICcyMDI0LTAxLTAzJyk7CitJTlNFUlQgSU5U TyB3aXNobGlzdHMgVkFMVUVTCisgICAgKDEsICd3aXNobGlzdDEnKSwKKyAgICAoMiwgJ3dpc2hs aXN0MicpLAorICAgICgzLCAnd2lzaGxpc3QzJyk7CitJTlNFUlQgSU5UTyBvcmRlcl9pdGVtcyAo b3JkZXJfaXRlbXNfaWQsIG9yZGVyX2lkLCBwcm9kdWN0X25vLCBxdWFudGl0eSkgVkFMVUVTCisg ICAgKDEsIDEsIDEsIDUpLAorICAgICgyLCAxLCAyLCAxMCksCisgICAgKDMsIDIsIDEsIDcpOwor SU5TRVJUIElOVE8gY3VzdG9tZXJfb3JkZXJzIChjdXN0b21lcl9vcmRlcnNfaWQsIGN1c3RvbWVy X2lkLCBvcmRlcl9pZCkgVkFMVUVTCisgICAgKDEsIDEsIDEpLAorICAgICgyLCAyLCAyKTsKK0lO U0VSVCBJTlRPIGN1c3RvbWVyX3dpc2hsaXN0cyAoY3VzdG9tZXJfd2lzaGxpc3RfaWQsIGN1c3Rv bWVyX2lkLCB3aXNobGlzdF9pZCkgVkFMVUVTCisgICAgKDEsIDIsIDMpLAorICAgICgyLCAzLCAx KSwKKyAgICAoMywgMywgMik7CitJTlNFUlQgSU5UTyB3aXNobGlzdF9pdGVtcyAod2lzaGxpc3Rf aXRlbXNfaWQsIHdpc2hsaXN0X2lkLCBwcm9kdWN0X25vKSBWQUxVRVMKKyAgICAoMSwgMSwgMiks CisgICAgKDIsIDEsIDMpLAorICAgICgzLCAyLCAxKSwKKyAgICAoNCwgMywgMSk7CistLSBzaW5n bGUgZWxlbWVudCBwYXRoIHBhdHRlcm4KK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hv cCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSkpOworICAgbmFtZSAgICAK Ky0tLS0tLS0tLS0tCisgY3VzdG9tZXIxCisgY3VzdG9tZXIyCisgY3VzdG9tZXIzCisoMyByb3dz KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9t ZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBv cmRlcnMpIENPTFVNTlMgKGMubmFtZSkpOworICAgbmFtZSAgICAKKy0tLS0tLS0tLS0tCisgY3Vz dG9tZXIxCisoMSByb3cpCisKKy0tIGdyYXBoIGVsZW1lbnQgc3BlY2lmaWNhdGlvbiB3aXRob3V0 IGxhYmVsIG9yIHZhcmlhYmxlCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFU Q0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtdLT4obyBJUyBvcmRl cnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7CisgY3VzdG9tZXJfbmFtZSAK Ky0tLS0tLS0tLS0tLS0tLQorIGN1c3RvbWVyMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGM6Y3VzdG9tZXJzKS1bY286Y3VzdG9tZXJfb3JkZXJz XS0+KG86b3JkZXJzIFdIRVJFIG8ub3JkZXJlZF93aGVuID0gZGF0ZSAnMjAyNC0wMS0wMicpIENP TFVNTlMgKGMubmFtZSwgYy5hZGRyZXNzKSk7CisgICBuYW1lICAgIHwgYWRkcmVzcyAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLQorIGN1c3RvbWVyMiB8IENBCisoMSByb3cpCisKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMpLVtJUyBjdXN0b21lcl9v cmRlcnNdLT4oYyBJUyBjdXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwgby5vcmRlcmVkX3doZW4p KTsKKyBuYW1lIHwgb3JkZXJlZF93aGVuIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisoMCByb3dz KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKG8gSVMgb3JkZXJz KTwtW0lTIGN1c3RvbWVyX29yZGVyc10tKGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5TIChjLm5hbWUs IG8ub3JkZXJlZF93aGVuKSk7CisgICBuYW1lICAgIHwgb3JkZXJlZF93aGVuIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0KKyBjdXN0b21lcjEgfCAwMS0wMS0yMDI0CisgY3VzdG9tZXIyIHwg MDEtMDItMjAyNAorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9w IE1BVENIICggbyBJUyBvcmRlcnMgKSA8LSBbIElTIGN1c3RvbWVyX29yZGVycyBdIC0gKGMgSVMg Y3VzdG9tZXJzKSBDT0xVTU5TICggYy5uYW1lLCBvLm9yZGVyZWRfd2hlbikpOworICAgbmFtZSAg ICB8IG9yZGVyZWRfd2hlbiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgY3VzdG9tZXIx IHwgMDEtMDEtMjAyNAorIGN1c3RvbWVyMiB8IDAxLTAyLTIwMjQKKygyIHJvd3MpCisKK1NFTEVD VCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBj dXN0X2xpc3RzXS0+KGwgSVMgbGlzdHMpLVsgSVMgbGlzdF9pdGVtc10tPihwIElTIHByb2R1Y3Rz KSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1lIGFzIHByb2R1Y3RfbmFt ZSwgbC5saXN0X3R5cGUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1lLCBwcm9kdWN0X25hbWUsIGxp c3RfdHlwZTsKKyBjdXN0b21lcl9uYW1lIHwgcHJvZHVjdF9uYW1lIHwgbGlzdF90eXBlIAorLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgY3VzdG9tZXIxICAgICB8 IHByb2R1Y3QxICAgICB8IG9yZGVyCisgY3VzdG9tZXIxICAgICB8IHByb2R1Y3QyICAgICB8IG9y ZGVyCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3QxICAgICB8IG9yZGVyCisgY3VzdG9tZXIyICAg ICB8IHByb2R1Y3QxICAgICB8IHdpc2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QxICAg ICB8IHdpc2hsaXN0CisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QyICAgICB8IHdpc2hsaXN0Cisg Y3VzdG9tZXIzICAgICB8IHByb2R1Y3QzICAgICB8IHdpc2hsaXN0CisoNyByb3dzKQorCistLSBs YWJlbCBkaXNqdW5jdGlvbgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENI IChjIElTIGN1c3RvbWVycyktW0lTIGN1c3RvbWVyX29yZGVycyB8IGN1c3RvbWVyX3dpc2hsaXN0 cyBdLT4obCBJUyBvcmRlcnMgfCB3aXNobGlzdHMpLVsgSVMgbGlzdF9pdGVtc10tPihwIElTIHBy b2R1Y3RzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5uYW1lIGFzIHByb2R1 Y3RfbmFtZSkpIE9SREVSIEJZIGN1c3RvbWVyX25hbWUsIHByb2R1Y3RfbmFtZTsKKyBjdXN0b21l cl9uYW1lIHwgcHJvZHVjdF9uYW1lIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisg Y3VzdG9tZXIxICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIxICAgICB8IHByb2R1Y3QyCisgY3Vz dG9tZXIyICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIyICAgICB8IHByb2R1Y3QxCisgY3VzdG9t ZXIzICAgICB8IHByb2R1Y3QxCisgY3VzdG9tZXIzICAgICB8IHByb2R1Y3QyCisgY3VzdG9tZXIz ICAgICB8IHByb2R1Y3QzCisoNyByb3dzKQorCistLSBwcm9wZXJ0eSBub3QgYXNzb2NpYXRlZCB3 aXRoIGxhYmVscyBxdWVyaWVkIHJlc3VsdHMgaW4gZXJyb3IKK1NFTEVDVCAqIEZST00gR1JBUEhf VEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMpLVtJUyBjdXN0b21lcl9vcmRlcnMg fCBjdXN0b21lcl93aXNobGlzdHMgXS0+KGwgSVMgb3JkZXJzIHwgd2lzaGxpc3RzKS1bIElTIGxp c3RfaXRlbXNdLT4ocCBJUyBwcm9kdWN0cykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25h bWUsIHAubmFtZSBhcyBwcm9kdWN0X25hbWUsIGwubGlzdF90eXBlKSkgT1JERVIgQlkgMSwgMiwg MzsKK0VSUk9SOiAgcHJvcGVydHkgImxpc3RfdHlwZSIgb2YgZWxlbWVudCB2YXJpYWJsZSAibCIg bm90IGZvdW5kCistLSB2ZXJ0ZXggdG8gdmVydGV4IGNvbm5lY3Rpb24gYWJicmV2aWF0aW9uCitT RUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS0+ KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSkgT1JERVIgQlkg MTsKKyAgIG5hbWUgICAgfCBvcmRlcmVkX3doZW4gCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LQorIGN1c3RvbWVyMSB8IDAxLTAxLTIwMjQKKyBjdXN0b21lcjIgfCAwMS0wMi0yMDI0CisoMiBy b3dzKQorCistLSBsYXRlcmFsIHRlc3QKK0NSRUFURSBUQUJMRSB4MSAoYSBpbnQsIGIgdGV4dCk7 CitJTlNFUlQgSU5UTyB4MSBWQUxVRVMgKDEsICdvbmUnKSwgKDIsICd0d28nKTsKK1NFTEVDVCAq IEZST00geDEsIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJF IGMuYWRkcmVzcyA9ICdVUycgQU5EIGMuY3VzdG9tZXJfaWQgPSB4MS5hKS1bSVMgY3VzdG9tZXJf b3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwg Yy5jdXN0b21lcl9pZCBBUyBjaWQpKTsKKyBhIHwgIGIgIHwgY3VzdG9tZXJfbmFtZSB8IGNpZCAK Ky0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0KKyAxIHwgb25lIHwgY3VzdG9tZXIxICAg ICB8ICAgMQorKDEgcm93KQorCitEUk9QIFRBQkxFIHgxOworY3JlYXRlIHRhYmxlIHYxIChpZCBp bnQgcHJpbWFyeSBrZXksCisJCQkJCXZuYW1lIHZhcmNoYXIoMTApLAorCQkJCQl2cHJvcDEgaW50 LAorCQkJCQl2cHJvcDIgaW50KTsKK2NyZWF0ZSB0YWJsZSB2MiAoaWQxIGludCwKKwkJCQkJaWQy IGludCwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9wMSBpbnQsCisJCQkJCXZw cm9wMiBpbnQpOworY3JlYXRlIHRhYmxlIHYzIChpZCBpbnQgcHJpbWFyeSBrZXksCisJCQkJCXZu YW1lIHZhcmNoYXIoMTApLAorCQkJCQl2cHJvcDEgaW50LAorCQkJCQl2cHJvcDIgaW50KTsKKy0t IGVkZ2UgY29ubmVjdGluZyB2MSBhbmQgdjIKK2NyZWF0ZSB0YWJsZSBlMV8yIChpZF8xIGludCwK KwkJCQkJaWRfMl8xIGludCwKKwkJCQkJaWRfMl8yIGludCwKKwkJCQkJZW5hbWUgdmFyY2hhcigx MCksCisJCQkJCWVwcm9wMSBpbnQpOworLS0gZWRnZSBjb25uZWN0aW5nIHYxIGFuZCB2MworY3Jl YXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50LAorCQkJCQlpZF8zIGludCwKKwkJCQkJZW5hbWUgdmFy Y2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQsCisJCQkJCXByaW1hcnkga2V5IChpZF8xLCBpZF8z KSk7CitjcmVhdGUgdGFibGUgZTJfMyAoaWRfMl8xIGludCwKKyAgICAgICAgICAgICAgICAgICAg aWRfMl8yIGludCwKKyAgICAgICAgICAgICAgICAgICAgaWRfMyBpbnQsCisgICAgICAgICAgICAg ICAgICAgIGVuYW1lIHZhcmNoYXIoMTApLAorICAgICAgICAgICAgICAgICAgICBlcHJvcDEgaW50 KTsKK2NyZWF0ZSBwcm9wZXJ0eSBncmFwaCBnMQordmVydGV4IHRhYmxlcyAoCisJdjEKKyAgICAg ICAgbGFiZWwgdmwxIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEpCisgICAgICAgIGxhYmVsIGwx IHByb3BlcnRpZXMgKHZuYW1lIGFzIGVsbmFtZSksIC0tIGxhYmVsIHNoYXJlZCBieSB2ZXJ0ZXhl cyBhcyB3ZWxsIGFzIGVkZ2VzCisJdjIga2V5IChpZDEsIGlkMikKKwkJbGFiZWwgdmwyIHByb3Bl cnRpZXMgKHZuYW1lLCB2cHJvcDIsICd2bDJfcHJvcCc6OnZhcmNoYXIoMTApIGFzIGxwcm9wMSkK KyAgICAgICAgbGFiZWwgdmwzIHByb3BlcnRpZXMgKHZuYW1lLCB2cHJvcDEsICd2bDJfcHJvcCc6 OnZhcmNoYXIoMTApIGFzIGxwcm9wMSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAodm5h bWUgYXMgZWxuYW1lKSwKKwl2MworCQlsYWJlbCB2bDMgcHJvcGVydGllcyAodm5hbWUsIHZwcm9w MSwgJ3ZsM19wcm9wJzo6dmFyY2hhcigxMCkgYXMgbHByb3AxKQorICAgICAgICBsYWJlbCBsMSBw cm9wZXJ0aWVzICh2bmFtZSBhcyBlbG5hbWUpCispCistLSBlZGdlcyB3aXRoIGRpZmZlcmluZyBu dW1iZXIgb2YgY29sdW1ucyBpbiBkZXN0aW5hdGlvbiBrZXlzCitlZGdlIHRhYmxlcyAoCisJZTFf MiBrZXkgKGlkXzEsIGlkXzJfMSwgaWRfMl8yKQorCQlzb3VyY2Uga2V5IChpZF8xKSByZWZlcmVu Y2VzIHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNl cyB2MiAoaWQxLCBpZDIpCisJCWxhYmVsIGVsMSBwcm9wZXJ0aWVzIChlcHJvcDEsIGVuYW1lKQor ICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAorCWUxXzMKKwkJ c291cmNlIGtleSAoaWRfMSkgcmVmZXJlbmNlcyB2MSAoaWQpCisJCWRlc3RpbmF0aW9uIGtleSAo aWRfMykgcmVmZXJlbmNlcyB2MyAoaWQpCisJCS0tIG9yZGVyIG9mIHByb3BlcnR5IG5hbWVzIGRv ZXNuJ3QgbWF0dGVyCisJCWxhYmVsIGVsMSBwcm9wZXJ0aWVzIChlbmFtZSwgZXByb3AxKQorICAg ICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzIChlbmFtZSBhcyBlbG5hbWUpLAorICAgIGUyXzMga2V5 IChpZF8yXzEsIGlkXzJfMiwgaWRfMykKKyAgICAgICAgc291cmNlIGtleSAoaWRfMl8xLCBpZF8y XzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorICAgICAgICBkZXN0aW5hdGlvbiBrZXkgKGlk XzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorICAgICAgICAtLSBuZXcgcHJvcGVydHkgbHByb3AyIG5v dCBzaGFyZWQgYnkgZWwxCisgICAgICAgIC0tIGRvZXMgbm90IHNoYXJlIGVwcm9wMSBmcm9tIGJ5 IGVsMQorICAgICAgICBsYWJlbCBlbDIgcHJvcGVydGllcyAoZW5hbWUsIGVwcm9wMSAqIDEwIGFz IGxwcm9wMikKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMgZWxuYW1lKQor KTsKK2luc2VydCBpbnRvIHYxIHZhbHVlcyAoMSwgJ3YxMScsIDEwLCAxMDApLAorICAgICAgICAg ICAgICAgICAgICAgICgyLCAndjEyJywgMjAsIDIwMCksCisgICAgICAgICAgICAgICAgICAgICAg KDMsICd2MTMnLCAzMCwgMzAwKTsKK2luc2VydCBpbnRvIHYyIHZhbHVlcyAoMTAwMCwgMSwgJ3Yy MScsIDEwMTAsIDExMDApLAorICAgICAgICAgICAgICAgICAgICAgICgxMDAwLCAyLCAndjIyJywg MTAyMCwgMTIwMCksCisgICAgICAgICAgICAgICAgICAgICAgKDEwMDAsIDMsICd2MjMnLCAxMDMw LCAxMzAwKTsKK2luc2VydCBpbnRvIHYzIHZhbHVlcyAoMjAwMSwgJ3YzMScsIDIwMTAsIDIxMDAp LAorICAgICAgICAgICAgICAgICAgICAgICgyMDAyLCAndjMyJywgMjAyMCwgMjIwMCksCisgICAg ICAgICAgICAgICAgICAgICAgKDIwMDMsICd2MzMnLCAyMDMwLCAyMzAwKTsKK2luc2VydCBpbnRv IGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAxKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICgyLCAxMDAwLCAxLCAnZTEyMicsIDEwMDAyKTsKK2luc2VydCBpbnRvIGUxXzMg dmFsdWVzICgxLCAyMDAzLCAnZTEzMScsIDEwMDAzKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICgxLCAyMDAxLCAnZTEzMicsIDEwMDA0KTsKK2luc2VydCBpbnRvIGUyXzMgdmFsdWVzICgxMDAw LCAyLCAyMDAyLCAnZTIzMScsIDEwMDA1KTsKKy0tIGVtcHR5IGVsZW1lbnQgcGF0aCBwYXR0ZXJu LCBjb3VudHMgbnVtYmVyIG9mIGVkZ2VzIGluIHRoZSBncmFwaAorU0VMRUNUIGNvdW50KCopIEZS T00gR1JBUEhfVEFCTEUgKGcxIE1BVENIICgpLVtdLT4oKSBDT0xVTU5TICgxIGFzIG9uZSkpOwor IGNvdW50IAorLS0tLS0tLQorICAgICA1CisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9N IEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAgNQorKDEgcm93KQorCistLSBWZXJ0ZXggZWxlbWVudCB2MiBoYXMg bGFiZWwgdmwzIHdoaWNoIGV4cG9zZXMgcHJvcGVydHkgdnByb3AxLiBCdXQgdmwzIGlzCistLSBu b3QgcGFydCBvZiBsYWJlbCBleHByZXNzaW9uLiBJbnN0ZWFkIHYyIGdldCBib3VuZCB0aHJvdWdo IGxhYmVsIHZsMiB3aGljaAorLS0gZG9lcyBub3QgZXhwb3NlIHZwcm9wMS4gVGhlIEdSQVBIX1RB QkxFIGNsYXVzZSBwcm9qZWN0IHZwcm9wMS4KKy0tCistLSBUT0RPOiBUaGlzIGNhc2UgZmFpbHMg c2luY2UgY2F0YWxvZ3MgZG8gbm90IGFzc29jaWF0ZWQgcHJvcGVydGllcyB3aXRoCistLSBlbGVt ZW50cyBkaXJlY3RseS4gTW9yZSBjb2RlIGlzIG5lZWRlZCB0byBtYWtlIGl0IHdvcmsuCitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoYSBJUyB2bDEgfCB2bDIpIENPTFVNTlMg KGEudm5hbWUsCithLnZwcm9wMSkpOworIHZuYW1lIHwgdnByb3AxIAorLS0tLS0tLSstLS0tLS0t LQorIHYxMSAgIHwgICAgIDEwCisgdjEyICAgfCAgICAgMjAKKyB2MTMgICB8ICAgICAzMAorIHYy MSAgIHwgICAxMDEwCisgdjIyICAgfCAgIDEwMjAKKyB2MjMgICB8ICAgMTAzMAorKDYgcm93cykK KworLS0gdnByb3AyIGlzIGFzc29jaWF0ZWQgd2l0aCB2bDIgYnV0IG5vdCB2bDMKK3NlbGVjdCBz cmMsIGNvbm4sIGRlc3QsIGxwcm9wMSwgdnByb3AyLCB2cHJvcDEgZnJvbSBncmFwaF90YWJsZSAo ZzEgbWF0Y2ggKGEgaXMgdmwxKS1bYiBpcyBlbDFdLT4oYyBpcyB2bDIgfCB2bDMpIGNvbHVtbnMg KGEudm5hbWUgYXMgc3JjLCBiLmVuYW1lIGFzIGNvbm4sIGMudm5hbWUgYXMgZGVzdCwgYy5scHJv cDEsIGMudnByb3AyLCBjLnZwcm9wMSkpOworIHNyYyB8IGNvbm4gfCBkZXN0IHwgIGxwcm9wMSAg fCB2cHJvcDIgfCB2cHJvcDEgCistLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0KKyB2MTIgfCBlMTIyIHwgdjIxICB8IHZsMl9wcm9wIHwgICAxMTAwIHwgICAx MDEwCisgdjExIHwgZTEyMSB8IHYyMiAgfCB2bDJfcHJvcCB8ICAgMTIwMCB8ICAgMTAyMAorIHYx MSB8IGUxMzEgfCB2MzMgIHwgdmwzX3Byb3AgfCAgICAgICAgfCAgIDIwMzAKKyB2MTEgfCBlMTMy IHwgdjMxICB8IHZsM19wcm9wIHwgICAgICAgIHwgICAyMDEwCisoNCByb3dzKQorCistLSBFcnJv cnMKKy0tIHZsMSBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHByb3BlcnR5IHZwcm9wMgorc2VsZWN0 IHNyYywgc3JjX3Zwcm9wMiwgY29ubiwgZGVzdCBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAo YSBpcyB2bDEpLVtiIGlzIGVsMV0tPihjIGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52bmFtZSBh cyBzcmMsIGEudnByb3AyIGFzIHNyY192cHJvcDIsIGIuZW5hbWUgYXMgY29ubiwgYy52bmFtZSBh cyBkZXN0KSk7CitFUlJPUjogIHByb3BlcnR5ICJ2cHJvcDIiIG9mIGVsZW1lbnQgdmFyaWFibGUg ImEiIG5vdCBmb3VuZAorLS0gcHJvcGVydHkgZW5hbWUgaXMgYXNzb2NpYXRlZCB3aXRoIGVkZ2Ug bGFiZWxzIGJ1dCBub3Qgd2l0aCBhIHZlcnRleCBsYWJlbAorc2VsZWN0ICogZnJvbSBncmFwaF90 YWJsZSAoZzEgbWF0Y2ggKHNyYyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1lIGFz IHN2bmFtZSwgc3JjLmVuYW1lIGFzIHNlbmFtZSkpOworRVJST1I6ICBwcm9wZXJ0eSAiZW5hbWUi IG9mIGVsZW1lbnQgdmFyaWFibGUgInNyYyIgbm90IGZvdW5kCistLSB2bmFtZSBpcyBhc3NvY2lh dGVkIHZlcnRleCBsYWJlbHMgYnV0IG5vdCBhbiBlZGdlIGxhYmVsCitzZWxlY3QgKiBmcm9tIGdy YXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1bW5zIChjb25uLnZu YW1lIGFzIGN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUpKTsKK0VSUk9SOiAgcHJvcGVydHkg InZuYW1lIiBvZiBlbGVtZW50IHZhcmlhYmxlICJjb25uIiBub3QgZm91bmQKKy0tIGVsMSBpcyBh c3NvY2lhdGVkIHdpdGggZWRnZXMgYnV0IGlzIG9ubHkgbGFiZWwgdXNlZCB0byBxdWFsaWZ5IHZl cnRleAorc2VsZWN0ICogZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHNyYyBpcyBlbDEpLVtj b25uXS0+KGRlc3QpIGNvbHVtbnMgKGNvbm4uZW5hbWUgYXMgY2VuYW1lKSk7CitFUlJPUjogIGNh biBub3QgZmluZCBsYWJlbCAiZWwxIiBpbiBwcm9wZXJ0eSBncmFwaCAiZzEiIGZvciBlbGVtZW50 IHR5cGUgInZlcnRleCIKKy0tIGVsMSBpcyBhc3NvY2lhdGVkIHdpdGggZWRnZXMgYnV0IGlzIG9u ZSBvZiB0aGUgbGFiZWxzIHVzZWQgdG8gcXVhbGlmeSB2ZXJ0ZXgKK3NlbGVjdCAqIGZyb20gZ3Jh cGhfdGFibGUgKGcxIG1hdGNoIChzcmMgaXMgZWwxIHwgdmwxKS1bY29ubl0tPihkZXN0KSBjb2x1 bW5zIChjb25uLmVuYW1lIGFzIGNlbmFtZSkpOworRVJST1I6ICBjYW4gbm90IGZpbmQgbGFiZWwg ImVsMSIgaW4gcHJvcGVydHkgZ3JhcGggImcxIiBmb3IgZWxlbWVudCB0eXBlICJ2ZXJ0ZXgiCist LSBzZWxlY3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFjcm9zcyBhbGwgdGhlIGxhYmVscyBhc3NvY2lh dGVkIHdpdGggYSBnaXZlbiB0eXBlCistLSBvZiBncmFwaCBlbGVtZW50CitzZWxlY3QgKiBmcm9t IGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1bW5zIChzcmMu dm5hbWUgYXMgc3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFtZSwgZGVzdC52bmFtZSBhcyBkdm5h bWUsIHNyYy52cHJvcDEgYXMgc3ZwMSwgc3JjLnZwcm9wMiBhcyBzdnAyLCBzcmMubHByb3AxIGFz IHNscDEsIGRlc3QudnByb3AxIGFzIGR2cDEsIGRlc3QudnByb3AyIGFzIGR2cDIsIGRlc3QubHBy b3AxIGFzIGRscDEsIGNvbm4uZXByb3AxIGFzIGNlcDEsIGNvbm4ubHByb3AyIGFzIGNscDIpKTsK KyBzdm5hbWUgfCBjZW5hbWUgfCBkdm5hbWUgfCBzdnAxIHwgc3ZwMiB8ICAgc2xwMSAgIHwgZHZw MSB8IGR2cDIgfCAgIGRscDEgICB8IGNlcDEgIHwgIGNscDIgIAorLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tCisgdjEyICAgIHwgZTEyMiAgIHwgdjIxICAgIHwgICAyMCB8ICAg ICAgfCAgICAgICAgICB8IDEwMTAgfCAxMTAwIHwgdmwyX3Byb3AgfCAxMDAwMiB8ICAgICAgIAor IHYxMSAgICB8IGUxMjEgICB8IHYyMiAgICB8ICAgMTAgfCAgICAgIHwgICAgICAgICAgfCAxMDIw IHwgMTIwMCB8IHZsMl9wcm9wIHwgMTAwMDEgfCAgICAgICAKKyB2MTEgICAgfCBlMTMxICAgfCB2 MzMgICAgfCAgIDEwIHwgICAgICB8ICAgICAgICAgIHwgMjAzMCB8ICAgICAgfCB2bDNfcHJvcCB8 IDEwMDAzIHwgICAgICAgCisgdjExICAgIHwgZTEzMiAgIHwgdjMxICAgIHwgICAxMCB8ICAgICAg fCAgICAgICAgICB8IDIwMTAgfCAgICAgIHwgdmwzX3Byb3AgfCAxMDAwNCB8ICAgICAgIAorIHYy MiAgICB8IGUyMzEgICB8IHYzMiAgICB8IDEwMjAgfCAxMjAwIHwgdmwyX3Byb3AgfCAyMDIwIHwg ICAgICB8IHZsM19wcm9wIHwgICAgICAgfCAxMDAwNTAKKyg1IHJvd3MpCisKKy0tIHRocmVlIGxh YmVsIGRpc2p1bmN0aW9uCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3Jj IElTIHZsMSB8IHZsMiB8IHZsMyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1lIGFz IHN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUsIGRlc3Qudm5hbWUgYXMgZHZuYW1lKSk7Cisg c3ZuYW1lIHwgY2VuYW1lIHwgZHZuYW1lIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0KKyB2 MTIgICAgfCBlMTIyICAgfCB2MjEKKyB2MTEgICAgfCBlMTIxICAgfCB2MjIKKyB2MTEgICAgfCBl MTMxICAgfCB2MzMKKyB2MTEgICAgfCBlMTMyICAgfCB2MzEKKyB2MjIgICAgfCBlMjMxICAgfCB2 MzIKKyg1IHJvd3MpCisKKy0tIGdyYXBoJ2ljYWwgcXVlcnk6IGZpbmQgYSB2ZXJ0ZXggd2hpY2gg aXMgbm90IGNvbm5lY3RlZCB0byBhbnkgb3RoZXIgdmVydGV4IGFzIGEgc291cmNlIG9yIGEgZGVz dGluYXRpb24uCit3aXRoIGFsbF9jb25uZWN0ZWRfdmVydGljZXMgYXMgKHNlbGVjdCBzdm4sIGR2 biBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1bW5z IChzcmMudm5hbWUgYXMgc3ZuLCBkZXN0LnZuYW1lIGFzIGR2bikpKSwKKyAgICBhbGxfdmVydGlj ZXMgYXMgKHNlbGVjdCB2biBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAodmVydGV4KSBjb2x1 bW5zICh2ZXJ0ZXgudm5hbWUgYXMgdm4pKSkKK3NlbGVjdCB2biBmcm9tIGFsbF92ZXJ0aWNlcyBl eGNlcHQgKHNlbGVjdCBzdm4gZnJvbSBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzIHVuaW9uIHNlbGVj dCBkdm4gZnJvbSBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzKTsKKyB2biAgCistLS0tLQorIHYxMwor IHYyMworKDIgcm93cykKKworLS0gcXVlcnkgYWxsIGNvbm5lY3Rpb25zIHVzaW5nIGEgbGFiZWwg c2hhcmVkIGJ5IHZlcnRpY2VzIGFuZCBlZGdlcworc2VsZWN0IHNuLCBjbiwgZG4gZnJvbSBncmFw aF90YWJsZSAoZzEgbWF0Y2ggKHNyYyA6IGwxKS1bY29ubiA6IGwxXS0+KGRlc3QgOiBsMSkgY29s dW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5hbWUgYXMgY24sIGRlc3QuZWxuYW1lIGFz IGRuKSk7Cisgc24gIHwgIGNuICB8IGRuICAKKy0tLS0tKy0tLS0tLSstLS0tLQorIHYxMiB8IGUx MjIgfCB2MjEKKyB2MTEgfCBlMTIxIHwgdjIyCisgdjExIHwgZTEzMSB8IHYzMworIHYxMSB8IGUx MzIgfCB2MzEKKyB2MjIgfCBlMjMxIHwgdjMyCisoNSByb3dzKQorCistLSBwcm9wZXJ0eSBncmFw aCB3aXRoIHNvbWUgb2YgdGhlIGVsZW1lbnRzLCBsYWJlbHMgYW5kIHByb3BlcnRpZXMgc2FtZSBh cyB0aGUKKy0tIHByZXZpb3VzIG9uZS4gVGVzdCB3aGV0aGVyIGNvbXBvbmVudHMgZnJvbSB0aGUg c3BlY2lmaWVkIHByb3BlcnR5IGdyYXBoIGFyZQorLS0gdXNlZC4KK2NyZWF0ZSBwcm9wZXJ0eSBn cmFwaCBnMgordmVydGV4IHRhYmxlcyAoCisJdjEKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGll cyAoJ2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKwl2MiBrZXkgKGlkMSwgaWQyKQorICAgICAg ICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUpLAorCXYzCisg ICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVsbmFtZSkKKykK K2VkZ2UgdGFibGVzICgKKwllMV8yIGtleSAoaWRfMSwgaWRfMl8xLCBpZF8yXzIpCisJCXNvdXJj ZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBrZXkgKGlkXzJf MSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKKyAgICAgICAgbGFiZWwgbDEgcHJv cGVydGllcyAoJ2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKSwKKwllMV8zCisJCXNvdXJjZSBrZXkg KGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVy ZW5jZXMgdjMgKGlkKQorICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFt ZSBhcyBlbG5hbWUpLAorICAgIGUyXzMga2V5IChpZF8yXzEsIGlkXzJfMiwgaWRfMykKKyAgICAg ICAgc291cmNlIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJlZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQor ICAgICAgICBkZXN0aW5hdGlvbiBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorICAgICAg ICBsYWJlbCBsMSBwcm9wZXJ0aWVzICgnZzIuJyB8fCBlbmFtZSBhcyBlbG5hbWUpCispOworc2Vs ZWN0IHNuLCBjbiwgZG4gZnJvbSBncmFwaF90YWJsZSAoZzIgbWF0Y2ggKHNyYyA6IGwxKS1bY29u biA6IGwxXS0+KGRlc3QgOiBsMSkgY29sdW1ucyAoc3JjLmVsbmFtZSBhcyBzbiwgY29ubi5lbG5h bWUgYXMgY24sIGRlc3QuZWxuYW1lIGFzIGRuKSk7CisgICBzbiAgIHwgICBjbiAgICB8ICAgZG4g ICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLQorIGcyLnYxMiB8IGcyLmUxMjIgfCBnMi52 MjEKKyBnMi52MTEgfCBnMi5lMTIxIHwgZzIudjIyCisgZzIudjExIHwgZzIuZTEzMSB8IGcyLnYz MworIGcyLnYxMSB8IGcyLmUxMzIgfCBnMi52MzEKKyBnMi52MjIgfCBnMi5lMjMxIHwgZzIudjMy CisoNSByb3dzKQorCitDUkVBVEUgVklFVyBjdXN0b21lcnNfdXMgQVMgU0VMRUNUIGN1c3RvbWVy X25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVS RSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBD T0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOworU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdjdXN0b21lcnNfdXMnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3 ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBjdXN0b21lcl9uYW1lICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3Rv bWVycyBXSEVSRSAoKGMuYWRkcmVzcyk6OnRleHQgPSAnVVMnOjp0ZXh0KSktW0lTIGN1c3RvbWVy X29yZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUp KTsKKygxIHJvdykKKworLS0gdGVzdCB2aWV3L2dyYXBoIG5lc3RpbmcKK0NSRUFURSBWSUVXIGN1 c3RvbWVyc192aWV3IEFTIFNFTEVDVCBjdXN0b21lcl9pZCwgJ3JlZGFjdGVkJyB8fCBjdXN0b21l cl9pZCBBUyBuYW1lX3JlZGFjdGVkLCBhZGRyZXNzIEZST00gY3VzdG9tZXJzOworU0VMRUNUICog RlJPTSBjdXN0b21lcnM7CisgY3VzdG9tZXJfaWQgfCAgIG5hbWUgICAgfCBhZGRyZXNzIAorLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IGN1c3RvbWVy MSB8IFVTCisgICAgICAgICAgIDIgfCBjdXN0b21lcjIgfCBDQQorICAgICAgICAgICAzIHwgY3Vz dG9tZXIzIHwgR0wKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gY3VzdG9tZXJzX3ZpZXc7Cisg Y3VzdG9tZXJfaWQgfCBuYW1lX3JlZGFjdGVkIHwgYWRkcmVzcyAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgICAgICAxIHwgcmVkYWN0ZWQxICAgICB8IFVT CisgICAgICAgICAgIDIgfCByZWRhY3RlZDIgICAgIHwgQ0EKKyAgICAgICAgICAgMyB8IHJlZGFj dGVkMyAgICAgfCBHTAorKDMgcm93cykKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcDIK KyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVjdHMsCisgICAgICAgIGN1c3RvbWVy c192aWV3IEtFWSAoY3VzdG9tZXJfaWQpIExBQkVMIGN1c3RvbWVycywKKyAgICAgICAgb3JkZXJz CisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgb3JkZXJfaXRlbXMgS0VZIChvcmRl cl9pdGVtc19pZCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VT IG9yZGVycyAob3JkZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKHByb2R1Y3Rf bm8pIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pLAorICAgICAgICBjdXN0b21lcl9v cmRlcnMgS0VZIChjdXN0b21lcl9vcmRlcnNfaWQpCisgICAgICAgICAgICBTT1VSQ0UgS0VZIChj dXN0b21lcl9pZCkgUkVGRVJFTkNFUyBjdXN0b21lcnNfdmlldyAoY3VzdG9tZXJfaWQpCisgICAg ICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VTIG9yZGVycyAob3Jk ZXJfaWQpCisgICAgKTsKK0NSRUFURSBWSUVXIGN1c3RvbWVyc191c19yZWRhY3RlZCBBUyBTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AyIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVS RSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBD T0xVTU5TIChjLm5hbWVfcmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9yZWRhY3RlZCkpOworU0VM RUNUICogRlJPTSBjdXN0b21lcnNfdXNfcmVkYWN0ZWQ7CisgY3VzdG9tZXJfbmFtZV9yZWRhY3Rl ZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZGFjdGVkMQorKDEgcm93KQorCistLSBs ZWF2ZSBmb3IgcGdfdXBncmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1BIGdyYXBoX3Rh YmxlX3Rlc3RzIENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29iamVjdF9hZGRyZXNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2Fk ZHJlc3Mub3V0CmluZGV4IGZjNDJkNDE4YmYxLi40MzJiYTQ3MWZlMyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKQEAgLTM0LDYgKzM0LDcgQEAgQ1JF QVRFIEZVTkNUSU9OIGFkZHJfbnNwLnRyaWcoKSBSRVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxw Z3NxbCBBUyAkJCBCRUdJTiBFTkQKIENSRUFURSBUUklHR0VSIHQgQkVGT1JFIElOU0VSVCBPTiBh ZGRyX25zcC5nZW50YWJsZSBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgYWRkcl9uc3Au dHJpZygpOwogQ1JFQVRFIFBPTElDWSBnZW5wb2wgT04gYWRkcl9uc3AuZ2VudGFibGU7CiBDUkVB VEUgUFJPQ0VEVVJFIGFkZHJfbnNwLnByb2MoaW50NCkgTEFOR1VBR0UgU1FMIEFTICQkICQkOwor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIGFkZHJfbnNwLmdlbmdyYXBoOwogQ1JFQVRFIFNFUlZFUiAi aW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgYWRkcl9mZHc7CiBDUkVBVEUgVVNFUiBNQVBQ SU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBTRVJWRVIgImludGVnZXIiOwogQUxURVIgREVGQVVM VCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIElOIFNDSEVNQSBwdWJsaWMg R1JBTlQgQUxMIE9OIFRBQkxFUyBUTyByZWdyZXNzX2FkZHJfdXNlcjsKQEAgLTk4LDcgKzk5LDcg QEAgREVDTEFSRQogQkVHSU4KICAgICBGT1Igb2JqdHlwZSBJTiBWQUxVRVMKICAgICAgICAgKCd0 YWJsZScpLCAoJ2luZGV4JyksICgnc2VxdWVuY2UnKSwgKCd2aWV3JyksCi0gICAgICAgICgnbWF0 ZXJpYWxpemVkIHZpZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksCisgICAgICAgICgnbWF0ZXJpYWxp emVkIHZpZXcnKSwgKCdmb3JlaWduIHRhYmxlJyksICgncHJvcGVydHkgZ3JhcGgnKSwKICAgICAg ICAgKCd0YWJsZSBjb2x1bW4nKSwgKCdmb3JlaWduIHRhYmxlIGNvbHVtbicpLAogICAgICAgICAo J2FnZ3JlZ2F0ZScpLCAoJ2Z1bmN0aW9uJyksICgncHJvY2VkdXJlJyksICgndHlwZScpLCAoJ2Nh c3QnKSwKICAgICAgICAgKCd0YWJsZSBjb25zdHJhaW50JyksICgnZG9tYWluIGNvbnN0cmFpbnQn KSwgKCdjb252ZXJzaW9uJyksICgnZGVmYXVsdCB2YWx1ZScpLApAQCAtMTU5LDYgKzE2MCwxMiBA QCBXQVJOSU5HOiAgZXJyb3IgZm9yIGZvcmVpZ24gdGFibGUse2FkZHJfbnNwLHp3ZWl9LHt9OiBy ZWxhdGlvbiAiYWRkcl9uc3AuendlaSIgZAogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWduIHRh YmxlLHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25zcC56d2VpIiBk b2VzIG5vdCBleGlzdAogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWduIHRhYmxlLHtlaW5zLHp3 ZWksZHJlaX0se306IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogImVpbnMuendlaS5kcmVpIgogV0FSTklORzogIGVycm9yIGZvciBmb3JlaWduIHRhYmxlLHtl aW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6ICJlaW5zLnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJv cGVydHkgZ3JhcGgse2VpbnN9LHt9OiByZWxhdGlvbiAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dB Uk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnN9LHtpbnRlZ2VyfTogcmVsYXRp b24gImVpbnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHByb3BlcnR5IGdy YXBoLHthZGRyX25zcCx6d2VpfSx7fTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90 IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHByb3BlcnR5IGdyYXBoLHthZGRyX25zcCx6d2Vp fSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25zcC56d2VpIiBkb2VzIG5vdCBleGlzdAorV0FS TklORzogIGVycm9yIGZvciBwcm9wZXJ0eSBncmFwaCx7ZWlucyx6d2VpLGRyZWl9LHt9OiBjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJlaW5zLnp3ZWkuZHJl aSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgse2VpbnMsendlaSxkcmVpfSx7 aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog ImVpbnMuendlaS5kcmVpIgogV0FSTklORzogIGVycm9yIGZvciB0YWJsZSBjb2x1bW4se2VpbnN9 LHt9OiBjb2x1bW4gbmFtZSBtdXN0IGJlIHF1YWxpZmllZAogV0FSTklORzogIGVycm9yIGZvciB0 YWJsZSBjb2x1bW4se2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG5hbWUgbXVzdCBiZSBxdWFsaWZp ZWQKIFdBUk5JTkc6ICBlcnJvciBmb3IgdGFibGUgY29sdW1uLHthZGRyX25zcCx6d2VpfSx7fTog cmVsYXRpb24gImFkZHJfbnNwIiBkb2VzIG5vdCBleGlzdApAQCAtMzk4LDYgKzQwNSw3IEBAIFdJ VEggb2JqZWN0cyAodHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogICAgICgndmlldycsICd7 YWRkcl9uc3AsIGdlbnZpZXd9JywgJ3t9JyksCiAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycsICd7 YWRkcl9uc3AsIGdlbm1hdHZpZXd9JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRhYmxlJywgJ3th ZGRyX25zcCwgZ2VuZnRhYmxlfScsICd7fScpLAorICAgICgncHJvcGVydHkgZ3JhcGgnLCAne2Fk ZHJfbnNwLCBnZW5ncmFwaH0nLCAne30nKSwKICAgICAoJ3RhYmxlIGNvbHVtbicsICd7YWRkcl9u c3AsIGdlbnRhYmxlLCBifScsICd7fScpLAogICAgICgnZm9yZWlnbiB0YWJsZSBjb2x1bW4nLCAn e2FkZHJfbnNwLCBnZW5mdGFibGUsIGF9JywgJ3t9JyksCiAgICAgKCdhZ2dyZWdhdGUnLCAne2Fk ZHJfbnNwLCBnZW5hZ2dyfScsICd7aW50NH0nKSwKQEAgLTQ3NCw2ICs0ODIsNyBAQCB2aWV3fGFk ZHJfbnNwfGdlbnZpZXd8YWRkcl9uc3AuZ2Vudmlld3x0CiBtYXRlcmlhbGl6ZWQgdmlld3xhZGRy X25zcHxnZW5tYXR2aWV3fGFkZHJfbnNwLmdlbm1hdHZpZXd8dAogZm9yZWlnbiB0YWJsZXxhZGRy X25zcHxnZW5mdGFibGV8YWRkcl9uc3AuZ2VuZnRhYmxlfHQKIGZvcmVpZ24gdGFibGUgY29sdW1u fGFkZHJfbnNwfGdlbmZ0YWJsZXxhZGRyX25zcC5nZW5mdGFibGUuYXx0Citwcm9wZXJ0eSBncmFw aHxhZGRyX25zcHxnZW5ncmFwaHxhZGRyX25zcC5nZW5ncmFwaHx0CiByb2xlfE5VTEx8cmVncmVz c19hZGRyX3VzZXJ8cmVncmVzc19hZGRyX3VzZXJ8dAogc2VydmVyfE5VTEx8YWRkcl9mc2Vydnxh ZGRyX2ZzZXJ2fHQKIHVzZXIgbWFwcGluZ3xOVUxMfE5VTEx8cmVncmVzc19hZGRyX3VzZXIgb24g c2VydmVyIGludGVnZXJ8dApAQCAtNTE4LDcgKzUyNyw3IEBAIERST1AgUFVCTElDQVRJT04gYWRk cl9wdWI7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTsKIERST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CiBEUk9QIFNDSEVNQSBhZGRyX25zcCBDQVNDQURFOwotTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBvYmplY3RzCitOT1RJQ0U6ICBkcm9wIGNh c2NhZGVzIHRvIDE1IG90aGVyIG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGV4 dCBzZWFyY2ggZGljdGlvbmFyeSBhZGRyX3RzX2RpY3QKIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBz ZWFyY2ggY29uZmlndXJhdGlvbiBhZGRyX3RzX2NvbmYKIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBz ZWFyY2ggdGVtcGxhdGUgYWRkcl90c190ZW1wCkBAIC01MzMsNiArNTQyLDcgQEAgZHJvcCBjYXNj YWRlcyB0byBmdW5jdGlvbiBnZW5hZ2dyKGludGVnZXIpCiBkcm9wIGNhc2NhZGVzIHRvIHR5cGUg Z2VuZG9tYWluCiBkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHRyaWcoKQogZHJvcCBjYXNjYWRl cyB0byBmdW5jdGlvbiBwcm9jKGludGVnZXIpCitkcm9wIGNhc2NhZGVzIHRvIHByb3BlcnR5IGdy YXBoIGdlbmdyYXBoCiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfYWRkcl91c2VyOwogRFJPUCBVU0VS IHJlZ3Jlc3NfYWRkcl91c2VyOwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5v dXQKaW5kZXggMjE1ZWI4OTliZTMuLjNiNDFmYzdiYTA0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dApAQCAtMjY2LDMgKzI2NiwxNCBAQCBOT1RJQ0U6ICBjaGVja2luZyBw Z19zdWJzY3JpcHRpb24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJQ0U6ICBj aGVja2luZyBwZ19zdWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5P VElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBnX3N1YnNj cmlwdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3Jy ZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Byb3BncmFwaF9l bGVtZW50IHtwZ2VwZ2lkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdf cHJvcGdyYXBoX2VsZW1lbnQge3BnZXJlbGlkfSA9PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAg Y2hlY2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1lbnQge3BnZXNyY3ZlcnRleGlkfSA9PiBwZ19wcm9w Z3JhcGhfZWxlbWVudCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1l bnQge3BnZWRlc3R2ZXJ0ZXhpZH0gPT4gcGdfcHJvcGdyYXBoX2VsZW1lbnQge29pZH0KK05PVElD RTogIGNoZWNraW5nIHBnX3Byb3BncmFwaF9lbGVtZW50X2xhYmVsIHtwZ2VsbGFiZWxpZH0gPT4g cGdfcHJvcGdyYXBoX2xhYmVsIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhf ZWxlbWVudF9sYWJlbCB7cGdlbGVsaWR9ID0+IHBnX3Byb3BncmFwaF9lbGVtZW50IHtvaWR9CitO T1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWwge3BnbHBnaWR9ID0+IHBnX2NsYXNz IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3Bs cHByb3BpZH0gPT4gcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHtvaWR9CitOT1RJQ0U6ICBjaGVja2lu ZyBwZ19wcm9wZ3JhcGhfbGFiZWxfcHJvcGVydHkge3BscGVsbGFiZWxpZH0gPT4gcGdfcHJvcGdy YXBoX2VsZW1lbnRfbGFiZWwge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Byb3BncmFwaF9w cm9wZXJ0eSB7cGdwcGdpZH0gPT4gcGdfY2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBn X3Byb3BncmFwaF9wcm9wZXJ0eSB7cGdwdHlwaWR9ID0+IHBnX3R5cGUge29pZH0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGU2M2VlMmNmMmJiLi5mNTc4ZmIyOTRkZSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC00OCw3ICs0OCw3IEBAIHRlc3Q6IGNyZWF0ZV9p bmRleCBjcmVhdGVfaW5kZXhfc3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1ZGluZyBpbmRl eF9pbmNsdWRpCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0 cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9z cWwgY3JlYXRlX2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRf dGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRl cyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNlCit0ZXN0OiBjcmVh dGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29uc3RyYWludHMg dHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3Rz IHVwZGF0YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9y cyBpbmZpbml0ZV9yZWN1cnNlIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaAogCiAjIC0tLS0tLS0tLS0K ICMgc2FuaXR5X2NoZWNrIGRvZXMgYSB2YWN1dW0sIGFmZmVjdGluZyB0aGUgc29ydCBvcmRlciBv ZiBTRUxFQ1QgKgpAQCAtNzgsNyArNzgsNyBAQCB0ZXN0OiBicmluX2Jsb29tIGJyaW5fbXVsdGkK ICMgcHNxbCBkZXBlbmRzIG9uIGNyZWF0ZV9hbQogIyBhbXV0aWxzIGRlcGVuZHMgb24gZ2VvbWV0 cnksIGNyZWF0ZV9pbmRleF9zcGdpc3QsIGhhc2hfaW5kZXgsIGJyaW4KICMgLS0tLS0tLS0tLQot dGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNj IGFzeW5jIGRic2l6ZSBtZXJnZSBtaXNjX2Z1bmN0aW9ucyBzeXN2aWV3cyB0c3JmIHRpZCB0aWRz Y2FuIHRpZHJhbmdlc2NhbiBjb2xsYXRlLnV0ZjggY29sbGF0ZS5pY3UudXRmOCBpbmNyZW1lbnRh bF9zb3J0IGNyZWF0ZV9yb2xlIHdpdGhvdXRfb3ZlcmxhcHMgZ2VuZXJhdGVkX3ZpcnR1YWwKK3Rl c3Q6IGNyZWF0ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBh c3luYyBkYnNpemUgbWVyZ2UgbWlzY19mdW5jdGlvbnMgc3lzdmlld3MgdHNyZiB0aWQgdGlkc2Nh biB0aWRyYW5nZXNjYW4gY29sbGF0ZS51dGY4IGNvbGxhdGUuaWN1LnV0ZjggaW5jcmVtZW50YWxf c29ydCBjcmVhdGVfcm9sZSB3aXRob3V0X292ZXJsYXBzIGdlbmVyYXRlZF92aXJ0dWFsIGdyYXBo X3RhYmxlCiAKICMgY29sbGF0ZS5saW51eC51dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3Rz IGNhbm5vdCBiZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBlYWNoIG90aGVyCiB0ZXN0OiBydWxlcyBw c3FsIHBzcWxfY3Jvc3N0YWIgYW11dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNv bGxhdGUud2luZG93cy53aW4xMjUyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9h bHRlcl9nZW5lcmljLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FsdGVyX2dlbmVyaWMuc3Fs CmluZGV4IGRlNThkMjY4ZDMxLi4wNjdkNWMyYjQ5MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0 ZXJfZ2VuZXJpYy5zcWwKQEAgLTQ1Niw2ICs0NTYsNDAgQEAgQUxURVIgT1BFUkFUT1IgRkFNSUxZ IGFsdF9vcGYxOSBVU0lORyBidHJlZSBBREQgRlVOQ1RJT04gNSAoaW50NCkgdGVzdF9vcGNsYXNz X28KIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRyZWUgRFJPUCBGVU5D VElPTiA1IChpbnQ0LCBpbnQ0KTsKIERST1AgT1BFUkFUT1IgRkFNSUxZIGFsdF9vcGYxOSBVU0lO RyBidHJlZTsKIAorLS0KKy0tIFByb3BlcnR5IEdyYXBoCistLQorU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjE7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggYWx0X2dyYXBoMTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgyOworQ1JFQVRF IFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDM7CisKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9n cmFwaDEgUkVOQU1FIFRPIGFsdF9ncmFwaDI7IC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0FM VEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1FIFRPIGFsdF9ncmFwaDQ7IC0tIE9L CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgyIE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJf Z2VuZXJpY191c2VyMjsgIC0tIGZhaWxlZCAobm8gcm9sZSBtZW1iZXJzaGlwKQorQUxURVIgUFJP UEVSVFkgR1JBUEggYWx0X2dyYXBoMiBPV05FUiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNl cjM7ICAtLSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoNCBTRVQgU0NIRU1BIGFs dF9uc3AyOyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9uc3AyLmFsdF9ncmFwaDQg UkVOQU1FIFRPIGFsdF9ncmFwaDI7ICAtLSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dy YXBoMiBTRVQgU0NIRU1BIGFsdF9uc3AyOyAgLS0gZmFpbGVkIChuYW1lIGNvbmZsaWN0KQorCitT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMjsKK0NS RUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg1OworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBh bHRfZ3JhcGgzIFJFTkFNRSBUTyBhbHRfZ3JhcGg1OyAgLS0gZmFpbGVkIChub3Qgb3duZXIpCitB TFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg1IFJFTkFNRSBUTyBhbHRfZ3JhcGg2OyAgLS0g T0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDMgT1dORVIgVE8gcmVncmVzc19hbHRl cl9nZW5lcmljX3VzZXIyOyAgLS0gZmFpbGVkIChub3Qgb3duZXIpCitBTFRFUiBQUk9QRVJUWSBH UkFQSCBhbHRfZ3JhcGg2IE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0t IGZhaWxlZCAobm8gcm9sZSBtZW1iZXJzaGlwKQorQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dy YXBoMyBTRVQgU0NIRU1BIGFsdF9uc3AyOyAgLS0gZmFpbGVkIChub3Qgb3duZXIpCisKK1JFU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTjsKKworU0VMRUNUIG5zcG5hbWUsIHJlbG5hbWUsIHJvbG5h bWUKKyAgRlJPTSBwZ19jbGFzcyBjLCBwZ19uYW1lc3BhY2UgbiwgcGdfYXV0aGlkIGEKKyAgV0hF UkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZCBBTkQgYy5yZWxvd25lciA9IGEub2lkCisgICAgQU5E IG4ubnNwbmFtZSBpbiAoJ2FsdF9uc3AxJywgJ2FsdF9uc3AyJykKKyAgICBBTkQgYy5yZWxraW5k ID0gJ2cnCisgIE9SREVSIEJZIG5zcG5hbWUsIHJlbG5hbWU7CisKIC0tCiAtLSBTdGF0aXN0aWNz CiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dy YXBoLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRmOWI1YzAzNDliCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBo LnNxbApAQCAtMCwwICsxLDE5MCBAQAorQ1JFQVRFIFNDSEVNQSBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hfcGF0aCA9IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0czsKKworQ1JFQVRFIFJPTEUgcmVncmVzc19ncmFwaF91c2VyMTsKK0NSRUFURSBST0xFIHJl Z3Jlc3NfZ3JhcGhfdXNlcjI7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMTsKKworQ09NTUVO VCBPTiBQUk9QRVJUWSBHUkFQSCBnMSBJUyAnYSBncmFwaCc7CisKK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBnMTsgIC0tIGVycm9yOiBkdXBsaWNhdGUKKworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwg YiB0ZXh0KTsKK0NSRUFURSBUQUJMRSB0MiAoaSBpbnQgUFJJTUFSWSBLRVksIGogaW50LCBrIGlu dCk7CitDUkVBVEUgVEFCTEUgdDMgKHggaW50LCB5IHRleHQsIHogdGV4dCk7CisKK0NSRUFURSBU QUJMRSBlMSAoYSBpbnQsIGkgaW50LCB0IHRleHQsIFBSSU1BUlkgS0VZIChhLCBpKSk7CitDUkVB VEUgVEFCTEUgZTIgKGEgaW50LCB4IGludCwgdCB0ZXh0KTsKKworQ1JFQVRFIFBST1BFUlRZIEdS QVBIIGcyCisgICAgVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgREVGQVVMVCBMQUJFTCwg dDMgS0VZICh4KSBMQUJFTCB0M2wxIExBQkVMIHQzbDIpCisgICAgRURHRSBUQUJMRVMgKAorICAg ICAgICBlMQorICAgICAgICAgICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAg ICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAoaSkgUkVGRVJFTkNFUyB0MiAoaSksCisgICAgICAg IGUyIEtFWSAoYSwgeCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEg KGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgs IHkpCisgICAgKTsKKworLS0gdGVzdCBkZXBlbmRlbmNpZXMvb2JqZWN0IGRlc2NyaXB0aW9ucwor CitEUk9QIFRBQkxFIHQxOyAgLS0gZmFpbAorQUxURVIgVEFCTEUgdDEgRFJPUCBDT0xVTU4gYjsg IC0tIG5vbi1rZXkgY29sdW1uOyBmYWlsCitBTFRFUiBUQUJMRSB0MSBEUk9QIENPTFVNTiBhOyAg LS0ga2V5IGNvbHVtbjsgZmFpbAorCistLSBsaWtlIGcyIGJ1dCBhc3NlbWJsZWQgd2l0aCBBTFRF UgorQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGczOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgQURE IFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIERFRkFVTFQgTEFCRUwpOworQUxURVIgUFJP UEVSVFkgR1JBUEggZzMKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAodDMgS0VZICh4KSBMQUJFTCB0 M2wxKQorICAgIEFERCBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxIFNPVVJDRSBLRVkgKGEpIFJF RkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9OIEtFWSAoaSkgUkVGRVJFTkNFUyB0MiAoaSksCisg ICAgICAgIGUyIEtFWSAoYSwgeCkgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVT VElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQzICh4LCB5KQorICAgICk7CitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFCTEUgdDMgQUREIExBQkVMIHQzbDIgUFJP UEVSVElFUyBBTEwgQ09MVU1OUyBBREQgTEFCRUwgdDNsMyBQUk9QRVJUSUVTIEFMTCBDT0xVTU5T OworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgQUxURVIgVkVSVEVYIFRBQkxFIHQzIERST1AgTEFC RUwgdDNsM3g7ICAtLSBlcnJvcgorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgQUxURVIgVkVSVEVY IFRBQkxFIHQzIERST1AgTEFCRUwgdDNsMzsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIERST1Ag VkVSVEVYIFRBQkxFUyAodDIpOyAgLS0gZmFpbCAoVE9ETzogZHViaW91cyBlcnJvciBtZXNzYWdl KQorQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBWRVJURVggVEFCTEVTICh0MikgQ0FTQ0FE RTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGczIERST1AgRURHRSBUQUJMRVMgKGUyKTsKKworQ1JF QVRFIFBST1BFUlRZIEdSQVBIIGc0CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtF WSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAgICAgdDIgREVGQVVMVCBMQUJFTCBQUk9QRVJUSUVT IChpICsgaiBBUyBpX2osIGspLAorICAgICAgICB0MyBLRVkgKHgpIExBQkVMIHQzbDEgUFJPUEVS VElFUyAoeCwgeSBBUyB5eSkgTEFCRUwgdDNsMiBQUk9QRVJUSUVTICh4LCB6IEFTIHp6KQorICAg ICkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxCisgICAgICAgICAgICBTT1VSQ0UgS0VZ IChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChpKSBS RUZFUkVOQ0VTIHQyIChpKQorICAgICAgICAgICAgUFJPUEVSVElFUyBBTEwgQ09MVU1OUywKKyAg ICAgICAgZTIgS0VZIChhLCB4KQorICAgICAgICAgICAgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNF UyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0 MyAoeCwgeSkKKyAgICAgICAgICAgIFBST1BFUlRJRVMgQUxMIENPTFVNTlMKKyAgICApOworCitB TFRFUiBQUk9QRVJUWSBHUkFQSCBnNCBBTFRFUiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFCRUwg dDIgQUREIFBST1BFUlRJRVMgKGsgKiAyIEFTIGtrKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0 IEFMVEVSIFZFUlRFWCBUQUJMRSB0MiBBTFRFUiBMQUJFTCB0MiBEUk9QIFBST1BFUlRJRVMgKGsp OworCitDUkVBVEUgVEFCTEUgdDExIChhIGludCBQUklNQVJZIEtFWSk7CitDUkVBVEUgVEFCTEUg dDEyIChiIGludCBQUklNQVJZIEtFWSk7CitDUkVBVEUgVEFCTEUgdDEzICgKKyAgICBjIGludCBQ UklNQVJZIEtFWSwKKyAgICBkIGludCBSRUZFUkVOQ0VTIHQxMSwKKyAgICBlIGludCBSRUZFUkVO Q0VTIHQxMgorKTsKKworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGc1CisgICAgVkVSVEVYIFRBQkxF UyAodDExLCB0MTIpCisgICAgRURHRSBUQUJMRVMgKHQxMyBTT1VSQ0UgdDExIERFU1RJTkFUSU9O IHQxMik7CisKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnNSc6OnJlZ2NsYXNzKTsKKwor LS0gZXJyb3IgY2FzZXMKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneCBWRVJURVggVEFCTEVTICh4 eCwgeXkpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4IFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAo YSksIHQyIEtFWSAoaSksIHQxIEtFWSAoYSkpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4Cisg ICAgVkVSVEVYIFRBQkxFUyAodDEgQVMgdHQgS0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0MgorICAgICk7CitD UkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICh0MSBLRVkgKGEpLCB0 MiBLRVkgKGkpKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEgU09VUkNFIHQxIERFU1RJ TkFUSU9OIHR4CisgICAgKTsKK0NPTU1FTlQgT04gUFJPUEVSVFkgR1JBUEggZ3ggSVMgJ25vdCBh IGdyYXBoJzsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQx IEtFWSAoYSksIHQyKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEgU09VUkNFIHQxIERF U1RJTkFUSU9OIHQyICAtLSBubyBmb3JlaWduIGtleXMKKyAgICApOworQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtFWSAoYSkgTEFCRUwg Zm9vIFBST1BFUlRJRVMgKGEgKyAxIEFTIGFhKQorICAgICAgICAgICAgICAgICAgIExBQkVMIGJh ciBQUk9QRVJUSUVTICgxICsgYSBBUyBhYSkgIC0tIGV4cHJlc3Npb24gbWlzbWF0Y2gKKyAgICAp OworQUxURVIgUFJPUEVSVFkgR1JBUEggZzIKKyAgICBBREQgVkVSVEVYIFRBQkxFUyAoCisgICAg ICAgIHQxIEFTIHQxeCBLRVkgKGEpIExBQkVMIGZvbyBQUk9QRVJUSUVTIChhICsgMSBBUyBhYSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgTEFCRUwgYmFyIFBST1BFUlRJRVMgKDEgKyBhIEFT IGFhKSAgLS0gZXhwcmVzc2lvbiBtaXNtYXRjaAorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVT IChiIEFTIHAxKSwKKyAgICAgICAgdDIgUFJPUEVSVElFUyAoayBBUyBwMSkgIC0tIHR5cGUgbWlz bWF0Y2gKKyAgICApOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzIgQUxURVIgVkVSVEVYIFRBQkxF IHQxIEFERCBMQUJFTCBmb28gUFJPUEVSVElFUyAoYiBBUyBrKTsgIC0tIHR5cGUgbWlzbWF0Y2gK KworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAg IHQxIEtFWSAoYSkgTEFCRUwgbDEgUFJPUEVSVElFUyAoYSwgYSBBUyBhYSksCisgICAgICAgIHQy IEtFWSAoaSkgTEFCRUwgbDEgUFJPUEVSVElFUyAoaSBBUyBhLCBqIEFTIGIsIGspICAtLSBtaXNt YXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBvbiBsYWJlbAorICAgICk7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBM QUJFTCBsMSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQ Uk9QRVJUSUVTIChpIEFTIGEpICAtLSBtaXNtYXRjaGluZyBudW1iZXIgb2YgcHJvcGVydGllcyBv biBsYWJlbAorICAgICk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3gKKyAgICBWRVJURVggVEFC TEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChhLCBiKSwKKyAg ICAgICAgdDIgS0VZIChpKSBMQUJFTCBsMSBQUk9QRVJUSUVTIChpIEFTIGEsIGogQVMgaikgIC0t IG1pc21hdGNoaW5nIHByb3BlcnR5IG5hbWVzIG9uIGxhYmVsCisgICAgKTsKK0FMVEVSIFBST1BF UlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJU SUVTIChhIEFTIHgsIGIgQVMgeXksIGIgQVMgenopOyAgLS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9m IHByb3BlcnRpZXMgb24gbGFiZWwKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRF WCBUQUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChhIEFTIHgsIGIgQVMgenopOyAg LS0gbWlzbWF0Y2hpbmcgcHJvcGVydHkgbmFtZXMgb24gbGFiZWwKK0FMVEVSIFBST1BFUlRZIEdS QVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MSBBREQgTEFCRUwgdDNsMSBQUk9QRVJUSUVTIChh IEFTIHgpOyAgLS0gbWlzbWF0Y2hpbmcgbnVtYmVyIG9mIHByb3BlcnRpZXMgb24gbGFiZWwKKwor CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMSBPV05FUiBUTyByZWdyZXNzX2dyYXBoX3VzZXIxOwor U0VUIFJPTEUgcmVncmVzc19ncmFwaF91c2VyMTsKK0dSQU5UIFNFTEVDVCBPTiBQUk9QRVJUWSBH UkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOworR1JBTlQgVVBEQVRFIE9OIFBST1BFUlRZ IEdSQVBIIGcxIFRPIHJlZ3Jlc3NfZ3JhcGhfdXNlcjI7ICAtLSBmYWlsCitSRVNFVCBST0xFOwor CisKKy0tIGluZm9ybWF0aW9uIHNjaGVtYQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5wcm9wZXJ0eV9ncmFwaHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZTsKK1NFTEVD VCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVzIE9SREVSIEJZIHBy b3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXM7CitTRUxFQ1QgKiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIE9SREVSIEJZIHBy b3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247 CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lZGdlX3RhYmxlX2NvbXBvbmVu dHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWRnZV90YWJsZV9hbGlhcywgZWRnZV9l bmQgREVTQywgb3JkaW5hbF9wb3NpdGlvbjsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2No ZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUs IGVsZW1lbnRfdGFibGVfYWxpYXMsIGxhYmVsX25hbWU7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0 aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlf Z3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhcywgcHJvcGVydHlfbmFtZTsKK1NFTEVDVCAq IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJv cGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFtZSwgcHJvcGVydHlfbmFtZTsKK1NFTEVDVCAqIEZS T00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX2xhYmVscyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9u YW1lLCBsYWJlbF9uYW1lOworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJv cGVydHlfZGF0YV90eXBlcyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lLCBwcm9wZXJ0eV9u YW1lOworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3JhcGhf cHJpdmlsZWdlcyBXSEVSRSBncmFudGVlIExJS0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9wZXJ0 eV9ncmFwaF9uYW1lOworCisKK1xhXHQKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMic6 OnJlZ2NsYXNzKTsKK1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsK K1NFTEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnNCc6OnJlZ2NsYXNzKTsKKworU0VMRUNUIHBn X2dldF9wcm9wZ3JhcGhkZWYoJ3BnX3R5cGUnOjpyZWdjbGFzcyk7ICAtLSBlcnJvcgorXGFcdAor CitcZEcgZzEKKworLS0gVE9ETworXGQgZzEKK1xkKyBnMQorCitEUk9QIFRBQkxFIGcyOyAgLS0g ZXJyb3I6IHdyb25nIG9iamVjdCB0eXBlCisKK0RST1AgUFJPUEVSVFkgR1JBUEggZzE7CisKK0RS T1AgUFJPUEVSVFkgR1JBUEggZzE7ICAtLSBlcnJvcjogZG9lcyBub3QgZXhpc3QKKworRFJPUCBQ Uk9QRVJUWSBHUkFQSCBJRiBFWElTVFMgZzE7CisKKy0tIGxlYXZlIGZvciBwZ191cGdyYWRlL3Bn X2R1bXAgdGVzdHMKKy0tRFJPUCBTQ0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIENB U0NBREU7CisKK0RST1AgUk9MRSByZWdyZXNzX2dyYXBoX3VzZXIxLCByZWdyZXNzX2dyYXBoX3Vz ZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4yYjQzYjEzNmVhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbApAQCAtMCwwICsxLDMzNiBAQAorQ1JFQVRF IFNDSEVNQSBncmFwaF90YWJsZV90ZXN0czsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBncmFwaF90 YWJsZV90ZXN0cyBUTyBQVUJMSUM7CitTRVQgc2VhcmNoX3BhdGggPSBncmFwaF90YWJsZV90ZXN0 czsKKworQ1JFQVRFIFRBQkxFIHByb2R1Y3RzICgKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUFJJ TUFSWSBLRVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIHByaWNlIG51bWVyaWMKKyk7CisKK0NS RUFURSBUQUJMRSBjdXN0b21lcnMgKAorICAgIGN1c3RvbWVyX2lkIGludGVnZXIgUFJJTUFSWSBL RVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIGFkZHJlc3MgdmFyY2hhcgorKTsKKworQ1JFQVRF IFRBQkxFIG9yZGVycyAoCisgICAgb3JkZXJfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICBv cmRlcmVkX3doZW4gZGF0ZQorKTsKKworQ1JFQVRFIFRBQkxFIG9yZGVyX2l0ZW1zICgKKyAgICBv cmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9yZGVyX2lkIGludGVnZXIg UkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKSwKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUkVG RVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgcXVhbnRpdHkgaW50ZWdlcgorKTsK KworQ1JFQVRFIFRBQkxFIGN1c3RvbWVyX29yZGVycyAoCisgICAgY3VzdG9tZXJfb3JkZXJzX2lk IGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgY3VzdG9tZXJfaWQgaW50ZWdlciBSRUZFUkVOQ0VT IGN1c3RvbWVycyAoY3VzdG9tZXJfaWQpLAorICAgIG9yZGVyX2lkIGludGVnZXIgUkVGRVJFTkNF UyBvcmRlcnMgKG9yZGVyX2lkKQorKTsKKworQ1JFQVRFIFRBQkxFIHdpc2hsaXN0cyAoCisgICAg d2lzaGxpc3RfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICB3aXNobGlzdF9uYW1lIHZhcmNo YXIKKyk7CisKK0NSRUFURSBUQUJMRSB3aXNobGlzdF9pdGVtcyAoCisgICAgd2lzaGxpc3RfaXRl bXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFJFRkVS RU5DRVMgd2lzaGxpc3RzICh3aXNobGlzdF9pZCksCisgICAgcHJvZHVjdF9ubyBpbnRlZ2VyIFJF RkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCispOworCitDUkVBVEUgVEFCTEUgY3VzdG9t ZXJfd2lzaGxpc3RzICgKKyAgICBjdXN0b21lcl93aXNobGlzdF9pZCBpbnRlZ2VyIFBSSU1BUlkg S0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3Rv bWVyX2lkKSwKKyAgICB3aXNobGlzdF9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgd2lzaGxpc3RzICh3 aXNobGlzdF9pZCkKKyk7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBteXNob3AKKyAgICBWRVJU RVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVjdHMsCisgICAgICAgIGN1c3RvbWVycywKKyAgICAg ICAgb3JkZXJzCisgICAgICAgICAgIERFRkFVTFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGxp c3RzIFBST1BFUlRJRVMgKG9yZGVyX2lkIGFzIG5vZGVfaWQsICdvcmRlcic6OnZhcmNoYXIoMTAp IGFzIGxpc3RfdHlwZSksCisgICAgICAgIHdpc2hsaXN0cworICAgICAgICAgICBERUZBVUxUIExB QkVMCisgICAgICAgICAgICBMQUJFTCBsaXN0cyBQUk9QRVJUSUVTICh3aXNobGlzdF9pZCBhcyBu b2RlX2lkLCAnd2lzaGxpc3QnOjp2YXJjaGFyKDEwKSBhcyBsaXN0X3R5cGUpCisgICAgKQorICAg IEVER0UgVEFCTEVTICgKKyAgICAgICAgb3JkZXJfaXRlbXMgS0VZIChvcmRlcl9pdGVtc19pZCkK KyAgICAgICAgICAgIFNPVVJDRSBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VTIG9yZGVycyAob3Jk ZXJfaWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKHByb2R1Y3Rfbm8pIFJFRkVSRU5D RVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pCisgICAgICAgICAgICBERUZBVUxUIExBQkVMCisgICAg ICAgICAgICBMQUJFTCBsaXN0X2l0ZW1zIFBST1BFUlRJRVMgKG9yZGVyX2lkIGFzIGxpbmtfaWQs IHByb2R1Y3Rfbm8pLAorICAgICAgICB3aXNobGlzdF9pdGVtcyBLRVkgKHdpc2hsaXN0X2l0ZW1z X2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAod2lzaGxpc3RfaWQpIFJFRkVSRU5DRVMgd2lz aGxpc3RzICh3aXNobGlzdF9pZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJvZHVj dF9ubykgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubykKKyAgICAgICAgICAgIERFRkFV TFQgTEFCRUwKKyAgICAgICAgICAgIExBQkVMIGxpc3RfaXRlbXMgUFJPUEVSVElFUyAod2lzaGxp c3RfaWQgYXMgbGlua19pZCwgcHJvZHVjdF9ubyksCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBL RVkgKGN1c3RvbWVyX29yZGVyc19pZCkKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGN1c3RvbWVy X2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJfaWQpCisgICAgICAgICAgICBERVNU SU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VTIG9yZGVycyAob3JkZXJfaWQpCisgICAg ICAgICAgICBERUZBVUxUIExBQkVMCisgICAgICAgICAgICBMQUJFTCBjdXN0X2xpc3RzIFBST1BF UlRJRVMgKGN1c3RvbWVyX2lkLCBvcmRlcl9pZCBhcyBsaW5rX2lkKSwKKyAgICAgICAgY3VzdG9t ZXJfd2lzaGxpc3RzIEtFWSAoY3VzdG9tZXJfd2lzaGxpc3RfaWQpCisgICAgICAgICAgICBTT1VS Q0UgS0VZIChjdXN0b21lcl9pZCkgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKQor ICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh3aXNobGlzdF9pZCkgUkVGRVJFTkNFUyB3aXNo bGlzdHMgKHdpc2hsaXN0X2lkKQorICAgICAgICAgICAgREVGQVVMVCBMQUJFTAorICAgICAgICAg ICAgTEFCRUwgY3VzdF9saXN0cyBQUk9QRVJUSUVTIChjdXN0b21lcl9pZCwgd2lzaGxpc3RfaWQg YXMgbGlua19pZCkKKyAgICApOworCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RB QkxFICh4eHggTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJ UyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0 b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9U QUJMRSAocGdfY2xhc3MgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9ICdV UycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBB UyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBH UkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3Mg PSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjeC5u YW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0tIGVycm9yCitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBG Uk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRk cmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMg KGMubmFtZXggQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK1NFTEVDVCBjdXN0b21lcl9u YW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnN8ZW1wbG95 ZWVzIFdIRVJFIGMuYWRkcmVzcyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBv cmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7ICAtLSBlcnJvcgorU0VM RUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1 c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXSBDT0xV TU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKKworSU5TRVJUIElOVE8g cHJvZHVjdHMgVkFMVUVTCisgICAgKDEsICdwcm9kdWN0MScsIDEwKSwKKyAgICAoMiwgJ3Byb2R1 Y3QyJywgMjApLAorICAgICgzLCAncHJvZHVjdDMnLCAzMCk7CitJTlNFUlQgSU5UTyBjdXN0b21l cnMgVkFMVUVTCisgICAgKDEsICdjdXN0b21lcjEnLCAnVVMnKSwKKyAgICAoMiwgJ2N1c3RvbWVy MicsICdDQScpLAorICAgICgzLCAnY3VzdG9tZXIzJywgJ0dMJyk7CitJTlNFUlQgSU5UTyBvcmRl cnMgVkFMVUVTCisgICAgKDEsIGRhdGUgJzIwMjQtMDEtMDEnKSwKKyAgICAoMiwgZGF0ZSAnMjAy NC0wMS0wMicpLAorICAgICgzLCBkYXRlICcyMDI0LTAxLTAzJyk7CitJTlNFUlQgSU5UTyB3aXNo bGlzdHMgVkFMVUVTCisgICAgKDEsICd3aXNobGlzdDEnKSwKKyAgICAoMiwgJ3dpc2hsaXN0Micp LAorICAgICgzLCAnd2lzaGxpc3QzJyk7CitJTlNFUlQgSU5UTyBvcmRlcl9pdGVtcyAob3JkZXJf aXRlbXNfaWQsIG9yZGVyX2lkLCBwcm9kdWN0X25vLCBxdWFudGl0eSkgVkFMVUVTCisgICAgKDEs IDEsIDEsIDUpLAorICAgICgyLCAxLCAyLCAxMCksCisgICAgKDMsIDIsIDEsIDcpOworSU5TRVJU IElOVE8gY3VzdG9tZXJfb3JkZXJzIChjdXN0b21lcl9vcmRlcnNfaWQsIGN1c3RvbWVyX2lkLCBv cmRlcl9pZCkgVkFMVUVTCisgICAgKDEsIDEsIDEpLAorICAgICgyLCAyLCAyKTsKK0lOU0VSVCBJ TlRPIGN1c3RvbWVyX3dpc2hsaXN0cyAoY3VzdG9tZXJfd2lzaGxpc3RfaWQsIGN1c3RvbWVyX2lk LCB3aXNobGlzdF9pZCkgVkFMVUVTCisgICAgKDEsIDIsIDMpLAorICAgICgyLCAzLCAxKSwKKyAg ICAoMywgMywgMik7CitJTlNFUlQgSU5UTyB3aXNobGlzdF9pdGVtcyAod2lzaGxpc3RfaXRlbXNf aWQsIHdpc2hsaXN0X2lkLCBwcm9kdWN0X25vKSBWQUxVRVMKKyAgICAoMSwgMSwgMiksCisgICAg KDIsIDEsIDMpLAorICAgICgzLCAyLCAxKSwKKyAgICAoNCwgMywgMSk7CisKKy0tIHNpbmdsZSBl bGVtZW50IHBhdGggcGF0dGVybgorU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1B VENIIChjIElTIGN1c3RvbWVycykgQ09MVU1OUyAoYy5uYW1lKSk7CitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVzcyA9 ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFt ZSkpOworLS0gZ3JhcGggZWxlbWVudCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgbGFiZWwgb3IgdmFy aWFibGUKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0 b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VTJyktW10tPihvIElTIG9yZGVycykgQ09MVU1OUyAo Yy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15 c2hvcCBNQVRDSCAoYzpjdXN0b21lcnMpLVtjbzpjdXN0b21lcl9vcmRlcnNdLT4obzpvcmRlcnMg V0hFUkUgby5vcmRlcmVkX3doZW4gPSBkYXRlICcyMDI0LTAxLTAyJykgQ09MVU1OUyAoYy5uYW1l LCBjLmFkZHJlc3MpKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAo byBJUyBvcmRlcnMpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4oYyBJUyBjdXN0b21lcnMpIENPTFVN TlMgKGMubmFtZSwgby5vcmRlcmVkX3doZW4pKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUg KG15c2hvcCBNQVRDSCAobyBJUyBvcmRlcnMpPC1bSVMgY3VzdG9tZXJfb3JkZXJzXS0oYyBJUyBj dXN0b21lcnMpIENPTFVNTlMgKGMubmFtZSwgby5vcmRlcmVkX3doZW4pKTsKK1NFTEVDVCAqIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoIG8gSVMgb3JkZXJzICkgPC0gWyBJUyBjdXN0 b21lcl9vcmRlcnMgXSAtIChjIElTIGN1c3RvbWVycykgQ09MVU1OUyAoIGMubmFtZSwgby5vcmRl cmVkX3doZW4pKTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJ UyBjdXN0b21lcnMpLVtJUyBjdXN0X2xpc3RzXS0+KGwgSVMgbGlzdHMpLVsgSVMgbGlzdF9pdGVt c10tPihwIElTIHByb2R1Y3RzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSwgcC5u YW1lIGFzIHByb2R1Y3RfbmFtZSwgbC5saXN0X3R5cGUpKSBPUkRFUiBCWSBjdXN0b21lcl9uYW1l LCBwcm9kdWN0X25hbWUsIGxpc3RfdHlwZTsKKy0tIGxhYmVsIGRpc2p1bmN0aW9uCitTRUxFQ1Qg KiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS1bSVMgY3Vz dG9tZXJfb3JkZXJzIHwgY3VzdG9tZXJfd2lzaGxpc3RzIF0tPihsIElTIG9yZGVycyB8IHdpc2hs aXN0cyktWyBJUyBsaXN0X2l0ZW1zXS0+KHAgSVMgcHJvZHVjdHMpIENPTFVNTlMgKGMubmFtZSBB UyBjdXN0b21lcl9uYW1lLCBwLm5hbWUgYXMgcHJvZHVjdF9uYW1lKSkgT1JERVIgQlkgY3VzdG9t ZXJfbmFtZSwgcHJvZHVjdF9uYW1lOworLS0gcHJvcGVydHkgbm90IGFzc29jaWF0ZWQgd2l0aCBs YWJlbHMgcXVlcmllZCByZXN1bHRzIGluIGVycm9yCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxF IChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzIHwgY3Vz dG9tZXJfd2lzaGxpc3RzIF0tPihsIElTIG9yZGVycyB8IHdpc2hsaXN0cyktWyBJUyBsaXN0X2l0 ZW1zXS0+KHAgSVMgcHJvZHVjdHMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lLCBw Lm5hbWUgYXMgcHJvZHVjdF9uYW1lLCBsLmxpc3RfdHlwZSkpIE9SREVSIEJZIDEsIDIsIDM7Cist LSB2ZXJ0ZXggdG8gdmVydGV4IGNvbm5lY3Rpb24gYWJicmV2aWF0aW9uCitTRUxFQ1QgKiBGUk9N IEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS0+KG8gSVMgb3JkZXJz KSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSkgT1JERVIgQlkgMTsKKworLS0gbGF0 ZXJhbCB0ZXN0CitDUkVBVEUgVEFCTEUgeDEgKGEgaW50LCBiIHRleHQpOworSU5TRVJUIElOVE8g eDEgVkFMVUVTICgxLCAnb25lJyksICgyLCAndHdvJyk7CitTRUxFQ1QgKiBGUk9NIHgxLCBHUkFQ SF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAn VVMnIEFORCBjLmN1c3RvbWVyX2lkID0geDEuYSktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElT IG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUsIGMuY3VzdG9tZXJfaWQg QVMgY2lkKSk7CitEUk9QIFRBQkxFIHgxOworCisKK2NyZWF0ZSB0YWJsZSB2MSAoaWQgaW50IHBy aW1hcnkga2V5LAorCQkJCQl2bmFtZSB2YXJjaGFyKDEwKSwKKwkJCQkJdnByb3AxIGludCwKKwkJ CQkJdnByb3AyIGludCk7CisKK2NyZWF0ZSB0YWJsZSB2MiAoaWQxIGludCwKKwkJCQkJaWQyIGlu dCwKKwkJCQkJdm5hbWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9wMSBpbnQsCisJCQkJCXZwcm9w MiBpbnQpOworCitjcmVhdGUgdGFibGUgdjMgKGlkIGludCBwcmltYXJ5IGtleSwKKwkJCQkJdm5h bWUgdmFyY2hhcigxMCksCisJCQkJCXZwcm9wMSBpbnQsCisJCQkJCXZwcm9wMiBpbnQpOworCist LSBlZGdlIGNvbm5lY3RpbmcgdjEgYW5kIHYyCitjcmVhdGUgdGFibGUgZTFfMiAoaWRfMSBpbnQs CisJCQkJCWlkXzJfMSBpbnQsCisJCQkJCWlkXzJfMiBpbnQsCisJCQkJCWVuYW1lIHZhcmNoYXIo MTApLAorCQkJCQllcHJvcDEgaW50KTsKKworLS0gZWRnZSBjb25uZWN0aW5nIHYxIGFuZCB2Mwor Y3JlYXRlIHRhYmxlIGUxXzMgKGlkXzEgaW50LAorCQkJCQlpZF8zIGludCwKKwkJCQkJZW5hbWUg dmFyY2hhcigxMCksCisJCQkJCWVwcm9wMSBpbnQsCisJCQkJCXByaW1hcnkga2V5IChpZF8xLCBp ZF8zKSk7CisKK2NyZWF0ZSB0YWJsZSBlMl8zIChpZF8yXzEgaW50LAorICAgICAgICAgICAgICAg ICAgICBpZF8yXzIgaW50LAorICAgICAgICAgICAgICAgICAgICBpZF8zIGludCwKKyAgICAgICAg ICAgICAgICAgICAgZW5hbWUgdmFyY2hhcigxMCksCisgICAgICAgICAgICAgICAgICAgIGVwcm9w MSBpbnQpOworCitjcmVhdGUgcHJvcGVydHkgZ3JhcGggZzEKK3ZlcnRleCB0YWJsZXMgKAorCXYx CisgICAgICAgIGxhYmVsIHZsMSBwcm9wZXJ0aWVzICh2bmFtZSwgdnByb3AxKQorICAgICAgICBs YWJlbCBsMSBwcm9wZXJ0aWVzICh2bmFtZSBhcyBlbG5hbWUpLCAtLSBsYWJlbCBzaGFyZWQgYnkg dmVydGV4ZXMgYXMgd2VsbCBhcyBlZGdlcworCXYyIGtleSAoaWQxLCBpZDIpCisJCWxhYmVsIHZs MiBwcm9wZXJ0aWVzICh2bmFtZSwgdnByb3AyLCAndmwyX3Byb3AnOjp2YXJjaGFyKDEwKSBhcyBs cHJvcDEpCisgICAgICAgIGxhYmVsIHZsMyBwcm9wZXJ0aWVzICh2bmFtZSwgdnByb3AxLCAndmwy X3Byb3AnOjp2YXJjaGFyKDEwKSBhcyBscHJvcDEpCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRp ZXMgKHZuYW1lIGFzIGVsbmFtZSksCisJdjMKKwkJbGFiZWwgdmwzIHByb3BlcnRpZXMgKHZuYW1l LCB2cHJvcDEsICd2bDNfcHJvcCc6OnZhcmNoYXIoMTApIGFzIGxwcm9wMSkKKyAgICAgICAgbGFi ZWwgbDEgcHJvcGVydGllcyAodm5hbWUgYXMgZWxuYW1lKQorKQorLS0gZWRnZXMgd2l0aCBkaWZm ZXJpbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4gZGVzdGluYXRpb24ga2V5cworZWRnZSB0YWJsZXMg KAorCWUxXzIga2V5IChpZF8xLCBpZF8yXzEsIGlkXzJfMikKKwkJc291cmNlIGtleSAoaWRfMSkg cmVmZXJlbmNlcyB2MSAoaWQpCisJCWRlc3RpbmF0aW9uIGtleSAoaWRfMl8xLCBpZF8yXzIpIHJl ZmVyZW5jZXMgdjIgKGlkMSwgaWQyKQorCQlsYWJlbCBlbDEgcHJvcGVydGllcyAoZXByb3AxLCBl bmFtZSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMgZWxuYW1lKSwKKwll MV8zCisJCXNvdXJjZSBrZXkgKGlkXzEpIHJlZmVyZW5jZXMgdjEgKGlkKQorCQlkZXN0aW5hdGlv biBrZXkgKGlkXzMpIHJlZmVyZW5jZXMgdjMgKGlkKQorCQktLSBvcmRlciBvZiBwcm9wZXJ0eSBu YW1lcyBkb2Vzbid0IG1hdHRlcgorCQlsYWJlbCBlbDEgcHJvcGVydGllcyAoZW5hbWUsIGVwcm9w MSkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAoZW5hbWUgYXMgZWxuYW1lKSwKKyAgICBl Ml8zIGtleSAoaWRfMl8xLCBpZF8yXzIsIGlkXzMpCisgICAgICAgIHNvdXJjZSBrZXkgKGlkXzJf MSwgaWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKKyAgICAgICAgZGVzdGluYXRpb24g a2V5IChpZF8zKSByZWZlcmVuY2VzIHYzIChpZCkKKyAgICAgICAgLS0gbmV3IHByb3BlcnR5IGxw cm9wMiBub3Qgc2hhcmVkIGJ5IGVsMQorICAgICAgICAtLSBkb2VzIG5vdCBzaGFyZSBlcHJvcDEg ZnJvbSBieSBlbDEKKyAgICAgICAgbGFiZWwgZWwyIHByb3BlcnRpZXMgKGVuYW1lLCBlcHJvcDEg KiAxMCBhcyBscHJvcDIpCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKGVuYW1lIGFzIGVs bmFtZSkKKyk7CisKK2luc2VydCBpbnRvIHYxIHZhbHVlcyAoMSwgJ3YxMScsIDEwLCAxMDApLAor ICAgICAgICAgICAgICAgICAgICAgICgyLCAndjEyJywgMjAsIDIwMCksCisgICAgICAgICAgICAg ICAgICAgICAgKDMsICd2MTMnLCAzMCwgMzAwKTsKKworaW5zZXJ0IGludG8gdjIgdmFsdWVzICgx MDAwLCAxLCAndjIxJywgMTAxMCwgMTEwMCksCisgICAgICAgICAgICAgICAgICAgICAgKDEwMDAs IDIsICd2MjInLCAxMDIwLCAxMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAoMTAwMCwgMywg J3YyMycsIDEwMzAsIDEzMDApOworCitpbnNlcnQgaW50byB2MyB2YWx1ZXMgKDIwMDEsICd2MzEn LCAyMDEwLCAyMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAoMjAwMiwgJ3YzMicsIDIwMjAs IDIyMDApLAorICAgICAgICAgICAgICAgICAgICAgICgyMDAzLCAndjMzJywgMjAzMCwgMjMwMCk7 CisKK2luc2VydCBpbnRvIGUxXzIgdmFsdWVzICgxLCAxMDAwLCAyLCAnZTEyMScsIDEwMDAxKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICgyLCAxMDAwLCAxLCAnZTEyMicsIDEwMDAyKTsKKwor aW5zZXJ0IGludG8gZTFfMyB2YWx1ZXMgKDEsIDIwMDMsICdlMTMxJywgMTAwMDMpLAorICAgICAg ICAgICAgICAgICAgICAgICAgKDEsIDIwMDEsICdlMTMyJywgMTAwMDQpOworaW5zZXJ0IGludG8g ZTJfMyB2YWx1ZXMgKDEwMDAsIDIsIDIwMDIsICdlMjMxJywgMTAwMDUpOworCistLSBlbXB0eSBl bGVtZW50IHBhdGggcGF0dGVybiwgY291bnRzIG51bWJlciBvZiBlZGdlcyBpbiB0aGUgZ3JhcGgK K1NFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBNQVRDSCAoKS1bXS0+KCkgQ09M VU1OUyAoMSBhcyBvbmUpKTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIEdSQVBIX1RBQkxFIChnMSBN QVRDSCAoKS0+KCkgQ09MVU1OUyAoMSBhcyBvbmUpKTsKKy0tIFZlcnRleCBlbGVtZW50IHYyIGhh cyBsYWJlbCB2bDMgd2hpY2ggZXhwb3NlcyBwcm9wZXJ0eSB2cHJvcDEuIEJ1dCB2bDMgaXMKKy0t IG5vdCBwYXJ0IG9mIGxhYmVsIGV4cHJlc3Npb24uIEluc3RlYWQgdjIgZ2V0IGJvdW5kIHRocm91 Z2ggbGFiZWwgdmwyIHdoaWNoCistLSBkb2VzIG5vdCBleHBvc2UgdnByb3AxLiBUaGUgR1JBUEhf VEFCTEUgY2xhdXNlIHByb2plY3QgdnByb3AxLgorLS0KKy0tIFRPRE86IFRoaXMgY2FzZSBmYWls cyBzaW5jZSBjYXRhbG9ncyBkbyBub3QgYXNzb2NpYXRlZCBwcm9wZXJ0aWVzIHdpdGgKKy0tIGVs ZW1lbnRzIGRpcmVjdGx5LiBNb3JlIGNvZGUgaXMgbmVlZGVkIHRvIG1ha2UgaXQgd29yay4KK1NF TEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKGcxIE1BVENIIChhIElTIHZsMSB8IHZsMikgQ09MVU1O UyAoYS52bmFtZSwKK2EudnByb3AxKSk7CistLSB2cHJvcDIgaXMgYXNzb2NpYXRlZCB3aXRoIHZs MiBidXQgbm90IHZsMworc2VsZWN0IHNyYywgY29ubiwgZGVzdCwgbHByb3AxLCB2cHJvcDIsIHZw cm9wMSBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoYSBpcyB2bDEpLVtiIGlzIGVsMV0tPihj IGlzIHZsMiB8IHZsMykgY29sdW1ucyAoYS52bmFtZSBhcyBzcmMsIGIuZW5hbWUgYXMgY29ubiwg Yy52bmFtZSBhcyBkZXN0LCBjLmxwcm9wMSwgYy52cHJvcDIsIGMudnByb3AxKSk7CisKKy0tIEVy cm9ycworLS0gdmwxIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggcHJvcGVydHkgdnByb3AyCitzZWxl Y3Qgc3JjLCBzcmNfdnByb3AyLCBjb25uLCBkZXN0IGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNo IChhIGlzIHZsMSktW2IgaXMgZWwxXS0+KGMgaXMgdmwyIHwgdmwzKSBjb2x1bW5zIChhLnZuYW1l IGFzIHNyYywgYS52cHJvcDIgYXMgc3JjX3Zwcm9wMiwgYi5lbmFtZSBhcyBjb25uLCBjLnZuYW1l IGFzIGRlc3QpKTsKKy0tIHByb3BlcnR5IGVuYW1lIGlzIGFzc29jaWF0ZWQgd2l0aCBlZGdlIGxh YmVscyBidXQgbm90IHdpdGggYSB2ZXJ0ZXggbGFiZWwKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFi bGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3QpIGNvbHVtbnMgKHNyYy52bmFtZSBhcyBz dm5hbWUsIHNyYy5lbmFtZSBhcyBzZW5hbWUpKTsKKy0tIHZuYW1lIGlzIGFzc29jaWF0ZWQgdmVy dGV4IGxhYmVscyBidXQgbm90IGFuIGVkZ2UgbGFiZWwKK3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFi bGUgKGcxIG1hdGNoIChzcmMpLVtjb25uXS0+KGRlc3QpIGNvbHVtbnMgKGNvbm4udm5hbWUgYXMg Y3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFtZSkpOworLS0gZWwxIGlzIGFzc29jaWF0ZWQgd2l0 aCBlZGdlcyBidXQgaXMgb25seSBsYWJlbCB1c2VkIHRvIHF1YWxpZnkgdmVydGV4CitzZWxlY3Qg KiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIGlzIGVsMSktW2Nvbm5dLT4oZGVzdCkg Y29sdW1ucyAoY29ubi5lbmFtZSBhcyBjZW5hbWUpKTsKKy0tIGVsMSBpcyBhc3NvY2lhdGVkIHdp dGggZWRnZXMgYnV0IGlzIG9uZSBvZiB0aGUgbGFiZWxzIHVzZWQgdG8gcXVhbGlmeSB2ZXJ0ZXgK K3NlbGVjdCAqIGZyb20gZ3JhcGhfdGFibGUgKGcxIG1hdGNoIChzcmMgaXMgZWwxIHwgdmwxKS1b Y29ubl0tPihkZXN0KSBjb2x1bW5zIChjb25uLmVuYW1lIGFzIGNlbmFtZSkpOworCistLSBzZWxl Y3QgYWxsIHRoZSBwcm9wZXJ0aWVzIGFjcm9zcyBhbGwgdGhlIGxhYmVscyBhc3NvY2lhdGVkIHdp dGggYSBnaXZlbiB0eXBlCistLSBvZiBncmFwaCBlbGVtZW50CitzZWxlY3QgKiBmcm9tIGdyYXBo X3RhYmxlIChnMSBtYXRjaCAoc3JjKS1bY29ubl0tPihkZXN0KSBjb2x1bW5zIChzcmMudm5hbWUg YXMgc3ZuYW1lLCBjb25uLmVuYW1lIGFzIGNlbmFtZSwgZGVzdC52bmFtZSBhcyBkdm5hbWUsIHNy Yy52cHJvcDEgYXMgc3ZwMSwgc3JjLnZwcm9wMiBhcyBzdnAyLCBzcmMubHByb3AxIGFzIHNscDEs IGRlc3QudnByb3AxIGFzIGR2cDEsIGRlc3QudnByb3AyIGFzIGR2cDIsIGRlc3QubHByb3AxIGFz IGRscDEsIGNvbm4uZXByb3AxIGFzIGNlcDEsIGNvbm4ubHByb3AyIGFzIGNscDIpKTsKKy0tIHRo cmVlIGxhYmVsIGRpc2p1bmN0aW9uCitzZWxlY3QgKiBmcm9tIGdyYXBoX3RhYmxlIChnMSBtYXRj aCAoc3JjIElTIHZsMSB8IHZsMiB8IHZsMyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZu YW1lIGFzIHN2bmFtZSwgY29ubi5lbmFtZSBhcyBjZW5hbWUsIGRlc3Qudm5hbWUgYXMgZHZuYW1l KSk7CistLSBncmFwaCdpY2FsIHF1ZXJ5OiBmaW5kIGEgdmVydGV4IHdoaWNoIGlzIG5vdCBjb25u ZWN0ZWQgdG8gYW55IG90aGVyIHZlcnRleCBhcyBhIHNvdXJjZSBvciBhIGRlc3RpbmF0aW9uLgor d2l0aCBhbGxfY29ubmVjdGVkX3ZlcnRpY2VzIGFzIChzZWxlY3Qgc3ZuLCBkdm4gZnJvbSBncmFw aF90YWJsZSAoZzEgbWF0Y2ggKHNyYyktW2Nvbm5dLT4oZGVzdCkgY29sdW1ucyAoc3JjLnZuYW1l IGFzIHN2biwgZGVzdC52bmFtZSBhcyBkdm4pKSksCisgICAgYWxsX3ZlcnRpY2VzIGFzIChzZWxl Y3Qgdm4gZnJvbSBncmFwaF90YWJsZSAoZzEgbWF0Y2ggKHZlcnRleCkgY29sdW1ucyAodmVydGV4 LnZuYW1lIGFzIHZuKSkpCitzZWxlY3Qgdm4gZnJvbSBhbGxfdmVydGljZXMgZXhjZXB0IChzZWxl Y3Qgc3ZuIGZyb20gYWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyB1bmlvbiBzZWxlY3QgZHZuIGZyb20g YWxsX2Nvbm5lY3RlZF92ZXJ0aWNlcyk7CistLSBxdWVyeSBhbGwgY29ubmVjdGlvbnMgdXNpbmcg YSBsYWJlbCBzaGFyZWQgYnkgdmVydGljZXMgYW5kIGVkZ2VzCitzZWxlY3Qgc24sIGNuLCBkbiBm cm9tIGdyYXBoX3RhYmxlIChnMSBtYXRjaCAoc3JjIDogbDEpLVtjb25uIDogbDFdLT4oZGVzdCA6 IGwxKSBjb2x1bW5zIChzcmMuZWxuYW1lIGFzIHNuLCBjb25uLmVsbmFtZSBhcyBjbiwgZGVzdC5l bG5hbWUgYXMgZG4pKTsKKworLS0gcHJvcGVydHkgZ3JhcGggd2l0aCBzb21lIG9mIHRoZSBlbGVt ZW50cywgbGFiZWxzIGFuZCBwcm9wZXJ0aWVzIHNhbWUgYXMgdGhlCistLSBwcmV2aW91cyBvbmUu IFRlc3Qgd2hldGhlciBjb21wb25lbnRzIGZyb20gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBncmFw aCBhcmUKKy0tIHVzZWQuCitjcmVhdGUgcHJvcGVydHkgZ3JhcGggZzIKK3ZlcnRleCB0YWJsZXMg KAorCXYxCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IHZuYW1lIGFzIGVs bmFtZSksCisJdjIga2V5IChpZDEsIGlkMikKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAo J2cyLicgfHwgdm5hbWUgYXMgZWxuYW1lKSwKKwl2MworICAgICAgICBsYWJlbCBsMSBwcm9wZXJ0 aWVzICgnZzIuJyB8fCB2bmFtZSBhcyBlbG5hbWUpCispCitlZGdlIHRhYmxlcyAoCisJZTFfMiBr ZXkgKGlkXzEsIGlkXzJfMSwgaWRfMl8yKQorCQlzb3VyY2Uga2V5IChpZF8xKSByZWZlcmVuY2Vz IHYxIChpZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8yXzEsIGlkXzJfMikgcmVmZXJlbmNlcyB2 MiAoaWQxLCBpZDIpCisgICAgICAgIGxhYmVsIGwxIHByb3BlcnRpZXMgKCdnMi4nIHx8IGVuYW1l IGFzIGVsbmFtZSksCisJZTFfMworCQlzb3VyY2Uga2V5IChpZF8xKSByZWZlcmVuY2VzIHYxIChp ZCkKKwkJZGVzdGluYXRpb24ga2V5IChpZF8zKSByZWZlcmVuY2VzIHYzIChpZCkKKyAgICAgICAg bGFiZWwgbDEgcHJvcGVydGllcyAoJ2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKSwKKyAgICBlMl8z IGtleSAoaWRfMl8xLCBpZF8yXzIsIGlkXzMpCisgICAgICAgIHNvdXJjZSBrZXkgKGlkXzJfMSwg aWRfMl8yKSByZWZlcmVuY2VzIHYyIChpZDEsIGlkMikKKyAgICAgICAgZGVzdGluYXRpb24ga2V5 IChpZF8zKSByZWZlcmVuY2VzIHYzIChpZCkKKyAgICAgICAgbGFiZWwgbDEgcHJvcGVydGllcyAo J2cyLicgfHwgZW5hbWUgYXMgZWxuYW1lKQorKTsKK3NlbGVjdCBzbiwgY24sIGRuIGZyb20gZ3Jh cGhfdGFibGUgKGcyIG1hdGNoIChzcmMgOiBsMSktW2Nvbm4gOiBsMV0tPihkZXN0IDogbDEpIGNv bHVtbnMgKHNyYy5lbG5hbWUgYXMgc24sIGNvbm4uZWxuYW1lIGFzIGNuLCBkZXN0LmVsbmFtZSBh cyBkbikpOworCitDUkVBVEUgVklFVyBjdXN0b21lcnNfdXMgQVMgU0VMRUNUIGN1c3RvbWVyX25h bWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBj LmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xV TU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOworCitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYo J2N1c3RvbWVyc191cyc6OnJlZ2NsYXNzKTsKKworLS0gdGVzdCB2aWV3L2dyYXBoIG5lc3RpbmcK KworQ1JFQVRFIFZJRVcgY3VzdG9tZXJzX3ZpZXcgQVMgU0VMRUNUIGN1c3RvbWVyX2lkLCAncmVk YWN0ZWQnIHx8IGN1c3RvbWVyX2lkIEFTIG5hbWVfcmVkYWN0ZWQsIGFkZHJlc3MgRlJPTSBjdXN0 b21lcnM7CitTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyczsKK1NFTEVDVCAqIEZST00gY3VzdG9tZXJz X3ZpZXc7CisKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBteXNob3AyCisgICAgVkVSVEVYIFRBQkxF UyAoCisgICAgICAgIHByb2R1Y3RzLAorICAgICAgICBjdXN0b21lcnNfdmlldyBLRVkgKGN1c3Rv bWVyX2lkKSBMQUJFTCBjdXN0b21lcnMsCisgICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQpCisgICAg ICAgICAgICBTT1VSQ0UgS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lk KQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChwcm9kdWN0X25vKSBSRUZFUkVOQ0VTIHBy b2R1Y3RzIChwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3JkZXJzIEtFWSAoY3VzdG9t ZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3VzdG9tZXJfaWQpIFJFRkVS RU5DRVMgY3VzdG9tZXJzX3ZpZXcgKGN1c3RvbWVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJ T04gS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorICAgICk7CisK K0NSRUFURSBWSUVXIGN1c3RvbWVyc191c19yZWRhY3RlZCBBUyBTRUxFQ1QgKiBGUk9NIEdSQVBI X1RBQkxFIChteXNob3AyIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAn VVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWVf cmVkYWN0ZWQgQVMgY3VzdG9tZXJfbmFtZV9yZWRhY3RlZCkpOworCitTRUxFQ1QgKiBGUk9NIGN1 c3RvbWVyc191c19yZWRhY3RlZDsKKworLS0gbGVhdmUgZm9yIHBnX3VwZ3JhZGUvcGdfZHVtcCB0 ZXN0cworLS1EUk9QIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBDQVNDQURFOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCmluZGV4IDFhNmM2MWY0OWQ1Li45M2Y5ZjljNzA0 ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbApAQCAtMzcsNiArMzcs NyBAQCBDUkVBVEUgRlVOQ1RJT04gYWRkcl9uc3AudHJpZygpIFJFVFVSTlMgVFJJR0dFUiBMQU5H VUFHRSBwbHBnc3FsIEFTICQkIEJFR0lOIEVORAogQ1JFQVRFIFRSSUdHRVIgdCBCRUZPUkUgSU5T RVJUIE9OIGFkZHJfbnNwLmdlbnRhYmxlIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBh ZGRyX25zcC50cmlnKCk7CiBDUkVBVEUgUE9MSUNZIGdlbnBvbCBPTiBhZGRyX25zcC5nZW50YWJs ZTsKIENSRUFURSBQUk9DRURVUkUgYWRkcl9uc3AucHJvYyhpbnQ0KSBMQU5HVUFHRSBTUUwgQVMg JCQgJCQ7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggYWRkcl9uc3AuZ2VuZ3JhcGg7CiBDUkVBVEUg U0VSVkVSICJpbnRlZ2VyIiBGT1JFSUdOIERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBV U0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1B IHB1YmxpYyBHUkFOVCBBTEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwpAQCAtOTAs NyArOTEsNyBAQCBERUNMQVJFCiBCRUdJTgogICAgIEZPUiBvYmp0eXBlIElOIFZBTFVFUwogICAg ICAgICAoJ3RhYmxlJyksICgnaW5kZXgnKSwgKCdzZXF1ZW5jZScpLCAoJ3ZpZXcnKSwKLSAgICAg ICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVpZ24gdGFibGUnKSwKKyAgICAgICAgKCdt YXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVpZ24gdGFibGUnKSwgKCdwcm9wZXJ0eSBncmFwaCcp LAogICAgICAgICAoJ3RhYmxlIGNvbHVtbicpLCAoJ2ZvcmVpZ24gdGFibGUgY29sdW1uJyksCiAg ICAgICAgICgnYWdncmVnYXRlJyksICgnZnVuY3Rpb24nKSwgKCdwcm9jZWR1cmUnKSwgKCd0eXBl JyksICgnY2FzdCcpLAogICAgICAgICAoJ3RhYmxlIGNvbnN0cmFpbnQnKSwgKCdkb21haW4gY29u c3RyYWludCcpLCAoJ2NvbnZlcnNpb24nKSwgKCdkZWZhdWx0IHZhbHVlJyksCkBAIC0xNjMsNiAr MTY0LDcgQEAgV0lUSCBvYmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAgICAg KCd2aWV3JywgJ3thZGRyX25zcCwgZ2Vudmlld30nLCAne30nKSwKICAgICAoJ21hdGVyaWFsaXpl ZCB2aWV3JywgJ3thZGRyX25zcCwgZ2VubWF0dmlld30nLCAne30nKSwKICAgICAoJ2ZvcmVpZ24g dGFibGUnLCAne2FkZHJfbnNwLCBnZW5mdGFibGV9JywgJ3t9JyksCisgICAgKCdwcm9wZXJ0eSBn cmFwaCcsICd7YWRkcl9uc3AsIGdlbmdyYXBofScsICd7fScpLAogICAgICgndGFibGUgY29sdW1u JywgJ3thZGRyX25zcCwgZ2VudGFibGUsIGJ9JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRhYmxl IGNvbHVtbicsICd7YWRkcl9uc3AsIGdlbmZ0YWJsZSwgYX0nLCAne30nKSwKICAgICAoJ2FnZ3Jl Z2F0ZScsICd7YWRkcl9uc3AsIGdlbmFnZ3J9JywgJ3tpbnQ0fScpLApkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCA5YTNiZWU5M2RlYy4uNDllOGFhNjdhZDIgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC00MjEyLDMgKzQyMTIsMjQgQEAgeXlzY2FuX3QKIHpfc3RyZWFtCiB6X3N0 cmVhbXAKIHppY190CisKKyMgVE9ETworQWx0ZXJQcm9wR3JhcGhFbGVtZW50S2luZAorQWx0ZXJQ cm9wR3JhcGhTdG10CitDcmVhdGVQcm9wR3JhcGhTdG10CitGb3JtRGF0YV9wZ19wcm9wZ3JhcGhf ZWxlbWVudAorRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnRfbGFiZWwKK0Zvcm1EYXRhX3Bn X3Byb3BncmFwaF9sYWJlbAorRm9ybURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsX3Byb3BlcnR5CitG b3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkKK0dyYXBoRWxlbWVudFBhdHRlcm4KK0dyYXBo RWxlbWVudFBhdHRlcm5LaW5kCitHcmFwaExhYmVsUmVmCitHcmFwaFBhdHRlcm4KK0dyYXBoUHJv cGVydHlSZWYKK0dyYXBoVGFibGVQYXJzZVN0YXRlCitQcm9wR3JhcGhFZGdlCitQcm9wR3JhcGhM YWJlbEFuZFByb3BlcnRpZXMKK1Byb3BHcmFwaFByb3BlcnRpZXMKK1Byb3BHcmFwaFZlcnRleAor UmFuZ2VHcmFwaFRhYmxlCi0tIAoyLjM5LjUKCg== --00000000000074adbd062dcaf7b5--