From jlukens@botch.com  Thu Feb 27 15:41:40 2014
Received: (at submit) by bugs.x2go.org; 27 Feb 2014 14:41:41 +0000
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=ham
	version=3.3.2
X-Greylist: delayed 1502 seconds by postgrey-1.34 at ymir; Thu, 27 Feb 2014 15:41:39 CET
Received: from felt.botch.com (felt.botch.com [207.145.43.98])
	by ymir (Postfix) with ESMTP id 01BD95DB16
	for <submit@bugs.x2go.org>; Thu, 27 Feb 2014 15:41:39 +0100 (CET)
Received: from [127.0.0.1] (unknown [192.168.254.1])
	(Authenticated sender: jlukens)
	by felt.botch.com (Postfix) with ESMTP id 706891AC0C7
	for <submit@bugs.x2go.org>; Thu, 27 Feb 2014 09:16:30 -0500 (EST)
Date: Thu, 27 Feb 2014 09:16:29 -0500
From: Joshua Lukens <jlukens@botch.com>
To: submit@bugs.x2go.org
Message-ID: <84F7E80E06784E5695FC31F4E72E3DC0@botch.com>
Subject: Convert from using QHttp to QNetworkAccessManager for Session
 Broker
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="530f48bd_567bd50a_233f"

--530f48bd_567bd50a_233f
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Package: x2goclient
Version: 4.0.1.3
Severity: wishlist

QT lists QHttp as "This class is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code."  The current preferred method for making http/https request is to use QNetworkAccessManager.  The attached patch makes that conversion.  I've done light testing on patch with both OSX and Windows clients and it appears functional.
--530f48bd_567bd50a_233f
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment; 
 filename="switch-to-QNetworkAccessManager.patch"

Y29tbWl0IDAwYjgwOWQ4MDlhZTRjYTY5MWQ1YTRlMmZhNjYxN2RlNzZjZmRjMGIKQXV0aG9yOiBK
b3NoIEx1a2VucyA8amx1a2Vuc0Bib3RjaC5jb20+CkRhdGU6ICAgVGh1IEZlYiAyNyAwOTowNToy
OCAyMDE0IC0wNTAwCgogICAgQ29udmVydCBmcm9tIHVzaW5nIFFIdHRwIHRvIFFOZXR3b3JrQWNj
ZXNzTWFuYWdlciBmb3IgU2Vzc2lvbiBCcm9rZXIKCmRpZmYgLS1naXQgYS9odHRwYnJva2VyY2xp
ZW50LmNwcCBiL2h0dHBicm9rZXJjbGllbnQuY3BwCmluZGV4IGQyMzhkODIuLjgyNzNkN2MgMTAw
NjQ0Ci0tLSBhL2h0dHBicm9rZXJjbGllbnQuY3BwCisrKyBiL2h0dHBicm9rZXJjbGllbnQuY3Bw
CkBAIC0xNiw4ICsxNiwxMCBAQAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjaW5jbHVkZSAiaHR0
cGJyb2tlcmNsaWVudC5oIgorI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KICNpbmNs
dWRlIDxRVXJsPgotI2luY2x1ZGUgPFFIdHRwPgorI2luY2x1ZGUgPFFOZXR3b3JrUmVxdWVzdD4K
KyNpbmNsdWRlIDxRTmV0d29ya1JlcGx5PgogI2luY2x1ZGUgPFFUZXh0U3RyZWFtPgogI2luY2x1
ZGUgPFFGaWxlPgogI2luY2x1ZGUgPFFEaXI+CkBAIC0zNCw2ICszNiw3IEBACiAjaW5jbHVkZSA8
UVRlbXBvcmFyeUZpbGU+CiAjaW5jbHVkZSA8UUlucHV0RGlhbG9nPgogCisKIEh0dHBCcm9rZXJD
bGllbnQ6Okh0dHBCcm9rZXJDbGllbnQgKCBPTk1haW5XaW5kb3cqIHduZCwgQ29uZmlnRmlsZSog
Y2ZnICkKIHsKICAgICBjb25maWc9Y2ZnOwpAQCAtNTYsMzAgKzU5LDE5IEBAIEh0dHBCcm9rZXJD
bGllbnQ6Okh0dHBCcm9rZXJDbGllbnQgKCBPTk1haW5XaW5kb3cqIHduZCwgQ29uZmlnRmlsZSog
Y2ZnICkKICAgICB7CiAgICAgICAgIHNzaEJyb2tlcj1mYWxzZTsKIAotICAgICAgICBodHRwPW5l
dyBRSHR0cCAoIHRoaXMgKTsKLQotICAgICAgICBpZiAoIGNvbmZpZy0+YnJva2VydXJsLmluZGV4
T2YgKCAiaHR0cHM6Ly8iICkgPT0wICkgewotICAgICAgICAgICAgaWYgKChjb25maWctPmJyb2tl
ckNhQ2VydEZpbGUubGVuZ3RoKCkgPjApICYmIChRRmlsZTo6ZXhpc3RzKGNvbmZpZy0+YnJva2Vy
Q2FDZXJ0RmlsZSkpKSB7Ci0KLSAgICAgICAgICAgICAgICBzc2xTb2NrZXQgPSBuZXcgUVNzbFNv
Y2tldCh0aGlzKTsKLSAgICAgICAgICAgICAgICBjb25uZWN0ICggc3NsU29ja2V0LCBTSUdOQUwg
KCBzc2xFcnJvcnMgKCBjb25zdCBRTGlzdDxRU3NsRXJyb3I+JiApICksdGhpcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0xPVCAoIHNsb3RTc2xFcnJvcnMgKCBjb25zdCBRTGlzdDxRU3Ns
RXJyb3I+JiApICkgKTsKLSAgICAgICAgICAgICAgICBodHRwLT5zZXRTb2NrZXQoc3NsU29ja2V0
KTsKLSAgICAgICAgICAgICAgICBzc2xTb2NrZXQtPmFkZENhQ2VydGlmaWNhdGVzKGNvbmZpZy0+
YnJva2VyQ2FDZXJ0RmlsZSwgUVNzbDo6UGVtKTsKLSAgICAgICAgICAgICAgICB4MmdvRGVidWc8
PCJDdXN0b20gQ0EgY2VydGlmaWNhdGUgZmlsZSBsb2FkZWQgaW50byBIVFRQUyBicm9rZXIgY2xp
ZW50OiAiPDxjb25maWctPmJyb2tlckNhQ2VydEZpbGU7CisgICAgICAgIGlmICgoY29uZmlnLT5i
cm9rZXJDYUNlcnRGaWxlLmxlbmd0aCgpID4wKSAmJiAoUUZpbGU6OmV4aXN0cyhjb25maWctPmJy
b2tlckNhQ2VydEZpbGUpKSkgewkJCQkKKyAgICAgICAgICAgIFFTc2xTb2NrZXQ6OmFkZERlZmF1
bHRDYUNlcnRpZmljYXRlcyhjb25maWctPmJyb2tlckNhQ2VydEZpbGUsIFFTc2w6OlBlbSk7CisJ
CSAgICB4MmdvRGVidWc8PCJDdXN0b20gQ0EgY2VydGlmaWNhdGUgZmlsZSBsb2FkZWQgaW50byBI
VFRQUyBicm9rZXIgY2xpZW50OiAiPDxjb25maWctPmJyb2tlckNhQ2VydEZpbGU7CisJICAgIH0K
KwkgICAKKyAgICAgICAgaHR0cD1uZXcgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyICggdGhpcyApOwor
ICAgICAgICB4MmdvRGVidWc8PCJTZXR0aW5nIHVwIGNvbm5lY3Rpb24gdG8gYnJva2VyOiAiPDxj
b25maWctPmJyb2tlcnVybDsKKyAgICAgIAorICAgICAgICBjb25uZWN0ICggaHR0cCwgU0lHTkFM
ICggc3NsRXJyb3JzICggUU5ldHdvcmtSZXBseSosIGNvbnN0IFFMaXN0PFFTc2xFcnJvcj4mICkg
KSx0aGlzLAorCSAgICAgICAgICAgICAgICAgU0xPVCAoIHNsb3RTc2xFcnJvcnMgKCBRTmV0d29y
a1JlcGx5KiwgY29uc3QgUUxpc3Q8UVNzbEVycm9yPiYgKSApICk7CiAKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29ubmVjdCAoIGh0dHAsIFNJR05BTCAoIHNzbEVycm9y
cyAoIGNvbnN0IFFMaXN0PFFTc2xFcnJvcj4mICkgKSx0aGlzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBTTE9UICggc2xvdFNzbEVycm9ycyAoIGNvbnN0IFFMaXN0PFFTc2xFcnJvcj4mICkg
KSApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaHR0cC0+c2V0SG9zdCAoIGx1cmwuaG9z
dCgpLFFIdHRwOjpDb25uZWN0aW9uTW9kZUh0dHBzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGx1cmwucG9ydCAoIDQ0MyApICk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBo
dHRwLT5zZXRIb3N0ICggbHVybC5ob3N0KCksUUh0dHA6OkNvbm5lY3Rpb25Nb2RlSHR0cCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsdXJsLnBvcnQgKCA4MCApICk7Ci0gICAgICAgIH0K
LSAgICAgICAgY29ubmVjdCAoIGh0dHAsU0lHTkFMICggcmVxdWVzdEZpbmlzaGVkICggaW50LGJv
b2wgKSApLHRoaXMsCi0gICAgICAgICAgICAgICAgICBTTE9UICggc2xvdFJlcXVlc3RGaW5pc2hl
ZCAoIGludCxib29sICkgKSApOworICAgICAgICBjb25uZWN0ICggaHR0cCxTSUdOQUwgKCBmaW5p
c2hlZCAoUU5ldHdvcmtSZXBseSopICksdGhpcywKKyAgICAgICAgICAgICAgICAgIFNMT1QgKCBz
bG90UmVxdWVzdEZpbmlzaGVkIChRTmV0d29ya1JlcGx5KikgKSApOwogICAgIH0KIH0KIApAQCAt
OTMsMTMgKzg1LDEzIEBAIHZvaWQgSHR0cEJyb2tlckNsaWVudDo6Y3JlYXRlU3NoQ29ubmVjdGlv
bigpCiAgICAgUVVybCBsdXJsICggY29uZmlnLT5icm9rZXJ1cmwgKTsKICAgICBzc2hDb25uZWN0
aW9uPW5ldyBTc2hNYXN0ZXJDb25uZWN0aW9uICh0aGlzLCBsdXJsLmhvc3QoKSwgbHVybC5wb3J0
KDIyKSxmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25maWctPmJyb2tlclVzZXIsIGNvbmZpZy0+YnJva2VyUGFzcyxjb25maWctPmJyb2tlclNzaEtl
eSxjb25maWctPmJyb2tlckF1dG9sb2dpbiwKLQkJCQkJICAgY29uZmlnLT5icm9rZXJLcmJMb2dp
biwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bmZpZy0+YnJva2VyS3JiTG9naW4sIGZhbHNlKTsKIAogICAgIGNvbm5lY3QgKCBzc2hDb25uZWN0
aW9uLCBTSUdOQUwgKCBjb25uZWN0aW9uT2soUVN0cmluZykpLCB0aGlzLCBTTE9UICggc2xvdFNz
aENvbm5lY3Rpb25PaygpICkgKTsKICAgICBjb25uZWN0ICggc3NoQ29ubmVjdGlvbiwgU0lHTkFM
ICggc2VydmVyQXV0aEVycm9yICggaW50LFFTdHJpbmcsIFNzaE1hc3RlckNvbm5lY3Rpb24qICkg
KSx0aGlzLAogICAgICAgICAgICAgICBTTE9UICggc2xvdFNzaFNlcnZlckF1dGhFcnJvciAoIGlu
dCxRU3RyaW5nLCBTc2hNYXN0ZXJDb25uZWN0aW9uKiApICkgKTsKLSAgICBjb25uZWN0ICggc3No
Q29ubmVjdGlvbiwgU0lHTkFMICggbmVlZFBhc3NQaHJhc2UoU3NoTWFzdGVyQ29ubmVjdGlvbiop
KSx0aGlzLAotICAgICAgICAgICAgICBTTE9UICggc2xvdFNzaFNlcnZlckF1dGhQYXNzcGhyYXNl
KFNzaE1hc3RlckNvbm5lY3Rpb24qKSkgKTsKKyAgICBjb25uZWN0ICggc3NoQ29ubmVjdGlvbiwg
U0lHTkFMICggbmVlZFBhc3NQaHJhc2UoU3NoTWFzdGVyQ29ubmVjdGlvbiosIGJvb2wpKSx0aGlz
LAorICAgICAgICAgICAgICBTTE9UICggc2xvdFNzaFNlcnZlckF1dGhQYXNzcGhyYXNlKFNzaE1h
c3RlckNvbm5lY3Rpb24qLCBib29sKSkgKTsKICAgICBjb25uZWN0ICggc3NoQ29ubmVjdGlvbiwg
U0lHTkFMICggdXNlckF1dGhFcnJvciAoIFFTdHJpbmcgKSApLHRoaXMsU0xPVCAoIHNsb3RTc2hV
c2VyQXV0aEVycm9yICggUVN0cmluZyApICkgKTsKICAgICBjb25uZWN0ICggc3NoQ29ubmVjdGlv
biwgU0lHTkFMICggY29ubmVjdGlvbkVycm9yKFFTdHJpbmcsUVN0cmluZykpLCB0aGlzLAogICAg
ICAgICAgICAgICBTTE9UICggc2xvdFNzaENvbm5lY3Rpb25FcnJvciAoIFFTdHJpbmcsUVN0cmlu
ZyApICkgKTsKQEAgLTE5OSwxMSArMTkxLDIzIEBAIHZvaWQgSHR0cEJyb2tlckNsaWVudDo6c2xv
dFNzaFNlcnZlckF1dGhFcnJvcihpbnQgZXJyb3IsIFFTdHJpbmcgc3NoTWVzc2FnZSwgU3NoCiAK
IH0KIAotdm9pZCBIdHRwQnJva2VyQ2xpZW50OjpzbG90U3NoU2VydmVyQXV0aFBhc3NwaHJhc2Uo
U3NoTWFzdGVyQ29ubmVjdGlvbiogY29ubmVjdGlvbikKK3ZvaWQgSHR0cEJyb2tlckNsaWVudDo6
c2xvdFNzaFNlcnZlckF1dGhQYXNzcGhyYXNlKFNzaE1hc3RlckNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIGJvb2wgdmVyaWZpY2F0aW9uQ29kZSkKIHsKICAgICBib29sIG9rOworICAgIFFTdHJpbmcg
bWVzc2FnZTsKKworICAgIGlmKHZlcmlmaWNhdGlvbkNvZGUpCisgICAgeworICAgICAgICBtZXNz
YWdlPXRyKCJWZXJpZmljYXRpb24gY29kZToiKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAg
ICAgICAgbWVzc2FnZT10cigiRW50ZXIgcGFzc3BocmFzZSB0byBkZWNyeXB0IGEga2V5Iik7Cisg
ICAgfQorCisKICAgICBRU3RyaW5nIHBocmFzZT1RSW5wdXREaWFsb2c6OmdldFRleHQoMCxjb25u
ZWN0aW9uLT5nZXRVc2VyKCkrIkAiK2Nvbm5lY3Rpb24tPmdldEhvc3QoKSsiOiIrUVN0cmluZzo6
bnVtYmVyKGNvbm5lY3Rpb24tPmdldFBvcnQoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRyKCJFbnRlciBwYXNzcGhyYXNlIHRvIGRlY3J5cHQgYSBrZXkiKSxR
TGluZUVkaXQ6OlBhc3N3b3JkLFFTdHJpbmc6Om51bGwsICZvayk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsIFFMaW5lRWRpdDo6UGFzc3dvcmQsUVN0
cmluZzo6bnVsbCwgJm9rKTsKICAgICBpZighb2spCiAgICAgewogICAgICAgICBwaHJhc2U9UVN0
cmluZzo6bnVsbDsKQEAgLTIzNiw2ICsyNDAsNyBAQCB2b2lkIEh0dHBCcm9rZXJDbGllbnQ6OnNs
b3RTc2hVc2VyQXV0aEVycm9yKFFTdHJpbmcgZXJyb3IpCiB2b2lkIEh0dHBCcm9rZXJDbGllbnQ6
OmdldFVzZXJTZXNzaW9ucygpCiB7CiAgICAgUVN0cmluZyBicm9rZXJVc2VyPWNvbmZpZy0+YnJv
a2VyVXNlcjsKK3gyZ29EZWJ1Zzw8ImNhbGxlZCBnZXRVc2VyU2Vzc2lvbnM6IGJyb2tlcnVzZXI6
ICI8PGJyb2tlclVzZXI8PCIgYnJva2VycGFzczogIjw8Y29uZmlnLT5icm9rZXJQYXNzPDwiIGF1
dGhpZDogIjw8Y29uZmlnLT5icm9rZXJVc2VySWQ7CiAgICAgaWYobWFpbldpbmRvdy0+Z2V0VXNl
UEdQQ2FyZCgpKQogICAgICAgICBicm9rZXJVc2VyPW1haW5XaW5kb3ctPmdldENhcmRMb2dpbigp
OwogICAgIGNvbmZpZy0+c2Vzc2lvbmRhdGE9UVN0cmluZzo6bnVsbDsKQEAgLTI0NywxMCArMjUy
LDkgQEAgdm9pZCBIdHRwQnJva2VyQ2xpZW50OjpnZXRVc2VyU2Vzc2lvbnMoKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidXNlcj0iPDxicm9rZXJVc2VyPDwiJiI8PAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicGFzc3dvcmQ9Ijw8Y29uZmlnLT5icm9rZXJQYXNzPDwiJiI8
PAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aGlkPSI8PGNvbmZpZy0+YnJva2Vy
VXNlcklkOwotICAgICAgICBRVXJsIGx1cmwgKCBjb25maWctPmJyb2tlcnVybCApOwotICAgICAg
ICBodHRwU2Vzc2lvbkFuc3dlci5jbG9zZSgpOwotICAgICAgICBodHRwU2Vzc2lvbkFuc3dlci5z
ZXREYXRhICggMCwwICk7Ci0gICAgICAgIHNlc3Npb25zUmVxdWVzdD1odHRwLT5wb3N0ICggbHVy
bC5wYXRoKCkscmVxLnRvVXRmOCgpLCZodHRwU2Vzc2lvbkFuc3dlciApOworCisgICAgICAgIHgy
Z29EZWJ1ZyA8PCAic2VuZGluZyByZXF1ZXN0OiAiPDwgcmVxLnRvVXRmOCgpOworICAgICAgICBz
ZXNzaW9uc1JlcXVlc3Q9aHR0cC0+cG9zdCAoIFFOZXR3b3JrUmVxdWVzdChRVXJsKGNvbmZpZy0+
YnJva2VydXJsKSkscmVxLnRvVXRmOCgpICk7CiAgICAgfQogICAgIGVsc2UKICAgICB7CkBAIC0y
NzEsNiArMjc1LDcgQEAgdm9pZCBIdHRwQnJva2VyQ2xpZW50OjpnZXRVc2VyU2Vzc2lvbnMoKQog
CiB2b2lkIEh0dHBCcm9rZXJDbGllbnQ6OnNlbGVjdFVzZXJTZXNzaW9uKGNvbnN0IFFTdHJpbmcm
IHNlc3Npb24pCiB7CisgICAgeDJnb0RlYnVnPDwiY2FsbGVkIHNlbGVjdFVzZXJTZXNzaW9ucyI7
CiAgICAgUVN0cmluZyBicm9rZXJVc2VyPWNvbmZpZy0+YnJva2VyVXNlcjsKICAgICBpZihtYWlu
V2luZG93LT5nZXRVc2VQR1BDYXJkKCkpCiAgICAgICAgIGJyb2tlclVzZXI9bWFpbldpbmRvdy0+
Z2V0Q2FyZExvZ2luKCk7CkBAIC0yODQsMTAgKzI4OSw5IEBAIHZvaWQgSHR0cEJyb2tlckNsaWVu
dDo6c2VsZWN0VXNlclNlc3Npb24oY29uc3QgUVN0cmluZyYgc2Vzc2lvbikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInVzZXI9Ijw8YnJva2VyVXNlcjw8IiYiPDwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInBhc3N3b3JkPSI8PGNvbmZpZy0+YnJva2VyUGFzczw8IiYiPDwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF1dGhpZD0iPDxjb25maWctPmJyb2tlclVz
ZXJJZDsKLSAgICAgICAgUVVybCBsdXJsICggY29uZmlnLT5icm9rZXJ1cmwgKTsKLSAgICAgICAg
aHR0cFNlc3Npb25BbnN3ZXIuY2xvc2UoKTsKLSAgICAgICAgaHR0cFNlc3Npb25BbnN3ZXIuc2V0
RGF0YSAoIDAsMCApOwotICAgICAgICBzZWxTZXNzUmVxdWVzdD1odHRwLT5wb3N0ICggbHVybC5w
YXRoKCkscmVxLnRvVXRmOCgpLCZodHRwU2Vzc2lvbkFuc3dlciApOworICAgICAgICB4MmdvRGVi
dWcgPDwgInNlbmRpbmcgcmVxdWVzdDogIjw8IHJlcS50b1V0ZjgoKTsKKwkJc2VsU2Vzc1JlcXVl
c3Q9aHR0cC0+cG9zdCAoICBRTmV0d29ya1JlcXVlc3QoUVVybChjb25maWctPmJyb2tlcnVybCkp
LHJlcS50b1V0ZjgoKSApOworCiAgICAgfQogICAgIGVsc2UKICAgICB7CkBAIC0zMTgsMTEgKzMy
Miw5IEBAIHZvaWQgSHR0cEJyb2tlckNsaWVudDo6Y2hhbmdlUGFzc3dvcmQoUVN0cmluZyBuZXdQ
YXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXNlcj0iPDxicm9rZXJVc2VyPDwi
JiI8PAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzc3dvcmQ9Ijw8Y29uZmlnLT5i
cm9rZXJQYXNzPDwiJiI8PAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aGlkPSI8
PGNvbmZpZy0+YnJva2VyVXNlcklkOwotICAgICAgICBRVXJsIGx1cmwgKCBjb25maWctPmJyb2tl
cnVybCApOwotICAgICAgICBodHRwU2Vzc2lvbkFuc3dlci5jbG9zZSgpOwotICAgICAgICBodHRw
U2Vzc2lvbkFuc3dlci5zZXREYXRhICggMCwwICk7Ci0gICAgICAgIGNoUGFzc1JlcXVlc3Q9aHR0
cC0+cG9zdCAoIGx1cmwucGF0aCgpLHJlcS50b1V0ZjgoKSwmaHR0cFNlc3Npb25BbnN3ZXIgKTsK
LSAgICB9CisgICAgICAgIHgyZ29EZWJ1ZyA8PCAic2VuZGluZyByZXF1ZXN0OiAiPDwgcmVxLnRv
VXRmOCgpOworICAgICAgICBjaFBhc3NSZXF1ZXN0PWh0dHAtPnBvc3QgKCAgUU5ldHdvcmtSZXF1
ZXN0KFFVcmwoY29uZmlnLT5icm9rZXJ1cmwpKSxyZXEudG9VdGY4KCkgKTsKKwkJfQogICAgIGVs
c2UKICAgICB7CiAgICAgICAgIGlmIChjb25maWctPmJyb2tlclVzZXJJZC5sZW5ndGgoKSA+IDAp
IHsKQEAgLTMzNywxNyArMzM5LDE1IEBAIHZvaWQgSHR0cEJyb2tlckNsaWVudDo6Y2hhbmdlUGFz
c3dvcmQoUVN0cmluZyBuZXdQYXNzKQogCiB2b2lkIEh0dHBCcm9rZXJDbGllbnQ6OnRlc3RDb25u
ZWN0aW9uKCkKIHsKKyAgICB4MmdvRGVidWc8PCJjYWxsZWQgdGVzdENvbm5lY3Rpb24iOwogICAg
IGlmKCFzc2hCcm9rZXIpCiAgICAgewogICAgICAgICBRU3RyaW5nIHJlcTsKICAgICAgICAgUVRl
eHRTdHJlYW0gKCAmcmVxICkgPDwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRhc2s9
dGVzdGNvbiI7Ci0gICAgICAgIFFVcmwgbHVybCAoIGNvbmZpZy0+YnJva2VydXJsICk7Ci0gICAg
ICAgIGh0dHBTZXNzaW9uQW5zd2VyLmNsb3NlKCk7Ci0gICAgICAgIGh0dHBTZXNzaW9uQW5zd2Vy
LnNldERhdGEgKCAwLDAgKTsKLSAgICAgICAgcmVxdWVzdFRpbWUuc3RhcnQoKTsKLSAgICAgICAg
dGVzdENvblJlcXVlc3Q9aHR0cC0+cG9zdCAoIGx1cmwucGF0aCgpLHJlcS50b1V0ZjgoKSwmaHR0
cFNlc3Npb25BbnN3ZXIgKTsKLSAgICB9CisgICAgICAgIHgyZ29EZWJ1ZyA8PCAic2VuZGluZyBy
ZXF1ZXN0OiAiPDwgcmVxLnRvVXRmOCgpOworICAgICAgICB0ZXN0Q29uUmVxdWVzdD1odHRwLT5w
b3N0ICggIFFOZXR3b3JrUmVxdWVzdChRVXJsKGNvbmZpZy0+YnJva2VydXJsKSkscmVxLnRvVXRm
OCgpICk7CisJfQogICAgIGVsc2UKICAgICB7CiAgICAgICAgIGlmIChjb25maWctPmJyb2tlclVz
ZXJJZC5sZW5ndGgoKSA+IDApIHsKQEAgLTM4MCw2ICszODAsNyBAQCB2b2lkIEh0dHBCcm9rZXJD
bGllbnQ6OmNyZWF0ZUluaUZpbGUoY29uc3QgUVN0cmluZyYgcmF3X2NvbnRlbnQpCiAKIGJvb2wg
SHR0cEJyb2tlckNsaWVudDo6Y2hlY2tBY2Nlc3MoUVN0cmluZyBhbnN3ZXIgKQogeworICAgIHgy
Z29EZWJ1Zzw8ImNhbGxlZCBjaGVja0FjY2VzcyAtIGFuc3dlciB3YXM6ICI8PGFuc3dlcjsKICAg
ICBpZiAoYW5zd2VyLmluZGV4T2YoIkFjY2VzcyBncmFudGVkIik9PS0xKQogICAgIHsKICAgICAg
ICAgUU1lc3NhZ2VCb3g6OmNyaXRpY2FsICgKQEAgLTM5Niw2ICszOTcsNyBAQCBib29sIEh0dHBC
cm9rZXJDbGllbnQ6OmNoZWNrQWNjZXNzKFFTdHJpbmcgYW5zd2VyICkKIAogdm9pZCBIdHRwQnJv
a2VyQ2xpZW50OjpzbG90Q29ubmVjdGlvblRlc3QoYm9vbCBzdWNjZXNzLCBRU3RyaW5nIGFuc3dl
ciwgaW50KQogeworeDJnb0RlYnVnPDwiY2FsbGVkIHNsb3RDb25uZWN0aW9uVGVzdCI7CiAgICAg
aWYoIXN1Y2Nlc3MpCiAgICAgewogICAgICAgICB4MmdvRGVidWc8PGFuc3dlcjsKQEAgLTQwNyw4
ICs0MDksOCBAQCB2b2lkIEh0dHBCcm9rZXJDbGllbnQ6OnNsb3RDb25uZWN0aW9uVGVzdChib29s
IHN1Y2Nlc3MsIFFTdHJpbmcgYW5zd2VyLCBpbnQpCiAgICAgICAgIHJldHVybjsKICAgICBpZigh
c3NoQnJva2VyKQogICAgIHsKLSAgICAgICAgeDJnb0RlYnVnPDwiZWxhcHNlZDogIjw8cmVxdWVz
dFRpbWUuZWxhcHNlZCgpPDwicmVjZWl2ZWQ6Ijw8aHR0cFNlc3Npb25BbnN3ZXIuc2l6ZSgpPDxl
bmRsOwotICAgICAgICBlbWl0IGNvbm5lY3Rpb25UaW1lKHJlcXVlc3RUaW1lLmVsYXBzZWQoKSxo
dHRwU2Vzc2lvbkFuc3dlci5zaXplKCkpOworICAgICAgIHgyZ29EZWJ1Zzw8ImVsYXBzZWQ6ICI8
PHJlcXVlc3RUaW1lLmVsYXBzZWQoKTw8InJlY2VpdmVkOiI8PGFuc3dlci5zaXplKCk8PGVuZGw7
CisgICAgICAgZW1pdCBjb25uZWN0aW9uVGltZShyZXF1ZXN0VGltZS5lbGFwc2VkKCksYW5zd2Vy
LnNpemUoKSk7CiAgICAgfQogICAgIHJldHVybjsKIApAQCAtNDU5LDM2ICs0NjEsMzggQEAgdm9p
ZCBIdHRwQnJva2VyQ2xpZW50OjpzbG90U2VsZWN0U2Vzc2lvbihib29sIHN1Y2Nlc3MsIFFTdHJp
bmcgYW5zd2VyLCBpbnQpCiB9CiAKIAotdm9pZCBIdHRwQnJva2VyQ2xpZW50OjpzbG90UmVxdWVz
dEZpbmlzaGVkICggaW50IGlkLCBib29sIGVycm9yICkKLXsKLS8vICAgCXgyZ29EZWJ1Zzw8Imh0
dHAgcmVxdWVzdCAiPDxpZDw8IiwgZmluaXNoZWQgd2l0aDogIjw8ZXJyb3I7Ci0KLSAgICBpZiAo
IGVycm9yICkKLSAgICB7Ci0gICAgICAgIHgyZ29EZWJ1Zzw8aHR0cC0+ZXJyb3JTdHJpbmcoKTsK
LSAgICAgICAgUU1lc3NhZ2VCb3g6OmNyaXRpY2FsKDAsdHIoIkVycm9yIiksaHR0cC0+ZXJyb3JT
dHJpbmcoKSk7Ci0gICAgICAgIGVtaXQgZmF0YWxIdHRwRXJyb3IoKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KK3ZvaWQgSHR0cEJyb2tlckNsaWVudDo6c2xvdFJlcXVlc3RGaW5pc2hlZCAoIFFO
ZXR3b3JrUmVwbHkqICByZXBseSApCit7CQorCWlmKHJlcGx5LT5lcnJvcigpICE9IFFOZXR3b3Jr
UmVwbHk6Ok5vRXJyb3IpCisJCXsKKwkJCXgyZ29EZWJ1Zzw8IkJyb2tlciBIVFRQIHJlcXVlc3Qg
ZmFpbGVkIHdpdGggZXJyb3I6ICI8PHJlcGx5LT5lcnJvclN0cmluZygpOworCQkJUU1lc3NhZ2VC
b3g6OmNyaXRpY2FsKDAsdHIoIkVycm9yIikscmVwbHktPmVycm9yU3RyaW5nKCkpOworCQkJZW1p
dCBmYXRhbEh0dHBFcnJvcigpOworCQkJcmV0dXJuOworCQl9CiAKLSAgICBRU3RyaW5nIGFuc3dl
ciAoIGh0dHBTZXNzaW9uQW5zd2VyLmRhdGEoKSApOwotICAgIHgyZ29EZWJ1Zzw8ImNtZCByZXF1
ZXN0IGFuc3dlcjogIjw8YW5zd2VyOwotICAgIGlmIChpZD09dGVzdENvblJlcXVlc3QpCisgICAg
UVN0cmluZyBhbnN3ZXIgKCByZXBseS0+cmVhZEFsbCgpICk7CisgICAgeDJnb0RlYnVnPDwiQSBo
dHRwIHJlcXVlc3QgcmV0dXJuZWQuICBSZXN1bHQgd2FzOiAiPDxhbnN3ZXI7CisgICAgaWYgKHJl
cGx5ID09IHRlc3RDb25SZXF1ZXN0KQogICAgIHsKICAgICAgICAgc2xvdENvbm5lY3Rpb25UZXN0
KHRydWUsYW5zd2VyLDApOwogICAgIH0KLSAgICBpZiAoaWQgPT0gc2Vzc2lvbnNSZXF1ZXN0KQor
ICAgIGlmIChyZXBseSA9PSBzZXNzaW9uc1JlcXVlc3QpCiAgICAgewogICAgICAgICBzbG90TGlz
dFNlc3Npb25zKHRydWUsIGFuc3dlciwwKTsKICAgICB9Ci0gICAgaWYgKGlkID09IHNlbFNlc3NS
ZXF1ZXN0KQorICAgIGlmIChyZXBseSA9PSBzZWxTZXNzUmVxdWVzdCkKICAgICB7CiAgICAgICAg
IHNsb3RTZWxlY3RTZXNzaW9uKHRydWUsYW5zd2VyLDApOwogICAgIH0KLSAgICBpZiAoIGlkID09
IGNoUGFzc1JlcXVlc3QpCisgICAgaWYgKHJlcGx5ID09IGNoUGFzc1JlcXVlc3QpCiAgICAgewog
ICAgICAgICBzbG90UGFzc0NoYW5nZWQodHJ1ZSxhbnN3ZXIsMCk7CiAgICAgfQorCisgICAgLy8g
V2UgcmVjZWl2ZSBvd25lcnNoaXAgb2YgdGhlIHJlcGx5IG9iamVjdAorICAgIC8vIGFuZCB0aGVy
ZWZvcmUgbmVlZCB0byBoYW5kbGUgZGVsZXRpb24uCisgICAgcmVwbHktPmRlbGV0ZUxhdGVyKCk7
CiB9CiAKIHZvaWQgSHR0cEJyb2tlckNsaWVudDo6cGFyc2VTZXNzaW9uKFFTdHJpbmcgc2luZm8p
CkBAIC01MjUsNyArNTI5LDcgQEAgdm9pZCBIdHRwQnJva2VyQ2xpZW50OjpwYXJzZVNlc3Npb24o
UVN0cmluZyBzaW5mbykKIH0KIAogCi12b2lkIEh0dHBCcm9rZXJDbGllbnQ6OnNsb3RTc2xFcnJv
cnMgKCBjb25zdCBRTGlzdDxRU3NsRXJyb3I+ICYgZXJyb3JzICkKK3ZvaWQgSHR0cEJyb2tlckNs
aWVudDo6c2xvdFNzbEVycm9ycyAoIFFOZXR3b3JrUmVwbHkqIG5ldFJlcGx5LCBjb25zdCBRTGlz
dDxRU3NsRXJyb3I+ICYgZXJyb3JzICkKIHsKICAgICBRU3RyaW5nTGlzdCBlcnI7CiAgICAgUVNz
bENlcnRpZmljYXRlIGNlcnQ7CkBAIC01NTIsNyArNTU2LDcgQEAgdm9pZCBIdHRwQnJva2VyQ2xp
ZW50OjpzbG90U3NsRXJyb3JzICggY29uc3QgUUxpc3Q8UVNzbEVycm9yPiAmIGVycm9ycyApCiAg
ICAgICAgIFFTc2xDZXJ0aWZpY2F0ZSBtY2VydCAoICZmbCApOwogICAgICAgICBpZiAoIG1jZXJ0
PT1jZXJ0ICkKICAgICAgICAgewotICAgICAgICAgICAgaHR0cC0+aWdub3JlU3NsRXJyb3JzKCk7
CisgICAgICAgICAgICBuZXRSZXBseS0+aWdub3JlU3NsRXJyb3JzKCk7CiAgICAgICAgICAgICBy
ZXF1ZXN0VGltZS5yZXN0YXJ0KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTYyMyw3ICs2MjcsNyBAQCB2b2lkIEh0dHBCcm9rZXJDbGllbnQ6OnNsb3RTc2xFcnJvcnMgKCBj
b25zdCBRTGlzdDxRU3NsRXJyb3I+ICYgZXJyb3JzICkKICAgICAgICAgZmwub3BlbiAoIFFJT0Rl
dmljZTo6V3JpdGVPbmx5IHwgUUlPRGV2aWNlOjpUZXh0ICk7CiAgICAgICAgIFFUZXh0U3RyZWFt
ICggJmZsICkgPDxjZXJ0LnRvUGVtKCk7CiAgICAgICAgIGZsLmNsb3NlKCk7Ci0gICAgICAgIGh0
dHAtPmlnbm9yZVNzbEVycm9ycygpOworCQluZXRSZXBseS0+aWdub3JlU3NsRXJyb3JzKCk7CiAg
ICAgICAgIHgyZ29EZWJ1Zzw8InN0b3JlIGNlcnRpZmljYXRlIGluICAiPDxob21lRGlyKyIvLngy
Z28vc3NsL2V4Y2VwdGlvbnMvIisKICAgICAgICAgICAgICAgICAgbHVybC5ob3N0KCkgKyIvIitm
bmFtZTsKICAgICAgICAgcmVxdWVzdFRpbWUucmVzdGFydCgpOwpkaWZmIC0tZ2l0IGEvaHR0cGJy
b2tlcmNsaWVudC5oIGIvaHR0cGJyb2tlcmNsaWVudC5oCmluZGV4IGY4MjFmYjAuLjUyZTRiZWIg
MTAwNjQ0Ci0tLSBhL2h0dHBicm9rZXJjbGllbnQuaAorKysgYi9odHRwYnJva2VyY2xpZW50LmgK
QEAgLTE4LDYgKzE4LDEwIEBACiAjaWZuZGVmIEhUVFBCUk9LRVJDTElFTlRfSAogI2RlZmluZSBI
VFRQQlJPS0VSQ0xJRU5UX0gKICNpbmNsdWRlICJ4MmdvY2xpZW50Y29uZmlnLmgiCisjaW5jbHVk
ZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgorI2luY2x1ZGUgPFFVcmw+CisjaW5jbHVkZSA8UU5l
dHdvcmtSZXF1ZXN0PgorI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8UVNzbEVy
cm9yPgogI2luY2x1ZGUgPFFCdWZmZXI+CiAjaW5jbHVkZSA8UU9iamVjdD4KQEAgLTI3LDcgKzMx
LDcgQEAKIC8qKgogCUBhdXRob3IgT2xla3NhbmRyIFNobmV5ZGVyIDxvbGVrc2FuZHIuc2huZXlk
ZXJAb2J2aW91c2x5LW5pY2UuZGU+CiAqLwotY2xhc3MgUUh0dHA7CitjbGFzcyBRTmV0d29ya0Fj
Y2Vzc01hbmFnZXI7CiBzdHJ1Y3QgQ29uZmlnRmlsZTsKIGNsYXNzIE9OTWFpbldpbmRvdzsKIApA
QCAtNDEsMTQgKzQ1LDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoYW5nZVBhc3N3b3JkKFFTdHJp
bmcgbmV3UGFzcyk7CiAgICAgdm9pZCB0ZXN0Q29ubmVjdGlvbigpOwogcHJpdmF0ZToKLSAgICBR
QnVmZmVyIGh0dHBDbWRBbnN3ZXI7Ci0gICAgUUJ1ZmZlciBodHRwU2Vzc2lvbkFuc3dlcjsKLSAg
ICBRSHR0cCogaHR0cDsKKyAgICAvL1FCdWZmZXIgaHR0cENtZEFuc3dlcjsKKyAgICAvL1FCdWZm
ZXIgaHR0cFNlc3Npb25BbnN3ZXI7CisgICAgLy9RSHR0cCogaHR0cDsKKyAgICAvL1FOZXR3b3Jr
UmVwbHkqIG5ldFJlcGx5OwkKKyAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIGh0dHA7CisgICAg
UU5ldHdvcmtSZXF1ZXN0KiBuZXRSZXF1ZXN0OwogICAgIFFTc2xTb2NrZXQqIHNzbFNvY2tldDsK
LSAgICBpbnQgc2Vzc2lvbnNSZXF1ZXN0OwotICAgIGludCBzZWxTZXNzUmVxdWVzdDsKLSAgICBp
bnQgY2hQYXNzUmVxdWVzdDsKLSAgICBpbnQgdGVzdENvblJlcXVlc3Q7CisgICAgUU5ldHdvcmtS
ZXBseSogc2Vzc2lvbnNSZXF1ZXN0OworICAgIFFOZXR3b3JrUmVwbHkqIHNlbFNlc3NSZXF1ZXN0
OworICAgIFFOZXR3b3JrUmVwbHkqIGNoUGFzc1JlcXVlc3Q7CisgICAgUU5ldHdvcmtSZXBseSog
dGVzdENvblJlcXVlc3Q7CiAgICAgUVN0cmluZyBuZXdCcm9rZXJQYXNzOwogICAgIENvbmZpZ0Zp
bGUqIGNvbmZpZzsKICAgICBPTk1haW5XaW5kb3cqIG1haW5XaW5kb3c7CkBAIC02MiwxMiArNjks
MTIgQEAgcHJpdmF0ZToKICAgICBib29sIGNoZWNrQWNjZXNzKFFTdHJpbmcgYW5zd2VyKTsKIAog
cHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIHNsb3RSZXF1ZXN0RmluaXNoZWQgKCBpbnQgaWQsIGJv
b2wgZXJyb3IgKTsKLSAgICB2b2lkIHNsb3RTc2xFcnJvcnMgKCBjb25zdCBRTGlzdDxRU3NsRXJy
b3I+ICYgZXJyb3JzICkgOworICAgIHZvaWQgc2xvdFJlcXVlc3RGaW5pc2hlZCAoIFFOZXR3b3Jr
UmVwbHkqICByZXBseSApOworICAgIHZvaWQgc2xvdFNzbEVycm9ycyAoIFFOZXR3b3JrUmVwbHkq
IG5ldFJlcGx5LCBjb25zdCBRTGlzdDxRU3NsRXJyb3I+ICYgZXJyb3JzICkgOwogICAgIFFTdHJp
bmcgZ2V0SGV4VmFsICggY29uc3QgUUJ5dGVBcnJheSYgYmEgKTsKICAgICB2b2lkIHNsb3RTc2hD
b25uZWN0aW9uRXJyb3IgKCBRU3RyaW5nIG1lc3NhZ2UsIFFTdHJpbmcgbGFzdFNlc3Npb25FcnJv
ciApOwogICAgIHZvaWQgc2xvdFNzaFNlcnZlckF1dGhFcnJvciAoIGludCBlcnJvciwgUVN0cmlu
ZyBzc2hNZXNzYWdlLCBTc2hNYXN0ZXJDb25uZWN0aW9uKiBjb25uZWN0aW9uICk7Ci0gICAgdm9p
ZCBzbG90U3NoU2VydmVyQXV0aFBhc3NwaHJhc2UgKCBTc2hNYXN0ZXJDb25uZWN0aW9uKiBjb25u
ZWN0aW9uICk7CisgICAgdm9pZCBzbG90U3NoU2VydmVyQXV0aFBhc3NwaHJhc2UgKCBTc2hNYXN0
ZXJDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBib29sIHZlcmlmaWNhdGlvbkNvZGU9ZmFsc2UgKTsK
ICAgICB2b2lkIHNsb3RTc2hVc2VyQXV0aEVycm9yICggUVN0cmluZyBlcnJvciApOwogICAgIHZv
aWQgc2xvdFNzaENvbm5lY3Rpb25PaygpOwogICAgIHZvaWQgc2xvdExpc3RTZXNzaW9ucyAoIGJv
b2wgc3VjY2VzcywgUVN0cmluZyBhbnN3ZXIsIGludCBwaWQpOwo=

--530f48bd_567bd50a_233f--

