MiBuZXcgY29tbWl0cyBpbiBnYWxheHktY2VudHJhbDoKCmh0dHBzOi8vYml0YnVja2V0Lm9yZy9n
YWxheHkvZ2FsYXh5LWNlbnRyYWwvY29tbWl0cy84ZWM2OTA1MjYwMGEvCkNoYW5nZXNldDogICA4
ZWM2OTA1MjYwMGEKVXNlcjogICAgICAgIGRhbm5vbgpEYXRlOiAgICAgICAgMjAxNC0xMi0xNSAx
NDozOTo1NSswMDowMApTdW1tYXJ5OiAgICAgQWRkIGRlZmF1bHQgbnVtZXJpY2FsIGNvbHVtbiBo
ZWFkZXJzLCBwZXIgQmo9QzM9QjZybidzIFBSIChzbGk9CmdodGx5IHR3ZWFrZWQpIGh0dHBzOi8v
Yml0YnVja2V0Lm9yZy9nYWxheHkvZ2FsYXh5LWNlbnRyYWwvcHVsbC1yZXF1ZXN0LzYxMT0KL2Fk
ZC1hLWRlZmF1bHQtaGVhZGVyLXRvLXRhYnVsYXItb3V0cHV0Ly4KQWZmZWN0ZWQgIzogIDMgZmls
ZXMKCmRpZmYgLXIgN2U2OGFhM2Q4ZDE2MWZmMmEwNTI2MTAxYWVkZWJjMDI2YjRkNzFjYyAtciA4
ZWM2OTA1MjYwMGEyYzkxNWY4OGQzMT0KODU4ODRhMTg1ZTgyMDg2ZDEgY2xpZW50L2dhbGF4eS9z
Y3JpcHRzL212Yy9kYXRhLmpzCi0tLSBhL2NsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMvZGF0YS5q
cworKysgYi9jbGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2RhdGEuanMKQEAgLTE3Niw2ICsxNzYs
MTAgQEAKICAgICAgICAgICAgIGhlYWRlcl9yb3cgPTNEICQoJzx0ci8+JykuY3NzKCdiYWNrZ3Jv
dW5kLWNvbG9yJywgdGhpcy5oZWFkZXJfPQpjb2xvcikuYXBwZW5kVG8oZGF0YV90YWJsZSk7CiAg
ICAgICAgIGlmIChjb2x1bW5fbmFtZXMpIHsKICAgICAgICAgICAgIGhlYWRlcl9yb3cuYXBwZW5k
KCc8dGg+JyArIGNvbHVtbl9uYW1lcy5qb2luKCc8L3RoPjx0aD4nKSArICc8PQovdGg+Jyk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKHZhciBqID0zRCAxOyBqIDw9M0QgdGhp
cy5tb2RlbC5nZXRfbWV0YWRhdGEoJ2NvbHVtbnMnKTsgaj0KKyspIHsKKyAgICAgICAgICAgICAg
ICBoZWFkZXJfcm93LmFwcGVuZCgnPHRoPicgKyBqICsgJzwvdGg+Jyk7CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KPTIwCiAgICAgICAgIC8vIFJlbmRlciBmaXJzdCBjaHVuay4KCmRpZmYgLXIg
N2U2OGFhM2Q4ZDE2MWZmMmEwNTI2MTAxYWVkZWJjMDI2YjRkNzFjYyAtciA4ZWM2OTA1MjYwMGEy
YzkxNWY4OGQzMT0KODU4ODRhMTg1ZTgyMDg2ZDEgc3RhdGljL3NjcmlwdHMvbXZjL2RhdGEuanMK
LS0tIGEvc3RhdGljL3NjcmlwdHMvbXZjL2RhdGEuanMKKysrIGIvc3RhdGljL3NjcmlwdHMvbXZj
L2RhdGEuanMKQEAgLTE3Niw2ICsxNzYsMTAgQEAKICAgICAgICAgICAgIGhlYWRlcl9yb3cgPTNE
ICQoJzx0ci8+JykuY3NzKCdiYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy5oZWFkZXJfPQpjb2xvciku
YXBwZW5kVG8oZGF0YV90YWJsZSk7CiAgICAgICAgIGlmIChjb2x1bW5fbmFtZXMpIHsKICAgICAg
ICAgICAgIGhlYWRlcl9yb3cuYXBwZW5kKCc8dGg+JyArIGNvbHVtbl9uYW1lcy5qb2luKCc8L3Ro
Pjx0aD4nKSArICc8PQovdGg+Jyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3Ig
KHZhciBqID0zRCAxOyBqIDw9M0QgdGhpcy5tb2RlbC5nZXRfbWV0YWRhdGEoJ2NvbHVtbnMnKTsg
aj0KKyspIHsKKyAgICAgICAgICAgICAgICBoZWFkZXJfcm93LmFwcGVuZCgnPHRoPicgKyBqICsg
JzwvdGg+Jyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KPTIwCiAgICAgICAgIC8vIFJlbmRl
ciBmaXJzdCBjaHVuay4KCmRpZmYgLXIgN2U2OGFhM2Q4ZDE2MWZmMmEwNTI2MTAxYWVkZWJjMDI2
YjRkNzFjYyAtciA4ZWM2OTA1MjYwMGEyYzkxNWY4OGQzMT0KODU4ODRhMTg1ZTgyMDg2ZDEgc3Rh
dGljL3NjcmlwdHMvcGFja2VkL212Yy9kYXRhLmpzCi0tLSBhL3N0YXRpYy9zY3JpcHRzL3BhY2tl
ZC9tdmMvZGF0YS5qcworKysgYi9zdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2RhdGEuanMKQEAg
LTEsMSArMSwxIEBACi1kZWZpbmUoWyJtdmMvdWkvdWktbW9kYWwiLCJtdmMvdWkvdWktZnJhbWVz
IiwibXZjL3VpL2ljb24tYnV0dG9uIl0sZnVuY3Rpbz0KbihrLGosZil7dmFyIGg9M0RCYWNrYm9u
ZS5Nb2RlbC5leHRlbmQoe30pO3ZhciBiPTNEQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHtkPQplZmF1
bHRzOntpZDoiIix0eXBlOiIiLG5hbWU6IiIsaGRhX2xkZGE6ImhkYSIsbWV0YWRhdGE6bnVsbH0s
aW5pdGlhbGl6ZTpmdW49CmN0aW9uKCl7aWYoIXRoaXMuZ2V0KCJtZXRhZGF0YSIpKXt0aGlzLl9z
ZXRfbWV0YWRhdGEoKX10aGlzLm9uKCJjaGFuZ2UiLHRoaT0Kcy5fc2V0X21ldGFkYXRhLHRoaXMp
fSxfc2V0X21ldGFkYXRhOmZ1bmN0aW9uKCl7dmFyIG49M0RuZXcgaCgpO18uZWFjaChfLmtlPQp5
cyh0aGlzLmF0dHJpYnV0ZXMpLGZ1bmN0aW9uKG8pe2lmKG8uaW5kZXhPZigibWV0YWRhdGFfIik9
M0Q9M0Q9M0QwKXt2YXIgcD0KPTNEby5zcGxpdCgibWV0YWRhdGFfIilbMV07bi5zZXQocCx0aGlz
LmF0dHJpYnV0ZXNbb10pO2RlbGV0ZSB0aGlzLmF0dHJpYnV0PQplc1tvXX19LHRoaXMpO3RoaXMu
c2V0KCJtZXRhZGF0YSIsbix7c2lsZW50OnRydWV9KX0sZ2V0X21ldGFkYXRhOmZ1bmN0aW9uKG49
Cil7cmV0dXJuIHRoaXMuYXR0cmlidXRlcy5tZXRhZGF0YS5nZXQobil9LHVybFJvb3Q6Z2FsYXh5
X2NvbmZpZy5yb290KyJhcGkvZD0KYXRhc2V0cyJ9KTt2YXIgaT0zRGIuZXh0ZW5kKHtkZWZhdWx0
czpfLmV4dGVuZCh7fSxiLnByb3RvdHlwZS5kZWZhdWx0cyx7Y2h1PQpua191cmw6bnVsbCxmaXJz
dF9kYXRhX2NodW5rOm51bGwsY2h1bmtfaW5kZXg6LTEsYXRfZW9mOmZhbHNlfSksaW5pdGlhbGl6
ZTo9CmZ1bmN0aW9uKG4pe2IucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzKTt0aGlzLmF0
dHJpYnV0ZXMuY2h1bmtfaW5kZXg9Cj0zRCh0aGlzLmF0dHJpYnV0ZXMuZmlyc3RfZGF0YV9jaHVu
az8xOjApO3RoaXMuYXR0cmlidXRlcy5jaHVua191cmw9M0RnYWxheD0KeV9jb25maWcucm9vdCsi
ZGF0YXNldC9kaXNwbGF5P2RhdGFzZXRfaWQ9M0QiK3RoaXMuaWQ7dGhpcy5hdHRyaWJ1dGVzLnVy
bF92PQppej0zRGdhbGF4eV9jb25maWcucm9vdCsidmlzdWFsaXphdGlvbiJ9LGdldF9uZXh0X2No
dW5rOmZ1bmN0aW9uKCl7aWYodGhpcy49CmF0dHJpYnV0ZXMuYXRfZW9mKXtyZXR1cm4gbnVsbH12
YXIgbj0zRHRoaXMsbz0zRCQuRGVmZXJyZWQoKTskLmdldEpTT04odGhpcz0KLmF0dHJpYnV0ZXMu
Y2h1bmtfdXJsLHtjaHVuazpuLmF0dHJpYnV0ZXMuY2h1bmtfaW5kZXgrK30pLnN1Y2Nlc3MoZnVu
Y3Rpb24oPQpwKXt2YXIgcTtpZihwLmNrX2RhdGEhPTNEPTNEIiIpe3E9M0RwfWVsc2V7bi5hdHRy
aWJ1dGVzLmF0X2VvZj0zRHRydWU7cT0zRG49CnVsbH1vLnJlc29sdmUocSl9KTtyZXR1cm4gb319
KTt2YXIgZT0zREJhY2tib25lLkNvbGxlY3Rpb24uZXh0ZW5kKHttb2RlbDpifT0KKTt2YXIgYT0z
REJhY2tib25lLlZpZXcuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKG4pe3RoaXMucm93X2Nv
dW50PTNEMDt0PQpoaXMubG9hZGluZ19jaHVuaz0zRGZhbHNlO3RoaXMuaGVhZGVyX2NvbG9yPTNE
IiNBQUEiO3RoaXMuZGFya19yb3dfY29sb3I9M0Q9CiIjREREIjtuZXcgZCh7bW9kZWw6bi5tb2Rl
bCwkZWw6dGhpcy4kZWx9KX0sZXhwYW5kX3RvX2NvbnRhaW5lcjpmdW5jdGlvbigpez0KaWYodGhp
cy4kZWwuaGVpZ2h0KCk8dGhpcy5zY3JvbGxfZWx0LmhlaWdodCgpKXt0aGlzLmF0dGVtcHRfdG9f
ZmV0Y2goKX19LGF0PQp0ZW1wdF90b19mZXRjaDpmdW5jdGlvbihvKXt2YXIgbj0zRHRoaXM7aWYo
IXRoaXMubG9hZGluZ19jaHVuayYmdGhpcy5zY3JvbGw9CmVkX3RvX2JvdHRvbSgpKXt0aGlzLmxv
YWRpbmdfY2h1bms9M0R0cnVlO3RoaXMubG9hZGluZ19pbmRpY2F0b3Iuc2hvdygpOyQudz0KaGVu
KG4ubW9kZWwuZ2V0X25leHRfY2h1bmsoKSkudGhlbihmdW5jdGlvbihwKXtpZihwKXtuLl9yZW5k
ZXJDaHVuayhwKTtuLmxvPQphZGluZ19jaHVuaz0zRGZhbHNlfW4ubG9hZGluZ19pbmRpY2F0b3Iu
aGlkZSgpO24uZXhwYW5kX3RvX2NvbnRhaW5lcigpfSl9fSw9CnJlbmRlcjpmdW5jdGlvbigpe3Ro
aXMubG9hZGluZ19pbmRpY2F0b3I9M0QkKCI8ZGl2Lz4iKS5hdHRyKCJpZCIsImxvYWRpbmdfaT0K
bmRpY2F0b3IiKTt0aGlzLiRlbC5hcHBlbmQodGhpcy5sb2FkaW5nX2luZGljYXRvcik7dmFyIHE9
M0QkKCI8dGFibGUvPiIpLmF0PQp0cih7aWQ6ImNvbnRlbnRfdGFibGUiLGNlbGxwYWRkaW5nOjB9
KTt0aGlzLiRlbC5hcHBlbmQocSk7dmFyIG49M0R0aGlzLm1vZGU9CmwuZ2V0X21ldGFkYXRhKCJj
b2x1bW5fbmFtZXMiKSxyPTNEJCgiPHRyLz4iKS5jc3MoImJhY2tncm91bmQtY29sb3IiLHRoaXMu
aD0KZWFkZXJfY29sb3IpLmFwcGVuZFRvKHEpO2lmKG4pe3IuYXBwZW5kKCI8dGg+IituLmpvaW4o
IjwvdGg+PHRoPiIpKyI8L3RoPiIpPQp9dmFyIHA9M0R0aGlzLG89M0R0aGlzLm1vZGVsLmdldCgi
Zmlyc3RfZGF0YV9jaHVuayIpO2lmKG8pe3RoaXMuX3JlbmRlckNodW49Cmsobyl9ZWxzZXskLndo
ZW4ocC5tb2RlbC5nZXRfbmV4dF9jaHVuaygpKS50aGVuKGZ1bmN0aW9uKHMpe3AuX3JlbmRlckNo
dW5rKD0Kcyl9KX10aGlzLnNjcm9sbF9lbHQuc2Nyb2xsKGZ1bmN0aW9uKCl7cC5hdHRlbXB0X3Rv
X2ZldGNoKCl9KX0sc2Nyb2xsZWRfdG9fPQpib3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9
LF9yZW5kZXJDZWxsOmZ1bmN0aW9uKHEsbixyKXt2YXIgbz0zRCQoIjx0ZD49CiIpLnRleHQocSk7
dmFyIHA9M0R0aGlzLm1vZGVsLmdldF9tZXRhZGF0YSgiY29sdW1uX3R5cGVzIik7aWYociE9M0Q9
M0R1bmRlZj0KaW5lZCl7by5hdHRyKCJjb2xzcGFuIixyKS5hZGRDbGFzcygic3RyaW5nYWxpZ24i
KX1lbHNle2lmKHApe2lmKG48cC5sZW5ndGgpPQp7aWYocFtuXT0zRD0zRD0zRCJzdHIifHxwW25d
PTNEPTNEPTNEImxpc3QiKXtvLmFkZENsYXNzKCJzdHJpbmdhbGlnbiIpfX19fXI9CmV0dXJuIG99
LF9yZW5kZXJSb3c6ZnVuY3Rpb24obil7dmFyIG89M0RuLnNwbGl0KCJcdCIpLHE9M0QkKCI8dHI+
IikscD0zRHRoaT0Kcy5tb2RlbC5nZXRfbWV0YWRhdGEoImNvbHVtbnMiKTtpZih0aGlzLnJvd19j
b3VudCUyIT0zRD0zRDApe3EuY3NzKCJiYWNrZ3JvPQp1bmQtY29sb3IiLHRoaXMuZGFya19yb3df
Y29sb3IpfWlmKG8ubGVuZ3RoPTNEPTNEPTNEcCl7Xy5lYWNoKG8sZnVuY3Rpb24ocyw9CnIpe3Eu
YXBwZW5kKHRoaXMuX3JlbmRlckNlbGwocyxyKSl9LHRoaXMpfWVsc2V7aWYoby5sZW5ndGg+cCl7
Xy5lYWNoKG8uc2xpYz0KZSgwLHAtMSksZnVuY3Rpb24ocyxyKXtxLmFwcGVuZCh0aGlzLl9yZW5k
ZXJDZWxsKHMscikpfSx0aGlzKTtxLmFwcGVuZCh0aGlzPQouX3JlbmRlckNlbGwoby5zbGljZShw
LTEpLmpvaW4oIlx0IikscC0xKSl9ZWxzZXtpZihwPjUmJm8ubGVuZ3RoPTNEPTNEPTNEcC09CjEp
e18uZWFjaChvLGZ1bmN0aW9uKHMscil7cS5hcHBlbmQodGhpcy5fcmVuZGVyQ2VsbChzLHIpKX0s
dGhpcyk7cS5hcHBlbmQoJD0KKCI8dGQ+IikpfWVsc2V7cS5hcHBlbmQodGhpcy5fcmVuZGVyQ2Vs
bChuLDAscCkpfX19dGhpcy5yb3dfY291bnQrKztyZXR1cm4gPQpxfSxfcmVuZGVyQ2h1bms6ZnVu
Y3Rpb24obil7dmFyIG89M0R0aGlzLiRlbC5maW5kKCJ0YWJsZSIpO18uZWFjaChuLmNrX2RhdGE9
Ci5zcGxpdCgiXG4iKSxmdW5jdGlvbihwLHEpe2lmKHAhPTNEPTNEIiIpe28uYXBwZW5kKHRoaXMu
X3JlbmRlclJvdyhwKSl9fSx0aD0KaXMpfX0pO3ZhciBnPTNEYS5leHRlbmQoe2luaXRpYWxpemU6
ZnVuY3Rpb24obil7YS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsPQoodGhpcyxuKTtzY3JvbGxf
ZWx0PTNEXy5maW5kKHRoaXMuJGVsLnBhcmVudHMoKSxmdW5jdGlvbihvKXtyZXR1cm4gJChvKS5j
c3M9Cigib3ZlcmZsb3ciKT0zRD0zRD0zRCJhdXRvIn0pO2lmKCFzY3JvbGxfZWx0KXtzY3JvbGxf
ZWx0PTNEd2luZG93fXRoaXMuc2Nybz0KbGxfZWx0PTNEJChzY3JvbGxfZWx0KX0sc2Nyb2xsZWRf
dG9fYm90dG9tOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuJGVsLmhlaWdoPQp0KCktdGhpcy5zY3Jv
bGxfZWx0LnNjcm9sbFRvcCgpLXRoaXMuc2Nyb2xsX2VsdC5oZWlnaHQoKTw9M0QwKX19KTt2YXIg
bT0zRGE9Ci5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24obil7YS5wcm90b3R5cGUuaW5pdGlh
bGl6ZS5jYWxsKHRoaXMsbik7dGhpcy5zYz0Kcm9sbF9lbHQ9M0R0aGlzLiRlbC5jc3Moe3Bvc2l0
aW9uOiJyZWxhdGl2ZSIsb3ZlcmZsb3c6InNjcm9sbCIsaGVpZ2h0OnRoaXMuPQpvcHRpb25zLmhl
aWdodHx8IjUwMHB4In0pfSxzY3JvbGxlZF90b19ib3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy4kZWwuc2M9CnJvbGxUb3AoKSt0aGlzLiRlbC5pbm5lckhlaWdodCgpPj0zRHRoaXMuZWwuc2Ny
b2xsSGVpZ2h0fX0pO3ZhciBkPTNEQmFja2Jvbj0KZS5WaWV3LmV4dGVuZCh7Y29sOntjaHJvbTpu
dWxsLHN0YXJ0Om51bGwsZW5kOm51bGx9LHVybF92aXo6bnVsbCxkYXRhc2V0X2lkPQo6bnVsbCxn
ZW5vbWVfYnVpbGQ6bnVsbCxmaWxlX2V4dDpudWxsLGluaXRpYWxpemU6ZnVuY3Rpb24ocCl7dmFy
IHM9M0RwYXJlbnQ9Ci5HYWxheHk7aWYocyYmcy5tb2RhbCl7dGhpcy5tb2RhbD0zRHMubW9kYWx9
aWYocyYmcy5mcmFtZSl7dGhpcy5mcmFtZT0zRHMuZj0KcmFtZX1pZighdGhpcy5tb2RhbHx8IXRo
aXMuZnJhbWUpe3JldHVybn12YXIgbz0zRHAubW9kZWw7dmFyIHI9M0RvLmdldCgibWV0PQphZGF0
YSIpO2lmKCFvLmdldCgiZmlsZV9leHQiKSl7cmV0dXJufXRoaXMuZmlsZV9leHQ9M0RvLmdldCgi
ZmlsZV9leHQiKTtpZig9CnRoaXMuZmlsZV9leHQ9M0Q9M0QiYmVkIil7aWYoci5nZXQoImNocm9t
Q29sIikmJnIuZ2V0KCJzdGFydENvbCIpJiZyLmdldCgiZT0KbmRDb2wiKSl7dGhpcy5jb2wuY2hy
b209M0RyLmdldCgiY2hyb21Db2wiKS0xO3RoaXMuY29sLnN0YXJ0PTNEci5nZXQoInN0YXJ0PQpD
b2wiKS0xO3RoaXMuY29sLmVuZD0zRHIuZ2V0KCJlbmRDb2wiKS0xfWVsc2V7Y29uc29sZS5sb2co
IlRhYnVsYXJCdXR0b25UcmE9CmNrc3RlciA6IEJlZC1maWxlIG1ldGFkYXRhIGluY29tcGxldGUu
Iik7cmV0dXJufX1pZih0aGlzLmZpbGVfZXh0PTNEPTNEInZjZj0KIil7ZnVuY3Rpb24gcSh1LHYp
e2Zvcih2YXIgdD0zRDA7dDx2Lmxlbmd0aDt0Kyspe2lmKHZbdF0ubWF0Y2godSkpe3JldHVybiB0
PQp9fXJldHVybiAtMX10aGlzLmNvbC5jaHJvbT0zRHEoIkNocm9tIixyLmdldCgiY29sdW1uX25h
bWVzIikpO3RoaXMuY29sLnN0YXI9CnQ9M0RxKCJQb3MiLHIuZ2V0KCJjb2x1bW5fbmFtZXMiKSk7
dGhpcy5jb2wuZW5kPTNEbnVsbDtpZih0aGlzLmNvbC5jaHJvbT0zRD0KPTNELTF8fHRoaXMuY29s
LnN0YXJ0PTNEPTNELTEpe2NvbnNvbGUubG9nKCJUYWJ1bGFyQnV0dG9uVHJhY2tzdGVyIDogVkNG
LWZpPQpsZSBtZXRhZGF0YSBpbmNvbXBsZXRlLiIpO3JldHVybn19aWYodGhpcy5jb2wuY2hyb209
M0Q9M0Q9M0R1bmRlZmluZWQpe3JldHU9CnJufWlmKG8uaWQpe3RoaXMuZGF0YXNldF9pZD0zRG8u
aWR9ZWxzZXtjb25zb2xlLmxvZygiVGFidWxhckJ1dHRvblRyYWNrc3Rlcj0KIDogRGF0YXNldCBp
ZGVudGlmaWNhdGlvbiBpcyBtaXNzaW5nLiIpO3JldHVybn1pZihvLmdldCgidXJsX3ZpeiIpKXt0
aGlzLnVyPQpsX3Zpej0zRG8uZ2V0KCJ1cmxfdml6Iil9ZWxzZXtjb25zb2xlLmxvZygiVGFidWxh
ckJ1dHRvblRyYWNrc3RlciA6IFVybCBmb3I9CiB2aXN1YWxpemF0aW9uIGNvbnRyb2xsZXIgaXMg
bWlzc2luZy4iKTtyZXR1cm59aWYoby5nZXQoImdlbm9tZV9idWlsZCIpKXt0aD0KaXMuZ2Vub21l
X2J1aWxkPTNEby5nZXQoImdlbm9tZV9idWlsZCIpfXZhciBuPTNEbmV3IGYuSWNvbkJ1dHRvblZp
ZXcoe21vZGVsPQo6bmV3IGYuSWNvbkJ1dHRvbih7dGl0bGU6IlZpc3VhbGl6ZSIsaWNvbl9jbGFz
czoiY2hhcnRfY3VydmUiLGlkOiJidG5fdml6In09Cil9KTt0aGlzLnNldEVsZW1lbnQocC4kZWwp
O3RoaXMuJGVsLmFwcGVuZChuLnJlbmRlcigpLiRlbCk7dGhpcy5oaWRlKCl9LGV2ZT0KbnRzOnsi
bW91c2VvdmVyIHRyIjoic2hvdyIsbW91c2VsZWF2ZToiaGlkZSJ9LHNob3c6ZnVuY3Rpb24ocyl7
ZnVuY3Rpb24gcih4PQope3JldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh4KSkmJmlzRmluaXRlKHgp
fWlmKHRoaXMuY29sLmNocm9tPTNEPTNEPTNEbnVsbCk9CntyZXR1cm59dmFyIHc9M0QkKHMudGFy
Z2V0KS5wYXJlbnQoKTt2YXIgdD0zRHcuY2hpbGRyZW4oKS5lcSh0aGlzLmNvbC5jaHJvbT0KKS5o
dG1sKCk7dmFyIG49M0R3LmNoaWxkcmVuKCkuZXEodGhpcy5jb2wuc3RhcnQpLmh0bWwoKTt2YXIg
cD0zRHRoaXMuY29sLmVuPQpkP3cuY2hpbGRyZW4oKS5lcSh0aGlzLmNvbC5lbmQpLmh0bWwoKTpu
O2lmKCF0Lm1hdGNoKCJeIyIpJiZ0IT0zRD0zRCIiJiZyKG49Cikpe3ZhciB2PTNEe2RhdGFzZXRf
aWQ6dGhpcy5kYXRhc2V0X2lkLGdlbmVfcmVnaW9uOnQrIjoiK24rIi0iK3B9O3ZhciBxPTNEdz0K
Lm9mZnNldCgpO3ZhciBvPTNEcS5sZWZ0LTEwO3ZhciB1PTNEcS50b3AtJCh3aW5kb3cpLnNjcm9s
bFRvcCgpKzM7JCgiI2J0bl92PQppeiIpLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6dSsicHgi
LGxlZnQ6bysicHgifSk7JCgiI2J0bl92aXoiKS5vZmYoImNsaWM9CmsiKTskKCIjYnRuX3ZpeiIp
LmNsaWNrKHRoaXMuY3JlYXRlX3RyYWNrc3Rlcl9hY3Rpb24odGhpcy51cmxfdml6LHYsdGhpcy5n
ZT0Kbm9tZV9idWlsZCkpOyQoIiNidG5fdml6Iikuc2hvdygpfWVsc2V7JCgiI2J0bl92aXoiKS5o
aWRlKCl9fSxoaWRlOmZ1bmN0aW9uPQooKXt0aGlzLiRlbC5maW5kKCIjYnRuX3ZpeiIpLmhpZGUo
KX0sY3JlYXRlX3RyYWNrc3Rlcl9hY3Rpb246ZnVuY3Rpb24obixxLHA9Cil7dmFyIG89M0R0aGlz
O3JldHVybiBmdW5jdGlvbigpe3ZhciByPTNEe307aWYocCl7clsiZi1kYmtleSJdPTNEcH0kLmFq
YXgoez0KdXJsOm4rIi9saXN0X3RyYWNrcz8iKyQucGFyYW0ociksZGF0YVR5cGU6Imh0bWwiLGVy
cm9yOmZ1bmN0aW9uKCl7by5tb2RhbC5zPQpob3coe3RpdGxlOiJTb21ldGhpbmcgd2VudCB3cm9u
ZyEiLGJvZHk6IlVuZm9ydHVuYXRlbHkgd2UgY291bGQgbm90IGFkZCB0aGk9CnMgZGF0YXNldCB0
byB0aGUgdHJhY2sgYnJvd3Nlci4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHVzLiIsYnV0
dG9uczp7Qz0KYW5jZWw6ZnVuY3Rpb24oKXtvLm1vZGFsLmhpZGUoKX19fSl9LHN1Y2Nlc3M6ZnVu
Y3Rpb24ocyl7by5tb2RhbC5zaG93KHt0aXRsPQplOiJWaWV3IERhdGEgaW4gYSBOZXcgb3IgU2F2
ZWQgVmlzdWFsaXphdGlvbiIsYnV0dG9uczp7Q2FuY2VsOmZ1bmN0aW9uKCl7by49Cm1vZGFsLmhp
ZGUoKX0sIlZpZXcgaW4gc2F2ZWQgdmlzdWFsaXphdGlvbiI6ZnVuY3Rpb24oKXtvLm1vZGFsLnNo
b3coe3RpdGxlOj0KIkFkZCBEYXRhIHRvIFNhdmVkIFZpc3VhbGl6YXRpb24iLGJvZHk6cyxidXR0
b25zOntDYW5jZWw6ZnVuY3Rpb24oKXtvLm1vZGFsPQouaGlkZSgpfSwiQWRkIHRvIHZpc3VhbGl6
YXRpb24iOmZ1bmN0aW9uKCl7by5tb2RhbC5oaWRlKCk7by5tb2RhbC4kZWwuZmluZCg9CiJpbnB1
dFtuYW1lPTNEaWRdOmNoZWNrZWQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9M0QkKHRoaXMpLnZh
bCgpO3EuaWQ9M0R0Oz0Kby5mcmFtZS5hZGQoe3RpdGxlOiJUcmFja3N0ZXIiLHR5cGU6InVybCIs
Y29udGVudDpuKyIvdHJhY2tzdGVyPyIrJC5wYXJhbShxPQopfSl9KX19fSl9LCJWaWV3IGluIG5l
dyB2aXN1YWxpemF0aW9uIjpmdW5jdGlvbigpe28ubW9kYWwuaGlkZSgpO28uZnJhbWUuYWQ9CmQo
e3RpdGxlOiJUcmFja3N0ZXIiLHR5cGU6InVybCIsY29udGVudDpuKyIvdHJhY2tzdGVyPyIrJC5w
YXJhbShxKX0pfX19KX19KT0KO3JldHVybiBmYWxzZX19fSk7dmFyIGw9M0RmdW5jdGlvbihxLG8s
cixuKXt2YXIgcD0zRG5ldyBvKHttb2RlbDpuZXcgcShyKX0pPQo7cC5yZW5kZXIoKTtpZihuKXtu
LmFwcGVuZChwLiRlbCl9cmV0dXJuIHB9O3ZhciBjPTNEZnVuY3Rpb24ocCl7aWYoIXAubW9kZWw9
Cil7cC5tb2RlbD0zRG5ldyBpKHAuZGF0YXNldF9jb25maWcpfXZhciBvPTNEcC5wYXJlbnRfZWx0
O3ZhciBxPTNEcC5lbWJlZGRlZD0KO2RlbGV0ZSBwLmVtYmVkZGVkO2RlbGV0ZSBwLnBhcmVudF9l
bHQ7ZGVsZXRlIHAuZGF0YXNldF9jb25maWc7dmFyIG49M0QocT9uPQpldyBtKHApOm5ldyBnKHAp
KTtuLnJlbmRlcigpO2lmKG8pe28uYXBwZW5kKG4uJGVsKTtuLmV4cGFuZF90b19jb250YWluZXIo
KX09CnJldHVybiBufTtyZXR1cm57RGF0YXNldDpiLFRhYnVsYXJEYXRhc2V0OmksRGF0YXNldENv
bGxlY3Rpb246ZSxUYWJ1bGFyRGF0YT0Kc2V0Q2h1bmtlZFZpZXc6YSxjcmVhdGVUYWJ1bGFyRGF0
YXNldENodW5rZWRWaWV3OmN9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGVmaW5l
KFsibXZjL3VpL3VpLW1vZGFsIiwibXZjL3VpL3VpLWZyYW1lcyIsIm12Yy91aS9pY29uLWJ1dHRv
biJdLGZ1bmN0aW89Cm4oayxqLGYpe3ZhciBoPTNEQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHt9KTt2
YXIgYj0zREJhY2tib25lLk1vZGVsLmV4dGVuZCh7ZD0KZWZhdWx0czp7aWQ6IiIsdHlwZToiIixu
YW1lOiIiLGhkYV9sZGRhOiJoZGEiLG1ldGFkYXRhOm51bGx9LGluaXRpYWxpemU6ZnVuPQpjdGlv
bigpe2lmKCF0aGlzLmdldCgibWV0YWRhdGEiKSl7dGhpcy5fc2V0X21ldGFkYXRhKCl9dGhpcy5v
bigiY2hhbmdlIix0aGk9CnMuX3NldF9tZXRhZGF0YSx0aGlzKX0sX3NldF9tZXRhZGF0YTpmdW5j
dGlvbigpe3ZhciBuPTNEbmV3IGgoKTtfLmVhY2goXy5rZT0KeXModGhpcy5hdHRyaWJ1dGVzKSxm
dW5jdGlvbihvKXtpZihvLmluZGV4T2YoIm1ldGFkYXRhXyIpPTNEPTNEPTNEMCl7dmFyIHA9Cj0z
RG8uc3BsaXQoIm1ldGFkYXRhXyIpWzFdO24uc2V0KHAsdGhpcy5hdHRyaWJ1dGVzW29dKTtkZWxl
dGUgdGhpcy5hdHRyaWJ1dD0KZXNbb119fSx0aGlzKTt0aGlzLnNldCgibWV0YWRhdGEiLG4se3Np
bGVudDp0cnVlfSl9LGdldF9tZXRhZGF0YTpmdW5jdGlvbihuPQope3JldHVybiB0aGlzLmF0dHJp
YnV0ZXMubWV0YWRhdGEuZ2V0KG4pfSx1cmxSb290OmdhbGF4eV9jb25maWcucm9vdCsiYXBpL2Q9
CmF0YXNldHMifSk7dmFyIGk9M0RiLmV4dGVuZCh7ZGVmYXVsdHM6Xy5leHRlbmQoe30sYi5wcm90
b3R5cGUuZGVmYXVsdHMse2NodT0KbmtfdXJsOm51bGwsZmlyc3RfZGF0YV9jaHVuazpudWxsLGNo
dW5rX2luZGV4Oi0xLGF0X2VvZjpmYWxzZX0pLGluaXRpYWxpemU6PQpmdW5jdGlvbihuKXtiLnBy
b3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyk7dGhpcy5hdHRyaWJ1dGVzLmNodW5rX2luZGV4
PQo9M0QodGhpcy5hdHRyaWJ1dGVzLmZpcnN0X2RhdGFfY2h1bms/MTowKTt0aGlzLmF0dHJpYnV0
ZXMuY2h1bmtfdXJsPTNEZ2FsYXg9CnlfY29uZmlnLnJvb3QrImRhdGFzZXQvZGlzcGxheT9kYXRh
c2V0X2lkPTNEIit0aGlzLmlkO3RoaXMuYXR0cmlidXRlcy51cmxfdj0KaXo9M0RnYWxheHlfY29u
ZmlnLnJvb3QrInZpc3VhbGl6YXRpb24ifSxnZXRfbmV4dF9jaHVuazpmdW5jdGlvbigpe2lmKHRo
aXMuPQphdHRyaWJ1dGVzLmF0X2VvZil7cmV0dXJuIG51bGx9dmFyIG49M0R0aGlzLG89M0QkLkRl
ZmVycmVkKCk7JC5nZXRKU09OKHRoaXM9Ci5hdHRyaWJ1dGVzLmNodW5rX3VybCx7Y2h1bms6bi5h
dHRyaWJ1dGVzLmNodW5rX2luZGV4Kyt9KS5zdWNjZXNzKGZ1bmN0aW9uKD0KcCl7dmFyIHE7aWYo
cC5ja19kYXRhIT0zRD0zRCIiKXtxPTNEcH1lbHNle24uYXR0cmlidXRlcy5hdF9lb2Y9M0R0cnVl
O3E9M0RuPQp1bGx9by5yZXNvbHZlKHEpfSk7cmV0dXJuIG99fSk7dmFyIGU9M0RCYWNrYm9uZS5D
b2xsZWN0aW9uLmV4dGVuZCh7bW9kZWw6Yn09Cik7dmFyIGE9M0RCYWNrYm9uZS5WaWV3LmV4dGVu
ZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbihuKXt0aGlzLnJvd19jb3VudD0zRDA7dD0KaGlzLmxvYWRp
bmdfY2h1bms9M0RmYWxzZTt0aGlzLmhlYWRlcl9jb2xvcj0zRCIjQUFBIjt0aGlzLmRhcmtfcm93
X2NvbG9yPTNEPQoiI0RERCI7bmV3IGQoe21vZGVsOm4ubW9kZWwsJGVsOnRoaXMuJGVsfSl9LGV4
cGFuZF90b19jb250YWluZXI6ZnVuY3Rpb24oKXs9CmlmKHRoaXMuJGVsLmhlaWdodCgpPHRoaXMu
c2Nyb2xsX2VsdC5oZWlnaHQoKSl7dGhpcy5hdHRlbXB0X3RvX2ZldGNoKCl9fSxhdD0KdGVtcHRf
dG9fZmV0Y2g6ZnVuY3Rpb24obyl7dmFyIG49M0R0aGlzO2lmKCF0aGlzLmxvYWRpbmdfY2h1bmsm
JnRoaXMuc2Nyb2xsPQplZF90b19ib3R0b20oKSl7dGhpcy5sb2FkaW5nX2NodW5rPTNEdHJ1ZTt0
aGlzLmxvYWRpbmdfaW5kaWNhdG9yLnNob3coKTskLnc9CmhlbihuLm1vZGVsLmdldF9uZXh0X2No
dW5rKCkpLnRoZW4oZnVuY3Rpb24ocCl7aWYocCl7bi5fcmVuZGVyQ2h1bmsocCk7bi5sbz0KYWRp
bmdfY2h1bms9M0RmYWxzZX1uLmxvYWRpbmdfaW5kaWNhdG9yLmhpZGUoKTtuLmV4cGFuZF90b19j
b250YWluZXIoKX0pfX0sPQpyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLmxvYWRpbmdfaW5kaWNhdG9y
PTNEJCgiPGRpdi8+IikuYXR0cigiaWQiLCJsb2FkaW5nX2k9Cm5kaWNhdG9yIik7dGhpcy4kZWwu
YXBwZW5kKHRoaXMubG9hZGluZ19pbmRpY2F0b3IpO3ZhciByPTNEJCgiPHRhYmxlLz4iKS5hdD0K
dHIoe2lkOiJjb250ZW50X3RhYmxlIixjZWxscGFkZGluZzowfSk7dGhpcy4kZWwuYXBwZW5kKHIp
O3ZhciBuPTNEdGhpcy5tb2RlPQpsLmdldF9tZXRhZGF0YSgiY29sdW1uX25hbWVzIikscz0zRCQo
Ijx0ci8+IikuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIix0aGlzLmg9CmVhZGVyX2NvbG9yKS5hcHBl
bmRUbyhyKTtpZihuKXtzLmFwcGVuZCgiPHRoPiIrbi5qb2luKCI8L3RoPjx0aD4iKSsiPC90aD4i
KT0KfWVsc2V7Zm9yKHZhciBxPTNEMTtxPD0zRHRoaXMubW9kZWwuZ2V0X21ldGFkYXRhKCJjb2x1
bW5zIik7cSsrKXtzLmFwcGVuZCgiPQo8dGg+IitxKyI8L3RoPiIpfX12YXIgcD0zRHRoaXMsbz0z
RHRoaXMubW9kZWwuZ2V0KCJmaXJzdF9kYXRhX2NodW5rIik7aWYobyk9Cnt0aGlzLl9yZW5kZXJD
aHVuayhvKX1lbHNleyQud2hlbihwLm1vZGVsLmdldF9uZXh0X2NodW5rKCkpLnRoZW4oZnVuY3Rp
b24odD0KKXtwLl9yZW5kZXJDaHVuayh0KX0pfXRoaXMuc2Nyb2xsX2VsdC5zY3JvbGwoZnVuY3Rp
b24oKXtwLmF0dGVtcHRfdG9fZmV0Y2goPQopfSl9LHNjcm9sbGVkX3RvX2JvdHRvbTpmdW5jdGlv
bigpe3JldHVybiBmYWxzZX0sX3JlbmRlckNlbGw6ZnVuY3Rpb24ocSxuLHI9Cil7dmFyIG89M0Qk
KCI8dGQ+IikudGV4dChxKTt2YXIgcD0zRHRoaXMubW9kZWwuZ2V0X21ldGFkYXRhKCJjb2x1bW5f
dHlwZXMiKT0KO2lmKHIhPTNEPTNEdW5kZWZpbmVkKXtvLmF0dHIoImNvbHNwYW4iLHIpLmFkZENs
YXNzKCJzdHJpbmdhbGlnbiIpfWVsc2V7aWYoPQpwKXtpZihuPHAubGVuZ3RoKXtpZihwW25dPTNE
PTNEPTNEInN0ciJ8fHBbbl09M0Q9M0Q9M0QibGlzdCIpe28uYWRkQ2xhc3MoInM9CnRyaW5nYWxp
Z24iKX19fX1yZXR1cm4gb30sX3JlbmRlclJvdzpmdW5jdGlvbihuKXt2YXIgbz0zRG4uc3BsaXQo
Ilx0IikscT0zRD0KJCgiPHRyPiIpLHA9M0R0aGlzLm1vZGVsLmdldF9tZXRhZGF0YSgiY29sdW1u
cyIpO2lmKHRoaXMucm93X2NvdW50JTIhPTNEPTNEPQowKXtxLmNzcygiYmFja2dyb3VuZC1jb2xv
ciIsdGhpcy5kYXJrX3Jvd19jb2xvcil9aWYoby5sZW5ndGg9M0Q9M0Q9M0RwKXtfLmU9CmFjaChv
LGZ1bmN0aW9uKHMscil7cS5hcHBlbmQodGhpcy5fcmVuZGVyQ2VsbChzLHIpKX0sdGhpcyl9ZWxz
ZXtpZihvLmxlbmd0aD0KPnApe18uZWFjaChvLnNsaWNlKDAscC0xKSxmdW5jdGlvbihzLHIpe3Eu
YXBwZW5kKHRoaXMuX3JlbmRlckNlbGwocyxyKSl9LHRoPQppcyk7cS5hcHBlbmQodGhpcy5fcmVu
ZGVyQ2VsbChvLnNsaWNlKHAtMSkuam9pbigiXHQiKSxwLTEpKX1lbHNle2lmKHA+NSYmby49Cmxl
bmd0aD0zRD0zRD0zRHAtMSl7Xy5lYWNoKG8sZnVuY3Rpb24ocyxyKXtxLmFwcGVuZCh0aGlzLl9y
ZW5kZXJDZWxsKHMscikpfT0KLHRoaXMpO3EuYXBwZW5kKCQoIjx0ZD4iKSl9ZWxzZXtxLmFwcGVu
ZCh0aGlzLl9yZW5kZXJDZWxsKG4sMCxwKSl9fX10aGlzLnJvPQp3X2NvdW50Kys7cmV0dXJuIHF9
LF9yZW5kZXJDaHVuazpmdW5jdGlvbihuKXt2YXIgbz0zRHRoaXMuJGVsLmZpbmQoInRhYmxlIik9
CjtfLmVhY2gobi5ja19kYXRhLnNwbGl0KCJcbiIpLGZ1bmN0aW9uKHAscSl7aWYocCE9M0Q9M0Qi
Iil7by5hcHBlbmQodGhpcy5fcj0KZW5kZXJSb3cocCkpfX0sdGhpcyl9fSk7dmFyIGc9M0RhLmV4
dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbihuKXthLnByb3RvdHlwPQplLmluaXRpYWxpemUuY2Fs
bCh0aGlzLG4pO3Njcm9sbF9lbHQ9M0RfLmZpbmQodGhpcy4kZWwucGFyZW50cygpLGZ1bmN0aW9u
KG89Cil7cmV0dXJuICQobykuY3NzKCJvdmVyZmxvdyIpPTNEPTNEPTNEImF1dG8ifSk7aWYoIXNj
cm9sbF9lbHQpe3Njcm9sbF9lbHQ9Cj0zRHdpbmRvd310aGlzLnNjcm9sbF9lbHQ9M0QkKHNjcm9s
bF9lbHQpfSxzY3JvbGxlZF90b19ib3R0b206ZnVuY3Rpb24oKXtyZT0KdHVybih0aGlzLiRlbC5o
ZWlnaHQoKS10aGlzLnNjcm9sbF9lbHQuc2Nyb2xsVG9wKCktdGhpcy5zY3JvbGxfZWx0LmhlaWdo
dCgpPQo8PTNEMCl9fSk7dmFyIG09M0RhLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbihuKXth
LnByb3RvdHlwZS5pbml0aWFsaXplLmM9CmFsbCh0aGlzLG4pO3RoaXMuc2Nyb2xsX2VsdD0zRHRo
aXMuJGVsLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoicz0KY3JvbGwiLGhlaWdo
dDp0aGlzLm9wdGlvbnMuaGVpZ2h0fHwiNTAwcHgifSl9LHNjcm9sbGVkX3RvX2JvdHRvbTpmdW5j
dGlvbigpPQp7cmV0dXJuIHRoaXMuJGVsLnNjcm9sbFRvcCgpK3RoaXMuJGVsLmlubmVySGVpZ2h0
KCk+PTNEdGhpcy5lbC5zY3JvbGxIZWlnaHQ9Cn19KTt2YXIgZD0zREJhY2tib25lLlZpZXcuZXh0
ZW5kKHtjb2w6e2Nocm9tOm51bGwsc3RhcnQ6bnVsbCxlbmQ6bnVsbH0sdXJsXz0Kdml6Om51bGws
ZGF0YXNldF9pZDpudWxsLGdlbm9tZV9idWlsZDpudWxsLGZpbGVfZXh0Om51bGwsaW5pdGlhbGl6
ZTpmdW5jdGlvPQpuKHApe3ZhciBzPTNEcGFyZW50LkdhbGF4eTtpZihzJiZzLm1vZGFsKXt0aGlz
Lm1vZGFsPTNEcy5tb2RhbH1pZihzJiZzLmZyYW09CmUpe3RoaXMuZnJhbWU9M0RzLmZyYW1lfWlm
KCF0aGlzLm1vZGFsfHwhdGhpcy5mcmFtZSl7cmV0dXJufXZhciBvPTNEcC5tb2RlbD0KO3ZhciBy
PTNEby5nZXQoIm1ldGFkYXRhIik7aWYoIW8uZ2V0KCJmaWxlX2V4dCIpKXtyZXR1cm59dGhpcy5m
aWxlX2V4dD0zRG8uPQpnZXQoImZpbGVfZXh0Iik7aWYodGhpcy5maWxlX2V4dD0zRD0zRCJiZWQi
KXtpZihyLmdldCgiY2hyb21Db2wiKSYmci5nZXQoInM9CnRhcnRDb2wiKSYmci5nZXQoImVuZENv
bCIpKXt0aGlzLmNvbC5jaHJvbT0zRHIuZ2V0KCJjaHJvbUNvbCIpLTE7dGhpcy5jb2wucz0KdGFy
dD0zRHIuZ2V0KCJzdGFydENvbCIpLTE7dGhpcy5jb2wuZW5kPTNEci5nZXQoImVuZENvbCIpLTF9
ZWxzZXtjb25zb2xlLmxvPQpnKCJUYWJ1bGFyQnV0dG9uVHJhY2tzdGVyIDogQmVkLWZpbGUgbWV0
YWRhdGEgaW5jb21wbGV0ZS4iKTtyZXR1cm59fWlmKHRoaXM9Ci5maWxlX2V4dD0zRD0zRCJ2Y2Yi
KXtmdW5jdGlvbiBxKHUsdil7Zm9yKHZhciB0PTNEMDt0PHYubGVuZ3RoO3QrKyl7aWYodlt0XT0K
Lm1hdGNoKHUpKXtyZXR1cm4gdH19cmV0dXJuIC0xfXRoaXMuY29sLmNocm9tPTNEcSgiQ2hyb20i
LHIuZ2V0KCJjb2x1bW5fbmFtPQplcyIpKTt0aGlzLmNvbC5zdGFydD0zRHEoIlBvcyIsci5nZXQo
ImNvbHVtbl9uYW1lcyIpKTt0aGlzLmNvbC5lbmQ9M0RudWxsO2k9CmYodGhpcy5jb2wuY2hyb209
M0Q9M0QtMXx8dGhpcy5jb2wuc3RhcnQ9M0Q9M0QtMSl7Y29uc29sZS5sb2coIlRhYnVsYXJCdXR0
bz0KblRyYWNrc3RlciA6IFZDRi1maWxlIG1ldGFkYXRhIGluY29tcGxldGUuIik7cmV0dXJufX1p
Zih0aGlzLmNvbC5jaHJvbT0zRD0KPTNEPTNEdW5kZWZpbmVkKXtyZXR1cm59aWYoby5pZCl7dGhp
cy5kYXRhc2V0X2lkPTNEby5pZH1lbHNle2NvbnNvbGUubG9nKCJUPQphYnVsYXJCdXR0b25UcmFj
a3N0ZXIgOiBEYXRhc2V0IGlkZW50aWZpY2F0aW9uIGlzIG1pc3NpbmcuIik7cmV0dXJufWlmKG8u
Z2U9CnQoInVybF92aXoiKSl7dGhpcy51cmxfdml6PTNEby5nZXQoInVybF92aXoiKX1lbHNle2Nv
bnNvbGUubG9nKCJUYWJ1bGFyQnV0dD0Kb25UcmFja3N0ZXIgOiBVcmwgZm9yIHZpc3VhbGl6YXRp
b24gY29udHJvbGxlciBpcyBtaXNzaW5nLiIpO3JldHVybn1pZihvLmdlPQp0KCJnZW5vbWVfYnVp
bGQiKSl7dGhpcy5nZW5vbWVfYnVpbGQ9M0RvLmdldCgiZ2Vub21lX2J1aWxkIil9dmFyIG49M0Ru
ZXcgZi49Ckljb25CdXR0b25WaWV3KHttb2RlbDpuZXcgZi5JY29uQnV0dG9uKHt0aXRsZToiVmlz
dWFsaXplIixpY29uX2NsYXNzOiJjaGFydD0KX2N1cnZlIixpZDoiYnRuX3ZpeiJ9KX0pO3RoaXMu
c2V0RWxlbWVudChwLiRlbCk7dGhpcy4kZWwuYXBwZW5kKG4ucmVuZGVyKCkuPQokZWwpO3RoaXMu
aGlkZSgpfSxldmVudHM6eyJtb3VzZW92ZXIgdHIiOiJzaG93Iixtb3VzZWxlYXZlOiJoaWRlIn0s
c2hvdzpmdW49CmN0aW9uKHMpe2Z1bmN0aW9uIHIoeCl7cmV0dXJuICFpc05hTihwYXJzZUZsb2F0
KHgpKSYmaXNGaW5pdGUoeCl9aWYodGhpcy5jbz0KbC5jaHJvbT0zRD0zRD0zRG51bGwpe3JldHVy
bn12YXIgdz0zRCQocy50YXJnZXQpLnBhcmVudCgpO3ZhciB0PTNEdy5jaGlsZHJlPQpuKCkuZXEo
dGhpcy5jb2wuY2hyb20pLmh0bWwoKTt2YXIgbj0zRHcuY2hpbGRyZW4oKS5lcSh0aGlzLmNvbC5z
dGFydCkuaHRtbCg9Cik7dmFyIHA9M0R0aGlzLmNvbC5lbmQ/dy5jaGlsZHJlbigpLmVxKHRoaXMu
Y29sLmVuZCkuaHRtbCgpOm47aWYoIXQubWF0Y2goIj0KXiMiKSYmdCE9M0Q9M0QiIiYmcihuKSl7
dmFyIHY9M0R7ZGF0YXNldF9pZDp0aGlzLmRhdGFzZXRfaWQsZ2VuZV9yZWdpb246dCsiPQo6Iitu
KyItIitwfTt2YXIgcT0zRHcub2Zmc2V0KCk7dmFyIG89M0RxLmxlZnQtMTA7dmFyIHU9M0RxLnRv
cC0kKHdpbmRvdykuc2M9CnJvbGxUb3AoKSszOyQoIiNidG5fdml6IikuY3NzKHtwb3NpdGlvbjoi
Zml4ZWQiLHRvcDp1KyJweCIsbGVmdDpvKyJweCJ9KTskKD0KIiNidG5fdml6Iikub2ZmKCJjbGlj
ayIpOyQoIiNidG5fdml6IikuY2xpY2sodGhpcy5jcmVhdGVfdHJhY2tzdGVyX2FjdGlvbih0PQpo
aXMudXJsX3Zpeix2LHRoaXMuZ2Vub21lX2J1aWxkKSk7JCgiI2J0bl92aXoiKS5zaG93KCl9ZWxz
ZXskKCIjYnRuX3ZpeiIpLmg9CmlkZSgpfX0saGlkZTpmdW5jdGlvbigpe3RoaXMuJGVsLmZpbmQo
IiNidG5fdml6IikuaGlkZSgpfSxjcmVhdGVfdHJhY2tzdGVyXz0KYWN0aW9uOmZ1bmN0aW9uKG4s
cSxwKXt2YXIgbz0zRHRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9M0R7fTtpZihwKXtyWyJm
PQotZGJrZXkiXT0zRHB9JC5hamF4KHt1cmw6bisiL2xpc3RfdHJhY2tzPyIrJC5wYXJhbShyKSxk
YXRhVHlwZToiaHRtbCIsZXJyb3I9CjpmdW5jdGlvbigpe28ubW9kYWwuc2hvdyh7dGl0bGU6IlNv
bWV0aGluZyB3ZW50IHdyb25nISIsYm9keToiVW5mb3J0dW5hdGVseT0KIHdlIGNvdWxkIG5vdCBh
ZGQgdGhpcyBkYXRhc2V0IHRvIHRoZSB0cmFjayBicm93c2VyLiBQbGVhc2UgdHJ5IGFnYWluIG9y
IGNvPQpudGFjdCB1cy4iLGJ1dHRvbnM6e0NhbmNlbDpmdW5jdGlvbigpe28ubW9kYWwuaGlkZSgp
fX19KX0sc3VjY2VzczpmdW5jdGlvbig9CnMpe28ubW9kYWwuc2hvdyh7dGl0bGU6IlZpZXcgRGF0
YSBpbiBhIE5ldyBvciBTYXZlZCBWaXN1YWxpemF0aW9uIixidXR0b25zOj0Ke0NhbmNlbDpmdW5j
dGlvbigpe28ubW9kYWwuaGlkZSgpfSwiVmlldyBpbiBzYXZlZCB2aXN1YWxpemF0aW9uIjpmdW5j
dGlvbigpPQp7by5tb2RhbC5zaG93KHt0aXRsZToiQWRkIERhdGEgdG8gU2F2ZWQgVmlzdWFsaXph
dGlvbiIsYm9keTpzLGJ1dHRvbnM6e0NhbmM9CmVsOmZ1bmN0aW9uKCl7by5tb2RhbC5oaWRlKCl9
LCJBZGQgdG8gdmlzdWFsaXphdGlvbiI6ZnVuY3Rpb24oKXtvLm1vZGFsLmhpZD0KZSgpO28ubW9k
YWwuJGVsLmZpbmQoImlucHV0W25hbWU9M0RpZF06Y2hlY2tlZCIpLmVhY2goZnVuY3Rpb24oKXt2
YXIgdD0zRCQoPQp0aGlzKS52YWwoKTtxLmlkPTNEdDtvLmZyYW1lLmFkZCh7dGl0bGU6IlRyYWNr
c3RlciIsdHlwZToidXJsIixjb250ZW50Om4rIi89CnRyYWNrc3Rlcj8iKyQucGFyYW0ocSl9KX0p
fX19KX0sIlZpZXcgaW4gbmV3IHZpc3VhbGl6YXRpb24iOmZ1bmN0aW9uKCl7by5tbz0KZGFsLmhp
ZGUoKTtvLmZyYW1lLmFkZCh7dGl0bGU6IlRyYWNrc3RlciIsdHlwZToidXJsIixjb250ZW50Om4r
Ii90cmFja3N0ZXI/PQoiKyQucGFyYW0ocSl9KX19fSl9fSk7cmV0dXJuIGZhbHNlfX19KTt2YXIg
bD0zRGZ1bmN0aW9uKHEsbyxyLG4pe3ZhciBwPTNEbmU9Cncgbyh7bW9kZWw6bmV3IHEocil9KTtw
LnJlbmRlcigpO2lmKG4pe24uYXBwZW5kKHAuJGVsKX1yZXR1cm4gcH07dmFyIGM9M0RmdT0KbmN0
aW9uKHApe2lmKCFwLm1vZGVsKXtwLm1vZGVsPTNEbmV3IGkocC5kYXRhc2V0X2NvbmZpZyl9dmFy
IG89M0RwLnBhcmVudF9lPQpsdDt2YXIgcT0zRHAuZW1iZWRkZWQ7ZGVsZXRlIHAuZW1iZWRkZWQ7
ZGVsZXRlIHAucGFyZW50X2VsdDtkZWxldGUgcC5kYXRhc2U9CnRfY29uZmlnO3ZhciBuPTNEKHE/
bmV3IG0ocCk6bmV3IGcocCkpO24ucmVuZGVyKCk7aWYobyl7by5hcHBlbmQobi4kZWwpO24uZT0K
eHBhbmRfdG9fY29udGFpbmVyKCl9cmV0dXJuIG59O3JldHVybntEYXRhc2V0OmIsVGFidWxhckRh
dGFzZXQ6aSxEYXRhc2V0Q29sPQpsZWN0aW9uOmUsVGFidWxhckRhdGFzZXRDaHVua2VkVmlldzph
LGNyZWF0ZVRhYnVsYXJEYXRhc2V0Q2h1bmtlZFZpZXc6Y319KTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCgoKaHR0cHM6Ly9iaXRidWNrZXQub3JnL2dhbGF4eS9nYWxheHktY2VudHJhbC9j
b21taXRzLzM2NDU3Y2MxZWMyNi8KQ2hhbmdlc2V0OiAgIDM2NDU3Y2MxZWMyNgpVc2VyOiAgICAg
ICAgZGFubm9uCkRhdGU6ICAgICAgICAyMDE0LTEyLTE1IDE0OjQ3OjQ1KzAwOjAwClN1bW1hcnk6
ICAgICBTd2FwIHRhYnVsYXIgcmVuZGVyaW5nIGZyb20gdXNpbmcgaW5saW5lIGNzcyB0byBhcHBs
eWluZyBzdHlsZT0KcyBmb3Igcm93L2hlYWRlci4KQWZmZWN0ZWQgIzogIDUgZmlsZXMKCmRpZmYg
LXIgOGVjNjkwNTI2MDBhMmM5MTVmODhkMzE4NTg4NGExODVlODIwODZkMSAtciAzNjQ1N2NjMWVj
MjZjNDQwZTdhOTk2Yz0KZTUxZWI4N2VkN2M1OGNjNGQgY2xpZW50L2dhbGF4eS9zY3JpcHRzL212
Yy9kYXRhLmpzCi0tLSBhL2NsaWVudC9nYWxheHkvc2NyaXB0cy9tdmMvZGF0YS5qcworKysgYi9j
bGllbnQvZ2FsYXh5L3NjcmlwdHMvbXZjL2RhdGEuanMKQEAgLTEyOCwxMCArMTI4LDYgQEAKICAg
ICAgICAgdGhpcy5yb3dfY291bnQgPTNEIDA7CiAgICAgICAgIHRoaXMubG9hZGluZ19jaHVuayA9
M0QgZmFsc2U7Cj0yMAotICAgICAgICAvLyBDU1MgY29sb3JzIHVzZWQgaW4gdGFibGUuCi0gICAg
ICAgIHRoaXMuaGVhZGVyX2NvbG9yID0zRCAnI0FBQSc7Ci0gICAgICAgIHRoaXMuZGFya19yb3df
Y29sb3IgPTNEICcjREREJzsKLQogICAgICAgICAvLyBsb2FkIHRyYWNrc3RlciBidXR0b24KICAg
ICAgICAgbmV3IFRhYnVsYXJCdXR0b25UcmFja3N0ZXJWaWV3KHsKICAgICAgICAgICAgIG1vZGVs
ICAgOiBvcHRpb25zLm1vZGVsLApAQCAtMTczLDcgKzE2OSw3IEBACiAgICAgICAgIH0pOwogICAg
ICAgICB0aGlzLiRlbC5hcHBlbmQoZGF0YV90YWJsZSk7CiAgICAgICAgIHZhciBjb2x1bW5fbmFt
ZXMgPTNEIHRoaXMubW9kZWwuZ2V0X21ldGFkYXRhKCdjb2x1bW5fbmFtZXMnKSwKLSAgICAgICAg
ICAgIGhlYWRlcl9yb3cgPTNEICQoJzx0ci8+JykuY3NzKCdiYWNrZ3JvdW5kLWNvbG9yJywgdGhp
cy5oZWFkZXJfPQpjb2xvcikuYXBwZW5kVG8oZGF0YV90YWJsZSk7CisgICAgICAgICAgICBoZWFk
ZXJfcm93ID0zRCAkKCc8dHIvPicpLmFwcGVuZFRvKGRhdGFfdGFibGUpOwogICAgICAgICBpZiAo
Y29sdW1uX25hbWVzKSB7CiAgICAgICAgICAgICBoZWFkZXJfcm93LmFwcGVuZCgnPHRoPicgKyBj
b2x1bW5fbmFtZXMuam9pbignPC90aD48dGg+JykgKyAnPD0KL3RoPicpOwogICAgICAgICB9IGVs
c2UgewpAQCAtMjM2LDcgKzIzMiw3IEBACiAgICAgICAgICAgICBudW1fY29sdW1ucyA9M0QgdGhp
cy5tb2RlbC5nZXRfbWV0YWRhdGEoJ2NvbHVtbnMnKTsKPTIwCiAgICAgICAgIGlmICh0aGlzLnJv
d19jb3VudCAlIDIgIT0zRD0zRCAwKSB7Ci0gICAgICAgICAgICByb3cuY3NzKCdiYWNrZ3JvdW5k
LWNvbG9yJywgdGhpcy5kYXJrX3Jvd19jb2xvcik7CisgICAgICAgICAgICByb3cuYWRkQ2xhc3Mo
J2Rhcmtfcm93Jyk7CiAgICAgICAgIH0KPTIwCiAgICAgICAgIGlmIChjZWxscy5sZW5ndGggPTNE
PTNEPTNEIG51bV9jb2x1bW5zKSB7CgpkaWZmIC1yIDhlYzY5MDUyNjAwYTJjOTE1Zjg4ZDMxODU4
ODRhMTg1ZTgyMDg2ZDEgLXIgMzY0NTdjYzFlYzI2YzQ0MGU3YTk5NmM9CmU1MWViODdlZDdjNThj
YzRkIHN0YXRpYy9zY3JpcHRzL212Yy9kYXRhLmpzCi0tLSBhL3N0YXRpYy9zY3JpcHRzL212Yy9k
YXRhLmpzCisrKyBiL3N0YXRpYy9zY3JpcHRzL212Yy9kYXRhLmpzCkBAIC0xMjgsMTAgKzEyOCw2
IEBACiAgICAgICAgIHRoaXMucm93X2NvdW50ID0zRCAwOwogICAgICAgICB0aGlzLmxvYWRpbmdf
Y2h1bmsgPTNEIGZhbHNlOwo9MjAKLSAgICAgICAgLy8gQ1NTIGNvbG9ycyB1c2VkIGluIHRhYmxl
LgotICAgICAgICB0aGlzLmhlYWRlcl9jb2xvciA9M0QgJyNBQUEnOwotICAgICAgICB0aGlzLmRh
cmtfcm93X2NvbG9yID0zRCAnI0RERCc7Ci0KICAgICAgICAgLy8gbG9hZCB0cmFja3N0ZXIgYnV0
dG9uCiAgICAgICAgIG5ldyBUYWJ1bGFyQnV0dG9uVHJhY2tzdGVyVmlldyh7CiAgICAgICAgICAg
ICBtb2RlbCAgIDogb3B0aW9ucy5tb2RlbCwKQEAgLTE3Myw3ICsxNjksNyBAQAogICAgICAgICB9
KTsKICAgICAgICAgdGhpcy4kZWwuYXBwZW5kKGRhdGFfdGFibGUpOwogICAgICAgICB2YXIgY29s
dW1uX25hbWVzID0zRCB0aGlzLm1vZGVsLmdldF9tZXRhZGF0YSgnY29sdW1uX25hbWVzJyksCi0g
ICAgICAgICAgICBoZWFkZXJfcm93ID0zRCAkKCc8dHIvPicpLmNzcygnYmFja2dyb3VuZC1jb2xv
cicsIHRoaXMuaGVhZGVyXz0KY29sb3IpLmFwcGVuZFRvKGRhdGFfdGFibGUpOworICAgICAgICAg
ICAgaGVhZGVyX3JvdyA9M0QgJCgnPHRyLz4nKS5hcHBlbmRUbyhkYXRhX3RhYmxlKTsKICAgICAg
ICAgaWYgKGNvbHVtbl9uYW1lcykgewogICAgICAgICAgICAgaGVhZGVyX3Jvdy5hcHBlbmQoJzx0
aD4nICsgY29sdW1uX25hbWVzLmpvaW4oJzwvdGg+PHRoPicpICsgJzw9Ci90aD4nKTsKICAgICAg
ICAgfSBlbHNlIHsKQEAgLTIzNiw3ICsyMzIsNyBAQAogICAgICAgICAgICAgbnVtX2NvbHVtbnMg
PTNEIHRoaXMubW9kZWwuZ2V0X21ldGFkYXRhKCdjb2x1bW5zJyk7Cj0yMAogICAgICAgICBpZiAo
dGhpcy5yb3dfY291bnQgJSAyICE9M0Q9M0QgMCkgewotICAgICAgICAgICAgcm93LmNzcygnYmFj
a2dyb3VuZC1jb2xvcicsIHRoaXMuZGFya19yb3dfY29sb3IpOworICAgICAgICAgICAgcm93LmFk
ZENsYXNzKCdkYXJrX3JvdycpOwogICAgICAgICB9Cj0yMAogICAgICAgICBpZiAoY2VsbHMubGVu
Z3RoID0zRD0zRD0zRCBudW1fY29sdW1ucykgewoKZGlmZiAtciA4ZWM2OTA1MjYwMGEyYzkxNWY4
OGQzMTg1ODg0YTE4NWU4MjA4NmQxIC1yIDM2NDU3Y2MxZWMyNmM0NDBlN2E5OTZjPQplNTFlYjg3
ZWQ3YzU4Y2M0ZCBzdGF0aWMvc2NyaXB0cy9wYWNrZWQvbXZjL2RhdGEuanMKLS0tIGEvc3RhdGlj
L3NjcmlwdHMvcGFja2VkL212Yy9kYXRhLmpzCisrKyBiL3N0YXRpYy9zY3JpcHRzL3BhY2tlZC9t
dmMvZGF0YS5qcwpAQCAtMSwxICsxLDEgQEAKLWRlZmluZShbIm12Yy91aS91aS1tb2RhbCIsIm12
Yy91aS91aS1mcmFtZXMiLCJtdmMvdWkvaWNvbi1idXR0b24iXSxmdW5jdGlvPQpuKGssaixmKXt2
YXIgaD0zREJhY2tib25lLk1vZGVsLmV4dGVuZCh7fSk7dmFyIGI9M0RCYWNrYm9uZS5Nb2RlbC5l
eHRlbmQoe2Q9CmVmYXVsdHM6e2lkOiIiLHR5cGU6IiIsbmFtZToiIixoZGFfbGRkYToiaGRhIixt
ZXRhZGF0YTpudWxsfSxpbml0aWFsaXplOmZ1bj0KY3Rpb24oKXtpZighdGhpcy5nZXQoIm1ldGFk
YXRhIikpe3RoaXMuX3NldF9tZXRhZGF0YSgpfXRoaXMub24oImNoYW5nZSIsdGhpPQpzLl9zZXRf
bWV0YWRhdGEsdGhpcyl9LF9zZXRfbWV0YWRhdGE6ZnVuY3Rpb24oKXt2YXIgbj0zRG5ldyBoKCk7
Xy5lYWNoKF8ua2U9CnlzKHRoaXMuYXR0cmlidXRlcyksZnVuY3Rpb24obyl7aWYoby5pbmRleE9m
KCJtZXRhZGF0YV8iKT0zRD0zRD0zRDApe3ZhciBwPQo9M0RvLnNwbGl0KCJtZXRhZGF0YV8iKVsx
XTtuLnNldChwLHRoaXMuYXR0cmlidXRlc1tvXSk7ZGVsZXRlIHRoaXMuYXR0cmlidXQ9CmVzW29d
fX0sdGhpcyk7dGhpcy5zZXQoIm1ldGFkYXRhIixuLHtzaWxlbnQ6dHJ1ZX0pfSxnZXRfbWV0YWRh
dGE6ZnVuY3Rpb24obj0KKXtyZXR1cm4gdGhpcy5hdHRyaWJ1dGVzLm1ldGFkYXRhLmdldChuKX0s
dXJsUm9vdDpnYWxheHlfY29uZmlnLnJvb3QrImFwaS9kPQphdGFzZXRzIn0pO3ZhciBpPTNEYi5l
eHRlbmQoe2RlZmF1bHRzOl8uZXh0ZW5kKHt9LGIucHJvdG90eXBlLmRlZmF1bHRzLHtjaHU9Cm5r
X3VybDpudWxsLGZpcnN0X2RhdGFfY2h1bms6bnVsbCxjaHVua19pbmRleDotMSxhdF9lb2Y6ZmFs
c2V9KSxpbml0aWFsaXplOj0KZnVuY3Rpb24obil7Yi5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxs
KHRoaXMpO3RoaXMuYXR0cmlidXRlcy5jaHVua19pbmRleD0KPTNEKHRoaXMuYXR0cmlidXRlcy5m
aXJzdF9kYXRhX2NodW5rPzE6MCk7dGhpcy5hdHRyaWJ1dGVzLmNodW5rX3VybD0zRGdhbGF4PQp5
X2NvbmZpZy5yb290KyJkYXRhc2V0L2Rpc3BsYXk/ZGF0YXNldF9pZD0zRCIrdGhpcy5pZDt0aGlz
LmF0dHJpYnV0ZXMudXJsX3Y9Cml6PTNEZ2FsYXh5X2NvbmZpZy5yb290KyJ2aXN1YWxpemF0aW9u
In0sZ2V0X25leHRfY2h1bms6ZnVuY3Rpb24oKXtpZih0aGlzLj0KYXR0cmlidXRlcy5hdF9lb2Yp
e3JldHVybiBudWxsfXZhciBuPTNEdGhpcyxvPTNEJC5EZWZlcnJlZCgpOyQuZ2V0SlNPTih0aGlz
PQouYXR0cmlidXRlcy5jaHVua191cmwse2NodW5rOm4uYXR0cmlidXRlcy5jaHVua19pbmRleCsr
fSkuc3VjY2VzcyhmdW5jdGlvbig9CnApe3ZhciBxO2lmKHAuY2tfZGF0YSE9M0Q9M0QiIil7cT0z
RHB9ZWxzZXtuLmF0dHJpYnV0ZXMuYXRfZW9mPTNEdHJ1ZTtxPTNEbj0KdWxsfW8ucmVzb2x2ZShx
KX0pO3JldHVybiBvfX0pO3ZhciBlPTNEQmFja2JvbmUuQ29sbGVjdGlvbi5leHRlbmQoe21vZGVs
OmJ9PQopO3ZhciBhPTNEQmFja2JvbmUuVmlldy5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24o
bil7dGhpcy5yb3dfY291bnQ9M0QwO3Q9Cmhpcy5sb2FkaW5nX2NodW5rPTNEZmFsc2U7dGhpcy5o
ZWFkZXJfY29sb3I9M0QiI0FBQSI7dGhpcy5kYXJrX3Jvd19jb2xvcj0zRD0KIiNEREQiO25ldyBk
KHttb2RlbDpuLm1vZGVsLCRlbDp0aGlzLiRlbH0pfSxleHBhbmRfdG9fY29udGFpbmVyOmZ1bmN0
aW9uKCl7PQppZih0aGlzLiRlbC5oZWlnaHQoKTx0aGlzLnNjcm9sbF9lbHQuaGVpZ2h0KCkpe3Ro
aXMuYXR0ZW1wdF90b19mZXRjaCgpfX0sYXQ9CnRlbXB0X3RvX2ZldGNoOmZ1bmN0aW9uKG8pe3Zh
ciBuPTNEdGhpcztpZighdGhpcy5sb2FkaW5nX2NodW5rJiZ0aGlzLnNjcm9sbD0KZWRfdG9fYm90
dG9tKCkpe3RoaXMubG9hZGluZ19jaHVuaz0zRHRydWU7dGhpcy5sb2FkaW5nX2luZGljYXRvci5z
aG93KCk7JC53PQpoZW4obi5tb2RlbC5nZXRfbmV4dF9jaHVuaygpKS50aGVuKGZ1bmN0aW9uKHAp
e2lmKHApe24uX3JlbmRlckNodW5rKHApO24ubG89CmFkaW5nX2NodW5rPTNEZmFsc2V9bi5sb2Fk
aW5nX2luZGljYXRvci5oaWRlKCk7bi5leHBhbmRfdG9fY29udGFpbmVyKCl9KX19LD0KcmVuZGVy
OmZ1bmN0aW9uKCl7dGhpcy5sb2FkaW5nX2luZGljYXRvcj0zRCQoIjxkaXYvPiIpLmF0dHIoImlk
IiwibG9hZGluZ19pPQpuZGljYXRvciIpO3RoaXMuJGVsLmFwcGVuZCh0aGlzLmxvYWRpbmdfaW5k
aWNhdG9yKTt2YXIgcj0zRCQoIjx0YWJsZS8+IikuYXQ9CnRyKHtpZDoiY29udGVudF90YWJsZSIs
Y2VsbHBhZGRpbmc6MH0pO3RoaXMuJGVsLmFwcGVuZChyKTt2YXIgbj0zRHRoaXMubW9kZT0KbC5n
ZXRfbWV0YWRhdGEoImNvbHVtbl9uYW1lcyIpLHM9M0QkKCI8dHIvPiIpLmNzcygiYmFja2dyb3Vu
ZC1jb2xvciIsdGhpcy5oPQplYWRlcl9jb2xvcikuYXBwZW5kVG8ocik7aWYobil7cy5hcHBlbmQo
Ijx0aD4iK24uam9pbigiPC90aD48dGg+IikrIjwvdGg+Iik9Cn1lbHNle2Zvcih2YXIgcT0zRDE7
cTw9M0R0aGlzLm1vZGVsLmdldF9tZXRhZGF0YSgiY29sdW1ucyIpO3ErKyl7cy5hcHBlbmQoIj0K
PHRoPiIrcSsiPC90aD4iKX19dmFyIHA9M0R0aGlzLG89M0R0aGlzLm1vZGVsLmdldCgiZmlyc3Rf
ZGF0YV9jaHVuayIpO2lmKG8pPQp7dGhpcy5fcmVuZGVyQ2h1bmsobyl9ZWxzZXskLndoZW4ocC5t
b2RlbC5nZXRfbmV4dF9jaHVuaygpKS50aGVuKGZ1bmN0aW9uKHQ9Cil7cC5fcmVuZGVyQ2h1bmso
dCl9KX10aGlzLnNjcm9sbF9lbHQuc2Nyb2xsKGZ1bmN0aW9uKCl7cC5hdHRlbXB0X3RvX2ZldGNo
KD0KKX0pfSxzY3JvbGxlZF90b19ib3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2V9LF9yZW5k
ZXJDZWxsOmZ1bmN0aW9uKHEsbixyPQope3ZhciBvPTNEJCgiPHRkPiIpLnRleHQocSk7dmFyIHA9
M0R0aGlzLm1vZGVsLmdldF9tZXRhZGF0YSgiY29sdW1uX3R5cGVzIik9CjtpZihyIT0zRD0zRHVu
ZGVmaW5lZCl7by5hdHRyKCJjb2xzcGFuIixyKS5hZGRDbGFzcygic3RyaW5nYWxpZ24iKX1lbHNl
e2lmKD0KcCl7aWYobjxwLmxlbmd0aCl7aWYocFtuXT0zRD0zRD0zRCJzdHIifHxwW25dPTNEPTNE
PTNEImxpc3QiKXtvLmFkZENsYXNzKCJzPQp0cmluZ2FsaWduIil9fX19cmV0dXJuIG99LF9yZW5k
ZXJSb3c6ZnVuY3Rpb24obil7dmFyIG89M0RuLnNwbGl0KCJcdCIpLHE9M0Q9CiQoIjx0cj4iKSxw
PTNEdGhpcy5tb2RlbC5nZXRfbWV0YWRhdGEoImNvbHVtbnMiKTtpZih0aGlzLnJvd19jb3VudCUy
IT0zRD0zRD0KMCl7cS5jc3MoImJhY2tncm91bmQtY29sb3IiLHRoaXMuZGFya19yb3dfY29sb3Ip
fWlmKG8ubGVuZ3RoPTNEPTNEPTNEcCl7Xy5lPQphY2gobyxmdW5jdGlvbihzLHIpe3EuYXBwZW5k
KHRoaXMuX3JlbmRlckNlbGwocyxyKSl9LHRoaXMpfWVsc2V7aWYoby5sZW5ndGg9Cj5wKXtfLmVh
Y2goby5zbGljZSgwLHAtMSksZnVuY3Rpb24ocyxyKXtxLmFwcGVuZCh0aGlzLl9yZW5kZXJDZWxs
KHMscikpfSx0aD0KaXMpO3EuYXBwZW5kKHRoaXMuX3JlbmRlckNlbGwoby5zbGljZShwLTEpLmpv
aW4oIlx0IikscC0xKSl9ZWxzZXtpZihwPjUmJm8uPQpsZW5ndGg9M0Q9M0Q9M0RwLTEpe18uZWFj
aChvLGZ1bmN0aW9uKHMscil7cS5hcHBlbmQodGhpcy5fcmVuZGVyQ2VsbChzLHIpKX09Cix0aGlz
KTtxLmFwcGVuZCgkKCI8dGQ+IikpfWVsc2V7cS5hcHBlbmQodGhpcy5fcmVuZGVyQ2VsbChuLDAs
cCkpfX19dGhpcy5ybz0Kd19jb3VudCsrO3JldHVybiBxfSxfcmVuZGVyQ2h1bms6ZnVuY3Rpb24o
bil7dmFyIG89M0R0aGlzLiRlbC5maW5kKCJ0YWJsZSIpPQo7Xy5lYWNoKG4uY2tfZGF0YS5zcGxp
dCgiXG4iKSxmdW5jdGlvbihwLHEpe2lmKHAhPTNEPTNEIiIpe28uYXBwZW5kKHRoaXMuX3I9CmVu
ZGVyUm93KHApKX19LHRoaXMpfX0pO3ZhciBnPTNEYS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rp
b24obil7YS5wcm90b3R5cD0KZS5pbml0aWFsaXplLmNhbGwodGhpcyxuKTtzY3JvbGxfZWx0PTNE
Xy5maW5kKHRoaXMuJGVsLnBhcmVudHMoKSxmdW5jdGlvbihvPQope3JldHVybiAkKG8pLmNzcygi
b3ZlcmZsb3ciKT0zRD0zRD0zRCJhdXRvIn0pO2lmKCFzY3JvbGxfZWx0KXtzY3JvbGxfZWx0PQo9
M0R3aW5kb3d9dGhpcy5zY3JvbGxfZWx0PTNEJChzY3JvbGxfZWx0KX0sc2Nyb2xsZWRfdG9fYm90
dG9tOmZ1bmN0aW9uKCl7cmU9CnR1cm4odGhpcy4kZWwuaGVpZ2h0KCktdGhpcy5zY3JvbGxfZWx0
LnNjcm9sbFRvcCgpLXRoaXMuc2Nyb2xsX2VsdC5oZWlnaHQoKT0KPD0zRDApfX0pO3ZhciBtPTNE
YS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24obil7YS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5j
PQphbGwodGhpcyxuKTt0aGlzLnNjcm9sbF9lbHQ9M0R0aGlzLiRlbC5jc3Moe3Bvc2l0aW9uOiJy
ZWxhdGl2ZSIsb3ZlcmZsb3c6InM9CmNyb2xsIixoZWlnaHQ6dGhpcy5vcHRpb25zLmhlaWdodHx8
IjUwMHB4In0pfSxzY3JvbGxlZF90b19ib3R0b206ZnVuY3Rpb24oKT0Ke3JldHVybiB0aGlzLiRl
bC5zY3JvbGxUb3AoKSt0aGlzLiRlbC5pbm5lckhlaWdodCgpPj0zRHRoaXMuZWwuc2Nyb2xsSGVp
Z2h0PQp9fSk7dmFyIGQ9M0RCYWNrYm9uZS5WaWV3LmV4dGVuZCh7Y29sOntjaHJvbTpudWxsLHN0
YXJ0Om51bGwsZW5kOm51bGx9LHVybF89CnZpejpudWxsLGRhdGFzZXRfaWQ6bnVsbCxnZW5vbWVf
YnVpbGQ6bnVsbCxmaWxlX2V4dDpudWxsLGluaXRpYWxpemU6ZnVuY3Rpbz0KbihwKXt2YXIgcz0z
RHBhcmVudC5HYWxheHk7aWYocyYmcy5tb2RhbCl7dGhpcy5tb2RhbD0zRHMubW9kYWx9aWYocyYm
cy5mcmFtPQplKXt0aGlzLmZyYW1lPTNEcy5mcmFtZX1pZighdGhpcy5tb2RhbHx8IXRoaXMuZnJh
bWUpe3JldHVybn12YXIgbz0zRHAubW9kZWw9Cjt2YXIgcj0zRG8uZ2V0KCJtZXRhZGF0YSIpO2lm
KCFvLmdldCgiZmlsZV9leHQiKSl7cmV0dXJufXRoaXMuZmlsZV9leHQ9M0RvLj0KZ2V0KCJmaWxl
X2V4dCIpO2lmKHRoaXMuZmlsZV9leHQ9M0Q9M0QiYmVkIil7aWYoci5nZXQoImNocm9tQ29sIikm
JnIuZ2V0KCJzPQp0YXJ0Q29sIikmJnIuZ2V0KCJlbmRDb2wiKSl7dGhpcy5jb2wuY2hyb209M0Ry
LmdldCgiY2hyb21Db2wiKS0xO3RoaXMuY29sLnM9CnRhcnQ9M0RyLmdldCgic3RhcnRDb2wiKS0x
O3RoaXMuY29sLmVuZD0zRHIuZ2V0KCJlbmRDb2wiKS0xfWVsc2V7Y29uc29sZS5sbz0KZygiVGFi
dWxhckJ1dHRvblRyYWNrc3RlciA6IEJlZC1maWxlIG1ldGFkYXRhIGluY29tcGxldGUuIik7cmV0
dXJufX1pZih0aGlzPQouZmlsZV9leHQ9M0Q9M0QidmNmIil7ZnVuY3Rpb24gcSh1LHYpe2Zvcih2
YXIgdD0zRDA7dDx2Lmxlbmd0aDt0Kyspe2lmKHZbdF09Ci5tYXRjaCh1KSl7cmV0dXJuIHR9fXJl
dHVybiAtMX10aGlzLmNvbC5jaHJvbT0zRHEoIkNocm9tIixyLmdldCgiY29sdW1uX25hbT0KZXMi
KSk7dGhpcy5jb2wuc3RhcnQ9M0RxKCJQb3MiLHIuZ2V0KCJjb2x1bW5fbmFtZXMiKSk7dGhpcy5j
b2wuZW5kPTNEbnVsbDtpPQpmKHRoaXMuY29sLmNocm9tPTNEPTNELTF8fHRoaXMuY29sLnN0YXJ0
PTNEPTNELTEpe2NvbnNvbGUubG9nKCJUYWJ1bGFyQnV0dG89Cm5UcmFja3N0ZXIgOiBWQ0YtZmls
ZSBtZXRhZGF0YSBpbmNvbXBsZXRlLiIpO3JldHVybn19aWYodGhpcy5jb2wuY2hyb209M0Q9Cj0z
RD0zRHVuZGVmaW5lZCl7cmV0dXJufWlmKG8uaWQpe3RoaXMuZGF0YXNldF9pZD0zRG8uaWR9ZWxz
ZXtjb25zb2xlLmxvZygiVD0KYWJ1bGFyQnV0dG9uVHJhY2tzdGVyIDogRGF0YXNldCBpZGVudGlm
aWNhdGlvbiBpcyBtaXNzaW5nLiIpO3JldHVybn1pZihvLmdlPQp0KCJ1cmxfdml6Iikpe3RoaXMu
dXJsX3Zpej0zRG8uZ2V0KCJ1cmxfdml6Iil9ZWxzZXtjb25zb2xlLmxvZygiVGFidWxhckJ1dHQ9
Cm9uVHJhY2tzdGVyIDogVXJsIGZvciB2aXN1YWxpemF0aW9uIGNvbnRyb2xsZXIgaXMgbWlzc2lu
Zy4iKTtyZXR1cm59aWYoby5nZT0KdCgiZ2Vub21lX2J1aWxkIikpe3RoaXMuZ2Vub21lX2J1aWxk
PTNEby5nZXQoImdlbm9tZV9idWlsZCIpfXZhciBuPTNEbmV3IGYuPQpJY29uQnV0dG9uVmlldyh7
bW9kZWw6bmV3IGYuSWNvbkJ1dHRvbih7dGl0bGU6IlZpc3VhbGl6ZSIsaWNvbl9jbGFzczoiY2hh
cnQ9Cl9jdXJ2ZSIsaWQ6ImJ0bl92aXoifSl9KTt0aGlzLnNldEVsZW1lbnQocC4kZWwpO3RoaXMu
JGVsLmFwcGVuZChuLnJlbmRlcigpLj0KJGVsKTt0aGlzLmhpZGUoKX0sZXZlbnRzOnsibW91c2Vv
dmVyIHRyIjoic2hvdyIsbW91c2VsZWF2ZToiaGlkZSJ9LHNob3c6ZnVuPQpjdGlvbihzKXtmdW5j
dGlvbiByKHgpe3JldHVybiAhaXNOYU4ocGFyc2VGbG9hdCh4KSkmJmlzRmluaXRlKHgpfWlmKHRo
aXMuY289CmwuY2hyb209M0Q9M0Q9M0RudWxsKXtyZXR1cm59dmFyIHc9M0QkKHMudGFyZ2V0KS5w
YXJlbnQoKTt2YXIgdD0zRHcuY2hpbGRyZT0KbigpLmVxKHRoaXMuY29sLmNocm9tKS5odG1sKCk7
dmFyIG49M0R3LmNoaWxkcmVuKCkuZXEodGhpcy5jb2wuc3RhcnQpLmh0bWwoPQopO3ZhciBwPTNE
dGhpcy5jb2wuZW5kP3cuY2hpbGRyZW4oKS5lcSh0aGlzLmNvbC5lbmQpLmh0bWwoKTpuO2lmKCF0
Lm1hdGNoKCI9Cl4jIikmJnQhPTNEPTNEIiImJnIobikpe3ZhciB2PTNEe2RhdGFzZXRfaWQ6dGhp
cy5kYXRhc2V0X2lkLGdlbmVfcmVnaW9uOnQrIj0KOiIrbisiLSIrcH07dmFyIHE9M0R3Lm9mZnNl
dCgpO3ZhciBvPTNEcS5sZWZ0LTEwO3ZhciB1PTNEcS50b3AtJCh3aW5kb3cpLnNjPQpyb2xsVG9w
KCkrMzskKCIjYnRuX3ZpeiIpLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6dSsicHgiLGxlZnQ6
bysicHgifSk7JCg9CiIjYnRuX3ZpeiIpLm9mZigiY2xpY2siKTskKCIjYnRuX3ZpeiIpLmNsaWNr
KHRoaXMuY3JlYXRlX3RyYWNrc3Rlcl9hY3Rpb24odD0KaGlzLnVybF92aXosdix0aGlzLmdlbm9t
ZV9idWlsZCkpOyQoIiNidG5fdml6Iikuc2hvdygpfWVsc2V7JCgiI2J0bl92aXoiKS5oPQppZGUo
KX19LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLiRlbC5maW5kKCIjYnRuX3ZpeiIpLmhpZGUoKX0sY3Jl
YXRlX3RyYWNrc3Rlcl89CmFjdGlvbjpmdW5jdGlvbihuLHEscCl7dmFyIG89M0R0aGlzO3JldHVy
biBmdW5jdGlvbigpe3ZhciByPTNEe307aWYocCl7clsiZj0KLWRia2V5Il09M0RwfSQuYWpheCh7
dXJsOm4rIi9saXN0X3RyYWNrcz8iKyQucGFyYW0ociksZGF0YVR5cGU6Imh0bWwiLGVycm9yPQo6
ZnVuY3Rpb24oKXtvLm1vZGFsLnNob3coe3RpdGxlOiJTb21ldGhpbmcgd2VudCB3cm9uZyEiLGJv
ZHk6IlVuZm9ydHVuYXRlbHk9CiB3ZSBjb3VsZCBub3QgYWRkIHRoaXMgZGF0YXNldCB0byB0aGUg
dHJhY2sgYnJvd3Nlci4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjbz0KbnRhY3QgdXMuIixidXR0b25z
OntDYW5jZWw6ZnVuY3Rpb24oKXtvLm1vZGFsLmhpZGUoKX19fSl9LHN1Y2Nlc3M6ZnVuY3Rpb24o
PQpzKXtvLm1vZGFsLnNob3coe3RpdGxlOiJWaWV3IERhdGEgaW4gYSBOZXcgb3IgU2F2ZWQgVmlz
dWFsaXphdGlvbiIsYnV0dG9uczo9CntDYW5jZWw6ZnVuY3Rpb24oKXtvLm1vZGFsLmhpZGUoKX0s
IlZpZXcgaW4gc2F2ZWQgdmlzdWFsaXphdGlvbiI6ZnVuY3Rpb24oKT0Ke28ubW9kYWwuc2hvdyh7
dGl0bGU6IkFkZCBEYXRhIHRvIFNhdmVkIFZpc3VhbGl6YXRpb24iLGJvZHk6cyxidXR0b25zOntD
YW5jPQplbDpmdW5jdGlvbigpe28ubW9kYWwuaGlkZSgpfSwiQWRkIHRvIHZpc3VhbGl6YXRpb24i
OmZ1bmN0aW9uKCl7by5tb2RhbC5oaWQ9CmUoKTtvLm1vZGFsLiRlbC5maW5kKCJpbnB1dFtuYW1l
PTNEaWRdOmNoZWNrZWQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9M0QkKD0KdGhpcykudmFsKCk7
cS5pZD0zRHQ7by5mcmFtZS5hZGQoe3RpdGxlOiJUcmFja3N0ZXIiLHR5cGU6InVybCIsY29udGVu
dDpuKyIvPQp0cmFja3N0ZXI/IiskLnBhcmFtKHEpfSl9KX19fSl9LCJWaWV3IGluIG5ldyB2aXN1
YWxpemF0aW9uIjpmdW5jdGlvbigpe28ubW89CmRhbC5oaWRlKCk7by5mcmFtZS5hZGQoe3RpdGxl
OiJUcmFja3N0ZXIiLHR5cGU6InVybCIsY29udGVudDpuKyIvdHJhY2tzdGVyPz0KIiskLnBhcmFt
KHEpfSl9fX0pfX0pO3JldHVybiBmYWxzZX19fSk7dmFyIGw9M0RmdW5jdGlvbihxLG8scixuKXt2
YXIgcD0zRG5lPQp3IG8oe21vZGVsOm5ldyBxKHIpfSk7cC5yZW5kZXIoKTtpZihuKXtuLmFwcGVu
ZChwLiRlbCl9cmV0dXJuIHB9O3ZhciBjPTNEZnU9Cm5jdGlvbihwKXtpZighcC5tb2RlbCl7cC5t
b2RlbD0zRG5ldyBpKHAuZGF0YXNldF9jb25maWcpfXZhciBvPTNEcC5wYXJlbnRfZT0KbHQ7dmFy
IHE9M0RwLmVtYmVkZGVkO2RlbGV0ZSBwLmVtYmVkZGVkO2RlbGV0ZSBwLnBhcmVudF9lbHQ7ZGVs
ZXRlIHAuZGF0YXNlPQp0X2NvbmZpZzt2YXIgbj0zRChxP25ldyBtKHApOm5ldyBnKHApKTtuLnJl
bmRlcigpO2lmKG8pe28uYXBwZW5kKG4uJGVsKTtuLmU9CnhwYW5kX3RvX2NvbnRhaW5lcigpfXJl
dHVybiBufTtyZXR1cm57RGF0YXNldDpiLFRhYnVsYXJEYXRhc2V0OmksRGF0YXNldENvbD0KbGVj
dGlvbjplLFRhYnVsYXJEYXRhc2V0Q2h1bmtlZFZpZXc6YSxjcmVhdGVUYWJ1bGFyRGF0YXNldENo
dW5rZWRWaWV3OmN9fSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGVmaW5lKFsibXZj
L3VpL3VpLW1vZGFsIiwibXZjL3VpL3VpLWZyYW1lcyIsIm12Yy91aS9pY29uLWJ1dHRvbiJdLGZ1
bmN0aW89Cm4oayxqLGYpe3ZhciBoPTNEQmFja2JvbmUuTW9kZWwuZXh0ZW5kKHt9KTt2YXIgYj0z
REJhY2tib25lLk1vZGVsLmV4dGVuZCh7ZD0KZWZhdWx0czp7aWQ6IiIsdHlwZToiIixuYW1lOiIi
LGhkYV9sZGRhOiJoZGEiLG1ldGFkYXRhOm51bGx9LGluaXRpYWxpemU6ZnVuPQpjdGlvbigpe2lm
KCF0aGlzLmdldCgibWV0YWRhdGEiKSl7dGhpcy5fc2V0X21ldGFkYXRhKCl9dGhpcy5vbigiY2hh
bmdlIix0aGk9CnMuX3NldF9tZXRhZGF0YSx0aGlzKX0sX3NldF9tZXRhZGF0YTpmdW5jdGlvbigp
e3ZhciBuPTNEbmV3IGgoKTtfLmVhY2goXy5rZT0KeXModGhpcy5hdHRyaWJ1dGVzKSxmdW5jdGlv
bihvKXtpZihvLmluZGV4T2YoIm1ldGFkYXRhXyIpPTNEPTNEPTNEMCl7dmFyIHA9Cj0zRG8uc3Bs
aXQoIm1ldGFkYXRhXyIpWzFdO24uc2V0KHAsdGhpcy5hdHRyaWJ1dGVzW29dKTtkZWxldGUgdGhp
cy5hdHRyaWJ1dD0KZXNbb119fSx0aGlzKTt0aGlzLnNldCgibWV0YWRhdGEiLG4se3NpbGVudDp0
cnVlfSl9LGdldF9tZXRhZGF0YTpmdW5jdGlvbihuPQope3JldHVybiB0aGlzLmF0dHJpYnV0ZXMu
bWV0YWRhdGEuZ2V0KG4pfSx1cmxSb290OmdhbGF4eV9jb25maWcucm9vdCsiYXBpL2Q9CmF0YXNl
dHMifSk7dmFyIGk9M0RiLmV4dGVuZCh7ZGVmYXVsdHM6Xy5leHRlbmQoe30sYi5wcm90b3R5cGUu
ZGVmYXVsdHMse2NodT0KbmtfdXJsOm51bGwsZmlyc3RfZGF0YV9jaHVuazpudWxsLGNodW5rX2lu
ZGV4Oi0xLGF0X2VvZjpmYWxzZX0pLGluaXRpYWxpemU6PQpmdW5jdGlvbihuKXtiLnByb3RvdHlw
ZS5pbml0aWFsaXplLmNhbGwodGhpcyk7dGhpcy5hdHRyaWJ1dGVzLmNodW5rX2luZGV4PQo9M0Qo
dGhpcy5hdHRyaWJ1dGVzLmZpcnN0X2RhdGFfY2h1bms/MTowKTt0aGlzLmF0dHJpYnV0ZXMuY2h1
bmtfdXJsPTNEZ2FsYXg9CnlfY29uZmlnLnJvb3QrImRhdGFzZXQvZGlzcGxheT9kYXRhc2V0X2lk
PTNEIit0aGlzLmlkO3RoaXMuYXR0cmlidXRlcy51cmxfdj0KaXo9M0RnYWxheHlfY29uZmlnLnJv
b3QrInZpc3VhbGl6YXRpb24ifSxnZXRfbmV4dF9jaHVuazpmdW5jdGlvbigpe2lmKHRoaXMuPQph
dHRyaWJ1dGVzLmF0X2VvZil7cmV0dXJuIG51bGx9dmFyIG49M0R0aGlzLG89M0QkLkRlZmVycmVk
KCk7JC5nZXRKU09OKHRoaXM9Ci5hdHRyaWJ1dGVzLmNodW5rX3VybCx7Y2h1bms6bi5hdHRyaWJ1
dGVzLmNodW5rX2luZGV4Kyt9KS5zdWNjZXNzKGZ1bmN0aW9uKD0KcCl7dmFyIHE7aWYocC5ja19k
YXRhIT0zRD0zRCIiKXtxPTNEcH1lbHNle24uYXR0cmlidXRlcy5hdF9lb2Y9M0R0cnVlO3E9M0Ru
PQp1bGx9by5yZXNvbHZlKHEpfSk7cmV0dXJuIG99fSk7dmFyIGU9M0RCYWNrYm9uZS5Db2xsZWN0
aW9uLmV4dGVuZCh7bW9kZWw6Yn09Cik7dmFyIGE9M0RCYWNrYm9uZS5WaWV3LmV4dGVuZCh7aW5p
dGlhbGl6ZTpmdW5jdGlvbihuKXt0aGlzLnJvd19jb3VudD0zRDA7dD0KaGlzLmxvYWRpbmdfY2h1
bms9M0RmYWxzZTtuZXcgZCh7bW9kZWw6bi5tb2RlbCwkZWw6dGhpcy4kZWx9KX0sZXhwYW5kX3Rv
X2NvPQpudGFpbmVyOmZ1bmN0aW9uKCl7aWYodGhpcy4kZWwuaGVpZ2h0KCk8dGhpcy5zY3JvbGxf
ZWx0LmhlaWdodCgpKXt0aGlzLmF0dGU9Cm1wdF90b19mZXRjaCgpfX0sYXR0ZW1wdF90b19mZXRj
aDpmdW5jdGlvbihvKXt2YXIgbj0zRHRoaXM7aWYoIXRoaXMubG9hZGluZz0KX2NodW5rJiZ0aGlz
LnNjcm9sbGVkX3RvX2JvdHRvbSgpKXt0aGlzLmxvYWRpbmdfY2h1bms9M0R0cnVlO3RoaXMubG9h
ZGluZ19pPQpuZGljYXRvci5zaG93KCk7JC53aGVuKG4ubW9kZWwuZ2V0X25leHRfY2h1bmsoKSku
dGhlbihmdW5jdGlvbihwKXtpZihwKXtuLl89CnJlbmRlckNodW5rKHApO24ubG9hZGluZ19jaHVu
az0zRGZhbHNlfW4ubG9hZGluZ19pbmRpY2F0b3IuaGlkZSgpO24uZXhwYW5kXz0KdG9fY29udGFp
bmVyKCl9KX19LHJlbmRlcjpmdW5jdGlvbigpe3RoaXMubG9hZGluZ19pbmRpY2F0b3I9M0QkKCI8
ZGl2Lz4iKS5hPQp0dHIoImlkIiwibG9hZGluZ19pbmRpY2F0b3IiKTt0aGlzLiRlbC5hcHBlbmQo
dGhpcy5sb2FkaW5nX2luZGljYXRvcik7dmFyIHI9Cj0zRCQoIjx0YWJsZS8+IikuYXR0cih7aWQ6
ImNvbnRlbnRfdGFibGUiLGNlbGxwYWRkaW5nOjB9KTt0aGlzLiRlbC5hcHBlbmQocj0KKTt2YXIg
bj0zRHRoaXMubW9kZWwuZ2V0X21ldGFkYXRhKCJjb2x1bW5fbmFtZXMiKSxzPTNEJCgiPHRyLz4i
KS5hcHBlbmRUbyhyPQopO2lmKG4pe3MuYXBwZW5kKCI8dGg+IituLmpvaW4oIjwvdGg+PHRoPiIp
KyI8L3RoPiIpfWVsc2V7Zm9yKHZhciBxPTNEMTtxPD0KPTNEdGhpcy5tb2RlbC5nZXRfbWV0YWRh
dGEoImNvbHVtbnMiKTtxKyspe3MuYXBwZW5kKCI8dGg+IitxKyI8L3RoPiIpfX12YXIgPQpwPTNE
dGhpcyxvPTNEdGhpcy5tb2RlbC5nZXQoImZpcnN0X2RhdGFfY2h1bmsiKTtpZihvKXt0aGlzLl9y
ZW5kZXJDaHVuayhvKX09CmVsc2V7JC53aGVuKHAubW9kZWwuZ2V0X25leHRfY2h1bmsoKSkudGhl
bihmdW5jdGlvbih0KXtwLl9yZW5kZXJDaHVuayh0KX0pfT0KdGhpcy5zY3JvbGxfZWx0LnNjcm9s
bChmdW5jdGlvbigpe3AuYXR0ZW1wdF90b19mZXRjaCgpfSl9LHNjcm9sbGVkX3RvX2JvdHRvPQpt
OmZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlfSxfcmVuZGVyQ2VsbDpmdW5jdGlvbihxLG4scil7dmFy
IG89M0QkKCI8dGQ+IikudGU9Cnh0KHEpO3ZhciBwPTNEdGhpcy5tb2RlbC5nZXRfbWV0YWRhdGEo
ImNvbHVtbl90eXBlcyIpO2lmKHIhPTNEPTNEdW5kZWZpbmVkKT0Ke28uYXR0cigiY29sc3BhbiIs
cikuYWRkQ2xhc3MoInN0cmluZ2FsaWduIil9ZWxzZXtpZihwKXtpZihuPHAubGVuZ3RoKXtpZihw
PQpbbl09M0Q9M0Q9M0Qic3RyInx8cFtuXT0zRD0zRD0zRCJsaXN0Iil7by5hZGRDbGFzcygic3Ry
aW5nYWxpZ24iKX19fX1yZXR1cm49CiBvfSxfcmVuZGVyUm93OmZ1bmN0aW9uKG4pe3ZhciBvPTNE
bi5zcGxpdCgiXHQiKSxxPTNEJCgiPHRyPiIpLHA9M0R0aGlzLm1vZD0KZWwuZ2V0X21ldGFkYXRh
KCJjb2x1bW5zIik7aWYodGhpcy5yb3dfY291bnQlMiE9M0Q9M0QwKXtxLmFkZENsYXNzKCJkYXJr
X3JvPQp3Iil9aWYoby5sZW5ndGg9M0Q9M0Q9M0RwKXtfLmVhY2gobyxmdW5jdGlvbihzLHIpe3Eu
YXBwZW5kKHRoaXMuX3JlbmRlckNlbGw9CihzLHIpKX0sdGhpcyl9ZWxzZXtpZihvLmxlbmd0aD5w
KXtfLmVhY2goby5zbGljZSgwLHAtMSksZnVuY3Rpb24ocyxyKXtxLmFwcD0KZW5kKHRoaXMuX3Jl
bmRlckNlbGwocyxyKSl9LHRoaXMpO3EuYXBwZW5kKHRoaXMuX3JlbmRlckNlbGwoby5zbGljZShw
LTEpLmpvPQppbigiXHQiKSxwLTEpKX1lbHNle2lmKHA+NSYmby5sZW5ndGg9M0Q9M0Q9M0RwLTEp
e18uZWFjaChvLGZ1bmN0aW9uKHMscil7cS49CmFwcGVuZCh0aGlzLl9yZW5kZXJDZWxsKHMscikp
fSx0aGlzKTtxLmFwcGVuZCgkKCI8dGQ+IikpfWVsc2V7cS5hcHBlbmQodGhpcz0KLl9yZW5kZXJD
ZWxsKG4sMCxwKSl9fX10aGlzLnJvd19jb3VudCsrO3JldHVybiBxfSxfcmVuZGVyQ2h1bms6ZnVu
Y3Rpb24obil7PQp2YXIgbz0zRHRoaXMuJGVsLmZpbmQoInRhYmxlIik7Xy5lYWNoKG4uY2tfZGF0
YS5zcGxpdCgiXG4iKSxmdW5jdGlvbihwLHEpe2k9CmYocCE9M0Q9M0QiIil7by5hcHBlbmQodGhp
cy5fcmVuZGVyUm93KHApKX19LHRoaXMpfX0pO3ZhciBnPTNEYS5leHRlbmQoe2luaT0KdGlhbGl6
ZTpmdW5jdGlvbihuKXthLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxuKTtzY3JvbGxf
ZWx0PTNEXy5maW5kPQoodGhpcy4kZWwucGFyZW50cygpLGZ1bmN0aW9uKG8pe3JldHVybiAkKG8p
LmNzcygib3ZlcmZsb3ciKT0zRD0zRD0zRCJhdXRvIn09Cik7aWYoIXNjcm9sbF9lbHQpe3Njcm9s
bF9lbHQ9M0R3aW5kb3d9dGhpcy5zY3JvbGxfZWx0PTNEJChzY3JvbGxfZWx0KX0sc2Nybz0KbGxl
ZF90b19ib3R0b206ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy4kZWwuaGVpZ2h0KCktdGhpcy5zY3Jv
bGxfZWx0LnNjcm9sbFRvPQpwKCktdGhpcy5zY3JvbGxfZWx0LmhlaWdodCgpPD0zRDApfX0pO3Zh
ciBtPTNEYS5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb249CihuKXthLnByb3RvdHlwZS5pbml0
aWFsaXplLmNhbGwodGhpcyxuKTt0aGlzLnNjcm9sbF9lbHQ9M0R0aGlzLiRlbC5jc3Moe3Bvcz0K
aXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoic2Nyb2xsIixoZWlnaHQ6dGhpcy5vcHRpb25zLmhl
aWdodHx8IjUwMHB4In0pfSxzPQpjcm9sbGVkX3RvX2JvdHRvbTpmdW5jdGlvbigpe3JldHVybiB0
aGlzLiRlbC5zY3JvbGxUb3AoKSt0aGlzLiRlbC5pbm5lckhlaWc9Cmh0KCk+PTNEdGhpcy5lbC5z
Y3JvbGxIZWlnaHR9fSk7dmFyIGQ9M0RCYWNrYm9uZS5WaWV3LmV4dGVuZCh7Y29sOntjaHJvbTpu
dT0KbGwsc3RhcnQ6bnVsbCxlbmQ6bnVsbH0sdXJsX3ZpejpudWxsLGRhdGFzZXRfaWQ6bnVsbCxn
ZW5vbWVfYnVpbGQ6bnVsbCxmaWxlPQpfZXh0Om51bGwsaW5pdGlhbGl6ZTpmdW5jdGlvbihwKXt2
YXIgcz0zRHBhcmVudC5HYWxheHk7aWYocyYmcy5tb2RhbCl7dGhpcy49Cm1vZGFsPTNEcy5tb2Rh
bH1pZihzJiZzLmZyYW1lKXt0aGlzLmZyYW1lPTNEcy5mcmFtZX1pZighdGhpcy5tb2RhbHx8IXRo
aXMuZj0KcmFtZSl7cmV0dXJufXZhciBvPTNEcC5tb2RlbDt2YXIgcj0zRG8uZ2V0KCJtZXRhZGF0
YSIpO2lmKCFvLmdldCgiZmlsZV9leHQiPQopKXtyZXR1cm59dGhpcy5maWxlX2V4dD0zRG8uZ2V0
KCJmaWxlX2V4dCIpO2lmKHRoaXMuZmlsZV9leHQ9M0Q9M0QiYmVkIil7aWY9CihyLmdldCgiY2hy
b21Db2wiKSYmci5nZXQoInN0YXJ0Q29sIikmJnIuZ2V0KCJlbmRDb2wiKSl7dGhpcy5jb2wuY2hy
b209M0RyLj0KZ2V0KCJjaHJvbUNvbCIpLTE7dGhpcy5jb2wuc3RhcnQ9M0RyLmdldCgic3RhcnRD
b2wiKS0xO3RoaXMuY29sLmVuZD0zRHIuZ2V0PQooImVuZENvbCIpLTF9ZWxzZXtjb25zb2xlLmxv
ZygiVGFidWxhckJ1dHRvblRyYWNrc3RlciA6IEJlZC1maWxlIG1ldGFkYXRhIGk9Cm5jb21wbGV0
ZS4iKTtyZXR1cm59fWlmKHRoaXMuZmlsZV9leHQ9M0Q9M0QidmNmIil7ZnVuY3Rpb24gcSh1LHYp
e2Zvcih2YXIgdD0KPTNEMDt0PHYubGVuZ3RoO3QrKyl7aWYodlt0XS5tYXRjaCh1KSl7cmV0dXJu
IHR9fXJldHVybiAtMX10aGlzLmNvbC5jaHJvbT0KPTNEcSgiQ2hyb20iLHIuZ2V0KCJjb2x1bW5f
bmFtZXMiKSk7dGhpcy5jb2wuc3RhcnQ9M0RxKCJQb3MiLHIuZ2V0KCJjb2x1bW5fPQpuYW1lcyIp
KTt0aGlzLmNvbC5lbmQ9M0RudWxsO2lmKHRoaXMuY29sLmNocm9tPTNEPTNELTF8fHRoaXMuY29s
LnN0YXJ0PTNEPQo9M0QtMSl7Y29uc29sZS5sb2coIlRhYnVsYXJCdXR0b25UcmFja3N0ZXIgOiBW
Q0YtZmlsZSBtZXRhZGF0YSBpbmNvbXBsZXRlLiI9Cik7cmV0dXJufX1pZih0aGlzLmNvbC5jaHJv
bT0zRD0zRD0zRHVuZGVmaW5lZCl7cmV0dXJufWlmKG8uaWQpe3RoaXMuZGF0YXNldD0KX2lkPTNE
by5pZH1lbHNle2NvbnNvbGUubG9nKCJUYWJ1bGFyQnV0dG9uVHJhY2tzdGVyIDogRGF0YXNldCBp
ZGVudGlmaWNhdGlvPQpuIGlzIG1pc3NpbmcuIik7cmV0dXJufWlmKG8uZ2V0KCJ1cmxfdml6Iikp
e3RoaXMudXJsX3Zpej0zRG8uZ2V0KCJ1cmxfdml6Iik9Cn1lbHNle2NvbnNvbGUubG9nKCJUYWJ1
bGFyQnV0dG9uVHJhY2tzdGVyIDogVXJsIGZvciB2aXN1YWxpemF0aW9uIGNvbnRyb2xsZT0KciBp
cyBtaXNzaW5nLiIpO3JldHVybn1pZihvLmdldCgiZ2Vub21lX2J1aWxkIikpe3RoaXMuZ2Vub21l
X2J1aWxkPTNEby5nZXQoPQoiZ2Vub21lX2J1aWxkIil9dmFyIG49M0RuZXcgZi5JY29uQnV0dG9u
Vmlldyh7bW9kZWw6bmV3IGYuSWNvbkJ1dHRvbih7dGl0bGU9CjoiVmlzdWFsaXplIixpY29uX2Ns
YXNzOiJjaGFydF9jdXJ2ZSIsaWQ6ImJ0bl92aXoifSl9KTt0aGlzLnNldEVsZW1lbnQocC4kZT0K
bCk7dGhpcy4kZWwuYXBwZW5kKG4ucmVuZGVyKCkuJGVsKTt0aGlzLmhpZGUoKX0sZXZlbnRzOnsi
bW91c2VvdmVyIHRyIjoic2hvPQp3Iixtb3VzZWxlYXZlOiJoaWRlIn0sc2hvdzpmdW5jdGlvbihz
KXtmdW5jdGlvbiByKHgpe3JldHVybiAhaXNOYU4ocGFyc2VGbG89CmF0KHgpKSYmaXNGaW5pdGUo
eCl9aWYodGhpcy5jb2wuY2hyb209M0Q9M0Q9M0RudWxsKXtyZXR1cm59dmFyIHc9M0QkKHMudGFy
Zz0KZXQpLnBhcmVudCgpO3ZhciB0PTNEdy5jaGlsZHJlbigpLmVxKHRoaXMuY29sLmNocm9tKS5o
dG1sKCk7dmFyIG49M0R3LmNoaWxkPQpyZW4oKS5lcSh0aGlzLmNvbC5zdGFydCkuaHRtbCgpO3Zh
ciBwPTNEdGhpcy5jb2wuZW5kP3cuY2hpbGRyZW4oKS5lcSh0aGlzLmM9Cm9sLmVuZCkuaHRtbCgp
Om47aWYoIXQubWF0Y2goIl4jIikmJnQhPTNEPTNEIiImJnIobikpe3ZhciB2PTNEe2RhdGFzZXRf
aWQ6dD0KaGlzLmRhdGFzZXRfaWQsZ2VuZV9yZWdpb246dCsiOiIrbisiLSIrcH07dmFyIHE9M0R3
Lm9mZnNldCgpO3ZhciBvPTNEcS5sZWZ0PQotMTA7dmFyIHU9M0RxLnRvcC0kKHdpbmRvdykuc2Ny
b2xsVG9wKCkrMzskKCIjYnRuX3ZpeiIpLmNzcyh7cG9zaXRpb246ImZpeGU9CmQiLHRvcDp1KyJw
eCIsbGVmdDpvKyJweCJ9KTskKCIjYnRuX3ZpeiIpLm9mZigiY2xpY2siKTskKCIjYnRuX3ZpeiIp
LmNsaWNrKD0KdGhpcy5jcmVhdGVfdHJhY2tzdGVyX2FjdGlvbih0aGlzLnVybF92aXosdix0aGlz
Lmdlbm9tZV9idWlsZCkpOyQoIiNidG5fdml6PQoiKS5zaG93KCl9ZWxzZXskKCIjYnRuX3ZpeiIp
LmhpZGUoKX19LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLiRlbC5maW5kKCIjYnRuX3Y9Cml6IikuaGlk
ZSgpfSxjcmVhdGVfdHJhY2tzdGVyX2FjdGlvbjpmdW5jdGlvbihuLHEscCl7dmFyIG89M0R0aGlz
O3JldHVybiBmdT0KbmN0aW9uKCl7dmFyIHI9M0R7fTtpZihwKXtyWyJmLWRia2V5Il09M0RwfSQu
YWpheCh7dXJsOm4rIi9saXN0X3RyYWNrcz8iKyQuPQpwYXJhbShyKSxkYXRhVHlwZToiaHRtbCIs
ZXJyb3I6ZnVuY3Rpb24oKXtvLm1vZGFsLnNob3coe3RpdGxlOiJTb21ldGhpbmcgd2U9Cm50IHdy
b25nISIsYm9keToiVW5mb3J0dW5hdGVseSB3ZSBjb3VsZCBub3QgYWRkIHRoaXMgZGF0YXNldCB0
byB0aGUgdHJhY2sgYj0Kcm93c2VyLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3QgdXMuIixi
dXR0b25zOntDYW5jZWw6ZnVuY3Rpb24oKXtvLm1vZGFsPQouaGlkZSgpfX19KX0sc3VjY2Vzczpm
dW5jdGlvbihzKXtvLm1vZGFsLnNob3coe3RpdGxlOiJWaWV3IERhdGEgaW4gYSBOZXcgb3I9CiBT
YXZlZCBWaXN1YWxpemF0aW9uIixidXR0b25zOntDYW5jZWw6ZnVuY3Rpb24oKXtvLm1vZGFsLmhp
ZGUoKX0sIlZpZXcgaW4gcz0KYXZlZCB2aXN1YWxpemF0aW9uIjpmdW5jdGlvbigpe28ubW9kYWwu
c2hvdyh7dGl0bGU6IkFkZCBEYXRhIHRvIFNhdmVkIFZpc3VhPQpsaXphdGlvbiIsYm9keTpzLGJ1
dHRvbnM6e0NhbmNlbDpmdW5jdGlvbigpe28ubW9kYWwuaGlkZSgpfSwiQWRkIHRvIHZpc3VhbGk9
CnphdGlvbiI6ZnVuY3Rpb24oKXtvLm1vZGFsLmhpZGUoKTtvLm1vZGFsLiRlbC5maW5kKCJpbnB1
dFtuYW1lPTNEaWRdOmNoZWNrZT0KZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD0zRCQodGhpcyku
dmFsKCk7cS5pZD0zRHQ7by5mcmFtZS5hZGQoe3RpdGxlOiJUcmFjPQprc3RlciIsdHlwZToidXJs
Iixjb250ZW50Om4rIi90cmFja3N0ZXI/IiskLnBhcmFtKHEpfSl9KX19fSl9LCJWaWV3IGluIG5l
dyA9CnZpc3VhbGl6YXRpb24iOmZ1bmN0aW9uKCl7by5tb2RhbC5oaWRlKCk7by5mcmFtZS5hZGQo
e3RpdGxlOiJUcmFja3N0ZXIiLHR5cD0KZToidXJsIixjb250ZW50Om4rIi90cmFja3N0ZXI/Iisk
LnBhcmFtKHEpfSl9fX0pfX0pO3JldHVybiBmYWxzZX19fSk7dmFyIGw9Cj0zRGZ1bmN0aW9uKHEs
byxyLG4pe3ZhciBwPTNEbmV3IG8oe21vZGVsOm5ldyBxKHIpfSk7cC5yZW5kZXIoKTtpZihuKXtu
LmFwcD0KZW5kKHAuJGVsKX1yZXR1cm4gcH07dmFyIGM9M0RmdW5jdGlvbihwKXtpZighcC5tb2Rl
bCl7cC5tb2RlbD0zRG5ldyBpKHAuZGF0PQphc2V0X2NvbmZpZyl9dmFyIG89M0RwLnBhcmVudF9l
bHQ7dmFyIHE9M0RwLmVtYmVkZGVkO2RlbGV0ZSBwLmVtYmVkZGVkO2RlbGU9CnRlIHAucGFyZW50
X2VsdDtkZWxldGUgcC5kYXRhc2V0X2NvbmZpZzt2YXIgbj0zRChxP25ldyBtKHApOm5ldyBnKHAp
KTtuLnJlbj0KZGVyKCk7aWYobyl7by5hcHBlbmQobi4kZWwpO24uZXhwYW5kX3RvX2NvbnRhaW5l
cigpfXJldHVybiBufTtyZXR1cm57RGF0YXNlPQp0OmIsVGFidWxhckRhdGFzZXQ6aSxEYXRhc2V0
Q29sbGVjdGlvbjplLFRhYnVsYXJEYXRhc2V0Q2h1bmtlZFZpZXc6YSxjcmVhdGU9ClRhYnVsYXJE
YXRhc2V0Q2h1bmtlZFZpZXc6Y319KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgpkaWZm
IC1yIDhlYzY5MDUyNjAwYTJjOTE1Zjg4ZDMxODU4ODRhMTg1ZTgyMDg2ZDEgLXIgMzY0NTdjYzFl
YzI2YzQ0MGU3YTk5NmM9CmU1MWViODdlZDdjNThjYzRkIHN0YXRpYy9zdHlsZS9ibHVlL2Jhc2Uu
Y3NzCi0tLSBhL3N0YXRpYy9zdHlsZS9ibHVlL2Jhc2UuY3NzCisrKyBiL3N0YXRpYy9zdHlsZS9i
bHVlL2Jhc2UuY3NzCkBAIC0yMjM0LDYgKzIyMzQsOCBAQAogI2xvYWRpbmdfaW5kaWNhdG9ye3Bv
c2l0aW9uOmZpeGVkO3JpZ2h0OjEwcHg7dG9wOjEwcHg7aGVpZ2h0OjMycHg7d2lkdGg6MzI9CnB4
O2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOnVybChsYXJnZXNwaW5uZXIuZ2lmKX0KICNjb250ZW50
X3RhYmxlIHRke3RleHQtYWxpZ246cmlnaHQ7d2hpdGUtc3BhY2U6bm93cmFwO3BhZGRpbmc6MnB4
IDEwcHh9CiAjY29udGVudF90YWJsZSB0ZC5zdHJpbmdhbGlnbnt0ZXh0LWFsaWduOmxlZnR9Cisj
Y29udGVudF90YWJsZSAuZGFya19yb3d7YmFja2dyb3VuZC1jb2xvcjojREREfQorI2NvbnRlbnRf
dGFibGUgdGh7YmFja2dyb3VuZC1jb2xvcjojQUFBfQogLnRvb2xNZW51QW5kVmlldyAudG9vbEZv
cm17ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO21hcmdpbjoxMHB4fQogLnRleHQt
YW5kLWF1dG9jb21wbGV0ZS1zZWxlY3R7YmFja2dyb3VuZDpub25lO3Bvc2l0aW9uOnJlbGF0aXZl
O3BhZGRpbmctcmk9CmdodDoxOHB4fS50ZXh0LWFuZC1hdXRvY29tcGxldGUtc2VsZWN0OmFmdGVy
e21hcmdpbi10b3A6NnB4O3Bvc2l0aW9uOmFic29sdT0KdGU7dG9wOjJweDtyaWdodDo2cHg7d2lk
dGg6MTBweDtoZWlnaHQ6MTBweDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDowO2hlPQppZ2h0
OjA7bWFyZ2luLWxlZnQ6MnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItdG9wOjRweCBz
b2xpZCAjMDAwO2JvcmQ9CmVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVm
dDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdD0KdG9tOjAgZG90dGVkO2NvbnRlbnQ6
IiI7ZmlsdGVyOmFscGhhKG9wYWNpdHk9M0Q4MDAwKTtvcGFjaXR5OjgwOy1tcy1maWx0ZXI6PQpw
cm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0zRDgwMDApO2Zp
bHRlcjphbHBoYShvcGFjaXQ9Cnk9M0Q4MDAwKX0uYnRuLWRlZmF1bHQgLnRleHQtYW5kLWF1dG9j
b21wbGV0ZS1zZWxlY3Q6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcj0KOiMzMzN9CiAuYnRuLXByaW1h
cnkgLnRleHQtYW5kLWF1dG9jb21wbGV0ZS1zZWxlY3Q6YWZ0ZXIsLmJ0bi1zdWNjZXNzIC50ZXh0
LWFuZC1hdT0KdG9jb21wbGV0ZS1zZWxlY3Q6YWZ0ZXIsLmJ0bi13YXJuaW5nIC50ZXh0LWFuZC1h
dXRvY29tcGxldGUtc2VsZWN0OmFmdGVyLC5iPQp0bi1kYW5nZXIgLnRleHQtYW5kLWF1dG9jb21w
bGV0ZS1zZWxlY3Q6YWZ0ZXIsLmJ0bi1pbmZvIC50ZXh0LWFuZC1hdXRvY29tcGw9CmV0ZS1zZWxl
Y3Q6YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojZmZmfQoKZGlmZiAtciA4ZWM2OTA1MjYwMGEyYzkx
NWY4OGQzMTg1ODg0YTE4NWU4MjA4NmQxIC1yIDM2NDU3Y2MxZWMyNmM0NDBlN2E5OTZjPQplNTFl
Yjg3ZWQ3YzU4Y2M0ZCBzdGF0aWMvc3R5bGUvc3JjL2xlc3MvYmFzZS5sZXNzCi0tLSBhL3N0YXRp
Yy9zdHlsZS9zcmMvbGVzcy9iYXNlLmxlc3MKKysrIGIvc3RhdGljL3N0eWxlL3NyYy9sZXNzL2Jh
c2UubGVzcwpAQCAtMTU1Myw2ICsxNTUzLDE0IEBACiAgICAgdGV4dC1hbGlnbjpsZWZ0OwogfQo9
MjAKKyNjb250ZW50X3RhYmxlIC5kYXJrX3Jvd3sKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRERE
OworfQorCisjY29udGVudF90YWJsZSB0aHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQUFBOwor
fQorCiAvLyA9M0Q9M0Q9M0Q9M0QgSW50ZWdyYXRlZCB0b29sIGZvcm0gc3R5bGVzCj0yMAogLnRv
b2xNZW51QW5kVmlldyAudG9vbEZvcm0KClJlcG9zaXRvcnkgVVJMOiBodHRwczovL2JpdGJ1Y2tl
dC5vcmcvZ2FsYXh5L2dhbGF4eS1jZW50cmFsLwoKLS0KClRoaXMgaXMgYSBjb21taXQgbm90aWZp
Y2F0aW9uIGZyb20gYml0YnVja2V0Lm9yZy4gWW91IGFyZSByZWNlaXZpbmcKdGhpcyBiZWNhdXNl
IHlvdSBoYXZlIHRoZSBzZXJ2aWNlIGVuYWJsZWQsIGFkZHJlc3NpbmcgdGhlIHJlY2lwaWVudCBv
Zgp0aGlzIGVtYWlsLgo