blob: 16a0fbc24b4fa6157a3e1f2193b878bed0ccb525 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// This file is generated; don't edit it directly.
//
// See pkg/analysis_server/tool/nnbd_migration/generate_resources.dart for how
// to edit the source content and for re-generation instructions.
import 'dart:convert' as convert;
String get highlight_css {
return _highlight_css ??= _decode(_highlight_css_base64);
}
String get index_html {
return _index_html ??= _decode(_index_html_base64);
}
String get highlight_pack_js {
return _highlight_pack_js ??= _decode(_highlight_pack_js_base64);
}
String get migration_js {
return _migration_js ??= _decode(_migration_js_base64);
}
String get migration_css {
return _migration_css ??= _decode(_migration_css_base64);
}
String _decode(String data) {
data = data.replaceAll('\n', '').trim();
return String.fromCharCodes(convert.base64Decode(data));
}
String _highlight_css;
// highlight_css md5 is 'fb012626bafd286510d32da815dae448'
String _highlight_css_base64 = '''
LyoKRGF0ZTogMjQgRmV2IDIwMTUKQXV0aG9yOiBQZWRybyBPbGl2ZWlyYSA8a2FueXR1QGdtYWlsIC4g
Y29tPgoqLwoKLmhsanMgewogIGNvbG9yOiAjYTliN2M2OwogIGJhY2tncm91bmQ6ICMyODJiMmU7CiAg
ZGlzcGxheTogYmxvY2s7CiAgb3ZlcmZsb3cteDogYXV0bzsKICBwYWRkaW5nOiAwLjVlbTsKfQoKLmhs
anMtbnVtYmVyLAouaGxqcy1saXRlcmFsLAouaGxqcy1zeW1ib2wsCi5obGpzLWJ1bGxldCB7CiAgY29s
b3I6ICM2ODk3QkI7Cn0KCi5obGpzLWtleXdvcmQsCi5obGpzLXNlbGVjdG9yLXRhZywKLmhsanMtZGVs
ZXRpb24gewogIGNvbG9yOiAjY2M3ODMyOwp9CgouaGxqcy12YXJpYWJsZSwKLmhsanMtdGVtcGxhdGUt
dmFyaWFibGUsCi5obGpzLWxpbmsgewogIGNvbG9yOiAjNjI5NzU1Owp9CgouaGxqcy1jb21tZW50LAou
aGxqcy1xdW90ZSB7CiAgY29sb3I6ICM4MDgwODA7Cn0KCi5obGpzLW1ldGEgewogIGNvbG9yOiAjYmJi
NTI5Owp9CgouaGxqcy1zdHJpbmcsCi5obGpzLWF0dHJpYnV0ZSwKLmhsanMtYWRkaXRpb24gewogIGNv
bG9yOiAjNkE4NzU5Owp9CgouaGxqcy1zZWN0aW9uLAouaGxqcy10aXRsZSwKLmhsanMtdHlwZSB7CiAg
Y29sb3I6ICNmZmM2NmQ7Cn0KCi5obGpzLW5hbWUsCi5obGpzLXNlbGVjdG9yLWlkLAouaGxqcy1zZWxl
Y3Rvci1jbGFzcyB7CiAgY29sb3I6ICNlOGJmNmE7Cn0KCi5obGpzLWVtcGhhc2lzIHsKICBmb250LXN0
eWxlOiBpdGFsaWM7Cn0KCi5obGpzLXN0cm9uZyB7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0K
''';
String _index_html;
// index_html md5 is '8733d08faa10c30355405d4c78b051e5'
String _index_html_base64 = '''
PGh0bWw+CjxoZWFkPgogICAgPHRpdGxlPk51bGwgU2FmZXR5IFByZXZpZXc8L3RpdGxlPgogICAgPHNj
cmlwdCBzcmM9Int7IGhpZ2hsaWdodEpzUGF0aCB9fSI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0Pnt7IGRh
cnRQYWdlU2NyaXB0IH19PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0
dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDYwMCZkaXNw
bGF5PXN3YXAiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7eyBoaWdobGlnaHRTdHls
ZVBhdGggfX0iPgogICAgPHN0eWxlPnt7IGRhcnRQYWdlU3R5bGUgfX08L3N0eWxlPgo8L2hlYWQ+Cjxi
b2R5Pgo8cCBjbGFzcz0icm9vdCI+e3sgcm9vdCB9fTwvcD4KPGhlYWRlciBjbGFzcz0iZWxldmF0aW9u
LXo0Ij4KICAgIDxoMT5Qcm9wb3NlZCBudWxsIHNhZmV0eSBjaGFuZ2VzPC9oMT4KICAgIDxoMiBpZD0i
dW5pdC1uYW1lIj4mbmJzcDs8L2gyPgo8L2hlYWRlcj4KPGRpdiBjbGFzcz0icGFuZWxzIGhvcml6b250
YWwiPgogICAgPGRpdiBjbGFzcz0ibmF2LXBhbmVsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtaW5u
ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkaW5nIj5Qcm9qZWN0IEZpbGVzPC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi10cmVlIj48L2Rpdj4KICAgICAgICA8L2Rpdj48
IS0tIC9uYXYtaW5uZXIgLS0+CiAgICA8L2Rpdj48IS0tIC9uYXYgLS0+CiAgICA8ZGl2IGNsYXNzPSJj
b250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJjb2RlIj4KICAgICAgICAgICAgPCEtLSBDb21waWxh
dGlvbiB1bml0IGNvbnRlbnQgaXMgd3JpdHRlbiBoZXJlLiAtLT4KICAgICAgICAgICAgPHAgY2xhc3M9
IndlbGNvbWUiPgogICAgICAgICAgICAgICAgPCEtLSBUT0RPKHNyYXdsaW5zKTogTW9yZSB3ZWxjb21l
IHRleHQhIC0tPgogICAgICAgICAgICAgICAgU2VsZWN0IGEgc291cmNlIGZpbGUgb24gdGhlIGxlZnQg
dG8gcHJldmlldyB0aGUgZWRpdHMuCiAgICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAg
ICA8ZGl2IGNsYXNzPSJyZWdpb25zIj4KICAgICAgICAgICAgPCEtLSBUaGUgcmVnaW9ucyBhcmUgdGhl
biB3cml0dGVuIGFnYWluLCBvdmVybGF5aW5nIHRoZSBmaXJzdCBjb3B5IG9mIC0tPgogICAgICAgICAg
ICA8IS0tIHRoZSBjb250ZW50LCB0byBwcm92aWRlIHRvb2x0aXBzIGZvciBtb2RpZmllZCByZWdpb25z
LiAtLT4KICAgICAgICA8L2Rpdj48IS0tIC9yZWdpb25zIC0tPgogICAgPC9kaXY+PCEtLSAvY29udGVu
dCAtLT4KICAgIDxkaXYgY2xhc3M9ImluZm8tcGFuZWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXQt
bGlzdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRpbmciPlByb3Bvc2VkIEVkaXRz
PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWNvbnRlbnQiPjwvZGl2PgogICAgICAg
IDwvZGl2PjwhLS0gL2VkaXQtbGlzdCAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0LXBhbmVsIj4K
ICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtaGVhZGluZyI+RWRpdCBEZXRhaWxzPC9kaXY+CiAg
ICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHA+U2Vl
IGRldGFpbHMgYWJvdXQgYSBwcm9wb3NlZCBlZGl0LjwvcD4KICAgICAgICAgICAgPC9kaXY+PCEtLSAv
cGFuZWwtY29udGVudCAtLT4KICAgICAgICA8L2Rpdj48IS0tIC9lZGl0LXBhbmVsIC0tPgogICAgPC9k
aXY+PCEtLSAvaW5mby1wYW5lbCAtLT4KPC9kaXY+PCEtLSAvcGFuZWxzIC0tPgo8Zm9vdGVyPgogICAg
PGEgdGFyZ2V0PSJfYmxhbmsiCiAgICAgICBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGFydC1sYW5n
L3Nkay9ibG9iL21hc3Rlci9wa2cvYW5hbHlzaXNfc2VydmVyL2xpYi9zcmMvZWRpdC9ubmJkX21pZ3Jh
dGlvbi9SRUFETUUubWQiPk51bGwKICAgICAgICBzYWZldHkgbWlncmF0aW9uIGhlbHA8L2E+CiAgICA8
c3BhbiBjbGFzcz0id2lkZSI+IDwvc3Bhbj4KICAgIDxkaXY+QmFzZWQgb24ge3sgc2RrVmVyc2lvbiB9
fTwvZGl2Pgo8L2Zvb3Rlcj4KPC9ib2R5Pgo8L2h0bWw+Cg==
''';
String _highlight_pack_js;
// highlight_pack_js md5 is '9104bfe8b056f8e00da50b0ea3d6e6d4'
String _highlight_pack_js_base64 = '''
LyohIGhpZ2hsaWdodC5qcyB2OS4xNS4xMCB8IEJTRDMgTGljZW5zZSB8IGdpdC5pby9obGpzbGljZW5z
ZSAqLwohZnVuY3Rpb24oZSl7dmFyIG49Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8Im9i
amVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmOyJ1bmRlZmluZWQiPT10eXBlb2YgZXhwb3J0c3x8ZXhwb3J0
cy5ub2RlVHlwZT9uJiYobi5obGpzPWUoe30pLCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmlu
ZS5hbWQmJmRlZmluZShbXSxmdW5jdGlvbigpe3JldHVybiBuLmhsanN9KSk6ZShleHBvcnRzKX0oZnVu
Y3Rpb24oYSl7dmFyIGY9W10sdT1PYmplY3Qua2V5cyxOPXt9LGM9e30sbj0vXihuby0/aGlnaGxpZ2h0
fHBsYWlufHRleHQpJC9pLHM9L1xibGFuZyg/OnVhZ2UpPy0oW1x3LV0rKVxiL2ksdD0vKCheKDxbXj5d
Kz58XHR8KSt8KD86XG4pKSkvZ20scj17Y2FzZV9pbnNlbnNpdGl2ZToiY0kiLGxleGVtZXM6ImwiLGNv
bnRhaW5zOiJjIixrZXl3b3JkczoiayIsc3ViTGFuZ3VhZ2U6InNMIixjbGFzc05hbWU6ImNOIixiZWdp
bjoiYiIsYmVnaW5LZXl3b3JkczoiYksiLGVuZDoiZSIsZW5kc1dpdGhQYXJlbnQ6ImVXIixpbGxlZ2Fs
OiJpIixleGNsdWRlQmVnaW46ImVCIixleGNsdWRlRW5kOiJlRSIscmV0dXJuQmVnaW46InJCIixyZXR1
cm5FbmQ6InJFIixyZWxldmFuY2U6InIiLHZhcmlhbnRzOiJ2IixJREVOVF9SRToiSVIiLFVOREVSU0NP
UkVfSURFTlRfUkU6IlVJUiIsTlVNQkVSX1JFOiJOUiIsQ19OVU1CRVJfUkU6IkNOUiIsQklOQVJZX05V
TUJFUl9SRToiQk5SIixSRV9TVEFSVEVSU19SRToiUlNSIixCQUNLU0xBU0hfRVNDQVBFOiJCRSIsQVBP
U19TVFJJTkdfTU9ERToiQVNNIixRVU9URV9TVFJJTkdfTU9ERToiUVNNIixQSFJBU0FMX1dPUkRTX01P
REU6IlBXTSIsQ19MSU5FX0NPTU1FTlRfTU9ERToiQ0xDTSIsQ19CTE9DS19DT01NRU5UX01PREU6IkNC
Q00iLEhBU0hfQ09NTUVOVF9NT0RFOiJIQ00iLE5VTUJFUl9NT0RFOiJOTSIsQ19OVU1CRVJfTU9ERToi
Q05NIixCSU5BUllfTlVNQkVSX01PREU6IkJOTSIsQ1NTX05VTUJFUl9NT0RFOiJDU1NOTSIsUkVHRVhQ
X01PREU6IlJNIixUSVRMRV9NT0RFOiJUTSIsVU5ERVJTQ09SRV9USVRMRV9NT0RFOiJVVE0iLENPTU1F
TlQ6IkMiLGJlZ2luUmU6ImJSIixlbmRSZToiZVIiLGlsbGVnYWxSZToiaVIiLGxleGVtZXNSZToibFIi
LHRlcm1pbmF0b3JzOiJ0Iix0ZXJtaW5hdG9yX2VuZDoidEUifSxiPSI8L3NwYW4+IixoPXtjbGFzc1By
ZWZpeDoiaGxqcy0iLHRhYlJlcGxhY2U6bnVsbCx1c2VCUjohMSxsYW5ndWFnZXM6dm9pZCAwfTtmdW5j
dGlvbiBfKGUpe3JldHVybiBlLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsi
KS5yZXBsYWNlKC8+L2csIiZndDsiKX1mdW5jdGlvbiBFKGUpe3JldHVybiBlLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCl9ZnVuY3Rpb24gdihlLG4pe3ZhciB0PWUmJmUuZXhlYyhuKTtyZXR1cm4gdCYmMD09PXQu
aW5kZXh9ZnVuY3Rpb24gbChlKXtyZXR1cm4gbi50ZXN0KGUpfWZ1bmN0aW9uIGcoZSl7dmFyIG4sdD17
fSxyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtmb3IobiBpbiBlKXRbbl09
ZVtuXTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZvcihuIGluIGUpdFtuXT1lW25dfSksdH1m
dW5jdGlvbiBSKGUpe3ZhciBhPVtdO3JldHVybiBmdW5jdGlvbiBlKG4sdCl7Zm9yKHZhciByPW4uZmly
c3RDaGlsZDtyO3I9ci5uZXh0U2libGluZykzPT09ci5ub2RlVHlwZT90Kz1yLm5vZGVWYWx1ZS5sZW5n
dGg6MT09PXIubm9kZVR5cGUmJihhLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0OnQsbm9kZTpyfSks
dD1lKHIsdCksRShyKS5tYXRjaCgvYnJ8aHJ8aW1nfGlucHV0Lyl8fGEucHVzaCh7ZXZlbnQ6InN0b3Ai
LG9mZnNldDp0LG5vZGU6cn0pKTtyZXR1cm4gdH0oZSwwKSxhfWZ1bmN0aW9uIGkoZSl7aWYociYmIWUu
bGFuZ0FwaVJlc3RvcmVkKXtmb3IodmFyIG4gaW4gZS5sYW5nQXBpUmVzdG9yZWQ9ITAscillW25dJiYo
ZVtyW25dXT1lW25dKTsoZS5jfHxbXSkuY29uY2F0KGUudnx8W10pLmZvckVhY2goaSl9fWZ1bmN0aW9u
IG0obyl7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5zb3VyY2V8fGV9ZnVuY3Rpb24gYyhlLG4pe3Jl
dHVybiBuZXcgUmVnRXhwKHMoZSksIm0iKyhvLmNJPyJpIjoiIikrKG4/ImciOiIiKSl9IWZ1bmN0aW9u
IG4odCxlKXtpZighdC5jb21waWxlZCl7aWYodC5jb21waWxlZD0hMCx0Lms9dC5rfHx0LmJLLHQuayl7
ZnVuY3Rpb24gcih0LGUpe28uY0kmJihlPWUudG9Mb3dlckNhc2UoKSksZS5zcGxpdCgiICIpLmZvckVh
Y2goZnVuY3Rpb24oZSl7dmFyIG49ZS5zcGxpdCgifCIpO2FbblswXV09W3QsblsxXT9OdW1iZXIoblsx
XSk6MV19KX12YXIgYT17fTsic3RyaW5nIj09dHlwZW9mIHQuaz9yKCJrZXl3b3JkIix0LmspOnUodC5r
KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IoZSx0LmtbZV0pfSksdC5rPWF9dC5sUj1jKHQubHx8L1x3Ky8s
ITApLGUmJih0LmJLJiYodC5iPSJcXGIoIit0LmJLLnNwbGl0KCIgIikuam9pbigifCIpKyIpXFxiIiks
dC5ifHwodC5iPS9cQnxcYi8pLHQuYlI9Yyh0LmIpLHQuZW5kU2FtZUFzQmVnaW4mJih0LmU9dC5iKSx0
LmV8fHQuZVd8fCh0LmU9L1xCfFxiLyksdC5lJiYodC5lUj1jKHQuZSkpLHQudEU9cyh0LmUpfHwiIix0
LmVXJiZlLnRFJiYodC50RSs9KHQuZT8ifCI6IiIpK2UudEUpKSx0LmkmJih0LmlSPWModC5pKSksbnVs
bD09dC5yJiYodC5yPTEpLHQuY3x8KHQuYz1bXSksdC5jPUFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBw
bHkoW10sdC5jLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4udiYmIW4u
Y2FjaGVkX3ZhcmlhbnRzJiYobi5jYWNoZWRfdmFyaWFudHM9bi52Lm1hcChmdW5jdGlvbihlKXtyZXR1
cm4gZyhuLHt2Om51bGx9LGUpfSkpLG4uY2FjaGVkX3ZhcmlhbnRzfHxuLmVXJiZbZyhuKV18fFtuXX0o
InNlbGYiPT09ZT90OmUpfSkpLHQuYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe24oZSx0KX0pLHQuc3RhcnRz
JiZuKHQuc3RhcnRzLGUpO3ZhciBpPXQuYy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYks/IlxcLj8o
PzoiK2UuYisiKVxcLj8iOmUuYn0pLmNvbmNhdChbdC50RSx0LmldKS5tYXAocykuZmlsdGVyKEJvb2xl
YW4pO3QudD1pLmxlbmd0aD9jKGZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PS9cWyg/OlteXFxcXV18XFwu
KSpcXXxcKFw/P3xcXChbMS05XVswLTldKil8XFwuLyxyPTAsYT0iIixpPTA7aTxlLmxlbmd0aDtpKysp
e3ZhciBvPXIsYz1zKGVbaV0pO2ZvcigwPGkmJihhKz1uKTswPGMubGVuZ3RoOyl7dmFyIHU9dC5leGVj
KGMpO2lmKG51bGw9PXUpe2ErPWM7YnJlYWt9YSs9Yy5zdWJzdHJpbmcoMCx1LmluZGV4KSxjPWMuc3Vi
c3RyaW5nKHUuaW5kZXgrdVswXS5sZW5ndGgpLCJcXCI9PXVbMF1bMF0mJnVbMV0/YSs9IlxcIitTdHJp
bmcoTnVtYmVyKHVbMV0pK28pOihhKz11WzBdLCIoIj09dVswXSYmcisrKX19cmV0dXJuIGF9KGksInwi
KSwhMCk6e2V4ZWM6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19fX0obyl9ZnVuY3Rpb24gQyhlLG4saSx0
KXtmdW5jdGlvbiBjKGUsbix0LHIpe3ZhciBhPSc8c3BhbiBjbGFzcz0iJysocj8iIjpoLmNsYXNzUHJl
Zml4KTtyZXR1cm4gZT8oYSs9ZSsnIj4nKStuKyh0PyIiOmIpOm59ZnVuY3Rpb24gbygpe0UrPW51bGwh
PWwuc0w/ZnVuY3Rpb24oKXt2YXIgZT0ic3RyaW5nIj09dHlwZW9mIGwuc0w7aWYoZSYmIU5bbC5zTF0p
cmV0dXJuIF8oZyk7dmFyIG49ZT9DKGwuc0wsZywhMCxmW2wuc0xdKTpPKGcsbC5zTC5sZW5ndGg/bC5z
TDp2b2lkIDApO3JldHVybiAwPGwuciYmKFIrPW4uciksZSYmKGZbbC5zTF09bi50b3ApLGMobi5sYW5n
dWFnZSxuLnZhbHVlLCExLCEwKX0oKTpmdW5jdGlvbigpe3ZhciBlLG4sdCxyLGEsaSxvO2lmKCFsLmsp
cmV0dXJuIF8oZyk7Zm9yKHI9IiIsbj0wLGwubFIubGFzdEluZGV4PTAsdD1sLmxSLmV4ZWMoZyk7dDsp
cis9XyhnLnN1YnN0cmluZyhuLHQuaW5kZXgpKSxhPWwsaT10LHZvaWQgMCxvPXMuY0k/aVswXS50b0xv
d2VyQ2FzZSgpOmlbMF0sKGU9YS5rLmhhc093blByb3BlcnR5KG8pJiZhLmtbb10pPyhSKz1lWzFdLHIr
PWMoZVswXSxfKHRbMF0pKSk6cis9Xyh0WzBdKSxuPWwubFIubGFzdEluZGV4LHQ9bC5sUi5leGVjKGcp
O3JldHVybiByK18oZy5zdWJzdHIobikpfSgpLGc9IiJ9ZnVuY3Rpb24gdShlKXtFKz1lLmNOP2MoZS5j
TiwiIiwhMCk6IiIsbD1PYmplY3QuY3JlYXRlKGUse3BhcmVudDp7dmFsdWU6bH19KX1mdW5jdGlvbiBy
KGUsbil7aWYoZys9ZSxudWxsPT1uKXJldHVybiBvKCksMDt2YXIgdD1mdW5jdGlvbihlLG4pe3ZhciB0
LHIsYTtmb3IodD0wLHI9bi5jLmxlbmd0aDt0PHI7dCsrKWlmKHYobi5jW3RdLmJSLGUpKXJldHVybiBu
LmNbdF0uZW5kU2FtZUFzQmVnaW4mJihuLmNbdF0uZVI9KGE9bi5jW3RdLmJSLmV4ZWMoZSlbMF0sbmV3
IFJlZ0V4cChhLnJlcGxhY2UoL1stXC9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIiksIm0iKSkpLG4u
Y1t0XX0obixsKTtpZih0KXJldHVybiB0LnNraXA/Zys9bjoodC5lQiYmKGcrPW4pLG8oKSx0LnJCfHx0
LmVCfHwoZz1uKSksdSh0KSx0LnJCPzA6bi5sZW5ndGg7dmFyIHI9ZnVuY3Rpb24gZShuLHQpe2lmKHYo
bi5lUix0KSl7Zm9yKDtuLmVuZHNQYXJlbnQmJm4ucGFyZW50OyluPW4ucGFyZW50O3JldHVybiBufWlm
KG4uZVcpcmV0dXJuIGUobi5wYXJlbnQsdCl9KGwsbik7aWYocil7dmFyIGE9bDtmb3IoYS5za2lwP2cr
PW46KGEuckV8fGEuZUV8fChnKz1uKSxvKCksYS5lRSYmKGc9bikpO2wuY04mJihFKz1iKSxsLnNraXB8
fGwuc0x8fChSKz1sLnIpLChsPWwucGFyZW50KSE9PXIucGFyZW50Oyk7cmV0dXJuIHIuc3RhcnRzJiYo
ci5lbmRTYW1lQXNCZWdpbiYmKHIuc3RhcnRzLmVSPXIuZVIpLHUoci5zdGFydHMpKSxhLnJFPzA6bi5s
ZW5ndGh9aWYoZnVuY3Rpb24oZSxuKXtyZXR1cm4haSYmdihuLmlSLGUpfShuLGwpKXRocm93IG5ldyBF
cnJvcignSWxsZWdhbCBsZXhlbWUgIicrbisnIiBmb3IgbW9kZSAiJysobC5jTnx8Ijx1bm5hbWVkPiIp
KyciJyk7cmV0dXJuIGcrPW4sbi5sZW5ndGh8fDF9dmFyIHM9QihlKTtpZighcyl0aHJvdyBuZXcgRXJy
b3IoJ1Vua25vd24gbGFuZ3VhZ2U6ICInK2UrJyInKTttKHMpO3ZhciBhLGw9dHx8cyxmPXt9LEU9IiI7
Zm9yKGE9bDthIT09czthPWEucGFyZW50KWEuY04mJihFPWMoYS5jTiwiIiwhMCkrRSk7dmFyIGc9IiIs
Uj0wO3RyeXtmb3IodmFyIGQscCxNPTA7bC50Lmxhc3RJbmRleD1NLGQ9bC50LmV4ZWMobik7KXA9cihu
LnN1YnN0cmluZyhNLGQuaW5kZXgpLGRbMF0pLE09ZC5pbmRleCtwO2ZvcihyKG4uc3Vic3RyKE0pKSxh
PWw7YS5wYXJlbnQ7YT1hLnBhcmVudClhLmNOJiYoRSs9Yik7cmV0dXJue3I6Uix2YWx1ZTpFLGxhbmd1
YWdlOmUsdG9wOmx9fWNhdGNoKGUpe2lmKGUubWVzc2FnZSYmLTEhPT1lLm1lc3NhZ2UuaW5kZXhPZigi
SWxsZWdhbCIpKXJldHVybntyOjAsdmFsdWU6XyhuKX07dGhyb3cgZX19ZnVuY3Rpb24gTyh0LGUpe2U9
ZXx8aC5sYW5ndWFnZXN8fHUoTik7dmFyIHI9e3I6MCx2YWx1ZTpfKHQpfSxhPXI7cmV0dXJuIGUuZmls
dGVyKEIpLmZpbHRlcihNKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPUMoZSx0LCExKTtuLmxhbmd1
YWdlPWUsbi5yPmEuciYmKGE9biksbi5yPnIuciYmKGE9cixyPW4pfSksYS5sYW5ndWFnZSYmKHIuc2Vj
b25kX2Jlc3Q9YSkscn1mdW5jdGlvbiBkKGUpe3JldHVybiBoLnRhYlJlcGxhY2V8fGgudXNlQlI/ZS5y
ZXBsYWNlKHQsZnVuY3Rpb24oZSxuKXtyZXR1cm4gaC51c2VCUiYmIlxuIj09PWU/Ijxicj4iOmgudGFi
UmVwbGFjZT9uLnJlcGxhY2UoL1x0L2csaC50YWJSZXBsYWNlKToiIn0pOmV9ZnVuY3Rpb24gbyhlKXt2
YXIgbix0LHIsYSxpLG89ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLGEsaT1lLmNsYXNzTmFtZSsiICI7aWYo
aSs9ZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5jbGFzc05hbWU6IiIsdD1zLmV4ZWMoaSkpcmV0dXJu
IEIodFsxXSk/dFsxXToibm8taGlnaGxpZ2h0Ijtmb3Iobj0wLHI9KGk9aS5zcGxpdCgvXHMrLykpLmxl
bmd0aDtuPHI7bisrKWlmKGwoYT1pW25dKXx8QihhKSlyZXR1cm4gYX0oZSk7bChvKXx8KGgudXNlQlI/
KG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwi
ZGl2IikpLmlubmVySFRNTD1lLmlubmVySFRNTC5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC88YnJb
IFwvXSo+L2csIlxuIik6bj1lLGk9bi50ZXh0Q29udGVudCxyPW8/QyhvLGksITApOk8oaSksKHQ9Uihu
KSkubGVuZ3RoJiYoKGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwiZGl2IikpLmlubmVySFRNTD1yLnZhbHVlLHIudmFsdWU9ZnVuY3Rpb24oZSxuLHQp
e3ZhciByPTAsYT0iIixpPVtdO2Z1bmN0aW9uIG8oKXtyZXR1cm4gZS5sZW5ndGgmJm4ubGVuZ3RoP2Vb
MF0ub2Zmc2V0IT09blswXS5vZmZzZXQ/ZVswXS5vZmZzZXQ8blswXS5vZmZzZXQ/ZTpuOiJzdGFydCI9
PT1uWzBdLmV2ZW50P2U6bjplLmxlbmd0aD9lOm59ZnVuY3Rpb24gYyhlKXthKz0iPCIrRShlKStmLm1h
cC5jYWxsKGUuYXR0cmlidXRlcyxmdW5jdGlvbihlKXtyZXR1cm4iICIrZS5ub2RlTmFtZSsnPSInK18o
ZS52YWx1ZSkucmVwbGFjZSgnIicsIiZxdW90OyIpKyciJ30pLmpvaW4oIiIpKyI+In1mdW5jdGlvbiB1
KGUpe2ErPSI8LyIrRShlKSsiPiJ9ZnVuY3Rpb24gcyhlKXsoInN0YXJ0Ij09PWUuZXZlbnQ/Yzp1KShl
Lm5vZGUpfWZvcig7ZS5sZW5ndGh8fG4ubGVuZ3RoOyl7dmFyIGw9bygpO2lmKGErPV8odC5zdWJzdHJp
bmcocixsWzBdLm9mZnNldCkpLHI9bFswXS5vZmZzZXQsbD09PWUpe2ZvcihpLnJldmVyc2UoKS5mb3JF
YWNoKHUpO3MobC5zcGxpY2UoMCwxKVswXSksKGw9bygpKT09PWUmJmwubGVuZ3RoJiZsWzBdLm9mZnNl
dD09PXI7KTtpLnJldmVyc2UoKS5mb3JFYWNoKGMpfWVsc2Uic3RhcnQiPT09bFswXS5ldmVudD9pLnB1
c2gobFswXS5ub2RlKTppLnBvcCgpLHMobC5zcGxpY2UoMCwxKVswXSl9cmV0dXJuIGErXyh0LnN1YnN0
cihyKSl9KHQsUihhKSxpKSksci52YWx1ZT1kKHIudmFsdWUpLGUuaW5uZXJIVE1MPXIudmFsdWUsZS5j
bGFzc05hbWU9ZnVuY3Rpb24oZSxuLHQpe3ZhciByPW4/Y1tuXTp0LGE9W2UudHJpbSgpXTtyZXR1cm4g
ZS5tYXRjaCgvXGJobGpzXGIvKXx8YS5wdXNoKCJobGpzIiksLTE9PT1lLmluZGV4T2YocikmJmEucHVz
aChyKSxhLmpvaW4oIiAiKS50cmltKCl9KGUuY2xhc3NOYW1lLG8sci5sYW5ndWFnZSksZS5yZXN1bHQ9
e2xhbmd1YWdlOnIubGFuZ3VhZ2UscmU6ci5yfSxyLnNlY29uZF9iZXN0JiYoZS5zZWNvbmRfYmVzdD17
bGFuZ3VhZ2U6ci5zZWNvbmRfYmVzdC5sYW5ndWFnZSxyZTpyLnNlY29uZF9iZXN0LnJ9KSl9ZnVuY3Rp
b24gcCgpe2lmKCFwLmNhbGxlZCl7cC5jYWxsZWQ9ITA7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgicHJlIGNvZGUiKTtmLmZvckVhY2guY2FsbChlLG8pfX1mdW5jdGlvbiBCKGUpe3JldHVybiBl
PShlfHwiIikudG9Mb3dlckNhc2UoKSxOW2VdfHxOW2NbZV1dfWZ1bmN0aW9uIE0oZSl7dmFyIG49Qihl
KTtyZXR1cm4gbiYmIW4uZGlzYWJsZUF1dG9kZXRlY3R9cmV0dXJuIGEuaGlnaGxpZ2h0PUMsYS5oaWdo
bGlnaHRBdXRvPU8sYS5maXhNYXJrdXA9ZCxhLmhpZ2hsaWdodEJsb2NrPW8sYS5jb25maWd1cmU9ZnVu
Y3Rpb24oZSl7aD1nKGgsZSl9LGEuaW5pdEhpZ2hsaWdodGluZz1wLGEuaW5pdEhpZ2hsaWdodGluZ09u
TG9hZD1mdW5jdGlvbigpe2FkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHAsITEpLGFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLHAsITEpfSxhLnJlZ2lzdGVyTGFuZ3VhZ2U9ZnVuY3Rpb24obixl
KXt2YXIgdD1OW25dPWUoYSk7aSh0KSx0LmFsaWFzZXMmJnQuYWxpYXNlcy5mb3JFYWNoKGZ1bmN0aW9u
KGUpe2NbZV09bn0pfSxhLmxpc3RMYW5ndWFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdShOKX0sYS5nZXRM
YW5ndWFnZT1CLGEuYXV0b0RldGVjdGlvbj1NLGEuaW5oZXJpdD1nLGEuSVI9YS5JREVOVF9SRT0iW2Et
ekEtWl1cXHcqIixhLlVJUj1hLlVOREVSU0NPUkVfSURFTlRfUkU9IlthLXpBLVpfXVxcdyoiLGEuTlI9
YS5OVU1CRVJfUkU9IlxcYlxcZCsoXFwuXFxkKyk/IixhLkNOUj1hLkNfTlVNQkVSX1JFPSIoLT8pKFxc
YjBbeFhdW2EtZkEtRjAtOV0rfChcXGJcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQr
KT8pIixhLkJOUj1hLkJJTkFSWV9OVU1CRVJfUkU9IlxcYigwYlswMV0rKSIsYS5SU1I9YS5SRV9TVEFS
VEVSU19SRT0iIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcKnxcXCo9fFxcK3xcXCs9fCx8LXwtPXwvPXwv
fDp8O3w8PHw8PD18PD18PHw9PT18PT18PXw+Pj49fD4+PXw+PXw+Pj58Pj58PnxcXD98XFxbfFxce3xc
XCh8XFxefFxcXj18XFx8fFxcfD18XFx8XFx8fH4iLGEuQkU9YS5CQUNLU0xBU0hfRVNDQVBFPXtiOiJc
XFxcW1xcc1xcU10iLHI6MH0sYS5BU009YS5BUE9TX1NUUklOR19NT0RFPXtjTjoic3RyaW5nIixiOiIn
IixlOiInIixpOiJcXG4iLGM6W2EuQkVdfSxhLlFTTT1hLlFVT1RFX1NUUklOR19NT0RFPXtjTjoic3Ry
aW5nIixiOiciJyxlOiciJyxpOiJcXG4iLGM6W2EuQkVdfSxhLlBXTT1hLlBIUkFTQUxfV09SRFNfTU9E
RT17YjovXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0
fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlv
dXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxiL30sYS5DPWEuQ09NTUVOVD1mdW5jdGlvbihlLG4sdCl7dmFy
IHI9YS5pbmhlcml0KHtjTjoiY29tbWVudCIsYjplLGU6bixjOltdfSx0fHx7fSk7cmV0dXJuIHIuYy5w
dXNoKGEuUFdNKSxyLmMucHVzaCh7Y046ImRvY3RhZyIsYjoiKD86VE9ET3xGSVhNRXxOT1RFfEJVR3xY
WFgpOiIscjowfSkscn0sYS5DTENNPWEuQ19MSU5FX0NPTU1FTlRfTU9ERT1hLkMoIi8vIiwiJCIpLGEu
Q0JDTT1hLkNfQkxPQ0tfQ09NTUVOVF9NT0RFPWEuQygiL1xcKiIsIlxcKi8iKSxhLkhDTT1hLkhBU0hf
Q09NTUVOVF9NT0RFPWEuQygiIyIsIiQiKSxhLk5NPWEuTlVNQkVSX01PREU9e2NOOiJudW1iZXIiLGI6
YS5OUixyOjB9LGEuQ05NPWEuQ19OVU1CRVJfTU9ERT17Y046Im51bWJlciIsYjphLkNOUixyOjB9LGEu
Qk5NPWEuQklOQVJZX05VTUJFUl9NT0RFPXtjTjoibnVtYmVyIixiOmEuQk5SLHI6MH0sYS5DU1NOTT1h
LkNTU19OVU1CRVJfTU9ERT17Y046Im51bWJlciIsYjphLk5SKyIoJXxlbXxleHxjaHxyZW18dnd8dmh8
dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjfHB4fGRlZ3xncmFkfHJhZHx0dXJufHN8bXN8SHp8a0h6fGRw
aXxkcGNtfGRwcHgpPyIscjowfSxhLlJNPWEuUkVHRVhQX01PREU9e2NOOiJyZWdleHAiLGI6L1wvLyxl
Oi9cL1tnaW11eV0qLyxpOi9cbi8sYzpbYS5CRSx7YjovXFsvLGU6L1xdLyxyOjAsYzpbYS5CRV19XX0s
YS5UTT1hLlRJVExFX01PREU9e2NOOiJ0aXRsZSIsYjphLklSLHI6MH0sYS5VVE09YS5VTkRFUlNDT1JF
X1RJVExFX01PREU9e2NOOiJ0aXRsZSIsYjphLlVJUixyOjB9LGEuTUVUSE9EX0dVQVJEPXtiOiJcXC5c
XHMqIithLlVJUixyOjB9LGF9KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInhtbCIsZnVuY3Rpb24ocyl7
dmFyIGU9e2VXOiEwLGk6LzwvLHI6MCxjOlt7Y046ImF0dHIiLGI6IltBLVphLXowLTlcXC5fOi1dKyIs
cjowfSx7YjovPVxzKi8scjowLGM6W3tjTjoic3RyaW5nIixlbmRzUGFyZW50OiEwLHY6W3tiOi8iLyxl
Oi8iL30se2I6LycvLGU6LycvfSx7YjovW15ccyInPTw+YF0rL31dfV19XX07cmV0dXJue2FsaWFzZXM6
WyJodG1sIiwieGh0bWwiLCJyc3MiLCJhdG9tIiwieGpiIiwieHNkIiwieHNsIiwicGxpc3QiLCJ3c2Yi
XSxjSTohMCxjOlt7Y046Im1ldGEiLGI6IjwhRE9DVFlQRSIsZToiPiIscjoxMCxjOlt7YjoiXFxbIixl
OiJcXF0ifV19LHMuQygiXHgzYyEtLSIsIi0tXHgzZSIse3I6MTB9KSx7YjoiPFxcIVxcW0NEQVRBXFxb
IixlOiJcXF1cXF0+IixyOjEwfSx7Y046Im1ldGEiLGI6LzxcP3htbC8sZTovXD8+LyxyOjEwfSx7Yjov
PFw/KHBocCk/LyxlOi9cPz4vLHNMOiJwaHAiLGM6W3tiOiIvXFwqIixlOiJcXCovIixza2lwOiEwfSx7
YjonYiInLGU6JyInLHNraXA6ITB9LHtiOiJiJyIsZToiJyIsc2tpcDohMH0scy5pbmhlcml0KHMuQVNN
LHtpOm51bGwsY046bnVsbCxjOm51bGwsc2tpcDohMH0pLHMuaW5oZXJpdChzLlFTTSx7aTpudWxsLGNO
Om51bGwsYzpudWxsLHNraXA6ITB9KV19LHtjTjoidGFnIixiOiI8c3R5bGUoPz1cXHN8PnwkKSIsZToi
PiIsazp7bmFtZToic3R5bGUifSxjOltlXSxzdGFydHM6e2U6Ijwvc3R5bGU+IixyRTohMCxzTDpbImNz
cyIsInhtbCJdfX0se2NOOiJ0YWciLGI6IjxzY3JpcHQoPz1cXHN8PnwkKSIsZToiPiIsazp7bmFtZToi
c2NyaXB0In0sYzpbZV0sc3RhcnRzOntlOiI8XC9zY3JpcHQ+IixyRTohMCxzTDpbImFjdGlvbnNjcmlw
dCIsImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIiwidmJzY3JpcHQiXX19LHtjTjoidGFnIixi
OiI8Lz8iLGU6Ii8/PiIsYzpbe2NOOiJuYW1lIixiOi9bXlwvPjxcc10rLyxyOjB9LGVdfV19fSk7aGxq
cy5yZWdpc3Rlckxhbmd1YWdlKCJtYXJrZG93biIsZnVuY3Rpb24oZSl7cmV0dXJue2FsaWFzZXM6WyJt
ZCIsIm1rZG93biIsIm1rZCJdLGM6W3tjTjoic2VjdGlvbiIsdjpbe2I6Il4jezEsNn0iLGU6IiQifSx7
YjoiXi4rP1xcbls9LV17Mix9JCJ9XX0se2I6IjwiLGU6Ij4iLHNMOiJ4bWwiLHI6MH0se2NOOiJidWxs
ZXQiLGI6Il5cXHMqKFsqKy1dfChcXGQrXFwuKSlcXHMrIn0se2NOOiJzdHJvbmciLGI6IlsqX117Mn0u
Kz9bKl9dezJ9In0se2NOOiJlbXBoYXNpcyIsdjpbe2I6IlxcKi4rP1xcKiJ9LHtiOiJfLis/XyIscjow
fV19LHtjTjoicXVvdGUiLGI6Il4+XFxzKyIsZToiJCJ9LHtjTjoiY29kZSIsdjpbe2I6Il5gYGB3KnMq
JCIsZToiXmBgYHMqJCJ9LHtiOiJgLis/YCJ9LHtiOiJeKCB7NH18XHQpIixlOiIkIixyOjB9XX0se2I6
Il5bLVxcKl17Myx9IixlOiIkIn0se2I6IlxcWy4rP1xcXVtcXChcXFtdLio/W1xcKVxcXV0iLHJCOiEw
LGM6W3tjTjoic3RyaW5nIixiOiJcXFsiLGU6IlxcXSIsZUI6ITAsckU6ITAscjowfSx7Y046Imxpbmsi
LGI6IlxcXVxcKCIsZToiXFwpIixlQjohMCxlRTohMH0se2NOOiJzeW1ib2wiLGI6IlxcXVxcWyIsZToi
XFxdIixlQjohMCxlRTohMH1dLHI6MTB9LHtiOi9eXFtbXlxuXStcXTovLHJCOiEwLGM6W3tjTjoic3lt
Ym9sIixiOi9cWy8sZTovXF0vLGVCOiEwLGVFOiEwfSx7Y046ImxpbmsiLGI6LzpccyovLGU6LyQvLGVC
OiEwfV19XX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImRhcnQiLGZ1bmN0aW9uKGUpe3ZhciB0PXtj
Tjoic3Vic3QiLHY6W3tiOiJcXCRbQS1aYS16MC05X10rIn1dfSxyPXtjTjoic3Vic3QiLHY6W3tiOiJc
XCR7IixlOiJ9In1dLGs6InRydWUgZmFsc2UgbnVsbCB0aGlzIGlzIG5ldyBzdXBlciJ9LG49e2NOOiJz
dHJpbmciLHY6W3tiOiJyJycnIixlOiInJycifSx7YjonciIiIicsZTonIiIiJ30se2I6InInIixlOiIn
IixpOiJcXG4ifSx7YjonciInLGU6JyInLGk6IlxcbiJ9LHtiOiInJyciLGU6IicnJyIsYzpbZS5CRSx0
LHJdfSx7YjonIiIiJyxlOiciIiInLGM6W2UuQkUsdCxyXX0se2I6IiciLGU6IiciLGk6IlxcbiIsYzpb
ZS5CRSx0LHJdfSx7YjonIicsZTonIicsaToiXFxuIixjOltlLkJFLHQscl19XX07ci5jPVtlLkNOTSxu
XTtyZXR1cm57azp7a2V5d29yZDoiYXNzZXJ0IGFzeW5jIGF3YWl0IGJyZWFrIGNhc2UgY2F0Y2ggY2xh
c3MgY29uc3QgY29udGludWUgZGVmYXVsdCBkbyBlbHNlIGVudW0gZXh0ZW5kcyBmYWxzZSBmaW5hbCBm
aW5hbGx5IGZvciBpZiBpbiBpcyBuZXcgbnVsbCByZXRocm93IHJldHVybiBzdXBlciBzd2l0Y2ggc3lu
YyB0aGlzIHRocm93IHRydWUgdHJ5IHZhciB2b2lkIHdoaWxlIHdpdGggeWllbGQgYWJzdHJhY3QgYXMg
ZHluYW1pYyBleHBvcnQgZXh0ZXJuYWwgZmFjdG9yeSBnZXQgaW1wbGVtZW50cyBpbXBvcnQgbGlicmFy
eSBvcGVyYXRvciBwYXJ0IHNldCBzdGF0aWMgdHlwZWRlZiIsYnVpbHRfaW46InByaW50IENvbXBhcmFi
bGUgRGF0ZVRpbWUgRHVyYXRpb24gRnVuY3Rpb24gSXRlcmFibGUgSXRlcmF0b3IgTGlzdCBNYXAgTWF0
Y2ggTnVsbCBPYmplY3QgUGF0dGVybiBSZWdFeHAgU2V0IFN0b3B3YXRjaCBTdHJpbmcgU3RyaW5nQnVm
ZmVyIFN0cmluZ1NpbmsgU3ltYm9sIFR5cGUgVXJpIGJvb2wgZG91YmxlIGludCBudW0gZG9jdW1lbnQg
d2luZG93IHF1ZXJ5U2VsZWN0b3IgcXVlcnlTZWxlY3RvckFsbCBFbGVtZW50IEVsZW1lbnRMaXN0In0s
YzpbbixlLkMoIi9cXCpcXCoiLCJcXCovIix7c0w6Im1hcmtkb3duIn0pLGUuQygiLy8vIiwiJCIse3NM
OiJtYXJrZG93biJ9KSxlLkNMQ00sZS5DQkNNLHtjTjoiY2xhc3MiLGJLOiJjbGFzcyBpbnRlcmZhY2Ui
LGU6InsiLGVFOiEwLGM6W3tiSzoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sZS5VVE1dfSxlLkNOTSx7Y046
Im1ldGEiLGI6IkBbQS1aYS16XSsifSx7YjoiPT4ifV19fSk7Cg==
''';
String _migration_js;
// migration_dart md5 is '18178aa7baafdeeeb6b040e74fc6c973'
String _migration_js_base64 = '''
KGZ1bmN0aW9uIGRhcnRQcm9ncmFtKCl7ZnVuY3Rpb24gY29weVByb3BlcnRpZXMoYSxiKXt2YXIgdD1P
YmplY3Qua2V5cyhhKQpmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKyl7dmFyIHI9dFtzXQpiW3JdPWFb
cl19fXZhciB6PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9CnQucHJvdG90eXBlPXtwOnt9fQp2
YXIgcz1uZXcgdCgpCmlmKCEocy5fX3Byb3RvX18mJnMuX19wcm90b19fLnA9PT10LnByb3RvdHlwZS5w
KSlyZXR1cm4gZmFsc2UKdHJ5e2lmKHR5cGVvZiBuYXZpZ2F0b3IhPSJ1bmRlZmluZWQiJiZ0eXBlb2Yg
bmF2aWdhdG9yLnVzZXJBZ2VudD09InN0cmluZyImJm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigi
Q2hyb21lLyIpPj0wKXJldHVybiB0cnVlCmlmKHR5cGVvZiB2ZXJzaW9uPT0iZnVuY3Rpb24iJiZ2ZXJz
aW9uLmxlbmd0aD09MCl7dmFyIHI9dmVyc2lvbigpCmlmKC9eXGQrXC5cZCtcLlxkK1wuXGQrJC8udGVz
dChyKSlyZXR1cm4gdHJ1ZX19Y2F0Y2gocSl7fXJldHVybiBmYWxzZX0oKQpmdW5jdGlvbiBzZXRGdW5j
dGlvbk5hbWVzSWZOZWNlc3NhcnkoYSl7ZnVuY3Rpb24gdCgpe307aWYodHlwZW9mIHQubmFtZT09InN0
cmluZyIpcmV0dXJuCmZvcih2YXIgdD0wO3Q8YS5sZW5ndGg7dCsrKXt2YXIgcz1hW3RdCnZhciByPU9i
amVjdC5rZXlzKHMpCmZvcih2YXIgcT0wO3E8ci5sZW5ndGg7cSsrKXt2YXIgcD1yW3FdCnZhciBvPXNb
cF0KaWYodHlwZW9mIG89PSdmdW5jdGlvbicpby5uYW1lPXB9fX1mdW5jdGlvbiBpbmhlcml0KGEsYil7
YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YQphLnByb3RvdHlwZVsiJGkiK2EubmFtZV09YQppZihiIT1u
dWxsKXtpZih6KXthLnByb3RvdHlwZS5fX3Byb3RvX189Yi5wcm90b3R5cGUKcmV0dXJufXZhciB0PU9i
amVjdC5jcmVhdGUoYi5wcm90b3R5cGUpCmNvcHlQcm9wZXJ0aWVzKGEucHJvdG90eXBlLHQpCmEucHJv
dG90eXBlPXR9fWZ1bmN0aW9uIGluaGVyaXRNYW55KGEsYil7Zm9yKHZhciB0PTA7dDxiLmxlbmd0aDt0
KyspaW5oZXJpdChiW3RdLGEpfWZ1bmN0aW9uIG1peGluKGEsYil7Y29weVByb3BlcnRpZXMoYi5wcm90
b3R5cGUsYS5wcm90b3R5cGUpCmEucHJvdG90eXBlLmNvbnN0cnVjdG9yPWF9ZnVuY3Rpb24gbGF6eShh
LGIsYyxkKXt2YXIgdD1hCmFbYl09dAphW2NdPWZ1bmN0aW9uKCl7YVtjXT1mdW5jdGlvbigpe0guYWco
Yil9CnZhciBzCnZhciByPWQKdHJ5e2lmKGFbYl09PT10KXtzPWFbYl09cgpzPWFbYl09ZCgpfWVsc2Ug
cz1hW2JdfWZpbmFsbHl7aWYocz09PXIpYVtiXT1udWxsCmFbY109ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
c1tiXX19cmV0dXJuIHN9fWZ1bmN0aW9uIG1ha2VDb25zdExpc3QoYSl7YS5pbW11dGFibGUkbGlzdD1B
cnJheQphLmZpeGVkJGxlbmd0aD1BcnJheQpyZXR1cm4gYX1mdW5jdGlvbiBjb252ZXJ0VG9GYXN0T2Jq
ZWN0KGEpe2Z1bmN0aW9uIHQoKXt9dC5wcm90b3R5cGU9YQpuZXcgdCgpCnJldHVybiBhfWZ1bmN0aW9u
IGNvbnZlcnRBbGxUb0Zhc3RPYmplY3QoYSl7Zm9yKHZhciB0PTA7dDxhLmxlbmd0aDsrK3QpY29udmVy
dFRvRmFzdE9iamVjdChhW3RdKX12YXIgeT0wCmZ1bmN0aW9uIHRlYXJPZmZHZXR0ZXIoYSxiLGMsZCxl
KXtyZXR1cm4gZT9uZXcgRnVuY3Rpb24oImZ1bmNzIiwiYXBwbHlUcmFtcG9saW5lSW5kZXgiLCJyZWZs
ZWN0aW9uSW5mbyIsIm5hbWUiLCJIIiwiYyIsInJldHVybiBmdW5jdGlvbiB0ZWFyT2ZmXyIrZCt5Kysr
IihyZWNlaXZlcikgeyIrImlmIChjID09PSBudWxsKSBjID0gIisiSC5LcSIrIigiKyJ0aGlzLCBmdW5j
cywgYXBwbHlUcmFtcG9saW5lSW5kZXgsIHJlZmxlY3Rpb25JbmZvLCBmYWxzZSwgdHJ1ZSwgbmFtZSk7
IisicmV0dXJuIG5ldyBjKHRoaXMsIGZ1bmNzWzBdLCByZWNlaXZlciwgbmFtZSk7IisifSIpKGEsYixj
LGQsSCxudWxsKTpuZXcgRnVuY3Rpb24oImZ1bmNzIiwiYXBwbHlUcmFtcG9saW5lSW5kZXgiLCJyZWZs
ZWN0aW9uSW5mbyIsIm5hbWUiLCJIIiwiYyIsInJldHVybiBmdW5jdGlvbiB0ZWFyT2ZmXyIrZCt5Kysr
IigpIHsiKyJpZiAoYyA9PT0gbnVsbCkgYyA9ICIrIkguS3EiKyIoIisidGhpcywgZnVuY3MsIGFwcGx5
VHJhbXBvbGluZUluZGV4LCByZWZsZWN0aW9uSW5mbywgZmFsc2UsIGZhbHNlLCBuYW1lKTsiKyJyZXR1
cm4gbmV3IGModGhpcywgZnVuY3NbMF0sIG51bGwsIG5hbWUpOyIrIn0iKShhLGIsYyxkLEgsbnVsbCl9
ZnVuY3Rpb24gdGVhck9mZihhLGIsYyxkLGUsZil7dmFyIHQ9bnVsbApyZXR1cm4gZD9mdW5jdGlvbigp
e2lmKHQ9PT1udWxsKXQ9SC5LcSh0aGlzLGEsYixjLHRydWUsZmFsc2UsZSkucHJvdG90eXBlCnJldHVy
biB0fTp0ZWFyT2ZmR2V0dGVyKGEsYixjLGUsZil9dmFyIHg9MApmdW5jdGlvbiBpbnN0YWxsVGVhck9m
ZihhLGIsYyxkLGUsZixnLGgsaSxqKXt2YXIgdD1bXQpmb3IodmFyIHM9MDtzPGgubGVuZ3RoO3MrKyl7
dmFyIHI9aFtzXQppZih0eXBlb2Ygcj09J3N0cmluZycpcj1hW3JdCnIuJGNhbGxOYW1lPWdbc10KdC5w
dXNoKHIpfXZhciByPXRbMF0Kci4kUj1lCnIuJEQ9Zgp2YXIgcT1pCmlmKHR5cGVvZiBxPT0ibnVtYmVy
IilxKz14CnZhciBwPWhbMF0Kci4kc3R1Yk5hbWU9cAp2YXIgbz10ZWFyT2ZmKHQsanx8MCxxLGMscCxk
KQphW2JdPW8KaWYoYylyLiR0ZWFyT2ZmPW99ZnVuY3Rpb24gaW5zdGFsbFN0YXRpY1RlYXJPZmYoYSxi
LGMsZCxlLGYsZyxoKXtyZXR1cm4gaW5zdGFsbFRlYXJPZmYoYSxiLHRydWUsZmFsc2UsYyxkLGUsZixn
LGgpfWZ1bmN0aW9uIGluc3RhbGxJbnN0YW5jZVRlYXJPZmYoYSxiLGMsZCxlLGYsZyxoLGkpe3JldHVy
biBpbnN0YWxsVGVhck9mZihhLGIsZmFsc2UsYyxkLGUsZixnLGgsaSl9ZnVuY3Rpb24gc2V0T3JVcGRh
dGVJbnRlcmNlcHRvcnNCeVRhZyhhKXt2YXIgdD12LmludGVyY2VwdG9yc0J5VGFnCmlmKCF0KXt2Lmlu
dGVyY2VwdG9yc0J5VGFnPWEKcmV0dXJufWNvcHlQcm9wZXJ0aWVzKGEsdCl9ZnVuY3Rpb24gc2V0T3JV
cGRhdGVMZWFmVGFncyhhKXt2YXIgdD12LmxlYWZUYWdzCmlmKCF0KXt2LmxlYWZUYWdzPWEKcmV0dXJu
fWNvcHlQcm9wZXJ0aWVzKGEsdCl9ZnVuY3Rpb24gdXBkYXRlVHlwZXMoYSl7dmFyIHQ9di50eXBlcwp2
YXIgcz10Lmxlbmd0aAp0LnB1c2guYXBwbHkodCxhKQpyZXR1cm4gc31mdW5jdGlvbiB1cGRhdGVIb2xk
ZXIoYSxiKXtjb3B5UHJvcGVydGllcyhiLGEpCnJldHVybiBhfXZhciBodW5rSGVscGVycz1mdW5jdGlv
bigpe3ZhciB0PWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyxoLGkpe3JldHVy
biBpbnN0YWxsSW5zdGFuY2VUZWFyT2ZmKGYsZyxhLGIsYyxkLFtoXSxpLGUpfX0scz1mdW5jdGlvbihh
LGIsYyxkKXtyZXR1cm4gZnVuY3Rpb24oZSxmLGcsaCl7cmV0dXJuIGluc3RhbGxTdGF0aWNUZWFyT2Zm
KGUsZixhLGIsYyxbZ10saCxkKX19CnJldHVybntpbmhlcml0OmluaGVyaXQsaW5oZXJpdE1hbnk6aW5o
ZXJpdE1hbnksbWl4aW46bWl4aW4saW5zdGFsbFN0YXRpY1RlYXJPZmY6aW5zdGFsbFN0YXRpY1RlYXJP
ZmYsaW5zdGFsbEluc3RhbmNlVGVhck9mZjppbnN0YWxsSW5zdGFuY2VUZWFyT2ZmLF9pbnN0YW5jZV8w
dTp0KDAsMCxudWxsLFsiJDAiXSwwKSxfaW5zdGFuY2VfMXU6dCgwLDEsbnVsbCxbIiQxIl0sMCksX2lu
c3RhbmNlXzJ1OnQoMCwyLG51bGwsWyIkMiJdLDApLF9pbnN0YW5jZV8waTp0KDEsMCxudWxsLFsiJDAi
XSwwKSxfaW5zdGFuY2VfMWk6dCgxLDEsbnVsbCxbIiQxIl0sMCksX2luc3RhbmNlXzJpOnQoMSwyLG51
bGwsWyIkMiJdLDApLF9zdGF0aWNfMDpzKDAsbnVsbCxbIiQwIl0sMCksX3N0YXRpY18xOnMoMSxudWxs
LFsiJDEiXSwwKSxfc3RhdGljXzI6cygyLG51bGwsWyIkMiJdLDApLG1ha2VDb25zdExpc3Q6bWFrZUNv
bnN0TGlzdCxsYXp5OmxhenksdXBkYXRlSG9sZGVyOnVwZGF0ZUhvbGRlcixjb252ZXJ0VG9GYXN0T2Jq
ZWN0OmNvbnZlcnRUb0Zhc3RPYmplY3Qsc2V0RnVuY3Rpb25OYW1lc0lmTmVjZXNzYXJ5OnNldEZ1bmN0
aW9uTmFtZXNJZk5lY2Vzc2FyeSx1cGRhdGVUeXBlczp1cGRhdGVUeXBlcyxzZXRPclVwZGF0ZUludGVy
Y2VwdG9yc0J5VGFnOnNldE9yVXBkYXRlSW50ZXJjZXB0b3JzQnlUYWcsc2V0T3JVcGRhdGVMZWFmVGFn
czpzZXRPclVwZGF0ZUxlYWZUYWdzfX0oKQpmdW5jdGlvbiBpbml0aWFsaXplRGVmZXJyZWRIdW5rKGEp
e3g9di50eXBlcy5sZW5ndGgKYShodW5rSGVscGVycyx2LHcsJCl9ZnVuY3Rpb24gZ2V0R2xvYmFsRnJv
bU5hbWUoYSl7Zm9yKHZhciB0PTA7dDx3Lmxlbmd0aDt0Kyspe2lmKHdbdF09PUMpY29udGludWUKaWYo
d1t0XVthXSlyZXR1cm4gd1t0XVthXX19dmFyIEM9e30sSD17ZW86ZnVuY3Rpb24gZW8oKXt9LApvbzpm
dW5jdGlvbihhKXt2YXIgdCxzPWFeNDgKaWYoczw9OSlyZXR1cm4gcwp0PWF8MzIKaWYoOTc8PXQmJnQ8
PTEwMilyZXR1cm4gdC04NwpyZXR1cm4tMX0sCnFDOmZ1bmN0aW9uKGEsYixjLGQpe1AuazEoYiwic3Rh
cnQiKQppZihjIT1udWxsKXtQLmsxKGMsImVuZCIpCmlmKGI+YylILnZoKFAuVEUoYiwwLGMsInN0YXJ0
IixudWxsKSl9cmV0dXJuIG5ldyBILm5IKGEsYixjLGQuQygibkg8MD4iKSl9LApXcDpmdW5jdGlvbigp
e3JldHVybiBuZXcgUC5saigiTm8gZWxlbWVudCIpfSwKZFU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFAu
bGooIlRvbyBtYW55IGVsZW1lbnRzIil9LAphcjpmdW5jdGlvbigpe3JldHVybiBuZXcgUC5saigiVG9v
IGZldyBlbGVtZW50cyIpfSwKcWo6ZnVuY3Rpb24gcWooYSl7dGhpcy5hPWF9LApiUTpmdW5jdGlvbiBi
USgpe30sCmFMOmZ1bmN0aW9uIGFMKCl7fSwKbkg6ZnVuY3Rpb24gbkgoYSxiLGMsZCl7dmFyIF89dGhp
cwpfLmE9YQpfLmI9YgpfLmM9YwpfLiR0aT1kfSwKYTc6ZnVuY3Rpb24gYTcoYSxiLGMpe3ZhciBfPXRo
aXMKXy5hPWEKXy5iPWIKXy5jPTAKXy5kPW51bGwKXy4kdGk9Y30sCkE4OmZ1bmN0aW9uIEE4KGEsYixj
KXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLiR0aT1jfSwKVTU6ZnVuY3Rpb24gVTUoYSxiLGMpe3RoaXMu
YT1hCnRoaXMuYj1iCnRoaXMuJHRpPWN9LApTTzpmdW5jdGlvbiBTTyhhLGIsYyl7dGhpcy5hPWEKdGhp
cy5iPWIKdGhpcy4kdGk9Y30sClNVOmZ1bmN0aW9uIFNVKCl7fSwKUmU6ZnVuY3Rpb24gUmUoKXt9LApY
QzpmdW5jdGlvbiBYQygpe30sCnd2OmZ1bmN0aW9uIHd2KGEpe3RoaXMuYT1hfSwKZGM6ZnVuY3Rpb24o
KXt0aHJvdyBILmIoUC5MNCgiQ2Fubm90IG1vZGlmeSB1bm1vZGlmaWFibGUgTWFwIikpfSwKTlE6ZnVu
Y3Rpb24oYSl7dmFyIHQscz1ILkpnKGEpCmlmKHR5cGVvZiBzPT0ic3RyaW5nIilyZXR1cm4gcwp0PSJt
aW5pZmllZDoiK2EKcmV0dXJuIHR9LAp3VjpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGIhPW51bGwpe3Q9
Yi54CmlmKHQhPW51bGwpcmV0dXJuIHR9cmV0dXJuIHUuYVUuYyhhKX0sCmQ6ZnVuY3Rpb24oYSl7dmFy
IHQKaWYodHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBhCmlmKHR5cGVvZiBhPT0ibnVtYmVyIil7aWYo
YSE9PTApcmV0dXJuIiIrYX1lbHNlIGlmKCEwPT09YSlyZXR1cm4idHJ1ZSIKZWxzZSBpZighMT09PWEp
cmV0dXJuImZhbHNlIgplbHNlIGlmKGE9PW51bGwpcmV0dXJuIm51bGwiCnQ9Si5qKGEpCmlmKHR5cGVv
ZiB0IT0ic3RyaW5nIil0aHJvdyBILmIoSC50TChhKSkKcmV0dXJuIHR9LAplUTpmdW5jdGlvbihhKXt2
YXIgdD1hLiRpZGVudGl0eUhhc2gKaWYodD09bnVsbCl7dD1NYXRoLnJhbmRvbSgpKjB4M2ZmZmZmZmZ8
MAphLiRpZGVudGl0eUhhc2g9dH1yZXR1cm4gdH0sCkhwOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEs
cCxvPW51bGwsbj0vXlxzKlsrLV0/KCgweFthLWYwLTldKyl8KFxkKyl8KFthLXowLTldKykpXHMqJC9p
LmV4ZWMoYSkKaWYobj09bnVsbClyZXR1cm4gbwppZigzPj1uLmxlbmd0aClyZXR1cm4gSC5PSChuLDMp
CnQ9SC55KG5bM10pCmlmKGI9PW51bGwpe2lmKHQhPW51bGwpcmV0dXJuIHBhcnNlSW50KGEsMTApCmlm
KG5bMl0hPW51bGwpcmV0dXJuIHBhcnNlSW50KGEsMTYpCnJldHVybiBvfWlmKGI8Mnx8Yj4zNil0aHJv
dyBILmIoUC5URShiLDIsMzYsInJhZGl4IixvKSkKaWYoYj09PTEwJiZ0IT1udWxsKXJldHVybiBwYXJz
ZUludChhLDEwKQppZihiPDEwfHx0PT1udWxsKXtzPWI8PTEwPzQ3K2I6ODYrYgpyPW5bMV0KZm9yKHE9
ci5sZW5ndGgscD0wO3A8cTsrK3ApaWYoKEMueEIuVyhyLHApfDMyKT5zKXJldHVybiBvfXJldHVybiBw
YXJzZUludChhLGIpfSwKTTpmdW5jdGlvbihhKXt2YXIgdD1ILkg1KGEpCnJldHVybiB0fSwKSDU6ZnVu
Y3Rpb24oYSl7dmFyIHQscyxyCmlmKGEgaW5zdGFuY2VvZiBQLmspcmV0dXJuIEguZG0oSC56SyhhKSxu
dWxsKQppZihKLmlhKGEpPT09Qy5Pa3x8dS5hay5jKGEpKXt0PUMuTzQoYSkKaWYoSC5mKHQpKXJldHVy
biB0CnM9YS5jb25zdHJ1Y3RvcgppZih0eXBlb2Ygcz09ImZ1bmN0aW9uIil7cj1zLm5hbWUKaWYodHlw
ZW9mIHI9PSJzdHJpbmciJiZILmYocikpcmV0dXJuIHJ9fXJldHVybiBILmRtKEgueksoYSksbnVsbCl9
LApmOmZ1bmN0aW9uKGEpe3ZhciB0PWEhPT0iT2JqZWN0IiYmYSE9PSIiCnJldHVybiB0fSwKTTA6ZnVu
Y3Rpb24oKXtpZighIXNlbGYubG9jYXRpb24pcmV0dXJuIHNlbGYubG9jYXRpb24uaHJlZgpyZXR1cm4g
bnVsbH0sClZLOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHA9YS5sZW5ndGgKaWYocDw9NTAwKXJldHVy
biBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYSkKZm9yKHQ9IiIscz0wO3M8cDtzPXIpe3I9
cys1MDAKcT1yPHA/cjpwCnQrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLnNsaWNlKHMs
cSkpfXJldHVybiB0fSwKUEw6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9SC5WTShbXSx1LnQpCmZvcih0
PWEubGVuZ3RoLHM9MDtzPGEubGVuZ3RoO2EubGVuZ3RoPT09dHx8KDAsSC5saykoYSksKytzKXtyPWFb
c10KaWYoIUgub2socikpdGhyb3cgSC5iKEgudEwocikpCmlmKHI8PTY1NTM1KUMuTm0uaShxLHIpCmVs
c2UgaWYocjw9MTExNDExMSl7Qy5ObS5pKHEsNTUyOTYrKEMuam4ud0coci02NTUzNiwxMCkmMTAyMykp
CkMuTm0uaShxLDU2MzIwKyhyJjEwMjMpKX1lbHNlIHRocm93IEguYihILnRMKHIpKX1yZXR1cm4gSC5W
SyhxKX0sCmVUOmZ1bmN0aW9uKGEpe3ZhciB0LHMscgpmb3IodD1hLmxlbmd0aCxzPTA7czx0Oysrcyl7
cj1hW3NdCmlmKCFILm9rKHIpKXRocm93IEguYihILnRMKHIpKQppZihyPDApdGhyb3cgSC5iKEgudEwo
cikpCmlmKHI+NjU1MzUpcmV0dXJuIEguUEwoYSl9cmV0dXJuIEguVksoYSl9LApmdzpmdW5jdGlvbihh
LGIsYyl7dmFyIHQscyxyLHEKaWYoYzw9NTAwJiZiPT09MCYmYz09PWEubGVuZ3RoKXJldHVybiBTdHJp
bmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYSkKZm9yKHQ9YixzPSIiO3Q8Yzt0PXIpe3I9dCs1MDAK
cT1yPGM/cjpjCnMrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLnN1YmFycmF5KHQscSkp
fXJldHVybiBzfSwKTHc6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoMDw9YSl7aWYoYTw9NjU1MzUpcmV0dXJu
IFN0cmluZy5mcm9tQ2hhckNvZGUoYSkKaWYoYTw9MTExNDExMSl7dD1hLTY1NTM2CnJldHVybiBTdHJp
bmcuZnJvbUNoYXJDb2RlKCg1NTI5NnxDLmpuLndHKHQsMTApKT4+PjAsNTYzMjB8dCYxMDIzKX19dGhy
b3cgSC5iKFAuVEUoYSwwLDExMTQxMTEsbnVsbCxudWxsKSl9LApvMjpmdW5jdGlvbihhKXtpZihhLmRh
dGU9PT12b2lkIDApYS5kYXRlPW5ldyBEYXRlKGEuYSkKcmV0dXJuIGEuZGF0ZX0sCnRKOmZ1bmN0aW9u
KGEpe3ZhciB0PUgubzIoYSkuZ2V0RnVsbFllYXIoKSswCnJldHVybiB0fSwKTlM6ZnVuY3Rpb24oYSl7
dmFyIHQ9SC5vMihhKS5nZXRNb250aCgpKzEKcmV0dXJuIHR9LApqQTpmdW5jdGlvbihhKXt2YXIgdD1I
Lm8yKGEpLmdldERhdGUoKSswCnJldHVybiB0fSwKS0w6ZnVuY3Rpb24oYSl7dmFyIHQ9SC5vMihhKS5n
ZXRIb3VycygpKzAKcmV0dXJuIHR9LApjaDpmdW5jdGlvbihhKXt2YXIgdD1ILm8yKGEpLmdldE1pbnV0
ZXMoKSswCnJldHVybiB0fSwKSmQ6ZnVuY3Rpb24oYSl7dmFyIHQ9SC5vMihhKS5nZXRTZWNvbmRzKCkr
MApyZXR1cm4gdH0sCm8xOmZ1bmN0aW9uKGEpe3ZhciB0PUgubzIoYSkuZ2V0TWlsbGlzZWNvbmRzKCkr
MApyZXR1cm4gdH0sCnpvOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHI9e30Kci5hPTAKdD1bXQpzPVtd
CnIuYT1iLmxlbmd0aApDLk5tLkZWKHQsYikKci5iPSIiCmlmKGMhPW51bGwmJmMuYSE9PTApYy5LKDAs
bmV3IEguQ2oocixzLHQpKQoiIityLmEKcmV0dXJuIEouSnkoYSxuZXcgSC5MSShDLlRlLDAsdCxzLDAp
KX0sCkVrOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscQppZihiIGluc3RhbmNlb2YgQXJyYXkpdD1j
PT1udWxsfHxjLmE9PT0wCmVsc2UgdD0hMQppZih0KXtzPWIKcj1zLmxlbmd0aAppZihyPT09MCl7aWYo
ISFhLiQwKXJldHVybiBhLiQwKCl9ZWxzZSBpZihyPT09MSl7aWYoISFhLiQxKXJldHVybiBhLiQxKHNb
MF0pfWVsc2UgaWYocj09PTIpe2lmKCEhYS4kMilyZXR1cm4gYS4kMihzWzBdLHNbMV0pfWVsc2UgaWYo
cj09PTMpe2lmKCEhYS4kMylyZXR1cm4gYS4kMyhzWzBdLHNbMV0sc1syXSl9ZWxzZSBpZihyPT09NCl7
aWYoISFhLiQ0KXJldHVybiBhLiQ0KHNbMF0sc1sxXSxzWzJdLHNbM10pfWVsc2UgaWYocj09PTUpaWYo
ISFhLiQ1KXJldHVybiBhLiQ1KHNbMF0sc1sxXSxzWzJdLHNbM10sc1s0XSkKcT1hWyIiKyIkIityXQpp
ZihxIT1udWxsKXJldHVybiBxLmFwcGx5KGEscyl9cmV0dXJuIEguRXcoYSxiLGMpfSwKRXc6ZnVuY3Rp
b24oYSxiLGMpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrPWIgaW5zdGFuY2VvZiBBcnJheT9iOlAuQ0go
YiwhMCx1LnopLGo9ay5sZW5ndGgsaT1hLiRSCmlmKGo8aSlyZXR1cm4gSC56byhhLGssYykKdD1hLiRE
CnM9dD09bnVsbApyPSFzP3QoKTpudWxsCnE9Si5pYShhKQpwPXEuJEMKaWYodHlwZW9mIHA9PSJzdHJp
bmciKXA9cVtwXQppZihzKXtpZihjIT1udWxsJiZjLmEhPT0wKXJldHVybiBILnpvKGEsayxjKQppZihq
PT09aSlyZXR1cm4gcC5hcHBseShhLGspCnJldHVybiBILnpvKGEsayxjKX1pZihyIGluc3RhbmNlb2Yg
QXJyYXkpe2lmKGMhPW51bGwmJmMuYSE9PTApcmV0dXJuIEguem8oYSxrLGMpCmlmKGo+aStyLmxlbmd0
aClyZXR1cm4gSC56byhhLGssbnVsbCkKQy5ObS5GVihrLHIuc2xpY2Uoai1pKSkKcmV0dXJuIHAuYXBw
bHkoYSxrKX1lbHNle2lmKGo+aSlyZXR1cm4gSC56byhhLGssYykKbz1PYmplY3Qua2V5cyhyKQppZihj
PT1udWxsKWZvcihzPW8ubGVuZ3RoLG49MDtuPG8ubGVuZ3RoO28ubGVuZ3RoPT09c3x8KDAsSC5sayko
byksKytuKUMuTm0uaShrLHJbSC55KG9bbl0pXSkKZWxzZXtmb3Iocz1vLmxlbmd0aCxtPTAsbj0wO248
by5sZW5ndGg7by5sZW5ndGg9PT1zfHwoMCxILmxrKShvKSwrK24pe2w9SC55KG9bbl0pCmlmKGMueDQo
bCkpeysrbQpDLk5tLmkoayxjLnEoMCxsKSl9ZWxzZSBDLk5tLmkoayxyW2xdKX1pZihtIT09Yy5hKXJl
dHVybiBILnpvKGEsayxjKX1yZXR1cm4gcC5hcHBseShhLGspfX0sCnBZOmZ1bmN0aW9uKGEpe3Rocm93
IEguYihILnRMKGEpKX0sCk9IOmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbClKLkhtKGEpCnRocm93IEgu
YihILkhZKGEsYikpfSwKSFk6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHI9ImluZGV4IgppZighSC5vayhi
KSlyZXR1cm4gbmV3IFAudSghMCxiLHIsbnVsbCkKdD1ILlNjKEouSG0oYSkpCmlmKCEoYjwwKSl7aWYo
dHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gSC5wWSh0KQpzPWI+PXR9ZWxzZSBzPSEwCmlmKHMpcmV0
dXJuIFAuQ2YoYixhLHIsbnVsbCx0KQpyZXR1cm4gUC54KGIscil9LAphdTpmdW5jdGlvbihhLGIsYyl7
dmFyIHQ9IkludmFsaWQgdmFsdWUiCmlmKGE+YylyZXR1cm4gbmV3IFAuYkooMCxjLCEwLGEsInN0YXJ0
Iix0KQppZihiIT1udWxsKXtpZighSC5vayhiKSlyZXR1cm4gbmV3IFAudSghMCxiLCJlbmQiLG51bGwp
CmlmKGI8YXx8Yj5jKXJldHVybiBuZXcgUC5iSihhLGMsITAsYiwiZW5kIix0KX1yZXR1cm4gbmV3IFAu
dSghMCxiLCJlbmQiLG51bGwpfSwKdEw6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLnUoITAsYSxudWxs
LG51bGwpfSwKYjpmdW5jdGlvbihhKXt2YXIgdAppZihhPT1udWxsKWE9bmV3IFAubigpCnQ9bmV3IEVy
cm9yKCkKdC5kYXJ0RXhjZXB0aW9uPWEKaWYoImRlZmluZVByb3BlcnR5IiBpbiBPYmplY3Qpe09iamVj
dC5kZWZpbmVQcm9wZXJ0eSh0LCJtZXNzYWdlIix7Z2V0OkguaH0pCnQubmFtZT0iIn1lbHNlIHQudG9T
dHJpbmc9SC5oCnJldHVybiB0fSwKaDpmdW5jdGlvbigpe3JldHVybiBKLmoodGhpcy5kYXJ0RXhjZXB0
aW9uKX0sCnZoOmZ1bmN0aW9uKGEpe3Rocm93IEguYihhKX0sCmxrOmZ1bmN0aW9uKGEpe3Rocm93IEgu
YihQLmE0KGEpKX0sCmNNOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbwphPUguZUEoYS5yZXBsYWNl
KFN0cmluZyh7fSksJyRyZWNlaXZlciQnKSkKdD1hLm1hdGNoKC9cXFwkW2EtekEtWl0rXFxcJC9nKQpp
Zih0PT1udWxsKXQ9SC5WTShbXSx1LnMpCnM9dC5pbmRleE9mKCJcXCRhcmd1bWVudHNcXCQiKQpyPXQu
aW5kZXhPZigiXFwkYXJndW1lbnRzRXhwclxcJCIpCnE9dC5pbmRleE9mKCJcXCRleHByXFwkIikKcD10
LmluZGV4T2YoIlxcJG1ldGhvZFxcJCIpCm89dC5pbmRleE9mKCJcXCRyZWNlaXZlclxcJCIpCnJldHVy
biBuZXcgSC5acihhLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXFxcJGFyZ3VtZW50c1xcXFxcXCQnLCdn
JyksJygoPzp4fFteeF0pKiknKS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFxcXCRhcmd1bWVudHNFeHBy
XFxcXFxcJCcsJ2cnKSwnKCg/Onh8W154XSkqKScpLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXFxcJGV4
cHJcXFxcXFwkJywnZycpLCcoKD86eHxbXnhdKSopJykucmVwbGFjZShuZXcgUmVnRXhwKCdcXFxcXFwk
bWV0aG9kXFxcXFxcJCcsJ2cnKSwnKCg/Onh8W154XSkqKScpLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxc
XFxcJHJlY2VpdmVyXFxcXFxcJCcsJ2cnKSwnKCg/Onh8W154XSkqKScpLHMscixxLHAsbyl9LApTNzpm
dW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oJGV4cHIkKXt2YXIgJGFyZ3VtZW50c0V4cHIkPSckYXJn
dW1lbnRzJCcKdHJ5eyRleHByJC4kbWV0aG9kJCgkYXJndW1lbnRzRXhwciQpfWNhdGNoKHQpe3JldHVy
biB0Lm1lc3NhZ2V9fShhKX0sCk1qOmZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigkZXhwciQpe3Ry
eXskZXhwciQuJG1ldGhvZCR9Y2F0Y2godCl7cmV0dXJuIHQubWVzc2FnZX19KGEpfSwKSWo6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gbmV3IEguVzAoYSxiPT1udWxsP251bGw6Yi5tZXRob2QpfSwKVDM6ZnVuY3Rp
b24oYSxiKXt2YXIgdD1iPT1udWxsLHM9dD9udWxsOmIubWV0aG9kCnJldHVybiBuZXcgSC5heihhLHMs
dD9udWxsOmIucmVjZWl2ZXIpfSwKUnU6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGss
aixpLGgsZyxmPW51bGwsZT1uZXcgSC5BbShhKQppZihhPT1udWxsKXJldHVybiBmCmlmKHR5cGVvZiBh
IT09Im9iamVjdCIpcmV0dXJuIGEKaWYoImRhcnRFeGNlcHRpb24iIGluIGEpcmV0dXJuIGUuJDEoYS5k
YXJ0RXhjZXB0aW9uKQplbHNlIGlmKCEoIm1lc3NhZ2UiIGluIGEpKXJldHVybiBhCnQ9YS5tZXNzYWdl
CmlmKCJudW1iZXIiIGluIGEmJnR5cGVvZiBhLm51bWJlcj09Im51bWJlciIpe3M9YS5udW1iZXIKcj1z
JjY1NTM1CmlmKChDLmpuLndHKHMsMTYpJjgxOTEpPT09MTApc3dpdGNoKHIpe2Nhc2UgNDM4OnJldHVy
biBlLiQxKEguVDMoSC5kKHQpKyIgKEVycm9yICIrcisiKSIsZikpCmNhc2UgNDQ1OmNhc2UgNTAwNzpy
ZXR1cm4gZS4kMShILklqKEguZCh0KSsiIChFcnJvciAiK3IrIikiLGYpKX19aWYoYSBpbnN0YW5jZW9m
IFR5cGVFcnJvcil7cT0kLlNuKCkKcD0kLmxxKCkKbz0kLk45KCkKbj0kLmlJKCkKbT0kLktmKCkKbD0k
LlpoKCkKaz0kLnJOKCkKJC5jMygpCmo9JC5ISygpCmk9JC5yMSgpCmg9cS5xUyh0KQppZihoIT1udWxs
KXJldHVybiBlLiQxKEguVDMoSC55KHQpLGgpKQplbHNle2g9cC5xUyh0KQppZihoIT1udWxsKXtoLm1l
dGhvZD0iY2FsbCIKcmV0dXJuIGUuJDEoSC5UMyhILnkodCksaCkpfWVsc2V7aD1vLnFTKHQpCmlmKGg9
PW51bGwpe2g9bi5xUyh0KQppZihoPT1udWxsKXtoPW0ucVModCkKaWYoaD09bnVsbCl7aD1sLnFTKHQp
CmlmKGg9PW51bGwpe2g9ay5xUyh0KQppZihoPT1udWxsKXtoPW4ucVModCkKaWYoaD09bnVsbCl7aD1q
LnFTKHQpCmlmKGg9PW51bGwpe2g9aS5xUyh0KQpnPWghPW51bGx9ZWxzZSBnPSEwfWVsc2UgZz0hMH1l
bHNlIGc9ITB9ZWxzZSBnPSEwfWVsc2UgZz0hMH1lbHNlIGc9ITB9ZWxzZSBnPSEwCmlmKGcpcmV0dXJu
IGUuJDEoSC5JaihILnkodCksaCkpfX1yZXR1cm4gZS4kMShuZXcgSC52Vih0eXBlb2YgdD09InN0cmlu
ZyI/dDoiIikpfWlmKGEgaW5zdGFuY2VvZiBSYW5nZUVycm9yKXtpZih0eXBlb2YgdD09InN0cmluZyIm
JnQuaW5kZXhPZigiY2FsbCBzdGFjayIpIT09LTEpcmV0dXJuIG5ldyBQLktZKCkKdD1mdW5jdGlvbihi
KXt0cnl7cmV0dXJuIFN0cmluZyhiKX1jYXRjaChkKXt9cmV0dXJuIG51bGx9KGEpCnJldHVybiBlLiQx
KG5ldyBQLnUoITEsZixmLHR5cGVvZiB0PT0ic3RyaW5nIj90LnJlcGxhY2UoL15SYW5nZUVycm9yOlxz
Ki8sIiIpOnQpKX1pZih0eXBlb2YgSW50ZXJuYWxFcnJvcj09ImZ1bmN0aW9uIiYmYSBpbnN0YW5jZW9m
IEludGVybmFsRXJyb3IpaWYodHlwZW9mIHQ9PSJzdHJpbmciJiZ0PT09InRvbyBtdWNoIHJlY3Vyc2lv
biIpcmV0dXJuIG5ldyBQLktZKCkKcmV0dXJuIGF9LAp0czpmdW5jdGlvbihhKXt2YXIgdAppZihhPT1u
dWxsKXJldHVybiBuZXcgSC5YTyhhKQp0PWEuJGNhY2hlZFRyYWNlCmlmKHQhPW51bGwpcmV0dXJuIHQK
cmV0dXJuIGEuJGNhY2hlZFRyYWNlPW5ldyBILlhPKGEpfSwKQjc6ZnVuY3Rpb24oYSxiKXt2YXIgdCxz
LHIscT1hLmxlbmd0aApmb3IodD0wO3Q8cTt0PXIpe3M9dCsxCnI9cysxCmIuWSgwLGFbdF0sYVtzXSl9
cmV0dXJuIGJ9LApmdDpmdW5jdGlvbihhLGIsYyxkLGUsZil7dS5aLmIoYSkKc3dpdGNoKEguU2MoYikp
e2Nhc2UgMDpyZXR1cm4gYS4kMCgpCmNhc2UgMTpyZXR1cm4gYS4kMShjKQpjYXNlIDI6cmV0dXJuIGEu
JDIoYyxkKQpjYXNlIDM6cmV0dXJuIGEuJDMoYyxkLGUpCmNhc2UgNDpyZXR1cm4gYS4kNChjLGQsZSxm
KX10aHJvdyBILmIobmV3IFAuQ0QoIlVuc3VwcG9ydGVkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHdy
YXBwZWQgY2xvc3VyZSIpKX0sCnRSOmZ1bmN0aW9uKGEsYil7dmFyIHQKaWYoYT09bnVsbClyZXR1cm4g
bnVsbAp0PWEuJGlkZW50aXR5CmlmKCEhdClyZXR1cm4gdAp0PWZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4g
ZnVuY3Rpb24oZixnLGgsaSl7cmV0dXJuIGUoYyxkLGYsZyxoLGkpfX0oYSxiLEguZnQpCmEuJGlkZW50
aXR5PXQKcmV0dXJuIHR9LAppQTpmdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgdCxzLHIscSxwLG8s
bixtLGw9bnVsbCxrPWJbMF0saj1rLiRjYWxsTmFtZSxpPWU/T2JqZWN0LmNyZWF0ZShuZXcgSC56eCgp
LmNvbnN0cnVjdG9yLnByb3RvdHlwZSk6T2JqZWN0LmNyZWF0ZShuZXcgSC5yVChsLGwsbCxsKS5jb25z
dHJ1Y3Rvci5wcm90b3R5cGUpCmkuJGluaXRpYWxpemU9aS5jb25zdHJ1Y3RvcgppZihlKXQ9ZnVuY3Rp
b24gc3RhdGljX3RlYXJfb2ZmKCl7dGhpcy4kaW5pdGlhbGl6ZSgpfQplbHNle3M9JC55agppZih0eXBl
b2YgcyE9PSJudW1iZXIiKXJldHVybiBzLmgoKQokLnlqPXMrMQpzPW5ldyBGdW5jdGlvbigiYSxiLGMs
ZCIrcywidGhpcy4kaW5pdGlhbGl6ZShhLGIsYyxkIitzKyIpIikKdD1zfWkuY29uc3RydWN0b3I9dAp0
LnByb3RvdHlwZT1pCmlmKCFlKXtyPUguYngoYSxrLGYpCnIuJHJlZmxlY3Rpb25JbmZvPWR9ZWxzZXtp
LiRzdGF0aWNfbmFtZT1nCnI9a31xPUguaW0oZCxlLGYpCmkuJFM9cQppW2pdPXIKZm9yKHA9cixvPTE7
bzxiLmxlbmd0aDsrK28pe249YltvXQptPW4uJGNhbGxOYW1lCmlmKG0hPW51bGwpe249ZT9uOkguYngo
YSxuLGYpCmlbbV09bn1pZihvPT09Yyl7bi4kcmVmbGVjdGlvbkluZm89ZApwPW59fWkuJEM9cAppLiRS
PWsuJFIKaS4kRD1rLiRECnJldHVybiB0fSwKaW06ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CmlmKHR5cGVv
ZiBhPT0ibnVtYmVyIilyZXR1cm4gZnVuY3Rpb24oZCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4g
ZChlKX19KEguQnAsYSkKaWYodHlwZW9mIGE9PSJzdHJpbmciKXtpZihiKXRocm93IEguYigiQ2Fubm90
IGNvbXB1dGUgc2lnbmF0dXJlIGZvciBzdGF0aWMgdGVhcm9mZi4iKQp0PWM/SC5QVzpILlRuCnJldHVy
biBmdW5jdGlvbihkLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsZCl9fShhLHQpfXRo
cm93IEguYigiRXJyb3IgaW4gZnVuY3Rpb25UeXBlIG9mIHRlYXJvZmYiKX0sCnZxOmZ1bmN0aW9uKGEs
YixjLGQpe3ZhciB0PUguRFYKc3dpdGNoKGI/LTE6YSl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbihlLGYp
e3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmKHRoaXMpW2VdKCl9fShjLHQpCmNhc2UgMTpyZXR1cm4g
ZnVuY3Rpb24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGYodGhpcylbZV0oZyl9fShjLHQp
CmNhc2UgMjpyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oZyxoKXtyZXR1cm4gZih0
aGlzKVtlXShnLGgpfX0oYyx0KQpjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJuIGZ1bmN0
aW9uKGcsaCxpKXtyZXR1cm4gZih0aGlzKVtlXShnLGgsaSl9fShjLHQpCmNhc2UgNDpyZXR1cm4gZnVu
Y3Rpb24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oZyxoLGksail7cmV0dXJuIGYodGhpcylbZV0oZyxoLGks
ail9fShjLHQpCmNhc2UgNTpyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oZyxoLGks
aixrKXtyZXR1cm4gZih0aGlzKVtlXShnLGgsaSxqLGspfX0oYyx0KQpkZWZhdWx0OnJldHVybiBmdW5j
dGlvbihlLGYpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KGYodGhpcyksYXJndW1lbnRz
KX19KGQsdCl9fSwKYng6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxLHAsbyxuCmlmKGMpcmV0dXJu
IEguSGYoYSxiKQp0PWIuJHN0dWJOYW1lCnM9Yi5sZW5ndGgKcj1hW3RdCnE9Yj09bnVsbD9yPT1udWxs
OmI9PT1yCnA9IXF8fHM+PTI3CmlmKHApcmV0dXJuIEgudnEocywhcSx0LGIpCmlmKHM9PT0wKXtxPSQu
eWoKaWYodHlwZW9mIHEhPT0ibnVtYmVyIilyZXR1cm4gcS5oKCkKJC55aj1xKzEKbz0ic2VsZiIrcQpx
PSJyZXR1cm4gZnVuY3Rpb24oKXt2YXIgIitvKyIgPSB0aGlzLiIKcD0kLm1KCnJldHVybiBuZXcgRnVu
Y3Rpb24ocStILmQocD09bnVsbD8kLm1KPUguRTIoInNlbGYiKTpwKSsiO3JldHVybiAiK28rIi4iK0gu
ZCh0KSsiKCk7fSIpKCl9bj0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLnNwbGl0KCIiKS5zcGxp
Y2UoMCxzKS5qb2luKCIsIikKcT0kLnlqCmlmKHR5cGVvZiBxIT09Im51bWJlciIpcmV0dXJuIHEuaCgp
CiQueWo9cSsxCm4rPXEKcT0icmV0dXJuIGZ1bmN0aW9uKCIrbisiKXtyZXR1cm4gdGhpcy4iCnA9JC5t
SgpyZXR1cm4gbmV3IEZ1bmN0aW9uKHErSC5kKHA9PW51bGw/JC5tSj1ILkUyKCJzZWxmIik6cCkrIi4i
K0guZCh0KSsiKCIrbisiKTt9IikoKX0sClo0OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0PUguRFYscz1I
LnlTCnN3aXRjaChiPy0xOmEpe2Nhc2UgMDp0aHJvdyBILmIoSC5FZigiSW50ZXJjZXB0ZWQgZnVuY3Rp
b24gd2l0aCBubyBhcmd1bWVudHMuIikpCmNhc2UgMTpyZXR1cm4gZnVuY3Rpb24oZSxmLGcpe3JldHVy
biBmdW5jdGlvbigpe3JldHVybiBmKHRoaXMpW2VdKGcodGhpcykpfX0oYyx0LHMpCmNhc2UgMjpyZXR1
cm4gZnVuY3Rpb24oZSxmLGcpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gZih0aGlzKVtlXShnKHRo
aXMpLGgpfX0oYyx0LHMpCmNhc2UgMzpyZXR1cm4gZnVuY3Rpb24oZSxmLGcpe3JldHVybiBmdW5jdGlv
bihoLGkpe3JldHVybiBmKHRoaXMpW2VdKGcodGhpcyksaCxpKX19KGMsdCxzKQpjYXNlIDQ6cmV0dXJu
IGZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gZnVuY3Rpb24oaCxpLGope3JldHVybiBmKHRoaXMpW2VdKGco
dGhpcyksaCxpLGopfX0oYyx0LHMpCmNhc2UgNTpyZXR1cm4gZnVuY3Rpb24oZSxmLGcpe3JldHVybiBm
dW5jdGlvbihoLGksaixrKXtyZXR1cm4gZih0aGlzKVtlXShnKHRoaXMpLGgsaSxqLGspfX0oYyx0LHMp
CmNhc2UgNjpyZXR1cm4gZnVuY3Rpb24oZSxmLGcpe3JldHVybiBmdW5jdGlvbihoLGksaixrLGwpe3Jl
dHVybiBmKHRoaXMpW2VdKGcodGhpcyksaCxpLGosayxsKX19KGMsdCxzKQpkZWZhdWx0OnJldHVybiBm
dW5jdGlvbihlLGYsZyxoKXtyZXR1cm4gZnVuY3Rpb24oKXtoPVtnKHRoaXMpXQpBcnJheS5wcm90b3R5
cGUucHVzaC5hcHBseShoLGFyZ3VtZW50cykKcmV0dXJuIGUuYXBwbHkoZih0aGlzKSxoKX19KGQsdCxz
KX19LApIZjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbyxuLG09JC5tSgppZihtPT1udWxsKW09
JC5tSj1ILkUyKCJzZWxmIikKdD0kLlA0CmlmKHQ9PW51bGwpdD0kLlA0PUguRTIoInJlY2VpdmVyIikK
cz1iLiRzdHViTmFtZQpyPWIubGVuZ3RoCnE9YVtzXQpwPWI9PW51bGw/cT09bnVsbDpiPT09cQpvPSFw
fHxyPj0yOAppZihvKXJldHVybiBILlo0KHIsIXAscyxiKQppZihyPT09MSl7bT0icmV0dXJuIGZ1bmN0
aW9uKCl7cmV0dXJuIHRoaXMuIitILmQobSkrIi4iK0guZChzKSsiKHRoaXMuIitILmQodCkrIik7Igp0
PSQueWoKaWYodHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gdC5oKCkKJC55aj10KzEKcmV0dXJuIG5l
dyBGdW5jdGlvbihtK3QrIn0iKSgpfW49ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii5zcGxpdCgi
Iikuc3BsaWNlKDAsci0xKS5qb2luKCIsIikKbT0icmV0dXJuIGZ1bmN0aW9uKCIrbisiKXtyZXR1cm4g
dGhpcy4iK0guZChtKSsiLiIrSC5kKHMpKyIodGhpcy4iK0guZCh0KSsiLCAiK24rIik7Igp0PSQueWoK
aWYodHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gdC5oKCkKJC55aj10KzEKcmV0dXJuIG5ldyBGdW5j
dGlvbihtK3QrIn0iKSgpfSwKS3E6ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7cmV0dXJuIEguaUEoYSxi
LGMsZCwhIWUsISFmLGcpfSwKVG46ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSC5jRSh2LnR5cGVVbml2ZXJz
ZSxILnpLKGEuYSksYil9LApQVzpmdW5jdGlvbihhLGIpe3JldHVybiBILmNFKHYudHlwZVVuaXZlcnNl
LEgueksoYS5jKSxiKX0sCkRWOmZ1bmN0aW9uKGEpe3JldHVybiBhLmF9LAp5UzpmdW5jdGlvbihhKXty
ZXR1cm4gYS5jfSwKRTI6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9bmV3IEguclQoInNlbGYiLCJ0YXJn
ZXQiLCJyZWNlaXZlciIsIm5hbWUiKSxwPUouRXAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocSkp
CmZvcih0PXAubGVuZ3RoLHM9MDtzPHQ7KytzKXtyPXBbc10KaWYocVtyXT09PWEpcmV0dXJuIHJ9fSwK
b1Q6ZnVuY3Rpb24oYSl7aWYoYT09bnVsbClILmZPKCJib29sZWFuIGV4cHJlc3Npb24gbXVzdCBub3Qg
YmUgbnVsbCIpCnJldHVybiBhfSwKZk86ZnVuY3Rpb24oYSl7dGhyb3cgSC5iKG5ldyBILmtZKGEpKX0s
CmFnOmZ1bmN0aW9uKGEpe3Rocm93IEguYihuZXcgUC5jKGEpKX0sCkVmOmZ1bmN0aW9uKGEpe3JldHVy
biBuZXcgSC5FcShhKX0sCllnOmZ1bmN0aW9uKGEpe3JldHVybiB2LmdldElzb2xhdGVUYWcoYSl9LApW
TTpmdW5jdGlvbihhLGIpe2EuJHRpPWIKcmV0dXJuIGF9LApvWDpmdW5jdGlvbihhKXtpZihhPT1udWxs
KXJldHVybiBudWxsCnJldHVybiBhLiR0aX0sCklNOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSC5ZOShh
WyIkYSIrSC5kKGMpXSxILm9YKGIpKX0sClk5OmZ1bmN0aW9uKGEsYil7aWYoYT09bnVsbClyZXR1cm4g
YgphPWEuYXBwbHkobnVsbCxiKQppZihhPT1udWxsKXJldHVybiBudWxsCmlmKEFycmF5LmlzQXJyYXko
YSkpcmV0dXJuIGEKaWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIGEuYXBwbHkobnVsbCxiKQpy
ZXR1cm4gYn0sCklHOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5hcHBseShiLEguWTkoSi5pYShiKVsi
JGEiK0guZChjKV0sSC5vWChiKSkpfSwKaXc6ZnVuY3Rpb24oYSxiLGMpe09iamVjdC5kZWZpbmVQcm9w
ZXJ0eShhLGIse3ZhbHVlOmMsZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJs
ZTp0cnVlfSl9LAp3MzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPUgueSgkLk5GLiQxKGEpKSxvPSQu
bndbcF0KaWYobyE9bnVsbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdi5kaXNwYXRjaFByb3BlcnR5
TmFtZSx7dmFsdWU6byxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRy
dWV9KQpyZXR1cm4gby5pfXQ9JC52dltwXQppZih0IT1udWxsKXJldHVybiB0CnM9di5pbnRlcmNlcHRv
cnNCeVRhZ1twXQppZihzPT1udWxsKXtwPUgueSgkLlRYLiQyKGEscCkpCmlmKHAhPW51bGwpe289JC5u
d1twXQppZihvIT1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSx2LmRpc3BhdGNoUHJvcGVydHlO
YW1lLHt2YWx1ZTpvLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1
ZX0pCnJldHVybiBvLml9dD0kLnZ2W3BdCmlmKHQhPW51bGwpcmV0dXJuIHQKcz12LmludGVyY2VwdG9y
c0J5VGFnW3BdfX1pZihzPT1udWxsKXJldHVybiBudWxsCnQ9cy5wcm90b3R5cGUKcj1wWzBdCmlmKHI9
PT0iISIpe289SC5WYSh0KQokLm53W3BdPW8KT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdi5kaXNwYXRj
aFByb3BlcnR5TmFtZSx7dmFsdWU6byxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmln
dXJhYmxlOnRydWV9KQpyZXR1cm4gby5pfWlmKHI9PT0ifiIpeyQudnZbcF09dApyZXR1cm4gdH1pZihy
PT09Ii0iKXtxPUguVmEodCkKT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5nZXRQcm90b3R5cGVP
ZihhKSx2LmRpc3BhdGNoUHJvcGVydHlOYW1lLHt2YWx1ZTpxLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFi
bGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX0pCnJldHVybiBxLml9aWYocj09PSIrIilyZXR1cm4gSC5M
YyhhLHQpCmlmKHI9PT0iKiIpdGhyb3cgSC5iKFAuU1kocCkpCmlmKHYubGVhZlRhZ3NbcF09PT10cnVl
KXtxPUguVmEodCkKT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5nZXRQcm90b3R5cGVPZihhKSx2
LmRpc3BhdGNoUHJvcGVydHlOYW1lLHt2YWx1ZTpxLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1
ZSxjb25maWd1cmFibGU6dHJ1ZX0pCnJldHVybiBxLml9ZWxzZSByZXR1cm4gSC5MYyhhLHQpfSwKTGM6
ZnVuY3Rpb24oYSxiKXt2YXIgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoYSkKT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHQsdi5kaXNwYXRjaFByb3BlcnR5TmFtZSx7dmFsdWU6Si5RdShiLHQsbnVsbCxudWxsKSxl
bnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9KQpyZXR1cm4gYn0s
ClZhOmZ1bmN0aW9uKGEpe3JldHVybiBKLlF1KGEsITEsbnVsbCwhIWEuJGlYail9LApWRjpmdW5jdGlv
bihhLGIsYyl7dmFyIHQ9Yi5wcm90b3R5cGUKaWYodi5sZWFmVGFnc1thXT09PXRydWUpcmV0dXJuIEgu
VmEodCkKZWxzZSByZXR1cm4gSi5RdSh0LGMsbnVsbCxudWxsKX0sClhEOmZ1bmN0aW9uKCl7aWYoITA9
PT0kLkJ2KXJldHVybgokLkJ2PSEwCkguWjEoKX0sCloxOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscCxv
LG4sbQokLm53PU9iamVjdC5jcmVhdGUobnVsbCkKJC52dj1PYmplY3QuY3JlYXRlKG51bGwpCkgua08o
KQp0PXYuaW50ZXJjZXB0b3JzQnlUYWcKcz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KQppZih0
eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIil7d2luZG93CnI9ZnVuY3Rpb24oKXt9CmZvcihxPTA7cTxz
Lmxlbmd0aDsrK3Epe3A9c1txXQpvPSQueDcuJDEocCkKaWYobyE9bnVsbCl7bj1ILlZGKHAsdFtwXSxv
KQppZihuIT1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobyx2LmRpc3BhdGNoUHJvcGVydHlOYW1l
LHt2YWx1ZTpuLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX0p
CnIucHJvdG90eXBlPW99fX19Zm9yKHE9MDtxPHMubGVuZ3RoOysrcSl7cD1zW3FdCmlmKC9eW0EtWmEt
el9dLy50ZXN0KHApKXttPXRbcF0KdFsiISIrcF09bQp0WyJ+IitwXT1tCnRbIi0iK3BdPW0KdFsiKyIr
cF09bQp0WyIqIitwXT1tfX19LAprTzpmdW5jdGlvbigpe3ZhciB0LHMscixxLHAsbyxuPUMuWXEoKQpu
PUgudWQoQy5LVSxILnVkKEMuZlEsSC51ZChDLmk3LEgudWQoQy5pNyxILnVkKEMueGksSC51ZChDLmRr
LEgudWQoQy53YihDLk80KSxuKSkpKSkpKQppZih0eXBlb2YgZGFydE5hdGl2ZURpc3BhdGNoSG9va3NU
cmFuc2Zvcm1lciE9InVuZGVmaW5lZCIpe3Q9ZGFydE5hdGl2ZURpc3BhdGNoSG9va3NUcmFuc2Zvcm1l
cgppZih0eXBlb2YgdD09ImZ1bmN0aW9uIil0PVt0XQppZih0LmNvbnN0cnVjdG9yPT1BcnJheSlmb3Io
cz0wO3M8dC5sZW5ndGg7KytzKXtyPXRbc10KaWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpbj1yKG4pfHxu
fX1xPW4uZ2V0VGFnCnA9bi5nZXRVbmtub3duVGFnCm89bi5wcm90b3R5cGVGb3JUYWcKJC5ORj1uZXcg
SC5kQyhxKQokLlRYPW5ldyBILndOKHApCiQueDc9bmV3IEguVlgobyl9LAp1ZDpmdW5jdGlvbihhLGIp
e3JldHVybiBhKGIpfHxifSwKdjQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciB0PWI/Im0iOiIiLHM9
Yz8iIjoiaSIscj1kPyJ1IjoiIixxPWU/InMiOiIiLHA9Zj8iZyI6IiIsbz1mdW5jdGlvbihnLGgpe3Ry
eXtyZXR1cm4gbmV3IFJlZ0V4cChnLGgpfWNhdGNoKG4pe3JldHVybiBufX0oYSx0K3MrcitxK3ApCmlm
KG8gaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuIG8KdGhyb3cgSC5iKFAucnIoIklsbGVnYWwgUmVnRXhw
IHBhdHRlcm4gKCIrU3RyaW5nKG8pKyIpIixhLG51bGwpKX0sCm0yOmZ1bmN0aW9uKGEsYixjKXt2YXIg
dAppZih0eXBlb2YgYj09InN0cmluZyIpcmV0dXJuIGEuaW5kZXhPZihiLGMpPj0wCmVsc2UgaWYoYiBp
bnN0YW5jZW9mIEguVlIpe3Q9Qy54Qi5HKGEsYykKcmV0dXJuIGIuYi50ZXN0KHQpfWVsc2V7dD1KLkZM
KGIsQy54Qi5HKGEsYykpCnJldHVybiF0LmdsMCh0KX19LApBNDpmdW5jdGlvbihhKXtpZihhLmluZGV4
T2YoIiQiLDApPj0wKXJldHVybiBhLnJlcGxhY2UoL1wkL2csIiQkJCQiKQpyZXR1cm4gYX0sCmVBOmZ1
bmN0aW9uKGEpe2lmKC9bW1xde30oKSorPy5cXF4kfF0vLnRlc3QoYSkpcmV0dXJuIGEucmVwbGFjZSgv
W1tcXXt9KCkqKz8uXFxeJHxdL2csIlxcJCYiKQpyZXR1cm4gYX0sCnlzOmZ1bmN0aW9uKGEsYixjKXt2
YXIgdD1ILm5NKGEsYixjKQpyZXR1cm4gdH0sCm5NOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscQpp
ZihiPT09IiIpe2lmKGE9PT0iIilyZXR1cm4gYwp0PWEubGVuZ3RoCmZvcihzPWMscj0wO3I8dDsrK3Ip
cz1zK2Fbcl0rYwpyZXR1cm4gcy5jaGFyQ29kZUF0KDApPT0wP3M6c31xPWEuaW5kZXhPZihiLDApCmlm
KHE8MClyZXR1cm4gYQppZihhLmxlbmd0aDw1MDB8fGMuaW5kZXhPZigiJCIsMCk+PTApcmV0dXJuIGEu
c3BsaXQoYikuam9pbihjKQpyZXR1cm4gYS5yZXBsYWNlKG5ldyBSZWdFeHAoSC5lQShiKSwnZycpLEgu
QTQoYykpfSwKUEQ6ZnVuY3Rpb24gUEQoYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1ifSwKV1U6ZnVuY3Rp
b24gV1UoKXt9LApMUDpmdW5jdGlvbiBMUChhLGIsYyxkKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8u
Yz1jCl8uJHRpPWR9LApMSTpmdW5jdGlvbiBMSShhLGIsYyxkLGUpe3ZhciBfPXRoaXMKXy5hPWEKXy5j
PWIKXy5kPWMKXy5lPWQKXy5mPWV9LApDajpmdW5jdGlvbiBDaihhLGIsYyl7dGhpcy5hPWEKdGhpcy5i
PWIKdGhpcy5jPWN9LApacjpmdW5jdGlvbiBacihhLGIsYyxkLGUsZil7dmFyIF89dGhpcwpfLmE9YQpf
LmI9YgpfLmM9YwpfLmQ9ZApfLmU9ZQpfLmY9Zn0sClcwOmZ1bmN0aW9uIFcwKGEsYil7dGhpcy5hPWEK
dGhpcy5iPWJ9LAphejpmdW5jdGlvbiBheihhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9
LAp2VjpmdW5jdGlvbiB2VihhKXt0aGlzLmE9YX0sCkFtOmZ1bmN0aW9uIEFtKGEpe3RoaXMuYT1hfSwK
WE86ZnVuY3Rpb24gWE8oYSl7dGhpcy5hPWEKdGhpcy5iPW51bGx9LApUcDpmdW5jdGlvbiBUcCgpe30s
CmxjOmZ1bmN0aW9uIGxjKCl7fSwKeng6ZnVuY3Rpb24gengoKXt9LApyVDpmdW5jdGlvbiByVChhLGIs
YyxkKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8uZD1kfSwKRXE6ZnVuY3Rpb24gRXEoYSl7
dGhpcy5hPWF9LAprWTpmdW5jdGlvbiBrWShhKXt0aGlzLmE9YX0sCk41OmZ1bmN0aW9uIE41KGEpe3Zh
ciBfPXRoaXMKXy5hPTAKXy5mPV8uZT1fLmQ9Xy5jPV8uYj1udWxsCl8ucj0wCl8uJHRpPWF9LApkYjpm
dW5jdGlvbiBkYihhLGIpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5kPV8uYz1udWxsfSwKaTU6ZnVu
Y3Rpb24gaTUoYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1ifSwKTjY6ZnVuY3Rpb24gTjYoYSxiLGMpe3Zh
ciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5kPV8uYz1udWxsCl8uJHRpPWN9LApkQzpmdW5jdGlvbiBkQyhh
KXt0aGlzLmE9YX0sCndOOmZ1bmN0aW9uIHdOKGEpe3RoaXMuYT1hfSwKVlg6ZnVuY3Rpb24gVlgoYSl7
dGhpcy5hPWF9LApWUjpmdW5jdGlvbiBWUihhLGIpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5kPV8u
Yz1udWxsfSwKRUs6ZnVuY3Rpb24gRUsoYSl7dGhpcy5iPWF9LApLVzpmdW5jdGlvbiBLVyhhLGIsYyl7
dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApQYjpmdW5jdGlvbiBQYihhLGIsYyl7dmFyIF89dGhp
cwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9bnVsbH0sCnRROmZ1bmN0aW9uIHRRKGEsYil7dGhpcy5hPWEK
dGhpcy5jPWJ9LAp1bjpmdW5jdGlvbiB1bihhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9
LApTZDpmdW5jdGlvbiBTZChhLGIsYyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9bnVs
bH0sClhGOmZ1bmN0aW9uKGEpe3JldHVybiBhfSwKRFE6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBJbnQ4
QXJyYXkoYSl9LApvZDpmdW5jdGlvbihhLGIsYyl7aWYoYT4+PjAhPT1hfHxhPj1jKXRocm93IEguYihI
LkhZKGIsYSkpfSwKck06ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CmlmKCEoYT4+PjAhPT1hKSl0PWI+Pj4w
IT09Ynx8YT5ifHxiPmMKZWxzZSB0PSEwCmlmKHQpdGhyb3cgSC5iKEguYXUoYSxiLGMpKQpyZXR1cm4g
Yn0sCkVUOmZ1bmN0aW9uIEVUKCl7fSwKYjA6ZnVuY3Rpb24gYjAoKXt9LApEZzpmdW5jdGlvbiBEZygp
e30sClBnOmZ1bmN0aW9uIFBnKCl7fSwKeGo6ZnVuY3Rpb24geGooKXt9LApkRTpmdW5jdGlvbiBkRSgp
e30sClpBOmZ1bmN0aW9uIFpBKCl7fSwKd2Y6ZnVuY3Rpb24gd2YoKXt9LApQcTpmdW5jdGlvbiBQcSgp
e30sCmVFOmZ1bmN0aW9uIGVFKCl7fSwKVjY6ZnVuY3Rpb24gVjYoKXt9LApSRzpmdW5jdGlvbiBSRygp
e30sClZQOmZ1bmN0aW9uIFZQKCl7fSwKV0I6ZnVuY3Rpb24gV0IoKXt9LApaRzpmdW5jdGlvbiBaRygp
e30sCnhaOmZ1bmN0aW9uKGEsYil7dmFyIHQ9Yi5kCnJldHVybiB0PT1udWxsP2IuZD1ILkooYSwiYjgi
LFtiLlFdKTp0fSwKUTE6ZnVuY3Rpb24oYSl7dmFyIHQ9YS56CmlmKHQ9PT02fHx0PT09N3x8dD09PTgp
cmV0dXJuIEguUTEoYS5RKQpyZXR1cm4gdD09PTExfHx0PT09MTJ9LAptRDpmdW5jdGlvbihhKXtyZXR1
cm4gYS5kYn0sCk4wOmZ1bmN0aW9uKGEpe3JldHVybiBILkUodi50eXBlVW5pdmVyc2UsYSl9LApKUzpm
dW5jdGlvbihhKXt2YXIgdD1hLiRTCmlmKHQhPW51bGwpe2lmKHR5cGVvZiB0PT0ibnVtYmVyIilyZXR1
cm4gSC5CcCh0KQpyZXR1cm4gYS4kUygpfXJldHVybiBudWxsfSwKVWU6ZnVuY3Rpb24oYSxiKXt2YXIg
dAppZihILlExKGIpKWlmKGEgaW5zdGFuY2VvZiBILlRwKXt0PUguSlMoYSkKaWYodCE9bnVsbClyZXR1
cm4gdH1yZXR1cm4gSC56SyhhKX0sCnpLOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGEgaW5zdGFuY2VvZiBQ
Lmspe3Q9YS4kdGkKcmV0dXJuIHQhPW51bGw/dDpILlZVKGEpfWlmKEFycmF5LmlzQXJyYXkoYSkpcmV0
dXJuIEgudDYoYSkKcmV0dXJuIEguVlUoSi5pYShhKSl9LAp0NjpmdW5jdGlvbihhKXt2YXIgdD1hLiR0
aSxzPXUuYgppZih0PT1udWxsKXJldHVybiBzCmlmKHQuY29uc3RydWN0b3IhPT1zLmNvbnN0cnVjdG9y
KXJldHVybiBzCnJldHVybiB0fSwKTGg6ZnVuY3Rpb24oYSl7dmFyIHQ9YS4kdGkKcmV0dXJuIHQhPW51
bGw/dDpILlZVKGEpfSwKVlU6ZnVuY3Rpb24oYSl7dmFyIHQ9YS5jb25zdHJ1Y3RvcixzPXQuJGNjYWNo
ZQppZihzIT1udWxsKXJldHVybiBzCnJldHVybiBILnI5KGEsdCl9LApyOTpmdW5jdGlvbihhLGIpe3Zh
ciB0PWEgaW5zdGFuY2VvZiBILlRwP2EuX19wcm90b19fLl9fcHJvdG9fXy5jb25zdHJ1Y3RvcjpiLHM9
SC5haSh2LnR5cGVVbml2ZXJzZSx0Lm5hbWUpCmIuJGNjYWNoZT1zCnJldHVybiBzfSwKQnA6ZnVuY3Rp
b24oYSl7dmFyIHQscz1hLHI9di50eXBlcyxxPXJbc10KaWYodHlwZW9mIHE9PSJzdHJpbmciKXt0PUgu
RSh2LnR5cGVVbml2ZXJzZSxxKQpyW3NdPXQKcmV0dXJuIHR9cmV0dXJuIHF9LApKSjpmdW5jdGlvbihh
KXt2YXIgdCxzPXRoaXMscj1zLnoscT1ILllPCmlmKEguY2Mocykpe3E9SC5JdwpzLmI9cy5hPUguaG59
ZWxzZSBpZihyPT09OSl7dD1zLmRiCmlmKCJLTiI9PT10KXE9SC5vawplbHNlIGlmKCJDUCI9PT10KXE9
SC5LSAplbHNlIGlmKCJGSyI9PT10KXE9SC5LSAplbHNlIGlmKCJxVSI9PT10KXE9SC5NTQplbHNlIGlm
KCJhMiI9PT10KXE9SC5sCmVsc2V7cj1zLlEKaWYocy5jaC5ldmVyeShILmNjKSl7cy54PSIkaSIrcgpx
PUgudDR9fX1zLmM9cQpyZXR1cm4gcy5jKGEpfSwKWU86ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcwpyZXR1
cm4gSC5XZSh2LnR5cGVVbml2ZXJzZSxILlVlKGEsdCksbnVsbCx0LG51bGwpfSwKdDQ6ZnVuY3Rpb24o
YSl7dmFyIHQ9dGhpcy54CmlmKGEgaW5zdGFuY2VvZiBQLmspcmV0dXJuISFhW3RdCnJldHVybiEhSi5p
YShhKVt0XX0sCk96OmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuIGEKdD10aGlzCmlm
KHQuYyhhKSlyZXR1cm4gYQp0aHJvdyBILmIoSC5RNShILldLKGEsSC5VZShhLHQpLEguZG0odCxudWxs
KSkpKX0sCkF2OmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuIGEKdD10aGlzCmlmKHQu
YyhhKSlyZXR1cm4gYQp0aHJvdyBILmIoSC5aYyhILldLKGEsSC5VZShhLHQpLEguZG0odCxudWxsKSkp
KX0sCkRoOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0PW51bGwKaWYoSC5XZSh2LnR5cGVVbml2ZXJzZSxh
LHQsYix0KSlyZXR1cm4gYQp0aHJvdyBILmIoSC5aYygiVGhlIHR5cGUgYXJndW1lbnQgJyIrSC5kKEgu
ZG0oYSx0KSkrIicgaXMgbm90IGEgc3VidHlwZSBvZiB0aGUgdHlwZSB2YXJpYWJsZSBib3VuZCAnIitI
LmQoSC5kbShiLHQpKSsiJyBvZiB0eXBlIHZhcmlhYmxlICciK2MrIicgaW4gJyIrSC5kKGQpKyInLiIp
KX0sCldLOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1QLnAoYSkscz1ILmRtKGI9PW51bGw/SC56SyhhKTpi
LG51bGwpCnJldHVybiB0KyI6IHR5cGUgJyIrSC5kKHMpKyInIGlzIG5vdCBhIHN1YnR5cGUgb2YgdHlw
ZSAnIitILmQoYykrIicifSwKUTU6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBILmh6KCJDYXN0RXJyb3I6
ICIrYSl9LApQdjpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC5oeigiQ2FzdEVycm9yOiAiK0guV0so
YSxudWxsLGIpKX0sClpjOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSC5pTSgiVHlwZUVycm9yOiAiK2Ep
fSwKcTpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC5pTSgiVHlwZUVycm9yOiAiK0guV0soYSxudWxs
LGIpKX0sCkl3OmZ1bmN0aW9uKGEpe3JldHVybiEwfSwKaG46ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LAps
OmZ1bmN0aW9uKGEpe3JldHVybiEwPT09YXx8ITE9PT1hfSwKRTk6ZnVuY3Rpb24oYSl7aWYoITA9PT1h
fHwhMT09PWEpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmIoSC5QdihhLCJib29s
IikpfSwKeGQ6ZnVuY3Rpb24oYSl7aWYoITA9PT1hfHwhMT09PWEpcmV0dXJuIGEKaWYoYT09bnVsbCly
ZXR1cm4gYQp0aHJvdyBILmIoSC5xKGEsImJvb2wiKSl9LApkajpmdW5jdGlvbihhKXtpZih0eXBlb2Yg
YT09Im51bWJlciIpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmIoSC5QdihhLCJk
b3VibGUiKSl9LApJZzpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIGEKaWYo
YT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmIoSC5xKGEsImRvdWJsZSIpKX0sCm9rOmZ1bmN0aW9uKGEp
e3JldHVybiB0eXBlb2YgYT09Im51bWJlciImJk1hdGguZmxvb3IoYSk9PT1hfSwKU0g6ZnVuY3Rpb24o
YSl7aWYodHlwZW9mIGE9PSJudW1iZXIiJiZNYXRoLmZsb29yKGEpPT09YSlyZXR1cm4gYQppZihhPT1u
dWxsKXJldHVybiBhCnRocm93IEguYihILlB2KGEsImludCIpKX0sClNjOmZ1bmN0aW9uKGEpe2lmKHR5
cGVvZiBhPT0ibnVtYmVyIiYmTWF0aC5mbG9vcihhKT09PWEpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1
cm4gYQp0aHJvdyBILmIoSC5xKGEsImludCIpKX0sCktIOmZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2Yg
YT09Im51bWJlciJ9LAp1VTpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIGEK
aWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmIoSC5QdihhLCJudW0iKSl9LApETjpmdW5jdGlvbihh
KXtpZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBI
LmIoSC5xKGEsIm51bSIpKX0sCk1NOmZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgYT09InN0cmluZyJ9
LApjMDpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIGEKaWYoYT09bnVsbCly
ZXR1cm4gYQp0aHJvdyBILmIoSC5QdihhLCJTdHJpbmciKSl9LAp5OmZ1bmN0aW9uKGEpe2lmKHR5cGVv
ZiBhPT0ic3RyaW5nIilyZXR1cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYihILnEoYSwi
U3RyaW5nIikpfSwKaW86ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIKZm9yKHQ9IiIscz0iIixyPTA7cjxh
Lmxlbmd0aDsrK3Iscz0iLCAiKXQrPUMueEIuaChzLEguZG0oYVtyXSxiKSkKcmV0dXJuIHR9LApiSTpm
dW5jdGlvbihhMCxhMSxhMil7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGgsZyxmLGUsZCxjLGIs
YT0iLCAiCmlmKGEyIT1udWxsKXt0PWEyLmxlbmd0aAppZihhMT09bnVsbCl7YTE9SC5WTShbXSx1LnMp
CnM9bnVsbH1lbHNlIHM9YTEubGVuZ3RoCnI9YTEubGVuZ3RoCmZvcihxPXQ7cT4wOy0tcSlDLk5tLmko
YTEsIlQiKyhyK3EpKQpmb3IocD0iPCIsbz0iIixxPTA7cTx0OysrcSxvPWEpe3ArPW8Kbj1hMS5sZW5n
dGgKbT1uLTEtcQppZihtPDApcmV0dXJuIEguT0goYTEsbSkKcD1DLnhCLmgocCxhMVttXSkKbD1hMltx
XQppZighSC5jYyhsKSlwKz1DLnhCLmgoIiBleHRlbmRzICIsSC5kbShsLGExKSl9cCs9Ij4ifWVsc2V7
cD0iIgpzPW51bGx9bj1hMC5RCms9YTAuY2gKaj1rLmEKaT1qLmxlbmd0aApoPWsuYgpnPWgubGVuZ3Ro
CmY9ay5jCmU9Zi5sZW5ndGgKZD1ILmRtKG4sYTEpCmZvcihjPSIiLGI9IiIscT0wO3E8aTsrK3EsYj1h
KWMrPUMueEIuaChiLEguZG0oaltxXSxhMSkpCmlmKGc+MCl7Yys9YisiWyIKZm9yKGI9IiIscT0wO3E8
ZzsrK3EsYj1hKWMrPUMueEIuaChiLEguZG0oaFtxXSxhMSkpCmMrPSJdIn1pZihlPjApe2MrPWIrInsi
CmZvcihiPSIiLHE9MDtxPGU7cSs9MixiPWEpYys9Qy54Qi5oKGIsSC5kbShmW3ErMV0sYTEpKSsiICIr
ZltxXQpjKz0ifSJ9aWYocyE9bnVsbClhMS5sZW5ndGg9cwpyZXR1cm4gcCsiKCIrYysiKSA9PiAiK0gu
ZChkKX0sCmRtOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscD1hLnoKaWYocD09PTUpcmV0dXJuImVy
YXNlZCIKaWYocD09PTIpcmV0dXJuImR5bmFtaWMiCmlmKHA9PT0zKXJldHVybiJ2b2lkIgppZihwPT09
MSlyZXR1cm4iTmV2ZXIiCmlmKHA9PT00KXJldHVybiJhbnkiCmlmKHA9PT02KXJldHVybiBILmQoSC5k
bShhLlEsYikpKyIqIgppZihwPT09NylyZXR1cm4gSC5kKEguZG0oYS5RLGIpKSsiPyIKaWYocD09PTgp
cmV0dXJuIkZ1dHVyZU9yPCIrSC5kKEguZG0oYS5RLGIpKSsiPiIKaWYocD09PTkpe3Q9SC5vMyhhLlEp
CnM9YS5jaApyZXR1cm4gcy5sZW5ndGghPT0wP3QrKCI8IitILmlvKHMsYikrIj4iKTp0fWlmKHA9PT0x
MSlyZXR1cm4gSC5iSShhLGIsbnVsbCkKaWYocD09PTEyKXJldHVybiBILmJJKGEuUSxiLGEuY2gpCmlm
KHA9PT0xMyl7cj1hLlEKcT1iLmxlbmd0aApyPXEtMS1yCmlmKHI8MHx8cj49cSlyZXR1cm4gSC5PSChi
LHIpCnJldHVybiBiW3JdfXJldHVybiI/In0sCm8zOmZ1bmN0aW9uKGEpe3ZhciB0LHM9SC5KZyhhKQpp
ZihzIT1udWxsKXJldHVybiBzCnQ9Im1pbmlmaWVkOiIrYQpyZXR1cm4gdH0sClFvOmZ1bmN0aW9uKGEs
Yil7dmFyIHQ9YS50UltiXQpmb3IoO3R5cGVvZiB0PT0ic3RyaW5nIjspdD1hLnRSW3RdCnJldHVybiB0
fSwKYWk6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG89YS5lVCxuPW9bYl0KaWYobj09bnVsbCly
ZXR1cm4gSC5FKGEsYikKZWxzZSBpZih0eXBlb2Ygbj09Im51bWJlciIpe3Q9bgpzPUgubShhLDUsIiMi
KQpyPVtdCmZvcihxPTA7cTx0OysrcSlyLnB1c2gocykKcD1ILkooYSxiLHIpCm9bYl09cApyZXR1cm4g
cH1lbHNlIHJldHVybiBufSwKeGI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSC5JeChhLnRSLGIpfSwKRkY6
ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSC5JeChhLmVULGIpfSwKRTpmdW5jdGlvbihhLGIpe3ZhciB0LHM9
YS5lQyxyPXMuZ2V0KGIpCmlmKHIhPW51bGwpcmV0dXJuIHIKdD1ILnooYSxudWxsLGIpCnMuc2V0KGIs
dCkKcmV0dXJuIHR9LApjRTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyPWIuY3gKaWYocj09bnVsbCly
PWIuY3g9bmV3IE1hcCgpCnQ9ci5nZXQoYykKaWYodCE9bnVsbClyZXR1cm4gdApzPUgueihhLGIsYykK
ci5zZXQoYyxzKQpyZXR1cm4gc30sCnY1OmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscT1iLmN5Cmlm
KHE9PW51bGwpcT1iLmN5PW5ldyBNYXAoKQp0PWMuZGIKcz1xLmdldCh0KQppZihzIT1udWxsKXJldHVy
biBzCnI9SC5hKGEsYixjLno9PT0xMD9jLmNoOltjXSkKcS5zZXQodCxyKQpyZXR1cm4gcn0sCno6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciB0PUguaShILm8oYSxiLGMpKQpyZXR1cm4gdH0sCldHOmZ1bmN0aW9uKGEs
Yil7dmFyIHQ9Yi5kYgphLmVDLnNldCh0LGIpCmIuYT1ILk96CmIuYj1ILkF2CmIuYz1ILkpKCnJldHVy
biBifSwKbTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscz1hLmVDLmdldChjKQppZihzIT1udWxsKXJldHVy
biBzCnQ9bmV3IEguSmMobnVsbCxudWxsLG51bGwpCnQuej1iCnQuZGI9YwpyZXR1cm4gSC5XRyhhLHQp
fSwKdjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzPWEuZUMuZ2V0KGQpCmlmKHMhPW51bGwpcmV0dXJu
IHMKdD1uZXcgSC5KYyhudWxsLG51bGwsbnVsbCkKdC56PWIKdC5RPWMKdC5kYj1kCnJldHVybiBILldH
KGEsdCl9LApIOmZ1bmN0aW9uKGEsYil7dmFyIHQscz0iIitiKyJeIixyPWEuZUMuZ2V0KHMpCmlmKHIh
PW51bGwpcmV0dXJuIHIKdD1uZXcgSC5KYyhudWxsLG51bGwsbnVsbCkKdC56PTEzCnQuUT1iCnQuZGI9
cwpyZXR1cm4gSC5XRyhhLHQpfSwKVXg6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9YS5sZW5ndGgKZm9y
KHQ9IiIscz0iIixyPTA7cjxxOysrcixzPSIsIil0Kz1zK2Fbcl0uZGIKcmV0dXJuIHR9LApTNDpmdW5j
dGlvbihhKXt2YXIgdCxzLHIscSxwLG89YS5sZW5ndGgKZm9yKHQ9IiIscz0iIixyPTA7cjxvO3IrPTIs
cz0iLCIpe3E9YVtyXQpwPWFbcisxXS5kYgp0Kz1zK3ErIjoiK3B9cmV0dXJuIHR9LApKOmZ1bmN0aW9u
KGEsYixjKXt2YXIgdCxzLHI9YgppZihjLmxlbmd0aCE9PTApcis9IjwiK0guVXgoYykrIj4iCnQ9YS5l
Qy5nZXQocikKaWYodCE9bnVsbClyZXR1cm4gdApzPW5ldyBILkpjKG51bGwsbnVsbCxudWxsKQpzLno9
OQpzLlE9YgpzLmNoPWMKaWYoYy5sZW5ndGg+MClzLmQ9Y1swXQpzLmRiPXIKcmV0dXJuIEguV0coYSxz
KX0sCmE6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxLHAKaWYoYi56PT09MTApe3Q9Yi5RCnM9Yi5j
aC5jb25jYXQoYyl9ZWxzZXtzPWMKdD1ifXI9dC5kYisiOyIrKCI8IitILlV4KHMpKyI+IikKcT1hLmVD
LmdldChyKQppZihxIT1udWxsKXJldHVybiBxCnA9bmV3IEguSmMobnVsbCxudWxsLG51bGwpCnAuej0x
MApwLlE9dApwLmNoPXMKcC5kYj1yCnJldHVybiBILldHKGEscCl9LApDOmZ1bmN0aW9uKGEsYixjKXt2
YXIgdCxzLHIscT1iLmRiLHA9Yy5hLG89cC5sZW5ndGgsbj1jLmIsbT1uLmxlbmd0aCxsPWMuYyxrPWwu
bGVuZ3RoLGo9IigiK0guVXgocCkKaWYobT4wKWorPShvPjA/IiwiOiIiKSsiWyIrSC5VeChuKSsiXSIK
aWYoaz4wKWorPShvPjA/IiwiOiIiKSsieyIrSC5TNChsKSsifSIKdD1xKyhqKyIpIikKcz1hLmVDLmdl
dCh0KQppZihzIT1udWxsKXJldHVybiBzCnI9bmV3IEguSmMobnVsbCxudWxsLG51bGwpCnIuej0xMQpy
LlE9YgpyLmNoPWMKci5kYj10CnJldHVybiBILldHKGEscil9LApEOmZ1bmN0aW9uKGEsYixjKXt2YXIg
dCxzPWIuZGIrIjwiK0guVXgoYykrIj4iLHI9YS5lQy5nZXQocykKaWYociE9bnVsbClyZXR1cm4gcgp0
PW5ldyBILkpjKG51bGwsbnVsbCxudWxsKQp0Lno9MTIKdC5RPWIKdC5jaD1jCnQuZGI9cwpyZXR1cm4g
SC5XRyhhLHQpfSwKbzpmdW5jdGlvbihhLGIsYyl7cmV0dXJue3U6YSxlOmIscjpjLHM6W10scDowfX0s
Cmk6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGgsZz1hLnIsZj1hLnMKZm9y
KHQ9Zy5sZW5ndGgscz0wO3M8dDspe3I9Zy5jaGFyQ29kZUF0KHMpCmlmKHI+PTQ4JiZyPD01NylzPUgu
QShzKzEscixnLGYpCmVsc2UgaWYoKCgocnwzMik+Pj4wKS05NyY2NTUzNSk8MjZ8fHI9PT05NXx8cj09
PTM2KXM9SC50KGEscyxnLGYsITEpCmVsc2UgaWYocj09PTQ2KXM9SC50KGEscyxnLGYsITApCmVsc2V7
KytzCnN3aXRjaChyKXtjYXNlIDQ0OmJyZWFrCmNhc2UgNTg6YnJlYWsKY2FzZSA1OTpmLnB1c2goSC5L
KGEudSxhLmUsZi5wb3AoKSkpCmJyZWFrCmNhc2UgOTQ6Zi5wdXNoKEguSChhLnUsZi5wb3AoKSkpCmJy
ZWFrCmNhc2UgMzU6Zi5wdXNoKEgubShhLnUsNSwiIyIpKQpicmVhawpjYXNlIDY0OmYucHVzaChILm0o
YS51LDIsIkAiKSkKYnJlYWsKY2FzZSAxMjY6Zi5wdXNoKEgubShhLnUsMywifiIpKQpicmVhawpjYXNl
IDYwOmYucHVzaChhLnApCmEucD1mLmxlbmd0aApicmVhawpjYXNlIDYyOnE9YS51CnA9Zi5zcGxpY2Uo
YS5wKQpILnIoYS51LGEuZSxwKQphLnA9Zi5wb3AoKQpvPWYucG9wKCkKaWYodHlwZW9mIG89PSJzdHJp
bmciKWYucHVzaChILkoocSxvLHApKQplbHNle249SC5LKHEsYS5lLG8pCnN3aXRjaChuLnope2Nhc2Ug
MTE6Zi5wdXNoKEguRChxLG4scCkpCmJyZWFrCmRlZmF1bHQ6Zi5wdXNoKEguYShxLG4scCkpCmJyZWFr
fX1icmVhawpjYXNlIDM4OkguSShhLGYpCmJyZWFrCmNhc2UgNDI6bT1hLnUKbD1ILksobSxhLmUsZi5w
b3AoKSkKZi5wdXNoKEgudihtLDYsbCxsLmRiKyIqIikpCmJyZWFrCmNhc2UgNjM6bT1hLnUKbD1ILkso
bSxhLmUsZi5wb3AoKSkKZi5wdXNoKEgudihtLDcsbCxsLmRiKyI/IikpCmJyZWFrCmNhc2UgNDc6bT1h
LnUKbD1ILksobSxhLmUsZi5wb3AoKSkKZi5wdXNoKEgudihtLDgsbCxsLmRiKyIvIikpCmJyZWFrCmNh
c2UgNDA6Zi5wdXNoKGEucCkKYS5wPWYubGVuZ3RoCmJyZWFrCmNhc2UgNDE6cT1hLnUKaz1uZXcgSC5H
KCkKaj1xLnNFQQppPXEuc0VBCm89Zi5wb3AoKQppZih0eXBlb2Ygbz09Im51bWJlciIpc3dpdGNoKG8p
e2Nhc2UtMTpqPWYucG9wKCkKYnJlYWsKY2FzZS0yOmk9Zi5wb3AoKQpicmVhawpkZWZhdWx0OmYucHVz
aChvKQpicmVha31lbHNlIGYucHVzaChvKQpwPWYuc3BsaWNlKGEucCkKSC5yKGEudSxhLmUscCkKYS5w
PWYucG9wKCkKay5hPXAKay5iPWoKay5jPWkKZi5wdXNoKEguQyhxLEguSyhxLGEuZSxmLnBvcCgpKSxr
KSkKYnJlYWsKY2FzZSA5MTpmLnB1c2goYS5wKQphLnA9Zi5sZW5ndGgKYnJlYWsKY2FzZSA5MzpwPWYu
c3BsaWNlKGEucCkKSC5yKGEudSxhLmUscCkKYS5wPWYucG9wKCkKZi5wdXNoKHApCmYucHVzaCgtMSkK
YnJlYWsKY2FzZSAxMjM6Zi5wdXNoKGEucCkKYS5wPWYubGVuZ3RoCmJyZWFrCmNhc2UgMTI1OnA9Zi5z
cGxpY2UoYS5wKQpILkIoYS51LGEuZSxwKQphLnA9Zi5wb3AoKQpmLnB1c2gocCkKZi5wdXNoKC0yKQpi
cmVhawpkZWZhdWx0OnRocm93IkJhZCBjaGFyYWN0ZXIgIityfX19aD1mLnBvcCgpCnJldHVybiBILkso
YS51LGEuZSxoKX0sCkE6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyPWItNDgKZm9yKHQ9Yy5sZW5n
dGg7YTx0OysrYSl7cz1jLmNoYXJDb2RlQXQoYSkKaWYoIShzPj00OCYmczw9NTcpKWJyZWFrCnI9ciox
MCsocy00OCl9ZC5wdXNoKHIpCnJldHVybiBhfSwKdDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciB0LHMs
cixxLHAsbyxuPWIrMQpmb3IodD1jLmxlbmd0aDtuPHQ7KytuKXtzPWMuY2hhckNvZGVBdChuKQppZihz
PT09NDYpe2lmKGUpYnJlYWsKZT0hMH1lbHNle2lmKCEoKCgoc3wzMik+Pj4wKS05NyY2NTUzNSk8MjZ8
fHM9PT05NXx8cz09PTM2KSlyPXM+PTQ4JiZzPD01NwplbHNlIHI9ITAKaWYoIXIpYnJlYWt9fXE9Yy5z
dWJzdHJpbmcoYixuKQppZihlKXt0PWEudQpwPWEuZQppZihwLno9PT0xMClwPXAuUQpvPUguUW8odCxw
LlEpW3FdCmlmKG89PW51bGwpSC52aCgnTm8gIicrcSsnIiBpbiAiJytILm1EKHApKyciJykKZC5wdXNo
KEguY0UodCxwLG8pKX1lbHNlIGQucHVzaChxKQpyZXR1cm4gbn0sCkk6ZnVuY3Rpb24oYSxiKXt2YXIg
dD1iLnBvcCgpCmlmKDA9PT10KXtiLnB1c2goSC5tKGEudSwxLCIwJiIpKQpyZXR1cm59aWYoMT09PXQp
e2IucHVzaChILm0oYS51LDQsIjEmIikpCnJldHVybn10aHJvdyBILmIoUC5oVigiVW5leHBlY3RlZCBl
eHRlbmRlZCBvcGVyYXRpb24gIitILmQodCkpKX0sCks6ZnVuY3Rpb24oYSxiLGMpe2lmKHR5cGVvZiBj
PT0ic3RyaW5nIilyZXR1cm4gSC5KKGEsYyxhLnNFQSkKZWxzZSBpZih0eXBlb2YgYz09Im51bWJlciIp
cmV0dXJuIEguVFYoYSxiLGMpCmVsc2UgcmV0dXJuIGN9LApyOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxz
PWMubGVuZ3RoCmZvcih0PTA7dDxzOysrdCljW3RdPUguSyhhLGIsY1t0XSl9LApCOmZ1bmN0aW9uKGEs
YixjKXt2YXIgdCxzPWMubGVuZ3RoCmZvcih0PTE7dDxzO3QrPTIpY1t0XT1ILksoYSxiLGNbdF0pfSwK
VFY6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscj1iLnoKaWYocj09PTEwKXtpZihjPT09MClyZXR1cm4g
Yi5RCnQ9Yi5jaApzPXQubGVuZ3RoCmlmKGM8PXMpcmV0dXJuIHRbYy0xXQpjLT1zCmI9Yi5RCnI9Yi56
fWVsc2UgaWYoYz09PTApcmV0dXJuIGIKaWYociE9PTkpdGhyb3cgSC5iKFAuaFYoIkluZGV4ZWQgYmFz
ZSBtdXN0IGJlIGFuIGludGVyZmFjZSB0eXBlIikpCnQ9Yi5jaAppZihjPD10Lmxlbmd0aClyZXR1cm4g
dFtjLTFdCnRocm93IEguYihQLmhWKCJCYWQgaW5kZXggIitjKyIgZm9yICIrYi53KDApKSl9LApXZTpm
dW5jdGlvbihhLGIsYyxkLGUpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrCmlmKGI9PT1kKXJldHVybiEw
CmlmKEguY2MoZCkpcmV0dXJuITAKdD1iLnoKaWYodD09PTQpcmV0dXJuITAKaWYoSC5jYyhiKSlyZXR1
cm4hMQppZihiPT09dS5QKXJldHVybiEwCnM9dD09PTEzCmlmKHMpaWYoSC5XZShhLGNbYi5RXSxjLGQs
ZSkpcmV0dXJuITAKcj1kLnoKaWYodD09PTYpcmV0dXJuIEguV2UoYSxiLlEsYyxkLGUpCmlmKHI9PT02
KXtxPWQuUQpyZXR1cm4gSC5XZShhLGIsYyxxLGUpfWlmKHQ9PT04KXtpZighSC5XZShhLGIuUSxjLGQs
ZSkpcmV0dXJuITEKcmV0dXJuIEguV2UoYSxILnhaKGEsYiksYyxkLGUpfWlmKHQ9PT03KXtxPUguV2Uo
YSxiLlEsYyxkLGUpCnJldHVybiBxfWlmKHI9PT04KXtpZihILldlKGEsYixjLGQuUSxlKSlyZXR1cm4h
MApyZXR1cm4gSC5XZShhLGIsYyxILnhaKGEsZCksZSl9aWYocj09PTcpe3E9SC5XZShhLGIsYyxkLlEs
ZSkKcmV0dXJuIHF9aWYocylyZXR1cm4hMQpxPXQhPT0xMQppZigoIXF8fHQ9PT0xMikmJmQ9PT11Llop
cmV0dXJuITAKaWYocj09PTEyKXtpZihiPT09dS5nKXJldHVybiEwCmlmKHQhPT0xMilyZXR1cm4hMQpw
PWIuY2gKbz1kLmNoCm49cC5sZW5ndGgKaWYobiE9PW8ubGVuZ3RoKXJldHVybiExCmZvcihxPXUuYXYs
bT0wO208bjsrK20pe2w9cFttXQprPW9bbV0KcS5iKGwpCnEuYihrKQppZighSC5XZShhLGwsYyxrLGUp
fHwhSC5XZShhLGssZSxsLGMpKXJldHVybiExfWM9Yz09bnVsbD9wOnAuY29uY2F0KGMpCmU9ZT09bnVs
bD9vOm8uY29uY2F0KGUpCnJldHVybiBILmJPKGEsYi5RLGMsZC5RLGUpfWlmKHI9PT0xMSl7aWYoYj09
PXUuZylyZXR1cm4hMAppZihxKXJldHVybiExCnJldHVybiBILmJPKGEsYixjLGQsZSl9aWYodD09PTkp
e2lmKHIhPT05KXJldHVybiExCnJldHVybiBILnBHKGEsYixjLGQsZSl9cmV0dXJuITF9LApiTzpmdW5j
dGlvbihhMCxhMSxhMixhMyxhNCl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGgsZyxmLGUsZCxj
LGIsYQppZighSC5XZShhMCxhMS5RLGEyLGEzLlEsYTQpKXJldHVybiExCnQ9YTEuY2gKcz1hMy5jaApy
PXQuYQpxPXMuYQpwPXIubGVuZ3RoCm89cS5sZW5ndGgKaWYocD5vKXJldHVybiExCm49by1wCm09dC5i
Cmw9cy5iCms9bS5sZW5ndGgKaj1sLmxlbmd0aAppZihwK2s8bytqKXJldHVybiExCmZvcihpPTA7aTxw
OysraSl7aD1yW2ldCmlmKCFILldlKGEwLHFbaV0sYTQsaCxhMikpcmV0dXJuITF9Zm9yKGk9MDtpPG47
KytpKXtoPW1baV0KaWYoIUguV2UoYTAscVtwK2ldLGE0LGgsYTIpKXJldHVybiExfWZvcihpPTA7aTxq
OysraSl7aD1tW24raV0KaWYoIUguV2UoYTAsbFtpXSxhNCxoLGEyKSlyZXR1cm4hMX1nPXQuYwpmPXMu
YwplPWcubGVuZ3RoCmQ9Zi5sZW5ndGgKZm9yKGk9MCxjPTA7YzxkO2MrPTIpe2I9ZltjXQpkb3tpZihp
Pj1lKXJldHVybiExCmE9Z1tpXQppKz0yfXdoaWxlKGE8YikKaWYoYjxhKXJldHVybiExCmg9Z1tpLTFd
CmlmKCFILldlKGEwLGZbYysxXSxhNCxoLGEyKSlyZXR1cm4hMX1yZXR1cm4hMH0sCnBHOmZ1bmN0aW9u
KGEsYixjLGQsZSl7dmFyIHQscyxyLHEscCxvLG4sbSxsPWIuUSxrPWQuUQppZihsPT09ayl7dD1iLmNo
CnM9ZC5jaApyPXQubGVuZ3RoCmZvcihxPTA7cTxyOysrcSl7cD10W3FdCm89c1txXQppZighSC5XZShh
LHAsYyxvLGUpKXJldHVybiExfXJldHVybiEwfW49SC5RbyhhLGwpCmlmKG49PW51bGwpcmV0dXJuITEK
bT1uW2tdCmlmKG09PW51bGwpcmV0dXJuITEKcj1tLmxlbmd0aApzPWQuY2gKZm9yKHE9MDtxPHI7Kytx
KWlmKCFILldlKGEsSC5jRShhLGIsbVtxXSksYyxzW3FdLGUpKXJldHVybiExCnJldHVybiEwfSwKY2M6
ZnVuY3Rpb24oYSl7dmFyIHQscwppZihhPT09dS5LKXJldHVybiEwCnQ9YS56CmlmKHQhPT0yKWlmKHQh
PT0zKWlmKHQhPT00KWlmKHQhPT01KXM9dD09PTgmJkguY2MoYS5RKQplbHNlIHM9ITAKZWxzZSBzPSEw
CmVsc2Ugcz0hMAplbHNlIHM9ITAKcmV0dXJuIHN9LApJeDpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj1P
YmplY3Qua2V5cyhiKSxxPXIubGVuZ3RoCmZvcih0PTA7dDxxOysrdCl7cz1yW3RdCmFbc109YltzXX19
LApKYzpmdW5jdGlvbiBKYyhhLGIsYyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLnk9Xy54
PV8uZD1udWxsCl8uej0wCl8uZGI9Xy5jeT1fLmN4PV8uY2g9Xy5RPW51bGx9LApHOmZ1bmN0aW9uIEco
KXt0aGlzLmM9dGhpcy5iPXRoaXMuYT1udWxsfSwKdTk6ZnVuY3Rpb24gdTkoKXt9LApoejpmdW5jdGlv
biBoeihhKXt0aGlzLmE9YX0sCmlNOmZ1bmN0aW9uIGlNKGEpe3RoaXMuYT1hfSwKUjk6ZnVuY3Rpb24o
YSl7cmV0dXJuIHUuZC5jKGEpfHx1LkIuYyhhKXx8dS53LmMoYSl8fHUuSS5jKGEpfHx1LkEuYyhhKXx8
dS5nNC5jKGEpfHx1LmcyLmMoYSl9LApKZzpmdW5jdGlvbihhKXtyZXR1cm4gdi5tYW5nbGVkR2xvYmFs
TmFtZXNbYV19fSxKPXsKUXU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJue2k6YSxwOmIsZTpjLHg6ZH19
LAprczpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPWFbdi5kaXNwYXRjaFByb3BlcnR5TmFtZV0KaWYo
cD09bnVsbClpZigkLkJ2PT1udWxsKXtILlhEKCkKcD1hW3YuZGlzcGF0Y2hQcm9wZXJ0eU5hbWVdfWlm
KHAhPW51bGwpe3Q9cC5wCmlmKCExPT09dClyZXR1cm4gcC5pCmlmKCEwPT09dClyZXR1cm4gYQpzPU9i
amVjdC5nZXRQcm90b3R5cGVPZihhKQppZih0PT09cylyZXR1cm4gcC5pCmlmKHAuZT09PXMpdGhyb3cg
SC5iKFAuU1koIlJldHVybiBpbnRlcmNlcHRvciBmb3IgIitILmQodChhLHApKSkpfXI9YS5jb25zdHJ1
Y3RvcgpxPXI9PW51bGw/bnVsbDpyWyQuVU4oKV0KaWYocSE9bnVsbClyZXR1cm4gcQpxPUgudzMoYSkK
aWYocSE9bnVsbClyZXR1cm4gcQppZih0eXBlb2YgYT09ImZ1bmN0aW9uIilyZXR1cm4gQy5ERwp0PU9i
amVjdC5nZXRQcm90b3R5cGVPZihhKQppZih0PT1udWxsKXJldHVybiBDLlpRCmlmKHQ9PT1PYmplY3Qu
cHJvdG90eXBlKXJldHVybiBDLlpRCmlmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXtPYmplY3QuZGVmaW5l
UHJvcGVydHkociwkLlVOKCkse3ZhbHVlOkMudkIsZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVl
LGNvbmZpZ3VyYWJsZTp0cnVlfSkKcmV0dXJuIEMudkJ9cmV0dXJuIEMudkJ9LApRaTpmdW5jdGlvbihh
LGIpe2lmKGE8MHx8YT40Mjk0OTY3Mjk1KXRocm93IEguYihQLlRFKGEsMCw0Mjk0OTY3Mjk1LCJsZW5n
dGgiLG51bGwpKQpyZXR1cm4gSi5weShuZXcgQXJyYXkoYSksYil9LApweTpmdW5jdGlvbihhLGIpe3Jl
dHVybiBKLkVwKEguVk0oYSxiLkMoImpkPDA+IikpKX0sCkVwOmZ1bmN0aW9uKGEpe2EuZml4ZWQkbGVu
Z3RoPUFycmF5CnJldHVybiBhfSwKekM6ZnVuY3Rpb24oYSl7YS5maXhlZCRsZW5ndGg9QXJyYXkKYS5p
bW11dGFibGUkbGlzdD1BcnJheQpyZXR1cm4gYX0sCkdhOmZ1bmN0aW9uKGEpe2lmKGE8MjU2KXN3aXRj
aChhKXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTI6Y2FzZSAxMzpjYXNlIDMyOmNhc2UgMTMz
OmNhc2UgMTYwOnJldHVybiEwCmRlZmF1bHQ6cmV0dXJuITF9c3dpdGNoKGEpe2Nhc2UgNTc2MDpjYXNl
IDgxOTI6Y2FzZSA4MTkzOmNhc2UgODE5NDpjYXNlIDgxOTU6Y2FzZSA4MTk2OmNhc2UgODE5NzpjYXNl
IDgxOTg6Y2FzZSA4MTk5OmNhc2UgODIwMDpjYXNlIDgyMDE6Y2FzZSA4MjAyOmNhc2UgODIzMjpjYXNl
IDgyMzM6Y2FzZSA4MjM5OmNhc2UgODI4NzpjYXNlIDEyMjg4OmNhc2UgNjUyNzk6cmV0dXJuITAKZGVm
YXVsdDpyZXR1cm4hMX19LAptbTpmdW5jdGlvbihhLGIpe3ZhciB0LHMKZm9yKHQ9YS5sZW5ndGg7Yjx0
Oyl7cz1DLnhCLlcoYSxiKQppZihzIT09MzImJnMhPT0xMyYmIUouR2EocykpYnJlYWs7KytifXJldHVy
biBifSwKYzE6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzCmZvcig7Yj4wO2I9dCl7dD1iLTEKcz1DLnhCLm0o
YSx0KQppZihzIT09MzImJnMhPT0xMyYmIUouR2EocykpYnJlYWt9cmV0dXJuIGJ9LApSRTpmdW5jdGlv
bihhKXtpZihhPT1udWxsKXJldHVybiBhCmlmKHR5cGVvZiBhIT0ib2JqZWN0Iil7aWYodHlwZW9mIGE9
PSJmdW5jdGlvbiIpcmV0dXJuIEouYzUucHJvdG90eXBlCnJldHVybiBhfWlmKGEgaW5zdGFuY2VvZiBQ
LmspcmV0dXJuIGEKcmV0dXJuIEoua3MoYSl9LApUSjpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09Im51
bWJlciIpcmV0dXJuIEoucUkucHJvdG90eXBlCmlmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gSi5E
ci5wcm90b3R5cGUKaWYoYT09bnVsbClyZXR1cm4gYQppZihhLmNvbnN0cnVjdG9yPT1BcnJheSlyZXR1
cm4gSi5qZC5wcm90b3R5cGUKaWYodHlwZW9mIGEhPSJvYmplY3QiKXtpZih0eXBlb2YgYT09ImZ1bmN0
aW9uIilyZXR1cm4gSi5jNS5wcm90b3R5cGUKcmV0dXJuIGF9aWYoYSBpbnN0YW5jZW9mIFAuaylyZXR1
cm4gYQpyZXR1cm4gSi5rcyhhKX0sClU2OmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIily
ZXR1cm4gSi5Eci5wcm90b3R5cGUKaWYoYT09bnVsbClyZXR1cm4gYQppZihhLmNvbnN0cnVjdG9yPT1B
cnJheSlyZXR1cm4gSi5qZC5wcm90b3R5cGUKaWYodHlwZW9mIGEhPSJvYmplY3QiKXtpZih0eXBlb2Yg
YT09ImZ1bmN0aW9uIilyZXR1cm4gSi5jNS5wcm90b3R5cGUKcmV0dXJuIGF9aWYoYSBpbnN0YW5jZW9m
IFAuaylyZXR1cm4gYQpyZXR1cm4gSi5rcyhhKX0sCmlhOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0i
bnVtYmVyIil7aWYoTWF0aC5mbG9vcihhKT09YSlyZXR1cm4gSi51ci5wcm90b3R5cGUKcmV0dXJuIEou
VkEucHJvdG90eXBlfWlmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gSi5Eci5wcm90b3R5cGUKaWYo
YT09bnVsbClyZXR1cm4gSi5ZRS5wcm90b3R5cGUKaWYodHlwZW9mIGE9PSJib29sZWFuIilyZXR1cm4g
Si55RS5wcm90b3R5cGUKaWYoYS5jb25zdHJ1Y3Rvcj09QXJyYXkpcmV0dXJuIEouamQucHJvdG90eXBl
CmlmKHR5cGVvZiBhIT0ib2JqZWN0Iil7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIEouYzUu
cHJvdG90eXBlCnJldHVybiBhfWlmKGEgaW5zdGFuY2VvZiBQLmspcmV0dXJuIGEKcmV0dXJuIEoua3Mo
YSl9LApyWTpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIEouRHIucHJvdG90
eXBlCmlmKGE9PW51bGwpcmV0dXJuIGEKaWYoIShhIGluc3RhbmNlb2YgUC5rKSlyZXR1cm4gSi5rZC5w
cm90b3R5cGUKcmV0dXJuIGF9LAp3MTpmdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhCmlmKGEu
Y29uc3RydWN0b3I9PUFycmF5KXJldHVybiBKLmpkLnByb3RvdHlwZQppZih0eXBlb2YgYSE9Im9iamVj
dCIpe2lmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXJldHVybiBKLmM1LnByb3RvdHlwZQpyZXR1cm4gYX1p
ZihhIGluc3RhbmNlb2YgUC5rKXJldHVybiBhCnJldHVybiBKLmtzKGEpfSwKQ006ZnVuY3Rpb24oYSxi
LGMsZCl7cmV0dXJuIEouUkUoYSkuZHUoYSxiLGMsZCl9LApGTDpmdW5jdGlvbihhLGIpe3JldHVybiBK
LnJZKGEpLmRkKGEsYil9LApHQTpmdW5jdGlvbihhLGIpe3JldHVybiBKLncxKGEpLkUoYSxiKX0sCkht
OmZ1bmN0aW9uKGEpe3JldHVybiBKLlU2KGEpLmdBKGEpfSwKSVQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEou
dzEoYSkuZ2t6KGEpfSwKSnk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi5pYShhKS5lNyhhLGIpfSwKS1Y6
ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi5yWShhKS5HKGEsYil9LApMdDpmdW5jdGlvbihhKXtyZXR1cm4g
Si5SRShhKS53ZyhhKX0sCk0xOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSi53MShhKS5FMihhLGIsYyl9
LApRejpmdW5jdGlvbihhLGIpe3JldHVybiBKLnJZKGEpLlcoYSxiKX0sClJNOmZ1bmN0aW9uKGEsYil7
aWYoYT09bnVsbClyZXR1cm4gYj09bnVsbAppZih0eXBlb2YgYSE9Im9iamVjdCIpcmV0dXJuIGIhPW51
bGwmJmE9PT1iCnJldHVybiBKLmlhKGEpLkROKGEsYil9LApUMDpmdW5jdGlvbihhKXtyZXR1cm4gSi5y
WShhKS5iUyhhKX0sCmE2OmZ1bmN0aW9uKGEsYil7cmV0dXJuIEouclkoYSkubShhLGIpfSwKYlQ6ZnVu
Y3Rpb24oYSl7cmV0dXJuIEouUkUoYSkuRDQoYSl9LApiYjpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBh
PT0ibnVtYmVyIiYmdHlwZW9mIGI9PSJudW1iZXIiKXJldHVybiBhK2IKcmV0dXJuIEouVEooYSkuaChh
LGIpfSwKY0g6ZnVuY3Rpb24oYSl7cmV0dXJuIEouclkoYSkuaGMoYSl9LApkUjpmdW5jdGlvbihhKXty
ZXR1cm4gSi5SRShhKS5nRChhKX0sCmRaOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBKLlJFKGEpLk9u
KGEsYixjLGQpfSwKZGg6ZnVuY3Rpb24oYSl7cmV0dXJuIEouUkUoYSkudG4oYSl9LApoZjpmdW5jdGlv
bihhKXtyZXR1cm4gSi5pYShhKS5naU8oYSl9LAppZzpmdW5jdGlvbihhKXtyZXR1cm4gSi5SRShhKS5n
UWcoYSl9LApqOmZ1bmN0aW9uKGEpe3JldHVybiBKLmlhKGEpLncoYSl9LApsNTpmdW5jdGlvbihhLGIp
e3JldHVybiBKLlJFKGEpLnNoZihhLGIpfSwKbGQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBKLnJZKGEp
Lk5qKGEsYixjKX0sCnEwOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSi5yWShhKS5RaShhLGIsYyl9LApx
RjpmdW5jdGlvbihhKXtyZXR1cm4gSi5SRShhKS5nVmwoYSl9LAp0SDpmdW5jdGlvbihhLGIsYyl7cmV0
dXJuIEouUkUoYSkucGsoYSxiLGMpfSwKdzI6ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYj09PSJudW1i
ZXIiKWlmKGEuY29uc3RydWN0b3I9PUFycmF5fHx0eXBlb2YgYT09InN0cmluZyJ8fEgud1YoYSxhW3Yu
ZGlzcGF0Y2hQcm9wZXJ0eU5hbWVdKSlpZihiPj4+MD09PWImJmI8YS5sZW5ndGgpcmV0dXJuIGFbYl0K
cmV0dXJuIEouVTYoYSkucShhLGIpfSwKeVE6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIEouclkoYSku
aTcoYSxiLGMsZCl9LAp6bDpmdW5jdGlvbihhLGIpe3JldHVybiBKLlU2KGEpLnRnKGEsYil9LAp2Qjpm
dW5jdGlvbiB2Qigpe30sCnlFOmZ1bmN0aW9uIHlFKCl7fSwKWUU6ZnVuY3Rpb24gWUUoKXt9LApNRjpm
dW5jdGlvbiBNRigpe30sCmlDOmZ1bmN0aW9uIGlDKCl7fSwKa2Q6ZnVuY3Rpb24ga2QoKXt9LApjNTpm
dW5jdGlvbiBjNSgpe30sCmpkOmZ1bmN0aW9uIGpkKGEpe3RoaXMuJHRpPWF9LApQbzpmdW5jdGlvbiBQ
byhhKXt0aGlzLiR0aT1hfSwKbTE6ZnVuY3Rpb24gbTEoYSxiLGMpe3ZhciBfPXRoaXMKXy5hPWEKXy5i
PWIKXy5jPTAKXy5kPW51bGwKXy4kdGk9Y30sCnFJOmZ1bmN0aW9uIHFJKCl7fSwKdXI6ZnVuY3Rpb24g
dXIoKXt9LApWQTpmdW5jdGlvbiBWQSgpe30sCkRyOmZ1bmN0aW9uIERyKCl7fX0sUD17Ck9qOmZ1bmN0
aW9uKCl7dmFyIHQscyxyPXt9CmlmKHNlbGYuc2NoZWR1bGVJbW1lZGlhdGUhPW51bGwpcmV0dXJuIFAu
RVgoKQppZihzZWxmLk11dGF0aW9uT2JzZXJ2ZXIhPW51bGwmJnNlbGYuZG9jdW1lbnQhPW51bGwpe3Q9
c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQpzPXNlbGYuZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpCnIuYT1udWxsCm5ldyBzZWxmLk11dGF0aW9uT2JzZXJ2ZXIoSC50UihuZXcgUC50
aChyKSwxKSkub2JzZXJ2ZSh0LHtjaGlsZExpc3Q6dHJ1ZX0pCnJldHVybiBuZXcgUC5oYShyLHQscyl9
ZWxzZSBpZihzZWxmLnNldEltbWVkaWF0ZSE9bnVsbClyZXR1cm4gUC55dCgpCnJldHVybiBQLnFXKCl9
LApaVjpmdW5jdGlvbihhKXtzZWxmLnNjaGVkdWxlSW1tZWRpYXRlKEgudFIobmV3IFAuVnModS5NLmIo
YSkpLDApKX0sCm9BOmZ1bmN0aW9uKGEpe3NlbGYuc2V0SW1tZWRpYXRlKEgudFIobmV3IFAuRnQodS5N
LmIoYSkpLDApKX0sCkJ6OmZ1bmN0aW9uKGEpe3UuTS5iKGEpClAuUU4oMCxhKX0sClFOOmZ1bmN0aW9u
KGEsYil7dmFyIHQ9bmV3IFAuVzMoKQp0LkNZKGEsYikKcmV0dXJuIHR9LAprMzpmdW5jdGlvbihhLGIp
e3ZhciB0LHMscgpiLmE9MQp0cnl7YS5TcShuZXcgUC5wVihiKSxuZXcgUC5VNyhiKSx1LlApfWNhdGNo
KHIpe3Q9SC5SdShyKQpzPUgudHMocikKUC5yYihuZXcgUC52cihiLHQscykpfX0sCkE5OmZ1bmN0aW9u
KGEsYil7dmFyIHQscyxyCmZvcih0PXUuXztzPWEuYSxzPT09MjspYT10LmIoYS5jKQppZihzPj00KXty
PWIuYWgoKQpiLmE9YS5hCmIuYz1hLmMKUC5IWihiLHIpfWVsc2V7cj11LnguYihiLmMpCmIuYT0yCmIu
Yz1hCmEualEocil9fSwKSFo6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGks
aCxnLGYsZT1udWxsLGQ9e30sYz1kLmE9YQpmb3IodD11Lm4scz11Lngscj11LmM7ITA7KXtxPXt9CnA9
Yy5hPT09OAppZihiPT1udWxsKXtpZihwKXtvPXQuYihjLmMpClAuTDIoZSxlLGMuYixvLmEsby5iKX1y
ZXR1cm59Zm9yKDtuPWIuYSxuIT1udWxsO2I9bil7Yi5hPW51bGwKUC5IWihkLmEsYil9Yz1kLmEKbT1j
LmMKcS5hPXAKcS5iPW0KbD0hcAppZihsKXtrPWIuYwprPShrJjEpIT09MHx8KGsmMTUpPT09OH1lbHNl
IGs9ITAKaWYoayl7az1iLmIKaj1rLmIKaWYocCl7aT1jLmI9PT1qCmk9IShpfHxpKX1lbHNlIGk9ITEK
aWYoaSl7dC5iKG0pClAuTDIoZSxlLGMuYixtLmEsbS5iKQpyZXR1cm59aD0kLlgzCmlmKGghPT1qKSQu
WDM9agplbHNlIGg9ZQpjPWIuYwppZigoYyYxNSk9PT04KW5ldyBQLlJUKGQscSxiLHApLiQwKCkKZWxz
ZSBpZihsKXtpZigoYyYxKSE9PTApbmV3IFAucnEocSxiLG0pLiQwKCl9ZWxzZSBpZigoYyYyKSE9PTAp
bmV3IFAuUlcoZCxxLGIpLiQwKCkKaWYoaCE9bnVsbCkkLlgzPWgKYz1xLmIKaWYoci5jKGMpKXtpZihj
LmE+PTQpe2c9cy5iKGsuYykKay5jPW51bGwKYj1rLk44KGcpCmsuYT1jLmEKay5jPWMuYwpkLmE9Ywpj
b250aW51ZX1lbHNlIFAuQTkoYyxrKQpyZXR1cm59fWY9Yi5iCmc9cy5iKGYuYykKZi5jPW51bGwKYj1m
Lk44KGcpCmM9cS5hCmw9cS5iCmlmKCFjKXtmLiR0aS5kLmIobCkKZi5hPTQKZi5jPWx9ZWxzZXt0LmIo
bCkKZi5hPTgKZi5jPWx9ZC5hPWYKYz1mfX0sClZIOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dS5ZCmlmKHQu
YyhhKSlyZXR1cm4gdC5iKGEpCnQ9dS55CmlmKHQuYyhhKSlyZXR1cm4gdC5iKGEpCnRocm93IEguYihQ
LkwzKGEsIm9uRXJyb3IiLCJFcnJvciBoYW5kbGVyIG11c3QgYWNjZXB0IG9uZSBPYmplY3Qgb3Igb25l
IE9iamVjdCBhbmQgYSBTdGFja1RyYWNlIGFzIGFyZ3VtZW50cywgYW5kIHJldHVybiBhIGEgdmFsaWQg
cmVzdWx0IikpfSwKcHU6ZnVuY3Rpb24oKXt2YXIgdCxzCmZvcig7dD0kLlM2LHQhPW51bGw7KXskLm1n
PW51bGwKcz10LmIKJC5TNj1zCmlmKHM9PW51bGwpJC5rOD1udWxsCnQuYS4kMCgpfX0sCmVOOmZ1bmN0
aW9uKCl7JC5VRD0hMAp0cnl7UC5wdSgpfWZpbmFsbHl7JC5tZz1udWxsCiQuVUQ9ITEKaWYoJC5TNiE9
bnVsbCkkLnV0KCkuJDEoUC5VSSgpKX19LAplVzpmdW5jdGlvbihhKXt2YXIgdD1uZXcgUC5PTShhKQpp
ZigkLlM2PT1udWxsKXskLlM2PSQuazg9dAppZighJC5VRCkkLnV0KCkuJDEoUC5VSSgpKX1lbHNlICQu
azg9JC5rOC5iPXR9LApyUjpmdW5jdGlvbihhKXt2YXIgdCxzLHI9JC5TNgppZihyPT1udWxsKXtQLmVX
KGEpCiQubWc9JC5rOApyZXR1cm59dD1uZXcgUC5PTShhKQpzPSQubWcKaWYocz09bnVsbCl7dC5iPXIK
JC5TNj0kLm1nPXR9ZWxzZXt0LmI9cy5iCiQubWc9cy5iPXQKaWYodC5iPT1udWxsKSQuazg9dH19LApy
YjpmdW5jdGlvbihhKXt2YXIgdD1udWxsLHM9JC5YMwppZihDLk5VPT09cyl7UC5Uayh0LHQsQy5OVSxh
KQpyZXR1cm59UC5Uayh0LHQscyx1Lk0uYihzLkdZKGEpKSl9LApMMjpmdW5jdGlvbihhLGIsYyxkLGUp
e3ZhciB0PXt9CnQuYT1kClAuclIobmV3IFAucEsodCxlKSl9LApUODpmdW5jdGlvbihhLGIsYyxkLGUp
e3ZhciB0LHM9JC5YMwppZihzPT09YylyZXR1cm4gZC4kMCgpCiQuWDM9Ywp0PXMKdHJ5e3M9ZC4kMCgp
CnJldHVybiBzfWZpbmFsbHl7JC5YMz10fX0sCnl2OmZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciB0
LHM9JC5YMwppZihzPT09YylyZXR1cm4gZC4kMShlKQokLlgzPWMKdD1zCnRyeXtzPWQuJDEoZSkKcmV0
dXJuIHN9ZmluYWxseXskLlgzPXR9fSwKUXg6ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGkpe3ZhciB0
LHM9JC5YMwppZihzPT09YylyZXR1cm4gZC4kMihlLGYpCiQuWDM9Ywp0PXMKdHJ5e3M9ZC4kMihlLGYp
CnJldHVybiBzfWZpbmFsbHl7JC5YMz10fX0sClRrOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0CnUuTS5i
KGQpCnQ9Qy5OVSE9PWMKaWYodClkPSEoIXR8fCExKT9jLkdZKGQpOmMuUlQoZCx1LkgpClAuZVcoZCl9
LAp0aDpmdW5jdGlvbiB0aChhKXt0aGlzLmE9YX0sCmhhOmZ1bmN0aW9uIGhhKGEsYixjKXt0aGlzLmE9
YQp0aGlzLmI9Ygp0aGlzLmM9Y30sClZzOmZ1bmN0aW9uIFZzKGEpe3RoaXMuYT1hfSwKRnQ6ZnVuY3Rp
b24gRnQoYSl7dGhpcy5hPWF9LApXMzpmdW5jdGlvbiBXMygpe30sCnlIOmZ1bmN0aW9uIHlIKGEsYil7
dGhpcy5hPWEKdGhpcy5iPWJ9LApQZjpmdW5jdGlvbiBQZigpe30sClpmOmZ1bmN0aW9uIFpmKGEsYil7
dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCkZlOmZ1bmN0aW9uIEZlKGEsYixjLGQsZSl7dmFyIF89dGhpcwpf
LmE9bnVsbApfLmI9YQpfLmM9YgpfLmQ9YwpfLmU9ZApfLiR0aT1lfSwKdnM6ZnVuY3Rpb24gdnMoYSxi
KXt2YXIgXz10aGlzCl8uYT0wCl8uYj1hCl8uYz1udWxsCl8uJHRpPWJ9LApkYTpmdW5jdGlvbiBkYShh
LGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKb1E6ZnVuY3Rpb24gb1EoYSxiKXt0aGlzLmE9YQp0aGlzLmI9
Yn0sCnBWOmZ1bmN0aW9uIHBWKGEpe3RoaXMuYT1hfSwKVTc6ZnVuY3Rpb24gVTcoYSl7dGhpcy5hPWF9
LAp2cjpmdW5jdGlvbiB2cihhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApySDpmdW5j
dGlvbiBySChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKS0Y6ZnVuY3Rpb24gS0YoYSxiKXt0aGlzLmE9
YQp0aGlzLmI9Yn0sClpMOmZ1bmN0aW9uIFpMKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9
Y30sClJUOmZ1bmN0aW9uIFJUKGEsYixjLGQpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5k
PWR9LApqWjpmdW5jdGlvbiBqWihhKXt0aGlzLmE9YX0sCnJxOmZ1bmN0aW9uIHJxKGEsYixjKXt0aGlz
LmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sClJXOmZ1bmN0aW9uIFJXKGEsYixjKXt0aGlzLmE9YQp0aGlz
LmI9Ygp0aGlzLmM9Y30sCk9NOmZ1bmN0aW9uIE9NKGEpe3RoaXMuYT1hCnRoaXMuYj1udWxsfSwKcWg6
ZnVuY3Rpb24gcWgoKXt9LApCNTpmdW5jdGlvbiBCNShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKUEk6
ZnVuY3Rpb24gUEkoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCk1POmZ1bmN0aW9uIE1PKCl7fSwKa1Q6
ZnVuY3Rpb24ga1QoKXt9LApDdzpmdW5jdGlvbiBDdyhhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKbTA6
ZnVuY3Rpb24gbTAoKXt9LApwSzpmdW5jdGlvbiBwSyhhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKSmk6
ZnVuY3Rpb24gSmkoKXt9LApoajpmdW5jdGlvbiBoaihhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhp
cy5jPWN9LApWcDpmdW5jdGlvbiBWcChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKT1I6ZnVuY3Rpb24g
T1IoYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKRUY6ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBiLkMoIkA8MD4iKS5LcShjKS5DKCJGbzwxLDI+IikuYihILkI3KGEsbmV3IEguTjUoYi5DKCJA
PDA+IikuS3EoYykuQygiTjU8MSwyPiIpKSkpfSwKRmw6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IEgu
TjUoYS5DKCJAPDA+IikuS3EoYikuQygiTjU8MSwyPiIpKX0sCkxzOmZ1bmN0aW9uKGEpe3JldHVybiBu
ZXcgUC5iNihhLkMoImI2PDA+IikpfSwKVDI6ZnVuY3Rpb24oKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51
bGwpCnRbIjxub24taWRlbnRpZmllci1rZXk+Il09dApkZWxldGUgdFsiPG5vbi1pZGVudGlmaWVyLWtl
eT4iXQpyZXR1cm4gdH0sCnJqOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1uZXcgUC5sbShhLGIsYy5DKCJs
bTwwPiIpKQp0LmM9YS5lCnJldHVybiB0fSwKRVA6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMKaWYoUC5o
QihhKSl7aWYoYj09PSIoIiYmYz09PSIpIilyZXR1cm4iKC4uLikiCnJldHVybiBiKyIuLi4iK2N9dD1I
LlZNKFtdLHUucykKQy5ObS5pKCQueGcsYSkKdHJ5e1AuVnIoYSx0KX1maW5hbGx5e2lmKDA+PSQueGcu
bGVuZ3RoKXJldHVybiBILk9IKCQueGcsLTEpCiQueGcucG9wKCl9cz1QLnZnKGIsdS5SLmIodCksIiwg
IikrYwpyZXR1cm4gcy5jaGFyQ29kZUF0KDApPT0wP3M6c30sCldFOmZ1bmN0aW9uKGEsYixjKXt2YXIg
dCxzCmlmKFAuaEIoYSkpcmV0dXJuIGIrIi4uLiIrYwp0PW5ldyBQLlJuKGIpCkMuTm0uaSgkLnhnLGEp
CnRyeXtzPXQKcy5hPVAudmcocy5hLGEsIiwgIil9ZmluYWxseXtpZigwPj0kLnhnLmxlbmd0aClyZXR1
cm4gSC5PSCgkLnhnLC0xKQokLnhnLnBvcCgpfXQuYSs9YwpzPXQuYQpyZXR1cm4gcy5jaGFyQ29kZUF0
KDApPT0wP3M6c30sCmhCOmZ1bmN0aW9uKGEpe3ZhciB0LHMKZm9yKHQ9JC54Zy5sZW5ndGgscz0wO3M8
dDsrK3MpaWYoYT09PSQueGdbc10pcmV0dXJuITAKcmV0dXJuITF9LApWcjpmdW5jdGlvbihhLGIpe3Zh
ciB0LHMscixxLHAsbyxuLG09YS5na3ooYSksbD0wLGs9MAp3aGlsZSghMCl7aWYoIShsPDgwfHxrPDMp
KWJyZWFrCmlmKCFtLkYoKSlyZXR1cm4KdD1ILmQobS5nbCgpKQpDLk5tLmkoYix0KQpsKz10Lmxlbmd0
aCsyOysra31pZighbS5GKCkpe2lmKGs8PTUpcmV0dXJuCmlmKDA+PWIubGVuZ3RoKXJldHVybiBILk9I
KGIsLTEpCnM9Yi5wb3AoKQppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5PSChiLC0xKQpyPWIucG9wKCl9
ZWxzZXtxPW0uZ2woKTsrK2sKaWYoIW0uRigpKXtpZihrPD00KXtDLk5tLmkoYixILmQocSkpCnJldHVy
bn1zPUguZChxKQppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5PSChiLC0xKQpyPWIucG9wKCkKbCs9cy5s
ZW5ndGgrMn1lbHNle3A9bS5nbCgpOysrawpmb3IoO20uRigpO3E9cCxwPW8pe289bS5nbCgpOysrawpp
ZihrPjEwMCl7d2hpbGUoITApe2lmKCEobD43NSYmaz4zKSlicmVhawppZigwPj1iLmxlbmd0aClyZXR1
cm4gSC5PSChiLC0xKQpsLT1iLnBvcCgpLmxlbmd0aCsyOy0ta31DLk5tLmkoYiwiLi4uIikKcmV0dXJu
fX1yPUguZChxKQpzPUguZChwKQpsKz1zLmxlbmd0aCtyLmxlbmd0aCs0fX1pZihrPmIubGVuZ3RoKzIp
e2wrPTUKbj0iLi4uIn1lbHNlIG49bnVsbAp3aGlsZSghMCl7aWYoIShsPjgwJiZiLmxlbmd0aD4zKSli
cmVhawppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5PSChiLC0xKQpsLT1iLnBvcCgpLmxlbmd0aCsyCmlm
KG49PW51bGwpe2wrPTUKbj0iLi4uIn19aWYobiE9bnVsbClDLk5tLmkoYixuKQpDLk5tLmkoYixyKQpD
Lk5tLmkoYixzKX0sCnRNOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyPVAuTHMoYikKZm9yKHQ9YS5sZW5n
dGgscz0wO3M8YS5sZW5ndGg7YS5sZW5ndGg9PT10fHwoMCxILmxrKShhKSwrK3Mpci5pKDAsYi5iKGFb
c10pKQpyZXR1cm4gcn0sCm5POmZ1bmN0aW9uKGEpe3ZhciB0LHM9e30KaWYoUC5oQihhKSlyZXR1cm4i
ey4uLn0iCnQ9bmV3IFAuUm4oIiIpCnRyeXtDLk5tLmkoJC54ZyxhKQp0LmErPSJ7IgpzLmE9ITAKYS5L
KDAsbmV3IFAucmEocyx0KSkKdC5hKz0ifSJ9ZmluYWxseXtpZigwPj0kLnhnLmxlbmd0aClyZXR1cm4g
SC5PSCgkLnhnLC0xKQokLnhnLnBvcCgpfXM9dC5hCnJldHVybiBzLmNoYXJDb2RlQXQoMCk9PTA/czpz
fSwKYjY6ZnVuY3Rpb24gYjYoYSl7dmFyIF89dGhpcwpfLmE9MApfLmY9Xy5lPV8uZD1fLmM9Xy5iPW51
bGwKXy5yPTAKXy4kdGk9YX0sCmJuOmZ1bmN0aW9uIGJuKGEpe3RoaXMuYT1hCnRoaXMuYz10aGlzLmI9
bnVsbH0sCmxtOmZ1bmN0aW9uIGxtKGEsYixjKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uZD1fLmM9
bnVsbApfLiR0aT1jfSwKbVc6ZnVuY3Rpb24gbVcoKXt9LApMVTpmdW5jdGlvbiBMVSgpe30sCmxEOmZ1
bmN0aW9uIGxEKCl7fSwKaWw6ZnVuY3Rpb24gaWwoKXt9LApyYTpmdW5jdGlvbiByYShhLGIpe3RoaXMu
YT1hCnRoaXMuYj1ifSwKWWs6ZnVuY3Rpb24gWWsoKXt9LApLUDpmdW5jdGlvbiBLUCgpe30sClBuOmZ1
bmN0aW9uIFBuKCl7fSwKR2o6ZnVuY3Rpb24gR2ooYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1ifSwKbGY6
ZnVuY3Rpb24gbGYoKXt9LApWajpmdW5jdGlvbiBWaigpe30sClh2OmZ1bmN0aW9uIFh2KCl7fSwKblk6
ZnVuY3Rpb24gblkoKXt9LApXWTpmdW5jdGlvbiBXWSgpe30sClJVOmZ1bmN0aW9uIFJVKCl7fSwKQlM6
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscQppZih0eXBlb2YgYSE9InN0cmluZyIpdGhyb3cgSC5iKEgu
dEwoYSkpCnQ9bnVsbAp0cnl7dD1KU09OLnBhcnNlKGEpfWNhdGNoKHIpe3M9SC5SdShyKQpxPVAucnIo
U3RyaW5nKHMpLG51bGwsbnVsbCkKdGhyb3cgSC5iKHEpfXE9UC5RZSh0KQpyZXR1cm4gcX0sClFlOmZ1
bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuIG51bGwKaWYodHlwZW9mIGEhPSJvYmplY3Qi
KXJldHVybiBhCmlmKE9iamVjdC5nZXRQcm90b3R5cGVPZihhKSE9PUFycmF5LnByb3RvdHlwZSlyZXR1
cm4gbmV3IFAudXcoYSxPYmplY3QuY3JlYXRlKG51bGwpKQpmb3IodD0wO3Q8YS5sZW5ndGg7Kyt0KWFb
dF09UC5RZShhW3RdKQpyZXR1cm4gYX0sCmt5OmZ1bmN0aW9uKGEsYixjLGQpe2lmKGIgaW5zdGFuY2Vv
ZiBVaW50OEFycmF5KXJldHVybiBQLlJQKCExLGIsYyxkKQpyZXR1cm4gbnVsbH0sClJQOmZ1bmN0aW9u
KGEsYixjLGQpe3ZhciB0LHMscj0kLnJmKCkKaWYocj09bnVsbClyZXR1cm4gbnVsbAp0PTA9PT1jCmlm
KHQmJiEwKXJldHVybiBQLk9RKHIsYikKcz1iLmxlbmd0aApkPVAuakIoYyxkLHMpCmlmKHQmJmQ9PT1z
KXJldHVybiBQLk9RKHIsYikKcmV0dXJuIFAuT1EocixiLnN1YmFycmF5KGMsZCkpfSwKT1E6ZnVuY3Rp
b24oYSxiKXtpZihQLkJlKGIpKXJldHVybiBudWxsCnJldHVybiBQLkpoKGEsYil9LApKaDpmdW5jdGlv
bihhLGIpe3ZhciB0LHMKdHJ5e3Q9YS5kZWNvZGUoYikKcmV0dXJuIHR9Y2F0Y2gocyl7SC5SdShzKX1y
ZXR1cm4gbnVsbH0sCkJlOmZ1bmN0aW9uKGEpe3ZhciB0LHM9YS5sZW5ndGgtMgpmb3IodD0wO3Q8czsr
K3QpaWYoYVt0XT09PTIzNylpZigoYVt0KzFdJjIyNCk9PT0xNjApcmV0dXJuITAKcmV0dXJuITF9LApX
STpmdW5jdGlvbigpe3ZhciB0LHMKdHJ5e3Q9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIse2ZhdGFsOnRy
dWV9KQpyZXR1cm4gdH1jYXRjaChzKXtILlJ1KHMpfXJldHVybiBudWxsfSwKY1A6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0LHMscgpmb3IodD1KLlU2KGEpLHM9YjtzPGM7KytzKXtyPXQucShhLHMpCmlmKHR5cGVv
ZiByIT09Im51bWJlciIpcmV0dXJuIHIuek0oKQppZigociYxMjcpIT09cilyZXR1cm4gcy1ifXJldHVy
biBjLWJ9LAp4TTpmdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoQy5qbi56WShmLDQpIT09MCl0aHJvdyBI
LmIoUC5ycigiSW52YWxpZCBiYXNlNjQgcGFkZGluZywgcGFkZGVkIGxlbmd0aCBtdXN0IGJlIG11bHRp
cGxlIG9mIGZvdXIsIGlzICIrZixhLGMpKQppZihkK2UhPT1mKXRocm93IEguYihQLnJyKCJJbnZhbGlk
IGJhc2U2NCBwYWRkaW5nLCAnPScgbm90IGF0IHRoZSBlbmQiLGEsYikpCmlmKGU+Mil0aHJvdyBILmIo
UC5ycigiSW52YWxpZCBiYXNlNjQgcGFkZGluZywgbW9yZSB0aGFuIHR3byAnPScgY2hhcmFjdGVycyIs
YSxiKSl9LApNZDpmdW5jdGlvbihhKXthLnpNKDAsNjQ1MTIpCnJldHVybiExfSwKWlo6ZnVuY3Rpb24o
YSxiKXtyZXR1cm4oQy5qbi5oKDY1NTM2LGEuek0oMCwxMDIzKS55RSgwLDEwKSl8YiYxMDIzKT4+PjB9
LAp1dzpmdW5jdGlvbiB1dyhhLGIpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1udWxsfSwKaTg6ZnVu
Y3Rpb24gaTgoYSl7dGhpcy5hPWF9LApDVjpmdW5jdGlvbiBDVigpe30sClU4OmZ1bmN0aW9uIFU4KCl7
fSwKVWs6ZnVuY3Rpb24gVWsoKXt9LAp3STpmdW5jdGlvbiB3SSgpe30sClppOmZ1bmN0aW9uIFppKCl7
fSwKYnk6ZnVuY3Rpb24gYnkoKXt9LApNeDpmdW5jdGlvbiBNeChhKXt0aGlzLmE9YX0sCnU1OmZ1bmN0
aW9uIHU1KCl7fSwKRTM6ZnVuY3Rpb24gRTMoKXt9LApSdzpmdW5jdGlvbiBSdyhhKXt0aGlzLmI9MAp0
aGlzLmM9YX0sCkdZOmZ1bmN0aW9uIEdZKGEpe3RoaXMuYT1hfSwKYno6ZnVuY3Rpb24gYnooYSxiKXt2
YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz0hMApfLmY9Xy5lPV8uZD0wfSwKUUE6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0PUguSHAoYSxjKQppZih0IT1udWxsKXJldHVybiB0CmlmKGIhPW51bGwpcmV0dXJuIGIu
JDEoYSkKdGhyb3cgSC5iKFAucnIoYSxudWxsLG51bGwpKX0sCkY6ZnVuY3Rpb24oYSl7aWYoYSBpbnN0
YW5jZW9mIEguVHApcmV0dXJuIGEudygwKQpyZXR1cm4iSW5zdGFuY2Ugb2YgJyIrSC5kKEguTShhKSkr
IicifSwKTzg6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHM9Si5RaShhLGMpCmlmKGEhPT0wJiYhMClmb3Io
dD0wO3Q8cy5sZW5ndGg7Kyt0KUMuTm0uWShzLHQsYikKcmV0dXJuIHN9LApDSDpmdW5jdGlvbihhLGIs
Yyl7dmFyIHQscz1ILlZNKFtdLGMuQygiamQ8MD4iKSkKZm9yKHQ9Si5JVChhKTt0LkYoKTspQy5ObS5p
KHMsYy5iKHQuZ2woKSkpCmlmKGIpcmV0dXJuIHMKcmV0dXJuIGMuQygiek08MD4iKS5iKEouRXAocykp
fSwKT1c6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5DKCJ6TTwwPiIpLmIoSi56QyhQLkNIKGEsITEsYikp
KX0sCkhNOmZ1bmN0aW9uKGEsYixjKXt2YXIgdAppZihBcnJheS5pc0FycmF5KGEpKXt1LnQuYihhKQp0
PWEubGVuZ3RoCmM9UC5qQihiLGMsdCkKcmV0dXJuIEguZVQoYj4wfHxjPHQ/Qy5ObS5hTShhLGIsYyk6
YSl9aWYodS5ibS5jKGEpKXJldHVybiBILmZ3KGEsYixQLmpCKGIsYyxhLmxlbmd0aCkpCnJldHVybiBQ
LmJ3KGEsYixjKX0sCk9vOmZ1bmN0aW9uKGEpe3JldHVybiBILkx3KGEpfSwKYnc6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0LHMscixxLHA9bnVsbAppZihiPDApdGhyb3cgSC5iKFAuVEUoYiwwLEouSG0oYSkscCxw
KSkKdD1jPT1udWxsCmlmKCF0JiZjPGIpdGhyb3cgSC5iKFAuVEUoYyxiLEouSG0oYSkscCxwKSkKcz1K
LklUKGEpCmZvcihyPTA7cjxiOysrcilpZighcy5GKCkpdGhyb3cgSC5iKFAuVEUoYiwwLHIscCxwKSkK
cT1bXQppZih0KWZvcig7cy5GKCk7KXEucHVzaChzLmdsKCkpCmVsc2UgZm9yKHI9YjtyPGM7KytyKXtp
Zighcy5GKCkpdGhyb3cgSC5iKFAuVEUoYyxiLHIscCxwKSkKcS5wdXNoKHMuZ2woKSl9cmV0dXJuIEgu
ZVQocSl9LApudTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEguVlIoYSxILnY0KGEsITEsITAsITEsITEs
ITEpKX0sCnZnOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1KLklUKGIpCmlmKCF0LkYoKSlyZXR1cm4gYQpp
ZihjLmxlbmd0aD09PTApe2RvIGErPUguZCh0LmdsKCkpCndoaWxlKHQuRigpKX1lbHNle2ErPUguZCh0
LmdsKCkpCmZvcig7dC5GKCk7KWE9YStjK0guZCh0LmdsKCkpfXJldHVybiBhfSwKbHI6ZnVuY3Rpb24o
YSxiLGMsZCl7cmV0dXJuIG5ldyBQLm1wKGEsYixjLGQpfSwKdW86ZnVuY3Rpb24oKXt2YXIgdD1ILk0w
KCkKaWYodCE9bnVsbClyZXR1cm4gUC5oSyh0KQp0aHJvdyBILmIoUC5MNCgiJ1VyaS5iYXNlJyBpcyBu
b3Qgc3VwcG9ydGVkIikpfSwKZVA6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyLHEscCxvLG49IjAx
MjM0NTY3ODlBQkNERUYiCmlmKGM9PT1DLnhNKXt0PSQuejQoKS5iCnQ9dC50ZXN0KGIpfWVsc2UgdD0h
MQppZih0KXJldHVybiBiCkguTGgoYykuQygiVWsuUyIpLmIoYikKcz1jLmdaRSgpLldKKGIpCmZvcih0
PXMubGVuZ3RoLHI9MCxxPSIiO3I8dDsrK3Ipe3A9c1tyXQppZihwPDEyOCl7bz1wPj4+NAppZihvPj04
KXJldHVybiBILk9IKGEsbykKbz0oYVtvXSYxPDwocCYxNSkpIT09MH1lbHNlIG89ITEKaWYobylxKz1I
Lkx3KHApCmVsc2UgcT1kJiZwPT09MzI/cSsiKyI6cSsiJSIrbltwPj4+NCYxNV0rbltwJjE1XX1yZXR1
cm4gcS5jaGFyQ29kZUF0KDApPT0wP3E6cX0sCkdxOmZ1bmN0aW9uKGEpe3ZhciB0PU1hdGguYWJzKGEp
LHM9YTwwPyItIjoiIgppZih0Pj0xMDAwKXJldHVybiIiK2EKaWYodD49MTAwKXJldHVybiBzKyIwIit0
CmlmKHQ+PTEwKXJldHVybiBzKyIwMCIrdApyZXR1cm4gcysiMDAwIit0fSwKVng6ZnVuY3Rpb24oYSl7
aWYoYT49MTAwKXJldHVybiIiK2EKaWYoYT49MTApcmV0dXJuIjAiK2EKcmV0dXJuIjAwIithfSwKaDA6
ZnVuY3Rpb24oYSl7aWYoYT49MTApcmV0dXJuIiIrYQpyZXR1cm4iMCIrYX0sCnA6ZnVuY3Rpb24oYSl7
aWYodHlwZW9mIGE9PSJudW1iZXIifHxILmwoYSl8fG51bGw9PWEpcmV0dXJuIEouaihhKQppZih0eXBl
b2YgYT09InN0cmluZyIpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGEpCnJldHVybiBQLkYoYSl9LApoVjpm
dW5jdGlvbihhKXtyZXR1cm4gbmV3IFAuQzYoYSl9LAp4WTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFAu
dSghMSxudWxsLG51bGwsYSl9LApMMzpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG5ldyBQLnUoITAsYSxi
LGMpfSwKeDpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgUC5iSihudWxsLG51bGwsITAsYSxiLCJWYWx1
ZSBub3QgaW4gcmFuZ2UiKX0sClRFOmZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBQLmJKKGIs
YywhMCxhLGQsIkludmFsaWQgdmFsdWUiKX0sCndBOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGE8Ynx8YT5j
KXRocm93IEguYihQLlRFKGEsYixjLGQsbnVsbCkpfSwKakI6ZnVuY3Rpb24oYSxiLGMpe2lmKDA+YXx8
YT5jKXRocm93IEguYihQLlRFKGEsMCxjLCJzdGFydCIsbnVsbCkpCmlmKGIhPW51bGwpe2lmKGE+Ynx8
Yj5jKXRocm93IEguYihQLlRFKGIsYSxjLCJlbmQiLG51bGwpKQpyZXR1cm4gYn1yZXR1cm4gY30sCmsx
OmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEhPT0ibnVtYmVyIilyZXR1cm4gYS5KKCkKaWYoYTwwKXRo
cm93IEguYihQLlRFKGEsMCxudWxsLGIsbnVsbCkpfSwKQ2Y6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIg
dD1ILlNjKGU9PW51bGw/Si5IbShiKTplKQpyZXR1cm4gbmV3IFAuZVkodCwhMCxhLGMsIkluZGV4IG91
dCBvZiByYW5nZSIpfSwKTDQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLnViKGEpfSwKU1k6ZnVuY3Rp
b24oYSl7cmV0dXJuIG5ldyBQLmRzKGEpfSwKUFY6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLmxqKGEp
fSwKYTQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLlVWKGEpfSwKcnI6ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBuZXcgUC5hRShhLGIsYyl9LApkSDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzPUguVk0oW10s
ZC5DKCJqZDwwPiIpKQpDLk5tLnNBKHMsYSkKZm9yKHQ9MDt0PGE7Kyt0KUMuTm0uWShzLHQsYi4kMSh0
KSkKcmV0dXJuIHN9LApoSzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxn
LGYsZT1udWxsLGQ9YS5sZW5ndGgKaWYoZD49NSl7dD0oKEouUXooYSw0KV41OCkqM3xDLnhCLlcoYSww
KV4xMDB8Qy54Qi5XKGEsMSleOTd8Qy54Qi5XKGEsMileMTE2fEMueEIuVyhhLDMpXjk3KT4+PjAKaWYo
dD09PTApcmV0dXJuIFAuS0QoZDxkP0MueEIuTmooYSwwLGQpOmEsNSxlKS5nbFIoKQplbHNlIGlmKHQ9
PT0zMilyZXR1cm4gUC5LRChDLnhCLk5qKGEsNSxkKSwwLGUpLmdsUigpfXM9bmV3IEFycmF5KDgpCnMu
Zml4ZWQkbGVuZ3RoPUFycmF5CnI9SC5WTShzLHUudCkKQy5ObS5ZKHIsMCwwKQpDLk5tLlkociwxLC0x
KQpDLk5tLlkociwyLC0xKQpDLk5tLlkociw3LC0xKQpDLk5tLlkociwzLDApCkMuTm0uWShyLDQsMCkK
Qy5ObS5ZKHIsNSxkKQpDLk5tLlkociw2LGQpCmlmKFAuVUIoYSwwLGQsMCxyKT49MTQpQy5ObS5ZKHIs
NyxkKQpxPXJbMV0KaWYodHlwZW9mIHEhPT0ibnVtYmVyIilyZXR1cm4gcS50QigpCmlmKHE+PTApaWYo
UC5VQihhLDAscSwyMCxyKT09PTIwKXJbN109cQpzPXJbMl0KaWYodHlwZW9mIHMhPT0ibnVtYmVyIily
ZXR1cm4gcy5oKCkKcD1zKzEKbz1yWzNdCm49cls0XQptPXJbNV0KbD1yWzZdCmlmKHR5cGVvZiBsIT09
Im51bWJlciIpcmV0dXJuIGwuSigpCmlmKHR5cGVvZiBtIT09Im51bWJlciIpcmV0dXJuIEgucFkobSkK
aWYobDxtKW09bAppZih0eXBlb2YgbiE9PSJudW1iZXIiKXJldHVybiBuLkooKQppZihuPHApbj1tCmVs
c2UgaWYobjw9cSluPXErMQppZih0eXBlb2YgbyE9PSJudW1iZXIiKXJldHVybiBvLkooKQppZihvPHAp
bz1uCnM9cls3XQppZih0eXBlb2YgcyE9PSJudW1iZXIiKXJldHVybiBzLkooKQprPXM8MAppZihrKWlm
KHA+cSszKXtqPWUKaz0hMX1lbHNle3M9bz4wCmlmKHMmJm8rMT09PW4pe2o9ZQprPSExfWVsc2V7aWYo
IShtPGQmJm09PT1uKzImJkoucTAoYSwiLi4iLG4pKSlpPW0+bisyJiZKLnEwKGEsIi8uLiIsbS0zKQpl
bHNlIGk9ITAKaWYoaSl7aj1lCms9ITF9ZWxzZXtpZihxPT09NClpZihKLnEwKGEsImZpbGUiLDApKXtp
ZihwPD0wKXtpZighQy54Qi5RaShhLCIvIixuKSl7aD0iZmlsZTovLy8iCnQ9M31lbHNle2g9ImZpbGU6
Ly8iCnQ9Mn1hPWgrQy54Qi5OaihhLG4sZCkKcS09MApzPXQtMAptKz1zCmwrPXMKZD1hLmxlbmd0aApw
PTcKbz03Cm49N31lbHNlIGlmKG49PT1tKXtnPW0rMTsrK2wKYT1DLnhCLmk3KGEsbixtLCIvIik7Kytk
Cm09Z31qPSJmaWxlIn1lbHNlIGlmKEMueEIuUWkoYSwiaHR0cCIsMCkpe2lmKHMmJm8rMz09PW4mJkMu
eEIuUWkoYSwiODAiLG8rMSkpe2Y9bi0zCm0tPTMKbC09MwphPUMueEIuaTcoYSxvLG4sIiIpCmQtPTMK
bj1mfWo9Imh0dHAifWVsc2Ugaj1lCmVsc2UgaWYocT09PTUmJkoucTAoYSwiaHR0cHMiLDApKXtpZihz
JiZvKzQ9PT1uJiZKLnEwKGEsIjQ0MyIsbysxKSl7Zj1uLTQKbS09NApsLT00CmE9Si55UShhLG8sbiwi
IikKZC09MwpuPWZ9aj0iaHR0cHMifWVsc2Ugaj1lCms9ITB9fX1lbHNlIGo9ZQppZihrKXtzPWEubGVu
Z3RoCmlmKGQ8cyl7YT1KLmxkKGEsMCxkKQpxLT0wCnAtPTAKby09MApuLT0wCm0tPTAKbC09MH1yZXR1
cm4gbmV3IFAuVWYoYSxxLHAsbyxuLG0sbCxqKX1yZXR1cm4gUC5qdihhLDAsZCxxLHAsbyxuLG0sbCxq
KX0sCk10OmZ1bmN0aW9uKGEpe0gueShhKQpyZXR1cm4gUC5rdShhLDAsYS5sZW5ndGgsQy54TSwhMSl9
LApXWDpmdW5jdGlvbihhKXt2YXIgdD11Lk4KcmV0dXJuIEMuTm0uTjAoSC5WTShhLnNwbGl0KCImIiks
dS5zKSxQLkZsKHQsdCksbmV3IFAubjEoQy54TSksdS5mKX0sCkhoOmZ1bmN0aW9uKGEsYixjKXt2YXIg
dCxzLHIscSxwLG8sbixtPW51bGwsbD0iSVB2NCBhZGRyZXNzIHNob3VsZCBjb250YWluIGV4YWN0bHkg
NCBwYXJ0cyIsaz0iZWFjaCBwYXJ0IG11c3QgYmUgaW4gdGhlIHJhbmdlIDAuLjI1NSIsaj1uZXcgUC5j
UyhhKSxpPW5ldyBVaW50OEFycmF5KDQpCmZvcih0PWkubGVuZ3RoLHM9YixyPXMscT0wO3M8YzsrK3Mp
e3A9Qy54Qi5tKGEscykKaWYocCE9PTQ2KXtpZigocF40OCk+OSlqLiQyKCJpbnZhbGlkIGNoYXJhY3Rl
ciIscyl9ZWxzZXtpZihxPT09MylqLiQyKGwscykKbz1QLlFBKEMueEIuTmooYSxyLHMpLG0sbSkKaWYo
dHlwZW9mIG8hPT0ibnVtYmVyIilyZXR1cm4gby5vcygpCmlmKG8+MjU1KWouJDIoayxyKQpuPXErMQpp
ZihxPj10KXJldHVybiBILk9IKGkscSkKaVtxXT1vCnI9cysxCnE9bn19aWYocSE9PTMpai4kMihsLGMp
Cm89UC5RQShDLnhCLk5qKGEscixjKSxtLG0pCmlmKHR5cGVvZiBvIT09Im51bWJlciIpcmV0dXJuIG8u
b3MoKQppZihvPjI1NSlqLiQyKGsscikKaWYocT49dClyZXR1cm4gSC5PSChpLHEpCmlbcV09bwpyZXR1
cm4gaX0sCmVnOmZ1bmN0aW9uKGEsYixhMCl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGgsZyxm
LGUsZD1uZXcgUC5WQyhhKSxjPW5ldyBQLnRwKGQsYSkKaWYoYS5sZW5ndGg8MilkLiQxKCJhZGRyZXNz
IGlzIHRvbyBzaG9ydCIpCnQ9SC5WTShbXSx1LnQpCmZvcihzPWIscj1zLHE9ITEscD0hMTtzPGEwOysr
cyl7bz1DLnhCLm0oYSxzKQppZihvPT09NTgpe2lmKHM9PT1iKXsrK3MKaWYoQy54Qi5tKGEscykhPT01
OClkLiQyKCJpbnZhbGlkIHN0YXJ0IGNvbG9uLiIscykKcj1zfWlmKHM9PT1yKXtpZihxKWQuJDIoIm9u
bHkgb25lIHdpbGRjYXJkIGA6OmAgaXMgYWxsb3dlZCIscykKQy5ObS5pKHQsLTEpCnE9ITB9ZWxzZSBD
Lk5tLmkodCxjLiQyKHIscykpCnI9cysxfWVsc2UgaWYobz09PTQ2KXA9ITB9aWYodC5sZW5ndGg9PT0w
KWQuJDEoInRvbyBmZXcgcGFydHMiKQpuPXI9PT1hMAptPUMuTm0uZ3JaKHQpCmlmKG4mJm0hPT0tMSlk
LiQyKCJleHBlY3RlZCBhIHBhcnQgYWZ0ZXIgbGFzdCBgOmAiLGEwKQppZighbilpZighcClDLk5tLmko
dCxjLiQyKHIsYTApKQplbHNle2w9UC5IaChhLHIsYTApCkMuTm0uaSh0LChsWzBdPDw4fGxbMV0pPj4+
MCkKQy5ObS5pKHQsKGxbMl08PDh8bFszXSk+Pj4wKX1pZihxKXtpZih0Lmxlbmd0aD43KWQuJDEoImFu
IGFkZHJlc3Mgd2l0aCBhIHdpbGRjYXJkIG11c3QgaGF2ZSBsZXNzIHRoYW4gNyBwYXJ0cyIpfWVsc2Ug
aWYodC5sZW5ndGghPT04KWQuJDEoImFuIGFkZHJlc3Mgd2l0aG91dCBhIHdpbGRjYXJkIG11c3QgY29u
dGFpbiBleGFjdGx5IDggcGFydHMiKQprPW5ldyBVaW50OEFycmF5KDE2KQpmb3IobT10Lmxlbmd0aCxq
PWsubGVuZ3RoLGk9OS1tLHM9MCxoPTA7czxtOysrcyl7Zz10W3NdCmlmKGc9PT0tMSlmb3IoZj0wO2Y8
aTsrK2Ype2lmKGg8MHx8aD49ailyZXR1cm4gSC5PSChrLGgpCmtbaF09MAplPWgrMQppZihlPj1qKXJl
dHVybiBILk9IKGssZSkKa1tlXT0wCmgrPTJ9ZWxzZXtlPUMuam4ud0coZyw4KQppZihoPDB8fGg+PWop
cmV0dXJuIEguT0goayxoKQprW2hdPWUKZT1oKzEKaWYoZT49ailyZXR1cm4gSC5PSChrLGUpCmtbZV09
ZyYyNTUKaCs9Mn19cmV0dXJuIGt9LApqdjpmdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsaSxqKXt2YXIg
dCxzLHIscSxwLG8sbixtPW51bGwKaWYoaj09bnVsbClpZihkPmIpaj1QLlBpKGEsYixkKQplbHNle2lm
KGQ9PT1iKVAuUjMoYSxiLCJJbnZhbGlkIGVtcHR5IHNjaGVtZSIpCmo9IiJ9aWYoZT5iKXt0PWQrMwpz
PXQ8ZT9QLnpSKGEsdCxlLTEpOiIiCnI9UC5PZShhLGUsZiwhMSkKaWYodHlwZW9mIGYhPT0ibnVtYmVy
IilyZXR1cm4gZi5oKCkKcT1mKzEKaWYodHlwZW9mIGchPT0ibnVtYmVyIilyZXR1cm4gSC5wWShnKQpw
PXE8Zz9QLndCKFAuUUEoSi5sZChhLHEsZyksbmV3IFAuZTEoYSxmKSxtKSxqKTptfWVsc2V7cD1tCnI9
cApzPSIifW89UC5rYShhLGcsaCxtLGosciE9bnVsbCkKaWYodHlwZW9mIGghPT0ibnVtYmVyIilyZXR1
cm4gaC5KKCkKbj1oPGk/UC5sZShhLGgrMSxpLG0pOm0KcmV0dXJuIG5ldyBQLkRuKGoscyxyLHAsbyxu
LGk8Yz9QLnRHKGEsaSsxLGMpOm0pfSwKd0s6ZnVuY3Rpb24oYSl7aWYoYT09PSJodHRwIilyZXR1cm4g
ODAKaWYoYT09PSJodHRwcyIpcmV0dXJuIDQ0MwpyZXR1cm4gMH0sClIzOmZ1bmN0aW9uKGEsYixjKXt0
aHJvdyBILmIoUC5ycihjLGEsYikpfSwKa0U6ZnVuY3Rpb24oYSxiKXtDLk5tLksoYSxuZXcgUC5OWSgh
MSkpfSwKSE46ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscgpmb3IodD1ILnFDKGEsYyxudWxsLEgudDYo
YSkuZCksdD1uZXcgSC5hNyh0LHQuZ0EodCksdC4kdGkuQygiYTc8YUwuRT4iKSk7dC5GKCk7KXtzPXQu
ZApyPVAubnUoJ1siKi86PD4/XFxcXHxdJykKcy50b1N0cmluZwppZihILm0yKHMsciwwKSl7dD1QLkw0
KCJJbGxlZ2FsIGNoYXJhY3RlciBpbiBwYXRoOiAiK3MpCnRocm93IEguYih0KX19fSwKcmc6ZnVuY3Rp
b24oYSxiKXt2YXIgdAppZighKDY1PD1hJiZhPD05MCkpdD05Nzw9YSYmYTw9MTIyCmVsc2UgdD0hMApp
Zih0KXJldHVybgp0PVAuTDQoIklsbGVnYWwgZHJpdmUgbGV0dGVyICIrUC5PbyhhKSkKdGhyb3cgSC5i
KHQpfSwKd0I6ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsJiZhPT09UC53SyhiKSlyZXR1cm4gbnVsbApy
ZXR1cm4gYX0sCk9lOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscixxLHAsbwppZihhPT1udWxsKXJl
dHVybiBudWxsCmlmKGI9PT1jKXJldHVybiIiCmlmKEMueEIubShhLGIpPT09OTEpe2lmKHR5cGVvZiBj
IT09Im51bWJlciIpcmV0dXJuIGMuSE4oKQp0PWMtMQppZihDLnhCLm0oYSx0KSE9PTkzKVAuUjMoYSxi
LCJNaXNzaW5nIGVuZCBgXWAgdG8gbWF0Y2ggYFtgIGluIGhvc3QiKQpzPWIrMQpyPVAudG8oYSxzLHQp
CmlmKHR5cGVvZiByIT09Im51bWJlciIpcmV0dXJuIHIuSigpCmlmKHI8dCl7cT1yKzEKcD1QLk9BKGEs
Qy54Qi5RaShhLCIyNSIscSk/ciszOnEsdCwiJTI1Iil9ZWxzZSBwPSIiClAuZWcoYSxzLHIpCnJldHVy
biBDLnhCLk5qKGEsYixyKS50b0xvd2VyQ2FzZSgpK3ArIl0ifWlmKHR5cGVvZiBjIT09Im51bWJlciIp
cmV0dXJuIEgucFkoYykKbz1iCmZvcig7bzxjOysrbylpZihDLnhCLm0oYSxvKT09PTU4KXtyPUMueEIu
WFUoYSwiJSIsYikKaWYoIShyPj1iJiZyPGMpKXI9YwppZihyPGMpe3E9cisxCnA9UC5PQShhLEMueEIu
UWkoYSwiMjUiLHEpP3IrMzpxLGMsIiUyNSIpfWVsc2UgcD0iIgpQLmVnKGEsYixyKQpyZXR1cm4iWyIr
Qy54Qi5OaihhLGIscikrcCsiXSJ9cmV0dXJuIFAuT0woYSxiLGMpfSwKdG86ZnVuY3Rpb24oYSxiLGMp
e3ZhciB0LHM9Qy54Qi5YVShhLCIlIixiKQppZihzPj1iKXtpZih0eXBlb2YgYyE9PSJudW1iZXIiKXJl
dHVybiBILnBZKGMpCnQ9czxjfWVsc2UgdD0hMQpyZXR1cm4gdD9zOmN9LApPQTpmdW5jdGlvbihhLGIs
YyxkKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsaz1kIT09IiI/bmV3IFAuUm4oZCk6bnVsbAppZih0eXBl
b2YgYyE9PSJudW1iZXIiKXJldHVybiBILnBZKGMpCnQ9YgpzPXQKcj0hMApmb3IoO3Q8Yzspe3E9Qy54
Qi5tKGEsdCkKaWYocT09PTM3KXtwPVAucnYoYSx0LCEwKQpvPXA9PW51bGwKaWYobyYmcil7dCs9Mwpj
b250aW51ZX1pZihrPT1udWxsKWs9bmV3IFAuUm4oIiIpCm49ay5hKz1DLnhCLk5qKGEscyx0KQppZihv
KXA9Qy54Qi5OaihhLHQsdCszKQplbHNlIGlmKHA9PT0iJSIpUC5SMyhhLHQsIlpvbmVJRCBzaG91bGQg
bm90IGNvbnRhaW4gJSBhbnltb3JlIikKay5hPW4rcAp0Kz0zCnM9dApyPSEwfWVsc2V7aWYocTwxMjcp
e289cT4+PjQKaWYobz49OClyZXR1cm4gSC5PSChDLkYzLG8pCm89KEMuRjNbb10mMTw8KHEmMTUpKSE9
PTB9ZWxzZSBvPSExCmlmKG8pe2lmKHImJjY1PD1xJiY5MD49cSl7aWYoaz09bnVsbClrPW5ldyBQLlJu
KCIiKQppZihzPHQpe2suYSs9Qy54Qi5OaihhLHMsdCkKcz10fXI9ITF9Kyt0fWVsc2V7aWYoKHEmNjQ1
MTIpPT09NTUyOTYmJnQrMTxjKXttPUMueEIubShhLHQrMSkKaWYoKG0mNjQ1MTIpPT09NTYzMjApe3E9
NjU1MzZ8KHEmMTAyMyk8PDEwfG0mMTAyMwpsPTJ9ZWxzZSBsPTF9ZWxzZSBsPTEKaWYoaz09bnVsbClr
PW5ldyBQLlJuKCIiKQprLmErPUMueEIuTmooYSxzLHQpCmsuYSs9UC56WChxKQp0Kz1sCnM9dH19fWlm
KGs9PW51bGwpcmV0dXJuIEMueEIuTmooYSxiLGMpCmlmKHM8YylrLmErPUMueEIuTmooYSxzLGMpCm89
ay5hCnJldHVybiBvLmNoYXJDb2RlQXQoMCk9PTA/bzpvfSwKT0w6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0
LHMscixxLHAsbyxuLG0sbCxrLGoKaWYodHlwZW9mIGMhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShjKQp0
PWIKcz10CnI9bnVsbApxPSEwCmZvcig7dDxjOyl7cD1DLnhCLm0oYSx0KQppZihwPT09Mzcpe289UC5y
dihhLHQsITApCm49bz09bnVsbAppZihuJiZxKXt0Kz0zCmNvbnRpbnVlfWlmKHI9PW51bGwpcj1uZXcg
UC5SbigiIikKbT1DLnhCLk5qKGEscyx0KQpsPXIuYSs9IXE/bS50b0xvd2VyQ2FzZSgpOm0KaWYobil7
bz1DLnhCLk5qKGEsdCx0KzMpCms9M31lbHNlIGlmKG89PT0iJSIpe289IiUyNSIKaz0xfWVsc2Ugaz0z
CnIuYT1sK28KdCs9awpzPXQKcT0hMH1lbHNle2lmKHA8MTI3KXtuPXA+Pj40CmlmKG4+PTgpcmV0dXJu
IEguT0goQy5lYSxuKQpuPShDLmVhW25dJjE8PChwJjE1KSkhPT0wfWVsc2Ugbj0hMQppZihuKXtpZihx
JiY2NTw9cCYmOTA+PXApe2lmKHI9PW51bGwpcj1uZXcgUC5SbigiIikKaWYoczx0KXtyLmErPUMueEIu
TmooYSxzLHQpCnM9dH1xPSExfSsrdH1lbHNle2lmKHA8PTkzKXtuPXA+Pj40CmlmKG4+PTgpcmV0dXJu
IEguT0goQy5hayxuKQpuPShDLmFrW25dJjE8PChwJjE1KSkhPT0wfWVsc2Ugbj0hMQppZihuKVAuUjMo
YSx0LCJJbnZhbGlkIGNoYXJhY3RlciIpCmVsc2V7aWYoKHAmNjQ1MTIpPT09NTUyOTYmJnQrMTxjKXtq
PUMueEIubShhLHQrMSkKaWYoKGomNjQ1MTIpPT09NTYzMjApe3A9NjU1MzZ8KHAmMTAyMyk8PDEwfGom
MTAyMwprPTJ9ZWxzZSBrPTF9ZWxzZSBrPTEKaWYocj09bnVsbClyPW5ldyBQLlJuKCIiKQptPUMueEIu
TmooYSxzLHQpCnIuYSs9IXE/bS50b0xvd2VyQ2FzZSgpOm0Kci5hKz1QLnpYKHApCnQrPWsKcz10fX19
fWlmKHI9PW51bGwpcmV0dXJuIEMueEIuTmooYSxiLGMpCmlmKHM8Yyl7bT1DLnhCLk5qKGEscyxjKQpy
LmErPSFxP20udG9Mb3dlckNhc2UoKTptfW49ci5hCnJldHVybiBuLmNoYXJDb2RlQXQoMCk9PTA/bjpu
fSwKUGk6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxCmlmKGI9PT1jKXJldHVybiIiCmlmKCFQLkV0
KEouclkoYSkuVyhhLGIpKSlQLlIzKGEsYiwiU2NoZW1lIG5vdCBzdGFydGluZyB3aXRoIGFscGhhYmV0
aWMgY2hhcmFjdGVyIikKZm9yKHQ9YixzPSExO3Q8YzsrK3Qpe3I9Qy54Qi5XKGEsdCkKaWYocjwxMjgp
e3E9cj4+PjQKaWYocT49OClyZXR1cm4gSC5PSChDLm1LLHEpCnE9KEMubUtbcV0mMTw8KHImMTUpKSE9
PTB9ZWxzZSBxPSExCmlmKCFxKVAuUjMoYSx0LCJJbGxlZ2FsIHNjaGVtZSBjaGFyYWN0ZXIiKQppZig2
NTw9ciYmcjw9OTApcz0hMH1hPUMueEIuTmooYSxiLGMpCnJldHVybiBQLllhKHM/YS50b0xvd2VyQ2Fz
ZSgpOmEpfSwKWWE6ZnVuY3Rpb24oYSl7aWYoYT09PSJodHRwIilyZXR1cm4iaHR0cCIKaWYoYT09PSJm
aWxlIilyZXR1cm4iZmlsZSIKaWYoYT09PSJodHRwcyIpcmV0dXJuImh0dHBzIgppZihhPT09InBhY2th
Z2UiKXJldHVybiJwYWNrYWdlIgpyZXR1cm4gYX0sCnpSOmZ1bmN0aW9uKGEsYixjKXtpZihhPT1udWxs
KXJldHVybiIiCnJldHVybiBQLnVPKGEsYixjLEMudG8sITEpfSwKa2E6ZnVuY3Rpb24oYSxiLGMsZCxl
LGYpe3ZhciB0LHM9ZT09PSJmaWxlIixyPXN8fGYscT1hPT1udWxsCmlmKHEmJiEwKXJldHVybiBzPyIv
IjoiIgp0PSFxP1AudU8oYSxiLGMsQy5XZCwhMCk6Qy5qTi5FMihkLG5ldyBQLlJaKCksdS5OKS5IKDAs
Ii8iKQppZih0Lmxlbmd0aD09PTApe2lmKHMpcmV0dXJuIi8ifWVsc2UgaWYociYmIUMueEIubih0LCIv
IikpdD0iLyIrdApyZXR1cm4gUC5Kcih0LGUsZil9LApKcjpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9Yi5s
ZW5ndGg9PT0wCmlmKHQmJiFjJiYhQy54Qi5uKGEsIi8iKSlyZXR1cm4gUC53RihhLCF0fHxjKQpyZXR1
cm4gUC54ZShhKX0sCmxlOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGEhPW51bGwpcmV0dXJuIFAudU8oYSxi
LGMsQy5WQywhMCkKcmV0dXJuIG51bGx9LAp0RzpmdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbClyZXR1
cm4gbnVsbApyZXR1cm4gUC51TyhhLGIsYyxDLlZDLCEwKX0sCnJ2OmZ1bmN0aW9uKGEsYixjKXt2YXIg
dCxzLHIscSxwLG89YisyCmlmKG8+PWEubGVuZ3RoKXJldHVybiIlIgp0PUMueEIubShhLGIrMSkKcz1D
LnhCLm0oYSxvKQpyPUgub28odCkKcT1ILm9vKHMpCmlmKHI8MHx8cTwwKXJldHVybiIlIgpwPXIqMTYr
cQppZihwPDEyNyl7bz1DLmpuLndHKHAsNCkKaWYobz49OClyZXR1cm4gSC5PSChDLkYzLG8pCm89KEMu
RjNbb10mMTw8KHAmMTUpKSE9PTB9ZWxzZSBvPSExCmlmKG8pcmV0dXJuIEguTHcoYyYmNjU8PXAmJjkw
Pj1wPyhwfDMyKT4+PjA6cCkKaWYodD49OTd8fHM+PTk3KXJldHVybiBDLnhCLk5qKGEsYixiKzMpLnRv
VXBwZXJDYXNlKCkKcmV0dXJuIG51bGx9LAp6WDpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbj0i
MDEyMzQ1Njc4OUFCQ0RFRiIKaWYoYTwxMjgpe3Q9bmV3IEFycmF5KDMpCnQuZml4ZWQkbGVuZ3RoPUFy
cmF5CnM9SC5WTSh0LHUudCkKQy5ObS5ZKHMsMCwzNykKQy5ObS5ZKHMsMSxDLnhCLlcobixhPj4+NCkp
CkMuTm0uWShzLDIsQy54Qi5XKG4sYSYxNSkpfWVsc2V7aWYoYT4yMDQ3KWlmKGE+NjU1MzUpe3I9MjQw
CnE9NH1lbHNle3I9MjI0CnE9M31lbHNle3I9MTkyCnE9Mn10PW5ldyBBcnJheSgzKnEpCnQuZml4ZWQk
bGVuZ3RoPUFycmF5CnM9SC5WTSh0LHUudCkKZm9yKHA9MDstLXEscT49MDtyPTEyOCl7bz1DLmpuLmJm
KGEsNipxKSY2M3xyCkMuTm0uWShzLHAsMzcpCkMuTm0uWShzLHArMSxDLnhCLlcobixvPj4+NCkpCkMu
Tm0uWShzLHArMixDLnhCLlcobixvJjE1KSkKcCs9M319cmV0dXJuIFAuSE0ocywwLG51bGwpfSwKdU86
ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdD1QLlVsKGEsYixjLGQsZSkKcmV0dXJuIHQ9PW51bGw/Qy54
Qi5OaihhLGIsYyk6dH0sClVsOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIHQscyxyLHEscCxvPW51bGws
bj0hZSxtPWIsbD1tLGs9bwp3aGlsZSghMCl7aWYodHlwZW9mIG0hPT0ibnVtYmVyIilyZXR1cm4gbS5K
KCkKaWYodHlwZW9mIGMhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShjKQppZighKG08YykpYnJlYWsKYyQw
Ont0PUMueEIubShhLG0pCmlmKHQ8MTI3KXtzPXQ+Pj40CmlmKHM+PTgpcmV0dXJuIEguT0goZCxzKQpz
PShkW3NdJjE8PCh0JjE1KSkhPT0wfWVsc2Ugcz0hMQppZihzKSsrbQplbHNle2lmKHQ9PT0zNyl7cj1Q
LnJ2KGEsbSwhMSkKaWYocj09bnVsbCl7bSs9MwpicmVhayBjJDB9aWYoIiUiPT09cil7cj0iJTI1Igpx
PTF9ZWxzZSBxPTN9ZWxzZXtpZihuKWlmKHQ8PTkzKXtzPXQ+Pj40CmlmKHM+PTgpcmV0dXJuIEguT0go
Qy5hayxzKQpzPShDLmFrW3NdJjE8PCh0JjE1KSkhPT0wfWVsc2Ugcz0hMQplbHNlIHM9ITEKaWYocyl7
UC5SMyhhLG0sIkludmFsaWQgY2hhcmFjdGVyIikKcT1vCnI9cX1lbHNle2lmKCh0JjY0NTEyKT09PTU1
Mjk2KXtzPW0rMQppZihzPGMpe3A9Qy54Qi5tKGEscykKaWYoKHAmNjQ1MTIpPT09NTYzMjApe3Q9NjU1
MzZ8KHQmMTAyMyk8PDEwfHAmMTAyMwpxPTJ9ZWxzZSBxPTF9ZWxzZSBxPTF9ZWxzZSBxPTEKcj1QLnpY
KHQpfX1pZihrPT1udWxsKWs9bmV3IFAuUm4oIiIpCmsuYSs9Qy54Qi5OaihhLGwsbSkKay5hKz1ILmQo
cikKaWYodHlwZW9mIHEhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShxKQptKz1xCmw9bX19fWlmKGs9PW51
bGwpcmV0dXJuIG8KaWYodHlwZW9mIGwhPT0ibnVtYmVyIilyZXR1cm4gbC5KKCkKaWYobDxjKWsuYSs9
Qy54Qi5OaihhLGwsYykKbj1rLmEKcmV0dXJuIG4uY2hhckNvZGVBdCgwKT09MD9uOm59LAp5QjpmdW5j
dGlvbihhKXtpZihDLnhCLm4oYSwiLiIpKXJldHVybiEwCnJldHVybiBDLnhCLk9ZKGEsIi8uIikhPT0t
MX0sCnhlOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbyxuCmlmKCFQLnlCKGEpKXJldHVybiBhCnQ9
SC5WTShbXSx1LnMpCmZvcihzPWEuc3BsaXQoIi8iKSxyPXMubGVuZ3RoLHE9ITEscD0wO3A8cjsrK3Ap
e289c1twXQppZihKLlJNKG8sIi4uIikpe249dC5sZW5ndGgKaWYobiE9PTApe2lmKDA+PW4pcmV0dXJu
IEguT0godCwtMSkKdC5wb3AoKQppZih0Lmxlbmd0aD09PTApQy5ObS5pKHQsIiIpfXE9ITB9ZWxzZSBp
ZigiLiI9PT1vKXE9ITAKZWxzZXtDLk5tLmkodCxvKQpxPSExfX1pZihxKUMuTm0uaSh0LCIiKQpyZXR1
cm4gQy5ObS5IKHQsIi8iKX0sCndGOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvCmlmKCFQLnlC
KGEpKXJldHVybiFiP1AuQzEoYSk6YQp0PUguVk0oW10sdS5zKQpmb3Iocz1hLnNwbGl0KCIvIikscj1z
Lmxlbmd0aCxxPSExLHA9MDtwPHI7KytwKXtvPXNbcF0KaWYoIi4uIj09PW8paWYodC5sZW5ndGghPT0w
JiZDLk5tLmdyWih0KSE9PSIuLiIpe2lmKDA+PXQubGVuZ3RoKXJldHVybiBILk9IKHQsLTEpCnQucG9w
KCkKcT0hMH1lbHNle0MuTm0uaSh0LCIuLiIpCnE9ITF9ZWxzZSBpZigiLiI9PT1vKXE9ITAKZWxzZXtD
Lk5tLmkodCxvKQpxPSExfX1zPXQubGVuZ3RoCmlmKHMhPT0wKWlmKHM9PT0xKXtpZigwPj1zKXJldHVy
biBILk9IKHQsMCkKcz10WzBdLmxlbmd0aD09PTB9ZWxzZSBzPSExCmVsc2Ugcz0hMAppZihzKXJldHVy
biIuLyIKaWYocXx8Qy5ObS5ncloodCk9PT0iLi4iKUMuTm0uaSh0LCIiKQppZighYil7aWYoMD49dC5s
ZW5ndGgpcmV0dXJuIEguT0godCwwKQpDLk5tLlkodCwwLFAuQzEodFswXSkpfXJldHVybiBDLk5tLkgo
dCwiLyIpfSwKQzE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9YS5sZW5ndGgKaWYocT49MiYmUC5FdChK
LlF6KGEsMCkpKWZvcih0PTE7dDxxOysrdCl7cz1DLnhCLlcoYSx0KQppZihzPT09NTgpcmV0dXJuIEMu
eEIuTmooYSwwLHQpKyIlM0EiK0MueEIuRyhhLHQrMSkKaWYoczw9MTI3KXtyPXM+Pj40CmlmKHI+PTgp
cmV0dXJuIEguT0goQy5tSyxyKQpyPShDLm1LW3JdJjE8PChzJjE1KSk9PT0wfWVsc2Ugcj0hMAppZihy
KWJyZWFrfXJldHVybiBhfSwKbW46ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9YS5nRmooKSxwPXEubGVu
Z3RoCmlmKHA+MCYmSi5IbShxWzBdKT09PTImJkouYTYocVswXSwxKT09PTU4KXtpZigwPj1wKXJldHVy
biBILk9IKHEsMCkKUC5yZyhKLmE2KHFbMF0sMCksITEpClAuSE4ocSwhMSwxKQp0PSEwfWVsc2V7UC5I
TihxLCExLDApCnQ9ITF9cz1hLmd0VCgpJiYhdD8iXFwiOiIiCmlmKGEuZ2NqKCkpe3I9YS5nSmYoYSkK
aWYoci5sZW5ndGghPT0wKXM9cysiXFwiK3IrIlxcIn1zPVAudmcocyxxLCJcXCIpCnA9dCYmcD09PTE/
cysiXFwiOnMKcmV0dXJuIHAuY2hhckNvZGVBdCgwKT09MD9wOnB9LApJaDpmdW5jdGlvbihhLGIpe3Zh
ciB0LHMscgpmb3IodD0wLHM9MDtzPDI7KytzKXtyPUMueEIuVyhhLGIrcykKaWYoNDg8PXImJnI8PTU3
KXQ9dCoxNityLTQ4CmVsc2V7cnw9MzIKaWYoOTc8PXImJnI8PTEwMil0PXQqMTYrci04NwplbHNlIHRo
cm93IEguYihQLnhZKCJJbnZhbGlkIFVSTCBlbmNvZGluZyIpKX19cmV0dXJuIHR9LAprdTpmdW5jdGlv
bihhLGIsYyxkLGUpe3ZhciB0LHMscixxLHA9Si5yWShhKSxvPWIKd2hpbGUoITApe2lmKCEobzxjKSl7
dD0hMApicmVha31zPXAuVyhhLG8pCmlmKHM8PTEyNylpZihzIT09Mzcpcj1lJiZzPT09NDMKZWxzZSBy
PSEwCmVsc2Ugcj0hMAppZihyKXt0PSExCmJyZWFrfSsrb31pZih0KXtpZihDLnhNIT09ZClyPSExCmVs
c2Ugcj0hMAppZihyKXJldHVybiBwLk5qKGEsYixjKQplbHNlIHE9bmV3IEgucWoocC5OaihhLGIsYykp
fWVsc2V7cT1ILlZNKFtdLHUudCkKZm9yKG89YjtvPGM7KytvKXtzPXAuVyhhLG8pCmlmKHM+MTI3KXRo
cm93IEguYihQLnhZKCJJbGxlZ2FsIHBlcmNlbnQgZW5jb2RpbmcgaW4gVVJJIikpCmlmKHM9PT0zNyl7
aWYobyszPmEubGVuZ3RoKXRocm93IEguYihQLnhZKCJUcnVuY2F0ZWQgVVJJIikpCkMuTm0uaShxLFAu
SWgoYSxvKzEpKQpvKz0yfWVsc2UgaWYoZSYmcz09PTQzKUMuTm0uaShxLDMyKQplbHNlIEMuTm0uaShx
LHMpfX11LkwuYihxKQpyZXR1cm4gbmV3IFAuR1koITEpLldKKHEpfSwKRXQ6ZnVuY3Rpb24oYSl7dmFy
IHQ9YXwzMgpyZXR1cm4gOTc8PXQmJnQ8PTEyMn0sCktEOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIs
cSxwLG8sbixtLGw9IkludmFsaWQgTUlNRSB0eXBlIixrPUguVk0oW2ItMV0sdS50KQpmb3IodD1hLmxl
bmd0aCxzPWIscj0tMSxxPW51bGw7czx0Oysrcyl7cT1DLnhCLlcoYSxzKQppZihxPT09NDR8fHE9PT01
OSlicmVhawppZihxPT09NDcpe2lmKHI8MCl7cj1zCmNvbnRpbnVlfXRocm93IEguYihQLnJyKGwsYSxz
KSl9fWlmKHI8MCYmcz5iKXRocm93IEguYihQLnJyKGwsYSxzKSkKZm9yKDtxIT09NDQ7KXtDLk5tLmko
ayxzKTsrK3MKZm9yKHA9LTE7czx0Oysrcyl7cT1DLnhCLlcoYSxzKQppZihxPT09NjEpe2lmKHA8MClw
PXN9ZWxzZSBpZihxPT09NTl8fHE9PT00NClicmVha31pZihwPj0wKUMuTm0uaShrLHApCmVsc2V7bz1D
Lk5tLmdyWihrKQppZihxIT09NDR8fHMhPT1vKzd8fCFDLnhCLlFpKGEsImJhc2U2NCIsbysxKSl0aHJv
dyBILmIoUC5ycigiRXhwZWN0aW5nICc9JyIsYSxzKSkKYnJlYWt9fUMuTm0uaShrLHMpCm49cysxCmlm
KChrLmxlbmd0aCYxKT09PTEpYT1DLmg5LnlyKGEsbix0KQplbHNle209UC5VbChhLG4sdCxDLlZDLCEw
KQppZihtIT1udWxsKWE9Qy54Qi5pNyhhLG4sdCxtKX1yZXR1cm4gbmV3IFAuUEUoYSxrLGMpfSwKdXg6
ZnVuY3Rpb24oKXt2YXIgdD0iMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXotLl9+ISQmJygpKissOz0iLHM9Ii4iLHI9IjoiLHE9Ii8iLHA9Ij8i
LG89IiMiLG49dS5nYyxtPVAuZEgoMjIsbmV3IFAucTMoKSwhMCxuKSxsPW5ldyBQLnlJKG0pLGs9bmV3
IFAuYzYoKSxqPW5ldyBQLnFkKCksaT1uLmIobC4kMigwLDIyNSkpCmsuJDMoaSx0LDEpCmsuJDMoaSxz
LDE0KQprLiQzKGksciwzNCkKay4kMyhpLHEsMykKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9
bi5iKGwuJDIoMTQsMjI1KSkKay4kMyhpLHQsMSkKay4kMyhpLHMsMTUpCmsuJDMoaSxyLDM0KQprLiQz
KGkscSwyMzQpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDE1LDIyNSkpCmsu
JDMoaSx0LDEpCmsuJDMoaSwiJSIsMjI1KQprLiQzKGksciwzNCkKay4kMyhpLHEsOSkKay4kMyhpLHAs
MTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMSwyMjUpKQprLiQzKGksdCwxKQprLiQzKGksciwz
NCkKay4kMyhpLHEsMTApCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDIsMjM1
KSkKay4kMyhpLHQsMTM5KQprLiQzKGkscSwxMzEpCmsuJDMoaSxzLDE0NikKay4kMyhpLHAsMTcyKQpr
LiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMywyMzUpKQprLiQzKGksdCwxMSkKay4kMyhpLHEsNjgpCmsu
JDMoaSxzLDE4KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMig0LDIyOSkpCmsu
JDMoaSx0LDUpCmouJDMoaSwiQVoiLDIyOSkKay4kMyhpLHIsMTAyKQprLiQzKGksIkAiLDY4KQprLiQz
KGksIlsiLDIzMikKay4kMyhpLHEsMTM4KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIo
bC4kMig1LDIyOSkpCmsuJDMoaSx0LDUpCmouJDMoaSwiQVoiLDIyOSkKay4kMyhpLHIsMTAyKQprLiQz
KGksIkAiLDY4KQprLiQzKGkscSwxMzgpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihs
LiQyKDYsMjMxKSkKai4kMyhpLCIxOSIsNykKay4kMyhpLCJAIiw2OCkKay4kMyhpLHEsMTM4KQprLiQz
KGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMig3LDIzMSkpCmouJDMoaSwiMDkiLDcpCmsu
JDMoaSwiQCIsNjgpCmsuJDMoaSxxLDEzOCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmsuJDMo
bi5iKGwuJDIoOCw4KSksIl0iLDUpCmk9bi5iKGwuJDIoOSwyMzUpKQprLiQzKGksdCwxMSkKay4kMyhp
LHMsMTYpCmsuJDMoaSxxLDIzNCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIo
MTYsMjM1KSkKay4kMyhpLHQsMTEpCmsuJDMoaSxzLDE3KQprLiQzKGkscSwyMzQpCmsuJDMoaSxwLDE3
MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDE3LDIzNSkpCmsuJDMoaSx0LDExKQprLiQzKGkscSw5
KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMigxMCwyMzUpKQprLiQzKGksdCwx
MSkKay4kMyhpLHMsMTgpCmsuJDMoaSxxLDIzNCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9
bi5iKGwuJDIoMTgsMjM1KSkKay4kMyhpLHQsMTEpCmsuJDMoaSxzLDE5KQprLiQzKGkscSwyMzQpCmsu
JDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDE5LDIzNSkpCmsuJDMoaSx0LDExKQpr
LiQzKGkscSwyMzQpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDExLDIzNSkp
CmsuJDMoaSx0LDExKQprLiQzKGkscSwxMCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5i
KGwuJDIoMTIsMjM2KSkKay4kMyhpLHQsMTIpCmsuJDMoaSxwLDEyKQprLiQzKGksbywyMDUpCmk9bi5i
KGwuJDIoMTMsMjM3KSkKay4kMyhpLHQsMTMpCmsuJDMoaSxwLDEzKQpqLiQzKG4uYihsLiQyKDIwLDI0
NSkpLCJheiIsMjEpCmw9bi5iKGwuJDIoMjEsMjQ1KSkKai4kMyhsLCJheiIsMjEpCmouJDMobCwiMDki
LDIxKQprLiQzKGwsIistLiIsMjEpCnJldHVybiBtfSwKVUI6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIg
dCxzLHIscSxwLG89JC52WigpCmZvcih0PUouclkoYSkscz1iO3M8YzsrK3Mpe2lmKGQ8MHx8ZD49by5s
ZW5ndGgpcmV0dXJuIEguT0gobyxkKQpyPW9bZF0KcT10LlcoYSxzKV45NgppZihxPjk1KXE9MzEKaWYo
cT49ci5sZW5ndGgpcmV0dXJuIEguT0gocixxKQpwPXJbcV0KZD1wJjMxCkMuTm0uWShlLHA+Pj41LHMp
fXJldHVybiBkfSwKV0Y6ZnVuY3Rpb24gV0YoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCmEyOmZ1bmN0
aW9uIGEyKCl7fSwKaVA6ZnVuY3Rpb24gaVAoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCkNQOmZ1bmN0
aW9uIENQKCl7fSwKWFM6ZnVuY3Rpb24gWFMoKXt9LApDNjpmdW5jdGlvbiBDNihhKXt0aGlzLmE9YX0s
Cm46ZnVuY3Rpb24gbigpe30sCnU6ZnVuY3Rpb24gdShhLGIsYyxkKXt2YXIgXz10aGlzCl8uYT1hCl8u
Yj1iCl8uYz1jCl8uZD1kfSwKYko6ZnVuY3Rpb24gYkooYSxiLGMsZCxlLGYpe3ZhciBfPXRoaXMKXy5l
PWEKXy5mPWIKXy5hPWMKXy5iPWQKXy5jPWUKXy5kPWZ9LAplWTpmdW5jdGlvbiBlWShhLGIsYyxkLGUp
e3ZhciBfPXRoaXMKXy5mPWEKXy5hPWIKXy5iPWMKXy5jPWQKXy5kPWV9LAptcDpmdW5jdGlvbiBtcChh
LGIsYyxkKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8uZD1kfSwKdWI6ZnVuY3Rpb24gdWIo
YSl7dGhpcy5hPWF9LApkczpmdW5jdGlvbiBkcyhhKXt0aGlzLmE9YX0sCmxqOmZ1bmN0aW9uIGxqKGEp
e3RoaXMuYT1hfSwKVVY6ZnVuY3Rpb24gVVYoYSl7dGhpcy5hPWF9LAprNTpmdW5jdGlvbiBrNSgpe30s
CktZOmZ1bmN0aW9uIEtZKCl7fSwKYzpmdW5jdGlvbiBjKGEpe3RoaXMuYT1hfSwKQ0Q6ZnVuY3Rpb24g
Q0QoYSl7dGhpcy5hPWF9LAphRTpmdW5jdGlvbiBhRShhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhp
cy5jPWN9LApFSDpmdW5jdGlvbiBFSCgpe30sCktOOmZ1bmN0aW9uIEtOKCl7fSwKY1g6ZnVuY3Rpb24g
Y1goKXt9LApBbjpmdW5jdGlvbiBBbigpe30sCnpNOmZ1bmN0aW9uIHpNKCl7fSwKWjA6ZnVuY3Rpb24g
WjAoKXt9LApjODpmdW5jdGlvbiBjOCgpe30sCkZLOmZ1bmN0aW9uIEZLKCl7fSwKazpmdW5jdGlvbiBr
KCl7fSwKT2Q6ZnVuY3Rpb24gT2QoKXt9LAppYjpmdW5jdGlvbiBpYigpe30sCnh1OmZ1bmN0aW9uIHh1
KCl7fSwKR3o6ZnVuY3Rpb24gR3ooKXt9LApxVTpmdW5jdGlvbiBxVSgpe30sClJuOmZ1bmN0aW9uIFJu
KGEpe3RoaXMuYT1hfSwKR0Q6ZnVuY3Rpb24gR0QoKXt9LApuMTpmdW5jdGlvbiBuMShhKXt0aGlzLmE9
YX0sCmNTOmZ1bmN0aW9uIGNTKGEpe3RoaXMuYT1hfSwKVkM6ZnVuY3Rpb24gVkMoYSl7dGhpcy5hPWF9
LAp0cDpmdW5jdGlvbiB0cChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKRG46ZnVuY3Rpb24gRG4oYSxi
LGMsZCxlLGYsZyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9ZApfLmU9ZQpfLmY9Zgpf
LnI9ZwpfLlE9Xy56PV8ueT1fLng9bnVsbH0sCmUxOmZ1bmN0aW9uIGUxKGEsYil7dGhpcy5hPWEKdGhp
cy5iPWJ9LApOWTpmdW5jdGlvbiBOWShhKXt0aGlzLmE9YX0sClJaOmZ1bmN0aW9uIFJaKCl7fSwKUEU6
ZnVuY3Rpb24gUEUoYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKcTM6ZnVuY3Rpb24g
cTMoKXt9LAp5STpmdW5jdGlvbiB5SShhKXt0aGlzLmE9YX0sCmM2OmZ1bmN0aW9uIGM2KCl7fSwKcWQ6
ZnVuY3Rpb24gcWQoKXt9LApVZjpmdW5jdGlvbiBVZihhLGIsYyxkLGUsZixnLGgpe3ZhciBfPXRoaXMK
Xy5hPWEKXy5iPWIKXy5jPWMKXy5kPWQKXy5lPWUKXy5mPWYKXy5yPWcKXy54PWgKXy55PW51bGx9LApx
ZTpmdW5jdGlvbiBxZShhLGIsYyxkLGUsZixnKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8u
ZD1kCl8uZT1lCl8uZj1mCl8ucj1nCl8uUT1fLno9Xy55PV8ueD1udWxsfSwKaUo6ZnVuY3Rpb24gaUoo
KXt9LApsUjpmdW5jdGlvbiBsUihhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKamc6ZnVuY3Rpb24gamco
YSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCkJmOmZ1bmN0aW9uIEJmKGEsYil7dGhpcy5hPWEKdGhpcy5i
PWJ9LApBczpmdW5jdGlvbiBBcygpe30sCkdFOmZ1bmN0aW9uIEdFKGEpe3RoaXMuYT1hfSwKaEY6ZnVu
Y3Rpb24gaEYoKXt9LApSNDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHIKSC54ZChiKQp1LmouYihk
KQppZihILm9UKGIpKXt0PVtjXQpDLk5tLkZWKHQsZCkKZD10fXM9dS56CnI9UC5DSChKLk0xKGQsUC53
MCgpLHMpLCEwLHMpCnUuWi5iKGEpCnJldHVybiBQLndZKEguRWsoYSxyLG51bGwpKX0sCkRtOmZ1bmN0
aW9uKGEsYixjKXt2YXIgdAp0cnl7aWYoT2JqZWN0LmlzRXh0ZW5zaWJsZShhKSYmIU9iamVjdC5wcm90
b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHt2
YWx1ZTpjfSkKcmV0dXJuITB9fWNhdGNoKHQpe0guUnUodCl9cmV0dXJuITF9LApPbTpmdW5jdGlvbihh
LGIpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpKXJldHVybiBhW2Jd
CnJldHVybiBudWxsfSwKd1k6ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PSJzdHJpbmci
fHx0eXBlb2YgYT09Im51bWJlciJ8fEgubChhKSlyZXR1cm4gYQppZihhIGluc3RhbmNlb2YgUC5FNCly
ZXR1cm4gYS5hCmlmKEguUjkoYSkpcmV0dXJuIGEKaWYodS5rLmMoYSkpcmV0dXJuIGEKaWYoYSBpbnN0
YW5jZW9mIFAuaVApcmV0dXJuIEgubzIoYSkKaWYodS5aLmMoYSkpcmV0dXJuIFAuaEUoYSwiJGRhcnRf
anNGdW5jdGlvbiIsbmV3IFAuUEMoKSkKcmV0dXJuIFAuaEUoYSwiXyRkYXJ0X2pzT2JqZWN0IixuZXcg
UC5ZbSgkLmtJKCkpKX0sCmhFOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1QLk9tKGEsYikKaWYodD09bnVs
bCl7dD1jLiQxKGEpClAuRG0oYSxiLHQpfXJldHVybiB0fSwKTDc6ZnVuY3Rpb24oYSl7dmFyIHQscwpp
ZihhPT1udWxsfHx0eXBlb2YgYT09InN0cmluZyJ8fHR5cGVvZiBhPT0ibnVtYmVyInx8dHlwZW9mIGE9
PSJib29sZWFuIilyZXR1cm4gYQplbHNlIGlmKGEgaW5zdGFuY2VvZiBPYmplY3QmJkguUjkoYSkpcmV0
dXJuIGEKZWxzZSBpZihhIGluc3RhbmNlb2YgT2JqZWN0JiZ1LmsuYyhhKSlyZXR1cm4gYQplbHNlIGlm
KGEgaW5zdGFuY2VvZiBEYXRlKXt0PUguU2MoYS5nZXRUaW1lKCkpCmlmKE1hdGguYWJzKHQpPD04NjRl
MTMpcz0hMQplbHNlIHM9ITAKaWYocylILnZoKFAueFkoIkRhdGVUaW1lIGlzIG91dHNpZGUgdmFsaWQg
cmFuZ2U6ICIrdCkpCnJldHVybiBuZXcgUC5pUCh0LCExKX1lbHNlIGlmKGEuY29uc3RydWN0b3I9PT0k
LmtJKCkpcmV0dXJuIGEubwplbHNlIHJldHVybiBQLk5EKGEpfSwKTkQ6ZnVuY3Rpb24oYSl7aWYodHlw
ZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIFAuaVEoYSwkLncoKSxuZXcgUC5OeigpKQppZihhIGluc3Rh
bmNlb2YgQXJyYXkpcmV0dXJuIFAuaVEoYSwkLlI4KCksbmV3IFAuUVMoKSkKcmV0dXJuIFAuaVEoYSwk
LlI4KCksbmV3IFAubnAoKSl9LAppUTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9UC5PbShhLGIpCmlmKHQ9
PW51bGx8fCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpe3Q9Yy4kMShhKQpQLkRtKGEsYix0KX1yZXR1cm4g
dH0sClBDOmZ1bmN0aW9uIFBDKCl7fSwKWW06ZnVuY3Rpb24gWW0oYSl7dGhpcy5hPWF9LApOejpmdW5j
dGlvbiBOeigpe30sClFTOmZ1bmN0aW9uIFFTKCl7fSwKbnA6ZnVuY3Rpb24gbnAoKXt9LApFNDpmdW5j
dGlvbiBFNChhKXt0aGlzLmE9YX0sCnI3OmZ1bmN0aW9uIHI3KGEpe3RoaXMuYT1hfSwKVHo6ZnVuY3Rp
b24gVHooYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1ifSwKY286ZnVuY3Rpb24gY28oKXt9LApuZDpmdW5j
dGlvbiBuZCgpe30sCktlOmZ1bmN0aW9uIEtlKGEpe3RoaXMuYT1hfSwKZDU6ZnVuY3Rpb24gZDUoKXt9
LApuNjpmdW5jdGlvbiBuNigpe319LFc9ewpVOTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9ZG9jdW1lbnQu
Ym9keSxzPSh0JiZDLlJZKS5yNih0LGEsYixjKQpzLnRvU3RyaW5nCnQ9dS5hYwp0PW5ldyBILlU1KG5l
dyBXLmU3KHMpLHQuQygiYTIobEQuRSkiKS5iKG5ldyBXLkN2KCkpLHQuQygiVTU8bEQuRT4iKSkKcmV0
dXJuIHUuaC5iKHQuZ3I4KHQpKX0sCnJTOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj0iZWxlbWVudCB0YWcg
dW5hdmFpbGFibGUiCnRyeXt0PUouUkUoYSkKaWYodHlwZW9mIHQuZ25zKGEpPT0ic3RyaW5nIilyPXQu
Z25zKGEpfWNhdGNoKHMpe0guUnUocyl9cmV0dXJuIHJ9LApxRDpmdW5jdGlvbihhLGIsYyl7dmFyIHQs
cyxyLHE9bmV3IFAudnMoJC5YMyx1LmFvKSxwPW5ldyBQLlpmKHEsdS5FKSxvPW5ldyBYTUxIdHRwUmVx
dWVzdCgpCkMuRHQuZW8obyxiPT1udWxsPyJHRVQiOmIsYSwhMCkKYy5LKDAsbmV3IFcuYlUobykpCnQ9
dS5hbgpzPXQuYihuZXcgVy5oSChvLHApKQp1Lk0uYihudWxsKQpyPXUucApXLkpFKG8sImxvYWQiLHMs
ITEscikKVy5KRShvLCJlcnJvciIsdC5iKHAuZ1lKKCkpLCExLHIpCm8uc2VuZCgpCnJldHVybiBxfSwK
QzA6ZnVuY3Rpb24oYSxiKXthPTUzNjg3MDkxMSZhK2IKYT01MzY4NzA5MTEmYSsoKDUyNDI4NyZhKTw8
MTApCnJldHVybiBhXmE+Pj42fSwKckU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQ9Vy5DMChXLkMwKFcu
QzAoVy5DMCgwLGEpLGIpLGMpLGQpLHM9NTM2ODcwOTExJnQrKCg2NzEwODg2MyZ0KTw8MykKc149cz4+
PjExCnJldHVybiA1MzY4NzA5MTEmcysoKDE2MzgzJnMpPDwxNSl9LApKRTpmdW5jdGlvbihhLGIsYyxk
LGUpe3ZhciB0PVcuYUYobmV3IFcudk4oYyksdS5CKQppZih0IT1udWxsJiYhMClKLmRaKGEsYix0LCEx
KQpyZXR1cm4gbmV3IFcueEMoYSxiLHQsITEsZS5DKCJ4QzwwPiIpKX0sClR3OmZ1bmN0aW9uKGEpe3Zh
ciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxzPW5ldyBXLm1rKHQsd2luZG93LmxvY2F0aW9u
KQpzPW5ldyBXLkpRKHMpCnMuQ1koYSkKcmV0dXJuIHN9LAp5VzpmdW5jdGlvbihhLGIsYyxkKXt1Lmgu
YihhKQpILnkoYikKSC55KGMpCnUuTy5iKGQpCnJldHVybiEwfSwKUVc6ZnVuY3Rpb24oYSxiLGMsZCl7
dmFyIHQscyxyCnUuaC5iKGEpCkgueShiKQpILnkoYykKdD11Lk8uYihkKS5hCnM9dC5hCnMuaHJlZj1j
CnI9cy5ob3N0bmFtZQp0PXQuYgppZighKHI9PXQuaG9zdG5hbWUmJnMucG9ydD09dC5wb3J0JiZzLnBy
b3RvY29sPT10LnByb3RvY29sKSlpZihyPT09IiIpaWYocy5wb3J0PT09IiIpe3Q9cy5wcm90b2NvbAp0
PXQ9PT0iOiJ8fHQ9PT0iIn1lbHNlIHQ9ITEKZWxzZSB0PSExCmVsc2UgdD0hMApyZXR1cm4gdH0sCkJs
OmZ1bmN0aW9uKCl7dmFyIHQ9dS5OLHM9UC50TShDLlF4LHQpLHI9dS5kRy5iKG5ldyBXLklBKCkpLHE9
SC5WTShbIlRFTVBMQVRFIl0sdS5zKQp0PW5ldyBXLmN0KHMsUC5Mcyh0KSxQLkxzKHQpLFAuTHModCks
bnVsbCkKdC5DWShudWxsLG5ldyBILkE4KEMuUXgscix1LmR2KSxxLG51bGwpCnJldHVybiB0fSwKcWM6
ZnVuY3Rpb24oYSl7dmFyIHQKaWYoYT09bnVsbClyZXR1cm4gbnVsbAppZigicG9zdE1lc3NhZ2UiIGlu
IGEpe3Q9Vy5QMShhKQpyZXR1cm4gdH1lbHNlIHJldHVybiB1LmFTLmIoYSl9LApQMTpmdW5jdGlvbihh
KXtpZihhPT09d2luZG93KXJldHVybiB1LmNpLmIoYSkKZWxzZSByZXR1cm4gbmV3IFcuZFcoKX0sCmFG
OmZ1bmN0aW9uKGEsYil7dmFyIHQ9JC5YMwppZih0PT09Qy5OVSlyZXR1cm4gYQpyZXR1cm4gdC5QeShh
LGIpfSwKcUU6ZnVuY3Rpb24gcUUoKXt9LApHaDpmdW5jdGlvbiBHaCgpe30sCmZZOmZ1bmN0aW9uIGZZ
KCl7fSwKbkI6ZnVuY3Rpb24gbkIoKXt9LApBejpmdW5jdGlvbiBBeigpe30sClFQOmZ1bmN0aW9uIFFQ
KCl7fSwKbng6ZnVuY3Rpb24gbngoKXt9LApvSjpmdW5jdGlvbiBvSigpe30sCmlkOmZ1bmN0aW9uIGlk
KCl7fSwKUUY6ZnVuY3Rpb24gUUYoKXt9LApOaDpmdW5jdGlvbiBOaCgpe30sCklCOmZ1bmN0aW9uIElC
KCl7fSwKbjc6ZnVuY3Rpb24gbjcoKXt9LAp3ejpmdW5jdGlvbiB3eihhLGIpe3RoaXMuYT1hCnRoaXMu
JHRpPWJ9LApjdjpmdW5jdGlvbiBjdigpe30sCkN2OmZ1bmN0aW9uIEN2KCl7fSwKZWE6ZnVuY3Rpb24g
ZWEoKXt9LApEMDpmdW5jdGlvbiBEMCgpe30sClQ1OmZ1bmN0aW9uIFQ1KCl7fSwKaDQ6ZnVuY3Rpb24g
aDQoKXt9LApicjpmdW5jdGlvbiBicigpe30sClZiOmZ1bmN0aW9uIFZiKCl7fSwKTzc6ZnVuY3Rpb24g
TzcoKXt9LApiVTpmdW5jdGlvbiBiVShhKXt0aGlzLmE9YX0sCmhIOmZ1bmN0aW9uIGhIKGEsYil7dGhp
cy5hPWEKdGhpcy5iPWJ9LAp3YTpmdW5jdGlvbiB3YSgpe30sClNnOmZ1bmN0aW9uIFNnKCl7fSwKdTg6
ZnVuY3Rpb24gdTgoKXt9LApBajpmdW5jdGlvbiBBaigpe30sCmU3OmZ1bmN0aW9uIGU3KGEpe3RoaXMu
YT1hfSwKdUg6ZnVuY3Rpb24gdUgoKXt9LApCSDpmdW5jdGlvbiBCSCgpe30sCmV3OmZ1bmN0aW9uIGV3
KCl7fSwKbHA6ZnVuY3Rpb24gbHAoKXt9LApUYjpmdW5jdGlvbiBUYigpe30sCkl2OmZ1bmN0aW9uIEl2
KCl7fSwKQlQ6ZnVuY3Rpb24gQlQoKXt9LAp5WTpmdW5jdGlvbiB5WSgpe30sCnc2OmZ1bmN0aW9uIHc2
KCl7fSwKSzU6ZnVuY3Rpb24gSzUoKXt9LApDbTpmdW5jdGlvbiBDbSgpe30sCkNROmZ1bmN0aW9uIENR
KCl7fSwKdzQ6ZnVuY3Rpb24gdzQoKXt9LApyaDpmdW5jdGlvbiByaCgpe30sCkQ5OmZ1bmN0aW9uIEQ5
KCl7fSwKaTc6ZnVuY3Rpb24gaTcoYSl7dGhpcy5hPWF9LApTeTpmdW5jdGlvbiBTeShhKXt0aGlzLmE9
YX0sCktTOmZ1bmN0aW9uIEtTKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApBMzpmdW5jdGlvbiBBMyhh
LGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKSTQ6ZnVuY3Rpb24gSTQoYSl7dGhpcy5hPWF9LApGazpmdW5j
dGlvbiBGayhhLGIpe3RoaXMuYT1hCnRoaXMuJHRpPWJ9LApSTzpmdW5jdGlvbiBSTyhhLGIsYyxkKXt2
YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8uJHRpPWR9LApDcTpmdW5jdGlvbiBDcShhLGIsYyxk
KXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8uJHRpPWR9LAp4QzpmdW5jdGlvbiB4QyhhLGIs
YyxkLGUpe3ZhciBfPXRoaXMKXy5iPWEKXy5jPWIKXy5kPWMKXy5lPWQKXy4kdGk9ZX0sCnZOOmZ1bmN0
aW9uIHZOKGEpe3RoaXMuYT1hfSwKSlE6ZnVuY3Rpb24gSlEoYSl7dGhpcy5hPWF9LApHbTpmdW5jdGlv
biBHbSgpe30sCnZEOmZ1bmN0aW9uIHZEKGEpe3RoaXMuYT1hfSwKVXY6ZnVuY3Rpb24gVXYoYSl7dGhp
cy5hPWF9LApFZzpmdW5jdGlvbiBFZyhhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApt
NjpmdW5jdGlvbiBtNigpe30sCkVvOmZ1bmN0aW9uIEVvKCl7fSwKV2s6ZnVuY3Rpb24gV2soKXt9LApj
dDpmdW5jdGlvbiBjdChhLGIsYyxkLGUpe3ZhciBfPXRoaXMKXy5lPWEKXy5hPWIKXy5iPWMKXy5jPWQK
Xy5kPWV9LApJQTpmdW5jdGlvbiBJQSgpe30sCk93OmZ1bmN0aW9uIE93KCl7fSwKVzk6ZnVuY3Rpb24g
VzkoYSxiLGMpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPS0xCl8uZD1udWxsCl8uJHRpPWN9LApk
VzpmdW5jdGlvbiBkVygpe30sCmtGOmZ1bmN0aW9uIGtGKCl7fSwKbWs6ZnVuY3Rpb24gbWsoYSxiKXt0
aGlzLmE9YQp0aGlzLmI9Yn0sCktvOmZ1bmN0aW9uIEtvKGEpe3RoaXMuYT1hfSwKZm06ZnVuY3Rpb24g
Zm0oYSl7dGhpcy5hPWF9LApMZTpmdW5jdGlvbiBMZSgpe30sCks3OmZ1bmN0aW9uIEs3KCl7fSwKckI6
ZnVuY3Rpb24gckIoKXt9LApYVzpmdW5jdGlvbiBYVygpe30sCm9hOmZ1bmN0aW9uIG9hKCl7fX0sVD17
R1Y6ZnVuY3Rpb24gR1YoKXt9fSxMPXsKSXE6ZnVuY3Rpb24oKXtDLkJaLkIoZG9jdW1lbnQsIkRPTUNv
bnRlbnRMb2FkZWQiLG5ldyBMLmUoKSkKQy5vbC5CKHdpbmRvdywicG9wc3RhdGUiLG5ldyBMLkwoKSl9
LApHNjpmdW5jdGlvbihhKXt2YXIgdD1QLmhLKGEpLmdoWSgpLnEoMCwib2Zmc2V0IikKcmV0dXJuIHQ9
PW51bGw/bnVsbDpILkhwKHQsbnVsbCl9LAphSzpmdW5jdGlvbihhKXt2YXIgdD1QLmhLKGEpLmdoWSgp
LnEoMCwibGluZSIpCnJldHVybiB0PT1udWxsP251bGw6SC5IcCh0LG51bGwpfSwKaE86ZnVuY3Rpb24o
YSl7aWYoMD49YS5sZW5ndGgpcmV0dXJuIEguT0goYSwwKQppZihhWzBdIT09Ii8iKXJldHVybiBKLlQw
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5yb290IikudGV4dENvbnRlbnQpKyIvIitILmQoYSkKZWxz
ZSByZXR1cm4gYX0sCkVuOmZ1bmN0aW9uKGEpe3ZhciB0PUouYmIoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiLnJvb3QiKS50ZXh0Q29udGVudCwiLyIpCmlmKEMueEIubihhLHQpKXJldHVybiBDLnhCLkcoYSx0
Lmxlbmd0aCkKZWxzZSByZXR1cm4gYX0sClNyOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbyxuLG0s
bCxrLGosaSxoLGcsZixlLGQ9ZG9jdW1lbnQsYz1kLnF1ZXJ5U2VsZWN0b3IoIi5lZGl0LWxpc3QgLnBh
bmVsLWNvbnRlbnQiKQpKLmw1KGMsIiIpCnQ9ZC5jcmVhdGVFbGVtZW50KCJwIikKcz1jLmFwcGVuZENo
aWxkKHQpCnQ9Si5VNihhKQpyPUguU2ModC5xKGEsImVkaXRDb3VudCIpKQppZihyPT09MClzLmFwcGVu
ZENoaWxkKGQuY3JlYXRlVGV4dE5vZGUoSC5kKHIpKyIgcHJvcG9zZWQgZWRpdHMiKSkKZWxzZSBzLmFw
cGVuZENoaWxkKGQuY3JlYXRlVGV4dE5vZGUoSC5kKHIpKyIgcHJvcG9zZWQgIitMLkx4KHIsImVkaXQi
KSsiOiIpKQpxPWQuY3JlYXRlRWxlbWVudCgidWwiKQpwPXUuaApvPXAuYihjLmFwcGVuZENoaWxkKHEp
KQpmb3IodD1KLklUKHUuUi5iKHQucShhLCJlZGl0cyIpKSkscT11LmEsbj11LkMsbT1uLkMoIn4oMSki
KSxsPXUuTSxuPW4uZDt0LkYoKTspe2s9dC5nbCgpCmo9ZC5jcmVhdGVFbGVtZW50KCJsaSIpCmk9cC5i
KG8uYXBwZW5kQ2hpbGQoaikpCkouZFIoaSkuaSgwLCJlZGl0IikKaj1kLmNyZWF0ZUVsZW1lbnQoImEi
KQpoPXEuYihpLmFwcGVuZENoaWxkKGopKQpoLmNsYXNzTGlzdC5hZGQoImVkaXQtbGluayIpCmo9Si5V
NihrKQpnPUguU2Moai5xKGssIm9mZnNldCIpKQpmPUguZChnKQpoLnNldEF0dHJpYnV0ZSgiZGF0YS0i
K25ldyBXLlN5KG5ldyBXLmk3KGgpKS5PKCJvZmZzZXQiKSxmKQplPUguU2Moai5xKGssImxpbmUiKSkK
Zj1ILmQoZSkKaC5zZXRBdHRyaWJ1dGUoImRhdGEtIituZXcgVy5TeShuZXcgVy5pNyhoKSkuTygibGlu
ZSIpLGYpCmguYXBwZW5kQ2hpbGQoZC5jcmVhdGVUZXh0Tm9kZSgibGluZSAiK0guZChlKSkpCmY9bS5i
KG5ldyBMLmVTKGcsZSxoKSkKbC5iKG51bGwpClcuSkUoaCwiY2xpY2siLGYsITEsbikKaS5hcHBlbmRD
aGlsZChkLmNyZWF0ZVRleHROb2RlKCI6ICIrSC5kKGoucShrLCJleHBsYW5hdGlvbiIpKSkpfX0sCkJF
OmZ1bmN0aW9uKGEpe3ZhciB0PSIucmVnaW9ucyIscz1kb2N1bWVudCxyPXMucXVlcnlTZWxlY3Rvcih0
KSxxPXMucXVlcnlTZWxlY3RvcigiLmNvZGUiKQpzPUouVTYoYSkKSi50SChyLEgueShzLnEoYSwicmVn
aW9ucyIpKSwkLktHKCkpCkoudEgocSxILnkocy5xKGEsIm5hdkNvbnRlbnQiKSksJC5LRygpKQpMLlNy
KHMucShhLCJlZGl0TGlzdCIpKQpMLnZVKCkKTC55WCgiLmNvZGUiKQpMLnlYKHQpfSwKYWY6ZnVuY3Rp
b24oYSxiLGMsZCl7dmFyIHQscyxyPUwuRzYod2luZG93LmxvY2F0aW9uLmhyZWYpLHE9TC5hSyh3aW5k
b3cubG9jYXRpb24uaHJlZikKaWYociE9bnVsbCl7dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibyIr
SC5kKHIpKQppZih0IT1udWxsKUouZFIodCkuUigwLCJ0YXJnZXQiKX1pZihxIT1udWxsKXtzPWRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoIi5saW5lLSIrSC5kKHEpKQppZihzIT1udWxsKUouZFIocy5wYXJlbnRF
bGVtZW50KS5SKDAsImhpZ2hsaWdodCIpfWlmKGE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl7TC5m
RyhiLGMpCmQuJDAoKX1lbHNlIEwuRzcoYSxiLGMsZCl9LApxTzpmdW5jdGlvbihhKXt2YXIgdD1hLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9dC5ib3R0b20scj13aW5kb3cuaW5uZXJIZWlnaHQKaWYodHlw
ZW9mIHIhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShyKQppZihzPnIpSi5kaChhKQplbHNlIGlmKHQudG9w
PDApSi5kaChhKX0sCmZHOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyCmlmKGEhPW51bGwpe3Q9ZG9jdW1l
bnQKcz10LmdldEVsZW1lbnRCeUlkKCJvIitILmQoYSkpCnI9dC5xdWVyeVNlbGVjdG9yKCIubGluZS0i
K0guZChiKSkKaWYocyE9bnVsbCl7TC5xTyhzKQpKLmRSKHMpLmkoMCwidGFyZ2V0Iil9ZWxzZSBpZihy
IT1udWxsKUwucU8oci5wYXJlbnRFbGVtZW50KQppZihyIT1udWxsKUouZFIodS5oLmEoci5wYXJlbnRO
b2RlKSkuaSgwLCJoaWdobGlnaHQiKX1lbHNlIEwucU8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVu
aXQtbmFtZSIpKX0sCkc3OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0PUouemwoYSwiPyIpP2ErIiZpbmxp
bmU9dHJ1ZSI6YSsiP2lubGluZT10cnVlIixzPXUuTgpXLnFEKHQsbnVsbCxQLkVGKFsiQ29udGVudC1U
eXBlIiwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHMscykpLlc3KG5ldyBMLnl1KGIs
YyxhLGQpLHUuUCkuT0EobmV3IEwuekQoYSkpfSwKRnI6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHM9d2lu
ZG93LmxvY2F0aW9uLHI9Qy54Qi5oKChzJiZDLkV4KS5nRHIocyksYSkrIj8iCmlmKGIhPW51bGwpcis9
Im9mZnNldD0iK0guZChiKSsiJiIKaWYoYyE9bnVsbClyKz0ibGluZT0iK0guZChjKQpzPXdpbmRvdy5o
aXN0b3J5CnQ9dS56CnMudG9TdHJpbmcKcy5wdXNoU3RhdGUobmV3IFAuQmYoW10sW10pLlB2KFAuRmwo
dCx0KSksIiIscil9LApCWDpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj17fQpyLmE9YQphPUwuRW4oYSkK
ci5hPWEKdD1kb2N1bWVudAp0LnF1ZXJ5U2VsZWN0b3IoIiN1bml0LW5hbWUiKS50ZXh0Q29udGVudD1h
CnM9dS5oCkguRGgocyxzLCJUIiwicXVlcnlTZWxlY3RvckFsbCIpCnQ9bmV3IFcud3oodC5xdWVyeVNl
bGVjdG9yQWxsKCIubmF2LXBhbmVsIC5uYXYtbGluayIpLHUuUykKdC5LKHQsbmV3IEwuVlMocikpfSwK
dlU6ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudCxzPXUuaApILkRoKHMscywiVCIsInF1ZXJ5U2VsZWN0
b3JBbGwiKQp0PW5ldyBXLnd6KHQucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUiKSx1LlMpCnQuSyh0LG5l
dyBMLkdIKCkpfSwKa3o6ZnVuY3Rpb24oYSl7dmFyIHQscz11LmguYShhLnBhcmVudE5vZGUpLnF1ZXJ5
U2VsZWN0b3IoIjpzY29wZSA+IHVsIikscj1zLnN0eWxlLHE9IiIrQy5DRC56UShzLm9mZnNldEhlaWdo
dCkqMisicHgiCnIubWF4SGVpZ2h0PXEKcj1KLnFGKGEpCnE9ci4kdGkKdD1xLkMoIn4oMSkiKS5iKG5l
dyBMLld4KHMsYSkpCnUuTS5iKG51bGwpClcuSkUoci5hLHIuYix0LCExLHEuZCl9LAp0MjpmdW5jdGlv
bihhKXt2YXIgdCxzLHIscSxwPSJocmVmIgp1LlYuYihhKQp0PXUuaC5iKFcucWMoYS5jdXJyZW50VGFy
Z2V0KSkKcz1MLmhPKHQuZ2V0QXR0cmlidXRlKHApKQpyPUwuRzYodC5nZXRBdHRyaWJ1dGUocCkpCnE9
TC5hSyh0LmdldEF0dHJpYnV0ZShwKSkKaWYociE9bnVsbClMLmFmKHMscixxLG5ldyBMLm5UKHMscixx
KSkKZWxzZSBMLmFmKHMsbnVsbCxudWxsLG5ldyBMLkJaKHMpKQphLnByZXZlbnREZWZhdWx0KCl9LAp1
bTpmdW5jdGlvbihhKXt2YXIgdCxzPXt9LHI9dS5oLmEoVy5xYyh1LlYuYihhKS5jdXJyZW50VGFyZ2V0
KSkuZ2V0QXR0cmlidXRlKCJocmVmIikKcy5hPXIKcj1MLmhPKHIpCnMuYT1yCnQ9dS5OClcucUQociwi
UE9TVCIsUC5FRihbIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgi
XSx0LHQpKS5XNyhuZXcgTC5GUSgpLHUuUCkuT0EobmV3IEwudFkocykpfSwKeVg6ZnVuY3Rpb24oYSl7
dmFyIHQscyxyLHEscD0icXVlcnlTZWxlY3RvckFsbCIsbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGEp
LG49dS5oCm8udG9TdHJpbmcKSC5EaChuLG4sIlQiLHApCnQ9dS5TCnM9bmV3IFcud3ooby5xdWVyeVNl
bGVjdG9yQWxsKCIubmF2LWxpbmsiKSx0KQpzLksocyxuZXcgTC5BTygpKQpILkRoKG4sbiwiVCIscCkK
cj1uZXcgVy53eihvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5yZWdpb24iKSx0KQpyLksocixuZXcgTC5Ibygp
KQpILkRoKG4sbiwiVCIscCkKcT1uZXcgVy53eihvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5wb3N0LWxpbmsi
KSx0KQpxLksocSxuZXcgTC5JQygpKX0sCnRYOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvLG4s
bSxsLGssaj0ibmFtZSIsaT1kb2N1bWVudCxoPWkuY3JlYXRlRWxlbWVudCgidWwiKSxnPXUuaCxmPWcu
YihhLmFwcGVuZENoaWxkKGgpKQpmb3IoaD1KLklUKHUuUi5iKGIpKSx0PXUuTTtoLkYoKTspe3M9aC5n
bCgpCnI9aS5jcmVhdGVFbGVtZW50KCJsaSIpCnE9Zy5iKGYuYXBwZW5kQ2hpbGQocikpCnI9Si5VNihz
KQpwPUouUkUocSkKaWYoSi5STShyLnEocywidHlwZSIpLCJkaXJlY3RvcnkiKSl7cC5nRChxKS5pKDAs
ImRpciIpCnA9aS5jcmVhdGVFbGVtZW50KCJzcGFuIikKbz1nLmIocS5hcHBlbmRDaGlsZChwKSkKcD1K
LlJFKG8pCnAuZ0QobykuaSgwLCJhcnJvdyIpCnAuc2hmKG8sIiYjeDI1QkM7IikKcD1pLmNyZWF0ZUVs
ZW1lbnQoInNwYW4iKQpKLmw1KGcuYihxLmFwcGVuZENoaWxkKHApKSwiJiN4MUY0QzE7IikKcS5hcHBl
bmRDaGlsZChpLmNyZWF0ZVRleHROb2RlKEgueShyLnEocyxqKSkpKQpMLnRYKHEsci5xKHMsInN1YnRy
ZWUiKSkKTC5reihvKX1lbHNle3Auc2hmKHEsIiYjeDFGNEM0OyIpCnA9aS5jcmVhdGVFbGVtZW50KCJh
IikKbj1nLmIocS5hcHBlbmRDaGlsZChwKSkKcD1KLlJFKG4pCnAuZ0QobikuaSgwLCJuYXYtbGluayIp
Cm09SC55KHIucShzLCJwYXRoIikpCm4uc2V0QXR0cmlidXRlKCJkYXRhLSIrbmV3IFcuU3kobmV3IFcu
aTcobikpLk8oaiksbSkKbi5zZXRBdHRyaWJ1dGUoImhyZWYiLEgueShyLnEocywiaHJlZiIpKSkKbi5h
cHBlbmRDaGlsZChpLmNyZWF0ZVRleHROb2RlKEgueShyLnEocyxqKSkpKQpwPXAuZ1ZsKG4pCm09cC4k
dGkKbS5DKCJ+KDEpIikuYihMLlhOKCkpCnQuYihudWxsKQpXLkpFKHAuYSxwLmIsTC5YTigpLCExLG0u
ZCkKbD1ILlNjKHIucShzLCJlZGl0Q291bnQiKSkKaWYodHlwZW9mIGwhPT0ibnVtYmVyIilyZXR1cm4g
bC5vcygpCmlmKGw+MCl7cj1pLmNyZWF0ZUVsZW1lbnQoInNwYW4iKQprPWcuYihxLmFwcGVuZENoaWxk
KHIpKQpKLmRSKGspLmkoMCwiZWRpdC1jb3VudCIpCnI9IiIrbCsiICIKaWYobD09PTEpcD0iZWRpdCIK
ZWxzZSBwPSJlZGl0cyIKay5zZXRBdHRyaWJ1dGUoInRpdGxlIixyK3ApCmsuYXBwZW5kQ2hpbGQoaS5j
cmVhdGVUZXh0Tm9kZShDLmpuLncobCkpKX19fX0sCkdlOmZ1bmN0aW9uKCl7dmFyIHQ9Ii9fcHJldmll
dy9uYXZpZ2F0aW9uVHJlZS5qc29uIixzPXUuTgpXLnFEKHQsbnVsbCxQLkVGKFsiQ29udGVudC1UeXBl
IiwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHMscykpLlc3KG5ldyBMLlRXKCksdS5Q
KS5PQShuZXcgTC54cih0KSl9LApxSjpmdW5jdGlvbihhLGIpe3ZhciB0CndpbmRvdwppZih0eXBlb2Yg
Y29uc29sZSE9InVuZGVmaW5lZCIpd2luZG93LmNvbnNvbGUuZXJyb3IoYSkKd2luZG93CnQ9SC5kKGIp
CmlmKHR5cGVvZiBjb25zb2xlIT0idW5kZWZpbmVkIil3aW5kb3cuY29uc29sZS5lcnJvcih0KX0sCkFG
OmZ1bmN0aW9uKGE0KXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnLGYsZSxkLGMsYixhPW51
bGwsYTA9ImxpbmsiLGExPSJocmVmIixhMj1kb2N1bWVudCxhMz1hMi5xdWVyeVNlbGVjdG9yKCIuZWRp
dC1wYW5lbCAucGFuZWwtY29udGVudCIpCkoubDUoYTMsIiIpCnQ9Si5VNihhNCkKcz1ILnkodC5xKGE0
LCJwYXRoIikpCnI9JC5uVSgpCnE9ci50TShzKQpwPUgueSh0LnEoYTQsImV4cGxhbmF0aW9uIikpCm89
ci5IUChzLEouVDAoYTIucXVlcnlTZWxlY3RvcigiLnJvb3QiKS50ZXh0Q29udGVudCkpCm49SC5TYyh0
LnEoYTQsImxpbmUiKSkKcj1hMi5jcmVhdGVFbGVtZW50KCJwIikKbT11LmgKbS5iKGEzLmFwcGVuZENo
aWxkKHIpKS5hcHBlbmRDaGlsZChhMi5jcmVhdGVUZXh0Tm9kZShILmQocCkrIiBhdCAiK0guZChvKSsi
OiIrSC5kKG4pKyIuIikpCmlmKEguU2MoSi5IbSh0LnEoYTQsImRldGFpbHMiKSkpIT09MCl7cj1hMi5j
cmVhdGVFbGVtZW50KCJwIikKci50ZXh0Q29udGVudD0iRWRpdCByYXRpb25hbGU6IgphMy5hcHBlbmRD
aGlsZChyKQpyPWEyLmNyZWF0ZUVsZW1lbnQoInVsIikKbD1tLmIoYTMuYXBwZW5kQ2hpbGQocikpCmZv
cihyPUouSVQodS5SLmIodC5xKGE0LCJkZXRhaWxzIikpKSxrPXUuYTtyLkYoKTspe2o9ci5nbCgpCmk9
YTIuY3JlYXRlRWxlbWVudCgibGkiKQpoPWwuYXBwZW5kQ2hpbGQoaSkKaT1KLlU2KGopCmguYXBwZW5k
Q2hpbGQoYTIuY3JlYXRlVGV4dE5vZGUoSC55KGkucShqLCJkZXNjcmlwdGlvbiIpKSkpCmlmKGkucShq
LGEwKSE9bnVsbCl7Zz1ILlNjKEoudzIoaS5xKGosYTApLCJsaW5lIikpCmguYXBwZW5kQ2hpbGQoYTIu
Y3JlYXRlVGV4dE5vZGUoIiAoIikpCmY9YTIuY3JlYXRlRWxlbWVudCgiYSIpCmU9ay5iKGguYXBwZW5k
Q2hpbGQoZikpCmUuYXBwZW5kQ2hpbGQoYTIuY3JlYXRlVGV4dE5vZGUoSC5kKEoudzIoaS5xKGosYTAp
LCJ0ZXh0IikpKyI6IitILmQoZykpKQpkPUgueShKLncyKGkucShqLGEwKSxhMSkpCmk9JC5uVSgpCmUu
c2V0QXR0cmlidXRlKGExLGkubzUoaS5xNygwLHEsZCxhLGEsYSxhLGEsYSkpKQplLmNsYXNzTGlzdC5h
ZGQoIm5hdi1saW5rIikKaC5hcHBlbmRDaGlsZChhMi5jcmVhdGVUZXh0Tm9kZSgiKSIpKX19fWlmKHQu
cShhNCwiZWRpdHMiKSE9bnVsbClmb3IodD1KLklUKHUuUi5iKHQucShhNCwiZWRpdHMiKSkpO3QuRigp
Oyl7Yz10LmdsKCkKcj1hMi5jcmVhdGVFbGVtZW50KCJwIikKYj1tLmIoYTMuYXBwZW5kQ2hpbGQocikp
CnI9YTIuY3JlYXRlRWxlbWVudCgiYSIpCmU9bS5iKGIuYXBwZW5kQ2hpbGQocikpCnI9Si5VNihjKQpl
LmFwcGVuZENoaWxkKGEyLmNyZWF0ZVRleHROb2RlKEgueShyLnEoYywidGV4dCIpKSkpCmUuc2V0QXR0
cmlidXRlKGExLEgueShyLnEoYyxhMSkpKQpKLmRSKGUpLmkoMCwicG9zdC1saW5rIil9fSwKTVY6ZnVu
Y3Rpb24oYSl7dmFyIHQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHM9YS5nZXRBdHRyaWJ1dGUoImRh
dGEtIituZXcgVy5TeShuZXcgVy5pNyhhKSkuTygib2Zmc2V0IikpLHI9dS5OClcucUQoSC5kKHQpKyI/
cmVnaW9uPXJlZ2lvbiZvZmZzZXQ9IitILmQocyksbnVsbCxQLkVGKFsiQ29udGVudC1UeXBlIiwiYXBw
bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHIscikpLlc3KG5ldyBMLlF2KCksdS5QKS5PQShu
ZXcgTC5uNCh0KSl9LApMeDpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PT0xKXQ9YgplbHNlIHQ9Yisi
cyIKcmV0dXJuIHR9LAplOmZ1bmN0aW9uIGUoKXt9LApWVzpmdW5jdGlvbiBWVyhhLGIsYyl7dGhpcy5h
PWEKdGhpcy5iPWIKdGhpcy5jPWN9LApMOmZ1bmN0aW9uIEwoKXt9LAplUzpmdW5jdGlvbiBlUyhhLGIs
Yyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApGaDpmdW5jdGlvbiBGaChhLGIpe3RoaXMuYT1h
CnRoaXMuYj1ifSwKeXU6ZnVuY3Rpb24geXUoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9Ygpf
LmM9YwpfLmQ9ZH0sCnpEOmZ1bmN0aW9uIHpEKGEpe3RoaXMuYT1hfSwKVlM6ZnVuY3Rpb24gVlMoYSl7
dGhpcy5hPWF9LApHSDpmdW5jdGlvbiBHSCgpe30sCld4OmZ1bmN0aW9uIFd4KGEsYil7dGhpcy5hPWEK
dGhpcy5iPWJ9LApuVDpmdW5jdGlvbiBuVChhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9
LApCWjpmdW5jdGlvbiBCWihhKXt0aGlzLmE9YX0sCkZROmZ1bmN0aW9uIEZRKCl7fSwKdFk6ZnVuY3Rp
b24gdFkoYSl7dGhpcy5hPWF9LApBTzpmdW5jdGlvbiBBTygpe30sCkhvOmZ1bmN0aW9uIEhvKCl7fSwK
eHo6ZnVuY3Rpb24geHooYSl7dGhpcy5hPWF9LApJQzpmdW5jdGlvbiBJQygpe30sClRXOmZ1bmN0aW9u
IFRXKCl7fSwKeHI6ZnVuY3Rpb24geHIoYSl7dGhpcy5hPWF9LApRdjpmdW5jdGlvbiBRdigpe30sCm40
OmZ1bmN0aW9uIG40KGEpe3RoaXMuYT1hfSwKWEE6ZnVuY3Rpb24gWEEoKXt9LApJVjpmdW5jdGlvbiBJ
VihhLGIsYyxkKXt2YXIgXz10aGlzCl8uZD1hCl8uZT1iCl8uZj1jCl8ucj1kfX0sTT17CllGOmZ1bmN0
aW9uKGEsYil7dmFyIHQscyxyLHEscCxvLG4KZm9yKHQ9Yi5sZW5ndGgscz0xO3M8dDsrK3Mpe2lmKGJb
c109PW51bGx8fGJbcy0xXSE9bnVsbCljb250aW51ZQpmb3IoO3Q+PTE7dD1yKXtyPXQtMQppZihiW3Jd
IT1udWxsKWJyZWFrfXE9bmV3IFAuUm4oIiIpCnA9YSsiKCIKcS5hPXAKbz1ILnFDKGIsMCx0LEgudDYo
YikuZCkKbj1vLiR0aQpuPXArbmV3IEguQTgobyxuLkMoInFVKGFMLkUpIikuYihuZXcgTS5ObygpKSxu
LkMoIkE4PGFMLkUscVU+IikpLkgoMCwiLCAiKQpxLmE9bgpxLmE9bisoIik6IHBhcnQgIisocy0xKSsi
IHdhcyBudWxsLCBidXQgcGFydCAiK3MrIiB3YXMgbm90LiIpCnRocm93IEguYihQLnhZKHEudygwKSkp
fX0sCmxJOmZ1bmN0aW9uIGxJKGEpe3RoaXMuYT1hfSwKTWk6ZnVuY3Rpb24gTWkoKXt9LApxNzpmdW5j
dGlvbiBxNygpe30sCk5vOmZ1bmN0aW9uIE5vKCl7fX0sQj17THU6ZnVuY3Rpb24gTHUoKXt9LApPUzpm
dW5jdGlvbihhKXt2YXIgdAppZighKGE+PTY1JiZhPD05MCkpdD1hPj05NyYmYTw9MTIyCmVsc2UgdD0h
MApyZXR1cm4gdH0sCll1OmZ1bmN0aW9uKGEsYil7dmFyIHQ9YS5sZW5ndGgscz1iKzIKaWYodDxzKXJl
dHVybiExCmlmKCFCLk9TKEMueEIubShhLGIpKSlyZXR1cm4hMQppZihDLnhCLm0oYSxiKzEpIT09NTgp
cmV0dXJuITEKaWYodD09PXMpcmV0dXJuITAKcmV0dXJuIEMueEIubShhLHMpPT09NDd9fSxYPXsKQ0w6
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG89Yi54WihhKQpiLmhLKGEpCmlmKG8hPW51bGwpYT1K
LktWKGEsby5sZW5ndGgpCnQ9dS5zCnM9SC5WTShbXSx0KQpyPUguVk0oW10sdCkKdD1hLmxlbmd0aApp
Zih0IT09MCYmYi5yNChDLnhCLlcoYSwwKSkpe2lmKDA+PXQpcmV0dXJuIEguT0goYSwwKQpDLk5tLmko
cixhWzBdKQpxPTF9ZWxzZXtDLk5tLmkociwiIikKcT0wfWZvcihwPXE7cDx0OysrcClpZihiLnI0KEMu
eEIuVyhhLHApKSl7Qy5ObS5pKHMsQy54Qi5OaihhLHEscCkpCkMuTm0uaShyLGFbcF0pCnE9cCsxfWlm
KHE8dCl7Qy5ObS5pKHMsQy54Qi5HKGEscSkpCkMuTm0uaShyLCIiKX1yZXR1cm4gbmV3IFguV0QoYixv
LHMscil9LApXRDpmdW5jdGlvbiBXRChhLGIsYyxkKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uZD1j
Cl8uZT1kfSwKcVI6ZnVuY3Rpb24gcVIoYSl7dGhpcy5hPWF9LApKVDpmdW5jdGlvbihhKXtyZXR1cm4g
bmV3IFguZHYoYSl9LApkdjpmdW5jdGlvbiBkdihhKXt0aGlzLmE9YX19LE89ewpSaDpmdW5jdGlvbigp
e3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGosaT1udWxsCmlmKFAudW8oKS5nRmkoKSE9PSJmaWxlIily
ZXR1cm4gJC5FYigpCnQ9UC51bygpCmlmKCFDLnhCLlRjKHQuZ0lpKHQpLCIvIikpcmV0dXJuICQuRWIo
KQpzPVAuUGkoaSwwLDApCnI9UC56UihpLDAsMCkKcT1QLk9lKGksMCwwLCExKQpwPVAubGUoaSwwLDAs
aSkKbz1QLnRHKGksMCwwKQpuPVAud0IoaSxzKQptPXM9PT0iZmlsZSIKaWYocT09bnVsbCl0PXIubGVu
Z3RoIT09MHx8biE9bnVsbHx8bQplbHNlIHQ9ITEKaWYodClxPSIiCnQ9cT09bnVsbApsPSF0Cms9UC5r
YSgiYS9iIiwwLDMsaSxzLGwpCmo9cy5sZW5ndGg9PT0wCmlmKGomJnQmJiFDLnhCLm4oaywiLyIpKWs9
UC53RihrLCFqfHxsKQplbHNlIGs9UC54ZShrKQppZihuZXcgUC5EbihzLHIsdCYmQy54Qi5uKGssIi8v
Iik/IiI6cSxuLGsscCxvKS50NCgpPT09ImFcXGIiKXJldHVybiAkLktrKCkKcmV0dXJuICQuYkQoKX0s
CnpMOmZ1bmN0aW9uIHpMKCl7fX0sRT17T0Y6ZnVuY3Rpb24gT0YoYSxiLGMpe3RoaXMuZD1hCnRoaXMu
ZT1iCnRoaXMuZj1jfX0sRj17cnU6ZnVuY3Rpb24gcnUoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmQ9YQpf
LmU9YgpfLmY9YwpfLnI9ZH19LEQ9ewpSWDpmdW5jdGlvbigpe3ZhciB0LHMscj1QLnVvKCkKaWYoSi5S
TShyLCQuSTYpKXJldHVybiAkLkZmCiQuSTY9cgppZigkLkhrKCk9PSQuRWIoKSlyZXR1cm4gJC5GZj1y
LlpJKCIuIikudygwKQplbHNle3Q9ci50NCgpCnM9dC5sZW5ndGgtMQpyZXR1cm4gJC5GZj1zPT09MD90
OkMueEIuTmoodCwwLHMpfX19CnZhciB3PVtDLEgsSixQLFcsVCxMLE0sQixYLE8sRSxGLERdCmh1bmtI
ZWxwZXJzLnNldEZ1bmN0aW9uTmFtZXNJZk5lY2Vzc2FyeSh3KQp2YXIgJD17fQpILmVvLnByb3RvdHlw
ZT17fQpKLnZCLnByb3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1ifSwKZ2lPOmZ1
bmN0aW9uKGEpe3JldHVybiBILmVRKGEpfSwKdzpmdW5jdGlvbihhKXtyZXR1cm4iSW5zdGFuY2Ugb2Yg
JyIrSC5kKEguTShhKSkrIicifSwKZTc6ZnVuY3Rpb24oYSxiKXt1Lm8uYihiKQp0aHJvdyBILmIoUC5s
cihhLGIuZ1dhKCksYi5nbmQoKSxiLmdWbSgpKSl9fQpKLnlFLnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24o
YSl7cmV0dXJuIFN0cmluZyhhKX0sCmdpTzpmdW5jdGlvbihhKXtyZXR1cm4gYT81MTkwMTg6MjE4MTU5
fSwKJGlhMjoxfQpKLllFLnByb3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PWJ9
LAp3OmZ1bmN0aW9uKGEpe3JldHVybiJudWxsIn0sCmdpTzpmdW5jdGlvbihhKXtyZXR1cm4gMH0sCmU3
OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuU2ooYSx1Lm8uYihiKSl9LAokaWM4OjF9CkouTUYucHJv
dG90eXBlPXsKZ2lPOmZ1bmN0aW9uKGEpe3JldHVybiAwfSwKdzpmdW5jdGlvbihhKXtyZXR1cm4gU3Ry
aW5nKGEpfSwKJGl2bToxfQpKLmlDLnByb3RvdHlwZT17fQpKLmtkLnByb3RvdHlwZT17fQpKLmM1LnBy
b3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQ9YVskLncoKV0KaWYodD09bnVsbClyZXR1cm4gdGhp
cy50KGEpCnJldHVybiJKYXZhU2NyaXB0IGZ1bmN0aW9uIGZvciAiK0guZChKLmoodCkpfSwKJFM6ZnVu
Y3Rpb24oKXtyZXR1cm57ZnVuYzoxLG9wdDpbLCwsLCwsLCwsLCwsLCwsLF19fSwKJGlFSDoxfQpKLmpk
LnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSxiKXtILnQ2KGEpLmQuYihiKQppZighIWEuZml4ZWQkbGVu
Z3RoKUgudmgoUC5MNCgiYWRkIikpCmEucHVzaChiKX0sClc0OmZ1bmN0aW9uKGEsYil7dmFyIHQKaWYo
ISFhLmZpeGVkJGxlbmd0aClILnZoKFAuTDQoInJlbW92ZUF0IikpCnQ9YS5sZW5ndGgKaWYoYj49dCl0
aHJvdyBILmIoUC54KGIsbnVsbCkpCnJldHVybiBhLnNwbGljZShiLDEpWzBdfSwKVUc6ZnVuY3Rpb24o
YSxiLGMpe3ZhciB0LHMscgpILnQ2KGEpLkMoImNYPDE+IikuYihjKQppZighIWEuZml4ZWQkbGVuZ3Ro
KUgudmgoUC5MNCgiaW5zZXJ0QWxsIikpCnQ9YS5sZW5ndGgKUC53QShiLDAsdCwiaW5kZXgiKQpzPWMu
bGVuZ3RoCnRoaXMuc0EoYSx0K3MpCnI9YitzCnRoaXMuWVcoYSxyLGEubGVuZ3RoLGEsYikKdGhpcy52
ZyhhLGIscixjKX0sCm12OmZ1bmN0aW9uKGEpe2lmKCEhYS5maXhlZCRsZW5ndGgpSC52aChQLkw0KCJy
ZW1vdmVMYXN0IikpCmlmKGEubGVuZ3RoPT09MCl0aHJvdyBILmIoSC5IWShhLC0xKSkKcmV0dXJuIGEu
cG9wKCl9LApGVjpmdW5jdGlvbihhLGIpe3ZhciB0CkgudDYoYSkuQygiY1g8MT4iKS5iKGIpCmlmKCEh
YS5maXhlZCRsZW5ndGgpSC52aChQLkw0KCJhZGRBbGwiKSkKZm9yKHQ9Si5JVChiKTt0LkYoKTspYS5w
dXNoKHQuZ2woKSl9LApLOmZ1bmN0aW9uKGEsYil7dmFyIHQscwpILnQ2KGEpLkMoIn4oMSkiKS5iKGIp
CnQ9YS5sZW5ndGgKZm9yKHM9MDtzPHQ7KytzKXtiLiQxKGFbc10pCmlmKGEubGVuZ3RoIT09dCl0aHJv
dyBILmIoUC5hNChhKSl9fSwKRTI6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PUgudDYoYSkKcmV0dXJuIG5l
dyBILkE4KGEsdC5LcShjKS5DKCIxKDIpIikuYihiKSx0LkMoIkA8MT4iKS5LcShjKS5DKCJBODwxLDI+
IikpfSwKSDpmdW5jdGlvbihhLGIpe3ZhciB0LHM9bmV3IEFycmF5KGEubGVuZ3RoKQpzLmZpeGVkJGxl
bmd0aD1BcnJheQpmb3IodD0wO3Q8YS5sZW5ndGg7Kyt0KXRoaXMuWShzLHQsSC5kKGFbdF0pKQpyZXR1
cm4gcy5qb2luKGIpfSwKTjA6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyCmQuYihiKQpILnQ2KGEp
LktxKGQpLkMoIjEoMSwyKSIpLmIoYykKdD1hLmxlbmd0aApmb3Iocz1iLHI9MDtyPHQ7KytyKXtzPWMu
JDIocyxhW3JdKQppZihhLmxlbmd0aCE9PXQpdGhyb3cgSC5iKFAuYTQoYSkpfXJldHVybiBzfSwKRTpm
dW5jdGlvbihhLGIpe2lmKGI8MHx8Yj49YS5sZW5ndGgpcmV0dXJuIEguT0goYSxiKQpyZXR1cm4gYVti
XX0sCmFNOmZ1bmN0aW9uKGEsYixjKXtpZihiPDB8fGI+YS5sZW5ndGgpdGhyb3cgSC5iKFAuVEUoYiww
LGEubGVuZ3RoLCJzdGFydCIsbnVsbCkpCmlmKGM8Ynx8Yz5hLmxlbmd0aCl0aHJvdyBILmIoUC5URShj
LGIsYS5sZW5ndGgsImVuZCIsbnVsbCkpCmlmKGI9PT1jKXJldHVybiBILlZNKFtdLEgudDYoYSkpCnJl
dHVybiBILlZNKGEuc2xpY2UoYixjKSxILnQ2KGEpKX0sCmdyWjpmdW5jdGlvbihhKXt2YXIgdD1hLmxl
bmd0aAppZih0PjApcmV0dXJuIGFbdC0xXQp0aHJvdyBILmIoSC5XcCgpKX0sCllXOmZ1bmN0aW9uKGEs
YixjLGQsZSl7dmFyIHQscyxyPUgudDYoYSkKci5DKCJjWDwxPiIpLmIoZCkKaWYoISFhLmltbXV0YWJs
ZSRsaXN0KUgudmgoUC5MNCgic2V0UmFuZ2UiKSkKUC5qQihiLGMsYS5sZW5ndGgpCnQ9Yy1iCmlmKHQ9
PT0wKXJldHVybgpQLmsxKGUsInNraXBDb3VudCIpCnIuQygiek08MT4iKS5iKGQpCnI9Si5VNihkKQpp
ZihlK3Q+ci5nQShkKSl0aHJvdyBILmIoSC5hcigpKQppZihlPGIpZm9yKHM9dC0xO3M+PTA7LS1zKWFb
YitzXT1yLnEoZCxlK3MpCmVsc2UgZm9yKHM9MDtzPHQ7KytzKWFbYitzXT1yLnEoZCxlK3MpfSwKdmc6
ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuWVcoYSxiLGMsZCwwKX0sClZyOmZ1bmN0aW9uKGEs
Yil7dmFyIHQscwpILnQ2KGEpLkMoImEyKDEpIikuYihiKQp0PWEubGVuZ3RoCmZvcihzPTA7czx0Oysr
cyl7aWYoSC5vVChiLiQxKGFbc10pKSlyZXR1cm4hMAppZihhLmxlbmd0aCE9PXQpdGhyb3cgSC5iKFAu
YTQoYSkpfXJldHVybiExfSwKdGc6ZnVuY3Rpb24oYSxiKXt2YXIgdApmb3IodD0wO3Q8YS5sZW5ndGg7
Kyt0KWlmKEouUk0oYVt0XSxiKSlyZXR1cm4hMApyZXR1cm4hMX0sCnc6ZnVuY3Rpb24oYSl7cmV0dXJu
IFAuV0UoYSwiWyIsIl0iKX0sCmdrejpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEoubTEoYSxhLmxlbmd0
aCxILnQ2KGEpLkMoIm0xPDE+IikpfSwKZ2lPOmZ1bmN0aW9uKGEpe3JldHVybiBILmVRKGEpfSwKZ0E6
ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSwKc0E6ZnVuY3Rpb24oYSxiKXtpZighIWEuZml4ZWQk
bGVuZ3RoKUgudmgoUC5MNCgic2V0IGxlbmd0aCIpKQppZihiPDApdGhyb3cgSC5iKFAuVEUoYiwwLG51
bGwsIm5ld0xlbmd0aCIsbnVsbCkpCmEubGVuZ3RoPWJ9LApxOmZ1bmN0aW9uKGEsYil7SC5TYyhiKQpp
ZihiPj1hLmxlbmd0aHx8YjwwKXRocm93IEguYihILkhZKGEsYikpCnJldHVybiBhW2JdfSwKWTpmdW5j
dGlvbihhLGIsYyl7SC50NihhKS5kLmIoYykKaWYoISFhLmltbXV0YWJsZSRsaXN0KUgudmgoUC5MNCgi
aW5kZXhlZCBzZXQiKSkKaWYoYj49YS5sZW5ndGh8fGI8MCl0aHJvdyBILmIoSC5IWShhLGIpKQphW2Jd
PWN9LAokaWNYOjEsCiRpek06MX0KSi5Qby5wcm90b3R5cGU9e30KSi5tMS5wcm90b3R5cGU9ewpnbDpm
dW5jdGlvbigpe3JldHVybiB0aGlzLmR9LApGOmZ1bmN0aW9uKCl7dmFyIHQscz10aGlzLHI9cy5hLHE9
ci5sZW5ndGgKaWYocy5iIT09cSl0aHJvdyBILmIoSC5sayhyKSkKdD1zLmMKaWYodD49cSl7cy5zTShu
dWxsKQpyZXR1cm4hMX1zLnNNKHJbdF0pOysrcy5jCnJldHVybiEwfSwKc006ZnVuY3Rpb24oYSl7dGhp
cy5kPXRoaXMuJHRpLmQuYihhKX0sCiRpQW46MX0KSi5xSS5wcm90b3R5cGU9ewp5dTpmdW5jdGlvbihh
KXt2YXIgdAppZihhPj0tMjE0NzQ4MzY0OCYmYTw9MjE0NzQ4MzY0NylyZXR1cm4gYXwwCmlmKGlzRmlu
aXRlKGEpKXt0PWE8MD9NYXRoLmNlaWwoYSk6TWF0aC5mbG9vcihhKQpyZXR1cm4gdCswfXRocm93IEgu
YihQLkw0KCIiK2ErIi50b0ludCgpIikpfSwKelE6ZnVuY3Rpb24oYSl7aWYoYT4wKXtpZihhIT09MS8w
KXJldHVybiBNYXRoLnJvdW5kKGEpfWVsc2UgaWYoYT4tMS8wKXJldHVybiAwLU1hdGgucm91bmQoMC1h
KQp0aHJvdyBILmIoUC5MNCgiIithKyIucm91bmQoKSIpKX0sCldaOmZ1bmN0aW9uKGEsYil7dmFyIHQs
cyxyLHEKaWYoYjwyfHxiPjM2KXRocm93IEguYihQLlRFKGIsMiwzNiwicmFkaXgiLG51bGwpKQp0PWEu
dG9TdHJpbmcoYikKaWYoQy54Qi5tKHQsdC5sZW5ndGgtMSkhPT00MSlyZXR1cm4gdApzPS9eKFtcZGEt
el0rKSg/OlwuKFtcZGEtel0rKSk/XChlXCsoXGQrKVwpJC8uZXhlYyh0KQppZihzPT1udWxsKUgudmgo
UC5MNCgiVW5leHBlY3RlZCB0b1N0cmluZyByZXN1bHQ6ICIrdCkpCnI9cy5sZW5ndGgKaWYoMT49cily
ZXR1cm4gSC5PSChzLDEpCnQ9c1sxXQppZigzPj1yKXJldHVybiBILk9IKHMsMykKcT0rc1szXQpyPXNb
Ml0KaWYociE9bnVsbCl7dCs9cgpxLT1yLmxlbmd0aH1yZXR1cm4gdCtDLnhCLkl4KCIwIixxKX0sCnc6
ZnVuY3Rpb24oYSl7aWYoYT09PTAmJjEvYTwwKXJldHVybiItMC4wIgplbHNlIHJldHVybiIiK2F9LApn
aU86ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscD1hfDAKaWYoYT09PXApcmV0dXJuIDUzNjg3MDkxMSZw
CnQ9TWF0aC5hYnMoYSkKcz1NYXRoLmxvZyh0KS8wLjY5MzE0NzE4MDU1OTk0NTN8MApyPU1hdGgucG93
KDIscykKcT10PDE/dC9yOnIvdApyZXR1cm4gNTM2ODcwOTExJigocSo5MDA3MTk5MjU0NzQwOTkyfDAp
KyhxKjM1NDIyNDMxODExNzY1MjF8MCkpKjU5OTE5NytzKjEyNTl9LApoOmZ1bmN0aW9uKGEsYil7aWYo
dHlwZW9mIGIhPSJudW1iZXIiKXRocm93IEguYihILnRMKGIpKQpyZXR1cm4gYStifSwKelk6ZnVuY3Rp
b24oYSxiKXt2YXIgdD1hJWIKaWYodD09PTApcmV0dXJuIDAKaWYodD4wKXJldHVybiB0CmlmKGI8MCly
ZXR1cm4gdC1iCmVsc2UgcmV0dXJuIHQrYn0sCndHOmZ1bmN0aW9uKGEsYil7dmFyIHQKaWYoYT4wKXQ9
dGhpcy5wMyhhLGIpCmVsc2V7dD1iPjMxPzMxOmIKdD1hPj50Pj4+MH1yZXR1cm4gdH0sCmJmOmZ1bmN0
aW9uKGEsYil7aWYoYjwwKXRocm93IEguYihILnRMKGIpKQpyZXR1cm4gdGhpcy5wMyhhLGIpfSwKcDM6
ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj4zMT8wOmE+Pj5ifSwKQWc6ZnVuY3Rpb24oYSxiKXtyZXR1cm4o
YXxiKT4+PjB9LAokaUNQOjEsCiRpRks6MX0KSi51ci5wcm90b3R5cGU9eyRpS046MX0KSi5WQS5wcm90
b3R5cGU9e30KSi5Eci5wcm90b3R5cGU9ewptOmZ1bmN0aW9uKGEsYil7aWYoYjwwKXRocm93IEguYihI
LkhZKGEsYikpCmlmKGI+PWEubGVuZ3RoKUgudmgoSC5IWShhLGIpKQpyZXR1cm4gYS5jaGFyQ29kZUF0
KGIpfSwKVzpmdW5jdGlvbihhLGIpe2lmKGI+PWEubGVuZ3RoKXRocm93IEguYihILkhZKGEsYikpCnJl
dHVybiBhLmNoYXJDb2RlQXQoYil9LApkZDpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC51bihiLGEs
MCl9LApoOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGIhPSJzdHJpbmciKXRocm93IEguYihQLkwzKGIs
bnVsbCxudWxsKSkKcmV0dXJuIGErYn0sClRjOmZ1bmN0aW9uKGEsYil7dmFyIHQ9Yi5sZW5ndGgscz1h
Lmxlbmd0aAppZih0PnMpcmV0dXJuITEKcmV0dXJuIGI9PT10aGlzLkcoYSxzLXQpfSwKaTc6ZnVuY3Rp
b24oYSxiLGMsZCl7dmFyIHQscwpjPVAuakIoYixjLGEubGVuZ3RoKQp0PWEuc3Vic3RyaW5nKDAsYikK
cz1hLnN1YnN0cmluZyhjKQpyZXR1cm4gdCtkK3N9LApRaTpmdW5jdGlvbihhLGIsYyl7dmFyIHQKaWYo
IUgub2soYykpSC52aChILnRMKGMpKQppZih0eXBlb2YgYyE9PSJudW1iZXIiKXJldHVybiBjLkooKQpp
ZihjPDB8fGM+YS5sZW5ndGgpdGhyb3cgSC5iKFAuVEUoYywwLGEubGVuZ3RoLG51bGwsbnVsbCkpCnQ9
YytiLmxlbmd0aAppZih0PmEubGVuZ3RoKXJldHVybiExCnJldHVybiBiPT09YS5zdWJzdHJpbmcoYyx0
KX0sCm46ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5RaShhLGIsMCl9LApOajpmdW5jdGlvbihhLGIs
Yyl7aWYoIUgub2soYikpSC52aChILnRMKGIpKQppZihjPT1udWxsKWM9YS5sZW5ndGgKaWYodHlwZW9m
IGIhPT0ibnVtYmVyIilyZXR1cm4gYi5KKCkKaWYoYjwwKXRocm93IEguYihQLngoYixudWxsKSkKaWYo
Yj5jKXRocm93IEguYihQLngoYixudWxsKSkKaWYoYz5hLmxlbmd0aCl0aHJvdyBILmIoUC54KGMsbnVs
bCkpCnJldHVybiBhLnN1YnN0cmluZyhiLGMpfSwKRzpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLk5q
KGEsYixudWxsKX0sCmhjOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG93ZXJDYXNlKCl9LApiUzpmdW5j
dGlvbihhKXt2YXIgdCxzLHIscT1hLnRyaW0oKSxwPXEubGVuZ3RoCmlmKHA9PT0wKXJldHVybiBxCmlm
KHRoaXMuVyhxLDApPT09MTMzKXt0PUoubW0ocSwxKQppZih0PT09cClyZXR1cm4iIn1lbHNlIHQ9MApz
PXAtMQpyPXRoaXMubShxLHMpPT09MTMzP0ouYzEocSxzKTpwCmlmKHQ9PT0wJiZyPT09cClyZXR1cm4g
cQpyZXR1cm4gcS5zdWJzdHJpbmcodCxyKX0sCkl4OmZ1bmN0aW9uKGEsYil7dmFyIHQscwppZigwPj1i
KXJldHVybiIiCmlmKGI9PT0xfHxhLmxlbmd0aD09PTApcmV0dXJuIGEKaWYoYiE9PWI+Pj4wKXRocm93
IEguYihDLkVxKQpmb3IodD1hLHM9IiI7ITA7KXtpZigoYiYxKT09PTEpcz10K3MKYj1iPj4+MQppZihi
PT09MClicmVhawp0Kz10fXJldHVybiBzfSwKWFU6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CmlmKGM8MHx8
Yz5hLmxlbmd0aCl0aHJvdyBILmIoUC5URShjLDAsYS5sZW5ndGgsbnVsbCxudWxsKSkKdD1hLmluZGV4
T2YoYixjKQpyZXR1cm4gdH0sCk9ZOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuWFUoYSxiLDApfSwK
UGs6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMKaWYoYz09bnVsbCljPWEubGVuZ3RoCmVsc2UgaWYoYzww
fHxjPmEubGVuZ3RoKXRocm93IEguYihQLlRFKGMsMCxhLmxlbmd0aCxudWxsLG51bGwpKQp0PWIubGVu
Z3RoCnM9YS5sZW5ndGgKaWYoYyt0PnMpYz1zLXQKcmV0dXJuIGEubGFzdEluZGV4T2YoYixjKX0sCmNu
OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuUGsoYSxiLG51bGwpfSwKSXM6ZnVuY3Rpb24oYSxiLGMp
e3ZhciB0PWEubGVuZ3RoCmlmKGM+dCl0aHJvdyBILmIoUC5URShjLDAsdCxudWxsLG51bGwpKQpyZXR1
cm4gSC5tMihhLGIsYyl9LAp0ZzpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLklzKGEsYiwwKX0sCnc6
ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LApnaU86ZnVuY3Rpb24oYSl7dmFyIHQscyxyCmZvcih0PWEubGVu
Z3RoLHM9MCxyPTA7cjx0Oysrcil7cz01MzY4NzA5MTEmcythLmNoYXJDb2RlQXQocikKcz01MzY4NzA5
MTEmcysoKDUyNDI4NyZzKTw8MTApCnNePXM+PjZ9cz01MzY4NzA5MTEmcysoKDY3MTA4ODYzJnMpPDwz
KQpzXj1zPj4xMQpyZXR1cm4gNTM2ODcwOTExJnMrKCgxNjM4MyZzKTw8MTUpfSwKZ0E6ZnVuY3Rpb24o
YSl7cmV0dXJuIGEubGVuZ3RofSwKcTpmdW5jdGlvbihhLGIpe0guU2MoYikKaWYoYj49YS5sZW5ndGh8
fCExKXRocm93IEguYihILkhZKGEsYikpCnJldHVybiBhW2JdfSwKJGl2WDoxLAokaXFVOjF9CkgucWou
cHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYS5sZW5ndGh9LApxOmZ1bmN0aW9u
KGEsYil7cmV0dXJuIEMueEIubSh0aGlzLmEsSC5TYyhiKSl9fQpILmJRLnByb3RvdHlwZT17fQpILmFM
LnByb3RvdHlwZT17CmdrejpmdW5jdGlvbihhKXt2YXIgdD10aGlzCnJldHVybiBuZXcgSC5hNyh0LHQu
Z0EodCksSC5MaCh0KS5DKCJhNzxhTC5FPiIpKX0sCkg6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscT10
aGlzLHA9cS5nQShxKQppZihiLmxlbmd0aCE9PTApe2lmKHA9PT0wKXJldHVybiIiCnQ9SC5kKHEuRSgw
LDApKQppZihwIT09cS5nQShxKSl0aHJvdyBILmIoUC5hNChxKSkKZm9yKHM9dCxyPTE7cjxwOysrcil7
cz1zK2IrSC5kKHEuRSgwLHIpKQppZihwIT09cS5nQShxKSl0aHJvdyBILmIoUC5hNChxKSl9cmV0dXJu
IHMuY2hhckNvZGVBdCgwKT09MD9zOnN9ZWxzZXtmb3Iocj0wLHM9IiI7cjxwOysrcil7cys9SC5kKHEu
RSgwLHIpKQppZihwIT09cS5nQShxKSl0aHJvdyBILmIoUC5hNChxKSl9cmV0dXJuIHMuY2hhckNvZGVB
dCgwKT09MD9zOnN9fSwKZXY6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5HRygwLEguTGgodGhpcyku
QygiYTIoYUwuRSkiKS5iKGIpKX19CkgubkgucHJvdG90eXBlPXsKZ1VEOmZ1bmN0aW9uKCl7dmFyIHQ9
Si5IbSh0aGlzLmEpLHM9dGhpcy5jCmlmKHM9PW51bGx8fHM+dClyZXR1cm4gdApyZXR1cm4gc30sCmdB
czpmdW5jdGlvbigpe3ZhciB0PUouSG0odGhpcy5hKSxzPXRoaXMuYgppZihzPnQpcmV0dXJuIHQKcmV0
dXJuIHN9LApnQTpmdW5jdGlvbihhKXt2YXIgdCxzPUouSG0odGhpcy5hKSxyPXRoaXMuYgppZihyPj1z
KXJldHVybiAwCnQ9dGhpcy5jCmlmKHQ9PW51bGx8fHQ+PXMpcmV0dXJuIHMtcgppZih0eXBlb2YgdCE9
PSJudW1iZXIiKXJldHVybiB0LkhOKCkKcmV0dXJuIHQtcn0sCkU6ZnVuY3Rpb24oYSxiKXt2YXIgdCxz
PXRoaXMscj1zLmdBcygpK2IKaWYoYj49MCl7dD1zLmdVRCgpCmlmKHR5cGVvZiB0IT09Im51bWJlciIp
cmV0dXJuIEgucFkodCkKdD1yPj10fWVsc2UgdD0hMAppZih0KXRocm93IEguYihQLkNmKGIscywiaW5k
ZXgiLG51bGwsbnVsbCkpCnJldHVybiBKLkdBKHMuYSxyKX19CkguYTcucHJvdG90eXBlPXsKZ2w6ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy5kfSwKRjpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcyxyPXMuYSxxPUou
VTYocikscD1xLmdBKHIpCmlmKHMuYiE9PXApdGhyb3cgSC5iKFAuYTQocikpCnQ9cy5jCmlmKHQ+PXAp
e3Muc0kobnVsbCkKcmV0dXJuITF9cy5zSShxLkUocix0KSk7KytzLmMKcmV0dXJuITB9LApzSTpmdW5j
dGlvbihhKXt0aGlzLmQ9dGhpcy4kdGkuZC5iKGEpfSwKJGlBbjoxfQpILkE4LnByb3RvdHlwZT17CmdB
OmZ1bmN0aW9uKGEpe3JldHVybiBKLkhtKHRoaXMuYSl9LApFOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRo
aXMuYi4kMShKLkdBKHRoaXMuYSxiKSl9fQpILlU1LnByb3RvdHlwZT17CmdrejpmdW5jdGlvbihhKXty
ZXR1cm4gbmV3IEguU08oSi5JVCh0aGlzLmEpLHRoaXMuYix0aGlzLiR0aS5DKCJTTzwxPiIpKX19Ckgu
U08ucHJvdG90eXBlPXsKRjpmdW5jdGlvbigpe3ZhciB0LHMKZm9yKHQ9dGhpcy5hLHM9dGhpcy5iO3Qu
RigpOylpZihILm9UKHMuJDEodC5nbCgpKSkpcmV0dXJuITAKcmV0dXJuITF9LApnbDpmdW5jdGlvbigp
e3JldHVybiB0aGlzLmEuZ2woKX19CkguU1UucHJvdG90eXBlPXt9CkguUmUucHJvdG90eXBlPXsKWTpm
dW5jdGlvbihhLGIsYyl7SC5MaCh0aGlzKS5DKCJSZS5FIikuYihjKQp0aHJvdyBILmIoUC5MNCgiQ2Fu
bm90IG1vZGlmeSBhbiB1bm1vZGlmaWFibGUgbGlzdCIpKX19CkguWEMucHJvdG90eXBlPXt9Ckgud3Yu
cHJvdG90eXBlPXsKZ2lPOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuX2hhc2hDb2RlCmlmKHQhPW51bGwp
cmV0dXJuIHQKdD01MzY4NzA5MTEmNjY0NTk3KkouaGYodGhpcy5hKQp0aGlzLl9oYXNoQ29kZT10CnJl
dHVybiB0fSwKdzpmdW5jdGlvbihhKXtyZXR1cm4nU3ltYm9sKCInK0guZCh0aGlzLmEpKyciKSd9LApE
TjpmdW5jdGlvbihhLGIpe2lmKGI9PW51bGwpcmV0dXJuITEKcmV0dXJuIGIgaW5zdGFuY2VvZiBILnd2
JiZ0aGlzLmE9PWIuYX0sCiRpR0Q6MX0KSC5QRC5wcm90b3R5cGU9e30KSC5XVS5wcm90b3R5cGU9ewp3
OmZ1bmN0aW9uKGEpe3JldHVybiBQLm5PKHRoaXMpfSwKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC5M
aCh0aGlzKQp0LmQuYihiKQp0LmNoWzFdLmIoYykKcmV0dXJuIEguZGMoKX0sCiRpWjA6MX0KSC5MUC5w
cm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hfSwKeDQ6ZnVuY3Rpb24oYSl7aWYo
dHlwZW9mIGEhPSJzdHJpbmciKXJldHVybiExCmlmKCJfX3Byb3RvX18iPT09YSlyZXR1cm4hMQpyZXR1
cm4gdGhpcy5iLmhhc093blByb3BlcnR5KGEpfSwKcTpmdW5jdGlvbihhLGIpe2lmKCF0aGlzLng0KGIp
KXJldHVybiBudWxsCnJldHVybiB0aGlzLnFQKGIpfSwKcVA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMu
YltILnkoYSldfSwKSzpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHA9SC5MaCh0aGlzKQpwLkMoIn4o
MSwyKSIpLmIoYikKdD10aGlzLmMKZm9yKHM9dC5sZW5ndGgscD1wLmNoWzFdLHI9MDtyPHM7KytyKXtx
PXRbcl0KYi4kMihxLHAuYih0aGlzLnFQKHEpKSl9fX0KSC5MSS5wcm90b3R5cGU9ewpnV2E6ZnVuY3Rp
b24oKXt2YXIgdD10aGlzLmEKcmV0dXJuIHR9LApnbmQ6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwPXRo
aXMKaWYocC5jPT09MSlyZXR1cm4gQy5kbgp0PXAuZApzPXQubGVuZ3RoLXAuZS5sZW5ndGgtcC5mCmlm
KHM9PT0wKXJldHVybiBDLmRuCnI9W10KZm9yKHE9MDtxPHM7KytxKXtpZihxPj10Lmxlbmd0aClyZXR1
cm4gSC5PSCh0LHEpCnIucHVzaCh0W3FdKX1yZXR1cm4gSi56QyhyKX0sCmdWbTpmdW5jdGlvbigpe3Zh
ciB0LHMscixxLHAsbyxuLG0sbD10aGlzCmlmKGwuYyE9PTApcmV0dXJuIEMuQ00KdD1sLmUKcz10Lmxl
bmd0aApyPWwuZApxPXIubGVuZ3RoLXMtbC5mCmlmKHM9PT0wKXJldHVybiBDLkNNCnA9bmV3IEguTjUo
dS5lbykKZm9yKG89MDtvPHM7KytvKXtpZihvPj10Lmxlbmd0aClyZXR1cm4gSC5PSCh0LG8pCm49dFtv
XQptPXErbwppZihtPDB8fG0+PXIubGVuZ3RoKXJldHVybiBILk9IKHIsbSkKcC5ZKDAsbmV3IEgud3Yo
biksclttXSl9cmV0dXJuIG5ldyBILlBEKHAsdS5GKX0sCiRpdlE6MX0KSC5Dai5wcm90b3R5cGU9ewok
MjpmdW5jdGlvbihhLGIpe3ZhciB0CkgueShhKQp0PXRoaXMuYQp0LmI9dC5iKyIkIitILmQoYSkKQy5O
bS5pKHRoaXMuYixhKQpDLk5tLmkodGhpcy5jLGIpOysrdC5hfSwKJFM6MTl9CkguWnIucHJvdG90eXBl
PXsKcVM6ZnVuY3Rpb24oYSl7dmFyIHQscyxyPXRoaXMscT1uZXcgUmVnRXhwKHIuYSkuZXhlYyhhKQpp
ZihxPT1udWxsKXJldHVybiBudWxsCnQ9T2JqZWN0LmNyZWF0ZShudWxsKQpzPXIuYgppZihzIT09LTEp
dC5hcmd1bWVudHM9cVtzKzFdCnM9ci5jCmlmKHMhPT0tMSl0LmFyZ3VtZW50c0V4cHI9cVtzKzFdCnM9
ci5kCmlmKHMhPT0tMSl0LmV4cHI9cVtzKzFdCnM9ci5lCmlmKHMhPT0tMSl0Lm1ldGhvZD1xW3MrMV0K
cz1yLmYKaWYocyE9PS0xKXQucmVjZWl2ZXI9cVtzKzFdCnJldHVybiB0fX0KSC5XMC5wcm90b3R5cGU9
ewp3OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYgppZih0PT1udWxsKXJldHVybiJOb1N1Y2hNZXRob2RF
cnJvcjogIitILmQodGhpcy5hKQpyZXR1cm4iTm9TdWNoTWV0aG9kRXJyb3I6IG1ldGhvZCBub3QgZm91
bmQ6ICciK3QrIicgb24gbnVsbCJ9fQpILmF6LnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQs
cz10aGlzLHI9Ik5vU3VjaE1ldGhvZEVycm9yOiBtZXRob2Qgbm90IGZvdW5kOiAnIixxPXMuYgppZihx
PT1udWxsKXJldHVybiJOb1N1Y2hNZXRob2RFcnJvcjogIitILmQocy5hKQp0PXMuYwppZih0PT1udWxs
KXJldHVybiByK3ErIicgKCIrSC5kKHMuYSkrIikiCnJldHVybiByK3ErIicgb24gJyIrdCsiJyAoIitI
LmQocy5hKSsiKSJ9fQpILnZWLnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJl
dHVybiB0Lmxlbmd0aD09PTA/IkVycm9yIjoiRXJyb3I6ICIrdH19CkguQW0ucHJvdG90eXBlPXsKJDE6
ZnVuY3Rpb24oYSl7aWYodS5iVS5jKGEpKWlmKGEuJHRocm93bkpzRXJyb3I9PW51bGwpYS4kdGhyb3du
SnNFcnJvcj10aGlzLmEKcmV0dXJuIGF9LAokUzo0fQpILlhPLnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24o
YSl7dmFyIHQscz10aGlzLmIKaWYocyE9bnVsbClyZXR1cm4gcwpzPXRoaXMuYQp0PXMhPT1udWxsJiZ0
eXBlb2Ygcz09PSJvYmplY3QiP3Muc3RhY2s6bnVsbApyZXR1cm4gdGhpcy5iPXQ9PW51bGw/IiI6dH0s
CiRpR3o6MX0KSC5UcC5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuY29uc3RydWN0
b3Iscz10PT1udWxsP251bGw6dC5uYW1lCnJldHVybiJDbG9zdXJlICciK0guTlEocz09bnVsbD8idW5r
bm93biI6cykrIicifSwKJGlFSDoxLApnUWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sCiRDOiIkMSIs
CiRSOjEsCiREOm51bGx9CkgubGMucHJvdG90eXBlPXt9CkguengucHJvdG90eXBlPXsKdzpmdW5jdGlv
bihhKXt2YXIgdD10aGlzLiRzdGF0aWNfbmFtZQppZih0PT1udWxsKXJldHVybiJDbG9zdXJlIG9mIHVu
a25vd24gc3RhdGljIG1ldGhvZCIKcmV0dXJuIkNsb3N1cmUgJyIrSC5OUSh0KSsiJyJ9fQpILnJULnBy
b3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcwppZihiPT1udWxsKXJldHVybiExCmlm
KHQ9PT1iKXJldHVybiEwCmlmKCEoYiBpbnN0YW5jZW9mIEguclQpKXJldHVybiExCnJldHVybiB0LmE9
PT1iLmEmJnQuYj09PWIuYiYmdC5jPT09Yi5jfSwKZ2lPOmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcy5j
CmlmKHM9PW51bGwpdD1ILmVRKHRoaXMuYSkKZWxzZSB0PXR5cGVvZiBzIT09Im9iamVjdCI/Si5oZihz
KTpILmVRKHMpCnJldHVybih0XkguZVEodGhpcy5iKSk+Pj4wfSwKdzpmdW5jdGlvbihhKXt2YXIgdD10
aGlzLmMKaWYodD09bnVsbCl0PXRoaXMuYQpyZXR1cm4iQ2xvc3VyZSAnIitILmQodGhpcy5kKSsiJyBv
ZiAiKygiSW5zdGFuY2Ugb2YgJyIrSC5kKEguTSh0KSkrIiciKX19CkguRXEucHJvdG90eXBlPXsKdzpm
dW5jdGlvbihhKXtyZXR1cm4iUnVudGltZUVycm9yOiAiK0guZCh0aGlzLmEpfX0KSC5rWS5wcm90b3R5
cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJBc3NlcnRpb24gZmFpbGVkOiAiK1AucCh0aGlzLmEpfX0K
SC5ONS5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hfSwKZ1Y6ZnVuY3Rpb24o
KXtyZXR1cm4gbmV3IEguaTUodGhpcyxILkxoKHRoaXMpLkMoImk1PDE+IikpfSwKeDQ6ZnVuY3Rpb24o
YSl7dmFyIHQscwppZih0eXBlb2YgYT09InN0cmluZyIpe3Q9dGhpcy5iCmlmKHQ9PW51bGwpcmV0dXJu
ITEKcmV0dXJuIHRoaXMuWHUodCxhKX1lbHNle3M9dGhpcy5DWChhKQpyZXR1cm4gc319LApDWDpmdW5j
dGlvbihhKXt2YXIgdD10aGlzLmQKaWYodD09bnVsbClyZXR1cm4hMQpyZXR1cm4gdGhpcy5GaCh0aGlz
LkJ0KHQsSi5oZihhKSYweDNmZmZmZmYpLGEpPj0wfSwKcTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixx
LHA9dGhpcyxvPW51bGwKaWYodHlwZW9mIGI9PSJzdHJpbmciKXt0PXAuYgppZih0PT1udWxsKXJldHVy
biBvCnM9cC5qMih0LGIpCnI9cz09bnVsbD9vOnMuYgpyZXR1cm4gcn1lbHNlIGlmKHR5cGVvZiBiPT0i
bnVtYmVyIiYmKGImMHgzZmZmZmZmKT09PWIpe3E9cC5jCmlmKHE9PW51bGwpcmV0dXJuIG8Kcz1wLmoy
KHEsYikKcj1zPT1udWxsP286cy5iCnJldHVybiByfWVsc2UgcmV0dXJuIHAuYWEoYil9LAphYTpmdW5j
dGlvbihhKXt2YXIgdCxzLHI9dGhpcy5kCmlmKHI9PW51bGwpcmV0dXJuIG51bGwKdD10aGlzLkJ0KHIs
Si5oZihhKSYweDNmZmZmZmYpCnM9dGhpcy5GaCh0LGEpCmlmKHM8MClyZXR1cm4gbnVsbApyZXR1cm4g
dFtzXS5ifSwKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG49dGhpcyxtPUguTGgobikK
bS5kLmIoYikKbS5jaFsxXS5iKGMpCmlmKHR5cGVvZiBiPT0ic3RyaW5nIil7dD1uLmIKbi5FSCh0PT1u
dWxsP24uYj1uLnpLKCk6dCxiLGMpfWVsc2UgaWYodHlwZW9mIGI9PSJudW1iZXIiJiYoYiYweDNmZmZm
ZmYpPT09Yil7cz1uLmMKbi5FSChzPT1udWxsP24uYz1uLnpLKCk6cyxiLGMpfWVsc2V7cj1uLmQKaWYo
cj09bnVsbClyPW4uZD1uLnpLKCkKcT1KLmhmKGIpJjB4M2ZmZmZmZgpwPW4uQnQocixxKQppZihwPT1u
dWxsKW4uRUkocixxLFtuLkhuKGIsYyldKQplbHNle289bi5GaChwLGIpCmlmKG8+PTApcFtvXS5iPWMK
ZWxzZSBwLnB1c2gobi5IbihiLGMpKX19fSwKSzpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj10aGlzCkgu
TGgocikuQygifigxLDIpIikuYihiKQp0PXIuZQpzPXIucgpmb3IoO3QhPW51bGw7KXtiLiQyKHQuYSx0
LmIpCmlmKHMhPT1yLnIpdGhyb3cgSC5iKFAuYTQocikpCnQ9dC5jfX0sCkVIOmZ1bmN0aW9uKGEsYixj
KXt2YXIgdCxzPXRoaXMscj1ILkxoKHMpCnIuZC5iKGIpCnIuY2hbMV0uYihjKQp0PXMuajIoYSxiKQpp
Zih0PT1udWxsKXMuRUkoYSxiLHMuSG4oYixjKSkKZWxzZSB0LmI9Y30sCmtzOmZ1bmN0aW9uKCl7dGhp
cy5yPXRoaXMucisxJjY3MTA4ODYzfSwKSG46ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPXRoaXMscj1ILkxo
KHMpLHE9bmV3IEguZGIoci5kLmIoYSksci5jaFsxXS5iKGIpKQppZihzLmU9PW51bGwpcy5lPXMuZj1x
CmVsc2V7dD1zLmYKcS5kPXQKcy5mPXQuYz1xfSsrcy5hCnMua3MoKQpyZXR1cm4gcX0sCkZoOmZ1bmN0
aW9uKGEsYil7dmFyIHQscwppZihhPT1udWxsKXJldHVybi0xCnQ9YS5sZW5ndGgKZm9yKHM9MDtzPHQ7
KytzKWlmKEouUk0oYVtzXS5hLGIpKXJldHVybiBzCnJldHVybi0xfSwKdzpmdW5jdGlvbihhKXtyZXR1
cm4gUC5uTyh0aGlzKX0sCmoyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbYl19LApCdDpmdW5jdGlvbihh
LGIpe3JldHVybiBhW2JdfSwKRUk6ZnVuY3Rpb24oYSxiLGMpe2FbYl09Y30sCnJuOmZ1bmN0aW9uKGEs
Yil7ZGVsZXRlIGFbYl19LApYdTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmoyKGEsYikhPW51bGx9
LAp6SzpmdW5jdGlvbigpe3ZhciB0PSI8bm9uLWlkZW50aWZpZXIta2V5PiIscz1PYmplY3QuY3JlYXRl
KG51bGwpCnRoaXMuRUkocyx0LHMpCnRoaXMucm4ocyx0KQpyZXR1cm4gc30sCiRpRm86MX0KSC5kYi5w
cm90b3R5cGU9e30KSC5pNS5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmF9
LApna3o6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hLHM9bmV3IEguTjYodCx0LnIsdGhpcy4kdGkuQygi
TjY8MT4iKSkKcy5jPXQuZQpyZXR1cm4gc319CkguTjYucHJvdG90eXBlPXsKZ2w6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5kfSwKRjpmdW5jdGlvbigpe3ZhciB0PXRoaXMscz10LmEKaWYodC5iIT09cy5yKXRo
cm93IEguYihQLmE0KHMpKQplbHNle3M9dC5jCmlmKHM9PW51bGwpe3Quc3FZKG51bGwpCnJldHVybiEx
fWVsc2V7dC5zcVkocy5hKQp0LmM9dC5jLmMKcmV0dXJuITB9fX0sCnNxWTpmdW5jdGlvbihhKXt0aGlz
LmQ9dGhpcy4kdGkuZC5iKGEpfSwKJGlBbjoxfQpILmRDLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEp
e3JldHVybiB0aGlzLmEoYSl9LAokUzo0fQpILndOLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7
cmV0dXJuIHRoaXMuYShhLGIpfSwKJFM6MjJ9CkguVlgucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7
cmV0dXJuIHRoaXMuYShILnkoYSkpfSwKJFM6Mzh9CkguVlIucHJvdG90eXBlPXsKdzpmdW5jdGlvbihh
KXtyZXR1cm4iUmVnRXhwLyIrdGhpcy5hKyIvIit0aGlzLmIuZmxhZ3N9LApnSGM6ZnVuY3Rpb24oKXt2
YXIgdD10aGlzLHM9dC5jCmlmKHMhPW51bGwpcmV0dXJuIHMKcz10LmIKcmV0dXJuIHQuYz1ILnY0KHQu
YSxzLm11bHRpbGluZSwhcy5pZ25vcmVDYXNlLHMudW5pY29kZSxzLmRvdEFsbCwhMCl9LApkZDpmdW5j
dGlvbihhLGIpe3JldHVybiBuZXcgSC5LVyh0aGlzLGIsMCl9LApVWjpmdW5jdGlvbihhLGIpe3ZhciB0
LHM9dGhpcy5nSGMoKQpzLmxhc3RJbmRleD1iCnQ9cy5leGVjKGEpCmlmKHQ9PW51bGwpcmV0dXJuIG51
bGwKcmV0dXJuIG5ldyBILkVLKHQpfSwKJGl2WDoxLAokaXdMOjF9CkguRUsucHJvdG90eXBlPXsKcTpm
dW5jdGlvbihhLGIpe3ZhciB0CkguU2MoYikKdD10aGlzLmIKaWYoYj49dC5sZW5ndGgpcmV0dXJuIEgu
T0godCxiKQpyZXR1cm4gdFtiXX0sCiRpT2Q6MSwKJGlpYjoxfQpILktXLnByb3RvdHlwZT17Cmdrejpm
dW5jdGlvbihhKXtyZXR1cm4gbmV3IEguUGIodGhpcy5hLHRoaXMuYix0aGlzLmMpfX0KSC5QYi5wcm90
b3R5cGU9ewpnbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmR9LApGOmZ1bmN0aW9uKCl7dmFyIHQscyxy
LHEscD10aGlzLG89cC5iCmlmKG89PW51bGwpcmV0dXJuITEKdD1wLmMKaWYodDw9by5sZW5ndGgpe3M9
cC5hCnI9cy5VWihvLHQpCmlmKHIhPW51bGwpe3AuZD1yCm89ci5iCnQ9by5pbmRleApxPXQrb1swXS5s
ZW5ndGgKaWYodD09PXEpe2lmKHMuYi51bmljb2RlKXtvPXAuYwp0PW8rMQpzPXAuYgppZih0PHMubGVu
Z3RoKXtvPUouclkocykubShzLG8pCmlmKG8+PTU1Mjk2JiZvPD01NjMxOSl7bz1DLnhCLm0ocyx0KQpv
PW8+PTU2MzIwJiZvPD01NzM0M31lbHNlIG89ITF9ZWxzZSBvPSExfWVsc2Ugbz0hMQpxPShvP3ErMTpx
KSsxfXAuYz1xCnJldHVybiEwfX1wLmI9cC5kPW51bGwKcmV0dXJuITF9LAokaUFuOjF9CkgudFEucHJv
dG90eXBlPXsKcTpmdW5jdGlvbihhLGIpe0guU2MoYikKaWYoYiE9PTApSC52aChQLngoYixudWxsKSkK
cmV0dXJuIHRoaXMuY30sCiRpT2Q6MX0KSC51bi5wcm90b3R5cGU9ewpna3o6ZnVuY3Rpb24oYSl7cmV0
dXJuIG5ldyBILlNkKHRoaXMuYSx0aGlzLmIsdGhpcy5jKX19CkguU2QucHJvdG90eXBlPXsKRjpmdW5j
dGlvbigpe3ZhciB0LHMscj10aGlzLHE9ci5jLHA9ci5iLG89cC5sZW5ndGgsbj1yLmEsbT1uLmxlbmd0
aAppZihxK28+bSl7ci5kPW51bGwKcmV0dXJuITF9dD1uLmluZGV4T2YocCxxKQppZih0PDApe3IuYz1t
KzEKci5kPW51bGwKcmV0dXJuITF9cz10K28Kci5kPW5ldyBILnRRKHQscCkKci5jPXM9PT1yLmM/cysx
OnMKcmV0dXJuITB9LApnbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmR9LAokaUFuOjF9CkguRVQucHJv
dG90eXBlPXskaUVUOjEsJGlBUzoxfQpILmIwLnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVy
biBhLmxlbmd0aH0sCiRpWGo6MX0KSC5EZy5wcm90b3R5cGU9ewpxOmZ1bmN0aW9uKGEsYil7SC5TYyhi
KQpILm9kKGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19LApZOmZ1bmN0aW9uKGEsYixjKXtILklnKGMp
Ckgub2QoYixhLGEubGVuZ3RoKQphW2JdPWN9LAokaWNYOjEsCiRpek06MX0KSC5QZy5wcm90b3R5cGU9
ewpZOmZ1bmN0aW9uKGEsYixjKXtILlNjKGMpCkgub2QoYixhLGEubGVuZ3RoKQphW2JdPWN9LAokaWNY
OjEsCiRpek06MX0KSC54ai5wcm90b3R5cGU9ewpxOmZ1bmN0aW9uKGEsYil7SC5TYyhiKQpILm9kKGIs
YSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19fQpILmRFLnByb3RvdHlwZT17CnE6ZnVuY3Rpb24oYSxiKXtI
LlNjKGIpCkgub2QoYixhLGEubGVuZ3RoKQpyZXR1cm4gYVtiXX19CkguWkEucHJvdG90eXBlPXsKcTpm
dW5jdGlvbihhLGIpe0guU2MoYikKSC5vZChiLGEsYS5sZW5ndGgpCnJldHVybiBhW2JdfX0KSC53Zi5w
cm90b3R5cGU9ewpxOmZ1bmN0aW9uKGEsYil7SC5TYyhiKQpILm9kKGIsYSxhLmxlbmd0aCkKcmV0dXJu
IGFbYl19fQpILlBxLnByb3RvdHlwZT17CnE6ZnVuY3Rpb24oYSxiKXtILlNjKGIpCkgub2QoYixhLGEu
bGVuZ3RoKQpyZXR1cm4gYVtiXX19CkguZUUucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJu
IGEubGVuZ3RofSwKcTpmdW5jdGlvbihhLGIpe0guU2MoYikKSC5vZChiLGEsYS5sZW5ndGgpCnJldHVy
biBhW2JdfX0KSC5WNi5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGh9LApx
OmZ1bmN0aW9uKGEsYil7SC5TYyhiKQpILm9kKGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19LAokaVY2
OjEsCiRpbjY6MX0KSC5SRy5wcm90b3R5cGU9e30KSC5WUC5wcm90b3R5cGU9e30KSC5XQi5wcm90b3R5
cGU9e30KSC5aRy5wcm90b3R5cGU9e30KSC5KYy5wcm90b3R5cGU9ewpDOmZ1bmN0aW9uKGEpe3JldHVy
biBILmNFKHYudHlwZVVuaXZlcnNlLHRoaXMsYSl9LApLcTpmdW5jdGlvbihhKXtyZXR1cm4gSC52NSh2
LnR5cGVVbml2ZXJzZSx0aGlzLGEpfX0KSC5HLnByb3RvdHlwZT17fQpILnU5LnByb3RvdHlwZT17Cnc6
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX19CkguaHoucHJvdG90eXBlPXt9CkguaU0ucHJvdG90eXBl
PXt9ClAudGgucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hLHM9dC5hCnQuYT1u
dWxsCnMuJDAoKX0sCiRTOjEyfQpQLmhhLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHMK
dGhpcy5hLmE9dS5NLmIoYSkKdD10aGlzLmIKcz10aGlzLmMKdC5maXJzdENoaWxkP3QucmVtb3ZlQ2hp
bGQocyk6dC5hcHBlbmRDaGlsZChzKX0sCiRTOjM2fQpQLlZzLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9u
KCl7dGhpcy5hLiQwKCl9LAokQzoiJDAiLAokUjowLAokUzowfQpQLkZ0LnByb3RvdHlwZT17CiQwOmZ1
bmN0aW9uKCl7dGhpcy5hLiQwKCl9LAokQzoiJDAiLAokUjowLAokUzowfQpQLlczLnByb3RvdHlwZT17
CkNZOmZ1bmN0aW9uKGEsYil7aWYoc2VsZi5zZXRUaW1lb3V0IT1udWxsKXNlbGYuc2V0VGltZW91dChI
LnRSKG5ldyBQLnlIKHRoaXMsYiksMCksYSkKZWxzZSB0aHJvdyBILmIoUC5MNCgiYHNldFRpbWVvdXQo
KWAgbm90IGZvdW5kLiIpKX19ClAueUgucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXt0aGlzLmIuJDAo
KX0sCiRDOiIkMCIsCiRSOjAsCiRTOjJ9ClAuUGYucHJvdG90eXBlPXsKdzA6ZnVuY3Rpb24oYSxiKXt2
YXIgdAppZihhPT1udWxsKWE9bmV3IFAubigpCnQ9dGhpcy5hCmlmKHQuYSE9PTApdGhyb3cgSC5iKFAu
UFYoIkZ1dHVyZSBhbHJlYWR5IGNvbXBsZXRlZCIpKQp0Lk5rKGEsYil9LApwbTpmdW5jdGlvbihhKXty
ZXR1cm4gdGhpcy53MChhLG51bGwpfX0KUC5aZi5wcm90b3R5cGU9e30KUC5GZS5wcm90b3R5cGU9ewpI
UjpmdW5jdGlvbihhKXtpZigodGhpcy5jJjE1KSE9PTYpcmV0dXJuITAKcmV0dXJuIHRoaXMuYi5iLmJ2
KHUuYWwuYih0aGlzLmQpLGEuYSx1LmNKLHUuSyl9LApLdzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmUs
cz11Lnoscj11LksscT10aGlzLiR0aS5DKCIyLyIpLHA9dGhpcy5iLmIKaWYodS5ZLmModCkpcmV0dXJu
IHEuYihwLnJwKHQsYS5hLGEuYixzLHIsdS5sKSkKZWxzZSByZXR1cm4gcS5iKHAuYnYodS55LmIodCks
YS5hLHMscikpfX0KUC52cy5wcm90b3R5cGU9ewpTcTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHE9
dGhpcy4kdGkKcS5LcShjKS5DKCIxLygyKSIpLmIoYSkKdD0kLlgzCmlmKHQhPT1DLk5VKXtjLkMoIkA8
MC8+IikuS3EocS5kKS5DKCIxKDIpIikuYihhKQppZihiIT1udWxsKWI9UC5WSChiLHQpfXM9bmV3IFAu
dnMoJC5YMyxjLkMoInZzPDA+IikpCnI9Yj09bnVsbD8xOjMKdGhpcy54ZihuZXcgUC5GZShzLHIsYSxi
LHEuQygiQDwxPiIpLktxKGMpLkMoIkZlPDEsMj4iKSkpCnJldHVybiBzfSwKVzc6ZnVuY3Rpb24oYSxi
KXtyZXR1cm4gdGhpcy5TcShhLG51bGwsYil9LApPQTpmdW5jdGlvbihhKXt2YXIgdCxzLHIKdS5iZi5i
KG51bGwpCnQ9dGhpcy4kdGkKcz0kLlgzCnI9bmV3IFAudnMocyx0KQppZihzIT09Qy5OVSlhPVAuVkgo
YSxzKQp0aGlzLnhmKG5ldyBQLkZlKHIsMixudWxsLGEsdC5DKCJAPDE+IikuS3EodC5kKS5DKCJGZTwx
LDI+IikpKQpyZXR1cm4gcn0sCnhmOmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcyxyPXMuYQppZihyPD0x
KXthLmE9dS54LmIocy5jKQpzLmM9YX1lbHNle2lmKHI9PT0yKXt0PXUuXy5iKHMuYykKcj10LmEKaWYo
cjw0KXt0LnhmKGEpCnJldHVybn1zLmE9cgpzLmM9dC5jfVAuVGsobnVsbCxudWxsLHMuYix1Lk0uYihu
ZXcgUC5kYShzLGEpKSl9fSwKalE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvPXRoaXMsbj17fQpu
LmE9YQppZihhPT1udWxsKXJldHVybgp0PW8uYQppZih0PD0xKXtzPXUueC5iKG8uYykKcj1vLmM9YQpp
ZihzIT1udWxsKXtmb3IoO3E9ci5hLHEhPW51bGw7cj1xKTtyLmE9c319ZWxzZXtpZih0PT09Mil7cD11
Ll8uYihvLmMpCnQ9cC5hCmlmKHQ8NCl7cC5qUShhKQpyZXR1cm59by5hPXQKby5jPXAuY31uLmE9by5O
OChhKQpQLlRrKG51bGwsbnVsbCxvLmIsdS5NLmIobmV3IFAub1EobixvKSkpfX0sCmFoOmZ1bmN0aW9u
KCl7dmFyIHQ9dS54LmIodGhpcy5jKQp0aGlzLmM9bnVsbApyZXR1cm4gdGhpcy5OOCh0KX0sCk44OmZ1
bmN0aW9uKGEpe3ZhciB0LHMscgpmb3IodD1hLHM9bnVsbDt0IT1udWxsO3M9dCx0PXIpe3I9dC5hCnQu
YT1zfXJldHVybiBzfSwKSEg6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLHI9cy4kdGkKci5DKCIxLyIp
LmIoYSkKaWYoci5DKCJiODwxPiIpLmMoYSkpaWYoci5jKGEpKVAuQTkoYSxzKQplbHNlIFAuazMoYSxz
KQplbHNle3Q9cy5haCgpCnIuZC5iKGEpCnMuYT00CnMuYz1hClAuSFoocyx0KX19LApaTDpmdW5jdGlv
bihhLGIpe3ZhciB0LHM9dGhpcwp1LmwuYihiKQp0PXMuYWgoKQpzLmE9OApzLmM9bmV3IFAuQ3coYSxi
KQpQLkhaKHMsdCl9LApYZjpmdW5jdGlvbihhKXt2YXIgdD10aGlzLHM9dC4kdGkKcy5DKCIxLyIpLmIo
YSkKaWYocy5DKCJiODwxPiIpLmMoYSkpe3QuY1UoYSkKcmV0dXJufXQuYT0xClAuVGsobnVsbCxudWxs
LHQuYix1Lk0uYihuZXcgUC5ySCh0LGEpKSl9LApjVTpmdW5jdGlvbihhKXt2YXIgdD10aGlzLHM9dC4k
dGkKcy5DKCJiODwxPiIpLmIoYSkKaWYocy5jKGEpKXtpZihhLmdBVCgpKXt0LmE9MQpQLlRrKG51bGws
bnVsbCx0LmIsdS5NLmIobmV3IFAuS0YodCxhKSkpfWVsc2UgUC5BOShhLHQpCnJldHVybn1QLmszKGEs
dCl9LApOazpmdW5jdGlvbihhLGIpe3RoaXMuYT0xClAuVGsobnVsbCxudWxsLHRoaXMuYix1Lk0uYihu
ZXcgUC5aTCh0aGlzLGEsYikpKX0sCiRpYjg6MX0KUC5kYS5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigp
e1AuSFoodGhpcy5hLHRoaXMuYil9LAokUzowfQpQLm9RLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7
UC5IWih0aGlzLmIsdGhpcy5hLmEpfSwKJFM6MH0KUC5wVi5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihh
KXt2YXIgdD10aGlzLmEKdC5hPTAKdC5ISChhKX0sCiRTOjEyfQpQLlU3LnByb3RvdHlwZT17CiQyOmZ1
bmN0aW9uKGEsYil7dS5sLmIoYikKdGhpcy5hLlpMKGEsYil9LAokMTpmdW5jdGlvbihhKXtyZXR1cm4g
dGhpcy4kMihhLG51bGwpfSwKJEM6IiQyIiwKJEQ6ZnVuY3Rpb24oKXtyZXR1cm5bbnVsbF19LAokUzoy
NX0KUC52ci5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe3RoaXMuYS5aTCh0aGlzLmIsdGhpcy5jKX0s
CiRTOjB9ClAuckgucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmEscz10LiR0aS5k
LmIodGhpcy5iKSxyPXQuYWgoKQp0LmE9NAp0LmM9cwpQLkhaKHQscil9LAokUzowfQpQLktGLnByb3Rv
dHlwZT17CiQwOmZ1bmN0aW9uKCl7UC5BOSh0aGlzLmIsdGhpcy5hKX0sCiRTOjB9ClAuWkwucHJvdG90
eXBlPXsKJDA6ZnVuY3Rpb24oKXt0aGlzLmEuWkwodGhpcy5iLHRoaXMuYyl9LAokUzowfQpQLlJULnBy
b3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscCxvLG49dGhpcyxtPW51bGwKdHJ5e3I9
bi5jCm09ci5iLmIuenoodS5mTy5iKHIuZCksdS56KX1jYXRjaChxKXt0PUguUnUocSkKcz1ILnRzKHEp
CmlmKG4uZCl7cj11Lm4uYihuLmEuYS5jKS5hCnA9dApwPXI9PW51bGw/cD09bnVsbDpyPT09cApyPXB9
ZWxzZSByPSExCnA9bi5iCmlmKHIpcC5iPXUubi5iKG4uYS5hLmMpCmVsc2UgcC5iPW5ldyBQLkN3KHQs
cykKcC5hPSEwCnJldHVybn1pZih1LmMuYyhtKSl7aWYobSBpbnN0YW5jZW9mIFAudnMmJm0uYT49NCl7
aWYobS5hPT09OCl7cj1uLmIKci5iPXUubi5iKG0uYykKci5hPSEwfXJldHVybn1vPW4uYS5hCnI9bi5i
CnIuYj1tLlc3KG5ldyBQLmpaKG8pLHUueikKci5hPSExfX0sCiRTOjJ9ClAualoucHJvdG90eXBlPXsK
JDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX0sCiRTOjM0fQpQLnJxLnByb3RvdHlwZT17CiQwOmZ1
bmN0aW9uKCl7dmFyIHQscyxyLHEscCxvLG4sbT10aGlzCnRyeXtyPW0uYgpxPXIuJHRpCnA9cS5kCm89
cC5iKG0uYykKbS5hLmI9ci5iLmIuYnYocS5DKCIyLygxKSIpLmIoci5kKSxvLHEuQygiMi8iKSxwKX1j
YXRjaChuKXt0PUguUnUobikKcz1ILnRzKG4pCnI9bS5hCnIuYj1uZXcgUC5Ddyh0LHMpCnIuYT0hMH19
LAokUzoyfQpQLlJXLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscCxvLG4sbSxs
PXRoaXMKdHJ5e3Q9dS5uLmIobC5hLmEuYykKcT1sLmMKaWYoSC5vVChxLkhSKHQpKSYmcS5lIT1udWxs
KXtwPWwuYgpwLmI9cS5Ldyh0KQpwLmE9ITF9fWNhdGNoKG8pe3M9SC5SdShvKQpyPUgudHMobykKcT11
Lm4uYihsLmEuYS5jKQpwPXEuYQpuPXMKbT1sLmIKaWYocD09bnVsbD9uPT1udWxsOnA9PT1uKW0uYj1x
CmVsc2UgbS5iPW5ldyBQLkN3KHMscikKbS5hPSEwfX0sCiRTOjJ9ClAuT00ucHJvdG90eXBlPXt9ClAu
cWgucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7dmFyIHQscyxyPXRoaXMscT17fSxwPW5ldyBQLnZz
KCQuWDMsdS5mSikKcS5hPTAKdD1ILkxoKHIpCnM9dC5DKCJ+KDEpIikuYihuZXcgUC5CNShxLHIpKQp1
Lk0uYihuZXcgUC5QSShxLHApKQpXLkpFKHIuYSxyLmIscywhMSx0LmQpCnJldHVybiBwfX0KUC5CNS5w
cm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtILkxoKHRoaXMuYikuZC5iKGEpOysrdGhpcy5hLmF9LAok
UzpmdW5jdGlvbigpe3JldHVybiBILkxoKHRoaXMuYikuQygiYzgoMSkiKX19ClAuUEkucHJvdG90eXBl
PXsKJDA6ZnVuY3Rpb24oKXt0aGlzLmIuSEgodGhpcy5hLmEpfSwKJFM6MH0KUC5NTy5wcm90b3R5cGU9
e30KUC5rVC5wcm90b3R5cGU9e30KUC5Ddy5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiBI
LmQodGhpcy5hKX0sCiRpWFM6MX0KUC5tMC5wcm90b3R5cGU9eyRpSkI6MX0KUC5wSy5wcm90b3R5cGU9
ewokMDpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcy5hLHI9cy5hCnM9cj09bnVsbD9zLmE9bmV3IFAubigp
OnIKcj10aGlzLmIKaWYocj09bnVsbCl0aHJvdyBILmIocykKdD1ILmIocykKdC5zdGFjaz1yLncoMCkK
dGhyb3cgdH0sCiRTOjB9ClAuSmkucHJvdG90eXBlPXsKYkg6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9
bnVsbAp1Lk0uYihhKQp0cnl7aWYoQy5OVT09PSQuWDMpe2EuJDAoKQpyZXR1cm59UC5UOChxLHEsdGhp
cyxhLHUuSCl9Y2F0Y2gocil7dD1ILlJ1KHIpCnM9SC50cyhyKQpQLkwyKHEscSx0aGlzLHQsdS5sLmIo
cykpfX0sCkRsOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscT1udWxsCmMuQygifigwKSIpLmIoYSkK
Yy5iKGIpCnRyeXtpZihDLk5VPT09JC5YMyl7YS4kMShiKQpyZXR1cm59UC55dihxLHEsdGhpcyxhLGIs
dS5ILGMpfWNhdGNoKHIpe3Q9SC5SdShyKQpzPUgudHMocikKUC5MMihxLHEsdGhpcyx0LHUubC5iKHMp
KX19LApSVDpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgUC5oaih0aGlzLGIuQygiMCgpIikuYihhKSxi
KX0sCkdZOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5WcCh0aGlzLHUuTS5iKGEpKX0sClB5OmZ1bmN0
aW9uKGEsYil7cmV0dXJuIG5ldyBQLk9SKHRoaXMsYi5DKCJ+KDApIikuYihhKSxiKX0sCnE6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gbnVsbH0sCnp6OmZ1bmN0aW9uKGEsYil7Yi5DKCIwKCkiKS5iKGEpCmlmKCQu
WDM9PT1DLk5VKXJldHVybiBhLiQwKCkKcmV0dXJuIFAuVDgobnVsbCxudWxsLHRoaXMsYSxiKX0sCmJ2
OmZ1bmN0aW9uKGEsYixjLGQpe2MuQygiQDwwPiIpLktxKGQpLkMoIjEoMikiKS5iKGEpCmQuYihiKQpp
ZigkLlgzPT09Qy5OVSlyZXR1cm4gYS4kMShiKQpyZXR1cm4gUC55dihudWxsLG51bGwsdGhpcyxhLGIs
YyxkKX0sCnJwOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXtkLkMoIkA8MD4iKS5LcShlKS5LcShmKS5DKCIx
KDIsMykiKS5iKGEpCmUuYihiKQpmLmIoYykKaWYoJC5YMz09PUMuTlUpcmV0dXJuIGEuJDIoYixjKQpy
ZXR1cm4gUC5ReChudWxsLG51bGwsdGhpcyxhLGIsYyxkLGUsZil9fQpQLmhqLnByb3RvdHlwZT17CiQw
OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS56eih0aGlzLmIsdGhpcy5jKX0sCiRTOmZ1bmN0aW9uKCl7
cmV0dXJuIHRoaXMuYy5DKCIwKCkiKX19ClAuVnAucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXtyZXR1
cm4gdGhpcy5hLmJIKHRoaXMuYil9LAokUzoyfQpQLk9SLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEp
e3ZhciB0PXRoaXMuYwpyZXR1cm4gdGhpcy5hLkRsKHRoaXMuYix0LmIoYSksdCl9LAokUzpmdW5jdGlv
bigpe3JldHVybiB0aGlzLmMuQygifigwKSIpfX0KUC5iNi5wcm90b3R5cGU9ewpna3o6ZnVuY3Rpb24o
YSl7dmFyIHQ9dGhpcyxzPW5ldyBQLmxtKHQsdC5yLEguTGgodCkuQygibG08MT4iKSkKcy5jPXQuZQpy
ZXR1cm4gc30sCmdBOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmF9LAp0ZzpmdW5jdGlvbihhLGIpe3Zh
ciB0LHMKaWYodHlwZW9mIGI9PSJzdHJpbmciJiZiIT09Il9fcHJvdG9fXyIpe3Q9dGhpcy5iCmlmKHQ9
PW51bGwpcmV0dXJuITEKcmV0dXJuIHUuSi5iKHRbYl0pIT1udWxsfWVsc2V7cz10aGlzLlBSKGIpCnJl
dHVybiBzfX0sClBSOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuZAppZih0PT1udWxsKXJldHVybiExCnJl
dHVybiB0aGlzLkRGKHRbdGhpcy5OKGEpXSxhKT49MH0sCmk6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHI9
dGhpcwpILkxoKHIpLmQuYihiKQppZih0eXBlb2YgYj09InN0cmluZyImJmIhPT0iX19wcm90b19fIil7
dD1yLmIKcmV0dXJuIHIuYlEodD09bnVsbD9yLmI9UC5UMigpOnQsYil9ZWxzZSBpZih0eXBlb2YgYj09
Im51bWJlciImJihiJjEwNzM3NDE4MjMpPT09Yil7cz1yLmMKcmV0dXJuIHIuYlEocz09bnVsbD9yLmM9
UC5UMigpOnMsYil9ZWxzZSByZXR1cm4gci5CNyhiKX0sCkI3OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixx
PXRoaXMKSC5MaChxKS5kLmIoYSkKdD1xLmQKaWYodD09bnVsbCl0PXEuZD1QLlQyKCkKcz1xLk4oYSkK
cj10W3NdCmlmKHI9PW51bGwpdFtzXT1bcS55byhhKV0KZWxzZXtpZihxLkRGKHIsYSk+PTApcmV0dXJu
ITEKci5wdXNoKHEueW8oYSkpfXJldHVybiEwfSwKUjpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGIhPT0i
X19wcm90b19fIilyZXR1cm4gdGhpcy5MKHRoaXMuYixiKQplbHNle3Q9dGhpcy5xZyhiKQpyZXR1cm4g
dH19LApxZzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPXRoaXMsbz1wLmQKaWYobz09bnVsbClyZXR1
cm4hMQp0PXAuTihhKQpzPW9bdF0Kcj1wLkRGKHMsYSkKaWYocjwwKXJldHVybiExCnE9cy5zcGxpY2Uo
ciwxKVswXQppZigwPT09cy5sZW5ndGgpZGVsZXRlIG9bdF0KcC5HUyhxKQpyZXR1cm4hMH0sCmJROmZ1
bmN0aW9uKGEsYil7SC5MaCh0aGlzKS5kLmIoYikKaWYodS5KLmIoYVtiXSkhPW51bGwpcmV0dXJuITEK
YVtiXT10aGlzLnlvKGIpCnJldHVybiEwfSwKTDpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PW51bGwp
cmV0dXJuITEKdD11LkouYihhW2JdKQppZih0PT1udWxsKXJldHVybiExCnRoaXMuR1ModCkKZGVsZXRl
IGFbYl0KcmV0dXJuITB9LApTOmZ1bmN0aW9uKCl7dGhpcy5yPTEwNzM3NDE4MjMmdGhpcy5yKzF9LAp5
bzpmdW5jdGlvbihhKXt2YXIgdCxzPXRoaXMscj1uZXcgUC5ibihILkxoKHMpLmQuYihhKSkKaWYocy5l
PT1udWxsKXMuZT1zLmY9cgplbHNle3Q9cy5mCnIuYz10CnMuZj10LmI9cn0rK3MuYQpzLlMoKQpyZXR1
cm4gcn0sCkdTOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMscz1hLmMscj1hLmIKaWYocz09bnVsbCl0LmU9
cgplbHNlIHMuYj1yCmlmKHI9PW51bGwpdC5mPXMKZWxzZSByLmM9czstLXQuYQp0LlMoKX0sCk46ZnVu
Y3Rpb24oYSl7cmV0dXJuIEouaGYoYSkmMTA3Mzc0MTgyM30sCkRGOmZ1bmN0aW9uKGEsYil7dmFyIHQs
cwppZihhPT1udWxsKXJldHVybi0xCnQ9YS5sZW5ndGgKZm9yKHM9MDtzPHQ7KytzKWlmKEouUk0oYVtz
XS5hLGIpKXJldHVybiBzCnJldHVybi0xfX0KUC5ibi5wcm90b3R5cGU9e30KUC5sbS5wcm90b3R5cGU9
ewpnbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmR9LApGOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxzPXQu
YQppZih0LmIhPT1zLnIpdGhyb3cgSC5iKFAuYTQocykpCmVsc2V7cz10LmMKaWYocz09bnVsbCl7dC5z
aihudWxsKQpyZXR1cm4hMX1lbHNle3Quc2oodC4kdGkuZC5iKHMuYSkpCnQuYz10LmMuYgpyZXR1cm4h
MH19fSwKc2o6ZnVuY3Rpb24oYSl7dGhpcy5kPXRoaXMuJHRpLmQuYihhKX0sCiRpQW46MX0KUC5tVy5w
cm90b3R5cGU9e30KUC5MVS5wcm90b3R5cGU9eyRpY1g6MSwkaXpNOjF9ClAubEQucHJvdG90eXBlPXsK
Z2t6OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSC5hNyhhLHRoaXMuZ0EoYSksSC56SyhhKS5DKCJhNzxs
RC5FPiIpKX0sCkU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5xKGEsYil9LApLOmZ1bmN0aW9uKGEs
Yil7dmFyIHQscwpILnpLKGEpLkMoIn4obEQuRSkiKS5iKGIpCnQ9dGhpcy5nQShhKQpmb3Iocz0wO3M8
dDsrK3Mpe2IuJDEodGhpcy5xKGEscykpCmlmKHQhPT10aGlzLmdBKGEpKXRocm93IEguYihQLmE0KGEp
KX19LApFMjpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC56SyhhKQpyZXR1cm4gbmV3IEguQTgoYSx0Lktx
KGMpLkMoIjEobEQuRSkiKS5iKGIpLHQuQygiQDxsRC5FPiIpLktxKGMpLkMoIkE4PDEsMj4iKSl9LApk
dTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdApILnpLKGEpLkMoImxELkUiKS5iKGQpClAuakIoYixjLHRo
aXMuZ0EoYSkpCmZvcih0PWI7dDxjOysrdCl0aGlzLlkoYSx0LGQpfSwKdzpmdW5jdGlvbihhKXtyZXR1
cm4gUC5XRShhLCJbIiwiXSIpfX0KUC5pbC5wcm90b3R5cGU9e30KUC5yYS5wcm90b3R5cGU9ewokMjpm
dW5jdGlvbihhLGIpe3ZhciB0LHM9dGhpcy5hCmlmKCFzLmEpdGhpcy5iLmErPSIsICIKcy5hPSExCnM9
dGhpcy5iCnQ9cy5hKz1ILmQoYSkKcy5hPXQrIjogIgpzLmErPUguZChiKX0sCiRTOjF9ClAuWWsucHJv
dG90eXBlPXsKSzpmdW5jdGlvbihhLGIpe3ZhciB0LHMKSC5MaCh0aGlzKS5DKCJ+KFlrLkssWWsuViki
KS5iKGIpCmZvcih0PUouSVQodGhpcy5nVigpKTt0LkYoKTspe3M9dC5nbCgpCmIuJDIocyx0aGlzLnEo
MCxzKSl9fSwKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIEouSG0odGhpcy5nVigpKX0sCnc6ZnVuY3Rpb24o
YSl7cmV0dXJuIFAubk8odGhpcyl9LAokaVowOjF9ClAuS1AucHJvdG90eXBlPXsKWTpmdW5jdGlvbihh
LGIsYyl7dmFyIHQ9SC5MaCh0aGlzKQp0LmQuYihiKQp0LmNoWzFdLmIoYykKdGhyb3cgSC5iKFAuTDQo
IkNhbm5vdCBtb2RpZnkgdW5tb2RpZmlhYmxlIG1hcCIpKX19ClAuUG4ucHJvdG90eXBlPXsKcTpmdW5j
dGlvbihhLGIpe3JldHVybiB0aGlzLmEucSgwLGIpfSwKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC5M
aCh0aGlzKQp0aGlzLmEuWSgwLHQuZC5iKGIpLHQuY2hbMV0uYihjKSl9LApLOmZ1bmN0aW9uKGEsYil7
dGhpcy5hLksoMCxILkxoKHRoaXMpLkMoIn4oMSwyKSIpLmIoYikpfSwKZ0E6ZnVuY3Rpb24oYSl7dmFy
IHQ9dGhpcy5hCnJldHVybiB0LmdBKHQpfSwKdzpmdW5jdGlvbihhKXtyZXR1cm4gSi5qKHRoaXMuYSl9
LAokaVowOjF9ClAuR2oucHJvdG90eXBlPXt9ClAubGYucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXty
ZXR1cm4gUC5XRSh0aGlzLCJ7IiwifSIpfX0KUC5Wai5wcm90b3R5cGU9eyRpY1g6MSwkaXh1OjF9ClAu
WHYucHJvdG90eXBlPXsKRlY6ZnVuY3Rpb24oYSxiKXt2YXIgdApmb3IodD1KLklUKEguTGgodGhpcyku
QygiY1g8MT4iKS5iKGIpKTt0LkYoKTspdGhpcy5pKDAsdC5nbCgpKX0sCnc6ZnVuY3Rpb24oYSl7cmV0
dXJuIFAuV0UodGhpcywieyIsIn0iKX0sCkg6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPVAucmoodGhpcyx0
aGlzLnIsSC5MaCh0aGlzKS5kKQppZighcy5GKCkpcmV0dXJuIiIKaWYoYj09PSIiKXt0PSIiCmRvIHQr
PUguZChzLmQpCndoaWxlKHMuRigpKX1lbHNle3Q9SC5kKHMuZCkKZm9yKDtzLkYoKTspdD10K2IrSC5k
KHMuZCl9cmV0dXJuIHQuY2hhckNvZGVBdCgwKT09MD90OnR9LAokaWNYOjEsCiRpeHU6MX0KUC5uWS5w
cm90b3R5cGU9e30KUC5XWS5wcm90b3R5cGU9e30KUC5SVS5wcm90b3R5cGU9e30KUC51dy5wcm90b3R5
cGU9ewpxOmZ1bmN0aW9uKGEsYil7dmFyIHQscz10aGlzLmIKaWYocz09bnVsbClyZXR1cm4gdGhpcy5j
LnEoMCxiKQplbHNlIGlmKHR5cGVvZiBiIT0ic3RyaW5nIilyZXR1cm4gbnVsbAplbHNle3Q9c1tiXQpy
ZXR1cm4gdHlwZW9mIHQ9PSJ1bmRlZmluZWQiP3RoaXMuZmIoYik6dH19LApnQTpmdW5jdGlvbihhKXty
ZXR1cm4gdGhpcy5iPT1udWxsP3RoaXMuYy5hOnRoaXMuQ2YoKS5sZW5ndGh9LApnVjpmdW5jdGlvbigp
e2lmKHRoaXMuYj09bnVsbCl7dmFyIHQ9dGhpcy5jCnJldHVybiBuZXcgSC5pNSh0LEguTGgodCkuQygi
aTU8MT4iKSl9cmV0dXJuIG5ldyBQLmk4KHRoaXMpfSwKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxy
PXRoaXMKaWYoci5iPT1udWxsKXIuYy5ZKDAsYixjKQplbHNlIGlmKHIueDQoYikpe3Q9ci5iCnRbYl09
YwpzPXIuYQppZihzPT1udWxsP3QhPW51bGw6cyE9PXQpc1tiXT1udWxsfWVsc2Ugci5YSygpLlkoMCxi
LGMpfSwKeDQ6ZnVuY3Rpb24oYSl7aWYodGhpcy5iPT1udWxsKXJldHVybiB0aGlzLmMueDQoYSkKcmV0
dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmEsYSl9LApLOmZ1bmN0
aW9uKGEsYil7dmFyIHQscyxyLHEscD10aGlzCnUuY0EuYihiKQppZihwLmI9PW51bGwpcmV0dXJuIHAu
Yy5LKDAsYikKdD1wLkNmKCkKZm9yKHM9MDtzPHQubGVuZ3RoOysrcyl7cj10W3NdCnE9cC5iW3JdCmlm
KHR5cGVvZiBxPT0idW5kZWZpbmVkIil7cT1QLlFlKHAuYVtyXSkKcC5iW3JdPXF9Yi4kMihyLHEpCmlm
KHQhPT1wLmMpdGhyb3cgSC5iKFAuYTQocCkpfX0sCkNmOmZ1bmN0aW9uKCl7dmFyIHQ9dS5qLmIodGhp
cy5jKQppZih0PT1udWxsKXQ9dGhpcy5jPUguVk0oT2JqZWN0LmtleXModGhpcy5hKSx1LnMpCnJldHVy
biB0fSwKWEs6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwLG89dGhpcwppZihvLmI9PW51bGwpcmV0dXJu
IG8uYwp0PVAuRmwodS5OLHUueikKcz1vLkNmKCkKZm9yKHI9MDtxPXMubGVuZ3RoLHI8cTsrK3Ipe3A9
c1tyXQp0LlkoMCxwLG8ucSgwLHApKX1pZihxPT09MClDLk5tLmkocyxudWxsKQplbHNlIEMuTm0uc0Eo
cywwKQpvLmE9by5iPW51bGwKcmV0dXJuIG8uYz10fSwKZmI6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoIU9i
amVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmEsYSkpcmV0dXJuIG51bGwKdD1Q
LlFlKHRoaXMuYVthXSkKcmV0dXJuIHRoaXMuYlthXT10fX0KUC5pOC5wcm90b3R5cGU9ewpnQTpmdW5j
dGlvbihhKXt2YXIgdD10aGlzLmEKcmV0dXJuIHQuZ0EodCl9LApFOmZ1bmN0aW9uKGEsYil7dmFyIHQ9
dGhpcy5hCmlmKHQuYj09bnVsbCl0PXQuZ1YoKS5FKDAsYikKZWxzZXt0PXQuQ2YoKQppZihiPDB8fGI+
PXQubGVuZ3RoKXJldHVybiBILk9IKHQsYikKdD10W2JdfXJldHVybiB0fSwKZ2t6OmZ1bmN0aW9uKGEp
e3ZhciB0PXRoaXMuYQppZih0LmI9PW51bGwpe3Q9dC5nVigpCnQ9dC5na3oodCl9ZWxzZXt0PXQuQ2Yo
KQp0PW5ldyBKLm0xKHQsdC5sZW5ndGgsSC50Nih0KS5DKCJtMTwxPiIpKX1yZXR1cm4gdH19ClAuQ1Yu
cHJvdG90eXBlPXsKeXI6ZnVuY3Rpb24oYSxhMCxhMSl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixp
LGgsZyxmLGUsZCxjLGI9IkludmFsaWQgYmFzZTY0IGVuY29kaW5nIGxlbmd0aCAiCmExPVAuakIoYTAs
YTEsYS5sZW5ndGgpCnQ9JC5WNygpCmZvcihzPWEwLHI9cyxxPW51bGwscD0tMSxvPS0xLG49MDtzPGEx
O3M9bSl7bT1zKzEKbD1DLnhCLlcoYSxzKQppZihsPT09Mzcpe2s9bSsyCmlmKGs8PWExKXtqPUgub28o
Qy54Qi5XKGEsbSkpCmk9SC5vbyhDLnhCLlcoYSxtKzEpKQpoPWoqMTYraS0oaSYyNTYpCmlmKGg9PT0z
NyloPS0xCm09a31lbHNlIGg9LTF9ZWxzZSBoPWwKaWYoMDw9aCYmaDw9MTI3KXtpZihoPDB8fGg+PXQu
bGVuZ3RoKXJldHVybiBILk9IKHQsaCkKZz10W2hdCmlmKGc+PTApe2g9Qy54Qi5tKCJBQkNERUZHSElK
S0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixnKQpp
ZihoPT09bCljb250aW51ZQpsPWh9ZWxzZXtpZihnPT09LTEpe2lmKHA8MCl7Zj1xPT1udWxsP251bGw6
cS5hLmxlbmd0aAppZihmPT1udWxsKWY9MApwPWYrKHMtcikKbz1zfSsrbgppZihsPT09NjEpY29udGlu
dWV9bD1ofWlmKGchPT0tMil7aWYocT09bnVsbClxPW5ldyBQLlJuKCIiKQpxLmErPUMueEIuTmooYSxy
LHMpCnEuYSs9SC5MdyhsKQpyPW0KY29udGludWV9fXRocm93IEguYihQLnJyKCJJbnZhbGlkIGJhc2U2
NCBkYXRhIixhLHMpKX1pZihxIT1udWxsKXtmPXEuYSs9Qy54Qi5OaihhLHIsYTEpCmU9Zi5sZW5ndGgK
aWYocD49MClQLnhNKGEsbyxhMSxwLG4sZSkKZWxzZXtkPUMuam4uelkoZS0xLDQpKzEKaWYoZD09PTEp
dGhyb3cgSC5iKFAucnIoYixhLGExKSkKZm9yKDtkPDQ7KXtmKz0iPSIKcS5hPWY7KytkfX1mPXEuYQpy
ZXR1cm4gQy54Qi5pNyhhLGEwLGExLGYuY2hhckNvZGVBdCgwKT09MD9mOmYpfWM9YTEtYTAKaWYocD49
MClQLnhNKGEsbyxhMSxwLG4sYykKZWxzZXtkPUMuam4uelkoYyw0KQppZihkPT09MSl0aHJvdyBILmIo
UC5ycihiLGEsYTEpKQppZihkPjEpYT1DLnhCLmk3KGEsYTEsYTEsZD09PTI/Ij09IjoiPSIpfXJldHVy
biBhfX0KUC5VOC5wcm90b3R5cGU9e30KUC5Vay5wcm90b3R5cGU9e30KUC53SS5wcm90b3R5cGU9e30K
UC5aaS5wcm90b3R5cGU9e30KUC5ieS5wcm90b3R5cGU9ewpwVzpmdW5jdGlvbihhLGIsYyl7dmFyIHQK
dS5lcC5iKGMpCnQ9UC5CUyhiLHRoaXMuZ0hlKCkuYSkKcmV0dXJuIHR9LApnSGU6ZnVuY3Rpb24oKXty
ZXR1cm4gQy5BM319ClAuTXgucHJvdG90eXBlPXt9ClAudTUucHJvdG90eXBlPXsKZ1pFOmZ1bmN0aW9u
KCl7cmV0dXJuIEMuUWt9fQpQLkUzLnByb3RvdHlwZT17CldKOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj1Q
LmpCKDAsbnVsbCxhLmdBKGEpKSxxPXItMAppZihxPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCkK
dD1uZXcgVWludDhBcnJheShxKjMpCnM9bmV3IFAuUncodCkKaWYocy5HeChhLDAscikhPT1yKXMuTzYo
YS5tKDAsci0xKSwwKQpyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodC5zdWJhcnJheSgwLEguck0oMCxzLmIs
dC5sZW5ndGgpKSl9fQpQLlJ3LnByb3RvdHlwZT17Ck82OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEs
cD10aGlzCmlmKChiJjY0NTEyKT09PTU2MzIwKVAuWlooYSxiKQplbHNle3Q9cC5jCnM9cC5iKysKcj1D
LmpuLkFnKDIyNCxhLkhaKDAsMTIpKQpxPXQubGVuZ3RoCmlmKHM+PXEpcmV0dXJuIEguT0godCxzKQp0
W3NdPXIKcj1wLmIrKwpzPUMuam4uQWcoMTI4LGEuSFooMCw2KS56TSgwLDYzKSkKaWYocj49cSlyZXR1
cm4gSC5PSCh0LHIpCnRbcl09cwpzPXAuYisrCnI9Qy5qbi5BZygxMjgsYS56TSgwLDYzKSkKaWYocz49
cSlyZXR1cm4gSC5PSCh0LHMpCnRbc109cgpyZXR1cm4hMX19LApHeDpmdW5jdGlvbihhLGIsYyl7dmFy
IHQscyxyLHEscCxvLG4sbT10aGlzCmlmKGIhPT1jJiZQLk1kKGEubSgwLGMtMSkpKS0tYwpmb3IodD1t
LmMscz10Lmxlbmd0aCxyPWI7cjxjOysrcil7cT1hLm0oMCxyKQppZihxLkN0KDAsMTI3KSl7cD1tLmIK
aWYocD49cylicmVhawptLmI9cCsxCkMuTkEuWSh0LHAscSl9ZWxzZSBpZihQLk1kKHEpKXtpZihtLmIr
Mz49cylicmVhawpvPXIrMQppZihtLk82KHEsYS5tKDAsbykpKXI9b31lbHNlIGlmKHEuQ3QoMCwyMDQ3
KSl7cD1tLmIKbj1wKzEKaWYobj49cylicmVhawptLmI9bgpuPUMuam4uQWcoMTkyLHEuSFooMCw2KSkK
aWYocD49cylyZXR1cm4gSC5PSCh0LHApCnRbcF09bgpuPW0uYisrCnA9Qy5qbi5BZygxMjgscS56TSgw
LDYzKSkKaWYobj49cylyZXR1cm4gSC5PSCh0LG4pCnRbbl09cH1lbHNle3A9bS5iCmlmKHArMj49cyli
cmVhawptLmI9cCsxCm49Qy5qbi5BZygyMjQscS5IWigwLDEyKSkKaWYocD49cylyZXR1cm4gSC5PSCh0
LHApCnRbcF09bgpuPW0uYisrCnA9Qy5qbi5BZygxMjgscS5IWigwLDYpLnpNKDAsNjMpKQppZihuPj1z
KXJldHVybiBILk9IKHQsbikKdFtuXT1wCnA9bS5iKysKbj1DLmpuLkFnKDEyOCxxLnpNKDAsNjMpKQpp
ZihwPj1zKXJldHVybiBILk9IKHQscCkKdFtwXT1ufX1yZXR1cm4gcn19ClAuR1kucHJvdG90eXBlPXsK
V0o6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxsCnUuTC5iKGEpCnQ9UC5reSghMSxhLDAs
bnVsbCkKaWYodCE9bnVsbClyZXR1cm4gdApzPVAuakIoMCxudWxsLEouSG0oYSkpCnI9UC5jUChhLDAs
cykKaWYocj4wKXtxPVAuSE0oYSwwLHIpCmlmKHI9PT1zKXJldHVybiBxCnA9bmV3IFAuUm4ocSkKbz1y
Cm49ITF9ZWxzZXtvPTAKcD1udWxsCm49ITB9aWYocD09bnVsbClwPW5ldyBQLlJuKCIiKQptPW5ldyBQ
LmJ6KCExLHApCm0uYz1uCm0uTUUoYSxvLHMpCmlmKG0uZT4wKXtILnZoKFAucnIoIlVuZmluaXNoZWQg
VVRGLTggb2N0ZXQgc2VxdWVuY2UiLGEscykpCnAuYSs9SC5Mdyg2NTUzMykKbS5mPW0uZT1tLmQ9MH1s
PXAuYQpyZXR1cm4gbC5jaGFyQ29kZUF0KDApPT0wP2w6bH19ClAuYnoucHJvdG90eXBlPXsKTUU6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGosaSxoPXRoaXMsZz0iQmFkIFVURi04
IGVuY29kaW5nIDB4Igp1LkwuYihhKQp0PWguZApzPWguZQpyPWguZgpoLmY9aC5lPWguZD0wCiRsYWJl
bDAkMDpmb3IocT1KLlU2KGEpLHA9aC5iLG89YjshMDtvPWopeyRsYWJlbDEkMTppZihzPjApe2Rve2lm
KG89PT1jKWJyZWFrICRsYWJlbDAkMApuPXEucShhLG8pCmlmKHR5cGVvZiBuIT09Im51bWJlciIpcmV0
dXJuIG4uek0oKQppZigobiYxOTIpIT09MTI4KXttPVAucnIoZytDLmpuLldaKG4sMTYpLGEsbykKdGhy
b3cgSC5iKG0pfWVsc2V7dD0odDw8NnxuJjYzKT4+PjA7LS1zOysrb319d2hpbGUocz4wKQptPXItMQpp
ZihtPDB8fG0+PTQpcmV0dXJuIEguT0goQy5HYixtKQppZih0PD1DLkdiW21dKXttPVAucnIoIk92ZXJs
b25nIGVuY29kaW5nIG9mIDB4IitDLmpuLldaKHQsMTYpLGEsby1yLTEpCnRocm93IEguYihtKX1pZih0
PjExMTQxMTEpe209UC5ycigiQ2hhcmFjdGVyIG91dHNpZGUgdmFsaWQgVW5pY29kZSByYW5nZTogMHgi
K0Muam4uV1oodCwxNiksYSxvLXItMSkKdGhyb3cgSC5iKG0pfWlmKCFoLmN8fHQhPT02NTI3OSlwLmEr
PUguTHcodCkKaC5jPSExfWZvcihtPW88YzttOyl7bD1QLmNQKGEsbyxjKQppZihsPjApe2guYz0hMQpr
PW8rbApwLmErPVAuSE0oYSxvLGspCmlmKGs9PT1jKWJyZWFrfWVsc2Ugaz1vCmo9aysxCm49cS5xKGEs
aykKaWYodHlwZW9mIG4hPT0ibnVtYmVyIilyZXR1cm4gbi5KKCkKaWYobjwwKXtpPVAucnIoIk5lZ2F0
aXZlIFVURi04IGNvZGUgdW5pdDogLTB4IitDLmpuLldaKC1uLDE2KSxhLGotMSkKdGhyb3cgSC5iKGkp
fWVsc2V7aWYoKG4mMjI0KT09PTE5Mil7dD1uJjMxCnM9MQpyPTEKY29udGludWUgJGxhYmVsMCQwfWlm
KChuJjI0MCk9PT0yMjQpe3Q9biYxNQpzPTIKcj0yCmNvbnRpbnVlICRsYWJlbDAkMH1pZigobiYyNDgp
PT09MjQwJiZuPDI0NSl7dD1uJjcKcz0zCnI9Mwpjb250aW51ZSAkbGFiZWwwJDB9aT1QLnJyKGcrQy5q
bi5XWihuLDE2KSxhLGotMSkKdGhyb3cgSC5iKGkpfX1icmVhayAkbGFiZWwwJDB9aWYocz4wKXtoLmQ9
dApoLmU9cwpoLmY9cn19fQpQLldGLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxy
CnUuZm8uYihhKQp0PXRoaXMuYgpzPXRoaXMuYQp0LmErPXMuYQpyPXQuYSs9SC5kKGEuYSkKdC5hPXIr
IjogIgp0LmErPVAucChiKQpzLmE9IiwgIn0sCiRTOjE3fQpQLmEyLnByb3RvdHlwZT17fQpQLmlQLnBy
b3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVsbClyZXR1cm4hMQpyZXR1cm4gYiBpbnN0
YW5jZW9mIFAuaVAmJnRoaXMuYT09PWIuYSYmITB9LApnaU86ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5h
CnJldHVybih0XkMuam4ud0codCwzMCkpJjEwNzM3NDE4MjN9LAp3OmZ1bmN0aW9uKGEpe3ZhciB0PXRo
aXMscz1QLkdxKEgudEoodCkpLHI9UC5oMChILk5TKHQpKSxxPVAuaDAoSC5qQSh0KSkscD1QLmgwKEgu
S0wodCkpLG89UC5oMChILmNoKHQpKSxuPVAuaDAoSC5KZCh0KSksbT1QLlZ4KEgubzEodCkpLGw9cysi
LSIrcisiLSIrcSsiICIrcCsiOiIrbysiOiIrbisiLiIrbQpyZXR1cm4gbH19ClAuQ1AucHJvdG90eXBl
PXt9ClAuWFMucHJvdG90eXBlPXt9ClAuQzYucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXt2YXIgdD10
aGlzLmEKaWYodCE9bnVsbClyZXR1cm4iQXNzZXJ0aW9uIGZhaWxlZDogIitQLnAodCkKcmV0dXJuIkFz
c2VydGlvbiBmYWlsZWQifX0KUC5uLnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIlRocm93
IG9mIG51bGwuIn19ClAudS5wcm90b3R5cGU9ewpnWjpmdW5jdGlvbigpe3JldHVybiJJbnZhbGlkIGFy
Z3VtZW50IisoIXRoaXMuYT8iKHMpIjoiIil9LApndTpmdW5jdGlvbigpe3JldHVybiIifSwKdzpmdW5j
dGlvbihhKXt2YXIgdCxzLHIscSxwPXRoaXMsbz1wLmMsbj1vIT1udWxsPyIgKCIrbysiKSI6IiIKbz1w
LmQKdD1vPT1udWxsPyIiOiI6ICIrSC5kKG8pCnM9cC5nWigpK24rdAppZighcC5hKXJldHVybiBzCnI9
cC5ndSgpCnE9UC5wKHAuYikKcmV0dXJuIHMrcisiOiAiK3F9fQpQLmJKLnByb3RvdHlwZT17CmdaOmZ1
bmN0aW9uKCl7cmV0dXJuIlJhbmdlRXJyb3IifSwKZ3U6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9dGhpcy5l
CmlmKHI9PW51bGwpe3I9dGhpcy5mCnQ9ciE9bnVsbD8iOiBOb3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRv
ICIrSC5kKHIpOiIifWVsc2V7cz10aGlzLmYKaWYocz09bnVsbCl0PSI6IE5vdCBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gIitILmQocikKZWxzZSBpZihzPnIpdD0iOiBOb3QgaW4gcmFuZ2UgIitILmQocikr
Ii4uIitILmQocykrIiwgaW5jbHVzaXZlIgplbHNlIHQ9czxyPyI6IFZhbGlkIHZhbHVlIHJhbmdlIGlz
IGVtcHR5IjoiOiBPbmx5IHZhbGlkIHZhbHVlIGlzICIrSC5kKHIpfXJldHVybiB0fX0KUC5lWS5wcm90
b3R5cGU9ewpnWjpmdW5jdGlvbigpe3JldHVybiJSYW5nZUVycm9yIn0sCmd1OmZ1bmN0aW9uKCl7dmFy
IHQscz1ILlNjKHRoaXMuYikKaWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5KKCkKaWYoczww
KXJldHVybiI6IGluZGV4IG11c3Qgbm90IGJlIG5lZ2F0aXZlIgp0PXRoaXMuZgppZih0PT09MClyZXR1
cm4iOiBubyBpbmRpY2VzIGFyZSB2YWxpZCIKcmV0dXJuIjogaW5kZXggc2hvdWxkIGJlIGxlc3MgdGhh
biAiK0guZCh0KX0sCmdBOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmZ9fQpQLm1wLnByb3RvdHlwZT17
Cnc6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxsPXRoaXMsaz17fSxqPW5ldyBQLlJuKCIi
KQprLmE9IiIKZm9yKHQ9bC5jLHM9dC5sZW5ndGgscj0wLHE9IiIscD0iIjtyPHM7KytyLHA9IiwgIil7
bz10W3JdCmouYT1xK3AKcT1qLmErPVAucChvKQprLmE9IiwgIn1sLmQuSygwLG5ldyBQLldGKGssaikp
Cm49UC5wKGwuYSkKbT1qLncoMCkKdD0iTm9TdWNoTWV0aG9kRXJyb3I6IG1ldGhvZCBub3QgZm91bmQ6
ICciK0guZChsLmIuYSkrIidcblJlY2VpdmVyOiAiK24rIlxuQXJndW1lbnRzOiBbIittKyJdIgpyZXR1
cm4gdH19ClAudWIucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4iVW5zdXBwb3J0ZWQgb3Bl
cmF0aW9uOiAiK3RoaXMuYX19ClAuZHMucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXt2YXIgdD10aGlz
LmEKcmV0dXJuIHQhPW51bGw/IlVuaW1wbGVtZW50ZWRFcnJvcjogIit0OiJVbmltcGxlbWVudGVkRXJy
b3IifX0KUC5sai5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJCYWQgc3RhdGU6ICIrdGhp
cy5hfX0KUC5VVi5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYQppZih0PT1udWxs
KXJldHVybiJDb25jdXJyZW50IG1vZGlmaWNhdGlvbiBkdXJpbmcgaXRlcmF0aW9uLiIKcmV0dXJuIkNv
bmN1cnJlbnQgbW9kaWZpY2F0aW9uIGR1cmluZyBpdGVyYXRpb246ICIrUC5wKHQpKyIuIn19ClAuazUu
cHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4iT3V0IG9mIE1lbW9yeSJ9LAokaVhTOjF9ClAu
S1kucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4iU3RhY2sgT3ZlcmZsb3cifSwKJGlYUzox
fQpQLmMucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmEKcmV0dXJuIHQ9PW51bGw/
IlJlYWRpbmcgc3RhdGljIHZhcmlhYmxlIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24iOiJSZWFkaW5n
IHN0YXRpYyB2YXJpYWJsZSAnIit0KyInIGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24ifX0KUC5DRC5w
cm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJFeGNlcHRpb246ICIrdGhpcy5hfX0KUC5hRS5w
cm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGosaSxoPXRoaXMu
YSxnPSIiIT09aD8iRm9ybWF0RXhjZXB0aW9uOiAiK2g6IkZvcm1hdEV4Y2VwdGlvbiIsZj10aGlzLmMs
ZT10aGlzLmIKaWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZihmIT1udWxsKWg9ZjwwfHxmPmUubGVuZ3Ro
CmVsc2UgaD0hMQppZihoKWY9bnVsbAppZihmPT1udWxsKXt0PWUubGVuZ3RoPjc4P0MueEIuTmooZSww
LDc1KSsiLi4uIjplCnJldHVybiBnKyJcbiIrdH1mb3Iocz0xLHI9MCxxPSExLHA9MDtwPGY7KytwKXtv
PUMueEIuVyhlLHApCmlmKG89PT0xMCl7aWYociE9PXB8fCFxKSsrcwpyPXArMQpxPSExfWVsc2UgaWYo
bz09PTEzKXsrK3MKcj1wKzEKcT0hMH19Zz1zPjE/ZysoIiAoYXQgbGluZSAiK3MrIiwgY2hhcmFjdGVy
ICIrKGYtcisxKSsiKVxuIik6ZysoIiAoYXQgY2hhcmFjdGVyICIrKGYrMSkrIilcbiIpCm49ZS5sZW5n
dGgKZm9yKHA9ZjtwPG47KytwKXtvPUMueEIubShlLHApCmlmKG89PT0xMHx8bz09PTEzKXtuPXAKYnJl
YWt9fWlmKG4tcj43OClpZihmLXI8NzUpe209cis3NQpsPXIKaz0iIgpqPSIuLi4ifWVsc2V7aWYobi1m
PDc1KXtsPW4tNzUKbT1uCmo9IiJ9ZWxzZXtsPWYtMzYKbT1mKzM2Cmo9Ii4uLiJ9az0iLi4uIn1lbHNl
e209bgpsPXIKaz0iIgpqPSIifWk9Qy54Qi5OaihlLGwsbSkKcmV0dXJuIGcraytpK2orIlxuIitDLnhC
Lkl4KCIgIixmLWwray5sZW5ndGgpKyJeXG4ifWVsc2UgcmV0dXJuIGYhPW51bGw/ZysoIiAoYXQgb2Zm
c2V0ICIrSC5kKGYpKyIpIik6Z319ClAuRUgucHJvdG90eXBlPXt9ClAuS04ucHJvdG90eXBlPXt9ClAu
Y1gucHJvdG90eXBlPXsKZXY6ZnVuY3Rpb24oYSxiKXt2YXIgdD1ILkxoKHRoaXMpCnJldHVybiBuZXcg
SC5VNSh0aGlzLHQuQygiYTIoY1guRSkiKS5iKGIpLHQuQygiVTU8Y1guRT4iKSl9LApnQTpmdW5jdGlv
bihhKXt2YXIgdCxzPXRoaXMuZ2t6KHRoaXMpCmZvcih0PTA7cy5GKCk7KSsrdApyZXR1cm4gdH0sCmds
MDpmdW5jdGlvbihhKXtyZXR1cm4hdGhpcy5na3oodGhpcykuRigpfSwKZ3I4OmZ1bmN0aW9uKGEpe3Zh
ciB0LHM9dGhpcy5na3oodGhpcykKaWYoIXMuRigpKXRocm93IEguYihILldwKCkpCnQ9cy5nbCgpCmlm
KHMuRigpKXRocm93IEguYihILmRVKCkpCnJldHVybiB0fSwKRTpmdW5jdGlvbihhLGIpe3ZhciB0LHMs
cgpQLmsxKGIsImluZGV4IikKZm9yKHQ9dGhpcy5na3oodGhpcykscz0wO3QuRigpOyl7cj10LmdsKCkK
aWYoYj09PXMpcmV0dXJuIHI7KytzfXRocm93IEguYihQLkNmKGIsdGhpcywiaW5kZXgiLG51bGwscykp
fSwKdzpmdW5jdGlvbihhKXtyZXR1cm4gUC5FUCh0aGlzLCIoIiwiKSIpfX0KUC5Bbi5wcm90b3R5cGU9
e30KUC56TS5wcm90b3R5cGU9eyRpY1g6MX0KUC5aMC5wcm90b3R5cGU9e30KUC5jOC5wcm90b3R5cGU9
ewpnaU86ZnVuY3Rpb24oYSl7cmV0dXJuIFAuay5wcm90b3R5cGUuZ2lPLmNhbGwodGhpcyx0aGlzKX0s
Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIm51bGwifX0KUC5GSy5wcm90b3R5cGU9e30KUC5rLnByb3RvdHlw
ZT17Y29uc3RydWN0b3I6UC5rLCRpazoxLApETjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzPT09Yn0s
CmdpTzpmdW5jdGlvbihhKXtyZXR1cm4gSC5lUSh0aGlzKX0sCnc6ZnVuY3Rpb24oYSl7cmV0dXJuIklu
c3RhbmNlIG9mICciK0guZChILk0odGhpcykpKyInIn0sCmU3OmZ1bmN0aW9uKGEsYil7dS5vLmIoYikK
dGhyb3cgSC5iKFAubHIodGhpcyxiLmdXYSgpLGIuZ25kKCksYi5nVm0oKSkpfSwKdG9TdHJpbmc6ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy53KHRoaXMpfX0KUC5PZC5wcm90b3R5cGU9e30KUC5pYi5wcm90b3R5
cGU9eyRpT2Q6MX0KUC54dS5wcm90b3R5cGU9e30KUC5Hei5wcm90b3R5cGU9e30KUC5xVS5wcm90b3R5
cGU9eyRpdlg6MX0KUC5Sbi5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmxl
bmd0aH0sCnc6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybiB0LmNoYXJDb2RlQXQoMCk9PTA/
dDp0fSwKJGlCTDoxfQpQLkdELnByb3RvdHlwZT17fQpQLm4xLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9u
KGEsYil7dmFyIHQscyxyLHEKdS5mLmIoYSkKSC55KGIpCnQ9Si5yWShiKS5PWShiLCI9IikKaWYodD09
PS0xKXtpZihiIT09IiIpYS5ZKDAsUC5rdShiLDAsYi5sZW5ndGgsdGhpcy5hLCEwKSwiIil9ZWxzZSBp
Zih0IT09MCl7cz1DLnhCLk5qKGIsMCx0KQpyPUMueEIuRyhiLHQrMSkKcT10aGlzLmEKYS5ZKDAsUC5r
dShzLDAscy5sZW5ndGgscSwhMCksUC5rdShyLDAsci5sZW5ndGgscSwhMCkpfXJldHVybiBhfSwKJFM6
MTh9ClAuY1MucHJvdG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXt0aHJvdyBILmIoUC5ycigiSWxsZWdh
bCBJUHY0IGFkZHJlc3MsICIrYSx0aGlzLmEsYikpfSwKJFM6MzV9ClAuVkMucHJvdG90eXBlPXsKJDI6
ZnVuY3Rpb24oYSxiKXt0aHJvdyBILmIoUC5ycigiSWxsZWdhbCBJUHY2IGFkZHJlc3MsICIrYSx0aGlz
LmEsYikpfSwKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJDIoYSxudWxsKX0sCiRTOjIwfQpQLnRw
LnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7dmFyIHQKaWYoYi1hPjQpdGhpcy5hLiQyKCJhbiBJ
UHY2IHBhcnQgY2FuIG9ubHkgY29udGFpbiBhIG1heGltdW0gb2YgNCBoZXggZGlnaXRzIixhKQp0PVAu
UUEoQy54Qi5Oaih0aGlzLmIsYSxiKSxudWxsLDE2KQppZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVy
biB0LkooKQppZih0PDB8fHQ+NjU1MzUpdGhpcy5hLiQyKCJlYWNoIHBhcnQgbXVzdCBiZSBpbiB0aGUg
cmFuZ2Ugb2YgYDB4MC4uMHhGRkZGYCIsYSkKcmV0dXJuIHR9LAokUzoyMX0KUC5Ebi5wcm90b3R5cGU9
ewpna3U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ifSwKZ0pmOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMu
YwppZih0PT1udWxsKXJldHVybiIiCmlmKEMueEIubih0LCJbIikpcmV0dXJuIEMueEIuTmoodCwxLHQu
bGVuZ3RoLTEpCnJldHVybiB0fSwKZ3RwOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuZAppZih0PT1udWxs
KXJldHVybiBQLndLKHRoaXMuYSkKcmV0dXJuIHR9LApndFA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmYK
cmV0dXJuIHQ9PW51bGw/IiI6dH0sCmdLYTpmdW5jdGlvbigpe3ZhciB0PXRoaXMucgpyZXR1cm4gdD09
bnVsbD8iIjp0fSwKZ0ZqOmZ1bmN0aW9uKCl7dmFyIHQscz10aGlzLngKaWYocyE9bnVsbClyZXR1cm4g
cwp0PXRoaXMuZQppZih0Lmxlbmd0aCE9PTAmJkMueEIuVyh0LDApPT09NDcpdD1DLnhCLkcodCwxKQpz
PXQ9PT0iIj9DLnhEOlAuT1cobmV3IEguQTgoSC5WTSh0LnNwbGl0KCIvIiksdS5zKSx1LmRPLmIoUC5Q
SCgpKSx1LmRvKSx1Lk4pCnRoaXMuc282KHMpCnJldHVybiBzfSwKZ2hZOmZ1bmN0aW9uKCl7dmFyIHQs
cz10aGlzCmlmKHMuUT09bnVsbCl7dD1zLmYKcy5zUkgobmV3IFAuR2ooUC5XWCh0PT1udWxsPyIiOnQp
LHUuVykpfXJldHVybiBzLlF9LApKaDpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbwpmb3IodD0w
LHM9MDtDLnhCLlFpKGIsIi4uLyIscyk7KXtzKz0zOysrdH1yPUMueEIuY24oYSwiLyIpCndoaWxlKCEw
KXtpZighKHI+MCYmdD4wKSlicmVhawpxPUMueEIuUGsoYSwiLyIsci0xKQppZihxPDApYnJlYWsKcD1y
LXEKbz1wIT09MgppZighb3x8cD09PTMpaWYoQy54Qi5tKGEscSsxKT09PTQ2KW89IW98fEMueEIubShh
LHErMik9PT00NgplbHNlIG89ITEKZWxzZSBvPSExCmlmKG8pYnJlYWs7LS10CnI9cX1yZXR1cm4gQy54
Qi5pNyhhLHIrMSxudWxsLEMueEIuRyhiLHMtMyp0KSl9LApaSTpmdW5jdGlvbihhKXtyZXR1cm4gdGhp
cy5tUyhQLmhLKGEpKX0sCm1TOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrPXRoaXMs
aj1udWxsCmlmKGEuZ0ZpKCkubGVuZ3RoIT09MCl7dD1hLmdGaSgpCmlmKGEuZ2NqKCkpe3M9YS5na3Uo
KQpyPWEuZ0pmKGEpCnE9YS5neEEoKT9hLmd0cChhKTpqfWVsc2V7cT1qCnI9cQpzPSIifXA9UC54ZShh
LmdJaShhKSkKbz1hLmdRRCgpP2EuZ3RQKCk6an1lbHNle3Q9ay5hCmlmKGEuZ2NqKCkpe3M9YS5na3Uo
KQpyPWEuZ0pmKGEpCnE9UC53QihhLmd4QSgpP2EuZ3RwKGEpOmosdCkKcD1QLnhlKGEuZ0lpKGEpKQpv
PWEuZ1FEKCk/YS5ndFAoKTpqfWVsc2V7cz1rLmIKcj1rLmMKcT1rLmQKaWYoYS5nSWkoYSk9PT0iIil7
cD1rLmUKbz1hLmdRRCgpP2EuZ3RQKCk6ay5mfWVsc2V7aWYoYS5ndFQoKSlwPVAueGUoYS5nSWkoYSkp
CmVsc2V7bj1rLmUKaWYobi5sZW5ndGg9PT0wKWlmKHI9PW51bGwpcD10Lmxlbmd0aD09PTA/YS5nSWko
YSk6UC54ZShhLmdJaShhKSkKZWxzZSBwPVAueGUoIi8iK2EuZ0lpKGEpKQplbHNle209ay5KaChuLGEu
Z0lpKGEpKQpsPXQubGVuZ3RoPT09MAppZighbHx8ciE9bnVsbHx8Qy54Qi5uKG4sIi8iKSlwPVAueGUo
bSkKZWxzZSBwPVAud0YobSwhbHx8ciE9bnVsbCl9fW89YS5nUUQoKT9hLmd0UCgpOmp9fX1yZXR1cm4g
bmV3IFAuRG4odCxzLHIscSxwLG8sYS5nWjgoKT9hLmdLYSgpOmopfSwKZ2NqOmZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMuYyE9bnVsbH0sCmd4QTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmQhPW51bGx9LApnUUQ6
ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mIT1udWxsfSwKZ1o4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu
ciE9bnVsbH0sCmd0VDpmdW5jdGlvbigpe3JldHVybiBDLnhCLm4odGhpcy5lLCIvIil9LAp0NDpmdW5j
dGlvbigpe3ZhciB0LHMscj10aGlzLHE9ci5hCmlmKHEhPT0iIiYmcSE9PSJmaWxlIil0aHJvdyBILmIo
UC5MNCgiQ2Fubm90IGV4dHJhY3QgYSBmaWxlIHBhdGggZnJvbSBhICIrSC5kKHEpKyIgVVJJIikpCnE9
ci5mCmlmKChxPT1udWxsPyIiOnEpIT09IiIpdGhyb3cgSC5iKFAuTDQoIkNhbm5vdCBleHRyYWN0IGEg
ZmlsZSBwYXRoIGZyb20gYSBVUkkgd2l0aCBhIHF1ZXJ5IGNvbXBvbmVudCIpKQpxPXIucgppZigocT09
bnVsbD8iIjpxKSE9PSIiKXRocm93IEguYihQLkw0KCJDYW5ub3QgZXh0cmFjdCBhIGZpbGUgcGF0aCBm
cm9tIGEgVVJJIHdpdGggYSBmcmFnbWVudCBjb21wb25lbnQiKSkKdD0kLndRKCkKaWYoSC5vVCh0KSlx
PVAubW4ocikKZWxzZXtpZihyLmMhPW51bGwmJnIuZ0pmKHIpIT09IiIpSC52aChQLkw0KCJDYW5ub3Qg
ZXh0cmFjdCBhIG5vbi1XaW5kb3dzIGZpbGUgcGF0aCBmcm9tIGEgZmlsZSBVUkkgd2l0aCBhbiBhdXRo
b3JpdHkiKSkKcz1yLmdGaigpClAua0UocywhMSkKcT1QLnZnKEMueEIubihyLmUsIi8iKT8iLyI6IiIs
cywiLyIpCnE9cS5jaGFyQ29kZUF0KDApPT0wP3E6cX1yZXR1cm4gcX0sCnc6ZnVuY3Rpb24oYSl7dmFy
IHQscyxyLHE9dGhpcyxwPXEueQppZihwPT1udWxsKXtwPXEuYQp0PXAubGVuZ3RoIT09MD9wKyI6Ijoi
IgpzPXEuYwpyPXM9PW51bGwKaWYoIXJ8fHA9PT0iZmlsZSIpe3A9dCsiLy8iCnQ9cS5iCmlmKHQubGVu
Z3RoIT09MClwPXArdCsiQCIKaWYoIXIpcCs9cwp0PXEuZAppZih0IT1udWxsKXA9cCsiOiIrSC5kKHQp
fWVsc2UgcD10CnArPXEuZQp0PXEuZgppZih0IT1udWxsKXA9cCsiPyIrdAp0PXEucgppZih0IT1udWxs
KXA9cCsiIyIrdApwPXEueT1wLmNoYXJDb2RlQXQoMCk9PTA/cDpwfXJldHVybiBwfSwKRE46ZnVuY3Rp
b24oYSxiKXt2YXIgdCxzLHI9dGhpcwppZihiPT1udWxsKXJldHVybiExCmlmKHI9PT1iKXJldHVybiEw
CmlmKHUudS5jKGIpKWlmKHIuYT09Yi5nRmkoKSlpZihyLmMhPW51bGw9PT1iLmdjaigpKWlmKHIuYj09
Yi5na3UoKSlpZihyLmdKZihyKT09Yi5nSmYoYikpaWYoci5ndHAocik9PWIuZ3RwKGIpKWlmKHIuZT09
PWIuZ0lpKGIpKXt0PXIuZgpzPXQ9PW51bGwKaWYoIXM9PT1iLmdRRCgpKXtpZihzKXQ9IiIKaWYodD09
PWIuZ3RQKCkpe3Q9ci5yCnM9dD09bnVsbAppZighcz09PWIuZ1o4KCkpe2lmKHMpdD0iIgp0PXQ9PT1i
LmdLYSgpfWVsc2UgdD0hMX1lbHNlIHQ9ITF9ZWxzZSB0PSExfWVsc2UgdD0hMQplbHNlIHQ9ITEKZWxz
ZSB0PSExCmVsc2UgdD0hMQplbHNlIHQ9ITEKZWxzZSB0PSExCmVsc2UgdD0hMQpyZXR1cm4gdH0sCmdp
TzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLnoKcmV0dXJuIHQ9PW51bGw/dGhpcy56PUMueEIuZ2lPKHRo
aXMudygwKSk6dH0sCnNvNjpmdW5jdGlvbihhKXt0aGlzLng9dS5pLmIoYSl9LApzUkg6ZnVuY3Rpb24o
YSl7dGhpcy5RPXUuZi5iKGEpfSwKJGlpRDoxLApnRmk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfSwK
Z0lpOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmV9fQpQLmUxLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9u
KGEpe3Rocm93IEguYihQLnJyKCJJbnZhbGlkIHBvcnQiLHRoaXMuYSx0aGlzLmIrMSkpfSwKJFM6MTF9
ClAuTlkucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQ9IklsbGVnYWwgcGF0aCBjaGFyYWN0
ZXIgIgpILnkoYSkKaWYoSi56bChhLCIvIikpaWYodGhpcy5hKXRocm93IEguYihQLnhZKHQrYSkpCmVs
c2UgdGhyb3cgSC5iKFAuTDQodCthKSl9LAokUzoxMX0KUC5SWi5wcm90b3R5cGU9ewokMTpmdW5jdGlv
bihhKXtyZXR1cm4gUC5lUChDLlpKLGEsQy54TSwhMSl9LAokUzo2fQpQLlBFLnByb3RvdHlwZT17Cmds
UjpmdW5jdGlvbigpe3ZhciB0LHMscixxLHA9dGhpcyxvPW51bGwsbj1wLmMKaWYobiE9bnVsbClyZXR1
cm4gbgpuPXAuYgppZigwPj1uLmxlbmd0aClyZXR1cm4gSC5PSChuLDApCnQ9cC5hCm49blswXSsxCnM9
Qy54Qi5YVSh0LCI/IixuKQpyPXQubGVuZ3RoCmlmKHM+PTApe3E9UC51Tyh0LHMrMSxyLEMuVkMsITEp
CnI9c31lbHNlIHE9bwpyZXR1cm4gcC5jPW5ldyBQLnFlKCJkYXRhIixvLG8sbyxQLnVPKHQsbixyLEMu
V2QsITEpLHEsbyl9LAp3OmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcy5iCmlmKDA+PXMubGVuZ3RoKXJl
dHVybiBILk9IKHMsMCkKdD10aGlzLmEKcmV0dXJuIHNbMF09PT0tMT8iZGF0YToiK3Q6dH19ClAucTMu
cHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KDk2KX0sCiRTOjI0
fQpQLnlJLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcy5hCmlmKGE+PXQubGVu
Z3RoKXJldHVybiBILk9IKHQsYSkKdD10W2FdCkouQ00odCwwLDk2LGIpCnJldHVybiB0fSwKJFM6NDB9
ClAuYzYucHJvdG90eXBlPXsKJDM6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxCmZvcih0PWIubGVu
Z3RoLHM9YS5sZW5ndGgscj0wO3I8dDsrK3Ipe3E9Qy54Qi5XKGIscileOTYKaWYocT49cylyZXR1cm4g
SC5PSChhLHEpCmFbcV09Y319fQpQLnFkLnByb3RvdHlwZT17CiQzOmZ1bmN0aW9uKGEsYixjKXt2YXIg
dCxzLHIscQpmb3IodD1DLnhCLlcoYiwwKSxzPUMueEIuVyhiLDEpLHI9YS5sZW5ndGg7dDw9czsrK3Qp
e3E9KHReOTYpPj4+MAppZihxPj1yKXJldHVybiBILk9IKGEscSkKYVtxXT1jfX19ClAuVWYucHJvdG90
eXBlPXsKZ2NqOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYz4wfSwKZ3hBOmZ1bmN0aW9uKCl7dmFyIHQs
cwppZih0aGlzLmM+MCl7dD10aGlzLmQKaWYodHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gdC5oKCkK
cz10aGlzLmUKaWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShzKQpzPXQrMTxzCnQ9c31l
bHNlIHQ9ITEKcmV0dXJuIHR9LApnUUQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmYKaWYodHlwZW9mIHQh
PT0ibnVtYmVyIilyZXR1cm4gdC5KKCkKcmV0dXJuIHQ8dGhpcy5yfSwKZ1o4OmZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMucjx0aGlzLmEubGVuZ3RofSwKZ053OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYj09PTQm
JkMueEIubih0aGlzLmEsImZpbGUiKX0sCmd2aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmI9PT00JiZD
LnhCLm4odGhpcy5hLCJodHRwIil9LApncUI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iPT09NSYmQy54
Qi5uKHRoaXMuYSwiaHR0cHMiKX0sCmd0VDpmdW5jdGlvbigpe3JldHVybiBDLnhCLlFpKHRoaXMuYSwi
LyIsdGhpcy5lKX0sCmdGaTpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcyxyPSJwYWNrYWdlIixxPXMuYgpp
ZihxPD0wKXJldHVybiIiCnQ9cy54CmlmKHQhPW51bGwpcmV0dXJuIHQKaWYocy5ndmgoKSlxPXMueD0i
aHR0cCIKZWxzZSBpZihzLmdxQigpKXtzLng9Imh0dHBzIgpxPSJodHRwcyJ9ZWxzZSBpZihzLmdOdygp
KXtzLng9ImZpbGUiCnE9ImZpbGUifWVsc2UgaWYocT09PTcmJkMueEIubihzLmEscikpe3MueD1yCnE9
cn1lbHNle3E9Qy54Qi5OaihzLmEsMCxxKQpzLng9cX1yZXR1cm4gcX0sCmdrdTpmdW5jdGlvbigpe3Zh
ciB0PXRoaXMuYyxzPXRoaXMuYiszCnJldHVybiB0PnM/Qy54Qi5Oaih0aGlzLmEscyx0LTEpOiIifSwK
Z0pmOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYwpyZXR1cm4gdD4wP0MueEIuTmoodGhpcy5hLHQsdGhp
cy5kKToiIn0sCmd0cDpmdW5jdGlvbihhKXt2YXIgdCxzPXRoaXMKaWYocy5neEEoKSl7dD1zLmQKaWYo
dHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gdC5oKCkKcmV0dXJuIFAuUUEoQy54Qi5OaihzLmEsdCsx
LHMuZSksbnVsbCxudWxsKX1pZihzLmd2aCgpKXJldHVybiA4MAppZihzLmdxQigpKXJldHVybiA0NDMK
cmV0dXJuIDB9LApnSWk6ZnVuY3Rpb24oYSl7cmV0dXJuIEMueEIuTmoodGhpcy5hLHRoaXMuZSx0aGlz
LmYpfSwKZ3RQOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5mLHM9dGhpcy5yCmlmKHR5cGVvZiB0IT09Im51
bWJlciIpcmV0dXJuIHQuSigpCnJldHVybiB0PHM/Qy54Qi5Oaih0aGlzLmEsdCsxLHMpOiIifSwKZ0th
OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yLHM9dGhpcy5hCnJldHVybiB0PHMubGVuZ3RoP0MueEIuRyhz
LHQrMSk6IiJ9LApnRmo6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9dGhpcy5lLHE9dGhpcy5mLHA9dGhpcy5h
CmlmKEMueEIuUWkocCwiLyIscikpe2lmKHR5cGVvZiByIT09Im51bWJlciIpcmV0dXJuIHIuaCgpOysr
cn1pZihyPT1xKXJldHVybiBDLnhECnQ9SC5WTShbXSx1LnMpCnM9cgp3aGlsZSghMCl7aWYodHlwZW9m
IHMhPT0ibnVtYmVyIilyZXR1cm4gcy5KKCkKaWYodHlwZW9mIHEhPT0ibnVtYmVyIilyZXR1cm4gSC5w
WShxKQppZighKHM8cSkpYnJlYWsKaWYoQy54Qi5tKHAscyk9PT00Nyl7Qy5ObS5pKHQsQy54Qi5Oaihw
LHIscykpCnI9cysxfSsrc31DLk5tLmkodCxDLnhCLk5qKHAscixxKSkKcmV0dXJuIFAuT1codCx1Lk4p
fSwKZ2hZOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5mCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJu
IHQuSigpCmlmKHQ+PXRoaXMucilyZXR1cm4gQy5XTwpyZXR1cm4gbmV3IFAuR2ooUC5XWCh0aGlzLmd0
UCgpKSx1LlcpfSwKa1g6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLmQKaWYodHlwZW9mIHMhPT0ibnVt
YmVyIilyZXR1cm4gcy5oKCkKdD1zKzEKcmV0dXJuIHQrYS5sZW5ndGg9PT10aGlzLmUmJkMueEIuUWko
dGhpcy5hLGEsdCl9LApOOTpmdW5jdGlvbigpe3ZhciB0PXRoaXMscz10LnIscj10LmEKaWYocz49ci5s
ZW5ndGgpcmV0dXJuIHQKcmV0dXJuIG5ldyBQLlVmKEMueEIuTmoociwwLHMpLHQuYix0LmMsdC5kLHQu
ZSx0LmYscyx0LngpfSwKWkk6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubVMoUC5oSyhhKSl9LAptUzpm
dW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgUC5VZilyZXR1cm4gdGhpcy51MSh0aGlzLGEpCnJldHVy
biB0aGlzLlJlKCkubVMoYSl9LAp1MTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxr
LGosaSxoLGcsZixlPWIuYgppZihlPjApcmV0dXJuIGIKdD1iLmMKaWYodD4wKXtzPWEuYgppZihzPD0w
KXJldHVybiBiCmlmKGEuZ053KCkpcj1iLmUhPWIuZgplbHNlIGlmKGEuZ3ZoKCkpcj0hYi5rWCgiODAi
KQplbHNlIHI9IWEuZ3FCKCl8fCFiLmtYKCI0NDMiKQppZihyKXtxPXMrMQpwPUMueEIuTmooYS5hLDAs
cSkrQy54Qi5HKGIuYSxlKzEpCmU9Yi5kCmlmKHR5cGVvZiBlIT09Im51bWJlciIpcmV0dXJuIGUuaCgp
Cm89Yi5lCmlmKHR5cGVvZiBvIT09Im51bWJlciIpcmV0dXJuIG8uaCgpCm49Yi5mCmlmKHR5cGVvZiBu
IT09Im51bWJlciIpcmV0dXJuIG4uaCgpCnJldHVybiBuZXcgUC5VZihwLHMsdCtxLGUrcSxvK3Esbitx
LGIucitxLGEueCl9ZWxzZSByZXR1cm4gdGhpcy5SZSgpLm1TKGIpfW09Yi5lCmU9Yi5mCmlmKG09PWUp
e3Q9Yi5yCmlmKHR5cGVvZiBlIT09Im51bWJlciIpcmV0dXJuIGUuSigpCmlmKGU8dCl7cz1hLmYKaWYo
dHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5ITigpCnE9cy1lCnJldHVybiBuZXcgUC5VZihDLnhC
Lk5qKGEuYSwwLHMpK0MueEIuRyhiLmEsZSksYS5iLGEuYyxhLmQsYS5lLGUrcSx0K3EsYS54KX1lPWIu
YQppZih0PGUubGVuZ3RoKXtzPWEucgpyZXR1cm4gbmV3IFAuVWYoQy54Qi5OaihhLmEsMCxzKStDLnhC
LkcoZSx0KSxhLmIsYS5jLGEuZCxhLmUsYS5mLHQrKHMtdCksYS54KX1yZXR1cm4gYS5OOSgpfXQ9Yi5h
CmlmKEMueEIuUWkodCwiLyIsbSkpe3M9YS5lCmlmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMu
SE4oKQppZih0eXBlb2YgbSE9PSJudW1iZXIiKXJldHVybiBILnBZKG0pCnE9cy1tCnA9Qy54Qi5Oaihh
LmEsMCxzKStDLnhCLkcodCxtKQppZih0eXBlb2YgZSE9PSJudW1iZXIiKXJldHVybiBlLmgoKQpyZXR1
cm4gbmV3IFAuVWYocCxhLmIsYS5jLGEuZCxzLGUrcSxiLnIrcSxhLngpfWw9YS5lCms9YS5mCmlmKGw9
PWsmJmEuYz4wKXtmb3IoO0MueEIuUWkodCwiLi4vIixtKTspe2lmKHR5cGVvZiBtIT09Im51bWJlciIp
cmV0dXJuIG0uaCgpCm0rPTN9aWYodHlwZW9mIGwhPT0ibnVtYmVyIilyZXR1cm4gbC5ITigpCmlmKHR5
cGVvZiBtIT09Im51bWJlciIpcmV0dXJuIEgucFkobSkKcT1sLW0rMQpwPUMueEIuTmooYS5hLDAsbCkr
Ii8iK0MueEIuRyh0LG0pCmlmKHR5cGVvZiBlIT09Im51bWJlciIpcmV0dXJuIGUuaCgpCnJldHVybiBu
ZXcgUC5VZihwLGEuYixhLmMsYS5kLGwsZStxLGIucitxLGEueCl9aj1hLmEKZm9yKGk9bDtDLnhCLlFp
KGosIi4uLyIsaSk7KXtpZih0eXBlb2YgaSE9PSJudW1iZXIiKXJldHVybiBpLmgoKQppKz0zfWg9MAp3
aGlsZSghMCl7aWYodHlwZW9mIG0hPT0ibnVtYmVyIilyZXR1cm4gbS5oKCkKZz1tKzMKaWYodHlwZW9m
IGUhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShlKQppZighKGc8PWUmJkMueEIuUWkodCwiLi4vIixtKSkp
YnJlYWs7KytoCm09Z31mPSIiCndoaWxlKCEwKXtpZih0eXBlb2YgayE9PSJudW1iZXIiKXJldHVybiBr
Lm9zKCkKaWYodHlwZW9mIGkhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShpKQppZighKGs+aSkpYnJlYWs7
LS1rCmlmKEMueEIubShqLGspPT09NDcpe2lmKGg9PT0wKXtmPSIvIgpicmVha30tLWgKZj0iLyJ9fWlm
KGs9PT1pJiZhLmI8PTAmJiFDLnhCLlFpKGosIi8iLGwpKXttLT1oKjMKZj0iIn1xPWstbStmLmxlbmd0
aApyZXR1cm4gbmV3IFAuVWYoQy54Qi5OaihqLDAsaykrZitDLnhCLkcodCxtKSxhLmIsYS5jLGEuZCxs
LGUrcSxiLnIrcSxhLngpfSwKdDQ6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwPXRoaXMKaWYocC5iPj0w
JiYhcC5nTncoKSl0aHJvdyBILmIoUC5MNCgiQ2Fubm90IGV4dHJhY3QgYSBmaWxlIHBhdGggZnJvbSBh
ICIrSC5kKHAuZ0ZpKCkpKyIgVVJJIikpCnQ9cC5mCnM9cC5hCmlmKHR5cGVvZiB0IT09Im51bWJlciIp
cmV0dXJuIHQuSigpCmlmKHQ8cy5sZW5ndGgpe2lmKHQ8cC5yKXRocm93IEguYihQLkw0KCJDYW5ub3Qg
ZXh0cmFjdCBhIGZpbGUgcGF0aCBmcm9tIGEgVVJJIHdpdGggYSBxdWVyeSBjb21wb25lbnQiKSkKdGhy
b3cgSC5iKFAuTDQoIkNhbm5vdCBleHRyYWN0IGEgZmlsZSBwYXRoIGZyb20gYSBVUkkgd2l0aCBhIGZy
YWdtZW50IGNvbXBvbmVudCIpKX1yPSQud1EoKQppZihILm9UKHIpKXQ9UC5tbihwKQplbHNle3E9cC5k
CmlmKHR5cGVvZiBxIT09Im51bWJlciIpcmV0dXJuIEgucFkocSkKaWYocC5jPHEpSC52aChQLkw0KCJD
YW5ub3QgZXh0cmFjdCBhIG5vbi1XaW5kb3dzIGZpbGUgcGF0aCBmcm9tIGEgZmlsZSBVUkkgd2l0aCBh
biBhdXRob3JpdHkiKSkKdD1DLnhCLk5qKHMscC5lLHQpfXJldHVybiB0fSwKZ2lPOmZ1bmN0aW9uKGEp
e3ZhciB0PXRoaXMueQpyZXR1cm4gdD09bnVsbD90aGlzLnk9Qy54Qi5naU8odGhpcy5hKTp0fSwKRE46
ZnVuY3Rpb24oYSxiKXtpZihiPT1udWxsKXJldHVybiExCmlmKHRoaXM9PT1iKXJldHVybiEwCnJldHVy
biB1LnUuYyhiKSYmdGhpcy5hPT09Yi53KDApfSwKUmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHM9bnVs
bCxyPXQuZ0ZpKCkscT10LmdrdSgpLHA9dC5jPjA/dC5nSmYodCk6cyxvPXQuZ3hBKCk/dC5ndHAodCk6
cyxuPXQuYSxtPXQuZixsPUMueEIuTmoobix0LmUsbSksaz10LnIKaWYodHlwZW9mIG0hPT0ibnVtYmVy
IilyZXR1cm4gbS5KKCkKbT1tPGs/dC5ndFAoKTpzCnJldHVybiBuZXcgUC5EbihyLHEscCxvLGwsbSxr
PG4ubGVuZ3RoP3QuZ0thKCk6cyl9LAp3OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmF9LAokaWlEOjF9
ClAucWUucHJvdG90eXBlPXt9ClcucUUucHJvdG90eXBlPXt9ClcuR2gucHJvdG90eXBlPXsKdzpmdW5j
dGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpfSwKJGlHaDoxfQpXLmZZLnByb3RvdHlwZT17Cnc6ZnVuY3Rp
b24oYSl7cmV0dXJuIFN0cmluZyhhKX19ClcubkIucHJvdG90eXBlPXskaW5COjF9ClcuQXoucHJvdG90
eXBlPXskaUF6OjF9ClcuUVAucHJvdG90eXBlPXskaVFQOjF9ClcubngucHJvdG90eXBlPXsKZ0E6ZnVu
Y3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofX0KVy5vSi5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXty
ZXR1cm4gYS5sZW5ndGh9fQpXLmlkLnByb3RvdHlwZT17fQpXLlFGLnByb3RvdHlwZT17fQpXLk5oLnBy
b3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKX19ClcuSUIucHJvdG90eXBlPXsK
dzpmdW5jdGlvbihhKXtyZXR1cm4iUmVjdGFuZ2xlICgiK0guZChhLmxlZnQpKyIsICIrSC5kKGEudG9w
KSsiKSAiK0guZChhLndpZHRoKSsiIHggIitILmQoYS5oZWlnaHQpfSwKRE46ZnVuY3Rpb24oYSxiKXtp
ZihiPT1udWxsKXJldHVybiExCnJldHVybiB1LnEuYyhiKSYmYS5sZWZ0PT09Yi5sZWZ0JiZhLnRvcD09
PWIudG9wJiZhLndpZHRoPT09Yi53aWR0aCYmYS5oZWlnaHQ9PT1iLmhlaWdodH0sCmdpTzpmdW5jdGlv
bihhKXtyZXR1cm4gVy5yRShDLkNELmdpTyhhLmxlZnQpLEMuQ0QuZ2lPKGEudG9wKSxDLkNELmdpTyhh
LndpZHRoKSxDLkNELmdpTyhhLmhlaWdodCkpfSwKJGl0bjoxfQpXLm43LnByb3RvdHlwZT17CmdBOmZ1
bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aH19Clcud3oucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7
cmV0dXJuIHRoaXMuYS5sZW5ndGh9LApxOmZ1bmN0aW9uKGEsYil7dmFyIHQKSC5TYyhiKQp0PXRoaXMu
YQppZihiPDB8fGI+PXQubGVuZ3RoKXJldHVybiBILk9IKHQsYikKcmV0dXJuIHRoaXMuJHRpLmQuYih0
W2JdKX0sClk6ZnVuY3Rpb24oYSxiLGMpe3RoaXMuJHRpLmQuYihjKQp0aHJvdyBILmIoUC5MNCgiQ2Fu
bm90IG1vZGlmeSBsaXN0IikpfX0KVy5jdi5wcm90b3R5cGU9ewpnUWc6ZnVuY3Rpb24oYSl7cmV0dXJu
IG5ldyBXLmk3KGEpfSwKZ0Q6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBXLkk0KGEpfSwKdzpmdW5jdGlv
bihhKXtyZXR1cm4gYS5sb2NhbE5hbWV9LAp0bjpmdW5jdGlvbihhKXt2YXIgdD0hIWEuc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZAppZih0KWEuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpCmVsc2UgYS5zY3JvbGxJ
bnRvVmlldygpfSwKcjY6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyLHEKaWYoYz09bnVsbCl7aWYo
ZD09bnVsbCl7dD0kLmx0CmlmKHQ9PW51bGwpe3Q9SC5WTShbXSx1LlEpCnM9bmV3IFcudkQodCkKQy5O
bS5pKHQsVy5UdyhudWxsKSkKQy5ObS5pKHQsVy5CbCgpKQokLmx0PXMKZD1zfWVsc2UgZD10fXQ9JC5F
VQppZih0PT1udWxsKXt0PW5ldyBXLktvKGQpCiQuRVU9dApjPXR9ZWxzZXt0LmE9ZApjPXR9fWVsc2Ug
aWYoZCE9bnVsbCl0aHJvdyBILmIoUC54WSgidmFsaWRhdG9yIGNhbiBvbmx5IGJlIHBhc3NlZCBpZiB0
cmVlU2FuaXRpemVyIGlzIG51bGwiKSkKaWYoJC54bz09bnVsbCl7dD1kb2N1bWVudApzPXQuaW1wbGVt
ZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKQokLnhvPXMKJC5CTz1zLmNyZWF0ZVJhbmdlKCkK
cz0kLnhvLmNyZWF0ZUVsZW1lbnQoImJhc2UiKQp1LkQuYihzKQpzLmhyZWY9dC5iYXNlVVJJCiQueG8u
aGVhZC5hcHBlbmRDaGlsZChzKX10PSQueG8KaWYodC5ib2R5PT1udWxsKXtzPXQuY3JlYXRlRWxlbWVu
dCgiYm9keSIpCnQuYm9keT11LlguYihzKX10PSQueG8KaWYodS5YLmMoYSkpcj10LmJvZHkKZWxzZXty
PXQuY3JlYXRlRWxlbWVudChhLnRhZ05hbWUpCiQueG8uYm9keS5hcHBlbmRDaGlsZChyKX1pZigiY3Jl
YXRlQ29udGV4dHVhbEZyYWdtZW50IiBpbiB3aW5kb3cuUmFuZ2UucHJvdG90eXBlJiYhQy5ObS50ZyhD
LlNxLGEudGFnTmFtZSkpeyQuQk8uc2VsZWN0Tm9kZUNvbnRlbnRzKHIpCnE9JC5CTy5jcmVhdGVDb250
ZXh0dWFsRnJhZ21lbnQoYil9ZWxzZXtyLmlubmVySFRNTD1iCnE9JC54by5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCkKZm9yKDt0PXIuZmlyc3RDaGlsZCx0IT1udWxsOylxLmFwcGVuZENoaWxkKHQpfXQ9JC54
by5ib2R5CmlmKHI9PW51bGw/dCE9bnVsbDpyIT09dClKLkx0KHIpCmMuUG4ocSkKZG9jdW1lbnQuYWRv
cHROb2RlKHEpCnJldHVybiBxfSwKQUg6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLnI2KGEsYixj
LG51bGwpfSwKc2hmOmZ1bmN0aW9uKGEsYil7dGhpcy5ZQyhhLGIpfSwKcGs6ZnVuY3Rpb24oYSxiLGMp
e2EudGV4dENvbnRlbnQ9bnVsbAphLmFwcGVuZENoaWxkKHRoaXMucjYoYSxiLG51bGwsYykpfSwKWUM6
ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wayhhLGIsbnVsbCl9LApnVmw6ZnVuY3Rpb24oYSl7cmV0
dXJuIG5ldyBXLkNxKGEsImNsaWNrIiwhMSx1LkMpfSwKJGljdjoxLApnbnM6ZnVuY3Rpb24oYSl7cmV0
dXJuIGEudGFnTmFtZX19ClcuQ3YucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHUuaC5j
KHUuQS5iKGEpKX0sCiRTOjI2fQpXLmVhLnByb3RvdHlwZT17JGllYToxfQpXLkQwLnByb3RvdHlwZT17
Ck9uOmZ1bmN0aW9uKGEsYixjLGQpe3UuVS5iKGMpCmlmKGMhPW51bGwpdGhpcy52KGEsYixjLGQpfSwK
QjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuT24oYSxiLGMsbnVsbCl9LAp2OmZ1bmN0aW9uKGEs
YixjLGQpe3JldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoYixILnRSKHUuVS5iKGMpLDEpLGQpfSwKJGlE
MDoxfQpXLlQ1LnByb3RvdHlwZT17JGlUNToxfQpXLmg0LnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEp
e3JldHVybiBhLmxlbmd0aH19ClcuYnIucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEu
bGVuZ3RofX0KVy5WYi5wcm90b3R5cGU9e30KVy5PNy5wcm90b3R5cGU9ewplbzpmdW5jdGlvbihhLGIs
YyxkKXtyZXR1cm4gYS5vcGVuKGIsYywhMCl9LAokaU83OjF9ClcuYlUucHJvdG90eXBlPXsKJDI6ZnVu
Y3Rpb24oYSxiKXt0aGlzLmEuc2V0UmVxdWVzdEhlYWRlcihILnkoYSksSC55KGIpKX0sCiRTOjl9Clcu
aEgucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscAp1LnAuYihhKQp0PXRoaXMu
YQpzPXQuc3RhdHVzCmlmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMudEIoKQpyPXM+PTIwMCYm
czwzMDAKcT1zPjMwNyYmczw0MDAKcz1yfHxzPT09MHx8cz09PTMwNHx8cQpwPXRoaXMuYgppZihzKXtw
LiR0aS5DKCIxLyIpLmIodCkKcz1wLmEKaWYocy5hIT09MClILnZoKFAuUFYoIkZ1dHVyZSBhbHJlYWR5
IGNvbXBsZXRlZCIpKQpzLlhmKHQpfWVsc2UgcC5wbShhKX0sCiRTOjI3fQpXLndhLnByb3RvdHlwZT17
fQpXLlNnLnByb3RvdHlwZT17JGlTZzoxfQpXLnU4LnByb3RvdHlwZT17CmdEcjpmdW5jdGlvbihhKXtp
Zigib3JpZ2luIiBpbiBhKXJldHVybiBhLm9yaWdpbgpyZXR1cm4gSC5kKGEucHJvdG9jb2wpKyIvLyIr
SC5kKGEuaG9zdCl9LAp3OmZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSl9LAokaXU4OjF9ClcuQWou
cHJvdG90eXBlPXskaUFqOjF9ClcuZTcucHJvdG90eXBlPXsKZ3I4OmZ1bmN0aW9uKGEpe3ZhciB0PXRo
aXMuYSxzPXQuY2hpbGROb2Rlcy5sZW5ndGgKaWYocz09PTApdGhyb3cgSC5iKFAuUFYoIk5vIGVsZW1l
bnRzIikpCmlmKHM+MSl0aHJvdyBILmIoUC5QVigiTW9yZSB0aGFuIG9uZSBlbGVtZW50IikpCnJldHVy
biB0LmZpcnN0Q2hpbGR9LApGVjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxCnUuZWguYihiKQp0PWIu
YQpzPXRoaXMuYQppZih0IT09cylmb3Iocj10LmNoaWxkTm9kZXMubGVuZ3RoLHE9MDtxPHI7KytxKXMu
YXBwZW5kQ2hpbGQodC5maXJzdENoaWxkKQpyZXR1cm59LApZOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxz
CnUuQS5iKGMpCnQ9dGhpcy5hCnM9dC5jaGlsZE5vZGVzCmlmKGI8MHx8Yj49cy5sZW5ndGgpcmV0dXJu
IEguT0gocyxiKQp0LnJlcGxhY2VDaGlsZChjLHNbYl0pfSwKZ2t6OmZ1bmN0aW9uKGEpe3ZhciB0PXRo
aXMuYS5jaGlsZE5vZGVzCnJldHVybiBuZXcgVy5XOSh0LHQubGVuZ3RoLEgueksodCkuQygiVzk8R20u
RT4iKSl9LApnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmNoaWxkTm9kZXMubGVuZ3RofSwKcTpm
dW5jdGlvbihhLGIpe3ZhciB0CkguU2MoYikKdD10aGlzLmEuY2hpbGROb2RlcwppZihiPDB8fGI+PXQu
bGVuZ3RoKXJldHVybiBILk9IKHQsYikKcmV0dXJuIHRbYl19fQpXLnVILnByb3RvdHlwZT17CndnOmZ1
bmN0aW9uKGEpe3ZhciB0PWEucGFyZW50Tm9kZQppZih0IT1udWxsKXQucmVtb3ZlQ2hpbGQoYSl9LApE
NDpmdW5jdGlvbihhKXt2YXIgdApmb3IoO3Q9YS5maXJzdENoaWxkLHQhPW51bGw7KWEucmVtb3ZlQ2hp
bGQodCl9LAp3OmZ1bmN0aW9uKGEpe3ZhciB0PWEubm9kZVZhbHVlCnJldHVybiB0PT1udWxsP3RoaXMu
VShhKTp0fSwKJGl1SDoxfQpXLkJILnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxl
bmd0aH0sCnE6ZnVuY3Rpb24oYSxiKXtILlNjKGIpCmlmKGI+Pj4wIT09Ynx8Yj49YS5sZW5ndGgpdGhy
b3cgSC5iKFAuQ2YoYixhLG51bGwsbnVsbCxudWxsKSkKcmV0dXJuIGFbYl19LApZOmZ1bmN0aW9uKGEs
YixjKXt1LkEuYihjKQp0aHJvdyBILmIoUC5MNCgiQ2Fubm90IGFzc2lnbiBlbGVtZW50IG9mIGltbXV0
YWJsZSBMaXN0LiIpKX0sCkU6ZnVuY3Rpb24oYSxiKXtpZihiPDB8fGI+PWEubGVuZ3RoKXJldHVybiBI
Lk9IKGEsYikKcmV0dXJuIGFbYl19LAokaVhqOjEsCiRpY1g6MSwKJGl6TToxfQpXLmV3LnByb3RvdHlw
ZT17JGlldzoxfQpXLmxwLnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aH19
ClcuVGIucHJvdG90eXBlPXsKcjY6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscwppZigiY3JlYXRlQ29u
dGV4dHVhbEZyYWdtZW50IiBpbiB3aW5kb3cuUmFuZ2UucHJvdG90eXBlKXJldHVybiB0aGlzLkRXKGEs
YixjLGQpCnQ9Vy5VOSgiPHRhYmxlPiIrSC5kKGIpKyI8L3RhYmxlPiIsYyxkKQpzPWRvY3VtZW50LmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnQoKQpzLnRvU3RyaW5nCnQudG9TdHJpbmcKbmV3IFcuZTcocykuRlYo
MCxuZXcgVy5lNyh0KSkKcmV0dXJuIHN9fQpXLkl2LnByb3RvdHlwZT17CnI2OmZ1bmN0aW9uKGEsYixj
LGQpe3ZhciB0LHMscixxCmlmKCJjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQiIGluIHdpbmRvdy5SYW5n
ZS5wcm90b3R5cGUpcmV0dXJuIHRoaXMuRFcoYSxiLGMsZCkKdD1kb2N1bWVudApzPXQuY3JlYXRlRG9j
dW1lbnRGcmFnbWVudCgpCnQ9Qy5JZS5yNih0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksYixjLGQpCnQu
dG9TdHJpbmcKdD1uZXcgVy5lNyh0KQpyPXQuZ3I4KHQpCnIudG9TdHJpbmcKdD1uZXcgVy5lNyhyKQpx
PXQuZ3I4KHQpCnMudG9TdHJpbmcKcS50b1N0cmluZwpuZXcgVy5lNyhzKS5GVigwLG5ldyBXLmU3KHEp
KQpyZXR1cm4gc319ClcuQlQucHJvdG90eXBlPXsKcjY6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxy
CmlmKCJjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQiIGluIHdpbmRvdy5SYW5nZS5wcm90b3R5cGUpcmV0
dXJuIHRoaXMuRFcoYSxiLGMsZCkKdD1kb2N1bWVudApzPXQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgp
CnQ9Qy5JZS5yNih0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksYixjLGQpCnQudG9TdHJpbmcKdD1uZXcg
Vy5lNyh0KQpyPXQuZ3I4KHQpCnMudG9TdHJpbmcKci50b1N0cmluZwpuZXcgVy5lNyhzKS5GVigwLG5l
dyBXLmU3KHIpKQpyZXR1cm4gc319ClcueVkucHJvdG90eXBlPXsKcGs6ZnVuY3Rpb24oYSxiLGMpe3Zh
ciB0LHMKYS50ZXh0Q29udGVudD1udWxsCnQ9YS5jb250ZW50CnQudG9TdHJpbmcKSi5iVCh0KQpzPXRo
aXMucjYoYSxiLG51bGwsYykKYS5jb250ZW50LmFwcGVuZENoaWxkKHMpfSwKWUM6ZnVuY3Rpb24oYSxi
KXtyZXR1cm4gdGhpcy5wayhhLGIsbnVsbCl9LAokaXlZOjF9ClcudzYucHJvdG90eXBlPXt9ClcuSzUu
cHJvdG90eXBlPXskaUs1OjEsJGl2NjoxfQpXLkNtLnByb3RvdHlwZT17JGlDbToxfQpXLkNRLnByb3Rv
dHlwZT17JGlDUToxfQpXLnc0LnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIlJlY3Rhbmds
ZSAoIitILmQoYS5sZWZ0KSsiLCAiK0guZChhLnRvcCkrIikgIitILmQoYS53aWR0aCkrIiB4ICIrSC5k
KGEuaGVpZ2h0KX0sCkROOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVsbClyZXR1cm4hMQpyZXR1cm4gdS5x
LmMoYikmJmEubGVmdD09PWIubGVmdCYmYS50b3A9PT1iLnRvcCYmYS53aWR0aD09PWIud2lkdGgmJmEu
aGVpZ2h0PT09Yi5oZWlnaHR9LApnaU86ZnVuY3Rpb24oYSl7cmV0dXJuIFcuckUoQy5DRC5naU8oYS5s
ZWZ0KSxDLkNELmdpTyhhLnRvcCksQy5DRC5naU8oYS53aWR0aCksQy5DRC5naU8oYS5oZWlnaHQpKX19
ClcucmgucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSwKcTpmdW5jdGlv
bihhLGIpe0guU2MoYikKaWYoYj4+PjAhPT1ifHxiPj1hLmxlbmd0aCl0aHJvdyBILmIoUC5DZihiLGEs
bnVsbCxudWxsLG51bGwpKQpyZXR1cm4gYVtiXX0sClk6ZnVuY3Rpb24oYSxiLGMpe3UuQS5iKGMpCnRo
cm93IEguYihQLkw0KCJDYW5ub3QgYXNzaWduIGVsZW1lbnQgb2YgaW1tdXRhYmxlIExpc3QuIikpfSwK
RTpmdW5jdGlvbihhLGIpe2lmKGI8MHx8Yj49YS5sZW5ndGgpcmV0dXJuIEguT0goYSxiKQpyZXR1cm4g
YVtiXX0sCiRpWGo6MSwKJGljWDoxLAokaXpNOjF9ClcuRDkucHJvdG90eXBlPXsKSzpmdW5jdGlvbihh
LGIpe3ZhciB0LHMscixxLHAKdS52LmIoYikKZm9yKHQ9dGhpcy5nVigpLHM9dC5sZW5ndGgscj10aGlz
LmEscT0wO3E8dC5sZW5ndGg7dC5sZW5ndGg9PT1zfHwoMCxILmxrKSh0KSwrK3Epe3A9dFtxXQpiLiQy
KHAsci5nZXRBdHRyaWJ1dGUocCkpfX0sCmdWOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscD10aGlzLmEu
YXR0cmlidXRlcyxvPUguVk0oW10sdS5zKQpmb3IodD1wLmxlbmd0aCxzPXUuaDkscj0wO3I8dDsrK3Ip
e2lmKHI+PXAubGVuZ3RoKXJldHVybiBILk9IKHAscikKcT1zLmIocFtyXSkKaWYocS5uYW1lc3BhY2VV
Ukk9PW51bGwpQy5ObS5pKG8scS5uYW1lKX1yZXR1cm4gb319ClcuaTcucHJvdG90eXBlPXsKcTpmdW5j
dGlvbihhLGIpe3JldHVybiB0aGlzLmEuZ2V0QXR0cmlidXRlKEgueShiKSl9LApZOmZ1bmN0aW9uKGEs
YixjKXt0aGlzLmEuc2V0QXR0cmlidXRlKGIsYyl9LApnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5n
VigpLmxlbmd0aH19ClcuU3kucHJvdG90eXBlPXsKcTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmEu
YS5nZXRBdHRyaWJ1dGUoImRhdGEtIit0aGlzLk8oSC55KGIpKSl9LApZOmZ1bmN0aW9uKGEsYixjKXt0
aGlzLmEuYS5zZXRBdHRyaWJ1dGUoImRhdGEtIit0aGlzLk8oYiksYyl9LApLOmZ1bmN0aW9uKGEsYil7
dGhpcy5hLksoMCxuZXcgVy5LUyh0aGlzLHUudi5iKGIpKSl9LApnVjpmdW5jdGlvbigpe3ZhciB0PUgu
Vk0oW10sdS5zKQp0aGlzLmEuSygwLG5ldyBXLkEzKHRoaXMsdCkpCnJldHVybiB0fSwKZ0E6ZnVuY3Rp
b24oYSl7cmV0dXJuIHRoaXMuZ1YoKS5sZW5ndGh9LAprOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj1ILlZN
KGEuc3BsaXQoIi0iKSx1LnMpCmZvcih0PTE7dDxyLmxlbmd0aDsrK3Qpe3M9clt0XQppZihzLmxlbmd0
aD4wKUMuTm0uWShyLHQsc1swXS50b1VwcGVyQ2FzZSgpK0ouS1YocywxKSl9cmV0dXJuIEMuTm0uSChy
LCIiKX0sCk86ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscApmb3IodD1hLmxlbmd0aCxzPTAscj0iIjtz
PHQ7KytzKXtxPWFbc10KcD1xLnRvTG93ZXJDYXNlKCkKcj0ocSE9PXAmJnM+MD9yKyItIjpyKStwfXJl
dHVybiByLmNoYXJDb2RlQXQoMCk9PTA/cjpyfX0KVy5LUy5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihh
LGIpe2lmKEouclkoYSkubihhLCJkYXRhLSIpKXRoaXMuYi4kMih0aGlzLmEuayhDLnhCLkcoYSw1KSks
Yil9LAokUzo5fQpXLkEzLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7aWYoSi5yWShhKS5uKGEs
ImRhdGEtIikpQy5ObS5pKHRoaXMuYix0aGlzLmEuayhDLnhCLkcoYSw1KSkpfSwKJFM6OX0KVy5JNC5w
cm90b3R5cGU9ewpQOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscD1QLkxzKHUuTikKZm9yKHQ9dGhpcy5h
LmNsYXNzTmFtZS5zcGxpdCgiICIpLHM9dC5sZW5ndGgscj0wO3I8czsrK3Ipe3E9Si5UMCh0W3JdKQpp
ZihxLmxlbmd0aCE9PTApcC5pKDAscSl9cmV0dXJuIHB9LApYOmZ1bmN0aW9uKGEpe3RoaXMuYS5jbGFz
c05hbWU9dS5ULmIoYSkuSCgwLCIgIil9LApnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmNsYXNz
TGlzdC5sZW5ndGh9LAp0ZzpmdW5jdGlvbihhLGIpe3ZhciB0PXRoaXMuYS5jbGFzc0xpc3QuY29udGFp
bnMoYikKcmV0dXJuIHR9LAppOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcy5hLmNsYXNzTGlzdCxzPXQu
Y29udGFpbnMoYikKdC5hZGQoYikKcmV0dXJuIXN9LApSOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcy5h
LmNsYXNzTGlzdCxzPXQuY29udGFpbnMoYikKdC5yZW1vdmUoYikKcmV0dXJuIHN9fQpXLkZrLnByb3Rv
dHlwZT17fQpXLlJPLnByb3RvdHlwZT17fQpXLkNxLnByb3RvdHlwZT17fQpXLnhDLnByb3RvdHlwZT17
fQpXLnZOLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmEuJDEodS5CLmIoYSkp
fSwKJFM6Mjh9ClcuSlEucHJvdG90eXBlPXsKQ1k6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoJC5vci5hPT09
MCl7Zm9yKHQ9MDt0PDI2MjsrK3QpJC5vci5ZKDAsQy5jbVt0XSxXLnBTKCkpCmZvcih0PTA7dDwxMjsr
K3QpJC5vci5ZKDAsQy5CSVt0XSxXLlY0KCkpfX0sCmkwOmZ1bmN0aW9uKGEpe3JldHVybiAkLkFOKCku
dGcoMCxXLnJTKGEpKX0sCkViOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD0kLm9yLnEoMCxILmQoVy5yUyhh
KSkrIjo6IitiKQppZih0PT1udWxsKXQ9JC5vci5xKDAsIio6OiIrYikKaWYodD09bnVsbClyZXR1cm4h
MQpyZXR1cm4gSC54ZCh0LiQ0KGEsYixjLHRoaXMpKX0sCiRpa0Y6MX0KVy5HbS5wcm90b3R5cGU9ewpn
a3o6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBXLlc5KGEsdGhpcy5nQShhKSxILnpLKGEpLkMoIlc5PEdt
LkU+IikpfX0KVy52RC5wcm90b3R5cGU9ewppMDpmdW5jdGlvbihhKXtyZXR1cm4gQy5ObS5Wcih0aGlz
LmEsbmV3IFcuVXYoYSkpfSwKRWI6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBDLk5tLlZyKHRoaXMuYSxu
ZXcgVy5FZyhhLGIsYykpfSwKJGlrRjoxfQpXLlV2LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3Jl
dHVybiB1LmUuYihhKS5pMCh0aGlzLmEpfSwKJFM6MTN9ClcuRWcucHJvdG90eXBlPXsKJDE6ZnVuY3Rp
b24oYSl7cmV0dXJuIHUuZS5iKGEpLkViKHRoaXMuYSx0aGlzLmIsdGhpcy5jKX0sCiRTOjEzfQpXLm02
LnByb3RvdHlwZT17CkNZOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscgp0aGlzLmEuRlYoMCxjKQp0
PWIuZXYoMCxuZXcgVy5FbygpKQpzPWIuZXYoMCxuZXcgVy5XaygpKQp0aGlzLmIuRlYoMCx0KQpyPXRo
aXMuYwpyLkZWKDAsQy54RCkKci5GVigwLHMpfSwKaTA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYS50
ZygwLFcuclMoYSkpfSwKRWI6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PXRoaXMscz1XLnJTKGEpLHI9dC5j
CmlmKHIudGcoMCxILmQocykrIjo6IitiKSlyZXR1cm4gdC5kLkR0KGMpCmVsc2UgaWYoci50ZygwLCIq
OjoiK2IpKXJldHVybiB0LmQuRHQoYykKZWxzZXtyPXQuYgppZihyLnRnKDAsSC5kKHMpKyI6OiIrYikp
cmV0dXJuITAKZWxzZSBpZihyLnRnKDAsIio6OiIrYikpcmV0dXJuITAKZWxzZSBpZihyLnRnKDAsSC5k
KHMpKyI6OioiKSlyZXR1cm4hMAplbHNlIGlmKHIudGcoMCwiKjo6KiIpKXJldHVybiEwfXJldHVybiEx
fSwKJGlrRjoxfQpXLkVvLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiFDLk5tLnRnKEMu
QkksSC55KGEpKX0sCiRTOjd9ClcuV2sucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIEMu
Tm0udGcoQy5CSSxILnkoYSkpfSwKJFM6N30KVy5jdC5wcm90b3R5cGU9ewpFYjpmdW5jdGlvbihhLGIs
Yyl7aWYodGhpcy5qRihhLGIsYykpcmV0dXJuITAKaWYoYj09PSJ0ZW1wbGF0ZSImJmM9PT0iIilyZXR1
cm4hMAppZihhLmdldEF0dHJpYnV0ZSgidGVtcGxhdGUiKT09PSIiKXJldHVybiB0aGlzLmUudGcoMCxi
KQpyZXR1cm4hMX19ClcuSUEucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIlRFTVBMQVRF
OjoiK0guZChILnkoYSkpfSwKJFM6Nn0KVy5Pdy5wcm90b3R5cGU9ewppMDpmdW5jdGlvbihhKXt2YXIg
dAppZih1LmV3LmMoYSkpcmV0dXJuITEKdD11Lmc3LmMoYSkKaWYodCYmVy5yUyhhKT09PSJmb3JlaWdu
T2JqZWN0IilyZXR1cm4hMQppZih0KXJldHVybiEwCnJldHVybiExfSwKRWI6ZnVuY3Rpb24oYSxiLGMp
e2lmKGI9PT0iaXMifHxDLnhCLm4oYiwib24iKSlyZXR1cm4hMQpyZXR1cm4gdGhpcy5pMChhKX0sCiRp
a0Y6MX0KVy5XOS5wcm90b3R5cGU9ewpGOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxzPXQuYysxLHI9dC5i
CmlmKHM8cil7dC5zcChKLncyKHQuYSxzKSkKdC5jPXMKcmV0dXJuITB9dC5zcChudWxsKQp0LmM9cgpy
ZXR1cm4hMX0sCmdsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZH0sCnNwOmZ1bmN0aW9uKGEpe3RoaXMu
ZD10aGlzLiR0aS5kLmIoYSl9LAokaUFuOjF9ClcuZFcucHJvdG90eXBlPXskaUQwOjEsJGl2NjoxfQpX
LmtGLnByb3RvdHlwZT17fQpXLm1rLnByb3RvdHlwZT17JGl5MDoxfQpXLktvLnByb3RvdHlwZT17ClBu
OmZ1bmN0aW9uKGEpe25ldyBXLmZtKHRoaXMpLiQyKGEsbnVsbCl9LApFUDpmdW5jdGlvbihhLGIpe2lm
KGI9PW51bGwpSi5MdChhKQplbHNlIGIucmVtb3ZlQ2hpbGQoYSl9LApJNDpmdW5jdGlvbihhLGIpe3Zh
ciB0LHMscixxLHAsbz0hMCxuPW51bGwsbT1udWxsCnRyeXtuPUouaWcoYSkKbT1uLmEuZ2V0QXR0cmli
dXRlKCJpcyIpCnUuaC5iKGEpCnQ9ZnVuY3Rpb24oYyl7aWYoIShjLmF0dHJpYnV0ZXMgaW5zdGFuY2Vv
ZiBOYW1lZE5vZGVNYXApKXJldHVybiB0cnVlCnZhciBsPWMuY2hpbGROb2RlcwppZihjLmxhc3RDaGls
ZCYmYy5sYXN0Q2hpbGQhPT1sW2wubGVuZ3RoLTFdKXJldHVybiB0cnVlCmlmKGMuY2hpbGRyZW4paWYo
IShjLmNoaWxkcmVuIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb258fGMuY2hpbGRyZW4gaW5zdGFuY2Vv
ZiBOb2RlTGlzdCkpcmV0dXJuIHRydWUKdmFyIGs9MAppZihjLmNoaWxkcmVuKWs9Yy5jaGlsZHJlbi5s
ZW5ndGgKZm9yKHZhciBqPTA7ajxrO2orKyl7dmFyIGk9Yy5jaGlsZHJlbltqXQppZihpLmlkPT0nYXR0
cmlidXRlcyd8fGkubmFtZT09J2F0dHJpYnV0ZXMnfHxpLmlkPT0nbGFzdENoaWxkJ3x8aS5uYW1lPT0n
bGFzdENoaWxkJ3x8aS5pZD09J2NoaWxkcmVuJ3x8aS5uYW1lPT0nY2hpbGRyZW4nKXJldHVybiB0cnVl
fXJldHVybiBmYWxzZX0oYSkKbz1ILm9UKHQpPyEwOiEoYS5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgTmFt
ZWROb2RlTWFwKX1jYXRjaChxKXtILlJ1KHEpfXM9ImVsZW1lbnQgdW5wcmludGFibGUiCnRyeXtzPUou
aihhKX1jYXRjaChxKXtILlJ1KHEpfXRyeXtyPVcuclMoYSkKdGhpcy5rUih1LmguYihhKSxiLG8scyxy
LHUuRy5iKG4pLEgueShtKSl9Y2F0Y2gocSl7aWYoSC5SdShxKSBpbnN0YW5jZW9mIFAudSl0aHJvdyBx
CmVsc2V7dGhpcy5FUChhLGIpCndpbmRvdwpwPSJSZW1vdmluZyBjb3JydXB0ZWQgZWxlbWVudCAiK0gu
ZChzKQppZih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCIpd2luZG93LmNvbnNvbGUud2FybihwKX19
fSwKa1I6ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIHQscyxyLHEscCxvLG49dGhpcwppZihjKXtu
LkVQKGEsYikKd2luZG93CnQ9IlJlbW92aW5nIGVsZW1lbnQgZHVlIHRvIGNvcnJ1cHRlZCBhdHRyaWJ1
dGVzIG9uIDwiK2QrIj4iCmlmKHR5cGVvZiBjb25zb2xlIT0idW5kZWZpbmVkIil3aW5kb3cuY29uc29s
ZS53YXJuKHQpCnJldHVybn1pZighbi5hLmkwKGEpKXtuLkVQKGEsYikKd2luZG93CnQ9IlJlbW92aW5n
IGRpc2FsbG93ZWQgZWxlbWVudCA8IitILmQoZSkrIj4gZnJvbSAiK0guZChiKQppZih0eXBlb2YgY29u
c29sZSE9InVuZGVmaW5lZCIpd2luZG93LmNvbnNvbGUud2Fybih0KQpyZXR1cm59aWYoZyE9bnVsbClp
Zighbi5hLkViKGEsImlzIixnKSl7bi5FUChhLGIpCndpbmRvdwp0PSJSZW1vdmluZyBkaXNhbGxvd2Vk
IHR5cGUgZXh0ZW5zaW9uIDwiK0guZChlKSsnIGlzPSInK2crJyI+JwppZih0eXBlb2YgY29uc29sZSE9
InVuZGVmaW5lZCIpd2luZG93LmNvbnNvbGUud2Fybih0KQpyZXR1cm59dD1mLmdWKCkKcz1ILlZNKHQu
c2xpY2UoMCksSC50Nih0KS5DKCJqZDwxPiIpKQpmb3Iocj1mLmdWKCkubGVuZ3RoLTEsdD1mLmE7cj49
MDstLXIpe2lmKHI+PXMubGVuZ3RoKXJldHVybiBILk9IKHMscikKcT1zW3JdCnA9bi5hCm89Si5jSChx
KQpILnkocSkKaWYoIXAuRWIoYSxvLHQuZ2V0QXR0cmlidXRlKHEpKSl7d2luZG93CnA9IlJlbW92aW5n
IGRpc2FsbG93ZWQgYXR0cmlidXRlIDwiK0guZChlKSsiICIrcSsnPSInK0guZCh0LmdldEF0dHJpYnV0
ZShxKSkrJyI+JwppZih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCIpd2luZG93LmNvbnNvbGUud2Fy
bihwKQp0LnJlbW92ZUF0dHJpYnV0ZShxKX19aWYodS5hVy5jKGEpKW4uUG4oYS5jb250ZW50KX0sCiRp
b246MX0KVy5mbS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHA9dGhpcy5h
CnN3aXRjaChhLm5vZGVUeXBlKXtjYXNlIDE6cC5JNChhLGIpCmJyZWFrCmNhc2UgODpjYXNlIDExOmNh
c2UgMzpjYXNlIDQ6YnJlYWsKZGVmYXVsdDpwLkVQKGEsYil9dD1hLmxhc3RDaGlsZApmb3IocD11LkE7
bnVsbCE9dDspe3M9bnVsbAp0cnl7cz10LnByZXZpb3VzU2libGluZ31jYXRjaChyKXtILlJ1KHIpCnE9
cC5iKHQpCmEucmVtb3ZlQ2hpbGQocSkKdD1udWxsCnM9YS5sYXN0Q2hpbGR9aWYodCE9bnVsbCl0aGlz
LiQyKHQsYSkKdD1wLmIocyl9fSwKJFM6Mzl9ClcuTGUucHJvdG90eXBlPXt9ClcuSzcucHJvdG90eXBl
PXt9ClcuckIucHJvdG90eXBlPXt9ClcuWFcucHJvdG90eXBlPXt9Clcub2EucHJvdG90eXBlPXt9ClAu
aUoucHJvdG90eXBlPXsKVkg6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLmEscj1zLmxlbmd0aApmb3Io
dD0wO3Q8cjsrK3QpaWYoc1t0XT09PWEpcmV0dXJuIHQKQy5ObS5pKHMsYSkKQy5ObS5pKHRoaXMuYixu
dWxsKQpyZXR1cm4gcn0sClB2OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxPXRoaXMscD17fQppZihhPT1u
dWxsKXJldHVybiBhCmlmKEgubChhKSlyZXR1cm4gYQppZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJu
IGEKaWYodHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBhCmlmKGEgaW5zdGFuY2VvZiBQLmlQKXJldHVy
biBuZXcgRGF0ZShhLmEpCmlmKHUuZnYuYyhhKSl0aHJvdyBILmIoUC5TWSgic3RydWN0dXJlZCBjbG9u
ZSBvZiBSZWdFeHAiKSkKaWYodS5jOC5jKGEpKXJldHVybiBhCmlmKHUuZC5jKGEpKXJldHVybiBhCmlm
KHUuSS5jKGEpKXJldHVybiBhCnQ9dS5kRC5jKGEpfHwhMQppZih0KXJldHVybiBhCmlmKHUuRy5jKGEp
KXtzPXEuVkgoYSkKdD1xLmIKaWYocz49dC5sZW5ndGgpcmV0dXJuIEguT0godCxzKQpyPXAuYT10W3Nd
CmlmKHIhPW51bGwpcmV0dXJuIHIKcj17fQpwLmE9cgpDLk5tLlkodCxzLHIpCmEuSygwLG5ldyBQLmxS
KHAscSkpCnJldHVybiBwLmF9aWYodS5qLmMoYSkpe3M9cS5WSChhKQpwPXEuYgppZihzPj1wLmxlbmd0
aClyZXR1cm4gSC5PSChwLHMpCnI9cFtzXQppZihyIT1udWxsKXJldHVybiByCnJldHVybiBxLmVrKGEs
cyl9aWYodS5lSC5jKGEpKXtzPXEuVkgoYSkKdD1xLmIKaWYocz49dC5sZW5ndGgpcmV0dXJuIEguT0go
dCxzKQpyPXAuYj10W3NdCmlmKHIhPW51bGwpcmV0dXJuIHIKcj17fQpwLmI9cgpDLk5tLlkodCxzLHIp
CnEuaW0oYSxuZXcgUC5qZyhwLHEpKQpyZXR1cm4gcC5ifXRocm93IEguYihQLlNZKCJzdHJ1Y3R1cmVk
IGNsb25lIG9mIG90aGVyIHR5cGUiKSl9LAplazpmdW5jdGlvbihhLGIpe3ZhciB0LHM9Si5VNihhKSxy
PXMuZ0EoYSkscT1uZXcgQXJyYXkocikKQy5ObS5ZKHRoaXMuYixiLHEpCmZvcih0PTA7dDxyOysrdClD
Lk5tLlkocSx0LHRoaXMuUHYocy5xKGEsdCkpKQpyZXR1cm4gcX19ClAubFIucHJvdG90eXBlPXsKJDI6
ZnVuY3Rpb24oYSxiKXt0aGlzLmEuYVthXT10aGlzLmIuUHYoYil9LAokUzoxfQpQLmpnLnByb3RvdHlw
ZT17CiQyOmZ1bmN0aW9uKGEsYil7dGhpcy5hLmJbYV09dGhpcy5iLlB2KGIpfSwKJFM6MX0KUC5CZi5w
cm90b3R5cGU9ewppbTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxCnUuYjguYihiKQpmb3IodD1PYmpl
Y3Qua2V5cyhhKSxzPXQubGVuZ3RoLHI9MDtyPHM7KytyKXtxPXRbcl0KYi4kMihxLGFbcV0pfX19ClAu
QXMucHJvdG90eXBlPXsKVDpmdW5jdGlvbihhKXt2YXIgdD0kLmhHKCkuYgppZih0LnRlc3QoYSkpcmV0
dXJuIGEKdGhyb3cgSC5iKFAuTDMoYSwidmFsdWUiLCJOb3QgYSB2YWxpZCBjbGFzcyB0b2tlbiIpKX0s
Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuUCgpLkgoMCwiICIpfSwKZ2t6OmZ1bmN0aW9uKGEpe3Zh
ciB0PXRoaXMuUCgpCnJldHVybiBQLnJqKHQsdC5yLEguTGgodCkuZCl9LApnQTpmdW5jdGlvbihhKXty
ZXR1cm4gdGhpcy5QKCkuYX0sCnRnOmZ1bmN0aW9uKGEsYil7dGhpcy5UKGIpCnJldHVybiB0aGlzLlAo
KS50ZygwLGIpfSwKaTpmdW5jdGlvbihhLGIpe3RoaXMuVChiKQpyZXR1cm4gSC54ZCh0aGlzLk9TKG5l
dyBQLkdFKGIpKSl9LApSOmZ1bmN0aW9uKGEsYil7dmFyIHQscwp0aGlzLlQoYikKdD10aGlzLlAoKQpz
PXQuUigwLGIpCnRoaXMuWCh0KQpyZXR1cm4gc30sCk9TOmZ1bmN0aW9uKGEpe3ZhciB0LHMKdS5jaC5i
KGEpCnQ9dGhpcy5QKCkKcz1hLiQxKHQpCnRoaXMuWCh0KQpyZXR1cm4gc319ClAuR0UucHJvdG90eXBl
PXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHUuVC5iKGEpLmkoMCx0aGlzLmEpfSwKJFM6MzB9ClAuaEYu
cHJvdG90eXBlPXskaWhGOjF9ClAuUEMucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQKdS5a
LmIoYSkKdD1mdW5jdGlvbihiLGMsZCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGIoYyxkLHRoaXMs
QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGFyZ3VtZW50cykpfX0oUC5SNCxhLCExKQpQLkRtKHQs
JC53KCksYSkKcmV0dXJuIHR9LAokUzo0fQpQLlltLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3Jl
dHVybiBuZXcgdGhpcy5hKGEpfSwKJFM6NH0KUC5Oei5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXty
ZXR1cm4gbmV3IFAucjcoYSl9LAokUzozMX0KUC5RUy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXty
ZXR1cm4gbmV3IFAuVHooYSx1LmFtKX0sCiRTOjMyfQpQLm5wLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9u
KGEpe3JldHVybiBuZXcgUC5FNChhKX0sCiRTOjMzfQpQLkU0LnByb3RvdHlwZT17CnE6ZnVuY3Rpb24o
YSxiKXtpZih0eXBlb2YgYiE9InN0cmluZyImJnR5cGVvZiBiIT0ibnVtYmVyIil0aHJvdyBILmIoUC54
WSgicHJvcGVydHkgaXMgbm90IGEgU3RyaW5nIG9yIG51bSIpKQpyZXR1cm4gUC5MNyh0aGlzLmFbYl0p
fSwKWTpmdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIGIhPSJzdHJpbmciJiZ0eXBlb2YgYiE9Im51bWJl
ciIpdGhyb3cgSC5iKFAueFkoInByb3BlcnR5IGlzIG5vdCBhIFN0cmluZyBvciBudW0iKSkKdGhpcy5h
W2JdPVAud1koYyl9LApETjpmdW5jdGlvbihhLGIpe2lmKGI9PW51bGwpcmV0dXJuITEKcmV0dXJuIGIg
aW5zdGFuY2VvZiBQLkU0JiZ0aGlzLmE9PT1iLmF9LAp3OmZ1bmN0aW9uKGEpe3ZhciB0LHMKdHJ5e3Q9
U3RyaW5nKHRoaXMuYSkKcmV0dXJuIHR9Y2F0Y2gocyl7SC5SdShzKQp0PXRoaXMueGIoMCkKcmV0dXJu
IHR9fSwKVjc6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPXRoaXMuYQppZihiPT1udWxsKXQ9bnVsbAplbHNl
e3Q9SC50NihiKQp0PVAuQ0gobmV3IEguQTgoYix0LkMoIkAoMSkiKS5iKFAuaUcoKSksdC5DKCJBODwx
LEA+IikpLCEwLHUueil9cmV0dXJuIFAuTDcoc1thXS5hcHBseShzLHQpKX0sCmdpTzpmdW5jdGlvbihh
KXtyZXR1cm4gMH19ClAucjcucHJvdG90eXBlPXt9ClAuVHoucHJvdG90eXBlPXsKY1A6ZnVuY3Rpb24o
YSl7dmFyIHQ9dGhpcyxzPWE8MHx8YT49dC5nQSh0KQppZihzKXRocm93IEguYihQLlRFKGEsMCx0LmdB
KHQpLG51bGwsbnVsbCkpfSwKcTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiPT0ibnVtYmVyIiYmYj09
PUMuam4ueXUoYikpdGhpcy5jUChILlNjKGIpKQpyZXR1cm4gdGhpcy4kdGkuZC5iKHRoaXMuVXIoMCxi
KSl9LApZOmZ1bmN0aW9uKGEsYixjKXt2YXIgdAp0aGlzLiR0aS5kLmIoYykKdD1DLmpuLnl1KGIpCmlm
KGI9PT10KXRoaXMuY1AoYikKdGhpcy5lNCgwLGIsYyl9LApnQTpmdW5jdGlvbihhKXt2YXIgdD10aGlz
LmEubGVuZ3RoCmlmKHR5cGVvZiB0PT09Im51bWJlciImJnQ+Pj4wPT09dClyZXR1cm4gdAp0aHJvdyBI
LmIoUC5QVigiQmFkIEpzQXJyYXkgbGVuZ3RoIikpfSwKJGljWDoxLAokaXpNOjF9ClAuY28ucHJvdG90
eXBlPXt9ClAubmQucHJvdG90eXBlPXskaW5kOjF9ClAuS2UucHJvdG90eXBlPXsKUDpmdW5jdGlvbigp
e3ZhciB0LHMscixxLHA9dGhpcy5hLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSxvPVAuTHModS5OKQppZihw
PT1udWxsKXJldHVybiBvCmZvcih0PXAuc3BsaXQoIiAiKSxzPXQubGVuZ3RoLHI9MDtyPHM7KytyKXtx
PUouVDAodFtyXSkKaWYocS5sZW5ndGghPT0wKW8uaSgwLHEpfXJldHVybiBvfSwKWDpmdW5jdGlvbihh
KXt0aGlzLmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsYS5IKDAsIiAiKSl9fQpQLmQ1LnByb3RvdHlwZT17
CmdEOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5LZShhKX0sCnNoZjpmdW5jdGlvbihhLGIpe3RoaXMu
WUMoYSxiKX0sCnI2OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscixxLHAsbwppZihkPT1udWxsKXt0
PUguVk0oW10sdS5RKQpkPW5ldyBXLnZEKHQpCkMuTm0uaSh0LFcuVHcobnVsbCkpCkMuTm0uaSh0LFcu
QmwoKSkKQy5ObS5pKHQsbmV3IFcuT3coKSl9Yz1uZXcgVy5LbyhkKQpzPSc8c3ZnIHZlcnNpb249IjEu
MSI+JytILmQoYikrIjwvc3ZnPiIKdD1kb2N1bWVudApyPXQuYm9keQpxPShyJiZDLlJZKS5BSChyLHMs
YykKcD10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKQpxLnRvU3RyaW5nCnQ9bmV3IFcuZTcocSkKbz10
LmdyOCh0KQpmb3IoO3Q9by5maXJzdENoaWxkLHQhPW51bGw7KXAuYXBwZW5kQ2hpbGQodCkKcmV0dXJu
IHB9LApnVmw6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBXLkNxKGEsImNsaWNrIiwhMSx1LkMpfSwKJGlk
NToxfQpQLm42LnByb3RvdHlwZT17JGljWDoxLCRpek06MSwkaUFTOjF9ClQuR1YucHJvdG90eXBlPXt9
CkwuZS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIKdS5CLmIoYSkKdD13aW5kb3cu
bG9jYXRpb24ucGF0aG5hbWUKcz1MLkc2KHdpbmRvdy5sb2NhdGlvbi5ocmVmKQpyPUwuYUsod2luZG93
LmxvY2F0aW9uLmhyZWYpCkwuR2UoKQppZih0IT09Ii8iJiZ0IT09Si5UMChkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCIucm9vdCIpLnRleHRDb250ZW50KSlMLkc3KHQscyxyLG5ldyBMLlZXKHQscyxyKSl9LAok
UzoxNX0KTC5WVy5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe0wuRnIodGhpcy5hLHRoaXMuYix0aGlz
LmMpfSwKJFM6MH0KTC5MLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxCnUuQi5i
KGEpCnQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lCnM9TC5HNih3aW5kb3cubG9jYXRpb24uaHJlZikK
cj1MLmFLKHdpbmRvdy5sb2NhdGlvbi5ocmVmKQppZih0Lmxlbmd0aD4xKUwuRzcodCxzLHIsbnVsbCkK
ZWxzZXtxPXUuTgpMLkJFKFAuRUYoWyJyZWdpb25zIiwiIiwibmF2Q29udGVudCIsIiJdLHEscSkpCkwu
QlgoIiZuYnNwOyIsbnVsbCl9fSwKJFM6MTV9CkwuZVMucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7
dmFyIHQscwp1LlYuYihhKQp0PXRoaXMuYQpzPXRoaXMuYgpMLmFmKHdpbmRvdy5sb2NhdGlvbi5wYXRo
bmFtZSx0LHMsbmV3IEwuRmgodCxzKSkKTC5NVih0aGlzLmMpfSwKJFM6MTB9CkwuRmgucHJvdG90eXBl
PXsKJDA6ZnVuY3Rpb24oKXtMLkZyKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSx0aGlzLmEsdGhpcy5i
KX0sCiRTOjB9CkwueXUucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyPXRoaXMKdS5y
LmIoYSkKdD1hLnN0YXR1cwppZih0PT09MjAwKXtMLkJFKEMuQ3QucFcoMCxhLnJlc3BvbnNlVGV4dCxu
dWxsKSkKdD1yLmEKTC5mRyh0LHIuYikKcz1yLmMKTC5CWChDLnhCLnRnKHMsIj8iKT9DLnhCLk5qKHMs
MCxDLnhCLk9ZKHMsIj8iKSk6cyx0KQp0PXIuZAppZih0IT1udWxsKXQuJDAoKX1lbHNlIHdpbmRvdy5h
bGVydCgiUmVxdWVzdCBmYWlsZWQ7IHN0YXR1cyBvZiAiK0guZCh0KSl9LAokUzo1fQpMLnpELnByb3Rv
dHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7TC5xSigibG9hZEZpbGU6ICIrSC5kKGEpLGIpCndpbmRvdy5h
bGVydCgiQ291bGQgbm90IGxvYWQgIit0aGlzLmErIiAoIitILmQoYSkrIikuIil9LAokQzoiJDIiLAok
UjoyLAokUzoxfQpMLlZTLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHM9InNlbGVjdGVk
LWZpbGUiCnUuaC5iKGEpCmEudG9TdHJpbmcKdD1KLlJFKGEpCmlmKGEuZ2V0QXR0cmlidXRlKCJkYXRh
LSIrbmV3IFcuU3kobmV3IFcuaTcoYSkpLk8oIm5hbWUiKSk9PT10aGlzLmEuYSl0LmdEKGEpLmkoMCxz
KQplbHNlIHQuZ0QoYSkuUigwLHMpfSwKJFM6M30KTC5HSC5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihh
KXt1LmguYihhKQokLnpCKCkudG9TdHJpbmcKdS5tLmIoJC5vdygpLnEoMCwiaGxqcyIpKS5WNygiaGln
aGxpZ2h0QmxvY2siLFthXSl9LAokUzozfQpMLld4LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3Zh
ciB0LHMscixxPSJjb2xsYXBzZWQiCnUuVi5iKGEpCnQ9dGhpcy5hCnM9Si5SRSh0KQpyPXRoaXMuYgpp
Zighcy5nRCh0KS50ZygwLHEpKXtzLmdEKHQpLmkoMCxxKQpKLmRSKHIpLmkoMCxxKX1lbHNle3MuZ0Qo
dCkuUigwLHEpCkouZFIocikuUigwLHEpfX0sCiRTOjEwfQpMLm5ULnByb3RvdHlwZT17CiQwOmZ1bmN0
aW9uKCl7TC5Gcih0aGlzLmEsdGhpcy5iLHRoaXMuYyl9LAokUzowfQpMLkJaLnByb3RvdHlwZT17CiQw
OmZ1bmN0aW9uKCl7TC5Gcih0aGlzLmEsbnVsbCxudWxsKX0sCiRTOjB9CkwuRlEucHJvdG90eXBlPXsK
JDE6ZnVuY3Rpb24oYSl7dmFyIHQ9dS5yLmIoYSkuc3RhdHVzCmlmKHQhPT0yMDApd2luZG93LmFsZXJ0
KCJSZXF1ZXN0IGZhaWxlZDsgc3RhdHVzIG9mICIrSC5kKHQpKX0sCiRTOjV9CkwudFkucHJvdG90eXBl
PXsKJDI6ZnVuY3Rpb24oYSxiKXtMLnFKKCJoYW5kbGVQb3N0TGlua0NsaWNrOiAiK0guZChhKSxiKQp3
aW5kb3cuYWxlcnQoIkNvdWxkIG5vdCBsb2FkICIrSC5kKHRoaXMuYS5hKSsiICgiK0guZChhKSsiKS4i
KX0sCiRDOiIkMiIsCiRSOjIsCiRTOjF9CkwuQU8ucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFy
IHQ9Si5xRih1LmguYihhKSkscz10LiR0aQpzLkMoIn4oMSkiKS5iKEwuWE4oKSkKdS5NLmIobnVsbCkK
Vy5KRSh0LmEsdC5iLEwuWE4oKSwhMSxzLmQpfSwKJFM6M30KTC5Iby5wcm90b3R5cGU9ewokMTpmdW5j
dGlvbihhKXt2YXIgdCxzLHIKdS5oLmIoYSkKdD1KLnFGKGEpCnM9dC4kdGkKcj1zLkMoIn4oMSkiKS5i
KG5ldyBMLnh6KGEpKQp1Lk0uYihudWxsKQpXLkpFKHQuYSx0LmIsciwhMSxzLmQpfSwKJFM6M30KTC54
ei5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt1LlYuYihhKQpMLk1WKHUuYS5iKHRoaXMuYSkpfSwK
JFM6MTB9CkwuSUMucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQ9Si5xRih1LmguYihhKSks
cz10LiR0aQpzLkMoIn4oMSkiKS5iKEwuSDAoKSkKdS5NLmIobnVsbCkKVy5KRSh0LmEsdC5iLEwuSDAo
KSwhMSxzLmQpfSwKJFM6M30KTC5UVy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIK
dS5yLmIoYSkKdD1hLnN0YXR1cwppZih0PT09MjAwKXtzPUMuQ3QucFcoMCxhLnJlc3BvbnNlVGV4dCxu
dWxsKQpyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5uYXYtdHJlZSIpCkoubDUociwiIikKTC50WChy
LHMpfWVsc2Ugd2luZG93LmFsZXJ0KCJSZXF1ZXN0IGZhaWxlZDsgc3RhdHVzIG9mICIrSC5kKHQpKX0s
CiRTOjV9CkwueHIucHJvdG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXtMLnFKKCJsb2FkTmF2aWdhdGlv
blRyZWU6ICIrSC5kKGEpLGIpCndpbmRvdy5hbGVydCgiQ291bGQgbm90IGxvYWQgIit0aGlzLmErIiAo
IitILmQoYSkrIikuIil9LAokQzoiJDIiLAokUjoyLAokUzoxfQpMLlF2LnByb3RvdHlwZT17CiQxOmZ1
bmN0aW9uKGEpe3ZhciB0CnUuci5iKGEpCnQ9YS5zdGF0dXMKaWYodD09PTIwMCl7TC5BRihDLkN0LnBX
KDAsYS5yZXNwb25zZVRleHQsbnVsbCkpCkwueVgoIi5lZGl0LXBhbmVsIC5wYW5lbC1jb250ZW50Iil9
ZWxzZSB3aW5kb3cuYWxlcnQoIlJlcXVlc3QgZmFpbGVkOyBzdGF0dXMgb2YgIitILmQodCkpfSwKJFM6
NX0KTC5uNC5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe0wucUooImxvYWRSZWdpb25FeHBsYW5h
dGlvbjogIitILmQoYSksYikKd2luZG93LmFsZXJ0KCJDb3VsZCBub3QgbG9hZCAiK0guZCh0aGlzLmEp
KyIgKCIrSC5kKGEpKyIpLiIpfSwKJEM6IiQyIiwKJFI6MiwKJFM6MX0KTC5YQS5wcm90b3R5cGU9ewpF
YjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuITB9LAppMDpmdW5jdGlvbihhKXtyZXR1cm4hMH0sCiRpa0Y6
MX0KTS5sSS5wcm90b3R5cGU9ewpXTzpmdW5jdGlvbihhLGIpe3ZhciB0LHM9bnVsbApNLllGKCJhYnNv
bHV0ZSIsSC5WTShbYixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0sdS5zKSkKdD10aGlzLmEK
dD10LllyKGIpPjAmJiF0LmhLKGIpCmlmKHQpcmV0dXJuIGIKdD1ELlJYKCkKcmV0dXJuIHRoaXMucTco
MCx0LGIscyxzLHMscyxzLHMpfSwKdE06ZnVuY3Rpb24oYSl7dmFyIHQscyxyPVguQ0woYSx0aGlzLmEp
CnIuSVYoKQp0PXIuZApzPXQubGVuZ3RoCmlmKHM9PT0wKXt0PXIuYgpyZXR1cm4gdD09bnVsbD8iLiI6
dH1pZihzPT09MSl7dD1yLmIKcmV0dXJuIHQ9PW51bGw/Ii4iOnR9aWYoMD49cylyZXR1cm4gSC5PSCh0
LC0xKQp0LnBvcCgpCkMuTm0ubXYoci5lKQpyLklWKCkKcmV0dXJuIHIudygwKX0sCnE3OmZ1bmN0aW9u
KGEsYixjLGQsZSxmLGcsaCxpKXt2YXIgdD1ILlZNKFtiLGMsZCxlLGYsZyxoLGldLHUucykKTS5ZRigi
am9pbiIsdCkKcmV0dXJuIHRoaXMuSVAobmV3IEguVTUodCx1LmJCLmIobmV3IE0uTWkoKSksdS5jYykp
fSwKSVA6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxsCnUuY3MuYihhKQpmb3IodD1hLiR0
aSxzPXQuQygiYTIoY1guRSkiKS5iKG5ldyBNLnE3KCkpLHI9YS5na3ooYSksdD1uZXcgSC5TTyhyLHMs
dC5DKCJTTzxjWC5FPiIpKSxzPXRoaXMuYSxxPSExLHA9ITEsbz0iIjt0LkYoKTspe249ci5nbCgpCmlm
KHMuaEsobikmJnApe209WC5DTChuLHMpCmw9by5jaGFyQ29kZUF0KDApPT0wP286bwpvPUMueEIuTmoo
bCwwLHMuU3AobCwhMCkpCm0uYj1vCmlmKHMuZHMobykpQy5ObS5ZKG0uZSwwLHMuZ21JKCkpCm89bS53
KDApfWVsc2UgaWYocy5ZcihuKT4wKXtwPSFzLmhLKG4pCm89SC5kKG4pfWVsc2V7aWYoIShuLmxlbmd0
aD4wJiZzLlVkKG5bMF0pKSlpZihxKW8rPXMuZ21JKCkKbys9SC5kKG4pfXE9cy5kcyhuKX1yZXR1cm4g
by5jaGFyQ29kZUF0KDApPT0wP286b30sCm81OmZ1bmN0aW9uKGEpe3ZhciB0CmlmKCF0aGlzLnkzKGEp
KXJldHVybiBhCnQ9WC5DTChhLHRoaXMuYSkKdC5yUigpCnJldHVybiB0LncoMCl9LAp5MzpmdW5jdGlv
bihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsawphLnRvU3RyaW5nCnQ9dGhpcy5hCnM9dC5ZcihhKQpp
ZihzIT09MCl7aWYodD09PSQuS2soKSlmb3Iocj0wO3I8czsrK3IpaWYoQy54Qi5XKGEscik9PT00Nyly
ZXR1cm4hMApxPXMKcD00N31lbHNle3E9MApwPW51bGx9Zm9yKG89bmV3IEgucWooYSkuYSxuPW8ubGVu
Z3RoLHI9cSxtPW51bGw7cjxuOysrcixtPXAscD1sKXtsPUMueEIubShvLHIpCmlmKHQucjQobCkpe2lm
KHQ9PT0kLktrKCkmJmw9PT00NylyZXR1cm4hMAppZihwIT1udWxsJiZ0LnI0KHApKXJldHVybiEwCmlm
KHA9PT00NilrPW09PW51bGx8fG09PT00Nnx8dC5yNChtKQplbHNlIGs9ITEKaWYoaylyZXR1cm4hMH19
aWYocD09bnVsbClyZXR1cm4hMAppZih0LnI0KHApKXJldHVybiEwCmlmKHA9PT00Nil0PW09PW51bGx8
fHQucjQobSl8fG09PT00NgplbHNlIHQ9ITEKaWYodClyZXR1cm4hMApyZXR1cm4hMX0sCkhQOmZ1bmN0
aW9uKGEsYil7dmFyIHQscyxyLHEscCxvPXRoaXMsbj0nVW5hYmxlIHRvIGZpbmQgYSBwYXRoIHRvICIn
CmI9by5XTygwLGIpCnQ9by5hCmlmKHQuWXIoYik8PTAmJnQuWXIoYSk+MClyZXR1cm4gby5vNShhKQpp
Zih0LllyKGEpPD0wfHx0LmhLKGEpKWE9by5XTygwLGEpCmlmKHQuWXIoYSk8PTAmJnQuWXIoYik+MCl0
aHJvdyBILmIoWC5KVChuK0guZChhKSsnIiBmcm9tICInK0guZChiKSsnIi4nKSkKcz1YLkNMKGIsdCkK
cy5yUigpCnI9WC5DTChhLHQpCnIuclIoKQpxPXMuZAppZihxLmxlbmd0aD4wJiZKLlJNKHFbMF0sIi4i
KSlyZXR1cm4gci53KDApCnE9cy5iCnA9ci5iCmlmKHEhPXApcT1xPT1udWxsfHxwPT1udWxsfHwhdC5O
YyhxLHApCmVsc2UgcT0hMQppZihxKXJldHVybiByLncoMCkKd2hpbGUoITApe3E9cy5kCmlmKHEubGVu
Z3RoPjApe3A9ci5kCnE9cC5sZW5ndGg+MCYmdC5OYyhxWzBdLHBbMF0pfWVsc2UgcT0hMQppZighcSli
cmVhawpDLk5tLlc0KHMuZCwwKQpDLk5tLlc0KHMuZSwxKQpDLk5tLlc0KHIuZCwwKQpDLk5tLlc0KHIu
ZSwxKX1xPXMuZAppZihxLmxlbmd0aD4wJiZKLlJNKHFbMF0sIi4uIikpdGhyb3cgSC5iKFguSlQobitI
LmQoYSkrJyIgZnJvbSAiJytILmQoYikrJyIuJykpCnE9dS5OCkMuTm0uVUcoci5kLDAsUC5POChzLmQu
bGVuZ3RoLCIuLiIscSkpCkMuTm0uWShyLmUsMCwiIikKQy5ObS5VRyhyLmUsMSxQLk84KHMuZC5sZW5n
dGgsdC5nbUkoKSxxKSkKdD1yLmQKcT10Lmxlbmd0aAppZihxPT09MClyZXR1cm4iLiIKaWYocT4xJiZK
LlJNKEMuTm0uZ3JaKHQpLCIuIikpe3Q9ci5kCmlmKDA+PXQubGVuZ3RoKXJldHVybiBILk9IKHQsLTEp
CnQucG9wKCkKdD1yLmUKQy5ObS5tdih0KQpDLk5tLm12KHQpCkMuTm0uaSh0LCIiKX1yLmI9IiIKci5J
VigpCnJldHVybiByLncoMCl9fQpNLk1pLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiBI
LnkoYSkhPW51bGx9LAokUzo3fQpNLnE3LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiBI
LnkoYSkhPT0iIn0sCiRTOjd9Ck0uTm8ucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7SC55KGEpCnJl
dHVybiBhPT1udWxsPyJudWxsIjonIicrYSsnIid9LAokUzo2fQpCLkx1LnByb3RvdHlwZT17CnhaOmZ1
bmN0aW9uKGEpe3ZhciB0LHM9dGhpcy5ZcihhKQppZihzPjApcmV0dXJuIEoubGQoYSwwLHMpCmlmKHRo
aXMuaEsoYSkpe2lmKDA+PWEubGVuZ3RoKXJldHVybiBILk9IKGEsMCkKdD1hWzBdfWVsc2UgdD1udWxs
CnJldHVybiB0fSwKTmM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09Yn19ClguV0QucHJvdG90eXBlPXsK
SVY6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9dGhpcwp3aGlsZSghMCl7dD1yLmQKaWYoISh0Lmxlbmd0aCE9
PTAmJkouUk0oQy5ObS5ncloodCksIiIpKSlicmVhawp0PXIuZAppZigwPj10Lmxlbmd0aClyZXR1cm4g
SC5PSCh0LC0xKQp0LnBvcCgpCkMuTm0ubXYoci5lKX10PXIuZQpzPXQubGVuZ3RoCmlmKHM+MClDLk5t
LlkodCxzLTEsIiIpfSwKclI6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwLG8sbixtPXRoaXMsbD1ILlZN
KFtdLHUucykKZm9yKHQ9bS5kLHM9dC5sZW5ndGgscj0wLHE9MDtxPHQubGVuZ3RoO3QubGVuZ3RoPT09
c3x8KDAsSC5saykodCksKytxKXtwPXRbcV0Kbz1KLmlhKHApCmlmKCEoby5ETihwLCIuIil8fG8uRE4o
cCwiIikpKWlmKG8uRE4ocCwiLi4iKSlpZihsLmxlbmd0aD4wKWwucG9wKCkKZWxzZSArK3IKZWxzZSBD
Lk5tLmkobCxwKX1pZihtLmI9PW51bGwpQy5ObS5VRyhsLDAsUC5POChyLCIuLiIsdS5OKSkKaWYobC5s
ZW5ndGg9PT0wJiZtLmI9PW51bGwpQy5ObS5pKGwsIi4iKQpuPVAuZEgobC5sZW5ndGgsbmV3IFgucVIo
bSksITAsdS5OKQp0PW0uYgp0PXQhPW51bGwmJmwubGVuZ3RoPjAmJm0uYS5kcyh0KT9tLmEuZ21JKCk6
IiIKSC50NihuKS5kLmIodCkKaWYoISFuLmZpeGVkJGxlbmd0aClILnZoKFAuTDQoImluc2VydCIpKQpu
LnNwbGljZSgwLDAsdCkKbS5zbkoobCkKbS5zUGgobikKdD1tLmIKaWYodCE9bnVsbCYmbS5hPT09JC5L
aygpKXt0LnRvU3RyaW5nCm0uYj1ILnlzKHQsIi8iLCJcXCIpfW0uSVYoKX0sCnc6ZnVuY3Rpb24oYSl7
dmFyIHQscyxyPXRoaXMscT1yLmIKcT1xIT1udWxsP3E6IiIKZm9yKHQ9MDt0PHIuZC5sZW5ndGg7Kyt0
KXtzPXIuZQppZih0Pj1zLmxlbmd0aClyZXR1cm4gSC5PSChzLHQpCnM9cStILmQoc1t0XSkKcT1yLmQK
aWYodD49cS5sZW5ndGgpcmV0dXJuIEguT0gocSx0KQpxPXMrSC5kKHFbdF0pfXErPUguZChDLk5tLmdy
WihyLmUpKQpyZXR1cm4gcS5jaGFyQ29kZUF0KDApPT0wP3E6cX0sCnNuSjpmdW5jdGlvbihhKXt0aGlz
LmQ9dS5pLmIoYSl9LApzUGg6ZnVuY3Rpb24oYSl7dGhpcy5lPXUuaS5iKGEpfX0KWC5xUi5wcm90b3R5
cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmEuZ21JKCl9LAokUzozN30KWC5kdi5wcm90
b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJQYXRoRXhjZXB0aW9uOiAiK3RoaXMuYX19Ck8uekwu
cHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5nb2ModGhpcyl9fQpFLk9GLnByb3Rv
dHlwZT17ClVkOmZ1bmN0aW9uKGEpe3JldHVybiBDLnhCLnRnKGEsIi8iKX0sCnI0OmZ1bmN0aW9uKGEp
e3JldHVybiBhPT09NDd9LApkczpmdW5jdGlvbihhKXt2YXIgdD1hLmxlbmd0aApyZXR1cm4gdCE9PTAm
JkMueEIubShhLHQtMSkhPT00N30sClNwOmZ1bmN0aW9uKGEsYil7aWYoYS5sZW5ndGghPT0wJiZDLnhC
LlcoYSwwKT09PTQ3KXJldHVybiAxCnJldHVybiAwfSwKWXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMu
U3AoYSwhMSl9LApoSzpmdW5jdGlvbihhKXtyZXR1cm4hMX0sCmdvYzpmdW5jdGlvbigpe3JldHVybiJw
b3NpeCJ9LApnbUk6ZnVuY3Rpb24oKXtyZXR1cm4iLyJ9fQpGLnJ1LnByb3RvdHlwZT17ClVkOmZ1bmN0
aW9uKGEpe3JldHVybiBDLnhCLnRnKGEsIi8iKX0sCnI0OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09NDd9
LApkczpmdW5jdGlvbihhKXt2YXIgdD1hLmxlbmd0aAppZih0PT09MClyZXR1cm4hMQppZihDLnhCLm0o
YSx0LTEpIT09NDcpcmV0dXJuITAKcmV0dXJuIEMueEIuVGMoYSwiOi8vIikmJnRoaXMuWXIoYSk9PT10
fSwKU3A6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwPWEubGVuZ3RoCmlmKHA9PT0wKXJldHVybiAw
CmlmKEMueEIuVyhhLDApPT09NDcpcmV0dXJuIDEKZm9yKHQ9MDt0PHA7Kyt0KXtzPUMueEIuVyhhLHQp
CmlmKHM9PT00NylyZXR1cm4gMAppZihzPT09NTgpe2lmKHQ9PT0wKXJldHVybiAwCnI9Qy54Qi5YVShh
LCIvIixDLnhCLlFpKGEsIi8vIix0KzEpP3QrMzp0KQppZihyPD0wKXJldHVybiBwCmlmKCFifHxwPHIr
MylyZXR1cm4gcgppZighQy54Qi5uKGEsImZpbGU6Ly8iKSlyZXR1cm4gcgppZighQi5ZdShhLHIrMSkp
cmV0dXJuIHIKcT1yKzMKcmV0dXJuIHA9PT1xP3E6cis0fX1yZXR1cm4gMH0sCllyOmZ1bmN0aW9uKGEp
e3JldHVybiB0aGlzLlNwKGEsITEpfSwKaEs6ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RoIT09MCYm
Qy54Qi5XKGEsMCk9PT00N30sCmdvYzpmdW5jdGlvbigpe3JldHVybiJ1cmwifSwKZ21JOmZ1bmN0aW9u
KCl7cmV0dXJuIi8ifX0KTC5JVi5wcm90b3R5cGU9ewpVZDpmdW5jdGlvbihhKXtyZXR1cm4gQy54Qi50
ZyhhLCIvIil9LApyNDpmdW5jdGlvbihhKXtyZXR1cm4gYT09PTQ3fHxhPT09OTJ9LApkczpmdW5jdGlv
bihhKXt2YXIgdD1hLmxlbmd0aAppZih0PT09MClyZXR1cm4hMQp0PUMueEIubShhLHQtMSkKcmV0dXJu
ISh0PT09NDd8fHQ9PT05Mil9LApTcDpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj1hLmxlbmd0aAppZihy
PT09MClyZXR1cm4gMAp0PUMueEIuVyhhLDApCmlmKHQ9PT00NylyZXR1cm4gMQppZih0PT09OTIpe2lm
KHI8Mnx8Qy54Qi5XKGEsMSkhPT05MilyZXR1cm4gMQpzPUMueEIuWFUoYSwiXFwiLDIpCmlmKHM+MCl7
cz1DLnhCLlhVKGEsIlxcIixzKzEpCmlmKHM+MClyZXR1cm4gc31yZXR1cm4gcn1pZihyPDMpcmV0dXJu
IDAKaWYoIUIuT1ModCkpcmV0dXJuIDAKaWYoQy54Qi5XKGEsMSkhPT01OClyZXR1cm4gMApyPUMueEIu
VyhhLDIpCmlmKCEocj09PTQ3fHxyPT09OTIpKXJldHVybiAwCnJldHVybiAzfSwKWXI6ZnVuY3Rpb24o
YSl7cmV0dXJuIHRoaXMuU3AoYSwhMSl9LApoSzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5ZcihhKT09
PTF9LApPdDpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PT1iKXJldHVybiEwCmlmKGE9PT00NylyZXR1
cm4gYj09PTkyCmlmKGE9PT05MilyZXR1cm4gYj09PTQ3CmlmKChhXmIpIT09MzIpcmV0dXJuITEKdD1h
fDMyCnJldHVybiB0Pj05NyYmdDw9MTIyfSwKTmM6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIKaWYoYT09
YilyZXR1cm4hMAp0PWEubGVuZ3RoCmlmKHQhPT1iLmxlbmd0aClyZXR1cm4hMQpmb3Iocz1KLnJZKGIp
LHI9MDtyPHQ7KytyKWlmKCF0aGlzLk90KEMueEIuVyhhLHIpLHMuVyhiLHIpKSlyZXR1cm4hMQpyZXR1
cm4hMH0sCmdvYzpmdW5jdGlvbigpe3JldHVybiJ3aW5kb3dzIn0sCmdtSTpmdW5jdGlvbigpe3JldHVy
biJcXCJ9fTsoZnVuY3Rpb24gYWxpYXNlcygpe3ZhciB0PUoudkIucHJvdG90eXBlCnQuVT10LncKdC5T
aj10LmU3CnQ9Si5NRi5wcm90b3R5cGUKdC50PXQudwp0PVAuY1gucHJvdG90eXBlCnQuR0c9dC5ldgp0
PVAuay5wcm90b3R5cGUKdC54Yj10LncKdD1XLmN2LnByb3RvdHlwZQp0LkRXPXQucjYKdD1XLm02LnBy
b3RvdHlwZQp0LmpGPXQuRWIKdD1QLkU0LnByb3RvdHlwZQp0LlVyPXQucQp0LmU0PXQuWX0pKCk7KGZ1
bmN0aW9uIGluc3RhbGxUZWFyT2Zmcygpe3ZhciB0PWh1bmtIZWxwZXJzLl9zdGF0aWNfMSxzPWh1bmtI
ZWxwZXJzLl9zdGF0aWNfMCxyPWh1bmtIZWxwZXJzLmluc3RhbGxJbnN0YW5jZVRlYXJPZmYscT1odW5r
SGVscGVycy5pbnN0YWxsU3RhdGljVGVhck9mZgp0KFAsIkVYIiwiWlYiLDgpCnQoUCwieXQiLCJvQSIs
OCkKdChQLCJxVyIsIkJ6Iiw4KQpzKFAsIlVJIiwiZU4iLDIpCnIoUC5QZi5wcm90b3R5cGUsImdZSiIs
MCwxLG51bGwsWyIkMiIsIiQxIl0sWyJ3MCIsInBtIl0sMjMsMCkKdChQLCJQSCIsIk10Iiw2KQpxKFcs
InBTIiw0LG51bGwsWyIkNCJdLFsieVciXSwxNiwwKQpxKFcsIlY0Iiw0LG51bGwsWyIkNCJdLFsiUVci
XSwxNiwwKQp0KFAsImlHIiwid1kiLDQpCnQoUCwidzAiLCJMNyIsMjkpCnQoTCwiWE4iLCJ0MiIsMTQp
CnQoTCwiSDAiLCJ1bSIsMTQpfSkoKTsoZnVuY3Rpb24gaW5oZXJpdGFuY2UoKXt2YXIgdD1odW5rSGVs
cGVycy5taXhpbixzPWh1bmtIZWxwZXJzLmluaGVyaXQscj1odW5rSGVscGVycy5pbmhlcml0TWFueQpz
KFAuayxudWxsKQpyKFAuayxbSC5lbyxKLnZCLEoubTEsUC5uWSxQLmNYLEguYTcsUC5BbixILlNVLEgu
UmUsSC53dixQLlBuLEguV1UsSC5MSSxILlRwLEguWnIsUC5YUyxILlhPLFAuWWssSC5kYixILk42LEgu
VlIsSC5FSyxILlBiLEgudFEsSC5TZCxILkpjLEguRyxQLlczLFAuUGYsUC5GZSxQLnZzLFAuT00sUC5x
aCxQLk1PLFAua1QsUC5DdyxQLm0wLFAuWHYsUC5ibixQLmxtLFAubEQsUC5LUCxQLmxmLFAuV1ksUC5V
ayxQLlJ3LFAuYnosUC5hMixQLmlQLFAuRkssUC5rNSxQLktZLFAuQ0QsUC5hRSxQLkVILFAuek0sUC5a
MCxQLmM4LFAuT2QsUC5pYixQLkd6LFAucVUsUC5SbixQLkdELFAuRG4sUC5QRSxQLlVmLFcuaWQsVy5G
ayxXLkpRLFcuR20sVy52RCxXLm02LFcuT3csVy5XOSxXLmRXLFcua0YsVy5tayxXLktvLFAuaUosUC5F
NCxQLm42LFQuR1YsTC5YQSxNLmxJLE8uekwsWC5XRCxYLmR2XSkKcihKLnZCLFtKLnlFLEouWUUsSi5N
RixKLmpkLEoucUksSi5EcixILkVULFcuRDAsVy5BeixXLkxlLFcuTmgsVy5JQixXLm43LFcuZWEsVy5i
cixXLlNnLFcudTgsVy5LNyxXLlhXLFAuaEZdKQpyKEouTUYsW0ouaUMsSi5rZCxKLmM1XSkKcyhKLlBv
LEouamQpCnIoSi5xSSxbSi51cixKLlZBXSkKcyhQLkxVLFAublkpCnIoUC5MVSxbSC5YQyxXLnd6LFcu
ZTddKQpzKEgucWosSC5YQykKcihQLmNYLFtILmJRLEguVTUsUC5tVyxILnVuXSkKcihILmJRLFtILmFM
LEguaTUsUC54dV0pCnIoSC5hTCxbSC5uSCxILkE4LFAuaThdKQpzKEguU08sUC5BbikKcyhQLlJVLFAu
UG4pCnMoUC5HaixQLlJVKQpzKEguUEQsUC5HaikKcyhILkxQLEguV1UpCnIoSC5UcCxbSC5DaixILkFt
LEgubGMsSC5kQyxILndOLEguVlgsUC50aCxQLmhhLFAuVnMsUC5GdCxQLnlILFAuZGEsUC5vUSxQLnBW
LFAuVTcsUC52cixQLnJILFAuS0YsUC5aTCxQLlJULFAualosUC5ycSxQLlJXLFAuQjUsUC5QSSxQLnBL
LFAuaGosUC5WcCxQLk9SLFAucmEsUC5XRixQLm4xLFAuY1MsUC5WQyxQLnRwLFAuZTEsUC5OWSxQLlJa
LFAucTMsUC55SSxQLmM2LFAucWQsVy5DdixXLmJVLFcuaEgsVy5LUyxXLkEzLFcudk4sVy5VdixXLkVn
LFcuRW8sVy5XayxXLklBLFcuZm0sUC5sUixQLmpnLFAuR0UsUC5QQyxQLlltLFAuTnosUC5RUyxQLm5w
LEwuZSxMLlZXLEwuTCxMLmVTLEwuRmgsTC55dSxMLnpELEwuVlMsTC5HSCxMLld4LEwublQsTC5CWixM
LkZRLEwudFksTC5BTyxMLkhvLEwueHosTC5JQyxMLlRXLEwueHIsTC5RdixMLm40LE0uTWksTS5xNyxN
Lk5vLFgucVJdKQpyKFAuWFMsW0guVzAsSC5heixILnZWLEguRXEsUC5DNixILnU5LFAubixQLnUsUC5t
cCxQLnViLFAuZHMsUC5saixQLlVWLFAuY10pCnIoSC5sYyxbSC56eCxILnJUXSkKcyhILmtZLFAuQzYp
CnMoUC5pbCxQLllrKQpyKFAuaWwsW0guTjUsUC51dyxXLkQ5LFcuU3ldKQpzKEguS1csUC5tVykKcyhI
LmIwLEguRVQpCnIoSC5iMCxbSC5SRyxILldCXSkKcyhILlZQLEguUkcpCnMoSC5EZyxILlZQKQpzKEgu
WkcsSC5XQikKcyhILlBnLEguWkcpCnIoSC5QZyxbSC54aixILmRFLEguWkEsSC53ZixILlBxLEguZUUs
SC5WNl0pCnIoSC51OSxbSC5oeixILmlNXSkKcyhQLlpmLFAuUGYpCnMoUC5KaSxQLm0wKQpzKFAuYjYs
UC5YdikKcyhQLlZqLFAuV1kpCnIoUC5VayxbUC5DVixQLlppLFAuYnldKQpzKFAud0ksUC5rVCkKcihQ
LndJLFtQLlU4LFAuTXgsUC5FMyxQLkdZXSkKcyhQLnU1LFAuWmkpCnIoUC5GSyxbUC5DUCxQLktOXSkK
cihQLnUsW1AuYkosUC5lWV0pCnMoUC5xZSxQLkRuKQpyKFcuRDAsW1cudUgsVy53YSxXLks1LFcuQ21d
KQpyKFcudUgsW1cuY3YsVy5ueCxXLlFGLFcuQ1FdKQpyKFcuY3YsW1cucUUsUC5kNV0pCnIoVy5xRSxb
Vy5HaCxXLmZZLFcubkIsVy5RUCxXLmg0LFcubHAsVy5UYixXLkl2LFcuQlQsVy55WV0pCnMoVy5vSixX
LkxlKQpzKFcuVDUsVy5BeikKcyhXLlZiLFcuUUYpCnMoVy5PNyxXLndhKQpyKFcuZWEsW1cudzYsVy5l
d10pCnMoVy5BaixXLnc2KQpzKFcuckIsVy5LNykKcyhXLkJILFcuckIpCnMoVy53NCxXLklCKQpzKFcu
b2EsVy5YVykKcyhXLnJoLFcub2EpCnMoVy5pNyxXLkQ5KQpzKFAuQXMsUC5WaikKcihQLkFzLFtXLkk0
LFAuS2VdKQpzKFcuUk8sUC5xaCkKcyhXLkNxLFcuUk8pCnMoVy54QyxQLk1PKQpzKFcuY3QsVy5tNikK
cyhQLkJmLFAuaUopCnIoUC5FNCxbUC5yNyxQLmNvXSkKcyhQLlR6LFAuY28pCnMoUC5uZCxQLmQ1KQpz
KEIuTHUsTy56TCkKcihCLkx1LFtFLk9GLEYucnUsTC5JVl0pCnQoSC5YQyxILlJlKQp0KEguUkcsUC5s
RCkKdChILlZQLEguU1UpCnQoSC5XQixQLmxEKQp0KEguWkcsSC5TVSkKdChQLm5ZLFAubEQpCnQoUC5X
WSxQLmxmKQp0KFAuUlUsUC5LUCkKdChXLkxlLFcuaWQpCnQoVy5LNyxQLmxEKQp0KFcuckIsVy5HbSkK
dChXLlhXLFAubEQpCnQoVy5vYSxXLkdtKQp0KFAuY28sUC5sRCl9KSgpCnZhciB2PXt0eXBlVW5pdmVy
c2U6e2VDOm5ldyBNYXAoKSx0Ujp7fSxlVDp7fSx0UFY6e30sc0VBOltdfSxtYW5nbGVkR2xvYmFsTmFt
ZXM6e0tOOiJpbnQiLENQOiJkb3VibGUiLEZLOiJudW0iLHFVOiJTdHJpbmciLGEyOiJib29sIixjODoi
TnVsbCIsek06Ikxpc3QifSxtYW5nbGVkTmFtZXM6e30sZ2V0VHlwZUZyb21OYW1lOmdldEdsb2JhbEZy
b21OYW1lLG1ldGFkYXRhOltdLHR5cGVzOlsiYzgoKSIsImM4KEAsQCkiLCJ+KCkiLCJjOChjdikiLCJA
KEApIiwiYzgoTzcpIiwicVUocVUpIiwiYTIocVUpIiwifih+KCkpIiwiYzgocVUscVUpIiwiYzgoQWop
IiwiYzgocVUpIiwiYzgoQCkiLCJhMihrRikiLCJ+KEFqKSIsImM4KGVhKSIsImEyKGN2LHFVLHFVLEpR
KSIsImM4KEdELEApIiwiWjA8cVUscVU+KFowPHFVLHFVPixxVSkiLCJjOChxVSxAKSIsIn4ocVVbQF0p
IiwiS04oS04sS04pIiwiQChALHFVKSIsIn4oa1tHel0pIiwibjYoS04pIiwiYzgoQFtHel0pIiwiYTIo
dUgpIiwiYzgoZXcpIiwiQChlYSkiLCJrKEApIiwiYTIoeHU8cVU+KSIsInI3KEApIiwiVHo8QD4oQCki
LCJFNChAKSIsInZzPEA+KEApIiwifihxVSxLTikiLCJjOCh+KCkpIiwicVUoS04pIiwiQChxVSkiLCJ+
KHVILHVIKSIsIm42KEAsQCkiXSxpbnRlcmNlcHRvcnNCeVRhZzpudWxsLGxlYWZUYWdzOm51bGx9Ckgu
eGIodi50eXBlVW5pdmVyc2UsSlNPTi5wYXJzZSgneyJjNSI6Ik1GIiwiaUMiOiJNRiIsImtkIjoiTUYi
LCJyeCI6ImVhIiwiZTUiOiJlYSIsIlkwIjoiZDUiLCJXdCI6ImQ1IiwidjAiOiJldyIsIk1yIjoicUUi
LCJlTCI6InFFIiwiSTAiOiJ1SCIsImhzIjoidUgiLCJYZyI6IlFGIiwibnIiOiJBaiIsInk0IjoidzYi
LCJkTiI6IkNtIiwianIiOiJueCIsImtKIjoibngiLCJ6VSI6IkRnIiwiZGYiOiJFVCIsInlFIjp7ImEy
IjpbXX0sIllFIjp7ImM4IjpbXX0sIk1GIjp7InZtIjpbXSwiRUgiOltdfSwiamQiOnsiek0iOlsiMSJd
LCJjWCI6WyIxIl19LCJQbyI6eyJqZCI6WyIxIl0sInpNIjpbIjEiXSwiY1giOlsiMSJdfSwibTEiOnsi
QW4iOlsiMSJdfSwicUkiOnsiQ1AiOltdLCJGSyI6W119LCJ1ciI6eyJLTiI6W10sIkNQIjpbXSwiRksi
OltdfSwiVkEiOnsiQ1AiOltdLCJGSyI6W119LCJEciI6eyJxVSI6W10sInZYIjpbXX0sInFqIjp7IlJl
IjpbIktOIl0sImxEIjpbIktOIl0sInpNIjpbIktOIl0sImNYIjpbIktOIl0sImxELkUiOiJLTiIsIlJl
LkUiOiJLTiJ9LCJiUSI6eyJjWCI6WyIxIl19LCJhTCI6eyJjWCI6WyIxIl19LCJuSCI6eyJhTCI6WyIx
Il0sImNYIjpbIjEiXSwiYUwuRSI6IjEiLCJjWC5FIjoiMSJ9LCJhNyI6eyJBbiI6WyIxIl19LCJBOCI6
eyJhTCI6WyIyIl0sImNYIjpbIjIiXSwiYUwuRSI6IjIiLCJjWC5FIjoiMiJ9LCJVNSI6eyJjWCI6WyIx
Il0sImNYLkUiOiIxIn0sIlNPIjp7IkFuIjpbIjEiXX0sIlhDIjp7IlJlIjpbIjEiXSwibEQiOlsiMSJd
LCJ6TSI6WyIxIl0sImNYIjpbIjEiXX0sInd2Ijp7IkdEIjpbXX0sIlBEIjp7IkdqIjpbIjEiLCIyIl0s
IlJVIjpbIjEiLCIyIl0sIlBuIjpbIjEiLCIyIl0sIktQIjpbIjEiLCIyIl0sIlowIjpbIjEiLCIyIl19
LCJXVSI6eyJaMCI6WyIxIiwiMiJdfSwiTFAiOnsiV1UiOlsiMSIsIjIiXSwiWjAiOlsiMSIsIjIiXX0s
IkxJIjp7InZRIjpbXX0sIlcwIjp7IlhTIjpbXX0sImF6Ijp7IlhTIjpbXX0sInZWIjp7IlhTIjpbXX0s
IlhPIjp7Ikd6IjpbXX0sIlRwIjp7IkVIIjpbXX0sImxjIjp7IkVIIjpbXX0sInp4Ijp7IkVIIjpbXX0s
InJUIjp7IkVIIjpbXX0sIkVxIjp7IlhTIjpbXX0sImtZIjp7IlhTIjpbXX0sIk41Ijp7IkZvIjpbIjEi
LCIyIl0sIllrIjpbIjEiLCIyIl0sIlowIjpbIjEiLCIyIl0sIllrLksiOiIxIiwiWWsuViI6IjIifSwi
aTUiOnsiY1giOlsiMSJdLCJjWC5FIjoiMSJ9LCJONiI6eyJBbiI6WyIxIl19LCJWUiI6eyJ3TCI6W10s
InZYIjpbXX0sIkVLIjp7ImliIjpbXSwiT2QiOltdfSwiS1ciOnsiY1giOlsiaWIiXSwiY1guRSI6Imli
In0sIlBiIjp7IkFuIjpbImliIl19LCJ0USI6eyJPZCI6W119LCJ1biI6eyJjWCI6WyJPZCJdLCJjWC5F
IjoiT2QifSwiU2QiOnsiQW4iOlsiT2QiXX0sIkVUIjp7IkFTIjpbXX0sImIwIjp7IlhqIjpbIkAiXSwi
RVQiOltdLCJBUyI6W119LCJEZyI6eyJsRCI6WyJDUCJdLCJYaiI6WyJAIl0sInpNIjpbIkNQIl0sIkVU
IjpbXSwiU1UiOlsiQ1AiXSwiQVMiOltdLCJjWCI6WyJDUCJdLCJsRC5FIjoiQ1AifSwiUGciOnsibEQi
OlsiS04iXSwiek0iOlsiS04iXSwiWGoiOlsiQCJdLCJFVCI6W10sIlNVIjpbIktOIl0sIkFTIjpbXSwi
Y1giOlsiS04iXX0sInhqIjp7ImxEIjpbIktOIl0sInpNIjpbIktOIl0sIlhqIjpbIkAiXSwiRVQiOltd
LCJTVSI6WyJLTiJdLCJBUyI6W10sImNYIjpbIktOIl0sImxELkUiOiJLTiJ9LCJkRSI6eyJsRCI6WyJL
TiJdLCJ6TSI6WyJLTiJdLCJYaiI6WyJAIl0sIkVUIjpbXSwiU1UiOlsiS04iXSwiQVMiOltdLCJjWCI6
WyJLTiJdLCJsRC5FIjoiS04ifSwiWkEiOnsibEQiOlsiS04iXSwiek0iOlsiS04iXSwiWGoiOlsiQCJd
LCJFVCI6W10sIlNVIjpbIktOIl0sIkFTIjpbXSwiY1giOlsiS04iXSwibEQuRSI6IktOIn0sIndmIjp7
ImxEIjpbIktOIl0sInpNIjpbIktOIl0sIlhqIjpbIkAiXSwiRVQiOltdLCJTVSI6WyJLTiJdLCJBUyI6
W10sImNYIjpbIktOIl0sImxELkUiOiJLTiJ9LCJQcSI6eyJsRCI6WyJLTiJdLCJ6TSI6WyJLTiJdLCJY
aiI6WyJAIl0sIkVUIjpbXSwiU1UiOlsiS04iXSwiQVMiOltdLCJjWCI6WyJLTiJdLCJsRC5FIjoiS04i
fSwiZUUiOnsibEQiOlsiS04iXSwiek0iOlsiS04iXSwiWGoiOlsiQCJdLCJFVCI6W10sIlNVIjpbIktO
Il0sIkFTIjpbXSwiY1giOlsiS04iXSwibEQuRSI6IktOIn0sIlY2Ijp7Im42IjpbXSwibEQiOlsiS04i
XSwiek0iOlsiS04iXSwiWGoiOlsiQCJdLCJFVCI6W10sIlNVIjpbIktOIl0sIkFTIjpbXSwiY1giOlsi
S04iXSwibEQuRSI6IktOIn0sInU5Ijp7IlhTIjpbXX0sImh6Ijp7IlhTIjpbXX0sImlNIjp7IlhTIjpb
XX0sIlpmIjp7IlBmIjpbIjEiXX0sInZzIjp7ImI4IjpbIjEiXX0sIkN3Ijp7IlhTIjpbXX0sIm0wIjp7
IkpCIjpbXX0sIkppIjp7IkpCIjpbXX0sImI2Ijp7Ilh2IjpbIjEiXSwieHUiOlsiMSJdLCJjWCI6WyIx
Il19LCJsbSI6eyJBbiI6WyIxIl19LCJtVyI6eyJjWCI6WyIxIl19LCJMVSI6eyJsRCI6WyIxIl0sInpN
IjpbIjEiXSwiY1giOlsiMSJdfSwiaWwiOnsiWWsiOlsiMSIsIjIiXSwiWjAiOlsiMSIsIjIiXX0sIllr
Ijp7IlowIjpbIjEiLCIyIl19LCJQbiI6eyJaMCI6WyIxIiwiMiJdfSwiR2oiOnsiUlUiOlsiMSIsIjIi
XSwiUG4iOlsiMSIsIjIiXSwiS1AiOlsiMSIsIjIiXSwiWjAiOlsiMSIsIjIiXX0sIlZqIjp7ImxmIjpb
IjEiXSwieHUiOlsiMSJdLCJjWCI6WyIxIl19LCJYdiI6eyJ4dSI6WyIxIl0sImNYIjpbIjEiXX0sInV3
Ijp7IllrIjpbInFVIiwiQCJdLCJaMCI6WyJxVSIsIkAiXSwiWWsuSyI6InFVIiwiWWsuViI6IkAifSwi
aTgiOnsiYUwiOlsicVUiXSwiY1giOlsicVUiXSwiYUwuRSI6InFVIiwiY1guRSI6InFVIn0sIkNWIjp7
IlVrIjpbInpNPEtOPiIsInFVIl0sIlVrLlMiOiJ6TTxLTj4ifSwiVTgiOnsid0kiOlsiek08S04+Iiwi
cVUiXX0sIlppIjp7IlVrIjpbInFVIiwiek08S04+Il19LCJieSI6eyJVayI6WyJrIiwicVUiXSwiVWsu
UyI6ImsifSwiTXgiOnsid0kiOlsicVUiLCJrIl19LCJ1NSI6eyJVayI6WyJxVSIsInpNPEtOPiJdLCJV
ay5TIjoicVUifSwiRTMiOnsid0kiOlsicVUiLCJ6TTxLTj4iXX0sIkdZIjp7IndJIjpbInpNPEtOPiIs
InFVIl19LCJDUCI6eyJGSyI6W119LCJDNiI6eyJYUyI6W119LCJuIjp7IlhTIjpbXX0sInUiOnsiWFMi
OltdfSwiYkoiOnsiWFMiOltdfSwiZVkiOnsiWFMiOltdfSwibXAiOnsiWFMiOltdfSwidWIiOnsiWFMi
OltdfSwiZHMiOnsiWFMiOltdfSwibGoiOnsiWFMiOltdfSwiVVYiOnsiWFMiOltdfSwiazUiOnsiWFMi
OltdfSwiS1kiOnsiWFMiOltdfSwiYyI6eyJYUyI6W119LCJLTiI6eyJGSyI6W119LCJ6TSI6eyJjWCI6
WyIxIl19LCJpYiI6eyJPZCI6W119LCJ4dSI6eyJjWCI6WyIxIl19LCJxVSI6eyJ2WCI6W119LCJSbiI6
eyJCTCI6W119LCJEbiI6eyJpRCI6W119LCJVZiI6eyJpRCI6W119LCJxZSI6eyJpRCI6W119LCJxRSI6
eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwiR2giOnsiY3YiOltdLCJ1SCI6W10sIkQwIjpbXX0sImZZ
Ijp7ImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJuQiI6eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwi
UVAiOnsiY3YiOltdLCJ1SCI6W10sIkQwIjpbXX0sIm54Ijp7InVIIjpbXSwiRDAiOltdfSwiUUYiOnsi
dUgiOltdLCJEMCI6W119LCJJQiI6eyJ0biI6WyJGSyJdfSwid3oiOnsibEQiOlsiMSJdLCJ6TSI6WyIx
Il0sImNYIjpbIjEiXSwibEQuRSI6IjEifSwiY3YiOnsidUgiOltdLCJEMCI6W119LCJUNSI6eyJBeiI6
W119LCJoNCI6eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwiVmIiOnsidUgiOltdLCJEMCI6W119LCJP
NyI6eyJEMCI6W119LCJ3YSI6eyJEMCI6W119LCJBaiI6eyJlYSI6W119LCJlNyI6eyJsRCI6WyJ1SCJd
LCJ6TSI6WyJ1SCJdLCJjWCI6WyJ1SCJdLCJsRC5FIjoidUgifSwidUgiOnsiRDAiOltdfSwiQkgiOnsi
R20iOlsidUgiXSwibEQiOlsidUgiXSwiek0iOlsidUgiXSwiWGoiOlsidUgiXSwiY1giOlsidUgiXSwi
bEQuRSI6InVIIiwiR20uRSI6InVIIn0sImV3Ijp7ImVhIjpbXX0sImxwIjp7ImN2IjpbXSwidUgiOltd
LCJEMCI6W119LCJUYiI6eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwiSXYiOnsiY3YiOltdLCJ1SCI6
W10sIkQwIjpbXX0sIkJUIjp7ImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJ5WSI6eyJjdiI6W10sInVI
IjpbXSwiRDAiOltdfSwidzYiOnsiZWEiOltdfSwiSzUiOnsidjYiOltdLCJEMCI6W119LCJDbSI6eyJE
MCI6W119LCJDUSI6eyJ1SCI6W10sIkQwIjpbXX0sInc0Ijp7InRuIjpbIkZLIl19LCJyaCI6eyJHbSI6
WyJ1SCJdLCJsRCI6WyJ1SCJdLCJ6TSI6WyJ1SCJdLCJYaiI6WyJ1SCJdLCJjWCI6WyJ1SCJdLCJsRC5F
IjoidUgiLCJHbS5FIjoidUgifSwiRDkiOnsiWWsiOlsicVUiLCJxVSJdLCJaMCI6WyJxVSIsInFVIl19
LCJpNyI6eyJZayI6WyJxVSIsInFVIl0sIlowIjpbInFVIiwicVUiXSwiWWsuSyI6InFVIiwiWWsuViI6
InFVIn0sIlN5Ijp7IllrIjpbInFVIiwicVUiXSwiWjAiOlsicVUiLCJxVSJdLCJZay5LIjoicVUiLCJZ
ay5WIjoicVUifSwiSTQiOnsibGYiOlsicVUiXSwieHUiOlsicVUiXSwiY1giOlsicVUiXX0sIlJPIjp7
InFoIjpbIjEiXX0sIkNxIjp7IlJPIjpbIjEiXSwicWgiOlsiMSJdfSwiSlEiOnsia0YiOltdfSwidkQi
Onsia0YiOltdfSwibTYiOnsia0YiOltdfSwiY3QiOnsia0YiOltdfSwiT3ciOnsia0YiOltdfSwiVzki
OnsiQW4iOlsiMSJdfSwiZFciOnsidjYiOltdLCJEMCI6W119LCJtayI6eyJ5MCI6W119LCJLbyI6eyJv
biI6W119LCJBcyI6eyJsZiI6WyJxVSJdLCJ4dSI6WyJxVSJdLCJjWCI6WyJxVSJdfSwicjciOnsiRTQi
OltdfSwiVHoiOnsibEQiOlsiMSJdLCJ6TSI6WyIxIl0sIkU0IjpbXSwiY1giOlsiMSJdLCJsRC5FIjoi
MSJ9LCJuZCI6eyJkNSI6W10sImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJLZSI6eyJsZiI6WyJxVSJd
LCJ4dSI6WyJxVSJdLCJjWCI6WyJxVSJdfSwiZDUiOnsiY3YiOltdLCJ1SCI6W10sIkQwIjpbXX0sIm42
Ijp7InpNIjpbIktOIl0sIkFTIjpbXSwiY1giOlsiS04iXX0sIlhBIjp7ImtGIjpbXX0sIk9GIjp7Ikx1
IjpbXX0sInJ1Ijp7Ikx1IjpbXX0sIklWIjp7Ikx1IjpbXX19JykpCkguRkYodi50eXBlVW5pdmVyc2Us
SlNPTi5wYXJzZSgneyJiUSI6MSwiWEMiOjEsIk1PIjoxLCJrVCI6MiwibVciOjEsIkxVIjoxLCJpbCI6
MiwiVmoiOjEsIm5ZIjoxLCJXWSI6MSwiY28iOjF9JykpCnZhciB1PShmdW5jdGlvbiBydGlpKCl7dmFy
IHQ9SC5OMApyZXR1cm57YTp0KCJHaCIpLG46dCgiQ3ciKSxEOnQoIm5CIiksZDp0KCJBeiIpLFg6dCgi
UVAiKSxGOnQoIlBEPEdELEA+IiksaDp0KCJjdiIpLGJVOnQoIlhTIiksQjp0KCJlYSIpLGFTOnQoIkQw
IiksYzg6dCgiVDUiKSxaOnQoIkVIIiksYzp0KCJiODxAPiIpLHI6dCgiTzciKSxJOnQoIlNnIiksbzp0
KCJ2USIpLGVoOnQoImNYPHVIPiIpLGNzOnQoImNYPHFVPiIpLFI6dCgiY1g8QD4iKSxROnQoImpkPGtG
PiIpLHM6dCgiamQ8cVU+IiksYjp0KCJqZDxAPiIpLHQ6dCgiamQ8S04+IiksZUg6dCgidm0iKSxnOnQo
ImM1IiksYVU6dCgiWGo8QD4iKSxhbTp0KCJUejxAPiIpLGVvOnQoIk41PEdELEA+IiksbTp0KCJFNCIp
LHc6dCgiaEYiKSxpOnQoInpNPHFVPiIpLGo6dCgiek08QD4iKSxMOnQoInpNPEtOPiIpLGY6dCgiWjA8
cVUscVU+IiksRzp0KCJaMDxALEA+IiksZHY6dCgiQTg8cVUscVU+IiksZG86dCgiQTg8cVUsQD4iKSxW
OnQoIkFqIiksZEQ6dCgiRVQiKSxibTp0KCJWNiIpLEE6dCgidUgiKSxlOnQoImtGIiksUDp0KCJjOCIp
LEs6dCgiayIpLHA6dCgiZXciKSxxOnQoInRuPEZLPiIpLGZ2OnQoIndMIiksYXY6dCgiSmMiKSxldzp0
KCJuZCIpLFQ6dCgieHU8cVU+IiksbDp0KCJHeiIpLE46dCgicVUiKSxkRzp0KCJxVShxVSkiKSxnNzp0
KCJkNSIpLGZvOnQoIkdEIiksYVc6dCgieVkiKSxrOnQoIkFTIiksZ2M6dCgibjYiKSxhazp0KCJrZCIp
LFc6dCgiR2o8cVUscVU+IiksdTp0KCJpRCIpLGNjOnQoIlU1PHFVPiIpLGc0OnQoIks1IiksY2k6dCgi
djYiKSxnMjp0KCJDbSIpLEU6dCgiWmY8Tzc+IiksaDk6dCgiQ1EiKSxhYzp0KCJlNyIpLEM6dCgiQ3E8
QWo+IiksUzp0KCJ3ejxjdj4iKSx4OnQoIkZlPEAsQD4iKSxhbzp0KCJ2czxPNz4iKSxfOnQoInZzPEA+
IiksZko6dCgidnM8S04+IiksTzp0KCJKUSIpLEo6dCgiYm4iKSxjSjp0KCJhMiIpLGFsOnQoImEyKGsp
IiksYkI6dCgiYTIocVUpIiksYmY6dCgiYTIoQCkiKSx6OnQoIkAiKSxmTzp0KCJAKCkiKSxVOnQoIkAo
ZWEpIikseTp0KCJAKGspIiksZXA6dCgiQChrLGspIiksWTp0KCJAKGssR3opIiksY2g6dCgiQCh4dTxx
VT4pIiksZE86dCgiQChxVSkiKSxiODp0KCJAKEAsQCkiKSxIOnQoIn4iKSxNOnQoIn4oKSIpLGFuOnQo
In4oZXcpIiksdjp0KCJ+KHFVLHFVKSIpLGNBOnQoIn4ocVUsQCkiKX19KSgpOyhmdW5jdGlvbiBjb25z
dGFudHMoKXt2YXIgdD1odW5rSGVscGVycy5tYWtlQ29uc3RMaXN0CkMuUlk9Vy5RUC5wcm90b3R5cGUK
Qy5CWj1XLlZiLnByb3RvdHlwZQpDLkR0PVcuTzcucHJvdG90eXBlCkMuT2s9Si52Qi5wcm90b3R5cGUK
Qy5ObT1KLmpkLnByb3RvdHlwZQpDLmpuPUoudXIucHJvdG90eXBlCkMuak49Si5ZRS5wcm90b3R5cGUK
Qy5DRD1KLnFJLnByb3RvdHlwZQpDLnhCPUouRHIucHJvdG90eXBlCkMuREc9Si5jNS5wcm90b3R5cGUK
Qy5FeD1XLnU4LnByb3RvdHlwZQpDLk5BPUguVjYucHJvdG90eXBlCkMuWlE9Si5pQy5wcm90b3R5cGUK
Qy5JZT1XLlRiLnByb3RvdHlwZQpDLnZCPUoua2QucHJvdG90eXBlCkMub2w9Vy5LNS5wcm90b3R5cGUK
Qy55OD1uZXcgUC5VOCgpCkMuaDk9bmV3IFAuQ1YoKQpDLk80PWZ1bmN0aW9uIGdldFRhZ0ZhbGxiYWNr
KG8pIHsKICB2YXIgcyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKTsKICByZXR1cm4g
cy5zdWJzdHJpbmcoOCwgcy5sZW5ndGggLSAxKTsKfQpDLllxPWZ1bmN0aW9uKCkgewogIHZhciB0b1N0
cmluZ0Z1bmN0aW9uID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKICBmdW5jdGlvbiBnZXRUYWco
bykgewogICAgdmFyIHMgPSB0b1N0cmluZ0Z1bmN0aW9uLmNhbGwobyk7CiAgICByZXR1cm4gcy5zdWJz
dHJpbmcoOCwgcy5sZW5ndGggLSAxKTsKICB9CiAgZnVuY3Rpb24gZ2V0VW5rbm93blRhZyhvYmplY3Qs
IHRhZykgewogICAgaWYgKC9eSFRNTFtBLVpdLipFbGVtZW50JC8udGVzdCh0YWcpKSB7CiAgICAgIHZh
ciBuYW1lID0gdG9TdHJpbmdGdW5jdGlvbi5jYWxsKG9iamVjdCk7CiAgICAgIGlmIChuYW1lID09ICJb
b2JqZWN0IE9iamVjdF0iKSByZXR1cm4gbnVsbDsKICAgICAgcmV0dXJuICJIVE1MRWxlbWVudCI7CiAg
ICB9CiAgfQogIGZ1bmN0aW9uIGdldFVua25vd25UYWdHZW5lcmljQnJvd3NlcihvYmplY3QsIHRhZykg
ewogICAgaWYgKHNlbGYuSFRNTEVsZW1lbnQgJiYgb2JqZWN0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQp
IHJldHVybiAiSFRNTEVsZW1lbnQiOwogICAgcmV0dXJuIGdldFVua25vd25UYWcob2JqZWN0LCB0YWcp
OwogIH0KICBmdW5jdGlvbiBwcm90b3R5cGVGb3JUYWcodGFnKSB7CiAgICBpZiAodHlwZW9mIHdpbmRv
dyA9PSAidW5kZWZpbmVkIikgcmV0dXJuIG51bGw7CiAgICBpZiAodHlwZW9mIHdpbmRvd1t0YWddID09
ICJ1bmRlZmluZWQiKSByZXR1cm4gbnVsbDsKICAgIHZhciBjb25zdHJ1Y3RvciA9IHdpbmRvd1t0YWdd
OwogICAgaWYgKHR5cGVvZiBjb25zdHJ1Y3RvciAhPSAiZnVuY3Rpb24iKSByZXR1cm4gbnVsbDsKICAg
IHJldHVybiBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7CiAgfQogIGZ1bmN0aW9uIGRpc2NyaW1pbmF0b3Io
dGFnKSB7IHJldHVybiBudWxsOyB9CiAgdmFyIGlzQnJvd3NlciA9IHR5cGVvZiBuYXZpZ2F0b3IgPT0g
Im9iamVjdCI7CiAgcmV0dXJuIHsKICAgIGdldFRhZzogZ2V0VGFnLAogICAgZ2V0VW5rbm93blRhZzog
aXNCcm93c2VyID8gZ2V0VW5rbm93blRhZ0dlbmVyaWNCcm93c2VyIDogZ2V0VW5rbm93blRhZywKICAg
IHByb3RvdHlwZUZvclRhZzogcHJvdG90eXBlRm9yVGFnLAogICAgZGlzY3JpbWluYXRvcjogZGlzY3Jp
bWluYXRvciB9Owp9CkMud2I9ZnVuY3Rpb24oZ2V0VGFnRmFsbGJhY2spIHsKICByZXR1cm4gZnVuY3Rp
b24oaG9va3MpIHsKICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9ICJvYmplY3QiKSByZXR1cm4gaG9v
a3M7CiAgICB2YXIgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50OwogICAgaWYgKHVhLmluZGV4T2YoIkR1
bXBSZW5kZXJUcmVlIikgPj0gMCkgcmV0dXJuIGhvb2tzOwogICAgaWYgKHVhLmluZGV4T2YoIkNocm9t
ZSIpID49IDApIHsKICAgICAgZnVuY3Rpb24gY29uZmlybShwKSB7CiAgICAgICAgcmV0dXJuIHR5cGVv
ZiB3aW5kb3cgPT0gIm9iamVjdCIgJiYgd2luZG93W3BdICYmIHdpbmRvd1twXS5uYW1lID09IHA7CiAg
ICAgIH0KICAgICAgaWYgKGNvbmZpcm0oIldpbmRvdyIpICYmIGNvbmZpcm0oIkhUTUxFbGVtZW50Iikp
IHJldHVybiBob29rczsKICAgIH0KICAgIGhvb2tzLmdldFRhZyA9IGdldFRhZ0ZhbGxiYWNrOwogIH07
Cn0KQy5LVT1mdW5jdGlvbihob29rcykgewogIGlmICh0eXBlb2YgZGFydEV4cGVyaW1lbnRhbEZpeHVw
R2V0VGFnICE9ICJmdW5jdGlvbiIpIHJldHVybiBob29rczsKICBob29rcy5nZXRUYWcgPSBkYXJ0RXhw
ZXJpbWVudGFsRml4dXBHZXRUYWcoaG9va3MuZ2V0VGFnKTsKfQpDLmZRPWZ1bmN0aW9uKGhvb2tzKSB7
CiAgdmFyIGdldFRhZyA9IGhvb2tzLmdldFRhZzsKICB2YXIgcHJvdG90eXBlRm9yVGFnID0gaG9va3Mu
cHJvdG90eXBlRm9yVGFnOwogIGZ1bmN0aW9uIGdldFRhZ0ZpeGVkKG8pIHsKICAgIHZhciB0YWcgPSBn
ZXRUYWcobyk7CiAgICBpZiAodGFnID09ICJEb2N1bWVudCIpIHsKICAgICAgaWYgKCEhby54bWxWZXJz
aW9uKSByZXR1cm4gIiFEb2N1bWVudCI7CiAgICAgIHJldHVybiAiIUhUTUxEb2N1bWVudCI7CiAgICB9
CiAgICByZXR1cm4gdGFnOwogIH0KICBmdW5jdGlvbiBwcm90b3R5cGVGb3JUYWdGaXhlZCh0YWcpIHsK
ICAgIGlmICh0YWcgPT0gIkRvY3VtZW50IikgcmV0dXJuIG51bGw7CiAgICByZXR1cm4gcHJvdG90eXBl
Rm9yVGFnKHRhZyk7CiAgfQogIGhvb2tzLmdldFRhZyA9IGdldFRhZ0ZpeGVkOwogIGhvb2tzLnByb3Rv
dHlwZUZvclRhZyA9IHByb3RvdHlwZUZvclRhZ0ZpeGVkOwp9CkMuZGs9ZnVuY3Rpb24oaG9va3MpIHsK
ICB2YXIgdXNlckFnZW50ID0gdHlwZW9mIG5hdmlnYXRvciA9PSAib2JqZWN0IiA/IG5hdmlnYXRvci51
c2VyQWdlbnQgOiAiIjsKICBpZiAodXNlckFnZW50LmluZGV4T2YoIkZpcmVmb3giKSA9PSAtMSkgcmV0
dXJuIGhvb2tzOwogIHZhciBnZXRUYWcgPSBob29rcy5nZXRUYWc7CiAgdmFyIHF1aWNrTWFwID0gewog
ICAgIkJlZm9yZVVubG9hZEV2ZW50IjogIkV2ZW50IiwKICAgICJEYXRhVHJhbnNmZXIiOiAiQ2xpcGJv
YXJkIiwKICAgICJHZW9HZW9sb2NhdGlvbiI6ICJHZW9sb2NhdGlvbiIsCiAgICAiTG9jYXRpb24iOiAi
IUxvY2F0aW9uIiwKICAgICJXb3JrZXJNZXNzYWdlRXZlbnQiOiAiTWVzc2FnZUV2ZW50IiwKICAgICJY
TUxEb2N1bWVudCI6ICIhRG9jdW1lbnQifTsKICBmdW5jdGlvbiBnZXRUYWdGaXJlZm94KG8pIHsKICAg
IHZhciB0YWcgPSBnZXRUYWcobyk7CiAgICByZXR1cm4gcXVpY2tNYXBbdGFnXSB8fCB0YWc7CiAgfQog
IGhvb2tzLmdldFRhZyA9IGdldFRhZ0ZpcmVmb3g7Cn0KQy54aT1mdW5jdGlvbihob29rcykgewogIHZh
ciB1c2VyQWdlbnQgPSB0eXBlb2YgbmF2aWdhdG9yID09ICJvYmplY3QiID8gbmF2aWdhdG9yLnVzZXJB
Z2VudCA6ICIiOwogIGlmICh1c2VyQWdlbnQuaW5kZXhPZigiVHJpZGVudC8iKSA9PSAtMSkgcmV0dXJu
IGhvb2tzOwogIHZhciBnZXRUYWcgPSBob29rcy5nZXRUYWc7CiAgdmFyIHF1aWNrTWFwID0gewogICAg
IkJlZm9yZVVubG9hZEV2ZW50IjogIkV2ZW50IiwKICAgICJEYXRhVHJhbnNmZXIiOiAiQ2xpcGJvYXJk
IiwKICAgICJIVE1MRERFbGVtZW50IjogIkhUTUxFbGVtZW50IiwKICAgICJIVE1MRFRFbGVtZW50Ijog
IkhUTUxFbGVtZW50IiwKICAgICJIVE1MUGhyYXNlRWxlbWVudCI6ICJIVE1MRWxlbWVudCIsCiAgICAi
UG9zaXRpb24iOiAiR2VvcG9zaXRpb24iCiAgfTsKICBmdW5jdGlvbiBnZXRUYWdJRShvKSB7CiAgICB2
YXIgdGFnID0gZ2V0VGFnKG8pOwogICAgdmFyIG5ld1RhZyA9IHF1aWNrTWFwW3RhZ107CiAgICBpZiAo
bmV3VGFnKSByZXR1cm4gbmV3VGFnOwogICAgaWYgKHRhZyA9PSAiT2JqZWN0IikgewogICAgICBpZiAo
d2luZG93LkRhdGFWaWV3ICYmIChvIGluc3RhbmNlb2Ygd2luZG93LkRhdGFWaWV3KSkgcmV0dXJuICJE
YXRhVmlldyI7CiAgICB9CiAgICByZXR1cm4gdGFnOwogIH0KICBmdW5jdGlvbiBwcm90b3R5cGVGb3JU
YWdJRSh0YWcpIHsKICAgIHZhciBjb25zdHJ1Y3RvciA9IHdpbmRvd1t0YWddOwogICAgaWYgKGNvbnN0
cnVjdG9yID09IG51bGwpIHJldHVybiBudWxsOwogICAgcmV0dXJuIGNvbnN0cnVjdG9yLnByb3RvdHlw
ZTsKICB9CiAgaG9va3MuZ2V0VGFnID0gZ2V0VGFnSUU7CiAgaG9va3MucHJvdG90eXBlRm9yVGFnID0g
cHJvdG90eXBlRm9yVGFnSUU7Cn0KQy5pNz1mdW5jdGlvbihob29rcykgeyByZXR1cm4gaG9va3M7IH0K
CkMuQ3Q9bmV3IFAuYnkoKQpDLkVxPW5ldyBQLms1KCkKQy54TT1uZXcgUC51NSgpCkMuUWs9bmV3IFAu
RTMoKQpDLk5VPW5ldyBQLkppKCkKQy5BMz1uZXcgUC5NeChudWxsKQpDLkdiPUguVk0odChbMTI3LDIw
NDcsNjU1MzUsMTExNDExMV0pLHUudCkKQy5haz1ILlZNKHQoWzAsMCwzMjc3NiwzMzc5MiwxLDEwMjQw
LDAsMF0pLHUudCkKQy5jbT1ILlZNKHQoWyIqOjpjbGFzcyIsIio6OmRpciIsIio6OmRyYWdnYWJsZSIs
Iio6OmhpZGRlbiIsIio6OmlkIiwiKjo6aW5lcnQiLCIqOjppdGVtcHJvcCIsIio6Oml0ZW1yZWYiLCIq
OjppdGVtc2NvcGUiLCIqOjpsYW5nIiwiKjo6c3BlbGxjaGVjayIsIio6OnRpdGxlIiwiKjo6dHJhbnNs
YXRlIiwiQTo6YWNjZXNza2V5IiwiQTo6Y29vcmRzIiwiQTo6aHJlZmxhbmciLCJBOjpuYW1lIiwiQTo6
c2hhcGUiLCJBOjp0YWJpbmRleCIsIkE6OnRhcmdldCIsIkE6OnR5cGUiLCJBUkVBOjphY2Nlc3NrZXki
LCJBUkVBOjphbHQiLCJBUkVBOjpjb29yZHMiLCJBUkVBOjpub2hyZWYiLCJBUkVBOjpzaGFwZSIsIkFS
RUE6OnRhYmluZGV4IiwiQVJFQTo6dGFyZ2V0IiwiQVVESU86OmNvbnRyb2xzIiwiQVVESU86Omxvb3Ai
LCJBVURJTzo6bWVkaWFncm91cCIsIkFVRElPOjptdXRlZCIsIkFVRElPOjpwcmVsb2FkIiwiQkRPOjpk
aXIiLCJCT0RZOjphbGluayIsIkJPRFk6OmJnY29sb3IiLCJCT0RZOjpsaW5rIiwiQk9EWTo6dGV4dCIs
IkJPRFk6OnZsaW5rIiwiQlI6OmNsZWFyIiwiQlVUVE9OOjphY2Nlc3NrZXkiLCJCVVRUT046OmRpc2Fi
bGVkIiwiQlVUVE9OOjpuYW1lIiwiQlVUVE9OOjp0YWJpbmRleCIsIkJVVFRPTjo6dHlwZSIsIkJVVFRP
Tjo6dmFsdWUiLCJDQU5WQVM6OmhlaWdodCIsIkNBTlZBUzo6d2lkdGgiLCJDQVBUSU9OOjphbGlnbiIs
IkNPTDo6YWxpZ24iLCJDT0w6OmNoYXIiLCJDT0w6OmNoYXJvZmYiLCJDT0w6OnNwYW4iLCJDT0w6OnZh
bGlnbiIsIkNPTDo6d2lkdGgiLCJDT0xHUk9VUDo6YWxpZ24iLCJDT0xHUk9VUDo6Y2hhciIsIkNPTEdS
T1VQOjpjaGFyb2ZmIiwiQ09MR1JPVVA6OnNwYW4iLCJDT0xHUk9VUDo6dmFsaWduIiwiQ09MR1JPVVA6
OndpZHRoIiwiQ09NTUFORDo6Y2hlY2tlZCIsIkNPTU1BTkQ6OmNvbW1hbmQiLCJDT01NQU5EOjpkaXNh
YmxlZCIsIkNPTU1BTkQ6OmxhYmVsIiwiQ09NTUFORDo6cmFkaW9ncm91cCIsIkNPTU1BTkQ6OnR5cGUi
LCJEQVRBOjp2YWx1ZSIsIkRFTDo6ZGF0ZXRpbWUiLCJERVRBSUxTOjpvcGVuIiwiRElSOjpjb21wYWN0
IiwiRElWOjphbGlnbiIsIkRMOjpjb21wYWN0IiwiRklFTERTRVQ6OmRpc2FibGVkIiwiRk9OVDo6Y29s
b3IiLCJGT05UOjpmYWNlIiwiRk9OVDo6c2l6ZSIsIkZPUk06OmFjY2VwdCIsIkZPUk06OmF1dG9jb21w
bGV0ZSIsIkZPUk06OmVuY3R5cGUiLCJGT1JNOjptZXRob2QiLCJGT1JNOjpuYW1lIiwiRk9STTo6bm92
YWxpZGF0ZSIsIkZPUk06OnRhcmdldCIsIkZSQU1FOjpuYW1lIiwiSDE6OmFsaWduIiwiSDI6OmFsaWdu
IiwiSDM6OmFsaWduIiwiSDQ6OmFsaWduIiwiSDU6OmFsaWduIiwiSDY6OmFsaWduIiwiSFI6OmFsaWdu
IiwiSFI6Om5vc2hhZGUiLCJIUjo6c2l6ZSIsIkhSOjp3aWR0aCIsIkhUTUw6OnZlcnNpb24iLCJJRlJB
TUU6OmFsaWduIiwiSUZSQU1FOjpmcmFtZWJvcmRlciIsIklGUkFNRTo6aGVpZ2h0IiwiSUZSQU1FOjpt
YXJnaW5oZWlnaHQiLCJJRlJBTUU6Om1hcmdpbndpZHRoIiwiSUZSQU1FOjp3aWR0aCIsIklNRzo6YWxp
Z24iLCJJTUc6OmFsdCIsIklNRzo6Ym9yZGVyIiwiSU1HOjpoZWlnaHQiLCJJTUc6OmhzcGFjZSIsIklN
Rzo6aXNtYXAiLCJJTUc6Om5hbWUiLCJJTUc6OnVzZW1hcCIsIklNRzo6dnNwYWNlIiwiSU1HOjp3aWR0
aCIsIklOUFVUOjphY2NlcHQiLCJJTlBVVDo6YWNjZXNza2V5IiwiSU5QVVQ6OmFsaWduIiwiSU5QVVQ6
OmFsdCIsIklOUFVUOjphdXRvY29tcGxldGUiLCJJTlBVVDo6YXV0b2ZvY3VzIiwiSU5QVVQ6OmNoZWNr
ZWQiLCJJTlBVVDo6ZGlzYWJsZWQiLCJJTlBVVDo6aW5wdXRtb2RlIiwiSU5QVVQ6OmlzbWFwIiwiSU5Q
VVQ6Omxpc3QiLCJJTlBVVDo6bWF4IiwiSU5QVVQ6Om1heGxlbmd0aCIsIklOUFVUOjptaW4iLCJJTlBV
VDo6bXVsdGlwbGUiLCJJTlBVVDo6bmFtZSIsIklOUFVUOjpwbGFjZWhvbGRlciIsIklOUFVUOjpyZWFk
b25seSIsIklOUFVUOjpyZXF1aXJlZCIsIklOUFVUOjpzaXplIiwiSU5QVVQ6OnN0ZXAiLCJJTlBVVDo6
dGFiaW5kZXgiLCJJTlBVVDo6dHlwZSIsIklOUFVUOjp1c2VtYXAiLCJJTlBVVDo6dmFsdWUiLCJJTlM6
OmRhdGV0aW1lIiwiS0VZR0VOOjpkaXNhYmxlZCIsIktFWUdFTjo6a2V5dHlwZSIsIktFWUdFTjo6bmFt
ZSIsIkxBQkVMOjphY2Nlc3NrZXkiLCJMQUJFTDo6Zm9yIiwiTEVHRU5EOjphY2Nlc3NrZXkiLCJMRUdF
TkQ6OmFsaWduIiwiTEk6OnR5cGUiLCJMSTo6dmFsdWUiLCJMSU5LOjpzaXplcyIsIk1BUDo6bmFtZSIs
Ik1FTlU6OmNvbXBhY3QiLCJNRU5VOjpsYWJlbCIsIk1FTlU6OnR5cGUiLCJNRVRFUjo6aGlnaCIsIk1F
VEVSOjpsb3ciLCJNRVRFUjo6bWF4IiwiTUVURVI6Om1pbiIsIk1FVEVSOjp2YWx1ZSIsIk9CSkVDVDo6
dHlwZW11c3RtYXRjaCIsIk9MOjpjb21wYWN0IiwiT0w6OnJldmVyc2VkIiwiT0w6OnN0YXJ0IiwiT0w6
OnR5cGUiLCJPUFRHUk9VUDo6ZGlzYWJsZWQiLCJPUFRHUk9VUDo6bGFiZWwiLCJPUFRJT046OmRpc2Fi
bGVkIiwiT1BUSU9OOjpsYWJlbCIsIk9QVElPTjo6c2VsZWN0ZWQiLCJPUFRJT046OnZhbHVlIiwiT1VU
UFVUOjpmb3IiLCJPVVRQVVQ6Om5hbWUiLCJQOjphbGlnbiIsIlBSRTo6d2lkdGgiLCJQUk9HUkVTUzo6
bWF4IiwiUFJPR1JFU1M6Om1pbiIsIlBST0dSRVNTOjp2YWx1ZSIsIlNFTEVDVDo6YXV0b2NvbXBsZXRl
IiwiU0VMRUNUOjpkaXNhYmxlZCIsIlNFTEVDVDo6bXVsdGlwbGUiLCJTRUxFQ1Q6Om5hbWUiLCJTRUxF
Q1Q6OnJlcXVpcmVkIiwiU0VMRUNUOjpzaXplIiwiU0VMRUNUOjp0YWJpbmRleCIsIlNPVVJDRTo6dHlw
ZSIsIlRBQkxFOjphbGlnbiIsIlRBQkxFOjpiZ2NvbG9yIiwiVEFCTEU6OmJvcmRlciIsIlRBQkxFOjpj
ZWxscGFkZGluZyIsIlRBQkxFOjpjZWxsc3BhY2luZyIsIlRBQkxFOjpmcmFtZSIsIlRBQkxFOjpydWxl
cyIsIlRBQkxFOjpzdW1tYXJ5IiwiVEFCTEU6OndpZHRoIiwiVEJPRFk6OmFsaWduIiwiVEJPRFk6OmNo
YXIiLCJUQk9EWTo6Y2hhcm9mZiIsIlRCT0RZOjp2YWxpZ24iLCJURDo6YWJiciIsIlREOjphbGlnbiIs
IlREOjpheGlzIiwiVEQ6OmJnY29sb3IiLCJURDo6Y2hhciIsIlREOjpjaGFyb2ZmIiwiVEQ6OmNvbHNw
YW4iLCJURDo6aGVhZGVycyIsIlREOjpoZWlnaHQiLCJURDo6bm93cmFwIiwiVEQ6OnJvd3NwYW4iLCJU
RDo6c2NvcGUiLCJURDo6dmFsaWduIiwiVEQ6OndpZHRoIiwiVEVYVEFSRUE6OmFjY2Vzc2tleSIsIlRF
WFRBUkVBOjphdXRvY29tcGxldGUiLCJURVhUQVJFQTo6Y29scyIsIlRFWFRBUkVBOjpkaXNhYmxlZCIs
IlRFWFRBUkVBOjppbnB1dG1vZGUiLCJURVhUQVJFQTo6bmFtZSIsIlRFWFRBUkVBOjpwbGFjZWhvbGRl
ciIsIlRFWFRBUkVBOjpyZWFkb25seSIsIlRFWFRBUkVBOjpyZXF1aXJlZCIsIlRFWFRBUkVBOjpyb3dz
IiwiVEVYVEFSRUE6OnRhYmluZGV4IiwiVEVYVEFSRUE6OndyYXAiLCJURk9PVDo6YWxpZ24iLCJURk9P
VDo6Y2hhciIsIlRGT09UOjpjaGFyb2ZmIiwiVEZPT1Q6OnZhbGlnbiIsIlRIOjphYmJyIiwiVEg6OmFs
aWduIiwiVEg6OmF4aXMiLCJUSDo6Ymdjb2xvciIsIlRIOjpjaGFyIiwiVEg6OmNoYXJvZmYiLCJUSDo6
Y29sc3BhbiIsIlRIOjpoZWFkZXJzIiwiVEg6OmhlaWdodCIsIlRIOjpub3dyYXAiLCJUSDo6cm93c3Bh
biIsIlRIOjpzY29wZSIsIlRIOjp2YWxpZ24iLCJUSDo6d2lkdGgiLCJUSEVBRDo6YWxpZ24iLCJUSEVB
RDo6Y2hhciIsIlRIRUFEOjpjaGFyb2ZmIiwiVEhFQUQ6OnZhbGlnbiIsIlRSOjphbGlnbiIsIlRSOjpi
Z2NvbG9yIiwiVFI6OmNoYXIiLCJUUjo6Y2hhcm9mZiIsIlRSOjp2YWxpZ24iLCJUUkFDSzo6ZGVmYXVs
dCIsIlRSQUNLOjpraW5kIiwiVFJBQ0s6OmxhYmVsIiwiVFJBQ0s6OnNyY2xhbmciLCJVTDo6Y29tcGFj
dCIsIlVMOjp0eXBlIiwiVklERU86OmNvbnRyb2xzIiwiVklERU86OmhlaWdodCIsIlZJREVPOjpsb29w
IiwiVklERU86Om1lZGlhZ3JvdXAiLCJWSURFTzo6bXV0ZWQiLCJWSURFTzo6cHJlbG9hZCIsIlZJREVP
Ojp3aWR0aCJdKSx1LnMpCkMuVkM9SC5WTSh0KFswLDAsNjU0OTAsNDUwNTUsNjU1MzUsMzQ4MTUsNjU1
MzQsMTg0MzFdKSx1LnQpCkMubUs9SC5WTSh0KFswLDAsMjY2MjQsMTAyMyw2NTUzNCwyMDQ3LDY1NTM0
LDIwNDddKSx1LnQpCkMuU3E9SC5WTSh0KFsiSEVBRCIsIkFSRUEiLCJCQVNFIiwiQkFTRUZPTlQiLCJC
UiIsIkNPTCIsIkNPTEdST1VQIiwiRU1CRUQiLCJGUkFNRSIsIkZSQU1FU0VUIiwiSFIiLCJJTUFHRSIs
IklNRyIsIklOUFVUIiwiSVNJTkRFWCIsIkxJTksiLCJNRVRBIiwiUEFSQU0iLCJTT1VSQ0UiLCJTVFlM
RSIsIlRJVExFIiwiV0JSIl0pLHUucykKQy54RD1ILlZNKHQoW10pLHUucykKQy5kbj1ILlZNKHQoW10p
LHUuYikKQy50bz1ILlZNKHQoWzAsMCwzMjcyMiwxMjI4Nyw2NTUzNCwzNDgxNSw2NTUzNCwxODQzMV0p
LHUudCkKQy5GMz1ILlZNKHQoWzAsMCwyNDU3NiwxMDIzLDY1NTM0LDM0ODE1LDY1NTM0LDE4NDMxXSks
dS50KQpDLmVhPUguVk0odChbMCwwLDMyNzU0LDExMjYzLDY1NTM0LDM0ODE1LDY1NTM0LDE4NDMxXSks
dS50KQpDLlpKPUguVk0odChbMCwwLDMyNzIyLDEyMjg3LDY1NTM1LDM0ODE1LDY1NTM0LDE4NDMxXSks
dS50KQpDLldkPUguVk0odChbMCwwLDY1NDkwLDEyMjg3LDY1NTM1LDM0ODE1LDY1NTM0LDE4NDMxXSks
dS50KQpDLlF4PUguVk0odChbImJpbmQiLCJpZiIsInJlZiIsInJlcGVhdCIsInN5bnRheCJdKSx1LnMp
CkMuQkk9SC5WTSh0KFsiQTo6aHJlZiIsIkFSRUE6OmhyZWYiLCJCTE9DS1FVT1RFOjpjaXRlIiwiQk9E
WTo6YmFja2dyb3VuZCIsIkNPTU1BTkQ6Omljb24iLCJERUw6OmNpdGUiLCJGT1JNOjphY3Rpb24iLCJJ
TUc6OnNyYyIsIklOUFVUOjpzcmMiLCJJTlM6OmNpdGUiLCJROjpjaXRlIiwiVklERU86OnBvc3RlciJd
KSx1LnMpCkMuV089bmV3IEguTFAoMCx7fSxDLnhELEguTjAoIkxQPHFVLHFVPiIpKQpDLmhVPUguVk0o
dChbXSksSC5OMCgiamQ8R0Q+IikpCkMuQ009bmV3IEguTFAoMCx7fSxDLmhVLEguTjAoIkxQPEdELEA+
IikpCkMuVGU9bmV3IEgud3YoImNhbGwiKX0pKCk7KGZ1bmN0aW9uIHN0YXRpY0ZpZWxkcygpeyQueWo9
MAokLm1KPW51bGwKJC5QND1udWxsCiQuTkY9bnVsbAokLlRYPW51bGwKJC54Nz1udWxsCiQubnc9bnVs
bAokLnZ2PW51bGwKJC5Cdj1udWxsCiQuUzY9bnVsbAokLms4PW51bGwKJC5tZz1udWxsCiQuVUQ9ITEK
JC5YMz1DLk5VCiQueGc9W10KJC54bz1udWxsCiQuQk89bnVsbAokLmx0PW51bGwKJC5FVT1udWxsCiQu
b3I9UC5GbCh1Lk4sdS5aKQokLkk2PW51bGwKJC5GZj1udWxsfSkoKTsoZnVuY3Rpb24gbGF6eUluaXRp
YWxpemVycygpe3ZhciB0PWh1bmtIZWxwZXJzLmxhenkKdCgkLCJmYSIsInciLGZ1bmN0aW9uKCl7cmV0
dXJuIEguWWcoIl8kZGFydF9kYXJ0Q2xvc3VyZSIpfSkKdCgkLCJZZiIsIlVOIixmdW5jdGlvbigpe3Jl
dHVybiBILllnKCJfJGRhcnRfanMiKX0pCnQoJCwiVTIiLCJTbiIsZnVuY3Rpb24oKXtyZXR1cm4gSC5j
TShILlM3KHsKdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iJHJlY2VpdmVyJCJ9fSkpfSkKdCgkLCJ4
cSIsImxxIixmdW5jdGlvbigpe3JldHVybiBILmNNKEguUzcoeyRtZXRob2QkOm51bGwsCnRvU3RyaW5n
OmZ1bmN0aW9uKCl7cmV0dXJuIiRyZWNlaXZlciQifX0pKX0pCnQoJCwiUjEiLCJOOSIsZnVuY3Rpb24o
KXtyZXR1cm4gSC5jTShILlM3KG51bGwpKX0pCnQoJCwiZk4iLCJpSSIsZnVuY3Rpb24oKXtyZXR1cm4g
SC5jTShmdW5jdGlvbigpe3ZhciAkYXJndW1lbnRzRXhwciQ9JyRhcmd1bWVudHMkJwp0cnl7bnVsbC4k
bWV0aG9kJCgkYXJndW1lbnRzRXhwciQpfWNhdGNoKHMpe3JldHVybiBzLm1lc3NhZ2V9fSgpKX0pCnQo
JCwicWkiLCJLZiIsZnVuY3Rpb24oKXtyZXR1cm4gSC5jTShILlM3KHZvaWQgMCkpfSkKdCgkLCJyWiIs
IlpoIixmdW5jdGlvbigpe3JldHVybiBILmNNKGZ1bmN0aW9uKCl7dmFyICRhcmd1bWVudHNFeHByJD0n
JGFyZ3VtZW50cyQnCnRyeXsodm9pZCAwKS4kbWV0aG9kJCgkYXJndW1lbnRzRXhwciQpfWNhdGNoKHMp
e3JldHVybiBzLm1lc3NhZ2V9fSgpKX0pCnQoJCwia3EiLCJyTiIsZnVuY3Rpb24oKXtyZXR1cm4gSC5j
TShILk1qKG51bGwpKX0pCnQoJCwidHQiLCJjMyIsZnVuY3Rpb24oKXtyZXR1cm4gSC5jTShmdW5jdGlv
bigpe3RyeXtudWxsLiRtZXRob2QkfWNhdGNoKHMpe3JldHVybiBzLm1lc3NhZ2V9fSgpKX0pCnQoJCwi
ZHQiLCJISyIsZnVuY3Rpb24oKXtyZXR1cm4gSC5jTShILk1qKHZvaWQgMCkpfSkKdCgkLCJBNyIsInIx
IixmdW5jdGlvbigpe3JldHVybiBILmNNKGZ1bmN0aW9uKCl7dHJ5eyh2b2lkIDApLiRtZXRob2QkfWNh
dGNoKHMpe3JldHVybiBzLm1lc3NhZ2V9fSgpKX0pCnQoJCwiV2MiLCJ1dCIsZnVuY3Rpb24oKXtyZXR1
cm4gUC5PaigpfSkKdCgkLCJraCIsInJmIixmdW5jdGlvbigpe3JldHVybiBQLldJKCl9KQp0KCQsImJ0
IiwiVjciLGZ1bmN0aW9uKCl7cmV0dXJuIEguRFEoSC5YRihILlZNKFstMiwtMiwtMiwtMiwtMiwtMiwt
MiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwt
MiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMiwtMSwtMiwtMiwtMiwtMiwtMiw2MiwtMiw2Miwt
Miw2Myw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSwtMiwtMiwtMiwtMSwtMiwtMiwtMiwwLDEs
MiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0
LDI1LC0yLC0yLC0yLC0yLDYzLC0yLDI2LDI3LDI4LDI5LDMwLDMxLDMyLDMzLDM0LDM1LDM2LDM3LDM4
LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLC0yLC0yLC0yLC0yLC0yXSx1LnQp
KSl9KQp0KCQsIk01Iiwid1EiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBwcm9jZXNzIT0idW5kZWZp
bmVkIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpPT0iW29iamVjdCBwcm9j
ZXNzXSImJnByb2Nlc3MucGxhdGZvcm09PSJ3aW4zMiJ9KQp0KCQsIm1mIiwiejQiLGZ1bmN0aW9uKCl7
cmV0dXJuIFAubnUoIl5bXFwtXFwuMC05QS1aX2Eten5dKiQiKX0pCnQoJCwiSkciLCJ2WiIsZnVuY3Rp
b24oKXtyZXR1cm4gUC51eCgpfSkKdCgkLCJTQyIsIkFOIixmdW5jdGlvbigpe3JldHVybiBQLnRNKFsi
QSIsIkFCQlIiLCJBQ1JPTllNIiwiQUREUkVTUyIsIkFSRUEiLCJBUlRJQ0xFIiwiQVNJREUiLCJBVURJ
TyIsIkIiLCJCREkiLCJCRE8iLCJCSUciLCJCTE9DS1FVT1RFIiwiQlIiLCJCVVRUT04iLCJDQU5WQVMi
LCJDQVBUSU9OIiwiQ0VOVEVSIiwiQ0lURSIsIkNPREUiLCJDT0wiLCJDT0xHUk9VUCIsIkNPTU1BTkQi
LCJEQVRBIiwiREFUQUxJU1QiLCJERCIsIkRFTCIsIkRFVEFJTFMiLCJERk4iLCJESVIiLCJESVYiLCJE
TCIsIkRUIiwiRU0iLCJGSUVMRFNFVCIsIkZJR0NBUFRJT04iLCJGSUdVUkUiLCJGT05UIiwiRk9PVEVS
IiwiRk9STSIsIkgxIiwiSDIiLCJIMyIsIkg0IiwiSDUiLCJINiIsIkhFQURFUiIsIkhHUk9VUCIsIkhS
IiwiSSIsIklGUkFNRSIsIklNRyIsIklOUFVUIiwiSU5TIiwiS0JEIiwiTEFCRUwiLCJMRUdFTkQiLCJM
SSIsIk1BUCIsIk1BUksiLCJNRU5VIiwiTUVURVIiLCJOQVYiLCJOT0JSIiwiT0wiLCJPUFRHUk9VUCIs
Ik9QVElPTiIsIk9VVFBVVCIsIlAiLCJQUkUiLCJQUk9HUkVTUyIsIlEiLCJTIiwiU0FNUCIsIlNFQ1RJ
T04iLCJTRUxFQ1QiLCJTTUFMTCIsIlNPVVJDRSIsIlNQQU4iLCJTVFJJS0UiLCJTVFJPTkciLCJTVUIi
LCJTVU1NQVJZIiwiU1VQIiwiVEFCTEUiLCJUQk9EWSIsIlREIiwiVEVYVEFSRUEiLCJURk9PVCIsIlRI
IiwiVEhFQUQiLCJUSU1FIiwiVFIiLCJUUkFDSyIsIlRUIiwiVSIsIlVMIiwiVkFSIiwiVklERU8iLCJX
QlIiXSx1Lk4pfSkKdCgkLCJYNCIsImhHIixmdW5jdGlvbigpe3JldHVybiBQLm51KCJeXFxTKyQiKX0p
CnQoJCwid08iLCJvdyIsZnVuY3Rpb24oKXtyZXR1cm4gdS5tLmIoUC5ORChzZWxmKSl9KQp0KCQsImt0
IiwiUjgiLGZ1bmN0aW9uKCl7cmV0dXJuIEguWWcoIl8kZGFydF9kYXJ0T2JqZWN0Iil9KQp0KCQsIkpl
Iiwia0kiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIERhcnRPYmplY3QoYSl7dGhpcy5vPWF9fSkK
dCgkLCJxdCIsInpCIixmdW5jdGlvbigpe3JldHVybiBuZXcgVC5HVigpfSkKdCgkLCJmZSIsIktHIixm
dW5jdGlvbigpe3JldHVybiBuZXcgTC5YQSgpfSkKdCgkLCJtTSIsIm5VIixmdW5jdGlvbigpe3JldHVy
biBuZXcgTS5sSSgkLkhrKCkpfSkKdCgkLCJ5ciIsImJEIixmdW5jdGlvbigpe3JldHVybiBuZXcgRS5P
RihQLm51KCIvIiksUC5udSgiW14vXSQiKSxQLm51KCJeLyIpKX0pCnQoJCwiTWsiLCJLayIsZnVuY3Rp
b24oKXtyZXR1cm4gbmV3IEwuSVYoUC5udSgiWy9cXFxcXSIpLFAubnUoIlteL1xcXFxdJCIpLFAubnUo
Il4oXFxcXFxcXFxbXlxcXFxdK1xcXFxbXlxcXFwvXSt8W2EtekEtWl06Wy9cXFxcXSkiKSxQLm51KCJe
Wy9cXFxcXSg/IVsvXFxcXF0pIikpfSkKdCgkLCJhayIsIkViIixmdW5jdGlvbigpe3JldHVybiBuZXcg
Ri5ydShQLm51KCIvIiksUC5udSgiKF5bYS16QS1aXVstKy5hLXpBLVpcXGRdKjovL3xbXi9dKSQiKSxQ
Lm51KCJbYS16QS1aXVstKy5hLXpBLVpcXGRdKjovL1teL10qIiksUC5udSgiXi8iKSl9KQp0KCQsImxz
IiwiSGsiLGZ1bmN0aW9uKCl7cmV0dXJuIE8uUmgoKX0pfSkoKTsoZnVuY3Rpb24gbmF0aXZlU3VwcG9y
dCgpeyFmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKGEpe3ZhciBuPXt9Cm5bYV09MQpyZXR1cm4gT2Jq
ZWN0LmtleXMoaHVua0hlbHBlcnMuY29udmVydFRvRmFzdE9iamVjdChuKSlbMF19CnYuZ2V0SXNvbGF0
ZVRhZz1mdW5jdGlvbihhKXtyZXR1cm4gdCgiX19fZGFydF8iK2Erdi5pc29sYXRlVGFnKX0KdmFyIHM9
Il9fX2RhcnRfaXNvbGF0ZV90YWdzXyIKdmFyIHI9T2JqZWN0W3NdfHwoT2JqZWN0W3NdPU9iamVjdC5j
cmVhdGUobnVsbCkpCnZhciBxPSJfWnhZeFgiCmZvcih2YXIgcD0wOztwKyspe3ZhciBvPXQocSsiXyIr
cCsiXyIpCmlmKCEobyBpbiByKSl7cltvXT0xCnYuaXNvbGF0ZVRhZz1vCmJyZWFrfX12LmRpc3BhdGNo
UHJvcGVydHlOYW1lPXYuZ2V0SXNvbGF0ZVRhZygiZGlzcGF0Y2hfcmVjb3JkIil9KCkKaHVua0hlbHBl
cnMuc2V0T3JVcGRhdGVJbnRlcmNlcHRvcnNCeVRhZyh7RE9NRXJyb3I6Si52QixET01JbXBsZW1lbnRh
dGlvbjpKLnZCLE1lZGlhRXJyb3I6Si52QixOYXZpZ2F0b3I6Si52QixOYXZpZ2F0b3JDb25jdXJyZW50
SGFyZHdhcmU6Si52QixOYXZpZ2F0b3JVc2VyTWVkaWFFcnJvcjpKLnZCLE92ZXJjb25zdHJhaW5lZEVy
cm9yOkoudkIsUG9zaXRpb25FcnJvcjpKLnZCLFJhbmdlOkoudkIsU1FMRXJyb3I6Si52QixEYXRhVmll
dzpILkVULEFycmF5QnVmZmVyVmlldzpILkVULEZsb2F0MzJBcnJheTpILkRnLEZsb2F0NjRBcnJheTpI
LkRnLEludDE2QXJyYXk6SC54aixJbnQzMkFycmF5OkguZEUsSW50OEFycmF5OkguWkEsVWludDE2QXJy
YXk6SC53ZixVaW50MzJBcnJheTpILlBxLFVpbnQ4Q2xhbXBlZEFycmF5OkguZUUsQ2FudmFzUGl4ZWxB
cnJheTpILmVFLFVpbnQ4QXJyYXk6SC5WNixIVE1MQXVkaW9FbGVtZW50OlcucUUsSFRNTEJSRWxlbWVu
dDpXLnFFLEhUTUxCdXR0b25FbGVtZW50OlcucUUsSFRNTENhbnZhc0VsZW1lbnQ6Vy5xRSxIVE1MQ29u
dGVudEVsZW1lbnQ6Vy5xRSxIVE1MRExpc3RFbGVtZW50OlcucUUsSFRNTERhdGFFbGVtZW50OlcucUUs
SFRNTERhdGFMaXN0RWxlbWVudDpXLnFFLEhUTUxEZXRhaWxzRWxlbWVudDpXLnFFLEhUTUxEaWFsb2dF
bGVtZW50OlcucUUsSFRNTERpdkVsZW1lbnQ6Vy5xRSxIVE1MRW1iZWRFbGVtZW50OlcucUUsSFRNTEZp
ZWxkU2V0RWxlbWVudDpXLnFFLEhUTUxIUkVsZW1lbnQ6Vy5xRSxIVE1MSGVhZEVsZW1lbnQ6Vy5xRSxI
VE1MSGVhZGluZ0VsZW1lbnQ6Vy5xRSxIVE1MSHRtbEVsZW1lbnQ6Vy5xRSxIVE1MSUZyYW1lRWxlbWVu
dDpXLnFFLEhUTUxJbWFnZUVsZW1lbnQ6Vy5xRSxIVE1MSW5wdXRFbGVtZW50OlcucUUsSFRNTExJRWxl
bWVudDpXLnFFLEhUTUxMYWJlbEVsZW1lbnQ6Vy5xRSxIVE1MTGVnZW5kRWxlbWVudDpXLnFFLEhUTUxM
aW5rRWxlbWVudDpXLnFFLEhUTUxNYXBFbGVtZW50OlcucUUsSFRNTE1lZGlhRWxlbWVudDpXLnFFLEhU
TUxNZW51RWxlbWVudDpXLnFFLEhUTUxNZXRhRWxlbWVudDpXLnFFLEhUTUxNZXRlckVsZW1lbnQ6Vy5x
RSxIVE1MTW9kRWxlbWVudDpXLnFFLEhUTUxPTGlzdEVsZW1lbnQ6Vy5xRSxIVE1MT2JqZWN0RWxlbWVu
dDpXLnFFLEhUTUxPcHRHcm91cEVsZW1lbnQ6Vy5xRSxIVE1MT3B0aW9uRWxlbWVudDpXLnFFLEhUTUxP
dXRwdXRFbGVtZW50OlcucUUsSFRNTFBhcmFncmFwaEVsZW1lbnQ6Vy5xRSxIVE1MUGFyYW1FbGVtZW50
OlcucUUsSFRNTFBpY3R1cmVFbGVtZW50OlcucUUsSFRNTFByZUVsZW1lbnQ6Vy5xRSxIVE1MUHJvZ3Jl
c3NFbGVtZW50OlcucUUsSFRNTFF1b3RlRWxlbWVudDpXLnFFLEhUTUxTY3JpcHRFbGVtZW50OlcucUUs
SFRNTFNoYWRvd0VsZW1lbnQ6Vy5xRSxIVE1MU2xvdEVsZW1lbnQ6Vy5xRSxIVE1MU291cmNlRWxlbWVu
dDpXLnFFLEhUTUxTcGFuRWxlbWVudDpXLnFFLEhUTUxTdHlsZUVsZW1lbnQ6Vy5xRSxIVE1MVGFibGVD
YXB0aW9uRWxlbWVudDpXLnFFLEhUTUxUYWJsZUNlbGxFbGVtZW50OlcucUUsSFRNTFRhYmxlRGF0YUNl
bGxFbGVtZW50OlcucUUsSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ6Vy5xRSxIVE1MVGFibGVDb2xF
bGVtZW50OlcucUUsSFRNTFRleHRBcmVhRWxlbWVudDpXLnFFLEhUTUxUaW1lRWxlbWVudDpXLnFFLEhU
TUxUaXRsZUVsZW1lbnQ6Vy5xRSxIVE1MVHJhY2tFbGVtZW50OlcucUUsSFRNTFVMaXN0RWxlbWVudDpX
LnFFLEhUTUxVbmtub3duRWxlbWVudDpXLnFFLEhUTUxWaWRlb0VsZW1lbnQ6Vy5xRSxIVE1MRGlyZWN0
b3J5RWxlbWVudDpXLnFFLEhUTUxGb250RWxlbWVudDpXLnFFLEhUTUxGcmFtZUVsZW1lbnQ6Vy5xRSxI
VE1MRnJhbWVTZXRFbGVtZW50OlcucUUsSFRNTE1hcnF1ZWVFbGVtZW50OlcucUUsSFRNTEVsZW1lbnQ6
Vy5xRSxIVE1MQW5jaG9yRWxlbWVudDpXLkdoLEhUTUxBcmVhRWxlbWVudDpXLmZZLEhUTUxCYXNlRWxl
bWVudDpXLm5CLEJsb2I6Vy5BeixIVE1MQm9keUVsZW1lbnQ6Vy5RUCxDREFUQVNlY3Rpb246Vy5ueCxD
aGFyYWN0ZXJEYXRhOlcubngsQ29tbWVudDpXLm54LFByb2Nlc3NpbmdJbnN0cnVjdGlvbjpXLm54LFRl
eHQ6Vy5ueCxDU1NTdHlsZURlY2xhcmF0aW9uOlcub0osTVNTdHlsZUNTU1Byb3BlcnRpZXM6Vy5vSixD
U1MyUHJvcGVydGllczpXLm9KLFhNTERvY3VtZW50OlcuUUYsRG9jdW1lbnQ6Vy5RRixET01FeGNlcHRp
b246Vy5OaCxET01SZWN0UmVhZE9ubHk6Vy5JQixET01Ub2tlbkxpc3Q6Vy5uNyxFbGVtZW50OlcuY3Ys
QWJvcnRQYXltZW50RXZlbnQ6Vy5lYSxBbmltYXRpb25FdmVudDpXLmVhLEFuaW1hdGlvblBsYXliYWNr
RXZlbnQ6Vy5lYSxBcHBsaWNhdGlvbkNhY2hlRXJyb3JFdmVudDpXLmVhLEJhY2tncm91bmRGZXRjaENs
aWNrRXZlbnQ6Vy5lYSxCYWNrZ3JvdW5kRmV0Y2hFdmVudDpXLmVhLEJhY2tncm91bmRGZXRjaEZhaWxF
dmVudDpXLmVhLEJhY2tncm91bmRGZXRjaGVkRXZlbnQ6Vy5lYSxCZWZvcmVJbnN0YWxsUHJvbXB0RXZl
bnQ6Vy5lYSxCZWZvcmVVbmxvYWRFdmVudDpXLmVhLEJsb2JFdmVudDpXLmVhLENhbk1ha2VQYXltZW50
RXZlbnQ6Vy5lYSxDbGlwYm9hcmRFdmVudDpXLmVhLENsb3NlRXZlbnQ6Vy5lYSxDdXN0b21FdmVudDpX
LmVhLERldmljZU1vdGlvbkV2ZW50OlcuZWEsRGV2aWNlT3JpZW50YXRpb25FdmVudDpXLmVhLEVycm9y
RXZlbnQ6Vy5lYSxFeHRlbmRhYmxlRXZlbnQ6Vy5lYSxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OlcuZWEs
RmV0Y2hFdmVudDpXLmVhLEZvbnRGYWNlU2V0TG9hZEV2ZW50OlcuZWEsRm9yZWlnbkZldGNoRXZlbnQ6
Vy5lYSxHYW1lcGFkRXZlbnQ6Vy5lYSxIYXNoQ2hhbmdlRXZlbnQ6Vy5lYSxJbnN0YWxsRXZlbnQ6Vy5l
YSxNZWRpYUVuY3J5cHRlZEV2ZW50OlcuZWEsTWVkaWFLZXlNZXNzYWdlRXZlbnQ6Vy5lYSxNZWRpYVF1
ZXJ5TGlzdEV2ZW50OlcuZWEsTWVkaWFTdHJlYW1FdmVudDpXLmVhLE1lZGlhU3RyZWFtVHJhY2tFdmVu
dDpXLmVhLE1lc3NhZ2VFdmVudDpXLmVhLE1JRElDb25uZWN0aW9uRXZlbnQ6Vy5lYSxNSURJTWVzc2Fn
ZUV2ZW50OlcuZWEsTXV0YXRpb25FdmVudDpXLmVhLE5vdGlmaWNhdGlvbkV2ZW50OlcuZWEsUGFnZVRy
YW5zaXRpb25FdmVudDpXLmVhLFBheW1lbnRSZXF1ZXN0RXZlbnQ6Vy5lYSxQYXltZW50UmVxdWVzdFVw
ZGF0ZUV2ZW50OlcuZWEsUG9wU3RhdGVFdmVudDpXLmVhLFByZXNlbnRhdGlvbkNvbm5lY3Rpb25BdmFp
bGFibGVFdmVudDpXLmVhLFByZXNlbnRhdGlvbkNvbm5lY3Rpb25DbG9zZUV2ZW50OlcuZWEsUHJvbWlz
ZVJlamVjdGlvbkV2ZW50OlcuZWEsUHVzaEV2ZW50OlcuZWEsUlRDRGF0YUNoYW5uZWxFdmVudDpXLmVh
LFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ6Vy5lYSxSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50OlcuZWEs
UlRDVHJhY2tFdmVudDpXLmVhLFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6Vy5lYSxTZW5zb3JF
cnJvckV2ZW50OlcuZWEsU3BlZWNoUmVjb2duaXRpb25FcnJvcjpXLmVhLFNwZWVjaFJlY29nbml0aW9u
RXZlbnQ6Vy5lYSxTcGVlY2hTeW50aGVzaXNFdmVudDpXLmVhLFN0b3JhZ2VFdmVudDpXLmVhLFN5bmNF
dmVudDpXLmVhLFRyYWNrRXZlbnQ6Vy5lYSxUcmFuc2l0aW9uRXZlbnQ6Vy5lYSxXZWJLaXRUcmFuc2l0
aW9uRXZlbnQ6Vy5lYSxWUkRldmljZUV2ZW50OlcuZWEsVlJEaXNwbGF5RXZlbnQ6Vy5lYSxWUlNlc3Np
b25FdmVudDpXLmVhLE1vam9JbnRlcmZhY2VSZXF1ZXN0RXZlbnQ6Vy5lYSxVU0JDb25uZWN0aW9uRXZl
bnQ6Vy5lYSxJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6Vy5lYSxBdWRpb1Byb2Nlc3NpbmdFdmVudDpXLmVh
LE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudDpXLmVhLFdlYkdMQ29udGV4dEV2ZW50OlcuZWEsRXZl
bnQ6Vy5lYSxJbnB1dEV2ZW50OlcuZWEsRXZlbnRUYXJnZXQ6Vy5EMCxGaWxlOlcuVDUsSFRNTEZvcm1F
bGVtZW50OlcuaDQsSGlzdG9yeTpXLmJyLEhUTUxEb2N1bWVudDpXLlZiLFhNTEh0dHBSZXF1ZXN0Olcu
TzcsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDpXLndhLEltYWdlRGF0YTpXLlNnLExvY2F0aW9uOlcu
dTgsTW91c2VFdmVudDpXLkFqLERyYWdFdmVudDpXLkFqLFBvaW50ZXJFdmVudDpXLkFqLFdoZWVsRXZl
bnQ6Vy5BaixEb2N1bWVudEZyYWdtZW50OlcudUgsU2hhZG93Um9vdDpXLnVILERvY3VtZW50VHlwZTpX
LnVILE5vZGU6Vy51SCxOb2RlTGlzdDpXLkJILFJhZGlvTm9kZUxpc3Q6Vy5CSCxQcm9ncmVzc0V2ZW50
OlcuZXcsUmVzb3VyY2VQcm9ncmVzc0V2ZW50OlcuZXcsSFRNTFNlbGVjdEVsZW1lbnQ6Vy5scCxIVE1M
VGFibGVFbGVtZW50OlcuVGIsSFRNTFRhYmxlUm93RWxlbWVudDpXLkl2LEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50OlcuQlQsSFRNTFRlbXBsYXRlRWxlbWVudDpXLnlZLENvbXBvc2l0aW9uRXZlbnQ6Vy53NixG
b2N1c0V2ZW50OlcudzYsS2V5Ym9hcmRFdmVudDpXLnc2LFRleHRFdmVudDpXLnc2LFRvdWNoRXZlbnQ6
Vy53NixVSUV2ZW50OlcudzYsV2luZG93OlcuSzUsRE9NV2luZG93OlcuSzUsRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGU6Vy5DbSxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6Vy5DbSxTaGFyZWRXb3JrZXJH
bG9iYWxTY29wZTpXLkNtLFdvcmtlckdsb2JhbFNjb3BlOlcuQ20sQXR0cjpXLkNRLENsaWVudFJlY3Q6
Vy53NCxET01SZWN0OlcudzQsTmFtZWROb2RlTWFwOlcucmgsTW96TmFtZWRBdHRyTWFwOlcucmgsSURC
S2V5UmFuZ2U6UC5oRixTVkdTY3JpcHRFbGVtZW50OlAubmQsU1ZHQUVsZW1lbnQ6UC5kNSxTVkdBbmlt
YXRlRWxlbWVudDpQLmQ1LFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OlAuZDUsU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQ6UC5kNSxTVkdBbmltYXRpb25FbGVtZW50OlAuZDUsU1ZHQ2lyY2xlRWxlbWVudDpQ
LmQ1LFNWR0NsaXBQYXRoRWxlbWVudDpQLmQ1LFNWR0RlZnNFbGVtZW50OlAuZDUsU1ZHRGVzY0VsZW1l
bnQ6UC5kNSxTVkdEaXNjYXJkRWxlbWVudDpQLmQ1LFNWR0VsbGlwc2VFbGVtZW50OlAuZDUsU1ZHRkVC
bGVuZEVsZW1lbnQ6UC5kNSxTVkdGRUNvbG9yTWF0cml4RWxlbWVudDpQLmQ1LFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50OlAuZDUsU1ZHRkVDb21wb3NpdGVFbGVtZW50OlAuZDUsU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6UC5kNSxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6UC5kNSxTVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQ6UC5kNSxTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ6UC5kNSxTVkdG
RUZsb29kRWxlbWVudDpQLmQ1LFNWR0ZFRnVuY0FFbGVtZW50OlAuZDUsU1ZHRkVGdW5jQkVsZW1lbnQ6
UC5kNSxTVkdGRUZ1bmNHRWxlbWVudDpQLmQ1LFNWR0ZFRnVuY1JFbGVtZW50OlAuZDUsU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50OlAuZDUsU1ZHRkVJbWFnZUVsZW1lbnQ6UC5kNSxTVkdGRU1lcmdlRWxlbWVu
dDpQLmQ1LFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDpQLmQ1LFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6UC5k
NSxTVkdGRU9mZnNldEVsZW1lbnQ6UC5kNSxTVkdGRVBvaW50TGlnaHRFbGVtZW50OlAuZDUsU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudDpQLmQ1LFNWR0ZFU3BvdExpZ2h0RWxlbWVudDpQLmQ1LFNWR0ZF
VGlsZUVsZW1lbnQ6UC5kNSxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OlAuZDUsU1ZHRmlsdGVyRWxlbWVu
dDpQLmQ1LFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OlAuZDUsU1ZHR0VsZW1lbnQ6UC5kNSxTVkdHZW9t
ZXRyeUVsZW1lbnQ6UC5kNSxTVkdHcmFwaGljc0VsZW1lbnQ6UC5kNSxTVkdJbWFnZUVsZW1lbnQ6UC5k
NSxTVkdMaW5lRWxlbWVudDpQLmQ1LFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDpQLmQ1LFNWR01hcmtl
ckVsZW1lbnQ6UC5kNSxTVkdNYXNrRWxlbWVudDpQLmQ1LFNWR01ldGFkYXRhRWxlbWVudDpQLmQ1LFNW
R1BhdGhFbGVtZW50OlAuZDUsU1ZHUGF0dGVybkVsZW1lbnQ6UC5kNSxTVkdQb2x5Z29uRWxlbWVudDpQ
LmQ1LFNWR1BvbHlsaW5lRWxlbWVudDpQLmQ1LFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDpQLmQ1LFNW
R1JlY3RFbGVtZW50OlAuZDUsU1ZHU2V0RWxlbWVudDpQLmQ1LFNWR1N0b3BFbGVtZW50OlAuZDUsU1ZH
U3R5bGVFbGVtZW50OlAuZDUsU1ZHU1ZHRWxlbWVudDpQLmQ1LFNWR1N3aXRjaEVsZW1lbnQ6UC5kNSxT
VkdTeW1ib2xFbGVtZW50OlAuZDUsU1ZHVFNwYW5FbGVtZW50OlAuZDUsU1ZHVGV4dENvbnRlbnRFbGVt
ZW50OlAuZDUsU1ZHVGV4dEVsZW1lbnQ6UC5kNSxTVkdUZXh0UGF0aEVsZW1lbnQ6UC5kNSxTVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50OlAuZDUsU1ZHVGl0bGVFbGVtZW50OlAuZDUsU1ZHVXNlRWxlbWVudDpQ
LmQ1LFNWR1ZpZXdFbGVtZW50OlAuZDUsU1ZHR3JhZGllbnRFbGVtZW50OlAuZDUsU1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6UC5kNSxTVkdGRURyb3BTaGFkb3dFbGVtZW50OlAuZDUsU1ZH
TVBhdGhFbGVtZW50OlAuZDUsU1ZHRWxlbWVudDpQLmQ1fSkKaHVua0hlbHBlcnMuc2V0T3JVcGRhdGVM
ZWFmVGFncyh7RE9NRXJyb3I6dHJ1ZSxET01JbXBsZW1lbnRhdGlvbjp0cnVlLE1lZGlhRXJyb3I6dHJ1
ZSxOYXZpZ2F0b3I6dHJ1ZSxOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6dHJ1ZSxOYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvcjp0cnVlLE92ZXJjb25zdHJhaW5lZEVycm9yOnRydWUsUG9zaXRpb25FcnJvcjp0
cnVlLFJhbmdlOnRydWUsU1FMRXJyb3I6dHJ1ZSxEYXRhVmlldzp0cnVlLEFycmF5QnVmZmVyVmlldzpm
YWxzZSxGbG9hdDMyQXJyYXk6dHJ1ZSxGbG9hdDY0QXJyYXk6dHJ1ZSxJbnQxNkFycmF5OnRydWUsSW50
MzJBcnJheTp0cnVlLEludDhBcnJheTp0cnVlLFVpbnQxNkFycmF5OnRydWUsVWludDMyQXJyYXk6dHJ1
ZSxVaW50OENsYW1wZWRBcnJheTp0cnVlLENhbnZhc1BpeGVsQXJyYXk6dHJ1ZSxVaW50OEFycmF5OmZh
bHNlLEhUTUxBdWRpb0VsZW1lbnQ6dHJ1ZSxIVE1MQlJFbGVtZW50OnRydWUsSFRNTEJ1dHRvbkVsZW1l
bnQ6dHJ1ZSxIVE1MQ2FudmFzRWxlbWVudDp0cnVlLEhUTUxDb250ZW50RWxlbWVudDp0cnVlLEhUTUxE
TGlzdEVsZW1lbnQ6dHJ1ZSxIVE1MRGF0YUVsZW1lbnQ6dHJ1ZSxIVE1MRGF0YUxpc3RFbGVtZW50OnRy
dWUsSFRNTERldGFpbHNFbGVtZW50OnRydWUsSFRNTERpYWxvZ0VsZW1lbnQ6dHJ1ZSxIVE1MRGl2RWxl
bWVudDp0cnVlLEhUTUxFbWJlZEVsZW1lbnQ6dHJ1ZSxIVE1MRmllbGRTZXRFbGVtZW50OnRydWUsSFRN
TEhSRWxlbWVudDp0cnVlLEhUTUxIZWFkRWxlbWVudDp0cnVlLEhUTUxIZWFkaW5nRWxlbWVudDp0cnVl
LEhUTUxIdG1sRWxlbWVudDp0cnVlLEhUTUxJRnJhbWVFbGVtZW50OnRydWUsSFRNTEltYWdlRWxlbWVu
dDp0cnVlLEhUTUxJbnB1dEVsZW1lbnQ6dHJ1ZSxIVE1MTElFbGVtZW50OnRydWUsSFRNTExhYmVsRWxl
bWVudDp0cnVlLEhUTUxMZWdlbmRFbGVtZW50OnRydWUsSFRNTExpbmtFbGVtZW50OnRydWUsSFRNTE1h
cEVsZW1lbnQ6dHJ1ZSxIVE1MTWVkaWFFbGVtZW50OnRydWUsSFRNTE1lbnVFbGVtZW50OnRydWUsSFRN
TE1ldGFFbGVtZW50OnRydWUsSFRNTE1ldGVyRWxlbWVudDp0cnVlLEhUTUxNb2RFbGVtZW50OnRydWUs
SFRNTE9MaXN0RWxlbWVudDp0cnVlLEhUTUxPYmplY3RFbGVtZW50OnRydWUsSFRNTE9wdEdyb3VwRWxl
bWVudDp0cnVlLEhUTUxPcHRpb25FbGVtZW50OnRydWUsSFRNTE91dHB1dEVsZW1lbnQ6dHJ1ZSxIVE1M
UGFyYWdyYXBoRWxlbWVudDp0cnVlLEhUTUxQYXJhbUVsZW1lbnQ6dHJ1ZSxIVE1MUGljdHVyZUVsZW1l
bnQ6dHJ1ZSxIVE1MUHJlRWxlbWVudDp0cnVlLEhUTUxQcm9ncmVzc0VsZW1lbnQ6dHJ1ZSxIVE1MUXVv
dGVFbGVtZW50OnRydWUsSFRNTFNjcmlwdEVsZW1lbnQ6dHJ1ZSxIVE1MU2hhZG93RWxlbWVudDp0cnVl
LEhUTUxTbG90RWxlbWVudDp0cnVlLEhUTUxTb3VyY2VFbGVtZW50OnRydWUsSFRNTFNwYW5FbGVtZW50
OnRydWUsSFRNTFN0eWxlRWxlbWVudDp0cnVlLEhUTUxUYWJsZUNhcHRpb25FbGVtZW50OnRydWUsSFRN
TFRhYmxlQ2VsbEVsZW1lbnQ6dHJ1ZSxIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQ6dHJ1ZSxIVE1MVGFi
bGVIZWFkZXJDZWxsRWxlbWVudDp0cnVlLEhUTUxUYWJsZUNvbEVsZW1lbnQ6dHJ1ZSxIVE1MVGV4dEFy
ZWFFbGVtZW50OnRydWUsSFRNTFRpbWVFbGVtZW50OnRydWUsSFRNTFRpdGxlRWxlbWVudDp0cnVlLEhU
TUxUcmFja0VsZW1lbnQ6dHJ1ZSxIVE1MVUxpc3RFbGVtZW50OnRydWUsSFRNTFVua25vd25FbGVtZW50
OnRydWUsSFRNTFZpZGVvRWxlbWVudDp0cnVlLEhUTUxEaXJlY3RvcnlFbGVtZW50OnRydWUsSFRNTEZv
bnRFbGVtZW50OnRydWUsSFRNTEZyYW1lRWxlbWVudDp0cnVlLEhUTUxGcmFtZVNldEVsZW1lbnQ6dHJ1
ZSxIVE1MTWFycXVlZUVsZW1lbnQ6dHJ1ZSxIVE1MRWxlbWVudDpmYWxzZSxIVE1MQW5jaG9yRWxlbWVu
dDp0cnVlLEhUTUxBcmVhRWxlbWVudDp0cnVlLEhUTUxCYXNlRWxlbWVudDp0cnVlLEJsb2I6ZmFsc2Us
SFRNTEJvZHlFbGVtZW50OnRydWUsQ0RBVEFTZWN0aW9uOnRydWUsQ2hhcmFjdGVyRGF0YTp0cnVlLENv
bW1lbnQ6dHJ1ZSxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246dHJ1ZSxUZXh0OnRydWUsQ1NTU3R5bGVEZWNs
YXJhdGlvbjp0cnVlLE1TU3R5bGVDU1NQcm9wZXJ0aWVzOnRydWUsQ1NTMlByb3BlcnRpZXM6dHJ1ZSxY
TUxEb2N1bWVudDp0cnVlLERvY3VtZW50OmZhbHNlLERPTUV4Y2VwdGlvbjp0cnVlLERPTVJlY3RSZWFk
T25seTpmYWxzZSxET01Ub2tlbkxpc3Q6dHJ1ZSxFbGVtZW50OmZhbHNlLEFib3J0UGF5bWVudEV2ZW50
OnRydWUsQW5pbWF0aW9uRXZlbnQ6dHJ1ZSxBbmltYXRpb25QbGF5YmFja0V2ZW50OnRydWUsQXBwbGlj
YXRpb25DYWNoZUVycm9yRXZlbnQ6dHJ1ZSxCYWNrZ3JvdW5kRmV0Y2hDbGlja0V2ZW50OnRydWUsQmFj
a2dyb3VuZEZldGNoRXZlbnQ6dHJ1ZSxCYWNrZ3JvdW5kRmV0Y2hGYWlsRXZlbnQ6dHJ1ZSxCYWNrZ3Jv
dW5kRmV0Y2hlZEV2ZW50OnRydWUsQmVmb3JlSW5zdGFsbFByb21wdEV2ZW50OnRydWUsQmVmb3JlVW5s
b2FkRXZlbnQ6dHJ1ZSxCbG9iRXZlbnQ6dHJ1ZSxDYW5NYWtlUGF5bWVudEV2ZW50OnRydWUsQ2xpcGJv
YXJkRXZlbnQ6dHJ1ZSxDbG9zZUV2ZW50OnRydWUsQ3VzdG9tRXZlbnQ6dHJ1ZSxEZXZpY2VNb3Rpb25F
dmVudDp0cnVlLERldmljZU9yaWVudGF0aW9uRXZlbnQ6dHJ1ZSxFcnJvckV2ZW50OnRydWUsRXh0ZW5k
YWJsZUV2ZW50OnRydWUsRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDp0cnVlLEZldGNoRXZlbnQ6dHJ1ZSxG
b250RmFjZVNldExvYWRFdmVudDp0cnVlLEZvcmVpZ25GZXRjaEV2ZW50OnRydWUsR2FtZXBhZEV2ZW50
OnRydWUsSGFzaENoYW5nZUV2ZW50OnRydWUsSW5zdGFsbEV2ZW50OnRydWUsTWVkaWFFbmNyeXB0ZWRF
dmVudDp0cnVlLE1lZGlhS2V5TWVzc2FnZUV2ZW50OnRydWUsTWVkaWFRdWVyeUxpc3RFdmVudDp0cnVl
LE1lZGlhU3RyZWFtRXZlbnQ6dHJ1ZSxNZWRpYVN0cmVhbVRyYWNrRXZlbnQ6dHJ1ZSxNZXNzYWdlRXZl
bnQ6dHJ1ZSxNSURJQ29ubmVjdGlvbkV2ZW50OnRydWUsTUlESU1lc3NhZ2VFdmVudDp0cnVlLE11dGF0
aW9uRXZlbnQ6dHJ1ZSxOb3RpZmljYXRpb25FdmVudDp0cnVlLFBhZ2VUcmFuc2l0aW9uRXZlbnQ6dHJ1
ZSxQYXltZW50UmVxdWVzdEV2ZW50OnRydWUsUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDp0cnVlLFBv
cFN0YXRlRXZlbnQ6dHJ1ZSxQcmVzZW50YXRpb25Db25uZWN0aW9uQXZhaWxhYmxlRXZlbnQ6dHJ1ZSxQ
cmVzZW50YXRpb25Db25uZWN0aW9uQ2xvc2VFdmVudDp0cnVlLFByb21pc2VSZWplY3Rpb25FdmVudDp0
cnVlLFB1c2hFdmVudDp0cnVlLFJUQ0RhdGFDaGFubmVsRXZlbnQ6dHJ1ZSxSVENEVE1GVG9uZUNoYW5n
ZUV2ZW50OnRydWUsUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudDp0cnVlLFJUQ1RyYWNrRXZlbnQ6dHJ1
ZSxTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OnRydWUsU2Vuc29yRXJyb3JFdmVudDp0cnVlLFNw
ZWVjaFJlY29nbml0aW9uRXJyb3I6dHJ1ZSxTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OnRydWUsU3BlZWNo
U3ludGhlc2lzRXZlbnQ6dHJ1ZSxTdG9yYWdlRXZlbnQ6dHJ1ZSxTeW5jRXZlbnQ6dHJ1ZSxUcmFja0V2
ZW50OnRydWUsVHJhbnNpdGlvbkV2ZW50OnRydWUsV2ViS2l0VHJhbnNpdGlvbkV2ZW50OnRydWUsVlJE
ZXZpY2VFdmVudDp0cnVlLFZSRGlzcGxheUV2ZW50OnRydWUsVlJTZXNzaW9uRXZlbnQ6dHJ1ZSxNb2pv
SW50ZXJmYWNlUmVxdWVzdEV2ZW50OnRydWUsVVNCQ29ubmVjdGlvbkV2ZW50OnRydWUsSURCVmVyc2lv
bkNoYW5nZUV2ZW50OnRydWUsQXVkaW9Qcm9jZXNzaW5nRXZlbnQ6dHJ1ZSxPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQ6dHJ1ZSxXZWJHTENvbnRleHRFdmVudDp0cnVlLEV2ZW50OmZhbHNlLElucHV0RXZl
bnQ6ZmFsc2UsRXZlbnRUYXJnZXQ6ZmFsc2UsRmlsZTp0cnVlLEhUTUxGb3JtRWxlbWVudDp0cnVlLEhp
c3Rvcnk6dHJ1ZSxIVE1MRG9jdW1lbnQ6dHJ1ZSxYTUxIdHRwUmVxdWVzdDp0cnVlLFhNTEh0dHBSZXF1
ZXN0RXZlbnRUYXJnZXQ6ZmFsc2UsSW1hZ2VEYXRhOnRydWUsTG9jYXRpb246dHJ1ZSxNb3VzZUV2ZW50
OnRydWUsRHJhZ0V2ZW50OnRydWUsUG9pbnRlckV2ZW50OnRydWUsV2hlZWxFdmVudDp0cnVlLERvY3Vt
ZW50RnJhZ21lbnQ6dHJ1ZSxTaGFkb3dSb290OnRydWUsRG9jdW1lbnRUeXBlOnRydWUsTm9kZTpmYWxz
ZSxOb2RlTGlzdDp0cnVlLFJhZGlvTm9kZUxpc3Q6dHJ1ZSxQcm9ncmVzc0V2ZW50OnRydWUsUmVzb3Vy
Y2VQcm9ncmVzc0V2ZW50OnRydWUsSFRNTFNlbGVjdEVsZW1lbnQ6dHJ1ZSxIVE1MVGFibGVFbGVtZW50
OnRydWUsSFRNTFRhYmxlUm93RWxlbWVudDp0cnVlLEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OnRydWUs
SFRNTFRlbXBsYXRlRWxlbWVudDp0cnVlLENvbXBvc2l0aW9uRXZlbnQ6dHJ1ZSxGb2N1c0V2ZW50OnRy
dWUsS2V5Ym9hcmRFdmVudDp0cnVlLFRleHRFdmVudDp0cnVlLFRvdWNoRXZlbnQ6dHJ1ZSxVSUV2ZW50
OmZhbHNlLFdpbmRvdzp0cnVlLERPTVdpbmRvdzp0cnVlLERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
OnRydWUsU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOnRydWUsU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6
dHJ1ZSxXb3JrZXJHbG9iYWxTY29wZTp0cnVlLEF0dHI6dHJ1ZSxDbGllbnRSZWN0OnRydWUsRE9NUmVj
dDp0cnVlLE5hbWVkTm9kZU1hcDp0cnVlLE1vek5hbWVkQXR0ck1hcDp0cnVlLElEQktleVJhbmdlOnRy
dWUsU1ZHU2NyaXB0RWxlbWVudDp0cnVlLFNWR0FFbGVtZW50OnRydWUsU1ZHQW5pbWF0ZUVsZW1lbnQ6
dHJ1ZSxTVkdBbmltYXRlTW90aW9uRWxlbWVudDp0cnVlLFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
OnRydWUsU1ZHQW5pbWF0aW9uRWxlbWVudDp0cnVlLFNWR0NpcmNsZUVsZW1lbnQ6dHJ1ZSxTVkdDbGlw
UGF0aEVsZW1lbnQ6dHJ1ZSxTVkdEZWZzRWxlbWVudDp0cnVlLFNWR0Rlc2NFbGVtZW50OnRydWUsU1ZH
RGlzY2FyZEVsZW1lbnQ6dHJ1ZSxTVkdFbGxpcHNlRWxlbWVudDp0cnVlLFNWR0ZFQmxlbmRFbGVtZW50
OnRydWUsU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6dHJ1ZSxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudDp0cnVlLFNWR0ZFQ29tcG9zaXRlRWxlbWVudDp0cnVlLFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OnRydWUsU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OnRydWUsU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50OnRydWUsU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50OnRydWUsU1ZHRkVGbG9vZEVsZW1l
bnQ6dHJ1ZSxTVkdGRUZ1bmNBRWxlbWVudDp0cnVlLFNWR0ZFRnVuY0JFbGVtZW50OnRydWUsU1ZHRkVG
dW5jR0VsZW1lbnQ6dHJ1ZSxTVkdGRUZ1bmNSRWxlbWVudDp0cnVlLFNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudDp0cnVlLFNWR0ZFSW1hZ2VFbGVtZW50OnRydWUsU1ZHRkVNZXJnZUVsZW1lbnQ6dHJ1ZSxTVkdG
RU1lcmdlTm9kZUVsZW1lbnQ6dHJ1ZSxTVkdGRU1vcnBob2xvZ3lFbGVtZW50OnRydWUsU1ZHRkVPZmZz
ZXRFbGVtZW50OnRydWUsU1ZHRkVQb2ludExpZ2h0RWxlbWVudDp0cnVlLFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQ6dHJ1ZSxTVkdGRVNwb3RMaWdodEVsZW1lbnQ6dHJ1ZSxTVkdGRVRpbGVFbGVtZW50
OnRydWUsU1ZHRkVUdXJidWxlbmNlRWxlbWVudDp0cnVlLFNWR0ZpbHRlckVsZW1lbnQ6dHJ1ZSxTVkdG
b3JlaWduT2JqZWN0RWxlbWVudDp0cnVlLFNWR0dFbGVtZW50OnRydWUsU1ZHR2VvbWV0cnlFbGVtZW50
OnRydWUsU1ZHR3JhcGhpY3NFbGVtZW50OnRydWUsU1ZHSW1hZ2VFbGVtZW50OnRydWUsU1ZHTGluZUVs
ZW1lbnQ6dHJ1ZSxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6dHJ1ZSxTVkdNYXJrZXJFbGVtZW50OnRy
dWUsU1ZHTWFza0VsZW1lbnQ6dHJ1ZSxTVkdNZXRhZGF0YUVsZW1lbnQ6dHJ1ZSxTVkdQYXRoRWxlbWVu
dDp0cnVlLFNWR1BhdHRlcm5FbGVtZW50OnRydWUsU1ZHUG9seWdvbkVsZW1lbnQ6dHJ1ZSxTVkdQb2x5
bGluZUVsZW1lbnQ6dHJ1ZSxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6dHJ1ZSxTVkdSZWN0RWxlbWVu
dDp0cnVlLFNWR1NldEVsZW1lbnQ6dHJ1ZSxTVkdTdG9wRWxlbWVudDp0cnVlLFNWR1N0eWxlRWxlbWVu
dDp0cnVlLFNWR1NWR0VsZW1lbnQ6dHJ1ZSxTVkdTd2l0Y2hFbGVtZW50OnRydWUsU1ZHU3ltYm9sRWxl
bWVudDp0cnVlLFNWR1RTcGFuRWxlbWVudDp0cnVlLFNWR1RleHRDb250ZW50RWxlbWVudDp0cnVlLFNW
R1RleHRFbGVtZW50OnRydWUsU1ZHVGV4dFBhdGhFbGVtZW50OnRydWUsU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudDp0cnVlLFNWR1RpdGxlRWxlbWVudDp0cnVlLFNWR1VzZUVsZW1lbnQ6dHJ1ZSxTVkdWaWV3
RWxlbWVudDp0cnVlLFNWR0dyYWRpZW50RWxlbWVudDp0cnVlLFNWR0NvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb25FbGVtZW50OnRydWUsU1ZHRkVEcm9wU2hhZG93RWxlbWVudDp0cnVlLFNWR01QYXRoRWxlbWVu
dDp0cnVlLFNWR0VsZW1lbnQ6ZmFsc2V9KQpILmIwLiRuYXRpdmVTdXBlcmNsYXNzVGFnPSJBcnJheUJ1
ZmZlclZpZXciCkguUkcuJG5hdGl2ZVN1cGVyY2xhc3NUYWc9IkFycmF5QnVmZmVyVmlldyIKSC5WUC4k
bmF0aXZlU3VwZXJjbGFzc1RhZz0iQXJyYXlCdWZmZXJWaWV3IgpILkRnLiRuYXRpdmVTdXBlcmNsYXNz
VGFnPSJBcnJheUJ1ZmZlclZpZXciCkguV0IuJG5hdGl2ZVN1cGVyY2xhc3NUYWc9IkFycmF5QnVmZmVy
VmlldyIKSC5aRy4kbmF0aXZlU3VwZXJjbGFzc1RhZz0iQXJyYXlCdWZmZXJWaWV3IgpILlBnLiRuYXRp
dmVTdXBlcmNsYXNzVGFnPSJBcnJheUJ1ZmZlclZpZXcifSkoKQpjb252ZXJ0QWxsVG9GYXN0T2JqZWN0
KHcpCmNvbnZlcnRUb0Zhc3RPYmplY3QoJCk7KGZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBkb2N1bWVudD09
PSJ1bmRlZmluZWQiKXthKG51bGwpCnJldHVybn1pZih0eXBlb2YgZG9jdW1lbnQuY3VycmVudFNjcmlw
dCE9J3VuZGVmaW5lZCcpe2EoZG9jdW1lbnQuY3VycmVudFNjcmlwdCkKcmV0dXJufXZhciB0PWRvY3Vt
ZW50LnNjcmlwdHMKZnVuY3Rpb24gb25Mb2FkKGIpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKXRb
cl0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsb25Mb2FkLGZhbHNlKQphKGIudGFyZ2V0KX1mb3Io
dmFyIHM9MDtzPHQubGVuZ3RoOysrcyl0W3NdLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLG9uTG9hZCxm
YWxzZSl9KShmdW5jdGlvbihhKXt2LmN1cnJlbnRTY3JpcHQ9YQppZih0eXBlb2YgZGFydE1haW5SdW5u
ZXI9PT0iZnVuY3Rpb24iKWRhcnRNYWluUnVubmVyKEwuSXEsW10pCmVsc2UgTC5JcShbXSl9KX0pKCkK
Ly8jIHNvdXJjZU1hcHBpbmdVUkw9bWlncmF0aW9uLmpzLm1hcAo=
''';
String _migration_css;
// migration_css md5 is '503fdb394c9ab5438c2ba2c12a0be0cb'
String _migration_css_base64 = '''
LyogQ29weXJpZ2h0IChjKSAyMDE5LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuIFBsZWFzZSBzZWUg
dGhlIEFVVEhPUlMgZmlsZSAgKi8KLyogZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgKi8KLyogQlNELXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4gICAgICAgICAgICAgICAgICAg
Ki8KCmJvZHkgewogIGJhY2tncm91bmQtY29sb3I6ICMxMjIwMmY7CiAgY29sb3I6ICNjY2M7CiAgZm9u
dC1mYW1pbHk6ICJSb2JvdG8iLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZTogMTRweDsKICBkaXNwbGF5
OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRv
cDogMDsKICByaWdodDogMDsKICBib3R0b206IDA7CiAgbGVmdDogMDsKICBtYXJnaW46IDA7CiAgcGFk
ZGluZzogMDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgpoZWFkZXIgewogIGJhY2tncm91bmQtY29sb3I6
ICMxYzI4MzQ7CiAgaGVpZ2h0OiA0OHB4OwogIHBhZGRpbmctbGVmdDogMjRweDsKICBhbGlnbi1pdGVt
czogY2VudGVyOwogIHotaW5kZXg6IDQ7Cn0KCmhlYWRlciBoMSwKaGVhZGVyIGgyIHsKICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CiAgZm9udC1mYW1pbHk6ICJHb29nbGUgU2FucyIsIlJvYm90byIsc2Fucy1z
ZXJpZjsKICBmb250LXdlaWdodDogNDAwOwogIG1hcmdpbi1yaWdodDogMjRweDsKfQoKaDEgewogIGZv
bnQtc2l6ZTogMS41ZW07Cn0KCmhlYWRlciBoMiB7CiAgZm9udC1zaXplOiAxLjJlbTsKfQoKZm9vdGVy
IHsKICBjb2xvcjogI2NjYzsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjczMjNhOwogIGRpc3BsYXk6IGZs
ZXg7CiAgZmxleC1kaXJlY3Rpb246IHJvdzsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIHBhZGRpbmc6
IDhweCAyNHB4Owp9Cgpmb290ZXIgLndpZGUgewogIGZsZXg6IDE7Cn0KCi5ob3Jpem9udGFsIHsKICBk
aXNwbGF5OiBmbGV4Owp9CgoucGFuZWxzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxYTI1OwogIGZs
ZXg6IDE7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLnBhbmVsLWhlYWRpbmcgewogIGZvbnQtZmFtaWx5
OiAiUm9ib3RvIE1vbm8iLCBtb25vc3BhY2U7CiAgZm9udC1zaXplOiAxMnB4OwogIGNvbG9yOiBncmF5
OwogIG1hcmdpbjogOHB4Owp9CgoubmF2LWxpbmssCi5yZWdpb24gewogIGN1cnNvcjogcG9pbnRlcjsK
fQoKLm5hdi1wYW5lbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MmIyZTsKICBmbGV4OiAxIDIwMHB4
OwogIG1hcmdpbjogMDsKICBvdmVyZmxvdzogc2Nyb2xsOwp9CgoubmF2LWlubmVyIHsKICBwYWRkaW5n
OiAwIDAgN3B4IDdweDsKfQoKLmZpeGVkIHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiAwOwp9Cgou
cm9vdCB7CiAgbWFyZ2luOiAwOwogIGRpc3BsYXk6IG5vbmU7Cn0KCi5uYXYtdHJlZSA+IHVsIHsKICBw
YWRkaW5nLWxlZnQ6IDZweDsKfQoKLm5hdi1pbm5lciB1bCB7CiAgcGFkZGluZy1sZWZ0OiAxMnB4Owog
IG1hcmdpbjogMDsKfQoKLm5hdi1pbm5lciBsaSB7CiAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9Cgou
bmF2LWlubmVyIGxpOm5vdCguZGlyKSB7CiAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgbWFyZ2luLWJvdHRv
bTogM3B4Owp9CgoubmF2LWlubmVyIGxpLmRpciAuYXJyb3cgewogIGN1cnNvcjogcG9pbnRlcjsKICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgZm9udC1zaXplOiAxMHB4OwogIG1hcmdpbi1yaWdodDogNHB4
OwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0Owp9CgoubmF2LWlubmVyIGxpLmRp
ciAuYXJyb3cuY29sbGFwc2VkIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwp9CgoubmF2LWlu
bmVyIHVsIHsKICBtYXgtaGVpZ2h0OiAyMDAwcHg7CiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVz
IGVhc2Utb3V0Owp9CgoubmF2LWlubmVyIHVsLmNvbGxhcHNlZCB7CiAgbWF4LWhlaWdodDogMCAhaW1w
b3J0YW50OwogIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5uYXYtaW5uZXIgLnNlbGVjdGVkLWZpbGUgewog
IGNvbG9yOiB3aGl0ZTsKICBjdXJzb3I6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICB0ZXh0
LWRlY29yYXRpb246IG5vbmU7Cn0KCi5lZGl0LWNvdW50IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdh
ZWRjOwogIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgY29sb3I6ICMwMDAwMDA7CiAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOwogIGZvbnQtc2l6ZTogMTFweDsKICBmb250LXdlaWdodDogNjAwOwogIG1hcmdpbi1s
ZWZ0OiA1cHg7CiAgbWluLXdpZHRoOiAyNXB4OwogIHBhZGRpbmc6IDRweCAwIDJweCAwOwogIHRleHQt
YWxpZ246IGNlbnRlcjsKICBsaW5lLWhlaWdodDogMWVtOwp9CgouY29udGVudCB7CiAgZmxleDogNCAz
MDBweDsKICBiYWNrZ3JvdW5kOiAjMjgyYjJlOwogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgbWFy
Z2luOiAwIDZweDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgd2hpdGUtc3BhY2U6IHByZTsKICBvdmVy
Zmxvdzogc2Nyb2xsOwp9CgouY29kZSB7CiAgcGFkZGluZzogMC41ZW07CiAgcG9zaXRpb246IGFic29s
dXRlOwogIGxlZnQ6IDA7CiAgdG9wOiAwOwogIG1hcmdpbi1sZWZ0OiA1NnB4Owp9CgouaGxqcyB7CiAg
YmFja2dyb3VuZC1jb2xvcjogIzI4MmIyZTsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdy14OiBh
dXRvOwogIHBhZGRpbmc6IDAuNWVtOwp9CgouY29kZSAud2VsY29tZSB7CiAgZm9udC1mYW1pbHk6ICdP
cGVuIFNhbnMnLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZTogMThweDsKICBtYXJnaW4tcmlnaHQ6IDYy
cHg7Cn0KCi5jb2RlIC5uYXYtbGluayB7CiAgY29sb3I6IGluaGVyaXQ7CiAgdGV4dC1kZWNvcmF0aW9u
LWxpbmU6IG5vbmU7Cn0KCi5jb2RlIC5uYXYtbGluazp2aXNpdGVkIHsKICBjb2xvcjogaW5oZXJpdDsK
ICB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsKfQoKLmNvZGUgLm5hdi1saW5rOmhvdmVyIHsKICB0
ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lOwogIGZvbnQtd2VpZ2h0OiA2MDA7Cn0KCi5yZWdp
b25zIHsKICBwYWRkaW5nOiAwLjVlbTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogMDsKICB0
b3A6IDA7Cn0KCi5yZWdpb25zIHRhYmxlIHsKICBib3JkZXItc3BhY2luZzogMDsKICBmb250LXNpemU6
IGluaGVyaXQ7Cn0KCi5yZWdpb25zIHRkIHsKICBib3JkZXI6IG5vbmU7CiAgLyogVGhlIGNvbnRlbnQg
b2YgdGhlIHJlZ2lvbnMgaXMgbm90IHZpc2libGU7IHRoZSB1c2VyIGluc3RlYWQgd2lsbCBzZWUgdGhl
CiAgICogaGlnaGxpZ2h0ZWQgY29weSBvZiB0aGUgY29udGVudC4gKi8KICBjb2xvcjogcmdiYSgyNTUs
IDI1NSwgMjU1LCAwKTsKICBwYWRkaW5nOiAwOwogIHdoaXRlLXNwYWNlOiBwcmU7Cn0KCi5yZWdpb25z
IHRkOmVtcHR5OmFmdGVyIHsKICBjb250ZW50OiAiXDAwYTAiOwp9CgoucmVnaW9ucyB0ci5oaWdobGln
aHQgdGQ6bGFzdC1jaGlsZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDQ0NDsKICBjb2xvcjogd2hp
dGU7Cn0KCi5yZWdpb25zIHRkLmxpbmUtbm8gewogIGJvcmRlci1yaWdodDogc29saWQgIzI4MmIyZSAy
cHg7CiAgY29sb3I6ICM5OTk5OTk7CiAgcGFkZGluZy1yaWdodDogNHB4OwogIHRleHQtYWxpZ246IHJp
Z2h0OwogIHZpc2liaWxpdHk6IHZpc2libGU7CiAgd2lkdGg6IDUwcHg7CiAgZGlzcGxheTogaW5saW5l
LWJsb2NrOwp9CgoucmVnaW9ucyB0ci5oaWdobGlnaHQgdGQubGluZS1ubyB7CiAgYm9yZGVyLXJpZ2h0
OiBzb2xpZCAjY2NjIDJweDsKfQoKLnJlZ2lvbiB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHBv
c2l0aW9uOiByZWxhdGl2ZTsKICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogIHotaW5kZXg6IDIwMDsKfQoK
LnJlZ2lvbi5hZGRlZC1yZWdpb24gewogIGJhY2tncm91bmQtY29sb3I6ICNjY2ZmY2M7CiAgY29sb3I6
ICMwMDMzMDA7Cn0KCi5yZWdpb24ucmVtb3ZlZC1yZWdpb24gewogIGJhY2tncm91bmQtY29sb3I6ICNm
ZjY2NjY7CiAgY29sb3I6ICMwMDExMDA7Cn0KCi5yZWdpb24udW5jaGFuZ2VkLXJlZ2lvbiB7CiAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjMpOwogIGJvcmRlci1ib3R0b206IHNvbGlkIDJw
eCAjY2NjOwogIC8qIEludmlzaWJsZSB0ZXh0OyB1c2UgdW5kZXJseWluZyBoaWdobGlnaHRpbmcuICov
CiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgLyogUmVkdWNlIGxpbmUgaGVpZ2h0IHRvIG1ha2Ug
cm9vbSBmb3IgYm9yZGVyLiAqLwogIGxpbmUtaGVpZ2h0OiAxOwp9CgoudGFyZ2V0IHsKICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjRkZGRjk5OwogIGNvbG9yOiBibGFjazsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAg
dmlzaWJpbGl0eTogdmlzaWJsZTsKfQoKLmluZm8tcGFuZWwgewogIGZsZXg6IDEgMjAwcHg7CiAgbWFy
Z2luOiAwOwogIGhlaWdodDogMTAwJTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBj
b2x1bW47Cn0KCi5pbmZvLXBhbmVsIC5lZGl0LXBhbmVsIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgy
YjJlOwogIG92ZXJmbG93OiBhdXRvOwp9CgouaW5mby1wYW5lbCAucGFuZWwtY29udGVudCB7CiAgcGFk
ZGluZzogN3B4Owp9CgouaW5mby1wYW5lbCAucGFuZWwtY29udGVudD4gOmZpcnN0LWNoaWxkIHsKICBt
YXJnaW4tdG9wOiAwOwp9CgouaW5mby1wYW5lbCAubm93cmFwIHsKICB3aGl0ZS1zcGFjZTogbm93cmFw
Owp9CgouaW5mby1wYW5lbCB1bCwKLmluZm8tcGFuZWwgb2wgewogIHBhZGRpbmctbGVmdDogMjBweDsK
fQoKLmluZm8tcGFuZWwgbGkgewogIG1hcmdpbjogMCAwIDVweCAwOwp9CgouaW5mby1wYW5lbCBhIHsK
ICBjb2xvcjogIzMzY2NmZjsKfQoKLmluZm8tcGFuZWwgLmVkaXQtbGlzdCB7CiAgYmFja2dyb3VuZC1j
b2xvcjogIzI4MmIyZTsKICBvdmVyZmxvdzogYXV0bzsKfQoKLmVkaXQtcGFuZWwgewogIG1hcmdpbi10
b3A6IDZweDsKICBmbGV4OiAxIDEwMHB4Owp9CgouZWRpdC1saXN0IHsKICBmbGV4OiAyIDEwMHB4Owp9
CgouZWRpdC1saXN0IC5lZGl0IHsKICBtYXJnaW46IDNweCAwOwp9CgouZWRpdC1saXN0IC5lZGl0LWxp
bmsgewogIGN1cnNvcjogcG9pbnRlcjsKfQoKLmVsZXZhdGlvbi16NCB7CiAgYm94LXNoYWRvdzogMHB4
IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCA0cHggNXB4IDBweCByZ2JhKDAsIDAs
IDAsIDAuMTQpLCAwcHggMXB4IDEwcHggMHB4IHJnYmEoMCwgMCwgMCwgLjEyKTsKfQoKYSB7CiAgY29s
b3I6ICNjY2M7CiAgZmlsbDogI2NjYzsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCmE6aG92ZXIg
ewogIGNvbG9yOiAjZmZmOwogIGZpbGw6ICNmZmY7Cn0K
''';