Content-Type: multipart/related; start=; boundary=----------03SxQvmNdK56fCZXxHrajT
Content-Location: http://business.timesonline.co.uk/tol/business/industry_sectors/transport/article6590907.ece
Subject: =?utf-8?Q?At=20last,=20Britain=20is=20ready=20to=20build=20hybrid=20cars=20-=20Times=20Online?=
MIME-Version: 1.0
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=article6590907.htm
Content-Type: text/html; charset=ISO-8859-1; name=article6590907.htm
Content-Id:
Content-Location: http://business.timesonline.co.uk/tol/business/industry_sectors/transport/article6590907.ece
Content-Transfer-Encoding: Base64
CjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRy
YW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFRE
L3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgo8
aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7Y2hhcnNldD1JU08tODg1OS0xIiAvPgo8bWV0YSBuYW1lPSJST0JP
VFMiIGNvbnRlbnQ9Ik5PQVJDSElWRSxOT09EUCIgLz4KPG1ldGEgbmFtZT0ibGFu
Z3VhZ2UiIGNvbnRlbnQ9ImVuIiAvPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CjwhLS0KLy8gVmFyaWFibGVzIHJlcXVpcmVkIGZvciBEQVJULiBNVVNU
IEJFIElOIFRIRSBIRUFELgp2YXIgdGltZSA9IG5ldyBEYXRlKCk7CnJhbmRudW0g
PSAodGltZS5nZXRUaW1lKCkpOwp2YXIgY2F0ZWdvcnlWYWx1ZXMgPSAnJzsKaWYg
KGRvY3VtZW50LnJlZmVycmVyICE9IG51bGwpIHsgCmlmIChkb2N1bWVudC5yZWZl
cnJlci5tYXRjaCgiLmdvb2dsZS4iKSAhPSBudWxsIHx8IApkb2N1bWVudC5yZWZl
cnJlci5tYXRjaCgiLnlhaG9vLiIpICE9IG51bGwgfHwKZG9jdW1lbnQucmVmZXJy
ZXIubWF0Y2goIi5seWNvcy4iKSAhPSBudWxsIHx8CmRvY3VtZW50LnJlZmVycmVy
Lm1hdGNoKCIuYXNrLiIpICE9IG51bGwgfHwKZG9jdW1lbnQucmVmZXJyZXIubWF0
Y2goIi5tc24uIikgIT0gbnVsbCkgewpjYXRlZ29yeVZhbHVlcyA9ICchY2F0ZWdv
cnk9c3Vub3ZlcmxheXM7JzsKfQp9Ci8vLS0+Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBwbHVja1VzZXJUaWVycyA9ICJTdGFu
ZGFyZCxUcnVzdGVkLEVkaXRvciI7CmRvY3VtZW50LmRvbWFpbiA9ICJ0aW1lc29u
bGluZS5jby51ayI7CnZhciBzdGF0aWNQYXRoID0gImh0dHA6Ly93d3cudGltZXNv
bmxpbmUuY28udWsiOwp2YXIgY29tbWVudHNSb290VXJsID0gImNvbW11bml0eS50
aW1lc29ubGluZS5jby51ayI7Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIvdG9sL2pzL3NpdGVsaWZlcHJveHkuanMiPjwvc2Ny
aXB0Pgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPScvdG9sL2pz
L3lhaG9vLW1pbi5qcyc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0JyBzcmM9Jy90b2wvanMvanNvbi1taW4uanMnPjwvc2NyaXB0Pgo8c2Ny
aXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPScvdG9sL2pzL3BvcmsuaWZy
YW1lLmpzJz48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
IHNyYz0nL3RvbC9qcy9yZXF1ZXN0YmF0Y2guanMnPjwvc2NyaXB0PgkKPHNjcmlw
dCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nL3RvbC9qcy9yZXF1ZXN0dHlw
ZXMuanMnPjwvc2NyaXB0Pgo8IS0tIENvZGUgdG8gZGlzcGxheSB0aXRsZSBvZiB0
aGUgSFRNTCBwYWdlIC0tPgo8dGl0bGU+IEF0IGxhc3QsIEJyaXRhaW4gaXMgcmVh
ZHkgdG8gYnVpbGQgaHlicmlkIGNhcnMgLSBUaW1lcyBPbmxpbmUgPC90aXRsZT4g
CjxtZXRhIG5hbWU9IkRlc2NyaXB0aW9uIiBjb250ZW50PSIgQlJJVEFJTiBpcyB0
byBtYWtlIGh5YnJpZCBjYXJzIGZvciB0aGUgZmlyc3QgdGltZSBhZnRlciBhIGRl
Y2lzaW9uIGJ5IFRveW90YSB0byBzdGFydCBwcm9kdWN0aW9uIG9mIHRoZSBoaWdo
LXRlY2ggdmVoaWNsZXMgYXQgaXRzIEJ1cm5hc3RvbiBwbGFudCBuZWFyIERlcmJ5
LiIgLz4gCjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRl
bnQ9ImVuIiAvPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIHR5cGU9ImltYWdl
L3gtaWNvbiIgaHJlZj0iL3RvbC9pbWcvZmF2aWNvbi5pY28iIC8+CjxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii90b2wvY3NzL2Fs
dGVybmF0ZS5jc3MiIHRpdGxlPSJBbHRlcm5hdGUgU3R5bGUgU2hlZXQiIC8+Cjxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii90b2wv
Y3NzL3RvbC5jc3MiIC8+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9Ii90b2wvY3NzL2llLmNzcyIgLz4KPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL3RvbC9jc3MvdHlwb2dyYXBo
eS5jc3MiIC8+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii90
b2wvanMvdG9sLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iL3RvbC9qcy9jb21tZW50UGx1Y2suanMiPjwvc2NyaXB0Pgo8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvdG9sL2pzL2Nvb2tp
ZS5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InRvcCIvPgo8
ZGl2IGlkPSJzaGVsbCI+CjxkaXYgaWQ9InBhZ2UiPgkKPCEtLSBBcnRpY2xlIFB1
Ymxpc2hlZCBEYXRlIDogSnVuIDI4LCAyMDA5IDEyOjAwIEFNIC0tPgo8IS0tIGZv
ciBhcnRpY2xlIHR5cGVzIGFydGljbGUscmV2aWV3cyxwb3N0aW5nIGFuZCBRIGFu
ZCBBIGFydGljbGUgdGVtcGxhdGUgd2lsbCBiZSBjYWxsZWQgLS0+CjxzY3JpcHQg
dHlwZT0idGV4dC9KYXZhc2NyaXB0Ij4KdmFyIGFydGljbGVIZWFkbGluZXMgPSBu
ZXcgQXJyYXkoKTsKdmFyIGFydGljbGVQYXRocyA9IG5ldyBBcnJheSgpOwp2YXIg
aXNBcnRpY2xlID0gJ3RydWUnOwp2YXIgbW9zdENvbW1lbnRlZERheXMgPSAnMSc7
CnZhciBwZ29mZnNldCA9ICcwJzsKPC9zY3JpcHQ+CjwhLS0gU1RBUlQgUkVWRU5V
RSBTQ0lFTkNFIFBJWEVMTElORyBDT0RFIC0tPgo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIvdG9sL2pzL0RNX2NsaWVudC5qcyI+PC9zY3JpcHQ+
CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQpETV9hZGRUb0xv
YygiTmV0d29yayIsZXNjYXBlKCJUaW1lcyIpKTsKRE1fYWRkVG9Mb2MoIlNpdGVO
YW1lIixlc2NhcGUoIlRpbWVzIE9ubGluZSIpKTsKLy8tLT4KPC9zY3JpcHQ+CQo8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAo8IS0tCi8vIEFydGljbGUg
cGFnZSBmb3IgUmV2ZW51ZSBzY2llbmNlcy0tPgkKRE1fYWRkVG9Mb2MoIlRlbXBs
YXRlTmFtZSIsZXNjYXBlKCJBcnRpY2xlIikpOwpETV9hZGRUb0xvYygiQXJ0aWNs
ZU5hbWUiLGVzY2FwZSgiQXQgbGFzdCwgQnJpdGFpbiBpcyByZWFkeSB0byBidWls
ZCBoeWJyaWQgY2FycyIpKTsgCi8vLS0+Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CjwhLS0KRE1fdGFnKCk7IC8vIEZpeCBmb3IgUmV2
ZW51ZSBzY2llbmNlcyAxNC8zLzA3IC0gYWsKLy8tLT4KPC9zY3JpcHQ+Cjxub3Nj
cmlwdD4KPGltZyBzcmM9Imh0dHA6Ly9waXgwMS5yZXZzY2kubmV0L0owNTUzMC9h
My8wLzAvMC8wLzAvMC8wLzAvMC9ub3NjcmlwdC5naWYiIGFsdD0iIiAvPgo8L25v
c2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRw
Oi8vanMucmV2c2NpLm5ldC9nYXRld2F5L2d3LmpzP2NzaWQ9SjA1NTMwIiBjaGFy
c2V0PSJJU08tODg1OS0xIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgo8IS0tIApmdW5jdGlvbiBTZXRDb29raWUoY29va2llTmFtZSxj
b29raWVWYWx1ZSxjb29raWVEb21haW4sY29va2llUGF0aCxuRGF5cykgewp2YXIg
dG9kYXkgPSBuZXcgRGF0ZSgpOwp2YXIgZXhwaXJlID0gbmV3IERhdGUoKTsKaWYg
KG5EYXlzPT1udWxsIHx8IG5EYXlzPT0wKSBuRGF5cz0xOwpleHBpcmUuc2V0VGlt
ZSh0b2RheS5nZXRUaW1lKCkgKyAzNjAwMDAwKjI0Km5EYXlzKTsKZG9jdW1lbnQu
Y29va2llID0gY29va2llTmFtZSsiPSIrZXNjYXBlKGNvb2tpZVZhbHVlKQorICI7
ZXhwaXJlcz0iK2V4cGlyZS50b0dNVFN0cmluZygpOworICI7cGF0aD0iK2Nvb2tp
ZVBhdGg7CisgIjtkb21haW49Iitjb29raWVEb21haW47Cn0KdmFyIHNlZ1FTID0g
cnNpbmV0c2Vncy5sZW5ndGggPiAwID8gInNlZzA9IiArIHJzaW5ldHNlZ3NbMF0g
KyI7IiA6ICIiOwpmb3IgKHZhciBpID0gMTsgaSA8IHJzaW5ldHNlZ3MubGVuZ3Ro
ICYmIGkgPCA2OyBpKyspCnNlZ1FTICs9ICgic2VnIiArIGkgKyAiPSIgKyByc2lu
ZXRzZWdzW2ldICsgIjsiKTsgClNldENvb2tpZSgncmV2U2NpJyxzZWdRUywndGlt
ZXNvbmxpbmUuY28udWsnLCcvJywyOCk7Ci8vLS0+Cjwvc2NyaXB0Pgo8IS0tIEVO
RCBSRVZFTlVFIFNDSUVOQ0UgUElYRUxMSU5HIENPREUgLS0+CjwhLS0gU1RBUlQg
SElUQk9YIENPREUgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
PCEtLQp2YXIgc2VjdGlvblBhdGggPSAiL0hvbWUiOyAKLy8tLT4KPC9zY3JpcHQ+
CjwhLS1XRUJTSURFU1RPUlkgQ09ERSBIQlgxLjAgKFVuaXZlcnNhbCktLT4KPCEt
LUNPUFlSSUdIVCAxOTk3LTIwMDQgV0VCU0lERVNUT1JZLElOQy4gQUxMIFJJR0hU
UyBSRVNFUlZFRC4gVS5TLlBBVEVOVCBOby4gNiwzOTMsNDc5QjEuIE1PUkUgSU5G
TzpodHRwOi8vd2Vic2lkZXN0b3J5LmNvbS9wcml2YWN5LS0+CjxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgX2hiRUM9MCxfaGJFPW5ldyBB
cnJheTtmdW5jdGlvbiBfaGJFdmVudChhLGIpe2I9X2hiRVtfaGJFQysrXT1uZXcg
T2JqZWN0KCk7Yi5fTj1hO2IuX0M9MDtyZXR1cm4gYjt9CnZhciBoYng9X2hiRXZl
bnQoInB2Iik7aGJ4LnZwYz0iSEJYMDEwMHUiO2hieC5nbj0idGdkLnRpbWVzb25s
aW5lLmNvLnVrIjsKdmFyIGN2PV9oYkV2ZW50KCJjdiIpOwovLyBzZXQgdmFycyB0
byBiZSB1c2VkIGJlbG93CnZhciB1cmxSZXR1cm5DaWQgPSAiIjsgCnZhciB1cmxS
ZXR1cm5BdHRyID0gIiI7Ci8vIEZpcnN0LCB3ZSBsb2FkIHRoZSBVUkwgaW50byBh
IHZhcmlhYmxlCnZhciB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKLy8gTmV4
dCwgc3BsaXQgdGhlIHVybCBieSB0aGUgIwp2YXIgcXBhcnRzID0gdXJsLnNwbGl0
KCIjIik7Ci8vIENoZWNrIHRoYXQgdGhlcmUgaXMgYSBxdWVyeXN0cmluZwppZiAo
cXBhcnRzLmxlbmd0aCA9PSAyKSB7Ci8vIFNldCB0aGUgc2Vjb25kIGhhbGYgb2Yg
c3RyaW5nIHRvIHZhcgp2YXIgcXVlcnkgPSBxcGFydHNbMV07Ci8vIE5leHQsIHNw
bGl0IHRoYXQgc3RyaW5nIGJ5IHRoZSAiJmFtcCIKdmFyIHZhclEgPSBxdWVyeS5z
cGxpdCgiJiIpOwppZiAodmFyUS5sZW5ndGggPT0gMikgewovLyBMYXN0bHkgc3Bs
aXQgYnkgPSBhbmQgYXNzaWduIHRvIHZhcnMKdmFyIHJldFExID0gdmFyUVswXS5z
cGxpdCgiPSIpOwp2YXIgcmV0UTIgPSB2YXJRWzFdLnNwbGl0KCI9Iik7CnVybFJl
dHVybkNpZCA9IHJldFExWzFdOwp1cmxSZXR1cm5BdHRyID0gcmV0UTJbMV07Cn0K
fQovL0JFR0lOIEVESVRBQkxFIFNFQ1RJT04KLy9DT05GSUdVUkFUSU9OIFZBUklB
QkxFUwpoYngucG49IiI7Ly9QQUdFIE5BTUUoUykKaGJ4Lm1sYz0iIjsvL01VTFRJ
LUxFVkVMIENPTlRFTlQgQ0FURUdPUlkKaGJ4LnBuZGVmPSJ0aXRsZSI7Ly9ERUZB
VUxUIFBBR0UgTkFNRQpoYnguY3RkZWY9ImZ1bGwiOy8vREVGQVVMVCBDT05URU5U
IENBVEVHT1JZCi8vT1BUSU9OQUwgUEFHRSBWQVJJQUJMRVMKLy9BQ1RJT04gU0VU
VElOR1MKaGJ4LmZ2PSIiOy8vRk9STSBWQUxJREFUSU9OIE1JTklNVU0gRUxFTUVO
VFMgT1IgU1VCTUlUIEZVTkNUSU9OIE5BTUUKaGJ4Lmx0PSJub25lIjsvL0xJTksg
VFJBQ0tJTkcKaGJ4LmRsZj0ibiI7Ly9ET1dOTE9BRCBGSUxURVIKaGJ4LmRmdD0i
biI7Ly9ET1dOTE9BRCBGSUxFIE5BTUlORwpoYnguZWxmPSJuIjsvL0VYSVQgTElO
SyBGSUxURVIKLy9TRUdNRU5UUyBBTkQgRlVOTkVMUwpoYnguc2VnPSIiOy8vVklT
SVRPUiBTRUdNRU5UQVRJT04KaGJ4LmZubD0iIjsvL0ZVTk5FTFMKLy9DQU1QQUlH
TlMKaGJ4LmNtcD11cmxSZXR1cm5DaWQ7Ly9DQU1QQUlHTiBJRApoYnguY21wbj0i
IjsvL0NBTVBBSUdOIElEIElOIFFVRVJZCmhieC5kY21wPSIiOy8vRFlOQU1JQyBD
QU1QQUlHTiBJRApoYnguZGNtcG49IiI7Ly9EWU5BTUlDIENBTVBBSUdOIElEIElO
IFFVRVJZCmhieC5kY21wZT0iIjsvL0RZTkFNSUMgQ0FNUEFJR04gRVhQSVJBVElP
TgpoYnguZGNtcHJlPSIiOy8vRFlOQU1JQyBDQU1QQUlHTiBSRVNQT05TRSBFWFBJ
UkFUSU9OCmhieC5ocmE9dXJsUmV0dXJuQXR0cjsvL1JFU1BPTlNFIEFUVFJJQlVU
RQpoYnguaHFzcj0iIjsvL1JFU1BPTlNFIEFUVFJJQlVURSBJTiBSRUZFUlJBTCBR
VUVSWQpoYnguaHFzcD0iIjsvL1JFU1BPTlNFIEFUVFJJQlVURSBJTiBRVUVSWQpo
YnguaGx0PSIiOy8vTEVBRCBUUkFDS0lORwpoYnguaGxhPSIiOy8vTEVBRCBBVFRS
SUJVVEUKaGJ4LmdwPSIiOy8vQ0FNUEFJR04gR09BTApoYnguZ3BuPSIiOy8vQ0FN
UEFJR04gR09BTCBJTiBRVUVSWQpoYnguaGNuPSIiOy8vQ09OVkVSU0lPTiBBVFRS
SUJVVEUKaGJ4Lmhjdj0iIjsvL0NPTlZFUlNJT04gVkFMVUUKaGJ4LmNwPSJudWxs
IjsvL0xFR0FDWSBDQU1QQUlHTiAKaGJ4LmNwZD0iIjsvL0NBTVBBSUdOIERPTUFJ
TgovL0NVU1RPTSBWQVJJQUJMRVMKaGJ4LmNpPSIiOy8vQ1VTVE9NRVIgSUQKaGJ4
LmhjMT0iIjsvL0NVU1RPTSAxCmhieC5oYzI9IiI7Ly9DVVNUT00gMgpoYnguaGMz
PSIiOy8vQ1VTVE9NIDMKaGJ4LmhjND0iIjsvL0NVU1RPTSA0CmhieC5ocmY9IiI7
Ly9DVVNUT00gUkVGRVJSRVIKaGJ4LnBlYz0iIjsvL0VSUk9SIENPREVTCmN2LmM1
PSIiOwpjdi5jNj0iIjsgCmN2LmM3PSIiOwpjdi5jOD0iIjsKY3YuYzk9IiI7Ci8v
SU5TRVJUIENVU1RPTSBFVkVOVFMKLy9FTkQgRURJVEFCTEUgU0VDVElPTgpoYngu
YWNjdD0iRE01MzA4MDcyQkVGIjsvL0FDQ09VTlQgTlVNQkVSKFMpCmhieC5sdD0i
bWFudWFsIjsvL0xJTksgVFJBQ0tJTkcKLy8gQXJ0aWNsZSBQYWdlIEZvciBIaXQg
Qm94CmhieC5tbGMgPSAiL0hvbWUvYnVzaW5lc3MvaW5kdXN0cnkrc2VjdG9ycy90
cmFuc3BvcnQvIjsKaGJ4LnBuID0gIkF0K2xhc3QrQnJpdGFpbitpcytyZWFkeSt0
bytidWlsZCtoeWJyaWQrY2FycytBUlRLLVNEVFMtNjU5MDkwNytwYWdlbnVtYmVy
XzEiOyAvLytfcGFnZW51bWJlciAvL1BBR0UgTkFNRShTKQpoYnguaGMxID0gIjY1
OTA5MDd8QXQrbGFzdCtCcml0YWluK2lzK3JlYWR5K3RvK2J1aWxkK2h5YnJpZCtj
YXJzIjsKaGJ4LmhjMiA9ICI2NTkwOTA3fDEiOyAKaGJ4LmhjMyA9ICIyODA2MjAw
OSI7CmN2LmM3PSJSYXkrSHV0dG9uIjsKLy8tLT4KaGJ4LnBuZGVmPSJ0aXRsZSI7
Ly9ERUZBVUxUIFBBR0UgTkFNRSAKaGJ4LmN0ZGVmPSJmdWxsIjsvL0RFRkFVTFQg
Q09OVEVOVCBDQVRFR09SWQo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iaHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay9qcy9o
YnguanMiPjwvc2NyaXB0Pgo8IS0tRU5EIFdFQlNJREVTVE9SWSBDT0RFLS0+Cjwh
LS0gRU5EIEhJVEJPWCBDT0RFIC0tPgo8IS0tIEJFR0lOOiBSZWdpb24gZm9yIHRv
cCBhZCAtLT4KPGRpdiBpZD0icmVnaW9uLXRvcC1hZCI+CjwhLS0gQkVHSU46IE1v
ZHVsZSAtIEFkdmVydDpUb3AgLS0+CjxkaXYgaWQ9ImFkLXRvcCI+CjxkaXYgY2xh
c3M9ImZsb2F0LWxlZnQgd2lkdGgtNzI4Ij4KPCEtLSBCRUdJTjogTW9kdWxlIC0g
QWR2ZXJ0OlRvcCAtLT4KPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8
IS0tCi8vUmV0cmlldmUgeWFvbyBDb29raWUgVmFsdWUKdmFyIHlhaG9vID0gIm5v
IjsKdmFyIElzWWFob289Im5vIjsKaWYgKEdldFF1ZXJ5U3RyaW5nKCJ5YWhvbyIp
PT0ieWVzIiB8fCBnZXRfY29va2llKCdZSCcpID09ICJ5ZXMiKSBJc1lhaG9vPSJ5
ZXMiOwppZiAoSXNZYWhvbyA9PSAieWVzIiB8fCBnZXRfY29va2llKCdZSCcpID09
ICdvcGVuJykgewpzZXRfY29va2llICgiWUgiLCAieWVzIiwgIiIsICIiICk7Cnlh
aG9vID0gInllcyI7Cn0gZWxzZSB7CnNldF9jb29raWUgKCJZSCIsICJubyIsICIi
LCAiIiApOwp5YWhvbyA9ICJubyI7Cn0Kd2luZG93Lm9udW5sb2FkID0gc2V0WWFo
b29Db29raWU7Ci8vLS0+CjwvU0NSSVBUPgo8IS0tIEZvciBUcmF2ZWwgU2VhcmNo
IC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KdmFyIFJT
dGFnID0gIiI7CnRyeXsKUlN0YWcgPSBzZWdRUzsKfQpjYXRjaChlKXsKUlN0YWcg
PSAiIjsKfQpkb2N1bWVudC53cml0ZSgnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iaHR0cDovL2FkLnVrLmRvdWJsZWNsaWNrLm5ldC9hZGovYnVz
aW5lc3MudGltZXNvbmxpbmUuY28udWsvaW5kdXN0cnlzZWN0b3JzL3RyYW5zcG9y
dDtjYXQ9O3Bvcz1sZWFkZXJib2FyZDtkY29wdD1pc3Q7c3o9NzI4eDkwOycrIFJT
dGFnICsndGlsZT0xOycrY2F0ZWdvcnlWYWx1ZXMrJ3lhaG9vPScreWFob28rJztv
cmQ9JytyYW5kbnVtKyc/Ij48XC9zY3JpcHQ+Jyk7CQovLy0tPgo8L3NjcmlwdD4K
PG5vc2NyaXB0Pgo8YSBocmVmPSJodHRwOi8vYWQudWsuZG91YmxlY2xpY2submV0
L2Fkai9idXNpbmVzcy50aW1lc29ubGluZS5jby51ay9pbmR1c3RyeXNlY3RvcnMv
dHJhbnNwb3J0O3Bvcz1sZWFkZXJib2FyZDtkY29wdD1pc3Q7c3o9NzI4eDkwO3Rp
bGU9MTt5YWhvbz1ObztvcmQ9MTI0Nzk0MzQyNTY5NT8iPjwvYT4KPC9ub3Njcmlw
dD4KPCEtLVNFQ1RJT046cGFyYW1ldGVyIHBhcmFtZXRlcj0iZGFydC5zZXJ2ZXIi
IC8tLT4KPCEtLSBFTkQ6IE1vZHVsZSAtIEFkdmVydDpUb3AgLS0+CjwvZGl2Pgo8
IS0tIERpc3BsYXkgQ29tbWVyY2lhbCBBZCAtLT4KPCEtLSBEaXNwbGF5IENvbW1l
cmNpYWwgQWQgUHVibGlzaGVkIERhdGUgOiBNYXIgMjYsIDIwMDkgOTowOSBBTS0t
Pgo8ZGl2Pgo8ZGl2IGNsYXNzPSJwcm9wLTkwIGFkLXRvcC1yaWdodCIgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6ICNiNmU2MDAiPgo8IS0tIE5vIGFydGljbGUgaXMg
YXR0YWNoZWQtLT4KPGgxIGNsYXNzPSJpbmRleCBwYWRkaW5nLWJvdHRvbS01Ij48
YSBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9zcG9ydC9j
b21tZXJjaWFsL2FydGljbGU2NzE0ODQ2LmVjZSIgY2xhc3M9ImxpbmstMDZjIiB0
YXJnZXQ9Il9ibGFuayI+R2xvcnkgRGF5czwvYT48L2gxPgo8cCBjbGFzcz0ic21h
bGwiPldpbiB0aWNrZXRzIHRvIEdsb3Jpb3VzIEdvb2R3b29kPC9wPiAKPC9kaXY+
CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4K
PCEtLSBFTkQ6IE1vZHVsZSAtIEFkdmVydDpUb3AgLS0+CjxoMiBjbGFzcz0iYWNj
ZXNzLXRleHQiPk5hdmlnYXRpb24gLSBsaW5rIHRvIG90aGVyIG1haW4gc2VjdGlv
bnMgZnJvbSBoZXJlPC9oMj4KPGRpdj48YSBjbGFzcz0iYWNjZXNzLXRleHQiIGhy
ZWY9IiNyZWdpb24tYm9keS1hbmQtZm9vdGVyIj5Ta2lwIE5hdmlnYXRpb248L2E+
PGJyIGNsYXNzPSJhY2Nlc3MtdGV4dCIgLz48YnIgY2xhc3M9ImFjY2Vzcy10ZXh0
IiAvPjwvZGl2Pgo8ZGl2IGlkPSJyZWdpb24tbmF2Ij4KPCEtLSBCRUdJTjogTTc2
IEdsb2JhbCBOYXZpZ2F0aW9uIC0gSGVhZGVyIC0tPgo8ZGl2IGNsYXNzPSJjbGVh
ciI+PC9kaXY+CjxkaXYgaWQ9ImhlYWRlciI+CQo8ZGl2IGlkPSJsb2dvLWFuZC1x
dW90ZS1jb250YWluZXIiIGNsYXNzPSJoZWlnaHQtNzAgb3ZlcmZsb3ctaGlkZGVu
Ij4KPHNwYW4gY2xhc3M9ImZsb2F0LWxlZnQiPjxhIGhyZWY9Ii90b2wvbmV3cy8i
PjxpbWcgc3JjPSIvdG9sL2ltZy9nbG9iYWwvdG9sLWxvZ28uZ2lmIiB3aWR0aD0i
NDYwIiBoZWlnaHQ9IjcwIiBib3JkZXI9IjAiIGFsdD0iVGltZXMgT25saW5lIiB0
aXRsZT0iVGltZXMgT25saW5lIiAvPjwvYT48L3NwYW4+CjxkaXYgY2xhc3M9ImZs
b2F0LXJpZ2h0Ij4KPCEtLUNvbW1lbnRzIFB1Ymxpc2hlZCBEYXRlIDogSnVsIDEz
LCAyMDA5IDM6MDUgUE0gLS0+Cjxmb3JtIG5hbWU9ImNvbW1lbnQiIG1ldGhvZD0i
cG9zdCIgYWN0aW9uPSIiPgkKPGRpdiBjbGFzcz0iaGVhZGVyLXF1b3RlLWNvbnRh
aW5lciI+CjxkaXYgY2xhc3M9ImhlYWRlci1xdW90ZS1sZWZ0Ij4KPGEgaHJlZj0i
L3RvbC9jb21tZW50L2NvbHVtbmlzdHMvZ3Vlc3RfY29udHJpYnV0b3JzL2FydGlj
bGU2Njk1MTA2LmVjZSI+PGltZyBzcmM9Jy9tdWx0aW1lZGlhL2FyY2hpdmUvMDA1
ODgvYnVzdGVyXzU4ODU2MGIuanBnJyBhbHQ9J1JveSBIYXR0ZXJzbGV5J3MgZG9n
LCBCdXN0ZXInIHdpZHRoPSI3MCIgaGVpZ2h0PSI3MCIgYm9yZGVyPSIwIiBjbGFz
cz0iZGlzcGxheS1ibG9jayIgLz4gPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0iaGVh
ZGVyLXF1b3RlLXJpZ2h0Ij4KPGRpdiBjbGFzcz0icGFkZGluZy10b3AtNyI+Cjxo
MiBjbGFzcz0ic3ViLWhlYWRpbmcgZGlzcGxheS1pbmxpbmUiPjxzcGFuIGNsYXNz
PSJoZWFkZXItcXVvdGUtb3BlbiI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7PC9zcGFuPjxhIGNsYXNzPSJsaW5rLTMzMyBwYWRkaW5nLWxlZnQtNSIgaHJl
Zj0iL3RvbC9jb21tZW50L2NvbHVtbmlzdHMvZ3Vlc3RfY29udHJpYnV0b3JzL2Fy
dGljbGU2Njk1MTA2LmVjZSI+QXNzYXVsdHMgYnkgaHVtYW5zIGFyZSBhIHRob3Vz
YW5kIHRpbWVzIG1vcmUgZnJlcXVlbnQgdGhhbiBhdHRhY2tzIGJ5IGRvZ3M8L2E+
PHNwYW4gY2xhc3M9ImhlYWRlci1xdW90ZS1jbG9zZSI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7PC9zcGFuPjwvaDI+CjxwIGNsYXNzPSJieWxpbmUiPkJ1
c3RlciBIYXR0ZXJzbGV5IDwvcD4KPC9kaXY+CjwvZGl2PiAKPC9kaXY+CjwvZm9y
bT4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUiPjwvZGl2
Pgo8IS0tIEVORDogTG9nbyBhbmQgUXVvdGUgLS0+CjwhLS0gQkVHSU46IE5hdiAo
SGVhZGVyKSAtLT4KPGRpdiBjbGFzcz0nbmF2LXByaW1hcnknPjx1bCBjbGFzcz0n
ZmxvYXQtbGVmdCc+PGxpPjxhIGhyZWY9Jy90b2wvbmV3cy8nIGNsYXNzPSdwcmlt
YXJ5LWxpbmsnPk5ld3M8L2E+PC9saT48bGk+PGEgaHJlZj0nL3RvbC9jb21tZW50
LycgY2xhc3M9J3ByaW1hcnktbGluayc+Q29tbWVudDwvYT48L2xpPjxsaT48YSBo
cmVmPScvdG9sL2J1c2luZXNzLycgY2xhc3M9J3ByaW1hcnktc2VsZWN0ZWQnPkJ1
c2luZXNzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Jy90b2wvbW9uZXkvJyBjbGFzcz0n
cHJpbWFyeS1saW5rJz5Nb25leTwvYT48L2xpPjxsaT48YSBocmVmPScvdG9sL3Nw
b3J0LycgY2xhc3M9J3ByaW1hcnktbGluayc+U3BvcnQ8L2E+PC9saT48bGk+PGEg
aHJlZj0nL3RvbC9saWZlX2FuZF9zdHlsZS8nIGNsYXNzPSdwcmltYXJ5LWxpbmsn
PkxpZmUgJiBTdHlsZTwvYT48L2xpPjxsaT48YSBocmVmPScvdG9sL3RyYXZlbC8n
IGNsYXNzPSdwcmltYXJ5LWxpbmsnPlRyYXZlbDwvYT48L2xpPjxsaT48YSBocmVm
PScvdG9sL2RyaXZpbmcvJyBjbGFzcz0ncHJpbWFyeS1saW5rJz5Ecml2aW5nPC9h
PjwvbGk+PGxpPjxhIGhyZWY9Jy90b2wvYXJ0c19hbmRfZW50ZXJ0YWlubWVudC8n
IGNsYXNzPSdwcmltYXJ5LWxpbmsnPkFydHMgJiBFbnRzPC9hPjwvbGk+PGxpPjxh
IGhyZWY9Jy90b2wvYXJjaGl2ZS8nIGNsYXNzPSdwcmltYXJ5LWxpbmstbm8tcGlw
ZSc+QXJjaGl2ZTwvYT48L2xpPjwvdWw+PHVsIGNsYXNzPSdmbG9hdC1yaWdodCc+
PGxpPjxhIGhyZWY9Jy90b2wvbmV3c3BhcGVycy8nIGNsYXNzPSdwcmltYXJ5LWxp
bmstcmlnaHQnPk91ciBQYXBlcnM8L2E+PC9saT48bGk+PGEgaHJlZj0nL3RvbC90
b29sc19hbmRfc2VydmljZXMvc3Vic2NyaXB0aW9ucy8nIGNsYXNzPSdwcmltYXJ5
LWxpbmstcmlnaHQtbm8tcGlwZSc+U3Vic2NyaXB0aW9uczwvYT48L2xpPjwvdWw+
PC9kaXY+PGRpdiBjbGFzcz0nbmF2LXNlY29uZGFyeSc+PHVsIGNsYXNzPSdmbG9h
dC1sZWZ0Jz48bGk+PGEgaHJlZj0nL3RvbC9idXNpbmVzcy9tYXJrZXRzLycgY2xh
c3M9J3NlY29uZGFyeS1saW5rJz5NYXJrZXRzPC9hPjwvbGk+PGxpPjxhIGhyZWY9
J2h0dHA6Ly9tb3JuaW5nc3Rhci50aW1lc29ubGluZS5jby51ay8nIGNsYXNzPSdz
ZWNvbmRhcnktbGluayc+TWFya2V0IERhdGE8L2E+PC9saT48bGk+PGEgaHJlZj0n
L3RvbC9idXNpbmVzcy9lY29ub21pY3MvJyBjbGFzcz0nc2Vjb25kYXJ5LWxpbmsn
PkVjb25vbWljczwvYT48L2xpPjxsaT48YSBocmVmPScvdG9sL2J1c2luZXNzL2lu
ZHVzdHJ5X3NlY3RvcnMvJyBjbGFzcz0nc2Vjb25kYXJ5LXNlbGVjdGVkJz5JbmR1
c3RyeSBTZWN0b3JzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Jy90b2wvYnVzaW5lc3Mv
Y29sdW1uaXN0cy8nIGNsYXNzPSdzZWNvbmRhcnktbGluayc+Q29sdW1uaXN0czwv
YT48L2xpPjxsaT48YSBocmVmPScvdG9sL2J1c2luZXNzL21vdmVyc19hbmRfc2hh
a2Vycy8nIGNsYXNzPSdzZWNvbmRhcnktbGluayc+TW92ZXJzICYgU2hha2Vyczwv
YT48L2xpPjxsaT48YSBocmVmPScvdG9sL2J1c2luZXNzL2xhdy8nIGNsYXNzPSdz
ZWNvbmRhcnktbGluayc+TGF3PC9hPjwvbGk+PGxpPjxhIGhyZWY9Jy90b2wvYnVz
aW5lc3MvY2FyZWVyX2FuZF9qb2JzLycgY2xhc3M9J3NlY29uZGFyeS1saW5rJz5D
YXJlZXI8L2E+PC9saT48bGk+PGEgaHJlZj0nL3RvbC9idXNpbmVzcy9tYW5hZ2Vt
ZW50LycgY2xhc3M9J3NlY29uZGFyeS1saW5rJz5NYW5hZ2VtZW50PC9hPjwvbGk+
PC91bD48dWwgY2xhc3M9J2Zsb2F0LXJpZ2h0Jz48L3VsPjwvZGl2Pgo8IS0tIEVO
RDogTmF2IChIZWFkZXIpIC0tPgo8IS0tIEJFR0lOOiBDcnVtYnRyYWlsIGFuZCBH
bG9iYWwgc2VhcmNoIC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CjwhLS0KZnVuY3Rpb24gdmFsaWRhdGUoKQp7CnZhciBxdWVyeSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJoZWFkZXJJZCIpLnF1ZXJ5LnZhbHVlOwppZihxdWVy
eSA9PSAiIikKewphbGVydCgiUGxlYXNlIEVudGVyIEtleXdvcmQgVG8gU2VhcmNo
LiIpOwpyZXR1cm4gZmFsc2U7Cn0KZWxzZQp7CnJldHVybiB0cnVlOwp9Cn0KZnVu
Y3Rpb24gT25CdXR0b25DbGljaygpCnsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImhlYWRlcklkIikuc3VibWl0KCk7Cn0KLy8tLT4KPC9zY3JpcHQ+CQo8ZGl2IGNs
YXNzPSJjcnVtYnRyYWlsLWFuZC1zZWFyY2giPgo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIvdG9sL2pzL2hlYWRlci1zZWFyY2guanMiPjwvc2Ny
aXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KdmFyIGFB
Y3Rpb25VcmxzVG9wU2VhcmNoPW5ldyBBcnJheSgpOyAvLyBUaGlzIGFycmF5IHdp
bGwgaG9sZCB0aGUgdmFsdWVzIGZvcm0gYWN0aW9ucwovLy0tPgo8L3NjcmlwdD4J
CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQphQWN0aW9uVXJs
c1RvcFNlYXJjaFswXT17YWN0aW9uOicvdG9sL3NpdGVzZWFyY2guZG8nLHNlYXJj
aFRleHROYW1lOidxdWVyeScscGFyYW1ldGVyczp7dHVybk9mZkdvb2dsZUFkczoi
ZmFsc2UiLCBzdWJtaXRTdGF0dXM6InNlYXJjaEZvcm1TdWJtaXR0ZWQiLCBtb2Rl
OiJzaW1wbGUiLHNlY3Rpb25JZDoiODIxIn19OwkKYUFjdGlvblVybHNUb3BTZWFy
Y2hbMV09e2FjdGlvbjonL3RvbC92aWV3U2VhcmNoUmVzdWx0cy5hcmMnLCBzZWFy
Y2hUZXh0TmFtZToncXVlcnlLZXl3b3JkcycscGFyYW1ldGVyczp7fX07CQphQWN0
aW9uVXJsc1RvcFNlYXJjaFsyXT17YWN0aW9uOicvdG9sL2dvb2dsZVNlYXJjaC5k
bycsIHNlYXJjaFRleHROYW1lOidxdWVyeUtleXdvcmRzJyxwYXJhbWV0ZXJzOntz
ZWFyY2htb2RlOiJhZHNhbmRyZXN1bHRzIixwYWdlTnVtOiIxIixyZXN1bHRzUGVy
UGFnZToiMTAifX07CQovLy0tPgo8L3NjcmlwdD4KPGZvcm0gaWQ9InNlYXJjaEhl
YWRlcklkIiBuYW1lPSJzZWFyY2hIZWFkZXJJZCIgYWN0aW9uPSIiIG1ldGhvZD0i
Z2V0IiBvbnN1Ym1pdD0icmV0dXJuIGZWYWxpZGF0ZURhdGEoKTsiPgo8ZGl2IHN0
eWxlPSJwYWRkaW5nLWxlZnQ6IDdweDsiIGNsYXNzPSJmbG9hdC1yaWdodCI+Cjxp
bnB1dCB0eXBlPSJpbWFnZSIgc3JjPSIvdG9sL2ltZy9nbG9iYWwvYnV0dG9uL2J1
dHRvbi1zZWFyY2guZ2lmIiBjbGFzcz0iZ2xvYmFsLXNlYXJjaC1nbyIgYWx0PSJT
ZWFyY2giIC8+CQo8L2Rpdj4KPGRpdiBjbGFzcz0iZmxvYXQtcmlnaHQiPgkKPGRp
diBjbGFzcz0iZmxvYXQtbGVmdCBwYWRkaW5nLXRvcC0xOSI+PC9kaXY+CQo8aW5w
dXQgdHlwZT0idGV4dCIgbmFtZT0icXVlcnkiIGlkPSJ0b3Atc2VhcmNoLXF1ZXJ5
IiBtYXhsZW5ndGg9IjEwMCIgc2l6ZT0iMTAiIGNsYXNzPSJnbG9iYWwtc2VhcmNo
LXRleHQtd2l0aC1kcm9wZG93biIgYWx0PSJxdWVyeSIgLz4KPHNlbGVjdCBpZD0i
c2VhcmNoT3B0aW9uIiBjbGFzcz0iZ2xvYmFsLXNlYXJjaC1vcHRpb24iPgo8b3B0
aW9uIHZhbHVlPSIwIj5UaW1lcyBPbmxpbmU8L29wdGlvbj4JCjxvcHRpb24gdmFs
dWU9IjEiPlRpbWVzIEFyY2hpdmU8L29wdGlvbj4JCjxvcHRpb24gdmFsdWU9IjIi
Pkdvb2dsZTwvb3B0aW9uPgkKPC9zZWxlY3Q+CjwvZGl2Pgo8ZGl2IGlkPSJzZWFy
Y2hIZWFkZXJJZC1hZGRpdGlvbmFsLXBhcmFtZXRlcnMiIGNsYXNzPSJhY2Nlc3Mt
dGV4dCI+PC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEt
LQp2YXIgc0N1cnJlbnRXaW5kb3dMb2NhdGlvbj1kb2N1bWVudC5sb2NhdGlvbisi
IjsKZm9yKGk9MDsgaTxhQWN0aW9uVXJsc1RvcFNlYXJjaC5sZW5ndGg7IGkrKykg
ewppZihzQ3VycmVudFdpbmRvd0xvY2F0aW9uLm1hdGNoKGFBY3Rpb25VcmxzVG9w
U2VhcmNoW2ldLmFjdGlvbikgIT0gbnVsbCApIHsKZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNlYXJjaE9wdGlvbiIpLnZhbHVlPWk7Cn0JCn0KLy8tLT4KPC9zY3Jp
cHQ+CjwvZm9ybT4KPGRpdiBjbGFzcz0iY3J1bWJ0cmFpbC1wcmVmaXgiPgkKPHAg
Y2xhc3M9InNtYWxsIHdoZXJlLWFtLWkiPldoZXJlIGFtIEk/PC9wPgo8YSBjbGFz
cz0iY3J1bWJ0cmFpbCIgaHJlZj0nL3RvbC9uZXdzLyc+SG9tZTwvYT4KPHVsIGNs
YXNzPSJkaXNwbGF5LWlubGluZSI+CjxsaSBjbGFzcz0iZGlzcGxheS1pbmxpbmUi
Pgo8YSBjbGFzcz0iY3J1bWJ0cmFpbCIgaHJlZj0iL3RvbC9idXNpbmVzcy8iIC8+
QnVzaW5lc3M8L2E+CjxhIGNsYXNzPSJjcnVtYnRyYWlsIiBocmVmPSIvdG9sL2J1
c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvIiAvPkluZHVzdHJ5IFNlY3RvcnM8L2E+
CjxhIGNsYXNzPSJjcnVtYnRyYWlsLXNlbGVjdGVkIiBocmVmPSIvdG9sL2J1c2lu
ZXNzL2luZHVzdHJ5X3NlY3RvcnMvdHJhbnNwb3J0LyIgLz5UcmFuc3BvcnQ8L2E+
CjwvbGk+CjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPCEtLSBFTkQ6IENydW1idHJhaWwg
YW5kIEdsb2JhbCBzZWFyY2ggLS0+CjwhLS0gQkVHSU46IFNvdXJjZSBhbmQgR2xv
YmFsIGxpbmtzIC0tPgo8ZGl2IGNsYXNzPSJzb3VyY2UtYW5kLWdsb2JhbC1saW5r
cy1jb250YWluZXIiPgo8IS0tU3RhcnQgZGF0ZSBkaXNwbGF5LS0+CjwhLS1FbmQg
ZGF0ZSBkaXNwbGF5LS0+CQo8ZGl2IGNsYXNzPSJmbG9hdC1yaWdodCI+Cjx1bCBj
bGFzcz0iZGlzcGxheS1pbmxpbmUiPgo8IS0tIFNUQVJUOiBBZGRpdGlvbiBvZiBC
bHVlIExpbmtzIC0tPgo8IS0tQmxvZyBUZWFzZXIgUHVibGlzaGVkIERhdGUgOiBK
dWwgMTcsIDIwMDggMjo1OSBQTSAtLT4KPGEgY2xhc3M9InRvb2xzLTA2YyBnbG9i
YWwtbGlua3Mtc2VwZXJhdG9yIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5l
LmNvLnVrL3RvbC90b29sc19hbmRfc2VydmljZXMvc3Vic2NyaXB0aW9ucy9teV9w
cm9maWxlLyI+CQpNWSBQUk9GSUxFPC9hPgo8YSBjbGFzcz0idG9vbHMtMDZjIGds
b2JhbC1saW5rcy1zZXBlcmF0b3IiIGhyZWY9Imh0dHA6Ly93d3cudGltZXNvbmxp
bmUuY28udWsvdG9sL2NsYXNzaWZpZWRzL3Nob3AvIj4JClNIT1A8L2E+CjxhIGNs
YXNzPSJ0b29scy0wNmMgZ2xvYmFsLWxpbmtzLXNlcGVyYXRvciIgaHJlZj0iaHR0
cDovL2pvYnMudGltZXNvbmxpbmUuY28udWsiPgkKSk9CUzwvYT4KPGEgY2xhc3M9
InRvb2xzLTA2YyBnbG9iYWwtbGlua3Mtc2VwZXJhdG9yIiBocmVmPSJodHRwOi8v
d3d3LnRpbWVzb25saW5lLmNvLnVrL3Byb3BlcnR5Ij4JClBST1BFUlRZPC9hPgo8
YSBjbGFzcz0idG9vbHMtMDZjIGdsb2JhbC1saW5rcy1zZXBlcmF0b3ItbGFzdCIg
aHJlZj0iaHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay9jbGFzc2lmaWVkcyI+
CQpDTEFTU0lGSUVEUzwvYT4KPCEtLSBFTkQ6IERpc3BsYXlpbmcgQmx1ZSBMaW5r
cyAtLT4KPCEtLSBFTkQ6IEFkZGl0aW9uIG9mIEJsdWUgTGlua3MgLS0+CQo8L3Vs
Pgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8IS0tIEVO
RDogU291cmNlIGFuZCBHbG9iYWwgbGlua3MgLS0+CjwvZGl2Pgo8IS0tIGRpdiBj
bGFzcz0iZ3JleS1saW5lIj48L2Rpdi0tPgo8L2Rpdj4KPCEtLSBFTkQ6IE03NiBH
bG9iYWwgTmF2aWdhdGlvbiAtIEhlYWRlciAtLT4KPCEtLSBCRUdJTjogUmVnaW9u
IGZvciBhbGwgY29udGVudCAtLT4KPGRpdiBpZD0icmVnaW9uLWNvbnRlbnQiPgo8
ZGl2IGlkPSJyZWdpb24tYm9keS1hbmQtZm9vdGVyIj4KPGRpdiBpZD0icmVnaW9u
LWJvZHkiPgo8ZGl2IGlkPSJyZWdpb24tY29sdW1uMWFuZDItY29udGFpbmVyLWxh
eW91dDIiPgo8ZGl2IGlkPSJyZWdpb24tY29sdW1uMWFuZDItbGF5b3V0MiI+Cjwh
LS0gQkVHSU46IE1vZHVsZSAtIE1haW4gSGVhZGluZyAtLT4KPGRpdiBjbGFzcz0i
ZmxvYXQtbGVmdCBwb3NpdGlvbi1yZWxhdGl2ZSBtYXJnaW4tdG9wLW1pbnVzLTIy
Ij48c3BhbiBjbGFzcz0ic21hbGwiPgpGcm9tIDwvc3Bhbj48c3BhbiBjbGFzcz0i
YnlsaW5lIj5UaGUgU3VuZGF5IFRpbWVzPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFz
cz0iZmxvYXQtcmlnaHQgdGV4dC1yaWdodCBwb3NpdGlvbi1yZWxhdGl2ZSBtYXJn
aW4tdG9wLW1pbnVzLTIwIj4KPCEtLSBCRUdJTjogTW9kdWxlIC0gQWR2ZXJ0OlRv
cCAtLT4KPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCi8vUmV0
cmlldmUgeWFvbyBDb29raWUgVmFsdWUKdmFyIHlhaG9vID0gIm5vIjsKdmFyIElz
WWFob289Im5vIjsKaWYgKEdldFF1ZXJ5U3RyaW5nKCJ5YWhvbyIpPT0ieWVzIiB8
fCBnZXRfY29va2llKCdZSCcpID09ICJ5ZXMiKSBJc1lhaG9vPSJ5ZXMiOwppZiAo
SXNZYWhvbyA9PSAieWVzIiB8fCBnZXRfY29va2llKCdZSCcpID09ICdvcGVuJykg
ewpzZXRfY29va2llICgiWUgiLCAieWVzIiwgIiIsICIiICk7CnlhaG9vID0gInll
cyI7Cn0gZWxzZSB7CnNldF9jb29raWUgKCJZSCIsICJubyIsICIiLCAiIiApOwp5
YWhvbyA9ICJubyI7Cn0Kd2luZG93Lm9udW5sb2FkID0gc2V0WWFob29Db29raWU7
Ci8vLS0+CjwvU0NSSVBUPgo8IS0tIEZvciBUcmF2ZWwgU2VhcmNoIC0tPgo8IS0t
U0VDVElPTjpwYXJhbWV0ZXIgcGFyYW1ldGVyPSJkYXJ0LnNlcnZlciIgLy0tPgo8
IS0tIEVORDogTW9kdWxlIC0gQWR2ZXJ0OlRvcCAtLT4KPC9kaXY+CjxkaXYgY2xh
c3M9InNtYWxsIGNvbG9yLTY2NiI+Ckp1bmUgMjgsIDIwMDk8L2JyPiAKPC9kaXY+
CjxkaXYgY2xhc3M9ImNsZWFyLXNpbXBsZSI+PC9kaXY+CjxoMSBjbGFzcz0iaGVh
ZGluZyI+QXQgbGFzdCwgQnJpdGFpbiBpcyByZWFkeSB0byBidWlsZCBoeWJyaWQg
Y2FyczwvaDE+CjxoMiBjbGFzcz0ic3ViLWhlYWRpbmcgcGFkZGluZy10b3AtNSBw
YWRkaW5nLWJvdHRvbS0xNSI+VG95b3RhIGV4cGVjdHMgdG8gc3RhcnQgbWFraW5n
IHRoZSBBdXJpcyBoYXRjaGJhY2sgYXQgaXRzIHBsYW50IG5lYXIgRGVyYnkgYmVm
b3JlIHRoZSBlbmQgb2YgdGhlIHllYXI8L2gyPgo8IS0tIEVORDogTW9kdWxlIC0g
TWFpbiBIZWFkaW5nIC0tPgkKPC9kaXY+CjxkaXYgaWQ9InJlZ2lvbi1jb2x1bW4x
LWxheW91dDIiPgo8IS0tQ01BIHVzZXIgQ2FsbCBEaWZmcmVuZXQgVmFyaWF0aW9u
IE9mIEltYWdlIC0tPgo8IS0tIEJFR0lOOiBNMjQgQXJ0aWNsZSBIZWFkbGluZSB3
aXRoIGxhbmRzY2FwZSBpbWFnZSAoZCkgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii90b2wvanMvbTI0LWltYWdlLWJyb3dzZXIuanMiPjwv
c2NyaXB0Pgo8IS0tIEJFR0lOOiBNb2R1bGUgLSBNMjQgQXJ0aWNsZSBIZWFkbGlu
ZSB3aXRoIGxhbmRzY2FwZSBpbWFnZSAoZCkgLS0+CjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KPCEtLQovKiBHbG9iYWwgdmFyaWFibGVzIHRoYXQgYXJl
IHVzZWQgZm9yICJpbWFnZSBicm93c2luZyIuIFVzZWQgb24gYXJ0aWNsZSBwYWdl
cyB0byByb3RhdGUgdGhlIGltYWdlcyBvZiBhIHN0b3J5LiAqLwp2YXIgc0ltYWdl
QnJvd3NlckltYWdlUGF0aCA9ICcnOwp2YXIgYUFydGljbGVJbWFnZXMgPSBuZXcg
QXJyYXkoKTsKdmFyIGFJbWFnZURlc2NyaXB0aW9ucyA9IG5ldyBBcnJheSgpOwp2
YXIgYUltYWdlRW5sYXJnZUxpbmsgPSBuZXcgQXJyYXkoKTsKdmFyIGFJbWFnZUVu
bGFyZ2VQb3B1cFdpZHRoID0gJzUwMCc7CnZhciBhSW1hZ2VFbmxhcmdlUG9wdXBI
ZWlnaHQgPSAnNTAwJzsKdmFyIGFJbWFnZVBob3RvZ3JhcGhlciA9IG5ldyBBcnJh
eSgpOwp2YXIgblNlbGVjdGVkQXJ0aWNsZUltYWdlID0gMDsKdmFyIGFJbWFnZUFs
dFRleHQ9IG5ldyBBcnJheSgpOyAKdmFyIGk9MDsKLy8tLT4KPC9zY3JpcHQ+Cjxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQphQXJ0aWNsZUltYWdl
c1tpXSA9ICcvbXVsdGltZWRpYS9hcmNoaXZlLzAwNTgwL0J1c2luZXNzXzU4MDM1
NGEuanBnJzsKLy8tLT4KPC9zY3JpcHQ+CjwhLS1Eb24ndCBEaXNwbGF5IHVuZGlm
aW5lZCB0ZXN0IGZvciBjcmVkaXQgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KPCEtLQphSW1hZ2VBbHRUZXh0W2ldID0gIlRveW90YSIgOwkKYUlt
YWdlQWx0VGV4dFtpXSA9IGFJbWFnZUFsdFRleHRbaV0ucmVwbGFjZSgvJnF1b3Q7
L2csIlwiIik7Ci8vLS0+CQo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgo8IS0tCmFJbWFnZUVubGFyZ2VMaW5rW2ldID0gJy9tdWx0aW1l
ZGlhL2FyY2hpdmUvMDA1ODAvQnVzaW5lc3NfNTgwMzU0YS5qcGcnOwppPWkrMTsK
Ly8tLT4KPC9zY3JpcHQ+CQo8ZGl2IGlkPSJkeW5hbWljLWltYWdlLWhvbGRlciI+
PGltZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA1ODAvQnVzaW5lc3NfNTgw
MzU0YS5qcGciIHdpZHRoPSIzODUiIGhlaWdodD0iMTg1IiBib3JkZXI9IjAiIGFs
dD0iVG95b3RhIiAvPjwvZGl2Pgo8IS0tIFJlbW92ZSBmb2xsb3dpbmcgPGRpdj4g
dG8gbm90IHNob3cgcGhvdG9ncmFwaGVyIGluZm9ybWF0aW9uIC0tPgo8IS0tIFJl
bW92ZSBmb2xsb3dpbmcgPGRpdj4gdG8gbm90IHNob3cgaW1hZ2UgZGVzY3JpcHRp
b24gLS0+CjwhLS0gUmVtb3ZlIGZvbGxvd2luZyA8ZGl2PiB0byBub3Qgc2hvdyBl
bmxhcmdlIG9wdGlvbiAtLT4KPCEtLS0tPgo8ZGl2IGlkPSJwYWdpbmF0aW9uLWNv
bnRhaW5lciIgY2xhc3M9InBhZ2luYXRpb24tY29udGFpbmVyIj4KPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmZDcmVhdGVJbWFnZUJyb3dzZXIo
blNlbGVjdGVkQXJ0aWNsZUltYWdlLCdsYW5kc2NhcGUnLCIvdG9sLyIpOwovLy0t
Pgo8L3NjcmlwdD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPGRp
diBjbGFzcz0icGFkZGluZy1ib3R0b20tMTUiPjwvZGl2Pgo8IS0tIFByaW50IEF1
dGhvciBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXJ0aWNsZSAtLT4KPGRpdiBp
ZD0ibWFpbi1hcnRpY2xlIj4KPGRpdiBjbGFzcz0iYXJ0aWNsZS1hdXRob3IiPgo8
IS0tIFByaW50IEF1dGhvciBuYW1lIGZyb20gQnkgTGluZSBhc3NvY2lhdGVkIHdp
dGggdGhlIGFydGljbGUgLS0+CQo8c3BhbiBjbGFzcz0ic21hbGwiPjwvc3Bhbj48
c3BhbiBjbGFzcz0iYnlsaW5lIj4KUmF5IEh1dHRvbgo8L3NwYW4+CjxkaXYgY2xh
c3M9ImNsZWFyIj48L2Rpdj4KPC9kaXY+CjwvZGl2PiAKPGRpdiBpZD0icmVsYXRl
ZC1hcnRpY2xlLWxpbmtzIj4JCjxkaXYgY2xhc3M9InBhZGRpbmctbGVmdC1yaWdo
dC01Ij4KPCEtLSBCRUdJTjogTTE5IC0gQXJ0aWNsZSB0b29scyAtLT4KPHNwYW4g
Y2xhc3M9ImZsb2F0LWxlZnQgcGFkZGluZy1sZWZ0LTggcGFkZGluZy10b3AtMiI+
CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZ1NpdGVMaWZlLlJlY29t
bWVuZCgiRXh0ZXJuYWxSZXNvdXJjZSIsICI2NTkwOTA3IiwiaHR0cDovL3d3dy50
aW1lc29ubGluZS5jby51ay90b2wvYnVzaW5lc3MvaW5kdXN0cnlfc2VjdG9ycy90
cmFuc3BvcnQvYXJ0aWNsZTY1OTA5MDcuZWNlIik7Cjwvc2NyaXB0Pgo8ZGl2IGNs
YXNzPSJwYWRkaW5nLXRvcC04Ij48L2Rpdj4JCjwvc3Bhbj4JCjxkaXYgY2xhc3M9
ImNsZWFyIj48L2Rpdj4JCjwhLS0gPGRpdiBjbGFzcz0icGFkZGluZy1ib3R0b20t
MTAiPjwvZGl2PiAtLT4KPCEtLSBFTkQ6IE0xOSAtIEFydGljbGUgdG9vbHMgLS0+
CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjb21tZW50LWdyZXktbGluZSI+PC9kaXY+Cjxk
aXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4KPC9kaXY+CQo8IS0tIEVO
RDogTW9kdWxlIC0gTTI0IEFydGljbGUgSGVhZGxpbmUgd2l0aCBsYW5kc2NhcGUg
aW1hZ2UgKGQpIC0tPgo8IS0tIEJFR0lOOiBNb2R1bGUgLSBNYWluIEFydGljbGUg
LS0+CjwhLS0gQ2hlY2sgdGhlIEFydGljbGUgVHlwZSBhbmQgZGlzcGxheSBhY2Nv
cmRpbmdseS0tPgo8IS0tIFByaW50IEF1dGhvciBpbWFnZSBhc3NvY2lhdGVkIHdp
dGggdGhlIEF1dGhvci0tPgo8IS0tIFByaW50IHRoZSBib2R5IG9mIHRoZSBhcnRp
Y2xlLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmRpdiNyZWxhdGVkLWFydGlj
bGUtbGlua3MgcCBhLCBkaXYjcmVsYXRlZC1hcnRpY2xlLWxpbmtzIHAgYTp2aXNp
dGVkIHsKY29sb3I6IzA2YzsKfSAKPC9zdHlsZT4JCjxkaXYgaWQ9InJlbGF0ZWQt
YXJ0aWNsZS1saW5rcyI+CjwhLS0gUGFnaW5hdGlvbiAtLT4KPHA+IEJSSVRBSU4g
aXMgdG8gbWFrZSBoeWJyaWQgY2FycyBmb3IgdGhlIGZpcnN0IHRpbWUgYWZ0ZXIg
YSBkZWNpc2lvbiBieSBUb3lvdGEgdG8gc3RhcnQgcHJvZHVjdGlvbiBvZiB0aGUg
aGlnaC10ZWNoIHZlaGljbGVzIGF0IGl0cyBCdXJuYXN0b24gcGxhbnQgbmVhciBE
ZXJieS48L3A+CjxwPlRoZSBVSyBpcyB0aGUgZmlyc3QgRXVyb3BlYW4gY291bnRy
eSB0aGUgSmFwYW5lc2UgY2FyIGdpYW50IGhhcyBjaG9zZW4gZm9yIGh5YnJpZCBw
cm9kdWN0aW9uLCBhbmQgb25seSB0aGUgdGhpcmQgb3V0c2lkZSBKYXBhbi4gVG95
b3RhIG1ha2VzIG5lYXJseSBhbGwgaXRzIGh5YnJpZHMgaW4gSmFwYW4sIHdpdGgg
c21hbGwgbnVtYmVycyBwcm9kdWNlZCBpbiBDaGluYSBhbmQgQW1lcmljYS4gVGhl
IGJlc3Qga25vd24gb2YgdGhlc2UgY2FycyBpcyB0aGUgUHJpdXMuPC9wPgo8cD5U
aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBuZXcgdmVoaWNsZSB0byBCdXJuYXN0b24g
JiMxNTA7IGEgaHlicmlkIHZlcnNpb24gb2YgdGhlIEF1cmlzIGhhdGNoYmFjayAm
IzE1MDsgZm9sbG93cyBpbnRlbnNlIG5lZ290aWF0aW9ucyB3aXRoIHRoZSBnb3Zl
cm5tZW50IGluIHJlY2VudCBtb250aHMuIEl0IGlzIHVuZGVyc3Rvb2QgdGhhdCBC
cml0YWluIHdpbGwgcHJvdmlkZSBmaW5hbmNpYWwgYXNzaXN0YW5jZSB0byBoZWxw
IHRoZSBtb3ZlLjwvcD4KPHA+T2ZmaWNpYWwgY29uZmlybWF0aW9uIGlzIGV4cGVj
dGVkIGluIHRoZSBuZXh0IGZldyBtb250aHMsIHdpdGggR29yZG9uIEJyb3duIGV4
cGVjdGVkIHRvIHZpc2l0IHRoZSBCdXJuYXN0b24gcGxhbnQgZm9yIHRoZSBhbm5v
dW5jZW1lbnQuIFRoZSBTdW5kYXkgVGltZXMgaGFzIGxlYXJudCB0aGF0IHByb2R1
Y3Rpb24gaXMgZXhwZWN0ZWQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGlzIHll
YXIuPC9wPgo8IS0tI2luY2x1ZGUgZmlsZT0ibTYzLWFydGljbGUtcmVsYXRlZC1h
dHRhY2hlbWVudHMuaHRtbCItLT4gCjwhLS0gQkVHSU46IE1vZHVsZSAtIE02MyAt
IEFydGljbGUgUmVsYXRlZCBBdHRhY2hlbWVudHMgLS0+CjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii90b2wvanMvcGljdHVyZS1nYWxsZXJ5Lmpz
Ij48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5j
dGlvbiBzbGlkZXNob3dQb3BVcCh1cmwpCnsKcGljdHVyZUdhbGxlcnlQb3B1cFBp
Yyh1cmwpOwpyZXR1cm4gZmFsc2U7Cn0KPC9zY3JpcHQ+CjwhLS0gQkVHSU46IENv
bW1lbnQgVGVhc2VyIE1vZHVsZSAtLT4KPGRpdiBjbGFzcz0iZmxvYXQtbGVmdCBy
ZWxhdGVkLWF0dGFjaGVtZW50cy1jb250YWluZXIiPgo8IS0tIEVORDogQ29tbWVu
dCBUZWFzZXIgTW9kdWxlIC0tPgkKPCEtLSBCRUdJTjogTW9kdWxlIC0gTTYzIC0g
QXJ0aWNsZSBSZWxhdGVkIFBhY2thZ2UgLS0+CjwhLS0gRU5EOiBNb2R1bGUgLSBN
NjMgLSBBcnRpY2xlIFJlbGF0ZWQgUGFja2FnZSAtLT4KPGRpdiBjbGFzcz0icmVs
YXRlZC1hdHRhY2hlbWVudHMtdG9wIHBhZGRpbmctdG9wLTEwIj4KPGgzIGNsYXNz
PSJzZWN0aW9uLWhlYWRpbmciPlJlbGF0ZWQgTGlua3M8L2gzPgo8L2Rpdj4KPGRp
diBjbGFzcz0icmVsYXRlZC1hdHRhY2hlbWVudHMtc2lkZSBwYWRkaW5nLXRvcC03
IHBhZGRpbmctYm90dG9tLTEwIHBhZGRpbmctcmlnaHQtNyI+CjxkaXYgY2xhc3M9
InBhZGRpbmctYm90dG9tLTUgcGFkZGluZy10b3AtMyI+Cjxmb3JtIG5hbWU9InJl
bGF0ZWRMaW5rc2Zvcm0iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgo8L2Zvcm0+
Cjx1bCBjbGFzcz0iY2hldnJvbi1saXN0IGNoZXZyb24tYmx1ZSI+CjxsaT48YSBo
cmVmPScvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvdHJhbnNwb3J0L2Fy
dGljbGU2NTkwOTg0LmVjZScgY2xhc3M9ImxpbmstNjY2Ij4KUmFpbCBmcmFuY2hp
c2UgdGFsa3MgY29sbGFwc2UKPC9hPjwvbGk+CjwvdWw+Cjxmb3JtIG5hbWU9InJl
bGF0ZWRMaW5rc2Zvcm0iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgo8L2Zvcm0+
CjwvZGl2Pgo8L2Rpdj4KPCEtLSBCRUdJTjogUE9MTCAtLT4KPCEtLVRoaXMgYmxv
Y2sgd2lsbCBleGVjdXRlIGlmIGFuIGFydGljbGUgb2YgdHlwZSBQb2xsIGlzIGF0
dGFjaGVkLS0+CQo8IS0tIEVORCA6IFBPTEwgLS0+CjwhLS0gQkVHSU46IERFQkFU
RS0tPgo8IS0tIEVORDogREVCQVRFLS0+CjxkaXYgY2xhc3M9ImNsZWFyIHJlbGF0
ZWQtYXR0YWNoZW1lbnRzLWJvdHRvbSI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRp
bmctdG9wLTUiPjwvZGl2Pgo8L2Rpdj4KPCEtLSBFTkQ6IE1vZHVsZSAtIE02MyAt
IEFydGljbGUgUmVsYXRlZCBBdHRhY2hlbWVudHMgLS0+CjxwPk1pbmlzdGVycyBh
cmUgZXhwZWN0ZWQgdG8gdHJ1bXBldCB0aGUgbW92ZSBhcyBhbiBleGFtcGxlIG9m
IEJyaXRhaW4gcHJvc3BlcmluZyBmcm9tIGEgbmV3IGxvdy1jYXJib24gbWFudWZh
Y3R1cmluZyBzZWN0b3IuIE1pbmlzdGVycyBoYXZlIGZvcmVjYXN0IDFtICZsZHF1
bztncmVlbi1jb2xsYXImcmRxdW87IGpvYnMgYW5kIGhhdmUgZnVubmVsbGVkIGZp
bmFuY2lhbCBhc3Npc3RhbmNlIGZvciB0aGUgbW90b3IgaW5kdXN0cnkgdG93YXJk
cyBoeWJyaWQgYW5kIGVsZWN0cmljLXZlaGljbGUgcHJvamVjdHMuPC9wPgo8cD5F
YXJsaWVyIHRoaXMgeWVhciBCcm93biBhbmQgTG9yZCBNYW5kZWwtc29uLCB0aGUg
YnVzaW5lc3Mgc2VjcmV0YXJ5LCBzYWlkIHRoZXkgcGxhbm5lZCB0byBtYWtlIEJy
aXRhaW4gYSBjZW50cmUgZm9yIHRoZSBwcm9kdWN0aW9uIG9mIGxvdy1lbWlzc2lv
biB2ZWhpY2xlcy48L3A+CjxwPkxvcmQgQWRvbmlzLCB0aGUgdHJhbnNwb3J0IHNl
Y3JldGFyeSwgYW5kIExvcmQgRHJheXNvbiwgdGhlIHNjaWVuY2UgbWluaXN0ZXIs
IGxhc3Qgd2VlayBhbm5vdW5jZWQgdGhlIGF3YXJkIG9mIGdyYW50cyB1bmRlciBh
ICZwb3VuZDsyNW0gZWxlY3RyaWMgY2FyIHRyaWFsIChzZWUgcGFuZWwgb24gdGhl
IHJpZ2h0KS48L3A+CjxwPkJlc2lkZXMgaW50cm9kdWNpbmcgdGhlIGh5YnJpZCBB
dXJpcywgVG95b3RhIHdpbGwgYWxzbyBwYXJ0aWNpcGF0ZSBpbiB0aGlzIGVsZWN0
cmljLXZlaGljbGUgdHJpYWwuIEEgbnVtYmVyIG9mIHBsdWctaW4gUHJpdXMgcHJv
dG90eXBlcyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSAzNDAtbW9kZWwgdWx0cmEt
bG93LWNhcmJvbiB2ZWhpY2xlIGRlbW9uc3RyYXRpb24gcHJvZ3JhbW1lIHNldCB1
cCBieSB0aGUgVHJhbnNwb3J0IFN0cmF0ZWd5IEJvYXJkLjwvcD4KPHA+VGhlIEF1
cmlzIGh5YnJpZCB3aWxsIG5vdCBoYXZlIGEgcGx1Zy1pbiBmYWNpbGl0eSwgYnV0
IHdpbGwgdXNlIGEgcGV0cm9sIGVuZ2luZSB0byBkcml2ZSB0aGUgY2FyIGluIGNv
bWJpbmF0aW9uIHdpdGggYW4gZWxlY3RyaWMgbW90b3IuIEl0IHdpbGwgc2hhcmUg
dGhlIDEuOGxpdHJlIHBldHJvbCBlbmdpbmUgYW5kIGVsZWN0cmljIG1vdG9yIHdp
dGggdGhlIG5ldyBQcml1cywgd2hpY2ggaGFzIHRoZSBsb3dlc3QgY2FyYm9uIGRp
b3hpZGUgZW1pc3Npb25zIG9mIGFueSBmaXZlLXNlYXRlciBjYXIsIGF0IDg5ZyBw
ZXIga2lsb21ldHJlLCBhbmQgYW4gb2ZmaWNpYWwgYXZlcmFnZSBmdWVsIGNvbnN1
bXB0aW9uIGZpZ3VyZSBvZiA3Mi40bXBnLjwvcD4KPHA+QWx0aG91Z2ggdGhlIEF1
cmlzIGFuZCBQcml1cyBhcmUgYnVpbHQgb24gdGhlIHNhbWUgY2hhc3NpcyBwbGF0
Zm9ybSwgdGhlIEF1cmlzIGlzIHNtYWxsZXIgYW5kIGxpZ2h0ZXIgYW5kIHNvIGlz
IGxpa2VseSB0byBoYXZlIGFuIGV2ZW4gbG93ZXIgY2FyYm9uLWRpb3hpZGUgcmF0
aW5nLjwvcD4KPHA+V2hlbiBpdCBnb2VzIG9uIHNhbGUgZWFybHkgbmV4dCB5ZWFy
LCBpdCBpcyBleHBlY3RlZCB0byBiZSBwcmljZWQgYmVsb3cgdGhlICZwb3VuZDsx
OCwzNzAgUHJpdXMsIGNsb3NlciB0byB0aGUgcmVjZW50bHkgbGF1bmNoZWQgSG9u
ZGEgSW5zaWdodCBIeWJyaWQsIHdoaWNoIHN0YXJ0cyBhdCAmcG91bmQ7MTUsNDkw
LjwvcD4KPHA+QnVybmFzdG9uIG1ha2VzIHRoZSBBdXJpcyBhbmQgdGhlIGxhcmdl
ciBBdmVuc2lzIGluIHRoZWlyIGVudGlyZXR5LCB1c2luZyBlbmdpbmVzIGJ1aWx0
IGF0IERlZXNpZGUsIE5vcnRoIFdhbGVzLCBidXQgdGhlIGh5YnJpZCZyc3F1bztz
IGRyaXZlIHN5c3RlbSAoZW5naW5lLCBtb3RvciwgYmF0dGVyaWVzIGFuZCBlbGVj
dHJvbmljcykgd2lsbCBiZSBpbXBvcnRlZCBmcm9tIEphcGFuLjwvcD4KPHA+VGhp
cyB3aWxsIGJlIHRoZSBmaXJzdCBoeWJyaWQgYmFzZWQgb24gYW4gZXhpc3Rpbmcg
cHJvZHVjdGlvbiBtb2RlbCB0aGF0IFRveW90YSBoYXMgc29sZCBpbiBFdXJvcGUu
PC9wPgo8cD5UaGUgcG9wdWxhcml0eSBvZiB0aGUgUHJpdXMgb24gYm90aCBzaWRl
cyBvZiB0aGUgQXRsYW50aWMgaXMgYXQgbGVhc3QgcGFydGx5IGJlY2F1c2UgaXRz
IGZ1dHVyaXN0aWMgc3R5bGluZyBpZGVudGlmaWVzIGl0IGFzIGEgc3BlY2lhbCBt
b2RlbCAmIzE1MDsgb3duZXJzIGNhbiBiZSBzZWVuIHRvIGJlIGdyZWVuLiBNb3Jl
IHRoYW4gMW0gUHJpdXNlcyBoYXZlIGJlZW4gc29sZCB3b3JsZC13aWRlIHNpbmNl
IGl0IGZpcnN0IGFwcGVhcmVkIGluIDE5OTcuPC9wPgo8cD5JdCByZW1haW5zIHRv
IGJlIHNlZW4gd2hldGhlciBhbiBBdXJpcyBoeWJyaWQgdGhhdCBsb29rcyBsaWtl
IGl0cyBwZXRyb2wgYW5kIGRpZXNlbCBjb3VudGVycGFydHMgd2lsbCBiZSBhIHN1
Y2Nlc3MuIFRoZSBIb25kYSBDaXZpYyBIeWJyaWQgJiMxNTA7IGEgdmVyc2lvbiBv
ZiBhbiBleGlzdGluZyBtb2RlbCAmIzE1MDsgZGlkIG5vdCBzZWxsIGFzIHdlbGwg
YXMgdGhlIFByaXVzLCB3aGljaCBpcyB3aHkgdGhlIG5ldyBJbnNpZ2h0IHdhcyBl
c3RhYmxpc2hlZCBhcyBhIHNlcGFyYXRlIG1vZGVsIHdpdGggYSByZW1hcmthYmxl
IHNpbWlsYXJpdHkgdG8gVG95b3RhJnJzcXVvO3MgdHJlbmRzZXR0ZXIuPC9wPgo8
cD5Ub3lvdGEgaXMgd29ya2luZyBvbiBhIHB1cmUgZWxlY3RyaWMgc21hbGwgY2Fy
LCBiYXNlZCBvbiB0aGUgaVEsIHRoYXQgd2lsbCBiZSByZWNoYXJnZWQgYnkgcGx1
Z2dpbmcgaXQgaW50byBhbiBleHRlcm5hbCBlbGVjdHJpY2l0eSBzdXBwbHksIGJ1
dCB0aGUgY29tcGFueSBjb250aW51ZXMgdG8gZmF2b3VyIHRoZSBwZXRyb2wtZWxl
Y3RyaWMgaHlicmlkIHN5c3RlbSBmb3IgbWFpbnN0cmVhbSBtb2RlbHMuPC9wPgo8
cD5JdCBoYXMgYSB0YXJnZXQgdG8gYnVpbGQgMW0gaHlicmlkcyBhIHllYXIuIFRo
b3NlIHdpbGwgaW5jbHVkZSBhIHdpZGVyIHZhcmlldHkgb2YgTGV4dXMgcHJlbWl1
bSBtb2RlbHMgYW5kIGh5YnJpZCB2ZXJzaW9ucyBvZiB0aGUgVG95b3RhIFlhcmlz
IGFuZCBSYXY0LjwvcD4KPHA+Q3VycmVudCBwbGFucyBmb3IgaHlicmlkIHByb2R1
Y3Rpb24gYXQgQnVybmFzdG9uIGRvIG5vdCBleHRlbmQgYmV5b25kIHRoZSBBdXJp
cy48L3A+CjxwPkZvciBtb3N0IEV1cm9wZWFuIG1hcmtldHMsIGRpZXNlbCBlbmdp
bmVzIGFyZSBhIHN0cm9uZ2VyIHByb3Bvc2l0aW9uIGluIHRoZSBBdmVuc2lzIHNp
emUgYW5kIHByaWNlIGNsYXNzLjwvcD4KPHA+VG95b3RhIGlzIG9uZSBvZiBCcml0
YWluJnJzcXVvO3MgbGFyZ2VzdCBtb3Rvci1pbmR1c3RyeSBlbXBsb3llcnMsIHdp
dGggNCwzMDAgc3RhZmYgYXQgdHdvIHBsYW50cyAmIzE1MDsgQnVybmFzdG9uIGFu
ZCBpdHMgZW5naW5lIHBsYW50IGF0IERlZXNpZGUuPC9wPgo8cD5TbyBmYXIgdGhl
IHBsYW50cyBoYXZlIGVzY2FwZWQgdGhlIHdvcnN0IG9mIHRoZSByZWNlc3Npb24u
IFdoaWxlIHNldmVyYWwgQnJpdGlzaCBmYWN0b3JpZXMgaGF2ZSBoYWQgdG8gY2xv
c2UgZm9yIHNldmVyYWwgbW9udGhzLCB0aGUgVG95b3RhIGZhY2lsaXRpZXMgaGF2
ZSBiZWVuIGFibGUgdG8gbGltaXQgdGhlIGZhbGxvdXQgdG8gYSBzZXJpZXMgb2Yg
d2Vlay1sb25nIHN0b3BwYWdlcywgc2hvcnQtdGltZSB3b3JraW5nIGFuZCBhIDEw
JSBhY3Jvc3MtdGhlLWJvYXJkIHBheSBjdXQuPC9wPgo8cD5MYXN0IHllYXIgVG95
b3RhJnJzcXVvO3MgY2FyIHByb2R1Y3Rpb24gaW4gdGhlIFVLIGZlbGwgYnkgMjAl
IHRvIDIxMywwMDAuIEl0cyBzYWxlcyBvZiBjYXJzIGluIHRoZSBVSyBmZWxsIDEz
JSB0byAxMjQsMzgyLjwvcD4KPHA+QWtpbyBUb3lvZGEsIHdobyByZWNlbnRseSB0
b29rIG92ZXIgYXMgcHJlc2lkZW50IG9mIFRveW90YSwgbGFzdCB3ZWVrIHBsZWRn
ZWQgYSBzd2VlcGluZyByZXN0cnVjdHVyaW5nIG9mIHRoZSBncm91cCB0byByZXR1
cm4gaXQgdG8gcHJvZml0LiBJdCBsb3N0ICQ0LjYgYmlsbGlvbiAoJnBvdW5kOzIu
OCBiaWxsaW9uKSBsYXN0IHllYXIgYW5kIGZvcmVjYXN0cyBhIGJpZ2dlciBkZWZp
Y2l0IHRoaXMgeWVhci48L3A+CjxwPgo8Yj5JTiBUSEUgTUFHQVpJTkU8L2I+Cjxi
cj5Ib3cgdG8gbWFrZSBCcml0YWluIGdyZWVuIGFuZCBjbGVhbiBQYXJ0IG9uZTog
U2VhLCBzaG9yZSBhbmQgYmVhY2ggCjxiPlRIRSBTVU5EQVkgVElNRVMgTUFHQVpJ
TkUgVFJJQUwgSElUUyBUSEUgU1RSRUVUUzwvYj4KPGJyPkVJR0hUIGdyb3VwcyBo
YXZlIGJlZW4gaGFuZGVkICZwb3VuZDsyNW0gYnkgdGhlIERlcGFydG1lbnQgZm9y
IFRyYW5zcG9ydCB0byB0ZXN0LWRyaXZlIGVsZWN0cmljIGNhcnMgb24gb3VyIHN0
cmVldHMuIFRoZSByZWNpcGllbnRzIHJhbmdlIGZyb20gY2FyIGdpYW50cyB0byBn
cm91cHMgbGVkIGJ5IGxvY2FsIGNvdW5jaWxzIGFuZCB0ZWNobm9sb2d5IGNvbXBh
bmllcy4gRm9yZCB3aWxsIHRlc3QgYSBiYXR0ZXJ5LXBvd2VyZWQgdmVyc2lvbiBv
ZiB0aGUgRm9jdXMsIEJyaXRhaW4mcnNxdW87cyBiZXN0LXNlbGxpbmcgY2FyLCB3
aGlsZSBCTVcgd2lsbCBsZWFkIGEgdGVhbSB0ZXN0aW5nIGFuIGVsZWN0cmljIE1p
bmksIGFuZCBUb3lvdGEgd2lsbCB0cnkgb3V0IGEgcGx1Zy1pbiBQcml1cy4gVGhl
IGFpbSBpcyB0byBtYWtlIHVsdHJhLWxvdy1jYXJib24gdmVoaWNsZXMgYW4gZXZl
cnlkYXkgZmVhdHVyZSBvZiBCcml0aXNoIGxpZmUgaW4gbGVzcyB0aGFuIGZpdmUg
eWVhcnMuCjwvcD4KPHA+SW4gYSBzZXBhcmF0ZSBtb3ZlLCBmb3VyIG90aGVyIGNv
bXBhbmllcyAmIzE1MDsgQXNod29vZHMsIEFsbGllZCBWZWhpY2xlcywgTW9kZWMg
YW5kIFNtaXRoIEVsZWN0cmljIFZlaGljbGVzICYjMTUwOyBoYXZlIGJlZW4gY2hv
c2VuIGJ5IHRoZSBEZXBhcnRtZW50IGZvciBUcmFuc3BvcnQgdG8gcHJvdmlkZSBs
b3ctY2FyYm9uIGFuZCBlbGVjdHJpYyB2YW5zIGZvciBnb3Zlcm5tZW50IGFuZCBj
b3VuY2lsIGZsZWV0IHRyaWFscy48L3A+CjxwPlRoZSBmb3VyIHdpbGwgc2hhcmUg
JnBvdW5kOzIwbSBvZiBnb3Zlcm5tZW50IG1vbmV5IHRvIHByb2R1Y2UgYSBmbGVl
dCBvZiAxMDAgdG8gMTUwIHZlaGljbGVzIHRoYXQgd2lsbCBiZSBwdXQgaW50byBz
ZXJ2aWNlIHdpdGggY291bmNpbCBhbmQgZ292ZXJubWVudCBkZXBhcnRtZW50cyB0
byBhc3Nlc3MgdGhlaXIgcHJhY3RpY2FsaXR5IGFuZCBwb3RlbnRpYWwgZm9yIGZ1
ZWwgc2F2aW5ncy4gRXZlbnR1YWxseSwgdGhlc2UgdHJpYWxzIHdpbGwgYmUgdXNl
ZCBhcyB0aGUgZm91bmRhdGlvbiBmb3IgYSBsYXJnZXIsIGdvdmVybm1lbnQtd2lk
ZSBwdXJjaGFzZSBvZiBsb3ctZW1pc3Npb24gdmFucy48L3A+CjwvZGl2Pgo8IS0t
IEVuZCBvZiBwYWdpbmF0aW9uIC0tPgkKPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2
Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC01Ij48L2Rpdj4KPCEtLSBTaG93IHJh
dGluZyBvZiB0aGlzIGFydGljbGUgLS0+CjwhLS0gQ29udGV4dHVhbCBsaW5rcyBN
b2R1bGUgLS0+CjwhLS0gRW5kIENvbnRleHR1YWwgbGlua3MgTW9kdWxlIC0tPgo8
IS0tIEJFR0lOOiBNMTkgLSBBcnRpY2xlIHRvb2xzIC0tPgo8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CjwhLS0KcmFuZG51bSA9IHJhbmRudW07Ci8vZm9y
IHByaW50ZnJpZW5kbHkgcG9wVXAgdG9rZW4gYWRkIGZvciB0d28gY2FzZXMgaWYg
YXJ0aWNsZSBoYXZlIGRpcmVjdCBwcmV2aWV3ZCBhbmQgYW5vdGhlciB1c2luZyBz
ZWN0aW9uCmZ1bmN0aW9uIHByaW50UG9wVXAodXJsLHRva2VuKXsKdmFyIHBhZ2VV
cmw9dXJsOwppZih0b2tlbi5sZW5ndGghPTApewpwYWdlVXJsID0gdXJsKyI/dG9r
ZW49Iit0b2tlbisiJnByaW50PXllcyIrIiZyYW5kbnVtPSIrcmFuZG51bTsKfQpl
bHNleyAKcGFnZVVybCA9IHVybCsiP3ByaW50PXllcyIrIiZyYW5kbnVtPSIrcmFu
ZG51bTsKfQpyZXR1cm4gd2luZG93Lm9wZW4ocGFnZVVybCwncHJpbnQnLCdzY3Jv
bGxiYXJzPXllcyx0b29sYmFyPW5vLHdpZHRoPTY1MCxoZWlnaHQ9NjUwLHJlc2l6
YWJsZT15ZXMnKTsKfQovLy0tPgo8L3NjcmlwdD4KPGRpdiBjbGFzcz0iZ3JleS1s
aW5lIj48L2Rpdj4KPGRpdiBjbGFzcz0iZmxvYXQtbGVmdCBwYWRkaW5nLWJvdHRv
bS01IHBhZGRpbmctdG9wLTgiPgo8c3BhbiBjbGFzcz0iZmxvYXQtbGVmdCBwYWRk
aW5nLWxlZnQtMyI+PHVsPjxsaSBjbGFzcz0icHJpbnQtY29tbWVudCI+PGEgY2xh
c3M9ImxpbmstOTk5IiBocmVmPSJqYXZhc2NyaXB0OjsiIG9uQ2xpY2s9InJldHVy
biBwcmludFBvcFVwKCcvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvdHJh
bnNwb3J0L2FydGljbGU2NTkwOTA3LmVjZScsJycpIj5QcmludDwvYT48L2xpPjwv
dWw+PC9zcGFuPgo8c3BhbiBjbGFzcz0iZmxvYXQtbGVmdCBwYWRkaW5nLWxlZnQt
MTAiPjx1bD48bGkgY2xhc3M9ImNvbW1lbnQtZW1haWwiPjxhIGNsYXNzPSJsaW5r
LTk5OSIgaHJlZj0ibWFpbHRvOj9TdWJqZWN0PUkgc2F3IHRoaXMgb24gVGltZXMg
T25saW5lIGFuZCB0aG91Z2h0IHlvdSBtaWdodCBiZSBpbnRlcmVzdGVkJkJvZHk9
QXQgbGFzdCwgQnJpdGFpbiBpcyByZWFkeSB0byBidWlsZCBoeWJyaWQgY2FycyUw
QSUwQWh0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL2J1c2luZXNzL2lu
ZHVzdHJ5X3NlY3RvcnMvdHJhbnNwb3J0L2FydGljbGU2NTkwOTA3LmVjZSI+RW1h
aWw8L2E+PC9saT48L3VsPjwvc3Bhbj4KPHNwYW4gY2xhc3M9ImZsb2F0LWxlZnQg
cGFkZGluZy1sZWZ0LTEwIj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
dmFyIGFkZHRoaXNfcHViPSJhcnRpY2xldG9sIjs8L3NjcmlwdD4KPGEgaHJlZj0i
aHR0cDovL3d3dy5hZGR0aGlzLmNvbS9ib29rbWFyay5waHA/dj0yMCIgb25tb3Vz
ZW92ZXI9InJldHVybiBhZGR0aGlzX29wZW4odGhpcywgJycsICdbVVJMXScsICdb
VElUTEVdJykiIG9ubW91c2VvdXQ9ImFkZHRoaXNfY2xvc2UoKSIgb25jbGljaz0i
cmV0dXJuIGFkZHRoaXNfc2VuZHRvKCkiPjxpbWcgc3JjPSJodHRwOi8vczcuYWRk
dGhpcy5jb20vc3RhdGljL2J0bi9sZy1zaGFyZS1lbi5naWYiIHdpZHRoPSIxMjUi
IGhlaWdodD0iMTYiIGFsdD0iQm9va21hcmsgYW5kIFNoYXJlIiBzdHlsZT0iYm9y
ZGVyOjAiLz48L2E+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
aHR0cDovL3M3LmFkZHRoaXMuY29tL2pzLzIwMC9hZGR0aGlzX3dpZGdldC5qcyI+
PC9zY3JpcHQ+PC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2
Pgo8IS0tIDxkaXYgY2xhc3M9InBhZGRpbmctYm90dG9tLTEwIj48L2Rpdj4gLS0+
CjwhLS0gRU5EOiBNMTkgLSBBcnRpY2xlIHRvb2xzIC0tPgo8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CnZhciBkaXNwbGF5QmVoYXZpb3VyYWxOYXYgPSB0
cnVlOwo8L3NjcmlwdD4KPCEtLSBCRUdJTjogTTk0IC0gR29vZ2xlIEFkcyAtLT4J
CjwhLS0gQkVHSU46IE1vZHVsZSAtIEFkdmVydDpUb3AgLS0+CjwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9F
TiI+CjxIVE1MPgo8SEVBRD4KPCEtLSBCRUdJTjogTTk0IC0gR29vZ2xlIEFkcyAt
LT4KPCEtLVdoZW4gY2hlY2tlZCwgY2F1c2VzIHRoZSBhZCBub3QgdG8gYmUgZGlz
cGxheWVkIC0tPgo8ZGl2IGlkPSJnb29nbGUtYWQtYXJ0Ij4gCjwhLS0gdGhpcyB3
aWxsIGJlIHBvcHVsYXRlZCBmcm9tIENNUyAtLT4KPHNjcmlwdCBsYW5ndWFnZT0i
SmF2YVNjcmlwdCI+CjwhLS0KZnVuY3Rpb24gZ29vZ2xlX2FkX3JlcXVlc3RfZG9u
ZShnb29nbGVfYWRzKSB7Ci8qCiogVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJlZCBh
bmQgaXMgdXNlZCB0byBkaXNwbGF5CiogdGhlIGFkcyB0aGF0IGFyZSByZXR1cm5l
ZCBmcm9tIHRoZSBKYXZhU2NyaXB0CiogcmVxdWVzdC4gWW91IHNob3VsZCBtb2Rp
ZnkgdGhlIGRvY3VtZW50LndyaXRlCiogY29tbWFuZHMgc28gdGhhdCB0aGUgSFRN
TCB0aGV5IHdyaXRlIG91dCBmaXRzCiogd2l0aCB5b3VyIGRlc2lyZWQgYWQgbGF5
b3V0LgoqLwp2YXIgcyA9ICcnOwp2YXIgaTsKLyoKKiBWZXJpZnkgdGhhdCB0aGVy
ZSBhcmUgYWN0dWFsbHkgYWRzIHRvIGRpc3BsYXkuCiovCmlmIChnb29nbGVfYWRz
Lmxlbmd0aCA9PSAwKQpyZXR1cm47Ci8qCiogSWYgYW4gaW1hZ2Ugb3IgRmxhc2gg
YWQgaXMgcmV0dXJuZWQsIGRpc3BsYXkgdGhhdCBhZC4KKiBJZiBhIHJpY2ggbWVk
aWEgYWQgaXMgcmV0dXJuZWQsIGRpc3BsYXkgdGhhdCBhcyAiYXMgaXMuIgoqIE90
aGVyd2lzZSwgYnVpbGQgYSBzdHJpbmcgY29udGFpbmluZyBhbGwgb2YgdGhlIGFk
cyBhbmQKKiB0aGVuIHVzZSBhIGRvY3VtZW50LndyaXRlKCkgY29tbWFuZCB0byBw
cmludCB0aGF0IHN0cmluZy4KKi8KaWYgKGdvb2dsZV9hZHNbMF0udHlwZSA9PSAi
dGV4dCIpIHsKcyArPSAnPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O2ZhY2U9
ImFyaWFsLHNhbnMtc2VyaWYiO2NvbG9yPSIjMDAwMDAwIjtmb250LXNpemU6MTFw
eCI+QWRzIGJ5IEdvb2dsZTwvZGl2Pic7CmlmIChnb29nbGVfYWRzLmxlbmd0aCA9
PSAxKSB7Ci8qCiogUGFydG5lcnMgc2hvdWxkIGFkanVzdCB0ZXh0IHNpemVzCiog
c28gYWRzIG9jY3VweSB0aGUgbWFqb3JpdHkgb2YgYWQgc3BhY2UuCiovCnMgKz0g
JzxiciAvPjxhIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiIGhyZWY9Iicg
KyBnb29nbGVfYWRzWzBdLnVybCArICciICcgKwonb25tb3VzZW91dD0id2luZG93
LnN0YXR1cz1cJ1wnIiAnICsKJ29ubW91c2VvdmVyPSJ3aW5kb3cuc3RhdHVzPVwn
Z28gdG8gJyArCmdvb2dsZV9hZHNbMF0udmlzaWJsZV91cmwgKyAnXCc7cmV0dXJu
IHRydWU7Ij4gJysnIDxoMiBjbGFzcz0ic3ViLWhlYWRpbmctcHVmZiBjb2xvci0w
NmMgcGFkZGluZy10b3AtNSBsaW5rLTA2YyIgc3R5bGU9InRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7Ij4nICsKJzxiPicgKyBnb29nbGVfYWRzWzBdLmxpbmUxICsg
JzwvYj48YnIgLz48L2gyPicgKyc8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxM3B4
O2xpbmUtaGVpZ2h0OjE0cHg7Y29sb3I6IzAwMDAwMDsiPicgKwpnb29nbGVfYWRz
WzBdLmxpbmUyICsgJzwvc3Bhbj4nICsnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog
MTNweDtsaW5lLWhlaWdodDoxNHB4O2NvbG9yOiMwMDAwMDA7Ij4nKwpnb29nbGVf
YWRzWzBdLmxpbmUzICsgJzxiciAvPjwvc3Bhbj4nICsKJzxzcGFuIHN0eWxlPSJj
b2xvcjojOTk5OTk5OyI+JyArCmdvb2dsZV9hZHNbMF0udmlzaWJsZV91cmwgKyAn
PC9zcGFuPjwvYT48YnIgLz4nCn0KZWxzZSBpZiAoZ29vZ2xlX2Fkcy5sZW5ndGgg
PiAxKSB7Ci8qCiogRm9yIHRleHQgYWRzLCBhcHBlbmQgZWFjaCBhZCB0byB0aGUg
c3RyaW5nLgoqLwkKZm9yKGk9MDsgaSA8IGdvb2dsZV9hZHMubGVuZ3RoOyArK2kp
IHsKcyArPSAnPGJyIC8+PGEgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lOyIg
aHJlZj0iJyArIGdvb2dsZV9hZHNbaV0udXJsICsgJyIgJyArCidvbm1vdXNlb3V0
PSJ3aW5kb3cuc3RhdHVzPVwnXCciICcgKwonb25tb3VzZW92ZXI9IndpbmRvdy5z
dGF0dXM9XCdnbyB0byAnICsKZ29vZ2xlX2Fkc1tpXS52aXNpYmxlX3VybCArICdc
JztyZXR1cm4gdHJ1ZTsiPiAnKycgPGgyIGNsYXNzPSJzdWItaGVhZGluZy1wdWZm
IGNvbG9yLTA2YyBwYWRkaW5nLXRvcC01IGxpbmstMDZjIiBzdHlsZT0idGV4dC1k
ZWNvcmF0aW9uOnVuZGVybGluZTsiPicgKwonPGI+JyArIGdvb2dsZV9hZHNbaV0u
bGluZTEgKyAnPC9iPjxiciAvPjwvaDI+JyArJzxzcGFuIHN0eWxlPSJmb250LXNp
emU6IDEzcHg7bGluZS1oZWlnaHQ6MTRweDtjb2xvcjojMDAwMDAwOyI+JyArCmdv
b2dsZV9hZHNbaV0ubGluZTIgKyAnPC9zcGFuPicgKyc8c3BhbiBzdHlsZT0iZm9u
dC1zaXplOiAxM3B4O2xpbmUtaGVpZ2h0OjE0cHg7Y29sb3I6IzAwMDAwMDsiPicr
Cmdvb2dsZV9hZHNbaV0ubGluZTMgKyAnPGJyIC8+PC9zcGFuPicgKwonPHNwYW4g
c3R5bGU9ImNvbG9yOiM5OTk5OTk7Ij4nICsKZ29vZ2xlX2Fkc1tpXS52aXNpYmxl
X3VybCArICc8L3NwYW4+PC9hPjxiciAvPic7Cn0KfQp9CmRvY3VtZW50LndyaXRl
KHMpOwpyZXR1cm47Cn0KLy9nb29nbGVfYWRfd2lkdGggPSAnMzM2JzsKLy9nb29n
bGVfYWRfaGVpZ2h0ID0gJzI4MCc7Cmdvb2dsZV9hZF9jbGllbnQgPSAnY2EtdGlt
ZXNncm91cGRpZ2l0YWxfaW5kZXhfaHRtbCc7IC8vIHN1YnN0aXR1dGUgeW91ciBj
bGllbnRfaWQKZ29vZ2xlX2FkX2NoYW5uZWwgPSAnYnVzaW5lc3MnOwpnb29nbGVf
YWRfdHlwZSA9ICd0ZXh0JzsgLy8gdHlwZSBvZiBhZHMgdG8gZGlzcGxheQpnb29n
bGVfYWRfb3V0cHV0ID0gJ2pzJzsKZ29vZ2xlX21heF9udW1fYWRzID0gJzMnOwpn
b29nbGVfbGFuZ3VhZ2UgPSAnZW4nOwpnb29nbGVfZW5jb2RpbmcgPSAndXRmOCc7
Cmdvb2dsZV9zYWZlID0gJ2hpZ2gnOwpnb29nbGVfYWR0ZXN0ID0gJ29mZic7Ci8v
IC0tPgo8L3NjcmlwdD4KPCEtLQovKgoqIFRoZSBKYXZhU2NyaXB0IHJldHVybmVk
IGZyb20gdGhlIGZvbGxvd2luZyBwYWdlIHVzZXMKKiB0aGUgcGFyYW1ldGVyIHZh
bHVlcyBhc3NpZ25lZCBhYm92ZSB0byBwb3B1bGF0ZSBhbgphcnJheQoqIG9mIGFk
IG9iamVjdHMuIE9uY2UgdGhhdCBhcnJheSBoYXMgYmVlbiBwb3B1bGF0ZWQsCiog
dGhlIEphdmFTY3JpcHQgd2lsbCBjYWxsIHRoZSBnb29nbGVfYWRfcmVxdWVzdF9k
b25lCiogZnVuY3Rpb24gdG8gZGlzcGxheSB0aGUgYWRzLgoqLwotLT4KPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0naHR0cDovL3BhZ2VhZDIuZ29v
Z2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9zaG93X2Fkcy5qcycgPgo8L3Njcmlw
dD4KPC9kaXY+CjwhLS0gRU5EOiBNOTQgLSBHb29nbGUgQWRzIC0tPgo8L0hFQUQ+
CjwvSFRNTD4KPCEtLSBFTkQ6IE1vZHVsZSAtIEFkdmVydDpUb3AgLS0+CjwhLS0g
RU5EOiBNOTQgLSBHb29nbGUgQWRzIC0tPgo8ZGl2IGNsYXNzPSJwdWZmLXRvcCI+
CjxkaXYgY2xhc3M9InB1ZmYtc2lkZXMtMzg1Ij4KPGRpdiBjbGFzcz0icHVmZi1w
YWRkaW5nIj4KPHVsIGNsYXNzPSJwYWRkaW5nLWJvdHRvbS0xMCI+CjwhLS0gRm9y
IHRvcGljcyBpbiB0aGlzIFNlY3Rpb24gLS0+CjwvdWw+CjwhLS0gQWxzbyBpbiBm
b3IgUGFyZW50IFNlY3Rpb24gLS0+CQo8aDMgY2xhc3M9InNlY3Rpb24taGVhZGlu
ZyI+QWxzbyBpbiBUcmFuc3BvcnQgPC9oMz4KPGRpdiBjbGFzcz0id2lkdGgtMTAw
LXBlcmNlbnQiPgo8dWwgY2xhc3M9ImNoZXZyb24tbGlzdCBjaGV2cm9uLWJsdWUi
Pgo8bGk+PGEgY2xhc3M9ImxpbmstNjY2IiBocmVmPScvdG9sL2J1c2luZXNzL2lu
ZHVzdHJ5X3NlY3RvcnMvdHJhbnNwb3J0L2FydGljbGU2NzE4NjUxLmVjZScgLz5Q
ZW5zaW9uIGZ1bmQgYmFpbHMgb3V0IEJyaXRpc2ggQWlyd2F5cyB3aXRoICYjMTYz
OzMzMG0gaW5qZWN0aW9uIHRvIGtlZXAgaXQgaW4gdGhlIGFpcjwvYT48L2xpPgo8
bGk+PGEgY2xhc3M9ImxpbmstNjY2IiBocmVmPScvdG9sL2J1c2luZXNzL2NvbHVt
bmlzdHMvYXJ0aWNsZTY3MTg2NjIuZWNlJyAvPkJBIGZ1bmQgbWFrZXMgYSBjYWxj
dWxhdGVkIGdhbWJsZTwvYT48L2xpPgo8bGk+PGEgY2xhc3M9ImxpbmstNjY2IiBo
cmVmPScvdG9sL2J1c2luZXNzL2NvbHVtbmlzdHMvYXJ0aWNsZTY3MTcyOTUuZWNl
JyAvPkJyb3duIHJvbGxzIHVwIHRoZSB3ZWxjb21lIG1hdCBmb3IgdG91cmlzdHM8
L2E+PC9saT4KPC91bD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyLXNpbXBsZSI+
PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctYm90dG9tLTEwIj48L2Rpdj4KPCEt
LSBBbHNvIGluIGZvciBHcmFuZCBQYXJlbnQgU2VjdGlvbiAtLT4KPGgzIGNsYXNz
PSJzZWN0aW9uLWhlYWRpbmciPkFsc28gaW4gSW5kdXN0cnkgU2VjdG9ycyA8L2gz
Pgo8ZGl2IGNsYXNzPSJ3aWR0aC0xMDAtcGVyY2VudCI+Cjx1bCBjbGFzcz0iY2hl
dnJvbi1saXN0IGNoZXZyb24tYmx1ZSI+CjxsaT48YSBjbGFzcz0ibGluay02NjYi
IGhyZWY9Jy90b2wvYnVzaW5lc3MvaW5kdXN0cnlfc2VjdG9ycy9hcnRpY2xlNjcx
ODYzMi5lY2UnIC8+R2VuZXJhbCBFbGVjdHJpYyBwcm9maXRzIGhhbHZlIGFzIGhl
YXZ5IGluZHVzdHJpYWwgdW5pdHMgZmVlbCB3ZWlnaHQgb2YgcmVjZXNzaW9uPC9h
PjwvbGk+CjxsaT48YSBjbGFzcz0ibGluay02NjYiIGhyZWY9Jy90b2wvYnVzaW5l
c3MvaW5kdXN0cnlfc2VjdG9ycy9hcnRpY2xlNjcxODYzNS5lY2UnIC8+U21pdGgg
QmFybmV5IHNhbGUgYWxsb3dzIENpdGlncm91cCB0byBzaG93IHByb2ZpdDwvYT48
L2xpPgo8bGk+PGEgY2xhc3M9ImxpbmstNjY2IiBocmVmPScvdG9sL2J1c2luZXNz
L2luZHVzdHJ5X3NlY3RvcnMvaW5kdXN0cmlhbHMvYXJ0aWNsZTY3MTg2NDMuZWNl
JyAvPlJlZHVuZGFuY3kgZmVhcnMgcmlzZSBhcyBSaXBwbGV3b29kIGV5ZXMgVmF1
eGhhbGw8L2E+PC9saT4KPC91bD4KPC9kaXY+CQo8ZGl2IGNsYXNzPSJjbGVhci1z
aW1wbGUiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS0xMCI+PC9k
aXY+CjwhLS0gTGFzdCByZWFkIC0tPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIt
c2ltcGxlIj48L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy1ib3R0b20tMTAiPjwv
ZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRp
diBjbGFzcz0icHVmZi10b3AiPgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+Cjwv
ZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS0xNSI+PC9kaXY+CjwhLS0g
QkVHSU46U2VyZW5kaXBpdHkgQ2VsbCAtLT4KPCEtLSBFTkQ6U2VyZW5kaXBpdHkg
Q2VsbCAtLT4JCjwvZGl2Pgo8ZGl2IGlkPSJyZWdpb24tY29sdW1uMi1sYXlvdXQy
Ij4KPCEtLSBTZWN0aW9uIEVkaXRvciBDaG9pY2UgbW9kdWxlIC0tPgkKPCEtLUNv
bW1lcmNpYWwgQWQgUHVibGlzaGVkIERhdGUgOiBGZWIgMywgMjAwNyA0OjM2IFBN
LS0+CjwhLS1CdXNpbmVzcyBMb2dpYyBmb3IgU2VjdGlvbiBFZGl0b3IgUGlja3Mg
b25seSBvbiBBcnRpY2xlIFBhZ2VzIC0tPgo8IS0tIEVuZCBCdXNpbmVzcyBMb2dp
YyBmb3IgU2VjdGlvbiBFZGl0b3IgUGlja3Mgb25seSBvbiBBcnRpY2xlIFBhZ2Vz
IC0tPgo8IS0tIEJFR0lOOiBNNjggU2VjdGlvbiBFZGl0b3IncyBQaWNrcyAtLT4K
PGRpdiBpZD0iZWRpdG9ycy1ib3giPgo8IS0td2hlbiBBcnRpY2xlIE5vdCBBdHRh
Y2hlZCBNb2R1bGUgSGFlZGxpbmUgZG8nbnQgZGlzcGxheSAtLT4KPGgzIGNsYXNz
PSJzZWN0aW9uLWhlYWRpbmcgd2hpdGUtbGluZSI+PHNwYW4gY2xhc3M9ImNvbG9y
LWY4ZjFkOCI+VGltZXMgUmVjb21tZW5kczwvc3Bhbj48L2gzPgo8dWwgY2xhc3M9
ImNoZXZyb24tbGlzdCBjaGV2cm9uLXdoaXRlIHBhZGRpbmctdG9wLTUiPgo8bGk+
PGEgY2xhc3M9ImxpbmstZmZmIiBocmVmPScvdG9sL2J1c2luZXNzL2luZHVzdHJ5
X3NlY3RvcnMvYmFua2luZ19hbmRfZmluYW5jZS9hcnRpY2xlNjQ2MDUyMi5lY2Un
PgpDJmFtcDtHIGF4ZWQgLSAxLDY2MCBqb2JzIHRvIGJlIGxvc3Q8L2E+PC9saT4K
PGxpPjxhIGNsYXNzPSJsaW5rLWZmZiIgaHJlZj0nL3RvbC9idXNpbmVzcy9lY29u
b21pY3MvYXJ0aWNsZTY0NjEyODYuZWNlJz4KVUsgaG91c2UgcHJpY2VzIHJpc2Ug
MS4xJSBhcyBidXllcnMgcmV0dXJuPC9hPjwvbGk+CjxsaT48YSBjbGFzcz0ibGlu
ay1mZmYiIGhyZWY9Jy90b2wvYnVzaW5lc3MvbWFya2V0cy9hcnRpY2xlNjQ2MDgy
Ni5lY2UnPgpNaXhlZCByZWFjdGlvbiB0byBVUyBiYW5rcyByZXBheWluZyBiYWls
b3V0czwvYT48L2xpPgo8L3VsPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwv
ZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS0xNSI+PC9kaXY+CjwhLS0g
RU5EOiBNNjggU2VjdGlvbiBFZGl0b3IncyBQaWNrcyAtLT4KPCEtLSAKLS0+Cjwh
LS0gQkVHSU46IEhlYWRsaW5lcyBJbiBicmllZiBNb2R1bGUgLS0+CjwhLS0gRU5E
OiBIZWFkbGluZXMgSW4gYnJpZWYgTW9kdWxlIC0tPgo8IS0tSm91cm5hbGlzdCBw
cm9maWxlIG1vZHVsZSAtLT4KPCEtLSBCRUdJTjogTWlkZGxlIEluaGVyaXRhbmNl
IEdyaWRzIC0tPgo8IS0tIEJFR0lOOk1pZGRsZSBJbmhlcml0ZW5jZSBUb3AgR3Jp
ZCAtLT4KPCEtLVB1ZmYgTW9kdWxlIFB1Ymxpc2hlZCBEYXRlIDogU2VwIDE2LCAy
MDA3IDU6MDggQU0tLT4KPGZvcm0gbmFtZT0idG9scHVmZjAiIG1ldGhvZD0icG9z
dCIgYWN0aW9uPSIiPgo8ZGl2IGNsYXNzPSJ3aWR0aC0xODUgZmxvYXQtbGVmdCI+
CjxkaXYgY2xhc3M9InB1ZmYtY29udGFpbmVyIj4KPGRpdiBjbGFzcz0icHVmZi10
b3Atbm8tcGFkZGluZyI+CjxkaXYgY2xhc3M9InB1ZmYtc2lkZXMiPgo8ZGl2IGNs
YXNzPSJwdWZmLXBhZGRpbmciPgo8aDMgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+
TWV0cm9uZXQgbWVzczwvaDM+CQo8ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUgcGFk
ZGluZy10b3AtMyI+PC9kaXY+CjxkaXYgY2xhc3M9ImZsb2F0LWxlZnQiPgo8YSBo
cmVmPSIvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvdHJhbnNwb3J0L2Fy
dGljbGUyMTE1MTU1LmVjZSI+CjxpbWcgc3JjPSIvbXVsdGltZWRpYS9hcmNoaXZl
LzAwMjA4L01ldHJvbmV0X3JhaWx3YXlfXzIwODk4N3AuanBnIiBjbGFzcz0iZGlz
cGxheS1ibG9jayIgd2lkdGg9IjE2NSIgaGVpZ2h0PSI3MCIgYm9yZGVyPSIwIiBh
bHQ9J01ldHJvbmV0IHJhaWx3YXkgZW5naW5lZXJzIGhhcmQgYXQgd29yayBkZWVw
IHVuZGVyZ3JvdW5kIG9uIHRoZSBXYXRlcmxvbyBhbmQgQ2l0eSBMaW5lICcvPgo8
L2E+CjwvZGl2PgkKPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIHBhZGRpbmctdG9w
LTMiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUgcGFkZGluZy10b3At
NSI+PC9kaXY+CjxoMiBjbGFzcz0ic3ViLWhlYWRpbmctcHVmZiI+PGEgY2xhc3M9
ImxpbmstMDZjIiBocmVmPScvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMv
dHJhbnNwb3J0L2FydGljbGUyMTE1MTU1LmVjZSc+CkRvd24gdGhlIFR1YmUJCjwv
YT48L2gyPiAKPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIHBhZGRpbmctdG9wLTMi
PjwvZGl2Pgo8cCBjbGFzcz0ic21hbGwiPlJldmlzaXQgdGhlIHN0b3J5IG9mIE1l
dHJvbmV0J3MgZmFsbDwvcD4gCjxkaXYgY2xhc3M9ImNsZWFyLXNpbXBsZSBwYWRk
aW5nLXRvcC0zIj48L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIHBhZGRp
bmctdG9wLTMiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2
Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIi
PjwvZGl2Pgo8L2Zvcm0+CjwhLS1JLUZyYW1lIFB1Ymxpc2hlZCBEYXRlIDogQXVn
IDI2LCAyMDA4IDM6NDMgUE0tLT4KPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIiPjwh
LS0gQnVnIGZpeCBmb3IgbW96aWxhIEJyb3dzZXIgLS0+CjxpZnJhbWUgc3JjPSdo
dHRwOi8vbW9ybmluZ3N0YXIudGltZXNvbmxpbmUuY28udWsvdGltZXNvbmxpbmUv
dGltZXNvbmxpbmUuanNwP3BhZ2U9cXVvdGUtc2VhcmNoLXNsaW0nIHNjcm9sbGlu
Zz0nbm8nIHdpZHRoPScxODUnIGFsaWduPSdsZWZ0JyB2YWxpZ249J3RvcCcgaGVp
Z2h0PScxNDEnIGZyYW1lYm9yZGVyPScwJyBtYXJnaW5oZWlnaHQ9JzAnIG1hcmdp
bndpZHRoPScwJyB0aXRsZT0nJyA+IApZb3VyIEJyb3dzZXIgZG9lc24ndCBzdXBw
b3J0IElubGluZSBmcmFtZXMKPC9pZnJhbWU+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJj
bGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctYm90dG9tLTE1Ij48L2Rp
dj4KPCEtLUktRnJhbWUgUHVibGlzaGVkIERhdGUgOiBEZWMgMjEsIDIwMDYgMjow
NiBQTS0tPgo8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+PCEtLSBCdWcgZml4IGZv
ciBtb3ppbGEgQnJvd3NlciAtLT4KPGlmcmFtZSBzcmM9J2h0dHA6Ly9tb3JuaW5n
c3Rhci50aW1lc29ubGluZS5jby51ay90aW1lc29ubGluZS90aW1lc29ubGluZS5q
c3A/cGFnZT13b3JsZC1tYXJrZXRzLXNsaW0nIHNjcm9sbGluZz0nbm8nIHdpZHRo
PScxODUnIGFsaWduPSdsZWZ0JyB2YWxpZ249J3RvcCcgaGVpZ2h0PScyMjgnIGZy
YW1lYm9yZGVyPSdubycgbWFyZ2luaGVpZ2h0PScwJyBtYXJnaW53aWR0aD0nMCcg
dGl0bGU9JycgPiAKWW91ciBCcm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBJbmxpbmUg
ZnJhbWVzCjwvaWZyYW1lPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2
Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS0xNSI+PC9kaXY+CjwhLS0gRU5E
Ok1pZGRsZSBJbmhlcml0ZW5jZSBUb3AgR3JpZCAtLT4KPCEtLSBCRUdJTjpNaWRk
bGUgSW5oZXJpdGVuY2UgTWlkZGxlIEdyaWQgLS0+CjwhLS1JLUZyYW1lIFB1Ymxp
c2hlZCBEYXRlIDogTm92IDEyLCAyMDA4IDQ6MDEgUE0tLT4KPGRpdiBjbGFzcz0i
dGV4dC1jZW50ZXIiPjwhLS0gQnVnIGZpeCBmb3IgbW96aWxhIEJyb3dzZXIgLS0+
CjxpZnJhbWUgc3JjPSdodHRwOi8vZXh0cmFzLnRpbWVzb25saW5lLmNvLnVrL2h0
bWwvcnNzZmVlZF9tYXJrZXR3YXRjaC5odG1sJyBzY3JvbGxpbmc9J25vJyB3aWR0
aD0nMTg1JyBhbGlnbj0nbGVmdCcgdmFsaWduPSd0b3AnIGhlaWdodD0nMjcyJyBm
cmFtZWJvcmRlcj0nMCcgbWFyZ2luaGVpZ2h0PScwJyBtYXJnaW53aWR0aD0nMCcg
dGl0bGU9JycgPiAKWW91ciBCcm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCBJbmxpbmUg
ZnJhbWVzCjwvaWZyYW1lPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2
Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS0xNSI+PC9kaXY+CjwhLS1QdWZm
IE1vZHVsZSBQdWJsaXNoZWQgRGF0ZSA6IEp1bCAxNCwgMjAwOCA1OjI5IFBNLS0+
Cjxmb3JtIG5hbWU9InN1cGVyUHVmZkZvcm0wIiBhY3Rpb249IiIgbWV0aG9kPSJw
b3N0Ij4KPCEtLSBCRUdJTjogTTU3IC0gUHVmZiAmIFN1cGVyIFB1ZmYgKE5hcnJv
dykgLS0+CjxkaXYgY2xhc3M9IndpZHRoLTE4NSI+CjxkaXYgY2xhc3M9InB1ZmYt
Y29udGFpbmVyIj4KPGRpdiBjbGFzcz0icHVmZi10b3AiPgo8ZGl2IGNsYXNzPSJw
dWZmLXNpZGVzIj4KPGRpdiBjbGFzcz0icHVmZi1wYWRkaW5nIj4KPGgzIGNsYXNz
PSJzZWN0aW9uLWhlYWRpbmciPk1vbmV5IENlbnRyYWw8L2gzPgkKPGRpdiBjbGFz
cz0iZmxvYXQtbGVmdCI+PGEgaHJlZj0iaHR0cDovL3RpbWVzYnVzaW5lc3MudHlw
ZXBhZC5jb20vbW9uZXlfd2VibG9nLzIwMDkvMDcvdGhlLXRlbi1wZW9wbGUtd2hv
LWhhdmUtbWFkZS10aGUtbW9zdC1tb25leS1mcm9tLWRpdm9yY2UuaHRtbCI+PGlt
ZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA1ODkvR3V5X1JpdGNoaWVfNTg5
NTkwYS5qcGciIHdpZHRoPSIxNjUiIGhlaWdodD0iMTY1IiBhbHQ9J0d1eSBSaXRj
aGllJyAvPjwvYT48L2Rpdj4KPCEtLSBTaG93aW5nIEltYWdlIC0tPgkKPGRpdiBj
bGFzcz0iY2xlYXItc2ltcGxlIHBhZGRpbmctdG9wLTMiPjwvZGl2PgkKPGgyIGNs
YXNzPSJzdWItaGVhZGluZy1wdWZmIj48YSBjbGFzcz0ibGluay0wNmMiCmhyZWY9
Imh0dHA6Ly90aW1lc2J1c2luZXNzLnR5cGVwYWQuY29tL21vbmV5X3dlYmxvZy8y
MDA5LzA3L3RoZS10ZW4tcGVvcGxlLXdoby1oYXZlLW1hZGUtdGhlLW1vc3QtbW9u
ZXktZnJvbS1kaXZvcmNlLmh0bWwiPgpUaGUgMTAgcmljaGVzdCBkaXZvcmNlZXMg
aW4gdGhlIFVLIAo8L2E+CjwvaDI+CjxkaXYgY2xhc3M9ImNsZWFyLXNpbXBsZSBw
YWRkaW5nLXRvcC0zIj48L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIHBh
ZGRpbmctdG9wLTMiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS01
Ij48L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+
CjwvZGl2PgkKPGRpdiBjbGFzcz0icHVmZi10b3AiPgo8ZGl2IGNsYXNzPSJwdWZm
LXNpZGVzIj4KPGRpdiBjbGFzcz0icHVmZi1wYWRkaW5nIj4KPGgzIGNsYXNzPSJz
ZWN0aW9uLWhlYWRpbmciPjwvaDM+CQo8ZGl2IGNsYXNzPSJmbG9hdC1sZWZ0Ij48
YSBocmVmPSJodHRwOi8vdGltZXNidXNpbmVzcy50eXBlcGFkLmNvbS9tb25leV93
ZWJsb2cvMjAwOS8wNy90ZW4tY2hlYXBlc3QtY29zdGFsLXRvd25zLmh0bWwiPjxp
bWcgc3JjPSIvbXVsdGltZWRpYS9hcmNoaXZlLzAwMzY4L0NhbXBlcl92YW5fbWFu
X1dlZWtfMzY4NDEycC5qcGciIHdpZHRoPSIxNjUiIGhlaWdodD0iNzAiIGFsdD0n
Q2FtcGVyIHZhbiBtYW4gV2VlayAyOiBCcmlkbGluZ3RvbicvPjwvYT48L2Rpdj4K
PCEtLSBTaG93aW5nIEltYWdlIC0tPgkKPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxl
IHBhZGRpbmctdG9wLTMiPjwvZGl2PgkKPGgyIGNsYXNzPSJzdWItaGVhZGluZy1w
dWZmIj48YSBjbGFzcz0ibGluay0wNmMiCmhyZWY9Imh0dHA6Ly90aW1lc2J1c2lu
ZXNzLnR5cGVwYWQuY29tL21vbmV5X3dlYmxvZy8yMDA5LzA3L3Rlbi1jaGVhcGVz
dC1jb3N0YWwtdG93bnMuaHRtbCI+ClRoZSAxMCBtb3N0IGFmZm9yZGFibGUgY29h
c3RhbCB0b3ducyB0byBidXkgYSBob21lCjwvYT4KPC9oMj4KPGRpdiBjbGFzcz0i
Y2xlYXItc2ltcGxlIHBhZGRpbmctdG9wLTMiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJj
bGVhci1zaW1wbGUgcGFkZGluZy10b3AtMyI+PC9kaXY+Cjx1bCBjbGFzcz0iY2hl
dnJvbi1saXN0IGNoZXZyb24tYmx1ZSBwYWRkaW5nLXRvcC01Ij4KPC91bD4KPHVs
IGNsYXNzPSJjaGV2cm9uLWxpc3QgY2hldnJvbi1ibHVlIHBhZGRpbmctdG9wLTUi
Pgo8bGk+PGEgY2xhc3M9ImxpbmstNjY2IgpocmVmPSIgaHR0cDovL3RpbWVzYnVz
aW5lc3MudHlwZXBhZC5jb20vbW9uZXlfd2VibG9nLyI+TW9uZXkgQ2VudHJhbDwv
YT48L2xpPgo8L3VsPgo8L3VsPgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRvbS01
Ij48L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+
CjwvZGl2PgkKPC9kaXY+CjwvZGl2PgkKPC9mb3JtPgo8IS0tIEVORDpNaWRkbGUg
SW5oZXJpdGVuY2UgTWlkZGxlIEdyaWQgLS0+CjwhLS0gQkVHSU46TWlkZGxlIElu
aGVyaXRlbmNlIEJvdHRvbSBHcmlkIC0tPgo8IS0tIEJFR0lOOiBNODAgLSBDdXN0
b20gSFRNTCBQdWJsaXNoZWQgRGF0ZSA6IE1hciAxMCwgMjAwOSA2OjI0IFBNIC0t
Pgo8IS0tIEJFR0lOOiBNODAgLSBDdXN0b20gSFRNTCAtLT4KPCEtLSBCRUdJTjog
TTgwIC0gQ3VzdG9tIEhUTUwgLS0+CjxkaXYgY2xhc3M9IndpZHRoLTEwMC1wZXJj
ZW50IHBhZGRpbmctYm90dG9tLTEwIj4gCjxkaXYgY2xhc3M9ImJnLWZmZiI+CQo8
cCBjbGFzcz0ic21hbGwiPjwhLS0gQkVHSU46IE01NyAtIFB1ZmYgJmFtcDsgU3Vw
ZXIgUHVmZiAoTmFycm93KSAtLT4KPGRpdiBjbGFzcz0id2lkdGgtMTg1IGZsb2F0
LXJpZ2h0Ij4KPGRpdiBjbGFzcz0icHVmZi1jb250YWluZXIiPgo8ZGl2IGNsYXNz
PSJwdWZmLXRvcCI+CjxkaXYgY2xhc3M9InB1ZmYtc2lkZXMiPgo8ZGl2IGNsYXNz
PSJwdWZmLXBhZGRpbmciPgo8aDMgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+VHJh
bnNwb3J0IGpvYnM8L2gzPiAKPCEtLSBCRUdJTjogTGlzdCBvZiBsaW5rcyAtLT4K
PHVsIGNsYXNzPSJjaGV2cm9uLWxpc3QgY2hldnJvbi1ibHVlIHBhZGRpbmctdG9w
LTMiPgo8bGk+PGEgY2xhc3M9ImxpbmstNjY2IiBocmVmPSJodHRwOi8vam9icy50
aW1lc29ubGluZS5jby51ay9pdC1kaXJlY3Rvci1qb2JzLmh0bWwiPklUIERpcmVj
dG9yIEpvYnM8L2E+PC9saT4KPGxpPjxhIGNsYXNzPSJsaW5rLTY2NiIgaHJlZj0i
aHR0cDovL2pvYnMudGltZXNvbmxpbmUuY28udWsvaXQtbWFuYWdlci1qb2JzLmh0
bWwiPklUIE1hbmFnZXIgSm9iczwvYT48L2xpPgo8bGk+PGEgY2xhc3M9Imxpbmst
NjY2IiBocmVmPSJodHRwOi8vam9icy50aW1lc29ubGluZS5jby51ay9vcGVyYXRp
b25zLWRpcmVjdG9yLWpvYnMuaHRtbCI+T3BlcmF0aW9ucyBEaXJlY3RvciBKb2Jz
PC9hPjwvbGk+CjxsaT48YSBjbGFzcz0ibGluay02NjYiIGhyZWY9Imh0dHA6Ly9q
b2JzLnRpbWVzb25saW5lLmNvLnVrL29wZXJhdGlvbnMtbWFuYWdlci1qb2JzLmh0
bWwiPk9wZXJhdGlvbnMgTWFuYWdlciBKb2JzPC9hPjwvbGk+CjxsaT48YSBjbGFz
cz0ibGluay02NjYiIGhyZWY9Imh0dHA6Ly9qb2JzLnRpbWVzb25saW5lLmNvLnVr
L2pvYnMvaXQvIj5JVCBKb2JzPC9hPjwvbGk+CjwvdWw+CjwhLS0gQkVHSU46IExp
c3Qgb2YgbGlua3MgLS0+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rp
dj4KPC9wPgo8L2Rpdj4KPC9kaXY+CjwhLS0gRU5EOiBNODAgLSBDdXN0b20gSFRN
TCAtLT4KPCEtLSBFTkQ6IE04MCAtIEN1c3RvbSBIVE1MIC0tPgo8IS0tIEVORDpN
aWRkbGUgSW5oZXJpdGVuY2UgQm90dG9tIEdyaWQgLS0+CjwhLS0gRU5EOiBNaWRk
bGUgSW5oZXJpdGFuY2UgR3JpZHMgLS0+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0i
Z3JpZC1jb2x1bW40Ij4KPGRpdiBpZD0iZ3JpZC1jb2x1bW40LW5vbi1ncmV5Ij4J
CjwhLS0gaW5oZXJpdGFuY2UgbG9naWMgZm9yIGJlaGF2aW91cmFsIG5hdiAtLT4K
PCEtLUJlaGF2aW91cmFsIE5hdmlnYXRpb24gUHVibGlzaGVkIERhdGUgOiBEZWMg
MTgsIDIwMDYgMTI6MDEgQU0gLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9Ii90b2wvanMvbTMxLWJlaGF2aW91cmFsLW5hdi5qcyI+PC9zY3Jp
cHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgYUJl
aGF2aW91cmFsQ2F0ZWdvcmllcyA9IG5ldyBBcnJheSgnTU9TVCBSRUFEJywnTU9T
VCBDT01NRU5URUQnLCdNT1NUIENVUklPVVMnKTsgLy8gQXJyYXkgb2YgY2F0ZWdv
cnkgbGFiZWxzCnZhciBzU2VsZWN0ZWRCZWhhdmlvdXJhbCA9ICdiZWhhdmlvdXJh
bC0xJzsgLy8gSW5pdGlhbCBzZWN0aW9uIHRvIGRpc3BsYXkuIE9wdGlvbnMgYXJl
IDEgPSBtb3N0IHJlYWQgfCAyID0gbW9zdCBjb21tZW5ldGVkIHwgMyA9IGZhbmN5
IHRoYXQKdmFyIHNTZWxlY3RlZEJlaGF2aW91cmFsVGFiID0gJyc7Ci8vLS0+Cjwv
c2NyaXB0Pgo8IS0tIEJFR0lOOiBNb2R1bGUgLSBNMzEgQmVoYXZpb3VyYWwgTmF2
IChiKSAtLT4KPGRpdiBjbGFzcz0icGFkZGluZy1ib3R0b20tMTUiPgo8ZGl2IGlk
PSJiZWhhdmlvdXJhbC1saW5rcyIgY2xhc3M9ImRhcmstdGFiLWxpbmtzLXdpZGUi
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KLy8gV3JpdGVz
IG91dCBiZWhhdmlvdXJhbCBjYXRlZ29yeSB0YWJzCmZHZW5lcmF0ZUJlaGF2aW91
cmFsTGlua3MoKTsKLy8tLT4KPC9zY3JpcHQ+Cjxub3NjcmlwdD4KPHVsIGNsYXNz
PSJzbWFsbCI+CjxsaSBjbGFzcz0icGFkZGluZy1sZWZ0LXJpZ2h0LTkgZGFyay10
YWIiPjxhIGNsYXNzPSJ0b29scy0wNmMiIGhyZWY9IiNzdGFydG9mY29tbWVudGVk
Ij5NT1NUIFJFQUQ8L2E+PC9saT4KPGxpIGNsYXNzPSJwYWRkaW5nLWxlZnQtcmln
aHQtOSBkYXJrLXRhYiI+PGEgY2xhc3M9InRvb2xzLTA2YyIgaHJlZj0iI3N0YXJ0
b2ZmYW5jeSI+TU9TVCBDT01NRU5URUQ8L2E+PC9saT4KPGxpIGNsYXNzPSJwYWRk
aW5nLWxlZnQtcmlnaHQtOSBkYXJrLXRhYiI+PGEgY2xhc3M9InRvb2xzLTA2YyIg
aHJlZj0iI3N0YXJ0b2ZyZWFkIj5NT1NUIENVUklPVVM8L2E+PC9saT4KPC91bD4K
PGRpdiBjbGFzcz0icGFkZGluZy10b3AtMTAgYWNjZXNzLXRleHQiPjwvZGl2Pgo8
L25vc2NyaXB0Pgo8ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUiPjwvZGl2Pgo8L2Rp
dj4KPGRpdiBjbGFzcz0iZGFyay1zaGFkb3ctaGVhZGVyLXdpZGUiPjxkaXYgY2xh
c3M9InBhZGRpbmctdG9wLTYiPjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iZGFy
ay1zaGFkb3ctc2VnbWVudC13aWRlIHBhZGRpbmctbGVmdC1yaWdodC0xMCI+Cjwh
LS0gU3RhcnQgb2YgbW9zdCByZWFkIHNlY3Rpb24gLS0+CjwhLS0gU3RhcnQgb2Yg
bW9zdCBjb21tZW50ZWQgc2VjdGlvbiAtLT4KPGRpdiBpZD0iYmVoYXZpb3VyYWwt
MS1jb250ZW50Ij4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0t
Ci8vIEhpZGUgbW9zdCByZWFkIHNlY3Rpb24KZlNob3dIaWRlRWxlbWVudCgnYmVo
YXZpb3VyYWwtMS1jb250ZW50Jyk7Ci8vLS0+Cjwvc2NyaXB0Pgo8YSBuYW1lPSJz
dGFydG9mbW9zdHJlYWQiPjwvYT4KPGgzIGNsYXNzPSJzZWN0aW9uLWhlYWRpbmcg
YWNjZXNzLXRleHQiPk1vc3QgUmVhZDwvaDM+CjxhIGhyZWY9IiNlbmRvZmNvbW1l
bnRlZCIgY2xhc3M9ImFjY2Vzcy10ZXh0Ij5Ta2lwIE1vc3QgUmVhZDwvYT48YnIg
Y2xhc3M9ImFjY2Vzcy10ZXh0IiAvPjxiciBjbGFzcz0iYWNjZXNzLXRleHQiIC8+
CjxoMyBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj5Ub2RheTwvaDM+Cjx1bCBjbGFz
cz0iY2hldnJvbi1saXN0IGNoZXZyb24tYmx1ZSI+CjxsaT48YSBocmVmPSIvdG9s
L3Nwb3J0L2Zvb3RiYWxsL3ByZW1pZXJfbGVhZ3VlL2FydGljbGU2NzE4NTU1LmVj
ZSIgY2xhc3M9ImxpbmstNjY2Ij5MaXZlcnBvb2wgdG8gc3RlcCB1cCBiaWQgZm9y
IERhdmlkIFNpbHZhPC9hPjwvbGk+IAo8bGk+PGEgaHJlZj0iL3RvbC9saWZlX2Fu
ZF9zdHlsZS9tZW4vYXJ0aWNsZTY3MTUyNTUuZWNlIiBjbGFzcz0ibGluay02NjYi
PjEwMSB1c2VzIGZvciBhIHdvbWFuPC9hPjwvbGk+IAo8bGk+PGEgaHJlZj0iL3Rv
bC9uZXdzL2Vudmlyb25tZW50L2FydGljbGU2NzE4Njg5LmVjZSIgY2xhc3M9Imxp
bmstNjY2Ij5Ccml0YWluJiM4MjE3O3MgZGlydHkgbGl0dGxlIHNlY3JldCBhcyBh
Li4uPC9hPjwvbGk+IAo8bGk+PGEgaHJlZj0iL3RvbC9saWZlX2FuZF9zdHlsZS9t
ZW4vYXJ0aWNsZTY2Njk4MDcuZWNlIiBjbGFzcz0ibGluay02NjYiPjEwMSB1c2Vz
IGZvciBhIG1hbjwvYT48L2xpPiAKPC91bD4KPGEgbmFtZT0iZW5kb2Ztb3N0cmVh
ZCI+PC9hPgo8L2Rpdj4KPCEtLSBFbmQgb2YgbW9zdCBjb21tZW50ZWQgc2VjdGlv
biAtLT4KPCEtLSBTdGFydCBvZiBmYW5jeSB0aGF0IHNlY3Rpb24gLS0+CjxkaXYg
aWQ9ImJlaGF2aW91cmFsLTItY29udGVudCI+CQo8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CjwhLS0KLy8gSGlkZSBtb3N0IHJlYWQgc2VjdGlvbgpmU2hv
d0hpZGVFbGVtZW50KCdiZWhhdmlvdXJhbC0yLWNvbnRlbnQnKTsKLy8tLT4KPC9z
Y3JpcHQ+CjxhIG5hbWU9InN0YXJ0b2Zjb21tZW50ZWQiPjwvYT4KPGgzIGNsYXNz
PSJzZWN0aW9uLWhlYWRpbmcgYWNjZXNzLXRleHQiPk1PU1QgQ09NTUVOVEVEPC9o
Mz4KPGEgaHJlZj0iI2VuZG9mZmFuY3kiIGNsYXNzPSJhY2Nlc3MtdGV4dCI+U2tp
cCBFZGl0b3IncyBQaWNrPC9hPjxiciBjbGFzcz0iYWNjZXNzLXRleHQiIC8+PGJy
IGNsYXNzPSJhY2Nlc3MtdGV4dCIgLz4KPGgzIGNsYXNzPSJzZWN0aW9uLWhlYWRp
bmciPlRvZGF5PC9oMz4KPHVsIGlkID0gIm1vc3Rjb21tZW50ZWQiIGNsYXNzPSJj
aGV2cm9uLWxpc3QgY2hldnJvbi1ibHVlIj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgppZihpc0FydGljbGUgPT0gInRydWUiICYmIGFydGljbGVIZWFk
bGluZXMubGVuZ3RoIT0wKXsKZm9yKHZhciBqPTA7IGo8YXJ0aWNsZUhlYWRsaW5l
cy5sZW5ndGg7IGorKyl7CnZhciBoZWFkbGluZSA9IGFydGljbGVIZWFkbGluZXNb
al07CmlmKGFydGljbGVIZWFkbGluZXNbal0ubGVuZ3RoPj00NSl7CmhlYWRsaW5l
ID0gYXJ0aWNsZUhlYWRsaW5lc1tqXS5zdWJzdHJpbmcoMCw0NCkrIi4uLiI7Cn0K
ZG9jdW1lbnQud3JpdGUoIjxsaT48YSBocmVmPSIrYXJ0aWNsZVBhdGhzW2pdKyIg
Y2xhc3M9XCJsaW5rLTY2NlwiPiIraGVhZGxpbmUgKyI8XC9hPjxcL2xpPiIpOyAK
fQp9ZWxzZXsKZlN1Ym1pdE1vc3RDb21tZW50ZWQoJ2h0dHA6Ly9jb21tdW5pdHku
dGltZXNvbmxpbmUuY28udWsvdmVyMS4wL0RpcmVjdC9Qcm9jZXNzJyk7Cn0KPC9z
Y3JpcHQ+CjwvdWw+CjxhIG5hbWU9ImVuZG9mY29tbWVudGVkIj48L2E+CjwvZGl2
Pgo8IS0tIEVuZCBvZiBmYW5jeSB0aGF0IHNlY3Rpb24gLS0+CjxkaXYgaWQ9ImJl
aGF2aW91cmFsLTMtY29udGVudCI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KPCEtLQovLyBIaWRlIG1vc3QgcmVhZCBzZWN0aW9uCmZTaG93SGlkZUVs
ZW1lbnQoJ2JlaGF2aW91cmFsLTMtY29udGVudCcpOwovLy0tPgo8L3NjcmlwdD4K
PGEgbmFtZT0ic3RhcnRvZmN1cmlvdXMiPjwvYT4KPGgzIGNsYXNzPSJzZWN0aW9u
LWhlYWRpbmcgYWNjZXNzLXRleHQiPk1PU1QgQ1VSSU9VUzwvaDM+CjxhIGhyZWY9
IiNlbmRvZnJlYWQiIGNsYXNzPSJhY2Nlc3MtdGV4dCI+U2tpcCBNb3N0IEN1cmlv
dXM8L2E+CjxiciBjbGFzcz0iYWNjZXNzLXRleHQiIC8+PGJyIGNsYXNzPSJhY2Nl
c3MtdGV4dCIgLz4KPGgzIGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPlRvZGF5PC9o
Mz4KPGRpdiBjbGFzcz0ic21hbGwtbGlua3MtbGlzdC1jb250YWluZXIgIj4KPHVs
IGNsYXNzPSJjaGV2cm9uLWxpc3QgY2hldnJvbi1ibHVlIj48bGk+CjxhIGNsYXNz
PSJsaW5rLTY2NiIgaHJlZj0nL3RvbC9saWZlX2FuZF9zdHlsZS93b21lbi9yZWxh
dGlvbnNoaXBzL2FydGljbGU2NzE1OTE2LmVjZSc+CQpGaW5kaW5nIE1yIFJpZ2h0
OiA3IFRpcHMgZnJvbSB0aGUgTW92aWVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRp
diBjbGFzcz0ic21hbGwtbGlua3MtbGlzdC1jb250YWluZXIgIj4KPHVsIGNsYXNz
PSJjaGV2cm9uLWxpc3QgY2hldnJvbi1ibHVlIj48bGk+CjxhIGNsYXNzPSJsaW5r
LTY2NiIgaHJlZj0nL3RvbC9uZXdzL3VrL3NjaWVuY2UvYXJ0aWNsZTY3MTcyMjEu
ZWNlJz4JCk5hc2EmcnNxdW87cyBNb29uLWxhbmRpbmcgdGFwZXMgcmVtYXN0ZXJl
ZC4uLjwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InNtYWxsLWxpbmtz
LWxpc3QtY29udGFpbmVyICI+Cjx1bCBjbGFzcz0iY2hldnJvbi1saXN0IGNoZXZy
b24tYmx1ZSI+PGxpPgo8YSBjbGFzcz0ibGluay02NjYiIGhyZWY9Jy90b2wvY29t
bWVudC9mYWl0aC9hcnRpY2xlNjcxNjMyMy5lY2UnPgkKWW91IHdpbGwsIEJlbmVk
aWN0LCB5b3Ugd2lsbDogVmF0aWNhbiBjbGFpbXMuLi48L2E+PC9saT48L3VsPjwv
ZGl2Pgo8ZGl2IGNsYXNzPSJzbWFsbC1saW5rcy1saXN0LWNvbnRhaW5lciAiPgo8
dWwgY2xhc3M9ImNoZXZyb24tbGlzdCBjaGV2cm9uLWJsdWUiPjxsaT4KPGEgY2xh
c3M9ImxpbmstNjY2IiBocmVmPScvdG9sL2xpZmVfYW5kX3N0eWxlL2VkdWNhdGlv
bi9zY2hvb2xfbGVhZ3VlX3RhYmxlcy9hcnRpY2xlNjcxNzI4Ny5lY2UnPgkKVGVh
Y2hlcnMgYXR0YWNrIGV4YW1pbmVycyBmb3IgZG90dHkgU0FUcy4uLjwvYT48L2xp
PjwvdWw+PC9kaXY+CjxhIG5hbWU9ImVuZG9mcmVhZCI+PC9hPgo8L2Rpdj4KPGRp
diBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWJvdHRv
bS1tb3N0LXJlYWQiPjwvZGl2Pgo8L2Rpdj4KPCEtLSBFbmQgb2YgbW9zdCByZWFk
IHNlY3Rpb24gLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEt
LQovLyBEaXNwbGF5cyBpbml0aWFsIGNhdGVnb3J5CmZTaG93SGlkZUJlaGF2aW91
cmFsQ2F0ZWdvcnkoc1NlbGVjdGVkQmVoYXZpb3VyYWwpOwovLy0tPgo8L3Njcmlw
dD4KPGRpdiBjbGFzcz0iZGFyay1zaGFkb3ctZm9vdGVyLXdpZGUiPjxkaXYgY2xh
c3M9InBhZGRpbmctdG9wLTUiPjwvZGl2PjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFz
cz0iY2xlYXIiPjwvZGl2Pgo8IS0tIEVORDogTW9kdWxlIC0gTTMxIEJlaGF2aW91
cmFsIE5hdiAoYikgLS0+CjwvZGl2Pgo8ZGl2IGlkPSJncmlkLWNvbHVtbjQtZ3Jl
eSI+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPCEtLSBjYWxsaW5nIHRoZSBh
ZHZlcnRpc2VtZW50IC0tPgo8IS0tIEJFR0lOOiBNb2R1bGUgLSBBZHZlcnQ6VG9w
IC0tPgo8U0NSSVBUIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KLy9SZXRy
aWV2ZSB5YW9vIENvb2tpZSBWYWx1ZQp2YXIgeWFob28gPSAibm8iOwp2YXIgSXNZ
YWhvbz0ibm8iOwppZiAoR2V0UXVlcnlTdHJpbmcoInlhaG9vIik9PSJ5ZXMiIHx8
IGdldF9jb29raWUoJ1lIJykgPT0gInllcyIpIElzWWFob289InllcyI7CmlmIChJ
c1lhaG9vID09ICJ5ZXMiIHx8IGdldF9jb29raWUoJ1lIJykgPT0gJ29wZW4nKSB7
CnNldF9jb29raWUgKCJZSCIsICJ5ZXMiLCAiIiwgIiIgKTsKeWFob28gPSAieWVz
IjsKfSBlbHNlIHsKc2V0X2Nvb2tpZSAoIllIIiwgIm5vIiwgIiIsICIiICk7Cnlh
aG9vID0gIm5vIjsKfQp3aW5kb3cub251bmxvYWQgPSBzZXRZYWhvb0Nvb2tpZTsK
Ly8tLT4KPC9TQ1JJUFQ+CjwhLS0gRm9yIFRyYXZlbCBTZWFyY2ggLS0+CjxkaXYg
Y2xhc3M9InF1aWNrLWxpbmtzLWNvbnRhaW5lciIgPgo8ZGl2IGNsYXNzPSJwYWRk
aW5nLXRvcC0xMCBwYWRkaW5nLWJvdHRvbS0xMCB0ZXh0LWNlbnRlciI+CjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgUlN0YWcgPSAiIjsK
dHJ5ewpSU3RhZyA9IHNlZ1FTOwp9CmNhdGNoKGUpewpSU3RhZyA9ICIiOwp9CmRv
Y3VtZW50LndyaXRlKCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJodHRwOi8vYWQudWsuZG91YmxlY2xpY2submV0L2Fkai9idXNpbmVzcy50aW1l
c29ubGluZS5jby51ay9pbmR1c3RyeXNlY3RvcnMvdHJhbnNwb3J0O2NhdD07cG9z
PXRvcDtzej0zMDB4MjUwOycrIFJTdGFnICsndGlsZT0yOycrY2F0ZWdvcnlWYWx1
ZXMrJ3lhaG9vPScreWFob28rJztvcmQ9JytyYW5kbnVtKyc/Ij48XC9zY3JpcHQ+
Jyk7CQovLy0tPgo8L3NjcmlwdD4KPC9kaXY+PC9kaXY+Cjxub3NjcmlwdD4KPGEg
aHJlZj0iaHR0cDovL2FkLnVrLmRvdWJsZWNsaWNrLm5ldC9hZGovYnVzaW5lc3Mu
dGltZXNvbmxpbmUuY28udWsvaW5kdXN0cnlzZWN0b3JzL3RyYW5zcG9ydDtwb3M9
dG9wO3N6PTMwMHgyNTA7dGlsZT0yO3lhaG9vPU5vO29yZD0xMjQ3OTQzNDI1Njk1
PyI+PC9hPgo8L25vc2NyaXB0Pgo8IS0tU0VDVElPTjpwYXJhbWV0ZXIgcGFyYW1l
dGVyPSJkYXJ0LnNlcnZlciIgLy0tPgo8IS0tIEVORDogTW9kdWxlIC0gQWR2ZXJ0
OlRvcCAtLT4KPCEtLSBpbmhlcml0YW5jZSBsb2dpYyBmb3IgU3BlY2lhbCBSZXBv
cnRzIC0tPgo8IS0tIFNwZWNpYWwgUmVwb3J0cyBQdWJsaXNoZWQgRGF0ZSA6IE1h
ciAxMCwgMjAwOSAxMTo1OCBBTS0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIvdG9sL2pzL2ZvY3VzLXpvbmUuanMiPjwvc2NyaXB0Pgo8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KdmFyIG4yQ29sVG90YWxD
YXJvdXNlbEl0ZW1zRm9jdXM9MDsKdmFyIGFUZWFzZXIyQ29sRm9jdXMgPSBuZXcg
QXJyYXkoKTsKLy8tLT4JCjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CjwhLS0KYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3Vz
ZWxJdGVtc0ZvY3VzXT0gbmV3IEFycmF5KCk7CmFUZWFzZXIyQ29sRm9jdXNbbjJD
b2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11bMF09ICJodHRwOi8vYWQuZG91Ymxl
Y2xpY2submV0L2NsazsyMTI1OTU2MDE7MTMzODE3NjY7Zj9odHRwOi8vd3d3LnRp
bWVzb25saW5lLmNvLnVrL3RvbC90cmF2ZWwvcmVsYXRlZF9mZWF0dXJlcy9ub3J0
aGVybl9saWdodHMvIjsKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3Vz
ZWxJdGVtc0ZvY3VzXVsxXT0gIk5vcnRoZXJuIExpZ2h0czoiOwovLy0tPgo8L3Nj
cmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmFUZWFz
ZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11bMl09ICIv
bXVsdGltZWRpYS9hcmNoaXZlLzAwNTIzL25ld2Nhc3RsZV9hbmdlbDE2NV81MjM2
MTlsLmdpZiI7Ci8vLS0+Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CjwhLS0JCmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91
c2VsSXRlbXNGb2N1c11bM109ICJXaW4gYSBsdXh1cnkgd2Vla2VuZCB0byBOZXdj
YXN0bGUgYW5kIGl0cyBuZWlnaGJvdXIgR2F0ZXNoZWFkLCBmaW5kIG91dCBtb3Jl
IGhlcmUiOwkKbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1cysrOwovLy0tPgo8
L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmFU
ZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c109IG5l
dyBBcnJheSgpOwphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90YWxDYXJvdXNlbEl0
ZW1zRm9jdXNdWzBdPSAiaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7MjEw
MDk5MzI0OzY3MDgzNTc7aj9odHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3Rv
bC9idXNpbmVzcy9yZWxhdGVkX3JlcG9ydHMvYnVzaW5lc3Nfc29sdXRpb25zLyI7
CmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11b
MV09ICJCdXNpbmVzcyBTb2x1dGlvbnM6IjsKLy8tLT4KPC9zY3JpcHQ+CjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQphVGVhc2VyMkNvbEZvY3Vz
W24yQ29sVG90YWxDYXJvdXNlbEl0ZW1zRm9jdXNdWzJdPSAiL211bHRpbWVkaWEv
YXJjaGl2ZS8wMDQ0Ni9idF9vbmVfZ3JhcGhpY18xNjV4XzQ0NjA4M2wuZ2lmIjsK
Ly8tLT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
PCEtLQkKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0Zv
Y3VzXVszXT0gIlJpc2ssIHJlc2lsaWVuY2UgYW5kIGVtYnJhY2luZyBuZXcgdGVj
aG5vbG9neSI7CQpuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzKys7Ci8vLS0+
Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0K
YVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXT0g
bmV3IEFycmF5KCk7CmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2Vs
SXRlbXNGb2N1c11bMF09ICJodHRwOi8vYWQuZG91YmxlY2xpY2submV0L2Nsazsy
MDk1MzQ5NzE7MTAzNDEwMjk7ej9odHRwOi8vYnVzaW5lc3MudGltZXNvbmxpbmUu
Y28udWsvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvbmVlZF90b19rbm93
LyI7CmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1
c11bMV09ICJOZWVkIHRvIEtub3c6IjsKLy8tLT4KPC9zY3JpcHQ+CjxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQphVGVhc2VyMkNvbEZvY3VzW24y
Q29sVG90YWxDYXJvdXNlbEl0ZW1zRm9jdXNdWzJdPSAiL211bHRpbWVkaWEvYXJj
aGl2ZS8wMDQyMi9hY2NlbnR1cmUxNjV4NzBfNDIyMTE1bC5qcGciOwovLy0tPgo8
L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCQph
VGVhc2VyMkNvbEZvY3VzW24yQ29sVG90YWxDYXJvdXNlbEl0ZW1zRm9jdXNdWzNd
PSAiSW5kdXN0cnkgc2VjdG9ycyBuZXdzIGF0IGEgZ2xhbmNlLiBJbnRlcmFjdGl2
ZSBoZWF0bWFwLCB2aWRlbyBhbmQgcG9kY2FzdCI7CQpuMkNvbFRvdGFsQ2Fyb3Vz
ZWxJdGVtc0ZvY3VzKys7Ci8vLS0+Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CjwhLS0KYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFs
Q2Fyb3VzZWxJdGVtc0ZvY3VzXT0gbmV3IEFycmF5KCk7CmFUZWFzZXIyQ29sRm9j
dXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11bMF09ICJodHRwOi8vYWQu
ZG91YmxlY2xpY2submV0L2NsazsyMTM5OTEyNDQ7MTgxODA1MzY7Zz9odHRwOi8v
YnVzaW5lc3MudGltZXNvbmxpbmUuY28udWsvdG9sL2J1c2luZXNzL3JlbGF0ZWRf
cmVwb3J0cy9idXNpbmVzc193aXNkb20vIjsKYVRlYXNlcjJDb2xGb2N1c1tuMkNv
bFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXVsxXT0gIkJ1c2luZXNzIFdpc2RvbToi
OwovLy0tPgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pgo8IS0tCmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNG
b2N1c11bMl09ICIvbXVsdGltZWRpYS9hcmNoaXZlLzAwNDkxL2Npc2NvMTY1XzQ5
MTkxOWwuanBnIjsKLy8tLT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KPCEtLQkKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fy
b3VzZWxJdGVtc0ZvY3VzXVszXT0gIkRpc2NvdmVyIHRoZSBwb3dlciBvZiBjb2xs
ZWN0aXZlIHRoaW5raW5nLiBTdWJtaXQgYSBzb2x1dGlvbiBhbmQgYmUgaW4gd2l0
aCBhIGNoYW5jZSB0byB3aW4gYSBNZWRpYSBIdWIgSG9tZSBFbnRlcnRhaW5tZW50
IFN5c3RlbSAiOwkKbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1cysrOwovLy0t
Pgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0t
CmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c109
IG5ldyBBcnJheSgpOwphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90YWxDYXJvdXNl
bEl0ZW1zRm9jdXNdWzBdPSAiaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7
MjA5NTI4Mjc5OzEzODczODQzO3U/aHR0cDovL2J1c2luZXNzLnRpbWVzb25saW5l
LmNvLnVrL3RvbC9idXNpbmVzcy9yZWxhdGVkX3JlcG9ydHMvc29jaWFsX2VudHJl
cHJlbmV1cnMvIjsKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJ
dGVtc0ZvY3VzXVsxXT0gIlNvY2lhbCBFbnRyZXByZW5ldXJzOiI7Ci8vLS0+Cjwv
c2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KYVRl
YXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXVsyXT0g
Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA0MzcvbGFzdC0zODVfNDM3NTMxbC5qcGci
OwovLy0tPgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pgo8IS0tCQphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90YWxDYXJvdXNlbEl0ZW1z
Rm9jdXNdWzNdPSAiVGhlIGluc2lkZSB0cmFjayBvbiBjdXJyZW50IHRyZW5kcyBp
biB0aGUgY2hhcml0eSwgbm90IGZvciBwcm9maXQgYW5kIHNvY2lhbCBlbnRlcnBy
aXNlIHNlY3RvcnMiOwkKbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1cysrOwov
Ly0tPgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8
IS0tCmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1
c109IG5ldyBBcnJheSgpOwphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90YWxDYXJv
dXNlbEl0ZW1zRm9jdXNdWzBdPSAiaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9j
bGs7MTg2MDk3NTg3OzE1NDc5NzU1O2g/aHR0cDovL3d3dy50aW1lc29ubGluZS5j
by51ay90b2wvdHJhdmVsL2J1c2luZXNzLyI7CmFUZWFzZXIyQ29sRm9jdXNbbjJD
b2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11bMV09ICJCdXNpbmVzcyBUcmF2ZWw6
IjsKLy8tLT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KPCEtLQphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90YWxDYXJvdXNlbEl0ZW1z
Rm9jdXNdWzJdPSAiL211bHRpbWVkaWEvYXJjaGl2ZS8wMDM1My9iYV9jbG91ZHNf
MTAwXzM1Mzg4MGEuanBnIjsKLy8tLT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQkKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRv
dGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXVszXT0gIkV2ZXJ5dGhpbmcgdGhlIEJ1c2lu
ZXNzIFRyYXZlbGxlciBuZWVkcyB0byBrbm93IHRvIG1ha2UgYSBiZXR0ZXIgdHJp
cCI7CQpuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzKys7Ci8vLS0+Cjwvc2Ny
aXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KYVRlYXNl
cjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXT0gbmV3IEFy
cmF5KCk7CmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNG
b2N1c11bMF09ICJodHRwOi8vYWQuZG91YmxlY2xpY2submV0L2NsazsyMTQyMjU5
MjI7ODk0Mzc1MztsP2h0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL2xp
ZmVfYW5kX3N0eWxlL3JlbGF0ZWRfZmVhdHVyZXMvZ3JlYXRfYnJpdGlzaF9zdW1t
ZXIvIjsKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0Zv
Y3VzXVsxXT0gIkdyZWF0IEJyaXRpc2ggU3VtbWVyIDoiOwovLy0tPgo8L3Njcmlw
dD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmFUZWFzZXIy
Q29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11bMl09ICIvbXVs
dGltZWRpYS9hcmNoaXZlLzAwNTY3L2JvYXRzMTY1XzU2NzgyMGwuZ2lmIjsKLy8t
LT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEt
LQkKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3Vz
XVszXT0gIk1ha2UgdGhlIG1vc3Qgb2YgdGhlIHN1bW1lciBhbmQgZW50ZXIgb3Vy
IGZhYnVsb3VzIHBob3RvZ3JhcGhpYyBjb21wZXRpdGlvbiwgeW91IGNvdWxkIHdp
biBhIKM1MDAwIGhvbGlkYXkiOwkKbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1
cysrOwovLy0tPgo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgo8IS0tCmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRl
bXNGb2N1c109IG5ldyBBcnJheSgpOwphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90
YWxDYXJvdXNlbEl0ZW1zRm9jdXNdWzBdPSAiaHR0cDovL2FkLmRvdWJsZWNsaWNr
Lm5ldC9jbGs7MjE1NDk4MzczOzM4MzgxNDk5O2E/aHR0cDovL3d3dy50aW1lc29u
bGluZS5jby51ay90b2wvdHJhdmVsL3JlbGF0ZWRfZmVhdHVyZXMvY29yc2ljYS10
cmF2ZWwvIjsKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVt
c0ZvY3VzXVsxXT0gIkNvcnNpY2EgVHJhdmVsOiI7Ci8vLS0+Cjwvc2NyaXB0Pgo8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KYVRlYXNlcjJDb2xG
b2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXVsyXT0gIi9tdWx0aW1l
ZGlhL2FyY2hpdmUvMDA1ODIvY29yc2ljYTE2NV81ODI3MTZsLmpwZyI7Ci8vLS0+
Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0J
CmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11b
M109ICJDb3JzaWNhIGlzIGFuIGlzbGFuZCBvZiBiZWF1dHkgYW5kIGNvbnRyYXN0
LCBhbiBpZGVhbCBob2xpZGF5IGRlc3RpbmF0aW9uIjsJCm4yQ29sVG90YWxDYXJv
dXNlbEl0ZW1zRm9jdXMrKzsKLy8tLT4KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQphVGVhc2VyMkNvbEZvY3VzW24yQ29sVG90
YWxDYXJvdXNlbEl0ZW1zRm9jdXNdPSBuZXcgQXJyYXkoKTsKYVRlYXNlcjJDb2xG
b2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJdGVtc0ZvY3VzXVswXT0gImh0dHA6Ly93
d3cudGltZXNvbmxpbmUuY28udWsvdG9sL2xpZmVfYW5kX3N0eWxlL3JlbGF0ZWRf
ZmVhdHVyZXMvIjsKYVRlYXNlcjJDb2xGb2N1c1tuMkNvbFRvdGFsQ2Fyb3VzZWxJ
dGVtc0ZvY3VzXVsxXT0gIk1vcmUgcmVwb3J0czoiOwovLy0tPgo8L3NjcmlwdD4K
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmFUZWFzZXIyQ29s
Rm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1c11bMl09ICIvbXVsdGlt
ZWRpYS9hcmNoaXZlLzAwNTAxL01vcmVfUmVwb3J0c181MDE3MjdhLkpQRyI7Ci8v
LS0+Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwh
LS0JCmFUZWFzZXIyQ29sRm9jdXNbbjJDb2xUb3RhbENhcm91c2VsSXRlbXNGb2N1
c11bM109ICJFbmpveSBmdXJ0aGVyIHJlYWRpbmcgZnJvbSBUcmF2ZWwgdG8gRmFz
aGlvbiwgQnVzaW5lc3MgdG8gU3BvcnQsIGRpc2NvdmVyIG1vcmUiOwkKbjJDb2xU
b3RhbENhcm91c2VsSXRlbXNGb2N1cysrOwovLy0tPgo8L3NjcmlwdD4KPGRpdiBj
bGFzcz0icmVwb3J0cy1jb250YWluZXIgdGV4dC1sZWZ0Ij4KPGgzIGNsYXNzPSJz
ZWN0aW9uLWhlYWRpbmciPkZvY3VzIFpvbmU8L2gzPgo8ZGl2IGNsYXNzPSJjbGVh
ci1zaW1wbGUiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC01Ij48L2Rp
dj4KPGRpdiBjbGFzcz0idGV4dC1sZWZ0IGJnLTAwMCI+CjxkaXYgY2xhc3M9ImJn
LWY1ZjVmNSI+CjxkaXYgY2xhc3M9ImZsb2F0LWxlZnQiIGlkPSJDYXJvdXNlbDJD
b2xGb2N1czEiPgo8ZGl2IGNsYXNzPSJhY3RpdmVibG9ja3MiIHN0eWxlPSJkaXNw
bGF5OmJsb2NrIj4KPGRpdiBjbGFzcz0idGV4dC1sZWZ0IGJnLTAwMCBoZWlnaHQt
MTAwIHdpZHRoLTMxNiI+CjxkaXYgY2xhc3M9ImZsb2F0LXJpZ2h0IHBhZGRpbmct
bGVmdC0xMCI+CQo8YSBocmVmPSJodHRwOi8vYWQuZG91YmxlY2xpY2submV0L2Ns
azsyMTI1OTU2MDE7MTMzODE3NjY7Zj9odHRwOi8vd3d3LnRpbWVzb25saW5lLmNv
LnVrL3RvbC90cmF2ZWwvcmVsYXRlZF9mZWF0dXJlcy9ub3J0aGVybl9saWdodHMv
Ij48aW1nIHNyYz0iL211bHRpbWVkaWEvYXJjaGl2ZS8wMDUyMy9uZXdjYXN0bGVf
YW5nZWwxNjVfNTIzNjE5bC5naWYiIGNsYXNzPSJkaXNwbGF5LWJsb2NrIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgYWx0PSJBbmdlbCBvZiB0aGUgbm9ydGgiIC8+
PC9hPgkKPC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctbGVmdC0xMCBwYWRkaW5n
LXRvcC01Ij4JCjxoMiBjbGFzcz0ic3ViLWhlYWRpbmcgcGFkZGluZy1ib3R0b20t
MyBwYWRkaW5nLXRvcC0zIj48YSBocmVmPSJodHRwOi8vYWQuZG91YmxlY2xpY2su
bmV0L2NsazsyMTI1OTU2MDE7MTMzODE3NjY7Zj9odHRwOi8vd3d3LnRpbWVzb25s
aW5lLmNvLnVrL3RvbC90cmF2ZWwvcmVsYXRlZF9mZWF0dXJlcy9ub3J0aGVybl9s
aWdodHMvIiBjbGFzcz0ibGluay1mZmYiPk5vcnRoZXJuIExpZ2h0czo8L2E+PC9o
Mj4KPHAgY2xhc3M9InNtYWxsIGNvbG9yLWZmZiI+V2luIGEgbHV4dXJ5IHdlZWtl
bmQgdG8gTmV3Y2FzdGxlIGFuZCBpdHMgbmVpZ2hib3VyIEdhdGVzaGVhZCwgZmlu
ZCBvdXQgbW9yZSBoZXJlPC9wPgkKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBj
bGFzcz0iYWN0aXZlYmxvY2tzIj4KPGRpdiBjbGFzcz0idGV4dC1sZWZ0IGJnLTAw
MCBoZWlnaHQtMTAwIHdpZHRoLTMxNiI+CjxkaXYgY2xhc3M9ImZsb2F0LXJpZ2h0
IHBhZGRpbmctbGVmdC0xMCI+CjxhIGhyZWY9Imh0dHA6Ly9hZC5kb3VibGVjbGlj
ay5uZXQvY2xrOzIxMDA5OTMyNDs2NzA4MzU3O2o/aHR0cDovL3d3dy50aW1lc29u
bGluZS5jby51ay90b2wvYnVzaW5lc3MvcmVsYXRlZF9yZXBvcnRzL2J1c2luZXNz
X3NvbHV0aW9ucy8iPjxpbWcgc3JjPSIvbXVsdGltZWRpYS9hcmNoaXZlLzAwNDQ2
L2J0X29uZV9ncmFwaGljXzE2NXhfNDQ2MDgzbC5naWYiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIiBjbGFzcz0iZGlzcGxheS1ibG9jayIgYWx0PSJCVCIgLz48L2E+
CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWxlZnQtMTAgcGFkZGluZy10b3At
NSI+CQo8aDIgY2xhc3M9InN1Yi1oZWFkaW5nIHBhZGRpbmctYm90dG9tLTMgcGFk
ZGluZy10b3AtMyI+PGEgaHJlZj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9j
bGs7MjEwMDk5MzI0OzY3MDgzNTc7aj9odHRwOi8vd3d3LnRpbWVzb25saW5lLmNv
LnVrL3RvbC9idXNpbmVzcy9yZWxhdGVkX3JlcG9ydHMvYnVzaW5lc3Nfc29sdXRp
b25zLyIgY2xhc3M9ImxpbmstZmZmIj5CdXNpbmVzcyBTb2x1dGlvbnM6PC9hPjwv
aDI+CjxwIGNsYXNzPSJzbWFsbCBjb2xvci1mZmYiPlJpc2ssIHJlc2lsaWVuY2Ug
YW5kIGVtYnJhY2luZyBuZXcgdGVjaG5vbG9neTwvcD4JCjwvZGl2Pgo8L2Rpdj4K
PC9kaXY+CjxkaXYgY2xhc3M9ImFjdGl2ZWJsb2NrcyI+CjxkaXYgY2xhc3M9InRl
eHQtbGVmdCBiZy0wMDAgaGVpZ2h0LTEwMCB3aWR0aC0zMTYiPgo8ZGl2IGNsYXNz
PSJmbG9hdC1yaWdodCBwYWRkaW5nLWxlZnQtMTAiPgo8YSBocmVmPSJodHRwOi8v
YWQuZG91YmxlY2xpY2submV0L2NsazsyMDk1MzQ5NzE7MTAzNDEwMjk7ej9odHRw
Oi8vYnVzaW5lc3MudGltZXNvbmxpbmUuY28udWsvdG9sL2J1c2luZXNzL2luZHVz
dHJ5X3NlY3RvcnMvbmVlZF90b19rbm93LyI+PGltZyBzcmM9Ii9tdWx0aW1lZGlh
L2FyY2hpdmUvMDA0MjIvYWNjZW50dXJlMTY1eDcwXzQyMjExNWwuanBnIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgY2xhc3M9ImRpc3BsYXktYmxvY2siIGFsdD0i
YWNjZW50dXJlIiAvPjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctbGVm
dC0xMCBwYWRkaW5nLXRvcC01Ij4JCjxoMiBjbGFzcz0ic3ViLWhlYWRpbmcgcGFk
ZGluZy1ib3R0b20tMyBwYWRkaW5nLXRvcC0zIj48YSBocmVmPSJodHRwOi8vYWQu
ZG91YmxlY2xpY2submV0L2NsazsyMDk1MzQ5NzE7MTAzNDEwMjk7ej9odHRwOi8v
YnVzaW5lc3MudGltZXNvbmxpbmUuY28udWsvdG9sL2J1c2luZXNzL2luZHVzdHJ5
X3NlY3RvcnMvbmVlZF90b19rbm93LyIgY2xhc3M9ImxpbmstZmZmIj5OZWVkIHRv
IEtub3c6PC9hPjwvaDI+CjxwIGNsYXNzPSJzbWFsbCBjb2xvci1mZmYiPkluZHVz
dHJ5IHNlY3RvcnMgbmV3cyBhdCBhIGdsYW5jZS4gSW50ZXJhY3RpdmUgaGVhdG1h
cCwgdmlkZW8gYW5kIHBvZGNhc3Q8L3A+CQo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8
ZGl2IGNsYXNzPSJhY3RpdmVibG9ja3MiPgo8ZGl2IGNsYXNzPSJ0ZXh0LWxlZnQg
YmctMDAwIGhlaWdodC0xMDAgd2lkdGgtMzE2Ij4KPGRpdiBjbGFzcz0iZmxvYXQt
cmlnaHQgcGFkZGluZy1sZWZ0LTEwIj4KPGEgaHJlZj0iaHR0cDovL2FkLmRvdWJs
ZWNsaWNrLm5ldC9jbGs7MjEzOTkxMjQ0OzE4MTgwNTM2O2c/aHR0cDovL2J1c2lu
ZXNzLnRpbWVzb25saW5lLmNvLnVrL3RvbC9idXNpbmVzcy9yZWxhdGVkX3JlcG9y
dHMvYnVzaW5lc3Nfd2lzZG9tLyI+PGltZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hp
dmUvMDA0OTEvY2lzY28xNjVfNDkxOTE5bC5qcGciIHdpZHRoPSIxMDAiIGhlaWdo
dD0iMTAwIiBjbGFzcz0iZGlzcGxheS1ibG9jayIgYWx0PSJDaXNjbyIgLz48L2E+
CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWxlZnQtMTAgcGFkZGluZy10b3At
NSI+CQo8aDIgY2xhc3M9InN1Yi1oZWFkaW5nIHBhZGRpbmctYm90dG9tLTMgcGFk
ZGluZy10b3AtMyI+PGEgaHJlZj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9j
bGs7MjEzOTkxMjQ0OzE4MTgwNTM2O2c/aHR0cDovL2J1c2luZXNzLnRpbWVzb25s
aW5lLmNvLnVrL3RvbC9idXNpbmVzcy9yZWxhdGVkX3JlcG9ydHMvYnVzaW5lc3Nf
d2lzZG9tLyIgY2xhc3M9ImxpbmstZmZmIj5CdXNpbmVzcyBXaXNkb206PC9hPjwv
aDI+CjxwIGNsYXNzPSJzbWFsbCBjb2xvci1mZmYiPkRpc2NvdmVyIHRoZSBwb3dl
ciBvZiBjb2xsZWN0aXZlIHRoaW5raW5nLiBTdWJtaXQgYSBzb2x1dGlvbiBhbmQg
YmUgaW4gd2l0aCBhIGNoYW5jZSB0byB3aW4gYSBNZWRpYSBIdWIgSG9tZSBFbnRl
cnRhaW5tZW50IFN5c3RlbSA8L3A+CQo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2
IGNsYXNzPSJhY3RpdmVibG9ja3MiPgo8ZGl2IGNsYXNzPSJ0ZXh0LWxlZnQgYmct
MDAwIGhlaWdodC0xMDAgd2lkdGgtMzE2Ij4KPGRpdiBjbGFzcz0iZmxvYXQtcmln
aHQgcGFkZGluZy1sZWZ0LTEwIj4KPGEgaHJlZj0iaHR0cDovL2FkLmRvdWJsZWNs
aWNrLm5ldC9jbGs7MjA5NTI4Mjc5OzEzODczODQzO3U/aHR0cDovL2J1c2luZXNz
LnRpbWVzb25saW5lLmNvLnVrL3RvbC9idXNpbmVzcy9yZWxhdGVkX3JlcG9ydHMv
c29jaWFsX2VudHJlcHJlbmV1cnMvIj48aW1nIHNyYz0iL211bHRpbWVkaWEvYXJj
aGl2ZS8wMDQzNy9sYXN0LTM4NV80Mzc1MzFsLmpwZyIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiIGNsYXNzPSJkaXNwbGF5LWJsb2NrIiBhbHQ9IlNvY2lhbCBFbnRy
ZXByZW5ldXIiIC8+PC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy1sZWZ0
LTEwIHBhZGRpbmctdG9wLTUiPgkKPGgyIGNsYXNzPSJzdWItaGVhZGluZyBwYWRk
aW5nLWJvdHRvbS0zIHBhZGRpbmctdG9wLTMiPjxhIGhyZWY9Imh0dHA6Ly9hZC5k
b3VibGVjbGljay5uZXQvY2xrOzIwOTUyODI3OTsxMzg3Mzg0Mzt1P2h0dHA6Ly9i
dXNpbmVzcy50aW1lc29ubGluZS5jby51ay90b2wvYnVzaW5lc3MvcmVsYXRlZF9y
ZXBvcnRzL3NvY2lhbF9lbnRyZXByZW5ldXJzLyIgY2xhc3M9ImxpbmstZmZmIj5T
b2NpYWwgRW50cmVwcmVuZXVyczo8L2E+PC9oMj4KPHAgY2xhc3M9InNtYWxsIGNv
bG9yLWZmZiI+VGhlIGluc2lkZSB0cmFjayBvbiBjdXJyZW50IHRyZW5kcyBpbiB0
aGUgY2hhcml0eSwgbm90IGZvciBwcm9maXQgYW5kIHNvY2lhbCBlbnRlcnByaXNl
IHNlY3RvcnM8L3A+CQo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJh
Y3RpdmVibG9ja3MiPgo8ZGl2IGNsYXNzPSJ0ZXh0LWxlZnQgYmctMDAwIGhlaWdo
dC0xMDAgd2lkdGgtMzE2Ij4KPGRpdiBjbGFzcz0iZmxvYXQtcmlnaHQgcGFkZGlu
Zy1sZWZ0LTEwIj4KPGEgaHJlZj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9j
bGs7MTg2MDk3NTg3OzE1NDc5NzU1O2g/aHR0cDovL3d3dy50aW1lc29ubGluZS5j
by51ay90b2wvdHJhdmVsL2J1c2luZXNzLyI+PGltZyBzcmM9Ii9tdWx0aW1lZGlh
L2FyY2hpdmUvMDAzNTMvYmFfY2xvdWRzXzEwMF8zNTM4ODBhLmpwZyIgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIxMDAiIGNsYXNzPSJkaXNwbGF5LWJsb2NrIiBhbHQ9ImJh
IGJ1c2luZXNzIHRyYXZlbCBjbG91ZHMiIC8+PC9hPgo8L2Rpdj4KPGRpdiBjbGFz
cz0icGFkZGluZy1sZWZ0LTEwIHBhZGRpbmctdG9wLTUiPgkKPGgyIGNsYXNzPSJz
dWItaGVhZGluZyBwYWRkaW5nLWJvdHRvbS0zIHBhZGRpbmctdG9wLTMiPjxhIGhy
ZWY9Imh0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvY2xrOzE4NjA5NzU4NzsxNTQ3
OTc1NTtoP2h0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL3RyYXZlbC9i
dXNpbmVzcy8iIGNsYXNzPSJsaW5rLWZmZiI+QnVzaW5lc3MgVHJhdmVsOjwvYT48
L2gyPgo8cCBjbGFzcz0ic21hbGwgY29sb3ItZmZmIj5FdmVyeXRoaW5nIHRoZSBC
dXNpbmVzcyBUcmF2ZWxsZXIgbmVlZHMgdG8ga25vdyB0byBtYWtlIGEgYmV0dGVy
IHRyaXA8L3A+CQo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJhY3Rp
dmVibG9ja3MiPgo8ZGl2IGNsYXNzPSJ0ZXh0LWxlZnQgYmctMDAwIGhlaWdodC0x
MDAgd2lkdGgtMzE2Ij4KPGRpdiBjbGFzcz0iZmxvYXQtcmlnaHQgcGFkZGluZy1s
ZWZ0LTEwIj4KPGEgaHJlZj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7
MjE0MjI1OTIyOzg5NDM3NTM7bD9odHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVr
L3RvbC9saWZlX2FuZF9zdHlsZS9yZWxhdGVkX2ZlYXR1cmVzL2dyZWF0X2JyaXRp
c2hfc3VtbWVyLyI+PGltZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA1Njcv
Ym9hdHMxNjVfNTY3ODIwbC5naWYiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBj
bGFzcz0iZGlzcGxheS1ibG9jayIgYWx0PSJyb3dpbmcgYm9hdHMiIC8+PC9hPgo8
L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy1sZWZ0LTEwIHBhZGRpbmctdG9wLTUi
PgkKPGgyIGNsYXNzPSJzdWItaGVhZGluZyBwYWRkaW5nLWJvdHRvbS0zIHBhZGRp
bmctdG9wLTMiPjxhIGhyZWY9Imh0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvY2xr
OzIxNDIyNTkyMjs4OTQzNzUzO2w/aHR0cDovL3d3dy50aW1lc29ubGluZS5jby51
ay90b2wvbGlmZV9hbmRfc3R5bGUvcmVsYXRlZF9mZWF0dXJlcy9ncmVhdF9icml0
aXNoX3N1bW1lci8iIGNsYXNzPSJsaW5rLWZmZiI+R3JlYXQgQnJpdGlzaCBTdW1t
ZXIgOjwvYT48L2gyPgo8cCBjbGFzcz0ic21hbGwgY29sb3ItZmZmIj5NYWtlIHRo
ZSBtb3N0IG9mIHRoZSBzdW1tZXIgYW5kIGVudGVyIG91ciBmYWJ1bG91cyBwaG90
b2dyYXBoaWMgY29tcGV0aXRpb24sIHlvdSBjb3VsZCB3aW4gYSCjNTAwMCBob2xp
ZGF5PC9wPgkKPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYWN0aXZl
YmxvY2tzIj4KPGRpdiBjbGFzcz0idGV4dC1sZWZ0IGJnLTAwMCBoZWlnaHQtMTAw
IHdpZHRoLTMxNiI+CjxkaXYgY2xhc3M9ImZsb2F0LXJpZ2h0IHBhZGRpbmctbGVm
dC0xMCI+CjxhIGhyZWY9Imh0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvY2xrOzIx
NTQ5ODM3MzszODM4MTQ5OTthP2h0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsv
dG9sL3RyYXZlbC9yZWxhdGVkX2ZlYXR1cmVzL2NvcnNpY2EtdHJhdmVsLyI+PGlt
ZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA1ODIvY29yc2ljYTE2NV81ODI3
MTZsLmpwZyIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGNsYXNzPSJkaXNwbGF5
LWJsb2NrIiBhbHQ9IkNvcnNpY2EiIC8+PC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0i
cGFkZGluZy1sZWZ0LTEwIHBhZGRpbmctdG9wLTUiPgkKPGgyIGNsYXNzPSJzdWIt
aGVhZGluZyBwYWRkaW5nLWJvdHRvbS0zIHBhZGRpbmctdG9wLTMiPjxhIGhyZWY9
Imh0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvY2xrOzIxNTQ5ODM3MzszODM4MTQ5
OTthP2h0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL3RyYXZlbC9yZWxh
dGVkX2ZlYXR1cmVzL2NvcnNpY2EtdHJhdmVsLyIgY2xhc3M9ImxpbmstZmZmIj5D
b3JzaWNhIFRyYXZlbDo8L2E+PC9oMj4KPHAgY2xhc3M9InNtYWxsIGNvbG9yLWZm
ZiI+Q29yc2ljYSBpcyBhbiBpc2xhbmQgb2YgYmVhdXR5IGFuZCBjb250cmFzdCwg
YW4gaWRlYWwgaG9saWRheSBkZXN0aW5hdGlvbjwvcD4JCjwvZGl2Pgo8L2Rpdj4K
PC9kaXY+CjxkaXYgY2xhc3M9ImFjdGl2ZWJsb2NrcyI+CjxkaXYgY2xhc3M9InRl
eHQtbGVmdCBiZy0wMDAgaGVpZ2h0LTEwMCB3aWR0aC0zMTYiPgo8ZGl2IGNsYXNz
PSJmbG9hdC1yaWdodCBwYWRkaW5nLWxlZnQtMTAiPgo8YSBocmVmPSJodHRwOi8v
d3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9saWZlX2FuZF9zdHlsZS9yZWxhdGVk
X2ZlYXR1cmVzLyI+PGltZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA1MDEv
TW9yZV9SZXBvcnRzXzUwMTcyN2EuSlBHIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEw
MCIgY2xhc3M9ImRpc3BsYXktYmxvY2siIGFsdD0iTW9yZSBSZXBvcnRzIiAvPjwv
YT4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctbGVmdC0xMCBwYWRkaW5nLXRv
cC01Ij4JCjxoMiBjbGFzcz0ic3ViLWhlYWRpbmcgcGFkZGluZy1ib3R0b20tMyBw
YWRkaW5nLXRvcC0zIj48YSBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNv
LnVrL3RvbC9saWZlX2FuZF9zdHlsZS9yZWxhdGVkX2ZlYXR1cmVzLyIgY2xhc3M9
ImxpbmstZmZmIj5Nb3JlIHJlcG9ydHM6PC9hPjwvaDI+CjxwIGNsYXNzPSJzbWFs
bCBjb2xvci1mZmYiPkVuam95IGZ1cnRoZXIgcmVhZGluZyBmcm9tIFRyYXZlbCB0
byBGYXNoaW9uLCBCdXNpbmVzcyB0byBTcG9ydCwgZGlzY292ZXIgbW9yZTwvcD4J
CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjxkaXYg
Y2xhc3M9InRleHQtY2VudGVyIHdpZHRoLTMxNiBiZy1mNWY1ZjUgcGFkZGluZy1i
b3R0b20tNSBwYWRkaW5nLXRvcC0yIj4gPHNwYW4gY2xhc3M9ImJyb3dzZXItbGVm
dC1hbmQtcmlnaHQiPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImphdmFzY3JpcHQ6cmV0
dXJuICEgZk1vdmVDYXJvdXNlbDJDb2xGb2N1cygwLDEpOyIgb25rZXlwcmVzcz0i
amF2YXNjcmlwdDpyZXR1cm4gISBmTW92ZUNhcm91c2VsMkNvbEZvY3VzKDAsMSk7
Ij48aW1nIHNyYz0iaHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay90b2wvaW1n
L2dsb2JhbC9idXR0b24vYnV0dG9uLWxlZnQuZ2lmIiB3aWR0aD0iMTQiIGhlaWdo
dD0iMTQiIGJvcmRlcj0iMCIgYWx0PSJwcmV2aW91cyIgLz48L2E+PC9zcGFuPiA8
c3BhbiBjbGFzcz0iYnJvd3Nlci1sZWZ0LWFuZC1yaWdodCI+PGEgaHJlZj0iIyIg
b25jbGljaz0iamF2YXNjcmlwdDpyZXR1cm4gISBmTW92ZUNhcm91c2VsMkNvbEZv
Y3VzKDEsMSk7IiBvbmtleXByZXNzPSJqYXZhc2NyaXB0OnJldHVybiAhIGZNb3Zl
Q2Fyb3VzZWwyQ29sRm9jdXMoMSwxKTsiPjxpbWcgc3JjPSJodHRwOi8vd3d3LnRp
bWVzb25saW5lLmNvLnVrL3RvbC9pbWcvZ2xvYmFsL2J1dHRvbi9idXR0b24tcmln
aHQuZ2lmIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGJvcmRlcj0iMCIgYWx0PSJu
ZXh0IiAvPjwvYT48L3NwYW4+IDwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhci1zaW1w
bGUiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0xMCI+PC9kaXY+Cjxk
aXYgaWQ9ImJvdHRvbS1saW5rcy1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJmbG9h
dC1sZWZ0IHdpZHRoLTE0NSI+Cjx1bCBjbGFzcz0iY2hldnJvbi1saXN0IGNoZXZy
b24tYmx1ZSI+CjxsaT48YSBjbGFzcz0ibGluay0wNmMiIGhyZWY9Imh0dHA6Ly9h
ZC5kb3VibGVjbGljay5uZXQvY2xrOzIxMjU5NTYwMTsxMzM4MTc2NjtmP2h0dHA6
Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL3RyYXZlbC9yZWxhdGVkX2ZlYXR1
cmVzL25vcnRoZXJuX2xpZ2h0cy8iPk5vcnRoZXJuIExpZ2h0czwvYT48L2xpPgo8
bGk+PGEgY2xhc3M9ImxpbmstNjY2IiBocmVmPSJodHRwOi8vYWQuZG91YmxlY2xp
Y2submV0L2NsazsyMTAwOTkzMjQ7NjcwODM1NztqP2h0dHA6Ly93d3cudGltZXNv
bmxpbmUuY28udWsvdG9sL2J1c2luZXNzL3JlbGF0ZWRfcmVwb3J0cy9idXNpbmVz
c19zb2x1dGlvbnMvIj5CdXNpbmVzcyBTb2x1dGlvbnM8L2E+PC9saT4JCjxsaT48
YSBjbGFzcz0ibGluay02NjYiIGhyZWY9Imh0dHA6Ly9hZC5kb3VibGVjbGljay5u
ZXQvY2xrOzIwOTUzNDk3MTsxMDM0MTAyOTt6P2h0dHA6Ly9idXNpbmVzcy50aW1l
c29ubGluZS5jby51ay90b2wvYnVzaW5lc3MvaW5kdXN0cnlfc2VjdG9ycy9uZWVk
X3RvX2tub3cvIj5OZWVkIHRvIEtub3c8L2E+PC9saT4JCjxsaT48YSBjbGFzcz0i
bGluay02NjYiIGhyZWY9Imh0dHA6Ly9hZC5kb3VibGVjbGljay5uZXQvY2xrOzIx
Mzk5MTI0NDsxODE4MDUzNjtnP2h0dHA6Ly9idXNpbmVzcy50aW1lc29ubGluZS5j
by51ay90b2wvYnVzaW5lc3MvcmVsYXRlZF9yZXBvcnRzL2J1c2luZXNzX3dpc2Rv
bS8iPkJ1c2luZXNzIFdpc2RvbTwvYT48L2xpPgkKPC91bD4KPC9kaXY+CjxkaXYg
Y2xhc3M9ImZsb2F0LWxlZnQgd2lkdGgtMTQ1Ij4KPHVsIGNsYXNzPSJjaGV2cm9u
LWxpc3QgY2hldnJvbi1ibHVlIj4KPGxpPjxhIGNsYXNzPSJsaW5rLTY2NiIgaHJl
Zj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7MjA5NTI4Mjc5OzEzODcz
ODQzO3U/aHR0cDovL2J1c2luZXNzLnRpbWVzb25saW5lLmNvLnVrL3RvbC9idXNp
bmVzcy9yZWxhdGVkX3JlcG9ydHMvc29jaWFsX2VudHJlcHJlbmV1cnMvIj5Tb2Np
YWwgRW50cmVwcmVuZXVyczwvYT48L2xpPgkKPGxpPjxhIGNsYXNzPSJsaW5rLTY2
NiIgaHJlZj0iaHR0cDovL2FkLmRvdWJsZWNsaWNrLm5ldC9jbGs7MTg2MDk3NTg3
OzE1NDc5NzU1O2g/aHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay90b2wvdHJh
dmVsL2J1c2luZXNzLyI+QnVzaW5lc3MgVHJhdmVsPC9hPjwvbGk+CQo8bGk+PGEg
Y2xhc3M9ImxpbmstNjY2IiBocmVmPSJodHRwOi8vYWQuZG91YmxlY2xpY2submV0
L2NsazsyMTQyMjU5MjI7ODk0Mzc1MztsP2h0dHA6Ly93d3cudGltZXNvbmxpbmUu
Y28udWsvdG9sL2xpZmVfYW5kX3N0eWxlL3JlbGF0ZWRfZmVhdHVyZXMvZ3JlYXRf
YnJpdGlzaF9zdW1tZXIvIj5HcmVhdCBCcml0aXNoIFN1bW1lciA8L2E+PC9saT4J
CjxsaT48YSBjbGFzcz0ibGluay02NjYiIGhyZWY9Imh0dHA6Ly9hZC5kb3VibGVj
bGljay5uZXQvY2xrOzIxNTQ5ODM3MzszODM4MTQ5OTthP2h0dHA6Ly93d3cudGlt
ZXNvbmxpbmUuY28udWsvdG9sL3RyYXZlbC9yZWxhdGVkX2ZlYXR1cmVzL2NvcnNp
Y2EtdHJhdmVsLyI+Q29yc2ljYSBUcmF2ZWw8L2E+PC9saT4JCjxsaT48YSBjbGFz
cz0ibGluay02NjYiIGhyZWY9Imh0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsv
dG9sL2xpZmVfYW5kX3N0eWxlL3JlbGF0ZWRfZmVhdHVyZXMvIj5Nb3JlIHJlcG9y
dHM8L2E+PC9saT4JCjwvdWw+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xl
YXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC01Ij48L2Rpdj4KPC9k
aXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgo8IS0tCmlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKSAK
ewpnZXRFbGVtZW50QnlDbGFzc0ZvY3VzKCJhY3RpdmVibG9ja3MiKTsKc2V0SW50
ZXJ2YWwoInN3YXBjb250ZW50Rm9jdXMoKSIsIDUwMDApOwp9Ci8vLS0+Cjwvc2Ny
aXB0Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwhLS0gQkVHSU46SW5oZXJp
dGVkIFJJR0hUIFRPUCBJTkhFUklURU5DRSBPUEVOIE1vZHVsZXMgLS0+CjwhLS1Q
dWZmIE1vZHVsZSBQdWJsaXNoZWQgRGF0ZSA6IEFwciAyNSwgMjAwNyA2OjAxIFBN
LS0+Cjxmb3JtIG5hbWU9InB1ZmZGb3JtMiIgbWV0aG9kPSJwb3N0IiBhY3Rpb249
IiI+CjxkaXYgY2xhc3M9InB1ZmYtc3F1YXJlIj4KPGRpdiBjbGFzcz0iZmxvYXQt
cmlnaHQiPgo8YSBocmVmPSJodHRwOi8vd3d3LnRoZWZ1bGxlcmN2LmNvbS90aW1l
c29ubGluZS5hc3AiPgo8aW1nIHNyYz0iL211bHRpbWVkaWEvYXJjaGl2ZS8wMDUw
MC9Kb2JfSW50ZXJ2aWV3XzUwMDk5MHAuanBnIiBjbGFzcz0iZGlzcGxheS1ibG9j
ayIgd2lkdGg9IjE2NSIgaGVpZ2h0PSI3MCIgYWx0PSJHZW5lcmljIHBob3RvIG9m
IGEgam9iIGludGVydmlldy4iIC8+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Indp
ZHRoLTE2OSBmbG9hdC1sZWZ0Ij4KPGRpdiBjbGFzcz0icGFkZGluZy1sZWZ0LXJp
Z2h0LTkgcGFkZGluZy10b3AtNS1ib3R0b20tNCI+CjxoMyBjbGFzcz0ic2VjdGlv
bi1oZWFkaW5nIj48L2gzPgkKPGgyIGNsYXNzPSJzdWItaGVhZGluZy1wdWZmIj4K
PGEgY2xhc3M9ImxpbmstMDZjIiBocmVmPSJodHRwOi8vd3d3LnRoZWZ1bGxlcmN2
LmNvbS90aW1lc29ubGluZS5hc3AiIHJlbD0ibm9mb2xsb3ciPkZyZWUgQ1YgUmV2
aWV3PC9hPgo8L2gyPgo8IS0tPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIHBhZGRp
bmctdG9wLTMiPjwvZGl2Pi0tPgo8cCBjbGFzcz0ic21hbGwiPlNlbGwgeW91cnNl
bGYhIEhhdmUgeW91ciBDViByZXZpZXdlZCBieSBleHBlcnRzPC9wPiAKPCEtLTxk
aXYgY2xhc3M9ImNsZWFyLXNpbXBsZSBwYWRkaW5nLXRvcC0zIj48L2Rpdj4tLT4K
PCEtLSBQYWRkaW5nIGJvdHRvbSA3IGFwcGxpZWQgYXMgdGhlcmUgaXMgYW5vdGhl
ciAicHVmZiIgYWZ0ZXIgaXQuIFJlbW92ZSBpZiB0aGlzIGlzIHRoZSBsYXN0IHB1
ZmYuIC0tPgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvZGl2Pgo8L2Rpdj4K
PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9mb3JtPgo8IS0tUHVm
ZiBNb2R1bGUgUHVibGlzaGVkIERhdGUgOiBNYXIgMiwgMjAwNyA0OjQ3IFBNLS0+
Cjxmb3JtIG5hbWU9InB1ZmZGb3JtMyIgbWV0aG9kPSJwb3N0IiBhY3Rpb249IiI+
CjxkaXYgY2xhc3M9InB1ZmYtc3F1YXJlIj4KPGRpdiBjbGFzcz0iZmxvYXQtcmln
aHQiPgo8YSBocmVmPSJodHRwOi8vd3d3LmJjZ2xvY2F0aW9ucy5jb20iPgo8aW1n
IHNyYz0iL211bHRpbWVkaWEvYXJjaGl2ZS8wMDE1MC9iY2dfMTY1XzE1MDk0MWEu
anBnIiBjbGFzcz0iZGlzcGxheS1ibG9jayIgd2lkdGg9IjE2NSIgaGVpZ2h0PSI3
MCIgYWx0PSJUaGUgU2luZ2Fwb3JlIHNreWxpbmUgcGljdHVyZWQgYXQgbmlnaHQi
IC8+CjwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9IndpZHRoLTE2OSBmbG9hdC1sZWZ0
Ij4KPGRpdiBjbGFzcz0icGFkZGluZy1sZWZ0LXJpZ2h0LTkgcGFkZGluZy10b3At
NS1ib3R0b20tNCI+CjxoMyBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj48L2gzPgkK
PGgyIGNsYXNzPSJzdWItaGVhZGluZy1wdWZmIj4KPGEgY2xhc3M9ImxpbmstMDZj
IiBocmVmPSJodHRwOi8vd3d3LmJjZ2xvY2F0aW9ucy5jb20iIHJlbD0ibm9mb2xs
b3ciPkJ1c2luZXNzIGNpdHkgZ3VpZGVzPC9hPgo8L2gyPgo8IS0tPGRpdiBjbGFz
cz0iY2xlYXItc2ltcGxlIHBhZGRpbmctdG9wLTMiPjwvZGl2Pi0tPgo8cCBjbGFz
cz0ic21hbGwiPk92ZXJzZWFzIGNvbnRhY3RzIGFuZCBsb2NhbCBidXNpbmVzcyBp
bmZvcm1hdGlvbjwvcD4gCjwhLS08ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUgcGFk
ZGluZy10b3AtMyI+PC9kaXY+LS0+CjwhLS0gUGFkZGluZyBib3R0b20gNyBhcHBs
aWVkIGFzIHRoZXJlIGlzIGFub3RoZXIgInB1ZmYiIGFmdGVyIGl0LiBSZW1vdmUg
aWYgdGhpcyBpcyB0aGUgbGFzdCBwdWZmLiAtLT4KPGRpdiBjbGFzcz0iY2xlYXIi
PjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+
PC9kaXY+CjwvZm9ybT4KPCEtLUVORDogSW5oZXJpdGVkIFJJR0hUIFRPUCBJTkhF
UklURU5DRSBPUEVOIE1vZHVsZXMgLS0+CjwhLS1CRUdJTjpJbmhlcml0ZWQgUklH
SFQgQk9UVE9NIElOSEVSSVRFTkNFIE9QRU4gTW9kdWxlcyAtLT4KPCEtLVB1ZmYg
TW9kdWxlIFB1Ymxpc2hlZCBEYXRlIDogSnVsIDE2LCAyMDA5IDU6MDQgUE0tLT4K
PGZvcm0gbmFtZT0icHVmZkZvcm00IiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4K
PGRpdiBjbGFzcz0icHVmZi1zcXVhcmUiPgo8ZGl2IGNsYXNzPSJmbG9hdC1yaWdo
dCI+CjxhIGhyZWY9Imh0dHA6Ly9idXNpbmVzcy50aW1lc29ubGluZS5jby51ay90
b2wvYnVzaW5lc3MvaW5kdXN0cnlfc2VjdG9ycy9hcnRpY2xlNjcxNjczMS5lY2Ui
Pgo8aW1nIHNyYz0iL211bHRpbWVkaWEvYXJjaGl2ZS8wMDQyMi9ncmFwaF80MjI1
MDFhLmpwZyIgY2xhc3M9ImRpc3BsYXktYmxvY2siIHdpZHRoPSIxNjUiIGhlaWdo
dD0iNzAiIGFsdD0iSWxsdXN0cmF0aW9uIG9mIGEgbWFuIHdhbGtpbmcgdXAgYSBn
cmFwaCIgLz4KPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0id2lkdGgtMTY5IGZsb2F0
LWxlZnQiPgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWxlZnQtcmlnaHQtOSBwYWRkaW5n
LXRvcC01LWJvdHRvbS00Ij4KPGgzIGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPjwv
aDM+CQo8aDIgY2xhc3M9InN1Yi1oZWFkaW5nLXB1ZmYiPgo8YSBjbGFzcz0ibGlu
ay0wNmMiIGhyZWY9Imh0dHA6Ly9idXNpbmVzcy50aW1lc29ubGluZS5jby51ay90
b2wvYnVzaW5lc3MvaW5kdXN0cnlfc2VjdG9ycy9hcnRpY2xlNjcxNjczMS5lY2Ui
PkhpZ2ggUGVyZm9ybWFuY2U8L2E+CjwvaDI+CjwhLS08ZGl2IGNsYXNzPSJjbGVh
ci1zaW1wbGUgcGFkZGluZy10b3AtMyI+PC9kaXY+LS0+CjxwIGNsYXNzPSJzbWFs
bCI+SW5ub3ZhdGlvbiBhZGRzIHNvbWUgZml6eiB0byBCcml0dmljIHRyYWRpbmcg
cmVzdWx0czwvcD4gCjwhLS08ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUgcGFkZGlu
Zy10b3AtMyI+PC9kaXY+LS0+CjwhLS0gUGFkZGluZyBib3R0b20gNyBhcHBsaWVk
IGFzIHRoZXJlIGlzIGFub3RoZXIgInB1ZmYiIGFmdGVyIGl0LiBSZW1vdmUgaWYg
dGhpcyBpcyB0aGUgbGFzdCBwdWZmLiAtLT4KPGRpdiBjbGFzcz0iY2xlYXIiPjwv
ZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9k
aXY+CjwvZm9ybT4KPCEtLVB1ZmYgTW9kdWxlIFB1Ymxpc2hlZCBEYXRlIDogSmFu
IDMwLCAyMDA5IDQ6NTQgUE0tLT4KPGZvcm0gbmFtZT0icHVmZkZvcm01IiBtZXRo
b2Q9InBvc3QiIGFjdGlvbj0iIj4KPGRpdiBjbGFzcz0icHVmZi1zcXVhcmUiPgo8
ZGl2IGNsYXNzPSJmbG9hdC1yaWdodCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cudGFr
ZWxlZ2FsYWR2aWNlLmNvbS9hZmZpbGlhdGVzLz9pZD1UaW1lcy0oUGVyc29uYWwp
Ij4KPGltZyBzcmM9Ii9tdWx0aW1lZGlhL2FyY2hpdmUvMDA0NzgvanVkZ2UzODVf
NDc4MjcxcC5qcGciIGNsYXNzPSJkaXNwbGF5LWJsb2NrIiB3aWR0aD0iMTY1IiBo
ZWlnaHQ9IjcwIiBhbHQ9IkEgbGF3eWVyIHdpdGggZ293biBhbmQgd2lnIiAvPgo8
L2E+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ3aWR0aC0xNjkgZmxvYXQtbGVmdCI+Cjxk
aXYgY2xhc3M9InBhZGRpbmctbGVmdC1yaWdodC05IHBhZGRpbmctdG9wLTUtYm90
dG9tLTQiPgo8aDMgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+PC9oMz4JCjxoMiBj
bGFzcz0ic3ViLWhlYWRpbmctcHVmZiI+CjxhIGNsYXNzPSJsaW5rLTA2YyIgaHJl
Zj0iaHR0cDovL3d3dy50YWtlbGVnYWxhZHZpY2UuY29tL2FmZmlsaWF0ZXMvP2lk
PVRpbWVzLShQZXJzb25hbCkiIHJlbD0ibm9mb2xsb3ciPkZpbmQgYSBMYXd5ZXI8
L2E+CjwvaDI+CjwhLS08ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUgcGFkZGluZy10
b3AtMyI+PC9kaXY+LS0+CjxwIGNsYXNzPSJzbWFsbCI+Q3V0IHlvdXIgbGVnYWwg
Y29zdHM8L3A+IAo8IS0tPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIHBhZGRpbmct
dG9wLTMiPjwvZGl2Pi0tPgo8IS0tIFBhZGRpbmcgYm90dG9tIDcgYXBwbGllZCBh
cyB0aGVyZSBpcyBhbm90aGVyICJwdWZmIiBhZnRlciBpdC4gUmVtb3ZlIGlmIHRo
aXMgaXMgdGhlIGxhc3QgcHVmZi4gLS0+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rp
dj4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2
Pgo8L2Zvcm0+CjwhLS1QdWZmIE1vZHVsZSBQdWJsaXNoZWQgRGF0ZSA6IE1hciAx
OCwgMjAwOSAxMDoxOCBBTS0tPgo8Zm9ybSBuYW1lPSJwdWZmRm9ybTYiIG1ldGhv
ZD0icG9zdCIgYWN0aW9uPSIiPgo8ZGl2IGNsYXNzPSJwdWZmLXNxdWFyZSI+Cjxk
aXYgY2xhc3M9ImZsb2F0LXJpZ2h0Ij4KPGEgaHJlZj0iaHR0cDovL3d3dy5qb2lu
Y3JlZGl0ZXhwZXJ0LmNvbS9mcmVlY3JlZGl0cmVwb3J0Lz9zYz00MTAwMTcmYW1w
O2JjZD10aW1lc2NyZWRpdGNlbnRyZWZyZSI+CjxpbWcgc3JjPSIvbXVsdGltZWRp
YS9hcmNoaXZlLzAwNTAxL01vbmV5XzUwMTAyMnAuanBnIiBjbGFzcz0iZGlzcGxh
eS1ibG9jayIgd2lkdGg9IjE2NSIgaGVpZ2h0PSI3MCIgYWx0PSIiIC8+CjwvYT4K
PC9kaXY+CjxkaXYgY2xhc3M9IndpZHRoLTE2OSBmbG9hdC1sZWZ0Ij4KPGRpdiBj
bGFzcz0icGFkZGluZy1sZWZ0LXJpZ2h0LTkgcGFkZGluZy10b3AtNS1ib3R0b20t
NCI+CjxoMyBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj48L2gzPgkKPGgyIGNsYXNz
PSJzdWItaGVhZGluZy1wdWZmIj4KPGEgY2xhc3M9ImxpbmstMDZjIiBocmVmPSJo
dHRwOi8vd3d3LmpvaW5jcmVkaXRleHBlcnQuY29tL2ZyZWVjcmVkaXRyZXBvcnQv
P3NjPTQxMDAxNyZiY2Q9dGltZXNjcmVkaXRjZW50cmVmcmUiIHJlbD0ibm9mb2xs
b3ciPkZyZWUgY3JlZGl0IHJlcG9ydDwvYT4KPC9oMj4KPCEtLTxkaXYgY2xhc3M9
ImNsZWFyLXNpbXBsZSBwYWRkaW5nLXRvcC0zIj48L2Rpdj4tLT4KPHAgY2xhc3M9
InNtYWxsIj5PbmxpbmUgY3JlZGl0IGhpc3Rvcnkgd2l0aCBDcmVkaXRFeHBlcnQg
ZnJvbSBFeHBlcmlhbjwvcD4gCjwhLS08ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUg
cGFkZGluZy10b3AtMyI+PC9kaXY+LS0+CjwhLS0gUGFkZGluZyBib3R0b20gNyBh
cHBsaWVkIGFzIHRoZXJlIGlzIGFub3RoZXIgInB1ZmYiIGFmdGVyIGl0LiBSZW1v
dmUgaWYgdGhpcyBpcyB0aGUgbGFzdCBwdWZmLiAtLT4KPGRpdiBjbGFzcz0iY2xl
YXIiPjwvZGl2Pgo8L2Rpdj4KPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVh
ciI+PC9kaXY+CjwvZm9ybT4KPCEtLSBFTkQ6IEluaGVyaXRlZCBSSUdIVCBCT1RU
T00gSU5IRVJJVEVOQ0UgT1BFTiBNb2R1bGVzIC0tPgo8ZGl2IGNsYXNzPSJ0ZXh0
LWxlZnQgd2lkdGgtMzM2Ij4KPGRpdiBjbGFzcz0id2lkdGgtMTAwLXBlcmNlbnQi
Pgo8ZGl2IGNsYXNzPSJiZy1mNWY1ZjUiPgo8ZGl2IGNsYXNzPSJxdWljay1saW5r
cy1jb250YWluZXIiPgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWxlZnQtcmlnaHQtOSBw
YWRkaW5nLXRvcC01IHBhZGRpbmctYm90dG9tLTIiPgo8aDMgY2xhc3M9InNlY3Rp
b24taGVhZGluZyI+PHNwYW4gY2xhc3M9ImNvbG9yLTY2NiI+UG9wdWxhciBTZWFy
Y2hlcyBvbiBUaW1lcyBPbmxpbmU8L3NwYW4+PC9oMz4KPC9kaXY+CjxkaXYgY2xh
c3M9ImdyZXktbGluZSI+PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4K
PGRpdiBjbGFzcz0icGFkZGluZy1sZWZ0LXJpZ2h0LTcgcGFkZGluZy1ib3R0b20t
NyI+CQo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAxIj4KPGEgY2xhc3M9Imxpbmst
MDZjIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9zcG9y
dC9jcmlja2V0LyI+CjxzdHJvbmc+IGFzaGVzPC9zdHJvbmc+CjwvYT48L3NwYW4+
JiN4MDAyMDsKPHNwYW4gY2xhc3M9InNlYXJjaC1zZXBlcmF0b3IiPnw8L3NwYW4+
JiN4MDAyMDsKPHNwYW4gY2xhc3M9InRvcC1zZWFyY2gwMyI+CjxhIGNsYXNzPSJs
aW5rLTA2YyIgaHJlZj0iaHR0cDovL2VudGVydGFpbm1lbnQudGltZXNvbmxpbmUu
Y28udWsvdG9sL2FydHNfYW5kX2VudGVydGFpbm1lbnQvYm9va3MvIj4KPHN0cm9u
Zz4gYm9va3MgPC9zdHJvbmc+CjwvYT48L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xh
c3M9InNlYXJjaC1zZXBlcmF0b3IiPnw8L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xh
c3M9InRvcC1zZWFyY2gwMSI+CjxhIGNsYXNzPSJsaW5rLTA2YyIgaHJlZj0iaHR0
cDovL2VudGVydGFpbm1lbnQudGltZXNvbmxpbmUuY28udWsvdG9sL2FydHNfYW5k
X2VudGVydGFpbm1lbnQvZ2FtZXNfYW5kX3B1enpsZXMvY2hlc3MvIj4KPHN0cm9u
Zz4gY2hlc3MgPC9zdHJvbmc+CjwvYT48L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xh
c3M9InNlYXJjaC1zZXBlcmF0b3IiPnw8L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xh
c3M9InRvcC1zZWFyY2gwMyI+CjxhIGNsYXNzPSJsaW5rLTA2YyIgaHJlZj0iaHR0
cDovL3dvbWVuLnRpbWVzb25saW5lLmNvLnVrL3RvbC9saWZlX2FuZF9zdHlsZS93
b21lbi9mYXNoaW9uLyI+CjxzdHJvbmc+IGZhc2hpb24gPC9zdHJvbmc+CjwvYT48
L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xhc3M9InNlYXJjaC1zZXBlcmF0b3IiPnw8
L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xhc3M9InRvcC1zZWFyY2gwMiI+CjxhIGNs
YXNzPSJsaW5rLTA2YyIgaHJlZj0iaHR0cDovL3d3dy50aW1lc29ubGluZS5jby51
ay90b2wvc3BvcnQvZm9vdGJhbGwvIj4KPHN0cm9uZz4gZm9vdGJhbGwgPC9zdHJv
bmc+CjwvYT48L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xhc3M9InNlYXJjaC1zZXBl
cmF0b3IiPnw8L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xhc3M9InRvcC1zZWFyY2gw
MSI+CjxhIGNsYXNzPSJsaW5rLTA2YyIgaHJlZj0iaHR0cDovL3d3dy50aW1lc29u
bGluZS5jby51ay90b2wvc3BvcnQvZm9ybXVsYV8xLyI+CjxzdHJvbmc+IGZvcm11
bGEgMSA8L3N0cm9uZz4KPC9hPjwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0i
c2VhcmNoLXNlcGVyYXRvciI+fDwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0i
dG9wLXNlYXJjaDAxIj4KPGEgY2xhc3M9ImxpbmstMDZjIiBocmVmPSJodHRwOi8v
d3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9zeXN0ZW0vdG9waWNSb290L01pY2hh
ZWxfSmFja3Nvbi8iPgo8c3Ryb25nPiBNaWNoYWVsIEphY2tzb248L3N0cm9uZz4K
PC9hPjwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0ic2VhcmNoLXNlcGVyYXRv
ciI+fDwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAyIj4K
PGEgY2xhc3M9ImxpbmstMDZjIiBocmVmPSJodHRwOi8vYnVzaW5lc3MudGltZXNv
bmxpbmUuY28udWsvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvbmVlZF90
b19rbm93LyI+CjxzdHJvbmc+IG5lZWQgdG8ga25vdyA8L3N0cm9uZz4KPC9hPjwv
c3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0ic2VhcmNoLXNlcGVyYXRvciI+fDwv
c3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAyIj4KPGEgY2xh
c3M9ImxpbmstMDZjIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVr
L3RvbC9jb21tZW50L29iaXR1YXJpZXMvIj4KPHN0cm9uZz4gb2JpdHVhcmllczwv
c3Ryb25nPgo8L2E+PC9zcGFuPiYjeDAwMjA7CjxzcGFuIGNsYXNzPSJzZWFyY2gt
c2VwZXJhdG9yIj58PC9zcGFuPiYjeDAwMjA7CjxzcGFuIGNsYXNzPSJ0b3Atc2Vh
cmNoMDIiPgo8YSBjbGFzcz0ibGluay0wNmMiIGhyZWY9Imh0dHA6Ly93d3cudGlt
ZXNvbmxpbmUuY28udWsvdG9sL2xpZmVfYW5kX3N0eWxlL2Zvb2RfYW5kX2RyaW5r
L3JlY2lwZXMvIj4KPHN0cm9uZz4gcmVjaXBlcyA8L3N0cm9uZz4KPC9hPjwvc3Bh
bj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0ic2VhcmNoLXNlcGVyYXRvciI+fDwvc3Bh
bj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAyIj4KPGEgY2xhc3M9
ImxpbmstMDZjIiBocmVmPSJodHRwOi8vYnVzaW5lc3MudGltZXNvbmxpbmUuY28u
dWsvdG9sL2J1c2luZXNzL2NvbW1lcmNpYWwvY2FsY3VsYXRvci8iPgo8c3Ryb25n
PiByZWR1bmRhbmN5IGNhbGN1bGF0b3IgPC9zdHJvbmc+CjwvYT48L3NwYW4+JiN4
MDAyMDsKPHNwYW4gY2xhc3M9InNlYXJjaC1zZXBlcmF0b3IiPnw8L3NwYW4+JiN4
MDAyMDsKPHNwYW4gY2xhc3M9InRvcC1zZWFyY2gwMSI+CjxhIGNsYXNzPSJsaW5r
LTA2YyIgaHJlZj0iaHR0cDovL2J1c2luZXNzLnRpbWVzb25saW5lLmNvLnVrL3Rv
bC9idXNpbmVzcy9zcGVjaWFscy9yaWNoX2xpc3QvIj4KPHN0cm9uZz4gcmljaCBs
aXN0PC9zdHJvbmc+CjwvYT48L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xhc3M9InNl
YXJjaC1zZXBlcmF0b3IiPnw8L3NwYW4+JiN4MDAyMDsKPHNwYW4gY2xhc3M9InRv
cC1zZWFyY2gwMyI+CjxhIGNsYXNzPSJsaW5rLTA2YyIgaHJlZj0iaHR0cDovL3d3
dy50aW1lc29ubGluZS5jby51ay90b2wvbW9uZXkvc2F2aW5ncy8iPgo8c3Ryb25n
PiBzYXZpbmdzIDwvc3Ryb25nPgo8L2E+PC9zcGFuPiYjeDAwMjA7CjxzcGFuIGNs
YXNzPSJzZWFyY2gtc2VwZXJhdG9yIj58PC9zcGFuPiYjeDAwMjA7CjxzcGFuIGNs
YXNzPSJ0b3Atc2VhcmNoMDEiPgo8YSBjbGFzcz0ibGluay0wNmMiIGhyZWY9Imh0
dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL25ld3MvdWsvc2NpZW5jZS8i
Pgo8c3Ryb25nPiBzY2llbmNlPC9zdHJvbmc+CjwvYT48L3NwYW4+JiN4MDAyMDsK
PHNwYW4gY2xhc3M9InNlYXJjaC1zZXBlcmF0b3IiPnw8L3NwYW4+JiN4MDAyMDsK
PHNwYW4gY2xhc3M9InRvcC1zZWFyY2gwMiI+CjxhIGNsYXNzPSJsaW5rLTA2YyIg
aHJlZj0iaHR0cDovL2VudGVydGFpbm1lbnQudGltZXNvbmxpbmUuY28udWsvdG9s
L2FydHNfYW5kX2VudGVydGFpbm1lbnQvZ2FtZXNfYW5kX3B1enpsZXMvc3Vkb2t1
LyI+CjxzdHJvbmc+IHN1ZG9rdSA8L3N0cm9uZz4KPC9hPjwvc3Bhbj4mI3gwMDIw
Owo8c3BhbiBjbGFzcz0ic2VhcmNoLXNlcGVyYXRvciI+fDwvc3Bhbj4mI3gwMDIw
Owo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAxIj4KPGEgY2xhc3M9ImxpbmstMDZj
IiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9zeXN0ZW0v
dG9waWNSb290L1N3aW5lX2ZsdS8iPgo8c3Ryb25nPiBzd2luZSBmbHU8L3N0cm9u
Zz4KPC9hPjwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0ic2VhcmNoLXNlcGVy
YXRvciI+fDwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAx
Ij4KPGEgY2xhc3M9ImxpbmstMDZjIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25s
aW5lLmNvLnVrL3RvbC90b29sc19hbmRfc2VydmljZXMvdHdpdHRlci8iPgo8c3Ry
b25nPiB0d2l0dGVyIDwvc3Ryb25nPgo8L2E+PC9zcGFuPiYjeDAwMjA7CjxzcGFu
IGNsYXNzPSJzZWFyY2gtc2VwZXJhdG9yIj58PC9zcGFuPiYjeDAwMjA7CjxzcGFu
IGNsYXNzPSJ0b3Atc2VhcmNoMDMiPgo8YSBjbGFzcz0ibGluay0wNmMiIGhyZWY9
Imh0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL2xpZmVfYW5kX3N0eWxl
L2VkdWNhdGlvbi9nb29kX3VuaXZlcnNpdHlfZ3VpZGUvIj4KPHN0cm9uZz4gdW5p
dmVyc2l0eSBndWlkZTwvc3Ryb25nPgo8L2E+PC9zcGFuPiYjeDAwMjA7CjxzcGFu
IGNsYXNzPSJzZWFyY2gtc2VwZXJhdG9yIj58PC9zcGFuPiYjeDAwMjA7CjxzcGFu
IGNsYXNzPSJ0b3Atc2VhcmNoMDEiPgo8YSBjbGFzcz0ibGluay0wNmMiIGhyZWY9
Imh0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsvdG9sL2xpZmVfYW5kX3N0eWxl
L2Zvb2RfYW5kX2RyaW5rL3dpbmUvIj4KPHN0cm9uZz4gd2luZSA8L3N0cm9uZz4K
PC9hPjwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0ic2VhcmNoLXNlcGVyYXRv
ciI+fDwvc3Bhbj4mI3gwMDIwOwo8c3BhbiBjbGFzcz0idG9wLXNlYXJjaDAzIj4K
PGEgY2xhc3M9ImxpbmstMDZjIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5l
LmNvLnVrL3RvbC90cmF2ZWwvbmV3cy9hcnRpY2xlNTMxNDI3Ni5lY2UiPgo8c3Ry
b25nPnRyYXZlbCBkZWFscyA8L3N0cm9uZz4KPC9hPjwvc3Bhbj4mI3gwMDIwOwo8
L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJncmV5
LWxpbmUiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLWxlZnQtcmlnaHQtOSBw
YWRkaW5nLWJvdHRvbS03IHBhZGRpbmctdG9wLTIiPgo8cCBjbGFzcz0ieC1zbWFs
bCI+U2hvcnRjdXRzIHRvIGhlbHAgeW91IGZpbmQgc2VjdGlvbnMgYW5kIGFydGlj
bGVzPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj4K
PC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPCEtLSBCRUdJTjogQ2xhc3NpZmllZCBNdWx0
aXBsZSBRdWljayBTZWFyY2gtLT4KPGRpdiBjbGFzcz0iZmxvYXQtbGVmdCBwYWRk
aW5nLWJvdHRvbS0xMCI+CjwhLS1DbGFzc2lmaWVkIE11bHRpcGxlIE5hcnJvdyBQ
dWJsaXNoZWQgRGF0ZSA6IERlYyAyNywgMjAwNiAxMjoxNiBQTSAtLT4KPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL3RvbC9qcy9mb3JtLXZhbGlk
YXRpb24uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIvdG9sL2pzL200Mi1jbGFzc2lmaWVkcy1xdWlja3NlYXJjaC5qcyI+
PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2
YXIgYUNsYXNzaWZpZWRzTG9uZ0NhdGVnb3JpZXMgPSBuZXcgQXJyYXkoJ0NhcnMn
LCdKb2JzJywnUHJvcGVydHknLCdUcmF2ZWwnKTsgLy8gQXJyYXkgb2YgY2F0ZWdv
cnkgbGFiZWxzCnZhciBzU2VsZWN0ZWRDbGFzc2lmaWVkc0xvbmcgPSAnY2xhc3Np
ZmllZHMtbG9uZy0xJzsgLy8gSW5pdGlhbCBzZWN0aW9uIHRvIGRpc3BsYXkuIE9w
dGlvbnMgYXJlIDEgPSBjYXJzIHwgMiA9IGpvYnMgfCAzID0gcHJvcGVydHkgfCA0
ID0gdHJhdmVsIG4uYi4gQ2FycyBtdXN0IHJlbWFpbiBubyAxIGFzIGl0IGlzIHJl
ZmVycmVkIHRvIGluIHRoZSBmU2hvd0hpZGVDbGFzc2lmaWVkc0xvbmdDYXRlZ29y
eSgpIGZ1bmN0aW9uIGluIHRoZSBtNDItY2xhc3NpZmllZHMtcXVpY2tzZWFyY2gu
anMgZmlsZS4KdmFyIHNTZWxlY3RlZENsYXNzaWZpZWRzTG9uZ1RhYiA9ICcnOwov
Ly0tPgo8L3NjcmlwdD4KPCEtLSBCRUdJTjogTW9kdWxlIC0gTTQyIENsYXNzaWZp
ZWRzIFF1aWNrIFNlYXJjaCAoYikgLS0+CjxkaXYgY2xhc3M9ImNsYXNzaWZpZWRz
LWxvbmctY29udGFpbmVyIGZsb2F0LWxlZnQgcGFkZGluZy10b3AtMyI+CjxkaXYg
Y2xhc3M9ImNsYXNzaWZpZWRzLWxvbmctc2lkZXMgcGFkZGluZy10b3AtNSBwYWRk
aW5nLWxlZnQtcmlnaHQtOSI+CjxoMyBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj48
YSBocmVmPSIvdG9sL2NsYXNzaWZpZWRzLyIgY2xhc3M9ImxpbmstMzMzIHBhZGRp
bmctcmlnaHQtMTAiPkNsYXNzaWZpZWRzPC9hPjxzcGFuIGNsYXNzPSJkb3VibGUt
Y2hldnJvbi1yaWdodCI+Jm5ic3A7PC9zcGFuPjwvaDM+CjwvZGl2Pgo8ZGl2IGNs
YXNzPSJjbGFzc2lmaWVkcy1sb25nLXNpZGVzIj4KPGRpdiBjbGFzcz0icGFkZGlu
Zy10b3AtNSI+PC9kaXY+CjxkaXYgaWQ9ImNsYXNzaWZpZWRzLWxvbmctbGlua3Mi
Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KLy8gV3JpdGVz
IG91dCBjbGFzc2lmaWVkcyBsb25nIGNhdGVnb3J5IGxpbmtzCmZHZW5lcmF0ZUNs
YXNzaWZpZWRzTG9uZ0xpbmtzKCk7Ci8vLS0+Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+
Cjx1bCBjbGFzcz0ic21hbGwiPgo8bGkgY2xhc3M9InBhZGRpbmctbGVmdC1yaWdo
dC05IHdoaXRlLXRhYiI+PGEgY2xhc3M9InRvb2xzLTA2YyIgaHJlZj0iI3N0YXJ0
b2ZjYXJzIj5DYXJzPC9hPjxiciAvPjwvbGk+CjxsaSBjbGFzcz0icGFkZGluZy1s
ZWZ0LXJpZ2h0LTkgd2hpdGUtdGFiIj48YSBjbGFzcz0idG9vbHMtMDZjIiBocmVm
PSIjc3RhcnRvZmpvYnMiPkpvYnM8L2E+PGJyIC8+PC9saT4KPGxpIGNsYXNzPSJw
YWRkaW5nLWxlZnQtcmlnaHQtOSB3aGl0ZS10YWIiPjxhIGNsYXNzPSJ0b29scy0w
NmMiIGhyZWY9IiNzdGFydG9mcHJvcGVydHkiPlByb3BlcnR5PC9hPjxiciAvPjwv
bGk+CjxsaSBjbGFzcz0icGFkZGluZy1sZWZ0LXJpZ2h0LTkgd2hpdGUtdGFiIj48
YSBjbGFzcz0idG9vbHMtMDZjIiBocmVmPSIjc3RhcnRvZnRyYXZlbCI+VHJhdmVs
PC9hPjxiciAvPjwvbGk+CjwvdWw+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTUi
PjwvZGl2Pgo8L25vc2NyaXB0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXItc2lt
cGxlIj48L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy10b3AtNSI+PC9kaXY+Cjwv
ZGl2Pgo8ZGl2IGNsYXNzPSJjbGFzc2lmaWVkcy1sb25nLXNpZGVzIHBhZGRpbmct
bGVmdC1yaWdodC05Ij4KPCEtLSBTdGFydCBvZiBDYXJzIHNlY3Rpb24gLS0+Cjxk
aXYgaWQ9ImNsYXNzaWZpZWRzLWxvbmctMS1jb250ZW50Ij4KPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCi8vIEhpZGUgY2FycyBzZWN0aW9uCmZT
aG93SGlkZUVsZW1lbnQoJ2NsYXNzaWZpZWRzLWxvbmctMS1jb250ZW50Jyk7Ci8v
LS0+Cjwvc2NyaXB0Pgo8YSBuYW1lPSJzdGFydG9mY2FycyI+PC9hPgo8aDMgY2xh
c3M9InNlY3Rpb24taGVhZGluZyI+Q2FyczwvaDM+CjxkaXYgY2xhc3M9InBhZGRp
bmctdG9wLTUiPjwvZGl2Pgo8YSBocmVmPSIjZW5kb2ZjYXJzIiBjbGFzcz0iYWNj
ZXNzLXRleHQiPlNraXAgQ2FycyBvZiB0aGUgV2VlazwvYT48YnIgY2xhc3M9ImFj
Y2Vzcy10ZXh0IiAvPjxiciBjbGFzcz0iYWNjZXNzLXRleHQiIC8+CjxkaXY+Cjxh
IGhyZWY9J2h0dHA6Ly9jYXJsZWFzaW5nbWFkZXNpbXBsZS5jb20vP3RpbWVzb25s
aW5lJyBjbGFzcz0icmVnLWJvbGQiIHJlbD0ibm9mb2xsb3ciPkNhciBsZWFzaW5n
IDwvYT4KPHAgY2xhc3M9InNtYWxsIj4KPGJyIC8+ClRoZSBjbGV2ZXIgd2F5IHRv
IGxlYXNlIGEgbmV3IGNhciBpcyB3aXRoIENhciBsZWFzaW5nIG1hZGUgc2ltcGxl
JnRyYWRlOyA8YnIgLz4KPGJyIC8+IAo8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJj
bGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4K
PGRpdiBjbGFzcz0icHVmZi10b3AgY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJw
YWRkaW5nLXRvcC0xMCI+PC9kaXY+CjxkaXY+CjxhIGhyZWY9JyBodHRwOi8vY2Fy
bGVhc2luZ21hZGVzaW1wbGUuY29tL3BlcnNvbmFsLWNhci1sZWFzaW5nLzM5NTM1
L2F1ZGktYTUtY291cGUvNDM1OTQtMzYxME4tODA0Lz90aW1lc29ubGluZScgY2xh
c3M9InJlZy1ib2xkIiByZWw9Im5vZm9sbG93Ij5OZXcgQXVkaSBBNSBDb3VwZSBm
cm9tICZwb3VuZDszOTkuOTkgaW5jIFZBVCA8L2E+CjxwIGNsYXNzPSJzbWFsbCI+
CjIwMDk8YnIgLz4KcGVyIG1vbnRoIG9uIDM2LW1vbnRoPGJyIC8+ClBlcnNvbmFs
IENvbnRyYWN0IEhpcmUgKFBDSCk8YnIgLz4KPC9wPgo8L2Rpdj4KPGRpdiBjbGFz
cz0iY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0xMCI+PC9k
aXY+CjxkaXYgY2xhc3M9InB1ZmYtdG9wIGNsZWFyIj48L2Rpdj4KPGRpdiBjbGFz
cz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2Pgo8YSBocmVmPSdodHRwOi8v
Y2FybG9jYXRvci50aW1lc29ubGluZS5jby51ay9jbGFzc2lmaWVkX21vdG9yc19w
b3B1cC5hc3B4P3B1PU9pUUlwM0tWTWRoOGxwalc3Z2JLV0EmYW1wO2N1PTY1NSZh
bXA7a3c9dG9wMTBhbmRyZWNlbnQmYW1wO2NhPSZhbXA7c3Q9JmFtcDthdD0yJmFt
cDthZz02NTUqODgqLTUxNTI4JmFtcDtwZz0xJmFtcDtzaT1DQVIqMSoqMCZhbXA7
Y3I9MiZhbXA7c249MSZhbXA7a3dlPXRvcDEwYW5kcmVjZW50JmFtcDtyZWY9aHR0
cCUzYSUyZiUyZmNhcmxvY2F0b3IudGltZXNvbmxpbmUuY28udWslMmZhdWRpLnho
dG1sJmFtcDt1aWQ9ZXN5dm9ibjFqZXR4b3U0NXQwc2swZGZ2JmFtcDtjYz0yLjEn
IGNsYXNzPSJyZWctYm9sZCIgcmVsPSJub2ZvbGxvdyI+Qk1XIDYgU2VyaWVzIENv
bnZlcnRpYmxlIDY1MGkgU3BvcnQgMmRyIEF1dG8gPC9hPgo8cCBjbGFzcz0ic21h
bGwiPgoyMDA4PGJyIC8+CjQyODUwPGJyIC8+CjxiciAvPgo8L3A+CjwvZGl2Pgo8
ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9w
LTEwIj48L2Rpdj4KPGRpdiBjbGFzcz0icHVmZi10b3AgY2xlYXIiPjwvZGl2Pgo8
ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0xMCI+PC9kaXY+CjxkaXY+CjxhIGhyZWY9
J2h0dHA6Ly93d3cuaW5zdXJlYW5kZ28uY29tL0Nhci1JbnN1cmFuY2UuaHRtbCcg
Y2xhc3M9InJlZy1ib2xkIiByZWw9Im5vZm9sbG93Ij5HcmVhdCBjYXIgaW5zdXJh
bmNlIGRlYWxzIG9ubGluZSA8L2E+CjxwIGNsYXNzPSJzbWFsbCI+CkNhciBJbnN1
cmFuY2U8YnIgLz4KPGJyIC8+CjxiciAvPgo8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNz
PSJjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rp
dj4KPGRpdiBjbGFzcz0icHVmZi10b3AgY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNz
PSJwYWRkaW5nLXRvcC0xMCI+PC9kaXY+Cjx1bCBjbGFzcz0iY2hldnJvbi1saXN0
IGNoZXZyb24tYmx1ZSI+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25s
aW5lLmNvLnVrL2NhcmxvY2F0b3IiIGNsYXNzPSJsaW5rLTY2NiI+U2VhcmNoIGZv
ciBtb3JlIGNhcnMgYW5kIGJpa2VzPC9hPjwvbGk+CjwvdWw+CjxkaXYgY2xhc3M9
InBhZGRpbmctdG9wLTEwIj48L2Rpdj4KPGEgbmFtZT0iZW5kb2ZjYXJzIj48L2E+
CjwvZGl2Pgo8IS0tIEVuZCBvZiBDYXJzIHNlY3Rpb24gLS0+CjwhLS0gU3RhcnQg
b2YgSm9icyBzZWN0aW9uIC0tPgo8ZGl2IGlkPSJjbGFzc2lmaWVkcy1sb25nLTIt
Y29udGVudCI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQov
LyBIaWRlIGpvYnMgc2VjdGlvbgpmU2hvd0hpZGVFbGVtZW50KCdjbGFzc2lmaWVk
cy1sb25nLTItY29udGVudCcpOwovLy0tPgo8L3NjcmlwdD4KPGEgbmFtZT0ic3Rh
cnRvZmpvYnMiPjwvYT4KPGgzIGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPkpvYnM8
L2gzPiAKPGRpdiBjbGFzcz0icGFkZGluZy10b3AtNSI+PC9kaXY+CjxhIGhyZWY9
IiNlbmRvZmpvYnMiIGNsYXNzPSJhY2Nlc3MtdGV4dCI+U2tpcCBKb2JzIG9mIHRo
ZSBXZWVrPC9hPjxiciBjbGFzcz0iYWNjZXNzLXRleHQiIC8+CjxkaXY+CjxhIGNs
YXNzPSJyZWctYm9sZCIgaHJlZj0naHR0cDovL2pvYnMudGltZXNvbmxpbmUuY28u
dWsvam9iLzM3MjIwNy9tYW5hZ2luZy1kaXJlY3RvcicgcmVsPSJub2ZvbGxvdyI+
TWFuYWdpbmcgRGlyZWN0b3I8L2E+CjxwIGNsYXNzPSJzbWFsbCI+CkNvbXBldGl0
aXZlIFNhbGFyeTxiciAvPgpSb2Rkb25zPGJyIC8+Ck1hcmNoLCBDYW1icmlkZ2Vz
aGlyZTxiciAvPgo8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+
CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4KPGRpdiBjbGFzcz0i
cHVmZi10b3AgY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0x
MCI+PC9kaXY+CjxkaXY+CjxhIGNsYXNzPSJyZWctYm9sZCIgaHJlZj0naHR0cDov
L2pvYnMudGltZXNvbmxpbmUuY28udWsvam9iLzM2OTAxMC9vcGVyYXRpb25hbC1p
bnRlbGxpZ2VuY2Utb2ZmaWNlcnMnIHJlbD0ibm9mb2xsb3ciPk9wZXJhdGlvbmFs
IEludGVsbGlnZW5jZSBPZmZpY2VyczwvYT4KPHAgY2xhc3M9InNtYWxsIj4KJnBv
dW5kOzM1LDQyNSBiYXNlZCBvbiBza2lsbHM8YnIgLz4KTUk1PGJyIC8+CkNlbnRy
YWwgTG9uZG9uPGJyIC8+CjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48
L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2IGNs
YXNzPSJwdWZmLXRvcCBjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmct
dG9wLTEwIj48L2Rpdj4KPGRpdj4KPGEgY2xhc3M9InJlZy1ib2xkIiBocmVmPSdo
dHRwOi8vam9icy50aW1lc29ubGluZS5jby51ay9qb2IvMzcyMzA4L2F1ZGl0LXF1
YWxpdHktY29udHJvbC1hbmQtdGVjaG5pY2FsLXBhcnRuZXInIHJlbD0ibm9mb2xs
b3ciPkF1ZGl0LCBRdWFsaXR5IENvbnRyb2wgYW5kIFRlY2huaWNhbCBQYXJ0bmVy
PC9hPgo8cCBjbGFzcz0ic21hbGwiPgokMjAwLDAwMCB0YXggZnJlZSAtIG5lZy48
YnIgLz4KTWF0dXJlIEFjY291bnRhbnRzIEx0ZDxiciAvPgpCYWhyYWluPGJyIC8+
CjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPGRpdiBjbGFz
cz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwdWZmLXRvcCBj
bGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4K
PGRpdj4KPGEgY2xhc3M9InJlZy1ib2xkIiBocmVmPSdodHRwOi8vam9icy50aW1l
c29ubGluZS5jby51ay9qb2IvMzcyMjExL2NoYWlyJyByZWw9Im5vZm9sbG93Ij5D
aGFpcjwvYT4KPHAgY2xhc3M9InNtYWxsIj4KSG91cmx5PGJyIC8+CkFjdGlvbkFp
ZCBVSzxiciAvPgpMb25kb248YnIgLz4KPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0i
Y2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0xMCI+PC9kaXY+
CjxkaXYgY2xhc3M9InB1ZmYtdG9wIGNsZWFyIj48L2Rpdj4KPGRpdiBjbGFzcz0i
cGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8dWwgY2xhc3M9ImNoZXZyb24tbGlzdCBj
aGV2cm9uLWJsdWUiPgo8bGk+PGEgaHJlZj0iaHR0cDovL2pvYnMudGltZXNvbmxp
bmUuY28udWsvSm9icy9Kb2JTZWFyY2guYXNweCIgdGFyZ2V0PSJibGFuayIgY2xh
c3M9ImxpbmstNjY2Ij5TZWFyY2ggbW9yZSBKb2JzPC9hPjwvbGk+CjwvdWw+Cjxk
aXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4KPGEgbmFtZT0iZW5kb2Zq
b2JzIj48L2E+CjwvZGl2Pgo8IS0tIEVuZCBvZiBKb2JzIHNlY3Rpb24gLS0+Cjwh
LS0gU3RhcnQgb2YgUHJvcGVydHkgc2VjdGlvbiAtLT4KPGRpdiBpZD0iY2xhc3Np
ZmllZHMtbG9uZy0zLWNvbnRlbnQiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CjwhLS0KLy8gSGlkZSBwcm9wZXJ0eSBzZWN0aW9uCmZTaG93SGlkZUVs
ZW1lbnQoJ2NsYXNzaWZpZWRzLWxvbmctMy1jb250ZW50Jyk7Ci8vLS0+Cjwvc2Ny
aXB0Pgo8YSBuYW1lPSJzdGFydG9mcHJvcGVydHkiPjwvYT4KPGgzIGNsYXNzPSJz
ZWN0aW9uLWhlYWRpbmciPlByb3BlcnRpZXM8L2gzPgo8ZGl2IGNsYXNzPSJwYWRk
aW5nLXRvcC01Ij48L2Rpdj4KPGRpdj4KPGEgaHJlZj0naHR0cDovL3d3dy5rZmgu
Y28udWsvcmVzaWRlbnRpYWwtcHJvcGVydHknIGNsYXNzPSJyZWctYm9sZCIgcmVs
PSJub2ZvbGxvdyI+TG9va2luZyB0byBCdXk/IExvb2tpbmcgdG8gU2VsbD8gS2lu
bGVpZ2ggRm9sa2FyZCAmYW1wOyBIYXl3YXJkPC9hPgo8cCBjbGFzcz0ic21hbGwi
PgpDb21wbGV0ZWx5IExvbmRvbjxiciAvPgo8YnIgLz4KPC9wPgo8L2Rpdj4KPGRp
diBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwdWZm
LXRvcCBjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48
L2Rpdj4KPGRpdj4KPGEgaHJlZj0naHR0cDovL3d3dy50aGVydXNobW9yZXJpdmVy
c2lkZS5jb20vJyBjbGFzcz0icmVnLWJvbGQiIHJlbD0ibm9mb2xsb3ciPlJ1c2ht
b3JlIENvbmRvJ3MgPC9hPgo8cCBjbGFzcz0ic21hbGwiPgpMdXh1cnkgQ29uZG8n
cyBpbiBNYW5oYXR0YW4gd2l0aCBOWUMgdmlld3M8YnIgLz4KPGJyIC8+CjwvcD4K
PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4KPGRpdiBj
bGFzcz0icHVmZi10b3AgY2xlYXIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWRkaW5n
LXRvcC0xMCI+PC9kaXY+CjxkaXY+CjxhIGhyZWY9J2h0dHA6Ly93d3cuZGlhZGVt
aG9tZXMuY29tLycgY2xhc3M9InJlZy1ib2xkIiByZWw9Im5vZm9sbG93Ij5EaWFk
ZW0gSG9tZXMgPC9hPgo8cCBjbGFzcz0ic21hbGwiPgpUaGUgYmVzdCBuZXcgaG9t
ZXMgaW4gV2ltYmxlZG9uPzxiciAvPgo8YnIgLz4KPC9wPgo8L2Rpdj4KPGRpdiBj
bGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJwdWZmLXRv
cCBjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rp
dj4KPGRpdj4KPGEgaHJlZj0naHR0cDovL3Byb3BlcnR5LnRpbWVzb25saW5lLmNv
LnVrL3RvbC9saWZlX2FuZF9zdHlsZS9wcm9wZXJ0eS8gJyBjbGFzcz0icmVnLWJv
bGQiIHJlbD0ibm9mb2xsb3ciPlRpbWVzIE9ubGluZSBQcm9wZXJ0eSBTZWFyY2gg
PC9hPgo8cCBjbGFzcz0ic21hbGwiPgpOYXRpb253aWRlPGJyIC8+CQo8YnIgLz4K
PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8
ZGl2IGNsYXNzPSJwdWZmLXRvcCBjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBh
ZGRpbmctdG9wLTEwIj48L2Rpdj4KPHVsIGNsYXNzPSJjaGV2cm9uLWxpc3QgY2hl
dnJvbi1ibHVlIj4KPGxpPjxhIGhyZWY9Imh0dHA6Ly91ay5wcm9wZXJ0eWZpbmRl
ci5jb20vMi9wZi9kYS90aW1lc29ubGluZS9ob21lLmRvIiB0YXJnZXQ9ImJsYW5r
IiBjbGFzcz0ibGluay02NjYiPlNlYXJjaCBmb3IgbW9yZSBwcm9wZXJ0aWVzPC9h
PjwvbGk+CjwvdWw+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4K
PGEgbmFtZT0iZW5kb2Zwcm9wZXJ0eSI+PC9hPgo8L2Rpdj4KPCEtLSBFbmQgb2Yg
UHJvcGVydHkgc2VjdGlvbiAtLT4KPCEtLSBTdGFydCBvZiBUcmF2ZWwgc2VjdGlv
biAtLT4KPGRpdiBpZD0iY2xhc3NpZmllZHMtbG9uZy00LWNvbnRlbnQiPgo8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KLy8gSGlkZSB0cmF2ZWwg
c2VjdGlvbgpmU2hvd0hpZGVFbGVtZW50KCdjbGFzc2lmaWVkcy1sb25nLTQtY29u
dGVudCcpOwovLy0tPgo8L3NjcmlwdD4KPGEgbmFtZT0ic3RhcnRvZnRyYXZlbCI+
PC9hPgo8aDMgY2xhc3M9InNlY3Rpb24taGVhZGluZyI+SG9saWRheXM8L2gzPgo8
ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC01Ij48L2Rpdj4KPGEgaHJlZj0iI2VuZG9m
dHJhdmVsIiBjbGFzcz0iYWNjZXNzLXRleHQiPlNraXAgVHJhdmVsIG9mIHRoZSBX
ZWVrPC9hPjxiciBjbGFzcz0iYWNjZXNzLXRleHQiIC8+PGJyIGNsYXNzPSJhY2Nl
c3MtdGV4dCIgLz4KPGRpdj4KPGEgaHJlZj0naHR0cDovL3d3dy52aXJnaW5ob2xp
ZGF5c2NydWlzZXMuY28udWsvVGltZXNWQScgY2xhc3M9InJlZy1ib2xkIiByZWw9
Im5vZm9sbG93Ij5WaXJnaW4gQXRsYW50aWMgMjAwOSBDcnVpc2UgRGVhbHM8L2E+
CjxwIGNsYXNzPSJzbWFsbCI+CQpGYWJ1bG91cyBDcnVpc2UgQW5kIENydWlzZSAm
YW1wOyBTdGF5IE9mZmVycyBJbmNsdWRpbmcgVmlyZ2luIEF0bGFudGljIEZsaWdo
dHMgUHJpY2VzIFN0YXJ0IEZyb20gT25seSAmcG91bmQ7Njk5cHAhPGJyIC8+Cjxi
ciAvPgo8YnIgLz4KPC9wPgo8L2Rpdj4gCjxkaXYgY2xhc3M9InBhZGRpbmctdG9w
LTEwIj48L2Rpdj4KPGRpdiBjbGFzcz0icHVmZi10b3AgY2xlYXIiPjwvZGl2Pgo8
ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0xMCI+PC9kaXY+CjxkaXY+CjxhIGhyZWY9
J2h0dHA6Ly93d3cudmlyZ2luaG9saWRheXNjcnVpc2VzLmNvLnVrL1RpbWVzSG9t
ZScgY2xhc3M9InJlZy1ib2xkIiByZWw9Im5vZm9sbG93Ij5BbWF6aW5nIENydWlz
ZSBEZWFscyBXaXRoIFZpcmdpbiBIb2xpZGF5cyBDcnVpc2VzPC9hPgo8cCBjbGFz
cz0ic21hbGwiPgkKTGFzdCBNaW51dGUgQ3J1aXNlIEFuZCBDcnVpc2UgJmFtcDsg
U3RheSBPZmZlcnMuIE1lZCBGcm9tICZwb3VuZDs0OTlwcCwgQ2FyaWJiZWFuIEZy
b20gJnBvdW5kOzY5OXBwITxiciAvPiAKPGJyIC8+CjxiciAvPgo8L3A+CjwvZGl2
Pgo8ZGl2IGNsYXNzPSJwYWRkaW5nLXRvcC0xMCI+PC9kaXY+CjxkaXYgY2xhc3M9
InB1ZmYtdG9wIGNsZWFyIj48L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy10b3At
MTAiPjwvZGl2Pgo8ZGl2Pgo8YSBocmVmPSdodHRwOi8vd3d3LnJlZ2VudC1ob2xp
ZGF5cy5jby51ay9vZmZlcnMvb2ZmZXIyLmh0bWwnIGNsYXNzPSJyZWctYm9sZCIg
cmVsPSJub2ZvbGxvdyI+NSAqIE1vc2NvdyBicmVhayBmcm9tICZwb3VuZDs0OTkg
cHAgaW5jIGZsaWdodHM8L2E+CjxwIGNsYXNzPSJzbWFsbCI+CQo1IHN0YXIgcXVh
bGl0eSBhdCBhIDMgc3RhciBwcmljZS4gPGJyIC8+CjxiciAvPgo8YnIgLz4KPC9w
Pgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2
IGNsYXNzPSJwdWZmLXRvcCBjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRp
bmctdG9wLTEwIj48L2Rpdj4KPGRpdj4KPGEgaHJlZj0naHR0cDovL2FkLmRvdWJs
ZWNsaWNrLm5ldC9jbGs7MjE1MzM3ODcyOzM3NDc3NzM2O3YJJyBjbGFzcz0icmVn
LWJvbGQiIHJlbD0ibm9mb2xsb3ciPkNhbmFkYSBmb3IgTGVzcy4uIGZseSBmcm9t
ICZwb3VuZDsxMjkgb25lIHdheSBpbmMgdGF4ZXM8L2E+CjxwIGNsYXNzPSJzbWFs
bCI+CQo4IGZhYnVsb3VzIENhbmFkaWFuIGNpdGllcyAuLi55b3Ugd29uJnJzcXVv
O3QgZmluZCBjaGVhcGVyPGJyIC8+CjxiciAvPgo8YnIgLz4KPC9wPgo8L2Rpdj4K
PGRpdiBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJw
dWZmLXRvcCBjbGVhciI+PC9kaXY+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEw
Ij48L2Rpdj4KPHVsIGNsYXNzPSJjaGV2cm9uLWxpc3QgY2hldnJvbi1ibHVlIj4K
PGxpPjxhIGhyZWY9Imh0dHA6Ly90cmF2ZWxkaXJlY3RvcnkudGltZXNvbmxpbmUu
Y28udWsvIiB0YXJnZXQ9ImJsYW5rIiBjbGFzcz0ibGluay02NjYiPlNlYXJjaCBm
b3IgbW9yZSBob2xpZGF5czwvYT48L2xpPgo8L3VsPgo8ZGl2IGNsYXNzPSJwYWRk
aW5nLXRvcC0xMCI+PC9kaXY+CjxhIG5hbWU9ImVuZG9mdHJhdmVsIj48L2E+Cjwv
ZGl2Pgo8IS0tIEVuZCBvZiBUcmF2ZWwgc2VjdGlvbiAtLT4KPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCi8vIERpc3BsYXlzIGluaXRpYWwgY2F0
ZWdvcnkKdmFyIG5SYW5kb209TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjQpOwpz
U2VsZWN0ZWRDbGFzc2lmaWVkc0xvbmc9J2NsYXNzaWZpZWRzLWxvbmctJysoblJh
bmRvbSsxKTsgLy9TZWxlY3RpbmcgcmFuZG9tIGNsYXNzaWZpZWRzCmZTaG93SGlk
ZUNsYXNzaWZpZWRzTG9uZ0NhdGVnb3J5KHNTZWxlY3RlZENsYXNzaWZpZWRzTG9u
Zyk7Ci8vLS0+Cjwvc2NyaXB0Pgo8IS0tIHN0YXJ0IG9mIGNsYXNzaWZpZWRzIGxv
bmcgZm9vdGVyIC0tPgo8ZGl2IGNsYXNzPSJwdWZmLXRvcCBjbGVhciI+PC9kaXY+
CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rpdj4KPGEgaHJlZj0iaHR0
cHM6Ly93d3cuYWR2ZXJ0aXNpbmcubmV3c2ludC5jby51ay93ZWJBZHZlcnRpc2lu
Zy9wcml2YXRlL2FkTWFuYWdlciIgY2xhc3M9InJlZy1ib2xkIj5QbGFjZSB5b3Vy
IGFkdmVydCBub3c8L2E+CjxkaXYgY2xhc3M9InBhZGRpbmctdG9wLTEwIj48L2Rp
dj4KPGRpdiBpZD0iZHluYW1pYy1hZC1yZWZlcmVuY2UiIGNsYXNzPSIgIj4KPGRp
diBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8Zm9ybSBpZD0iYWQtc2Vh
cmNoLXRhbGwiIG9uc3VibWl0PSJyZXR1cm4gZlZhbGlkYXRlTm9uZVJlcXVpcmVk
KHRoaXMuaWQpOyIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii90b2wvY2xhc3NpZmll
ZHMvY2Fycy8iPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1cmwiIHZhbHVl
PSJodHRwOi8vZHJpdmluZy50aW1lc29ubGluZS5jby51ay9fbmlwZC9jbGFzcy9t
b3RvclNyY2hSZXMucGhwIiAvPgo8cCBjbGFzcz0ic21hbGwiPjxsYWJlbCBmb3I9
ImVudGVycHJpc2UiPlNlYXJjaCBBZCBSZWZlcmVuY2U6PC9sYWJlbD48L3A+Cjxk
aXYgY2xhc3M9ImZsb2F0LWxlZnQgcGFkZGluZy10b3AtNSBwYWRkaW5nLXJpZ2h0
LTciPgo8aW5wdXQgaWQ9ImVudGVycHJpc2UiIG5hbWU9ImVudGVycHJpc2UiIHR5
cGU9InRleHQiIHNpemU9IjgiIGNsYXNzPSJ3aWR0aC1pbnB1dC03OSIgdmFsdWU9
IiIgYWx0PSJlbnRlcnByaXNlIiAvPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZmxvYXQt
cmlnaHQgcGFkZGluZy10b3AtNiI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgYWx0PSJT
ZWFyY2giIHNyYz0iL3RvbC9pbWcvZ2xvYmFsL2J1dHRvbi9idXR0b24tc2VhcmNo
LmdpZiIgLz4KPC9kaXY+CjwvZm9ybT4KPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFy
Ij48L2Rpdj4KPGRpdiBjbGFzcz0icGFkZGluZy10b3AtMTAiPjwvZGl2Pgo8L2Rp
dj4KPGRpdiBjbGFzcz0iY2xlYXItc2ltcGxlIj48L2Rpdj4KPGRpdiBjbGFzcz0i
Y2xhc3NpZmllZHMtbG9uZy1ib3R0b20iPjxkaXYgY2xhc3M9InBhZGRpbmctdG9w
LTUiPjwvZGl2PjwvZGl2Pgo8L2Rpdj4KPCEtLSBFTkQ6IE1vZHVsZSAtIE00MiBD
bGFzc2lmaWVkcyBRdWljayBTZWFyY2ggKGIpIC0tPgo8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CjwhLS0KaWYocHViU3RhdHVzID09ICdjbGFzc2lmaWVk
cy1sb25nLTInKXsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R5bmFtaWMtYWQt
cmVmZXJlbmNlJykuY2xhc3NOYW1lID0gJ2FjY2Vzcy10ZXh0JzsKfQplbHNlewpk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHluYW1pYy1hZC1yZWZlcmVuY2UnKS5j
bGFzc05hbWU9Jyc7Cn0KLy8tLT4KPC9zY3JpcHQ+CjwhLS0gRU5EOiBDbGFzc2lm
aWVkIE11bHRpcGxlIFF1aWNrIFNlYXJjaCAtLT4gCjwhLS0gY2FsbGlnIHRoZSBh
ZHZlcnRpc2VtZW50IC0tPgo8ZGl2IGNsYXNzPSJhZHZlcnQtbG9uZy1jb250YWlu
ZXIiPgo8IS0tIEJFR0lOOiBNb2R1bGUgLSBBZHZlcnQ6VG9wIC0tPgo8U0NSSVBU
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KLy9SZXRyaWV2ZSB5YW9vIENv
b2tpZSBWYWx1ZQp2YXIgeWFob28gPSAibm8iOwp2YXIgSXNZYWhvbz0ibm8iOwpp
ZiAoR2V0UXVlcnlTdHJpbmcoInlhaG9vIik9PSJ5ZXMiIHx8IGdldF9jb29raWUo
J1lIJykgPT0gInllcyIpIElzWWFob289InllcyI7CmlmIChJc1lhaG9vID09ICJ5
ZXMiIHx8IGdldF9jb29raWUoJ1lIJykgPT0gJ29wZW4nKSB7CnNldF9jb29raWUg
KCJZSCIsICJ5ZXMiLCAiIiwgIiIgKTsKeWFob28gPSAieWVzIjsKfSBlbHNlIHsK
c2V0X2Nvb2tpZSAoIllIIiwgIm5vIiwgIiIsICIiICk7CnlhaG9vID0gIm5vIjsK
fQp3aW5kb3cub251bmxvYWQgPSBzZXRZYWhvb0Nvb2tpZTsKLy8tLT4KPC9TQ1JJ
UFQ+CjwhLS0gRm9yIFRyYXZlbCBTZWFyY2ggLS0+CjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgUlN0YWcgPSAiIjsKdHJ5ewpSU3RhZyA9
IHNlZ1FTOwp9CmNhdGNoKGUpewpSU3RhZyA9ICIiOwp9CmRvY3VtZW50LndyaXRl
KCc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYWQu
dWsuZG91YmxlY2xpY2submV0L2Fkai9idXNpbmVzcy50aW1lc29ubGluZS5jby51
ay9pbmR1c3RyeXNlY3RvcnMvdHJhbnNwb3J0O2NhdD07cG9zPWJvdHRvbTtzej0x
NjB4NjAwOycrIFJTdGFnICsndGlsZT0zOycrY2F0ZWdvcnlWYWx1ZXMrJ3lhaG9v
PScreWFob28rJztvcmQ9JytyYW5kbnVtKyc/Ij48XC9zY3JpcHQ+Jyk7CQovLy0t
Pgo8L3NjcmlwdD4KPG5vc2NyaXB0Pgo8YSBocmVmPSJodHRwOi8vYWQudWsuZG91
YmxlY2xpY2submV0L2Fkai9idXNpbmVzcy50aW1lc29ubGluZS5jby51ay9pbmR1
c3RyeXNlY3RvcnMvdHJhbnNwb3J0O3Bvcz1ib3R0b207c3o9MTYweDYwMDt0aWxl
PTM7eWFob289Tm87b3JkPTEyNDc5NDM0MjU2OTU/Ij48L2E+Cjwvbm9zY3JpcHQ+
CjwhLS1TRUNUSU9OOnBhcmFtZXRlciBwYXJhbWV0ZXI9ImRhcnQuc2VydmVyIiAv
LS0+CjwhLS0gRU5EOiBNb2R1bGUgLSBBZHZlcnQ6VG9wIC0tPgo8L2Rpdj4KPC9k
aXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhci1zaW1wbGUiPjwvZGl2PgkKPC9k
aXY+CjwhLS0gQkVHSU46IFJlZ2lvbiBmb3IgZm9vdGVyIC0tPgo8IS0tIEJFR0lO
OiBSZWdpb24gZm9yIGZvb3RlciAtLT4KPCEtLSBCRUdJTjogTTc2IEdsb2JhbCBO
YXZpZ2F0aW9uIC0gRm9vdGVyIC0tPgo8ZGl2IGlkPSJyZWdpb24tZm9vdGVyIj4K
PGRpdiBjbGFzcz0iZmxvYXQtbGVmdCBwYWRkaW5nLWJvdHRvbS01IHBhZGRpbmct
dG9wLTEwIj4KPGRpdiBjbGFzcz0iZmxvYXQtbGVmdCI+CjxwIGNsYXNzPSJzbWFs
bCB3aGVyZS1hbS1pIj5XaGVyZSBhbSBJPzwvcD4KPGEgY2xhc3M9ImNydW1idHJh
aWwiIGhyZWY9Ii90b2wvbmV3cy8iPkhvbWU8L2E+CjwhLS0gQkVHSU46QnJlYWRj
cnVtYiBzcGVjaWZpYyB0byBhcmNoaXZlLS0+Cjx1bCBjbGFzcz0iZGlzcGxheS1p
bmxpbmUiPgo8bGkgY2xhc3M9ImRpc3BsYXktaW5saW5lIj4KPGEgY2xhc3M9ImNy
dW1idHJhaWwiIGhyZWY9Jy90b2wvYnVzaW5lc3MvJyAvPkJ1c2luZXNzPC9hPgo8
YSBjbGFzcz0iY3J1bWJ0cmFpbCIgaHJlZj0nL3RvbC9idXNpbmVzcy9pbmR1c3Ry
eV9zZWN0b3JzLycgLz5JbmR1c3RyeSBTZWN0b3JzPC9hPgo8YSBjbGFzcz0iY3J1
bWJ0cmFpbC1zZWxlY3RlZCIgaHJlZj0nL3RvbC9idXNpbmVzcy9pbmR1c3RyeV9z
ZWN0b3JzL3RyYW5zcG9ydC8nIC8+VHJhbnNwb3J0PC9hPgo8L2xpPgo8L3VsPgo8
L2Rpdj4KPC9kaXY+Cjx1bCBjbGFzcz0iZmxvYXQtcmlnaHQgbWFyZ2luLXRvcC1w
b2ludDktZW0iPgo8bGkgY2xhc3M9ImNvbnRhY3QtdXMgZmxvYXQtbGVmdCI+PGEg
Y2xhc3M9InRvb2xzIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVr
L3RvbC90b29sc19hbmRfc2VydmljZXMvc2VydmljZXMvY29udGFjdF91cy8iID5D
b250YWN0IHVzPC9hPjwvbGk+CjxsaSBjbGFzcz0iZmxvYXQtbGVmdCBwYWRkaW5n
LXRvcC0xIj48YSBjbGFzcz0idG9vbHMgaWNvbi1iYWNrLXRvLXRvcCIgaHJlZj0i
I3RvcCI+QmFjayB0byB0b3A8L2E+PC9saT4KPC91bD4KPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgo8IS0tCmZ1bmN0aW9uIHZhbGlkYXRlRm9vdGVyKCkK
ewp2YXIgcXVlcnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vdGVySWQi
KS5xdWVyeS52YWx1ZTsKaWYocXVlcnkgPT0gIiIpCnsKYWxlcnQoIlBsZWFzZSBF
bnRlciBLZXl3b3JkIFRvIFNlYXJjaC4iKTsKcmV0dXJuIGZhbHNlOwp9CmVsc2UK
ewpyZXR1cm4gdHJ1ZTsKfQp9CmZ1bmN0aW9uIE9uRm9vdGVyQnV0dG9uQ2xpY2so
KQp7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb290ZXJJZCIpLnN1Ym1pdCgp
Owp9Ci8vLS0+Cjwvc2NyaXB0Pgo8ZGl2IGNsYXNzPSJmb290ZXItbmF2LWNvbnRh
aW5lciI+CjxkaXYgY2xhc3M9ImNydW1idHJhaWwtYW5kLXNlYXJjaCI+CjxkaXYg
Y2xhc3M9J2Zsb2F0LWxlZnQgcGFkZGluZy10b3AtMTAgcGFkZGluZy1sZWZ0LTIn
Pjx1bCBjbGFzcz0nZGlzcGxheS1pbmxpbmUnPjxsaSBjbGFzcz0nZGlzcGxheS1p
bmxpbmUnPjxhIGhyZWY9Jy90b2wvbmV3cy8nIGNsYXNzPSd0b29scy0wNmMgZ2xv
YmFsLWxpbmtzLXNlcGVyYXRvcic+TmV3czwvYT48L2xpPjxsaSBjbGFzcz0nZGlz
cGxheS1pbmxpbmUnPjxhIGhyZWY9Jy90b2wvY29tbWVudC8nIGNsYXNzPSd0b29s
cy0wNmMgZ2xvYmFsLWxpbmtzLXNlcGVyYXRvcic+Q29tbWVudDwvYT48L2xpPjxs
aSBjbGFzcz0nZGlzcGxheS1pbmxpbmUnPjxhIGhyZWY9Jy90b2wvYnVzaW5lc3Mv
JyBjbGFzcz0ndG9vbHMtMDZjIGdsb2JhbC1saW5rcy1zZXBlcmF0b3InPkJ1c2lu
ZXNzPC9hPjwvbGk+PGxpIGNsYXNzPSdkaXNwbGF5LWlubGluZSc+PGEgaHJlZj0n
L3RvbC9tb25leS8nIGNsYXNzPSd0b29scy0wNmMgZ2xvYmFsLWxpbmtzLXNlcGVy
YXRvcic+TW9uZXk8L2E+PC9saT48bGkgY2xhc3M9J2Rpc3BsYXktaW5saW5lJz48
YSBocmVmPScvdG9sL3Nwb3J0LycgY2xhc3M9J3Rvb2xzLTA2YyBnbG9iYWwtbGlu
a3Mtc2VwZXJhdG9yJz5TcG9ydDwvYT48L2xpPjxsaSBjbGFzcz0nZGlzcGxheS1p
bmxpbmUnPjxhIGhyZWY9Jy90b2wvbGlmZV9hbmRfc3R5bGUvJyBjbGFzcz0ndG9v
bHMtMDZjIGdsb2JhbC1saW5rcy1zZXBlcmF0b3InPkxpZmUgJiBTdHlsZTwvYT48
L2xpPjxsaSBjbGFzcz0nZGlzcGxheS1pbmxpbmUnPjxhIGhyZWY9Jy90b2wvdHJh
dmVsLycgY2xhc3M9J3Rvb2xzLTA2YyBnbG9iYWwtbGlua3Mtc2VwZXJhdG9yJz5U
cmF2ZWw8L2E+PC9saT48bGkgY2xhc3M9J2Rpc3BsYXktaW5saW5lJz48YSBocmVm
PScvdG9sL2RyaXZpbmcvJyBjbGFzcz0ndG9vbHMtMDZjIGdsb2JhbC1saW5rcy1z
ZXBlcmF0b3InPkRyaXZpbmc8L2E+PC9saT48bGkgY2xhc3M9J2Rpc3BsYXktaW5s
aW5lJz48YSBocmVmPScvdG9sL2FydHNfYW5kX2VudGVydGFpbm1lbnQvJyBjbGFz
cz0ndG9vbHMtMDZjIGdsb2JhbC1saW5rcy1zZXBlcmF0b3InPkFydHMgJiBFbnRz
PC9hPjwvbGk+PGxpIGNsYXNzPSdkaXNwbGF5LWlubGluZSc+PGEgaHJlZj0nL3Rv
bC9hcmNoaXZlLycgY2xhc3M9J3Rvb2xzLTA2YyBnbG9iYWwtbGlua3Mtc2VwZXJh
dG9yLWxhc3QnPkFyY2hpdmU8L2E+PC9saT48L3VsPjwvZGl2Pgo8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvdG9sL2pzL2hlYWRlci1zZWFyY2gu
anMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwh
LS0KdmFyIGFBY3Rpb25VcmxzQm90dG9tU2VhcmNoPW5ldyBBcnJheSgpOyAvLyBU
aGlzIGFycmF5IHdpbGwgaG9sZCB0aGUgdmFsdWVzIGZvcm0gYWN0aW9ucwovLy0t
Pgo8L3NjcmlwdD4JCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEt
LQphQWN0aW9uVXJsc0JvdHRvbVNlYXJjaFswXT17YWN0aW9uOicvdG9sL3NpdGVz
ZWFyY2guZG8nLHNlYXJjaFRleHROYW1lOidxdWVyeScscGFyYW1ldGVyczp7dHVy
bk9mZkdvb2dsZUFkczoiZmFsc2UiLCBzdWJtaXRTdGF0dXM6InNlYXJjaEZvcm1T
dWJtaXR0ZWQiLCBtb2RlOiJzaW1wbGUiLHNlY3Rpb25JZDoiODIxIn19OwkKYUFj
dGlvblVybHNCb3R0b21TZWFyY2hbMV09e2FjdGlvbjonL3RvbC92aWV3U2VhcmNo
UmVzdWx0cy5hcmMnLCBzZWFyY2hUZXh0TmFtZToncXVlcnlLZXl3b3JkcycscGFy
YW1ldGVyczp7fX07CQphQWN0aW9uVXJsc0JvdHRvbVNlYXJjaFsyXT17YWN0aW9u
OicvdG9sL2dvb2dsZVNlYXJjaC5kbycsIHNlYXJjaFRleHROYW1lOidxdWVyeUtl
eXdvcmRzJyxwYXJhbWV0ZXJzOntzZWFyY2htb2RlOiJhZHNhbmRyZXN1bHRzIixw
YWdlTnVtOiIxIixyZXN1bHRzUGVyUGFnZToiMTAifX07CQovLy0tPgo8L3Njcmlw
dD4KPGZvcm0gaWQ9InNlYXJjaEZvb3RlcklkIiBuYW1lPSJzZWFyY2hGb290ZXJJ
ZCIgYWN0aW9uPSIiIG1ldGhvZD0iZ2V0IiBvbnN1Ym1pdD0icmV0dXJuIGZWYWxp
ZGF0ZURhdGFGb290ZXIoKTsiPgo8ZGl2IHN0eWxlPSJwYWRkaW5nLWxlZnQ6IDdw
eDsiIGNsYXNzPSJmbG9hdC1yaWdodCI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3Jj
PSIvdG9sL2ltZy9nbG9iYWwvYnV0dG9uL2J1dHRvbi1zZWFyY2guZ2lmIiBjbGFz
cz0iZ2xvYmFsLXNlYXJjaC1nbyIgYWx0PSJTZWFyY2giIC8+CQo8L2Rpdj4JCjxk
aXYgY2xhc3M9ImZsb2F0LXJpZ2h0Ij4KPGRpdiBjbGFzcz0iZmxvYXQtbGVmdCBw
YWRkaW5nLXRvcC0xOSI+PC9kaXY+CQo8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0i
cXVlcnkiIGlkPSJib3R0b20tc2VhcmNoLXF1ZXJ5IiBtYXhsZW5ndGg9IjEwMCIg
c2l6ZT0iMTAiIGNsYXNzPSJnbG9iYWwtc2VhcmNoLXRleHQtd2l0aC1kcm9wZG93
biIgYWx0PSJxdWVyeSIgLz4KPHNlbGVjdCBpZD0ic2VhcmNoT3B0aW9uRm9vdGVy
IiBjbGFzcz0iZ2xvYmFsLXNlYXJjaC1vcHRpb24iPgo8b3B0aW9uIHZhbHVlPSIw
Ij5UaW1lcyBPbmxpbmU8L29wdGlvbj4JCjxvcHRpb24gdmFsdWU9IjEiPlRpbWVz
IEFyY2hpdmU8L29wdGlvbj4JCjxvcHRpb24gdmFsdWU9IjIiPkdvb2dsZTwvb3B0
aW9uPgkKPC9zZWxlY3Q+CjwvZGl2Pgo8ZGl2IGlkPSJzZWFyY2hGb290ZXJJZC1h
ZGRpdGlvbmFsLXBhcmFtZXRlcnMiIGNsYXNzPSJhY2Nlc3MtdGV4dCI+PC9kaXY+
CQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0KdmFyIHNDdXJy
ZW50V2luZG93TG9jYXRpb249ZG9jdW1lbnQubG9jYXRpb24rIiI7CmZvcihpPTA7
IGk8YUFjdGlvblVybHNUb3BTZWFyY2gubGVuZ3RoOyBpKyspIHsKaWYoc0N1cnJl
bnRXaW5kb3dMb2NhdGlvbi5tYXRjaChhQWN0aW9uVXJsc1RvcFNlYXJjaFtpXS5h
Y3Rpb24pICE9IG51bGwgKSB7CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFy
Y2hPcHRpb25Gb290ZXIiKS52YWx1ZT1pOwp9CQp9Ci8vLS0+Cjwvc2NyaXB0Pgo8
L2Zvcm0+CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIgcGFkZGluZy1i
b3R0b20tMTUiPjwvZGl2Pgo8IS0tIEJFR0lOOiBNODAgLSBDdXN0b20gSFRNTCBQ
dWJsaXNoZWQgRGF0ZSA6IEp1biAyMywgMjAwOSA0OjQzIFBNIC0tPgo8IS0tIEJF
R0lOOiBNODAgLSBDdXN0b20gSFRNTCAtLT4KPCEtLSBCRUdJTjogTTgwIC0gQ3Vz
dG9tIEhUTUwgLS0+CjxkaXYgY2xhc3M9IndpZHRoLTEwMC1wZXJjZW50IHBhZGRp
bmctYm90dG9tLTEwIj4gCjxkaXYgY2xhc3M9ImJnLWZmZiI+CQo8cCBjbGFzcz0i
c21hbGwiPjxwIGNsYXNzPSJ4LXNtYWxsIGNvbG9yLTY2NiI+PGEgaHJlZj0iaHR0
cDovL3d3dy50aW1lc29ubGluZS5jby51ay90b2wvdG9vbHNfYW5kX3NlcnZpY2Vz
L3NlcnZpY2VzL2FkdmVydGlzaW5nLyIgY2xhc3M9ImNvbG9yLTA2YyI+Q29udGFj
dCBvdXIgYWR2ZXJ0aXNpbmcgdGVhbTwvYT4gZm9yIGFkdmVydGlzaW5nIGFuZCBz
cG9uc29yc2hpcCBpbiBUaW1lcyBPbmxpbmUsIFRoZSBUaW1lcyBhbmQgVGhlIFN1
bmRheSBUaW1lcywgb3IgcGxhY2UgeW91ciA8YSBocmVmPSJodHRwczovL2RpeS5u
ZXdzaW50LmNvLnVrIiBjbGFzcz0iY29sb3ItMDZjIiByZWw9Im5vZm9sbG93Ij5h
ZHZlcnRpc2VtZW50PC9hPi48L3A+PHAgY2xhc3M9Ingtc21hbGwgY29sb3ItNjY2
Ij4mbmJzcDs8L3A+CjxwIGNsYXNzPSJ4LXNtYWxsIGNvbG9yLTY2NiI+PGI+VGlt
ZXMgT25saW5lIFNlcnZpY2VzOjwvYj4gPGEgaHJlZj0iaHR0cDovL3d3dy5lbmNv
dW50ZXJzLnRpbWVzb25saW5lLmNvLnVrL3MvIiBjbGFzcz0iY29sb3ItMDZjIj5E
YXRpbmc8L2E+IHwgPGEgaHJlZj0iaHR0cDovL2pvYnMudGltZXNvbmxpbmUuY28u
dWsvIiBjbGFzcz0iY29sb3ItMDZjIj5Kb2JzPC9hPiB8IDxhIGhyZWY9Imh0dHA6
Ly90aW1lc29ubGluZS5nbG9icml4LmNvbSIgY2xhc3M9ImNvbG9yLTA2YyIgcmVs
PSJub2ZvbGxvdyI+UHJvcGVydHkgU2VhcmNoPC9hPiB8IDxhIGhyZWY9Imh0dHA6
Ly9jYXJsb2NhdG9yLnRpbWVzb25saW5lLmNvLnVrLyIgY2xhc3M9ImNvbG9yLTA2
YyIgcmVsPSJub2ZvbGxvdyI+VXNlZCBDYXJzPC9hPiB8IDxhIGhyZWY9Imh0dHA6
Ly90cmF2ZWxkaXJlY3RvcnkudGltZXNvbmxpbmUuY28udWsvIiBjbGFzcz0iY29s
b3ItMDZjIiByZWw9Im5vZm9sbG93Ij5Ib2xpZGF5czwvYT4gfCA8YSBocmVmPSJo
dHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9saWZlX2FuZF9zdHlsZS9j
b3VydF9hbmRfc29jaWFsL2Fubm91bmNlbWVudHMvIiBjbGFzcz0iY29sb3ItMDZj
Ij5CaXJ0aHMsIE1hcnJpYWdlcywgRGVhdGhzPC9hPiB8IDxhIGhyZWY9Imh0dHBz
Oi8vc3Vic2NyaXB0aW9ucy50aW1lc29ubGluZS5jby51ay8iIGNsYXNzPSJjb2xv
ci0wNmMiPlN1YnNjcmlwdGlvbnM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3RpbWVz
b25saW5lLm5ld3NwYXBlcmRpcmVjdC5jb20vIiBjbGFzcz0iY29sb3ItMDZjIj5F
LXBhcGVyPC9hPiA8L3A+CjxwIGNsYXNzPSJ4LXNtYWxsIGNvbG9yLTY2NiI+PGI+
TmV3cyBJbnRlcm5hdGlvbmFsIGFzc29jaWF0ZWQgd2Vic2l0ZXM6PC9iPiA8YSBo
cmVmPSJodHRwOi8vd3d3Lmdsb2JyaXguY29tIiBjbGFzcz0iY29sb3ItMDZjIj5H
bG9icml4IFByb3BlcnR5IFNlYXJjaDwvYT4gfCA8YSBocmVmPSJodHRwOi8vd3d3
LnByb3BlcnR5ZmluZGVyLmNvbS9jZ2ktYmluL3JzZWFyY2g/Y3U9dG5sJmFtcDth
PXNmJmFtcDt0PXJlcyZhbXA7c25mPXJicyIgY2xhc3M9ImNvbG9yLTA2YyIgcmVs
PSJub2ZvbGxvdyI+UHJvcGVydHkgRmluZGVyPC9hPiB8IDxhIGhyZWY9Imh0dHA6
Ly93d3cubWlsa3JvdW5kLmNvbSIgY2xhc3M9ImNvbG9yLTA2YyI+TWlsa3JvdW5k
PC9hPjwvcD4KPHAgY2xhc3M9Ingtc21hbGwgY29sb3ItNjY2Ij4mbmJzcDs8L3A+
PHAgY2xhc3M9Ingtc21hbGwgY29sb3ItNjY2Ij5Db3B5cmlnaHQgMjAwOSBUaW1l
cyBOZXdzcGFwZXJzIEx0ZC48L3A+CjxwIGNsYXNzPSJ4LXNtYWxsIGNvbG9yLTY2
NiI+VGhpcyBzZXJ2aWNlIGlzIHByb3ZpZGVkIG9uIFRpbWVzIE5ld3NwYXBlcnMn
IDxhIGhyZWY9Ii90b2wvdG9vbHNfYW5kX3NlcnZpY2VzL3NlcnZpY2VzL3Rlcm1z
X2FuZF9jb25kaXRpb25zLyIgY2xhc3M9ImNvbG9yLTA2YyIgcmVsPSJub2ZvbGxv
dyI+c3RhbmRhcmQgVGVybXMgYW5kIENvbmRpdGlvbnM8L2E+LiBQbGVhc2UgcmVh
ZCBvdXIgPGEgaHJlZj0iaHR0cDovL3d3dy5uaWRwLmNvbSIgY2xhc3M9ImNvbG9y
LTA2YyIgcmVsPSJub2ZvbGxvdyI+UHJpdmFjeSBQb2xpY3k8L2E+LlRvIGlucXVp
cmUgYWJvdXQgYSBsaWNlbmNlIHRvIHJlcHJvZHVjZSBtYXRlcmlhbCBmcm9tIFRp
bWVzIE9ubGluZSwgVGhlIFRpbWVzIG9yIFRoZSBTdW5kYXkgVGltZXMsIGNsaWNr
IDxhIGNsYXNzPSJjb2xvci0wNmMiIGhyZWY9Ii90b2wvdG9vbHNfYW5kX3NlcnZp
Y2VzL3NlcnZpY2VzL3N5bmRpY2F0aW9uLyIgcmVsPSJub2ZvbGxvdyI+IGhlcmU8
L2E+LlRoaXMgd2Vic2l0ZSBpcyBwdWJsaXNoZWQgYnkgYSBtZW1iZXIgb2YgdGhl
IE5ld3MgSW50ZXJuYXRpb25hbCBHcm91cC4gTmV3cyBJbnRlcm5hdGlvbmFsIExp
bWl0ZWQsIDEgVmlyZ2luaWEgU3QsIExvbmRvbiBFOTggMVhZLCBpcyB0aGUgaG9s
ZGluZyBjb21wYW55IGZvciB0aGUgTmV3cyBJbnRlcm5hdGlvbmFsIGdyb3VwIGFu
ZCBpcyByZWdpc3RlcmVkIGluIEVuZ2xhbmQgTm8gODE3MDEuIFZBVCBudW1iZXIg
R0IgMjQzIDgwNTQgNjkuPC9wPgo8cCBjbGFzcz0ieC1zbWFsbCBjb2xvci02NjYi
PiZuYnNwOzwvcD4KPHA+PGEgaHJlZj0iaHR0cDovL3RoZS1hY2FwLm9yZy9hY2Fw
LWVuYWJsZWQucGhwIiBib3JkZXI9IjAiIHRhcmdldD0ibmV3Ij48aW1nIHNyYz0i
aHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay9tdWx0aW1lZGlhL2FyY2hpdmUv
MDAyNzYvYWNhcF9lbmFibGVkX3NtYWxsXzI3NjYzOWEuZ2lmIiBib3JkZXI9IjAi
IC8+PC9hPjwvcD4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0
aW9uL3Jzcyt4bWwiIHRpdGxlPSJUb3AgU3RvcmllcyBmcm9tIFRpbWVzT25saW5l
IiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9mZWVkcy9y
c3MvdG9wc3Rvcmllcy54bWwiIC8+CjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBl
PSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0iVUsgTmV3cyBmcm9tIFRpbWVz
T25saW5lIiBocmVmPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9m
ZWVkcy9yc3MvdWtuZXdzLnhtbCIgLz4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5
cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRpdGxlPSJXb3JsZCBOZXdzIGZyb20g
VGltZXNPbmxpbmUiIGhyZWY9Imh0dHA6Ly93d3cudGltZXNvbmxpbmUuY28udWsv
dG9sL2ZlZWRzL3Jzcy93b3JsZG5ld3MueG1sIiAvPgo8bGluayByZWw9ImFsdGVy
bmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIgdGl0bGU9IkNvbW1lbnQg
ZnJvbSBUaW1lc09ubGluZSIgaHJlZj0iaHR0cDovL3d3dy50aW1lc29ubGluZS5j
by51ay90b2wvZmVlZHMvcnNzL2NvbW1lbnQueG1sIiAvPgo8bGluayByZWw9ImFs
dGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIgdGl0bGU9IkJ1c2lu
ZXNzIE5ld3MgZnJvbSBUaW1lc09ubGluZSIgaHJlZj0iaHR0cDovL3d3dy50aW1l
c29ubGluZS5jby51ay90b2wvZmVlZHMvcnNzL2J1c2luZXNzLnhtbCIgLz4KPGxp
bmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIHRp
dGxlPSJTcG9ydHMgTmV3cyBmcm9tIFRpbWVzT25saW5lIiBocmVmPSJodHRwOi8v
d3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9mZWVkcy9yc3Mvc3BvcnQueG1sIiAv
Pgo8bGluayByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3ht
bCIgdGl0bGU9IkN1cmlvdXMgU3RvcmllcyBmcm9tIFRpbWVzT25saW5lIiBocmVm
PSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL3RvbC9mZWVkcy9yc3MvbW9z
dF9jdXJpb3VzLnhtbCIgLz4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFw
cGxpY2F0aW9uL3Jzcyt4bWwiIHRpdGxlPSJUZWNobm9sb2d5IE5ld3MgZnJvbSBU
aW1lc09ubGluZSIgaHJlZj0iaHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay90
b2wvZmVlZHMvcnNzL3RlY2gueG1sIiAvPgo8bGluayByZWw9InNlYXJjaCIgdHlw
ZT0iYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCIgaHJlZj0i
aHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay94bWwvb3BlbnNlYXJjaC54bWwi
IHRpdGxlPSJUaW1lc09ubGluZSBhcnRpY2xlIHNlYXJjaCIgLz4KPGxpbmsgcmVs
PSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgaHJlZj0iaHR0cDovL3RpbWVz
bW9iaWxlLm1vYmkvIiAvPgo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0
eXBlPSJ0ZXh0L0phdmFTY3JpcHQiIHNyYz0iaHR0cDovL2pzLmZvcnJlc3RlcnN1
cnZleXMuY29tL3NvY3JhdG9zXzEwOTQ2Ni5qcyI+PC9zY3JpcHQ+PC9wPgo8L2Rp
dj4KPC9kaXY+CjwhLS0gRU5EOiBNODAgLSBDdXN0b20gSFRNTCAtLT4KPCEtLSBF
TkQ6IE04MCAtIEN1c3RvbSBIVE1MIC0tPiAKPC9kaXY+CjwhLS0gRU5EOiBNNzYg
R2xvYmFsIE5hdmlnYXRpb24gLSBGb290ZXIgLS0+CjwhLS0gRU5EOiBSZWdpb24g
Zm9yIGZvb3RlciAtLT4KPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KPCEtLSBFTkQ6IFJl
Z2lvbiBmb3IgYWxsIGNvbnRlbnQgLS0+CjwhLS0gRXNjZW5pYyBBbmFseXNpcyBF
bmdpbmUgY2xpZW50IHNjcmlwdCBzdGFydCAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPgo8IS0tCnZhciByZWY9ZXNjYXBlKGRvY3VtZW50LnJlZmVy
cmVyKTsKaWYgKHJlZi5sZW5ndGg+PTI1MikgcmVmPXJlZi5zdWJzdHJpbmcoMCwy
NTIpKyIuLi4iOwp2YXIgaXNKUzEwID0gMTsKLy8tLT4KPC9zY3JpcHQ+CjxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgaXNKUzEwPTA7CnZh
ciBqc1VybCA9ICIvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvdHJhbnNw
b3J0L2FydGljbGU2NTkwOTA3LmVjZSI7CnZhciBqc1R5cGUgPSAiYXJ0aWNsZSI7
CnZhciBqc09iaklkID0gIjY1OTA5MDciOwp2YXIganNUaXRsZSA9ICJBdCBsYXN0
LCBCcml0YWluIGlzIHJlYWR5IHRvIGJ1aWxkIGh5YnJpZCBjYXJzIjsKdmFyIGpz
UHViSWQgPSAiMTciOwp2YXIganNDYXQgPSAiIjsKdmFyIGpzUnQgPSAiMSI7CnZh
ciBqc0N0eElkID0gIjgyMSI7CmRvY3VtZW50LndyaXRlKCc8aW1nIHNyYz0iaHR0
cDovL3d3dy50aW1lc29ubGluZS5jby51ay9lYWUtbG9nZ2VyL0xvZ2dlcj9jbGll
bnREVD0nICsgKG5ldyBEYXRlKCkpLmdldFRpbWUoKSArICcmcnQ9JyArIGpzUnQr
ICcmb2JqSWQ9JyArIGpzT2JqSWQgKyAnJnR5cGU9JyArIGpzVHlwZSArICcmY3R4
SWQ9JyArIGpzQ3R4SWQgKyAnJnB1YklkPScgKyBqc1B1YklkICsgJyZjYXQ9JyAr
IGpzQ2F0ICsgCicmdGl0bGU9JyArIGpzVGl0bGUgKyAnJnVybD0nICsganNVcmwg
KyAnIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiAvPicpOwovLy0tPgo8L3NjcmlwdD4K
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCnZhciBqc1VybCA9
ICIvdG9sL2J1c2luZXNzL2luZHVzdHJ5X3NlY3RvcnMvdHJhbnNwb3J0L2FydGlj
bGU2NTkwOTA3LmVjZSI7CnZhciBqc1R5cGUgPSAiYXJ0aWNsZSI7CnZhciBqc09i
aklkID0gIjY1OTA5MDciOwp2YXIganNUaXRsZSA9ICJBdCBsYXN0LCBCcml0YWlu
IGlzIHJlYWR5IHRvIGJ1aWxkIGh5YnJpZCBjYXJzIjsKdmFyIGpzUHViSWQgPSAi
MTciOwp2YXIganNDYXQgPSAiIjsKdmFyIGpzUnQgPSAiMSI7CnZhciBqc0N0eElk
ID0gIjgyMSI7CmlmKGlzSlMxMCl7CmRvY3VtZW50LndyaXRlKCc8aW1nIHNyYz0i
aHR0cDovL3d3dy50aW1lc29ubGluZS5jby51ay9lYWUtbG9nZ2VyL0xvZ2dlcj9y
dD0nICsganNSdCArICcmb2JqSWQ9JyArIGpzT2JqSWQgKyAnJnR5cGU9JyArIGpz
VHlwZSArICcmY3R4SWQ9JyArIGpzQ3R4SWQgKyAnJnB1YklkPScgKyBqc1B1Yklk
ICsgJyZjYXQ9JyArIGpzQ2F0ICsgJyZ0aXRsZT0nICsgCmpzVGl0bGUgKyAnJnVy
bD0nICsganNVcmwgKyAnIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiAvPicpOwp9Ci8v
LS0+Cjwvc2NyaXB0Pgo8Tk9TQ1JJUFQ+CjwhLS0gZWFlTm9zY3JpcHRNYXJrIC0t
PjxpbWcgc3JjPSJodHRwOi8vd3d3LnRpbWVzb25saW5lLmNvLnVrL2VhZS1sb2dn
ZXIvTG9nZ2VyP3J0PTEmb2JqSWQ9NjU5MDkwNyZ1cmw9JTJGdG9sJTJGYnVzaW5l
c3MlMkZpbmR1c3RyeV9zZWN0b3JzJTJGdHJhbnNwb3J0JTJGYXJ0aWNsZTY1OTA5
MDcuZWNlJnR5cGU9YXJ0aWNsZSZwdWJJZD0xNyZjdHhJZD04MjEmY2F0PSZ0aXRs
ZT1BdCtsYXN0JTJDK0JyaXRhaW4raXMrcmVhZHkrdG8rYnVpbGQraHlicmlkK2Nh
cnMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGFsdD0iIiAvPgo8L05PU0NSSVBUPgo8
IS0tIEVzY2VuaWMgQW5hbHlzaXMgRW5naW5lIGNsaWVudCBzY3JpcHQgc3RhcnQg
LS0+CjwhLS0gdGhlIGZvbGxvd2luZyBjYXNlIHdpbGwgZm9sbG93IG9ubHkgd2hl
biBpbmRpdmlkdWFsIG1vZHVsZSBkaXNwbGF5IGlzIGFza2VkIGZvciAtLT4gCjwv
ZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=sitelifeproxy.js
Content-Type: application/javascript; charset=ISO-8859-1; name=sitelifeproxy.js
Content-Location: http://business.timesonline.co.uk/tol/js/sitelifeproxy.js
Content-Transfer-Encoding: Base64
ICAgIC8vbXVsdGkgc2l0ZSBlbmFibGVkIC0tIHNpZDogY29tbXVuaXR5c3RhZ2Uu
c2UubmV3c2ludC5jby51ayAKICAgIGRvY3VtZW50LndyaXRlKCI8bGluayBocmVm
PSciK3N0YXRpY1BhdGgrIi9jc3MvU2l0ZUxpZmVDc3MuY3NzJyByZWw9J3N0eWxl
c2hlZXQnIHR5cGU9J3RleHQvY3NzJyAvPiIpOwogICAgZG9jdW1lbnQud3JpdGUo
IjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9JyIrc3RhdGljUGF0
aCsiL2pzL1NpdGVMaWZlU2NyaXB0cy5qcyc+PC9zY3JpcHQ+Iik7CiAgICBkb2N1
bWVudC53cml0ZSgiPGxpbmsgaHJlZj0nIitzdGF0aWNQYXRoKyIvY3NzL3NpdGVs
aWZlLmNzcycgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgLz4iKTsK
Ci8vLzxzdW1tYXJ5PmNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIG5ldyBTaXRlTGlm
ZVByb3h5PC9zdW1tYXJ5PgpmdW5jdGlvbiBTaXRlTGlmZVByb3h5KHVybCkgewog
ICAgLy8gVXNlciBDb25maWd1cmFibGUgUHJvcGVydGllcyAtIHRoZXNlIGNhbiBi
ZSBzZXQgYXQgYW55IHRpbWUKCiAgICAvLyB5b3VyIGFwaUtleSwgdGhpcyB2YWx1
ZSBtdXN0IGJlIHNldCEKICAgIHRoaXMuYXBpS2V5ID0gbnVsbDsKICAgIAogICAg
dGhpcy5zaXRlTGlmZURvbWFpbk92ZXJyaWRlID0gbnVsbDsKICAgIHRoaXMuc2l0
ZUxpZmVTZXJ2ZXJCYXNlT3ZlcnJpZGUgPSBudWxsOwogICAgdGhpcy5jdXN0b21l
ckNTU092ZXJyaWRlID0gbnVsbDsKICAgIHRoaXMuY3VzdG9tZXJGb3J1bVBhZ2VQ
YXRoT3ZlcnJpZGUgPSBudWxsOwoKICAgIC8vIHNuaWZmIHRoZSBicm93c2VyIGZv
ciBjdXN0b20gYmVoYXZpb3JzCiAgICB0aGlzLl9faXNFeHBsb3JlciA9IG5hdmln
YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdtc2llJykgIT0g
LTE7CiAgICB0aGlzLl9faXNTYWZhcmkgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRv
TG93ZXJDYXNlKCkuaW5kZXhPZignc2FmYXJpJykgIT0gLTE7CiAgICB0aGlzLl9f
aXNNYWMgPSBuYXZpZ2F0b3IucGxhdGZvcm0udG9Mb3dlckNhc2UoKS5pbmRleE9m
KCdtYWMnKSAhPSAtMTsKICAgIHRoaXMuX19pc01hY0lFID0gdGhpcy5fX2lzTWFj
ICYmIHRoaXMuX19pc0V4cGxvcmVyOwogICAgCiAgICAvLyBpZiBlbmFibGVkLCBz
cGl0IG91dCBkZWJ1ZyBpbmZvcm1hdGlvbiB0aHJvdWdoIGFsZXJ0KCkKICAgIHRo
aXMuZGVidWcgPSBmYWxzZTsKICAgIAogICAgLy8gdXNlZCB0byB0cmFjayB0aGUg
aWQgb2YgdGhlIGhhbmRsZXIgZXhwZWN0aW5nIHRoZSByZXN1bHRzIGZyb20gdGhl
IGltbWVkaWF0ZWx5IHByZWNlZWRpbmcgbWV0aG9kIGludm9jYXRpb24KICAgIC8v
IHRoaXMgaXMgdXNlZCBvbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzCiAgICB0aGlz
Lmxhc3RIYW5kbGVySWQgPSAiIjsKICAgIAogICAgLy8gTWV0aG9kcyBZb3UgY2Fu
IE92ZXJpZGUKICAgIC8vCiAgICAvLyBPblN1Y2Nlc3MocmV0dXJuVmFsdWUpIC0g
aXMgcGFzc2VkIHRoZSByZXR1cm4gdmFsdWUgYXQgdGhlIGVuZCBvZiBhIHN1Y2Nl
c3NmdWwgY2FsbCwgZGVmYXVsdCBkb2VzIG5vdGhpbmcKICAgIC8vIE9uRXJyb3Io
bXNnKSAtIGlzIHBhc3NlZCBhbiBlcnJvciBtZXNzYWdlIGlmIGEgcHJvYmxlbSBv
Y2N1cnMKICAgIC8vIE9uRGVidWcobXNnKSAtIGlzIGNhbGxlZCB3aGVuIGRlYnVn
Z2luZyBpcyBlbmFibGVkCiAgICAgCiAgICB0aGlzLl9fYmFzZVVybCA9IHVybDsK
ICAgIHRoaXMuX19zZW5kSW52b2tlQ291bnQgPSAwOwogICAgCiAgICB0aGlzLl9f
ZXZlbnRIYW5kbGVycyA9IG5ldyBPYmplY3QoKTsKfTsKClNpdGVMaWZlUHJveHku
cHJvdG90eXBlLkFkZEV2ZW50SGFuZGxlciA9IGZ1bmN0aW9uIChldmVudF9uYW1l
LCBjYWxsYmFjaykgewoJdmFyIGV2ZW50TGlzdCA9IHRoaXMuX19ldmVudEhhbmRs
ZXJzW2V2ZW50X25hbWVdOwoJaWYgKCFldmVudExpc3QpewoJCWV2ZW50TGlzdCA9
IG5ldyBBcnJheSgpOwoJCXRoaXMuX19ldmVudEhhbmRsZXJzW2V2ZW50X25hbWVd
ID0gZXZlbnRMaXN0OwoJfQoJZXZlbnRMaXN0LnB1c2goY2FsbGJhY2spOwp9OwoK
U2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuRmlyZUV2ZW50ID0gZnVuY3Rpb24gKGV2
ZW50X25hbWUpIHsKICAgIHZhciBmdW5jOwogICAgaWYoaGFuZGxlcnMgPSB0aGlz
Ll9fZXZlbnRIYW5kbGVyc1tldmVudF9uYW1lXSkgewogICAgICAgIHZhciBBID0g
bmV3IEFycmF5KCk7IGZvciAodmFyIGkgPSAxOyBpIDwgIHRoaXMuRmlyZUV2ZW50
LmFyZ3VtZW50cy5sZW5ndGg7IGkrKyl7IEFbaSAtIDFdID0gdGhpcy5GaXJlRXZl
bnQuYXJndW1lbnRzW2ldO30KICAgICAgICBmb3IodmFyIHg9MDt4PGhhbmRsZXJz
Lmxlbmd0aDt4KyspewoJCQlmdW5jID0gaGFuZGxlcnNbeF07CgkJCWlmIChmdW5j
Ll9fQm91bmQpewoJCQkgICBpZiAoaGFuZGxlcnMubGVuZ3RoID09IDEpIHJldHVy
biBmdW5jKCk7CgkJCSAgIGZ1bmMoKTsKCQkJfQoJCQlpZiAoaGFuZGxlcnMubGVu
Z3RoID09IDEpIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIEEpOwoJCQlmdW5jLmFw
cGx5KHRoaXMsIEEpOwogICAgfQp9Cn07CgpTaXRlTGlmZVByb3h5LnByb3RvdHlw
ZS5TY3JpcHRJZCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcy5fX3NjcmlwdElk
ID0gIl9iYl9zY3JpcHRfIiArIHRoaXMuX19zZW5kSW52b2tlQ291bnQrKzsgfQoK
Ly8gRGVmYXVsdCBlcnJvciBoYW5kbGVyIGZvciB0aGUgcHJveHkgb2JqZWN0LCBz
aW1wbGUgYWxlcnQKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuT25FcnJvciA9IGZ1
bmN0aW9uKG1zZykgewogICBhbGVydCgiT25FcnJvcjogIiArIG1zZyk7Cn0KCi8v
IERlZmF1bHQgZGVidWcgaGFuZGxlciBmb3IgdGhlIHByb3h5IG9iamVjdCwgc2lt
cGxlIGFsZXJ0ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLk9uRGVidWcgPSBmdW5j
dGlvbihtc2cpIHsKICAgIGlmICh0aGlzLmRlYnVnKQogICAgICAgIGFsZXJ0KCJE
ZWJ1ZzogIiArIG1zZyk7Cn0KCi8vIGZldGNoIGEgbmFtZWQgcmVxdWVzdCBwYXJh
bWV0ZXIgZnJvbSB0aGUgcGFnZSBVUkwKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
R2V0UGFyYW1ldGVyID0gZnVuY3Rpb24ocGFyYW1ldGVyTmFtZSkgewogICAgdmFy
IGtleSA9IHBhcmFtZXRlck5hbWUgKyAiPSI7CiAgICB2YXIgcGFyYW1ldGVycyA9
IGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkuc3BsaXQoIiYi
KTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkr
KykKICAgIHsKICAgICAgICBpZiAocGFyYW1ldGVyc1tpXS5pbmRleE9mKGtleSkg
PT0gMCkKICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNbaV0uc3Vic3RyaW5n
KGtleS5sZW5ndGgpOwogICAgfQogICAgcmV0dXJuIG51bGw7Cn07CgovLyBicm93
c2VyIGluZGVwZW5kZW50IG1ldGhvZCB0byBnZXQgZWxlbWVudHMgYnkgSUQKU2l0
ZUxpZmVQcm94eS5wcm90b3R5cGUuR2V0RWxlbWVudCA9IGZ1bmN0aW9uKGlkKSB7
CiAgICB0aGlzLk9uRGVidWcoIkdldEVsZW1lbnQgIiArIGlkKTsKICAgIGlmIChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCkKICAgICAgICByZXR1cm4gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpOwogICAgaWYgKGRvY3VtZW50LmFsbCkKICAgICAg
ICByZXR1cm4gZG9jdW1lbnQuYWxsW2lkXTsKICAgIHRoaXMuT25FcnJvcigiTm8g
c3VwcG9ydCBmb3IgR2V0RWxlbWVudCgpIGluIHRoaXMgYnJvd3NlciIpOwogICAg
cmV0dXJuIG51bGw7Cn0KCi8vIGJyb3dzZXIgaW5kZXBlbmRlbnQgbWV0aG9kIHRv
IGdldCBlbGVtZW50cyBieSB0YWcgbmFtZQpTaXRlTGlmZVByb3h5LnByb3RvdHlw
ZS5HZXRUYWdzID0gZnVuY3Rpb24odGFnTmFtZSkgewogICAgdGhpcy5PbkRlYnVn
KCJHZXRUYWdzICIgKyB0YWdOYW1lKTsKICAgIGlmIChkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSkKICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUodGFnTmFtZSk7CiAgICBpZiAoZG9jdW1lbnQuYWxsKQogICAg
ICAgcmV0dXJuIGRvY3VtZW50LnRhZ3ModGFnTmFtZSk7CiAgICB0aGlzLk9uRXJy
b3IoIk5vIHN1cHBvcnQgZm9yIEdldFRhZ3MoKSBpbiB0aGlzIGJyb3dzZXIiKTsK
ICAgIHJldHVybiBudWxsOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Ucmlt
ID0gZnVuY3Rpb24ocykgewoJcmV0dXJuIHMucmVwbGFjZSgvXlxzK3xccyskL2cs
IiIpOwoKfTsKClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkVzY2FwZVZhbHVlID0g
ZnVuY3Rpb24ocykgewogICAgaWYgKHMgPT0gbnVsbCkgcmV0dXJuIG51bGw7CiAg
ICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHMpOwp9OwoKU2l0ZUxpZmVQcm94
eS5wcm90b3R5cGUuX19BcnJheVZhbGlkYXRpb24gPSBmdW5jdGlvbihzKQp7CiAg
ICBpZiAoKHR5cGVvZiBzID09ICd1bmRlZmluZWQnKSB8fCAocy5sZW5ndGggPCAx
KSkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4g
dHJ1ZTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuX19DaGVja0Vycm9ySGFu
ZGxlciA9IGZ1bmN0aW9uKG9uRXJyb3IpIHsKICAgIHRoaXMuT25EZWJ1ZygiX19D
aGVja0Vycm9ySGFuZGxlciAiICsgb25FcnJvcik7CiAgICBpZiAoKHR5cGVvZiBv
bkVycm9yID09ICd1bmRlZmluZWQnKSB8fCAoZXZhbCgid2luZG93LiIgKyBvbkVy
cm9yKSA9PSBudWxsKSkKICAgIHsKICAgICAgcmV0dXJuICJnU2l0ZUxpZmUuT25F
cnJvciI7CiAgICB9CiAgICByZXR1cm4gb25FcnJvcjsKfQpTaXRlTGlmZVByb3h5
LnByb3RvdHlwZS5TZXRDb29raWUgPSBmdW5jdGlvbiBTZXRDb29raWUoIG5hbWUs
IHZhbHVlKSB7CiAgICB2YXIgdG9kYXkgPSBuZXcgRGF0ZSgpOyB0b2RheS5zZXRU
aW1lKCB0b2RheS5nZXRUaW1lKCkgKTsKICAgIAogICAgdmFyIGV4cGlyZXNfZGF0
ZSA9IG5ldyBEYXRlKCB0b2RheS5nZXRUaW1lKCkgKyAxMjYxNDQwMDAwMDAgKTsK
ICAgIAogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICI9IiArZXNjYXBlKCB2
YWx1ZSApICsKICAgICI7ZXhwaXJlcz0iICsgZXhwaXJlc19kYXRlLnRvR01UU3Ry
aW5nKCkgKyAKICAgICI7cGF0aD0vIiArICI7ZG9tYWluPW5ld3NpbnQuY28udWsi
IDsKfQovLyB2YWxpZGF0ZSBhbmQgZmV0Y2ggYXJndW1lbnRzLCBpZiB0aGUgYXJn
dW1lbnQgaXMgbWlzc2luZyBhbmQgb3B0aW9uYWwsIHdlIHJldHVybiBhbiBlbXB0
eSBzdHJpbmcgICAgICAgIApTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5fX0dldEFy
Z3VtZW50ID0gZnVuY3Rpb24odmFyaWFibGVOYW1lLCB2YXJpYWJsZVZhbHVlLCBp
c1JlcXVpcmVkLCBpc0FycmF5KSB7CiAgICB0aGlzLk9uRGVidWcoIl9fR2V0QXJn
dW1lbnQgIiArIHZhcmlhYmxlTmFtZSArICIsIiArIHZhcmlhYmxlVmFsdWUgKyAi
LCIgKyBpc1JlcXVpcmVkICsgIiwiICsgaXNBcnJheSk7CiAgICBpZiAodHlwZW9m
IHZhcmlhYmxlVmFsdWUgPT0gInVuZGVmaW5lZCIgfHwgdmFyaWFibGVWYWx1ZSA9
PSBudWxsIHx8IHZhcmlhYmxlVmFsdWUgPT0gIiIpCiAgICB7CiAgICAgICAgaWYg
KGlzUmVxdWlyZWQpCiAgICAgICAgewogICAgICAgICAgICB0aGlzLk9uRXJyb3Io
Ik1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyICIgKyB2YXJpYWJsZU5hbWUpOwog
ICAgICAgICAgICB0aGlzLl9faXNWYWxpZCA9IGZhbHNlOwogICAgICAgICAgICBy
ZXR1cm4gIiI7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgcmV0
dXJuICIiOwogICAgfQogICAgaWYgKGlzUmVxdWlyZWQgJiYgaXNBcnJheSkgCiAg
ICB7CiAgICAgICAgaWYgKCF0aGlzLl9fQXJyYXlWYWxpZGF0aW9uKHZhcmlhYmxl
VmFsdWUpKSAKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMuT25FcnJvcigiSW52
YWxpZCBhcnJheSBwYXJhbWV0ZXIgIiArIHZhcmlhYmxlTmFtZSk7CiAgICAgICAg
ICAgIHRoaXMuX19pc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgICAgIHJldHVybiAi
IjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gIiYiICsgdmFyaWFibGVOYW1l
ICsgIj0iICsgdGhpcy5Fc2NhcGVWYWx1ZSh2YXJpYWJsZVZhbHVlKTsKfTsKClNp
dGVMaWZlUHJveHkucHJvdG90eXBlLl9fU3RyaXBBbmNob3JGcm9tVXJsID0gZnVu
Y3Rpb24odXJsKSB7CiAgICB2YXIgYUlkeCA9IHVybC5pbmRleE9mKCIjIik7CiAg
ICByZXR1cm4gYUlkeCA9PSAtMSA/IHVybCA6IHVybC5zdWJzdHJpbmcoMCwgYUlk
eCk7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLl9fU2FmZUFwcGVuZFVybFZh
bHVlID0gZnVuY3Rpb24odXJsLCBrZXksIHZhbHVlKSB7CiAgICB1cmwgKz0gdXJs
LmluZGV4T2YoIj8iKSAhPSAtMSA/ICImIiA6ICI/IjsKICAgIHJldHVybiB1cmwg
KyBrZXkgKyAiPSIgKyB2YWx1ZTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
X19BcHBlbmRVcmxWYWx1ZXMgPSBmdW5jdGlvbiAodXJsKQp7Cgl0aW1lID0gbmV3
IERhdGUoKTsKICAgIHVybCArPSB0aGlzLl9fR2V0QXJndW1lbnQoInBsY2tOb0Nh
Y2hlIiwgdGltZS5nZXRUaW1lKCksIGZhbHNlLCBmYWxzZSk7CiAgICB1cmwgKz0g
dGhpcy5fX0dldEFyZ3VtZW50KCJwbGNrQXBpS2V5IiwgdGhpcy5hcGlLZXksIHRy
dWUsIGZhbHNlKTsKICAgIHVybCArPSB0aGlzLl9fR2V0QXJndW1lbnQoInBja3Ns
ZCIsIHRoaXMuc2l0ZUxpZmVEb21haW5PdmVycmlkZSwgZmFsc2UsIGZhbHNlKTsK
ICAgIHVybCArPSB0aGlzLl9fR2V0QXJndW1lbnQoInBja3NidSIsIHRoaXMuc2l0
ZUxpZmVTZXJ2ZXJCYXNlT3ZlcnJpZGUsIGZhbHNlLCBmYWxzZSk7CiAgICB1cmwg
Kz0gdGhpcy5fX0dldEFyZ3VtZW50KCJwY2tjc3MiLCB0aGlzLmN1c3RvbWVyQ1NT
T3ZlcnJpZGUsIGZhbHNlLCBmYWxzZSk7CiAgICB1cmwgKz0gdGhpcy5fX0dldEFy
Z3VtZW50KCJwY2tmcHAiLCB0aGlzLmN1c3RvbWVyRm9ydW1QYWdlUGF0aE92ZXJy
aWRlLCBmYWxzZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICAgICB1cmwg
Kz0gdGhpcy5fX0dldEFyZ3VtZW50KCJzaWQiLCBnU2l0ZUxpZmUuU0lELCBmYWxz
ZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgCiAgICByZXR1cm4gdXJsOwp9CgpT
aXRlTGlmZVByb3h5LnByb3RvdHlwZS5SZWxvYWRQYWdlID0gZnVuY3Rpb24ocGFy
YW1zKSB7CiAgICB2YXIgc1NlYXJjaCA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gu
c3Vic3RyaW5nKDEpOwogICAgdmFyIHNOVlBzID0gc1NlYXJjaC5zcGxpdCgnJicp
OwogICAgdmFyIG5ld1NlYXJjaCA9ICIiOwogICAgdmFyIGFuY2hvclBvaW50ID0g
IiI7CiAgICBmb3IodmFyIGsgaW4gcGFyYW1zKSB7CiAgICAgICAgaWYoayA9PSAi
ZXh0ZW5kIikgY29udGludWU7CgkJaWYoayA9PSAiIyIpIHsKCQkJYW5jaG9yUG9p
bnQgPSAnIycgKyBwYXJhbXNba107CgkJCWNvbnRpbnVlOwoJCX0JCQogICAgICAg
IGlmKG5ld1NlYXJjaCA9PSAiIikgbmV3U2VhcmNoICs9ICI/IjsgZWxzZSBuZXdT
ZWFyY2ggKz0gIiYiOwogICAgICAgIG5ld1NlYXJjaCArPSBrICsgJz0nICsgcGFy
YW1zW2tdOwogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzTlZQcy5sZW5n
dGg7IGkrKykgewogICAgICAgIHZhciBrdiA9IHNOVlBzW2ldLnNwbGl0KCc9Jyk7
CiAgICAgICAgaWYoa3ZbMF0gJiYga3ZbMF0uaW5kZXhPZigncGxjaycpICE9IDAg
JiYgISBwYXJhbXNba3ZbMF1dKSB7CiAgICAgICAgICAgIG5ld1NlYXJjaCArPSAi
JiIgKyBzTlZQc1tpXTsgICAgICAgIAogICAgICAgIH0KICAgIH0KICAgICAgICAg
ICAgCiAgICBpZihhbmNob3JQb2ludCAhPSAiIil7IAogICAgICAgIHdpbmRvdy5s
b2NhdGlvbi5oYXNoID0gYW5jaG9yUG9pbnQ7CiAgICB9CiAgICB3aW5kb3cubG9j
YXRpb24uc2VhcmNoID0gbmV3U2VhcmNoOwp9CgpmdW5jdGlvbiBsb2FkU2NyaXB0
ICh1cmwsIGNhbGxiYWNrKSB7Cgl2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnc2NyaXB0Jyk7CglzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3Jp
cHQnOwoJc2NyaXB0LmNoYXJzZXQgPSAndXRmLTgnOwoJaWYgKGNhbGxiYWNrKQoJ
CXNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVu
Y3Rpb24oKSB7CgkJCWlmIChzY3JpcHQucmVhZHlTdGF0ZSAmJiBzY3JpcHQucmVh
ZHlTdGF0ZSAhPSAnbG9hZGVkJyAmJiBzY3JpcHQucmVhZHlTdGF0ZSAhPSAnY29t
cGxldGUnKQoJCQkJcmV0dXJuOwoJCQlzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdl
ID0gc2NyaXB0Lm9ubG9hZCA9IG51bGw7CgkJCWNhbGxiYWNrKCk7CgkJfTsKCXNj
cmlwdC5zcmMgPSB1cmw7Cglkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
aGVhZCcpWzBdLmFwcGVuZENoaWxkIChzY3JpcHQpOwp9CgpTaXRlTGlmZVByb3h5
LnByb3RvdHlwZS5fX1NlbmQgPSBmdW5jdGlvbih1cmwsIHNjcmlwdFRvVXNlLCBj
YWxsYmFja05hbWUsIGFyZ3MpIHsKICAgIHRoaXMuT25EZWJ1ZygiX1NlbmQgIiAr
IHVybCk7CiAgICBmdW5jdGlvbiBnTG9hZFNjcmlwdCh1cmwsIGNhbGxiYWNrTmFt
ZSkgewogICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c2NyaXB0Jyk7CiAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4
dC9qYXZhc2NyaXB0Jyk7CiAgICAJc2NyaXB0LnNldEF0dHJpYnV0ZSgnY2hhcnNl
dCcsICd1dGYtOCcpOwogICAgCXNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3NyYycsIHVy
bCArIChjYWxsYmFja05hbWUgPyAnJkVWRU5UX0lEPScgKyBjYWxsYmFja05hbWUg
OiAnJykpOwogICAgCWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFk
JylbMF0uYXBwZW5kQ2hpbGQgKHNjcmlwdCk7CiAgICB9CiAgICBmdW5jdGlvbiBi
aW5kKF9mdW5jdGlvbiwgX3RoaXMsIF9hcmd1bWVudHMpIHsKICAgICAgdmFyIGYg
PSBmdW5jdGlvbigpIHsKICAgICAgICBfZnVuY3Rpb24uYXBwbHkoX3RoaXMsIF9h
cmd1bWVudHMpOwogICAgICB9OwogICAgICBmWydfX0JvdW5kJ10gPSB0cnVlOwog
ICAgICByZXR1cm4gZjsKICAgIH07CiAgICB2YXIgZnVuYzsKICAgIGlmICgodHlw
ZW9mIGNhbGxiYWNrTmFtZSA9PSAnc3RyaW5nJykgJiYgKGZ1bmMgPSB0aGlzLl9f
ZXZlbnRIYW5kbGVyc1tjYWxsYmFja05hbWVdKSAmJiAodHlwZW9mIGZ1bmMgPT0g
J2Z1bmN0aW9uJykgJiYgIWZ1bmNbJ19fQm91bmQnXSkgewogICAgICB0aGlzLl9f
ZXZlbnRIYW5kbGVyc1tjYWxsYmFja05hbWVdID0gYmluZChmdW5jLCB0aGlzLCBh
cmdzKTsKICAgIH0KICAgIAogICAgLy9hcHBlbmQgb3VyIHZhcmlvdXMgcGFyYW1l
dGVycyBhcyBuZWNlc3NhcnkKICAgIHVybCA9IHRoaXMuX19BcHBlbmRVcmxWYWx1
ZXModXJsKTsKICAgIHRoaXMuT25EZWJ1ZygiX1NlbmQgKHVwZGF0ZWQpICIgKyB1
cmwpOwogICAgLy8gYWRkIHRoZSBzY3JpcHQgbm9kZSB0byB0aGUgZG9jdW1lbnQK
ICAgIGlmIChkb2N1bWVudC5jcmVhdGVFbGVtZW50ICYmICEgdGhpcy5fX2lzTWFj
SUUpIHsKICAgICAgICBnTG9hZFNjcmlwdCh1cmwsIGNhbGxiYWNrTmFtZSk7CiAg
ICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIGNvdWxkIGZhbGwgYmFjayB0byBz
eW5jIGF0IHRoaXMgcG9pbnQsIGJ1dCB3aWxsIGJ1c3QgaWYgdGhlIHBhZ2UgaXMg
YWxyZWFkeSBsb2FkZWQKCiAgICB0aGlzLk9uRXJyb3IoIk5vIHN1cHBvcnQgZm9y
IGFzeW5jIGluIHRoaXMgYnJvd3NlciIpOwp9CgpTaXRlTGlmZVByb3h5LnByb3Rv
dHlwZS5Mb2dvdXQgPSBmdW5jdGlvbihTY3JpcHRUb1VzZSwgSXNSZXN0UGFnZSkg
ewogICAgdmFyIHBsY2tSZXN0ID0gSXNSZXN0UGFnZSA/IHRydWUgOiBmYWxzZTsK
ICAgIHRoaXMuX19TZW5kKHRoaXMuX19iYXNlVXJsICsgJy9VdGlsaXR5L0xvZ291
dD9wbGNrUmVkaXJlY3RVcmw9JyArIGVzY2FwZSh3aW5kb3cubG9jYXRpb24uaHJl
ZikgKyAnJnBsY2tSZXN0PScgKyBwbGNrUmVzdCwgU2NyaXB0VG9Vc2UpOwogICAg
cmV0dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5BZGRMb2Fk
RXZlbnQgPSBmdW5jdGlvbihmdW5jKSB7CmlmKHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKXsKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuYywgZmFs
c2UpOwp9ZWxzZXsKIGlmKHdpbmRvdy5hdHRhY2hFdmVudCl7CiAgIHdpbmRvdy5h
dHRhY2hFdmVudCgib25sb2FkIiwgZnVuYyk7CiB9ZWxzZXsKICAgaWYoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQpewogICAgdmFyIG9sZG9ubG9hZCA9IHdpbmRvdy5v
bmxvYWQ7CiAgICBpZiAodHlwZW9mIHdpbmRvdy5vbmxvYWQgIT0gJ2Z1bmN0aW9u
JykgewogICAgICB3aW5kb3cub25sb2FkID0gZnVuYzsKICAgIH0gZWxzZSB7CiAg
ICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgIGlmIChvbGRv
bmxvYWQpIHsKICAgICAgICBvbGRvbmxvYWQoKTsKICAgICAgIH0KICAgICAgIGZ1
bmMoKTsKfX19fX19CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5BZEluc2VydEhl
bHBlciA9IGZ1bmN0aW9uKCkgewogICAgZm9yKHZhciBzcmMgaW4gZ1NpdGVMaWZl
Ll9fYWRzVG9JbnNlcnQpIHsKICAgICAgICBpZihzcmMgPT0gImV4dGVuZCIpIGNv
bnRpbnVlOwogICAgICAgIHZhciBkZXN0ID0gZ1NpdGVMaWZlLl9fYWRzVG9JbnNl
cnRbc3JjXTsKICAgICAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZGVzdCk7CgkJdmFyIG5ld0NoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoc3JjKTsKCQlpZiggISBwYXJlbnQgfHwgISBuZXdDaGlsZCApIHtjb250
aW51ZTsgfQoJCXBhcmVudC5yZXBsYWNlQ2hpbGQoIG5ld0NoaWxkLCBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChkZXN0ICsgIkNoaWxkIikpOwoJCW5ld0NoaWxkLnN0
eWxlLmRpc3BsYXkgPSAiYmxvY2siOyBwYXJlbnQuc3R5bGUuZGlzcGxheSA9ICJi
bG9jayI7CiAgICB9Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkluc2VydEFk
cyA9IGZ1bmN0aW9uKHNvdXJjZSwgZGVzdGluYXRpb24pIHsKZ1NpdGVMaWZlLl9f
YWRzVG9JbnNlcnQgPSBuZXcgT2JqZWN0KCk7CmZvcihpaT0wOyBpaTwgdGhpcy5J
bnNlcnRBZHMuYXJndW1lbnRzLmxlbmd0aDsgaWkrPTIpIHsgZ1NpdGVMaWZlLl9f
YWRzVG9JbnNlcnRbdGhpcy5JbnNlcnRBZHMuYXJndW1lbnRzW2lpXV0gPSB0aGlz
Lkluc2VydEFkcy5hcmd1bWVudHNbaWkrMV07fQp0aGlzLkFkZExvYWRFdmVudChn
U2l0ZUxpZmUuQWRJbnNlcnRIZWxwZXIpOwp9CgpTaXRlTGlmZVByb3h5LnByb3Rv
dHlwZS5UaXRsZVRhZyA9IGZ1bmN0aW9uKCkgewogdmFyIHRpdGxlVGFnID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsY2tUaXRsZVRhZyIpOwogcmV0dXJuIHRp
dGxlVGFnID8gdGl0bGVUYWcuaW5uZXJUZXh0IHx8IHRpdGxlVGFnLnRleHRDb250
ZW50IDogbnVsbDsKIH0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLldyaXRlRGl2
ID0gZnVuY3Rpb24oaWQsIGRpdkNsYXNzKSB7CiAgICB2YXIgY3NzQ2xhc3MgPSBk
aXZDbGFzcyA/IGRpdkNsYXNzIDogIiI7CiAgICBkb2N1bWVudC53cml0ZSgnPGRp
diBpZD0iJytpZCsnIiBjbGFzcz0iJytjc3NDbGFzcysnIj48L2Rpdj4nKTsgcmV0
dXJuIGlkOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Jbm5lckh0bWxXcml0
ZSA9IGZ1bmN0aW9uKGVsZW1lbnRJZCwgaW5uZXJDb250ZW50cyApIHsKICAgIHZh
ciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdHJ5IHsK
ICAgICAgICBpZihkb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImRlYnVn
PXRydWUiKSA+IC0xKSB7CiAgICAgICAgICAgIGVsLmlubmVySFRNTCArPSAiPGRp
diBzdHlsZT0nYm9yZGVyOjFweCBzb2xpZCByZWQ7Jz48c3BhbiBzdHlsZT0nYmFj
a2dyb3VuZC1jb2xvcjpyZWQ7IGNvbG9yOndoaXRlOyBwb3NpdGlvbjphYnNvbHV0
ZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTo4cHQ7JyBvbmNsaWNrPSdEZWJ1
Z1Nob3dJbm5lckhUTUwoXCIke3BsY2tFbGVtZW50SWR9XCIsXCJodHRwOi8vXCIr
Y29tbWVudHNSb290VXJsK1wiL3ZlcjEuMC9Qcm94aWVzL0RlZmF1bHQucmFpbHNc
Iik7Jz4mbmJzcDs/Jm5ic3A7PC9zcGFuPjxkaXY+IiArIGlubmVyQ29udGVudHMg
KyAiPC9kaXY+PC9kaXY+IjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBl
bC5pbm5lckhUTUwgKz0gaW5uZXJDb250ZW50czsKICAgICAgICAgICAgZWwuc3R5
bGUuZGlzcGxheSA9ICJpbmxpbmUiOwogICAgICAgIH0KICAgICAgICB2YXIgZGVz
dERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CiAgICAg
ICAgd2hpbGUgKGRlc3REaXYuY2hpbGROb2Rlcy5sZW5ndGggPj0gMSkgewogICAg
ICAgICAgICAgZGVzdERpdi5yZW1vdmVDaGlsZChkZXN0RGl2LmNoaWxkTm9kZXNb
MF0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBkZXN0RGl2LmFwcGVuZENo
aWxkKGVsKTsKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgYWxlcnQoZWxl
bWVudElkICsgIiBFcnJvciAiICArIGVycm9yLm51bWJlciArICI6ICIgKyBlcnJv
ci5kZXNjcmlwdGlvbik7CiAgICB9Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBl
LlNvcnRUaW1lU3RhbXBEZXNjZW5kaW5nID0gIlRpbWVTdGFtcERlc2NlbmRpbmci
OwpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Tb3J0VGltZVN0YW1wQXNjZW5kaW5n
ID0gIlRpbWVTdGFtcEFzY2VuZGluZyI7ClNpdGVMaWZlUHJveHkucHJvdG90eXBl
LlNvcnRSZWNvbW1lbmRhdGlvbnNEZXNjZW5kaW5nID0gIlJlY29tbWVuZGF0aW9u
c0Rlc2NlbmRpbmciOwpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Tb3J0UmVjb21t
ZW5kYXRpb25zQXNjZW5kaW5nID0gIlJlY29tbWVuZGF0aW9uc0FzY2VuZGluZyI7
ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlNvcnRSYXRpbmdEZXNjZW5kaW5nID0g
IlJhdGluZ0Rlc2NlbmRpbmciOwpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Tb3J0
UmF0aW5nQXNjZW5kaW5nID0gIlJhdGluZ0FzY2VuZGluZyI7ClNpdGVMaWZlUHJv
eHkucHJvdG90eXBlLlNvcnRBbHBoYWJldGljYWxBc2NlbmRpbmcgPSAiQWxwaGFi
ZXRpY2FsQXNjZW5kaW5nIjsKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuU29ydEFs
cGhhYmV0aWNhbERlc2NlbmRpbmcgPSAiQWxwaGFiZXRpY2FsRGVzY2VuZGluZyI7
ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLktleVR5cGVFeHRlcm5hbFJlc291cmNl
ID0gIkV4dGVybmFsUmVzb3VyY2UiOwogICAgICAgIAoKCgpTaXRlTGlmZVByb3h5
LnByb3RvdHlwZS5QZXJzb25hSGVhZGVyUmVxdWVzdCA9IGZ1bmN0aW9uKFVzZXJJ
ZCkgewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9QZXJzb25hL1Bl
cnNvbmFIZWFkZXI/cGxja0VsZW1lbnRJZD1wZXJzb25hSERlc3QmcGxja1VzZXJJ
ZD0nKyBVc2VySWQ7CiAgICB0aGlzLl9fU2VuZCh1cmwsICJwZXJzb25hSGVhZGVy
U2NyaXB0IiwgJ3BlcnNvbmE6aGVhZGVyJywgYXJndW1lbnRzKTsKfQpTaXRlTGlm
ZVByb3h5LnByb3RvdHlwZS5QZXJzb25hSGVhZGVyID0gZnVuY3Rpb24oVXNlcklk
KSB7CiAgICB0aGlzLldyaXRlRGl2KCJwZXJzb25hSERlc3QiLCAiUGVyc29uYV9N
YWluIik7CiAgICAgICAgdGhpcy5QZXJzb25hSGVhZGVyUmVxdWVzdChVc2VySWQp
OyAKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25hSGVhZGVySW5ib3gg
PSBmdW5jdGlvbigpIHsKCS8vIGlmIERBQVBJIHByb3h5IGlzIG5vdCBwcmVzZW50
LCBmYWlsIGdyYWNlZnVsbHkKCWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J1ByaXZhdGVNZXNzYWdlSW5ib3gnKSB8fCAhd2luZG93LlJlcXVlc3RCYXRjaCB8
fCAhd2luZG93LlByaXZhdGVNZXNzYWdlRm9sZGVyTGlzdCkgewoJCXZhciBwbUNv
bnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdQZXJzb25hSGVhZGVy
X1ByaXZhdGVNZXNzYWdlQ29udGVudCcpOwoJCWlmIChwbUNvbnRhaW5lcikgewoJ
CQlwbUNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCX0KCQlyZXR1
cm47Cgl9CgoJdmFyIHJiID0gbmV3IFJlcXVlc3RCYXRjaCgpOwoJcmIuQWRkVG9S
ZXF1ZXN0KG5ldyBQcml2YXRlTWVzc2FnZUZvbGRlckxpc3QoKSk7CglyYi5CZWdp
blJlcXVlc3Qoc2VydmVyVXJsLAoJCWZ1bmN0aW9uKHJlc3BvbnNlQmF0Y2gpIHsK
CQkJdmFyIGNvdW50ID0gJyc7CgkJCXRyeSB7CgkJCQlpZiAocmVzcG9uc2VCYXRj
aCAmJiByZXNwb25zZUJhdGNoLk1lc3NhZ2VzICYmIHJlc3BvbnNlQmF0Y2guTWVz
c2FnZXMubGVuZ3RoICYmIHJlc3BvbnNlQmF0Y2guTWVzc2FnZXNbMF0uTWVzc2Fn
ZSA9PSAnb2snKSB7CgkJCQkJdmFyIGZvbGRlcnMgPSByZXNwb25zZUJhdGNoLlJl
c3BvbnNlc1swXS5Qcml2YXRlTWVzc2FnZUZvbGRlckxpc3QuRm9sZGVyTGlzdDsK
CQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGZvbGRlcnMubGVuZ3RoOyBpKyspIHsK
CQkJCQkJdmFyIGYgPSBmb2xkZXJzW2ldOwoJCQkJCQlpZiAoZi5Gb2xkZXJJRCA9
PSAnSW5ib3gnKSB7IGNvdW50ID0gZi5VbnJlYWRNZXNzYWdlQ291bnQ7IGJyZWFr
OyB9CgkJCQkJfQoJCQkJfQoJCQl9IGNhdGNoIChlKSB7fQoJCQl2YXIgaW5ib3hT
dHIgPSAiSW5ib3ggKHswfSkiOwoJCQl2YXIgaWR4ID0gaW5ib3hTdHIuaW5kZXhP
ZigiezB9Iik7CgkJCWlmIChpbmJveFN0ciA9PSAnJyB8fCBpZHggPj0gLTEpCgkJ
CQlpbmJveFN0ciA9IGluYm94U3RyLnN1YnN0cmluZygwLCBpZHgpICsgY291bnQg
KyBpbmJveFN0ci5zdWJzdHJpbmcoaWR4KzMpOwoJCQl2YXIgaW5ib3ggPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnUHJpdmF0ZU1lc3NhZ2VJbmJveCcpOwoJCQlp
bmJveC5pbm5lckhUTUwgPSBpbmJveFN0cjsKCQkJaWYgKGNvdW50ID4gMCkgaW5i
b3guc3R5bGUuZm9udFdlaWdodCA9ICdib2xkJzsKCQl9KTsKfQoKU2l0ZUxpZmVQ
cm94eS5wcm90b3R5cGUuUGVyc29uYSA9IGZ1bmN0aW9uKFVzZXJJZCkgewogICAg
dGhpcy5Xcml0ZURpdigicGVyc29uYURlc3QiLCAiUGVyc29uYV9NYWluIik7CiAg
ICB2YXIgYWN0aW9uID0gdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tQZXJzb25hUGFn
ZSIpOwogICAgaWYoYWN0aW9uICYmICh0eXBlb2YgdGhpc1thY3Rpb25dID09ICdm
dW5jdGlvbicpKSB0aGlzW2FjdGlvbl0oVXNlcklkKTsKICAgICAgICAgICAgIGVs
c2UgdGhpcy5QZXJzb25hSG9tZShVc2VySWQpOwogICAgfQpTaXRlTGlmZVByb3h5
LnByb3RvdHlwZS5Mb2FkUGVyc29uYVBhZ2UgPSBmdW5jdGlvbihQYWdlTmFtZSwg
VXNlcklkKSB7CiAgICB2YXIgcGFyYW1zID0gbmV3IE9iamVjdCgpOyBwYXJhbXNb
J3BsY2tQZXJzb25hUGFnZSddID0gUGFnZU5hbWU7IHBhcmFtc1sncGxja1VzZXJJ
ZCddID0gVXNlcklkOwogICAgICAgICAgICBwYXJhbXNbJ3VzZXJJZCddID0gVXNl
cklkOwogICAgICAgIGZvcihpaT0yOyBpaTwgdGhpcy5Mb2FkUGVyc29uYVBhZ2Uu
YXJndW1lbnRzLmxlbmd0aDsgaWkrPTIpIHsgcGFyYW1zW3RoaXMuTG9hZFBlcnNv
bmFQYWdlLmFyZ3VtZW50c1tpaV1dID0gdGhpcy5Mb2FkUGVyc29uYVBhZ2UuYXJn
dW1lbnRzW2lpKzFdO30KICAgIHRoaXMuUmVsb2FkUGFnZShwYXJhbXMpOwogICAg
cmV0dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25h
SG9tZSA9IGZ1bmN0aW9uKFVzZXJJZCkgewoKICAgIHZhciBtZSA9IHRoaXM7CiAg
ICB0aGlzLkFkZEV2ZW50SGFuZGxlcigncGVyc29uYTpob21lOmNvbXBsZXRlJywg
ZnVuY3Rpb24oKSB7IG1lLlBvcHVsYXRlR3JvdXBzRGl2KFVzZXJJZCwgMSk7IH0p
OwogICAgcmV0dXJuIHRoaXMuUGVyc29uYVNlbmQoJ1BlcnNvbmFIb21lJywgJ3Bl
cnNvbmFEZXN0JywgJ3BlcnNvbmFTY3JpcHQnLCBVc2VySWQsIG51bGwsICdwZXJz
b25hOmhvbWU6Y29tcGxldGUnKTsKCSAgCn0KClNpdGVMaWZlUHJveHkuaHRtbEVu
Y29kZSA9IGZ1bmN0aW9uKHN0cil7CgkvLyBGaXggSFRNTAoJdmFyIHJldCA9IHN0
cjsKCXZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKCXZh
ciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKTsKCWRpdi5hcHBl
bmRDaGlsZCh0ZXh0KTsKCXJldCA9IG5ldyBTdHJpbmcoZGl2LmlubmVySFRNTCk7
CQkJCQoJCgkvLyBUaGUgYWJvdmUgZG9lc24ndCB0YWtlIGNhcmUgb2YgcXVvdGVz
LgoJcmV0ID0gcmV0LnJlcGxhY2UoLyIvZywgJyZxdW90OycpOwoJCglyZXR1cm4g
cmV0Owp9OwoJCQkKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUG9wdWxhdGVHcm91
cHNEaXYgPSBmdW5jdGlvbihVc2VySWQsIE9uUGFnZSkgewogICAgICAgIC8vIGEg
dXRpbGl0eSBmdW5jdGlvbiB0byBjb21wYXJlIHR3byB1cmxzIGZvciBwdXJwb3Nl
cyBvZiBkZXRlcm1pbmluZyBzaXRlIG9mIG9yaWdpbgogICAgdmFyIGlzRnJvbVRo
aXNTaXRlID0gZnVuY3Rpb24oc2l0ZU9mT3JpZ2luLCBjdXJyZW50SG9zdCkgewog
ICAgICAgIC8vIGFzc3VtZSBlYWNoIHVybCBoYXMgcGVyaW9kcyBpbiBpdAogICAg
ICAgIHZhciBzaXRlT2ZPcmlnaW5Eb3RJbmRleCA9IHNpdGVPZk9yaWdpbi5pbmRl
eE9mKCcuJyk7CiAgICAgICAgdmFyIGN1cnJlbnRIb3N0RG90SW5kZXggPSBjdXJy
ZW50SG9zdC5pbmRleE9mKCcuJykKICAgICAgICBpZiAoc2l0ZU9mT3JpZ2luRG90
SW5kZXggPCAwIHx8IGN1cnJlbnRIb3N0RG90SW5kZXggPCAwKSB7CiAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgIHJldHVybiBzaXRlT2ZPcmlnaW4uc2xpY2Uoc2l0ZU9mT3JpZ2luRG90
SW5kZXgpLnRvTG93ZXJDYXNlKCkgPT0gY3VycmVudEhvc3Quc2xpY2UoY3VycmVu
dEhvc3REb3RJbmRleCkudG9Mb3dlckNhc2UoKTsKICAgICAgICB9CiAgICB9CiAg
ICAgICAgLy8gY2hlY2sgZm9yIERBQVBJIG9iamVjdHM7IGlmIG5vdCB0aGVyZSwg
ZmFpbCBncmFjZWZ1bGx5CiAgICBpZiAod2luZG93LlJlcXVlc3RCYXRjaCAmJiB3
aW5kb3cuQ29tbXVuaXR5R3JvdXBNZW1iZXJzaGlwUGFnZSAmJiB3aW5kb3cuVXNl
cktleSkgewogICAgICAgIHZhciByZXF1ZXN0QmF0Y2ggPSBuZXcgUmVxdWVzdEJh
dGNoKCk7CiAgICAgICAgcmVxdWVzdEJhdGNoLkFkZFRvUmVxdWVzdChuZXcgQ29t
bXVuaXR5R3JvdXBNZW1iZXJzaGlwUGFnZShuZXcgVXNlcktleShVc2VySWQrIiIp
LCA4LCBPblBhZ2UsICJUaW1lU3RhbXBBc2NlbmRpbmciLCAiTWVtYmVyIikpOwog
ICAgICAgIHJlcXVlc3RCYXRjaC5CZWdpblJlcXVlc3QoImh0dHA6Ly8iK2NvbW1l
bnRzUm9vdFVybCsiL3ZlcjEuMC9EaXJlY3QvUHJvY2VzcyIsIGZ1bmN0aW9uKHJl
c3BvbnNlQmF0Y2gpIHsgICAKICAgICAgICAgICAgaWYgKHJlc3BvbnNlQmF0Y2gu
UmVzcG9uc2VzLmxlbmd0aCA+IDAgJiYgcmVzcG9uc2VCYXRjaC5SZXNwb25zZXNb
MF0uQ29tbXVuaXR5R3JvdXBNZW1iZXJzaGlwUGFnZSkgewogICAgICAgICAgICAg
ICAgLy8gY3JlYXRlIHRoZSBkaXYgdGhhdCB3aWxsIGhvdXNlIGFsbCB0aGlzIGlu
Zm8KICAgICAgICAgICAgICAgIHZhciBncm91cHNEaXYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgIGdyb3Vwc0Rpdi5jbGFz
c05hbWUgPSAnUGVyc29uYVN0eWxlX0l0ZW1Db250YWluZXInOwogICAgICAgICAg
ICAgICAgdmFyIGdyb3Vwc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdQZXJzb25hU3R5bGVfR3JvdXBzQ29udGFpbmVyJyk7CiAgICAgICAgICAg
ICAgICAvLyBDaGVjayBncm91cHNDb250YWluZXIgaXMgbnVsbCBiZWNhdXNlIFBl
cnNvbmFTdHlsZV9Hcm91cENvbnRhaW5lciBtYXkgYmUgYWJzZW50IGR1ZSB0byBw
cml2YXRlIHBlcnNvbmEgZmlsZXMuCiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBz
Q29udGFpbmVyICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBncm91cHND
b250YWluZXIuYXBwZW5kQ2hpbGQoZ3JvdXBzRGl2KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3VwQmFzZVVybCA9
ICJodHRwOi8vdG9sc2kxLnNlLm5ld3NpbnQuY28udWsvZ3JvdXBzL0NvbW11bml0
eUdyb3VwLmh0bWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBncm91cE1lbWJl
cnNoaXBQYWdlID0gcmVzcG9uc2VCYXRjaC5SZXNwb25zZXNbMF0uQ29tbXVuaXR5
R3JvdXBNZW1iZXJzaGlwUGFnZTsKICAgICAgICAgICAgICAgICAgICB2YXIgZ3Jv
dXBzSHRtbCA9ICI8ZGl2IGNsYXNzPVwiUGVyc29uYVN0eWxlX1NlY3Rpb25IZWFk
XCI+R3JvdXBzPC9kaXY+IjsKICAgICAgICAgICAgICAgICAgICBncm91cHNIdG1s
ICs9ICI8ZGl2IGNsYXNzPVwiUGVyc29uYVN0eWxlX0dyb3VwTGlzdFwiPiI7CiAg
ICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGdy
b3VwTWVtYmVyc2hpcFBhZ2UuQ29tbXVuaXR5R3JvdXBNZW1iZXJzaGlwcy5sZW5n
dGg7IGluZGV4KyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJl
bnRHcm91cCA9IGdyb3VwTWVtYmVyc2hpcFBhZ2UuQ29tbXVuaXR5R3JvdXBNZW1i
ZXJzaGlwc1tpbmRleF0uQ29tbXVuaXR5R3JvdXA7CiAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIGlmIGN1cnJlbnQgZ3JvdXAgaXMgcHJpdmF0ZSBhbmQgdXNlciBp
cyBub24tbWVtYmVyLCBkb24ndCBkaXNwbGF5CiAgICAgICAgICAgICAgICAgICAg
ICAgIHZhciBkaXNwbGF5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGN1cnJlbnRHcm91cC5Db21tdW5pdHlHcm91cFZpc2liaWxpdHkgPT0gJ1By
aXZhdGUnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5ID0g
KGN1cnJlbnRHcm91cC5SZXF1ZXN0aW5nVXNlcnNNZW1iZXJzaGlwVGllciAhPSAn
Tm9uTWVtYmVyJyAmJiBjdXJyZW50R3JvdXAuUmVxdWVzdGluZ1VzZXJzTWVtYmVy
c2hpcFRpZXIgIT0gJ0Jhbm5lZCcpOwogICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXNwbGF5KSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBVcmwgPSBncm91cEJhc2VVcmwg
KyAiP3NsR3JvdXBLZXk9IiArIGN1cnJlbnRHcm91cC5Db21tdW5pdHlHcm91cEtl
eS5LZXk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghaXNGcm9tVGhpc1NpdGUoY3VycmVudEdy
b3VwLlNpdGVPZk9yaWdpbiwgd2luZG93LmxvY2F0aW9uLmhvc3QpKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3Vwc0h0bWwgKz0gIjxp
bWcgaGVpZ2h0PVwiNTBcIiB3aWR0aD1cIjUwXCIgdGl0bGU9XCIiICsgU2l0ZUxp
ZmVQcm94eS5odG1sRW5jb2RlKGN1cnJlbnRHcm91cC5UaXRsZSkgKyAiXCIgc3Jj
PVwiIiArIGN1cnJlbnRHcm91cC5BdmF0YXJJbWFnZVVybCArICJcIiAvPiI7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncm91cHNIdG1sICs9ICI8YSBocmVmPVwiIiArIGdyb3VwVXJs
ICsgIlwiPjxpbWcgaGVpZ2h0PVwiNTBcIiB3aWR0aD1cIjUwXCIgdGl0bGU9XCIi
ICsgU2l0ZUxpZmVQcm94eS5odG1sRW5jb2RlKGN1cnJlbnRHcm91cC5UaXRsZSkg
KyAiXCIgc3JjPVwiIiArIGN1cnJlbnRHcm91cC5BdmF0YXJJbWFnZVVybCArICJc
IiAvPjwvYT4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy9Q
YWdpbmF0aW9uIGZvciBHcm91cCBMaXN0CiAgICAgICAgICAgICAgICAgICAgZ3Jv
dXBzSHRtbCArPSAiPHA+PHVsIGNsYXNzPVwiUGVyc29uYVN0eWxlX0dyb3VwTGlz
dFBhZ2luYXRpb25cIj4iOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgIGlmIChncm91cE1lbWJlcnNoaXBQYWdlLk9uUGFnZSA+IDEpICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBzSHRt
bCArPSAiPGxpPjxhIGhyZWY9JyNQcmV2aW91c0dyb3VwJyBvbmNsaWNrPSdnU2l0
ZUxpZmUuUG9wdWxhdGVHcm91cHNEaXYoXCIiICsgVXNlcklkICsgIlwiLCAiICsg
KHBhcnNlSW50KGdyb3VwTWVtYmVyc2hpcFBhZ2UuT25QYWdlKSAtIDEpICsgIik7
Jz4mbHQ7Jmx0O1ByZXZpb3VzPC9hPjwvbGk+IjsKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgaWYg
KGdyb3VwTWVtYmVyc2hpcFBhZ2UuTnVtYmVyT2ZDb21tdW5pdHlHcm91cE1lbWJl
cnNoaXBzID4gKGdyb3VwTWVtYmVyc2hpcFBhZ2UuTnVtYmVyUGVyUGFnZSAqIGdy
b3VwTWVtYmVyc2hpcFBhZ2UuT25QYWdlKSkgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBncm91cHNIdG1sICs9ICI8bGk+PGEgaHJlZj0n
I05leHRHcm91cCcgb25jbGljaz0nZ1NpdGVMaWZlLlBvcHVsYXRlR3JvdXBzRGl2
KFwiIiArIFVzZXJJZCArICJcIiwgIiArIChwYXJzZUludChncm91cE1lbWJlcnNo
aXBQYWdlLk9uUGFnZSkgKyAxKSArICIpOyc+TmV4dCZndCZndDs8L2E+PC9saT4i
OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBncm91
cHNIdG1sICs9ICI8L3A+IjsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAvL0VuZCBQYWdpbmF0aW9uIGZvciBHcm91cCBMaXN0ICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzSHRtbCArPSAiPC91bD48
ZGl2IGNsYXNzPVwiUGVyc29uYVN0eWxlX0dyb3VwTGlzdENsZWFyXCI+PC9kaXY+
IjsgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZ3JvdXBz
SHRtbCArPSAiPC9kaXY+IjsgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgZ3JvdXBzRGl2LmlubmVySFRNTCA9IGdyb3Vwc0h0bWw7CiAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgd2hpbGUoZ3JvdXBz
Q29udGFpbmVyLmhhc0NoaWxkTm9kZXMoKSkgewogICAgICAgICAgICAgICAgICAg
ICAgICBncm91cHNDb250YWluZXIucmVtb3ZlQ2hpbGQoZ3JvdXBzQ29udGFpbmVy
LmNoaWxkTm9kZXNbMF0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICBncm91cHNDb250YWluZXIuYXBwZW5kQ2hpbGQoZ3JvdXBzRGl2
KTsKICAgICAgICAgICAgICAgIH0gICAKICAgICAgICAgICAgfQogICAgICAgIH0p
OwogICAgfQogICAgLy8gZmlyZSBhbnkgb3RoZXIgZXZlbnRzCiAgICB0aGlzLkZp
cmVFdmVudCgncGVyc29uYTpob21lJyk7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90
eXBlLldhdGNoSXRlbSA9IGZ1bmN0aW9uKENvbnRyb2xsZXIsTWV0aG9kLFdhdGNo
S2V5LCB0YXJnZXREaXYpIHsKICAgIHZhciB1cmwgPSB0aGlzLl9fYmFzZVVybCAr
ICcvJytDb250cm9sbGVyKycvJyArIE1ldGhvZCArICc/JyArICdwbGNrV2F0Y2hL
ZXk9JyArIFdhdGNoS2V5ICsgJyZwbGNrRWxlbWVudElkPScgKyB0YXJnZXREaXYg
KyAnJnBsY2tXYXRjaFVybD0nICsgdGhpcy5Fc2NhcGVWYWx1ZSh3aW5kb3cubG9j
YXRpb24uaHJlZik7CiAgICB0aGlzLl9fU2VuZCh1cmwsICJBZGRXYXRjaFNjcmlw
dCIpOwogICAgcmV0dXJuIGZhbHNlOwp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBl
LlBlcnNvbmFSZW1vdmVXYXRjaEl0ZW09IGZ1bmN0aW9uKFVzZXJJZCwgV2F0Y2hL
ZXksIERpdiwgVmlldykgewogICByZXR1cm4gdGhpcy5QZXJzb25hU2VuZCgnUGVy
c29uYVJlbW92ZVdhdGNoSXRlbScsIERpdiwgJ3BlcnNvbmFTY3JpcHQnLCBVc2Vy
SWQsICdwbGNrV2F0Y2hWaWV3PScgKyBWaWV3ICsgJyZwbGNrV2F0Y2hLZXk9JyAr
IFdhdGNoS2V5KTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25hQWRk
RnJpZW5kPSBmdW5jdGlvbihVc2VySWQpIHsKICAgcmV0dXJuIHRoaXMuUGVyc29u
YVNlbmQoJ1BlcnNvbmFBZGRGcmllbmQnLCAncGVyc29uYUhEZXN0JywgJ3BlcnNv
bmFTY3JpcHQnLCBVc2VySWQpOwp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBl
cnNvbmFSZW1vdmVGcmllbmQgPSBmdW5jdGlvbihVc2VySWQsIEZyaWVuZCwgRGl2
LCBWaWV3LCBFeHBhbmRlZCwgY29uZmlybU1zZykgewogICBpZighRXhwYW5kZWQp
IEV4cGFuZGVkID0gImZhbHNlIjsKICAgaWYgKGNvbmZpcm0oY29uZmlybU1zZykg
PT0gdHJ1ZSkgewogICAgcmV0dXJuIHRoaXMuUGVyc29uYVNlbmQoJ1BlcnNvbmFS
ZW1vdmVGcmllbmQnLCBEaXYsICdwZXJzb25hU2NyaXB0JywgVXNlcklkLCAncGxj
a0ZyaWVuZFZpZXc9JyArIFZpZXcgKyAnJnBsY2tGcmllbmQ9JyArIEZyaWVuZCAr
ICcmcGxja0V4cGFuZGVkPScgKyBFeHBhbmRlZCk7CiAgIH0KICAgcmV0dXJuIGZh
bHNlOwp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBlcnNvbmFSZW1vdmVQZW5k
aW5nRnJpZW5kID0gZnVuY3Rpb24oVXNlcklkLCBQZW5kaW5nRnJpZW5kLCBEaXYs
IGNvbmZpcm1Nc2cpIHsKICAgaWYgKGNvbmZpcm0oY29uZmlybU1zZykgPT0gdHJ1
ZSkgewogICAgcmV0dXJuIHRoaXMuUGVyc29uYVNlbmQoJ1BlcnNvbmFSZW1vdmVQ
ZW5kaW5nRnJpZW5kJywgRGl2LCAncGVyc29uYVNjcmlwdCcsIFVzZXJJZCwgJ3Bs
Y2tQZW5kaW5nRnJpZW5kPScgKyBQZW5kaW5nRnJpZW5kKTsKICAgfQogICByZXR1
cm4gZmFsc2U7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUGVyc29uYUFkZFBl
bmRpbmdGcmllbmQgPSBmdW5jdGlvbihVc2VySWQsIFBlbmRpbmdGcmllbmQsIERp
dikgewogICAgcmV0dXJuIHRoaXMuUGVyc29uYVNlbmQoJ1BlcnNvbmFBZGRQZW5k
aW5nRnJpZW5kJywgRGl2LCAncGVyc29uYVNjcmlwdCcsIFVzZXJJZCwgJ3BsY2tQ
ZW5kaW5nRnJpZW5kPScgKyBQZW5kaW5nRnJpZW5kKTsKfQpTaXRlTGlmZVByb3h5
LnByb3RvdHlwZS5QZXJzb25hTWVzc2FnZXMgPSBmdW5jdGlvbihVc2VySWQpIHsK
ICAgdmFyIEFkUGFyYW1zID0gdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tDdXJyZW50
UGFnZScpID8gJ3BsY2tDdXJyZW50UGFnZT0nICsgdGhpcy5HZXRQYXJhbWV0ZXIo
J3BsY2tDdXJyZW50UGFnZScpIDogIiI7CiAgIHZhciBzY3JsID0gdGhpcy5HZXRQ
YXJhbWV0ZXIoJ3BsY2tTY3JvbGxUb0FuY2hvcicpOyAgaWYoc2NybCl7IGlmKEFk
UGFyYW1zKSB7QWRQYXJhbXMgKz0nJic7fSBBZFBhcmFtcyArPSAncGxja1Njcm9s
bFRvQW5jaG9yPScgKyBzY3JsO30KICAgaWYodGhpcy5HZXRQYXJhbWV0ZXIoJ3Bs
Y2tNZXNzYWdlU3VibWl0dGVkJykpe2lmKEFkUGFyYW1zKSB7QWRQYXJhbXMgKz0n
Jic7fSBBZFBhcmFtcyArPSAncGxja01lc3NhZ2VTdWJtaXR0ZWQ9JyArIHRoaXMu
R2V0UGFyYW1ldGVyKCdwbGNrTWVzc2FnZVN1Ym1pdHRlZCcpO30KICAgcmV0dXJu
IHRoaXMuUGVyc29uYVNlbmQoJ1BlcnNvbmFNZXNzYWdlcycsICdwZXJzb25hRGVz
dCcsICdwZXJzb25hU2NyaXB0JywgVXNlcklkLCBBZFBhcmFtcywgJ3BlcnNvbmE6
bWVzc2FnZXMnKTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25hQ29t
bWVudHMgPSBmdW5jdGlvbihVc2VySWQpIHsKICAgdmFyIEFkUGFyYW1zID0gdGhp
cy5HZXRQYXJhbWV0ZXIoJ3BsY2tDdXJyZW50UGFnZScpID8gJ3BsY2tDdXJyZW50
UGFnZT0nICsgdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tDdXJyZW50UGFnZScpIDog
IiI7CiAgIHJldHVybiB0aGlzLlBlcnNvbmFTZW5kKCdQZXJzb25hQ29tbWVudHMn
LCAncGVyc29uYURlc3QnLCAncGVyc29uYVNjcmlwdCcsIFVzZXJJZCwgQWRQYXJh
bXMsICdwZXJzb25hOmNvbW1lbnRzJyk7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5
cGUuUGVyc29uYUJsb2cgPSBmdW5jdGlvbihVc2VySWQpIHsKICAgdmFyIEFkUGFy
YW1zID0gdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tDdXJyZW50UGFnZScpID8gJ3Bs
Y2tDdXJyZW50UGFnZT0nICsgdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tDdXJyZW50
UGFnZScpIDogIiI7CiAgIGlmKEFkUGFyYW1zKSB7QWRQYXJhbXMgKz0nJic7fSBB
ZFBhcmFtcyArPSAncGxja0Jsb2dJZD0nICsgVXNlcklkOwogICB2YXIgdXJsID0g
dGhpcy5fX2Jhc2VVcmwgKyAnL1BlcnNvbmFCbG9nL1BlcnNvbmFCbG9nP3BsY2tF
bGVtZW50SWQ9cGVyc29uYURlc3QmcGxja1VzZXJJZD0nKyBVc2VySWQgKyAnJicg
KyBBZFBhcmFtczsKICAgdGhpcy5fX1NlbmQodXJsLCAncGVyc29uYVNjcmlwdCcs
ICdwZXJzb25hOmJsb2cnLCBhcmd1bWVudHMpOwogICByZXR1cm4gZmFsc2U7Cn0K
U2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUGVyc29uYVByb2ZpbGUgPSBmdW5jdGlv
bihVc2VySWQpIHsKICAgIHJldHVybiB0aGlzLlBlcnNvbmFTZW5kKCdQZXJzb25h
UHJvZmlsZScsICdwZXJzb25hRGVzdCcsICdwZXJzb25hU2NyaXB0JywgVXNlcklk
LCBudWxsLCAncGVyc29uYTpwcm9maWxlJyk7Cn0KU2l0ZUxpZmVQcm94eS5wcm90
b3R5cGUuUGVyc29uYVdhdGNoTGlzdFBhZ2luYXRlID0gZnVuY3Rpb24oVXNlcklk
LCBwYWdlTnVtKSB7IAogICAgcmV0dXJuIHRoaXMuUGVyc29uYVBhZ2luYXRlKCdX
YXRjaExpc3QnLCBwYWdlTnVtLCBVc2VySWQpOwp9ClNpdGVMaWZlUHJveHkucHJv
dG90eXBlLlBlcnNvbmFGcmllbmRzUGFnaW5hdGUgPSBmdW5jdGlvbihVc2VySWQs
IHBhZ2VOdW0pIHsgCgl2YXIgQWRQYXJhbSA9ICJwbGNrRnVsbEZyaWVuZHNMaXN0
PXRydWUiOwogICAgcmV0dXJuIHRoaXMuUGVyc29uYVBhZ2luYXRlKCdGcmllbmRz
JywgcGFnZU51bSwgVXNlcklkLCBBZFBhcmFtKTsKfQoKU2l0ZUxpZmVQcm94eS5w
cm90b3R5cGUuUGVyc29uYUZyaWVuZHNFeHBhbmQ9IGZ1bmN0aW9uKFVzZXJJZCkg
eyAKICAgIHZhciB1cmwgPSB0aGlzLl9fYmFzZVVybCArICcvUGVyc29uYS9QZXJz
b25hRnJpZW5kcz9wbGNrRnVsbEZyaWVuZHNMaXN0PXRydWUmcGxja0ZyaWVuZHNQ
YWdlTnVtPTAmcGxja0VsZW1lbnRJZD1QZXJzb25hRnJpZW5kc0Rlc3QmcGxja1Vz
ZXJJZD0nKyBVc2VySWQ7CiAgICB0aGlzLl9fU2VuZCh1cmwsICdQZXJzb25hRnJp
ZW5kc1NjcmlwdCcpOwogICAgcmV0dXJuIGZhbHNlOwp9ClNpdGVMaWZlUHJveHku
cHJvdG90eXBlLlBlcnNvbmFGcmllbmRzQ29sbGFwc2U9IGZ1bmN0aW9uKFVzZXJJ
ZCwgcGFnZU51bSkgeyAKICAgIHZhciB1cmwgPSB0aGlzLl9fYmFzZVVybCArICcv
UGVyc29uYS9QZXJzb25hRnJpZW5kcz9wbGNrRnVsbEZyaWVuZHNMaXN0PWZhbHNl
JnBsY2tGcmllbmRzUGFnZU51bT0wJnBsY2tFbGVtZW50SWQ9UGVyc29uYUZyaWVu
ZHNEZXN0JnBsY2tVc2VySWQ9JysgVXNlcklkOwogICAgdGhpcy5fX1NlbmQodXJs
LCAnUGVyc29uYUZyaWVuZHNTY3JpcHQnKTsKICAgIHJldHVybiBmYWxzZTsKfQoK
U2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUGVyc29uYVBlbmRpbmdGcmllbmRzUGFn
aW5hdGUgPSBmdW5jdGlvbihVc2VySWQsIHBhZ2VOdW0pIHsgCiAgICB2YXIgQWRQ
YXJhbSA9ICJwbGNrUGVuZGluZ0ZyaWVuZHNQYWdlTnVtPSIgKyBwYWdlTnVtOwog
ICAgcmV0dXJuIHRoaXMuUGVyc29uYVBhZ2luYXRlKCdGcmllbmRzJywgMCwgVXNl
cklkLEFkUGFyYW0pOwp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBlcnNvbmFN
ZXNzYWdlc1ByZXZpZXdQYWdpbmF0ZSA9IGZ1bmN0aW9uKFVzZXJJZCwgcGFnZU51
bSkgeyAKICAgIHJldHVybiB0aGlzLlBlcnNvbmFQYWdpbmF0ZSgnTWVzc2FnZXNQ
cmV2aWV3JywgcGFnZU51bSwgVXNlcklkKTsKfQpTaXRlTGlmZVByb3h5LnByb3Rv
dHlwZS5QZXJzb25hTWVzc2FnZVJlbW92ZSA9IGZ1bmN0aW9uKFVzZXJJZCwgcGFn
ZU51bSwgTWVzc2FnZUtleSwgY29uZmlybU1zZykgeyAKICAgaWYgKGNvbmZpcm0o
Y29uZmlybU1zZykgPT0gdHJ1ZSkgewogICAgICAgIHJldHVybiB0aGlzLlBlcnNv
bmFTZW5kKCdQZXJzb25hUmVtb3ZlTWVzc2FnZScsICdwZXJzb25hRGVzdCcsICdQ
ZXJzb25hTWVzc2FnZXNQYWdlU2NyaXB0JywgVXNlcklkLCAncGxja0N1cnJlbnRQ
YWdlPScrIHBhZ2VOdW0gKyAnJnBsY2tNZXNzYWdlS2V5PScrTWVzc2FnZUtleSk7
CiAgIH0KICAgcmV0dXJuIGZhbHNlOwp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBl
LlBlcnNvbmFTZW5kID0gZnVuY3Rpb24oQXBpTmFtZSwgRGVzdERpdiwgU2NyaXB0
TmFtZSwgVXNlcklkLCBBZGRQYXJhbXMsIGV2ZW50SWQpewogICAgdmFyIHVybCA9
IHRoaXMuX19iYXNlVXJsICsgJy9QZXJzb25hLycgKyBBcGlOYW1lICsgJz9wbGNr
RWxlbWVudElkPScgKyBEZXN0RGl2ICsgJyZwbGNrVXNlcklkPScrIFVzZXJJZDsK
ICAgIGlmKEFkZFBhcmFtcykgdXJsICs9ICcmJyArIEFkZFBhcmFtczsKICAgIHRo
aXMuX19TZW5kKHVybCwgU2NyaXB0TmFtZSwgZXZlbnRJZCwgYXJndW1lbnRzKTsK
ICAgIHJldHVybiBmYWxzZTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUGVy
c29uYVBhZ2luYXRlID0gZnVuY3Rpb24oQXBpTmFtZSwgUGFnZU51bSwgVXNlcklk
LCBBZGRQYXJhbXMpewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9Q
ZXJzb25hL1BlcnNvbmEnICsgQXBpTmFtZSArICc/cGxjaycgKyBBcGlOYW1lICsg
J1BhZ2VOdW09JyArIFBhZ2VOdW0gKyAnJnBsY2tFbGVtZW50SWQ9UGVyc29uYScg
KyBBcGlOYW1lICsgJ0Rlc3QmcGxja1VzZXJJZD0nKyBVc2VySWQ7CiAgICBpZihB
ZGRQYXJhbXMpIHVybCArPSAnJicgKyBBZGRQYXJhbXM7ICAgIAogICAgdGhpcy5f
X1NlbmQodXJsLCAnUGVyc29uYScrIEFwaU5hbWUgKyAnU2NyaXB0Jyk7CiAgICBy
ZXR1cm4gZmFsc2U7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBlcnNvbmFQ
aG90b1NlbmQgPSBmdW5jdGlvbihBcGlOYW1lLCBEZXN0RGl2LCBTY3JpcHROYW1l
LCBVc2VySWQsIEFkZFBhcmFtcywgZXZlbnRJZCl7CiAgICB2YXIgdXJsID0gdGhp
cy5fX2Jhc2VVcmwgKyAnL1BlcnNvbmFQaG90by8nICsgQXBpTmFtZSArICc/cGxj
a0VsZW1lbnRJZD0nICsgRGVzdERpdiArICcmcGxja1VzZXJJZD0nKyBVc2VySWQ7
CiAgICBpZihBZGRQYXJhbXMpIHVybCArPSAnJicgKyBBZGRQYXJhbXM7CiAgICB0
aGlzLl9fU2VuZCh1cmwsIFNjcmlwdE5hbWUsIGV2ZW50SWQsIGFyZ3VtZW50cyk7
CiAgICByZXR1cm4gZmFsc2U7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBl
cnNvbmFNb3N0UmVjZW50ID0gZnVuY3Rpb24oVXNlcklkLCBQaG90b0lELCBEZXN0
RGl2KSB7CiAgIHJldHVybiB0aGlzLlBlcnNvbmFQaG90b1NlbmQoJ1BlcnNvbmFN
b3N0UmVjZW50JywgRGVzdERpdiwgJ3BlcnNvbmFTY3JpcHQnLCBVc2VySWQsJ3Bs
Y2tQaG90b0lEPScgKyBQaG90b0lEKTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5
cGUuUGVyc29uYUNvbW11bml0eUdyb3Vwc1BhZ2luYXRlID0gZnVuY3Rpb24oVXNl
cklkLCBQYWdlTnVtKXsKCXJldHVybiB0aGlzLlBlcnNvbmFQYWdpbmF0ZSgnQ29t
bXVuaXR5R3JvdXBzJywgUGFnZU51bSwgVXNlcklkKTsKfQoKU2l0ZUxpZmVQcm94
eS5wcm90b3R5cGUuUGVyc29uYUNyZWF0ZUdhbGxlcnkgPSBmdW5jdGlvbihVc2Vy
SWQpIHsKICAgICByZXR1cm4gdGhpcy5QZXJzb25hUGhvdG9TZW5kKCdVc2VyR2Fs
bGVyeUNyZWF0ZScsICdwZXJzb25hRGVzdFBob3RvJywgJ3BlcnNvbmFTY3JpcHQn
LCBVc2VySWQpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25hRWRp
dEdhbGxlcnkgPSBmdW5jdGlvbihVc2VySWQsR2FsbGVyeUlEKSB7CiAgICAgcmV0
dXJuIHRoaXMuUGVyc29uYVBob3RvU2VuZCgnVXNlckdhbGxlcnlFZGl0JywgJ3Vz
ZXJHYWxsZXJ5RGVzdCcsICdwZXJzb25hU2NyaXB0JywgVXNlcklkLCdwbGNrR2Fs
bGVyeUlEPScgKyBHYWxsZXJ5SUQpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlw
ZS5QZXJzb25hVXBsb2FkVG9Vc2VyR2FsbGVyeSA9IGZ1bmN0aW9uKEdhbGxlcnlJ
ZCkgewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9QaG90by9QaG90
b1VwbG9hZD9wbGNrRWxlbWVudElkPXVzZXJHYWxsZXJ5RGVzdCZwbGNrR2FsbGVy
eUlEPScrIEdhbGxlcnlJZDsKICAgIHRoaXMuX19TZW5kKHVybCk7CiAgICByZXR1
cm4gZmFsc2U7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBlcnNvbmFQaG90
b3MgPSBmdW5jdGlvbihVc2VySWQpIHsKICAgICByZXR1cm4gdGhpcy5QZXJzb25h
UGhvdG9TZW5kKCdQZXJzb25hUGhvdG9zJywgJ3BlcnNvbmFEZXN0JywgJ3BlcnNv
bmFTY3JpcHQnLCBVc2VySWQsIG51bGwsICdwZXJzb25hOnBob3RvcycpOwp9ClNp
dGVMaWZlUHJveHkucHJvdG90eXBlLlBlcnNvbmFBbGxQaG90b3MgPSBmdW5jdGlv
bihVc2VySWQpIHsKICAgICByZXR1cm4gdGhpcy5QZXJzb25hUGhvdG9TZW5kKCdQ
ZXJzb25hQWxsUGhvdG9zJywgJ3BlcnNvbmFEZXN0JywgJ3BlcnNvbmFTY3JpcHQn
LCBVc2VySWQpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25hR2Fs
bGVyeVBob3RvID0gZnVuY3Rpb24oVXNlcklkLCBwbGNrRmluZENvbW1lbnRLZXkp
IHsKCXZhciBmaW5kQ29tbWVudEtleSA9IGdTaXRlTGlmZS5SZWFkRmluZENvbW1l
bnRLZXkoZmluZENvbW1lbnRLZXksICJ3aWRnZXQ6cGVyc29uYUdhbGxlcnlQaG90
byIpOwoJCiAgICByZXR1cm4gdGhpcy5QZXJzb25hUGhvdG9TZW5kKCdQZXJzb25h
R2FsbGVyeVBob3RvJywgJ3BlcnNvbmFEZXN0JywgJ3BlcnNvbmFTY3JpcHQnLCBV
c2VySWQsICdwbGNrRmluZENvbW1lbnRLZXk9JyArIGZpbmRDb21tZW50S2V5LCAi
d2lkZ2V0OnBlcnNvbmFHYWxsZXJ5UGhvdG8iKTsKfQpTaXRlTGlmZVByb3h5LnBy
b3RvdHlwZS5QZXJzb25hTXlSZWNlbnRQaG90b3MgPSBmdW5jdGlvbihVc2VySWQs
RWxlbWVudElkLCBQYWdlTnVtKSB7CiAgICAgcmV0dXJuIHRoaXMuUGVyc29uYVBo
b3RvU2VuZCgnUGVyc29uYU15UmVjZW50UGhvdG9zJywgRWxlbWVudElkLCAncGVy
c29uYVNjcmlwdCcsIFVzZXJJZCwncGxja1BhZ2VOdW09JyArIFBhZ2VOdW0pOwp9
CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5QZXJzb25hR2FsbGVyeSA9IGZ1bmN0
aW9uKFVzZXJJZCxHYWxsZXJ5SWQsUGFnZU51bSkgewogICAgIGlmKCFQYWdlTnVt
KXsKICAgICAgICBQYWdlTnVtID0gZ1NpdGVMaWZlLkdldFBhcmFtZXRlcigicGxj
a1BhZ2VOdW0iKSA/IGdTaXRlTGlmZS5HZXRQYXJhbWV0ZXIoInBsY2tQYWdlTnVt
IikgOiAwOwogICAgIH0KICAgICBpZighR2FsbGVyeUlkKSB7CiAgICAgICAgR2Fs
bGVyeUlkID0gZ1NpdGVMaWZlLkdldFBhcmFtZXRlcigicGxja0dhbGxlcnlJRCIp
OwogICAgIH0KICAgICByZXR1cm4gdGhpcy5QZXJzb25hUGhvdG9TZW5kKCdQZXJz
b25hR2FsbGVyeScsICdwZXJzb25hRGVzdCcsICdwZXJzb25hU2NyaXB0JywgVXNl
cklkLCdwbGNrR2FsbGVyeUlEPScrIEdhbGxlcnlJZCArICcmcGxja1BhZ2VOdW09
JyArIFBhZ2VOdW0pOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Vc2VyR2Fs
bGVyeUxpc3QgPSBmdW5jdGlvbihVc2VySWQsRWxlbWVudElkLCBQYWdlTnVtKSB7
CiAgICAgcmV0dXJuIHRoaXMuUGVyc29uYVBob3RvU2VuZCgnVXNlckdhbGxlcnlM
aXN0JywgRWxlbWVudElkLCAncGVyc29uYVNjcmlwdCcsIFVzZXJJZCwncGxja1Bh
Z2VOdW09JyArIFBhZ2VOdW0pOwp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlBl
cnNvbmFHYWxsZXJ5U3VibWlzc2lvbnMgPSBmdW5jdGlvbihVc2VySWQsRWxlbWVu
dElkLCBQYWdlTnVtKXsKICAgICByZXR1cm4gdGhpcy5QZXJzb25hUGhvdG9TZW5k
KCdQZXJzb25hR2FsbGVyeVN1Ym1pc3Npb25zJywgRWxlbWVudElkLCAncGVyc29u
YVNjcmlwdCcsIFVzZXJJZCwncGxja1BhZ2VOdW09JyArIFBhZ2VOdW0pOwp9IAoK
U2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUGVyc29uYUdhbGxlcnlQaG90byA9IGZ1
bmN0aW9uKFVzZXJJZCwgcGxja0ZpbmRDb21tZW50S2V5KSB7Cgl2YXIgZmluZENv
bW1lbnRLZXkgPSBnU2l0ZUxpZmUuUmVhZEZpbmRDb21tZW50S2V5KGZpbmRDb21t
ZW50S2V5LCAid2lkZ2V0OnBlcnNvbmFQaG90byIpOwogICAgCiAgICB2YXIgcGhv
dG9pZCA9IGdTaXRlTGlmZS5HZXRQYXJhbWV0ZXIoJ3BsY2tQaG90b0lEJyk7CiAg
ICByZXR1cm4gdGhpcy5QZXJzb25hUGhvdG9TZW5kKCdQZXJzb25hR2FsbGVyeVBo
b3RvJywgJ3BlcnNvbmFEZXN0JywncGVyc29uYVNjcmlwdCcsIFVzZXJJZCwnJnBs
Y2tQaG90b0lEPScgK3Bob3RvaWQgKyAnJnBsY2tGaW5kQ29tbWVudEtleT0nICtm
aW5kQ29tbWVudEtleSwgIndpZGdldDpwZXJzb25hUGhvdG8iKTsKfQpTaXRlTGlm
ZVByb3h5LnByb3RvdHlwZS5QZXJzb25hUmVjZW50R2FsbGVyeVBob3RvID0gZnVu
Y3Rpb24oVXNlcklkKSB7CiAgICB2YXIgcGhvdG9pZCA9IGdTaXRlTGlmZS5HZXRQ
YXJhbWV0ZXIoJ3BsY2tQaG90b0lEJyk7CiAgICByZXR1cm4gdGhpcy5QZXJzb25h
UGhvdG9TZW5kKCdQZXJzb25hUmVjZW50R2FsbGVyeVBob3RvJywgJ3BlcnNvbmFE
ZXN0JywncGVyc29uYVNjcmlwdCcsIFVzZXJJZCwnJnBsY2tQaG90b0lEPScgK3Bo
b3RvaWQpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Mb2FkUGVyc29uYUdh
bGxlcnlQYWdlID0gZnVuY3Rpb24oVXNlcklkLEdhbGxlcnlJRCkgewogICAgdmFy
IHBhcmFtcyA9IG5ldyBPYmplY3QoKTsgcGFyYW1zWydwbGNrUGVyc29uYVBhZ2Un
XSA9ICdQZXJzb25hR2FsbGVyeSc7IHBhcmFtc1sncGxja1VzZXJJZCddID0gVXNl
cklkOyAKICAgICAgICAgICAgcGFyYW1zWyd1c2VySWQnXSA9IFVzZXJJZDsKICAg
ICAgICBwYXJhbXNbJ3BsY2tHYWxsZXJ5SUQnXSA9IEdhbGxlcnlJRDsKICAgIHRo
aXMuUmVsb2FkUGFnZShwYXJhbXMpOwogICAgcmV0dXJuIGZhbHNlOwp9ClNpdGVM
aWZlUHJveHkucHJvdG90eXBlLkxvYWRQZXJzb25hUGhvdG9QYWdlID0gZnVuY3Rp
b24oVXNlcklkLFBob3RvSUQpIHsKICAgIHZhciBwYXJhbXMgPSBuZXcgT2JqZWN0
KCk7IHBhcmFtc1sncGxja1BlcnNvbmFQYWdlJ10gPSAnUGVyc29uYUdhbGxlcnlQ
aG90byc7IHBhcmFtc1sncGxja1VzZXJJZCddID0gVXNlcklkOwogICAgICAgICAg
ICBwYXJhbXNbJ3VzZXJJZCddID0gVXNlcklkOwogICAgICAgIHBhcmFtc1sncGxj
a1Bob3RvSUQnXSA9IFBob3RvSUQ7CiAgICB0aGlzLlJlbG9hZFBhZ2UocGFyYW1z
KTsKICAgIHJldHVybiBmYWxzZTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5M
b2FkUGVyc29uYVJlY2VudFBob3RvUGFnZSA9IGZ1bmN0aW9uKFVzZXJJZCxQaG90
b0lEKSB7CiAgICB2YXIgcGFyYW1zID0gbmV3IE9iamVjdCgpOyBwYXJhbXNbJ3Bs
Y2tQZXJzb25hUGFnZSddID0gJ1BlcnNvbmFSZWNlbnRHYWxsZXJ5UGhvdG8nOyBw
YXJhbXNbJ3BsY2tVc2VySWQnXSA9IFVzZXJJZDsKICAgICAgICAgICAgcGFyYW1z
Wyd1c2VySWQnXSA9IFVzZXJJZDsKICAgICAgICBwYXJhbXNbJ3BsY2tQaG90b0lE
J10gPSBQaG90b0lEOwogICAgdGhpcy5SZWxvYWRQYWdlKHBhcmFtcyk7CiAgICBy
ZXR1cm4gZmFsc2U7Cn0KCnZhciBmYkhlbHBEaWFsb2dUaW1lb3V0OwpTaXRlTGlm
ZVByb3h5LnByb3RvdHlwZS5TaG93RmFjZWJvb2tIZWxwRGlhbG9nID0gZnVuY3Rp
b24oaWNvbil7Cgl2YXIgeCA9IDA7Cgl2YXIgeSA9IGljb24uY2xpZW50SGVpZ2h0
LzI7CgoJZG8gewoJCXggKz0gaWNvbi5vZmZzZXRMZWZ0OwoJCXkgKz0gaWNvbi5v
ZmZzZXRUb3A7Cgl9Cgl3aGlsZShpY29uID0gaWNvbi5vZmZzZXRQYXJlbnQpOwoK
CXZhciBmYl9kaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiUGVyc29uYV9G
YWNlYm9va0hlbHBEaWFsb2ciKTsKCQoJZmJfZGl2LnN0eWxlLnBvc2l0aW9uID0g
ImFic29sdXRlIjsKCWZiX2Rpdi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCQoJ
Ly8gcG9zaXRpb24gZGl2IHRvIHRoZSBsZWZ0IG9mIGljb24uCgl2YXIgbmV3WCA9
IHggLSBmYl9kaXYuY2xpZW50V2lkdGg7Cgl2YXIgbmV3WSA9IHkgLSBNYXRoLmZs
b29yKGZiX2Rpdi5jbGllbnRIZWlnaHQvMik7CgkKCWZiX2Rpdi5zdHlsZS5sZWZ0
ID0gbmV3WCArICJweCI7CglmYl9kaXYuc3R5bGUudG9wID0gbmV3WSArICJweCI7
CgoJcmV0dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5IaWRl
RmFjZWJvb2tIZWxwRGlhbG9nID0gZnVuY3Rpb24oKXsKCXZhciBmYl9kaXYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiUGVyc29uYV9GYWNlYm9va0hlbHBEaWFs
b2ciKTsKCWZiX2Rpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwp9CgpTaXRlTGlm
ZVByb3h5LnByb3RvdHlwZS5Db3B5UnNzVXJsVG9DbGlwYm9hcmQgPSBmdW5jdGlv
bigpewkKCXJzc1VybCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyc3NVcmwi
KTsKCWNvcHkocnNzVXJsKTsKCQoJcmV0dXJuIGZhbHNlOwp9CgovKiBub3RlOiBk
b2Vzbid0IHdvcmsgd2l0aCBmbGFzaCAxMCAqLwpmdW5jdGlvbiBjb3B5KGluRWxl
bWVudCkgewogIGlmIChpbkVsZW1lbnQuY3JlYXRlVGV4dFJhbmdlKSB7CiAgICB2
YXIgcmFuZ2UgPSBpbkVsZW1lbnQuY3JlYXRlVGV4dFJhbmdlKCk7CiAgICBpZiAo
cmFuZ2UpCiAgICAgIHJhbmdlLmV4ZWNDb21tYW5kKCdDb3B5Jyk7CiAgfSBlbHNl
IHsKICAgIHZhciBmbGFzaGNvcGllciA9ICdmbGFzaGNvcGllcic7CiAgICBpZigh
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZmxhc2hjb3BpZXIpKSB7CiAgICAgIHZh
ciBkaXZob2xkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgZGl2aG9sZGVyLmlkID0gZmxhc2hjb3BpZXI7CiAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZGl2aG9sZGVyKTsKICAgIH0KICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGZsYXNoY29waWVyKS5pbm5lckhUTUwgPSAnJzsKICAgIHZh
ciBkaXZpbmZvID0gJzxlbWJlZCBzcmM9IicgKyBnU2l0ZUxpZmUuX19iYXNlVXJs
ICsgJy9Db250ZW50L3N3Zi9jbGlwYm9hcmQuc3dmIiBGbGFzaFZhcnM9ImNsaXBi
b2FyZD0nK2VuY29kZVVSSUNvbXBvbmVudChpbkVsZW1lbnQudmFsdWUpKyciIHdp
ZHRoPSIwIiBoZWlnaHQ9IjAiIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZl
LWZsYXNoIj48L2VtYmVkPic7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChm
bGFzaGNvcGllcikuaW5uZXJIVE1MID0gZGl2aW5mbzsKICB9Cn0KClNpdGVMaWZl
UHJveHkucHJvdG90eXBlLlVwZGF0ZUV4dGVybmFsVXNlcklkID0gZnVuY3Rpb24o
RXh0ZXJuYWxTaXRlTmFtZSwgRXh0ZXJuYWxTaXRlVXNlcklkKSB7Cgl2YXIgYWRQ
YXJhbSA9IHRoaXMuQmFzZUFkUGFyYW0oKTsKCWFkUGFyYW0gKz0gIiZleHRlcm5h
bFNpdGVOYW1lPSIgKyBFeHRlcm5hbFNpdGVOYW1lOwoJYWRQYXJhbSArPSAiJmV4
dGVybmFsU2l0ZVVzZXJJZD0iICsgRXh0ZXJuYWxTaXRlVXNlcklkOwoJcmV0dXJu
IHRoaXMuUGVyc29uYVNlbmQoJ1VwZGF0ZUV4dGVybmFsVXNlcklkJywgJ3BlcnNv
bmFIRGVzdCcsICdwZXJzb25hU2NyaXB0JywgYWRQYXJhbSk7Cn0KCgoKCgoKU2l0
ZUxpZmVQcm94eS5wcm90b3R5cGUuU29saWNpdFBob3RvID0gZnVuY3Rpb24oZ2Fs
bGVyeUlEKSB7Cgl2YXIgZWxlbWVudElkID0gJ3BsY2tzb2xpY2l0JyArIGdhbGxl
cnlJRDsKCXRoaXMuV3JpdGVEaXYoZWxlbWVudElkKTsKICAgIHZhciB1cmwgPSB0
aGlzLl9fYmFzZVVybCArICcvUGhvdG8vU29saWNpdFBob3RvP3BsY2tFbGVtZW50
SWQ9JyArIGVsZW1lbnRJZCArICcmcGxja0dhbGxlcnlJRD0nICtnYWxsZXJ5SUQ7
CiAgICB0aGlzLl9fU2VuZCh1cmwpOwogICAgcmV0dXJuIGZhbHNlOwp9CgpTaXRl
TGlmZVByb3h5LnByb3RvdHlwZS5QaG90b1VwbG9hZCA9IGZ1bmN0aW9uKCkgewoJ
dmFyIGVsZW1lbnRJZCA9ICdwbGNrc3VibWl0JzsKCXRoaXMuV3JpdGVEaXYoZWxl
bWVudElkKTsKICAgIHZhciBnYWxsZXJ5SUQgPSBnU2l0ZUxpZmUuR2V0UGFyYW1l
dGVyKCdwbGNrR2FsbGVyeUlEJyk7CgogICAgdmFyIHVybCA9IHRoaXMuX19iYXNl
VXJsICsgJy9QaG90by9QaG90b1VwbG9hZD9wbGNrRWxlbWVudElkPScgKyBlbGVt
ZW50SWQgKyAnJnBsY2tHYWxsZXJ5SUQ9JyArZ2FsbGVyeUlEOwogICAgdGhpcy5f
X1NlbmQodXJsKTsKICAgIHJldHVybiBmYWxzZTsKfQoKU2l0ZUxpZmVQcm94eS5w
cm90b3R5cGUuUHVibGljR2FsbGVyeSA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGVs
ZW1lbnRJZCA9ICdwbGNrZ2FsbGVyeSc7Cgl0aGlzLldyaXRlRGl2KGVsZW1lbnRJ
ZCk7Cgl2YXIgZ2FsbGVyeUlEID0gZ1NpdGVMaWZlLkdldFBhcmFtZXRlcigncGxj
a0dhbGxlcnlJRCcpOwogICAgdmFyIHBhZ2VOdW0gPSBnU2l0ZUxpZmUuR2V0UGFy
YW1ldGVyKCdwbGNrUGFnZU51bScpOwoJCiAgICB2YXIgdXJsID0gdGhpcy5fX2Jh
c2VVcmwgKyAnL1Bob3RvL1B1YmxpY0dhbGxlcnk/cGxja0VsZW1lbnRJZD0nICsg
ZWxlbWVudElkICsgJyZwbGNrR2FsbGVyeUlEPScgK2dhbGxlcnlJRCArICcmcGxj
a1BhZ2VOdW09JyArcGFnZU51bTsKCXRoaXMuX19TZW5kKHVybCk7CglyZXR1cm4g
ZmFsc2U7Cn0KCgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5HYWxsZXJ5UGhvdG8g
PSBmdW5jdGlvbigpIHsKCXZhciBlbGVtZW50SWQgPSAncGxja3Bob3RvJzsKCXRo
aXMuV3JpdGVEaXYoZWxlbWVudElkKTsKICAgIHZhciBwaG90b2lkID0gZ1NpdGVM
aWZlLkdldFBhcmFtZXRlcigncGxja1Bob3RvSUQnKTsKICAgIHZhciBmaW5kQ29t
bWVudEtleSA9IGdTaXRlTGlmZS5SZWFkRmluZENvbW1lbnRLZXkobnVsbCwgIndp
ZGdldDpnYWxsZXJ5UGhvdG8iKTsKCiAgICB2YXIgdXJsID0gdGhpcy5fX2Jhc2VV
cmwgKyAnL1Bob3RvL0dhbGxlcnlQaG90bz9wbGNrRWxlbWVudElkPScgKyBlbGVt
ZW50SWQgKyAnJnBsY2tQaG90b0lEPScgK3Bob3RvaWQgKyAnJnBsY2tGaW5kQ29t
bWVudEtleT0nICsgZmluZENvbW1lbnRLZXk7Cgl0aGlzLl9fU2VuZCh1cmwsIG51
bGwsICJ3aWRnZXQ6Z2FsbGVyeVBob3RvIik7CglyZXR1cm4gZmFsc2U7Cn0KClNp
dGVMaWZlUHJveHkucHJvdG90eXBlLlB1YmxpY0dhbGxlcmllcyA9IGZ1bmN0aW9u
KCkgewoJdmFyIGVsZW1lbnRJZCA9ICdwbGNrZ2FsbGVyaWVzJzsKCXRoaXMuV3Jp
dGVEaXYoZWxlbWVudElkKTsKICAgIHZhciBwYWdlTnVtID0gZ1NpdGVMaWZlLkdl
dFBhcmFtZXRlcigncGxja1BhZ2VOdW0nKSA/ICBnU2l0ZUxpZmUuR2V0UGFyYW1l
dGVyKCdwbGNrUGFnZU51bScpIDogIjAiOwoKICAgIHZhciB1cmwgPSB0aGlzLl9f
YmFzZVVybCArICcvUGhvdG8vUHVibGljR2FsbGVyaWVzP3BsY2tFbGVtZW50SWQ9
JyArIGVsZW1lbnRJZCArICcmcGxja1BhZ2VOdW09JyArIHBhZ2VOdW07CiAgICB0
aGlzLl9fU2VuZCh1cmwpOwogICAgcmV0dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVBy
b3h5LnByb3RvdHlwZS5QaG90b1JlY29tbWVuZCA9IGZ1bmN0aW9uKHRhcmdldGlk
LHJlY29tbWVuZERpdixpc0dhbGxlcnkpIHsKICAgIHZhciB1cmwgPSB0aGlzLl9f
YmFzZVVybCArICcvUGhvdG8vUmVjb21tZW5kP3BsY2tFbGVtZW50SWQ9JyArIHJl
Y29tbWVuZERpdiArICcmcGxja1RhcmdldGlkPScgK3RhcmdldGlkICsgJyZwbGNr
SXNHYWxsZXJ5PScgK2lzR2FsbGVyeSA7CiAgICB0aGlzLl9fU2VuZCh1cmwpOwog
ICAgcmV0dXJuIGZhbHNlOwp9CgovLzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KCi8vcGFyZW50S2V5VHlwZSBjYW4gYmUgYW55IGdTaXRlTGlmZS5LZXlU
eXBlKiB2YWx1ZSwgYnV0IGZvciBpbmNsdWRpbmcgdGhpcyB3aWRnZXQgb24gYW4g
YXJ0aWNsZSBwYWdlIHRoZSB2YWx1ZSBpcyAKLy90eXBpY2FsbHkgZ1NpdGVMaWZl
LktleVR5cGVFeHRlcm5hbFJlc291cmNlClNpdGVMaWZlUHJveHkucHJvdG90eXBl
LkNvbW1lbnRzID0gZnVuY3Rpb24ocGFyZW50S2V5VHlwZSwgcGFyZW50S2V5LCBw
YWdlU2l6ZSwgc29ydCwgc2hvd1RhYnMsIHRhYiwgcGFyZW50VXJsLCBwYXJlbnRU
aXRsZSwgcmVmcmVzaFBhZ2UsIGZpbmRDb21tZW50S2V5KQp7CglyZXR1cm4gdGhp
cy5Db21tZW50c0ludGVybmFsKHBhcmVudEtleVR5cGUsIHBhcmVudEtleSwgcGFn
ZVNpemUsIHNvcnQsIHNob3dUYWJzLCB0YWIsIHBhcmVudFVybCwgcGFyZW50VGl0
bGUsIGZhbHNlLCBmYWxzZSwgbnVsbCwgcmVmcmVzaFBhZ2UsIGZpbmRDb21tZW50
S2V5KTsKfTsKClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkNvbW1lbnRzSW5wdXQg
PSBmdW5jdGlvbihwYXJlbnRLZXlUeXBlLCBwYXJlbnRLZXksIHJlZGlyZWN0VG9V
cmwpCnsgICAgCiAgICByZXR1cm4gdGhpcy5Db21tZW50c0ludGVybmFsKHBhcmVu
dEtleVR5cGUsIHBhcmVudEtleSwgbnVsbCwgIlRpbWVTdGFtcERlc2NlbmRpbmci
LCBudWxsLCBudWxsLCBudWxsLCBudWxsLCB0cnVlLCBmYWxzZSwgcmVkaXJlY3RU
b1VybCwgZmFsc2UsIG51bGwpOwp9OwoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
Q29tbWVudHNPdXRwdXQgPSBmdW5jdGlvbihwYXJlbnRLZXlUeXBlLCBwYXJlbnRL
ZXksIHJlZnJlc2hQYWdlLCBwYWdlU2l6ZSwgc29ydE9yZGVyKQp7CiAgICBzb3J0
T3JkZXIgPSBzb3J0T3JkZXIgfHwgIlRpbWVTdGFtcERlc2NlbmRpbmciOwoJcmV0
dXJuIHRoaXMuQ29tbWVudHNJbnRlcm5hbChwYXJlbnRLZXlUeXBlLCBwYXJlbnRL
ZXksIHBhZ2VTaXplLCBzb3J0T3JkZXIsIG51bGwsIG51bGwsIG51bGwsIG51bGws
IGZhbHNlLCB0cnVlLCBudWxsLCByZWZyZXNoUGFnZSwgbnVsbCk7Cn0KClNpdGVM
aWZlUHJveHkucHJvdG90eXBlLkNvbW1lbnRzUmVmcmVzaCA9IGZ1bmN0aW9uKHBh
cmVudEtleVR5cGUsIHBhcmVudEtleSwgcGFnZVNpemUsIHNvcnRPcmRlcikKewog
ICAgaWYgKCFwYXJlbnRLZXkgfHwgcGFyZW50S2V5ID09ICIiKSB0aHJvdyAiTXVz
dCBwYXNzIGluIHZhbHVlIGZvciBwYXJlbnRLZXkhIjsKICAgIHJldHVybiB0aGlz
LkNvbW1lbnRzSW50ZXJuYWwocGFyZW50S2V5VHlwZSwgcGFyZW50S2V5LCBwYWdl
U2l6ZSwgc29ydE9yZGVyLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBmYWxzZSwg
ZmFsc2UsIG51bGwsIHRydWUsIG51bGwpOwp9CgpTaXRlTGlmZVByb3h5LnByb3Rv
dHlwZS5Db21tZW50c0ludGVybmFsID0gZnVuY3Rpb24ocGFyZW50S2V5VHlwZSwg
cGFyZW50S2V5LCBwYWdlU2l6ZSwgc29ydCwgc2hvd1RhYnMsIHRhYiwgcGFyZW50
VXJsLCBwYXJlbnRUaXRsZSwgaGlkZVZpZXcsIGhpZGVJbnB1dCwgcmVkaXJlY3RU
b1VybCwgcmVmcmVzaFBhZ2UsIGZpbmRDb21tZW50S2V5KQp7CiAgICB2YXIgZGl2
SWQgPSAnQ29tbWVudHNfQ29udGFpbmVyJzsKICAgIGlmKHRoaXMubnVtQ29tbWVu
dHNXaWRnZXRzKXsgZGl2SWQgKz0gdGhpcy5udW1Db21tZW50c1dpZGdldHMrKzsg
fSBlbHNlIHsgdGhpcy5udW1Db21tZW50c1dpZGdldHMgPSAxOyB9CiAgICAKICAg
IGRvY3VtZW50LndyaXRlKCI8ZGl2IGlkPSciICsgZGl2SWQgKyAiJz48L2Rpdj4i
KTsKICAgIAogICAgcmV0dXJuIHRoaXMuR2V0Q29tbWVudHMocGFyZW50S2V5VHlw
ZSwgcGFyZW50S2V5LCBwYXJlbnRVcmwsIHBhcmVudFRpdGxlLCAwLCBwYWdlU2l6
ZSwgc29ydCwgc2hvd1RhYnMsIHRhYiwgaGlkZVZpZXcsIGhpZGVJbnB1dCwgcmVk
aXJlY3RUb1VybCwgcmVmcmVzaFBhZ2UsIGRpdklkLCBmaW5kQ29tbWVudEtleSk7
Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlJlYWRGaW5kQ29tbWVudEtleSA9
IGZ1bmN0aW9uKHBsY2tGaW5kQ29tbWVudEtleSwgZXZlbnROYW1lKXsKCXZhciBm
aW5kQ29tbWVudEtleSA9IHBsY2tGaW5kQ29tbWVudEtleSB8fCBnU2l0ZUxpZmUu
R2V0UGFyYW1ldGVyKCJwbGNrRmluZENvbW1lbnRLZXkiKSB8fCAiIjsKICAgIGlm
KGZpbmRDb21tZW50S2V5ID09ICJub25lIil7CgkJZmluZENvbW1lbnRLZXkgPSAi
IjsKICAgIH0KICAgIAogICAgaWYoZmluZENvbW1lbnRLZXkgIT0gIiIgJiYgZXZl
bnROYW1lKXsKCQl0aGlzLkFkZEV2ZW50SGFuZGxlcihldmVudE5hbWUsIGZ1bmN0
aW9uKCl7Z1NpdGVMaWZlLlNjcm9sbFRvQ29tbWVudChmaW5kQ29tbWVudEtleSl9
KTsKICAgIH0KICAgIAogICAgcmV0dXJuIGZpbmRDb21tZW50S2V5Owp9CgpTaXRl
TGlmZVByb3h5LnByb3RvdHlwZS5HZXRDb21tZW50cyA9IGZ1bmN0aW9uKHBhcmVu
dEtleVR5cGUsIHBhcmVudEtleSwgcGFyZW50VXJsLCBwYXJlbnRUaXRsZSwgcGFn
ZSwgcGFnZVNpemUsIHNvcnQsIHNob3dUYWJzLCB0YWIsIGhpZGVWaWV3LCBoaWRl
SW5wdXQsIHJlZGlyZWN0VG8sIHJlZnJlc2hQYWdlLCBkaXZJZCwgZmluZENvbW1l
bnRLZXkpCnsKICAgIHBhcmVudEtleVR5cGUgPSBwYXJlbnRLZXlUeXBlIHx8ICJF
eHRlcm5hbFJlc291cmNlIjsKICAgIHBhcmVudFVybCA9IHBhcmVudFVybCB8fCBn
U2l0ZUxpZmUuX19TdHJpcEFuY2hvckZyb21Vcmwod2luZG93LmxvY2F0aW9uLmhy
ZWYpOwogICAgcGFyZW50VXJsID0gZ1NpdGVMaWZlLkVzY2FwZVZhbHVlKHBhcmVu
dFVybCk7CiAgICBwYXJlbnRLZXkgPSBwYXJlbnRLZXkgfHwgZ1NpdGVMaWZlLl9f
U3RyaXBBbmNob3JGcm9tVXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKICAgIHBh
cmVudFRpdGxlID0gcGFyZW50VGl0bGUgfHwgZ1NpdGVMaWZlLkVzY2FwZVZhbHVl
KGdTaXRlTGlmZS5UcmltKGRvY3VtZW50LnRpdGxlKSk7CiAgICBwYWdlID0gcGFn
ZSB8fCBnU2l0ZUxpZmUuR2V0UGFyYW1ldGVyKCdwbGNrQ3VycmVudFBhZ2UnKSB8
fCAwOwogICAgcGFnZVNpemUgPSBwYWdlU2l6ZSB8fCAxMDsKICAgIHNvcnQgPSBz
b3J0IHx8ICJUaW1lU3RhbXBBc2NlbmRpbmciOwogICAgc2hvd1RhYnMgPSBzaG93
VGFicyB8fCBmYWxzZTsKICAgIHRhYiA9IHRhYiB8fCAiTW9zdFJlY2VudCI7CiAg
ICBoaWRlVmlldyA9IGhpZGVWaWV3IHx8IGZhbHNlOwogICAgaGlkZUlucHV0ID0g
aGlkZUlucHV0IHx8IGZhbHNlOwogICAgcmVkaXJlY3RUbyA9Z1NpdGVMaWZlLkVz
Y2FwZVZhbHVlKHJlZGlyZWN0VG8pIHx8ICIiOwogICAgcmVmcmVzaFBhZ2UgPSBy
ZWZyZXNoUGFnZSB8fCBmYWxzZTsKICAgIGZpbmRDb21tZW50S2V5ID0gZ1NpdGVM
aWZlLlJlYWRGaW5kQ29tbWVudEtleShmaW5kQ29tbWVudEtleSwgIndpZGdldDpj
b21tZW50cyIpOwogICAgCiAgICB2YXIgdXJsID0gdGhpcy5fX2Jhc2VVcmwgKyAK
ICAgICAgICAnL0NvbW1lbnQvR2V0UGFnZS5yYWlscz9wbGNrVGFyZ2V0S2V5VHlw
ZT0nKyBwYXJlbnRLZXlUeXBlICsgCiAgICAgICAgJyZwbGNrVGFyZ2V0S2V5PScg
KyBlc2NhcGUocGFyZW50S2V5KSArIAogICAgICAgICImcGxja0N1cnJlbnRQYWdl
PSIgKyBwYWdlICsgCiAgICAgICAgIiZwbGNrSXRlbXNQZXJQYWdlPSIgKyBwYWdl
U2l6ZSArIAogICAgICAgICImcGxja1NvcnQ9IiArIHNvcnQgKyAKICAgICAgICAi
JnBsY2tFbGVtZW50SWQ9IiArIGRpdklkICsKICAgICAgICAiJnBsY2tUYXJnZXRV
cmw9IiArIHBhcmVudFVybCArCiAgICAgICAgIiZwbGNrVGFyZ2V0VGl0bGU9IiAr
IHBhcmVudFRpdGxlICsKICAgICAgICAiJnBsY2tIaWRlVmlldz0iICsgaGlkZVZp
ZXcgKwogICAgICAgICImcGxja0hpZGVJbnB1dD0iICsgaGlkZUlucHV0ICsKICAg
ICAgICAiJnBsY2tSZWZyZXNoUGFnZT0iICsgcmVmcmVzaFBhZ2UgKwogICAgICAg
ICImcGxja1JlZGlyZWN0VG9Vcmw9IiArIHJlZGlyZWN0VG8gKwogICAgICAgICIm
cGxja0ZpbmRDb21tZW50S2V5PSIgKyBmaW5kQ29tbWVudEtleTsKCiAgICBpZiAo
c2hvd1RhYnMpIHsKICAgICAgICB1cmwgPSB1cmwgKyAiJnBsY2tTaG93VGFicz10
cnVlJnBsY2tUYWI9IiArIHRhYjsKICAgIH0KICAgIHRoaXMuX19TZW5kKHVybCwg
bnVsbCwgIndpZGdldDpjb21tZW50cyIpOwogICAgcmV0dXJuIGZhbHNlOwp9OwoK
U2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuV2FpdEZvckltYWdlcyA9IGZ1bmN0aW9u
KGNhbGxiYWNrKXsKCXZhciBhbGxJbWdzID0gZG9jdW1lbnQuaW1hZ2VzOwoJCn0K
ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlNjcm9sbFRvQ29tbWVudCA9IGZ1bmN0
aW9uKGNvbW1lbnRLZXkpewoJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQl3aW5k
b3cubG9jYXRpb24uaGFzaCA9ICIjIiArIGNvbW1lbnRLZXk7Cgl9LCAzMDApOwp9
CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5CbG9nID0gZnVuY3Rpb24oQmxvZ0lk
KSB7CiAgICB0aGlzLldyaXRlRGl2KCJibG9nRGVzdCIsICJQZXJzb25hX01haW4i
KTsKICAgIHZhciBhY3Rpb24gPSB0aGlzLkdldFBhcmFtZXRlcigicGxja0Jsb2dQ
YWdlIik7CiAgICAvLyBJZiBCbG9nSWQgd2FzIG5vdCBleHBsaWNpdGx5IHN0YXRl
ZCwgZ3JhYiBpdCBmcm9tIHRoZSBVUkwgcGFyYW1ldGVyLi4uCiAgICBpZighQmxv
Z0lkKXsKCQlCbG9nSWQgPSB0aGlzLkdldFBhcmFtZXRlcigncGxja0Jsb2dJZCcp
OwogICAgfQogICAgCiAgICAgICAgCglpZihhY3Rpb24gJiYgYWN0aW9uICE9ICJC
bG9nIiAmJiAodHlwZW9mIHRoaXNbYWN0aW9uXSA9PSAnZnVuY3Rpb24nKSl7Cgkg
cmV0dXJuIHRoaXNbYWN0aW9uXShCbG9nSWQpOwoJfWVsc2V7CgkgICB2YXIgQWRQ
YXJhbXMgPSB0aGlzLkdldFBhcmFtZXRlcigncGxja0N1cnJlbnRQYWdlJykgPyAn
cGxja0N1cnJlbnRQYWdlPScgKyB0aGlzLkdldFBhcmFtZXRlcigncGxja0N1cnJl
bnRQYWdlJykgOiAiIjsKCSAgIHJldHVybiB0aGlzLkJsb2dTZW5kKCdCbG9nJywg
J0Jsb2cnLCAnYmxvZ0Rlc3QnLCAnYmxvZ1NjcmlwdCcsIEJsb2dJZCwgQWRQYXJh
bXMpOwoJfQp9ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkxvYWRCbG9nUGFnZSA9
IGZ1bmN0aW9uKFBhZ2VOYW1lLCBCbG9nSWQpIHsKICAgIHZhciBwYXJhbXMgPSBu
ZXcgT2JqZWN0KCk7IHBhcmFtc1sncGxja0Jsb2dQYWdlJ10gPSBQYWdlTmFtZTsg
cGFyYW1zWydwbGNrQmxvZ0lkJ10gPSBCbG9nSWQ7IAogICAgZm9yKGlpPTI7IGlp
PCB0aGlzLkxvYWRCbG9nUGFnZS5hcmd1bWVudHMubGVuZ3RoOyBpaSs9MikgeyBw
YXJhbXNbdGhpcy5Mb2FkQmxvZ1BhZ2UuYXJndW1lbnRzW2lpXV0gPSB0aGlzLkxv
YWRCbG9nUGFnZS5hcmd1bWVudHNbaWkrMV07fQogICAgdGhpcy5SZWxvYWRQYWdl
KHBhcmFtcyk7CiAgICByZXR1cm4gZmFsc2U7Cn0KClNpdGVMaWZlUHJveHkucHJv
dG90eXBlLkJsb2dWaWV3RWRpdCA9IGZ1bmN0aW9uKGJsb2dJZCkgewogICByZXR1
cm4gdGhpcy5CbG9nU2VuZChudWxsLCAnQmxvZ1ZpZXdFZGl0JywgbnVsbCwgbnVs
bCwgYmxvZ0lkKTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuQmxvZ1Bvc3RD
cmVhdGUgPSBmdW5jdGlvbihibG9nSWQpIHsKICAgcmV0dXJuIHRoaXMuQmxvZ1Nl
bmQobnVsbCwgJ0Jsb2dQb3N0Q3JlYXRlJywgbnVsbCwgbnVsbCwgYmxvZ0lkLCAn
cGxja1JlZGlyZWN0VXJsPScgKyB0aGlzLkdldFBhcmFtZXRlcigicGxja1JlZGly
ZWN0VXJsIikpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5CbG9nUGVuZGlu
Z0NvbW1lbnRzID0gZnVuY3Rpb24oYmxvZ0lkLCBjdXJyZW50UGFnZSkgewogICBp
ZiggIWN1cnJlbnRQYWdlKSBjdXJyZW50UGFnZSA9IDA7CiAgIHJldHVybiB0aGlz
LkJsb2dTZW5kKG51bGwsICdCbG9nUGVuZGluZ0NvbW1lbnRzJywgbnVsbCwgbnVs
bCwgYmxvZ0lkLCAncGxja0N1cnJlbnRQYWdlPScrY3VycmVudFBhZ2UpOwp9CgpT
aXRlTGlmZVByb3h5LnByb3RvdHlwZS5CbG9nU2V0dGluZ3MgPSBmdW5jdGlvbihi
bG9nSWQpIHsKICAgcmV0dXJuIHRoaXMuQmxvZ1NlbmQobnVsbCwgJ0Jsb2dTZXR0
aW5ncycsIG51bGwsIG51bGwsIGJsb2dJZCk7Cn0KClNpdGVMaWZlUHJveHkucHJv
dG90eXBlLkJsb2dFZGl0UG9zdCA9IGZ1bmN0aW9uKGJsb2dJZCwgY29udHJvbGxl
ciwgZGl2LCBzY3JpcHQsIHBvc3RJZCwgc2VsZWN0aW9uLCBkYXlzQmFjaykgewoJ
cmV0dXJuIHRoaXMuQmxvZ1NlbmQoY29udHJvbGxlciwgJ0Jsb2dQb3N0RWRpdCcs
IGRpdiwgc2NyaXB0LCBibG9nSWQsICdwbGNrUG9zdElkPScgKyBwb3N0SWQgKyAn
JnBsY2tTZWxlY3Rpb249JyArIHNlbGVjdGlvbiArICcmcGxja0RheXNCYWNrPScg
KyBkYXlzQmFjayArICcmcGxja1JlZGlyZWN0VXJsPScgKyB0aGlzLkVzY2FwZVZh
bHVlKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSk7Cn0KClNpdGVMaWZlUHJveHkucHJv
dG90eXBlLkJsb2dSZW1vdmVQb3N0ID0gZnVuY3Rpb24oYmxvZ0lkLCBjb250cm9s
bGVyLCBkaXYsIHNjcmlwdCwgcG9zdElkLCBzZWxlY3Rpb24sIGRheXNCYWNrLCBj
b25maXJtTXNnKSB7CiAgaWYgKGNvbmZpcm0oY29uZmlybU1zZykgPT0gdHJ1ZSkg
ewogICAgcmV0dXJuIHRoaXMuQmxvZ1NlbmQoY29udHJvbGxlciwgJ0Jsb2dSZW1v
dmVQb3N0JywgZGl2LCBzY3JpcHQsIGJsb2dJZCwgJ3BsY2tQb3N0SWQ9JyArIHBv
c3RJZCArICcmcGxja1NlbGVjdGlvbj0nICsgc2VsZWN0aW9uICsgJyZwbGNrRGF5
c0JhY2s9JyArIGRheXNCYWNrICk7CiAgfQogIHJldHVybiBmYWxzZTsKfQoKU2l0
ZUxpZmVQcm94eS5wcm90b3R5cGUuQmxvZ1ZpZXdQb3N0ID0gZnVuY3Rpb24oYmxv
Z0lkLCBwb3N0SWQsIHNlbGVjdGlvbiwgZGF5c0JhY2spIHsKICAgIGlmKCFwb3N0
SWQgKSB7IHBvc3RJZCA9IGdTaXRlTGlmZS5HZXRQYXJhbWV0ZXIoJ3BsY2tQb3N0
SWQnKTsgfQogICAgdmFyIGZpbmRDb21tZW50S2V5ID0gZ1NpdGVMaWZlLlJlYWRG
aW5kQ29tbWVudEtleShudWxsLCAid2lkZ2V0OmJsb2ciKTsKCXJldHVybiB0aGlz
LkJsb2dTZW5kKG51bGwsICdCbG9nVmlld1Bvc3QnLCBudWxsLCBudWxsLCBibG9n
SWQsICdwbGNrUG9zdElkPScgKyBwb3N0SWQgKyAnJnBsY2tTZWxlY3Rpb249JyAr
IHNlbGVjdGlvbiArICcmcGxja0RheXNCYWNrPScgKyBkYXlzQmFjayArICcmcGxj
a0NvbW1lbnRTb3J0T3JkZXI9JyArIHRoaXMuR2V0UGFyYW1ldGVyKCdwbGNrQ29t
bWVudFNvcnRPcmRlcicpICsgJyZwbGNrRmluZENvbW1lbnRLZXk9JyArIGZpbmRD
b21tZW50S2V5KTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuQmxvZ1ZpZXdN
b250aCA9IGZ1bmN0aW9uKGJsb2dJZCwgbW9udGhJZCkgewoJaWYoIW1vbnRoSWQg
KSB7IG1vbnRoSWQgPSBnU2l0ZUxpZmUuR2V0UGFyYW1ldGVyKCdwbGNrTW9udGhJ
ZCcpOyB9Cgl2YXIgQWRQYXJhbXMgPSAncGxja01vbnRoSWQ9JyArIG1vbnRoSWQ7
CglBZFBhcmFtcyArPSB0aGlzLkdldFBhcmFtZXRlcigncGxja0N1cnJlbnRQYWdl
JykgPyAnJnBsY2tDdXJyZW50UGFnZT0nICsgdGhpcy5HZXRQYXJhbWV0ZXIoJ3Bs
Y2tDdXJyZW50UGFnZScpIDogIiI7CglyZXR1cm4gdGhpcy5CbG9nU2VuZChudWxs
LCAnQmxvZ1ZpZXdNb250aCcsIG51bGwsIG51bGwsIGJsb2dJZCwgIEFkUGFyYW1z
KTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuQWRkQmxvZ1dhdGNoSXRlbT0g
ZnVuY3Rpb24oYmxvZ0lkLCBjb250cm9sbGVyLCBzY3JpcHQsIFVybCwgV2F0Y2hL
ZXkpIHsKICAgcmV0dXJuIHRoaXMuQmxvZ1NlbmQoY29udHJvbGxlciwgJ0FkZEJs
b2dXYXRjaCcsICdwbGNrQmxvZ1dhdGNoRGl2Jywgc2NyaXB0LCBibG9nSWQsICdw
bGNrV2F0Y2hLZXk9JyArIFdhdGNoS2V5ICsgJyZwbGNrV2F0Y2hVcmw9JyArIHRo
aXMuRXNjYXBlVmFsdWUoVXJsKSk7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
UmVtb3ZlQmxvZ1dhdGNoSXRlbT0gZnVuY3Rpb24oYmxvZ0lkLCBjb250cm9sbGVy
LCBzY3JpcHQsIFdhdGNoS2V5KSB7CiAgIHJldHVybiB0aGlzLkJsb2dTZW5kKGNv
bnRyb2xsZXIsICdSZW1vdmVCbG9nV2F0Y2gnLCAncGxja0Jsb2dXYXRjaERpdics
IHNjcmlwdCwgYmxvZ0lkLCAncGxja1dhdGNoS2V5PScgKyBXYXRjaEtleSk7Cn0K
ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkJsb2dWaWV3VGFnID0gZnVuY3Rpb24o
YmxvZ0lkLCB0YWcpIHsKCWlmKCF0YWcgKSB7IHRhZyA9IGdTaXRlTGlmZS5HZXRQ
YXJhbWV0ZXIoJ3BsY2tUYWcnKTsgfQoJdmFyIEFkUGFyYW1zID0gJ3BsY2tUYWc9
JyArIHRhZzsKCUFkUGFyYW1zICs9IHRoaXMuR2V0UGFyYW1ldGVyKCdwbGNrQ3Vy
cmVudFBhZ2UnKSA/ICcmcGxja0N1cnJlbnRQYWdlPScgKyB0aGlzLkdldFBhcmFt
ZXRlcigncGxja0N1cnJlbnRQYWdlJykgOiAiIjsKCXJldHVybiB0aGlzLkJsb2dT
ZW5kKG51bGwsICdCbG9nVmlld1RhZycsIG51bGwsIG51bGwsIGJsb2dJZCwgQWRQ
YXJhbXMgKTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuQmxvZ1JlZnJlc2hW
aWV3RWRpdExpc3Q9IGZ1bmN0aW9uKGJsb2dJZCwgY29udHJvbGxlciwgZGl2LCBz
Y3JpcHQsIHNlbGVjdGlvbiwgZGF5c0JhY2spIHsKCXJldHVybiB0aGlzLkJsb2dT
ZW5kKGNvbnRyb2xsZXIsICdCbG9nUmVmcmVzaFZpZXdFZGl0TGlzdCcsIGRpdiwg
c2NyaXB0LCBibG9nSWQsICdwbGNrU2VsZWN0aW9uPScgKyBzZWxlY3Rpb24gKyAn
JnBsY2tEYXlzQmFjaz0nICsgZGF5c0JhY2sgICk7Cn0KClNpdGVMaWZlUHJveHku
cHJvdG90eXBlLkJsb2dTZW5kID0gZnVuY3Rpb24oY29udHJvbGxlciwgYXBpTmFt
ZSwgZGVzdERpdiwgc2NyaXB0TmFtZSwgYmxvZ0lkLCBhZGRQYXJhbXMpewogICAg
aWYoIWNvbnRyb2xsZXIpIGNvbnRyb2xsZXIgPSB0aGlzLkdldFBhcmFtZXRlcign
cGxja0NvbnRyb2xsZXInKSB8fCAiQmxvZyI7CiAgICBpZighZGVzdERpdikgZGVz
dERpdiA9IHRoaXMuR2V0UGFyYW1ldGVyKCdwbGNrRWxlbWVudElkJykgfHwgImJs
b2dEZXN0IjsKICAgIGlmKCFzY3JpcHROYW1lKSBzY3JpcHROYW1lID0gdGhpcy5H
ZXRQYXJhbWV0ZXIoJ3BsY2tTY3JpcHQnKSB8fCAiYmxvZ1NjcmlwdCI7CiAgICB2
YXIgdXJsID0gdGhpcy5fX2Jhc2VVcmwgKyAnLycgKyBjb250cm9sbGVyICsgJy8n
ICsgYXBpTmFtZSArICc/cGxja0VsZW1lbnRJZD0nICsgZGVzdERpdiArICcmcGxj
a0Jsb2dJZD0nICsgYmxvZ0lkICsgJyYnICsgYWRkUGFyYW1zOwogICAgdGhpcy5f
X1NlbmQodXJsLCBzY3JpcHROYW1lLCAnd2lkZ2V0OmJsb2cnKTsKICAgIHJldHVy
biBmYWxzZTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUmVjb21tZW5kID0g
ZnVuY3Rpb24oY29udHJvbGxlciwgaXRlbUlkLCByZWNvbW1lbmREaXYpIHsKICAg
IHZhciB1cmwgPSB0aGlzLl9fYmFzZVVybCArICcvJyArIGNvbnRyb2xsZXIgKyAn
L1JlY29tbWVuZD9wbGNrRWxlbWVudElkPScgKyByZWNvbW1lbmREaXYgKyAnJnBs
Y2tJdGVtSWQ9JyAraXRlbUlkOwogICAgdGhpcy5fX1NlbmQodXJsKTsKICAgIHJl
dHVybiBmYWxzZTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5CbG9nU2VsZWN0
UGVuZGluZ0NvbW1lbnRzID0gZnVuY3Rpb24oZm9ybUlkLCBjaGVja2VkKSB7ICAg
CiAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZvcm1JZCk7
CiAgICBmb3IgKGk9MDsgaTxmb3JtLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAg
ICAgICAgdmFyIGlucHV0ID0gZm9ybS5lbGVtZW50c1tpXTsgICAgICAgIAogICAg
ICAgIGlucHV0LmNoZWNrZWQgPSBjaGVja2VkOwogICAgfQp9CgpTaXRlTGlmZVBy
b3h5LnByb3RvdHlwZS5Gb3J1bXMgPSBmdW5jdGlvbihudW1QZXJQYWdlKSB7ICAg
IAoJdGhpcy5Xcml0ZURpdigiZm9ydW1EZXN0IiwgIkZvcnVtX01haW4iKTsKCQoJ
dmFyIGFjdGlvbiA9IHRoaXMuR2V0UGFyYW1ldGVyKCJwbGNrRm9ydW1QYWdlIik7
CgkJCgkJCgl2YXIgZm9ydW1JZCA9IHRoaXMuR2V0UGFyYW1ldGVyKCdwbGNrRm9y
dW1JZCcpOyAgICAgICAgCglpZiAoZm9ydW1JZCkKCXsKCQlmb3J1bUlkID0gdW5l
c2NhcGUoZm9ydW1JZCk7CgkJdmFyIGkgPSBmb3J1bUlkLmluZGV4T2YoJ0ZvcnVt
OicpOwoJCWZvcnVtSWQgPSBmb3J1bUlkLnN1YnN0cmluZyhpKS5yZXBsYWNlKCc6
JywgJ18nKTsgICAgCgl9CgllbHNlCgl7CgkJdmFyIGRpc2N1c3Npb25JZCA9IHRo
aXMuR2V0UGFyYW1ldGVyKCdwbGNrRGlzY3Vzc2lvbklkJyk7CgkJaWYgKGRpc2N1
c3Npb25JZCkKCQl7ICAgICAgICAgICAgICAgICAgICAKCQkJZGlzY3Vzc2lvbklk
ID0gdW5lc2NhcGUoZGlzY3Vzc2lvbklkKTsKCQkJdmFyIGkgPSBkaXNjdXNzaW9u
SWQuaW5kZXhPZignRm9ydW06Jyk7CgkJCXZhciBqID0gZGlzY3Vzc2lvbklkLmlu
ZGV4T2YoJ0Rpc2N1c3Npb246Jyk7CgkJCWZvcnVtSWQgPSBkaXNjdXNzaW9uSWQu
c3Vic3RyaW5nKGksIGopLnJlcGxhY2UoJzonLCAnXycpOwoJCX0KCX0KICAgIAoJ
dmFyIGNhdGVnb3J5Q3VycmVudFBhZ2UgPSB0aGlzLkdldFBhcmFtZXRlcigncGxj
a0NhdGVnb3J5Q3VycmVudFBhZ2UnKTsKCWlmKGFjdGlvbiAmJiAodHlwZW9mIHRo
aXNbYWN0aW9uXSA9PSAnZnVuY3Rpb24nKSAmJiBhY3Rpb24gIT0gJ0ZvcnVtQ2F0
ZWdvcmllcycpewoJCXRoaXNbYWN0aW9uXSgpOwoJfQoJZWxzZSB7ICAgICAKCQlp
ZiggbnVtUGVyUGFnZSA9PSBudWxsICl7CgkJCW51bVBlclBhZ2UgPSB0aGlzLkdl
dFBhcmFtZXRlcigncGxja051bVBlclBhZ2UnKTsKCQl9CgkJdGhpcy5Gb3J1bUNh
dGVnb3JpZXMobnVtUGVyUGFnZSwgY2F0ZWdvcnlDdXJyZW50UGFnZSk7Cgl9Cn0K
ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlNldHVwQ2FsbGJhY2tzID0gZnVuY3Rp
b24oKXsKCXZhciBhZFBhcmFtID0gIiI7CiAgICB2YXIgc2hvd0ZpcnN0VW5yZWFk
ID0gdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tTaG93Rmlyc3RVbnJlYWQnKTsgCiAg
ICB2YXIgZmluZFBvc3RLZXkgPSB0aGlzLkdldFBhcmFtZXRlcigncGxja0ZpbmRQ
b3N0S2V5Jyk7CiAgICBpZihzaG93Rmlyc3RVbnJlYWQgIT0gbnVsbCl7CgkJYWRQ
YXJhbSArPSAiJnBsY2tTaG93Rmlyc3RVbnJlYWQ9IiArIHNob3dGaXJzdFVucmVh
ZDsKCQl0aGlzLkFkZEV2ZW50SGFuZGxlcigid2lkZ2V0OmZvcnVtcyIsIGZ1bmN0
aW9uKCl7Z1NpdGVMaWZlLkRpc2N1c3Npb25TY3JvbGxUb1Bvc3QoKX0pOwogICAg
fQogICAgaWYoZmluZFBvc3RLZXkgIT0gbnVsbCAmJiBmaW5kUG9zdEtleSAhPSAi
Iil7CgkJYWRQYXJhbSArPSAiJnBsY2tGaW5kUG9zdEtleT0iICsgZmluZFBvc3RL
ZXk7CgkJdGhpcy5BZGRFdmVudEhhbmRsZXIoIndpZGdldDpmb3J1bXMiLCBmdW5j
dGlvbigpe2dTaXRlTGlmZS5EaXNjdXNzaW9uU2Nyb2xsVG9Qb3N0KCl9KTsKICAg
IH0KICAgIHZhciBzaG93TGF0ZXN0UG9zdCA9IHRoaXMuR2V0UGFyYW1ldGVyKCdw
bGNrU2hvd0xhdGVzdFBvc3QnKTsgCiAgICBpZihzaG93TGF0ZXN0UG9zdCAhPSBu
dWxsKXsKCQlhZFBhcmFtICs9ICImcGxja1Nob3dMYXRlc3RQb3N0PSIgKyBzaG93
TGF0ZXN0UG9zdDsKCQl0aGlzLkFkZEV2ZW50SGFuZGxlcigid2lkZ2V0OmZvcnVt
cyIsIGZ1bmN0aW9uKCl7Z1NpdGVMaWZlLkRpc2N1c3Npb25TY3JvbGxUb1Bvc3Qo
KX0pOwogICAgfQogICAgCiAgICB0aGlzLkFkZEV2ZW50SGFuZGxlcigid2lkZ2V0
OmZvcnVtcyIsIGZ1bmN0aW9uKCl7CgkJZ1NpdGVMaWZlLkRpc2N1c3Npb25TY2Fu
Rm9yVW5yZWFkKCk7CgoJCS8vIGluc2VydCBwb2xsIHdpZGdldCBpZiB0aGUgZGlz
Y3Vzc2lvbiBpcyBhIHBvbGwJCQoKCQl2YXIgbWUgPSB0aGlzOwoJCXZhciBpbnNl
cnRQb2xsID0gZnVuY3Rpb24ocmV0cnlDb3VudCkgewoJCQlpZiAocmV0cnlDb3Vu
dCA+IDEwKSB7CgkJCQlyZXR1cm47CgkJCX0KCQkJaWYgKHR5cGVvZihyZXRyeUNv
dW50KSA9PT0gJ3VuZGVmaW5lZCcpIHsKCQkJCXJldHJ5Q291bnQgPSAwOwoJCQl9
CgkJCXZhciBwb2xsV2lkZ2V0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J0Rpc2N1c3Npb25fUG9sbF9Db250YWluZXInKTsKCQkJaWYgKHBvbGxXaWRnZXRE
aXYpIHsKCQkJCXZhciBkaXNjdXNzaW9uS2V5ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ0Rpc2N1c3Npb25LZXlDb250YWluZXInKS52YWx1ZTsKCQkJCXNsR2V0
RGlzY3Vzc2lvblBvbGxPbktleSA9IGZ1bmN0aW9uKCkgewoJCQkJCXJldHVybiBk
aXNjdXNzaW9uS2V5OwoJCQkJfQoJCQkJd2luZG93LnNsUG9sbFdpZGdldERpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdEaXNjdXNzaW9uX1BvbGwnKTsKCQkJ
CXZhciBwb2xsSW5zZXJ0aW9uU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2NyaXB0Jyk7CgkJCQlwb2xsSW5zZXJ0aW9uU2NyaXB0LnR5cGUgPSAndGV4
dC9qYXZhc2NyaXB0JzsKCQkJCXBvbGxJbnNlcnRpb25TY3JpcHQuc3JjID0gImh0
dHA6Ly8iK2NvbW1lbnRzUm9vdFVybCsnL3ZlcjEuMC9Gb3J1bXMvUG9sbFBhcmFt
cz9wbGNrRGlzY3Vzc2lvbklkPScgKyBkaXNjdXNzaW9uS2V5OwoJCQkJZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChw
b2xsSW5zZXJ0aW9uU2NyaXB0KTsKCQkJfQoJCQllbHNlIHsKCQkJCXNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CgkJCQkJaW5zZXJ0UG9sbChyZXRyeUNvdW50ICsgMSk7
CgkJCQl9LCAxMDApOwoJCQl9CgkJfQoJCWluc2VydFBvbGwoKTsKCiAgICAJfSk7
CgoJLy8gSGFjayBmb3IgdGhlIGFuY2hvciBvbiB0aGUgY2F0ZWdvcmllcyBwYWdl
Li4uCgl0aGlzLkFkZEV2ZW50SGFuZGxlcigid2lkZ2V0OmZvcnVtcyIsIGZ1bmN0
aW9uKCl7CgkJaWYoZG9jdW1lbnQubG9jYXRpb24uaGFzaCl7CgkJCXZhciBmb28g
PSBkb2N1bWVudC5sb2NhdGlvbi5oYXNoICsgIiI7CgkJCWRvY3VtZW50LmxvY2F0
aW9uLmhhc2ggPSBmb287CgkJfQoJfSk7CiAgICAKICAgIHJldHVybiBhZFBhcmFt
Owp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bUNhdGVnb3JpZXMgPSBm
dW5jdGlvbihudW1QZXJQYWdlLCBjYXRlZ29yeUN1cnJlbnRQYWdlKSB7CiAgICB2
YXIgcGFnZU51bSA9IHRoaXMuR2V0UGFyYW1ldGVyKCdwbGNrQ3VycmVudFBhZ2Un
KTsgaWYocGFnZU51bSA9PSBudWxsKSBwYWdlTnVtID0gMDsKICAgIHZhciB1cmxQ
YWdlSW5mb1N0ciA9ICcnOwogICAgdXJsUGFnZUluZm9TdHIgPSAnJnBsY2tOdW1Q
ZXJQYWdlPScgKyBudW1QZXJQYWdlOyAgICAgICAgCiAgICB1cmxQYWdlSW5mb1N0
ciArPSAnJnBsY2tDYXRlZ29yeUN1cnJlbnRQYWdlPScgKyBjYXRlZ29yeUN1cnJl
bnRQYWdlOwogICAgcmV0dXJuIHRoaXMuRm9ydW1TZW5kKCJGb3J1bUNhdGVnb3Jp
ZXMiLCAiZm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIsICdwbGNrQ3VycmVudFBhZ2U9
JyArIHBhZ2VOdW0gKyB1cmxQYWdlSW5mb1N0cik7Cn0KU2l0ZUxpZmVQcm94eS5w
cm90b3R5cGUuRm9ydW0gPSBmdW5jdGlvbigpIHsKICAgIHZhciBmb3J1bUlkID0g
dGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tGb3J1bUlkJyk7CiAgICB2YXIgY2F0ZWdv
cnlQYWdlTnVtID0gdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tDYXRlZ29yeUN1cnJl
bnRQYWdlJyk7CiAgICBpZihjYXRlZ29yeVBhZ2VOdW0gPT0gbnVsbCkgeyBjYXRl
Z29yeVBhZ2VOdW0gPSAwOyB9CiAgICB2YXIgZGlzY3Vzc2lvblBhZ2VOdW0gPSB0
aGlzLkdldFBhcmFtZXRlcigncGxja0N1cnJlbnRQYWdlJyk7CiAgICBpZiAoZGlz
Y3Vzc2lvblBhZ2VOdW0gPT0gbnVsbCkgeyBkaXNjdXNzaW9uUGFnZU51bSA9IDA7
IH0KICAgIHZhciBudW1QZXJQYWdlID0gdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tO
dW1QZXJQYWdlJyk7CiAgICB2YXIgdXJsUGFnZUluZm9TdHIgPSAnJzsKICAgIGlm
KCBudW1QZXJQYWdlICE9IG51bGwgKXsKICAgICAgICB1cmxQYWdlSW5mb1N0ciA9
ICcmcGxja051bVBlclBhZ2U9JyArIG51bVBlclBhZ2U7CiAgICB9CiAgIHJldHVy
biB0aGlzLkZvcnVtU2VuZCgnRm9ydW0nLCAnZm9ydW1EZXN0JywgJ0ZvcnVtTWFp
bicsICdwbGNrRm9ydW1JZD0nICsgZm9ydW1JZCArICcmcGxja0N1cnJlbnRQYWdl
PScgKyBkaXNjdXNzaW9uUGFnZU51bSArICcmcGxja0NhdGVnb3J5Q3VycmVudFBh
Z2U9JyArIGNhdGVnb3J5UGFnZU51bSArIHVybFBhZ2VJbmZvU3RyICk7Cn0KU2l0
ZUxpZmVQcm94eS5wcm90b3R5cGUuRm9ydW1EaXNjdXNzaW9uID0gZnVuY3Rpb24o
KSB7CiAgICB2YXIgZElkID0gdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tEaXNjdXNz
aW9uSWQiKTsKICAgIHZhciBhZFBhcmFtID0gInBsY2tEaXNjdXNzaW9uSWQ9IiAr
IGRJZDsKICAgIHZhciBzaG93TGFzdCA9IHRoaXMuR2V0UGFyYW1ldGVyKCJwbGNr
U2hvd0xhc3RQYWdlIik7IGlmKHNob3dMYXN0KSBhZFBhcmFtICs9ICImcGxja1No
b3dMYXN0UGFnZT10cnVlIjsKICAgIHZhciBwYWdlTnVtID0gdGhpcy5HZXRQYXJh
bWV0ZXIoJ3BsY2tDdXJyZW50UGFnZScpOyBpZihwYWdlTnVtID09IG51bGwpIHBh
Z2VOdW0gPSAwOwoJYWRQYXJhbSArPSB0aGlzLlNldHVwQ2FsbGJhY2tzKCk7IAog
ICAgYWRQYXJhbSArPSAiJnBsY2tDdXJyZW50UGFnZT0iICsgcGFnZU51bTsKICAg
IGFkUGFyYW0gKz0gIiZwbGNrQ2F0ZWdvcnlDdXJyZW50UGFnZT0iICsgdGhpcy5H
ZXRQYXJhbWV0ZXIoJ3BsY2tDYXRlZ29yeUN1cnJlbnRQYWdlJyk7ICAgCiAgICAK
ICAgIHJldHVybiB0aGlzLkZvcnVtU2VuZCgiRm9ydW1EaXNjdXNzaW9uIiwgImZv
cnVtRGVzdCIsICJGb3J1bU1haW4iLCBhZFBhcmFtKTsKfQoKU2l0ZUxpZmVQcm94
eS5wcm90b3R5cGUuRGlzY3Vzc2lvblNjYW5Gb3JVbnJlYWQgPSBmdW5jdGlvbihk
aXNjdXNzaW9uS2V5KXsKCXZhciBwb3N0RGF0ZXNDb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiUG9zdERhdGVJbmZvQ29udGFpbmVyIik7CglpZigh
cG9zdERhdGVzQ29udGFpbmVyKXsKCQlyZXR1cm47Cgl9CgkKCXRoaXMucG9zdERh
dGVzID0gZXZhbChwb3N0RGF0ZXNDb250YWluZXIudmFsdWUpOwoJdGhpcy5sYXRl
c3RQb3N0ID0gbmV3IERhdGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkxhc3RS
ZWFkQ29udGFpbmVyIikudmFsdWUpOwoJdGhpcy5zY3JlZW5Cb3R0b20gPSAwOwoJ
aWYoZGlzY3Vzc2lvbktleSl7CgkJdGhpcy5kaXNjdXNzaW9uS2V5ID0gZGlzY3Vz
c2lvbktleTsKCX0KCWVsc2UgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdE
aXNjdXNzaW9uS2V5Q29udGFpbmVyJykpewoJCXRoaXMuZGlzY3Vzc2lvbktleSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdEaXNjdXNzaW9uS2V5Q29udGFpbmVy
JykudmFsdWU7Cgl9CgkKCXRoaXMuY2hlY2tGb3JSZWFkSW50ZXJ2YWwgPSBzZXRJ
bnRlcnZhbChmdW5jdGlvbigpe2dTaXRlTGlmZS5EaXNjdXNzaW9uQ2hlY2tGb3JM
YXRlc3RQb3N0KCk7fSwgMTAwMCk7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBl
LkRpc2N1c3Npb25TY3JvbGxUb1Bvc3QgPSBmdW5jdGlvbigpewoJaWYoIWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJEaXNjdXNzaW9uX1Njcm9sbFRvUG9zdEtleSIp
KXsKCQlyZXR1cm4gZmFsc2U7Cgl9CgkKCXZhciBwb3N0S2V5ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIkRpc2N1c3Npb25fU2Nyb2xsVG9Qb3N0S2V5IikudmFs
dWU7Cgl2YXIgcG9zdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBvc3RLZXkp
OwoJCglpZighcG9zdCl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJCgl2YXIgcG9zdFRv
cCA9IDA7CglpZihwb3N0Lm9mZnNldFBhcmVudCl7CgkJb2JqID0gcG9zdDsKCQlk
b3sKCQkJcG9zdFRvcCArPSBvYmoub2Zmc2V0VG9wOwoJCX0KCQl3aGlsZShvYmog
PSBvYmoub2Zmc2V0UGFyZW50KTsKCQl3aW5kb3cuc2Nyb2xsQnkoMCwgcG9zdFRv
cCk7Cgl9Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLklzUG9zdE9uU2NyZWVu
ID0gZnVuY3Rpb24oc2NyZWVuQm90dG9tLCBwb3N0SW5kZXgpewoJdmFyIHBvc3RJ
ZCA9ICJyZWFkSW5kaWNhdG9yXyIgKyB0aGlzLnBvc3REYXRlc1twb3N0SW5kZXhd
LktleTsKCXZhciBwb3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocG9zdElk
KTsKCWlmKHBvc3QpewoJCXZhciBwb3N0VG9wID0gMDsKCQlpZihwb3N0Lm9mZnNl
dFBhcmVudCl7CgkJCW9iaiA9IHBvc3Q7CgkJCWRvewoJCQkJcG9zdFRvcCArPSBv
Ymoub2Zmc2V0VG9wOwoJCQl9CgkJCXdoaWxlKG9iaiA9IG9iai5vZmZzZXRQYXJl
bnQpOwoJCX0KCQl2YXIgcG9zdEJvdHRvbSA9IHBvc3RUb3AgKyBwb3N0Lm9mZnNl
dEhlaWdodDsKCQkKCQlpZihwb3N0Qm90dG9tIDwgc2NyZWVuQm90dG9tKXsKCQkJ
cmV0dXJuIHRydWU7CgkJfQoJfQoJCglyZXR1cm4gZmFsc2U7Cn0KClNpdGVMaWZl
UHJveHkucHJvdG90eXBlLkRpc2N1c3Npb25DaGVja0ZvckxhdGVzdFBvc3QgPSBm
dW5jdGlvbigpewoJdmFyIHNjcmVlblRvcCA9IDA7CglpZiAodHlwZW9mKHdpbmRv
dy5wYWdlWU9mZnNldCkgIT09ICd1bmRlZmluZWQnKSB7CgkJc2NyZWVuVG9wID0g
d2luZG93LnBhZ2VZT2Zmc2V0OwoJfQoJZWxzZSBpZiAodHlwZW9mKGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudCkgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZihkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wKSAhPT0gJ3VuZGVmaW5lZCcg
JiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA+IDApIHsKCQlz
Y3JlZW5Ub3AgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wOwoJ
fQoJZWxzZSBpZiAodHlwZW9mKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSAhPT0g
J3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPiAwKSB7CgkJ
c2NyZWVuVG9wID0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7Cgl9CgkKCXZhciBz
Y3JlZW5Cb3R0b20gPSBNYXRoLnBvdygyLDUyKTsgLypTdXBwb3Npbmcgb3VyIGJy
b3dzZXIgY2FuJ3QgZ2V0IHRoZSBoZWlnaHQsIHdlIG1hcmsgZXZlcnl0aGluZyBh
cyByZWFkLiovCglpZih3aW5kb3cuaW5uZXJIZWlnaHQpewoJCXNjcmVlbkJvdHRv
bSA9IHNjcmVlblRvcCArIHdpbmRvdy5pbm5lckhlaWdodDsKCX0KCWVsc2UgaWYo
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAmJiBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICE9IDApewoJCXNjcmVlbkJv
dHRvbSA9IHNjcmVlblRvcCArIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGll
bnRIZWlnaHQ7Cgl9CgllbHNlIGlmKGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0
KXsKCQlzY3JlZW5Cb3R0b20gPSBzY3JlZW5Ub3AgKyBkb2N1bWVudC5ib2R5LmNs
aWVudEhlaWdodDsKCX0KCQoJLyogT25seSB1cGRhdGUgaWYgd2UndmUgc2Nyb2xs
ZWQgZG93biBzaW5jZSBsYXN0IHBvbGwuICovCglpZihzY3JlZW5Cb3R0b20gPD0g
dGhpcy5zY3JlZW5Cb3R0b20pewoJCXJldHVybjsKCX0KCQoJLyogSnVzdCBnaXZl
IHVwIGlmIHRoZXJlIGFyZSBubyBwb3N0cy4gKi8KCWlmKCF0aGlzLnBvc3REYXRl
cyB8fCB0aGlzLnBvc3REYXRlcy5sZW5ndGggPD0gMCl7CgkJY2xlYXJJbnRlcnZh
bCh0aGlzLmNoZWNrRm9yUmVhZEludGVydmFsKTsKCQlyZXR1cm47Cgl9CgkKCS8q
IElmIHRoZSBsYXN0IHBvc3QgaXMgYWxyZWFkeSBtYXJrZWQgcmVhZCwgZG9uJ3Qg
Ym90aGVyIHBvbGxpbmcuICovCglpZih0aGlzLnBvc3REYXRlc1sodGhpcy5wb3N0
RGF0ZXMubGVuZ3RoIC0gMSldLlRpbWVzdGFtcCA8PSB0aGlzLmxhdGVzdFBvc3Qp
ewoJCWNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0ZvclJlYWRJbnRlcnZhbCk7CgkJ
cmV0dXJuOwoJfQoJCgl0aGlzLnNjcmVlbkJvdHRvbSA9IHNjcmVlbkJvdHRvbTsK
CQoJdmFyIGxhdGVzdEtleSA9IG51bGw7CgkKCWZvcihpPTA7IGkgPCB0aGlzLnBv
c3REYXRlcy5sZW5ndGg7IGkrKyl7CgkJaWYodGhpcy5Jc1Bvc3RPblNjcmVlbihz
Y3JlZW5Cb3R0b20sIGkpKXsKCQkJaWYodGhpcy5wb3N0RGF0ZXNbaV0uVGltZXN0
YW1wID49IHRoaXMubGF0ZXN0UG9zdCl7CgkJCQlsYXRlc3RLZXkgPSB0aGlzLnBv
c3REYXRlc1tpXS5LZXk7CgkJCQl0aGlzLmxhdGVzdFBvc3QgPSB0aGlzLnBvc3RE
YXRlc1tpXS5UaW1lc3RhbXA7CgkJCX0KCQl9Cgl9CgoJaWYobGF0ZXN0S2V5KXsK
CQl0aGlzLkZvcnVtU2V0TGFzdFJlYWQodGhpcy5kaXNjdXNzaW9uS2V5LCBsYXRl
c3RLZXkpOwoJfQp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bUNyZWF0
ZURpc2N1c3Npb24gPSBmdW5jdGlvbigpIHsKICAgIHZhciBhZFBhcmFtID0gInBs
Y2tSZWRpcmVjdFVybD0iICsgdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tSZWRpcmVj
dFVybCIpOwogICAgdmFyIGZJZCA9IHRoaXMuR2V0UGFyYW1ldGVyKCJwbGNrRm9y
dW1JZCIpOyBhZFBhcmFtICs9ICImcGxja0ZvcnVtSWQ9IiArIGZJZDsKICAgIHZh
ciBjdXJWaWV3ID0gdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tDdXJyZW50VmlldyIp
OyBpZihjdXJWaWV3KSBhZFBhcmFtICs9ICImcGxja0N1cnJlbnRWaWV3PSIgKyBj
dXJWaWV3OwogICAgdmFyIGN1clBhZ2UgPSB0aGlzLkdldFBhcmFtZXRlcigicGxj
a0N1cnJlbnRQYWdlIik7IGlmKGN1clBhZ2UpIGFkUGFyYW0gKz0gIiZwbGNrQ3Vy
cmVudFBhZ2U9IiArIGN1clBhZ2U7CiAgICB2YXIgZElkID0gdGhpcy5HZXRQYXJh
bWV0ZXIoInBsY2tEaXNjdXNzaW9uSWQiKTsgaWYoZElkKSBhZFBhcmFtICs9ICIm
cGxja0Rpc2N1c3Npb25JZD0iICsgZElkOwogICAgYWRQYXJhbSArPSAiJnBsY2tD
YXRlZ29yeUN1cnJlbnRQYWdlPSIgKyB0aGlzLkdldFBhcmFtZXRlcigncGxja0Nh
dGVnb3J5Q3VycmVudFBhZ2UnKTsgICAgCiAgICByZXR1cm4gdGhpcy5Gb3J1bVNl
bmQoIkZvcnVtQ3JlYXRlRGlzY3Vzc2lvbiIsICJmb3J1bURlc3QiLCAiRm9ydW1N
YWluIiwgYWRQYXJhbSk7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuRm9ydW1N
YWluID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoIkZv
cnVtTWFpbiIsICJmb3J1bURlc3QiLCAiRm9ydW1NYWluIik7Cn0KU2l0ZUxpZmVQ
cm94eS5wcm90b3R5cGUuRm9ydW1DcmVhdGVQb3N0ID0gZnVuY3Rpb24oKSB7CiAg
ICB2YXIgYWRQYXJhbSA9ICJwbGNrRGlzY3Vzc2lvbklkPSIgKyB0aGlzLkdldFBh
cmFtZXRlcigicGxja0Rpc2N1c3Npb25JZCIpICsgIiZwbGNrUmVkaXJlY3RVcmw9
IiArIHRoaXMuRXNjYXBlVmFsdWUod2luZG93LmxvY2F0aW9uLmhyZWYpOwogICAg
dmFyIFBvc3RJZCA9IHRoaXMuR2V0UGFyYW1ldGVyKCJwbGNrUG9zdElkIik7IGlm
KFBvc3RJZCkgYWRQYXJhbSA9IGFkUGFyYW0gKyAiJnBsY2tQb3N0SWQ9IiArIFBv
c3RJZDsKICAgIHZhciBJc1JlcGx5ID0gdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tJ
c1JlcGx5Iik7IGlmKElzUmVwbHkpIGFkUGFyYW0gPSBhZFBhcmFtICsgIiZwbGNr
SXNSZXBseT0iICsgSXNSZXBseTsKICAgIHZhciBjdXJQYWdlID0gdGhpcy5HZXRQ
YXJhbWV0ZXIoInBsY2tDdXJyZW50UGFnZSIpOyBpZihjdXJQYWdlKSBhZFBhcmFt
ID0gYWRQYXJhbSArICImcGxja0N1cnJlbnRQYWdlPSIgKyBjdXJQYWdlOwogICAg
YWRQYXJhbSArPSAiJnBsY2tDYXRlZ29yeUN1cnJlbnRQYWdlPSIgKyB0aGlzLkdl
dFBhcmFtZXRlcigicGxja0NhdGVnb3J5Q3VycmVudFBhZ2UiKTsgCiAgICByZXR1
cm4gdGhpcy5Gb3J1bVNlbmQoIkZvcnVtQ3JlYXRlUG9zdCIsICJmb3J1bURlc3Qi
LCAiRm9ydW1NYWluIiwgYWRQYXJhbSk7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5
cGUuRm9ydW1FZGl0UG9zdCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGFkUGFyYW0g
PSAicGxja0Rpc2N1c3Npb25JZD0iICsgdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tE
aXNjdXNzaW9uSWQiKSArICImcGxja1JlZGlyZWN0VXJsPSIgKyB0aGlzLkVzY2Fw
ZVZhbHVlKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKICAgIHZhciBQb3N0SWQgPSB0
aGlzLkdldFBhcmFtZXRlcigicGxja1Bvc3RJZCIpOyBpZihQb3N0SWQpIGFkUGFy
YW0gPSBhZFBhcmFtICsgIiZwbGNrUG9zdElkPSIgKyBQb3N0SWQ7CiAgICB2YXIg
Q3VyclBhZ2UgPSB0aGlzLkdldFBhcmFtZXRlcigicGxja0N1cnJlbnRQYWdlIik7
IGlmKCFDdXJyUGFnZSkgQ3VyclBhZ2U9IjAiOyBhZFBhcmFtID0gYWRQYXJhbSAr
ICImcGxja0N1cnJlbnRQYWdlPSIgKyBDdXJyUGFnZTsKICAgIGFkUGFyYW0gKz0g
IiZwbGNrQ2F0ZWdvcnlDdXJyZW50UGFnZT0iICsgdGhpcy5HZXRQYXJhbWV0ZXIo
J3BsY2tDYXRlZ29yeUN1cnJlbnRQYWdlJyk7ICAgIAogICAgcmV0dXJuIHRoaXMu
Rm9ydW1TZW5kKCJGb3J1bUVkaXRQb3N0IiwgImZvcnVtRGVzdCIsICJGb3J1bU1h
aW4iLCBhZFBhcmFtKTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bUVk
aXRQcm9maWxlID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNl
bmQoIkZvcnVtRWRpdFByb2ZpbGUiLCAiZm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIs
ICJwbGNrUmVkaXJlY3RVcmw9IiArIHRoaXMuRXNjYXBlVmFsdWUod2luZG93Lmxv
Y2F0aW9uLmhyZWYpKTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Ub2dnbGVF
eHBhbmQgPSBmdW5jdGlvbihpbWFnZUlkLCB0YWJsZUlkKSB7CiAgaWYgKCF0aGlz
LmNvbGxhcHNlZENhdGVnb3JpZXMpIHsKICAgIHZhciBjb29raWUgPSBkb2N1bWVu
dC5jb29raWUgJiYgZG9jdW1lbnQuY29va2llLm1hdGNoKC9mb3J1bUNhdFN0YXRl
PShbXjtdKykvKTsgCiAgICBjb29raWUgPSAoY29va2llID8gY29va2llWzFdLnJl
cGxhY2UoL15ccyt8XHMrJC9nLCAnJykgOiBbXSk7IAogICAgdGhpcy5jb2xsYXBz
ZWRDYXRlZ29yaWVzID0gKGNvb2tpZS5sZW5ndGggPyB1bmVzY2FwZShjb29raWUp
LnNwbGl0KCd8JykgOiBbXSk7CiAgfQogIHZhciB0YWJsZUVsZW0gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCh0YWJsZUlkKSwgaW1nRWxlbSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGltYWdlSWQpLAogICAgICBpZCA9IHRhYmxlSWQuc3BsaXQo
JzonKVsxXSwgY2F0cyA9IHRoaXMuY29sbGFwc2VkQ2F0ZWdvcmllcywgZXhwaXJl
OwogIGlmICh0YWJsZUVsZW0uc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHsKICAg
IHRhYmxlRWxlbS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgIGltZ0VsZW0u
c3JjID0gdGhpcy5fX2Jhc2VVcmwgKyAnL0NvbnRlbnQvaW1hZ2VzL2ZvcnVtcy9t
aW51cy5naWYnOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IGNhdHMubGVu
Z3RoOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKChjYXRzW2ldID09IGlk
KSB8fCAoY2F0c1tpXSA9PT0gJycpKQogICAgICAgIGNhdHMuc3BsaWNlKGksMSk7
CiAgICB9CiAgfQogIGVsc2UgewogICAgdGFibGVFbGVtLnN0eWxlLmRpc3BsYXkg
PSAnbm9uZSc7CiAgICBjYXRzLnB1c2goaWQpOyAKICAgIGltZ0VsZW0uc3JjID0g
dGhpcy5fX2Jhc2VVcmwgKyAnL0NvbnRlbnQvaW1hZ2VzL2ZvcnVtcy9wbHVzLmdp
Zic7CiAgfQogIHRoaXMuU2V0Q29va2llKCdmb3J1bUNhdFN0YXRlJywgY2F0cy5q
b2luKCd8JykpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bVNlYXJj
aCA9IGZ1bmN0aW9uKHN1ZmZpeCkgewogICAgdmFyIHNlYXJjaFRleHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncGxja1NlYXJjaFRleHQnK3N1ZmZpeCkudmFs
dWU7CiAgICBzZWFyY2hUZXh0ID0gRml4U2VhcmNoU3RyaW5nKHNlYXJjaFRleHQp
OwogICAgdmFyIHNlYXJjaEFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cGxja1NlYXJjaEFyZWEnK3N1ZmZpeCkudmFsdWU7CiAgICB0aGlzLkxvYWRGb3J1
bVBhZ2UoIkZvcnVtU2VhcmNoUGFnaW5hdGUiLCAicGxja1NlYXJjaFRleHQiLCBz
ZWFyY2hUZXh0LCAicGxja1NlYXJjaEFyZWEiLCBzZWFyY2hBcmVhLCAicGxja0N1
cnJlbnRQYWdlIiwgIjAiKTsKICAgIHJldHVybiBmYWxzZTsKfQpTaXRlTGlmZVBy
b3h5LnByb3RvdHlwZS5Gb3J1bVNlYXJjaEtleVByZXNzID0gZnVuY3Rpb24oZXZl
bnQsIHN1ZmZpeCkgewogICAgaWYoSXNFbnRlcihldmVudCkpe3JldHVybiB0aGlz
LkZvcnVtU2VhcmNoKHN1ZmZpeCk7fWVsc2V7cmV0dXJuIHRydWU7fQp9ClNpdGVM
aWZlUHJveHkucHJvdG90eXBlLkZvcnVtU2VhcmNoUGFnaW5hdGUgPSBmdW5jdGlv
bigpIHsJCiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoJ0ZvcnVtU2VhcmNoUGFn
aW5hdGUnLCAnZm9ydW1EZXN0JywgJ0ZvcnVtTWFpbicsICdwbGNrU2VhcmNoQXJl
YT0nICsgdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tTZWFyY2hBcmVhJykgKyAnJnBs
Y2tTZWFyY2hUZXh0PScgKyB0aGlzLkdldFBhcmFtZXRlcigncGxja1NlYXJjaFRl
eHQnKSArICcmcGxja0N1cnJlbnRQYWdlPScgKyB0aGlzLkdldFBhcmFtZXRlcign
cGxja0N1cnJlbnRQYWdlJykpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5G
b3J1bVNwZWNpZmljRm9ydW1TZWFyY2hLZXlQcmVzcyA9IGZ1bmN0aW9uKGV2ZW50
LCBzdWZmaXgsIGZvcnVtSWQpIHsKICAgIGlmKElzRW50ZXIoZXZlbnQpKXtyZXR1
cm4gdGhpcy5Gb3J1bVNwZWNpZmljRm9ydW1TZWFyY2goc3VmZml4LCBmb3J1bUlk
KTt9ZWxzZXtyZXR1cm4gdHJ1ZTt9Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
Rm9ydW1TcGVjaWZpY0ZvcnVtU2VhcmNoID0gZnVuY3Rpb24oc3VmZml4LCBmb3J1
bUlkKSB7CiAgICB2YXIgc2VhcmNoVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdwbGNrU2VhcmNoVGV4dCcrc3VmZml4KS52YWx1ZTsKICAgIHNlYXJjaFRl
eHQgPSBGaXhTZWFyY2hTdHJpbmcoc2VhcmNoVGV4dCk7CiAgICB0aGlzLkxvYWRG
b3J1bVBhZ2UoIkZvcnVtU2VhcmNoU3BlY2lmaWNGb3J1bVBhZ2luYXRlIiwgInBs
Y2tTZWFyY2hUZXh0Iiwgc2VhcmNoVGV4dCwgInBsY2tGb3J1bUlkIiwgZm9ydW1J
ZCwgInBsY2tDdXJyZW50UGFnZSIsICIwIik7CiAgICByZXR1cm4gZmFsc2U7Cn0K
U2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuRm9ydW1TZWFyY2hTcGVjaWZpY0ZvcnVt
UGFnaW5hdGUgPSBmdW5jdGlvbih0aXRsZSkgewkKICAgIHJldHVybiB0aGlzLkZv
cnVtU2VuZCgnRm9ydW1TZWFyY2hTcGVjaWZpY0ZvcnVtUGFnaW5hdGUnLCAnZm9y
dW1EZXN0JywgJ0ZvcnVtTWFpbicsICdwbGNrRm9ydW1JZD0nICsgdGhpcy5HZXRQ
YXJhbWV0ZXIoJ3BsY2tGb3J1bUlkJykgKyAnJnBsY2tTZWFyY2hUZXh0PScgKyB0
aGlzLkdldFBhcmFtZXRlcigncGxja1NlYXJjaFRleHQnKSArICcmcGxja0N1cnJl
bnRQYWdlPScgKyB0aGlzLkdldFBhcmFtZXRlcigncGxja0N1cnJlbnRQYWdlJykp
Owp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Mb2FkRm9ydW1QYWdlID0gZnVu
Y3Rpb24oUGFnZU5hbWUsIHBhcmFtTmFtZSwgcGFyYW1WYWwpIHsKICAgIHZhciBw
YXJhbXMgPSBuZXcgT2JqZWN0KCk7IAogICAgcGFyYW1zWydwbGNrRm9ydW1QYWdl
J10gPSBQYWdlTmFtZTsKICAgIGZvcihpaT0xOyBpaTwgdGhpcy5Mb2FkRm9ydW1Q
YWdlLmFyZ3VtZW50cy5sZW5ndGg7IGlpKz0yKSB7IHBhcmFtc1t0aGlzLkxvYWRG
b3J1bVBhZ2UuYXJndW1lbnRzW2lpXV0gPSB0aGlzLkxvYWRGb3J1bVBhZ2UuYXJn
dW1lbnRzW2lpKzFdO30KICAgIHRoaXMuUmVsb2FkUGFnZShwYXJhbXMpOwogICAg
cmV0dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bVNl
bmQgPSBmdW5jdGlvbihBcGlOYW1lLCBEZXN0RGl2LCBTY3JpcHROYW1lLCBBZGRQ
YXJhbXMpewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9Gb3J1bXMv
JyArIEFwaU5hbWUgKyAnP3BsY2tFbGVtZW50SWQ9JyArIERlc3REaXY7CiAgICBp
ZihBZGRQYXJhbXMpIHVybCArPSAnJicgKyBBZGRQYXJhbXM7CiAgICB2YXIgcGxj
a1Bvc3RTb3J0ID0gdGhpcy5HZXRQYXJhbWV0ZXIoJ3BsY2tQb3N0U29ydCcpOwog
ICAgaWYgKHBsY2tQb3N0U29ydCAhPSBudWxsKXsKCQl1cmwgKz0gIiZwbGNrUG9z
dFNvcnQ9IiArIHBsY2tQb3N0U29ydDsKCX0KICAgIHRoaXMuX19TZW5kKHVybCwg
U2NyaXB0TmFtZSwgJ3dpZGdldDpmb3J1bXMnLCBhcmd1bWVudHMpOwogICAgcmV0
dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bURpc2N1
c3Npb25FZGl0ID0gZnVuY3Rpb24oZGlzY3Vzc2lvbklkLCBjdXJWaWV3LCBjdXJQ
YWdlKSB7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoJ0ZvcnVtRGlzY3Vzc2lv
bkVkaXQnLCAnZm9ydW1EZXN0JywgJ0ZvcnVtTWFpbicsICdwbGNrRGlzY3Vzc2lv
bklkPScgKyBkaXNjdXNzaW9uSWQgKyAnJnBsY2tDdXJyZW50Vmlldz0nICsgY3Vy
VmlldyArICcmcGxja0N1cnJlbnRQYWdlPScgKyBjdXJQYWdlICsgJyZwbGNrUmVk
aXJlY3RVcmw9JyArIHRoaXMuRXNjYXBlVmFsdWUod2luZG93LmxvY2F0aW9uLmhy
ZWYpKTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuRm9ydW1Qb3N0RWRpdCA9
IGZ1bmN0aW9uKGRpc2N1c3Npb25JZCwgcG9zdElkLCBjdXJWaWV3LCBjdXJQYWdl
KSB7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoJ0ZvcnVtRWRpdFBvc3QnLCAn
Zm9ydW1EZXN0JywgJ0ZvcnVtTWFpbicsICdwbGNrRGlzY3Vzc2lvbklkPScgKyBk
aXNjdXNzaW9uSWQgKyAnJnBsY2tQb3N0SWQ9JyArIHBvc3RJZCArICcmcGxja0N1
cnJlbnRWaWV3PScgKyBjdXJWaWV3ICsgJyZwbGNrQ3VycmVudFBhZ2U9JyArIGN1
clBhZ2UgKyAnJnBsY2tSZWRpcmVjdFVybD0nICsgdGhpcy5Fc2NhcGVWYWx1ZSh3
aW5kb3cubG9jYXRpb24uaHJlZikpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlw
ZS5Gb3J1bURpc2N1c3Npb25Ub2dnbGVJc1N0aWNreSA9IGZ1bmN0aW9uKGRpc2N1
c3Npb25JZCwgY3VyVmlldywgY3VyUGFnZSkgewoJcmV0dXJuIHRoaXMuRm9ydW1T
ZW5kKCdGb3J1bURpc2N1c3Npb25Ub2dnbGVJc1N0aWNreScsICdmb3J1bURlc3Qn
LCAnRm9ydW1NYWluJywgJ3BsY2tEaXNjdXNzaW9uSWQ9JyArIGRpc2N1c3Npb25J
ZCArICcmcGxja0N1clZpZXc9JyArIGN1clZpZXcgKyAnJnBsY2tDdXJyZW50UGFn
ZT0nICsgY3VyUGFnZSk7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkZvcnVt
RGlzY3Vzc2lvblRvZ2dsZUlzQ2xvc2VkID0gZnVuY3Rpb24oZGlzY3Vzc2lvbklk
LCBjdXJWaWV3LCBjdXJQYWdlKSB7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQo
J0ZvcnVtRGlzY3Vzc2lvblRvZ2dsZUlzQ2xvc2VkJywgJ2ZvcnVtRGVzdCcsICdG
b3J1bU1haW4nLCAncGxja0Rpc2N1c3Npb25JZD0nICsgZGlzY3Vzc2lvbklkICsg
JyZwbGNrQ3VyVmlldz0nICsgY3VyVmlldyArICcmcGxja0N1cnJlbnRQYWdlPScg
KyBjdXJQYWdlICk7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkZvcnVtRGlz
Y3Vzc2lvbkRlbGV0ZSA9IGZ1bmN0aW9uKGRpc2N1c3Npb25JZCwgY3VyUGFnZSwg
Y29uZmlybU1zZykgewogIGlmIChjb25maXJtKGNvbmZpcm1Nc2cpID09IHRydWUp
IHsKICAgIHJldHVybiB0aGlzLkZvcnVtU2VuZCgnRm9ydW1EaXNjdXNzaW9uRGVs
ZXRlJywgJ2ZvcnVtRGVzdCcsICdGb3J1bU1haW4nLCAncGxja0Rpc2N1c3Npb25J
ZD0nICsgZGlzY3Vzc2lvbklkICsgJyZwbGNrQ3VycmVudFBhZ2U9JyArIGN1clBh
Z2UgKTsKICB9CiAgZWxzZSB7CglyZXR1cm4gZmFsc2U7CiAgfQp9CgpTaXRlTGlm
ZVByb3h5LnByb3RvdHlwZS5Nb3ZlRGlzY3Vzc2lvbiA9IGZ1bmN0aW9uKGRpc2N1
c3Npb25LZXksIHRvRm9ydW0sIGN1clZpZXcsIGN1clBhZ2UpIHsKICAgIHJldHVy
biB0aGlzLkZvcnVtU2VuZCgnTW92ZURpc2N1c3Npb24nLCAnZm9ydW1EZXN0Jywg
J0ZvcnVtTWFpbicsICdkaXNjdXNzaW9uS2V5PScgKyBkaXNjdXNzaW9uS2V5ICsg
JyZ0b0ZvcnVtPScgKyB0b0ZvcnVtICsgJyZwbGNrQ3VyVmlldz0nICsgY3VyVmll
dyArICcmcGxja0N1cnJlbnRQYWdlPScgKyBjdXJQYWdlICk7Cn0KClNpdGVMaWZl
UHJveHkucHJvdG90eXBlLkZvcnVtRWRpdCA9IGZ1bmN0aW9uKGZvcnVtSWQsIGN1
clBhZ2UpIHsKICAgIHJldHVybiB0aGlzLkZvcnVtU2VuZCgnRm9ydW1FZGl0Jywg
J2ZvcnVtRGVzdCcsICdGb3J1bU1haW4nLCAncGxja0ZvcnVtSWQ9JyArIGZvcnVt
SWQgKyAnJnBsY2tDdXJyZW50UGFnZT0nICsgY3VyUGFnZSAgKTsKfQoKU2l0ZUxp
ZmVQcm94eS5wcm90b3R5cGUuRm9ydW1Ub2dnbGVJc0Nsb3NlZCA9IGZ1bmN0aW9u
KGZvcnVtSWQsIGN1clBhZ2UpIHsKICAgIHJldHVybiB0aGlzLkZvcnVtU2VuZCgn
Rm9ydW1Ub2dnbGVJc0Nsb3NlZCcsICdmb3J1bURlc3QnLCAnRm9ydW1NYWluJywg
J3BsY2tGb3J1bUlkPScgKyBmb3J1bUlkICsgJyZwbGNrQ3VycmVudFBhZ2U9JyAr
IGN1clBhZ2UgICk7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkZvcnVtRGVs
ZXRlID0gZnVuY3Rpb24oZm9ydW1JZCwgY29uZmlybU1zZykgewogIGlmIChjb25m
aXJtKGNvbmZpcm1Nc2cpID09IHRydWUpIHsKICAgIHJldHVybiB0aGlzLkZvcnVt
U2VuZCgnRm9ydW1EZWxldGUnLCAnZm9ydW1EZXN0JywgJ0ZvcnVtTWFpbicsICdw
bGNrRm9ydW1JZD0nICsgZm9ydW1JZCApOwogIH0KICBlbHNlIHsKCXJldHVybiBm
YWxzZTsKICB9Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkZvcnVtUG9zdERl
bGV0ZSA9IGZ1bmN0aW9uKHBvc3RJZCwgY3VyUGFnZSwgY29uZmlybU1zZykgewog
IGlmIChjb25maXJtKGNvbmZpcm1Nc2cpID09IHRydWUpIHsKICAgIHJldHVybiB0
aGlzLkZvcnVtU2VuZCgnRm9ydW1Qb3N0RGVsZXRlJywgJ2ZvcnVtRGVzdCcsICdG
b3J1bU1haW4nLCAncGxja1Bvc3RJZD0nICsgcG9zdElkICsgJyZwbGNrQ3VyUGFn
ZT0nICsgY3VyUGFnZSk7CiAgfQogIGVsc2UgewoJcmV0dXJuIGZhbHNlOwogIH0K
fQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuRm9ydW1CbG9ja1VzZXIgPSBmdW5j
dGlvbihwb3N0SWQsIHVzZXJJZCwgdmFsdWUsIGN1clBhZ2UpIHsKICAgIHJldHVy
biB0aGlzLkZvcnVtU2VuZCgnRm9ydW1CbG9ja1VzZXInLCAnZm9ydW1EZXN0Jywg
J0ZvcnVtTWFpbicsICdwbGNrUG9zdElkPScgKyBwb3N0SWQgKyAnJnBsY2tVc2Vy
SWQ9JyArIHVzZXJJZCArICcmcGxja1ZhbHVlPScgKyB2YWx1ZSArICcmcGxja0N1
clBhZ2U9JyArIGN1clBhZ2UpOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5G
b3J1bU15RGlzY3Vzc2lvbnNQYWdpbmF0ZSA9IGZ1bmN0aW9uKHBhZ2VOdW0pIHsK
ICAgIHJldHVybiB0aGlzLkZvcnVtU2VuZCgnRm9ydW1NeURpc2N1c3Npb25zUGFn
aW5hdGUnLCAnRm9ydW1NeURpc2N1c3Npb25zRGl2JywgJ0ZvcnVtTWFpbicsICdw
bGNrTXlEaXNjdXNzaW9uc1BhZ2U9JyArIHBhZ2VOdW0pOwp9CgpTaXRlTGlmZVBy
b3h5LnByb3RvdHlwZS5Gb3J1bUltYWdlID0gZnVuY3Rpb24oKSB7CiAgICB2YXIg
YWRQYXJhbSA9ICJwbGNrUmVkaXJlY3RVcmw9IiArIHRoaXMuR2V0UGFyYW1ldGVy
KCJwbGNrUmVkaXJlY3RVcmwiKTsKICAgIHZhciBwSWQgPSB0aGlzLkdldFBhcmFt
ZXRlcigicGxja1Bob3RvSWQiKTsgYWRQYXJhbSArPSAiJnBsY2tQaG90b0lkPSIg
KyBwSWQ7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoJ0ZvcnVtSW1hZ2UnLCAn
Zm9ydW1EZXN0JywgJ0ZvcnVtTWFpbicsIGFkUGFyYW0pOwp9CgpTaXRlTGlmZVBy
b3h5LnByb3RvdHlwZS5CYXNlQWRQYXJhbSA9IGZ1bmN0aW9uICgpIHsKICAgIHZh
ciBhZFBhcmFtID0gInBsY2tSZWRpcmVjdFVybD0iICsgdGhpcy5Fc2NhcGVWYWx1
ZSh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICB2YXIgZklkID0gdGhpcy5HZXRQ
YXJhbWV0ZXIoInBsY2tGb3J1bUlkIik7IGFkUGFyYW0gKz0gIiZwbGNrRm9ydW1J
ZD0iICsgZklkOwogICAgdmFyIGN1clZpZXcgPSB0aGlzLkdldFBhcmFtZXRlcigi
cGxja0N1cnJlbnRWaWV3Iik7IGlmKGN1clZpZXcpIGFkUGFyYW0gKz0gIiZwbGNr
Q3VycmVudFZpZXc9IiArIGN1clZpZXc7CiAgICB2YXIgY3VyUGFnZSA9IHRoaXMu
R2V0UGFyYW1ldGVyKCJwbGNrQ3VycmVudFBhZ2UiKTsgaWYoY3VyUGFnZSkgYWRQ
YXJhbSArPSAiJnBsY2tDdXJyZW50UGFnZT0iICsgY3VyUGFnZTsKICAgIHJldHVy
biBhZFBhcmFtOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bUpvaW5H
cm91cCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGFkUGFyYW0gPSB0aGlzLkJhc2VB
ZFBhcmFtKCk7CiAgICB2YXIgZElkID0gdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tE
aXNjdXNzaW9uSWQiKTsgaWYoZElkKSBhZFBhcmFtICs9ICImcGxja0Rpc2N1c3Np
b25JZD0iICsgZElkOwogICAgcmV0dXJuIHRoaXMuRm9ydW1TZW5kKCJGb3J1bUpv
aW5Hcm91cCIsICJmb3J1bURlc3QiLCAiRm9ydW1NYWluIiwgYWRQYXJhbSk7Cn0K
ClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkZvcnVtTGVhdmVHcm91cCA9IGZ1bmN0
aW9uKCkgewogICAgdmFyIGFkUGFyYW0gPSB0aGlzLkJhc2VBZFBhcmFtKCk7CiAg
ICB2YXIgZElkID0gdGhpcy5HZXRQYXJhbWV0ZXIoInBsY2tEaXNjdXNzaW9uSWQi
KTsgaWYoZElkKSBhZFBhcmFtICs9ICImcGxja0Rpc2N1c3Npb25JZD0iICsgZElk
OwogICAgcmV0dXJuIHRoaXMuRm9ydW1TZW5kKCJGb3J1bUxlYXZlR3JvdXAiLCAi
Zm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIsIGFkUGFyYW0pOwp9CgpTaXRlTGlmZVBy
b3h5LnByb3RvdHlwZS5Gb3J1bUdyb3VwTWVtYmVyTGlzdCA9IGZ1bmN0aW9uKCkg
ewogICAgdmFyIGFkUGFyYW0gPSB0aGlzLkJhc2VBZFBhcmFtKCk7CiAgICByZXR1
cm4gdGhpcy5Gb3J1bVNlbmQoIkZvcnVtR3JvdXBNZW1iZXJMaXN0IiwgImZvcnVt
RGVzdCIsICJGb3J1bU1haW4iLCBhZFBhcmFtKTsKfQoKU2l0ZUxpZmVQcm94eS5w
cm90b3R5cGUuRm9ydW1JbnZpdGVVc2VyID0gZnVuY3Rpb24oKSB7CiAgICB2YXIg
YWRQYXJhbSA9IHRoaXMuQmFzZUFkUGFyYW0oKTsKICAgIHJldHVybiB0aGlzLkZv
cnVtU2VuZCgiRm9ydW1JbnZpdGVVc2VyIiwgImZvcnVtRGVzdCIsICJGb3J1bU1h
aW4iLCBhZFBhcmFtKTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuRm9ydW1H
cm91cENvbmZpcm0gPSBmdW5jdGlvbigpIHsKICAgIHZhciBhZFBhcmFtID0gdGhp
cy5CYXNlQWRQYXJhbSgpOwogICAgdmFyIGNvbmZpcm1UeXBlID0gdGhpcy5HZXRQ
YXJhbWV0ZXIoInBsY2tDb25maXJtVHlwZSIpOyBpZiAoY29uZmlybVR5cGUpIGFk
UGFyYW0gKz0gIiZwbGNrQ29uZmlybVR5cGU9IiArIGNvbmZpcm1UeXBlOwogICAg
cmV0dXJuIHRoaXMuRm9ydW1TZW5kKCJGb3J1bUdyb3VwQ29uZmlybSIsICJmb3J1
bURlc3QiLCAiRm9ydW1NYWluIiwgYWRQYXJhbSk7Cn0KClNpdGVMaWZlUHJveHku
cHJvdG90eXBlLkZvcnVtU2VuZEludml0ZVRvVXNlciA9IGZ1bmN0aW9uKHVzZXJu
YW1lLCBlbWFpbCkgewogICAgdmFyIGFkUGFyYW0gPSB0aGlzLkJhc2VBZFBhcmFt
KCk7CiAgICB2YXIgdXNlcm5hbWUgPSB0aGlzLkdldFBhcmFtZXRlcigicGxja1Vz
ZXJuYW1lIik7IGlmICh1c2VybmFtZSkgYWRQYXJhbSArPSAiJnBsY2tVc2VybmFt
ZT0iICsgdXNlcm5hbWU7CiAgICB2YXIgZW1haWwgPSB0aGlzLkdldFBhcmFtZXRl
cigicGxja1VzZXJFbWFpbCIpOyBpZiAoZW1haWwpIGFkUGFyYW0gKz0gIiZwbGNr
VXNlckVtYWlsIiArIGVtYWlsOwogICAgcmV0dXJuIHRoaXMuRm9ydW1TZW5kKCJG
b3J1bVNlbmRJbnZpdGVUb1VzZXIiLCAiZm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIs
IGFkUGFyYW0pOwp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bUFkZEVu
ZW15ID0gZnVuY3Rpb24oZW5lbXlLZXkpIHsKICAgIHZhciBhZFBhcmFtID0gdGhp
cy5CYXNlQWRQYXJhbSgpOwogICAgYWRQYXJhbSArPSAiJmVuZW15S2V5PSIgKyBl
bmVteUtleTsKICAgIHZhciBkSWQgPSB0aGlzLkdldFBhcmFtZXRlcigicGxja0Rp
c2N1c3Npb25JZCIpOyBpZihkSWQpIGFkUGFyYW0gKz0gIiZwbGNrRGlzY3Vzc2lv
bklkPSIgKyBkSWQ7CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoIkZvcnVtQWRk
RW5lbXkiLCAiZm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIsIGFkUGFyYW0pOwp9CgpT
aXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1bVJlbW92ZUVuZW15ID0gZnVuY3Rp
b24oZW5lbXlLZXkpIHsKICAgIHZhciBhZFBhcmFtID0gdGhpcy5CYXNlQWRQYXJh
bSgpOwogICAgYWRQYXJhbSArPSAiJmVuZW15S2V5PSIgKyBlbmVteUtleTsKICAg
IHZhciBkSWQgPSB0aGlzLkdldFBhcmFtZXRlcigicGxja0Rpc2N1c3Npb25JZCIp
OyBpZihkSWQpIGFkUGFyYW0gKz0gIiZwbGNrRGlzY3Vzc2lvbklkPSIgKyBkSWQ7
CiAgICByZXR1cm4gdGhpcy5Gb3J1bVNlbmQoIkZvcnVtUmVtb3ZlRW5lbXkiLCAi
Zm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIsIGFkUGFyYW0pOwp9CgpmdW5jdGlvbiBz
bEdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NuYW1lLCBub2RlKSAgewogICAg
aWYoIW5vZGUpIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
Ym9keSIpWzBdOwogICAgdmFyIGEgPSBbXTsKICAgIHZhciByZSA9IG5ldyBSZWdF
eHAoJ1xcYicgKyBjbGFzc25hbWUgKyAnXFxiJyk7CiAgICB2YXIgZWxzID0gbm9k
ZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpOwogICAgZm9yKHZhciBpPTAsaj1l
bHMubGVuZ3RoOyBpPGo7IGkrKykKICAgICAgICBpZihyZS50ZXN0KGVsc1tpXS5j
bGFzc05hbWUpKWEucHVzaChlbHNbaV0pOwogICAgcmV0dXJuIGE7Cn0KCglmdW5j
dGlvbiBoaWRlQWxsUG9zdHNGcm9tVXNlcih1c2VyS2V5KXsKCSAgdmFyIHBvc3Rz
ID0gc2xHZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwb3N0VmlzaWJpbGl0eUNvbnRh
aW5lcl8iK3VzZXJLZXksIGRvY3VtZW50KTsKCSAgdmFyIGhpZGRlbk1lc3NhZ2Vz
ID0gc2xHZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJwb3N0SGlkZGVuTWVzc2FnZV8i
K3VzZXJLZXksIGRvY3VtZW50KTsKCSAgCgkgIGZvcihpPTA7IGkgPCBwb3N0cy5s
ZW5ndGg7IGkrKyl7CgkgICAgcG9zdHNbaV0uc3R5bGUuZGlzcGxheSA9ICJub25l
IjsKCSAgICBoaWRkZW5NZXNzYWdlc1tpXS5zdHlsZS5kaXNwbGF5ID0gImJsb2Nr
IjsKCSAgfQoJICAKCSAgZ1NpdGVMaWZlLkZvcnVtQWRkRW5lbXkodXNlcktleSk7
Cgl9CgkKCWZ1bmN0aW9uIHNob3dBbGxQb3N0c0Zyb21Vc2VyKHVzZXJLZXkpewoJ
ICB2YXIgcG9zdHMgPSBzbEdldEVsZW1lbnRzQnlDbGFzc05hbWUoInBvc3RWaXNp
YmlsaXR5Q29udGFpbmVyXyIrdXNlcktleSwgZG9jdW1lbnQpOwoJICB2YXIgaGlk
ZGVuTWVzc2FnZXMgPSBzbEdldEVsZW1lbnRzQnlDbGFzc05hbWUoInBvc3RIaWRk
ZW5NZXNzYWdlXyIrdXNlcktleSwgZG9jdW1lbnQpOwoJICAJICAKCSAgZm9yKGk9
MDsgaSA8IHBvc3RzLmxlbmd0aDsgaSsrKXsKCSAgICBwb3N0c1tpXS5zdHlsZS5k
aXNwbGF5ID0gImJsb2NrIjsKCSAgICBoaWRkZW5NZXNzYWdlc1tpXS5zdHlsZS5k
aXNwbGF5ID0gIm5vbmUiOwoJICB9CgkgIAoJICBnU2l0ZUxpZmUuRm9ydW1SZW1v
dmVFbmVteSh1c2VyS2V5KTsKCX0KCQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5G
b3J1bUNoYW5nZVNvcnQgPSBmdW5jdGlvbihzb3J0UGFyYW1OYW1lLCBzb3J0RGly
ZWN0aW9uKSB7CgkJdmFyIGN1cnJlbnRVcmwgPSBkb2N1bWVudC5sb2NhdGlvbi5o
cmVmOwoJCXZhciBuZXdVcmw7CgkJLy8gcmVwbGFjZSB0aGUgc29ydCBwYXJhbSBp
biB0aGUgdXJsLCBpZiBmb3VuZAoJCXZhciByZSA9IG5ldyBSZWdFeHAoIihbP3wm
XSkiICsgc29ydFBhcmFtTmFtZSArICI9Lio/KCZ8JCkiLCJpIik7CgkJaWYgKGN1
cnJlbnRVcmwubWF0Y2gocmUpKSB7CgkJCW5ld1VybCA9IGN1cnJlbnRVcmwucmVw
bGFjZShyZSwgJyQxJyArIHNvcnRQYXJhbU5hbWUgKyAiPSIgKyBzb3J0RGlyZWN0
aW9uICsgJyQyJyk7CgkJfQoJCWVsc2UgewoJCQlpZihjdXJyZW50VXJsLmluZGV4
T2YoJz8nKSA+PSAwKXsKCQkJCW5ld1VybCA9IGN1cnJlbnRVcmwgKyAnJicgKyBz
b3J0UGFyYW1OYW1lICsgIj0iICsgc29ydERpcmVjdGlvbjsKCQkJfQoJCQllbHNl
ewoJCQkJbmV3VXJsID0gY3VycmVudFVybCArICc/JyArIHNvcnRQYXJhbU5hbWUg
KyAiPSIgKyBzb3J0RGlyZWN0aW9uOwoJCQl9CgkJfQoJCWRvY3VtZW50LmxvY2F0
aW9uLmhyZWYgPSBuZXdVcmw7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLkZv
cnVtU2V0TGFzdFJlYWQgPSBmdW5jdGlvbihkaXNjdXNzaW9uS2V5LCBwb3N0S2V5
KSB7CiAgICB2YXIgYWRQYXJhbSA9IHRoaXMuQmFzZUFkUGFyYW0oKTsKICAgIGFk
UGFyYW0gKz0gIiZkaXNjdXNzaW9uS2V5PSIgKyBkaXNjdXNzaW9uS2V5OwogICAg
aWYocG9zdEtleSl7CgkJYWRQYXJhbSArPSAiJnBvc3RLZXk9IiArIHBvc3RLZXk7
Cgl9CiAgICB2YXIgcmV0ID0gdGhpcy5Gb3J1bVNlbmQoIkZvcnVtU2V0TGFzdFJl
YWQiLCAiZm9ydW1EZXN0IiwgIkZvcnVtTWFpbiIsIGFkUGFyYW0pOwogICAgCiAg
ICBpZighcG9zdEtleSl7CgkJbG9jYXRpb24ucmVsb2FkKCk7CiAgICB9CiAgICAK
ICAgIHJldHVybiByZXQ7Cn0gCgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5Gb3J1
bURpc2N1c3Npb25TdWJzY3JpYmUgPSBmdW5jdGlvbihkaXNjdXNzaW9uS2V5LCB0
YXJnZXREaXYpIHsKICAgIHZhciB1cmwgPSB0aGlzLl9fYmFzZVVybCArICcvRm9y
dW1zL0ZvcnVtRGlzY3Vzc2lvblN1YnNjcmliZT8nICsgJ3BsY2tEaXNjdXNzaW9u
SWQ9JyArIGRpc2N1c3Npb25LZXkgKyAnJnBsY2tFbGVtZW50SWQ9JyArIHRhcmdl
dERpdjsKICAgIHRoaXMuX19TZW5kKHVybCwgIkZvcnVtRGlzY3Vzc2lvblN1YnNj
cmliZSIpOwogICAgcmV0dXJuIGZhbHNlOwp9CgpTaXRlTGlmZVByb3h5LnByb3Rv
dHlwZS5Gb3J1bURpc2N1c3Npb25VblN1YnNjcmliZSA9IGZ1bmN0aW9uKGRpc2N1
c3Npb25LZXksIHRhcmdldERpdikgewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNl
VXJsICsgJy9Gb3J1bXMvRm9ydW1EaXNjdXNzaW9uVW5TdWJzY3JpYmU/JyArICdw
bGNrRGlzY3Vzc2lvbklkPScgKyBkaXNjdXNzaW9uS2V5ICsgJyZwbGNrRWxlbWVu
dElkPScgKyB0YXJnZXREaXY7CiAgICB0aGlzLl9fU2VuZCh1cmwsICJGb3J1bURp
c2N1c3Npb25VblN1YnNjcmliZSIpOwogICAgcmV0dXJuIGZhbHNlOwp9CgoKU2l0
ZUxpZmVQcm94eS5wcm90b3R5cGUuUmVjb21tZW5kID0gZnVuY3Rpb24oa2V5VHlw
ZSwgdGFyZ2V0S2V5LCBwYXJlbnRVcmwpIHsKICAgIGtleVR5cGUgPSBrZXlUeXBl
IHx8ICJFeHRlcm5hbFJlc291cmNlIjsKICAgIHRhcmdldEtleSA9IHRhcmdldEtl
eSB8fCBnU2l0ZUxpZmUuX19TdHJpcEFuY2hvckZyb21Vcmwod2luZG93LmxvY2F0
aW9uLmhyZWYpOwogICAgcGFyZW50VXJsID0gcGFyZW50VXJsIHx8IHdpbmRvdy5s
b2NhdGlvbi5ocmVmOwogICAgdGFyZ2V0S2V5ID0gdGFyZ2V0S2V5OwogICAgdmFy
IGRpdklkID0gIlJlY29tbWVuZCIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAg
IHRoaXMuV3JpdGVEaXYoZGl2SWQsICJSZWNvbW1lbmQiKTsKICAgIHZhciB1cmwg
PSB0aGlzLl9fYmFzZVVybCArIAogICAgICAgICcvUmVjb21tZW5kL1JlY29tbWVu
ZD9wbGNrRWxlbWVudElkPScgKyBkaXZJZCArIAogICAgICAgICcmcGxja1Rhcmdl
dEtleT0nICsgZ1NpdGVMaWZlLkVzY2FwZVZhbHVlKHRhcmdldEtleSkgKyAKICAg
ICAgICAnJnBsY2tUYXJnZXRLZXlUeXBlPScgKyBrZXlUeXBlICsKICAgICAgICAn
JnBsY2tUYXJnZXRVcmw9JyArIGdTaXRlTGlmZS5Fc2NhcGVWYWx1ZShwYXJlbnRV
cmwpOwogICAgdGhpcy5fX1NlbmQodXJsKTsKICAgIHJldHVybiBmYWxzZTsgICAK
fQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuUG9zdFJlY29tbWVuZGF0aW9uID0g
ZnVuY3Rpb24oa2V5VHlwZSwgdGFyZ2V0S2V5LCByZWNvbW1lbmREaXYsIHBhcmVu
dFRpdGxlLCBwYXJlbnRVcmwpIHsKICAgIHBhcmVudFVybCA9IHBhcmVudFVybCB8
fCB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgIHZhciB1cmwgPSB0aGlzLl9fYmFz
ZVVybCArIAogICAgICAgICcvUmVjb21tZW5kL1Bvc3RSZWNvbW1lbmRhdGlvbj9w
bGNrRWxlbWVudElkPScgKyByZWNvbW1lbmREaXYgKyAKICAgICAgICAnJnBsY2tU
YXJnZXRLZXk9JyArIGdTaXRlTGlmZS5Fc2NhcGVWYWx1ZSh0YXJnZXRLZXkpICsg
CiAgICAgICAgJyZwbGNrVGFyZ2V0S2V5VHlwZT0nICsga2V5VHlwZSArCiAgICAg
ICAgJyZwbGNrVGFyZ2V0VXJsPScgKyBnU2l0ZUxpZmUuRXNjYXBlVmFsdWUocGFy
ZW50VXJsKTsKICAgIGlmKHBhcmVudFRpdGxlKSB1cmwgKz0gJyZwbGNrUGFyZW50
VGl0bGU9JyArIGdTaXRlTGlmZS5Fc2NhcGVWYWx1ZShwYXJlbnRUaXRsZSk7CiAg
ICAKICAgIHRoaXMuX19TZW5kKHVybCk7CiAgICByZXR1cm4gZmFsc2U7Cn0KCgpT
aXRlTGlmZVByb3h5LnByb3RvdHlwZS5SYXRlSXRlbSA9IGZ1bmN0aW9uIChpdGVt
SWQsIGl0ZW1UeXBlLCByYXRpbmcsIHRhcmdldERpdiwgcGFyZW50VGl0bGUsIHBh
cmVudFVybCkgewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9SYXRp
bmcvUmF0ZT9wbGNrRWxlbWVudElkPScgKyB0YXJnZXREaXYgKyAKICAgICAgICAn
JnBsY2tUYXJnZXRLZXk9JyArIGdTaXRlTGlmZS5Fc2NhcGVWYWx1ZShpdGVtSWQp
ICsgCiAgICAgICAgJyZwbGNrVGFyZ2V0S2V5VHlwZT0nICsgaXRlbVR5cGUgKyAK
ICAgICAgICAnJnBsY2tSYXRpbmc9JyArIHJhdGluZyArCiAgICAgICAgJyZwbGNr
VGFyZ2V0VXJsPScgKyBnU2l0ZUxpZmUuRXNjYXBlVmFsdWUocGFyZW50VXJsKTsK
ICAgICAgICBpZihwYXJlbnRUaXRsZSkgdXJsICs9ICcmcGxja1BhcmVudFRpdGxl
PScgKyBwYXJlbnRUaXRsZTsKICAgIHRoaXMuX19TZW5kKHVybCk7CiAgICByZXR1
cm4gZmFsc2U7Cn0KClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlJhdGluZyA9IGZ1
bmN0aW9uKGl0ZW1UeXBlLCBpdGVtSWQsIHBhcmVudFVybCkgewogICAgaXRlbVR5
cGUgPSBpdGVtVHlwZSB8fCAiRXh0ZXJuYWxSZXNvdXJjZSI7CiAgICBpdGVtSWQg
PSBpdGVtSWQgfHwgZ1NpdGVMaWZlLl9fU3RyaXBBbmNob3JGcm9tVXJsKHdpbmRv
dy5sb2NhdGlvbi5ocmVmKTsKICAgIHBhcmVudFVybCA9IHBhcmVudFVybCB8fCB3
aW5kb3cubG9jYXRpb24uaHJlZjsKICAgIHZhciBkaXZJZCA9IGl0ZW1JZCArICJf
cGxja1JhdGVEaXZfIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTWF0aC5mbG9v
cihNYXRoLnJhbmRvbSgpKjEwMDApOwogICAgdGhpcy5Xcml0ZURpdihkaXZJZCwg
IlJhdGluZyIpOwogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9SYXRp
bmcvR2V0UmF0aW5nP3BsY2tFbGVtZW50SWQ9JyArIGRpdklkICsKICAgICAgICAn
JnBsY2tUYXJnZXRLZXk9JyArIGdTaXRlTGlmZS5Fc2NhcGVWYWx1ZShpdGVtSWQp
ICsgCiAgICAgICAgJyZwbGNrVGFyZ2V0S2V5VHlwZT0nICsgaXRlbVR5cGUgKwog
ICAgICAgICcmcGxja1RhcmdldFVybD0nICsgZ1NpdGVMaWZlLkVzY2FwZVZhbHVl
KHBhcmVudFVybCk7CiAgICB0aGlzLl9fU2VuZCh1cmwpOwogICAgcmV0dXJuIGZh
bHNlOyAgIAp9CgpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5SYXRpbmdDbGlja1N0
YXIgPSBmdW5jdGlvbiAoaW5kZXgsIHRhcmdldEtleSwgdGFyZ2V0S2V5VHlwZSwg
dGFyZ2V0RGl2LCBwYXJlbnRUaXRsZSwgcGFyZW50VXJsKSB7CiAgICBnU2l0ZUxp
ZmUuUmF0ZUl0ZW0odGFyZ2V0S2V5LCB0YXJnZXRLZXlUeXBlLCBpbmRleCwgdGFy
Z2V0RGl2LCBwYXJlbnRUaXRsZSwgcGFyZW50VXJsKTsKICAgIAp9CgpTaXRlTGlm
ZVByb3h5LnByb3RvdHlwZS5SYXRpbmdGaWxsU3RhciA9IGZ1bmN0aW9uKGluZGV4
LCB0YXJnZXRLZXksIGxibCkgewogICAgdmFyIHN0YXJzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeU5hbWUodGFyZ2V0S2V5KyJTdGFycyIpOwogICAgdmFyIGxhYmVs
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0S2V5ICsgIlJhdGluZy1s
YWJlbCIpOwogICAgdmFyIHNlbGVjdGVkSW5kZXggPSBwYXJzZUludChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCh0YXJnZXRLZXkrIlJhdGluZy12YWx1ZSIpLnZhbHVl
KTsKICAgIAogICAgaWYgKGluZGV4IDwgMCAmJiBzZWxlY3RlZEluZGV4ID49IDAp
IGluZGV4ID0gc2VsZWN0ZWRJbmRleDsKICAgIGZvcihpPTE7IGkgPD0gc3RhcnMu
bGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAoaW5kZXggPiAwICYmIGkgPD0gaW5k
ZXgpIHsKICAgICAgICAgICAgc3RhcnNbaS0xXS5zcmMgPSB0aGlzLl9fYmFzZVVy
bCArICIvQ29udGVudC9pbWFnZXMvaWNvbnMvZnVsbHN0YXIuZ2lmIjsKICAgICAg
ICB9ZWxzZSB7CiAgICAgICAgICAgIHN0YXJzW2ktMV0uc3JjID0gdGhpcy5fX2Jh
c2VVcmwgKyAiL0NvbnRlbnQvaW1hZ2VzL2ljb25zL2VtcHR5c3Rhci5naWYiOwog
ICAgICAgIH0KICAgIH0KICAgIGxhYmVsLmlubmVySFRNTCA9IGxibDsKfQoKU2l0
ZUxpZmVQcm94eS5wcm90b3R5cGUuUmV2aWV3ID0gZnVuY3Rpb24ocGFyZW50S2V5
VHlwZSwgcGFyZW50S2V5LCByZXZpZXdlZFRpdGxlLCByZXZpZXdDYXRlZ29yeSwg
cGFnZVNpemUsIHNvcnQsIGN1cnJlbnRQYWdlKSB7CiAgICAKICAgIHZhciBkaXZJ
ZCA9ICJSZXZpZXdzX0NvbnRhaW5lciI7CiAgICB0aGlzLldyaXRlRGl2KGRpdklk
KTsKICAgIHJldHVybiB0aGlzLkdldFJldmlld3MocGFyZW50S2V5VHlwZSwgcGFy
ZW50S2V5LCByZXZpZXdlZFRpdGxlLCByZXZpZXdDYXRlZ29yeSwgcGFnZVNpemUs
IHNvcnQsIGN1cnJlbnRQYWdlKTsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
UmV2aWV3Q2xpY2tTdGFyID0gZnVuY3Rpb24gKGluZGV4LCB0YXJnZXRLZXkpIHsK
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRhcmdldEtleSsiUmF0aW5nLXZh
bHVlIikudmFsdWUgPSBpbmRleDsKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUu
R2V0UmV2aWV3cyA9IGZ1bmN0aW9uKHBhcmVudEtleVR5cGUsIHBhcmVudEtleSwg
cmV2aWV3ZWRUaXRsZSwgcmV2aWV3Q2F0ZWdvcnksIHBhZ2VTaXplLCBzb3J0LCBj
dXJyZW50UGFnZSkgewogICAgcGFyZW50S2V5VHlwZSA9IHBhcmVudEtleVR5cGUg
fHwgIkV4dGVybmFsUmVzb3VyY2UiOwogICAgcGFyZW50S2V5ID0gZ1NpdGVMaWZl
LkVzY2FwZVZhbHVlKHBhcmVudEtleSkgfHwgZ1NpdGVMaWZlLkVzY2FwZVZhbHVl
KGdTaXRlTGlmZS5fX1N0cmlwQW5jaG9yRnJvbVVybCh3aW5kb3cubG9jYXRpb24u
aHJlZikpOwogICAgcmV2aWV3ZWRUaXRsZSA9IGdTaXRlTGlmZS5Fc2NhcGVWYWx1
ZShyZXZpZXdlZFRpdGxlKSB8fCBnU2l0ZUxpZmUuRXNjYXBlVmFsdWUoZG9jdW1l
bnQudGl0bGUpOwogICAgcmV2aWV3Q2F0ZWdvcnkgPSByZXZpZXdDYXRlZ29yeSB8
fCAiVW5jYXRlZ29yaXplZCI7CiAgICBwYWdlU2l6ZSA9IHBhZ2VTaXplIHx8IDEw
OwogICAgc29ydCA9IHNvcnQgfHwgIlRpbWVTdGFtcEFzY2VuZGluZyI7CiAgICBj
dXJyZW50UGFnZSA9IGN1cnJlbnRQYWdlIHx8IDA7CiAgICB2YXIgdXJsID0gdGhp
cy5fX2Jhc2VVcmwgKyAnL1Jldmlldy9SZXZpZXdzP3BsY2tFbGVtZW50SWQ9UmV2
aWV3c19Db250YWluZXInICsKICAgICAgICAnJnBsY2tUYXJnZXRLZXk9JyArIHBh
cmVudEtleSArIAogICAgICAgICcmcGxja1RhcmdldEtleVR5cGU9JyArIHBhcmVu
dEtleVR5cGUgKwogICAgICAgICcmcGxja1Jldmlld2VkVGl0bGU9JyArIHJldmll
d2VkVGl0bGUgKwogICAgICAgICcmcGxja1Jldmlld0NhdGVnb3J5PScgKyByZXZp
ZXdDYXRlZ29yeSArCiAgICAgICAgJyZwbGNrU29ydD0nICsgc29ydCArIAogICAg
ICAgICcmcGxja1BhcmVudFVybD0nICsgZ1NpdGVMaWZlLkVzY2FwZVZhbHVlKGdT
aXRlTGlmZS5fX1N0cmlwQW5jaG9yRnJvbVVybCh3aW5kb3cubG9jYXRpb24uaHJl
ZikpICsgCiAgICAgICAgJyZwbGNrUGFyZW50VGl0bGU9JyArIGdTaXRlTGlmZS5F
c2NhcGVWYWx1ZShkb2N1bWVudC50aXRsZSkgKwogICAgICAgICcmcGxja0N1cnJl
bnRQYWdlPScgKyBjdXJyZW50UGFnZSArCiAgICAgICAgJyZwbGNrUGFnZVNpemU9
JyArIHBhZ2VTaXplOwogICAgdGhpcy5fX1NlbmQodXJsKTsKICAgIHJldHVybiBm
YWxzZTsgICAKfQoKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuU3VtbWFyeUFydGlj
bGVzTW9zdENvbW1lbnRlZCA9IGZ1bmN0aW9uKGNvdW50KSB7CiByZXR1cm4gdGhp
cy5TdW1tYXJ5UGFuZWwoIlN1bW1hcnlBcnRpY2xlc01vc3RDb21tZW50ZWQiLCBj
b3VudCk7IAp9IApTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5TdW1tYXJ5QXJ0aWNs
ZXNNb3N0UmVjb21tZW5kZWQgPSBmdW5jdGlvbihjb3VudCkgewogcmV0dXJuIHRo
aXMuU3VtbWFyeVBhbmVsKCJTdW1tYXJ5QXJ0aWNsZXNNb3N0UmVjb21tZW5kZWQi
LCBjb3VudCk7IAp9IApTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5TdW1tYXJ5UGhv
dG9zUmVjZW50UGhvdG9zQnlUYWcgPSBmdW5jdGlvbihjb3VudCwgdGFnRmlsdGVy
LCBmaWx0ZXJCeVNpdGVPZk9yaWdpbikgewogcmV0dXJuIHRoaXMuU3VtbWFyeVBh
bmVsKCJTdW1tYXJ5UGhvdG9zUmVjZW50UGhvdG9zQnlUYWciLCBjb3VudCwgdGFn
RmlsdGVyLCBmaWx0ZXJCeVNpdGVPZk9yaWdpbik7IAp9IApTaXRlTGlmZVByb3h5
LnByb3RvdHlwZS5TdW1tYXJ5UGhvdG9zUmVjZW50VXNlclBob3RvcyA9IGZ1bmN0
aW9uKGNvdW50LCB0YWdGaWx0ZXIsIGZpbHRlckJ5U2l0ZU9mT3JpZ2luKSB7CiBy
ZXR1cm4gdGhpcy5TdW1tYXJ5UGFuZWwoIlN1bW1hcnlQaG90b3NSZWNlbnRVc2Vy
UGhvdG9zIiwgY291bnQsIHRhZ0ZpbHRlciwgZmlsdGVyQnlTaXRlT2ZPcmlnaW4p
Owp9IApTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5TdW1tYXJ5UGhvdG9zUmVjZW50
UGhvdG9zID0gZnVuY3Rpb24oY291bnQsIHRhZ0ZpbHRlciwgZmlsdGVyQnlTaXRl
T2ZPcmlnaW4pIHsKIHJldHVybiB0aGlzLlN1bW1hcnlQYW5lbCgiU3VtbWFyeVBo
b3Rvc1JlY2VudFBob3RvcyIsIGNvdW50LCB0YWdGaWx0ZXIsIGZpbHRlckJ5U2l0
ZU9mT3JpZ2luKTsgCn0gClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlN1bW1hcnlQ
aG90b3NNb3N0UmVjb21tZW5kZWRQaG90b3MgPSBmdW5jdGlvbihjb3VudCwgZmls
dGVyQnlTaXRlT2ZPcmlnaW4pIHsKIHJldHVybiB0aGlzLlN1bW1hcnlQYW5lbCgi
U3VtbWFyeVBob3Rvc01vc3RSZWNvbW1lbmRlZFBob3RvcyIsIGNvdW50LCAiIiwg
ZmlsdGVyQnlTaXRlT2ZPcmlnaW4pOyAKfSAKU2l0ZUxpZmVQcm94eS5wcm90b3R5
cGUuU3VtbWFyeVBob3Rvc01vc3RSZWNvbW1lbmRlZFVzZXJQaG90b3MgPSBmdW5j
dGlvbihjb3VudCwgZmlsdGVyQnlTaXRlT2ZPcmlnaW4pIHsKIHJldHVybiB0aGlz
LlN1bW1hcnlQYW5lbCgiU3VtbWFyeVBob3Rvc01vc3RSZWNvbW1lbmRlZFVzZXJQ
aG90b3MiLCBjb3VudCwgIiIsIGZpbHRlckJ5U2l0ZU9mT3JpZ2luKTsgCn0gClNp
dGVMaWZlUHJveHkucHJvdG90eXBlLlN1bW1hcnlQaG90b3NNb3N0UmVjb21tZW5k
ZWRHYWxsZXJpZXMgPSBmdW5jdGlvbihjb3VudCkgewogcmV0dXJuIHRoaXMuU3Vt
bWFyeVBhbmVsKCJTdW1tYXJ5UGhvdG9zTW9zdFJlY29tbWVuZGVkR2FsbGVyaWVz
IiwgY291bnQpOyAKfSAKU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuU3VtbWFyeUZv
cnVtc1JlY2VudERpc2N1c3Npb25zID0gZnVuY3Rpb24oY291bnQsIGZpbHRlckJ5
U2l0ZU9mT3JpZ2luLCBwYXJlbnRJZHMpIHsKICAgIHZhciBkaXZJZD0gIlN1bW1h
cnlfQ29udGFpbmVyIiArIHRoaXMuU0lEOwogICAgaWYodGhpcy5udW1TdW1tYXJ5
V2lkZ2V0cyl7IGRpdklkICs9IHRoaXMubnVtU3VtbWFyeVdpZGdldHMrKzsgfSBl
bHNlIHsgdGhpcy5udW1TdW1tYXJ5V2lkZ2V0cyA9IDE7IH0KICAgIHRoaXMuV3Jp
dGVEaXYoZGl2SWQsIGRpdklkKTsKICAgIHZhciBtZXRob2ROYW1lID0gIlN1bW1h
cnlGb3J1bXNSZWNlbnREaXNjdXNzaW9ucyI7CiAgICB2YXIgdGFnRmlsdGVyID0g
IiI7CiAgICByZXR1cm4gdGhpcy5TdW1tYXJ5U2VuZChtZXRob2ROYW1lLCBkaXZJ
ZCwgZGl2SWQgKyAiU2NyaXB0IiwgInBsY2tDb3VudCIsIGNvdW50LCAicGxja1Rh
Z0ZpbHRlciIsIHRhZ0ZpbHRlciwgInBsY2tGaWx0ZXJCeVNpdGVPZk9yaWdpbiIs
IGZpbHRlckJ5U2l0ZU9mT3JpZ2luLCAicGxja1BhcmVudElkcyIsIHBhcmVudElk
cyk7Cn0gClNpdGVMaWZlUHJveHkucHJvdG90eXBlLlN1bW1hcnlCbG9nc1JlY2Vu
dCA9IGZ1bmN0aW9uKGNvdW50LCB0YWdGaWx0ZXIpIHsKICAgIHJldHVybiB0aGlz
LlN1bW1hcnlQYW5lbCgiU3VtbWFyeUJsb2dzUmVjZW50IiwgY291bnQsIHRhZ0Zp
bHRlcik7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuU3VtbWFyeUJsb2dzUmVj
ZW50UG9zdHNCeVRhZyA9IGZ1bmN0aW9uKGNvdW50LCB0YWdGaWx0ZXIsIGZpbHRl
ckJ5U2l0ZU9mT3JpZ2luKSB7CiByZXR1cm4gdGhpcy5TdW1tYXJ5UGFuZWwoIlN1
bW1hcnlCbG9nc1JlY2VudFBvc3RzQnlUYWciLCBjb3VudCwgdGFnRmlsdGVyLCBm
aWx0ZXJCeVNpdGVPZk9yaWdpbik7IAp9IApTaXRlTGlmZVByb3h5LnByb3RvdHlw
ZS5TdW1tYXJ5QmxvZ3NSZWNlbnRQb3N0cyA9IGZ1bmN0aW9uKGNvdW50LCB0YWdG
aWx0ZXIsIGZpbHRlckJ5U2l0ZU9mT3JpZ2luKSB7CiByZXR1cm4gdGhpcy5TdW1t
YXJ5UGFuZWwoIlN1bW1hcnlCbG9nc1JlY2VudFBvc3RzIiwgY291bnQsIHRhZ0Zp
bHRlciwgZmlsdGVyQnlTaXRlT2ZPcmlnaW4pOyAKfSAKU2l0ZUxpZmVQcm94eS5w
cm90b3R5cGUuU3VtbWFyeUJsb2dzTW9zdFJlY29tbWVuZGVkUG9zdHMgPSBmdW5j
dGlvbihjb3VudCwgdGFnRmlsdGVyLCBmaWx0ZXJCeVNpdGVPZk9yaWdpbikgewog
ICAgcmV0dXJuIHRoaXMuU3VtbWFyeVBhbmVsKCJTdW1tYXJ5QmxvZ3NNb3N0UmVj
b21tZW5kZWRQb3N0cyIsIGNvdW50LCB0YWdGaWx0ZXIsIGZpbHRlckJ5U2l0ZU9m
T3JpZ2luKTsKfQpTaXRlTGlmZVByb3h5LnByb3RvdHlwZS5TdW1tYXJ5UGVyc29u
YVByb2ZpbGVSZWNlbnQgPSBmdW5jdGlvbihjb3VudCkgewogICAgcmV0dXJuIHRo
aXMuU3VtbWFyeVBhbmVsKCJTdW1tYXJ5UGVyc29uYVByb2ZpbGVSZWNlbnQiLCBj
b3VudCk7Cn0KU2l0ZUxpZmVQcm94eS5wcm90b3R5cGUuU3VtbWFyeVBhbmVsID0g
ZnVuY3Rpb24obWV0aG9kTmFtZSwgY291bnQsIHRhZ0ZpbHRlciwgZmlsdGVyQnlT
aXRlT2ZPcmlnaW4pIHsKICAgIHZhciBkaXZJZD0gIlN1bW1hcnlfQ29udGFpbmVy
IiArIHRoaXMuU0lEOwogICAgaWYodGhpcy5udW1TdW1tYXJ5V2lkZ2V0cyl7IGRp
dklkICs9IHRoaXMubnVtU3VtbWFyeVdpZGdldHMrKzsgfSBlbHNlIHsgdGhpcy5u
dW1TdW1tYXJ5V2lkZ2V0cyA9IDE7IH0KICAgIHRoaXMuV3JpdGVEaXYoZGl2SWQs
IGRpdklkKTsKICAgIHJldHVybiB0aGlzLlN1bW1hcnlTZW5kKG1ldGhvZE5hbWUs
IGRpdklkLCBkaXZJZCArICJTY3JpcHQiLCAicGxja0NvdW50IiwgY291bnQsICJw
bGNrVGFnRmlsdGVyIiwgdGFnRmlsdGVyLCAicGxja0ZpbHRlckJ5U2l0ZU9mT3Jp
Z2luIiwgZmlsdGVyQnlTaXRlT2ZPcmlnaW4pOwp9ClNpdGVMaWZlUHJveHkucHJv
dG90eXBlLlN1bW1hcnlTZW5kID0gZnVuY3Rpb24oQXBpTmFtZSwgRGVzdERpdiwg
U2NyaXB0TmFtZSkgewogICAgdmFyIHVybCA9IHRoaXMuX19iYXNlVXJsICsgJy9T
dW1tYXJ5LycgKyBBcGlOYW1lICsgJz9wbGNrRWxlbWVudElkPScgKyBEZXN0RGl2
OwogICAgZm9yKGlpPTM7IGlpPCB0aGlzLlN1bW1hcnlTZW5kLmFyZ3VtZW50cy5s
ZW5ndGg7IGlpKz0yKSB7IGlmKHRoaXMuU3VtbWFyeVNlbmQuYXJndW1lbnRzW2lp
KzFdKSB7IHVybCArPSAiJiIgKyB0aGlzLlN1bW1hcnlTZW5kLmFyZ3VtZW50c1tp
aV0gKyAiPSIgKyB0aGlzLlN1bW1hcnlTZW5kLmFyZ3VtZW50c1tpaSsxXTt9IH0K
ICAgIHRoaXMuX19TZW5kKHVybCwgU2NyaXB0TmFtZSk7CiAgICByZXR1cm4gZmFs
c2U7Cn0KCgoKCnZhciBnU2l0ZUxpZmUgPSBuZXcgU2l0ZUxpZmVQcm94eSgiaHR0
cDovLyIrY29tbWVudHNSb290VXJsKyIvdmVyMS4wIik7CmdTaXRlTGlmZS5hcGlL
ZXkgPSAiJHtBUElLZXl9IjsKZ1NpdGVMaWZlLlNJRCA9IGNvbW1lbnRzUm9vdFVy
bDsKCgoKICAgIC8vIFdlIG5lZWQgdG8gcmV0dXJuIHRydWUgaGVyZSBhcyBvdXIg
ZGVmYXVsdCBiZWhhdmlvciBhbGxvd2luZyBub3JtYWwgbGluayBuYXZpZ2F0aW9u
CiAgICBnU2l0ZUxpZmUuQWRkRXZlbnRIYW5kbGVyKCdFeHRlcm5hbFJlc291cmNl
TGluaycsIGZ1bmN0aW9uKCkge3JldHVybiB0cnVlO30pOwoKaWYoZ1NpdGVMaWZl
LkdldFBhcmFtZXRlcigncGxja1BlcnNvbmFQYWdlJykgJiYgZ1NpdGVMaWZlLkdl
dFBhcmFtZXRlcigncGxja1BlcnNvbmFQYWdlJykuaW5kZXhPZignUGVyc29uYUJs
b2cnKSA9PSAwKSB7CmRvY3VtZW50LndyaXRlKCI8bGluayBocmVmPSdodHRwOi8v
IiArY29tbWVudHNSb290VXJsKyAiL3ZlcjEuMC9ibG9nL0Jsb2dSc3M/cGxja0Js
b2dJZD0iICsgZ1NpdGVMaWZlLkdldFBhcmFtZXRlcigndXNlcklkJykgKyAiJyB0
aXRsZT0nIiArIGdTaXRlTGlmZS5HZXRQYXJhbWV0ZXIoJ3VzZXJJZCcpICsgIiBC
bG9nJyIgKyAicmVsPSdhbHRlcm5hdGUnIHR5cGU9J2FwcGxpY2F0aW9uL3Jzcyt4
bWwnIC8+Iik7IH0K
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=yahoo-min.js
Content-Type: application/javascript; charset=ISO-8859-1; name=yahoo-min.js
Content-Location: http://business.timesonline.co.uk/tol/js/yahoo-min.js
Content-Transfer-Encoding: Base64
LyoNCkNvcHlyaWdodCAoYykgMjAwOCwgWWFob28hIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4NCkNvZGUgbGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlOg0K
aHR0cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0DQp2ZXJz
aW9uOiAyLjYuMA0KKi8NCmlmKHR5cGVvZiBZQUhPTz09InVuZGVmaW5lZCJ8fCFZ
QUhPTyl7dmFyIFlBSE9PPXt9O31ZQUhPTy5uYW1lc3BhY2U9ZnVuY3Rpb24oKXt2
YXIgQT1hcmd1bWVudHMsRT1udWxsLEMsQixEO2ZvcihDPTA7QzxBLmxlbmd0aDtD
PUMrMSl7RD1BW0NdLnNwbGl0KCIuIik7RT1ZQUhPTztmb3IoQj0oRFswXT09IllB
SE9PIik/MTowO0I8RC5sZW5ndGg7Qj1CKzEpe0VbRFtCXV09RVtEW0JdXXx8e307
RT1FW0RbQl1dO319cmV0dXJuIEU7fTtZQUhPTy5sb2c9ZnVuY3Rpb24oRCxBLEMp
e3ZhciBCPVlBSE9PLndpZGdldC5Mb2dnZXI7aWYoQiYmQi5sb2cpe3JldHVybiBC
LmxvZyhELEEsQyk7fWVsc2V7cmV0dXJuIGZhbHNlO319O1lBSE9PLnJlZ2lzdGVy
PWZ1bmN0aW9uKEEsRSxEKXt2YXIgST1ZQUhPTy5lbnYubW9kdWxlcztpZighSVtB
XSl7SVtBXT17dmVyc2lvbnM6W10sYnVpbGRzOltdfTt9dmFyIEI9SVtBXSxIPUQu
dmVyc2lvbixHPUQuYnVpbGQsRj1ZQUhPTy5lbnYubGlzdGVuZXJzO0IubmFtZT1B
O0IudmVyc2lvbj1IO0IuYnVpbGQ9RztCLnZlcnNpb25zLnB1c2goSCk7Qi5idWls
ZHMucHVzaChHKTtCLm1haW5DbGFzcz1FO2Zvcih2YXIgQz0wO0M8Ri5sZW5ndGg7
Qz1DKzEpe0ZbQ10oQik7fWlmKEUpe0UuVkVSU0lPTj1IO0UuQlVJTEQ9Rzt9ZWxz
ZXtZQUhPTy5sb2coIm1haW5DbGFzcyBpcyB1bmRlZmluZWQgZm9yIG1vZHVsZSAi
K0EsIndhcm4iKTt9fTtZQUhPTy5lbnY9WUFIT08uZW52fHx7bW9kdWxlczpbXSxs
aXN0ZW5lcnM6W119O1lBSE9PLmVudi5nZXRWZXJzaW9uPWZ1bmN0aW9uKEEpe3Jl
dHVybiBZQUhPTy5lbnYubW9kdWxlc1tBXXx8bnVsbDt9O1lBSE9PLmVudi51YT1m
dW5jdGlvbigpe3ZhciBDPXtpZTowLG9wZXJhOjAsZ2Vja286MCx3ZWJraXQ6MCxt
b2JpbGU6bnVsbCxhaXI6MH07dmFyIEI9bmF2aWdhdG9yLnVzZXJBZ2VudCxBO2lm
KCgvS0hUTUwvKS50ZXN0KEIpKXtDLndlYmtpdD0xO31BPUIubWF0Y2goL0FwcGxl
V2ViS2l0XC8oW15cc10qKS8pO2lmKEEmJkFbMV0pe0Mud2Via2l0PXBhcnNlRmxv
YXQoQVsxXSk7aWYoLyBNb2JpbGVcLy8udGVzdChCKSl7Qy5tb2JpbGU9IkFwcGxl
Ijt9ZWxzZXtBPUIubWF0Y2goL05va2lhTlteXC9dKi8pO2lmKEEpe0MubW9iaWxl
PUFbMF07fX1BPUIubWF0Y2goL0Fkb2JlQUlSXC8oW15cc10qKS8pO2lmKEEpe0Mu
YWlyPUFbMF07fX1pZighQy53ZWJraXQpe0E9Qi5tYXRjaCgvT3BlcmFbXHNcL10o
W15cc10qKS8pO2lmKEEmJkFbMV0pe0Mub3BlcmE9cGFyc2VGbG9hdChBWzFdKTtB
PUIubWF0Y2goL09wZXJhIE1pbmlbXjtdKi8pO2lmKEEpe0MubW9iaWxlPUFbMF07
fX1lbHNle0E9Qi5tYXRjaCgvTVNJRVxzKFteO10qKS8pO2lmKEEmJkFbMV0pe0Mu
aWU9cGFyc2VGbG9hdChBWzFdKTt9ZWxzZXtBPUIubWF0Y2goL0dlY2tvXC8oW15c
c10qKS8pO2lmKEEpe0MuZ2Vja289MTtBPUIubWF0Y2goL3J2OihbXlxzXCldKikv
KTtpZihBJiZBWzFdKXtDLmdlY2tvPXBhcnNlRmxvYXQoQVsxXSk7fX19fX1yZXR1
cm4gQzt9KCk7KGZ1bmN0aW9uKCl7WUFIT08ubmFtZXNwYWNlKCJ1dGlsIiwid2lk
Z2V0IiwiZXhhbXBsZSIpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIFlBSE9PX2Nv
bmZpZyl7dmFyIEI9WUFIT09fY29uZmlnLmxpc3RlbmVyLEE9WUFIT08uZW52Lmxp
c3RlbmVycyxEPXRydWUsQztpZihCKXtmb3IoQz0wO0M8QS5sZW5ndGg7Qz1DKzEp
e2lmKEFbQ109PUIpe0Q9ZmFsc2U7YnJlYWs7fX1pZihEKXtBLnB1c2goQik7fX19
fSkoKTtZQUhPTy5sYW5nPVlBSE9PLmxhbmd8fHt9OyhmdW5jdGlvbigpe3ZhciBB
PVlBSE9PLmxhbmcsQz1bInRvU3RyaW5nIiwidmFsdWVPZiJdLEI9e2lzQXJyYXk6
ZnVuY3Rpb24oRCl7aWYoRCl7cmV0dXJuIEEuaXNOdW1iZXIoRC5sZW5ndGgpJiZB
LmlzRnVuY3Rpb24oRC5zcGxpY2UpO31yZXR1cm4gZmFsc2U7fSxpc0Jvb2xlYW46
ZnVuY3Rpb24oRCl7cmV0dXJuIHR5cGVvZiBEPT09ImJvb2xlYW4iO30saXNGdW5j
dGlvbjpmdW5jdGlvbihEKXtyZXR1cm4gdHlwZW9mIEQ9PT0iZnVuY3Rpb24iO30s
aXNOdWxsOmZ1bmN0aW9uKEQpe3JldHVybiBEPT09bnVsbDt9LGlzTnVtYmVyOmZ1
bmN0aW9uKEQpe3JldHVybiB0eXBlb2YgRD09PSJudW1iZXIiJiZpc0Zpbml0ZShE
KTt9LGlzT2JqZWN0OmZ1bmN0aW9uKEQpe3JldHVybihEJiYodHlwZW9mIEQ9PT0i
b2JqZWN0Inx8QS5pc0Z1bmN0aW9uKEQpKSl8fGZhbHNlO30saXNTdHJpbmc6ZnVu
Y3Rpb24oRCl7cmV0dXJuIHR5cGVvZiBEPT09InN0cmluZyI7fSxpc1VuZGVmaW5l
ZDpmdW5jdGlvbihEKXtyZXR1cm4gdHlwZW9mIEQ9PT0idW5kZWZpbmVkIjt9LF9J
RUVudW1GaXg6KFlBSE9PLmVudi51YS5pZSk/ZnVuY3Rpb24oRixFKXtmb3IodmFy
IEQ9MDtEPEMubGVuZ3RoO0Q9RCsxKXt2YXIgSD1DW0RdLEc9RVtIXTtpZihBLmlz
RnVuY3Rpb24oRykmJkchPU9iamVjdC5wcm90b3R5cGVbSF0pe0ZbSF09Rzt9fX06
ZnVuY3Rpb24oKXt9LGV4dGVuZDpmdW5jdGlvbihILEksRyl7aWYoIUl8fCFIKXt0
aHJvdyBuZXcgRXJyb3IoImV4dGVuZCBmYWlsZWQsIHBsZWFzZSBjaGVjayB0aGF0
ICIrImFsbCBkZXBlbmRlbmNpZXMgYXJlIGluY2x1ZGVkLiIpO312YXIgRT1mdW5j
dGlvbigpe307RS5wcm90b3R5cGU9SS5wcm90b3R5cGU7SC5wcm90b3R5cGU9bmV3
IEUoKTtILnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1IO0guc3VwZXJjbGFzcz1JLnBy
b3RvdHlwZTtpZihJLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj09T2JqZWN0LnByb3Rv
dHlwZS5jb25zdHJ1Y3Rvcil7SS5wcm90b3R5cGUuY29uc3RydWN0b3I9STt9aWYo
Ryl7Zm9yKHZhciBEIGluIEcpe2lmKEEuaGFzT3duUHJvcGVydHkoRyxEKSl7SC5w
cm90b3R5cGVbRF09R1tEXTt9fUEuX0lFRW51bUZpeChILnByb3RvdHlwZSxHKTt9
fSxhdWdtZW50T2JqZWN0OmZ1bmN0aW9uKEgsRyl7aWYoIUd8fCFIKXt0aHJvdyBu
ZXcgRXJyb3IoIkFic29yYiBmYWlsZWQsIHZlcmlmeSBkZXBlbmRlbmNpZXMuIik7
fXZhciBEPWFyZ3VtZW50cyxGLEksRT1EWzJdO2lmKEUmJkUhPT10cnVlKXtmb3Io
Rj0yO0Y8RC5sZW5ndGg7Rj1GKzEpe0hbRFtGXV09R1tEW0ZdXTt9fWVsc2V7Zm9y
KEkgaW4gRyl7aWYoRXx8IShJIGluIEgpKXtIW0ldPUdbSV07fX1BLl9JRUVudW1G
aXgoSCxHKTt9fSxhdWdtZW50UHJvdG86ZnVuY3Rpb24oRyxGKXtpZighRnx8IUcp
e3Rocm93IG5ldyBFcnJvcigiQXVnbWVudCBmYWlsZWQsIHZlcmlmeSBkZXBlbmRl
bmNpZXMuIik7fXZhciBEPVtHLnByb3RvdHlwZSxGLnByb3RvdHlwZV07Zm9yKHZh
ciBFPTI7RTxhcmd1bWVudHMubGVuZ3RoO0U9RSsxKXtELnB1c2goYXJndW1lbnRz
W0VdKTt9QS5hdWdtZW50T2JqZWN0LmFwcGx5KHRoaXMsRCk7fSxkdW1wOmZ1bmN0
aW9uKEQsSSl7dmFyIEYsSCxLPVtdLEw9InsuLi59IixFPSJmKCl7Li4ufSIsSj0i
LCAiLEc9IiA9PiAiO2lmKCFBLmlzT2JqZWN0KEQpKXtyZXR1cm4gRCsiIjt9ZWxz
ZXtpZihEIGluc3RhbmNlb2YgRGF0ZXx8KCJub2RlVHlwZSIgaW4gRCYmInRhZ05h
bWUiIGluIEQpKXtyZXR1cm4gRDt9ZWxzZXtpZihBLmlzRnVuY3Rpb24oRCkpe3Jl
dHVybiBFO319fUk9KEEuaXNOdW1iZXIoSSkpP0k6MztpZihBLmlzQXJyYXkoRCkp
e0sucHVzaCgiWyIpO2ZvcihGPTAsSD1ELmxlbmd0aDtGPEg7Rj1GKzEpe2lmKEEu
aXNPYmplY3QoRFtGXSkpe0sucHVzaCgoST4wKT9BLmR1bXAoRFtGXSxJLTEpOkwp
O31lbHNle0sucHVzaChEW0ZdKTt9Sy5wdXNoKEopO31pZihLLmxlbmd0aD4xKXtL
LnBvcCgpO31LLnB1c2goIl0iKTt9ZWxzZXtLLnB1c2goInsiKTtmb3IoRiBpbiBE
KXtpZihBLmhhc093blByb3BlcnR5KEQsRikpe0sucHVzaChGK0cpO2lmKEEuaXNP
YmplY3QoRFtGXSkpe0sucHVzaCgoST4wKT9BLmR1bXAoRFtGXSxJLTEpOkwpO31l
bHNle0sucHVzaChEW0ZdKTt9Sy5wdXNoKEopO319aWYoSy5sZW5ndGg+MSl7Sy5w
b3AoKTt9Sy5wdXNoKCJ9Iik7fXJldHVybiBLLmpvaW4oIiIpO30sc3Vic3RpdHV0
ZTpmdW5jdGlvbihTLEUsTCl7dmFyIEksSCxHLE8sUCxSLE49W10sRixKPSJkdW1w
IixNPSIgIixEPSJ7IixRPSJ9Ijtmb3IoOzspe0k9Uy5sYXN0SW5kZXhPZihEKTtp
ZihJPDApe2JyZWFrO31IPVMuaW5kZXhPZihRLEkpO2lmKEkrMT49SCl7YnJlYWs7
fUY9Uy5zdWJzdHJpbmcoSSsxLEgpO089RjtSPW51bGw7Rz1PLmluZGV4T2YoTSk7
aWYoRz4tMSl7Uj1PLnN1YnN0cmluZyhHKzEpO089Ty5zdWJzdHJpbmcoMCxHKTt9
UD1FW09dO2lmKEwpe1A9TChPLFAsUik7fWlmKEEuaXNPYmplY3QoUCkpe2lmKEEu
aXNBcnJheShQKSl7UD1BLmR1bXAoUCxwYXJzZUludChSLDEwKSk7fWVsc2V7Uj1S
fHwiIjt2YXIgSz1SLmluZGV4T2YoSik7aWYoSz4tMSl7Uj1SLnN1YnN0cmluZyg0
KTt9aWYoUC50b1N0cmluZz09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmd8fEs+
LTEpe1A9QS5kdW1wKFAscGFyc2VJbnQoUiwxMCkpO31lbHNle1A9UC50b1N0cmlu
ZygpO319fWVsc2V7aWYoIUEuaXNTdHJpbmcoUCkmJiFBLmlzTnVtYmVyKFApKXtQ
PSJ+LSIrTi5sZW5ndGgrIi1+IjtOW04ubGVuZ3RoXT1GO319Uz1TLnN1YnN0cmlu
ZygwLEkpK1ArUy5zdWJzdHJpbmcoSCsxKTt9Zm9yKEk9Ti5sZW5ndGgtMTtJPj0w
O0k9SS0xKXtTPVMucmVwbGFjZShuZXcgUmVnRXhwKCJ+LSIrSSsiLX4iKSwieyIr
TltJXSsifSIsImciKTt9cmV0dXJuIFM7fSx0cmltOmZ1bmN0aW9uKEQpe3RyeXty
ZXR1cm4gRC5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIik7fWNhdGNoKEUpe3JldHVy
biBEO319LG1lcmdlOmZ1bmN0aW9uKCl7dmFyIEc9e30sRT1hcmd1bWVudHM7Zm9y
KHZhciBGPTAsRD1FLmxlbmd0aDtGPEQ7Rj1GKzEpe0EuYXVnbWVudE9iamVjdChH
LEVbRl0sdHJ1ZSk7fXJldHVybiBHO30sbGF0ZXI6ZnVuY3Rpb24oSyxFLEwsRyxI
KXtLPUt8fDA7RT1FfHx7fTt2YXIgRj1MLEo9RyxJLEQ7aWYoQS5pc1N0cmluZyhM
KSl7Rj1FW0xdO31pZighRil7dGhyb3cgbmV3IFR5cGVFcnJvcigibWV0aG9kIHVu
ZGVmaW5lZCIpO31pZighQS5pc0FycmF5KEopKXtKPVtHXTt9ST1mdW5jdGlvbigp
e0YuYXBwbHkoRSxKKTt9O0Q9KEgpP3NldEludGVydmFsKEksSyk6c2V0VGltZW91
dChJLEspO3JldHVybntpbnRlcnZhbDpILGNhbmNlbDpmdW5jdGlvbigpe2lmKHRo
aXMuaW50ZXJ2YWwpe2NsZWFySW50ZXJ2YWwoRCk7fWVsc2V7Y2xlYXJUaW1lb3V0
KEQpO319fTt9LGlzVmFsdWU6ZnVuY3Rpb24oRCl7cmV0dXJuKEEuaXNPYmplY3Qo
RCl8fEEuaXNTdHJpbmcoRCl8fEEuaXNOdW1iZXIoRCl8fEEuaXNCb29sZWFuKEQp
KTt9fTtBLmhhc093blByb3BlcnR5PShPYmplY3QucHJvdG90eXBlLmhhc093blBy
b3BlcnR5KT9mdW5jdGlvbihELEUpe3JldHVybiBEJiZELmhhc093blByb3BlcnR5
KEUpO306ZnVuY3Rpb24oRCxFKXtyZXR1cm4gIUEuaXNVbmRlZmluZWQoRFtFXSkm
JkQuY29uc3RydWN0b3IucHJvdG90eXBlW0VdIT09RFtFXTt9O0IuYXVnbWVudE9i
amVjdChBLEIsdHJ1ZSk7WUFIT08udXRpbC5MYW5nPUE7QS5hdWdtZW50PUEuYXVn
bWVudFByb3RvO1lBSE9PLmF1Z21lbnQ9QS5hdWdtZW50UHJvdG87WUFIT08uZXh0
ZW5kPUEuZXh0ZW5kO30pKCk7WUFIT08ucmVnaXN0ZXIoInlhaG9vIixZQUhPTyx7
dmVyc2lvbjoiMi42LjAiLGJ1aWxkOiIxMzIxIn0pOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=json-min.js
Content-Type: application/javascript; charset=ISO-8859-1; name=json-min.js
Content-Location: http://business.timesonline.co.uk/tol/js/json-min.js
Content-Transfer-Encoding: Base64
LyoNCkNvcHlyaWdodCAoYykgMjAwOCwgWWFob28hIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4NCkNvZGUgbGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlOg0K
aHR0cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0DQp2ZXJz
aW9uOiAyLjYuMA0KKi8NCllBSE9PLmxhbmcuSlNPTj0oZnVuY3Rpb24oKXt2YXIg
bD1ZQUhPTy5sYW5nLF9VTklDT0RFX0VYQ0VQVElPTlM9L1tcdTAwMDBcdTAwYWRc
dTA2MDAtXHUwNjA0XHUwNzBmXHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAy
OC1cdTIwMmZcdTIwNjAtXHUyMDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vZyxfRVND
QVBFUz0vXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLF9WQUxV
RVM9LyJbXiJcXFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCop
Pyg/OltlRV1bK1wtXT9cZCspPy9nLF9CUkFDS0VUUz0vKD86Xnw6fCwpKD86XHMq
XFspKy9nLF9JTlZBTElEPS9eW1xdLDp7fVxzXSokLyxfU1BFQ0lBTF9DSEFSUz0v
W1xcXCJceDAwLVx4MWZceDdmLVx4OWZcdTAwYWRcdTA2MDAtXHUwNjA0XHUwNzBm
XHUxN2I0XHUxN2I1XHUyMDBjLVx1MjAwZlx1MjAyOC1cdTIwMmZcdTIwNjAtXHUy
MDZmXHVmZWZmXHVmZmYwLVx1ZmZmZl0vZyxfQ0hBUlM9eyJcYiI6IlxcYiIsIlx0
IjoiXFx0IiwiXG4iOiJcXG4iLCJcZiI6IlxcZiIsIlxyIjoiXFxyIiwnIic6J1xc
IicsIlxcIjoiXFxcXCJ9O2Z1bmN0aW9uIF9yZXZpdmUoZGF0YSxyZXZpdmVyKXt2
YXIgd2Fsaz1mdW5jdGlvbihvLGtleSl7dmFyIGssdix2YWx1ZT1vW2tleV07aWYo
dmFsdWUmJnR5cGVvZiB2YWx1ZT09PSJvYmplY3QiKXtmb3IoayBpbiB2YWx1ZSl7
aWYobC5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSxrKSl7dj13YWxrKHZhbHVlLGspO2lm
KHY9PT11bmRlZmluZWQpe2RlbGV0ZSB2YWx1ZVtrXTt9ZWxzZXt2YWx1ZVtrXT12
O319fX1yZXR1cm4gcmV2aXZlci5jYWxsKG8sa2V5LHZhbHVlKTt9O3JldHVybiB0
eXBlb2YgcmV2aXZlcj09PSJmdW5jdGlvbiI/d2Fsayh7IiI6ZGF0YX0sIiIpOmRh
dGE7fWZ1bmN0aW9uIF9jaGFyKGMpe2lmKCFfQ0hBUlNbY10pe19DSEFSU1tjXT0i
XFx1IisoIjAwMDAiKygrKGMuY2hhckNvZGVBdCgwKSkpLnRvU3RyaW5nKDE2KSku
c2xpY2UoLTQpO31yZXR1cm4gX0NIQVJTW2NdO31mdW5jdGlvbiBfcHJlcGFyZShz
KXtyZXR1cm4gcy5yZXBsYWNlKF9VTklDT0RFX0VYQ0VQVElPTlMsX2NoYXIpO31m
dW5jdGlvbiBfaXNWYWxpZChzdHIpe3JldHVybiBsLmlzU3RyaW5nKHN0cikmJl9J
TlZBTElELnRlc3Qoc3RyLnJlcGxhY2UoX0VTQ0FQRVMsIkAiKS5yZXBsYWNlKF9W
QUxVRVMsIl0iKS5yZXBsYWNlKF9CUkFDS0VUUywiIikpO31mdW5jdGlvbiBfc3Ry
aW5nKHMpe3JldHVybiciJytzLnJlcGxhY2UoX1NQRUNJQUxfQ0hBUlMsX2NoYXIp
KyciJzt9ZnVuY3Rpb24gX3N0cmluZ2lmeShoLGtleSxkLHcscHN0YWNrKXt2YXIg
bz10eXBlb2Ygdz09PSJmdW5jdGlvbiI/dy5jYWxsKGgsa2V5LGhba2V5XSk6aFtr
ZXldLGksbGVuLGosayx2LGlzQXJyYXksYTtpZihvIGluc3RhbmNlb2YgRGF0ZSl7
bz1sLkpTT04uZGF0ZVRvU3RyaW5nKG8pO31lbHNle2lmKG8gaW5zdGFuY2VvZiBT
dHJpbmd8fG8gaW5zdGFuY2VvZiBCb29sZWFufHxvIGluc3RhbmNlb2YgTnVtYmVy
KXtvPW8udmFsdWVPZigpO319c3dpdGNoKHR5cGVvZiBvKXtjYXNlInN0cmluZyI6
cmV0dXJuIF9zdHJpbmcobyk7Y2FzZSJudW1iZXIiOnJldHVybiBpc0Zpbml0ZShv
KT9TdHJpbmcobyk6Im51bGwiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIFN0cmluZyhv
KTtjYXNlIm9iamVjdCI6aWYobz09PW51bGwpe3JldHVybiJudWxsIjt9Zm9yKGk9
cHN0YWNrLmxlbmd0aC0xO2k+PTA7LS1pKXtpZihwc3RhY2tbaV09PT1vKXtyZXR1
cm4ibnVsbCI7fX1wc3RhY2tbcHN0YWNrLmxlbmd0aF09bzthPVtdO2lzQXJyYXk9
bC5pc0FycmF5KG8pO2lmKGQ+MCl7aWYoaXNBcnJheSl7Zm9yKGk9by5sZW5ndGgt
MTtpPj0wOy0taSl7YVtpXT1fc3RyaW5naWZ5KG8saSxkLTEsdyxwc3RhY2spfHwi
bnVsbCI7fX1lbHNle2o9MDtpZihsLmlzQXJyYXkodykpe2ZvcihpPTAsbGVuPXcu
bGVuZ3RoO2k8bGVuOysraSl7az13W2ldO3Y9X3N0cmluZ2lmeShvLGssZC0xLHcs
cHN0YWNrKTtpZih2KXthW2orK109X3N0cmluZyhrKSsiOiIrdjt9fX1lbHNle2Zv
cihrIGluIG8pe2lmKHR5cGVvZiBrPT09InN0cmluZyImJmwuaGFzT3duUHJvcGVy
dHkobyxrKSl7dj1fc3RyaW5naWZ5KG8sayxkLTEsdyxwc3RhY2spO2lmKHYpe2Fb
aisrXT1fc3RyaW5nKGspKyI6Iit2O319fX1hLnNvcnQoKTt9fXBzdGFjay5wb3Ao
KTtyZXR1cm4gaXNBcnJheT8iWyIrYS5qb2luKCIsIikrIl0iOiJ7IithLmpvaW4o
IiwiKSsifSI7fXJldHVybiB1bmRlZmluZWQ7fXJldHVybntpc1ZhbGlkOmZ1bmN0
aW9uKHMpe3JldHVybiBfaXNWYWxpZChfcHJlcGFyZShzKSk7fSxwYXJzZTpmdW5j
dGlvbihzLHJldml2ZXIpe3M9X3ByZXBhcmUocyk7aWYoX2lzVmFsaWQocykpe3Jl
dHVybiBfcmV2aXZlKGV2YWwoIigiK3MrIikiKSxyZXZpdmVyKTt9dGhyb3cgbmV3
IFN5bnRheEVycm9yKCJwYXJzZUpTT04iKTt9LHN0cmluZ2lmeTpmdW5jdGlvbihv
LHcsZCl7aWYobyE9PXVuZGVmaW5lZCl7aWYobC5pc0FycmF5KHcpKXt3PShmdW5j
dGlvbihhKXt2YXIgdW5pcT1bXSxtYXA9e30sdixpLGosbGVuO2ZvcihpPTAsaj0w
LGxlbj1hLmxlbmd0aDtpPGxlbjsrK2kpe3Y9YVtpXTtpZih0eXBlb2Ygdj09PSJz
dHJpbmciJiZtYXBbdl09PT11bmRlZmluZWQpe3VuaXFbKG1hcFt2XT1qKyspXT12
O319cmV0dXJuIHVuaXE7fSkodyk7fWQ9ZD49MD9kOjEvMDtyZXR1cm4gX3N0cmlu
Z2lmeSh7IiI6b30sIiIsZCx3LFtdKTt9cmV0dXJuIHVuZGVmaW5lZDt9LGRhdGVU
b1N0cmluZzpmdW5jdGlvbihkKXtmdW5jdGlvbiBfemVyb1BhZCh2KXtyZXR1cm4g
djwxMD8iMCIrdjp2O31yZXR1cm4gZC5nZXRVVENGdWxsWWVhcigpKyItIitfemVy
b1BhZChkLmdldFVUQ01vbnRoKCkrMSkrIi0iK196ZXJvUGFkKGQuZ2V0VVRDRGF0
ZSgpKSsiVCIrX3plcm9QYWQoZC5nZXRVVENIb3VycygpKSsiOiIrX3plcm9QYWQo
ZC5nZXRVVENNaW51dGVzKCkpKyI6IitfemVyb1BhZChkLmdldFVUQ1NlY29uZHMo
KSkrIloiO30sc3RyaW5nVG9EYXRlOmZ1bmN0aW9uKHN0cil7aWYoL14oXGR7NH0p
LShcZHsyfSktKFxkezJ9KVQoXGR7Mn0pOihcZHsyfSk6KFxkezJ9KVokLy50ZXN0
KHN0cikpe3ZhciBkPW5ldyBEYXRlKCk7ZC5zZXRVVENGdWxsWWVhcihSZWdFeHAu
JDEsKFJlZ0V4cC4kMnwwKS0xLFJlZ0V4cC4kMyk7ZC5zZXRVVENIb3VycyhSZWdF
eHAuJDQsUmVnRXhwLiQ1LFJlZ0V4cC4kNik7cmV0dXJuIGQ7fXJldHVybiBzdHI7
fX07fSkoKTtZQUhPTy5yZWdpc3RlcigianNvbiIsWUFIT08ubGFuZy5KU09OLHt2
ZXJzaW9uOiIyLjYuMCIsYnVpbGQ6IjEzMjEifSk7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=pork.iframe.js
Content-Type: application/javascript; charset=ISO-8859-1; name=pork.iframe.js
Content-Location: http://business.timesonline.co.uk/tol/js/pork.iframe.js
Content-Transfer-Encoding: Base64
ZG9jdW1lbnQuaWZyYW1lTG9hZGVycyA9IHt9Ow0KDQppZnJhbWUgPSBmdW5jdGlv
bigpIHsgdGhpcy5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH07
DQppZnJhbWUucHJvdG90eXBlID0gew0KCWluaXRpYWxpemU6IGZ1bmN0aW9uKGZv
cm0sIG9wdGlvbnMsY291bnQpew0KCQlpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7
fTsNCgkJdGhpcy5mb3JtID0gZm9ybTsNCgkJdGhpcy51bmlxdWVJZCA9IGNvdW50
Ow0KCQlkb2N1bWVudC5pZnJhbWVMb2FkZXJzW3RoaXMudW5pcXVlSWRdID0gdGhp
czsNCgkJdmFyIHVybCA9IGZvcm0uYWN0aW9uICsgJz9qc29uUmVxdWVzdD0nICsg
ZXNjYXBlKGZvcm0uZWxlbWVudHNbMF0udmFsdWUpOyAvLyBjaGFuZ2UgZm9ybSBz
dWJtaXQgdG8gc3RyaW5nOyBzaW1pbGFyIHRvIGNoYW5naW5nIGZvcm0gbWV0aG9k
IHRvIGdldA0KCQl2YXIgZmlyc3RTbGFzaCA9IHVybC5pbmRleE9mKCIvIiwgdXJs
LmluZGV4T2YoIi8vIikrMik7DQoJCXRoaXMudHJhbnNwb3J0ID0gdGhpcy5nZXRU
cmFuc3BvcnQoKGZpcnN0U2xhc2ggPiAwKSA/IHVybC5zdWJzdHJpbmcoMCwgZmly
c3RTbGFzaCkgOiAiIik7DQoJCXRoaXMub25Db21wbGV0ZSA9IG9wdGlvbnMub25D
b21wbGV0ZSB8fCBudWxsOw0KCQl0aGlzLnVwZGF0ZSA9IHRoaXMuJChvcHRpb25z
LnVwZGF0ZSkgfHwgbnVsbDsNCgkJdGhpcy51cGRhdGVNdWx0aXBsZSA9IG9wdGlv
bnMubXVsdGlwbGUgfHwgZmFsc2U7DQoJCWlmICgoKG5hdmlnYXRvci52ZW5kb3Ig
JiYgKG5hdmlnYXRvci52ZW5kb3IuaW5kZXhPZignQXBwbGUnKSkgPiAtMSkgfHwg
d2luZG93Lm9wZXJhKSAvLyBzYWZhcmkgYW5kIG9wZXJhIG9ubHkNCiAgICAgJiYg
KC9cL0RpcmVjdFwvUHJvY2VzcyhcP3wkKS8udGVzdChmb3JtLmFjdGlvbikpICYm
IGZvcm0uZWxlbWVudHMgJiYgKGZvcm0uZWxlbWVudHMubGVuZ3RoID09IDEpKSB7
IC8vIG9ubHkgY2hhbmdlIGNhbGxzIHRoYXQgY29udGFpbiAxIGVsZW1lbnQgYW5k
IHdob3NlIGFjdGlvbnMgZW5kIHdpdGggL0RpcmVjdC9Qcm9jZXNzDQoJCQl2YXIg
ZG9jID0gdGhpcy50cmFuc3BvcnQuY29udGVudFdpbmRvdyB8fCB0aGlzLnRyYW5z
cG9ydC5jb250ZW50RG9jdW1lbnQ7IC8vIHJldHJpZXZlIHRoZSBkb2N1bWVudCBv
ZiB0aGUgaWZyYW1lDQoJCQlpZiAodXJsLmxlbmd0aCA8IDgwMDAwKSB7IC8vIGFs
bG93IGZhbGxiYWNrIHRvIG5vcm1hbCBzdWJtaXNzaW9uICg4MGsgaXMgdGhlIG1h
eCBsZW5ndGggZm9yIHVybHMgaW4gc2FmYXJpKQ0KCQkJCWlmIChkb2MuZG9jdW1l
bnQpIC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBkb2N1bWVudCBhbmQgbm90IHRo
ZSB3aW5kb3cNCgkJCQkJZG9jID0gZG9jLmRvY3VtZW50Ow0KCQkJCQ0KCQkJCXRy
eSB7IC8vIGlmIHRoaXMgZmFpbHMsIGZhbGxiYWNrIHRvIG5vcm1hbCBzdWJtaXNz
aW9uDQoJCQkJCWRvYy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7IC8vIHVzZSBsb2Nh
dGlvbi5yZXBsYWNlIHRvIG92ZXJ3cml0ZSBlbGVtZW50cyBpbiBoaXN0b3J5IA0K
CQkJCQlyZXR1cm47DQoJCQkJfSBjYXRjaCAoZSkgeyB9Ow0KCQkJfQ0KCQl9DQoJ
CWZvcm0udGFyZ2V0PSAnZnJhbWVfJyt0aGlzLnVuaXF1ZUlkOw0KCQlmb3JtLnNl
dEF0dHJpYnV0ZSgidGFyZ2V0IiwgJ2ZyYW1lXycrdGhpcy51bmlxdWVJZCk7IC8v
IGluIGNhc2UgdGhlIG90aGVyIG9uZSBmYWlscy4NCgkJZm9ybS5zdWJtaXQoKTsN
Cgl9LA0KDQoJb25TdGF0ZUNoYW5nZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMudHJh
bnNwb3J0ID0gdGhpcy4kKCdmcmFtZV8nK3RoaXMudW5pcXVlSWQpOw0KCQl0cnkg
ewkgdmFyIGRvYyA9IHRoaXMudHJhbnNwb3J0LmNvbnRlbnREb2N1bWVudC5ib2R5
LmlubmVySFRNTDsgdGhpcy50cmFuc3BvcnQuY29udGVudERvY3VtZW50LmNsb3Nl
KCk7IH0JLy8gRm9yIE5TNg0KCQljYXRjaCAoZSl7IA0KCQkJdHJ5eyB2YXIgZG9j
ID0gdGhpcy50cmFuc3BvcnQuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5Lmlu
bmVySFRNTDsgdGhpcy50cmFuc3BvcnQuY29udGVudFdpbmRvdy5kb2N1bWVudC5j
bG9zZSgpOyB9IC8vIEZvciBJRTUuNSBhbmQgSUU2DQoJCQkgY2F0Y2ggKGUpew0K
CQkJCSB0cnkgeyB2YXIgZG9jID0gdGhpcy50cmFuc3BvcnQuZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUw7IHRoaXMudHJhbnNwb3J0LmRvY3VtZW50LmJvZHkuY2xvc2Uo
KTsgfSAvLyBmb3IgSUU1DQoJCQkJCWNhdGNoIChlKSB7DQoJCQkJCQl0cnkJeyB2
YXIgZG9jID0gd2luZG93LmZyYW1lc1snZnJhbWVfJyt0aGlzLnVuaXF1ZUlkXS5k
b2N1bWVudC5ib2R5LmlubmVyVGV4dDsgfSAvLyBmb3IgcmVhbGx5IG5hc3R5IGJy
b3dzZXJzDQoJCQkJCQljYXRjaCAoZSkgeyAvL2FsZXJ0KGUpOyANCgkJCQkJCX0g
Ly8gZm9yZ2V0IGl0Lg0KCQkJCSB9DQoJCQl9DQoJCX0NCgkJdGhpcy50cmFuc3Bv
cnQucmVzcG9uc2VUZXh0ID0gZG9jOw0KCQlpZiAodGhpcy5vbkNvbXBsZXRlKSBz
ZXRUaW1lb3V0KHRoaXMuYmluZChmdW5jdGlvbigpe3RoaXMub25Db21wbGV0ZSh0
aGlzLnRyYW5zcG9ydCk7fSwgdGhpcyksIDEwKTsNCgkJaWYgKHRoaXMudXBkYXRl
KSBzZXRUaW1lb3V0KHRoaXMuYmluZChmdW5jdGlvbigpe3RoaXMudXBkYXRlLmlu
bmVySFRNTCA9IHRoaXMudHJhbnNwb3J0LnJlc3BvbnNlVGV4dDt9LCB0aGlzKSwg
MTApOw0KCQlpZiAodGhpcy51cGRhdGVNdWx0aXBsZSl7IHNldFRpbWVvdXQodGhp
cy5iaW5kKGZ1bmN0aW9uKCl7IC8vIEpTT04gc3VwcG9ydCENCgkJCQl0cnkJeyB2
YXIgaGFzc2NyaXB0ID0gZmFsc2U7IGV2YWwoInZhciBpbnB1dE9iamVjdCA9ICIr
dGhpcy50cmFuc3BvcnQucmVzcG9uc2VUZXh0KTsJLy8gd2UncmUgZXhwZWN0aW5n
IGEgSlNPTiBvYmplY3QsIGV2YWwgaXQgdG8gaW5wdXRPYmplY3QNCgkJCQkJZm9y
ICh2YXIgaSBpbiBpbnB1dE9iamVjdCkgeyBpZiAoaSA9PSAnc2NyaXB0JykgeyBo
YXNzY3JpcHQgPSB0cnVlOyB9IC8vIGNoZWNrIGlmIHdlIHBhc3NlZCBzb21lIGph
dmFzY3JpcHQgYWxvbmcgdG9vDQoJCQkJCQllbHNlIHtpZiAoIGVsbSA9IHRoaXMu
JChpKSkgeyBlbG0uaW5uZXJIVE1MID0gaW5wdXRPYmplY3RbaV07IH0gZWxzZSB7
IA0KCQkJCQkJLy9hbGVydCgiZWxlbWVudCAiK2krIiBub3QgZm91bmQhIik7IA0K
CQkJCQkJfSB9IC8vIGlmIGl0J3Mgbm90IHNjcmlwdCwgdXBkYXRlIHRoZSBjb3Jy
ZXNwb25kaW5nIGRpdg0KCQkJCQl9IGlmIChoYXNzY3JpcHQpIGV2YWwoaW5wdXRP
YmplY3RbJ3NjcmlwdCddKTsgLy8gc29tZSBvbi10aGUtZmx5LWphdmFzY3JpcHQg
ZXhjaGFuZ2luZyBzdXBwb3J0IHRvbw0KCQkJCX0gY2F0Y2ggKGUpIHsgLy9hbGVy
dCgnVGhlcmUgd2FzIGFuIGVycm9yIHByb2Nlc3Npbmc6ICcrdGhpcy50cmFuc3Bv
cnQucmVzcG9uc2VUZXh0KTsgDQoJCQkJfSAvLyBpbiBjYXNlIG9mIGFuIGVycm9y
CQkJCQkNCgkJCX0sIHRoaXMpLCAxMCk7DQoJCX0JDQoJfSwNCg0KCWdldFRyYW5z
cG9ydDogZnVuY3Rpb24oYmFzZVVybCkgew0KCQl2YXIgZGl2RWxtID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnRElWJyksIGZyYW1lOw0KCQlkaXZFbG0uc2V0QXR0
cmlidXRlKCdzdHlsZScsICd3aWR0aDogMDsgaGVpZ2h0OiAwOyBtYXJnaW46IDA7
IHBhZGRpbmc6IDA7IHZpc2liaWxpdHk6IGhpZGRlbjsgb3ZlcmZsb3c6IGhpZGRl
bicpOw0KCQlpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFJykg
PiAwICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignT3BlcmEnKSA9PSAt
MSkgey8vIHN3aXRjaCB0byB0aGUgY3JhcHB5IHNvbHV0aW9uIGZvciBJRQ0KCQkJ
ZGl2RWxtLnN0eWxlLndpZHRoID0gMDsNCgkJCWRpdkVsbS5zdHlsZS5oZWlnaHQg
PSAwOw0KCQkJZGl2RWxtLnN0eWxlLm1hcmdpbiA9IDA7DQoJCQlkaXZFbG0uc3R5
bGUucGFkZGluZyA9IDA7DQoJCQlkaXZFbG0uc3R5bGUudmlzaWJpbGl0eSA9ICdo
aWRkZW4nOw0KCQkJZGl2RWxtLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7DQoJ
CQlkaXZFbG0uaW5uZXJIVE1MID0gJzxpZnJhbWUgbmFtZT1cImZyYW1lXycrdGhp
cy51bmlxdWVJZCsnXCIgaWQ9XCJmcmFtZV8nK3RoaXMudW5pcXVlSWQrJ1wiIHNy
Yz1cIicgKyBiYXNlVXJsICsgJy92ZXIxLjAvQ29udGVudC9ibGFuay5odG1sXCIg
b25sb2FkPVwic2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmlmcmFtZUxv
YWRlcnNbJyt0aGlzLnVuaXF1ZUlkKyddLm9uU3RhdGVDaGFuZ2UoKX0sMjApOyI+
PC9pZnJhbWU+JzsNCgkJfSBlbHNlIHsNCgkJCWZyYW1lID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiaWZyYW1lIik7DQoJCQlmcmFtZS5zZXRBdHRyaWJ1dGUoIm5h
bWUiLCAiZnJhbWVfIit0aGlzLnVuaXF1ZUlkKTsNCgkJCWZyYW1lLnNldEF0dHJp
YnV0ZSgiaWQiLCAiZnJhbWVfIit0aGlzLnVuaXF1ZUlkKTsNCgkJCWZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0aGlzLmJpbmQoZnVuY3Rpb24oKXsgdGhp
cy5vblN0YXRlQ2hhbmdlKCk7IH0sIHRoaXMpLCBmYWxzZSk7DQoJCQlkaXZFbG0u
YXBwZW5kQ2hpbGQoZnJhbWUpOw0KCQl9DQogICAgKFJlcXVlc3RCYXRjaC5jb250
YWluZXIgfHwgZG9jdW1lbnQuYm9keSkuYXBwZW5kQ2hpbGQoZGl2RWxtKTsNCgkJ
cmV0dXJuIGZyYW1lOw0KCX0sDQogIA0KICBiaW5kOiBmdW5jdGlvbihmdW5jdGlv
bk9iamVjdCwgcmVmZXJlbmNlT2JqZWN0KSB7DQogICAgcmV0dXJuIGZ1bmN0aW9u
KCkgew0KICAgICAgcmV0dXJuIGZ1bmN0aW9uT2JqZWN0LmFwcGx5KHJlZmVyZW5j
ZU9iamVjdCwgYXJndW1lbnRzKTsNCiAgICB9DQogIH0sDQogIA0KICAnJCc6IGZ1
bmN0aW9uKGlkKSB7DQogICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGlkKTsNCiAgfQ0KfTsNCg==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=requestbatch.js
Content-Type: application/javascript; charset=ISO-8859-1; name=requestbatch.js
Content-Location: http://business.timesonline.co.uk/tol/js/requestbatch.js
Content-Transfer-Encoding: Base64
aWYgKHR5cGVvZihSZXF1ZXN0QmF0Y2gpID09PSAndW5kZWZpbmVkJykgew0KICAg
IFJlcXVlc3RCYXRjaCA9IGZ1bmN0aW9uKCkgew0KICAgICAgdGhpcy5pbml0aWFs
aXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7DQogICAgfTsNCiAgICAvLyBmb3Ig
dW5pcXVlIGlkDQogICAgdmFyIGNvdW50ZXIgPSAwOw0KDQogICAgLy8gaG93IG1h
bnkgcmVxdWVzdHMgYXJlIHN0aWxsIHBlbmRpbmc/DQogICAgdmFyIHBlbmRpbmdS
ZXF1ZXN0cyA9IDA7DQoNCiAgICBmdW5jdGlvbiBEaXJlY3RBY2Nlc3NFcnJvckhh
bmRsZXIobXNnLGV4KXsNCiAgICAvL2FsZXJ0KG1zZyk7DQogICAgfQ0KICAgIChm
dW5jdGlvbigpIHsNCg0KICAgICAgICBmdW5jdGlvbiBidWlsZEpzb25wVXJsKHNl
cnZlclVybCwganNvblN0cmluZywgY2FsbGJhY2tOYW1lKSB7DQogICAgICAgICAg
ICB2YXIgc2VwYXJhdG9yID0gc2VydmVyVXJsLmluZGV4T2YoJz8nKSA9PSAtMSA/
ICI/IiA6ICImIjsNCiAgICAgICAgICAgIC8vIHVzZSBKc29ucCBlbmRwb2ludCBp
bnN0ZWFkIG9mIFByb2Nlc3MNCiAgICAgICAgICAgIHNlcnZlclVybCA9IHNlcnZl
clVybC5yZXBsYWNlKCcvUHJvY2VzcycsICcvSnNvbnAnKTsNCiAgICAgICAgICAg
IHJldHVybiBzZXJ2ZXJVcmwgKyBzZXBhcmF0b3IgKyAicj0iICsgZW5jb2RlVVJJ
Q29tcG9uZW50KGpzb25TdHJpbmcpICsgJyZjYj0nICsgY2FsbGJhY2tOYW1lOw0K
ICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXNlSnNvbnAoc2VydmVyVXJs
LCBqc29uU3RyaW5nLCBjYWxsYmFja05hbWUpIHsNCiAgICAgICAgICAgIC8vIHVz
ZSBKc29ucCBlbmRwb2ludCBpbnN0ZWFkIG9mIFByb2Nlc3MNCiAgICAgICAgICAg
IHNlcnZlclVybCA9IGJ1aWxkSnNvbnBVcmwoc2VydmVyVXJsLCBqc29uU3RyaW5n
LCBjYWxsYmFja05hbWUpOw0KICAgICAgICAgICAgdmFyIGlzSUUgPSAvKkBjY19v
biFAKi9mYWxzZTsNCiAgICAgICAgICAgIGlmICgoaXNJRSAmJiBzZXJ2ZXJVcmwu
bGVuZ3RoIDwgMjA4MykgfHwgKCFpc0lFICYmIHNlcnZlclVybC5sZW5ndGggPCA0
MDAwKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJVcmw7DQogICAg
ICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0N
Cg0KICAgICAgICAvLyB0aGUgY29yZSBvYmplY3QgdG8gcmVxdWVzdCBiYXRjaGVz
DQogICAgICAgIFJlcXVlc3RCYXRjaC5wcm90b3R5cGUgPSB7DQogICAgICAgICAg
ICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB0aGlz
LlVuaXF1ZUlkID0gY291bnRlcisrOw0KICAgICAgICAgICAgICAgIHRoaXMuUmVx
dWVzdHMgPSBuZXcgQXJyYXkoKQ0KICAgICAgICAgICAgfSwNCg0KICAgICAgICAg
ICAgSGFzVGVtcGxhdGU6IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHJl
dHVybiB0eXBlb2YgKHRoaXNbIlRlbXBsYXRlIl0pICE9ICJ1bmRlZmluZWQiOw0K
ICAgICAgICAgICAgfSwNCg0KICAgICAgICAgICAgQWRkVG9SZXF1ZXN0OiBmdW5j
dGlvbihyZXF1ZXN0VGhpcykgew0KICAgICAgICAgICAgICAgIHRoaXMuUmVxdWVz
dHNbdGhpcy5SZXF1ZXN0cy5sZW5ndGhdID0gcmVxdWVzdFRoaXM7DQogICAgICAg
ICAgICB9LA0KDQogICAgICAgICAgICBCZWdpblJlcXVlc3Q6IGZ1bmN0aW9uKHNl
cnZlclVybCwgY2FsbGJhY2spIHsNCiAgICAgICAgICAgICAgICBwZW5kaW5nUmVx
dWVzdHMrKzsNCg0KICAgICAgICAgICAgICAgIGlmICghUmVxdWVzdEJhdGNoLmNh
bGxiYWNrcykgew0KICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0QmF0Y2guY2Fs
bGJhY2tzID0ge307DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg
ICAgLy8gdGhlIGNjX29uIGNvbW1lbnQgYmVsb3cgaXMgaW1wb3J0YW50Li4gaWYg
eW91IHJlbW92ZSBpdCwgaXQgd2lsbCBjaGFuZ2UgdGhlIHByb2Nlc3Npbmcgb2Yg
dGhlIHNjcmlwdA0KICAgICAgICAgICAgICAgIC8vIHNlZSBodHRwOi8vbXNkbi5t
aWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvOGthOTBrMmUoVlMuODUpLmFzcHgg
Zm9yIGRldGFpbHMgb2YgY29uZGl0aW9uYWwgY29tcGlsYXRpb24NCiAgICAgICAg
ICAgICAgICB2YXIganNvblN0cmluZyA9IFlBSE9PLmxhbmcuSlNPTi5zdHJpbmdp
ZnkodGhpcyksIGllID0gLypAY2Nfb24hQCovZmFsc2U7DQogICAgICAgICAgICAg
ICAgaWYgKGllICYmICFSZXF1ZXN0QmF0Y2guY29udGFpbmVyKSB7IC8vIGZvcmNp
Ymx5IHRha2UgdGhpcyByb3V0ZSBvbmx5IGZvciBpZQ0KICAgICAgICAgICAgICAg
ICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmJvZHksIGRpdjsNCiAgICAgICAgICAg
ICAgICAgICAgUmVxdWVzdEJhdGNoLmNvbnRhaW5lciA9IGRpdiA9IGJvZHkuaW5z
ZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBib2R5LmZp
cnN0Q2hpbGQpOw0KICAgICAgICAgICAgICAgICAgICBkaXYuc3R5bGUuaGVpZ2h0
ID0gZGl2LnN0eWxlLndpZHRoID0gZGl2LnN0eWxlLm1hcmdpbiA9IGRpdi5zdHls
ZS5wYWRkaW5nID0gMDsNCiAgICAgICAgICAgICAgICAgICAgZGl2LnN0eWxlLnZp
c2liaWxpdHkgPSBkaXYuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsNCiAgICAg
ICAgICAgICAgICAgICAgZGl2LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIGdlbmVyYXRlIG91ciBj
YWxsYmFjayBmdW5jdGlvbiB0aGF0IHdpbGwgY2FsbCB0aGVpciBjYWxsYmFjayBm
dW5jdGlvbiB2aWEgY2xvc3VyZSBzZW1hbnRpY3MNCiAgICAgICAgICAgICAgICB2
YXIgZGFhcGlDYWxsYmFja05hbWUgPSAnZGFhcGlDYWxsYmFjaycgKyB0aGlzLlVu
aXF1ZUlkOw0KICAgICAgICAgICAgICAgIHZhciB0aGlzUmVxdWVzdCA9IHRoaXM7
DQogICAgICAgICAgICAgICAgaWYgKGpzb25wU2VydmVyVXJsID0gdXNlSnNvbnAo
c2VydmVyVXJsLCBqc29uU3RyaW5nLCAnUmVxdWVzdEJhdGNoLmNhbGxiYWNrcy4n
ICsgZGFhcGlDYWxsYmFja05hbWUpKSB7DQogICAgICAgICAgICAgICAgICAgIC8v
IGluc2VydCBzY3JpcHQgbm9kZSB3aXRoIGNhbGxiYWNrIGZ1bmN0aW9uID0gZGFh
cGlDYWxsYmFja05hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGpzb25wU2Ny
aXB0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOw0KICAg
ICAgICAgICAgICAgICAgICBqc29ucFNjcmlwdE5vZGUudHlwZSA9ICJ0ZXh0L2ph
dmFzY3JpcHQiOw0KICAgICAgICAgICAgICAgICAgICBqc29ucFNjcmlwdE5vZGUu
c3JjID0ganNvbnBTZXJ2ZXJVcmw7DQogICAgICAgICAgICAgICAgICAgIHZhciBo
ZWFkRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylb
MF07DQogICAgICAgICAgICAgICAgICAgIFJlcXVlc3RCYXRjaC5jYWxsYmFja3Nb
ZGFhcGlDYWxsYmFja05hbWVdID0gKGZ1bmN0aW9uKHVzZXJDYWxsYmFjaywgaGVh
ZEVsZW0sIHNjcmlwdE5vZGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmdW5jdGlvbihyZXNwb25zZXMpIHsNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAodGhpc1JlcXVlc3QuSGFzVGVtcGxhdGUoKSkgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2socmVzcG9uc2Vz
KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCBhZnRlciBvdXJz
ZWx2ZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckNhbGxi
YWNrKHJlc3BvbnNlcy5SZXNwb25zZUJhdGNoKTsNCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrID0gaGVhZEVsZW0gPSBzY3JpcHRO
b2RlID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0pKGNh
bGxiYWNrLCBoZWFkRWxlbSwganNvbnBTY3JpcHROb2RlKTsNCiAgICAgICAgICAg
ICAgICAgICAgaGVhZEVsZW0uYXBwZW5kQ2hpbGQoanNvbnBTY3JpcHROb2RlKTsN
CiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAg
ICAgICAgICAgICAgICAgIHZhciBmb3JtID0gZ2VuZXJhdGVGb3JtKHRoaXMuVW5p
cXVlSWQsIHNlcnZlclVybCwganNvblN0cmluZyk7DQogICAgICAgICAgICAgICAg
ICAgIG5ldyBpZnJhbWUoZm9ybSwgeyBvbkNvbXBsZXRlOiBmdW5jdGlvbihyZXF1
ZXN0KSB7IHByb2Nlc3NSZXNwb25zZShjYWxsYmFjaywgcmVxdWVzdCwgdGhpc1Jl
cXVlc3QuSGFzVGVtcGxhdGUoKSk7IH0gfSwgdGhpcy5VbmlxdWVJZCk7DQogICAg
ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgdGhleSBy
ZXVzZSB0aGUgcmVxdWVzdGJhdGNoDQogICAgICAgICAgICAgICAgdGhpcy5Vbmlx
dWVJZCA9IGNvdW50ZXIrKzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfTsNCiAg
ICB9KSgpOw0KfQ0KDQpmdW5jdGlvbiBnZW5lcmF0ZUZvcm0oZm9ybUlkLCBzZXJ2
ZXJVcmwsIGlucHV0VmFsKSB7DQogICAgLy8gY3JlYXRlIHRoZSBmb3JtDQoJdmFy
IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7DQoJZm9ybS5h
Y2NlcHRDaGFyc2V0ID0gIlVURi04IjsNCglmb3JtLm5hbWUgPSAiZiIgKyBmb3Jt
SWQ7DQoJZm9ybS5pZCA9ICJmIiArIGZvcm1JZDsNCglmb3JtLmFjdGlvbiA9IHNl
cnZlclVybDsNCg0KCS8vIGNyZWF0ZSB0aGUgaW5wdXQgZWxlbWVudCBvbiB0aGUg
Zm9ybQ0KCXZhciBpbnB1dEVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOw0KCWlucHV0RWxlbS5uYW1lID0gImpzb25SZXF1ZXN0IjsNCglpbnB1
dEVsZW0udHlwZSA9ICJoaWRkZW4iOw0KCWlucHV0RWxlbS52YWx1ZSA9IGlucHV0
VmFsOw0KCWZvcm0uYXBwZW5kQ2hpbGQoaW5wdXRFbGVtKTsNCg0KCS8vIEZpcmVm
b3ggaGFzIGEgYmVoYXZpb3Igb24gcmVmcmVzaCB0aGF0IGRpc3BsYXlzIGEgcG9w
dXAgY29uZmlybWluZyB0aGF0IGlzIGl0IHJlbG9hZGluZyBhIGZvcm0uDQoJLy8g
V2Ugd29yayBhcm91bmQgdGhpcyBieSBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYSBn
ZXQgYWN0aW9uIGlmIHRoZSBzaXplIGlzIGJlbG93IGEgdGhyZXNob2xkLCBlbHNl
DQoJLy8gd2Ugd2lsbCBydW4gYXMgYSBwb3N0DQoJZm9ybS5tZXRob2QgPSAicG9z
dCI7DQogICAgaWYobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmlu
ZGV4T2YoJ2ZpcmVmb3gnKSAhPSAtMSkgew0KICAgICAgICB2YXIgc2VwYXJhdG9y
ID0gc2VydmVyVXJsLmluZGV4T2YoJz8nKSA9PSAtMSA/ICI/IiA6ICImIjsNCiAg
ICAgICAgdmFyIGZ1bGxSZXF1ZXN0VVJMID0gc2VydmVyVXJsICsgc2VwYXJhdG9y
ICsgImpzb25SZXF1ZXN0PSIrIGVzY2FwZShpbnB1dFZhbCk7DQogICAgICAgIGlm
IChmdWxsUmVxdWVzdFVSTC5sZW5ndGggPCA0MDAwKSB7DQogICAgICAgICAgICAv
LyB3ZSBwbGFuIHRvIHBlcmZvcm0gYSBnZXQsIHNvIHdlIG5lZWQgdG8gcGFyc2Ug
dGhlIHNpZCBvdXQgb2YgdGhlIHVybCBhbmQgcGxhY2UgaXQNCiAgICAgICAgICAg
IC8vIGluc2lkZSB0aGUgZm9ybQ0KICAgICAgICAgICAgdmFyIHNpZFBvcyA9IHNl
cnZlclVybC5pbmRleE9mKCdzaWQ9Jyk7DQogICAgICAgICAgICBpZiAoc2lkUG9z
ICE9IC0xKSB7DQogICAgICAgICAgICAgICAgdmFyIGVuZFBvcyA9IHNlcnZlclVy
bC5pbmRleE9mKCcmJywgc2lkUG9zKTsNCiAgICAgICAgICAgICAgICB2YXIgc2lk
ID0gc2VydmVyVXJsLnN1YnN0cmluZyhzaWRQb3MgKyAnc2lkPScubGVuZ3RoLCBl
bmRQb3MgPT0gLTEgPyBzZXJ2ZXJVcmwubGVuZ3RoIDogZW5kUG9zKTsNCgkgICAg
ICAgICAgICB2YXIgc2lkSW5wdXRFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW5wdXQiKTsNCgkgICAgICAgICAgICBzaWRJbnB1dEVsZW0ubmFtZSA9ICJz
aWQiOw0KCSAgICAgICAgICAgIHNpZElucHV0RWxlbS50eXBlID0gImhpZGRlbiI7
DQoJICAgICAgICAgICAgc2lkSW5wdXRFbGVtLnZhbHVlID0gc2lkOw0KCSAgICAg
ICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQoc2lkSW5wdXRFbGVtKTsNCgkgICAgICAg
ICAgICAvLyByZW1vdmUgdGhlIHNpZCBmcm9tIHRoZSB1cmwNCgkgICAgICAgICAg
ICBmb3JtLmFjdGlvbiA9IHNlcnZlclVybC5zdWJzdHJpbmcoMCwgc2lkUG9zLTEp
Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9ybS5tZXRob2QgPSAiZ2V0
IjsNCiAgICAgICAgfQ0KICAgIH0NCg0KCShSZXF1ZXN0QmF0Y2guY29udGFpbmVy
IHx8IGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKGZvcm0pOw0KCXJldHVybiBm
b3JtOw0KfQ0KDQpmdW5jdGlvbiBwcm9jZXNzUmVzcG9uc2UoY2FsbGJhY2ssIHJl
cXVlc3QsIGlzVGVtcGxhdGVkKQ0Kew0KICAgIHBlbmRpbmdSZXF1ZXN0cy0tOw0K
ICAgIHRyeSB7DQogICAgICAgIGlmIChpc1RlbXBsYXRlZCkgew0KICAgICAgICAg
ICAgY2FsbGJhY2socmVxdWVzdC5SZXNwb25zZVRleHQpOw0KICAgICAgICB9IGVs
c2Ugew0KICAgICAgICAgICAgdmFyIGpzb25SZXNwb25zZSA9IHVuZXNjYXBlKHJl
cXVlc3QucmVzcG9uc2VUZXh0KTsNCiAgICAgICAgICAgIGpzb25SZXNwb25zZSA9
IGpzb25SZXNwb25zZS5yZXBsYWNlKC9cXFw+L2csICI+Iik7DQogICAgICAgICAg
ICB2YXIgcmVzcG9uc2VPYmplY3QgPSBZQUhPTy5sYW5nLkpTT04ucGFyc2UoanNv
blJlc3BvbnNlKTsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAg
Y2FsbGJhY2socmVzcG9uc2VPYmplY3QuUmVzcG9uc2VCYXRjaCk7DQogICAgICAg
ICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgRGlyZWN0QWNjZXNz
RXJyb3JIYW5kbGVyKCJleGNlcHRpb24gZHVyaW5nIGNsaWVudCBjYWxsYmFjayIs
IGUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSBjYXRjaCAoZSkg
ew0KICAgICAgICBEaXJlY3RBY2Nlc3NFcnJvckhhbmRsZXIoImV4Y2VwdGlvbiBk
dXJpbmcgcHJvY2Vzc1Jlc3BvbnNlIiwgZSk7DQogICAgfQ0KfQ0KDQpmdW5jdGlv
biBnZXRQZW5kaW5nUmVxdWVzdENvdW50KCkNCnsNCiAgICByZXR1cm4gcGVuZGlu
Z1JlcXVlc3RzOw0KfQ0K
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=requesttypes.js
Content-Type: application/javascript; charset=ISO-8859-1; name=requesttypes.js
Content-Location: http://business.timesonline.co.uk/tol/js/requesttypes.js
Content-Transfer-Encoding: Base64
DQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIFRo
aXMgZmlsZSBjb250YWlucyBhbGwgdGhlIHJlcXVlc3QgdHlwZSBvYmplY3RzIGZv
ciB0aGUgU2l0ZUxpZmUgSlNPTiBEaXJlY3QgQVBJLg0KLy8gQ3JlYXRlIGluc3Rh
bmNlcyBvZiB0aGVzZSBvYmplY3RzLCBwbGFjZSB0aGVtIGluIGEgUmVxdWVzdEJh
dGNoLCBhbmQgc2VuZCB0aGVtIG9mZi4NCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQ0KDQooZnVuY3Rpb24oKSB7IC8vIHdyYXBwZWQgaW4g
YSBmdW5jdGlvbiB0byBrZWVwIHRoZSBDbGFzcyB2YXJpYWJsZSBvdXQgb2YgdGhl
IGdsb2JhbCBzY29wZQ0KdmFyIENsYXNzID0gZnVuY3Rpb24oKSB7DQogIHJldHVy
biBmdW5jdGlvbigpIHsNCiAgICB0aGlzLmluaXRpYWxpemUuYXBwbHkodGhpcywg
YXJndW1lbnRzKTsNCiAgfQ0KfTsNCi8vIElkZW50aWZ5IGEgdXNlcg0KVXNlcktl
eSA9IENsYXNzKCk7DQpVc2VyS2V5LnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxp
emU6IGZ1bmN0aW9uKGtleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmpl
Y3QoKTsNCiAgICAgICAgZGF0YS5LZXkgPSBrZXk7DQogICAgICAgIHRoaXMuVXNl
cktleSA9IGRhdGE7DQogICB9DQp9Ow0KLy8gSWRlbnRpZnkgYSBjb21tZW50DQpD
b21tZW50S2V5ID0gQ2xhc3MoKTsNCkNvbW1lbnRLZXkucHJvdG90eXBlID0gew0K
ICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oa2V5KSB7DQogICAgICAgIHZhciBkYXRh
ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLktleSA9IGtleTsNCiAgICAg
ICAgdGhpcy5Db21tZW50S2V5ID0gZGF0YTsNCiAgIH0NCn07DQovLyBJZGVudGlm
eSBhbiBhcnRpY2xlDQpBcnRpY2xlS2V5ID0gQ2xhc3MoKTsNCkFydGljbGVLZXku
cHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oa2V5KSB7DQog
ICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLktl
eSA9IGtleTsNCiAgICAgICAgdGhpcy5BcnRpY2xlS2V5ID0gZGF0YTsNCiAgIH0N
Cn07DQoNCi8vIElkZW50aWZ5IGEgcGVyc29uYSBtZXNzYWdlDQpQZXJzb25hTWVz
c2FnZUtleSA9IENsYXNzKCk7DQpQZXJzb25hTWVzc2FnZUtleS5wcm90b3R5cGUg
PSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXkpIHsNCiAgICAgICAgdmFy
IGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuS2V5ID0ga2V5Ow0K
ICAgICAgICB0aGlzLlBlcnNvbmFNZXNzYWdlS2V5ID0gZGF0YTsNCiAgIH0NCn07
DQoNCi8vIElkZW50aWZ5IGEgcmV2aWV3DQpSZXZpZXdLZXkgPSBDbGFzcygpOw0K
UmV2aWV3S2V5LnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9u
KGtleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAg
ICAgZGF0YS5LZXkgPSBrZXk7DQogICAgICAgIHRoaXMuUmV2aWV3S2V5ID0gZGF0
YTsNCiAgIH0NCn07DQoNCi8vIElkZW50aWZ5IGEgZ2FsbGVyeQ0KR2FsbGVyeUtl
eSA9IENsYXNzKCk7DQpHYWxsZXJ5S2V5LnByb3RvdHlwZSA9IHsNCiAgICBpbml0
aWFsaXplOiBmdW5jdGlvbihrZXkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcg
T2JqZWN0KCk7DQogICAgICAgIGRhdGEuS2V5ID0ga2V5Ow0KICAgICAgICB0aGlz
LkdhbGxlcnlLZXkgPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIElkZW50aWZ5IGEg
cGhvdG8NClBob3RvS2V5ID0gQ2xhc3MoKTsNClBob3RvS2V5LnByb3RvdHlwZSA9
IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXkpIHsNCiAgICAgICAgdmFy
IGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuS2V5ID0ga2V5Ow0K
ICAgICAgICB0aGlzLlBob3RvS2V5ID0gZGF0YTsNCiAgICB9DQp9Ow0KDQovLyBJ
ZGVudGlmeSBhIHZpZGVvDQpWaWRlb0tleSA9IENsYXNzKCk7DQpWaWRlb0tleS5w
cm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oa2V5KSB7DQog
ICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLktl
eSA9IGtleTsNCiAgICAgICAgdGhpcy5WaWRlb0tleSA9IGRhdGE7DQogICAgfQ0K
fTsNCg0KLy8gSWRlbnRpZnkgYSBibG9nIHdpdGggdGhpcyBibG9nIGtleQ0KQmxv
Z0tleSA9IENsYXNzKCk7DQpCbG9nS2V5LnByb3RvdHlwZSA9IHsNCiAgIGluaXRp
YWxpemU6IGZ1bmN0aW9uKGtleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBP
YmplY3QoKTsNCiAgICAgICAgZGF0YS5LZXkgPSBrZXk7DQogICAgICAgIHRoaXMu
QmxvZ0tleSA9IGRhdGE7DQogICB9DQp9Ow0KDQovLyBJZGVudGlmeSBhIGJsb2cg
cG9zdCB3aXRoIHRoaXMgYmxvZyBwb3N0IGtleQ0KQmxvZ1Bvc3RLZXkgPSBDbGFz
cygpOw0KQmxvZ1Bvc3RLZXkucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTog
ZnVuY3Rpb24oa2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgp
Ow0KICAgICAgICBkYXRhLktleSA9IGtleTsNCiAgICAgICAgdGhpcy5CbG9nUG9z
dEtleSA9IGRhdGE7DQogICB9DQp9Ow0KDQovLyBJZGVudGlmeSBhIGN1c3RvbSBp
dGVtIHdpdGggdGhpcyBDdXN0b21JdGVtS2V5DQpDdXN0b21JdGVtS2V5ID0gQ2xh
c3MoKTsNCkN1c3RvbUl0ZW1LZXkucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6
ZTogZnVuY3Rpb24oa2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVj
dCgpOw0KICAgICAgICBkYXRhLktleSA9IGtleTsNCiAgICAgICAgdGhpcy5DdXN0
b21JdGVtS2V5ID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIElkZW50aWZ5IGEgY3Vz
dG9tIGNvbGxlY3Rpb24gd2l0aCB0aGlzIEN1c3RvbUNvbGxlY3Rpb25LZXkNCkN1
c3RvbUNvbGxlY3Rpb25LZXkgPSBDbGFzcygpOw0KQ3VzdG9tQ29sbGVjdGlvbktl
eS5wcm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXkpIHsN
CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEu
S2V5ID0ga2V5Ow0KICAgICAgICB0aGlzLkN1c3RvbUNvbGxlY3Rpb25LZXkgPSBk
YXRhOw0KICAgfQ0KfTsNCg0KDQovLyBJZGVudGlmeSBhIEZvcnVtIENhdGVnb3J5
DQpGb3J1bUNhdGVnb3J5S2V5ID0gQ2xhc3MoKTsNCkZvcnVtQ2F0ZWdvcnlLZXku
cHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGtleSkgew0K
ICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5L
ZXkgPSBrZXk7DQogICAgICAgIHRoaXMuRm9ydW1DYXRlZ29yeUtleSA9IGRhdGE7
DQogICAgfQ0KfTsNCg0KLy8gSWRlbnRpZnkgYSBGb3J1bQ0KRm9ydW1LZXkgPSBD
bGFzcygpOw0KRm9ydW1LZXkucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6
IGZ1bmN0aW9uKGtleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3Qo
KTsNCiAgICAgICAgZGF0YS5LZXkgPSBrZXk7DQogICAgICAgIHRoaXMuRm9ydW1L
ZXkgPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIElkZW50aWZ5IGEgZm9ydW0gZGlz
Y3Vzc2lvbiB3aXRoIHRoaXMgRGlzY3Vzc2lvbktleSANCkRpc2N1c3Npb25LZXkg
PSBDbGFzcygpOw0KRGlzY3Vzc2lvbktleS5wcm90b3R5cGUgPSB7DQogICBpbml0
aWFsaXplOiBmdW5jdGlvbihrZXkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcg
T2JqZWN0KCk7DQogICAgICAgIGRhdGEuS2V5ID0ga2V5Ow0KICAgICAgICB0aGlz
LkRpc2N1c3Npb25LZXkgPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gSWRlbnRpZnkg
YSBGb3J1bSBQb3N0DQpGb3J1bVBvc3RLZXkgPSBDbGFzcygpOw0KRm9ydW1Qb3N0
S2V5LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXkp
IHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRh
dGEuS2V5ID0ga2V5Ow0KICAgICAgICB0aGlzLkZvcnVtUG9zdEtleSA9IGRhdGE7
DQogICAgfQ0KfTsNCg0KLy8gSWRlbnRpZnkgYW4gRXZlbnQNCkV2ZW50S2V5ID0g
Q2xhc3MoKTsNCkV2ZW50S2V5LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXpl
OiBmdW5jdGlvbihrZXkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0
KCk7DQogICAgICAgIGRhdGEuS2V5ID0ga2V5Ow0KICAgICAgICB0aGlzLkV2ZW50
S2V5ID0gZGF0YTsNCiAgICB9DQp9Ow0KDQovLyBJZGVudGlmeSBhbiBFdmVudA0K
RXZlbnRTZXRLZXkgPSBDbGFzcygpOw0KRXZlbnRTZXRLZXkucHJvdG90eXBlID0g
ew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGtleSkgew0KICAgICAgICB2YXIg
ZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5LZXkgPSBrZXk7DQog
ICAgICAgIHRoaXMuRXZlbnRTZXRLZXkgPSBkYXRhOw0KICAgIH0NCn07DQoNCi8v
IElkZW50aWZ5IGEgQ29tbXVuaXR5IEdyb3VwDQpDb21tdW5pdHlHcm91cEtleSA9
IENsYXNzKCk7DQpDb21tdW5pdHlHcm91cEtleS5wcm90b3R5cGUgPSB7DQogICAg
aW5pdGlhbGl6ZTogZnVuY3Rpb24oa2V5KSB7DQogICAgICAgIHZhciBkYXRhID0g
bmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLktleSA9IGtleTsNCiAgICAgICAg
dGhpcy5Db21tdW5pdHlHcm91cEtleSA9IGRhdGE7DQogICAgfQ0KfTsNCg0KLy8g
SWRlbnRpZnkgYSBDb21tdW5pdHlHcm91cCBNZW1iZXJzaGlwDQpDb21tdW5pdHlH
cm91cE1lbWJlcnNoaXBLZXkgPSBDbGFzcygpOw0KQ29tbXVuaXR5R3JvdXBNZW1i
ZXJzaGlwS2V5LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlv
bihjb21tdW5pdHlHcm91cEtleSwgdXNlcktleSkgew0KICAgICAgICB2YXIgZGF0
YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5Db21tdW5pdHlHcm91cEtl
eSA9IGNvbW11bml0eUdyb3VwS2V5Ow0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1
c2VyS2V5Ow0KICAgICAgICB0aGlzLkNvbW11bml0eUdyb3VwTWVtYmVyc2hpcEtl
eSA9IGRhdGE7DQogICAgfQ0KfTsNCg0KDQovLyBJZGVudGlmeSBhIENvbW11bml0
eUdyb3VwIEludml0YXRpb24NCkNvbW11bml0eUdyb3VwSW52aXRhdGlvbktleSA9
IENsYXNzKCk7DQpDb21tdW5pdHlHcm91cEludml0YXRpb25LZXkucHJvdG90eXBl
ID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGNvbW11bml0eUdyb3VwS2V5
LCB1c2VyS2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0K
ICAgICAgICBkYXRhLkNvbW11bml0eUdyb3VwS2V5ID0gY29tbXVuaXR5R3JvdXBL
ZXk7DQogICAgICAgIGRhdGEuVXNlcktleSA9IHVzZXJLZXk7DQogICAgICAgIHRo
aXMuQ29tbXVuaXR5R3JvdXBJbnZpdGF0aW9uS2V5ID0gZGF0YTsNCiAgICB9DQp9
Ow0KDQovLyBJZGVudGlmeSBhIENvbW11bml0eUdyb3VwIFJlZ2lzdHJhbnQNCkNv
bW11bml0eUdyb3VwUmVnaXN0cmFudEtleSA9IENsYXNzKCk7DQpDb21tdW5pdHlH
cm91cFJlZ2lzdHJhbnRLZXkucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6
IGZ1bmN0aW9uKGNvbW11bml0eUdyb3VwS2V5LCB1c2VyS2V5KSB7DQogICAgICAg
IHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkNvbW11bml0
eUdyb3VwS2V5ID0gY29tbXVuaXR5R3JvdXBLZXk7DQogICAgICAgIGRhdGEuVXNl
cktleSA9IHVzZXJLZXk7DQogICAgICAgIHRoaXMuQ29tbXVuaXR5R3JvdXBSZWdp
c3RyYW50S2V5ID0gZGF0YTsNCiAgICB9DQp9Ow0KDQovLyBJZGVudGlmeSBhIENv
bW11bml0eUdyb3VwIEJhbm5lZCBVc2VyDQpDb21tdW5pdHlHcm91cEJhbm5lZFVz
ZXJLZXkgPSBDbGFzcygpOw0KQ29tbXVuaXR5R3JvdXBCYW5uZWRVc2VyS2V5LnBy
b3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihjb21tdW5pdHlH
cm91cEtleSwgdXNlcktleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmpl
Y3QoKTsNCiAgICAgICAgZGF0YS5Db21tdW5pdHlHcm91cEtleSA9IGNvbW11bml0
eUdyb3VwS2V5Ow0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5Ow0KICAg
ICAgICB0aGlzLkNvbW11bml0eUdyb3VwQmFubmVkVXNlcktleSA9IGRhdGE7DQog
ICAgfQ0KfTsNCg0KUG9sbEtleSA9IENsYXNzKCk7DQpQb2xsS2V5LnByb3RvdHlw
ZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihwb2xsS2V5KSB7DQogICAg
ICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLktleSA9
IHBvbGxLZXk7DQogICAgICAgIHRoaXMuUG9sbEtleSA9IGRhdGE7DQogICAgfQ0K
fQ0KDQovLyBQb2ludHMvQmFkZ2luZw0KQmFkZ2VGYW1pbHlLZXkgPSBDbGFzcygp
Ow0KQmFkZ2VGYW1pbHlLZXkucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6
IGZ1bmN0aW9uKGJhZGdlRmFtaWx5S2V5KSB7DQogICAgICAgIHZhciBkYXRhID0g
bmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLktleSA9IGJhZGdlRmFtaWx5S2V5
Ow0KICAgICAgICB0aGlzLkJhZGdlRmFtaWx5S2V5ID0gZGF0YTsNCiAgICB9DQp9
DQoNCkxlYWRlcmJvYXJkS2V5ID0gQ2xhc3MoKTsNCkxlYWRlcmJvYXJkS2V5LnBy
b3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihsZWFkZXJib2Fy
ZEtleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAg
ICAgZGF0YS5LZXkgPSBsZWFkZXJib2FyZEtleTsNCiAgICAgICAgdGhpcy5MZWFk
ZXJib2FyZEtleSA9IGRhdGE7DQogICAgfQ0KfQ0KDQovLyBXcmFwcGVyIHRvIHJl
cXVlc3QgYSBjb21tZW50IHBhZ2UNCkNvbW1lbnRQYWdlID0gQ2xhc3MoKTsNCkNv
bW1lbnRQYWdlLnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9u
KGFydGljbGVLZXksIG51bWJlclBlclBhZ2UsIG9uUGFnZSwgc29ydCwgZmluZENv
bW1lbnRLZXkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQog
ICAgICAgIGRhdGEuQXJ0aWNsZUtleSA9IGFydGljbGVLZXk7DQogICAgICAgIGRh
dGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQogICAgICAgIGRhdGEu
T25QYWdlID0gb25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAg
ICAgICBkYXRhLkZpbmRDb21tZW50S2V5ID0gZmluZENvbW1lbnRLZXk7DQogICAg
ICAgIHRoaXMuQ29tbWVudFBhZ2UgPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gV3Jh
cHBlciB0byByZXF1ZXN0IGEgcGVyc29uYSBtZXNzYWdlIHBhZ2UNClBlcnNvbmFN
ZXNzYWdlUGFnZSA9IENsYXNzKCk7DQpQZXJzb25hTWVzc2FnZVBhZ2UucHJvdG90
eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odXNlcktleSwgbnVtYmVy
UGVyUGFnZSwgb25QYWdlLCBzb3J0KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3
IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5Ow0KICAg
ICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAg
ICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsNCiAgICAgICAgZGF0YS5Tb3J0ID0gc29y
dDsNCiAgICAgICAgdGhpcy5QZXJzb25hTWVzc2FnZVBhZ2UgPSBkYXRhOw0KICAg
fQ0KfTsNCg0KLy8gV3JhcHBlciB0byByZXF1ZXN0IGEgcmV2aWV3IHBhZ2UNClJl
dmlld1BhZ2UgPSBDbGFzcygpOw0KUmV2aWV3UGFnZS5wcm90b3R5cGUgPSB7DQog
ICBpbml0aWFsaXplOiBmdW5jdGlvbihhcnRpY2xlS2V5LCBudW1iZXJQZXJQYWdl
LCBvblBhZ2Usc29ydCkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3Qo
KTsNCiAgICAgICAgZGF0YS5BcnRpY2xlS2V5ID0gYXJ0aWNsZUtleTsNCiAgICAg
ICAgZGF0YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAgICAgICAg
ZGF0YS5PblBhZ2UgPSBvblBhZ2U7DQogICAgICAgIGRhdGEuU29ydCA9IHNvcnQ7
DQogICAgICAgIHRoaXMuUmV2aWV3UGFnZSA9IGRhdGE7DQogICB9DQp9Ow0KDQov
LyB3cmFwcGVyIHRvIHJlcXVlc3QgYSBwYWdlIG9mIHJldmlld3MgYnkgdXNlcg0K
VXNlclJldmlld1BhZ2UgPSBDbGFzcygpOw0KVXNlclJldmlld1BhZ2UucHJvdG90
eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXksIG51bWJl
clBlclBhZ2UsIG9uUGFnZSwgc29ydCkgew0KICAgICAgICB2YXIgZGF0YSA9IG5l
dyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNlcktleTsNCiAg
ICAgICAgZGF0YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAgICAg
ICAgZGF0YS5PblBhZ2UgPSBvblBhZ2U7DQogICAgICAgIGRhdGEuU29ydCA9IHNv
cnQ7DQogICAgICAgIHRoaXMuVXNlclJldmlld1BhZ2UgPSBkYXRhOw0KICAgIH0N
Cn07DQoNCi8vIFdyYXBwZXIgb2YgdHlwZXMgYSBnYWxsZXJ5IGNhbiBjb250YWlu
DQpNZWRpYVR5cGUgPSBDbGFzcygpOw0KTWVkaWFUeXBlLnByb3RvdHlwZSA9IHsN
CiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihuYW1lKSB7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLk5hbWUgPSBuYW1lOw0K
ICAgICAgICB0aGlzLk1lZGlhVHlwZSA9IGRhdGE7DQogICAgfQ0KfTsNCi8vIFdy
YXBwZXIgdG8gcmVxdWVzdCBhIHBhZ2Ugb2YgcHVibGljIGdhbGxlcmllcw0KUHVi
bGljR2FsbGVyeVBhZ2UgPSBDbGFzcygpOw0KUHVibGljR2FsbGVyeVBhZ2UucHJv
dG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKG51bWJlclBlclBh
Z2UsIG9uUGFnZSwgbWVkaWFUeXBlKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3
IE9iamVjdCgpOw0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQ
ZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsNCiAgICAgICAg
ZGF0YS5NZWRpYVR5cGUgPSBtZWRpYVR5cGU7DQogICAgICAgIHRoaXMuUHVibGlj
R2FsbGVyeVBhZ2UgPSBkYXRhOw0KICAgIH0NCn07DQovLyBXcmFwcGVyIHRvIHJl
cXVlc3QgYSBwYWdlIG9mIHVzZXIgZ2FsbGVyaWVzDQpVc2VyR2FsbGVyeVBhZ2Ug
PSBDbGFzcygpOw0KVXNlckdhbGxlcnlQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBp
bml0aWFsaXplOiBmdW5jdGlvbih1c2VyS2V5LCBudW1iZXJQZXJQYWdlLCBvblBh
Z2UsIG1lZGlhVHlwZSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3Qo
KTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNlcktleTsNCiAgICAgICAgZGF0
YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAgICAgICAgZGF0YS5P
blBhZ2UgPSBvblBhZ2U7DQogICAgICAgIGRhdGEuTWVkaWFUeXBlID0gbWVkaWFU
eXBlOw0KICAgICAgICB0aGlzLlVzZXJHYWxsZXJ5UGFnZSA9IGRhdGE7DQogICAg
fQ0KfTsNCi8vIFdyYXBwZXIgdG8gcmVxdWVzdCBhIHBhZ2Ugb2YgcGhvdG9zDQpQ
aG90b1BhZ2UgPSBDbGFzcygpOw0KUGhvdG9QYWdlLnByb3RvdHlwZSA9IHsNCiAg
ICBpbml0aWFsaXplOiBmdW5jdGlvbihnYWxsZXJ5S2V5LCBudW1iZXJQZXJQYWdl
LCBvblBhZ2UsIHNvcnQpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0
KCk7DQogICAgICAgIGRhdGEuR2FsbGVyeUtleSA9IGdhbGxlcnlLZXk7DQogICAg
ICAgIGRhdGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQogICAgICAg
IGRhdGEuT25QYWdlID0gb25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBzb3J0
Ow0KICAgICAgICB0aGlzLlBob3RvUGFnZSA9IGRhdGE7DQogICAgfQ0KfTsNCi8v
IFdyYXBwZXIgdG8gcmVxdWVzdCBhIHBhZ2Ugb2YgdmlkZW9zDQpWaWRlb1BhZ2Ug
PSBDbGFzcygpOw0KVmlkZW9QYWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFs
aXplOiBmdW5jdGlvbihnYWxsZXJ5S2V5LCBudW1iZXJQZXJQYWdlLCBvblBhZ2Us
IHNvcnQpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAg
ICAgIGRhdGEuR2FsbGVyeUtleSA9IGdhbGxlcnlLZXk7DQogICAgICAgIGRhdGEu
TnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQogICAgICAgIGRhdGEuT25Q
YWdlID0gb25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAgICAg
ICB0aGlzLlZpZGVvUGFnZSA9IGRhdGE7DQogICAgfQ0KfTsNCi8vIFdyYXBwZXIg
dG8gcmVxdWVzdCBhIGNvbW1lbnQgYWN0aW9uDQpDb21tZW50QWN0aW9uID0gQ2xh
c3MoKTsNCkNvbW1lbnRBY3Rpb24ucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6
ZTogZnVuY3Rpb24oY29tbWVudE9uS2V5LCBvblBhZ2VVcmwsIG9uUGFnZVRpdGxl
LCBjb21tZW50Qm9keSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3Qo
KTsNCiAgICAgICAgZGF0YS5Db21tZW50T25LZXkgPSBjb21tZW50T25LZXk7DQog
ICAgICAgIGRhdGEuT25QYWdlVXJsID0gb25QYWdlVXJsOw0KICAgICAgICBkYXRh
Lk9uUGFnZVRpdGxlID0gb25QYWdlVGl0bGU7DQogICAgICAgIGRhdGEuQ29tbWVu
dEJvZHkgPSBjb21tZW50Qm9keTsNCiAgICAgICAgdGhpcy5Db21tZW50QWN0aW9u
ID0gZGF0YTsNCiAgIH0NCn07DQovLyBXcmFwcGVyIHRvIHJlcXVlc3QgYSByZXZp
ZXcgYWN0aW9uDQpSZXZpZXdBY3Rpb24gPSBDbGFzcygpOw0KUmV2aWV3QWN0aW9u
LnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHJldmlld09u
VGhpc0tleSwgb25QYWdlVXJsLCBvblBhZ2VUaXRsZSwgDQogICAgICAgICAgICAg
ICAgICAgICAgICByZXZpZXdUaXRsZSwgcmV2aWV3UmF0aW5nLCByZXZpZXdCb2R5
LCByZXZpZXdQcm9zLCByZXZpZXdDb25zKSB7DQogICAgICAgIHZhciBkYXRhID0g
bmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlJldmlld09uS2V5ID0gcmV2aWV3
T25UaGlzS2V5Ow0KICAgICAgICBkYXRhLk9uUGFnZVVybCA9IG9uUGFnZVVybDsN
CiAgICAgICAgZGF0YS5PblBhZ2VUaXRsZSA9IG9uUGFnZVRpdGxlOw0KICAgICAg
ICBkYXRhLlJldmlld1RpdGxlID0gcmV2aWV3VGl0bGU7DQogICAgICAgIGRhdGEu
UmV2aWV3UmF0aW5nID0gcmV2aWV3UmF0aW5nOw0KICAgICAgICBkYXRhLlJldmll
d0JvZHkgPSByZXZpZXdCb2R5Ow0KICAgICAgICBkYXRhLlJldmlld1Byb3MgPSBy
ZXZpZXdQcm9zOw0KICAgICAgICBkYXRhLlJldmlld0NvbnMgPSByZXZpZXdDb25z
Ow0KICAgICAgICB0aGlzLlJldmlld0FjdGlvbiA9IGRhdGE7DQogICB9DQp9Ow0K
Ly8gV3JhcHBlciB0byByZXF1ZXN0IGEgcmVjb21tZW5kIGFjdGlvbg0KUmVjb21t
ZW5kQWN0aW9uID0gQ2xhc3MoKTsNClJlY29tbWVuZEFjdGlvbi5wcm90b3R5cGUg
PSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihyZWNvbW1lbmRUaGlzS2V5LCBh
cnRpY2xlVGl0bGUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7
DQogICAgICAgIGRhdGEuUmVjb21tZW5kVGhpc0tleSA9IHJlY29tbWVuZFRoaXNL
ZXk7DQogICAgICAgIGlmKGFydGljbGVUaXRsZSl7DQoJCQlkYXRhLk9uUGFnZVRp
dGxlID0gYXJ0aWNsZVRpdGxlOw0KCQl9DQoJCQ0KICAgICAgICB0aGlzLlJlY29t
bWVuZEFjdGlvbiA9IGRhdGE7DQogICB9DQp9Ow0KLy8gV3JhcHBlciB0byByZXF1
ZXN0IGEgcmF0ZSBhY3Rpb24NClJhdGVBY3Rpb24gPSBDbGFzcygpOw0KUmF0ZUFj
dGlvbi5wcm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihyYXRl
VGhpc0tleSwgcmF0aW5nKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVj
dCgpOw0KICAgICAgICBkYXRhLlJhdGVUaGlzS2V5ID0gcmF0ZVRoaXNLZXk7DQog
ICAgICAgIGRhdGEuUmF0aW5nID0gcmF0aW5nOw0KICAgICAgICB0aGlzLlJhdGVB
Y3Rpb24gPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gUGVybWFuZW50bHkgZGVsZXRl
IGEgZ2FsbGVyeSwgdmlkZW8gb3IgcGhvdG8NCkRlbGV0ZUNvbnRlbnRBY3Rpb24g
PSBDbGFzcygpOw0KRGVsZXRlQ29udGVudEFjdGlvbi5wcm90b3R5cGUgPSB7DQog
ICBpbml0aWFsaXplOiBmdW5jdGlvbihkZWxldGVUaGlzQ29udGVudCkgew0KICAg
ICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5EZWxl
dGVUaGlzQ29udGVudCA9IGRlbGV0ZVRoaXNDb250ZW50Ow0KICAgICAgICB0aGlz
LkRlbGV0ZUNvbnRlbnRBY3Rpb24gPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gRW1h
aWwgZnJvbSB0aGUgU2l0ZUxpZmUgc3lzdGVtDQpFbWFpbENvbnRlbnRBY3Rpb24g
PSBDbGFzcygpOw0KRW1haWxDb250ZW50QWN0aW9uLnByb3RvdHlwZSA9IHsNCiAg
IGluaXRpYWxpemU6IGZ1bmN0aW9uKHRvQWRkcmVzcywgc3ViamVjdCwgYm9keSkg
ew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0
YS5Ub0FkZHJlc3MgPSB0b0FkZHJlc3M7DQogICAgICAgIGRhdGEuU3ViamVjdCA9
IHN1YmplY3Q7DQogICAgICAgIGRhdGEuQm9keSA9IGJvZHk7DQogICAgICAgIHRo
aXMuRW1haWxDb250ZW50QWN0aW9uID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIEVt
YWlsIGZyb20gdGhlIFNpdGVMaWZlIHN5c3RlbSB3aXRoIHVzZXIga2V5IGFzIHRh
cmdldA0KRW1haWxDb250ZW50V2l0aFVzZXJJREFjdGlvbiA9IENsYXNzKCk7DQpF
bWFpbENvbnRlbnRXaXRoVXNlcklEQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgIGlu
aXRpYWxpemU6IGZ1bmN0aW9uKHRvVXNlcktleSwgc3ViamVjdCwgYm9keSkgew0K
ICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5V
c2VyS2V5ID0gdG9Vc2VyS2V5Ow0KICAgICAgICBkYXRhLlN1YmplY3QgPSBzdWJq
ZWN0Ow0KICAgICAgICBkYXRhLkJvZHkgPSBib2R5Ow0KICAgICAgICB0aGlzLkVt
YWlsQ29udGVudFdpdGhVc2VySURBY3Rpb24gPSBkYXRhOw0KICAgfQ0KfTsNCg0K
Ly8gV3JhcHBlciB0byByZXF1ZXN0IGEgcmVwb3J0IGFidXNlIGFjdGlvbg0KUmVw
b3J0QWJ1c2VBY3Rpb24gPSBDbGFzcygpOw0KUmVwb3J0QWJ1c2VBY3Rpb24ucHJv
dG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocmVwb3J0VGhpc0tl
eSwgYWJ1c2VSZWFzb24sIGFidXNlRGVzY3JpcHRpb24pIHsNCiAgICAgICAgdmFy
IGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuUmVwb3J0VGhpc0tl
eSA9IHJlcG9ydFRoaXNLZXk7DQogICAgICAgIGRhdGEuQWJ1c2VSZWFzb24gPSBh
YnVzZVJlYXNvbjsNCiAgICAgICAgZGF0YS5BYnVzZURlc2NyaXB0aW9uID0gYWJ1
c2VEZXNjcmlwdGlvbjsNCiAgICAgICAgdGhpcy5SZXBvcnRBYnVzZUFjdGlvbiA9
IGRhdGE7DQogICB9DQp9Ow0KLy8gQ2F0ZWdvcnkgdXNlZCBmb3IgZGlzY292ZXJ5
DQpDYXRlZ29yeSA9IENsYXNzKCk7DQpDYXRlZ29yeS5wcm90b3R5cGUgPSB7DQog
ICBpbml0aWFsaXplOiBmdW5jdGlvbihuYW1lKSB7DQogICAgICAgIHZhciBkYXRh
ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLk5hbWUgPSBuYW1lOw0KICAg
ICAgICB0aGlzLkNhdGVnb3J5ID0gZGF0YTsNCiAgIH0NCn07DQovLyBTZWN0aW9u
IHVzZWQgZm9yIGRpc2NvdmVyeQ0KU2VjdGlvbiA9IENsYXNzKCk7DQpTZWN0aW9u
LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihuYW1lKSB7
DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRh
Lk5hbWUgPSBuYW1lOw0KICAgICAgICB0aGlzLlNlY3Rpb24gPSBkYXRhOw0KICAg
IH0NCn07DQovLyBVcGRhdGUgb3IgY3JlYXRlIGFuIGFydGljbGUNClVwZGF0ZUFy
dGljbGVBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlQXJ0aWNsZUFjdGlvbi5wcm90
b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbih1cGRhdGVBcnRpY2xl
LCBvblBhZ2VVcmwsIG9uUGFnZVRpdGxlLCBzZWN0aW9uLGNhdGVnb3JpZXMpIHsN
CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEu
VXBkYXRlQXJ0aWNsZSA9IHVwZGF0ZUFydGljbGU7DQogICAgICAgIGRhdGEuT25Q
YWdlVXJsID0gb25QYWdlVXJsOw0KICAgICAgICBkYXRhLk9uUGFnZVRpdGxlID0g
b25QYWdlVGl0bGU7DQogICAgICAgIGRhdGEuU2VjdGlvbiA9IHNlY3Rpb247DQog
ICAgICAgIGRhdGEuQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXM7DQogICAgICAgIHRo
aXMuVXBkYXRlQXJ0aWNsZUFjdGlvbiA9IGRhdGE7DQogICB9DQp9Ow0KLy8gVXBk
YXRlIG9yIGNyZWF0ZSBhIGdhbGxlcnkNClVwZGF0ZUdhbGxlcnlBY3Rpb24gPSBD
bGFzcygpOw0KVXBkYXRlR2FsbGVyeUFjdGlvbi5wcm90b3R5cGUgPSB7DQogICAg
aW5pdGlhbGl6ZTogZnVuY3Rpb24odXBkYXRlR2FsbGVyeSwgZ2FsbGVyeVR5cGUs
IG1lZGlhVHlwZSwgdGl0bGUsIGRlc2NyaXB0aW9uLCB0YWdzLCBzZWN0aW9uLCBn
YWxsZXJ5UHJvbW8pIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7
DQogICAgICAgIGRhdGEuVXBkYXRlR2FsbGVyeSA9IHVwZGF0ZUdhbGxlcnk7DQog
ICAgICAgIGRhdGEuR2FsbGVyeVR5cGUgPSBnYWxsZXJ5VHlwZTsNCiAgICAgICAg
ZGF0YS5NZWRpYVR5cGUgPSBtZWRpYVR5cGU7DQogICAgICAgIGRhdGEuVGl0bGUg
PSB0aXRsZTsNCiAgICAgICAgZGF0YS5EZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9u
Ow0KICAgICAgICBkYXRhLlRhZ3MgPSB0YWdzOw0KICAgICAgICBkYXRhLlNlY3Rp
b24gPSBzZWN0aW9uOw0KICAgICAgICBkYXRhLkdhbGxlcnlQcm9tbyA9IGdhbGxl
cnlQcm9tbzsNCiAgICAgICAgdGhpcy5VcGRhdGVHYWxsZXJ5QWN0aW9uID0gZGF0
YTsNCiAgICB9DQp9Ow0KLy8gVXBkYXRlIG9yIGNyZWF0ZSBhIHBob3RvDQpVcGRh
dGVQaG90b0FjdGlvbiA9IENsYXNzKCk7DQpVcGRhdGVQaG90b0FjdGlvbi5wcm90
b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odXBkYXRlUGhvdG8s
IHRpdGxlLCBkZXNjcmlwdGlvbiwgdGFncywgc2VjdGlvbikgew0KICAgICAgICB2
YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5VcGRhdGVQaG90
byA9IHVwZGF0ZVBob3RvOw0KICAgICAgICBkYXRhLlRpdGxlID0gdGl0bGU7DQog
ICAgICAgIGRhdGEuRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsNCiAgICAgICAg
ZGF0YS5UYWdzID0gdGFnczsNCiAgICAgICAgZGF0YS5TZWN0aW9uID0gc2VjdGlv
bjsNCiAgICAgICAgdGhpcy5VcGRhdGVQaG90b0FjdGlvbiA9IGRhdGE7DQogICAg
fQ0KfTsNCi8vIFVwZGF0ZSBvciBjcmVhdGUgYSB2aWRlbw0KVXBkYXRlVmlkZW9B
Y3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlVmlkZW9BY3Rpb24ucHJvdG90eXBlID0g
ew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVwZGF0ZVZpZGVvLCB0aXRsZSwg
ZGVzY3JpcHRpb24sIHRhZ3MsIHNlY3Rpb24pIHsNCiAgICAgICAgdmFyIGRhdGEg
PSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuVXBkYXRlVmlkZW8gPSB1cGRh
dGVWaWRlbzsNCiAgICAgICAgZGF0YS5UaXRsZSA9IHRpdGxlOw0KICAgICAgICBk
YXRhLkRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247DQogICAgICAgIGRhdGEuVGFn
cyA9IHRhZ3M7DQogICAgICAgIGRhdGEuU2VjdGlvbiA9IHNlY3Rpb247DQogICAg
ICAgIHRoaXMuVXBkYXRlVmlkZW9BY3Rpb24gPSBkYXRhOw0KICAgIH0NCn07DQov
LyANCkdhbGxlcnlUeXBlID0gQ2xhc3MoKTsNCkdhbGxlcnlUeXBlLnByb3RvdHlw
ZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihuYW1lKSB7DQogICAgICAg
IHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLk5hbWUgPSBu
YW1lOw0KICAgICAgICB0aGlzLkdhbGxlcnlUeXBlID0gZGF0YTsNCiAgICB9DQp9
Ow0KLy8gR2FsbGVyeVByb21vIHVzZWQgZm9yIHNldHRpbmcgcHJvbW90aW9uYWwg
dGV4dCBmb3IgcHVibGljIGdhbGxlcmllcw0KR2FsbGVyeVByb21vID0gQ2xhc3Mo
KTsNCkdhbGxlcnlQcm9tby5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTog
ZnVuY3Rpb24odGl0bGUsIGJvZHksIHBob3RvS2V5KSB7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlRpdGxlID0gdGl0bGU7
DQogICAgICAgIGRhdGEuQm9keSA9IGJvZHk7DQogICAgICAgIGRhdGEuUGhvdG9L
ZXkgPSBwaG90b0tleTsNCiAgICAgICAgdGhpcy5HYWxsZXJ5UHJvbW8gPSBkYXRh
Ow0KICAgIH0NCn07DQovLyBVc2VyVGllciB1c2VkIGZvciBkaXNjb3ZlcnkNClVz
ZXJUaWVyID0gQ2xhc3MoKTsNClVzZXJUaWVyLnByb3RvdHlwZSA9IHsNCiAgICBp
bml0aWFsaXplOiBmdW5jdGlvbihuYW1lKSB7DQogICAgICAgIHZhciBkYXRhID0g
bmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLk5hbWUgPSBuYW1lOw0KICAgICAg
ICB0aGlzLlVzZXJUaWVyID0gZGF0YTsNCiAgICB9DQp9Ow0KLy8gTWVtYmVyc2hp
cFRpZXIgdXNlZCBmb3IgY29tbXVuaXR5IGdyb3Vwcw0KTWVtYmVyc2hpcFRpZXIg
PSBDbGFzcygpOw0KTWVtYmVyc2hpcFRpZXIucHJvdG90eXBlID0gew0KICAgIGlu
aXRpYWxpemU6IGZ1bmN0aW9uKG5hbWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBu
ZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuTmFtZSA9IG5hbWU7DQogICAgICAg
IHRoaXMuTWVtYmVyc2hpcFRpZXIgPSBkYXRhOw0KICAgIH0NCn07DQovLyBBY3Rp
dml0eSB1c2VkIGZvciBkaXNjb3ZlcnkNCkFjdGl2aXR5ID0gQ2xhc3MoKTsNCkFj
dGl2aXR5LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihu
YW1lKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAg
ICBkYXRhLk5hbWUgPSBuYW1lOw0KICAgICAgICB0aGlzLkFjdGl2aXR5ID0gZGF0
YTsNCiAgICB9DQp9Ow0KLy8gRGlzY292ZXJ5IG9uIGFydGljbGVzDQpEaXNjb3Zl
ckFydGljbGVzQWN0aW9uID0gQ2xhc3MoKTsNCkRpc2NvdmVyQXJ0aWNsZXNBY3Rp
b24ucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oc2VhcmNo
U2VjdGlvbnMsc2VhcmNoQ2F0ZWdvcmllcyxsaW1pdFRvQ29udHJpYnV0b3JzLGFj
dGl2aXR5LGFnZSxtYXhpbXVtTnVtYmVyT2ZEaXNjb3Zlcmllcykgew0KICAgICAg
ICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5TZWFyY2hT
ZWN0aW9ucyA9IHNlYXJjaFNlY3Rpb25zOw0KICAgICAgICBkYXRhLlNlYXJjaENh
dGVnb3JpZXMgPSBzZWFyY2hDYXRlZ29yaWVzOw0KICAgICAgICBkYXRhLkxpbWl0
VG9Db250cmlidXRvcnMgPSBsaW1pdFRvQ29udHJpYnV0b3JzOw0KICAgICAgICBk
YXRhLkFjdGl2aXR5ID0gYWN0aXZpdHk7DQogICAgICAgIGRhdGEuQWdlID0gYWdl
Ow0KICAgICAgICBkYXRhLk1heGltdW1OdW1iZXJPZkRpc2NvdmVyaWVzID0gbWF4
aW11bU51bWJlck9mRGlzY292ZXJpZXM7DQoNCiAgICAgICAgdGhpcy5EaXNjb3Zl
ckFydGljbGVzQWN0aW9uID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIEFjdGlvbiB1
c2VkIHRvIGFkZCBhIGZyaWVuZA0KQWRkRnJpZW5kQWN0aW9uID0gQ2xhc3MoKTsN
CkFkZEZyaWVuZEFjdGlvbi5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTog
ZnVuY3Rpb24oZnJpZW5kVXNlcktleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5l
dyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5GcmllbmRVc2VyS2V5ID0gZnJpZW5k
VXNlcktleTsNCiAgICAgICAgdGhpcy5BZGRGcmllbmRBY3Rpb24gPSBkYXRhOw0K
ICAgIH0NCn07DQoNCi8vIEFjdGlvbiB1c2VkIHRvIGFkZCBhIG1lc3NhZ2UNCkFk
ZFBlcnNvbmFNZXNzYWdlQWN0aW9uID0gQ2xhc3MoKTsNCkFkZFBlcnNvbmFNZXNz
YWdlQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlv
bih0b1VzZXJLZXksIGJvZHkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2Jq
ZWN0KCk7DQogICAgICAgIGRhdGEuVG9Vc2VyS2V5ID0gdG9Vc2VyS2V5Ow0KICAg
ICAgICBkYXRhLkJvZHkgPSBib2R5Ow0KICAgICAgICB0aGlzLkFkZFBlcnNvbmFN
ZXNzYWdlQWN0aW9uID0gZGF0YTsNCiAgICB9DQp9Ow0KDQovLyBBY3Rpb24gdXNl
ZCB0byByZW1vdmUgYSBtZXNzYWdlDQpSZW1vdmVQZXJzb25hTWVzc2FnZUFjdGlv
biA9IENsYXNzKCk7DQpSZW1vdmVQZXJzb25hTWVzc2FnZUFjdGlvbi5wcm90b3R5
cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocGVyc29uYU1lc3NhZ2VL
ZXkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAg
IGRhdGEuUGVyc29uYU1lc3NhZ2VLZXkgPSBwZXJzb25hTWVzc2FnZUtleTsNCiAg
ICAgICAgdGhpcy5SZW1vdmVQZXJzb25hTWVzc2FnZUFjdGlvbiA9IGRhdGE7DQog
ICAgfQ0KfTsNCg0KLy8gQWN0aW9uIHVzZWQgdG8gYXBwcm92ZSBhIGZyaWVuZA0K
QXBwcm92ZUZyaWVuZEFjdGlvbiA9IENsYXNzKCk7DQpBcHByb3ZlRnJpZW5kQWN0
aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihmcmll
bmRVc2VyS2V5LCBpc0FwcHJvdmVkKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3
IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkZyaWVuZFVzZXJLZXkgPSBmcmllbmRV
c2VyS2V5Ow0KICAgICAgICBkYXRhLklzQXBwcm92ZWQgPSBpc0FwcHJvdmVkOw0K
ICAgICAgICB0aGlzLkFwcHJvdmVGcmllbmRBY3Rpb24gPSBkYXRhOw0KICAgIH0N
Cn07DQoNCi8vIEFjdGlvbiB1c2VkIHRvIHJlbW92ZSBhIGZyaWVuZA0KUmVtb3Zl
RnJpZW5kQWN0aW9uID0gQ2xhc3MoKTsNClJlbW92ZUZyaWVuZEFjdGlvbi5wcm90
b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZnJpZW5kVXNlcktl
eSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAg
ZGF0YS5GcmllbmRVc2VyS2V5ID0gZnJpZW5kVXNlcktleTsNCiAgICAgICAgdGhp
cy5SZW1vdmVGcmllbmRBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIEFj
dGlvbiB1c2VkIHRvIGFkZCBhbiBlbmVteQ0KQWRkRW5lbXlBY3Rpb24gPSBDbGFz
cygpOw0KQWRkRW5lbXlBY3Rpb24ucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxp
emU6IGZ1bmN0aW9uKGVuZW15VXNlcktleSkgew0KICAgICAgICB2YXIgZGF0YSA9
IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5FbmVteVVzZXJLZXkgPSBlbmVt
eVVzZXJLZXk7DQogICAgICAgIHRoaXMuQWRkRW5lbXlBY3Rpb24gPSBkYXRhOw0K
ICAgIH0NCn07DQoNCi8vIEFjdGlvbiB1c2VkIHRvIHJlbW92ZSBhbiBlbmVteQ0K
UmVtb3ZlRW5lbXlBY3Rpb24gPSBDbGFzcygpOw0KUmVtb3ZlRW5lbXlBY3Rpb24u
cHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVuZW15VXNl
cktleSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAg
ICAgZGF0YS5FbmVteVVzZXJLZXkgPSBlbmVteVVzZXJLZXk7DQogICAgICAgIHRo
aXMuUmVtb3ZlRW5lbXlBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIFdy
YXBwZXIgdG8gcmVxdWVzdCBhIGZyaWVuZCBwYWdlDQpGcmllbmRQYWdlID0gQ2xh
c3MoKTsNCkZyaWVuZFBhZ2UucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTog
ZnVuY3Rpb24odXNlcktleSwgbnVtYmVyUGVyUGFnZSwgb25QYWdlLCBpc1BlbmRp
bmdMaXN0LCBmaWx0ZXJLZXksIGZpbHRlclZhbHVlKSB7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2Vy
S2V5Ow0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdl
Ow0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsNCiAgICAgICAgZGF0YS5J
c1BlbmRpbmdMaXN0ID0gaXNQZW5kaW5nTGlzdDsNCiAgICAgICAgZGF0YS5GaWx0
ZXJLZXkgPSBmaWx0ZXJLZXk7DQogICAgICAgIGRhdGEuRmlsdGVyVmFsdWUgPSBm
aWx0ZXJWYWx1ZTsNCiAgICAgICAgdGhpcy5GcmllbmRQYWdlID0gZGF0YTsNCiAg
IH0NCn07DQoNCi8vIFdyYXBwZXIgdG8gcmVxdWVzdCBpZiBhIGdpdmVuIHVzZXIg
a2V5IGlzIGEgZnJpZW5kIG9mIHRoZSB1c2VyIHNwZWNpZmllZCBieSB0aGUgc2Vj
b25kIHBhcmFtZXRlcg0KLy8gaWYgdGhlIHVzZXJLZXkgcGFyYW1ldGVyIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBjdXJyZW50bHkgbG9nZ2VkLWluIHVzZXIgaXMgdXNl
ZA0KSXNGcmllbmQgPSBDbGFzcygpOw0KSXNGcmllbmQucHJvdG90eXBlID0gew0K
ICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZnJpZW5kVXNlcktleSwgdXNlcktleSkg
ew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0
YS5GcmllbmRVc2VyS2V5ID0gZnJpZW5kVXNlcktleTsNCiAgICAgICAgZGF0YS5V
c2VyS2V5ID0gdXNlcktleTsNCiAgICAgICAgdGhpcy5Jc0ZyaWVuZCA9IGRhdGE7
DQogICB9DQp9Ow0KCQkJCQkJCQkJCQkJDQovLyBXcmFwcGVyIHRvIHJlcXVlc3Qg
YSBmcmllbmQgcGFnZQ0KRW5lbXlQYWdlID0gQ2xhc3MoKTsNCkVuZW15UGFnZS5w
cm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbih1c2VyS2V5LCBu
dW1iZXJQZXJQYWdlLCBvblBhZ2UsIHNvcnQpIHsNCiAgICAgICAgdmFyIGRhdGEg
PSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuVXNlcktleSA9IHVzZXJLZXk7
DQogICAgICAgIGRhdGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQog
ICAgICAgIGRhdGEuT25QYWdlID0gb25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQg
PSBzb3J0Ow0KICAgICAgICB0aGlzLkVuZW15UGFnZSA9IGRhdGE7DQogICB9DQp9
Ow0KCQkJCQkJCQkJCQkJDQovLyBEaXNjb3Zlcnkgb24gY29udGVudA0KRGlzY292
ZXJDb250ZW50QWN0aW9uID0gQ2xhc3MoKTsNCkRpc2NvdmVyQ29udGVudEFjdGlv
bi5wcm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihzZWFyY2hT
ZWN0aW9ucyxzZWFyY2hDYXRlZ29yaWVzLGxpbWl0VG9Db250cmlidXRvcnMsYWN0
aXZpdHksY29udGVudFR5cGUsYWdlLG1heGltdW1OdW1iZXJPZkRpc2NvdmVyaWVz
LCBmaWx0ZXJCeVNpdGVPZk9yaWdpbiwgcGFyZW50S2V5cykgew0KICAgICAgICB2
YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5TZWFyY2hTZWN0
aW9ucyA9IHNlYXJjaFNlY3Rpb25zOw0KICAgICAgICBkYXRhLlNlYXJjaENhdGVn
b3JpZXMgPSBzZWFyY2hDYXRlZ29yaWVzOw0KICAgICAgICBkYXRhLkxpbWl0VG9D
b250cmlidXRvcnMgPSBsaW1pdFRvQ29udHJpYnV0b3JzOw0KICAgICAgICBkYXRh
LkFjdGl2aXR5ID0gYWN0aXZpdHk7DQogICAgICAgIGRhdGEuQ29udGVudFR5cGUg
PSBjb250ZW50VHlwZTsNCiAgICAgICAgZGF0YS5BZ2UgPSBhZ2U7DQogICAgICAg
IGRhdGEuTWF4aW11bU51bWJlck9mRGlzY292ZXJpZXMgPSBtYXhpbXVtTnVtYmVy
T2ZEaXNjb3ZlcmllczsNCiAgICAgICAgZGF0YS5GaWx0ZXJCeVNpdGVPZk9yaWdp
biA9IGZpbHRlckJ5U2l0ZU9mT3JpZ2luOw0KICAgICAgICBpZihwYXJlbnRLZXlz
KXsNCgkJCWRhdGEuUGFyZW50S2V5cyA9IHBhcmVudEtleXM7DQoJCX0JDQogICAg
ICAgIHRoaXMuRGlzY292ZXJDb250ZW50QWN0aW9uID0gZGF0YTsNCiAgIH0NCn07
DQoNCi8vIENvbnRlbnQgdHlwZSBmb3IgZGlzY292ZXJ5DQpDb250ZW50VHlwZSA9
IENsYXNzKCk7DQpDb250ZW50VHlwZS5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlh
bGl6ZTogZnVuY3Rpb24obmFtZSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBP
YmplY3QoKTsNCiAgICAgICAgZGF0YS5OYW1lID0gbmFtZTsNCiAgICAgICAgdGhp
cy5Db250ZW50VHlwZSA9IGRhdGE7DQogICAgfQ0KfTsNCgkJCQkJCQkJCQkJCQ0K
VXBkYXRlVXNlclByb2ZpbGVBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlVXNlclBy
b2ZpbGVBY3Rpb24ucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rp
b24oICAgdXNlcktleSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJv
dXRNZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24sDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGVPZkJpcnRoLCANCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZXgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBlcnNvbmFQcml2YWN5TW9kZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWVudHNUYWJWaXNpYmxlLCANCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwaG90b3NUYWJWaXNpYmxlLCANCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlc09wZW5Ub0V2ZXJ5b25lLCANCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpc0VtYWlsTm90aWZpY2F0aW9uc0VuYWJsZWQsIA0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkU3R5bGVJZCwgDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3VzdG9tQW5zd2VycywgDQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXh0ZW5kZWRQcm9maWxlKSB7DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgDQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVj
dCgpOw0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5Ow0KICAgICAgICBk
YXRhLkFib3V0TWUgPSBhYm91dE1lOw0KICAgICAgICBkYXRhLkxvY2F0aW9uID0g
bG9jYXRpb247DQogICAgICAgIGRhdGEuU2lnbmF0dXJlID0gc2lnbmF0dXJlOw0K
ICAgICAgICBkYXRhLkRhdGVPZkJpcnRoID0gZGF0ZU9mQmlydGg7DQogICAgICAg
IGRhdGEuU2V4ID0gc2V4Ow0KCQlkYXRhLlBlcnNvbmFQcml2YWN5TW9kZSA9IHBl
cnNvbmFQcml2YWN5TW9kZTsNCgkJZGF0YS5Db21tZW50c1RhYlZpc2libGUgPSBj
b21tZW50c1RhYlZpc2libGU7DQoJCWRhdGEuUGhvdG9zVGFiVmlzaWJsZSA9IHBo
b3Rvc1RhYlZpc2libGU7DQoJCWRhdGEuTWVzc2FnZXNPcGVuVG9FdmVyeW9uZSA9
IG1lc3NhZ2VzT3BlblRvRXZlcnlvbmU7DQoJCWRhdGEuSXNFbWFpbE5vdGlmaWNh
dGlvbnNFbmFibGVkID0gaXNFbWFpbE5vdGlmaWNhdGlvbnNFbmFibGVkOw0KCQlk
YXRhLlNlbGVjdGVkU3R5bGVJZCA9IHNlbGVjdGVkU3R5bGVJZDsNCgkJZGF0YS5D
dXN0b21BbnN3ZXJzID0gY3VzdG9tQW5zd2VyczsNCgkJZGF0YS5FeHRlbmRlZFBy
b2ZpbGUgPSBleHRlbmRlZFByb2ZpbGU7ICAgICAgICANCiAgICAgICAgdGhpcy5V
cGRhdGVVc2VyUHJvZmlsZUFjdGlvbiA9IGRhdGE7DQogICB9DQp9Ow0KDQpVcGRh
dGVVc2VyQmxvY2tlZFNldHRpbmdBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlVXNl
ckJsb2NrZWRTZXR0aW5nQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFs
aXplOiBmdW5jdGlvbiggdXNlcktleSwgaXNCbG9ja2VkICl7DQogICAgICAgIHZh
ciBkYXRhID0gbmV3IE9iamVjdDsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNl
cktleTsNCiAgICAgICAgZGF0YS5Jc0Jsb2NrZWQgPSBpc0Jsb2NrZWQ7DQogICAg
ICAgIHRoaXMuVXBkYXRlVXNlckJsb2NrZWRTZXR0aW5nQWN0aW9uID0gZGF0YTsN
CiAgICB9ICAgIA0KfTsNCg0KU2VhcmNoQWN0aW9uID0gQ2xhc3MoKTsNClNlYXJj
aEFjdGlvbi5wcm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihz
ZWFyY2hUeXBlLCBzZWFyY2hTdHJpbmcsIG51bWJlclBlclBhZ2UsIG9uUGFnZSAp
IHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRh
dGEuU2VhcmNoVHlwZSA9IHNlYXJjaFR5cGU7DQogICAgICAgIGRhdGEuU2VhcmNo
U3RyaW5nID0gc2VhcmNoU3RyaW5nOw0KICAgICAgICBkYXRhLk51bWJlclBlclBh
Z2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFn
ZTsNCiAgICAgICAgdGhpcy5TZWFyY2hBY3Rpb24gPSBkYXRhOw0KICAgfQ0KfTsN
Cg0KLy8gV3JhcHBlciB0byByZXF1ZXN0IGEgd2F0Y2ggaXRlbSBwYWdlDQpXYXRj
aEl0ZW1QYWdlID0gQ2xhc3MoKTsNCldhdGNoSXRlbVBhZ2UucHJvdG90eXBlID0g
ew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odXNlcktleSwgbnVtYmVyUGVyUGFn
ZSwgb25QYWdlKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0K
ICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5Ow0KICAgICAgICBkYXRhLk51
bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFn
ZSA9IG9uUGFnZTsNCiAgICAgICAgdGhpcy5XYXRjaEl0ZW1QYWdlID0gZGF0YTsN
CiAgIH0NCn07DQoNCi8vIFdyYXBwZXIgdG8gYWRkIGEgd2F0Y2ggaXRlbQ0KQWRk
V2F0Y2hJdGVtQWN0aW9uID0gQ2xhc3MoKTsNCkFkZFdhdGNoSXRlbUFjdGlvbi5w
cm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbih1c2VyS2V5LCB3
YXRjaFRhcmdldEtleSwgdGl0bGUsIHVybCApIHsNCiAgICAgICAgdmFyIGRhdGEg
PSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuVXNlcktleSA9IHVzZXJLZXk7
DQogICAgICAgIGRhdGEuV2F0Y2hUYXJnZXRLZXkgPSB3YXRjaFRhcmdldEtleTsN
CiAgICAgICAgZGF0YS5XYXRjaEl0ZW1UaXRsZSA9IHRpdGxlOw0KICAgICAgICBk
YXRhLldhdGNoSXRlbVVybCA9IHVybDsNCiAgICAgICAgdGhpcy5BZGRXYXRjaEl0
ZW1BY3Rpb24gPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gV3JhcHBlciB0byBkZWxl
dGUgYSB3YXRjaCBpdGVtDQpEZWxldGVXYXRjaEl0ZW1BY3Rpb24gPSBDbGFzcygp
Ow0KRGVsZXRlV2F0Y2hJdGVtQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgIGluaXRp
YWxpemU6IGZ1bmN0aW9uKHVzZXJLZXksIHdhdGNoVGFyZ2V0S2V5KSB7DQogICAg
ICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlVzZXJL
ZXkgPSB1c2VyS2V5Ow0KICAgICAgICBkYXRhLldhdGNoVGFyZ2V0S2V5ID0gd2F0
Y2hUYXJnZXRLZXk7DQogICAgICAgIHRoaXMuRGVsZXRlV2F0Y2hJdGVtQWN0aW9u
ID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIFdyYXBwZXIgdG8gcmVxdWVzdCBhIGJs
b2cgcG9zdCBwYWdlDQpCbG9nUG9zdFBhZ2UgPSBDbGFzcygpOw0KQmxvZ1Bvc3RQ
YWdlLnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJsb2dL
ZXksIG51bWJlclBlclBhZ2UsIG9uUGFnZSwgc29ydCwgYmxvZ1Bvc3RTdGF0ZSwg
cmVzdHJpY3RUb093bmVyLCBpbmNsdWRlRnV0dXJlUG9zdHMpIHsNCiAgICAgICAg
dmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQmxvZ0tleSA9
IGJsb2dLZXk7DQogICAgICAgIGRhdGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBl
clBhZ2U7DQogICAgICAgIGRhdGEuT25QYWdlID0gb25QYWdlOw0KICAgICAgICBk
YXRhLlNvcnQgPSBzb3J0Ow0KICAgICAgICBkYXRhLkJsb2dQb3N0U3RhdGUgPSBi
bG9nUG9zdFN0YXRlOw0KICAgICAgICBpZiAoKHR5cGVvZihyZXN0cmljdFRvT3du
ZXIpID09ICd1bmRlZmluZWQnKSB8fCAocmVzdHJpY3RUb093bmVyID09IG51bGwp
KSB7DQogICAgICAgICAgICAvLyBEZWZhdWx0IHRvIGZhbHNlIGZvciBiYWNrd2Fy
ZHMgY29tcGF0aWJpbGl0eQ0KICAgICAgICAgICAgcmVzdHJpY3RUb093bmVyID0g
ZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgZGF0YS5SZXN0cmljdFRvT3duZXIg
PSByZXN0cmljdFRvT3duZXIudG9TdHJpbmcoKTsNCiAgICAgICAgaWYgKCh0eXBl
b2YoaW5jbHVkZUZ1dHVyZVBvc3RzKSA9PSAndW5kZWZpbmVkJykgfHwgKGluY2x1
ZGVGdXR1cmVQb3N0cyA9PSBudWxsKSkgew0KICAgICAgICAgICAgLy8gRGVmYXVs
dCB0byBmYWxzZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkNCiAgICAgICAg
ICAgIGluY2x1ZGVGdXR1cmVQb3N0cyA9IGZhbHNlOw0KICAgICAgICB9DQogICAg
ICAgIGRhdGEuSW5jbHVkZUZ1dHVyZVBvc3RzID0gaW5jbHVkZUZ1dHVyZVBvc3Rz
LnRvU3RyaW5nKCk7DQogICAgICAgIHRoaXMuQmxvZ1Bvc3RQYWdlID0gZGF0YTsN
CiAgIH0NCn07DQoNCi8vIFdyYXBwZXIgdG8gcmVxdWVzdCBhIGJsb2cgcG9zdCBw
YWdlIGJ5IFRhZw0KQmxvZ1Bvc3RzQnlUYWdQYWdlID0gQ2xhc3MoKTsNCkJsb2dQ
b3N0c0J5VGFnUGFnZS5wcm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5j
dGlvbihibG9nS2V5LCB0YWcsIG51bWJlclBlclBhZ2UsIG9uUGFnZSwgc29ydCkg
ew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0
YS5CbG9nS2V5ID0gYmxvZ0tleTsNCiAgICAgICAgZGF0YS5UYWcgPSB0YWc7DQog
ICAgICAgIGRhdGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQogICAg
ICAgIGRhdGEuT25QYWdlID0gb25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBz
b3J0Ow0KICAgICAgICB0aGlzLkJsb2dQb3N0c0J5VGFnUGFnZSA9IGRhdGE7DQog
ICB9DQp9Ow0KDQoNCi8vIFdyYXBwZXIgdG8gcmVxdWVzdCBhIGJsb2cgcG9zdCBh
cmNoaXZlIGNvdW50DQpCbG9nUG9zdEFyY2hpdmVDb3VudCA9IENsYXNzKCk7DQpC
bG9nUG9zdEFyY2hpdmVDb3VudC5wcm90b3R5cGUgPSB7DQogICBpbml0aWFsaXpl
OiBmdW5jdGlvbihibG9nS2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9i
amVjdCgpOw0KICAgICAgICBkYXRhLkJsb2dLZXkgPSBibG9nS2V5Ow0KICAgICAg
ICB0aGlzLkJsb2dQb3N0QXJjaGl2ZUNvdW50ID0gZGF0YTsNCiAgIH0NCn07DQoN
Cg0KLy8gV3JhcHBlciB0byByZXF1ZXN0IGEgYmxvZyBwb3N0IGFyY2hpdmUgY29u
dGVudCBwYWdlDQpCbG9nUG9zdEFyY2hpdmVDb250ZW50UGFnZSA9IENsYXNzKCk7
DQpCbG9nUG9zdEFyY2hpdmVDb250ZW50UGFnZSAucHJvdG90eXBlID0gew0KICAg
aW5pdGlhbGl6ZTogZnVuY3Rpb24oYmxvZ0tleSwgbW9udGgsIG51bWJlclBlclBh
Z2UsIG9uUGFnZSwgc29ydCkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmpl
Y3QoKTsNCiAgICAgICAgZGF0YS5CbG9nS2V5ID0gYmxvZ0tleTsNCiAgICAgICAg
ZGF0YS5Nb250aCA9IG1vbnRoOw0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2Ug
PSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsN
CiAgICAgICAgZGF0YS5Tb3J0ID0gc29ydDsNCiAgICAgICAgdGhpcy5CbG9nUG9z
dEFyY2hpdmVDb250ZW50UGFnZSA9IGRhdGE7DQogICB9DQp9Ow0KDQoNCi8vIFdy
YXBwZXIgdG8gcmVxdWVzdCBhIHVzZXIgY29tbWVudCBwYWdlDQpVc2VyQ29tbWVu
dFBhZ2UgPSBDbGFzcygpOw0KVXNlckNvbW1lbnRQYWdlLnByb3RvdHlwZSA9IHsN
CiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXksIG51bWJlclBlclBhZ2Us
IG9uUGFnZSwgc29ydCwgY29tbWVudHNPbmx5KSB7DQogICAgICAgIHZhciBkYXRh
ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5
Ow0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0K
ICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsNCiAgICAgICAgZGF0YS5Tb3J0
ID0gc29ydDsNCiAgICAgICAgZGF0YS5Db21tZW50c09ubHkgPSBjb21tZW50c09u
bHk7DQogICAgICAgIHRoaXMuVXNlckNvbW1lbnRQYWdlID0gZGF0YTsNCiAgIH0N
Cn07DQoNCg0KLy8gV3JhcHBlciB0byByZXF1ZXN0IGJsb2cgdGFnIA0KUmVjZW50
QmxvZ1RhZyA9IENsYXNzKCk7DQpSZWNlbnRCbG9nVGFnLnByb3RvdHlwZSA9IHsN
CiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJsb2dLZXkpIHsNCiAgICAgICAgdmFy
IGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQmxvZ0tleSA9IGJs
b2dLZXk7DQogICAgICAgIHRoaXMuUmVjZW50QmxvZ1RhZyA9IGRhdGE7DQogICB9
DQp9Ow0KDQoNCi8vIFdyYXBwZXIgdG8gcmVxdWVzdCByZWNlbnQgdXNlciBwaG90
byBwYWdlDQpSZWNlbnRVc2VyUGhvdG9QYWdlID0gQ2xhc3MoKTsNClJlY2VudFVz
ZXJQaG90b1BhZ2UucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rp
b24odXNlcktleSwgbnVtYmVyUGVyUGFnZSwgb25QYWdlKSB7DQogICAgICAgIHZh
ciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1
c2VyS2V5Ow0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQ
YWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsNCiAgICAgICAgdGhp
cy5SZWNlbnRVc2VyUGhvdG9QYWdlID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIFdy
YXBwZXIgdG8gcmVxdWVzdCByZWNlbnQgdXNlciB2aWRlbyBwYWdlDQpSZWNlbnRV
c2VyVmlkZW9QYWdlID0gQ2xhc3MoKTsNClJlY2VudFVzZXJWaWRlb1BhZ2UgLnBy
b3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXksIG51
bWJlclBlclBhZ2UsIG9uUGFnZSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBP
YmplY3QoKTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNlcktleTsNCiAgICAg
ICAgZGF0YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAgICAgICAg
ZGF0YS5PblBhZ2UgPSBvblBhZ2U7DQogICAgICAgIHRoaXMuUmVjZW50VXNlclZp
ZGVvUGFnZSAgPSBkYXRhOw0KICAgfQ0KfTsNCg0KDQovLyBXcmFwcGVyIHRvIHJl
cXVlc3QgcmVjZW50IHB1YmxpYyBnYWxsZXJ5IHBhZ2UNClJlY2VudFB1YmxpY0dh
bGxlcnlQYWdlID0gQ2xhc3MoKTsNClJlY2VudFB1YmxpY0dhbGxlcnlQYWdlIC5w
cm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbih1c2VyS2V5LCBu
dW1iZXJQZXJQYWdlLCBvblBhZ2UpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcg
T2JqZWN0KCk7DQogICAgICAgIGRhdGEuVXNlcktleSA9IHVzZXJLZXk7DQogICAg
ICAgIGRhdGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQogICAgICAg
IGRhdGEuT25QYWdlID0gb25QYWdlOw0KICAgICAgICB0aGlzLlJlY2VudFB1Ymxp
Y0dhbGxlcnlQYWdlICA9IGRhdGE7DQogICB9DQp9Ow0KICAgIA0KICAgIA0KLy8g
V3JhcHBlciB0byByZXF1ZXN0IHJlY2VudCB1c2VyIGFjdGl2aXR5IHBhZ2UNClJl
Y2VudFVzZXJBY3Rpdml0eSA9IENsYXNzKCk7DQpSZWNlbnRVc2VyQWN0aXZpdHkg
LnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXkp
IHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRh
dGEuVXNlcktleSA9IHVzZXJLZXk7DQogICAgICAgdGhpcy5SZWNlbnRVc2VyQWN0
aXZpdHkgID0gZGF0YTsNCiAgIH0NCn07DQoNCiAgDQovLyBXcmFwcGVyIHRvIHJl
cXVlc3QgcGFnZSBvZiB1c2VyIG1lZGlhIHN1Ym1pc3Npb24gY291bnRzDQpVc2Vy
TWVkaWFTdWJtaXNzaW9uc0NvdW50UGFnZSA9IENsYXNzKCk7DQpVc2VyTWVkaWFT
dWJtaXNzaW9uc0NvdW50UGFnZSAucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxp
emU6IGZ1bmN0aW9uKHVzZXJLZXksIG1lZGlhVHlwZSwgbnVtYmVyUGVyUGFnZSwg
b25QYWdlKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAg
ICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5Ow0KICAgICAgICBkYXRhLk1lZGlh
VHlwZSA9IG1lZGlhVHlwZTsNCiAgICAgICAgZGF0YS5OdW1iZXJQZXJQYWdlID0g
bnVtYmVyUGVyUGFnZTsNCiAgICAgICAgZGF0YS5PblBhZ2UgPSBvblBhZ2U7DQog
ICAgICAgIHRoaXMuVXNlck1lZGlhU3VibWlzc2lvbnNDb3VudFBhZ2UgPSBkYXRh
Ow0KICAgIH0NCn07DQoNCg0KLy8gV3JhcHBlciB0byByZXF1ZXN0IHJlY2VudCBm
b3J1bSBkaXNjdXNzaW9uIHBhZ2UNClJlY2VudEZvcnVtRGlzY3Vzc2lvblBhZ2Ug
PSBDbGFzcygpOw0KUmVjZW50Rm9ydW1EaXNjdXNzaW9uUGFnZSAucHJvdG90eXBl
ID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odXNlcktleSwgbnVtYmVyUGVy
UGFnZSwgb25QYWdlKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgp
Ow0KICAgICAgICBkYXRhLlVzZXJLZXkgPSB1c2VyS2V5Ow0KICAgICAgICBkYXRh
Lk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9u
UGFnZSA9IG9uUGFnZTsNCiAgICAgICAgdGhpcy5SZWNlbnRGb3J1bURpc2N1c3Np
b25QYWdlID0gZGF0YTsNCiAgIH0NCn07DQoNCiAgICANCi8vIFdyYXBwZXIgdG8g
cmVxdWVzdCB1c2VyIGdyb3VwIGZvcnVtIHBhZ2UNClVzZXJHcm91cEZvcnVtUGFn
ZSA9IENsYXNzKCk7DQpVc2VyR3JvdXBGb3J1bVBhZ2UgLnByb3RvdHlwZSA9IHsN
CiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXksIG51bWJlclBlclBhZ2Us
IG9uUGFnZSwgc29ydCkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3Qo
KTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNlcktleTsNCiAgICAgICAgZGF0
YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAgICAgICAgZGF0YS5P
blBhZ2UgPSBvblBhZ2U7DQogICAgICAgIGRhdGEuU29ydCA9IHNvcnQ7DQogICAg
ICAgIHRoaXMuVXNlckdyb3VwRm9ydW1QYWdlID0gZGF0YTsNCiAgIH0NCn07DQoN
Ci8vIFRoZSBibG9nUm9sbEVudHJ5IHVzZWQgaW4gVXBkYXRlQmxvZ0FjdGlvbg0K
QmxvZ1JvbGxFbnRyeSA9IENsYXNzKCk7DQpCbG9nUm9sbEVudHJ5LnByb3RvdHlw
ZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKG5hbWUsIHVybCkgew0KICAg
ICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5OYW1l
ID0gbmFtZTsNCiAgICAgICAgZGF0YS5VcmwgPSB1cmw7DQogICAgICAgIHRoaXMu
QmxvZ1JvbGxFbnRyeSA9IGRhdGE7DQogICB9DQp9Ow0KDQovLyBCb29rbWFyayB1
c2VkIGluIFVwZGF0ZUNvbW11bml0eUdyb3VwQWN0aW9uDQpCb29rbWFyayA9IENs
YXNzKCk7DQpCb29rbWFyay5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTog
ZnVuY3Rpb24odGl0bGUsIGxpbmspIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcg
T2JqZWN0KCk7DQogICAgICAgIGRhdGEuVGl0bGUgPSB0aXRsZTsNCiAgICAgICAg
ZGF0YS5MaW5rID0gbGluazsNCiAgICAgICAgdGhpcy5Cb29rbWFyayA9IGRhdGE7
DQogICB9DQp9Ow0KDQovLyBDb21tdW5pdHlHcm91cFZpc2liaWxpdHkgdXNlZCBp
biBVcGRhdGVDb21tdW5pdHlHcm91cEFjdGlvbg0KQ29tbXVuaXR5R3JvdXBWaXNp
YmlsaXR5ID0gQ2xhc3MoKTsNCkNvbW11bml0eUdyb3VwVmlzaWJpbGl0eS5wcm90
b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24obmFtZSkgew0KICAg
ICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5OYW1l
ID0gbmFtZTsNCiAgICAgICAgdGhpcy5Db21tdW5pdHlHcm91cFZpc2liaWxpdHkg
PSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIFVwZGF0ZSBvciBjcmVhdGUgYSBibG9n
DQpVcGRhdGVCbG9nQWN0aW9uID0gQ2xhc3MoKTsNClVwZGF0ZUJsb2dBY3Rpb24u
cHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odXBkYXRlQmxv
ZywgdGl0bGUsIHRhZ2xpbmUsIGJsb2dSb2xsRW50cmllcywgYmxvZ1R5cGUpIHsN
CiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEu
QmxvZ0tleSA9IHVwZGF0ZUJsb2c7DQogICAgICAgIGRhdGEuVGl0bGUgPSB0aXRs
ZTsNCiAgICAgICAgZGF0YS5UYWdsaW5lID0gdGFnbGluZTsNCiAgICAgICAgZGF0
YS5CbG9nUm9sbEVudHJpZXMgPSBibG9nUm9sbEVudHJpZXM7DQogICAgICAgIGRh
dGEuQmxvZ1R5cGUgPSBibG9nVHlwZTsNCiAgICAgICAgdGhpcy5VcGRhdGVCbG9n
QWN0aW9uID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIFVwZGF0ZSBvciBjcmVhdGUg
YSBibG9nIHBvc3QsIGtleSBjYW4gYmUgZWl0aGVyIGEgcG9zdCBrZXkgKHVwZGF0
ZSBjYXNlKQ0KLy8gb3IgYSBibG9nIGtleSAoY3JlYXRlIGNhc2UpDQpVcGRhdGVC
bG9nUG9zdEFjdGlvbiA9IENsYXNzKCk7DQpVcGRhdGVCbG9nUG9zdEFjdGlvbi5w
cm90b3R5cGUgPSB7DQogICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXksIHRpdGxl
LCBib2R5LCB0YWdzLCBwdWJsaXNoRGF0ZSwgcHVibGlzaGVkKSB7DQogICAgICAg
IHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlRhcmdldFRo
aXMgPSBrZXk7DQogICAgICAgIGRhdGEuVGl0bGUgPSB0aXRsZTsNCiAgICAgICAg
ZGF0YS5Cb2R5ID0gYm9keTsNCiAgICAgICAgZGF0YS5UYWdzID0gdGFnczsNCiAg
ICAgICAgZGF0YS5EYXRlID0gcHVibGlzaERhdGU7DQogICAgICAgIGRhdGEuUHVi
bGlzaGVkID0gcHVibGlzaGVkOw0KICAgICAgICB0aGlzLlVwZGF0ZUJsb2dQb3N0
QWN0aW9uID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIElkZW50aWZ5IGEgZm9ydW0g
ZGlzY3Vzc2lvbiB3aXRoIHRoaXMgRGlzY3Vzc2lvbktleSANCkRpc2N1c3Npb25L
ZXkgPSBDbGFzcygpOw0KRGlzY3Vzc2lvbktleS5wcm90b3R5cGUgPSB7DQogICBp
bml0aWFsaXplOiBmdW5jdGlvbihrZXkpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBu
ZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuS2V5ID0ga2V5Ow0KICAgICAgICB0
aGlzLkRpc2N1c3Npb25LZXkgPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gSWRlbnRp
ZnkgYSBjdXN0b20gaXRlbSB3aXRoIHRoaXMgQ3VzdG9tSXRlbUtleQ0KQ3VzdG9t
SXRlbUtleSA9IENsYXNzKCk7DQpDdXN0b21JdGVtS2V5LnByb3RvdHlwZSA9IHsN
CiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGtleSkgew0KICAgICAgICB2YXIgZGF0
YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5LZXkgPSBrZXk7DQogICAg
ICAgIHRoaXMuQ3VzdG9tSXRlbUtleSA9IGRhdGE7DQogICB9DQp9Ow0KDQovLyBJ
ZGVudGlmeSBhIGN1c3RvbSBjb2xsZWN0aW9uIHdpdGggdGhpcyBDdXN0b21Db2xs
ZWN0aW9uS2V5DQpDdXN0b21Db2xsZWN0aW9uS2V5ID0gQ2xhc3MoKTsNCkN1c3Rv
bUNvbGxlY3Rpb25LZXkucHJvdG90eXBlID0gew0KICAgaW5pdGlhbGl6ZTogZnVu
Y3Rpb24oa2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0K
ICAgICAgICBkYXRhLktleSA9IGtleTsNCiAgICAgICAgdGhpcy5DdXN0b21Db2xs
ZWN0aW9uS2V5ID0gZGF0YTsNCiAgIH0NCn07DQoNCi8vIFVwZGF0ZSBvciBjcmVh
dGUgYSBjdXN0b20gaXRlbSBpbiBzdG9yYWdlDQpVcGRhdGVDdXN0b21JdGVtQWN0
aW9uID0gQ2xhc3MoKTsNClVwZGF0ZUN1c3RvbUl0ZW1BY3Rpb24ucHJvdG90eXBl
ID0gew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY3VzdG9tSXRlbUtleSwgbmFt
ZSwgbWltZVR5cGUsIGRpc3BsYXlUZXh0LCBjb250ZW50LCBpbmNsdWRlSW5SZWNl
bnRBY3Rpdml0eSkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsN
CiAgICAgICAgZGF0YS5DdXN0b21JdGVtS2V5ID0gY3VzdG9tSXRlbUtleTsNCiAg
ICAgICAgZGF0YS5OYW1lID0gbmFtZTsNCiAgICAgICAgZGF0YS5NaW1lVHlwZSA9
IG1pbWVUeXBlOw0KICAgICAgICBkYXRhLkRpc3BsYXlUZXh0ID0gZGlzcGxheVRl
eHQ7DQogICAgICAgIGRhdGEuQ29udGVudCA9IGNvbnRlbnQ7DQogICAgICAgIGlm
ICgodHlwZW9mKGluY2x1ZGVJblJlY2VudEFjdGl2aXR5KSA9PSAndW5kZWZpbmVk
JykgfHwgKGluY2x1ZGVJblJlY2VudEFjdGl2aXR5ID09IG51bGwpKSB7DQogICAg
ICAgICAgICAvLyBEZWZhdWx0IHRvIHRydWUgZm9yIGJhY2t3YXJkcyBjb21wYXRp
YmlsaXR5DQogICAgICAgICAgICBpbmNsdWRlSW5SZWNlbnRBY3Rpdml0eSA9IHRy
dWU7DQogICAgICAgIH0NCiAgICAgICAgZGF0YS5JbmNsdWRlSW5SZWNlbnRBY3Rp
dml0eSA9IGluY2x1ZGVJblJlY2VudEFjdGl2aXR5DQogICAgICAgIHRoaXMuVXBk
YXRlQ3VzdG9tSXRlbUFjdGlvbiA9IGRhdGE7DQogICB9DQp9Ow0KDQovLyBBZGQg
YSBuZXcgY3VzdG9tIGNvbGxlY3Rpb24gdG8gc3RvcmFnZQ0KQWRkQ3VzdG9tQ29s
bGVjdGlvbkFjdGlvbiA9IENsYXNzKCk7DQpBZGRDdXN0b21Db2xsZWN0aW9uQWN0
aW9uLnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGN1c3Rv
bUNvbGxlY3Rpb25LZXksIGN1c3RvbUNvbGxlY3Rpb25OYW1lKSB7DQogICAgICAg
IHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkN1c3RvbUNv
bGxlY3Rpb25LZXkgPSBjdXN0b21Db2xsZWN0aW9uS2V5Ow0KICAgICAgICBkYXRh
LkN1c3RvbUNvbGxlY3Rpb25OYW1lID0gY3VzdG9tQ29sbGVjdGlvbk5hbWU7DQog
ICAgICAgIHRoaXMuQWRkQ3VzdG9tQ29sbGVjdGlvbkFjdGlvbiA9IGRhdGE7DQog
ICB9DQp9Ow0KDQovLyBJbnNlcnQgYW4gaXRlbSBpbnRvIGEgY3VzdG9tIGNvbGxl
Y3Rpb24NCkluc2VydEludG9Db2xsZWN0aW9uQWN0aW9uID0gQ2xhc3MoKTsNCklu
c2VydEludG9Db2xsZWN0aW9uQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgIGluaXRp
YWxpemU6IGZ1bmN0aW9uKGN1c3RvbUNvbGxlY3Rpb25LZXksIGluc2VydFRoaXNL
ZXksIHBvc2l0aW9uKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgp
Ow0KICAgICAgICBkYXRhLkN1c3RvbUNvbGxlY3Rpb25LZXkgPSBjdXN0b21Db2xs
ZWN0aW9uS2V5Ow0KICAgICAgICBkYXRhLkluc2VydFRoaXNLZXkgPSBpbnNlcnRU
aGlzS2V5Ow0KICAgICAgICBkYXRhLlBvc2l0aW9uID0gcG9zaXRpb247DQogICAg
ICAgIHRoaXMuSW5zZXJ0SW50b0NvbGxlY3Rpb25BY3Rpb24gPSBkYXRhOw0KICAg
fQ0KfTsNCg0KLy8gUmVtb3ZlIGFuIGl0ZW0gZnJvbSBhIGN1c3RvbSBjb2xsZWN0
aW9uIChwb3NpdGlvbiBjYW4gYmUgbnVsbCB0byBzcGVjaWZ5IHRvIHJlbW92ZSBh
bGwgb2NjdXJyZW5jZXMgb2YgaXRlbSkNClJlbW92ZUZyb21Db2xsZWN0aW9uQWN0
aW9uID0gQ2xhc3MoKTsNClJlbW92ZUZyb21Db2xsZWN0aW9uQWN0aW9uLnByb3Rv
dHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGN1c3RvbUNvbGxlY3Rp
b25LZXksIHJlbW92ZVRoaXNLZXksIHBvc2l0aW9uKSB7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkN1c3RvbUNvbGxlY3Rp
b25LZXkgPSBjdXN0b21Db2xsZWN0aW9uS2V5Ow0KICAgICAgICBkYXRhLlJlbW92
ZVRoaXNLZXkgPSByZW1vdmVUaGlzS2V5Ow0KICAgICAgICBkYXRhLlBvc2l0aW9u
ID0gcG9zaXRpb247DQogICAgICAgIHRoaXMuUmVtb3ZlRnJvbUNvbGxlY3Rpb25B
Y3Rpb24gPSBkYXRhOw0KICAgfQ0KfTsNCg0KLy8gR2V0IGEgcGFnZSBvZiBpdGVt
cyBvdXQgb2YgYSBjdXN0b20gY29sbGVjdGlvbg0KQ3VzdG9tQ29sbGVjdGlvblBh
Z2UgPSBDbGFzcygpOw0KQ3VzdG9tQ29sbGVjdGlvblBhZ2UucHJvdG90eXBlID0g
ew0KICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY3VzdG9tQ29sbGVjdGlvbktleSwg
bnVtYmVyUGVyUGFnZSwgb25QYWdlLCBzb3J0KSB7DQogICAgICAgIHZhciBkYXRh
ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkN1c3RvbUNvbGxlY3Rpb25L
ZXkgPSBjdXN0b21Db2xsZWN0aW9uS2V5Ow0KICAgICAgICBkYXRhLk51bWJlclBl
clBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9u
UGFnZTsNCiAgICAgICAgZGF0YS5Tb3J0ID0gc29ydDsNCiAgICAgICAgdGhpcy5D
dXN0b21Db2xsZWN0aW9uUGFnZSA9IGRhdGE7DQogICB9DQp9Ow0KDQoNCi8vIEdl
dCBhIHBhZ2Ugb2YgaXRlbXMgb3V0IG9mIGEgY3VzdG9tIGNvbGxlY3Rpb24NCkVk
aXRvck1lc3NhZ2VSZXF1ZXN0ID0gQ2xhc3MoKTsNCkVkaXRvck1lc3NhZ2VSZXF1
ZXN0LnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgew0K
ICAgICAgdGhpcy5FZGl0b3JNZXNzYWdlUmVxdWVzdCA9IG5ldyBPYmplY3QoKTsN
CiAgIH0NCn07DQoNCi8vIFJldHJpZXZlIGEgdXNlcidzIHRhZ3MgZm9yIHRoZSBn
aXZlbiBjb250ZW50IHR5cGUNClVzZXJUYWdzID0gQ2xhc3MoKTsNClVzZXJUYWdz
LnByb3RvdHlwZSA9IHsNCiAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXks
IGNvbnRlbnRUeXBlKSB7DQogICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsN
CiAgICAgIGRhdGEuVXNlcktleSA9IHVzZXJLZXk7DQogICAgICBkYXRhLkNvbnRl
bnRUeXBlID0gY29udGVudFR5cGU7DQogICAgICB0aGlzLlVzZXJUYWdzID0gZGF0
YTsNCiAgIH0NCn07DQoNCg0KLy8gR2V0IGFuIGl0ZW0ncyBDb250ZW50UG9saWN5
DQpHZXRDb250ZW50UG9saWN5QWN0aW9uID0gQ2xhc3MoKTsNCkdldENvbnRlbnRQ
b2xpY3lBY3Rpb24ucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0
aW9uKHRhcmdldEtleSwgdXNlclRpZXIsIGFjdGlvbikgew0KICAgICAgICB2YXIg
ZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5UYXJnZXRLZXkgPSB0
YXJnZXRLZXk7DQogICAgICAgIGRhdGEuVXNlclRpZXIgPSB1c2VyVGllcjsNCiAg
ICAgICAgZGF0YS5Db250ZW50UG9saWN5QWN0aW9uVHlwZSA9IGFjdGlvbjsNCiAg
ICAgICAgdGhpcy5HZXRDb250ZW50UG9saWN5QWN0aW9uID0gZGF0YTsNCiAgICB9
DQp9DQoNCi8vIFNldCBhbiBpdGVtJ3MgQ29udGVudFBvbGljeQ0KU2V0Q29udGVu
dFBvbGljeUFjdGlvbiA9IENsYXNzKCk7DQpTZXRDb250ZW50UG9saWN5QWN0aW9u
LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbih0YXJnZXRL
ZXksIHVzZXJUaWVyLCBhY3Rpb24sIHBvbGljeSkgew0KICAgICAgICB2YXIgZGF0
YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5UYXJnZXRLZXkgPSB0YXJn
ZXRLZXk7DQogICAgICAgIGRhdGEuVXNlclRpZXIgPSB1c2VyVGllcjsNCiAgICAg
ICAgZGF0YS5Db250ZW50UG9saWN5QWN0aW9uVHlwZSA9IGFjdGlvbjsNCiAgICAg
ICAgZGF0YS5Db250ZW50UG9saWN5ID0gcG9saWN5Ow0KICAgICAgICB0aGlzLlNl
dENvbnRlbnRQb2xpY3lBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn0NCg0KQ29udGVu
dFBvbGljeSA9IENsYXNzKCk7DQpDb250ZW50UG9saWN5LnByb3RvdHlwZSA9IHsN
CiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihuYW1lKSB7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLk5hbWUgPSBuYW1lOw0K
ICAgICAgICB0aGlzLkNvbnRlbnRQb2xpY3kgPSBkYXRhOw0KICAgIH0NCn07DQoN
CkNvbnRlbnRQb2xpY3lBY3Rpb25UeXBlID0gQ2xhc3MoKTsNCkNvbnRlbnRQb2xp
Y3lBY3Rpb25UeXBlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5j
dGlvbihuYW1lKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0K
ICAgICAgICBkYXRhLk5hbWUgPSBuYW1lOw0KICAgICAgICB0aGlzLkNvbnRlbnRQ
b2xpY3lBY3Rpb25UeXBlID0gZGF0YTsNCiAgICB9DQp9Ow0KDQovLyBVcGRhdGVz
IGEgRm9ydW0ncyBtZXRhIGRhdGENClVwZGF0ZUZvcnVtQWN0aW9uID0gQ2xhc3Mo
KTsNClVwZGF0ZUZvcnVtQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFs
aXplOiBmdW5jdGlvbihmb3J1bUtleSwgdGl0bGUsIGRlc2NyaXB0aW9uKSB7DQog
ICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkZv
cnVtS2V5ID0gZm9ydW1LZXk7DQogICAgICAgIGRhdGEuVGl0bGUgPSB0aXRsZTsN
CiAgICAgICAgZGF0YS5EZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOw0KICAgICAg
ICB0aGlzLlVwZGF0ZUZvcnVtQWN0aW9uID0gZGF0YTsNCiAgICB9DQp9Ow0KDQov
L0FkZHMvVXBkYXRlcyBhIEZvcnVtIERpc2N1c3Npb24ncyBtZXRhIGRhdGEuIElm
IHRoZSBrZXkgaXMgYSBGb3J1bUtleSwgaXQgd2lsbCBiZSBhZGRlZCBhcyBhIG5l
dyBEaXNjdXNzaW9uLg0KLy9JZiB0aGUga2V5IGlzIGEgRm9ydW1EaXNjdXNzaW9u
S2V5LCB0aGUgZXhpc3RpbmcgZm9ydW0gZGlzY3Vzc2lvbiB3aWxsIGJlIHVwZGF0
ZWQuDQpVcGRhdGVGb3J1bURpc2N1c3Npb25BY3Rpb24gPSBDbGFzcygpOw0KVXBk
YXRlRm9ydW1EaXNjdXNzaW9uQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0
aWFsaXplOiBmdW5jdGlvbihrZXksIHRpdGxlLCBib2R5LCBpc1F1ZXN0aW9uLCBp
c1BvbGwpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAg
ICAgIGRhdGEuVGFyZ2V0VGhpcyA9IGtleTsNCiAgICAgICAgZGF0YS5UaXRsZSA9
IHRpdGxlOw0KICAgICAgICBkYXRhLkJvZHkgPSBib2R5Ow0KICAgICAgICBkYXRh
LklzUXVlc3Rpb24gPSB0eXBlb2YoaXNRdWVzdGlvbikgPT0gJ3N0cmluZycgPyBp
c1F1ZXN0aW9uIDogKGlzUXVlc3Rpb24gPyAidHJ1ZSIgOiAiZmFsc2UiKTsNCiAg
ICAgICAgZGF0YS5Jc1BvbGwgPSB0eXBlb2YoaXNQb2xsKSA9PSAnc3RyaW5nJyA/
IGlzUG9sbCA6IChpc1BvbGwgPyAidHJ1ZSIgOiAiZmFsc2UiKTsNCiAgICAgICAg
dGhpcy5VcGRhdGVGb3J1bURpc2N1c3Npb25BY3Rpb24gPSBkYXRhOw0KICAgIH0N
Cn07DQoNCi8vQWRkcy9VcGRhdGVzIGEgRm9ydW0gUG9zdCdzIG1ldGEgZGF0YS4g
SWYgdGhlIGtleSBpcyBhIEZvcnVtRGlzY3Vzc2lvbktleSwgaXQgd2lsbCBiZSBh
ZGRlZCBhcyBhIG5ldyBQb3N0Lg0KLy9JZiB0aGUga2V5IGlzIGEgRm9ydW1Qb3N0
S2V5LCB0aGUgZXhpc3RpbmcgZm9ydW0gcG9zdCB3aWxsIGJlIHVwZGF0ZWQuDQpV
cGRhdGVGb3J1bVBvc3RBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlRm9ydW1Qb3N0
QWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihr
ZXksIHRpdGxlLCBib2R5LCBpc1F1ZXN0aW9uKSB7DQogICAgICAgIHZhciBkYXRh
ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlRhcmdldFRoaXMgPSBrZXk7
DQogICAgICAgIGRhdGEuVGl0bGUgPSB0aXRsZTsNCiAgICAgICAgZGF0YS5Cb2R5
ID0gYm9keTsNCiAgICAgICAgZGF0YS5Jc1F1ZXN0aW9uID0gaXNRdWVzdGlvbjsN
CiAgICAgICAgdGhpcy5VcGRhdGVGb3J1bVBvc3RBY3Rpb24gPSBkYXRhOw0KICAg
IH0NCn07DQoNCi8vVXBkYXRlcyBhIEZvcnVtIERpc2N1c3Npb24ncyBTdGlja3kg
ZmxhZw0KRm9ydW1Ub2dnbGVEaXNjdXNzaW9uU3RpY2t5QWN0aW9uID0gQ2xhc3Mo
KTsNCkZvcnVtVG9nZ2xlRGlzY3Vzc2lvblN0aWNreUFjdGlvbi5wcm90b3R5cGUg
PSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZGlzY3Vzc2lvbktleSkgew0K
ICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5E
aXNjdXNzaW9uS2V5ID0gZGlzY3Vzc2lvbktleTsNCiAgICAgICAgdGhpcy5Gb3J1
bVRvZ2dsZURpc2N1c3Npb25TdGlja3lBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn07
DQoNCi8vT3BlbnMvQ2xvc2VzIGEgRm9ydW0gRGlzY3Vzc2lvbg0KRm9ydW1Ub2dn
bGVEaXNjdXNzaW9uQ2xvc2VkQWN0aW9uID0gQ2xhc3MoKTsNCkZvcnVtVG9nZ2xl
RGlzY3Vzc2lvbkNsb3NlZEFjdGlvbi5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlh
bGl6ZTogZnVuY3Rpb24oZGlzY3Vzc2lvbktleSkgew0KICAgICAgICB2YXIgZGF0
YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5EaXNjdXNzaW9uS2V5ID0g
ZGlzY3Vzc2lvbktleTsNCiAgICAgICAgdGhpcy5Gb3J1bVRvZ2dsZURpc2N1c3Np
b25DbG9zZWRBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vUmV0cmlldmVz
IGEgcGFnaW5hdGVkIGxpc3Qgb2YgRGlzY3Vzc2lvbnMgZm9yIGEgcGFydGljdWxh
ciBGb3J1bQ0KRm9ydW1EaXNjdXNzaW9uc1BhZ2UgPSBDbGFzcygpOw0KRm9ydW1E
aXNjdXNzaW9uc1BhZ2UucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1
bmN0aW9uKGZvcnVtS2V5LCBudW1iZXJQZXJQYWdlLCBvbmVCYXNlZE9uUGFnZSwg
c29ydCkgew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAg
ICAgZGF0YS5Gb3J1bUtleSA9IGZvcnVtS2V5Ow0KICAgICAgICBkYXRhLk51bWJl
clBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9
IG9uZUJhc2VkT25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAg
ICAgICB0aGlzLkZvcnVtRGlzY3Vzc2lvbnNQYWdlID0gZGF0YTsNCiAgICB9DQp9
Ow0KDQovL1JldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIFBvc3RzIGZvciBh
IHBhcnRpY3VsYXIgRm9ydW0NCkZvcnVtUG9zdHNQYWdlID0gQ2xhc3MoKTsNCkZv
cnVtUG9zdHNQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5j
dGlvbihmb3J1bURpc2N1c3Npb25LZXksIG51bWJlclBlclBhZ2UsIG9uZUJhc2Vk
T25QYWdlLCBzb3J0LCBmaW5kUG9zdEtleSkgew0KICAgICAgICB2YXIgZGF0YSA9
IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5EaXNjdXNzaW9uS2V5ID0gZm9y
dW1EaXNjdXNzaW9uS2V5Ow0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBu
dW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uZUJhc2VkT25Q
YWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAgICAgICBkYXRhLkZp
bmRQb3N0S2V5ID0gZmluZFBvc3RLZXk7DQogICAgICAgIHRoaXMuRm9ydW1Qb3N0
c1BhZ2UgPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vUmV0cmlldmVzIGEgcGFnaW5h
dGVkIGxpc3Qgb2YgZm9ydW1zIGZvciBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkNCkZv
cnVtQ2F0ZWdvcmllc1BhZ2UgPSBDbGFzcygpOw0KRm9ydW1DYXRlZ29yaWVzUGFn
ZS5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24obnVtYmVy
UGVyUGFnZSwgb25lQmFzZWRPblBhZ2UpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBu
ZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuTnVtYmVyUGVyUGFnZSA9IG51bWJl
clBlclBhZ2U7DQogICAgICAgIGRhdGEuT25QYWdlID0gb25lQmFzZWRPblBhZ2U7
DQogICAgICAgIHRoaXMuRm9ydW1DYXRlZ29yaWVzUGFnZSA9IGRhdGE7DQogICAg
fQ0KfTsNCg0KLy9SZXRyaWV2ZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBmb3J1bXMg
Zm9yIGEgcGFydGljdWxhciBjYXRlZ29yeQ0KRm9ydW1zUGFnZSA9IENsYXNzKCk7
DQpGb3J1bXNQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5j
dGlvbihjYXRlZ29yeUtleSwgbnVtYmVyUGVyUGFnZSwgb25lQmFzZWRPblBhZ2Us
IHNvcnQpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAg
ICAgIGRhdGEuRm9ydW1DYXRlZ29yeUtleSA9IGNhdGVnb3J5S2V5Ow0KICAgICAg
ICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBk
YXRhLk9uUGFnZSA9IG9uZUJhc2VkT25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQg
PSBzb3J0Ow0KICAgICAgICB0aGlzLkZvcnVtc1BhZ2UgPSBkYXRhOw0KICAgIH0N
Cn07DQoNCkZvcnVtU2VhcmNoQWN0aW9uID0gQ2xhc3MoKTsNCkZvcnVtU2VhcmNo
QWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihz
ZWFyY2hLZXksIHNlYXJjaFN0cmluZywgbnVtYmVyUGVyUGFnZSwgb25QYWdlKSB7
DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRh
LlRhcmdldFRoaXMgPSBzZWFyY2hLZXk7DQogICAgICAgIGRhdGEuU2VhcmNoU3Ry
aW5nID0gc2VhcmNoU3RyaW5nOw0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2Ug
PSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsN
CiAgICAgICAgdGhpcy5Gb3J1bVNlYXJjaEFjdGlvbiA9IGRhdGE7DQogICAgfQ0K
fTsNCg0KLy8gUmV0cmlldmVzIGEgcGFnaW5hdGVkIGxpc3Qgb2YgY29tbXVuaXR5
IGdyb3Vwcw0KQ29tbXVuaXR5R3JvdXBQYWdlID0gQ2xhc3MoKTsNCkNvbW11bml0
eUdyb3VwUGFnZS5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rp
b24obnVtYmVyUGVyUGFnZSwgb25lQmFzZWRPblBhZ2UsIHNvcnQsIHNlY3Rpb24p
IHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRh
dGEuTnVtYmVyUGVyUGFnZSA9IG51bWJlclBlclBhZ2U7DQogICAgICAgIGRhdGEu
T25QYWdlID0gb25lQmFzZWRPblBhZ2U7DQogICAgICAgIGRhdGEuU29ydCA9IHNv
cnQ7DQogICAgICAgIGlmICgodHlwZW9mKHNlY3Rpb24pID09ICd1bmRlZmluZWQn
KSB8fCAoc2VjdGlvbiA9PSBudWxsKSkgew0KICAgICAgICAgICAgLy8gRGVmYXVs
dCBzZWN0aW9uIHRvIEFsbA0KICAgICAgICAgICAgc2VjdGlvbiA9IG5ldyBTZWN0
aW9uKCJBbGwiKTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhLlNlY3Rpb24gPSBz
ZWN0aW9uOw0KICAgICAgICB0aGlzLkNvbW11bml0eUdyb3VwUGFnZSA9IGRhdGE7
DQogICAgfQ0KfTsNCg0KLy8gUmV0cmlldmVzIGEgcGFnaW5hdGVkIGxpc3Qgb2Yg
Y29tbXVuaXR5IGdyb3Vwcw0KQ29tbXVuaXR5R3JvdXBNZW1iZXJzaGlwID0gQ2xh
c3MoKTsNCkNvbW11bml0eUdyb3VwTWVtYmVyc2hpcC5wcm90b3R5cGUgPSB7DQog
ICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZ3JvdXBLZXksIHVzZXJLZXkpIHsNCiAg
ICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQ29t
bXVuaXR5R3JvdXBLZXkgPSBncm91cEtleTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5
ID0gdXNlcktleTsNCiAgICAgICAgdGhpcy5Db21tdW5pdHlHcm91cE1lbWJlcnNo
aXAgPSBkYXRhOw0KICAgIH0NCn07DQoNCg0KLy8gUmV0cmlldmVzIGEgcGFnaW5h
dGVkIGxpc3Qgb2YgY29tbXVuaXR5IGdyb3Vwcw0KQ29tbXVuaXR5R3JvdXBNZW1i
ZXJzaGlwUGFnZSA9IENsYXNzKCk7DQpDb21tdW5pdHlHcm91cE1lbWJlcnNoaXBQ
YWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXks
IG51bWJlclBlclBhZ2UsIG9uZUJhc2VkT25QYWdlLCBzb3J0LCBtZW1iZXJzaGlw
RmlsdGVyKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAg
ICAgICBkYXRhLktleSA9IGtleTsNCiAgICAgICAgZGF0YS5OdW1iZXJQZXJQYWdl
ID0gbnVtYmVyUGVyUGFnZTsNCiAgICAgICAgZGF0YS5PblBhZ2UgPSBvbmVCYXNl
ZE9uUGFnZTsNCiAgICAgICAgZGF0YS5Tb3J0ID0gc29ydDsNCiAgICAgICAgZGF0
YS5NZW1iZXJzaGlwRmlsdGVyID0gbWVtYmVyc2hpcEZpbHRlcjsNCiAgICAgICAg
dGhpcy5Db21tdW5pdHlHcm91cE1lbWJlcnNoaXBQYWdlID0gZGF0YTsNCiAgICB9
DQp9Ow0KDQovLyBSZXRyaWV2ZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiByZWdpc3Ry
YW50cw0KQ29tbXVuaXR5R3JvdXBSZWdpc3RyYW50UGFnZSA9IENsYXNzKCk7DQpD
b21tdW5pdHlHcm91cFJlZ2lzdHJhbnRQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBp
bml0aWFsaXplOiBmdW5jdGlvbihrZXksIG51bWJlclBlclBhZ2UsIG9uZUJhc2Vk
T25QYWdlLCBzb3J0KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgp
Ow0KICAgICAgICBkYXRhLkNvbW11bml0eUdyb3VwS2V5ID0ga2V5Ow0KICAgICAg
ICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBk
YXRhLk9uUGFnZSA9IG9uZUJhc2VkT25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQg
PSBzb3J0Ow0KICAgICAgICB0aGlzLkNvbW11bml0eUdyb3VwUmVnaXN0cmFudFBh
Z2UgPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIFJldHJpZXZlcyBhIHBhZ2luYXRl
ZCBsaXN0IG9mIGJhbm5lZCB1c2Vycw0KQ29tbXVuaXR5R3JvdXBCYW5uZWRVc2Vy
UGFnZSA9IENsYXNzKCk7DQpDb21tdW5pdHlHcm91cEJhbm5lZFVzZXJQYWdlLnBy
b3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXksIG51bWJl
clBlclBhZ2UsIG9uZUJhc2VkT25QYWdlLCBzb3J0KSB7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkNvbW11bml0eUdyb3Vw
S2V5ID0ga2V5Ow0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQ
ZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uZUJhc2VkT25QYWdlOw0K
ICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAgICAgICB0aGlzLkNvbW11bml0
eUdyb3VwQmFubmVkVXNlclBhZ2UgPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIFJl
dHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGludml0ZWQgdXNlcnMNCkNvbW11
bml0eUdyb3VwSW52aXRlZFVzZXJQYWdlID0gQ2xhc3MoKTsNCkNvbW11bml0eUdy
b3VwSW52aXRlZFVzZXJQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXpl
OiBmdW5jdGlvbihrZXksIG51bWJlclBlclBhZ2UsIG9uZUJhc2VkT25QYWdlLCBz
b3J0KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAg
ICBkYXRhLkNvbW11bml0eUdyb3VwS2V5ID0ga2V5Ow0KICAgICAgICBkYXRhLk51
bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBkYXRhLk9uUGFn
ZSA9IG9uZUJhc2VkT25QYWdlOw0KICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0K
ICAgICAgICB0aGlzLkNvbW11bml0eUdyb3VwSW52aXRlZFVzZXJQYWdlID0gZGF0
YTsNCiAgICB9DQp9Ow0KDQoNCg0KLy8gQ3JlYXRlcyBhIG5ldyBvciB1cGRhdGVz
IGFuIGV4aXN0aW5nIGNvbW11bml0eSBncm91cA0KVXBkYXRlQ29tbXVuaXR5R3Jv
dXBBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlQ29tbXVuaXR5R3JvdXBBY3Rpb24u
cHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGtleSwgdGl0
bGUsIGRlc2NyaXB0aW9uLCBjYXRlZ29yaWVzLCB2aXNpYmlsaXR5LCBib29rbWFy
a3MsIHNlY3Rpb24sIHBob3RvS2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3
IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkNvbW11bml0eUdyb3VwS2V5ID0ga2V5
Ow0KICAgICAgICBkYXRhLlRpdGxlID0gdGl0bGU7DQogICAgICAgIGRhdGEuRGVz
Y3JpcHRpb24gPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZGF0YS5DYXRlZ29yaWVz
ID0gY2F0ZWdvcmllczsNCiAgICAgICAgZGF0YS5WaXNpYmlsaXR5ID0gdmlzaWJp
bGl0eSwNCiAgICAgICAgZGF0YS5Cb29rbWFya3MgPSBib29rbWFya3M7ICAgICAg
ICANCiAgICAgICAgZGF0YS5TZWN0aW9uID0gc2VjdGlvbjsNCiAgICAgICAgZGF0
YS5QaG90b0tleSA9IHBob3RvS2V5Ow0KICAgICAgICB0aGlzLlVwZGF0ZUNvbW11
bml0eUdyb3VwQWN0aW9uID0gZGF0YTsNCiAgICB9DQp9Ow0KDQovLyBVcGRhdGVz
IGFuIGV4aXN0aW5nIGNvbW1uaXR5IGdyb3VwJ3MgYm9va21hcmtzDQpVcGRhdGVD
b21tdW5pdHlHcm91cEJvb2ttYXJrc0FjdGlvbiA9IENsYXNzKCk7DQpVcGRhdGVD
b21tdW5pdHlHcm91cEJvb2ttYXJrc0FjdGlvbi5wcm90b3R5cGUgPSB7DQogICAg
aW5pdGlhbGl6ZTogZnVuY3Rpb24oa2V5LCBib29rbWFya3MpIHsNCiAgICAgICAg
dmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQ29tbXVuaXR5
R3JvdXBLZXkgPSBrZXk7DQogICAgICAgIGRhdGEuQm9va21hcmtzID0gYm9va21h
cmtzOyAgICAgICAgDQogICAgICAgIHRoaXMuVXBkYXRlQ29tbXVuaXR5R3JvdXBC
b29rbWFya3NBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIENyZWF0ZXMg
b3IgdXBkYXRlcyBhIHVzZXIncyBtZW1iZXJzaGlwIGluIGEgZ3JvdXAsIHdpdGgg
b3B0aW9ucyB0byBiYW4gdGhlIHVzZXIgZnJvbSB0aGUgZ3JvdXAuDQpVcGRhdGVD
b21tdW5pdHlHcm91cE1lbWJlcnNoaXBBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRl
Q29tbXVuaXR5R3JvdXBNZW1iZXJzaGlwQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAg
ICBpbml0aWFsaXplOiBmdW5jdGlvbihjb21tdW5pdHlHcm91cEtleSwgdXNlcktl
eSwgbWVtYmVyc2hpcFRpZXIsIGlzQmFubmVkLCBiYW5NZXNzYWdlKSB7DQogICAg
ICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkNvbW11
bml0eUdyb3VwS2V5ID0gY29tbXVuaXR5R3JvdXBLZXk7DQogICAgICAgIGRhdGEu
VXNlcktleSA9IHVzZXJLZXk7DQogICAgICAgIGRhdGEuTWVtYmVyc2hpcFRpZXIg
PSBtZW1iZXJzaGlwVGllcjsNCiAgICAgICAgZGF0YS5Jc0Jhbm5lZCA9IGlzQmFu
bmVkOw0KICAgICAgICBkYXRhLkJhbk1lc3NhZ2UgPSBiYW5NZXNzYWdlOw0KICAg
ICAgICB0aGlzLlVwZGF0ZUNvbW11bml0eUdyb3VwTWVtYmVyc2hpcEFjdGlvbiA9
IGRhdGE7DQogICAgfQ0KfTsNCg0KLy8gRW5hYmxlcyBhIHVzZXIgdG8gcmVxdWVz
dCBtZW1iZXJzaGlwIGluIGEgY29tbXVuaXR5IGdyb3VwIG9yIGFuIGFkbWluIHRv
IGludml0ZSBhIG5vbi1tZW1iZXIuDQpSZXF1ZXN0Q29tbXVuaXR5R3JvdXBNZW1i
ZXJzaGlwQWN0aW9uID0gQ2xhc3MoKTsNClJlcXVlc3RDb21tdW5pdHlHcm91cE1l
bWJlcnNoaXBBY3Rpb24ucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1
bmN0aW9uKGNvbW11bml0eUdyb3VwS2V5LCB1c2VyS2V5LCBtZXNzYWdlKSB7DQog
ICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkNv
bW11bml0eUdyb3VwS2V5ID0gY29tbXVuaXR5R3JvdXBLZXk7DQogICAgICAgIGRh
dGEuVXNlcktleSA9IHVzZXJLZXk7DQogICAgICAgIGRhdGEuTWVzc2FnZSA9IG1l
c3NhZ2U7DQogICAgICAgIHRoaXMuUmVxdWVzdENvbW11bml0eUdyb3VwTWVtYmVy
c2hpcEFjdGlvbiA9IGRhdGE7DQogICAgfQ0KfTsNCg0KLy9SZXRyaWV2ZXMgYSBw
YWdpbmF0ZWQgbGlzdCBvZiBFdmVudHMgZm9yIGEgcGFydGljdWxhciBFdmVudFNl
dEtleQ0KRXZlbnRzUGFnZSA9IENsYXNzKCk7DQpFdmVudHNQYWdlLnByb3RvdHlw
ZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihldmVudFNldEtleSwgc3Rh
cnREYXRlLCBlbmREYXRlLG51bWJlclBlclBhZ2UsIG9uZUJhc2VkT25QYWdlLCBz
b3J0KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAg
ICBkYXRhLkV2ZW50U2V0S2V5ID0gZXZlbnRTZXRLZXk7DQogICAgICAgIGRhdGEu
U3RhcnREYXRlID0gc3RhcnREYXRlOw0KICAgICAgICBkYXRhLkVuZERhdGUgPSBl
bmREYXRlOw0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQ
YWdlOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uZUJhc2VkT25QYWdlOw0KICAg
ICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAgICAgICB0aGlzLkV2ZW50c1BhZ2Ug
PSBkYXRhOw0KICAgIH0NCn07DQoNCi8vIFVwZGF0ZSBvciBjcmVhdGVzIGFuIEV2
ZW50LCBrZXkgY2FuIGJlIGVpdGhlciBhbiBFdmVudEtleSAodXBkYXRlIGNhc2Up
DQovLyBvciBhbiBFdmVudFNldEtleSAoY3JlYXRlIGNhc2UpDQpVcGRhdGVFdmVu
dEFjdGlvbiA9IENsYXNzKCk7DQpVcGRhdGVFdmVudEFjdGlvbi5wcm90b3R5cGUg
PSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oa2V5LCB0aXRsZSwgZGVzY3Jp
cHRpb24sIGxvY2F0aW9uLCBib29rbWFya05hbWUsIGJvb2ttYXJrVXJsLCBzdGFy
dERhdGUsIGVuZERhdGUsIHV0Y09mZnNldCkgew0KICAgICAgICB2YXIgZGF0YSA9
IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5UYXJnZXRUaGlzID0ga2V5Ow0K
ICAgICAgICBkYXRhLlRpdGxlID0gdGl0bGU7DQogICAgICAgIGRhdGEuRGVzY3Jp
cHRpb24gPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZGF0YS5Mb2NhdGlvbiA9IGxv
Y2F0aW9uOw0KICAgICAgICBkYXRhLkJvb2ttYXJrTmFtZSA9IGJvb2ttYXJrTmFt
ZTsNCiAgICAgICAgZGF0YS5Cb29rbWFya1VybCA9IGJvb2ttYXJrVXJsOw0KICAg
ICAgICBkYXRhLlN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZTsNCiAgICAgICAgZGF0YS5F
bmREYXRlID0gZW5kRGF0ZTsNCiAgICAgICAgZGF0YS5VdGNPZmZzZXQgPSB1dGNP
ZmZzZXQ7DQogICAgICAgIHRoaXMuVXBkYXRlRXZlbnRBY3Rpb24gPSBkYXRhOw0K
ICAgIH0NCn07DQoNCg0KLy8gUmV0cmlldmUgYSBwYWdpbmF0ZWQgbGlzdCBvZiBy
ZWNlbnQgZ3JvdXAgYWN0aXZpdGllcw0KUmVjZW50TWluaUZlZWRBY3Rpdml0eSA9
IENsYXNzKCk7DQpSZWNlbnRNaW5pRmVlZEFjdGl2aXR5LnByb3RvdHlwZSA9IHsN
CiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihjb21tdW5pdHlHcm91cEtleSwgb25Q
YWdlLCBudW1iZXJQZXJQYWdlKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9i
amVjdCgpOw0KICAgICAgICBkYXRhLkNvbW11bml0eUdyb3VwS2V5ID0gY29tbXVu
aXR5R3JvdXBLZXk7DQogICAgICAgIGRhdGEuT25QYWdlID0gb25QYWdlOw0KICAg
ICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlDQogICAgICAg
IHRoaXMuUmVjZW50TWluaUZlZWRBY3Rpdml0eSA9IGRhdGE7DQogICAgfQ0KfQ0K
DQovL1JldHJpZXZlIGEgbGlzdCBvZiBNb3N0IEFjdGl2ZSBVc2VycyBpbiBhIENv
bW11bml0eUdyb3VwDQpDb21tdW5pdHlHcm91cE1vc3RBY3RpdmVNZW1iZXJzID0g
Q2xhc3MoKTsNCkNvbW11bml0eUdyb3VwTW9zdEFjdGl2ZU1lbWJlcnMucHJvdG90
eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGNvbW11bml0eUdyb3Vw
S2V5LCBhZ2UsIG1heGltdW1OdW1iZXJPZk1lbWJlcnMpIHsNCiAgICAgICAgdmFy
IGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQ29tbXVuaXR5R3Jv
dXBLZXkgPSBjb21tdW5pdHlHcm91cEtleTsNCiAgICAgICAgZGF0YS5BZ2UgPSBh
Z2U7DQogICAgICAgIGRhdGEuTWF4aW11bU51bWJlck9mTWVtYmVycyA9IG1heGlt
dW1OdW1iZXJPZk1lbWJlcnMNCiAgICAgICAgdGhpcy5Db21tdW5pdHlHcm91cE1v
c3RBY3RpdmVNZW1iZXJzID0gZGF0YTsNCiAgICB9DQp9DQoNCi8vIHBlcmZvcm0g
YSBzZWFyY2ggZm9yIGNvbnRlbnQgd2l0aGluIGEgc3BlY2lmaWMgY29tbXVuaXR5
IGdyb3VwDQpDb21tdW5pdHlHcm91cFNlYXJjaEFjdGlvbiA9IENsYXNzKCk7DQpD
b21tdW5pdHlHcm91cFNlYXJjaEFjdGlvbi5wcm90b3R5cGUgPSB7DQogICAgaW5p
dGlhbGl6ZTogZnVuY3Rpb24oY29tbXVuaXR5R3JvdXBLZXksIHNlYXJjaFR5cGUs
IHNlYXJjaFN0cmluZywgbnVtYmVyUGVyUGFnZSwgb25QYWdlKSB7DQogICAgICAg
IHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkNvbW11bml0
eUdyb3VwS2V5ID0gY29tbXVuaXR5R3JvdXBLZXk7DQogICAgICAgIGRhdGEuU2Vh
cmNoVHlwZSA9IHNlYXJjaFR5cGU7DQogICAgICAgIGRhdGEuU2VhcmNoU3RyaW5n
ID0gc2VhcmNoU3RyaW5nOw0KICAgICAgICBkYXRhLk9uUGFnZSA9IG9uUGFnZTsN
CiAgICAgICAgZGF0YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAg
ICAgICAgdGhpcy5Db21tdW5pdHlHcm91cFNlYXJjaEFjdGlvbiA9IGRhdGE7DQog
ICAgfQ0KfQ0KDQovLyBwZXJmb3JtIGEgc2VhcmNoIGZvciBjb250ZW50IHdpdGhp
biBhIHNwZWNpZmljIGNvbW11bml0eSBncm91cA0KUmVxdWVzdERlbGV0ZUNvbW11
bml0eUdyb3VwQWN0aW9uID0gQ2xhc3MoKTsNClJlcXVlc3REZWxldGVDb21tdW5p
dHlHcm91cEFjdGlvbi5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVu
Y3Rpb24oY29tbXVuaXR5R3JvdXBLZXksIGRlbGV0ZVJlYXNvbikgew0KICAgICAg
ICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5Db21tdW5p
dHlHcm91cEtleSA9IGNvbW11bml0eUdyb3VwS2V5Ow0KICAgICAgICBkYXRhLkRl
bGV0ZVJlYXNvbiA9IGRlbGV0ZVJlYXNvbjsNCiAgICAgICAgdGhpcy5SZXF1ZXN0
RGVsZXRlQ29tbXVuaXR5R3JvdXBBY3Rpb24gPSBkYXRhOw0KICAgIH0NCn0NCg0K
Q29tbXVuaXR5R3JvdXBSZWNlbnRGb3J1bURpc2N1c3Npb25zID0gQ2xhc3MoKTsN
CkNvbW11bml0eUdyb3VwUmVjZW50Rm9ydW1EaXNjdXNzaW9ucy5wcm90b3R5cGUg
PSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oY29tbXVuaXR5R3JvdXBLZXks
IGFnZSwgbWF4aW11bU51bWJlck9mRGlzY3Vzc2lvbnMpIHsNCiAgICAgICAgdmFy
IGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQ29tbXVuaXR5R3Jv
dXBLZXkgPSBjb21tdW5pdHlHcm91cEtleTsNCiAgICAgICAgZGF0YS5BZ2UgPSBh
Z2U7DQogICAgICAgIGRhdGEuTWF4aW11bU51bWJlck9mRGlzY3Vzc2lvbnMgPSBt
YXhpbXVtTnVtYmVyT2ZEaXNjdXNzaW9uczsNCiAgICAgICAgdGhpcy5Db21tdW5p
dHlHcm91cFJlY2VudEZvcnVtRGlzY3Vzc2lvbnMgPSBkYXRhOw0KICAgIH0NCn0N
Cg0KDQpTeXN0ZW1UaW1lSW5mbyA9IENsYXNzKCk7DQpTeXN0ZW1UaW1lSW5mby5w
cm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKXsNCiAgICAg
ICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHRoaXMuU3lzdGVt
VGltZUluZm8gPSBkYXRhOw0KICAgIH0NCn0NCg0KUHJpdmF0ZU1lc3NhZ2VGb2xk
ZXJMaXN0ID0gQ2xhc3MoKTsNClByaXZhdGVNZXNzYWdlRm9sZGVyTGlzdC5wcm90
b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKXsNCiAgICAgICAg
dmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHRoaXMuUHJpdmF0ZU1l
c3NhZ2VGb2xkZXJMaXN0ID0gZGF0YTsNCiAgICB9DQp9DQoNCg0KUHJpdmF0ZU1l
c3NhZ2UgPSBDbGFzcygpOw0KUHJpdmF0ZU1lc3NhZ2UucHJvdG90eXBlID0gew0K
ICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGZvbGRlcklELCBtZXNzYWdlSUQpew0K
ICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5G
b2xkZXJJRCA9IGZvbGRlcklEOw0KICAgICAgICBkYXRhLk1lc3NhZ2VJRCA9IG1l
c3NhZ2VJRDsNCiAgICAgICAgdGhpcy5Qcml2YXRlTWVzc2FnZSA9IGRhdGE7DQog
ICAgfQ0KfQ0KDQpQcml2YXRlTWVzc2FnZVBhZ2UgPSBDbGFzcygpOw0KUHJpdmF0
ZU1lc3NhZ2VQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5j
dGlvbihmb2xkZXJJRCwgbnVtYmVyUGVyUGFnZSwgb25QYWdlLCBtZXNzYWdlUmVh
ZFN0YXRlKXsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAg
ICAgIGRhdGEuRm9sZGVySUQgPSBmb2xkZXJJRDsNCiAgICAgICAgZGF0YS5OdW1i
ZXJQZXJQYWdlID0gbnVtYmVyUGVyUGFnZTsNCiAgICAgICAgZGF0YS5PblBhZ2Ug
PSBvblBhZ2U7DQogICAgICAgIGRhdGEuTWVzc2FnZVJlYWRTdGF0ZSA9IG1lc3Nh
Z2VSZWFkU3RhdGU7DQogICAgICAgIHRoaXMuUHJpdmF0ZU1lc3NhZ2VQYWdlID0g
ZGF0YTsNCiAgICB9DQp9DQoNClByaXZhdGVNZXNzYWdlU2VuZEFjdGlvbiA9IENs
YXNzKCk7DQpQcml2YXRlTWVzc2FnZVNlbmRBY3Rpb24ucHJvdG90eXBlID0gew0K
ICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHN1YmplY3QsIGJvZHksIHJlY2lwaWVu
dExpc3Qpew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAg
ICAgZGF0YS5TdWJqZWN0ID0gc3ViamVjdDsNCiAgICAgICAgZGF0YS5Cb2R5ID0g
Ym9keTsNCiAgICAgICAgZGF0YS5SZWNpcGllbnRMaXN0ID0gcmVjaXBpZW50TGlz
dDsNCiAgICAgICAgdGhpcy5Qcml2YXRlTWVzc2FnZVNlbmRBY3Rpb24gPSBkYXRh
Ow0KICAgIH0NCn0NCg0KUHJpdmF0ZU1lc3NhZ2VNb3ZlTWVzc2FnZUFjdGlvbiA9
IENsYXNzKCk7DQpQcml2YXRlTWVzc2FnZU1vdmVNZXNzYWdlQWN0aW9uLnByb3Rv
dHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihzb3VyY2VGb2xkZXJJ
RCwgZGVzdGluYXRpb25Gb2xkZXJJRCwgbWVzc2FnZUlETGlzdCl7DQogICAgICAg
IHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLlNvdXJjZUZv
bGRlcklEID0gc291cmNlRm9sZGVySUQ7DQogICAgICAgIGRhdGEuRGVzdGluYXRp
b25Gb2xkZXJJRCA9IGRlc3RpbmF0aW9uRm9sZGVySUQ7DQogICAgICAgIGRhdGEu
TWVzc2FnZUlETGlzdCA9IG1lc3NhZ2VJRExpc3Q7DQogICAgICAgIHRoaXMuUHJp
dmF0ZU1lc3NhZ2VNb3ZlTWVzc2FnZUFjdGlvbiA9IGRhdGE7DQogICAgfQ0KfQ0K
DQpQcml2YXRlTWVzc2FnZURlbGV0ZU1lc3NhZ2VBY3Rpb24gPSBDbGFzcygpOw0K
UHJpdmF0ZU1lc3NhZ2VEZWxldGVNZXNzYWdlQWN0aW9uLnByb3RvdHlwZSA9IHsN
CiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihzb3VyY2VGb2xkZXJJRCwgbWVzc2Fn
ZUlETGlzdCl7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAg
ICAgICBkYXRhLlNvdXJjZUZvbGRlcklEID0gc291cmNlRm9sZGVySUQ7DQogICAg
ICAgIGRhdGEuTWVzc2FnZUlETGlzdCA9IG1lc3NhZ2VJRExpc3Q7DQogICAgICAg
IHRoaXMuUHJpdmF0ZU1lc3NhZ2VEZWxldGVNZXNzYWdlQWN0aW9uID0gZGF0YTsN
CiAgICB9DQp9DQoNClByaXZhdGVNZXNzYWdlRW1wdHlUcmFzaEFjdGlvbiA9IENs
YXNzKCk7DQpQcml2YXRlTWVzc2FnZUVtcHR5VHJhc2hBY3Rpb24ucHJvdG90eXBl
ID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCl7DQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0aGlzLlByaXZhdGVNZXNzYWdl
RW1wdHlUcmFzaEFjdGlvbiA9IGRhdGE7DQogICAgfQ0KfQ0KDQoNClByaXZhdGVN
ZXNzYWdlQ3JlYXRlRm9sZGVyQWN0aW9uID0gQ2xhc3MoKTsNClByaXZhdGVNZXNz
YWdlQ3JlYXRlRm9sZGVyQWN0aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFs
aXplOiBmdW5jdGlvbigpew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3Qo
KTsNCiAgICAgICAgZGF0YS5Gb2xkZXJJRCA9ICJJbmJveCI7DQogICAgICAgIHRo
aXMuUHJpdmF0ZU1lc3NhZ2VDcmVhdGVGb2xkZXJBY3Rpb24gPSBkYXRhOw0KICAg
IH0NCn0NCg0KRmlyc3RVbnJlYWRQb3N0ID0gQ2xhc3MoKTsNCkZpcnN0VW5yZWFk
UG9zdC5wcm90b3R5cGUgPSB7DQoJaW5pdGlhbGl6ZTogZnVuY3Rpb24oZGlzY3Vz
c2lvbktleSwgbnVtYmVyUGVyUGFnZSwgc29ydCl7DQoJCXZhciBkYXRhID0gbmV3
IE9iamVjdCgpOw0KCQlkYXRhLkRpc2N1c3Npb25LZXkgPSBkaXNjdXNzaW9uS2V5
Ow0KICAgICAgICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0K
ICAgICAgICBkYXRhLlNvcnQgPSBzb3J0Ow0KICAgICAgICB0aGlzLkZpcnN0VW5y
ZWFkUG9zdCA9IGRhdGE7DQoJfQ0KfQ0KDQpMYXRlc3RQb3N0ID0gQ2xhc3MoKTsN
CkxhdGVzdFBvc3QucHJvdG90eXBlID0gew0KCWluaXRpYWxpemU6IGZ1bmN0aW9u
KGRpc2N1c3Npb25LZXksIG51bWJlclBlclBhZ2UsIHNvcnQpew0KCQl2YXIgZGF0
YSA9IG5ldyBPYmplY3QoKTsNCgkJZGF0YS5EaXNjdXNzaW9uS2V5ID0gZGlzY3Vz
c2lvbktleTsNCiAgICAgICAgZGF0YS5OdW1iZXJQZXJQYWdlID0gbnVtYmVyUGVy
UGFnZTsNCiAgICAgICAgZGF0YS5Tb3J0ID0gc29ydDsNCiAgICAgICAgdGhpcy5M
YXRlc3RQb3N0ID0gZGF0YTsNCgl9DQp9DQoNClVwZGF0ZURpc2N1c3Npb25MYXN0
UmVhZEFjdGlvbiA9IENsYXNzKCk7DQpVcGRhdGVEaXNjdXNzaW9uTGFzdFJlYWRB
Y3Rpb24ucHJvdG90eXBlID0gew0KCWluaXRpYWxpemU6IGZ1bmN0aW9uKGRpc2N1
c3Npb25LZXksIHBvc3RLZXksIGZvcmNlVXBkYXRlKXsNCgkJdmFyIGRhdGEgPSBu
ZXcgT2JqZWN0KCk7DQoJCWRhdGEuRGlzY3Vzc2lvbktleSA9IGRpc2N1c3Npb25L
ZXk7DQoJCWlmKHBvc3RLZXkpew0KCQkJZGF0YS5Gb3J1bVBvc3RLZXkgPSBwb3N0
S2V5Ow0KCQl9DQoJCWlmKGZvcmNlVXBkYXRlKXsNCgkJCWRhdGEuRm9yY2VVcGRh
dGUgPSB0cnVlOw0KCQl9DQoJCWVsc2V7DQoJCQlkYXRhLkZvcmNlVXBkYXRlID0g
ZmFsc2U7DQoJCX0NCgkJdGhpcy5VcGRhdGVEaXNjdXNzaW9uTGFzdFJlYWRBY3Rp
b24gPSBkYXRhOw0KCX0NCn0NCg0KVXBkYXRlRXh0ZXJuYWxVc2VySWRBY3Rpb24g
PSBDbGFzcygpOw0KVXBkYXRlRXh0ZXJuYWxVc2VySWRBY3Rpb24ucHJvdG90eXBl
ID0gew0KCWluaXRpYWxpemU6IGZ1bmN0aW9uKGV4dGVybmFsU2l0ZU5hbWUsIGV4
dGVybmFsU2l0ZVVzZXJJZCwgZm9yVXNlcil7DQoJCXZhciBkYXRhID0gbmV3IE9i
amVjdCgpOw0KCQlkYXRhLkV4dGVybmFsU2l0ZU5hbWUgPSBleHRlcm5hbFNpdGVO
YW1lOw0KCQlkYXRhLkV4dGVybmFsU2l0ZVVzZXJJZCA9IGV4dGVybmFsU2l0ZVVz
ZXJJZDsNCgkJZGF0YS5Gb3JVc2VyID0gZm9yVXNlcjsNCgkJdGhpcy5VcGRhdGVF
eHRlcm5hbFVzZXJJZEFjdGlvbiA9IGRhdGE7DQoJfQ0KfQ0KDQpVcGRhdGVTdWJz
Y3JpcHRpb25BY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlU3Vic2NyaXB0aW9uQWN0
aW9uLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihkaXNj
dXNzaW9uS2V5LCBzdWJzY3JpYmUpew0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBP
YmplY3QoKTsNCiAgICAgICAgZGF0YS5EaXNjdXNzaW9uS2V5ID0gZGlzY3Vzc2lv
bktleTsNCiAgICAgICAgZGF0YS5TdWJzY3JpYmUgPSBzdWJzY3JpYmU7DQogICAg
ICAgIHRoaXMuVXBkYXRlU3Vic2NyaXB0aW9uQWN0aW9uID0gZGF0YTsNCiAgICB9
DQp9DQoNClVwZGF0ZVBvbGxBY3Rpb24gPSBDbGFzcygpOw0KVXBkYXRlUG9sbEFj
dGlvbi5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocG9s
bE9uS2V5LCBxdWVzdGlvbiwgYW5zd2Vycykgew0KICAgICAgICB2YXIgZGF0YSA9
IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5Qb2xsT25LZXkgPSBwb2xsT25L
ZXk7DQogICAgICAgIGRhdGEuUXVlc3Rpb24gPSBxdWVzdGlvbjsNCiAgICAgICAg
ZGF0YS5BbnN3ZXJzID0gYW5zd2VyczsNCiAgICAgICAgdGhpcy5VcGRhdGVQb2xs
QWN0aW9uID0gZGF0YTsNCiAgICB9DQp9DQoNClRvZ2dsZVBvbGxJc0Nsb3NlZEFj
dGlvbiA9IENsYXNzKCk7DQpUb2dnbGVQb2xsSXNDbG9zZWRBY3Rpb24ucHJvdG90
eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHBvbGxLZXkpIHsNCiAg
ICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuVG9n
Z2xlVGhpc1BvbGwgPSBwb2xsS2V5Ow0KICAgICAgICB0aGlzLlRvZ2dsZVBvbGxJ
c0Nsb3NlZEFjdGlvbiA9IGRhdGE7DQogICAgfQ0KfQ0KDQpQb3N0UG9sbEFuc3dl
ckFjdGlvbiA9IENsYXNzKCk7DQpQb3N0UG9sbEFuc3dlckFjdGlvbi5wcm90b3R5
cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocG9sbFRvQW5zd2VyLCBp
bmRleE9mQW5zd2VyKSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgp
Ow0KICAgICAgICBkYXRhLlBvbGxUb0Fuc3dlciA9IHBvbGxUb0Fuc3dlcjsNCiAg
ICAgICAgZGF0YS5JbmRleE9mQW5zd2VyID0gaW5kZXhPZkFuc3dlcjsNCiAgICAg
ICAgdGhpcy5Qb3N0UG9sbEFuc3dlckFjdGlvbiA9IGRhdGE7DQogICAgfQ0KfQ0K
DQpQb2xsUGFnZSA9IENsYXNzKCk7DQpQb2xsUGFnZS5wcm90b3R5cGUgPSB7DQog
ICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocG9sbE9uS2V5LCBudW1iZXJQZXJQYWdl
LCBvblBhZ2UsIHNvcnQpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0
KCk7DQogICAgICAgIGRhdGEuUG9sbE9uS2V5ID0gcG9sbE9uS2V5Ow0KICAgICAg
ICBkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0KICAgICAgICBk
YXRhLk9uUGFnZSA9IG9uUGFnZTsNCiAgICAgICAgZGF0YS5Tb3J0ID0gc29ydDsN
CiAgICAgICAgdGhpcy5Qb2xsUGFnZSA9IGRhdGE7DQogICAgfQ0KfQ0KDQpDaGVj
a0ZpbHRlcmVkV29yZHMgPSBDbGFzcygpOw0KQ2hlY2tGaWx0ZXJlZFdvcmRzLnBy
b3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihrZXlWYWx1ZURp
Y3Rpb25hcnkpIHsgLy8ga2V5IGlzIHRoZSBzdHJpbmcgSUQsIHZhbHVlIGlzIHRo
ZSBzdHJpbmcgdG8gYmUgY2hlY2tlZCAtIGZvcm1hdHRlZCBsaWtlIHsgImtleTEi
OiJzdHJpbmcxIiwgImtleTIiOiJzdHJpbmcyIiB9Lg0KICAgICAgICB2YXIgZGF0
YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgZGF0YS5Xb3JkRGljdGlvbmFyeSA9
IGtleVZhbHVlRGljdGlvbmFyeTsNCiAgICAgICAgdGhpcy5DaGVja0ZpbHRlcmVk
V29yZHMgPSBkYXRhOw0KICAgIH0NCn0NCg0KLy9Qb2ludHMmQmFkZ2luZw0KQXdh
cmRQb2ludHNBY3Rpb24gPSBDbGFzcygpOw0KQXdhcmRQb2ludHNBY3Rpb24ucHJv
dG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHVzZXJLZXksIHBv
aW50cywgY3VycmVuY3lUeXBlKSB7IA0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBP
YmplY3QoKTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNlcktleTsNCiAgICAg
ICAgZGF0YS5Qb2ludHMgPSBwb2ludHM7DQogICAgICAgIGRhdGEuQ3VycmVuY3lU
eXBlID0gY3VycmVuY3lUeXBlOw0KICAgICAgICB0aGlzLkF3YXJkUG9pbnRzQWN0
aW9uID0gZGF0YTsNCiAgICB9DQp9DQoNCkJhZGdlRmFtaWx5ID0gQ2xhc3MoKTsN
CkJhZGdlRmFtaWx5LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5j
dGlvbihiYWRnZUZhbWlseUtleSkgeyANCiAgICAgICAgdmFyIGRhdGEgPSBuZXcg
T2JqZWN0KCk7DQogICAgICAgIGRhdGEuQmFkZ2VGYW1pbHlLZXkgPSBiYWRnZUZh
bWlseUtleTsNCiAgICAgICAgdGhpcy5CYWRnZUZhbWlseSA9IGRhdGE7DQogICAg
fQ0KfQ0KDQpCYWRnZUZhbWlsaWVzID0gQ2xhc3MoKTsNCkJhZGdlRmFtaWxpZXMu
cHJvdG90eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeyANCiAg
ICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7ICAgICAgICANCiAgICAgICAg
dGhpcy5CYWRnZUZhbWlsaWVzID0gZGF0YTsNCiAgICB9DQp9DQoNCkJhZGdpbmdF
dmVudEFjdGlvbiA9IENsYXNzKCk7DQpCYWRnaW5nRXZlbnRBY3Rpb24ucHJvdG90
eXBlID0gew0KICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGFjdGl2aXR5TmFtZSwg
YWN0aXZpdHlUYWdzLCB1c2VyVGFncykgeyANCiAgICAgICAgdmFyIGRhdGEgPSBu
ZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQWN0aXZpdHlOYW1lID0gYWN0aXZp
dHlOYW1lOw0KICAgICAgICBkYXRhLkFjdGl2aXR5VGFncyA9IGFjdGl2aXR5VGFn
cw0KICAgICAgICBkYXRhLlVzZXJUYWdzID0gdXNlclRhZ3M7DQogICAgICAgIHRo
aXMuQmFkZ2luZ0V2ZW50QWN0aW9uID0gZGF0YTsNCiAgICB9DQp9DQoNCkdyYW50
QmFkZ2VBY3Rpb24gPSBDbGFzcygpOw0KR3JhbnRCYWRnZUFjdGlvbi5wcm90b3R5
cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24odXNlcktleSwgYmFkZ2VG
YW1pbHlLZXksIGJhZGdlS2V5KSB7IA0KICAgICAgICB2YXIgZGF0YSA9IG5ldyBP
YmplY3QoKTsNCiAgICAgICAgZGF0YS5Vc2VyS2V5ID0gdXNlcktleTsNCiAgICAg
ICAgZGF0YS5CYWRnZUZhbWlseUtleSA9IGJhZGdlRmFtaWx5S2V5DQogICAgICAg
IGRhdGEuQmFkZ2VLZXkgPSBiYWRnZUtleTsNCiAgICAgICAgdGhpcy5HcmFudEJh
ZGdlQWN0aW9uID0gZGF0YTsNCiAgICB9DQp9DQoNCkxlYWRlcmJvYXJkID0gQ2xh
c3MoKTsNCkxlYWRlcmJvYXJkLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXpl
OiBmdW5jdGlvbihsZWFkZXJib2FyZEtleSkgeyANCiAgICAgICAgdmFyIGRhdGEg
PSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuTGVhZGVyYm9hcmRLZXkgPSBs
ZWFkZXJib2FyZEtleTsNCiAgICAgICAgdGhpcy5MZWFkZXJib2FyZCA9IGRhdGE7
DQogICAgfQ0KfQ0KDQpMZWFkZXJib2FyZHMgPSBDbGFzcygpOw0KTGVhZGVyYm9h
cmRzLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbigpIHsg
DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOyAgICAgICAgDQogICAg
ICAgIHRoaXMuTGVhZGVyYm9hcmRzID0gZGF0YTsNCiAgICB9DQp9DQoNCkxlYWRl
cmJvYXJkUmFua2luZ3NQYWdlID0gQ2xhc3MoKTsNCkxlYWRlcmJvYXJkUmFua2lu
Z3NQYWdlLnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFsaXplOiBmdW5jdGlvbihs
ZWFkZXJib2FyZEtleSwgb25lQmFzZWRPblBhZ2UpIHsgDQogICAgICAgIHZhciBk
YXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBkYXRhLkxlYWRlcmJvYXJkS2V5
ID0gbGVhZGVyYm9hcmRLZXk7DQogICAgICAgIGRhdGEuT25QYWdlID0gb25lQmFz
ZWRPblBhZ2U7DQogICAgICAgIHRoaXMuTGVhZGVyYm9hcmRSYW5raW5nc1BhZ2Ug
PSBkYXRhOw0KICAgIH0NCn0NCg0KUmV2b2tlQmFkZ2VBY3Rpb24gPSBDbGFzcygp
Ow0KUmV2b2tlQmFkZ2VBY3Rpb24ucHJvdG90eXBlID0gew0KICAgIGluaXRpYWxp
emU6IGZ1bmN0aW9uKHVzZXJLZXksIGJhZGdlRmFtaWx5S2V5LCBiYWRnZUtleSkg
eyANCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRh
dGEuVXNlcktleSA9IHVzZXJLZXk7DQogICAgICAgIGRhdGEuQmFkZ2VGYW1pbHlL
ZXkgPSBiYWRnZUZhbWlseUtleQ0KICAgICAgICBkYXRhLkJhZGdlS2V5ID0gYmFk
Z2VLZXk7DQogICAgICAgIHRoaXMuUmV2b2tlQmFkZ2VBY3Rpb24gPSBkYXRhOw0K
ICAgIH0NCn0NCg0KUG9pbnRzQW5kQmFkZ2luZ1J1bGVWYWxpZGF0aW9uQWN0aW9u
ID0gQ2xhc3MoKTsNClBvaW50c0FuZEJhZGdpbmdSdWxlVmFsaWRhdGlvbkFjdGlv
bi5wcm90b3R5cGUgPSB7DQogICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24ocnVsZXMp
IHsgDQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBk
YXRhLlJ1bGVzID0gcnVsZXM7DQogICAgICAgIHRoaXMuUG9pbnRzQW5kQmFkZ2lu
Z1J1bGVWYWxpZGF0aW9uQWN0aW9uID0gZGF0YTsNCiAgICB9DQp9DQoNCkFidXNl
SXRlbVBhZ2UgPSBDbGFzcygpOw0KQWJ1c2VJdGVtUGFnZS5wcm90b3R5cGUgPSB7
DQoJaW5pdGlhbGl6ZTogZnVuY3Rpb24obnVtYmVyUGVyUGFnZSwgb25QYWdlLCBz
ZWN0aW9uLCBtYXhSZXBvcnRzUGVySXRlbSl7DQoJCXZhciBkYXRhID0gbmV3IE9i
amVjdCgpOw0KCQlkYXRhLk51bWJlclBlclBhZ2UgPSBudW1iZXJQZXJQYWdlOw0K
CQlkYXRhLk9uUGFnZSA9IG9uUGFnZTsNCgkJZGF0YS5TZWN0aW9uID0gc2VjdGlv
bjsNCgkJZGF0YS5NYXhSZXBvcnRzUGVySXRlbSA9IG1heFJlcG9ydHNQZXJJdGVt
Ow0KCQl0aGlzLkFidXNlSXRlbVBhZ2UgPSBkYXRhOw0KCX0NCn0NCg0KQWJ1c2VJ
dGVtID0gQ2xhc3MoKTsNCkFidXNlSXRlbS5wcm90b3R5cGUgPSAgew0KCWluaXRp
YWxpemU6IGZ1bmN0aW9uKHRhcmdldEtleSl7DQoJCXZhciBkYXRhID0gbmV3IE9i
amVjdCgpOw0KCQlkYXRhLlRhcmdldEtleSA9IHRhcmdldEtleTsNCgkJdGhpcy5B
YnVzZUl0ZW0gPSBkYXRhOw0KCX0NCn0NCg0KQ2xlYXJBYnVzZUFjdGlvbiA9IENs
YXNzKCk7DQpDbGVhckFidXNlQWN0aW9uLnByb3RvdHlwZSA9ICB7DQoJaW5pdGlh
bGl6ZTogZnVuY3Rpb24odGFyZ2V0S2V5KXsNCgkJdmFyIGRhdGEgPSBuZXcgT2Jq
ZWN0KCk7DQoJCWRhdGEuVGFyZ2V0S2V5ID0gdGFyZ2V0S2V5Ow0KCQl0aGlzLkNs
ZWFyQWJ1c2VBY3Rpb24gPSBkYXRhOw0KCX0NCn0NCg0KU2V0Q29tbWVudEJsb2Nr
aW5nU3RhdGVBY3Rpb24gPSBDbGFzcygpOw0KU2V0Q29tbWVudEJsb2NraW5nU3Rh
dGVBY3Rpb24ucHJvdG90eXBlID0gew0KCWluaXRpYWxpemU6IGZ1bmN0aW9uKGNv
bW1lbnRLZXksIGJsb2NraW5nU3RhdGUpew0KCQl2YXIgZGF0YSA9IG5ldyBPYmpl
Y3QoKTsNCgkJZGF0YS5Db21tZW50S2V5ID0gY29tbWVudEtleTsNCgkJZGF0YS5D
b21tZW50QmxvY2tpbmdTdGF0ZSA9IGJsb2NraW5nU3RhdGU7DQoJCXRoaXMuU2V0
Q29tbWVudEJsb2NraW5nU3RhdGVBY3Rpb24gPSBkYXRhOw0KCX0NCn0NCi8vQ29t
bXVuaXR5IGZlZWQgDQpSZWNlbnRBY3Rpdml0eVJlcXVlc3QgPSBDbGFzcygpOw0K
UmVjZW50QWN0aXZpdHlSZXF1ZXN0LnByb3RvdHlwZSA9IHsNCiAgICBpbml0aWFs
aXplOiBmdW5jdGlvbihhY3Rpdml0eUZvclR5cGVzLCBjb3VudCkgeyANCiAgICAg
ICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGRhdGEuQWN0aXZp
dHlGb3JUeXBlcyA9IGFjdGl2aXR5Rm9yVHlwZXM7DQogICAgICAgIGRhdGEuQ291
bnQgPSBjb3VudDsNCiAgICAgICAgdGhpcy5SZWNlbnRBY3Rpdml0eVJlcXVlc3Qg
PSBkYXRhOw0KICAgIH0NCn0JDQp9KSgpOw0K
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://business.timesonline.co.uk/tol/img/favicon.ico
Content-Transfer-Encoding: Base64
AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABML
AAATCwAAAAAAAAAAAAAA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAKyIAAAAAAAAAHRcAc1sA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYAKyIA5rYA5rYAc1sAAAAAAAAAc1sA5rYA
5rYAOi4A5rYA5rYA5rYA5rYA5rYA5rYAAAAArIgA5rYAc1sAAAAAAAAAc1sA5rYA
u5QAAAAA5rYA5rYA5rYA5rYA5rYA5rYAAAAAAAAAOi4AHRcAAAAAAAAAOi4AOi4A
AAAAAAAA5rYA5rYA5rYA5rYA5rYA5rYArIgArIgArIgArIgArIgArIgArIgArIgA
rIgArIgA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA
5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA5rYA
5rYA5rYA5rYA5rYA5rYAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=alternate.css
Content-Type: text/css; charset=ISO-8859-1; name=alternate.css
Content-Location: http://business.timesonline.co.uk/tol/css/alternate.css
Content-Transfer-Encoding: 8bit
/**********************
Alternative stylesheet for user agents that does not implement the @import method.
**********************/
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=bg-page.gif
Content-Type: image/gif; name=bg-page.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/bg-page.gif
Content-Transfer-Encoding: Base64
R0lGODlhgAcBAIAAAP///9nZ2SH5BAAAAAAALAAAAACABwEAAAJCjI+py+0Po5y0
2ouz3rz7D4YfQJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMphMlikqn
1Kr1is1qt9YCADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=puff-sides-385.gif
Content-Type: image/gif; name=puff-sides-385.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/puff-sides-385.gif
Content-Transfer-Encoding: Base64
R0lGODlhgQEEAIABAKWkpP///yH5BAEAAAEALAAAAACBAQQAAAIqjI+py+0Po5y0
2ouz3rz7D4biSJbmiaZqCKzuC8fyTMdAW+f6zvc+CSgAADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=related-attachements-top.gif
Content-Type: image/gif; name=related-attachements-top.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/related-attachements-top.gif
Content-Transfer-Encoding: Base64
R0lGODlhpQBkAMQAAP///9nZ2fz8/N/f3+zs7NXV1c/Pz/X19czMzNLS0u/v7/n5
+dPT0+Xl5c7OztbW1tHR0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACwAAAAApQBkAAAF/2AgjmRpnmiqrmzrvjCaOARg33iu73zv
/8CgcEgs+gKGmnHJbDqfUGFAgThEr9is9hoAEAzWrXhMJne9hkV5zW4Xz4BBQeCu
2+/w+PzO74vzACJ+g4ROgAIFA4WLjECAAIiKjZOUgTsLSZWahY82B5mboXg9BwgK
oqhtnTdfYamvW6usYLC1WLI3DQx0tr1NuDdyvL7EQ8DBD8PFyz3HNpHM0TzOz4nS
1zfUNwwN2NcwCQgIEN7lxuboP9rp0uvszO7vxfHyvvT1tvf4sPr7qf3+RAEMuGkg
wUoGD05KqJARw4acIGJ7KNEPxYp8LmK0o3Gjm44e2YAMWWYkyTEmT4nGUtkrJctb
L2u5jAllJk1DN//lRGVzp5GePokADSqFqKahRtUlpYR06TSnjZpCzSF1ajarEbEO
qoqVq1WvU8FCFeuU7FKzSdEaVUuUbVC3PuHulJuT7k27NPHG1PuSL0u/KgGfFEyS
cEjDHhFvVIyRcUXHEiFDlNyQskLLBzET1ByQsz/P+wKEAAA7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=related-attachements-side.gif
Content-Type: image/gif; name=related-attachements-side.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/related-attachements-side.gif
Content-Transfer-Encoding: Base64
R0lGODlhpQABAIAAANnZ2f///yH5BAEAAAEALAAAAAClAAEAAAIMjI+py+0Po5y0
PlAAADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=related-attachements-bottom.gif
Content-Type: image/gif; name=related-attachements-bottom.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/related-attachements-bottom.gif
Content-Transfer-Encoding: Base64
R0lGODlhuQAEAJEBANnZ2QAAAAAAAAAAACH5BAEAAAEALAAAAAC5AAQAAAIZhI+p
y+0Po5y02ouz3rz7D4biSJbmiaZpAQA7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=puff-bottom.gif
Content-Type: image/gif; name=puff-bottom.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/puff-bottom.gif
Content-Transfer-Encoding: Base64
R0lGODlhuQANAMQcAKWkpP////Tz8/n5+d3c3Ojo6NfX1+7u7tHR0cbGxtHQ0OLi
4ru6uqqpqaSioszLy9fW1qSjo8bFxbu5udfX1rW0tMG/v8HAv8HAwO7t7fPz86+u
rv///wAAAAAAAAAAACH5BAEAABwALAAAAAC5AA0AAAXDYMCNZGmeaKqubOu+cCzP
bQTQeK7vfA8fg1bi5isaj0ijZcPBQDgClECUrFqvWE4CQSoYOI3JQLEgOajZtHoN
UwRTBoLGwbCx73h8vHVQCB4ERHmDhEkMByoDCAIIDyRohZGSNAUFKQMUBQsJb4+T
n6AuDWUmBAQCF4gogqGtrQJRJV4DE6QqrK65khVPUG4SXy6QusSDBZiMCTIAAAEB
zM7Qz83T0dTS2Nfa1tzV3tnd4N/b4+Hk4ujn6ubmGQQSsTIhADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=puff-top.gif
Content-Type: image/gif; name=puff-top.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/puff-top.gif
Content-Transfer-Encoding: Base64
R0lGODlhBAABAIABAKWkpP///yH5BAEAAAEALAAAAAAEAAEAAAIDBBIFADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=puff-sides.gif
Content-Type: image/gif; name=puff-sides.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/puff-sides.gif
Content-Transfer-Encoding: Base64
R0lGODlhuQAEAIABAKWkpP///yH5BAEAAAEALAAAAAC5AAQAAAIdjI+py+0Po5y0
2ouz3rz7C3ziSJamAoTnyrbuAhQAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=sketch-top-160.gif
Content-Type: image/gif; name=sketch-top-160.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/sketch-top-160.gif
Content-Transfer-Encoding: Base64
R0lGODlhoAADAPcdANnZ2eDg4P/+9efn5+Pi4Ozs5+Xl4tvb2+Xl5d3d3efn5P38
8+Tk5Onp6d7e3eLi4vb17u7u6evr6+rp5e7u7t7e3vr68uDg3vj38PPz8/Pz7Ozs
7PDw8PX19QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAB0ALAAAAACgAAMAAAjdADsIHEiwoMGCGTJQGMCw
AcOHAxpIYMgAwQAECAJo3MhRIwIGHB94ZACx5MYGEiVQmJixY4AKAGLKlPlyJs2a
NnPqrOAywIGNDwtS4EChwYMECXwmOKCzqdOnUKNKnarzAQOZTBPk1Ir06c+OJB+2
7NnxwYANHQAIWLt2wQILBTRAiABBgYMLBhwQYArggF8ABgAQCHxh5gECBBwAcHAX
sePHBiYQUDDZgAEFkgcbIFAgcgQFCjYTkFwgQgHOBVKrNq1AwwIMECCwXSAAg4W2
bHPjXntbt+/fwIMDCAgAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=sketch-sides-160.gif
Content-Type: image/gif; name=sketch-sides-160.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/sketch-sides-160.gif
Content-Transfer-Encoding: Base64
R0lGODlhoAABAIAAANnZ2f/+9SH5BAAAAAAALAAAAACgAAEAAAIMRI6py+0Po5y0
WgUKADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=sketch-bottom-160.gif
Content-Type: image/gif; name=sketch-bottom-160.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/sketch-bottom-160.gif
Content-Transfer-Encoding: Base64
R0lGODlhoAADAPcdANnZ2ePi4P/+9ezs5+Dg4Ofn59vb2+Li4t7e3eTk5Orp5fPz
8+7u6d3d3efn5OXl5fb17vHw6+Xl4unp6e7u7uDg3t7e3vLy8v388/Dw8Ozs7Pj3
8PPz7PX19QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAB0ALAAAAACgAAMAAAjeAAEIGDhwgMEACA0gXIiw
AoCHECNKjFgB4UQAFS8+rMgQoYIBESBEiMCAwUKDKFM6UIBQAsOVHWMGUPBRgQOD
JFMaZIASAgYMBIMKHUr0IYcBLmXG/IjSQUwDGh8iQACAqkSqUB86kBC1q9evYMOK
vWgAgcKpEhhA2NChrdu3cOPKndvhgtsFdPHWzdBBbwcKFDIs0JCgwIQCiBMXIGB4
8QMCBA4kSDDhwYHFBw5AfpAgcwICny1DHk3aQoMGABpAzvrQAgDNrwEYmP3QAIEG
B0wnoDCBgoYCFxb4dRsQADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=shadow-sides-wide-356.gif
Content-Type: image/gif; name=shadow-sides-wide-356.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/shadow-sides-wide-356.gif
Content-Transfer-Encoding: Base64
R0lGODlhZAEBAJEAALKyspmZmf///wAAACH5BAAAAAAALAAAAABkAQEAAAIUjI6p
y+0Po5y02ouz3rz7HoQhUAAAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=shadow-header-wide-356.gif
Content-Type: image/gif; name=shadow-header-wide-356.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/shadow-header-wide-356.gif
Content-Transfer-Encoding: Base64
R0lGODlhZAEKAPcCAJmZmf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAABkAQoAAAiBAAEEGEiwoMGDCBMqXMiw
ocOHECNKnEixosWLGDNqzAhAgEePAjeKHEmypMmTKFOqXImw40cBIVnKnEmzps2b
ODG6/Bgzp8+fQIMKHbpwJ0iiSJMqXcr0olGYTaNKnUo16NOeVbNq3cq14tWuYMOK
Fft1rNmzaJOWTcu2rVuWTwMCADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=shadow-footer-wide-356.gif
Content-Type: image/gif; name=shadow-footer-wide-356.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/border/shadow-footer-wide-356.gif
Content-Transfer-Encoding: Base64
R0lGODlhZAEGAPcAAMzMzNnZ2bKyspmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAAQALAAAAABkAQYAAAh8AAcIHEiwoMGDCBMqXMiw
ocOHECNKnEixosWLGDNqJCiAgMePHgFsHEmypMmTKFOqXGmyI8iPIlnKnEmzps2b
OCu6fEkgZs6fQIMKHUoU4c6XPosqXcq0qVOIR0EGEEC1qtWrWLNq3cq1q9evYMOK
HUu2rNmzaNOqXYs2IAA7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=classified-marker.gif
Content-Type: image/gif; name=classified-marker.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/classified-marker.gif
Content-Transfer-Encoding: Base64
R0lGODlhDwAHALMAALy8vLKysuzs7JWVlampqYKCgsXFxZ+fn29vb/X19WZmZv//
/wAAAAAAAAAAAAAAACwAAAAADwAHAAAEHnDJSWsyFtdFUEjCgWjboSCKAmxUkR4s
lRRDbCV2BAA7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=quote-left-red-beige-bg.gif
Content-Type: image/gif; name=quote-left-red-beige-bg.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/quote-left-red-beige-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlhCwAJALMAAPXhyuOBc+aRgu/Brc8QDvLRu9hAOt5gVttQSOyxnuFwZdIg
HcwAAPjx2AAAAAAAACH5BAAAAAAALAAAAAALAAkAAAQxsElh5ETyrGTRbspSWCHQ
JAwnoapCWOArGQyzDA1tD0jNHI1e7RDwKRrF2rEnkjALEQA7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=quote-right-red-beige-bg.gif
Content-Type: image/gif; name=quote-right-red-beige-bg.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/quote-right-red-beige-bg.gif
Content-Transfer-Encoding: Base64
R0lGODlhCwAJALMAAPXhyuOBc+aRgu/Brc8QDvLRu9hAOt5gVttQSOyxnuFwZdIg
HcwAAPjx2AAAAAAAACH5BAAAAAAALAAAAAALAAkAAAQysCyGWpO0KcaD5kxwgNXI
IcPEGE3KsRahWPHcJExC4zqw2JffbVGxJBYHC0JAaxiYlggAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=14x14-email.gif
Content-Type: image/gif; name=14x14-email.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/icon/14x14-email.gif
Content-Transfer-Encoding: Base64
R0lGODlhDgAOAMQaAP///wCJ2AB/1QCO2gB60wCT3AB10QCX3QCE1gBwzwCa3gBs
ziSr5ACd3ySC1SSK1wBpzSST2ySW3SSn4ySh4CSO2SSk4iSG1ySp40yp4v///wAA
AAAAAAAAAAAAAAAAACH5BAEAABoALAAAAAAOAA4AAAVaoCaKTAMwY0o2ZoOqGqbM
wIyp06EfwD6NloJQCBgWLBrKYMkEMJeUgHQaAFClgKwWkEF4vxKBeEwWSzQRgnrN
jowqhrg8XlE9Evj8A6a5LP4LF3wiDhAQDiohADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=14x14-print.gif
Content-Type: image/gif; name=14x14-print.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/icon/14x14-print.gif
Content-Transfer-Encoding: Base64
R0lGODlhDgAOANUxAACQ2////wB10f3+/wBwz83n9wBszgCK2SOf4AKQ2wB60wB/
1QCF1iSV3BCd3wCT3ACW3SSC1c/n9xCC1gBpzc3q+EKs5BCH2Nbu+geU3K/b86/V
8QWC1QB20c3o+AWc3wWe4AiT3L/e9L/k9gx/1CSr5CSK1ySO2c/o9wiP2h6T3ACA
1RCO2iSh4M/r+AeT3CSG1////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAADEALAAAAAAOAA4AAAZ2wJgwQAwIj8jAwDIgIo9K
BAAxwDggJehACgBkKq4raGjpmhOV0ePxiUXN3VDA3CIOXmeP5sA/uDEFCQAJBSgs
DIgMQhcSBSkFEhcrC5QNQgoTIgEbEwqeCpZCKgKkAh2lJ08cBKytJk9CJAazBjCw
RxEUFBFPQQA7
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=tol.css
Content-Type: text/css; charset=ISO-8859-1; name=tol.css
Content-Location: http://business.timesonline.co.uk/tol/css/tol.css
Content-Transfer-Encoding: 8bit
body {
margin:0px;
padding:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:70%;
line-height:1.0em;
text-align:center;
color:#000;
background:#fff url(../img/global/bg-page.gif) repeat-y top;
}
.access-text {
display:none;
}
.clear {
overflow:hidden;
clear:both;
height:1px;
margin:-1px 0px 0px 0px;
font-size:1px;
}
.clear-simple {
clear:both;
}
.display-inline {
display:inline;
}
.width-460 {
width:460px;
}
.display-block {
display:block;
}
.float-left {
float:left;
display:inline;
}
.float-right {
float:right;
display:inline;
}
.text-left {
text-align:left;
}
.text-right {
text-align:right;
}
.text-center {
text-align:center;
}
p.where-am-i {
float:left;
display:inline;
padding:0px 9px;
color:#666;
}
img {
border:0px;
}
body.print-friendly {
background:none;
}
#region-print-friendly {
margin:10px 15px;
padding-bottom:10px;
text-align:left;
}
#shell {
}
#page {
margin:auto;
width:996px;
text-align:left;
padding:5px 0px 10px 0px;
}
#region-top-ad {
display:block;
width:956px;
margin:0px 20px;
padding-bottom:15px;
border-bottom:1px solid #d9d9d9;
}
#region-nav {
position:relative;
left:20px;
width:956px;
margin:0px;
padding:0px;
}
#region-content {
display:block;
width:956px;
margin:0px 20px 0px 20px;
}
#region-body-and-footer {
margin:0px;
padding:0px;
}
#region-footer {
clear:both;
display:block;
margin-top:-1px;
padding-top:1px;
}
#grid-column4 {
float:right;
}
#grid-column4-non-grey {
width:356px;
margin:0px;
}
#grid-column4-grey {
background:#f0f0f0;
margin:0px 0px 15px 0px;
padding:10px 10px 0px 10px;
width:356px;
voice-family: "\"}\"";
width:336px;
}
#grid-column4-grey-1 {
background:#f0f0f0;
margin:0px 0px 15px 0px;
padding:10px 10px 0px 10px;
width:356px;
voice-family: "\"}\"";
width:336px;
}
#google-ad {
border:1px solid #d9d9d9;
margin:0px 0px 15px 0px;
padding:9px;
width:356px;
voice-family: "\"}\"";
width:334px;
}
#google-ad-art {
border:1px solid #d9d9d9;
margin:0px 0px 15px 0px;
padding:9px;
width:356px;
voice-family: "\"}\"";
width:364px;
}
#region-column1and2-layout0 {
display:inline;
float:left;
width:956px;
margin:0px;
padding:0px;
}
#region-column1-layout0 {
display:inline;
float:left;
width:585px;
margin:0px 15px 0px 0px;
padding:0px;
}
#region-column1and2-container-layout2 {
display:inline;
float:left;
width:600px;
}
* html #region-column1and2-layout2 {
display:inline;
float:left;
width:585px;
margin:0px 10px 0px 0px;
padding:0px;
}
#region-column1and2-layout2 {
display:inline;
float:left;
width:585px;
margin:0px 15px 0px 0px;
padding:0px;
}
#region-column1-layout2 {
display:inline;
float:left;
width:385px;
margin:0px 15px 0px 0px;
padding:0px;
overflow: visible
}
#region-column2-layout2 {
display:inline;
float:left;
width:185px;
margin:-1px 15px 0px 0px;
padding:0px;
}
#region-column1-layout3 {
display:inline;
float:left;
width:756px;
margin:0px 15px 0px 0px;
padding:0px;
}
#region-column2-top-layout3 {
width:185px;
margin:0px 0px 15px 0px;
}
#region-column2-middle-layout3 {
background:#f0f0f0;
margin:0px 0px 15px 0px;
padding:13px 12px 13px 13px;
width:185px;
voice-family: "\"}\"";
width:160px;
}
#region-column2-bottom-layout3 {
width:185px;
margin:0px 0px 15px 0px;
}
#ad-top {
width:956px;
}
.prop-90 {
min-height:90px;
float:right;
width:1px;
}
* html .prop-90{
height:90px;
}
.ad-top-right {
float:right;
padding:10px;
min-height:70px;
width:213px;
voice-family: "\"}\"";
width:193px;
}
* html .ad-top-right{
height:70px;
}
#header {
clear:both;
}
.footer-nav-container {
clear:both;
border-top:2px solid #666;
background:#f0f0f0;
}
#logo-and-quote-container {
width:100%;
}
.header-quote-container {
width:356px;
}
.header-quote-left {
float:left;
padding-right:10px;
}
.header-quote-right {
display:inline;
}
.nav-primary {
clear:both;
float:left;
width:100%;
background:#d9d9d9;
}
.nav-secondary {
clear:both;
float:left;
width:100%;
background:#666;
}
.crumbtrail-and-search {
clear:both;
float:left;
width:100%;
background:#f0f0f0;
}
p.global-search-prefix {
padding:5px 0px 5px 1px;
float:left;
}
.global-search-sponsored-by {
position:relative;
top:-3px;
}
.global-search-go {
float:left;
margin:5px 8px 0px 0px;
}
.crumbtrail-prefix {
float:left;
padding:7px 0px 0px 0px;
}
.source-and-global-links-container {
clear:both;
float:left;
width:100%;
padding:8px 0px;
}
.global-links-seperator {
padding:0px 9px 0px 7px;
border-right:1px solid #b1b1b1;
}
.global-links-seperator-last {
padding:0px 0px 0px 7px;
}
.text-separator {
margin:0px 0px 0px 10px;
border-left:1px solid #b1b1b1;
padding:0px 0px 0px 10px;
}
.comments-pagination-links-seperator {
padding:0px 4px 0px 4px;
border-right:1px solid #b1b1b1;
}
.comments-pagination-links-seperator-last {
padding:0px 0px 0px 4px;
}
.position-relative {
position:relative;
}
.intro-html-container {
background: #f7eebe;
margin: 1px 0px 15px 0px;
width: 353px;
padding: 0px;
}
.intro-html {
float: left;
width: 165px;
padding: 5px 0 0 15px;
}
img.header-quote-open {
margin:0px 4px 0px 0px;
}
img.header-quote-close {
margin:0px 8px 0px 4px;
}
ul {
list-style-type:none;
margin:0px;
padding:0px;
}
li {
display:inline;
}
li.block {
display:block;
}
ol {
list-style-type:decimal;
list-style:inside;
margin:0px;
padding:0px;
}
form {
margin:0px;
padding:0px;
}
input, textarea, select {
font-family:Arial, Helvetica, sans-serif;
font-size:1.1em;
}
input.checkbox {
margin-left:0px! important;
margin-left:-4px;
}
.checkbox-label {
float:left;
display:inline;
padding:2px 0px 0px 1px! important;
padding:3px 0px 0px 1px;
}
.width-input-30 {
width:30px;
voice-family: "\"}\"";
width:30px;
}
.width-input-35 {
width:35px;
voice-family: "\"}\"";
width:35px;
}
.width-input-40 {
width:40px;
voice-family: "\"}\"";
width:40px;
}
.width-input-50 {
width:47px;
voice-family: "\"}\"";
width:50px;
}
.width-input-79 {
width:79px;
voice-family: "\"}\"";
width:74px! important;
width:72px;
margin-top:1px! important;
margin-top:0px;
}
.width-input-105 {
width:105px;
voice-family: "\"}\"";
width:100px! important;
width:98px;
}
.width-input-142 {
width:142px;
margin-top:-1px;
voice-family: "\"}\"";
width:138px! important;
width:136px;
margin-top:0px;
}
.width-input-152 {
width:152px;
margin-top:-1px;
voice-family: "\"}\"";
width:148px! important;
width:146px;
margin-top:0px;
}
.width-input-154 {
width:154px;
margin-top:-1px;
voice-family: "\"}\"";
width:150px! important;
width:148px;
margin-top:0px;
}
.width-input-158 {
width:163px;
voice-family: "\"}\"";
width:158px;
}
.width-input-295 {
width:295px;
}
.width-input-495 {
width:495px! important;
width:493px;
}
.width-select-40 {
width:40px;
voice-family: "\"}\"";
width:40px;
}
.width-select-50 {
width:47px;
voice-family: "\"}\"";
width:50px;
}
.width-select-57 {
width:57px;
}
.width-select-60 {
width:60px;
voice-family: "\"}\"";
width:60px;
}
.width-select-67 {
width:67px;
voice-family: "\"}\"";
width:61px;
}
.width-select-80 {
width:80px;
voice-family: "\"}\"";
width:77px;
}
.width-select-167 {
width:167px;
}
.width-400 {
width:400px;
}
.carousel-3-teaser-container {
float:left;
padding:0px 14px 0px 14px;
margin:0px 0px 5px 0px;
background:url(../img/global/border/carousel-divider-585.gif) repeat-y top left;
}
.carousel-navigation {
clear:both;
margin-top:1px;
border-top:1px solid #d9d9d9;
text-align:center;
padding:2px 0px 5px 0px;
}
.browser-left-and-right {
position:relative;
top:3px;
padding:0px 5px;
}
.midline-white-230 {
background:url(../img/global/border/midline-white-230.gif) repeat-y;
}
.midline-white-393 {
background:url(../img/global/border/midline-white-393.gif) repeat-y;
}
.article-author {
border-bottom:1px solid #d9d9d9;
padding:0px 0px 10px 0px;
margin:0px 0px 5px 0px;
}
.reader-rating {
margin:2px 0px -2px 1px;
}
.article-portrait-image {
background:#f0f0f0;
width:185px;
padding:0px 0px 0px 0px;
margin:0px 0px 5px 0px;
}
.article-portrait-image-pair {
background:#fff;
width:185px;
margin:0px 0px 5px 0px;
}
.article-portrait-image-text-container {
width:185px;
background:#f0f0f0;
}
.article-landscape-image-text-container {
width:385px;
background:#f0f0f0;
}
.article-panorama-image-text-container {
width:585px;
background:#f0f0f0;
}
.pagination-container {
clear:both;
float:left;
width:100%;
background:#f0f0f0;
text-align:center;
}
.image-navigation {
border-top:1px solid #d9d9d9;
padding:5px 0px 3px 0px;
}
.puff-sides-385 {
background:url(../img/global/border/puff-sides-385.gif) repeat-y top left;
}
.carousel-2-teaser-container {
float:left;
padding:0px 14px 0px 14px;
margin:3px 0px 5px 0px;
background:url(../img/global/border/carousel-divider-385.gif) repeat-y top left;
}
.archive-2-teaser-container {
float:left;
padding:0px 14px 0px 0;
margin:0px;
background:url(http://timesonline.co.uk/tol/img/global/border/carousel-divider-385.gif) repeat-y top left;
}
.related-attachements-container {
width:165px;
margin:0px 16px 10px 0px;
padding:4px 0px 0px 0px;
}
.related-attachements-top {
background:transparent url(../img/global/border/related-attachements-top.gif) no-repeat top left;
padding:0px 20px 0px 0px;
}
.related-attachements-top h3.section-heading {
margin:0px;
padding:0px;
}
.related-attachements-side {
background:transparent url(../img/global/border/related-attachements-side.gif) repeat-y top left;
}
.related-attachements-bottom {
background:transparent url(../img/global/border/related-attachements-bottom.gif) repeat-y top left;
}
.poll-result-label {
width:120px;
}
.bg-poll {
background:transparent url(../img/global/poll-blank-bar.gif) repeat-x 0px 6px;
}
.quote-box-left {
float:left;
display:inline;
width:46.27%;
voice-family: "\"}\"";
width:49.85%;
}
.pagination-left {
float:left;
margin-top:-1.2em;
}
.pagination-center {
text-align:center;
}
.pagination-right {
float:right;
margin-top:-1.2em;
}
.dotted-385-2col-divider {
background:transparent url(../img/global/border/index-divider-2-col-385.gif) top left repeat-y;
}
.bg-grey-line-left {
background:transparent url(../img/global/grey-line.gif) repeat-y top left;
}
.bg-grey-line-right {
background:transparent url(../img/global/grey-line.gif) repeat-y top right;
}
.bg-grey-line-left-right {
background: url(grey-line-left-right.gif);
}
.search-pagination-adjust {
margin-top:-1.7em;
}
#editors-box {
background:#06c;
padding:6px 10px 6px 10px;
}
#nav-level-3 {
background-color:#666;
padding:6px 10px 6px 10px;
}
.puff-container {
background:url(../img/global/border/puff-bottom.gif) no-repeat bottom left;
padding-bottom:13px;
margin-bottom:15px;
}
.puff-top {
background:url(../img/global/border/puff-top.gif) repeat-x top left;
margin-top: 1px;
}
.puff-sides {
background:url(../img/global/border/puff-sides.gif) repeat-y top left;
}
.puff-padding {
padding:6px 10px 0px 10px;
}
.puff-container-combine {
background:none;
padding-bottom:0;
margin-bottom:0;
zoom:1;
z-index:2;
}
.puff-container-combine-yellow {
background:none;
padding-bottom:0;
margin-bottom:0;
zoom:1;
z-index:2;
}
.puff-container-combine p.small{
padding-bottom:10px;
}
.puff-container-combine-yellow p.small{
}
.puff-container-yellow {
background:#f7eebe url(../assets/puff-bottom-yellow.gif) no-repeat bottom left;
padding-bottom:13px;
margin-bottom:15px;
}
.puff-container-yellow .puff-top {
background-image:none;
}
.puff-container-combine-yellow .puff-top {
background:#f7eebe url(puff-top-yellow.gif) repeat-x bottom left;
}
.puff-container-yellow .puff-sides, .puff-container-combine-yellow .puff-sides {
background-image:none;
}
.puff-container-yellow .puff-padding {
padding:6px 10px 0px 10px;
}
.blue-chevron-list-left{
background:url(../img/global/button/button-left.gif) no-repeat top left;
height:16px; padding-left:20px;
}
.blue-chevron-list-right{
background:url(../img/global/button/button-right.gif) no-repeat top right;
height:16px; padding-right:20px;
}
.bg-picture-gallery-top {
background:transparent url(../img/global/bg-picture-gallery-top.gif) no-repeat top left;
padding:6px 10px 0px 10px;
}
.bg-picture-gallery-bottom {
background:transparent url(../img/global/bg-picture-gallery-bottom.gif) no-repeat top left;
height:20px;
margin:-8px 0px 15px 0px;
}
.dotted-585-right {
background:transparent url(../img/global/border/index-divider-585-right.gif) top left repeat-y;
}
.dotted-585-left {
background:transparent url(../img/global/border/index-divider-585-left.gif) top left repeat-y;
}
.dotted-585-both {
background:transparent url(../img/global/border/index-divider-585-both.gif) top left repeat-y;
}
.advert-long-container {
float:right;
width:160px;
}
.reports-container {
margin:0px 0px 10px 0px;
border:1px solid #d9d9d9;
background:#fff;
padding:5px 9px 4px 9px;
width:336px;
voice-family: "\"}\"";
width:316px;
}
.reports-container h3.section-heading {
padding:0px;
}
.reports-long-container {
float:left;
display:inline;
background:#fff;
border:1px solid #d9d9d9;
padding:0px;
width:160px;
voice-family: "\"}\"";
width:158px;
}
.reports-long-container h3.section-heading {
padding:5px 9px 7px 9px;
}
.puff-square {
margin-bottom:10px;
float:left;
border:1px solid #d9d9d9;
background:#fff;
width:336px;
voice-family: "\"}\"";
width:334px;
}
.puff-square-non-grey {
margin-bottom:10px;
float:left;
border:1px solid #d9d9d9;
background:#fff;
width:356px;
voice-family: "\"}\"";
width:354px;
}
.puff-square-high-impact {
margin-bottom:10px;
float:left;
width:336px;
background:#06c;
}
.puff-square-high-impact-non-grey {
margin-bottom:10px;
float:left;
width:356px;
background:#06c;
}
#grid-column4-non-grey .puff-square-high-impact
{
width:355px;
}
.superpuff-bottom {
float:left;
width:356px;
height:13px;
margin-top:-14px;
background:url(../img/global/border/puff-bottom-356.gif) no-repeat bottom right;
}
.quick-links-container {
background:#fff;
border:1px solid #d9d9d9;
margin-bottom:10px;
}
a.lowercase-white-tab, a.lowercase-white-tab:active, a.lowercase-white-tab:visited {
color:#06c;
padding:0px 12px 0px 0px;
margin:0px;
cursor:pointer;
}
a.lowercase-white-tab:hover {
text-decoration:underline;
}
a.lowercase-white-tab-selected, a.lowercase-white-tab-selected:active, a.lowercase-white-tab-selected:visited, a.lowercase-white-tab-selected:hover {
color:#666;
background:#fff url(../img/global/quicklinks-marker.gif) no-repeat center right;
padding:0px 12px 0px 0px;
margin:0px;
text-decoration:none;
cursor:text;
}
.classifieds-container {
background:transparent url(../img/global/border/sketch-top-336.gif) no-repeat left top;
}
.classifieds-sides {
background:transparent url(../img/global/border/sketch-sides-336.gif) repeat-y left top;
}
.classifieds-sides-fff {
margin-top:-1px;
background:transparent url(../img/global/border/classifieds-sides-336-fff.gif) repeat-y left top;
}
.classifieds-bottom {
background:transparent url(../img/global/border/sketch-bottom-336.gif) no-repeat left top;
}
.classifieds-vertical {
background:transparent url(../img/global/border/puff-vertical.gif) repeat-y left top;
}
.classifieds-vertical-right {
background:transparent url(../img/global/border/puff-vertical.gif) repeat-y right top;
}
.classifieds-width-70 {
width:75px! important;
width:70px;
}
.classifieds-links {
border-bottom:1px solid #d9d9d9;
padding:0px 0px 0px 0px;
margin-right:1px;
}
.classifieds-long-container {
width:160px;
background:transparent url(../img/global/border/sketch-top-160.gif) no-repeat left top;
}
.classifieds-long-sides {
background:transparent url(../img/global/border/sketch-sides-160.gif) repeat-y left top;
}
.classifieds-long-bottom {
background:transparent url(../img/global/border/sketch-bottom-160.gif) no-repeat left top;
}
.classifieds-long-sides .classifieds-long {
width:65px;
}
.classifieds-narrow-container {
background:transparent url(../img/global/border/sketch-top-185.gif) no-repeat left top;
margin:0px 0px 10px 0px;
width:185px;
}
.classifieds-narrow-sides {
background:transparent url(../img/global/border/sketch-sides-185.gif) repeat-y left top;
}
.classifieds-narrow-bottom {
background:transparent url(../img/global/border/sketch-bottom-185.gif) no-repeat left top;
}
.classifieds-narrow-sides .classifieds-narrow {
width:80px;
}
.classifieds-single-container {
margin:0px 0px 5px 0px! important;
margin:0px;
}
.classifieds-label {
text-align:right;
width:108px;
voice-family: "\"}\"";
width:100px;
}
.classifieds-label-mini {
text-align:right;
width:43px;
voice-family: "\"}\"";
width:37px;
}
.classifieds-single-container select {
width:142px
}
.classifieds-single-container .mini select {
width:80px
}
.classifieds-shadow-top {
height:13px! important;
height:5px;
background:transparent url(../img/global/border/classifieds-shadow-top.gif) 0px 0px no-repeat;
margin-bottom:-3px;
}
.classifieds-shadow-sides {
background:transparent url(../img/global/border/classifieds-shadow-sides.gif) 0 0 repeat-y;
padding-right:12px;
}
.classifieds-shadow-sides-fff {
background:transparent url(../img/global/border/classifieds-shadow-sides-fff.gif) 0 0 repeat-y;
padding-right:12px;
}
.classifieds-shadow-bottom {
height:6px;
background:transparent url(../img/global/border/classifieds-shadow-bottom.gif) 0px 0px no-repeat;
margin-bottom:0px;
}
select.width-input-100 {
width:99px;
voice-family: "\"}\"";
width:94px! important;
width:98px;
}
input.width-input-100 {
width:99px;
voice-family: "\"}\"";
width:94px! important;
width:92px;
}
#scheduler-links {
padding-top:0px! important;
padding-top:2px;
}
.puff-sides-356 {
background:url(../img/global/border/puff-sides-356.gif) repeat-y top left;
}
.puff-sides-336 {
background:url(../img/global/border/puff-sides-336.gif) repeat-y top left;
}
.debate-quote-container {
background:url(../img/global/border/puff-debate-bottom.gif) no-repeat bottom right;
padding-bottom:15px;
}
.author-box {
border:1px solid #d9d9d9;
padding:2px 3px 2px 3px;
}
.midline-grey-393 {
background:url(../img/global/border/midline-grey-393.gif) repeat-y;
}
.a2z-header {
padding: 10px 0 20px;
border-top: 1px solid #b1b1b1;
font-family: georgia,serif;
font-size: 1.5em;
text-transform: uppercase;
font-weight: bold;
}
.a2z-archive-header {
padding: 10px 0 20px;
font-family: georgia,serif;
font-size: 1.5em;
text-transform: uppercase;
font-weight: bold;
}
.a2z-letters {
padding: 10px 0;
border-top: 1px solid #b1b1b1;
border-bottom: 1px solid #b1b1b1;
font-family: georgia,serif;
font-size: 1.5em;
text-transform: uppercase;
font-weight: bold;
letter-spacing: 1pt;
}
.a2z-selected-letter {
padding: 15px 0px 2px;
font-family: georgia,serif;
font-size: 1.5em;
text-transform: uppercase;
font-weight: bold;
}
.a2z-column {
float: left;
margin: 0px 15px 0px 0px;
padding: 0;
width: 175px;
}
.a2z-column p {
margin: 0;
padding: 0;
}
.gallery-image-background {
height:385px;
background:transparent url(../img/global/border/picture-gallery.gif) no-repeat top left;
}
.gallery-image-background img {
position:relative;
top:0px;
left:0px;
}
.grey-filter {
margin-left:2px;
margin-right:2px;
height:50px;
width:50px;
}
.gallery-target {
background:transparent url(../img/global/gallery-target.gif) no-repeat top left;
height:52px;
width:52px;
}
.gallery-target img {
margin:1px;
}
.popup-skyscraper {
position:absolute;
top:10px;
right:10px;
}
.popup-variable-width {
margin-right:175px;
}
.dark-tab-links {
border-bottom:1px solid #666;
padding:0px 0px 0px 0px;
margin-right:4px;
}
.dark-shadow-segment {
background:transparent url(../img/global/border/shadow-sides-336.gif) 0 0 repeat-y;
}
.dark-shadow-header {
background:transparent url(../img/global/border/shadow-header-336.gif) 0px 0px repeat-y;
}
.dark-shadow-footer {
background:transparent url(../img/global/border/shadow-footer-336.gif) 0px 0px no-repeat;
}
.dark-tab-links-wide {
border-bottom:1px solid #999;
padding:0px 0px 0px 0px;
margin-right:5px;
}
.dark-shadow-segment-wide {
background:transparent url(../img/global/border/shadow-sides-wide-356.gif) 0px 0px repeat-y;
}
.dark-shadow-header-wide {
background:transparent url(../img/global/border/shadow-header-wide-356.gif) 0px 0px repeat-y;
}
.dark-shadow-footer-wide {
background:transparent url(../img/global/border/shadow-footer-wide-356.gif) 0px 0px no-repeat;
}
.dark-tab {
color:#000;
background:#d9d9d9;
margin:0px 5px 0px 0px;
padding:6px 6px 3px 7px;
float:left;
border:1px solid #d9d9d9;
border-bottom:0px;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.dark-tab-simulated {
color:#fff;
background:#999;
margin:0px 5px 0px 0px;
padding:6px 6px 3px 7px;
float:left;
border:1px solid #999;
border-bottom:0px;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.dark-tab-selected {
color:#000;
background:#fff;
margin:0px 5px -1px 0px;
padding:6px 6px 4px 7px;
float:left;
border:1px solid #999;
border-bottom:0px;
}
.light-links {
border-bottom:1px solid #d9d9d9;
padding:0px 0px 0px 0px;
margin-right:1px;
}
.light-tab {
color:#000;
background:#d9d9d9;
margin:0px 5px 0px 0px;
padding:6px 8px 3px 9px;
float:left;
border:1px solid #d9d9d9;
border-bottom:0px;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.light-tab-simulated {
color:#fff;
background:#999;
margin:0px 5px 0px 0px;
padding:6px 8px 3px 9px;
float:left;
border:1px solid #999;
border-bottom:0px;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.light-tab-selected {
color:#000;
background:#fffef5;
margin:0px 5px -1px 0px;
padding:6px 8px 4px 9px;
float:left;
border:1px solid #d9d9d9;
border-bottom:0px;
}
.white-tab {
color:#000;
background:#d9d9d9;
padding:6px 0px 5px 4px! important;
padding:6px 0px 5px 5px;
margin:0px 0px 4px 4px! important;
margin:0px 0px 2px 2px;
float:left;
cursor:hand;
width:75px;
voice-family: "\"}\"";
width:70px;
cursor:pointer;
}
.white-tab-simulated {
color:#fff;
background:#999;
padding:6px 0px 5px 4px! important;
padding:6px 0px 5px 5px;
margin:0px 0px 4px 4px! important;
margin:0px 0px 2px 2px;
float:left;
cursor:hand;
width:75px;
voice-family: "\"}\"";
width:70px;
cursor:pointer;
}
.white-tab-selected {
color:#000;
background:#fffef5 url(../img/global/classified-marker.gif) no-repeat center right;
padding:6px 0px 5px 4px! important;
padding:6px 0px 5px 5px;
margin:0px 0px 4px 4px! important;
margin:0px 0px 2px 2px;
float:left;
width:75px;
voice-family: "\"}\"";
width:70px;
}
.white-line {
border-bottom:1px solid #fff;
margin-bottom:4px;
}
.grey-line {
border-bottom:1px solid #d9d9d9;
margin-bottom:4px;
}
.grey-line-left {
border-left:1px solid #d9d9d9;
}
.yellow-line {
border-bottom:2px solid #f7eebe;
margin-bottom:4px;
}
.curved-seperator-3-col {
background:url(../img/global/seperator/page-end-585.gif) no-repeat bottom left;
padding-bottom:9px;
margin-bottom:15px;
}
.curved-seperator-2-col {
background:url(../img/global/seperator/page-end-385.gif) no-repeat bottom left;
padding-bottom:9px;
margin-bottom:15px;
}
.link-seperator-first {
padding:0px 5px 0px 5px;
voice-family: "\"}\"";
padding:0px 5px 0px 0px;
}
.link-seperator {
padding:0px 5px 0px 5px;
border-left:1px solid #b1b1b1;
voice-family: "\"}\"";
padding:0px 5px 0px 7px;
}
.link-seperator-sortby-last a, a:visited{
color:#06c;
text-decoration:none;
}
.link-seperator-sortby-last a:hover{
color:#06c;
text-decoration:underline;
}
* html .link-seperator-sortby-last{
padding:0px 5px 0px 7px;;
}
.link-seperator-sortby-last {
padding:0px 5px 0px 5px;
voice-family: "\"}\"";
padding:0px 5px 0px 0px;
}
html>body .link-seperator-sortby-last{
*padding:0px 5px 0px 7px;
}
* html .link-seperator-sortby{
padding:0px 5px 0px 7px;;
}
.link-seperator-sortby a, a:visited{
color:#06c;
text-decoration:none
}
.link-seperator-sortby a:hover{
color:#06c;
text-decoration:underline;
}
.link-seperator-sortby {
padding:0px 5px 0px 5px;
border-right:1px solid #b1b1b1;
voice-family: "\"}\"";
padding:0px 5px 0px 0px;
}
html>body .link-seperator-sortby-last{
*padding:0px 5px 0px 7px;
}
.link-seperator-slash {
background:transparent url(../img/global/slash.gif) no-repeat 95% 50%;
border:1px solid #f0f0f0;
padding:0px 7px 0px 0px;
voice-family: "\"}\"";
background:transparent url(../img/global/slash.gif) no-repeat 98% 50%!important;
background:transparent url(../img/global/slash.gif) no-repeat 90% 50%;
padding:0px 11px 0px 0px;
}
.link-seperator-slash-last {
padding:0px 7px 0px 0px;
voice-family: "\"}\"";
padding:0px 11px 0px 0px;
}
.border-d9d9d9 {
border:1px solid #d9d9d9;
}
.border-fff {
border:1px solid #fff;
}
.border-f5f5f5 {
border:1px solid #f0f0f0;
}
.border-top-d9d9d9 {
border-top:1px solid #d9d9d9;
}
.border-bottom-d9d9d9 {
border-bottom:1px solid #d9d9d9;
}
.border-right-d9d9d9 {
border-right:1px solid #d9d9d9;
}
.border-left-d9d9d9 {
border-left:1px solid #d9d9d9;
}
.invisible-border {
border:1px solid #f7eebe;
}
.padding-top-1 {
padding-top:1px;
}
.padding-top-2 {
padding-top:2px;
}
.padding-top-3 {
padding-top:3px;
}
.padding-top-4 {
padding-top:4px;
}
.padding-top-5 {
padding-top:5px;
}
.padding-top-6 {
padding-top:6px;
}
.padding-top-7 {
padding-top:7px;
}
.padding-top-9 {
padding-top:9px;
}
.padding-top-10 {
padding-top:10px;
}
.padding-top-11 {
padding-top:11px;
}
.padding-top-8 {
padding-top:8px;
}
.padding-top-15 {
padding-top:15px;
}
.padding-top-16 {
padding-top:16px;
}
.padding-top-19 {
padding-top:19px;
}
.padding-top-20 {
padding-top:20px;
}
.margin-top-4 {
margin-top:4px;
}
.margin-top-15 {
margin-top:15px;
}
.margin-top-10 {
margin-top: 10px;
}
.padding-right-1 {
padding-right:1px;
}
.padding-right-3 {
padding-right:3px;
}
.padding-right-2 {
padding-right:2px;
}
.padding-right-4 {
padding-right:4px;
}
.padding-right-5 {
padding-right:5px;
}
.padding-right-7 {
padding-right:7px;
}
.padding-right-9 {
padding-right:9px;
}
.padding-right-10 {
padding-right:10px;
}
.padding-bottom-3 {
padding-bottom:3px;
}
.padding-bottom-5 {
padding-bottom:5px;
}
.padding-bottom-7 {
padding-bottom:7px;
}
.padding-bottom-8 {
padding-bottom:8px;
}
.padding-bottom-9 {
padding-bottom:9px;
}
.padding-bottom-10 {
padding-bottom:10px;
}
.padding-bottom-13{
padding-bottom:13px;
}
.padding-bottom-15 {
padding-bottom:15px;
}
.padding-left-2 {
padding-left:2px;
}
.padding-left-3 {
padding-left:3px;
}
.padding-left-4 {
padding-left:4px;
}
.padding-left-5 {
padding-left:5px;
}
.padding-left-6 {
padding-left:6px;
}
.padding-left-9 {
padding-left:9px;
}
.padding-left-10 {
padding-left:10px;
}
.padding-left-11 {
padding-left:11px;
}
.padding-left-14 {
padding-left:14px;
}
.padding-left-15 {
padding-left:15px;
}
.padding-left-20 {
padding-left:20px;
}
.padding-left-26 {
padding-left:26px;
}
.padding-left-27 {
padding-left:27px;
}
.padding-left-29 {
padding-left:29px;
}
.padding-left-31 {
padding-left:31px;
}
.padding-top-5-bottom-4 {
padding-top:5px;
padding-bottom:4px;
}
.padding-left-right-1 {
padding-left:1px;
padding-right:1px;
}
.padding-left-right-5 {
padding-left:5px;
padding-right:5px;
}
.padding-left-right-7 {
padding-left:7px;
padding-right:7px;
}
.padding-left-right-9 {
padding-left:9px;
padding-right:9px;
}
.padding-left-right-10 {
padding-left:10px;
padding-right:10px;
}
.padding-left-right-14 {
padding-left:14px;
padding-right:14px;
}
.padding-2 {
padding:2px;
}
.padding-4 {
padding:4px;
}
.padding-9 {
padding:9px;
}
.padding-10 {
padding:10px;
}
.margin-bottom-0 {
margin-bottom:0px;
}
.margin-right-1 {
margin-right:1px;
}
.margin-right-4 {
margin-right:4px;
}
.margin-right-10 {
margin-right:10px;
}
.margin-right-15 {
margin-right:15px;
}
.margin-right-18 {
margin-right:18px;
}
.margin-bottom-1-left-1 {
margin-bottom:1px;
margin-left:1px;
}
.margin-bottom-3 {
margin-bottom:3px;
}
.margin-bottom-5 {
margin-bottom:5px;
}
.margin-bottom-10 {
margin-bottom:10px;
}
.margin-bottom-15 {
margin-bottom:15px;
}
.margin-bottom-20 {
margin-bottom:20px;
}
.margin-bottom-minus-4 {
margin-bottom:-4px;
}
.margin-top-4 {
margin-top:4px;
}
.margin-top-5 {
margin-top:5px;
}
.margin-top-15 {
margin-top: 15px;
}
.margin-top-9 {
margin-top: 9px;
}
.margin-top-point9-em {
margin-top:0.9em;
}
.margin-top-minus-22 {
margin-top:-22px;
}
.margin-top-minus-20 {
margin-top:-20px;
}
.margin-top-minus-10 {
margin-top:-10px;
}
.ie-margin-top-minus-10 {
margin-top:expression('-10px');
}
.width-25 {
width:25px;
}
.width-46 {
width:46px;
}
.width-60 {
width:60px;
}
.width-65 {
width:65px;
}
.width-70 {
width:70px;
}
.width-80 {
width:80px;
}
.width-90 {
width:90px;
}
.width-95 {
width:95px;
}
.width-100 {
width:100px;
}
.width-105 {
width:105px;
}
.width-112 {
width:112px;
}
.width-115 {
width:115px;
}
.width-120 {
width:120px;
}
.width-135 {
width:135px;
}
.width-145 {
width:145px;
}
.width-155 {
width:155px;
}
.width-157 {
width:157px;
}
.width-159 {
width:159px;
}
.width-160 {
width:160px;
}
.width-165 {
width:165px;
}
.width-169 {
width:169px;
}
.width-170 {
width:170px;
}
.width-171 {
width:171px;
}
.width-173 {
width:173px;
}
.width-175 {
width:175px;
}
.width-182 {
width:182px;
}
.width-184 {
width:184px;
}
.width-185 {
width:185px;
}
.width-189 {
width:189px;
}
.width-191 {
width:191px;
}
.width-194 {
width:194px;
}
.width-200 {
width:200px;
}
.width-215 {
width:215px;
}
.width-220 {
width:220px;
}
.width-236 {
width:236px;
}
.width-251 {
width:251px;
}
.width-260 {
width:260px;
}
.width-284 {
width:284px;
}
.width-285 {
width:285px;
}
.width-286 {
width:286px;
}
.width-295 {
width:295px;
}
.width-300 {
width:300px;
}
.width-302 {
width:302px;
}
.width-305 {
width:305px;
}
.width-315 {
width:315px;
}
.width-316 {
width:316px;
}
.width-336 {
width:336px;
}
.width-353 {
width:353px;
}
.width-356 {
width:356px;
}
.width-365 {
width:365px;
}
.width-380 {
width:380px;
}
.width-383 {
width:383px;
}
.width-385 {
width:385px;
}
.width-400 {
width:400px;
}
.width-405 {
width:405px;
}
.width-410 {
width:410px;
}
.width-500 {
width:500px;
}
.width-570 {
width:570px;
}
.width-580 {
width:580px;
}
.width-585 {
width:585px;
}
.width-728 {
width:728px;
}
.width-100-percent {
width:100%;
}
.height-100 {
height:100px;
}
.quickLinkWidth {width: 330px;}
.activeblocks{
display:none;
height:100px;
width:315px;
}
.padding-bottom-most-read{
padding-bottom:8px;
}
* html .padding-bottom-most-read{
padding-bottom:5px;
}
html>body .padding-bottom-most-read{
*padding-bottom:5px;
}
.off-left {
position: absolute;
left: -999px;
width: 990px;
}
.bold {
font-weight:bold;
}
.height-100-percent {
height:100%;
}
.height-150{
height:150px;
}
.height-125{
height:125px;
}
.grey-dotted-line{
background:url(../img/global/border/puff-top.gif) repeat-x bottom left;
}
.padding-left-70{
padding-left:70px;
}
.puff-sides-seprator{
background:url(../img/global/border/puff-sides.gif) repeat-y top left;
margin-left:15px;
padding-left:15px;
}
.yellow-thick-line{
border-bottom:3px solid #f7eebe;
}
.font-size-1-1em{
font-size:1.1em;
}
#leftColumn #resultsPagination {
border-bottom:1px solid #ccc;
border-top:1px solid #ccc;
padding:10px 0;
width: 385px;
text-align:right;
}
#Changed for defect artf563337
.resultspaginationborder {
border-bottom:1px solid #ccc;
border-top:1px solid #ccc;
padding:10px 0;
width: 385px;
text-align:left;
}
* html .padding-left-8-1 {
padding-left:1px;
}
.padding-left-8-1 {
padding-left:8px;
}
.margin-5{
margin:5px;
}
.margin-0{
margin:0;
}
.puff-top-no-padding {
background:url(../img/global/border/puff-top.gif) repeat-x top left;
margin-top: 1px;
padding-top:0px;
}.margin-bottom-minus-2{
margin-bottom:-2px;
}
.margin-left-minus-2{
margin-left: -2px;
}
.margin-left-4{
margin-left: 4px;
}
.margin-right-6{
margin-right: 6px;
}
a.link-000-no-underline:hover, a.link-000-no-underline:active {
color:#06c;
text-decoration:none;
}
a.link-000-no-underline, a.link-000-no-underline:visited {
text-decoration:none;
color:#000;
}
.link-separator-sort-by {
padding:0 5px 0 5px;
border-right:1px solid #ccc;
}
.link-separator-sort-by-last{
padding:0 5px 0 5px;
border-right:none;
padding-right:0;
}
.search-seperator {
padding-left:1px;
padding-right:1px;
color:#b1b1b1;
font-family:Arial, Helvetica, sans-serif;
font-size:1.3em;
}
.padding-top-4{
padding-top:4px;
}
.padding-top-12{
padding-top:12px;
}
.margin-top-neg-1{
margin-top:-1px;
}
.margin-top-neg-3{
margin-top:-3px;
}
.margin-top-neg-4{
margin-top:-4px;
}
.margin-bottom-neg-1{
margin-bottom:-1px;
}
.padding-top-13{
padding-top:13px;
}
.padding-left-107 {
padding-left: 107px;
}
.related-attachements-sepia-top {
background:transparent url(../img/global/border/related-attachements-sepia-top.gif) no-repeat scroll left top;
padding:0px 20px 0px 0px;
}
.related-attachements-sepia-dark {
background:transparent url(../img/global/border/related-attachements-sepia-dark.gif) no-repeat scroll left top;
padding:0px 20px 0px 0px;
}
.tolgallery-landscape-image-text {
width:306px;
background:#1a1a1a;
text-align:left;
}
.tolgallery-pagination-container {
clear:both;
width:585px;
background:#000000;
text-align:center;
float:left;
}
.tolgallery-x-of-y {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-weight:bold;
font-size:1.1em;
line-height:1.2em;
letter-spacing:-0.4pt;
color:#fff;
}
.g-text {
font-size:1.0em;
font-weight:bold;
line-height:1.1em;
text-decoration:none;
text-transform:lowercase;
color:#fff;
}
.g-text-large {
font-family:Georgia, Times New Roman, Times, serif;
font-size:2.2em;
line-height:1.1em;
font-weight:normal;
color:#fff;
}
.g-text-large-title {
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.5em;
line-height:1.0em;
font-weight:normal;
color:#fff;
text-transform:uppercase;
}
.tolgallery-bg-top {
background:#000000 url(../img/global/tolg_bg_top_351292a.gif) no-repeat bottom left;
}
.tolgallery-bg-bottom {
background:#000000 url(../img/global/tolg_bg_bottom_351293a.gif) no-repeat top left;
}
#gallery-column1-layout2 {
width:1000px;
margin:0px;
padding:0px;
float:left
}
.height-85 {
height:85px;
}
.padding-left-36 {
padding-left:36px;
}
.padding-top-20 {
padding-top:20px;
}
.padding-left-18 {
padding-left:18px;
}
.padding-top-36 {
padding-top:36px;
}
.padding-right-20 {
padding-right:20px;
}
.padding-right-36 {
padding-right:36px;
}
.height-435 {
height:435px;
}
.height-445 {
height:445px;
}
.height-100 {
height:100px;
}
.width-655 {
width:655px;
}
.padding-top-25 {
padding-top:25px;
}
.padding-bottom-20 {
padding-bottom:20px;
}
.text-0066cc {
margin:0px 0px 12px 0px;
padding:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.2em;
line-height:1.2em;
color:#0066cc;
}
.border-bottom-666 {
border-bottom:1px solid #666666;
}
.border-left-666 {
border-left:1px solid #666666;
}
.border-right-666 {
border-right:1px solid #666666;
}
.width-133 {
width:133px;
}
.width-138 {
width:138px;
}
.width-170 {
width:170px;
}
.width-276 {
width:276px;
}
.width-234 {
width:234px;
}
.padding-top-30 {
padding-top:32px;
}
.padding-right-6 {
padding-right:6px;
}
.padding-right-11 {
padding-right:11px;
}
.bg-409 {
background-color:#4095CB;
}
.bg-477 {
background-color:#477694;
}
.bg-DE2 {
background-color:#DE2128;
}
.bg-85 {
background-color:#85AD55;
}
.bg-964 {
background-color:#96468B;
}
.bg-3F8 {
background-color:#3F8724;
}
.bg-E48 {
background-color:#E48608;
}
.bg-409 {
background-color:#4095CB;
}
.padding-right-8 {
padding-right:8px;
}
.padding-left-8 {
padding-left:8px;
}
.width-103 {
width:103px;
}
.width-222 {
width:222px;
}
.width-334 {
width:334px;
}
.width-475 {
width:475px;
}
a.link-7b7, a.link-7b7:visited {
text-decoration:none;
color:#0066cc;
}
a.link-7b7:hover, a.link-7b7:active {
color:#06c;
text-decoration:underline;
}
a.link-7b71, a.link-7b71:visited {
text-decoration:none;
color:#7b7b7b;
}
a.link-7b71:hover, a.link-7b71:active {
color:#06c;
text-decoration:underline;
}
.text-7b7b7b {
margin:0px 0px 12px 0px;
padding:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.2em;
line-height:1.2em;
color:#7B7B7B;
}
.cite {
color:green;
font-style:normal;
}
.header-quote-open {
background: url(/tol/img/global/quote-left-red-beige-bg.gif) no-repeat 4px 6px;
}
.header-quote-close {
background: url(/tol/img/global/quote-right-red-beige-bg.gif) no-repeat 4px 6px;
}
.overflow-hidden {
overflow: hidden;
}
.height-70 {
height:70px;
}
#dynamic-video-holder {
height: expression( document.getElementById("dynamic-video-holder").scrollHeight > 367 ? "368px" : "auto" );
max-height:368px;
}
.coloumnDruL {
float:left;
padding: 0 10px 0 0;
}
.coloumnDru {
float:left;
padding: 0 10px 0 10px;
border-left:1px #ccc dashed;
border-right:1px #ccc dashed;
}
.coloumnDruR {
float:left;
padding: 0 0 0 10px;
}
.coloumnDruTop{
padding: 10px 0 0 0;
}
.coloumnDruInn {
width:181px;
}
.DruHeader1 {
font-family:Arial,Helvetica,sans-serif;;
font-weight: normal;
font-size:1.5em;
line-height:1.1em;
color:#CC0000;
text-decoration:none;
text-align:left;
}
.DruHeader1 a {
color:#0066cc;
text-decoration:none
}
.DruHeader1 a:hover {
color:#0066cc;
text-decoration:underline
}
.DruHeader2 {
font-family:Arial,Helvetica,sans-serif;;
font-weight:normal;
;font-size:0.9em;
line-height:1.1em;
color:#CC0000;
text-decoration:none;
text-align:left;
}
.DruHeader2 a {
color:#0066cc;
text-decoration:none
}
.DruHeader2 a:hover {
color:#0066cc;
text-decoration:underline
}
.DruHeader3 {
font-family:Arial,Helvetica,sans-serif;;
font-weight: normal;
font-size:1.1em;
word-wrap:break-word;
line-height:1.1em;
color:#CC0000;
text-decoration:none;
text-transform:uppercase;
text-align:left;
}
.DruHeader3 a {
color:#0066cc;
text-decoration:none
}
.DruHeader3 a:hover {
color:#0066cc;
text-decoration:underline
}
.DruHeader4 {
font-family:Arial,Helvetica,sans-serif;;
font-weight: normal;
font-size:1.7em;
word-wrap:break-word;
line-height:1em;
color:#CC0000;
text-decoration:none;
text-transform:uppercase;
text-align:left;
}
.DruHeader4 a {
color:#0066cc;
text-decoration:none
}
.DruHeader4 a:hover {
color:#0066cc;
text-decoration:underline
}
.DruHeader5 {
font-family:Arial,Helvetica,sans-serif;;
font-weight: normal;
font-size:1.9em;
word-wrap:break-word;
line-height:1em;
color:#CC0000;
text-decoration:none;
text-transform:uppercase;
text-align:left;
}
.DruHeader5 a {
color:#0066cc;
text-decoration:none
}
.DruHeader5 a:hover {
color:#0066cc;
text-decoration:underline
}
.DruByline {
font-family:Arial,Helvetica,sans-serif;;
font-size:0.9em;
color:#666666;
padding-top: 3px;
padding-bottom:14px;
}
.DruImage {padding-bottom:4px;}
.DruBottom {
padding-bottom:6px;
border-bottom:1px #ccc solid;
margin-bottom:6px;
clear:both;
}
.global-comment-seperator {
padding:0px 6px 0px 3px;
border-right:1px solid #b1b1b1;
}
.global-comment-seperator-last {
padding:0px 0px 0px 3px;
}
.comment-grey-line {
border-bottom:1px solid #d9d9d9;
}
.border-right-b1b1b1 {
border-right:1px solid #b1b1b1;
}
ul li.comment-email {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:0.9em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-email.gif);
}
/*.bg-submit {
background:#fff url(http://www.timesonline.co.uk/multimedia/archive/00549/comment_bg_549102a.gif) no-repeat top;
width:365px;
height:263px;
}*/
.height-20 {
height:20px;
}
.your-comment {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:0.9em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-send-your-views-white.gif);
}
.print-comment {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:0.9em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-print.gif);
}
.comment-border-right {
border-right:1px solid #b1b1b1;
}
div#related-article-links p a, div#related-article-links p a:visited {
color:#06c;
}
div.hiddenDivComments{ visibility: hidden;}
.bg-shadow {
background:transparent url(http://www.timesonline.co.uk/multimedia/archive/00497/bg_shadow_grey_497252a.gif) repeat bottom
}
.bgd-graphs-361 {width:402px; border: 1px solid #d9d9d9; float:left;}
.bgd-graphs-white-361 {width:402px; border: 1px solid #d9d9d9; float:left; background-color:#fff;}
.height-20 {
height:20px;
}
.comment-border-right {
border-right:1px solid #b1b1b1;
}
.border-top-b1b {
border-top:1px solid #b1b1b1;
}
.border-top-d9d {
border-top:1px solid #d9d9d9;
}
.comment-filter {
filter: progid:DXImageTransform.Microsoft.Shadow(color=#888888,direction=135,strength=9);
}
.black_overlay{
display: none;
position: absolute;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
min-height:100%;
background-color: white;
z-index:1001;
-moz-opacity: 0.5;
opacity:.50;
filter: alpha(opacity=50);
}
.white_content {
display: none;
position: absolute;
left: 35%;
z-index:1002;
overflow: auto;
}
.bgd-graphs-white-361 {
width:402px;
border: 1px solid #d9d9d9;
float:left;
background-color:#fff;
}
.bg-shadow-reg {
background:transparent url(../img/global/comment_bg_fade_reg.gif) repeat bottom
}
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=ie.css
Content-Type: text/css; charset=ISO-8859-1; name=ie.css
Content-Location: http://business.timesonline.co.uk/tol/css/ie.css
Content-Transfer-Encoding: 8bit
*html #competition {
height:9.35em;
}
*html #property {
height:9em;
}
*html #classifieds {
height:9.7em;
}
*html #classifieds ul {
margin:0px 0px 0px 15px;
}
*html #front-page-frontpage,
*html #front-page-breaking,
*html #front-page-pick {
height:4.5em;
overflow:visible;
}
*html #reports {
padding:2px 0px 2px 8px;
height:4em;
overflow:visible;
}
*html #reports ul.reports {
margin:2px 0px 10px 2px;
padding:0px 0px 0px 0px;
list-style-position:inside;
list-style-image:url(../img/global/chevron16.gif);
}
*html #reports h3.also {
padding-left:2px;
color:#666;
}
*html .special-heading {
padding:5px 0px 0px 0px;
}
*html #related-topic-box {
padding:2px 0px 5px 8px;
height:4em;
overflow:visible;
}
*html #related-topic-box ul.topic {
margin:2px 0px 10px 0px;
padding:0px 0px 0px 0px;
list-style-position:inside;
list-style-image:url(../img/global/chevron16.gif);
}
*html #related-topic-box ul.left {
float:left;
width:160px;
}
*html #related-topic-box ul.right {
float:right;
width:180px;
}
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=primary-nav-pipe.gif
Content-Type: image/gif; name=primary-nav-pipe.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/primary-nav-pipe.gif
Content-Transfer-Encoding: Base64
R0lGODlhAQAOAIAAALGxsQAAACH5BAAAAAAALAAAAAABAA4AAAIDhI9YADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=chevron-small-links.gif
Content-Type: image/gif; name=chevron-small-links.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/list/chevron-small-links.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAIAMQWAABxygBhwQCC0gBRud/y+5nF64LE6nrH7Oz3/BRcvrvi9QRL
tman4Mbf9EKU2M3k9kC15mmz5EyR1l+n3w+X3Eug3v///wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAABYALAAAAAAFAAgAAAUdIERY5EEpJCIIBhkBQGVN
QeA8w8BY0lKQiQbJEgIAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=14x14-contact-us.gif
Content-Type: image/gif; name=14x14-contact-us.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/icon/14x14-contact-us.gif
Content-Transfer-Encoding: Base64
R0lGODlhDgAOAMQAAANz0djs+ZvQ8CeR2wCH2EOt5P///6/b8y2o43y450iW3BCV
3H/I7b/f9Bh/1QCb3+/3/GC25xCf4ECh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAOAA4AAAV7oCFCAvKcD3KIYiNJTCAG
jBSJRyqzsyRAiwXEEIgUjAVBjUEQGA7BQ4FACAQIA4IB2DRMESLqxMBcbKnOK2E8
WRsE1KEgOzC02W7I4DAAQBgAAAN9DgkDCQYJAIgHCQ1vCQk7Bn1OPDMsEAoAEZMB
CQ6TBg2bgQCFQwYhADs=
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=chevron-small-links-white.gif
Content-Type: image/gif; name=chevron-small-links-white.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/list/chevron-small-links-white.gif
Content-Transfer-Encoding: Base64
R0lGODlhBQAIAMQTAP///7TS8DmI15nC66DG7DKE1r/Z8r3X8n2x5YW25/D2/LPR
8Gaj4ESP2vv9/pbA6uvz+yB50hNx0ABmzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAABMALAAAAAAFAAgAAAUaoBFNZKI0pAQACPmswUSs
R7EO0+IwJCSQkxAAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=chevron-back-to-top.gif
Content-Type: image/gif; name=chevron-back-to-top.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/chevron-back-to-top.gif
Content-Transfer-Encoding: Base64
R0lGODlhCAAFAMQWAOz3/N/y+0ug3mmz5JnF6wRLtkC15kyR1g+X3BRcvoLE6s3k
9kKU2HrH7Gan4F+n38bf9Lvi9QBRuQCC0gBhwQBxyv///wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAABYALAAAAAAIAAUAAAUaoCUygmg6VKWYhJROkQUV
0jNMSJAciwg0hhAAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=double-chevron-blue.gif
Content-Type: image/gif; name=double-chevron-blue.gif
Content-Location: http://business.timesonline.co.uk/tol/img/global/list/double-chevron-blue.gif
Content-Transfer-Encoding: Base64
R0lGODlhDAAIAMQWAABxygBhwQCC0gBRud/y+5nF64LE6nrH7Oz3/BRcvrvi9QRL
tman4Mbf9EKU2M3k9kC15mmz5EyR1l+n3w+X3Eug3v///wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAABYALAAAAAAMAAgAAAUyIERYJCmWB6WUVrpaiCAY
ZTyTEQBUZb5bk0DAUQoOH4MBo4RUWiSLAgsqtSQaLCuWFAIAOw==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=typography.css
Content-Type: text/css; charset=ISO-8859-1; name=typography.css
Content-Location: http://business.timesonline.co.uk/tol/css/typography.css
Content-Transfer-Encoding: 8bit
p {
margin:0px 0px 12px 0px;
padding:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.2em;
line-height:1.2em;
}
p.no-margin {
margin:0px 0px 0px 0px;
}
.p-style-in-ol {
font-family:Arial, Helvetica, sans-serif;
font-size:1.0em;
line-height:1.2em;
}
.small {
margin:0px;
padding:0px;
font-size:1.1em;
line-height:1.2em;
}
.x-small {
margin:0px;
padding:0px;
font-size:1.0em;
line-height:1.15em;
}
.x-smaller {
font-size:0.9em;
line-height:1.1em;
}
a, a:visited {
text-decoration:none;
}
a:hover, a:active {
text-decoration:underline;
}
a.primary-link, a.primary-link:visited {
padding:9px 8px 9px 8px;
color:#333;
background:#d9d9d9 url(../img/global/primary-nav-pipe.gif) no-repeat right;
font-family:Georgia, Times New Roman, Times, serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-link:hover, a.primary-link:active {
background:#999;
color:#fff;
text-decoration:underline;
}
a.primary-link-no-pipe, a.primary-link-no-pipe:visited {
padding:9px 8px 9px 8px;
color:#333;
background:#d9d9d9;
font-family:Georgia, Times New Roman, Times, serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-link-no-pipe:hover, a.primary-link-no-pipe:active {
color:#fff;
background:#999;
text-decoration:underline;
}
a.primary-selected, a.primary-selected:visited, a.primary-selected:hover, a.primary-selected:active {
padding:9px 8px 9px 8px;
color:#cf0;
background:#666;
font-family:Georgia, Times New Roman, Times, serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-special, a.primary-special:visited {
margin-top:4px;
padding:5px 8px;
color:#fff;
background:#d9d9d9 url(../img/global/primary-special-bg.gif) repeat-x top left;
font-family:Georgia, Times New Roman, Times, serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-special:hover, a.primary-special:active {
text-decoration:underline;
}
a.primary-link-right, a.primary-link-right:visited {
padding:9px 7px 9px 7px;
color:#333;
background:#d9d9d9 url(../img/global/primary-nav-pipe.gif) no-repeat right;
font-family:Arial, Helvetica, sans-serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-link-right:hover, a.primary-link-right:active {
background:#999;
color:#fff;
text-decoration:underline;
}
a.primary-link-right-selected, a.primary-link-right-selected:visited, a.primary-link-right-selected:hover, a.primary-link-right-selected:active {
padding:9px 7px 9px 7px;
color:#cf0;
background:#666;
font-family:Arial, Helvetica, sans-serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-link-right-no-pipe, a.primary-link-right-no-pipe:visited {
padding:9px 7px 9px 7px;
color:#333;
background:#d9d9d9;
font-family:Arial, Helvetica, sans-serif;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.primary-link-right-no-pipe:hover, a.primary-link-right-no-pipe:active {
background:#999;
color:#fff;
text-decoration:underline;
}
a.archive-primary-link-right-no-pipe, a.archive-primary-link-right-no-pipe:visited {
padding:9px 7px 9px 7px;
color:#333;
background:#d9d9d9;
font-weight:bold;
font-size:1.0em;
line-height:1.1em;
text-transform:normal;
text-decoration:none;
display:block;
float:left;
white-space:nowrap;
}
a.archive-primary-link-right-no-pipe:hover, a.archive-primary-link-right-no-pipe:active {
background:#999;
color:#fff;
text-decoration:underline;
}
.font-georgia {
font-family:Georgia, 'Times New Roman', Times, serif;
line-height:1.5em;
}
.font-georgia-noline-height {
font-family:Georgia, 'Times New Roman', Times, serif;
}
.font-arial {
font-family:Arial, Helvetica, sans-serif;
}
.font-size-12{
font-size:1.07em;
}
a.secondary-selected, a.secondary-selected:visited {
color:#cf0;
padding:8px 9px 8px 9px;
font-size:1.0em;
line-height:1.1em;
text-decoration:none;
text-transform:uppercase;
background:#666 url(../img/global/primary-nav-pipe.gif) no-repeat right;
letter-spacing:0.05em;
display:block;
float:left;
white-space:nowrap;
}
a.secondary-selected:hover, a.secondary-selected:active {
text-decoration:underline;
}
a.secondary-selected-no-pipe, a.secondary-selected-no-pipe:visited {
color:#cf0;
padding:8px 9px 8px 9px;
font-size:1.0em;
line-height:1.1em;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.05em;
display:block;
float:left;
white-space:nowrap;
}
a.secondary-selected-no-pipe:hover, a.secondary-selected-no-pipe:active {
text-decoration:underline;
}
a.secondary-link, a.secondary-link:visited {
color:#fff;
padding:8px 9px 8px 9px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
background:#666 url(../img/global/primary-nav-pipe.gif) no-repeat right;
letter-spacing:0.05em;
display:block;
float:left;
white-space:nowrap;
}
a.secondary-link:hover, a.secondary-link:active {
text-decoration:underline;
}
a.secondary-link-no-pipe, a.secondary-link-no-pipe:visited {
background:#666;
color:#fff;
padding:8px 9px 8px 9px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
text-decoration:none;
letter-spacing:0.05em;
display:block;
float:left;
white-space:nowrap;
}
a.secondary-link-no-pipe:hover, a.secondary-link-no-pipe:active {
text-decoration:underline;
}
a.ticker, a.ticker:visited {
color:#666;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.1em;
line-height:1.25em;
text-decoration:none;
}
a.ticker:hover, a.ticker:active {
color:#06c;
text-decoration:underline;
}
a.crumbtrail, a.crumbtrail:visited {
color:#666;
padding:0px 10px;
font-size:1.1em;
line-height:1.2em;
float:left;
display:inline;
text-decoration:none;
background:transparent url(../img/global/list/chevron-small-links.gif) no-repeat left;
white-space:nowrap;
}
a.crumbtrail-no-image, a.crumbtrail-no-image:visited {
color:#666;
padding:0px 10px;
font-size:1.1em;
line-height:1.2em;
float:left;
display:inline;
text-decoration:none;
white-space:nowrap;
}
a.crumbtrail:hover, a.crumbtrail:active, a.crumbtrail-no-image:hover, a.crumbtrail-no-image:active {
color:#06c;
text-decoration:underline;
}
a.crumbtrail-selected, a.crumbtrail-selected:visited {
color:#333;
padding:0px 10px;
font-size:1.1em;
font-weight:bold;
line-height:1.2em;
float:left;
display:inline;
text-decoration:none;
background:transparent url(../img/global/list/chevron-small-links.gif) no-repeat left;
white-space:nowrap;
}
a.crumbtrail-selected:hover, a.crumbtrail-selected:active {
color:#06c;
text-decoration:underline;
}
a.reg, a.reg:visited {
font-size:1.1em;
line-height:1.1em;
text-decoration:none;
color:#06c;
}
a.reg:hover, a.reg:active {
text-decoration:underline;
}
a.reg-666, a.reg-666:visited {
font-size:1.1em;
line-height:1.1em;
text-decoration:none;
color:#666;
}
a.reg-666:hover, a.reg-666:active {
color:#06c;
text-decoration:underline;
}
a.reg-bold, a.reg-bold:visited {
font-size:1.1em;
line-height:1.1em;
text-decoration:none;
color:#06c;
font-weight:bold;
}
a.reg-bold:hover, a.reg-bold:active {
text-decoration:underline;
}
a.link-666, a.link-666:visited {
text-decoration:none;
color:#666;
}
a.link-999, a.link-999:visited {
text-decoration:none;
color:#999;
}
a.link-333, a.link-333:visited {
text-decoration:none;
color:#333;
}
a.link-fff, a.link-fff:visited {
text-decoration:none;
color:#fff;
}
a.link-06c, a.link-06c:visited {
text-decoration:none;
color:#06c;
}
.link-fff-selected{
COLOR: #cf0
}
a.link-666:hover, a.link-666:active, a.link-333:hover, a.link-333:active, a.link-06c:hover, a.link-06c:active, a.link-999:hover, a.link-999:active {
color:#06c;
text-decoration:underline;
}
a.link-fff:hover, a.link-fff:active {
text-decoration:underline;
}
a.link-666-no-underline:hover, a.link-666-no-underline:active {
color:#06c;
text-decoration:none;
}
a.link-666-no-underline:hover span, a.link-666-no-underline:active span {
color:#06c;
text-decoration:underline;
}
a.link-666-no-underline, a.link-666-no-underline:visited {
text-decoration:none;
color:#666;
}
a.tags, a.tags:visited {
display:inline;
margin:0px 5px 0px 0px;
padding:0px 2px;
font-size:1.1em;
line-height:1.1em;
background:#f8f1d8;
color:#333;
text-decoration:none;
}
a.tags:hover, a.tags:active {
color:#06c;
text-decoration:underline;
}
a.previous, a.previous:visited {
text-decoration:none;
color:#06c;
padding:0px 0px 0px 10px;
background:transparent url(../img/global/list/chevron-small-links-previous.gif) no-repeat center left;
}
a.previous:hover, a.previous:active {
text-decoration:underline;
}
a.next, a.next:visited {
text-decoration:none;
color:#06c;
padding:0px 9px 0px 0px;
background:transparent url(../img/global/list/chevron-small-links.gif) no-repeat center right;
}
a.next:hover, a.next:active {
text-decoration:underline;
}
span.black-previous{
color:#000;
text-transform:uppercase;
padding:0px 0px 0px 10px;
background:transparent url(../img/global/list/black-chevron-previous.gif) no-repeat center left;
}
span.black-next {
text-transform:uppercase;
color:#000;
padding:0px 9px 0px 10px;
background:transparent url(../img/global/list/black-chevron-next.gif) no-repeat center right;
}
h1.heading {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:2.7em;
line-height:1.2em;
font-weight:normal;
}
h1.index {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:2.2em;
line-height:1.1em;
font-weight:normal;
}
h1.section {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.5em;
line-height:1.0em;
font-weight:normal;
color:#000;
text-transform:uppercase;
padding:4px 0px 2px 0px;
}
h2.sub-heading {
color:#333;
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.4em;
line-height:1.1em;
font-weight:bold;
letter-spacing:-0.06em;
}
h2.paginationHeading {
color:#333;
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:14pt;
line-height:1.1em;
font-weight:bold;
letter-spacing:-0.06em;
}
h2.pagination {
color:#333;
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.4em;
line-height:1.1em;
font-weight:bold;
letter-spacing:-0.06em;
}
h2.sub-heading-puff {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.4em;
line-height:1.1em;
font-weight:bold;
letter-spacing:-0.06em;
}
h3.section-heading {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.0em;
line-height:1.3em;
text-transform:uppercase;
color:#666;
padding-bottom:4px;
}
h3.section-heading-white {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.0em;
line-height:1.3em;
text-transform:uppercase;
color:#fff;
padding-bottom:4px;
}
h3.section-heading-smaller {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:0.89em;
line-height:1.0em;
text-transform:uppercase;
color:#666;
padding-bottom:4px;
}
.color-000 {
color:#000;
}
.color-06c_underline {
color:#06c;
text-decoration:underline;
}
.color-06c {
color:#06c;
}
.color-06c-none a, a:visited{
color:#06c;
text-decoration:none;
}
.color-06c-none a:hover{
text-decoration:underline;
}
.color-333 {
color:#333;
}
.color-666 {
color:#666;
}
.color-999 {
color:#999;
}
.color-d9d9d9 {
color:#d9d9d9;
}
.color-f8f1d8 {
color:#f8f1d8;
}
.color-cbff00 {
color:#cbff00;
}
.color-fff {
color:#fff;
}
.color-bd0000 {
color:#bd0000;
}
.color-ede1bf {
color:#ede1bf
}
.font-size-11{
font-size:11px;
}
.font-georgia-11{
font-size:11px;
font-family:Georgia, "Times New Roman", Times, serif;
text-transform:capitalize;
font-weight:normal;
}
.font-georgia-10{
font-size:10px;
font-family:Georgia, "Times New Roman", Times, serif;
font-weight:bold;
text-transform:uppercase;
}
.font-arial-11{
font-size:11px;
font-family:Arial, "Times New Roman", Times, serif;
text-transform:capitalize;
font-weight:normal;
}
.font-arial-12{
font-size:12px;
font-family:Arial, Helvetica, sans-serif;
text-transform:capitalize;
font-weight:normal;
}
.font-arial-10{
font-size:10px;
font-family:Arial, "Times New Roman", Times, serif;
font-weight:bold;
text-transform:uppercase;
}
.font-timesnew-11{
font-size:12px;
font-family: "Times New Roman",Times, Georgia,serif;
text-transform:capitalize;
font-weight:strong;
}
ol li {
list-style-type:decimal;
list-style-position:inline;
display:list-item;
font-family:Georgia, Times New Roman, Times, serif;
margin:0px 0px 12px 0px;
font-size:1.2em;
}
ul.ul-tools li {
float:left;
background-repeat:no-repeat;
background-position:0px 0px;
padding:1px 0px 10px 19px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
width:33%;
voice-family: "\"}\"";
width:28%;
}
ul li.print {
background-image:url(../img/global/icon/14x14-print.gif);
}
ul li.email {
background-image:url(../img/global/icon/14x14-email.gif);
}
ul li.rate {
background-image:url(../img/global/icon/14x14-rate.gif);
}
ul li.save {
background-image:url(../img/global/icon/14x14-save.gif);
}
ul li.delicious {
background-image:url(../img/global/icon/14x14-delicious.gif);
}
ul li.yahoo {
background-image:url(../img/global/icon/14x14-yahoo-icon.gif);
}
ul li.digg {
background-image:url(../img/global/icon/14x14-digg-icon.gif);
}
ul li.newsvine {
background-image:url(../img/global/icon/14x14-newsvine.gif);
}
ul li.fark {
background-image:url(../img/global/icon/icon_14_14_fark.gif);
}
ul li.ocr {
background-image:url(../img/global/icon/Fulltext_Icon_14_14.gif);
}
ul li.help {
background-image:url(../img/global/icon/14x14-help.gif);
}
ul li.contact-us {
display:block;
background-repeat:no-repeat;
background-position:0px 0px;
padding:1px 10px 2px 19px;
background-image:url(../img/global/icon/14x14-contact-us.gif);
border-right:1px solid #b1b1b1;
}
ul.ul-tools-no-indent li {
float:left;
background-repeat:no-repeat;
padding:0px 0px 4px 0px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
width:33%;
}
ul.ul-tools-no-indent li span {
position:relative;
top:-10px;
left:5px;
}
ul li.comment {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-send-your-views-white.gif);
}
ul li.icon-on-left {
display:block;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
}
ul li.icon-on-left span {
position:relative;
top:-3px;
left:5px;
}
ul li.icon-on-right {
display:block;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
}
ul li.icon-on-right span {
position:relative;
top:-3px;
padding-right:4px;
}
ul li.print-page {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-print.gif);
}
ul li.have-your-say {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-send-your-views-white.gif);
}
ul li.hide-the-form {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:2px 0px 1px 19px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
}
ul li.plus {
display:block;
background-repeat:no-repeat;
background-position:right 1px;
padding:2px 19px 1px 0px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-expand.gif);
}
ul li.minus {
display:block;
background-repeat:no-repeat;
background-position:right 1px;
padding:2px 19px 1px 0px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
background-image:url(../img/global/icon/14x14-collapse.gif);
}
ul li.blue-chevron {
display:block;
background-repeat:no-repeat;
background-position:0px 4px;
padding:0px 0px 2px 9px;
font-size:1.1em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links.gif);
}
ul li.icon {
display:block;
background-repeat:no-repeat;
background-position:0px 1px;
padding:0px 0px 2px 18px;
font-size:1.1em;
line-height:1.3em;
}
ul li.video {
background-image:url(../img/global/icon/14x14-timesonline-tv.gif);
}
ul li.video-latest {
background-image:url(../img/global/icon/14x14-timesonline-tv-red.gif);
}
ul li.your-view {
background-image:url(../img/global/icon/14x14-send-your-views-white.gif);
}
ul li.audio {
background-image:url(../img/global/icon/14x14-audio.gif);
}
ul li.audio-latest {
background-image:url(../img/global/icon/14x14-audio-red.gif);
}
ul li.podcast {
background-image:url(../img/global/icon/14x14-podcast.gif);
}
ul li.podcast-latest {
background-image:url(../img/global/icon/14x14-podcast-red.gif);
}
ul li.photos {
background-image:url(../img/global/icon/14x14-picture-galleries.gif);
}
ul li.photos-latest {
background-image:url(../img/global/icon/14x14-picture-galleries-red.gif);
}
ul li.blog {
background-image:url(../img/global/icon/Icon_14_14_blog_blue.gif);
}
ul li.blog-latest {
background-image:url(../img/global/icon/Icon_14_14_blog_red.gif);
}
ul li.external {
background-image:url(../img/global/icon/Icon_14_14_external.gif);
}
ul li.external-latest {
background-image:url(../img/global/icon/Icon_14_14_external_red.gif);
}
ul li.commentary {
background-image:url(../img/global/icon/Icon_14_14_commentary.gif);
}
ul li.commentary-latest {
background-image:url(../img/global/icon/Icon_14_14_commentary_red.gif);
}
ul li.download {
background-image:url(../img/global/icon/14x14-download-white.gif);
}
ul li.archive {
background-image:url(../img/global/icon/archive_icon_14x14.gif);
}
ul li.itunes {
background-image:url(../img/global/icon/14x14-subscribe-itunes-whit.gif);
}
ul.chevron-list-ticker li {
display:block;
background-repeat:no-repeat;
background-position:0px 0.5em;
padding-left:9px;
}
ul.chevron-list li, li.chevron-list {
display:block;
background-repeat:no-repeat;
background-position:0px 4px;
padding-left:9px;
}
ul.chevron-green li {
font-size:1.0em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links-green.gif);
text-transform:uppercase;
padding-left:10px;
}
ul.chevron-white li {
font-size:1.1em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links-white.gif);
}
ul.chevron-blue li, li.chevron-blue {
font-size:1.1em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links.gif);
}
ul.chevron-red li {
font-size:1.1em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links-red.gif);
}
ul.chevron-white-on-grey li {
font-size:1.1em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links-white-on-grey.gif);
}
ul.chevron-list red-chevron li {
font-size:1.1em;
line-height:1.3em;
background-image:url(../img/global/list/chevron-small-links-red.gif);
}
ul.disc-list li {
display:block;
background-repeat:no-repeat;
background-position:0px 6px;
padding-left:9px;
font-size:1.2em;
line-height:1.3em;
background-image:url(../img/global/list/disc-small-links.gif);
}
.icon-enlarge {
padding:0px 0px 0px 19px;
background:url(../img/global/icon/14x14-enlarge.gif) no-repeat 0px 0px;
}
.icon-your-view {
padding:0px 0px 0px 19px;
background:url(../img/global/icon/14x14-send-your-views-cream.gif) no-repeat 0px 0px;
}
.icon-back-to-top {
margin-top:2px;
margin-right:3px;
padding:0px 12px 0px 10px;
background:url(../img/global/chevron-back-to-top.gif) no-repeat right;
}
.icon-down {
margin-top:2px;
margin-right:3px;
padding:0px 12px 0px 0px;
background:url(../img/global/chevron-down.gif) no-repeat right;
}
.icon-archive {
padding:2px 0px 2px 19px;
background:url(icon-archive.gif) no-repeat left;
text-decoration:none;
}
.double-chevron-right {
padding-right:10px;
margin-left:-8px;
background:transparent url(../img/global/list/double-chevron-blue.gif) no-repeat center right;
}
.double-chevron-right-white {
padding-right:10px;
margin-left:-8px;
background:transparent url(../img/global/list/double-chevron-white.gif) no-repeat center right;
}
.times-recommends {
padding-right:13px;
padding-top:1px;
background:transparent url(../img/global/icon/times-recommends-search-11.gif) no-repeat center left;
}
.refine-category {
padding-right:10px;
background:transparent url(../img/global/bg-refine-category.gif) no-repeat center right;
}
.hide-category {
padding-right:14px;
background:transparent url(../img/global/bg-hide-category.gif) no-repeat center right;
}
.byline {
display:inline;
margin:0px;
padding:0px 2px;;
font-size:1.1em;
line-height:1.1em;
background:#f8f1d8;
color:#666;
}
.bg-popup {
background-color:#fff;
background-image:none;
}
.bg-fff {
background-color:#fff;
}
.bg-f8f1d8 {
background-color:#f8f1d8;
}
.bg-f7eebe {
background-color:#f7eebe;
}
.bg-fffef5 {
background-color:#fffef5;
}
.bg-f5f5f5 {
background-color:#f0f0f0;
}
.bg-d9d9d9 {
background-color:#d9d9d9;
}
.bg-7eebe{
background-color:#f7eebe;
}
.bg-666 {
background-color:#666;
}
.bg-06c {
background-color:#06c;
}
.bg-000 {
background-color:#000;
}
.bg-b39b62 {
background-color:#b39b62;
}
.tab-selected {
vertical-align:top;
display:block;
float:left;
white-space:nowrap;
padding:3px 6px 3px 7px;
margin-right:5px;
background:#f0f0f0;
}
a.tab-link, a.tab-link:visited {
vertical-align:top;
display:block;
float:left;
white-space:nowrap;
padding:3px 6px 3px 7px;
background:#d8d8d8;
color:#06c;
}
a.tab-link:hover, a.tab-link:active {
background:#999;
color:#fff;
text-decoration:none;
}
input.global-search-text {
float:left;
width:100px;
padding:1px 0px 1px 2px;
margin:5px 8px 0px 7px;
}
input.global-search-text-with-dropdown {
float:left;
width:100px;
padding:1px 0px 1px 2px;
margin:5px 2px 0px 2px;
}
select.global-search-option {
float:left;
width:110px;
margin:5px 2px 0px 7px;
}
textarea.comments-form-textarea {
float:left;
width:359px;
padding:1px 0px 1px 2px;
}
input.comments-form-text {
float:left;
width:165px;
padding:1px 0px 1px 2px;
}
.tools {
font-size:1.0em;
line-height:1.1em;
text-decoration:none;
text-transform:uppercase;
color:#666;
}
.tools-no-color {
font-size:1.0em;
line-height:1.1em;
text-decoration:none;
text-transform:uppercase;
}
.tools-06c {
font-size:1.0em;
line-height:1.1em;
text-decoration:none;
text-transform:uppercase;
color:#06c;
}
.tools-fff {
font-size:1.0em;
line-height:1.1em;
text-decoration:none;
text-transform:uppercase;
color:#fff;
}
.x-of-y {
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.2em;
line-height:1.2em;
letter-spacing:-0.06em;
color:#666;
}
.tertiary-letter-spacing {
letter-spacing:0.05em;
}
.caps {
text-transform:uppercase;
}
.lowercase {
text-transform:lowercase;
}
.poll-result {
margin:0px;
padding:0px 0px 0px 3px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.4em;
line-height:1.1em;
font-weight:bold;
letter-spacing:-0.06em;
}
.poll-yes {
color:#396;
}
.poll-no {
color:#f90;
}
.poll-undecided {
color:#351492;
}
.text-666{
color:#666;
}
.line-height-1em {
line-height:1em;
}
a.link-000, a.link-000:visited {
text-decoration:none;
color:#000;
}
a.link-000:hover, a.link-000:active {
color:#06c;
text-decoration:underline;
}
h3.archive-full-text {
margin:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.1em;
line-height:1.3em;
text-transform:uppercase;
padding-bottom:4px;
}
.font-georgia {
font-family: Georgia, "Times New Roman", Times, serif;
line-height:1.5em;
}
a.color-bd0000, a.color-bd0000:visited {
color:#bd0000;
}
a.color-bd0000:hover {
text-decoration:underline;
}
.top-search01 {
margin:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.5em;
line-height:1.3em;
color:#fff;
}
.top-search02 {
margin:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.3em;
line-height:1.3em;
color:#fff;
}
.top-search03 {
margin:0px;
font-family:Arial, Helvetica, sans-serif;
font-size:1.0em;
line-height:1.3em;
color:#fff;
}
.light-tabs-left {
color:#000;
background:#d9d9d9;
margin:0px 5px 0px 0px;
padding:5px 3px 4px 4px;
float:left;
border-top:1px solid #d9d9d9;
border-right:1px solid #d9d9d9;
border-left:1px solid #d9d9d9;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.light-tabs-left-simulated {
color:#fff;
background:#999;
margin:0px 5px 0px 0px;
padding:5px 3px 4px 4px;
float:left;
border-top:1px solid #d9d9d9;
border-right:1px solid #d9d9d9;
border-left:1px solid #d9d9d9;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.light-tabs-left-selected {
color:#000;
margin:0px 5px -1px 0px;
padding:5px 3px 5px 4px;
float:left;
border-bottom:0px;
border-top:1px solid #d9d9d9;
border-right:1px solid #d9d9d9;
border-left:1px solid #f0f0f0;
}
.light-tabs-right {
color:#000;
background:#d9d9d9;
margin:0px 5px 0px 0px;
padding:5px 3px 4px 4px;
float:left;
border-top:1px solid #d9d9d9;
border-right:1px solid #d9d9d9;
border-left:1px solid #d9d9d9;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.light-tabs-right-simulated {
color:#fff;
background:#999;
margin:0px 5px 0px 0px;
padding:5px 3px 4px 4px;
float:left;
border-top:1px solid #d9d9d9;
border-right:1px solid #d9d9d9;
border-left:1px solid #d9d9d9;
cursor:hand;
voice-family: "\"}\"";
cursor:pointer;
}
.light-tabs-right-selected {
color:#000;
margin:0px 5px -1px 0px;
padding:5px 3px 5px 4px;
float:left;
border-bottom:0px;
border-top:1px solid #d9d9d9;
border-right:1px solid #d9d9d9;
border-left:1px solid #d9d9d9;
}
ul.ul-article li {
background-repeat:no-repeat;
background-position:0px 0px;
padding-left:19px;
padding-bottom:5px;
font-size:1.0em;
line-height:1.1em;
text-transform:uppercase;
float:left;
display:inline;
}
.timestamp-lower-style{
font-family:Arial;
text-decoration: none;
font-size:9px;
color:#663333;
text-transform:lowercase;
}
.timestamp-caps-style{
font-family:Arial;
text-decoration: none;
font-size:9px;
color:#663333;
text-transform:uppercase;
}
.bg-quote-left {
background:transparent url('../img/global/quote-left-red-beige-bg.gif') no-repeat left center;
padding:0px 0px 0px 10px;
}
.bg-quote-right {
background:transparent url('../img/global/quote-right-red-beige-bg.gif') no-repeat left center;
padding:0px 10px 0px 10px;
}
.bg-green-quote-left {
background:transparent url('../img/global/quote-left-green-beige-bg.gif') no-repeat left center;
padding:0px 0px 0px 10px;
}
.bg-green-quote-right {
background:transparent url('../img/global/quote-right-green-beige-bg.gif') no-repeat left center;
padding:0px 10px 0px 10px;
}
h2.google-sub-heading {
color:#06c;
margin:0px;
font-family:Georgia, Times New Roman, Times, serif;
font-size:1.4em;
line-height:1.1em;
font-weight:bold;
letter-spacing:-0.06em;
}
.blockz {
width:80px;
float:left;
}
.blockzl {
width:179px;
float:left;
}
.blockz2 {
width:120px;
float:left;
}
.printz {
background-image:url(../img/global/icon/14x14-print.gif);
background-position:0 0;
background-repeat:no-repeat;
font-size:1em;
line-height:1.1em;
padding:1px 0 10px 19px;
text-transform:uppercase;
color:cc22cc;
}
.emailz {
background-image:url(../img/global/icon/14x14-email.gif);
background-position:0 0;
background-repeat:no-repeat;
font-size:1em;
line-height:1.1em;
padding:1px 0 10px 19px;
text-transform:uppercase;
}
.addThisz {
float:left;
font-size:1em;
line-height:1.1em;
padding:1px 0 10px 0px;
text-transform:uppercase;
}
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=tol.js
Content-Type: application/javascript; charset=ISO-8859-1; name=tol.js
Content-Location: http://business.timesonline.co.uk/tol/js/tol.js
Content-Transfer-Encoding: Base64
PCEtLQ0KLyogRXhlY3V0ZSB0aGUgZnVuY3Rpb24gZldpbmRvd09uTG9hZCBvbiBs
b2FkLiAqLw0Kd2luZG93Lm9ubG9hZCA9IGZXaW5kb3dPbkxvYWQ7DQp2YXIgblRv
dGFsQ2hhcmFjdGVycyA9IDMwMCA7IC8vTWF4aW11bSBudW1iZXIgb2YgY2hhcmFj
dGVycyB0byBiZSBlbnRlcmVkIGluIHRoZSBjb21tZW50IGZvcm0NCi8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQovLyBGVU5DVElPTjogZldpbmRvd09uTG9hZA0K
Ly8gREVTQ1JJUFRJT046IEEgZnVuY3Rpb24gdGhhdCBnZXRzIGV4ZWN1dGUgb24g
bG9hZC4NCi8vIEFSR1VNRU5UUzogTm9uZQ0KLy8gUkVUVVJOOiBOb25lDQovLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gZldpbmRvd09uTG9hZCgp
IHsNCn0NCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBGVU5DVElPTjog
ZlBvcFVwDQovLyBERVNDUklQVElPTjogQSBmdW5jdGlvbiB0aGF0IG9wZW5zIGEg
cG9wIHVwIHdpbmRvdy4NCi8vIEFSR1VNRU5UUzogV2lkdGgsIEhlaWdodCBhbmQg
VVJMDQovLyBSRVRVUk46IFRydWUNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQpmdW5jdGlvbiBmUG9wVXAobldpZHRoLG5IZWlnaHQsc1VybCkgew0KCXZhciBu
U2NyV2lkdGggPSBuV2lkdGg7DQoJdmFyIG5TY3JIZWlnaHQgPSBuSGVpZ2h0Ow0K
CS8vIFRpcDogVGhpcyBtYWtlcyB0aGUgd2luZG93IHRvcCByaWdodC4NCgkvLyBU
aXA6IDExIHBpeGVscyBpcyBmb3IgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0
aGUgcmlnaHQgaGFuZCBzaWRlIG9mIHRoZSB3aW5kb3cNCgkvL3ZhciBuWFBvcyA9
IChzY3JlZW4uYXZhaWxXaWR0aCAtIG5TY3JXaWR0aCAtIDExKTsNCgl2YXIgbllQ
b3MgPSAwOw0KCXZhciBuWFBvcyA9IDA7DQoJdmFyIHNPcHRpb25zID0gJ3Jlc2l6
YWJsZT0wLHRvb2xiYXI9MCxsb2NhdGlvbj0wLGRpcmVjdG9yaWVzPTAsc3RhdHVz
PTAsbWVudWJhcj0wLHNjcm9sbGJhcnM9MSx0b3A9JyArIG5ZUG9zICsgJyxsZWZ0
PScgKyBuWFBvcyArJyx3aWR0aD0nICsgblNjcldpZHRoICsgJyxoZWlnaHQ9JyAr
IG5TY3JIZWlnaHQ7DQoJb05ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHNVcmwsJ3Bv
cHVwV2luZG93JyxzT3B0aW9ucyk7DQoJb05ld1dpbmRvdy5mb2N1cygpOw0KCXJl
dHVybiB0cnVlOw0KfQ0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIEZV
TkNUSU9OOiBmRGV0ZWN0DQovLyBERVNDUklQVElPTjogQSBmdW5jdGlvbiB0aGF0
IGRldGVjdHMgd2hpY2ggT1MgYW5kIGJyb3dzZXIgdGhlIHVzZXIgaGFzLg0KLy8g
QVJHVU1FTlRTOiBOb25lDQovLyBSRVRVUk46IE5vbmUNCi8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBmRGV0ZWN0KCkgew0KCXZhciBzQWdlbnQg
PSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7DQoJLy8gRGV0ZWN0
IHBsYXRmb3JtDQoJdGhpcy5pc01hYyA9IChzQWdlbnQuaW5kZXhPZignbWFjJykg
IT0gLTEpOw0KCXRoaXMuaXNXaW4gPSAoc0FnZW50LmluZGV4T2YoJ3dpbicpICE9
IC0xKTsNCgl0aGlzLmlzV2luMmsgPSAodGhpcy5pc1dpbiAmJiAoc0FnZW50Lmlu
ZGV4T2YoJ250IDUnKSAhPSAtMSkpOw0KCXRoaXMuaXNXaW5TUDIgPSAodGhpcy5p
c1dpbiAmJiAoc0FnZW50LmluZGV4T2YoJ3hwJykgIT0gLTEgfHwgc0FnZW50Lmlu
ZGV4T2YoJ3N2MScpICE9IC0xKSk7DQoJdGhpcy5pc1VuaXggPSAoDQoJCQlzQWdl
bnQuaW5kZXhPZigndW5peCcpICE9IC0xIHx8IA0KCQkJc0FnZW50LmluZGV4T2Yo
J3N1bm9zJykgIT0gLTEgfHwgDQoJCQlzQWdlbnQuaW5kZXhPZignYnNkJykgIT0g
LTEgfHwNCgkJCXNBZ2VudC5pbmRleE9mKCd4MTEnKSAhPSAtMSB8fCANCgkJCXNB
Z2VudC5pbmRleE9mKCdsaW51eCcpICE9IC0xKTsJDQoJLy8gRGV0ZWN0IGJyb3dz
ZXINCgl0aGlzLmlzU2FmYXJpID0gKHNBZ2VudC5pbmRleE9mKCdzYWZhcmknKSAh
PSAtMSk7DQoJdGhpcy5pc1NhZmFyaTIgPSAodGhpcy5pc1NhZmFyaSAmJiAocGFy
c2VGbG9hdChzQWdlbnQuc3Vic3RyaW5nKHNBZ2VudC5pbmRleE9mKCJhcHBsZXdl
YmtpdC8iKSsiYXBwbGV3ZWJraXQvIi5sZW5ndGgsc0FnZW50Lmxlbmd0aCkuc3Vi
c3RyaW5nKDAsc0FnZW50LnN1YnN0cmluZyhzQWdlbnQuaW5kZXhPZigiYXBwbGV3
ZWJraXQvIikrImFwcGxld2Via2l0LyIubGVuZ3RoLHNBZ2VudC5sZW5ndGgpLmlu
ZGV4T2YoJyAnKSkpID49ICAzMDApKTsNCgl0aGlzLmlzT3BlcmEgPSAoc0FnZW50
LmluZGV4T2YoJ29wZXJhJykgIT0gLTEpOw0KCXRoaXMuaXNOTiA9IChzQWdlbnQu
aW5kZXhPZignbmV0c2NhcGUnKSAhPSAtMSk7DQoJdGhpcy5pc0lFID0gKHNBZ2Vu
dC5pbmRleE9mKCdtc2llJykgIT0gLTEpOw0KfQ0KLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0NCi8vIEZVTkNUSU9OOiBmU2hvd0hpZGVFbGVtZW50DQovLyBERVND
UklQVElPTjogQSBmdW5jdGlvbiBzaG93cyBvciBoaWRlcyBhbiBlbGVtZW50Lg0K
Ly8gQVJHVU1FTlRTOiBzRWxlbWVuZElkDQovLyBSRVRVUk46IE5vbmUNCi8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBmU2hvd0hpZGVFbGVtZW50
KHNFbGVtZW5kSWQpIHsNCgl2YXIgZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChzRWxlbWVuZElkKTsNCgl2YXIgc0NsYXNzTmFtZSA9IGVFbGVtZW50
LmNsYXNzTmFtZTsNCglpZiAoc0NsYXNzTmFtZS5tYXRjaCgnIGFjY2Vzcy10ZXh0
JykgfHwgc0NsYXNzTmFtZS5tYXRjaCgnYWNjZXNzLXRleHQnKSkgew0KCQkvLyBT
aG93cyBlbGVtZW50DQoJCWVFbGVtZW50LmNsYXNzTmFtZSA9IGVFbGVtZW50LmNs
YXNzTmFtZS5yZXBsYWNlKC9hY2Nlc3MtdGV4dC8sICcnKTsNCgl9IGVsc2Ugew0K
CQkvLyBIaWRlcyBlbGVtZW50DQoJCWVFbGVtZW50LmNsYXNzTmFtZSA9IHNDbGFz
c05hbWUgKyAnIGFjY2Vzcy10ZXh0JzsNCgl9DQp9DQovLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KLy8gRlVOQ1RJT046IGZDb3VudENoYXJhY3RlcnMNCi8vIERF
U0NSSVBUSU9OOiBBIGZ1bmN0aW9uIHRoYXQgY29tcGFyZXMgdGhlIHRvdGFsIGFs
bG93ZWQgY2hhcmFjdGVycyB0byB0aGUgdXNlcnMgaW5wdXQgYW5kIHJldHVybnMg
dGhlIHJlbWFpbmRlci4NCi8vIEFSR1VNRU5UUzogc1ZhbHVlLCBzSWQNCi8vIFJF
VFVSTjogTm9uZQ0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9u
IGZDb3VudENoYXJhY3RlcnMoc1ZhbHVlLHNJZCkgew0KCXZhciBuUmVtYWluaW5n
ID0gblRvdGFsQ2hhcmFjdGVycyAtIHNWYWx1ZS5sZW5ndGg7DQoJaWYoblJlbWFp
bmluZyA8IDApew0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzSWQpLnZhbHVl
ID0gc1ZhbHVlLnNsaWNlKDAsblRvdGFsQ2hhcmFjdGVycyk7DQoJfSBlbHNlIHsN
CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc0lkICsgJy1jaGFyYWN0ZXJzLWxl
ZnQnKS5pbm5lckhUTUwgPSBuUmVtYWluaW5nICsgJyBjaGFyYWN0ZXJzIGxlZnQn
Ow0KCX0NCn0NCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBGVU5DVElP
TjogZlJldHVybkZyaWVuZGx5TmFtZQ0KLy8gREVTQ1JJUFRJT046IEEgZnVuY3Rp
b24gdGhhdCBnZW5lcmF0ZXMgYSBmcmllbmRseSBmb3JtYXR0ZWQgbmFtZSBmcm9t
IGFuIHVuZm9ybWF0dGVkIGVsZW1lbnQgaWQNCi8vIEFSR1VNRU5UUzogc1VuZnJp
ZW5kbHlOYW1lDQovLyBSRVRVUk46IHNGcmllbmRseU5hbWUNCi8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBmUmV0dXJuRnJpZW5kbHlOYW1lKHNV
bmZyaWVuZGx5TmFtZSl7DQoJdmFyIHNUZW1wQ2hhciA9IHNVbmZyaWVuZGx5TmFt
ZS5jaGFyQXQoMCk7DQoJdmFyIHNGcmllbmRseU5hbWUgPSBzVW5mcmllbmRseU5h
bWUuc2xpY2UoMSk7DQoJc0ZyaWVuZGx5TmFtZSA9IHNUZW1wQ2hhci50b1VwcGVy
Q2FzZSgpICsgc0ZyaWVuZGx5TmFtZTsNCgl2YXIgblRlbXBDaGFyID0gMDsNCglm
b3Ioaj0xO2ohPTA7aisrKXsNCgkJblRlbXBDaGFyID0gc0ZyaWVuZGx5TmFtZS5p
bmRleE9mKCdfJyk7DQoJCWlmKG5UZW1wQ2hhciAhPSAnLTEnKXsNCgkJCXNUZW1w
Q2hhciA9IHNGcmllbmRseU5hbWUuY2hhckF0KG5UZW1wQ2hhcisxKTsNCgkJCXNG
cmllbmRseU5hbWUgPSBzRnJpZW5kbHlOYW1lLnJlcGxhY2UoJ18nICsgc1RlbXBD
aGFyLCcgJyArIHNUZW1wQ2hhci50b1VwcGVyQ2FzZSgpKTsNCgkJfSBlbHNlIHsN
CgkJCWo9LTE7DQoJCX0NCgl9DQoJLy8gRm9yd2FyZCBzbGFzaCAiLyIgZGV0ZWN0
aW9uDQoJaWYoc0ZyaWVuZGx5TmFtZS5pbmRleE9mKCdGcycpICE9ICctMScpew0K
CQlzRnJpZW5kbHlOYW1lID0gc0ZyaWVuZGx5TmFtZS5yZXBsYWNlKCdGcycsJy8n
KTsNCgl9IA0KCXJldHVybiBzRnJpZW5kbHlOYW1lOw0KfQ0KLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCi8vIEZVTkNUSU9OOiBmQ2xlYXJPbkNsaWNrDQovLyBE
RVNDUklQVElPTjogZW1wdGllcyBhIGZvcm0gZWxlbWVudCBvZiBpdCdzIHByZWRl
ZmluZWQgdGV4dA0KLy8gQVJHVU1FTlRTOiBvVGhpcyA9IFRoZSBmb3JtIGZpZWxk
LCBzRGVmYXVsdFRleHQgLSBUaGUgdGV4dCBoYXJkY29kZWQgdHAgdGhlIHRleHQg
ZmllbGQNCi8vIFJFVFVSTjogTm9uZQ0KLy8gRVhBTVBMRToJb25jbGljaz0iZkNs
ZWFyT25DbGljayh0aGlzLCdLZXl3b3JkJykiDQovLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQ0KZnVuY3Rpb24gZkNsZWFyT25DbGljayhvVGhpcyxzRGVmYXVsdFRl
eHQpIHsNCglpZihvVGhpcy52YWx1ZS50b0xvd2VyQ2FzZSgpID09IHNEZWZhdWx0
VGV4dC50b0xvd2VyQ2FzZSgpKSB7DQoJCW9UaGlzLnZhbHVlID0gIiI7DQoJfQ0K
fQ0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIEZVTkNUSU9OOiBmT3V0
cHV0SnNMaW5rDQovLyBERVNDUklQVElPTjogQSBmdW5jdGlvbiB0aGF0IGdlbmVy
YXRlcyBhbiBhY3Rpb24gbGluayBzdWNoIGFzIFByaW50IGFuZCBDbG9zZSBXaW5k
b3cNCi8vIEFSR1VNRU5UUzogc0FjdGlvblR5cGUNCi8vIFJFVFVSTjogTm9uZQ0K
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIGZPdXRwdXRKc0xp
bmsoc0FjdGlvblR5cGUsIHNJbWdVcmwpIHsNCgl2YXIgc0hUTUwgPSAnJzsNCglz
SFRNTCArPSAnCTx1bD4nOw0KCXN3aXRjaChzQWN0aW9uVHlwZSl7DQoJCWNhc2Ug
J2Nsb3NlJzoNCgkJCXNIVE1MICs9ICcJCTxsaSBjbGFzcz0iaWNvbi1vbi1sZWZ0
Ij48YSBjbGFzcz0ibGluay02NjYtbm8tdW5kZXJsaW5lIiBocmVmPSIjIiBvbmNs
aWNrPSJ3aW5kb3cuY2xvc2UoKTsgcmV0dXJuIGZhbHNlOyIgb25rZXlwcmVzcz0i
d2luZG93LmNsb3NlKCk7IHJldHVybiBmYWxzZTsiPjxpbWcgc3JjPSInICtzSW1n
VXJsKyAnIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGJvcmRlcj0iMCIgYWx0PSJD
bG9zZSBXaW5kb3ciIC8+PHNwYW4+Q2xvc2UgV2luZG93PC9zcGFuPjwvYT48L2xp
Pic7DQoJCWJyZWFrOw0KCQljYXNlICdwcmludCc6DQoJCQlzSFRNTCArPSAnCQk8
bGkgY2xhc3M9InByaW50LXBhZ2UiPjxhIGNsYXNzPSJsaW5rLTY2NiIgaHJlZj0i
IyIgb25jbGljaz0id2luZG93LnByaW50KCk7IHJldHVybiBmYWxzZTsiIG9ua2V5
cHJlc3M9IndpbmRvdy5wcmludCgpOyByZXR1cm4gZmFsc2U7Ij5QcmludCB0aGlz
IHBhZ2U8L2E+PC9saT4nOw0KCQlicmVhazsNCgkJZGVmYXVsdDoNCgl9DQoJc0hU
TUwgKz0gJwk8L3VsPic7DQoJZG9jdW1lbnQud3JpdGUoc0hUTUwpOw0KfQ0KLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gRlVOQ1RJT046IGZHb1VSTA0KLy8g
REVTQ1JJUFRJT046IEEgZnVuY3Rpb24gdGhhdCByZWRpcmVjdHMgdGhlIGJyb3dz
ZXIgdG8gdGhlIHJlY2VpdmVkIHVybA0KLy8gQVJHVU1FTlRTOiBzVXJsDQovLyBS
RVRVUk46IE5vbmUNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9u
IGZHb1VSTChzVXJsKSB7DQoJd2luZG93LmxvY2F0aW9uPXNVcmw7DQp9DQoNCi8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIEZVTkNUSU9OOiBmU3VibWl0DQov
LyBERVNDUklQVElPTjogQSBmdW5jdGlvbiB0aGF0IHN1Ym1pdHMgdG8gYXJjaGl2
ZXMgYWN0aW9uDQovLyBBUkdVTUVOVFM6IHNVcmwNCi8vIFJFVFVSTjogTm9uZQ0K
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gZlN1Ym1pdChzVXJs
ICwgZm9ybU5hbWUpIHsNCmRvY3VtZW50LmZvcm1zW2Zvcm1OYW1lXS5hY3Rpb249
c1VybDsNCmRvY3VtZW50LmZvcm1zW2Zvcm1OYW1lXS5zdWJtaXQoKTsNCn0NCg0K
ZnVuY3Rpb24gR2V0UXVlcnlTdHJpbmcoc3RyKSB7DQoJaHUgPSB3aW5kb3cubG9j
YXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTsNCglneSA9IGh1LnNwbGl0KCImIik7
DQoJZm9yIChpPTA7aTxneS5sZW5ndGg7aSsrKSB7DQoJCWZ0ID0gZ3lbaV0uc3Bs
aXQoIj0iKTsNCgkJaWYgKGZ0WzBdID09IHN0cikgew0KCQkJcmV0dXJuIGZ0WzFd
Ow0KCQl9DQoJfQ0KfQ0KDQoNCmZ1bmN0aW9uIHNldFlhaG9vQ29va2llKCkgew0K
CWlmIChnZXRfY29va2llKCdZSCcpID09ICJ5ZXMiIHx8IElzWWFob28gPT0gInll
cyIpIHsNCgkJc2V0X2Nvb2tpZSAoIllIIiwgIm9wZW4iLCAiMzAiLCAiIiApOw0K
CX0gZWxzZSB7DQoJCXNldF9jb29raWUgKCJZSCIsICJubyIsICIiLCAiIiApOw0K
CX0NCglyZXR1cm4gdHJ1ZTsNCn0NCg0KDQovLy0tPg==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=commentPluck.js
Content-Type: application/javascript; charset=ISO-8859-1; name=commentPluck.js
Content-Location: http://business.timesonline.co.uk/tol/js/commentPluck.js
Content-Transfer-Encoding: Base64
PCEtLQ0KdmFyIG5vT2ZDb21tZW50cyA9ICcwJzsNCg0KdmFyIG9Ccm93c2VyT2Jq
ZWN0ID0gew0KCQljdXJyZW50QnJvd3NlcjogZnVuY3Rpb24oKSB7DQoJCQl2YXIg
c0FnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOw0KCQkJ
dmFyIGN1cnI7CQ0KCQkJY3VyciA9IChzQWdlbnQuaW5kZXhPZigiY2hyb21lIikg
IT0gIi0xIikgPyAiY2hyb21lIiA6IChzQWdlbnQuaW5kZXhPZigiZmlyZWZveCIp
ICE9ICItMSIpID8gImZpcmVmb3giIDogKHNBZ2VudC5pbmRleE9mKCJvcGVyYSIp
ICE9ICItMSIpID8gIk9wZXJhIiA6KHNBZ2VudC5pbmRleE9mKCJzYWZhcmkiKSAh
PSAiLTEiKSA/ICJTYWZhcmkiIDogKHNBZ2VudC5pbmRleE9mKCJtc2llIikgIT0g
Ii0xIikgPyAiSUUiIDogKHNBZ2VudC5pbmRleE9mKCJuZXRzY2FwZSIpICE9ICIt
MSIpID8gIm5ldHNjYXBlIjogIlVua25vd24iOw0KCQkJcmV0dXJuIGN1cnI7DQoJ
CX0NCgl9Ow0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIEZVTkNUSU9O
OiBmU3VibWl0UmVxdWVzdEJhdGNoDQovLyBERVNDUklQVElPTjogQSBmdW5jdGlv
biB0byBzZW5kIHRoZSByZXF1ZXN0IGJhdGNoIHRvIFBsdWNrDQovLyBBUkdVTUVO
VFM6IGRhYXBpVXJsIGlzIHRoZSBQbHVjayBiZWdpbiByZXF1ZXN0IHVybC5hcnRp
Y2xlSWQgaXMgdGhlIGFydGljbGUgaWQgb2YgdGhlIA0KLy8gYXJ0aWNsZSBiZWlu
ZyB2aWV3ZWQNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmZ1bmN0aW9u
IGZTdWJtaXRSZXF1ZXN0QmF0Y2goZGFhcGlCZWdpblJlcXVlc3RVcmwgLCBhcnRp
Y2xlSWQpIHsNCgkNCgl2YXIgcmVxdWVzdEJhdGNoID0gbmV3IFJlcXVlc3RCYXRj
aCgpOw0KCXZhciBhcnRpY2xlS2V5ID0gbmV3IEFydGljbGVLZXkoYXJ0aWNsZUlk
KTsNCglpZihkaXNwbGF5QmVoYXZpb3VyYWxOYXYpew0KCQl2YXIgc2VjdGlvbnMg
PSBuZXcgQXJyYXkobmV3IFNlY3Rpb24oIkFsbCIpKTsgIA0KICAgICAgIHZhciBj
YXRlZ29yaWVzID0gbmV3IEFycmF5KG5ldyBDYXRlZ29yeSgiQWxsIikpOyAgDQog
ICAgICAgdmFyIHVzZXJUaWVycyA9IHBsdWNrVXNlclRpZXJzLnNwbGl0KCcsJyk7
DQogICAgICAgDQogICAgICAgdmFyIGNvbnRyaWJ1dG9ycyA9IG5ldyBBcnJheSgp
OyAgDQogICAgICAgZm9yKHZhciB0aWVySXRyID0gMCA7IHRpZXJJdHIgPCB1c2Vy
VGllcnMubGVuZ3RoIDsgdGllckl0cisrICl7DQogICAgCSAgIGNvbnRyaWJ1dG9y
c1t0aWVySXRyXSA9IG5ldyBVc2VyVGllcih1c2VyVGllcnNbdGllckl0cl0pOyAN
CiAgICAgICB9ICAgICAgIA0KICAgICAgIHZhciBhY3Rpdml0eSA9IG5ldyBBY3Rp
dml0eSgiQ29tbWVudGVkIik7ICANCiAgICAgICB2YXIgYWdlID0gZXZhbChtb3N0
Q29tbWVudGVkRGF5cyk7IC8vIG1heGltdW0gYWdlIGluIGRheXMgIA0KICAgICAg
IHZhciBudW1JdGVtc1RvR2V0ID0gNDsgIA0KICAgICAgICAgICAgICAgDQogICAg
ICAgIC8vIGNyZWF0ZSBhbmQgc2VuZCByZXF1ZXN0ICANCiAgICAgICAgdmFyIGRp
c2NvdmVyeUFjdGlvbiA9IG5ldyBEaXNjb3ZlckFydGljbGVzQWN0aW9uKCAgDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25z
LCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
dGVnb3JpZXMsICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29udHJpYnV0b3JzLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFjdGl2aXR5LCAgDQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFnZSwgIA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBudW1JdGVtc1RvR2V0KTsgIA0KICAgICAg
ICAgICAgICAgICAgIA0KICAgICAgIHJlcXVlc3RCYXRjaC5BZGRUb1JlcXVlc3Qo
ZGlzY292ZXJ5QWN0aW9uKTsgICAgIA0KCX0NCiAgICAgICByZXF1ZXN0QmF0Y2gu
QWRkVG9SZXF1ZXN0KGFydGljbGVLZXkpOyAgICAgICAgICAgDQoJcmVxdWVzdEJh
dGNoLkJlZ2luUmVxdWVzdChkYWFwaUJlZ2luUmVxdWVzdFVybCAsIGZSZW5kZXJO
dW1iZXJPZkNvbW1lbnRzKTsNCg0KfQ0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQ0KLy9GVU5DVElPTjogZkRpc3BsYXlDb21tZW50UGFnZU51bQ0KLy9ERVNDUklQ
VElPTjogQSBmdW5jdGlvbiB0byBzZXQgdGhlIHBhZ2UgbnVtYmVycyBmb3IgY29t
bWVudHMgZm9yIGVnLiBEaXNwbGF5aW5nIDEtMTANCi8vQVJHVU1FTlRTOnBnbnVt
IC0gcGFnZSBudW1iZXIgb2YgY29tbWVudHMgcmVjZWl2ZWQgZnJvbSBQbHVjaywg
cGVycGFnZSAtIG51bWJlciBvZiBjb21tZW50cyBkaXNwbGF5ZWQgcGVycGFnZQ0K
Ly8NCmZ1bmN0aW9uIGZEaXNwbGF5Q29tbWVudFBhZ2VOdW0ocGdudW0sIHBlcnBh
Z2Upew0KCXZhciBzdGFydCA9IChldmFsKHBnbnVtKS0xKSpwZXJwYWdlKzE7DQoJ
dmFyIGVuZCA9IGV2YWwocGdudW0pKnBlcnBhZ2U7DQoJdmFyIGNvbW1lbnRzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbW1lbnQtYm90dG9tLXAnKS5pbm5l
ckhUTUwgOw0KCXZhciB0bXBhcnIgPSBuZXcgQXJyYXkoKTsNCgl0bXBhcnIgPSBj
b21tZW50cy5zcGxpdCgiICIpOw0KDQoJaWYoZXZhbCh0bXBhcnJbMF0pPGVuZCkN
CgkJZW5kID0gdG1wYXJyWzBdOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b21tZW50LWRpc3BsYXktcGFnZS1udW0nKS5pbm5lckhUTUwgPSAnIChEaXNwbGF5
aW5nICcrc3RhcnQrJy0nK2VuZCsnKSc7DQoNCn0NCg0KLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0NCi8vIEZVTkNUSU9OOiBmUmVuZGVyTnVtYmVyT2ZDb21tZW50
cw0KLy8gREVTQ1JJUFRJT046IEEgZnVuY3Rpb24gdG8gc2V0IHRoZSBub09mQ29t
bWVudHMNCi8vIEFSR1VNRU5UUzpyZXNwb25zZUJhdGNoIGlzIHRoZSByZXNwb25z
ZSByZWNlaXZlZCBmcm9tIFBsdWNrDQovLyANCmZ1bmN0aW9uIGZSZW5kZXJOdW1i
ZXJPZkNvbW1lbnRzKHJlc3BvbnNlQmF0Y2gpIHsNCgkNCgl2YXIgaXNWYWxpZExl
bmd0aCA9IGZhbHNlICwgaXNNb3N0Q29tbWVudGVkID0gZmFsc2U7DQoJDQoJaWYo
cmVzcG9uc2VCYXRjaC5SZXNwb25zZXMubGVuZ3RoID4gMCl7DQoJCSAgaXNWYWxp
ZExlbmd0aCA9IHRydWU7DQogICAgICAgICAgdmFyIHJlc3BvbnNlUGx1Y2sgPSBy
ZXNwb25zZUJhdGNoLlJlc3BvbnNlc1swXTsNCiAgICAgICAgICBpZihyZXNwb25z
ZVBsdWNrLkRpc2NvdmVyQXJ0aWNsZXNBY3Rpb24gIT0gbnVsbCl7DQoJCQkgIGlm
KHJlc3BvbnNlUGx1Y2suRGlzY292ZXJBcnRpY2xlc0FjdGlvbi5EaXNjb3ZlcmVk
QXJ0aWNsZXMubGVuZ3RoID4gMCApDQoJCQkJICBpc01vc3RDb21tZW50ZWQgPSB0
cnVlOw0KCSAgICAgICAgICBmb3IodmFyIGk9MDsgaTwgcmVzcG9uc2VQbHVjay5E
aXNjb3ZlckFydGljbGVzQWN0aW9uLkRpc2NvdmVyZWRBcnRpY2xlcy5sZW5ndGg7
IGkrKyl7DQoJCQkJCSAgICANCgkJCSAgICAgICBhcnRpY2xlSGVhZGxpbmVzW2ld
ID0gcmVzcG9uc2VQbHVjay5EaXNjb3ZlckFydGljbGVzQWN0aW9uLkRpc2NvdmVy
ZWRBcnRpY2xlc1tpXS5QYWdlVGl0bGU7CQ0KCQkJICAgICAgIGFydGljbGVQYXRo
c1tpXSA9IHJlc3BvbnNlUGx1Y2suRGlzY292ZXJBcnRpY2xlc0FjdGlvbi5EaXNj
b3ZlcmVkQXJ0aWNsZXNbaV0uUGFnZVVybDsNCgkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIA0KCSAgICAgICAgICB9DQoJCX0NCiAgICAgfQ0KDQoJaWYo
aXNWYWxpZExlbmd0aCl7DQoJCXZhciByZXNwb25zZVBsdWNrOw0KCQkJaWYoIWlz
TW9zdENvbW1lbnRlZCkNCgkJCQkgcmVzcG9uc2VQbHVjayA9IHJlc3BvbnNlQmF0
Y2guUmVzcG9uc2VzWzBdOw0KCQkJZWxzZQ0KCQkJCSByZXNwb25zZVBsdWNrID0g
cmVzcG9uc2VCYXRjaC5SZXNwb25zZXNbMV07DQoJCQkNCgkJICAgaWYgKHJlc3Bv
bnNlUGx1Y2suQXJ0aWNsZSAhPSBudWxsKSB7IA0KCQkJCSBub09mQ29tbWVudHMg
PSByZXNwb25zZVBsdWNrLkFydGljbGUuQ29tbWVudHMuTnVtYmVyT2ZDb21tZW50
czsJDQoJCQkJIGlmKG5vT2ZDb21tZW50cyA9PSAnMCcpew0KCQkJCQkgaWYocGdv
ZmZzZXQgPT0gJzAnKXsNCgkJCQkJCSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29tbWVudC1jb3VudCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCQkJCSB9
DQoJCQkJCSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1zb3J0LW9y
ZGVyJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgkJCQkJIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdkaXNhYmxlLW91dHB1dC13aWRnZXQnKS5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOwkNCgkJCQkgfQ0KCQkJCSBlbHNlIGlmICggbm9PZkNvbW1l
bnRzID09ICcxJyApew0KCQkJCQkgaWYocGdvZmZzZXQgPT0gJzAnKXsNCgkJCQkJ
CSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1saW5rJykuaW5uZXJI
VE1MID0gbm9PZkNvbW1lbnRzICsgJyBDb21tZW50JzsNCgkJCQkJIH0NCgkJCQkJ
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbW1lbnQtYm90dG9tLXAnKS5pbm5l
ckhUTUwgPSBub09mQ29tbWVudHMgKyAnIENvbW1lbnQnOw0KCQkJCQlkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1zb3J0LW9yZGVyLW9ubHknKS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOwkNCgkJCQkgfQ0KCQkJCSBlbHNlew0KCQkJCQkg
aWYocGdvZmZzZXQgPT0gJzAnKXsNCgkJCQkJCSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29tbWVudC1saW5rJykuaW5uZXJIVE1MID0gbm9PZkNvbW1lbnRzICsg
JyBDb21tZW50cyc7DQoJCQkJCSB9DQoJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb21tZW50LWJvdHRvbS1wJykuaW5uZXJIVE1MID0gbm9PZkNvbW1lbnRz
ICsgJyBDb21tZW50cyc7DQoJCQkJIH0NCgkJCX1lbHNlew0KCQkJCWlmKHBnb2Zm
c2V0ID09ICcwJyl7DQoJCQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21t
ZW50LWNvdW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgkJCQl9DQoJCQkg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1zb3J0LW9yZGVyJyku
c3R5bGUuZGlzcGxheSA9ICdub25lJzsJDQoJCQkgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZGlzYWJsZS1vdXRwdXQtd2lkZ2V0Jykuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsJDQoJCSAgICB9DQoJCX1lbHNlew0KCQkJaWYocGdvZmZzZXQgPT0g
JzAnKXsNCgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1jb3Vu
dCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoJCQl9DQoJCQlkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29tbWVudC1zb3J0LW9yZGVyJykuc3R5bGUuZGlzcGxh
eSA9ICdub25lJzsJDQoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlzYWJs
ZS1vdXRwdXQtd2lkZ2V0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsJCQ0KCQl9
DQoJCQ0KCX0NCg0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gRlVO
Q1RJT046IGZHZXRSZXF1ZXN0T2JqZWN0DQovLyBERVNDUklQVElPTjogQSBmdW5j
dGlvbiB0aGF0IGdldHMgdGhlIHJlcXVlc3Qgb2JqZWN0IGZvciBkaWZmZXJlbnQg
YnJvd3NlcnMNCi8vIEFSR1VNRU5UUzogDQovLyBSRVRVUk46IE5vbmUNCi8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQp2YXIgYlJlcXVlc3QgPSBmYWxzZTsNCg0K
ZnVuY3Rpb24gZkdldFJlcXVlc3RPYmplY3QoKSB7DQoJdHJ5IHsNCgkJYlJlcXVl
c3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCgl9IA0KCWNhdGNoICh0cnltaWNy
b3NvZnQpew0KCQl0cnkgew0KCQkJYlJlcXVlc3QgPSBuZXcgQWN0aXZlWE9iamVj
dCgiTXN4bWwyLlhNTEhUVFAiKTsNCgkJfSANCgkJY2F0Y2ggKG90aGVybWljcm9z
b2Z0KSB7DQoJCQl0cnkgew0KCQkJCWJSZXF1ZXN0ID0gbmV3IEFjdGl2ZVhPYmpl
Y3QoIk1pY3Jvc29mdC5YTUxIVFRQIik7CQkJDQoJCQl9IA0KCQkJY2F0Y2ggKGZh
aWxlZCkgew0KCQkJCWJSZXF1ZXN0ID0gZmFsc2U7CQkJIA0KCQkJfSAgDQoJCX0N
Cgl9DQoJaWYgKCFiUmVxdWVzdCkNCgkJYWxlcnQoIkVycm9yIGluaXRpYWxpemlu
ZyBYTUxIdHRwUmVxdWVzdCEiKTsNCn0NCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KLy9GVU5DVElPTjogZkdldFJlcXVlc3RPYmplY3RMb2NhbA0KLy9ERVND
UklQVElPTjogQSBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIHJlcXVlc3Qgb2JqZWN0
IGZvciBkaWZmZXJlbnQgYnJvd3NlcnMNCi8vQVJHVU1FTlRTOiANCi8vUkVUVVJO
OiBOb25lDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlvbiBmR2V0
UmVxdWVzdE9iamVjdExvY2FsKCkgew0KCXRyeSB7DQoJCWJSZXF1ZXN0ID0gbmV3
IFhNTEh0dHBSZXF1ZXN0KCk7DQoJfSANCgljYXRjaCAodHJ5bWljcm9zb2Z0KXsN
CgkJdHJ5IHsNCgkJCWJSZXF1ZXN0ID0gbmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1s
Mi5YTUxIVFRQIik7DQoJCX0gDQoJCWNhdGNoIChvdGhlcm1pY3Jvc29mdCkgew0K
CQkJdHJ5IHsNCgkJCQliUmVxdWVzdCA9IG5ldyBBY3RpdmVYT2JqZWN0KCJNaWNy
b3NvZnQuWE1MSFRUUCIpOwkJCQ0KCQkJfSANCgkJCWNhdGNoIChmYWlsZWQpIHsN
CgkJCQliUmVxdWVzdCA9IGZhbHNlOwkJCSANCgkJCX0gIA0KCQl9DQoJfQ0KCWlm
ICghYlJlcXVlc3QpDQoJCWFsZXJ0KCJFcnJvciBpbml0aWFsaXppbmcgWE1MSHR0
cFJlcXVlc3QhIik7DQoJcmV0dXJuIGJSZXF1ZXN0Ow0KfQ0KDQoNCg0KLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy9GVU5DVElPTjogZlZhbGlkYXRlSXNOb3RF
cXVhbA0KLy9ERVNDUklQVElPTjogQSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBmb3Ig
aXMgbm90IGVxdWFsIHRvIGNvbmRpdGlvbi4NCi8vQVJHVU1FTlRTOiB0d28gcGFy
YW1ldGVycyB0byBiZSBjb21wYXJlZA0KLy9SRVRVUk46IHRydWUgb3IgZmFsc2UN
Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIGZWYWxpZGF0ZUlz
Tm90RXF1YWwoaW5wdXQsIHZhbHVlKXsNCglpZihpbnB1dCE9dmFsdWUpew0KCQly
ZXR1cm4gdHJ1ZTsNCgl9ZWxzZXsNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCn0NCg0K
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy9GVU5DVElPTjogZlZhbGlkYXRl
SXNFcXVhbA0KLy9ERVNDUklQVElPTjogQSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBm
b3IgaXMgZXF1YWwgdG8gY29uZGl0aW9uLg0KLy9BUkdVTUVOVFM6IHR3byBwYXJh
bWV0ZXJzIHRvIGJlIGNvbXBhcmVkDQovL1JFVFVSTjogdHJ1ZSBvciBmYWxzZQ0K
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gZlZhbGlkYXRlSXNF
cXVhbChpbnB1dCwgdmFsdWUpew0KCWlmKGlucHV0ID09IHZhbHVlKXsNCgkJcmV0
dXJuIHRydWU7DQoJfWVsc2V7DQoJCXJldHVybiBmYWxzZTsNCgl9DQp9DQoNCi8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vRlVOQ1RJT046IGZDYWxsT3Zlcmxh
eQ0KLy9ERVNDUklQVElPTjogQSBmdW5jdGlvbiB0byBkaXNwbGF5IG92ZXJsYXkN
Ci8vQVJHVU1FTlRTOiBsaWdodCAtIGlkIG9mIHRoZSBkaXYgdG8gaGlkZSBhbmQg
ZmFkZSAtIGlkIHRvIGRpc3BsYXkgdGhlIGJhY2tncm91bmQNCi8vUkVUVVJOOiBO
b25lDQovLw0KZnVuY3Rpb24gZkNhbGxPdmVybGF5KGxpZ2h0LGZhZGUpIHsNCgkN
CgkNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmYWRlKS5zdHlsZS5kaXNwbGF5
PSdibG9jayc7DQoJLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJy
b3IiKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCglkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChmYWRlKS5zdHlsZS5oZWlnaHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
Lm9mZnNldEhlaWdodCsicHgiOw0KCQ0KCQ0KCWlmKG9Ccm93c2VyT2JqZWN0LmN1
cnJlbnRCcm93c2VyKCk9PSAiSUUiKSB7DQoJCWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGZhZGUpLnN0eWxlLmhlaWdodD1kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdo
dCsicHgiOw0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmYWRlKS5zdHlsZS53
aWR0aD1kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoKyJweCI7DQoJCQ0KCX0NCgkg
DQoJIGlmKGxpZ2h0ID09ICdsb2dpbi1saWdodCcgJiYgb0Jyb3dzZXJPYmplY3Qu
Y3VycmVudEJyb3dzZXIoKT09ICJJRSIpewkNCgkJICANCiAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChsaWdodCkuaW5uZXJIVE1MPSAnPGlmcmFt
ZSBpZD0ibGZyYW1lIiBzcmM9IicrY29tbWVudHNVcmxQcmVmaXgrJ1wvZ2VucmVn
XC9qc3BcL1RPTFwvY29tbWVudHNMb2dpbi5qc3A/YXJ0aWNsZVVybD0nK2FydGlj
bGVVcmwrJyIgd2lkdGg9IjQyNiIgaGVpZ2h0PSIyOTQiIHNjcm9sbGluZz0ibm8i
IGZyYW1lYm9yZGVyPTAgbWFyZ2lud2lkdGg9MCBtYXJnaW5oZWlnaHQ9MD48XC9p
ZnJhbWU+JyA7DQoJICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxm
cmFtZSIpLnNyYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsZnJhbWUiKS5z
cmM7DQoJICAgICAgICAgDQogICAgICAgIH1lbHNlIGlmIChsaWdodCA9PSAnbG9n
aW4tbGlnaHQnICYmIG9Ccm93c2VyT2JqZWN0LmN1cnJlbnRCcm93c2VyKCkgIT0g
IklFIikNCiAgICAgICAgew0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGxpZ2h0KS5pbm5lckhUTUw9JzxpZnJhbWUgc3JjPSInK2NvbW1l
bnRzVXJsUHJlZml4KydcL2dlbnJlZ1wvanNwXC9UT0xcL2NvbW1lbnRzTG9naW4u
anNwP2FydGljbGVVcmw9JythcnRpY2xlVXJsKyciIHN0eWxlPSJvdmVyZmxvdzpo
aWRkZW47IiBzY3JvbGxpbmc9Im5vIiBjbGFzcz0iZmxvYXQtbGVmdCIgd2lkdGg9
IjQyNiIgaGVpZ2h0PSIyOTQiIGFsaWduPSJsZWZ0IiBmcmFtZWJvcmRlcj0wIG1h
cmdpbndpZHRoPTAgbWFyZ2luaGVpZ2h0PTA+PFwvaWZyYW1lPicgOw0KDQogICAg
ICAgIH1lbHNlIGlmIChsaWdodCA9PSAnbG9naW4tZmFkZScpDQogICAgICAgIHsN
CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChsaWdodCku
aW5uZXJIVE1MPScnOw0KICAgICAgICB9ZWxzZSBpZihsaWdodCA9PSAncmVnaXN0
ZXItbGlnaHQnICYmIG9Ccm93c2VyT2JqZWN0LmN1cnJlbnRCcm93c2VyKCk9PSAi
SUUiKXsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChs
aWdodCkuaW5uZXJIVE1MPSc8aWZyYW1lIGlkPSJyZnJhbWUiIHNyYz0iJytjb21t
ZW50c1VybFByZWZpeCsnXC9nZW5yZWdcL2pzcFwvVE9MXC9jb21tZW50c1JlZ2lz
dHJhdGlvbi5qc3A/YXJ0aWNsZVVybD0nK2FydGljbGVVcmwrJyIgc2Nyb2xsaW5n
PSJubyIgd2lkdGg9IjQyNiIgaGVpZ2h0PSI4OTAiIGZyYW1lYm9yZGVyPTAgbWFy
Z2lud2lkdGg9MCBtYXJnaW5oZWlnaHQ9MD48XC9pZnJhbWU+Jzs7DQogICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJmcmFtZSIpLnNyYyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZnJhbWUiKS5zcmM7DQoNCiAgICAg
ICAgfWVsc2UgaWYgKGxpZ2h0ID09ICdyZWdpc3Rlci1saWdodCcgJiYgb0Jyb3dz
ZXJPYmplY3QuY3VycmVudEJyb3dzZXIoKSAhPSAiSUUiKQ0KICAgICAgICB7DQog
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGlnaHQpLmlu
bmVySFRNTD0nPGlmcmFtZSBzcmM9IicrY29tbWVudHNVcmxQcmVmaXgrJ1wvZ2Vu
cmVnXC9qc3BcL1RPTFwvY29tbWVudHNSZWdpc3RyYXRpb24uanNwP2FydGljbGVV
cmw9JythcnRpY2xlVXJsKyciIHNjcm9sbGluZz0ibm8iIGNsYXNzPSJmbG9hdC1s
ZWZ0IiB3aWR0aD0iNDI2IiBoZWlnaHQ9Ijg5MCIgYWxpZ249ImxlZnQiIGZyYW1l
Ym9yZGVyPTAgbWFyZ2lud2lkdGg9MCBtYXJnaW5oZWlnaHQ9MD48XC9pZnJhbWU+
Jzs7DQogICAgICAgIH1lbHNlIGlmIChsaWdodCA9PSAncmVnaXN0ZXItZmFkZScp
DQogICAgICAgIHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChsaWdodCkuaW5uZXJIVE1MPScnOw0KICAgICAgICB9ZWxzZSBpZihsaWdo
dCA9PSAncGFydGljaXBhdGUtbGlnaHQnICYmIG9Ccm93c2VyT2JqZWN0LmN1cnJl
bnRCcm93c2VyKCk9PSAiSUUiKXsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChsaWdodCkuaW5uZXJIVE1MPSAnPGlmcmFtZSBpZD0icGZy
YW1lIiBzcmM9IicrY29tbWVudHNVcmxQcmVmaXgrJ1wvZ2VucmVnXC9qc3BcL1RP
TFwvY29tbWVudHNMb2dpbi5qc3A/YXJ0aWNsZVVybD0nK2FydGljbGVVcmwrJyZh
Y3Rpb249Y29uZmlybSIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjQyNiIgaGVpZ2h0
PSIyNjciIGZyYW1lYm9yZGVyPTAgbWFyZ2lud2lkdGg9MCBtYXJnaW5oZWlnaHQ9
MD48XC9pZnJhbWU+JyA7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInBmcmFtZSIpLnNyYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJwZnJhbWUiKS5zcmM7DQoNCiAgICAgICAgfWVsc2UgaWYgKGxpZ2h0ID09ICdw
YXJ0aWNpcGF0ZS1saWdodCcgJiYgb0Jyb3dzZXJPYmplY3QuY3VycmVudEJyb3dz
ZXIoKSAhPSAiSUUiKQ0KICAgICAgICB7DQogICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQobGlnaHQpLmlubmVySFRNTD0gJzxpZnJhbWUgc3Jj
PSInK2NvbW1lbnRzVXJsUHJlZml4KydcL2dlbnJlZ1wvanNwXC9UT0xcL2NvbW1l
bnRzTG9naW4uanNwP2FydGljbGVVcmw9JythcnRpY2xlVXJsKycmYWN0aW9uPWNv
bmZpcm0iIHN0eWxlPSJvdmVyZmxvdzpoaWRkZW47IiBzY3JvbGxpbmc9Im5vIiBj
bGFzcz0iZmxvYXQtbGVmdCIgd2lkdGg9IjQyNiIgaGVpZ2h0PSIyNjciIGFsaWdu
PSJsZWZ0IiBmcmFtZWJvcmRlcj0wIG1hcmdpbndpZHRoPTAgbWFyZ2luaGVpZ2h0
PTA+PFwvaWZyYW1lPicgOw0KICAgICAgICB9ZWxzZSBpZiAobGlnaHQgPT0gJ3Bh
cnRpY2lwYXRlLWZhZGUnKQ0KICAgICAgICB7DQogICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQobGlnaHQpLmlubmVySFRNTD0nJzsNCiAgICAg
ICAgfWVsc2UgaWYgKGxpZ2h0ID09ICdsb2dvdXQtbGlnaHQnICYmIG9Ccm93c2Vy
T2JqZWN0LmN1cnJlbnRCcm93c2VyKCk9PSAiSUUiKXsNCiAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChsaWdodCkuaW5uZXJIVE1MPSAnPGlm
cmFtZSBpZD0ibG9nb3V0ZnJhbWUiIHNyYz0iJytjb21tZW50c1VybFByZWZpeCsn
XC9nZW5yZWdcL2pzcFwvVE9MXC9jb21tZW50c0xvZ291dC5qc3A/YXJ0aWNsZVVy
bD0nK2FydGljbGVVcmwrJyIgc2Nyb2xsaW5nPSJubyIgd2lkdGg9IjQyNiIgaGVp
Z2h0PSIyNjciIGZyYW1lYm9yZGVyPTAgbWFyZ2lud2lkdGg9MCBtYXJnaW5oZWln
aHQ9MD48XC9pZnJhbWU+JyA7DQoJCSAgLy9hbGVydChkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibG9nb3V0ZnJhbWUiKS5zcmMpOw0KICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dvdXRmcmFtZSIpLnNyYyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2dvdXRmcmFtZSIpLnNyYzsNCg0KICAgICAg
ICB9ZWxzZSBpZiAobGlnaHQgPT0gJ2xvZ291dC1saWdodCcgJiYgb0Jyb3dzZXJP
YmplY3QuY3VycmVudEJyb3dzZXIoKSAhPSAiSUUiKQ0KICAgICAgICB7DQogICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGlnaHQpLmlubmVy
SFRNTD0gJzxpZnJhbWUgc3JjPSInK2NvbW1lbnRzVXJsUHJlZml4KydcL2dlbnJl
Z1wvanNwXC9UT0xcL2NvbW1lbnRzTG9nb3V0LmpzcD9hcnRpY2xlVXJsPScrYXJ0
aWNsZVVybCsnJmFjdGlvbj1jb25maXJtIiBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVu
OyIgc2Nyb2xsaW5nPSJubyIgY2xhc3M9ImZsb2F0LWxlZnQiIHdpZHRoPSI0MjYi
IGhlaWdodD0iMjY3IiBhbGlnbj0ibGVmdCIgZnJhbWVib3JkZXI9MCBtYXJnaW53
aWR0aD0wIG1hcmdpbmhlaWdodD0wPjxcL2lmcmFtZT4nIDsNCiAgICAgICAgfWVs
c2UgaWYgKGxpZ2h0ID09ICdsb2dvdXQtZmFkZScpew0KICAgICAgICAJCWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGxpZ2h0KS5pbm5lckhUTUw9Jyc7DQoJIH0NCg0K
CWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGxpZ2h0KS5zdHlsZS5kaXNwbGF5PSdi
bG9jayc7DQp9DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL0ZVTkNUSU9O
OiBmUmVtb3ZlT3ZlcmxheQ0KLy9ERVNDUklQVElPTjogQSBmdW5jdGlvbiB0byBz
aG93L2hpZGUgdGhlIGxvZ2luIHBvcCB1cCBhbmQgcGFnZQ0KLy9BUkdVTUVOVFM6
IGxpZ2h0IC0gaWQgb2YgdGhlIGRpdiB0byBoaWRlIGFuZCBmYWRlIC0gaWQgdG8g
ZGlzcGxheSB0aGUgYmFja2dyb3VuZA0KLy9SRVRVUk46IE5vbmUNCi8vDQpmdW5j
dGlvbiBmUmVtb3ZlT3ZlcmxheShsaWdodCxmYWRlKSB7DQoJZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQobGlnaHQpLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KCWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGZhZGUpLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0K
fQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL0ZVTkNUSU9OOiBmUmVt
b3ZlT3ZlcmxheVJlc2V0DQovL0RFU0NSSVBUSU9OOiBBIGZ1bmN0aW9uIHRvIHNo
b3cvaGlkZSB0aGUgcmVnbiBwb3AgdXAgYW5kIHBhZ2UNCi8vQVJHVU1FTlRTOiBs
aWdodCAtIGlkIG9mIHRoZSBkaXYgdG8gaGlkZSBhbmQgZmFkZSAtIGlkIHRvIGRp
c3BsYXkgdGhlIGJhY2tncm91bmQNCi8vUkVUVVJOOiBOb25lDQovLw0KZnVuY3Rp
b24gZlJlbW92ZU92ZXJsYXlSZXNldChsaWdodCxmYWRlLGZvcm0pIHsNCglkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChmb3JtKS5yZXNldCgpOw0KDQoJaWYoZm9ybSA9
PSAiY29tbWVudFJlZ2lzdHJhdGlvbkZvcm0iKXsNCgkJZlJlc2V0UmVnaXN0cmF0
aW9uRXJyb3JzKCk7DQoJCWZSZWxvYWRDYXB0Y2hhKCk7DQoJfQ0KCWlmKGZvcm0g
PT0gImNvbW1lbnRMb2dpbkZvcm0iKXsNCgkJZlJlc2V0TG9naW5FcnJvcnMoKTsN
Cgl9DQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGlnaHQpLnN0eWxlLmRpc3Bs
YXk9J25vbmUnOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZhZGUpLnN0eWxl
LmRpc3BsYXk9J25vbmUnOw0KCQ0KfQ0KDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCi8vRlVOQ1RJT046IGZDYWxsV2lkZ2V0DQovL0RFU0NSSVBUSU9OOiBB
IGZ1bmN0aW9uIHRvIHJlZnJlc2ggdGhlIHdpZGdldA0KLy9BUkdVTUVOVFM6IA0K
Ly9SRVRVUk46IE5vbmUNCi8vDQpmdW5jdGlvbiBmQ2FsbFdpZGdldCgpew0KDQoJ
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpZGdldC1lbmFibGUnKS5zdHlsZS5k
aXNwbGF5PSdub25lJzsJDQoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpZGdl
dC1kaXNhYmxlJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOwkNCn0NCg0KZG9jdW1l
bnQub25tb3VzZWRvd249ZnVuY3Rpb24oKSB7CQ0KCX0NCg0KDQovLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQovL0ZVTkNUSU9OOiBnZXREaXNwbGF5TmFtZQ0KLy9E
RVNDUklQVElPTjogQSBmdW5jdGlvbiB0byBnZXQgZGlzcGxheSBuYW1lIGZvciB0
aGUgdXNlcg0KLy9BUkdVTUVOVFM6IA0KLy9SRVRVUk46IE5vbmUNCi8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKCl7DQoJdmFy
IGF0Q29va2llID0gZ2V0Q29va2llKCdhdCcpOw0KCXZhciBkaXNwbGF5TmFtZSA9
ICcnOw0KCWlmKGF0Q29va2llKXsNCgkJdmFyIGNvb2tpZVZhbEFycmF5ID0gYXRD
b29raWUuc3BsaXQoJyYnKTsNCgkJZm9yKHZhciBpdHIgPSAwIDsgaXRyIDwgY29v
a2llVmFsQXJyYXkubGVuZ3RoIDsgaXRyICsrICl7DQoJCQkJaWYoY29va2llVmFs
QXJyYXlbaXRyXS5pbmRleE9mKCdhPScpICE9IC0xKXsNCgkJCQkJDQoJCQkJCWRp
c3BsYXlOYW1lID0gcmVwbGFjZUFsbChjb29raWVWYWxBcnJheVtpdHJdLCdhPScs
JycpOw0KCQkJCQkNCgkJCQkJZGlzcGxheU5hbWUgPSByZXBsYWNlQWxsKGRpc3Bs
YXlOYW1lLCcrJywnICcpOw0KCQkJCQlicmVhazsNCgkJCQl9CQ0KCQl9DQoJfQ0K
CQ0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXNwbGF5LW5hbWUnKS5pbm5l
ckhUTUwgPSBkaXNwbGF5TmFtZTsNCn0NCg0KDQovLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQovL0ZVTkNUSU9OOiBmR2V0TG9naW5TdGF0dXMNCi8vREVTQ1JJUFRJ
T046IEEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBsb2dpbiBzdGF0dXMNCi8vQVJHVU1F
TlRTOiANCi8vUkVUVVJOOiBOb25lDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tDQpm
dW5jdGlvbiBmR2V0TG9naW5TdGF0dXMoKXsNCgl2YXIgYXRDb29raWUgPSBnZXRD
b29raWUoJ2F0Jyk7DQoJdmFyIGVyaWdodHNDb29raWUgPSBnZXRDb29raWUoJ0VS
SUdIVFMnKTsNCgl2YXIgc3RyQWZ0ZXJMb2dpbiA9Jyc7DQoJDQoJaWYoIGF0Q29v
a2llICYmIGVyaWdodHNDb29raWUpew0KCQl2YXIgY3VycmVudERpc3BsYXlOYW1l
ID0gIGZHZXRDdXJyZW50RGlzcGxheU5hbWUoKTsNCgkJc3RyQWZ0ZXJMb2dpbis9
Jwk8ZGl2IGNsYXNzPSJwYWRkaW5nLWxlZnQtcmlnaHQtMTAiPjxkaXYgY2xhc3M9
InBhZGRpbmctdG9wLTEwIj48XC9kaXY+PHAgY2xhc3M9InNtYWxsIHBhZGRpbmct
Ym90dG9tLTUgY29sb3ItNjY2Ij48c3Ryb25nPicrIHNpZ25pblRleHQgKyc8XC9z
dHJvbmc+PHN0cm9uZz4gJytjdXJyZW50RGlzcGxheU5hbWUrJzxcL3N0cm9uZz48
XC9wPic7DQoJCXN0ckFmdGVyTG9naW4rPScJPGRpdiBjbGFzcz0icGFkZGluZy10
b3AtNSI+PFwvZGl2Pic7DQoJCXN0ckFmdGVyTG9naW4rPScJPGRpdiBjbGFzcz0i
ZmxvYXQtbGVmdCBwYWRkaW5nLXRvcC0yIj48YSBjbGFzcz0ibGluay0wNmMgc21h
bGwiIGhyZWY9IicrbXlQcm9maWxlVXJsKyciPjxzdHJvbmc+JytteVByb2ZpbGVU
ZXh0Kyc8XC9zdHJvbmc+PFwvYT48XC9kaXY+JzsNCgkJc3RyQWZ0ZXJMb2dpbis9
Jwk8ZGl2IGNsYXNzPSJmbG9hdC1sZWZ0IGNvbW1lbnQtYm9yZGVyLXJpZ2h0IHBh
ZGRpbmctbGVmdC02IGhlaWdodC0yMCI+PFwvZGl2Pic7DQoJCXN0ckFmdGVyTG9n
aW4rPScJPGRpdiBjbGFzcz0iZmxvYXQtbGVmdCBwYWRkaW5nLXRvcC0yIHBhZGRp
bmctbGVmdC04Ij48YSBjbGFzcz0ibGluay0wNmMgc21hbGwiIGhyZWY9ImphdmFz
Y3JpcHQ6dm9pZCgwKSIgb25jbGljayA9ICJmQ2FsbE92ZXJsYXkoXCdsb2dvdXQt
bGlnaHRcJyxcJ2xvZ291dC1mYWRlXCcpOyI+PHN0cm9uZz4nK2xvZ291dFRleHQr
JzxcL3N0cm9uZz48XC9hPjxcL2Rpdj4nOw0KCQlzdHJBZnRlckxvZ2luKz0nICAJ
PGRpdiBjbGFzcz0iY2xlYXIiPjxcL2Rpdj48XC9kaXY+JzsNCgkJDQoJCWRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1zdGF0dXMiKS5pbm5lckhUTUw9c3Ry
QWZ0ZXJMb2dpbjsNCgl9DQoJZWxzZSBpZiggIWF0Q29va2llICYmIGVyaWdodHND
b29raWUpew0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tc3RhdHVz
IikuaW5uZXJIVE1MPXN0ckF0UGFydGljaXBhdGU7DQoJfQ0KCWVsc2V7DQoJCWRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1zdGF0dXMiKS5pbm5lckhUTUw9
c3RyQmVmb3JlTG9naW47DQoJfQ0KfQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQovL0ZVTkNUSU9OOiBmR2V0Q3VycmVudERpc3BsYXlOYW1lDQovL0RFU0NS
SVBUSU9OOiBBIGZ1bmN0aW9uIHRvIGdldCB0aGUgZGlzcGxheSAgbmFtZQ0KLy9B
UkdVTUVOVFM6IA0KLy9SRVRVUk46IE5vbmUNCi8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCmZ1bmN0aW9uIGZHZXRDdXJyZW50RGlzcGxheU5hbWUoKXsNCgkNCgl2YXIg
YXRDb29raWUgPSBnZXRDb29raWUoJ2F0Jyk7DQoJdmFyIGRpc3BsYXlOYW1lID0g
Jyc7DQoJaWYoYXRDb29raWUpew0KCQl2YXIgY29va2llVmFsQXJyYXkgPSBhdENv
b2tpZS5zcGxpdCgnJicpOw0KCQlmb3IodmFyIGl0ciA9IDAgOyBpdHIgPCBjb29r
aWVWYWxBcnJheS5sZW5ndGggOyBpdHIgKysgKXsNCgkJCQlpZihjb29raWVWYWxB
cnJheVtpdHJdLmluZGV4T2YoJ2E9JykgIT0gLTEpew0KCQkJCQlkaXNwbGF5TmFt
ZSA9IGNvb2tpZVZhbEFycmF5W2l0cl0ucmVwbGFjZSgnYT0nLCcnKS5yZXBsYWNl
KCcrJywnICcpOw0KCQkJCQlicmVhazsNCgkJCQl9CQ0KCQl9DQoJfQ0KCXJldHVy
biBkaXNwbGF5TmFtZTsNCn0NCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
Ly9GVU5DVElPTjogZkF1dG9SZXNpemVDb21tZW50SWZyYW1lDQovL0RFU0NSSVBU
SU9OOiBBIGZ1bmN0aW9uIHRvIHJlc2l6ZSB0aGUgY29tbWVudHMgaW5wdXQgd2lk
Z2V0DQovLwkJCSAgIGRlcGVuZGluZyB1cG9uIHRoZSBzcGFjZSBvY2N1cGllZCBi
eSB0aGFuayB5b3UgDQovLwkJCSAgIGVycm9yIHRleHQNCi8vQVJHVU1FTlRTOiAN
Ci8vUkVUVVJOOiBOb25lDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tDQpmdW5jdGlv
biBmQXV0b1Jlc2l6ZUNvbW1lbnRJZnJhbWUoKSB7DQoJdmFyIGlmcmFtZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21tZW50c2lmcmFtZScpOw0KCWlmICgh
aWZyYW1lKSB7IHJldHVybjsgfQ0KCQ0KCWZ1bmN0aW9uIGFkZEV2ZW50KGVsZW0s
IG5hbWUsIGZuKSB7DQoJCWlmIChlbGVtLmFkZEV2ZW50TGlzdGVuZXIpDQoJCQll
bGVtLmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgZm4sIGZhbHNlKTsNCgkJZWxzZSBp
ZiAoZWxlbS5hdHRhY2hFdmVudCkNCgkJCWVsZW0uYXR0YWNoRXZlbnQoJ29uJyAr
IG5hbWUsIGZuKTsgDQoJfQ0KCWZ1bmN0aW9uIGlmcmFtZUZpbmRlcigpIHsNCgkg
ICAgdmFyIGRvYyA9IHdpbmRvdy5mcmFtZXNbJ2NvbW1lbnRzaWZyYW1lJ10uZG9j
dW1lbnQNCgkgICAgCSxmb3VuZCA9IGZhbHNlICwgZm9ybSAsIHRleHRhcmVhICwg
Y29udGFpbmVyICwgaXNQcmVzZW50ID0gZmFsc2U7DQoJICAgIGlmKGRvYyl7DQoJ
ICAgIAlmb3JtID0gZG9jLmZvcm1zWzBdOw0KCSAgICAJY29udGFpbmVyID0gZG9j
LmdldEVsZW1lbnRCeUlkKCdDb21tZW50c0NvbnRhaW5lcicpOw0KCSAgICB9DQoJ
ICAgaWYoZm9ybSl7IA0KCSAgICAJdGV4dGFyZWEgPSBmb3JtLmVsZW1lbnRzWydj
b21tZW50LkJvZHknXQ0KCQkgICAgLy8gc2V0IGJhY2tncm91bmQgY29sb3VyIGZv
ciBkb2N1bWVudCBlbGVtZW50IChmaXggSUUgYnVnKQ0KCQkgICAgaWYgKC8qQGNj
X29uIUAqL2ZhbHNlICYmIGNvbnRhaW5lciAmJiBjb250YWluZXIuY3VycmVudFN0
eWxlKQ0KCQkgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmJhY2tncm91
bmRDb2xvciA9IGNvbnRhaW5lci5jdXJyZW50U3R5bGUuYmFja2dyb3VuZENvbG9y
Ow0KCQkgICAgDQoJCSAgICANCgkJCWZvciAodmFyIGkgPSAwLCBlbGVtcyA9IGZv
cm0uZWxlbWVudHM7IGVsZW0gPSBlbGVtc1tpXTsgaSsrKSB7DQoJCQkJaWYgKGVs
ZW0udHlwZSA9PSAnc3VibWl0Jykgew0KCQkJCQlmb3VuZCA9IHRydWU7DQoJCQkJ
CWJyZWFrOw0KCQkJCX0NCgkJCX0NCgkJCQ0KCQkJaWYgKGZvdW5kKSB7DQoJCQkJ
dmFyIG5vZGUgPSBlbGVtLCB0b3AgPSAwOw0KCQkJCWRvIHsNCgkJCQkJdG9wICs9
IG5vZGUub2Zmc2V0VG9wOw0KCQkJCX0gd2hpbGUobm9kZSA9IG5vZGUub2Zmc2V0
UGFyZW50KTsNCgkJCQkNCgkJCQlhZGRFdmVudChlbGVtLCAnY2xpY2snLCBmdW5j
dGlvbihlKSB7IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBmcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21tZW50c2lmcmFtZScpOw0K
CQkJCQlmcmFtZS5zdHlsZS5oZWlnaHQgPSAodG9wICsgZWxlbS5vZmZzZXRIZWln
aHQgKyAodGV4dGFyZWEudmFsdWUgIT09ICcnID8gMTYgOiAyNykpICsgJ3B4JzsN
CgkJCQl9LDEwMCkgfSk7DQoJCQl9DQoJCX0NCgl9DQoJYWRkRXZlbnQoaWZyYW1l
LCAnbG9hZCcsIGlmcmFtZUZpbmRlcik7DQp9DQovLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQovL0ZVTkNUSU9OOiBmR2V0UGx1Y2tSZXF1ZXN0QmF0Y2gNCi8vREVT
Q1JJUFRJT046IEEgZnVuY3Rpb24gZ2V0IHRoZSByZXF1ZXN0IGJhdGNoIGZvciBQ
bHVjaw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gZkdldFBs
dWNrUmVxdWVzdEJhdGNoKCl7DQoJcmV0dXJuIChuZXcgUmVxdWVzdEJhdGNoKCkp
Ow0KfQ0KDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovL0ZVTkNUSU9OOiBm
Q3JlYXRlUmVxdWVzdEJhdGNoDQovL0RFU0NSSVBUSU9OOiBBIGZ1bmN0aW9uIGdl
dCB0aGUgcmVxdWVzdCBiYXRjaCBmb3IgUGx1Y2sNCi8vQVJHVU1FTlRTOiByZXF1
ZXN0QmF0Y2ggLSBiYXRjaCBvZiByZXF1ZXN0cyB0byBiZSBzZW50IHRvIHBsdWNr
IA0KLy8JCQkgYXJ0aWNsZUlkIC0gVW5pcXVlIGlkIG9mIGFuIGFydGljbGUNCi8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIGZDcmVhdGVSZXF1ZXN0
QmF0Y2goIHJlcXVlc3RCYXRjaCAsIGFydGljbGVJZCApIHsNCgl2YXIgYXJ0aWNs
ZUtleSA9IG5ldyBBcnRpY2xlS2V5KGFydGljbGVJZCk7DQoJcmVxdWVzdEJhdGNo
LkFkZFRvUmVxdWVzdChhcnRpY2xlS2V5KTsgICAgICAgICAgIA0KDQp9DQoNCi8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vRlVOQ1RJT046IGZTdWJtaXRSZXFO
b09mQ29tbWVudHMNCi8vREVTQ1JJUFRJT046IEEgZnVuY3Rpb24gdG8gc3VibWl0
IHJlcXVlc3QgYmF0Y2ggdG8gUGx1Y2sNCi8vQVJHVU1FTlRTOiByZXF1ZXN0QmF0
Y2ggLSBiYXRjaCBvZiByZXF1ZXN0cyB0byBiZSBzZW50IHRvIHBsdWNrIA0KLy8J
CQkgZGFhcGlCZWdpblJlcXVlc3RVcmwgLSBwbHVjayBkYWFwaSB1cmwNCi8vLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIGZTdWJtaXRSZXFOb09mQ29t
bWVudHMoIHJlcXVlc3RCYXRjaCAsIGRhYXBpQmVnaW5SZXF1ZXN0VXJsICl7DQoJ
cmVxdWVzdEJhdGNoLkJlZ2luUmVxdWVzdChkYWFwaUJlZ2luUmVxdWVzdFVybCAs
IGZSZW5kZXJOdW1iZXJPZkNvbW1lbnRzTG9ja1VwKTsNCn0NCg0KZnVuY3Rpb24g
ZlN1Ym1pdE1vc3RDb21tZW50ZWQoZGFhcGlCZWdpblJlcXVlc3RVcmwpew0KCQ0K
CXZhciByZXF1ZXN0QmF0Y2ggPSBuZXcgUmVxdWVzdEJhdGNoKCk7DQoJdmFyIHNl
Y3Rpb25zID0gbmV3IEFycmF5KG5ldyBTZWN0aW9uKCJBbGwiKSk7ICANCiAgICAg
ICB2YXIgY2F0ZWdvcmllcyA9IG5ldyBBcnJheShuZXcgQ2F0ZWdvcnkoIkFsbCIp
KTsgIA0KICAgICAgIHZhciB1c2VyVGllcnMgPSBwbHVja1VzZXJUaWVycy5zcGxp
dCgnLCcpOw0KICAgICAgIA0KICAgICAgIHZhciBjb250cmlidXRvcnMgPSBuZXcg
QXJyYXkoKTsgIA0KICAgICAgIGZvcih2YXIgdGllckl0ciA9IDAgOyB0aWVySXRy
IDwgdXNlclRpZXJzLmxlbmd0aCA7IHRpZXJJdHIrKyApeyAgIAkgICANCiAgICAJ
ICAgY29udHJpYnV0b3JzW3RpZXJJdHJdID0gbmV3IFVzZXJUaWVyKHVzZXJUaWVy
c1t0aWVySXRyXSk7IA0KICAgICAgIH0gICAgICAgICAgIA0KICAgICAgIHZhciBh
Y3Rpdml0eSA9IG5ldyBBY3Rpdml0eSgiQ29tbWVudGVkIik7ICANCiAgICAgICB2
YXIgYWdlID0gZXZhbChtb3N0Q29tbWVudGVkRGF5cyk7IC8vIG1heGltdW0gYWdl
IGluIGRheXMgIA0KICAgICAgIHZhciBudW1JdGVtc1RvR2V0ID0gNDsgIA0KICAg
ICAgICAgICAgICAgDQogICAgICAgIC8vIGNyZWF0ZSBhbmQgc2VuZCByZXF1ZXN0
ICANCiAgICAgICAgdmFyIGRpc2NvdmVyeUFjdGlvbiA9IG5ldyBEaXNjb3ZlckFy
dGljbGVzQWN0aW9uKCAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlY3Rpb25zLCAgDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhdGVnb3JpZXMsICANCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzLCAgDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5LCAgDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZSwgIA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1JdGVt
c1RvR2V0KTsgIA0KICAgICAgICAgICAgICAgICAgIA0KICAgICAgIHJlcXVlc3RC
YXRjaC5BZGRUb1JlcXVlc3QoZGlzY292ZXJ5QWN0aW9uKTsgICAgIA0KICAgIA0K
CXJlcXVlc3RCYXRjaC5CZWdpblJlcXVlc3QoZGFhcGlCZWdpblJlcXVlc3RVcmwg
LCBmUmVuZGVyTW9zdENvbW1lbnRlZCk7CQ0KfQ0KDQpmdW5jdGlvbiBmUmVuZGVy
TW9zdENvbW1lbnRlZChyZXNwb25zZUJhdGNoKXsNCgkNCgl2YXIgb3V0cHV0ID0g
IiI7DQoJaWYocmVzcG9uc2VCYXRjaC5SZXNwb25zZXMubGVuZ3RoID4gMCl7DQog
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2VQbHVjayA9IHJlc3Bv
bnNlQmF0Y2guUmVzcG9uc2VzWzBdOw0KCQkJICANCg0KICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yKHZhciBpPTA7IGk8IHJlc3BvbnNlUGx1Y2suRGlzY292ZXJB
cnRpY2xlc0FjdGlvbi5EaXNjb3ZlcmVkQXJ0aWNsZXMubGVuZ3RoOyBpKyspew0K
CQkJCSAgICANCgkJICAgICAgICAgICAgICAgICAgYXJ0aWNsZUhlYWRsaW5lc1tp
XSA9IHJlc3BvbnNlUGx1Y2suRGlzY292ZXJBcnRpY2xlc0FjdGlvbi5EaXNjb3Zl
cmVkQXJ0aWNsZXNbaV0uUGFnZVRpdGxlOw0KCQ0KCQkJCSAgICANCgkJCQkgICAg
YXJ0aWNsZVBhdGhzW2ldID0gcmVzcG9uc2VQbHVjay5EaXNjb3ZlckFydGljbGVz
QWN0aW9uLkRpc2NvdmVyZWRBcnRpY2xlc1tpXS5QYWdlVXJsOw0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAg
IH0NCiANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAg
ICAgICAgICAgDQogICAgICAgIH0NCgkNCgkJCWZvcih2YXIgaj0wOyBqPGFydGlj
bGVIZWFkbGluZXMubGVuZ3RoOyBqKyspew0KCQkJCQl2YXIgaGVhZGxpbmUgPSBh
cnRpY2xlSGVhZGxpbmVzW2pdOw0KCQkJCQlpZihhcnRpY2xlSGVhZGxpbmVzW2pd
Lmxlbmd0aD49NDUpew0KCQkJCQkJaGVhZGxpbmUgPSBhcnRpY2xlSGVhZGxpbmVz
W2pdLnN1YnN0cmluZygwLDQ0KSsiLi4uIjsNCgkJCQkJfQ0KCSAgIAkJCQlvdXRw
dXQgID0gb3V0cHV0ICArICI8bGk+PGEgaHJlZj0iK2FydGljbGVQYXRoc1tqXSsi
IGNsYXNzPVwibGluay02NjZcIj4iK2hlYWRsaW5lICsiPFwvYT48XC9saT4iOyAN
CgkJCSAgfQ0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb3N0Y29tbWVudGVk
IikuaW5uZXJIVE1MID0gb3V0cHV0Ow0KDQoNCn0NCg0KLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KLy9GVU5DVElPTjogZlJlbmRlck51bWJlck9mQ29tbWVudHNM
b2NrVXANCi8vREVTQ1JJUFRJT046IEEgZnVuY3Rpb24gdG8gc2V0IHRoZSBub09m
Q29tbWVudHMgZm9yIGluZGl2aWR1YWwgYXJ0aWNsZXMNCi8vQVJHVU1FTlRTOnJl
c3BvbnNlQmF0Y2ggaXMgdGhlIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gUGx1Y2sN
Ci8vDQpmdW5jdGlvbiBmUmVuZGVyTnVtYmVyT2ZDb21tZW50c0xvY2tVcChyZXNw
b25zZUJhdGNoKSB7DQoJdmFyIHJlc3BvbnNlSXRyICwgYXJ0SXRyICwgc3Bhbk5v
ID0gMTsNCgl2YXIgcmVzcG9uc2VMZW5ndGggPSByZXNwb25zZUJhdGNoLlJlc3Bv
bnNlcy5sZW5ndGg7DQoJDQoJaWYocmVzcG9uc2VMZW5ndGggIT0gMCl7DQoJCWZv
ciggcmVzcG9uc2VJdHIgPSAwIDsgcmVzcG9uc2VJdHIgPCByZXNwb25zZUxlbmd0
aCA7IHJlc3BvbnNlSXRyKysgKXsNCgkJCSB2YXIgcmVzcG9uc2VQbHVjayA9IHJl
c3BvbnNlQmF0Y2guUmVzcG9uc2VzW3Jlc3BvbnNlSXRyXTsNCgkJCSBpZiAocmVz
cG9uc2VQbHVjay5BcnRpY2xlICE9IG51bGwpIHsgDQoJCQkJIA0KCQkJCSBub09m
Q29tbWVudHMgPSByZXNwb25zZVBsdWNrLkFydGljbGUuQ29tbWVudHMuTnVtYmVy
T2ZDb21tZW50czsNCgkJCQkgaWYobm9PZkNvbW1lbnRzID09ICcwJyl7DQoJCQkJ
CSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1jb3VudC0nK3NwYW5O
bykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgkJCQkgfQ0KCQkJCSBlbHNlIGlm
ICggbm9PZkNvbW1lbnRzID09ICcxJyApew0KCQkJCQkgaWYoc2hvd1BpcGUpDQoJ
CQkJCQkgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbW1lbnQtY291bnQtJytz
cGFuTm8pLmlubmVySFRNTCA9ICcgfCAnKyBub09mQ29tbWVudHMgKyAnIENvbW1l
bnQnOw0KCQkJCQkgZWxzZQ0KCQkJCQkJIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb21tZW50LWNvdW50LScrc3Bhbk5vKS5pbm5lckhUTUwgPSBub09mQ29tbWVu
dHMgKyAnIENvbW1lbnQnOw0KCQkJCX0NCgkJCQkgZWxzZXsNCgkJCQkJIGlmKHNo
b3dQaXBlKQ0KCQkJCQkJIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21tZW50
LWNvdW50LScrc3Bhbk5vKS5pbm5lckhUTUwgPSAnIHwgJysgbm9PZkNvbW1lbnRz
ICsgJyBDb21tZW50cyc7DQoJCQkJCSBlbHNlDQoJCQkJCQkgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbW1lbnQtY291bnQtJytzcGFuTm8pLmlubmVySFRNTCA9
ICBub09mQ29tbWVudHMgKyAnIENvbW1lbnRzJzsNCgkJCQkJDQoJCQkJIH0NCgkJ
CX0NCgkJCSBzcGFuTm8rKzsNCgkJfQ0KCQl9ZWxzZXsNCgkJCWZvciggYXJ0SXRy
ID0gMSA7IGFydEl0ciA8PSBub09mQXJ0aWNsZXMgOyBhcnRJdHIgKysgKXsNCgkJ
CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWVudC1jb3VudC0nK2FydEl0
cikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCgkJCX0NCgkJfQkJDQp9DQoNCi8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vRlVOQ1RJT046IHJlcGxhY2VBbGwN
Ci8vREVTQ1JJUFRJT046IEEgZnVuY3Rpb24gdG8gcmVwbGFjZSBhbGwgb2NjdXJl
bmNlcyBvZiBhIGdpdmVuIHN0cmluZw0KLy9BUkdVTUVOVFM6IA0KLy9SRVRVUk46
IE5vbmUNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIHJlcGxhY2VB
bGwoU291cmNlLHN0cmluZ1RvRmluZCxzdHJpbmdUb1JlcGxhY2Upew0KDQoJICB2
YXIgdGVtcCA9IFNvdXJjZTsNCg0KCSAgICB2YXIgaW5kZXggPSB0ZW1wLmluZGV4
T2Yoc3RyaW5nVG9GaW5kKTsNCg0KCSAgICAgICAgd2hpbGUoaW5kZXggIT0gLTEp
ew0KDQoJICAgICAgICAgICAgdGVtcCA9IHRlbXAucmVwbGFjZShzdHJpbmdUb0Zp
bmQsc3RyaW5nVG9SZXBsYWNlKTsNCg0KCSAgICAgICAgICAgIGluZGV4ID0gdGVt
cC5pbmRleE9mKHN0cmluZ1RvRmluZCk7DQoNCgkgICAgICAgIH0NCg0KCSAgICAg
ICAgcmV0dXJuIHRlbXA7DQoNCgl9DQovLy0tPg==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=cookie.js
Content-Type: application/javascript; charset=ISO-8859-1; name=cookie.js
Content-Location: http://business.timesonline.co.uk/tol/js/cookie.js
Content-Transfer-Encoding: Base64
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRlVOQ1RJT046IHNldF9jb29r
aWUKLy8gREVTQ1JJUFRJT046IFNldHMgY29va2llIGluIGJyb3dzZXIuCi8vIEFS
R1VNRU5UUzogbmFtZSAtIENvb2tpZSBuYW1lICwgdmFsdWUgLSBjb29raWUgdmFs
dWUsIHNlY29uZHMgLSBUVEwgY29va2llLCBwYXRoIC0gY29va2llIHBhdGgKLy8g
UkVUVVJOOiBOb25lCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpmdW5jdGlv
biBzZXRfY29va2llICggbmFtZSwgdmFsdWUsIHNlY29uZHMsIHBhdGggKQp7CiAg
dmFyIGNvb2tpZV9zdHJpbmcgPSBuYW1lICsgIj0iICsgZXNjYXBlICggdmFsdWUg
KTsKCiAgaWYgKCBzZWNvbmRzICkKICB7CiAgICB2YXIgZXhwaXJlcyA9IG5ldyBE
YXRlKCk7CiAgICBleHBpcmVzLnNldFRpbWUoZXhwaXJlcy5nZXRUaW1lKCkgKyAo
c2Vjb25kcyoxMDAwKSk7CiAgICBjb29raWVfc3RyaW5nICs9ICI7IGV4cGlyZXM9
IiArIGV4cGlyZXMudG9HTVRTdHJpbmcoKTsKICB9CgogIGlmICggcGF0aCApCiAg
ICAgICAgY29va2llX3N0cmluZyArPSAiOyBwYXRoPSIgKyBlc2NhcGUgKCBwYXRo
ICk7CiAgZWxzZQoJCWNvb2tpZV9zdHJpbmcgKz0gIjsgcGF0aD0vIjsKCiAgIGRv
Y3VtZW50LmNvb2tpZSA9IGNvb2tpZV9zdHJpbmc7Cn0KCgovLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQovLyBGVU5DVElPTjogZ2V0X2Nvb2tpZQovLyBERVNDUklQ
VElPTjogZ2V0cyBjb29raWUgd2l0aCBzdXBwbGllZCBuYW1lLgovLyBBUkdVTUVO
VFM6IGNvb2tpZV9uYW1lIC0gbmFtZSBvZiBjb29raWUgdG8gYmUgcmV0cml2ZWQg
Ci8vIFJFVFVSTjogY29va2llIHZhbHVlCi8vIApmdW5jdGlvbiBnZXRfY29va2ll
ICggY29va2llX25hbWUgKQp7CiB2YXIgcmVzdWx0cyA9IGRvY3VtZW50LmNvb2tp
ZS5tYXRjaCAoICcoXnw7KSA/JyArIGNvb2tpZV9uYW1lICsgJz0oW147XSopKDt8
JCknICk7CiAgaWYgKCByZXN1bHRzICkKICAgIHJldHVybiAoIHVuZXNjYXBlICgg
cmVzdWx0c1syXSApICk7CiAgZWxzZQogICAgcmV0dXJuIG51bGw7Cn0KCi8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIEZVTkNUSU9OOiBkZWxldGVfY29va2ll
Ci8vIERFU0NSSVBUSU9OOiBkZWxldGVzIGNvb2tpZSB3aXRoIHN1cHBsaWVkIG5h
bWUuCi8vIEFSR1VNRU5UUzogY29va2llX25hbWUgLSBuYW1lIG9mIGNvb2tpZSB0
byBiZSBkZWxldGVkIAovLyBSRVRVUk46IG5vbmUKLy8gCmZ1bmN0aW9uIGRlbGV0
ZV9jb29raWUgKCBjb29raWVfbmFtZSApCnsKICB2YXIgY29va2llX2RhdGUgPSBu
ZXcgRGF0ZSAoICk7ICAvLyBjdXJyZW50IGRhdGUgJiB0aW1lCiAgY29va2llX2Rh
dGUuc2V0VGltZSAoIGNvb2tpZV9kYXRlLmdldFRpbWUoKSAtIDEgKTsKICBkb2N1
bWVudC5jb29raWUgPSBjb29raWVfbmFtZSArPSAiPTsgZXhwaXJlcz0iICsgY29v
a2llX2RhdGUudG9HTVRTdHJpbmcoKTsKfQ==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=DM_client.js
Content-Type: application/javascript; charset=ISO-8859-1; name=DM_client.js
Content-Location: http://business.timesonline.co.uk/tol/js/DM_client.js
Content-Transfer-Encoding: Base64
Ly88IS0tQnVpbHQ6MTAvMDMvMDUNCi8vIFN0YXJ0IENvbmZpZyAvLyANCiB2YXIg
RE1fQ1NJRCA9ICJKMDU1MzAiOw0KIHZhciBETV9VSURTID0gMzsNCiB2YXIgRE1f
Q0hOID0gZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7DQogdmFyIERNX1BJWCA9
ICJwaXgwMS5yZXZzY2kubmV0IjsNCiB2YXIgRE1fQlBJWCA9ICJwaXgwMS5yZXZz
Y2kubmV0IjsNCiB2YXIgRE1fVUlERCA9IGRvY3VtZW50LmxvY2F0aW9uLmhvc3Ru
YW1lOw0KIHZhciBETV9VSURQID0gIi8iOw0KIHZhciBETV9VSURDID0gIiI7DQog
dmFyIERNX1VJRE4gPSAiIjsNCiB2YXIgRE1fVUlERSA9IDA7DQogdmFyIERNX0FE
TUcgPSAxOw0KIHZhciBETV9BTkxZID0gMTsNCiB2YXIgRE1fUlRSWSA9IDA7DQog
dmFyIERNX0RSRUYgPSAwOyANCiB2YXIgRE1fTE9BRF9USU1FID0gMDsNCiB2YXIg
RE1fVE9VVF9QSVhfUEFUSCA9ICIiOw0KIHZhciBETV9DU0VTID0gMDsNCiB2YXIg
RE1fQ1RTVCA9IDA7DQogdmFyIERNX01VTFQgPSAwOw0KIHZhciBETV9GUkFHID0g
MDsNCiB2YXIgRE1fUkNSQyA9IDA7DQogdmFyIERNX0JPT01fT04gPSAwOw0KIHZh
ciBETV9CT09NX0RNTiA9ICIiOw0KIHZhciBETV9CT09NX1NSQyA9ICIiOw0KIHZh
ciBETV9CT09NX0RDTiA9ICIiOw0KLy8gRW5kIENvbmZpZyAvLyANCiB2YXIgRE1f
VEVTVCA9IDA7IHZhciBETV9SRVFTID0gMDsgdmFyIF9ETV9EVEUgPSBuZXcgRGF0
ZSgpOyB2YXIgX0RNX1VOViA9IG5hdmlnYXRvcjsgdmFyIF9ETV9VREMgPSBkb2N1
bWVudDsgdmFyIF9ETV9DSFIgPSBudWxsOyB2YXIgX0RNX3NJbWcgPSBuZXcgQXJy
YXkoKTsgdmFyIF9ETV9ldnRzID0gbmV3IEFycmF5KCk7IHZhciBfRE1faGV4YyA9
IG5ldyBBcnJheSgiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4Iiwi
OSIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIpOyB2YXIgX0RNX0JDTDEgPSAiPyY9
JS4oKSI7IHZhciBfRE1fR0NMMiA9ICIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7IHZhciBfRE1f
VEdJRCA9ICJhIiArIF9ETV9oZXhjWyhETV9URVNUPDwzIHwgRE1fUkVRUzw8Mnwg
RE1fQURNRzw8MSB8IERNX0FOTFkpXTsgdmFyIF9ETV9uYW1lID0gX0RNX1VEQy50
aXRsZTsgZm9yKF9ETV9DSFI9IiIsaT0wO2k8MjU2O2krKykgeyBfRE1fQ0hSICs9
IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7ICB9IHZhciBfRE1fQ1JDVGJsID0gbmV3
IEFycmF5KCAweDAwMDAwMDAwLCAweDc3MDczMDk2LCAweGVlMGU2MTJjLCAweDk5
MDk1MWJhLCAweDA3NmRjNDE5LCAweDcwNmFmNDhmLCAweGU5NjNhNTM1LCAweDll
NjQ5NWEzLCAweDBlZGI4ODMyLCAweDc5ZGNiOGE0LCAweGUwZDVlOTFlLCAweDk3
ZDJkOTg4LCAweDA5YjY0YzJiLCAweDdlYjE3Y2JkLCAweGU3YjgyZDA3LCAweDkw
YmYxZDkxLCAweDFkYjcxMDY0LCAweDZhYjAyMGYyLCAweGYzYjk3MTQ4LCAweDg0
YmU0MWRlLCAweDFhZGFkNDdkLCAweDZkZGRlNGViLCAweGY0ZDRiNTUxLCAweDgz
ZDM4NWM3LCAweDEzNmM5ODU2LCAweDY0NmJhOGMwLCAweGZkNjJmOTdhLCAweDhh
NjVjOWVjLCAweDE0MDE1YzRmLCAweDYzMDY2Y2Q5LCAweGZhMGYzZDYzLCAweDhk
MDgwZGY1LCAweDNiNmUyMGM4LCAweDRjNjkxMDVlLCAweGQ1NjA0MWU0LCAweGEy
Njc3MTcyLCAweDNjMDNlNGQxLCAweDRiMDRkNDQ3LCAweGQyMGQ4NWZkLCAweGE1
MGFiNTZiLCAweDM1YjVhOGZhLCAweDQyYjI5ODZjLCAweGRiYmJjOWQ2LCAweGFj
YmNmOTQwLCAweDMyZDg2Y2UzLCAweDQ1ZGY1Yzc1LCAweGRjZDYwZGNmLCAweGFi
ZDEzZDU5LCAweDI2ZDkzMGFjLCAweDUxZGUwMDNhLCAweGM4ZDc1MTgwLCAweGJm
ZDA2MTE2LCAweDIxYjRmNGI1LCAweDU2YjNjNDIzLCAweGNmYmE5NTk5LCAweGI4
YmRhNTBmLCAweDI4MDJiODllLCAweDVmMDU4ODA4LCAweGM2MGNkOWIyLCAweGIx
MGJlOTI0LCAweDJmNmY3Yzg3LCAweDU4Njg0YzExLCAweGMxNjExZGFiLCAweGI2
NjYyZDNkLCAweDc2ZGM0MTkwLCAweDAxZGI3MTA2LCAweDk4ZDIyMGJjLCAweGVm
ZDUxMDJhLCAweDcxYjE4NTg5LCAweDA2YjZiNTFmLCAweDlmYmZlNGE1LCAweGU4
YjhkNDMzLCAweDc4MDdjOWEyLCAweDBmMDBmOTM0LCAweDk2MDlhODhlLCAweGUx
MGU5ODE4LCAweDdmNmEwZGJiLCAweDA4NmQzZDJkLCAweDkxNjQ2Yzk3LCAweGU2
NjM1YzAxLCAweDZiNmI1MWY0LCAweDFjNmM2MTYyLCAweDg1NjUzMGQ4LCAweGYy
NjIwMDRlLCAweDZjMDY5NWVkLCAweDFiMDFhNTdiLCAweDgyMDhmNGMxLCAweGY1
MGZjNDU3LCAweDY1YjBkOWM2LCAweDEyYjdlOTUwLCAweDhiYmViOGVhLCAweGZj
Yjk4ODdjLCAweDYyZGQxZGRmLCAweDE1ZGEyZDQ5LCAweDhjZDM3Y2YzLCAweGZi
ZDQ0YzY1LCAweDRkYjI2MTU4LCAweDNhYjU1MWNlLCAweGEzYmMwMDc0LCAweGQ0
YmIzMGUyLCAweDRhZGZhNTQxLCAweDNkZDg5NWQ3LCAweGE0ZDFjNDZkLCAweGQz
ZDZmNGZiLCAweDQzNjllOTZhLCAweDM0NmVkOWZjLCAweGFkNjc4ODQ2LCAweGRh
NjBiOGQwLCAweDQ0MDQyZDczLCAweDMzMDMxZGU1LCAweGFhMGE0YzVmLCAweGRk
MGQ3Y2M5LCAweDUwMDU3MTNjLCAweDI3MDI0MWFhLCAweGJlMGIxMDEwLCAweGM5
MGMyMDg2LCAweDU3NjhiNTI1LCAweDIwNmY4NWIzLCAweGI5NjZkNDA5LCAweGNl
NjFlNDlmLCAweDVlZGVmOTBlLCAweDI5ZDljOTk4LCAweGIwZDA5ODIyLCAweGM3
ZDdhOGI0LCAweDU5YjMzZDE3LCAweDJlYjQwZDgxLCAweGI3YmQ1YzNiLCAweGMw
YmE2Y2FkLCAweGVkYjg4MzIwLCAweDlhYmZiM2I2LCAweDAzYjZlMjBjLCAweDc0
YjFkMjlhLCAweGVhZDU0NzM5LCAweDlkZDI3N2FmLCAweDA0ZGIyNjE1LCAweDcz
ZGMxNjgzLCAweGUzNjMwYjEyLCAweDk0NjQzYjg0LCAweDBkNmQ2YTNlLCAweDdh
NmE1YWE4LCAweGU0MGVjZjBiLCAweDkzMDlmZjlkLCAweDBhMDBhZTI3LCAweDdk
MDc5ZWIxLCAweGYwMGY5MzQ0LCAweDg3MDhhM2QyLCAweDFlMDFmMjY4LCAweDY5
MDZjMmZlLCAweGY3NjI1NzVkLCAweDgwNjU2N2NiLCAweDE5NmMzNjcxLCAweDZl
NmIwNmU3LCAweGZlZDQxYjc2LCAweDg5ZDMyYmUwLCAweDEwZGE3YTVhLCAweDY3
ZGQ0YWNjLCAweGY5YjlkZjZmLCAweDhlYmVlZmY5LCAweDE3YjdiZTQzLCAweDYw
YjA4ZWQ1LCAweGQ2ZDZhM2U4LCAweGExZDE5MzdlLCAweDM4ZDhjMmM0LCAweDRm
ZGZmMjUyLCAweGQxYmI2N2YxLCAweGE2YmM1NzY3LCAweDNmYjUwNmRkLCAweDQ4
YjIzNjRiLCAweGQ4MGQyYmRhLCAweGFmMGExYjRjLCAweDM2MDM0YWY2LCAweDQx
MDQ3YTYwLCAweGRmNjBlZmMzLCAweGE4NjdkZjU1LCAweDMxNmU4ZWVmLCAweDQ2
NjliZTc5LCAweGNiNjFiMzhjLCAweGJjNjY4MzFhLCAweDI1NmZkMmEwLCAweDUy
NjhlMjM2LCAweGNjMGM3Nzk1LCAweGJiMGI0NzAzLCAweDIyMDIxNmI5LCAweDU1
MDUyNjJmLCAweGM1YmEzYmJlLCAweGIyYmQwYjI4LCAweDJiYjQ1YTkyLCAweDVj
YjM2YTA0LCAweGMyZDdmZmE3LCAweGI1ZDBjZjMxLCAweDJjZDk5ZThiLCAweDVi
ZGVhZTFkLCAweDliNjRjMmIwLCAweGVjNjNmMjI2LCAweDc1NmFhMzljLCAweDAy
NmQ5MzBhLCAweDljMDkwNmE5LCAweGViMGUzNjNmLCAweDcyMDc2Nzg1LCAweDA1
MDA1NzEzLCAweDk1YmY0YTgyLCAweGUyYjg3YTE0LCAweDdiYjEyYmFlLCAweDBj
YjYxYjM4LCAweDkyZDI4ZTliLCAweGU1ZDViZTBkLCAweDdjZGNlZmI3LCAweDBi
ZGJkZjIxLCAweDg2ZDNkMmQ0LCAweGYxZDRlMjQyLCAweDY4ZGRiM2Y4LCAweDFm
ZGE4MzZlLCAweDgxYmUxNmNkLCAweGY2YjkyNjViLCAweDZmYjA3N2UxLCAweDE4
Yjc0Nzc3LCAweDg4MDg1YWU2LCAweGZmMGY2YTcwLCAweDY2MDYzYmNhLCAweDEx
MDEwYjVjLCAweDhmNjU5ZWZmLCAweGY4NjJhZTY5LCAweDYxNmJmZmQzLCAweDE2
NmNjZjQ1LCAweGEwMGFlMjc4LCAweGQ3MGRkMmVlLCAweDRlMDQ4MzU0LCAweDM5
MDNiM2MyLCAweGE3NjcyNjYxLCAweGQwNjAxNmY3LCAweDQ5Njk0NzRkLCAweDNl
NmU3N2RiLCAweGFlZDE2YTRhLCAweGQ5ZDY1YWRjLCAweDQwZGYwYjY2LCAweDM3
ZDgzYmYwLCAweGE5YmNhZTUzLCAweGRlYmI5ZWM1LCAweDQ3YjJjZjdmLCAweDMw
YjVmZmU5LCAweGJkYmRmMjFjLCAweGNhYmFjMjhhLCAweDUzYjM5MzMwLCAweDI0
YjRhM2E2LCAweGJhZDAzNjA1LCAweGNkZDcwNjkzLCAweDU0ZGU1NzI5LCAweDIz
ZDk2N2JmLCAweGIzNjY3YTJlLCAweGM0NjE0YWI4LCAweDVkNjgxYjAyLCAweDJh
NmYyYjk0LCAweGI0MGJiZTM3LCAweGMzMGM4ZWExLCAweDVhMDVkZjFiLCAweDJk
MDJlZjhkICk7IHZhciBfRE1fVUlEID0gMDsgIHZhciBfRE1fVVRaID0gKC0xKl9E
TV9EVEUuZ2V0VGltZXpvbmVPZmZzZXQoKSkrNzIwOyB2YXIgX0RNX1VDUyA9ICgo
RE1fQ1RTVCkgPyAoX0RNX2djKF9ETV9zYygiVEMwIiwxLERNX0NITiwiLyIsMCww
KSkgPT0gMSA/IDE6MCkrKF9ETV9nYyhfRE1fc2MoIlRDMSIsMSxETV9DSE4sIi8i
LDEsMCkpID09IDEgPyAyOjApOjApOyAgdmFyIF9ETV9VU0lEID0gKChETV9DU0VT
KSA/IF9ETV9zZXNzSUQoKTowKTsgdmFyIF9ETV9DTlYgPSAiIjsgdmFyIF9ETV9M
T0MgPSBfRE1fVURDLmxvY2F0aW9uLnRvU3RyaW5nKCk7IHZhciBfRE1fUkVGID0g
X0RNX1VEQy5yZWZlcnJlci50b1N0cmluZygpOyB2YXIgX0RNX0NMRCA9IDA7ZnVu
Y3Rpb24gRE1fdGFnKCkgeyBpZiAoX0RNX0NMRCA9PSAwIHx8IERNX01VTFQgPT0g
MSkgeyBfRE1fQ0xEID0gMTsgc3dpdGNoKERNX1VJRFMpIHsgY2FzZSAxOiBjYXNl
IDI6IGNhc2UgNTogdmFyIGNrZSA9IF9ETV9nYyhETV9VSURDKTsgaWYoY2tlPT1u
dWxsKXsgX0RNX1VJRD0tMTsgfWVsc2UgaWYoY2tlLmluZGV4T2YoIi8iKT49MCB8
fCBja2UuaW5kZXhPZigiPyIpPj0wKXsgX0RNX1VJRD0tMTsgfWVsc2V7IF9ETV9V
SUQ9IkRNSUQiK0RNX1VJRFMrIj0iK2VzY2FwZShja2UpOyB9IGJyZWFrOyBjYXNl
IDQ6IGlmICgoX0RNX1VJRCA9IF9ETV9nYyhETV9VSUROKSkgPT0gbnVsbCkgeyBf
RE1fVUlEID0gX0RNX2dlbklEKCk7IF9ETV9zYyhETV9VSUROLF9ETV9VSUQsRE1f
VUlERCxETV9VSURQLERNX1VJREUsMCk7IH0gX0RNX1VJRCA9ICJETUlEND0iK19E
TV9VSUQ7IGJyZWFrOyB9IGZvcih2YXIgaT0wO2k8X0RNX2V2dHMubGVuZ3RoO2kr
Kyl7IF9ETV9hZGROVigiRE1fRVZULiIrX0RNX2V2dHNbaV0ubmFtZSxfRE1fZXZ0
c1tpXS5wcm9wcyk7IH0gaWYoRE1fRFJFRj09MSkgeyBfRE1fYWRkTlYoIkRNX0xP
QyIsX0RNX2VuY2QoX0RNX1JFRixfRE1fQkNMMSwwKSk7IH0gZWxzZSB7IF9ETV9h
ZGROVigiRE1fTE9DIixfRE1fZW5jZChfRE1fTE9DLF9ETV9CQ0wxLDApKTsgfSBf
RE1fYWRkTlYoIkRNX1JFRiIsX0RNX2VuY2QoX0RNX1JFRixfRE1fQkNMMSwwKSk7
IChfRE1fVUlEIT0wICYmIF9ETV9VSUQhPS0xP19ETV9hZGROVigiRE1fSElEIixf
RE1fZW5jZChfRE1fVUlELF9ETV9CQ0wxLDApKTowKTsgX0RNX2FkZE5WKCJETV9U
SVQiLF9ETV9lbmNkKF9ETV9VREMudGl0bGUudG9TdHJpbmcoKSxfRE1fQkNMMSww
KSk7IF9ETV9DTlYrPSImRE1fRU9NPTEiOyBpZihfRE1fcGFjayhfRE1fQ05WKSl7
IGlmKERNX0JPT01fT04peyBfRE1fY2hlY2tCb29tKCk7IH0gfSBfRE1fcnN0UmVx
KCk7IH0gfSBmdW5jdGlvbiBfRE1fcGFjayhkKSB7IHZhciByZHRlID0gbmV3IERh
dGUoKTsgdmFyIHJpZCA9IF9ETV90b0hleChNYXRoLmZsb29yKHJkdGUpKTsgdmFy
IGJzZT0iIixoZHI9IiIsZGF0PSIiLHNlcT0xOyB2YXIgcHJ0PWxvY2F0aW9uLnBy
b3RvY29sKyIvLyI7IHZhciBtc2w9KERNX1BJWC5sZW5ndGg+RE1fQlBJWC5sZW5n
dGg/RE1fUElYLmxlbmd0aDpETV9CUElYLmxlbmd0aCk7IHZhciBtcmw9MjAwMCx1
c2Q9MDsgZD1fRE1fZW5jZChkLF9ETV9HQ0wyLDEpOyBmb3IodmFyIHNocGQ9MCxm
PTE7KChETV9GUkFHKSA/IChzaHBkPGQubGVuZ3RoKTooZj09MSkpO3NocGQrPWRh
dC5sZW5ndGgsZisrKXsgaGRyPSIvIitETV9DU0lEKyIvIitfRE1fVEdJRCsiLyIr
X0RNX1VDUysiLyIrRE1fVUlEUysiLyIrX0RNX1VUWisiLyIrc2VxKyIvIitfRE1f
VVNJRCsiLyIrcmlkKyIvIitfRE1fVUlEKyIvIjsgYnNlPSIvIitNYXRoLmZsb29y
KE1hdGgucmFuZG9tKCkqTWF0aC5wb3coMTAsOSkpKyIuZ2lmP0Q9IjsgbHN0PShz
aHBkKyhtcmwtbXNsLShwcnQraGRyK2JzZSkubGVuZ3RoLTEwKT5kLmxlbmd0aD8x
OjApOyBpZighRE1fRlJBRyl7IHN0cz0wOyB9ZWxzZSBpZihmPT0xJiZsc3Q9PTAp
eyBzdHM9MTsgfWVsc2UgaWYoZj4xJiZsc3Q9PTApeyBzdHM9MjsgfWVsc2UgaWYo
Zj4xJiZsc3Q9PTEpeyBzdHM9MzsgfWVsc2V7IHN0cz0wOyB9IGhkcis9c3RzKyIv
IjsgdXNkPShwcnQraGRyK2JzZSkubGVuZ3RoK21zbCs4OyBkYXQ9ZC5zdWJzdHIo
c2hwZCwobXJsLXVzZC0oZC5jaGFyQXQoc2hwZCsobXJsLXVzZC0xKSk9PSclJz8x
OihkLmNoYXJBdChzaHBkKyhtcmwtdXNkLTIpKT09JyUnPzI6MCkpKSk7IGhkcis9
X0RNX3BhZCgoKERNX1JDUkMpID8gX0RNX3RvSGV4KF9ETV9jcmMzMihkYXQpKTow
KSw4KTsgX0RNX3NoaXAoX0RNX3RvSGV4KE1hdGguZmxvb3IoTWF0aC5yYW5kb20o
KSpNYXRoLnBvdygxMCw5KSkpLHBydCxETV9QSVgsRE1fQlBJWCxoZHIrYnNlK2Rh
dCwwKTsgc2VxKys7IH0gcmV0dXJuIDE7IH0gZnVuY3Rpb24gX0RNX3NoaXAoc3Js
LHAsczEsczIsdSx0KSB7IGlmKF9ETV9zSW1nW3NybF09PW51bGwpIHsgX0RNX3NJ
bWdbc3JsXT1uZXcgSW1hZ2UoMiwzKTsgfSBpZiAodDwyKSB7IF9ETV9zSW1nW3Ny
bF0uc3JjID0gcCtzMSt1OyB9IGVsc2UgaWYodDw0KSB7IF9ETV9zSW1nW3NybF0u
c3JjID0gcCtzMit1OyB9IGlmIChETV9MT0FEX1RJTUUgPiAwKSB7IHNldFRpbWVv
dXQoImlzUGl4TG9hZGVkKF9ETV9zSW1nWyciK3NybCsiJ10pOyIscGFyc2VJbnQo
RE1fTE9BRF9USU1FKSAqIDEwMDApOyB9IGlmIChETV9SVFJZPT0xICYmIERNX0xP
QURfVElNRT09MCkgeyBfRE1fc0ltZ1tzcmxdLm9uZXJyb3I9IGZ1bmN0aW9uKCl7
c2V0VGltZW91dCgiX0RNX3NoaXAoJyIrc3JsKyInLCciK3ArIicsJyIrczErIics
JyIrczIrIicsJyIrdSsiJywiKyh0KzEpKyIpIiw1MDAwKTt9OyB9IH0gZnVuY3Rp
b24gaXNQaXhMb2FkZWQocGl4KSB7IHZhciBlbXB0eUltZyA9IG5ldyBJbWFnZSgp
OyBpZiAocGl4LmNvbXBsZXRlKSB7IHJldHVybiBwaXg7IH0gZWxzZSB7IHJldHVy
biBwaXguc3JjID0gRE1fVE9VVF9QSVhfUEFUSDsgfSB9IGZ1bmN0aW9uIF9ETV9h
ZGROVihuLHYpIHsgIF9ETV9DTlYgKz0gKF9ETV9DTlY/IiYiOiIiKStuKyI9Iit2
OyAgfSBmdW5jdGlvbiBfRE1fZ2VuSUQoKSB7IHJldHVybiBfRE1fdG9IZXgoTWF0
aC5mbG9vcihfRE1fRFRFKSkgKyItIitfRE1fdG9IZXgoTWF0aC5mbG9vcihNYXRo
LnJhbmRvbSgpKk1hdGgucG93KDEwLDE2KSkpICsiLSIrX0RNX3RvSGV4KF9ETV9j
cmMzMigiIi5jb25jYXQoX0RNX1VEQy5yZWZlcnJlcixfRE1fVURDLmNvb2tpZSxf
RE1fVU5WLnVzZXJBZ2VudCxfRE1fVVRaLHNjcmVlbi53aWR0aCxzY3JlZW4uaGVp
Z2h0KSkpOyB9IGZ1bmN0aW9uIF9ETV9zZXNzSUQoKSB7IHZhciBzSUQ9X0RNX2dj
KCJETVNJRCIpOyBpZiAoc0lEID09IG51bGwpeyBzSUQ9X0RNX2djKF9ETV9zYygi
RE1TSUQiLF9ETV9nZW5JRCgpLERNX1VJREQsRE1fVUlEUCwwLDApKTt9IHJldHVy
bihzSUQpOyAgfSBmdW5jdGlvbiBfRE1fc2Mobix2LGQscCxlLG8pIHsgdmFyIF9D
RFRFID0gbmV3IERhdGUoKTsgaWYgKChuICE9ICIiICYmIHYgIT0gIiIpICYmIChf
RE1fZ2MobikgPT0gbnVsbCB8fCBvID09IDEpKSB7IF9DRFRFLnNldERhdGUoX0RN
X0RURS5nZXREYXRlKCkrZSk7IF9ETV9VREMuY29va2llID0gbisiPSIrdisocCAh
PSAiIiA/ICI7cGF0aD0iK3A6IiIpKyhkICE9ICIiID8gIjtkb21haW49IitkOiIi
KSsoZT4wID8gIjtleHBpcmVzPSIrX0NEVEUudG9HTVRTdHJpbmcoKToiIik7IH0g
IHJldHVybiBuOyAgfSBmdW5jdGlvbiBfRE1fZ2MobikgeyB2YXIgY28gPSBfRE1f
VURDLmNvb2tpZTsgdmFyIHBvcyA9IGNvLmluZGV4T2YobisiPSIpOyByZXR1cm4g
cG9zICE9IC0xID8gY28uc3Vic3RyaW5nKHBvcytuLmxlbmd0aCsxLChjby5pbmRl
eE9mKCI7ICIscG9zKSE9IC0xID8gY28uaW5kZXhPZigiOyAiLHBvcyk6Y28ubGVu
Z3RoKSk6bnVsbDsgIH0gZnVuY3Rpb24gX0RNX2VuY2QocyxjaHJzLGIpeyBmb3Io
dmFyIGk9MCxucz0iIixjPSIiO2k8cy5sZW5ndGg7aSsrKXsgaWYoKGI9PTEgPyBj
aHJzLmluZGV4T2Yocy5jaGFyQXQoaSkpPj0wIDogY2hycy5pbmRleE9mKHMuY2hh
ckF0KGkpKTwwKSl7IG5zKz1zLmNoYXJBdChpKTsgfWVsc2V7IGlmKChjPV9ETV9D
SFIuaW5kZXhPZihzLmNoYXJBdChpKSkpPjApIG5zKz0iJSIrX0RNX3BhZChfRE1f
dG9IZXgoYyksMik7IH0gfSByZXR1cm4gbnM7IH0gZnVuY3Rpb24gX0RNX2NyYzMy
KGJ1ZikgeyBpPTA7IGNudCA9IGJ1Zi5sZW5ndGg7IGNyYyA9IDB4RkZGRkZGRkY7
IHdoaWxlIChjbnQtLSAhPSAwKSBjcmMgPSBfRE1fQ1JDVGJsWyhjcmMgXiBfRE1f
Q0hSLmluZGV4T2YoYnVmLmNoYXJBdChpKyspKSkgJiAweEZGXSBeIChjcmMgPj4+
IDgpOyBjcmMgXj0gMHhGRkZGRkZGRjsgIGNyYyA9IChjcmMgJiAweDdGRkZGRkZG
KSArICgoY3JjPDApPzB4ODAwMDAwMDA6MCk7IHJldHVybiBjcmM7IH0gZnVuY3Rp
b24gX0RNX2FwcGVuZFRvVXJsKHUsbix2KSB7IHJldHVybiB1KygodS5pbmRleE9m
KCI/Iik9PS0xKT8iPyI6IiYiKStuKyI9Iit2OyB9IGZ1bmN0aW9uIF9ETV90b0hl
eChuKXsgdmFyIHJtZD0wLHF1bz0wLGhleD0iIjsgaWYobiA8IDE2KSB7IHJldHVy
biBfRE1faGV4Y1tuXTsgfWVsc2V7IHJtZCA9IChuJTE2KTsgcXVvID0gTWF0aC5m
bG9vcigobiAtIHJtZCkvMTYpOyByZXR1cm4gKF9ETV90b0hleChxdW8pK19ETV90
b0hleChybWQpKTsgfSB9IGZ1bmN0aW9uIF9ETV9wYWQoZCxwKXsgZCArPSAiIjsg
d2hpbGUoZC5sZW5ndGggPCBwKXsgZCA9ICIwIitkOyB9IHJldHVybiBkOyB9IGZ1
bmN0aW9uIF9ETV9jaGVja0Jvb20oKXsgdmFyIHNlZ0M9IiIsIGJvbWM9IiIsc2Ny
Yz0wLGJjcmM9MDsgaWYoKHNlZ0MgPSBfRE1fZ2MoIkRNU0VHIikpICE9IG51bGwp
eyBpZigoYm9tYyA9IF9ETV9nYygiRE1CT00iKSkgIT0gbnVsbCl7IHNjcmMgPSBf
RE1fcGFkKF9ETV90b0hleChfRE1fY3JjMzIoc2VnQykpLDgpOyBiY3JjID0gYm9t
Yy5zdWJzdHIoMCxib21jLmluZGV4T2YoIiYiKSk7IGlmKHNjcmMgIT0gYmNyYyl7
IF9ETV9zZW5kQm9vbShzZWdDLHNjcmMsRE1fQk9PTV9ETU4sRE1fQk9PTV9TUkMs
RE1fQk9PTV9EQ04pOyB9IH1lbHNleyBfRE1fc2VuZEJvb20oc2VnQyxfRE1fcGFk
KF9ETV90b0hleChfRE1fY3JjMzIoc2VnQykpLDgpLERNX0JPT01fRE1OLERNX0JP
T01fU1JDLERNX0JPT01fRENOKTsgfSB9IH0gZnVuY3Rpb24gX0RNX3NlbmRCb29t
KHNlZ0MsY3JjLGRtbixzcmMsZGNuKXsgdmFyIGFUb2ssc2VncyxyaWQ9MCxpPTAs
Ymw9IiIsdT0iIjsgc2VnQyA9IHVuZXNjYXBlKHNlZ0MpOyBhVG9rID0gc2VnQy5z
cGxpdCgiJiIpOyBpZihhVG9rLmxlbmd0aCA+PSA2KXsgaWYoYVRva1s1XS5sZW5n
dGggPiAwKXsgc2VncyA9IGFUb2tbNV0uc3BsaXQoIiwiKTsgd2hpbGUoaSA8IHNl
Z3MubGVuZ3RoKXsgYmwgKz0gImJvb209IitzZWdzW2ldKyI7IjsgaSsrOyB9IHJp
ZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpNYXRoLnBvdygxMCw5KSk7IHUg
PSAiL3NyYz0iK3NyYysiO2RjbmV0PSIrZGNuKyI7IitibCsic3o9MXgxO29yZD0i
K3JpZCsiPyI7IF9ETV9zaGlwKHJpZCxsb2NhdGlvbi5wcm90b2NvbCsiLy8iLGRt
bixkbW4sdSwwKTsgX0RNX3NldEJvb20oY3JjLDEpOyB9ZWxzZXsgX0RNX3NldEJv
b20oY3JjLDApOyB9IH1lbHNleyBfRE1fc2V0Qm9vbShjcmMsMCk7IH0gfSBmdW5j
dGlvbiBfRE1fc2V0Qm9vbShjcmMsc250KXsgX0RNX3NjKCJETUJPTSIsY3JjKyIm
IitfRE1fdG9IZXgoTWF0aC5mbG9vcihfRE1fRFRFKSkrIiYiK3NudCxETV9DSE4s
Ii8iLDAsMSk7IH0gZnVuY3Rpb24gX0RNX3JzdFJlcSgpIHsgX0RNX0NOViA9ICIi
OyBfRE1fTE9DID0gX0RNX1VEQy5sb2NhdGlvbi50b1N0cmluZygpOyBfRE1fUkVG
ID0gX0RNX1VEQy5yZWZlcnJlci50b1N0cmluZygpOyBfRE1fVUlEID0gMDsgfSBm
dW5jdGlvbiBETV9ldmVudChlLG4sdil7IGZvcih2YXIgaT0wO2k8X0RNX2V2dHMu
bGVuZ3RoO2krKyl7IGlmKF9ETV9ldnRzW2ldLm5hbWUgPT0gZSl7IGlmKF9ETV9l
dnRzW2ldLnByb3BzLmluZGV4T2YoIigiK19ETV9lbmNkKG4sX0RNX0JDTDEsMCkr
Ii4iKTwwKXsgX0RNX2V2dHNbaV0ucHJvcHMrPSIoIitfRE1fZW5jZChuLF9ETV9C
Q0wxLDApKyIuIitfRE1fZW5jZCh2LF9ETV9CQ0wxLDApKyIpIjsgcmV0dXJuIDE7
IH1lbHNleyByZXR1cm4gMDsgfSB9IH0gX0RNX2V2dHNbX0RNX2V2dHMubGVuZ3Ro
XT17bmFtZTpfRE1fZW5jZChlLF9ETV9CQ0wxLDApLHByb3BzOiIoIitfRE1fZW5j
ZChuLF9ETV9CQ0wxLDApKyIuIitfRE1fZW5jZCh2LF9ETV9CQ0wxLDApKyIpIn07
IHJldHVybiAxOyB9IGZ1bmN0aW9uIERNX2NhdChjYXQpIHsgX0RNX2FkZE5WKCJE
TV9DQVQiLF9ETV9lbmNkKGNhdCxfRE1fQkNMMSwwKSkgfSBmdW5jdGlvbiBETV9u
YW1lKGYpIHsgX0RNX2FkZE5WKCJETV9OQU0iLF9ETV9lbmNkKGYsX0RNX0JDTDEs
MCkpIH0gZnVuY3Rpb24gRE1fa2V5d29yZHMoaykgeyBfRE1fYWRkTlYoIkRNX0tZ
VyIsX0RNX2VuY2QoayxfRE1fQkNMMSwwKSkgfSBmdW5jdGlvbiBETV9zZWdtZW50
cyhzKSB7IF9ETV9hZGROVigiRE1fU0VHIixfRE1fZW5jZChzLF9ETV9CQ0wxLDAp
KSB9IGZ1bmN0aW9uIERNX2FkZFRvTG9jKG4sdikgeyBfRE1fTE9DPV9ETV9hcHBl
bmRUb1VybChfRE1fTE9DLG4sdik7IGlmKERNX0RSRUY9PTEpIHsgX0RNX1JFRj1f
RE1fYXBwZW5kVG9VcmwoX0RNX1JFRixuLHYpOyB9IH0vLy0tPiANCg==
------------03SxQvmNdK56fCZXxHrajT
Content-Disposition: inline; filename=gw.js
Content-Type: text/javascript; charset=ISO-8859-1; name=gw.js
Content-Location: http://js.revsci.net/gateway/gw.js?csid=J05530
Content-Transfer-Encoding: Quoted-Printable
/*
* Build version UW-11.1.0-94
*/
var rsi_k;
var rsi_now =3D new Date();
var rsi_csid =3D 'J05530';
if(typeof(csids)=3D=3D"undefined"){var csids=3D[rsi_csid];}else{csids.pu=
sh(rsi_csid);}var _rsiaa=3D0;var _rsiba=3D1;var _rsica=3D0;var _rsida=3D=
0;var _rsiea=3D0;var _rsifa=3D"0902050";var _rsiga=3D"pix04.revsci.net";=
var _rsiha=3D"js";var _rsiia=3D"b";var _rsija=3D"3";var _rsika=3D3;var _=
rsila=3Dnew Array();var _rsima=3D0;var _rsina;var _rsioa;var _rsipa;var =
_rsiqa;var _rsira;var _rsisa;_rsita();function DM_cat(Ba){_rsina=3DBa;}f=
unction DM_name(Ca){_rsioa=3DCa;}function DM_keywords(st){_rsipa=3Dst;}f=
unction DM_event(Da){_rsiqa=3DDa;}function DM_addToLoc(n,v){_rsira=3D_rs=
iua(_rsira,n,v);}function DM_addEncToLoc(n,v){DM_addToLoc(_rsiva(n),_rsi=
va(v));}function DM_setLoc(u){_rsira=3Du;}function DM_setCsid(Ea){rsi_cs=
id=3DEa;}function rsi_c(Fa){rsi_csid=3DFa;}function rsi_ral(Ga){_rsiaa=3D=
Ga;}function rsi_riu(Ha){_rsiba=3DHa;}function rsi_tiu(Ia){_rsica=3DIa;}=
function rsi_m(Ja){_rsida=3DJa;}function rsi_dw(Ka){_rsiea=3DKa;}functio=
n rsi_s(La){_rsiga=3DLa;}function rsi_t(Ma){_rsiha=3DMa;}function rsi_en=
(Na){_rsiia=3DNa;}function rsi_cn(Oa){_rsija=3DOa;}function rsi_us(Pa){_=
rsika=3DPa;}function DM_tag(){var Qa;if(_rsima=3D=3D0||_rsida=3D=3D1){if=
(typeof(DM_prep)=3D=3D"function"){DM_prep(rsi_csid);}var Ra=3D_rsiwa();i=
f(_rsiha=3D=3D"gif"){Qa=3Dnew Image(2,3);Qa.src=3DRa;_rsila[_rsila.lengt=
h]=3DQa;}else if(_rsiha=3D=3D"js"){if(_rsiea=3D=3D1){document.write("<"+"/script>");}else{var Sa=3Ddocument.createElement("script");Sa.lan=
guage=3D"JavaScript";Sa.type=3D"text/javascript";Sa.src=3DRa;if(document=
.body=3D=3Dnull){document.getElementsByTagName("head")[0].appendChild(Sa=
);}else{document.body.insertBefore(Sa,document.body.firstChild);}Qa=3DSa=
;}}_rsima=3D1;}_rsita();return Qa;}function _rsiwa(){var Ta=3D"";Ta=3D"D=
M_LOC=3D"+_rsiva(_rsira);if(_rsina){Ta+=3D"&DM_CAT=3D"+_rsiva(_rsina);}i=
f(_rsiqa){Ta+=3D"&DM_EVT=3D"+_rsiva(_rsiqa);}if(_rsipa){Ta+=3D"&DM_KYW=3D=
"+_rsiva(_rsipa);}if(_rsiba=3D=3D1&&_rsisa){Ta+=3D"&DM_REF=3D"+_rsiva(_r=
sisa);}if(_rsica=3D=3D1){Ta+=3D"&DM_TIT=3D"+_rsiva(document.title);}if(_=
rsioa){Ta+=3D"&DM_NAM=3D"+_rsiva(_rsioa);}Ta+=3D"&DM_EOM=3D1";var Ua=3D"=
http"+(location.protocol=3D=3D"https:"?"s":"")+"://";var Va=3D"/"+rsi_cs=
id+"/"+_rsiia+_rsija+"/0/"+_rsika+"/"+_rsifa+"/";var Wa=3DMath.floor(Mat=
h.random()*1000000000)+"."+_rsiha;var Xa=3DUa+_rsiga+Va+Wa+"?D=3D"+_rsiv=
a(Ta)+"&C=3D"+_rsiva(csids);var Ya=3DXa.length;if(Ya>=3D2000){if(Xa.char=
At(1998)=3D=3D'%'){Xa=3DXa.substr(0,1998);}else if(Xa.charAt(1999)=3D=3D=
'%'){Xa=3DXa.substr(0,1999);}else{Xa=3DXa.substr(0,2000);}if(Xa.charAt(X=
a.length-3)=3D=3D'%'&&Xa.charAt(Xa.length-2)=3D=3D'2'&&Xa.charAt(Xa.leng=
th-1)=3D=3D'5'){Xa=3DXa.substr(0,Xa.length-3);}}return Xa;}function _rsi=
xa(i){var Za=3Di.toString(16).toUpperCase();return Za.length<2?"0"+Za:Za=
;}function _rsiya(c){var i=3Dc.charCodeAt(0);if(isNaN(i))return "";if(i<=
128)return "%"+_rsixa(i);if(i<2048)return "%"+_rsixa(0xC0+(i>>6))+"%"+_r=
sixa(0x80+(i&0x3F));if(i<65536)return "%"+_rsixa(0xE0+(i>>12))+"%"+_rsix=
a(0x80+(i>>6&0x3F))+"%"+_rsixa(0x80+(i&0x3F));return "%"+_rsixa(0xF0+(i>=
>18))+"%"+_rsixa(0x80+(i>>12&0x3F))+"%"+_rsixa(0x80+(i>>6&0x3F))+"%"+_rs=
ixa(0x80+(i&0x3F));}var _rsiva;if(typeof(encodeURIComponent)=3D=3D"funct=
ion"){_rsiva=3DencodeURIComponent;}else{var _rsiza=3Dnew RegExp("[\x00-\=
x20]|[\x22-\x26]|[\x2B-\x2C]|\x2F|[\x3A-\x40]|[\x5B-\x5E]|\x60|[\x7B-\x7=
D]|[\x7F-\uFFFF]","g");_rsiva=3Dfunction(v){return v.toString().replace(=
_rsiza,_rsiya);}}function _rsiua(u,n,v){return u+(u.indexOf("?")=3D=3D-1=
?"?":"&")+n+"=3D"+v;}function _rsiAa(u){var i=3Du.indexOf('#');return(i>=
=3D0)?u.substr(0,i):u;}function _rsita(){_rsisa=3D_rsiAa(document.referr=
er.toString());_rsira=3D(_rsiaa=3D=3D1)?_rsisa:_rsiAa(window.location.hr=
ef);_rsina=3Dnull;_rsioa=3Dnull;_rsipa=3Dnull;_rsiqa=3Dnull;}
if(window[rsi_csid])window[rsi_csid].rsi_t("gif");else rsi_t("gif");
rsi_k =3D '&kr=3D' + Math.random();
document.writeln('