blob: ea345f8685ffcee081d3089fc77d1e1c14845aff [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 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 _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 '61fc6d8b736b7e11eb4f1945dfc64194'
String _migration_js_base64 = '''
KGZ1bmN0aW9uIGRhcnRQcm9ncmFtKCl7ZnVuY3Rpb24gY29weVByb3BlcnRpZXMoYSxiKXt2YXIgdD1P
YmplY3Qua2V5cyhhKQpmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKyl7dmFyIHI9dFtzXQpiW3JdPWFb
cl19fXZhciB6PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9CnQucHJvdG90eXBlPXtwOnt9fQp2
YXIgcz1uZXcgdCgpCmlmKCEocy5fX3Byb3RvX18mJnMuX19wcm90b19fLnA9PT10LnByb3RvdHlwZS5w
KSlyZXR1cm4gZmFsc2UKdHJ5e2lmKHR5cGVvZiBuYXZpZ2F0b3IhPSJ1bmRlZmluZWQiJiZ0eXBlb2Yg
bmF2aWdhdG9yLnVzZXJBZ2VudD09InN0cmluZyImJm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigi
Q2hyb21lLyIpPj0wKXJldHVybiB0cnVlCmlmKHR5cGVvZiB2ZXJzaW9uPT0iZnVuY3Rpb24iJiZ2ZXJz
aW9uLmxlbmd0aD09MCl7dmFyIHI9dmVyc2lvbigpCmlmKC9eXGQrXC5cZCtcLlxkK1wuXGQrJC8udGVz
dChyKSlyZXR1cm4gdHJ1ZX19Y2F0Y2gocSl7fXJldHVybiBmYWxzZX0oKQpmdW5jdGlvbiBzZXRGdW5j
dGlvbk5hbWVzSWZOZWNlc3NhcnkoYSl7ZnVuY3Rpb24gdCgpe307aWYodHlwZW9mIHQubmFtZT09InN0
cmluZyIpcmV0dXJuCmZvcih2YXIgdD0wO3Q8YS5sZW5ndGg7dCsrKXt2YXIgcz1hW3RdCnZhciByPU9i
amVjdC5rZXlzKHMpCmZvcih2YXIgcT0wO3E8ci5sZW5ndGg7cSsrKXt2YXIgcD1yW3FdCnZhciBvPXNb
cF0KaWYodHlwZW9mIG89PSdmdW5jdGlvbicpby5uYW1lPXB9fX1mdW5jdGlvbiBpbmhlcml0KGEsYil7
YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YQphLnByb3RvdHlwZVsiJGkiK2EubmFtZV09YQppZihiIT1u
dWxsKXtpZih6KXthLnByb3RvdHlwZS5fX3Byb3RvX189Yi5wcm90b3R5cGUKcmV0dXJufXZhciB0PU9i
amVjdC5jcmVhdGUoYi5wcm90b3R5cGUpCmNvcHlQcm9wZXJ0aWVzKGEucHJvdG90eXBlLHQpCmEucHJv
dG90eXBlPXR9fWZ1bmN0aW9uIGluaGVyaXRNYW55KGEsYil7Zm9yKHZhciB0PTA7dDxiLmxlbmd0aDt0
KyspaW5oZXJpdChiW3RdLGEpfWZ1bmN0aW9uIG1peGluKGEsYil7Y29weVByb3BlcnRpZXMoYi5wcm90
b3R5cGUsYS5wcm90b3R5cGUpCmEucHJvdG90eXBlLmNvbnN0cnVjdG9yPWF9ZnVuY3Rpb24gbGF6eShh
LGIsYyxkKXt2YXIgdD1hCmFbYl09dAphW2NdPWZ1bmN0aW9uKCl7YVtjXT1mdW5jdGlvbigpe0gubEco
Yil9CnZhciBzCnZhciByPWQKdHJ5e2lmKGFbYl09PT10KXtzPWFbYl09cgpzPWFbYl09ZCgpfWVsc2Ug
cz1hW2JdfWZpbmFsbHl7aWYocz09PXIpYVtiXT1udWxsCmFbY109ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
c1tiXX19cmV0dXJuIHN9fWZ1bmN0aW9uIG1ha2VDb25zdExpc3QoYSl7YS5pbW11dGFibGUkbGlzdD1B
cnJheQphLmZpeGVkJGxlbmd0aD1BcnJheQpyZXR1cm4gYX1mdW5jdGlvbiBjb252ZXJ0VG9GYXN0T2Jq
ZWN0KGEpe2Z1bmN0aW9uIHQoKXt9dC5wcm90b3R5cGU9YQpuZXcgdCgpCnJldHVybiBhfWZ1bmN0aW9u
IGNvbnZlcnRBbGxUb0Zhc3RPYmplY3QoYSl7Zm9yKHZhciB0PTA7dDxhLmxlbmd0aDsrK3QpY29udmVy
dFRvRmFzdE9iamVjdChhW3RdKX12YXIgeT0wCmZ1bmN0aW9uIHRlYXJPZmZHZXR0ZXIoYSxiLGMsZCxl
KXtyZXR1cm4gZT9uZXcgRnVuY3Rpb24oImZ1bmNzIiwiYXBwbHlUcmFtcG9saW5lSW5kZXgiLCJyZWZs
ZWN0aW9uSW5mbyIsIm5hbWUiLCJIIiwiYyIsInJldHVybiBmdW5jdGlvbiB0ZWFyT2ZmXyIrZCt5Kysr
IihyZWNlaXZlcikgeyIrImlmIChjID09PSBudWxsKSBjID0gIisiSC5ocCIrIigiKyJ0aGlzLCBmdW5j
cywgYXBwbHlUcmFtcG9saW5lSW5kZXgsIHJlZmxlY3Rpb25JbmZvLCBmYWxzZSwgdHJ1ZSwgbmFtZSk7
IisicmV0dXJuIG5ldyBjKHRoaXMsIGZ1bmNzWzBdLCByZWNlaXZlciwgbmFtZSk7IisifSIpKGEsYixj
LGQsSCxudWxsKTpuZXcgRnVuY3Rpb24oImZ1bmNzIiwiYXBwbHlUcmFtcG9saW5lSW5kZXgiLCJyZWZs
ZWN0aW9uSW5mbyIsIm5hbWUiLCJIIiwiYyIsInJldHVybiBmdW5jdGlvbiB0ZWFyT2ZmXyIrZCt5Kysr
IigpIHsiKyJpZiAoYyA9PT0gbnVsbCkgYyA9ICIrIkguaHAiKyIoIisidGhpcywgZnVuY3MsIGFwcGx5
VHJhbXBvbGluZUluZGV4LCByZWZsZWN0aW9uSW5mbywgZmFsc2UsIGZhbHNlLCBuYW1lKTsiKyJyZXR1
cm4gbmV3IGModGhpcywgZnVuY3NbMF0sIG51bGwsIG5hbWUpOyIrIn0iKShhLGIsYyxkLEgsbnVsbCl9
ZnVuY3Rpb24gdGVhck9mZihhLGIsYyxkLGUsZil7dmFyIHQ9bnVsbApyZXR1cm4gZD9mdW5jdGlvbigp
e2lmKHQ9PT1udWxsKXQ9SC5ocCh0aGlzLGEsYixjLHRydWUsZmFsc2UsZSkucHJvdG90eXBlCnJldHVy
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
d1t0XVthXSlyZXR1cm4gd1t0XVthXX19dmFyIEM9e30sSD17aDA6ZnVuY3Rpb24gaDAoKXt9LApmdzpm
dW5jdGlvbihhKXt2YXIgdCxzPWFeNDgKaWYoczw9OSlyZXR1cm4gcwp0PWF8MzIKaWYoOTc8PXQmJnQ8
PTEwMilyZXR1cm4gdC04NwpyZXR1cm4tMX0sCmhQOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQLmJoKCJO
byBlbGVtZW50Iil9LApqSTpmdW5jdGlvbigpe3JldHVybiBuZXcgUC5iaCgiVG9vIG1hbnkgZWxlbWVu
dHMiKX0sCmN5OmZ1bmN0aW9uIGN5KGEpe3RoaXMuYT1hfSwKYkM6ZnVuY3Rpb24gYkMoKXt9LAphZTpm
dW5jdGlvbiBhZSgpe30sCmFROmZ1bmN0aW9uIGFRKGEsYixjKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1i
Cl8uYz0wCl8uZD1udWxsCl8uJHRpPWN9LAphNDpmdW5jdGlvbiBhNChhLGIsYyl7dGhpcy5hPWEKdGhp
cy5iPWIKdGhpcy4kdGk9Y30sCmFZOmZ1bmN0aW9uIGFZKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0
aGlzLiR0aT1jfSwKY186ZnVuY3Rpb24gY18oYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuJHRp
PWN9LApWOmZ1bmN0aW9uIFYoKXt9LAphWDpmdW5jdGlvbiBhWCgpe30sCmJsOmZ1bmN0aW9uIGJsKCl7
fSwKYmk6ZnVuY3Rpb24gYmkoYSl7dGhpcy5hPWF9LApqQzpmdW5jdGlvbigpe3Rocm93IEguYShQLk4o
IkNhbm5vdCBtb2RpZnkgdW5tb2RpZmlhYmxlIE1hcCIpKX0sCmlZOmZ1bmN0aW9uKGEpe3ZhciB0LHM9
SC5pWChhKQppZih0eXBlb2Ygcz09InN0cmluZyIpcmV0dXJuIHMKdD0ibWluaWZpZWQ6IithCnJldHVy
biB0fSwKbHg6ZnVuY3Rpb24oYSxiKXt2YXIgdAppZihiIT1udWxsKXt0PWIueAppZih0IT1udWxsKXJl
dHVybiB0fXJldHVybiB1LmFVLmMoYSl9LApiOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKHR5cGVvZiBhPT0i
c3RyaW5nIilyZXR1cm4gYQppZih0eXBlb2YgYT09Im51bWJlciIpe2lmKGEhPT0wKXJldHVybiIiK2F9
ZWxzZSBpZighMD09PWEpcmV0dXJuInRydWUiCmVsc2UgaWYoITE9PT1hKXJldHVybiJmYWxzZSIKZWxz
ZSBpZihhPT1udWxsKXJldHVybiJudWxsIgp0PUouYjIoYSkKaWYodHlwZW9mIHQhPSJzdHJpbmciKXRo
cm93IEguYShILmFzKGEpKQpyZXR1cm4gdH0sCmJWOmZ1bmN0aW9uKGEpe3ZhciB0PWEuJGlkZW50aXR5
SGFzaAppZih0PT1udWxsKXt0PU1hdGgucmFuZG9tKCkqMHgzZmZmZmZmZnwwCmEuJGlkZW50aXR5SGFz
aD10fXJldHVybiB0fSwKaDQ6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG89bnVsbCxuPS9eXHMq
WystXT8oKDB4W2EtZjAtOV0rKXwoXGQrKXwoW2EtejAtOV0rKSlccyokL2kuZXhlYyhhKQppZihuPT1u
dWxsKXJldHVybiBvCmlmKDM+PW4ubGVuZ3RoKXJldHVybiBILmkobiwzKQp0PUgubyhuWzNdKQppZihi
PT1udWxsKXtpZih0IT1udWxsKXJldHVybiBwYXJzZUludChhLDEwKQppZihuWzJdIT1udWxsKXJldHVy
biBwYXJzZUludChhLDE2KQpyZXR1cm4gb31pZihiPDJ8fGI+MzYpdGhyb3cgSC5hKFAuTChiLDIsMzYs
InJhZGl4IixvKSkKaWYoYj09PTEwJiZ0IT1udWxsKXJldHVybiBwYXJzZUludChhLDEwKQppZihiPDEw
fHx0PT1udWxsKXtzPWI8PTEwPzQ3K2I6ODYrYgpyPW5bMV0KZm9yKHE9ci5sZW5ndGgscD0wO3A8cTsr
K3ApaWYoKEMuYS50KHIscCl8MzIpPnMpcmV0dXJuIG99cmV0dXJuIHBhcnNlSW50KGEsYil9LAplZjpm
dW5jdGlvbihhKXt2YXIgdD1ILmpSKGEpCnJldHVybiB0fSwKalI6ZnVuY3Rpb24oYSl7dmFyIHQscyxy
CmlmKGEgaW5zdGFuY2VvZiBQLnQpcmV0dXJuIEguUChILmE4KGEpLG51bGwpCmlmKEouYUUoYSk9PT1D
LlB8fHUuYWsuYyhhKSl7dD1DLnEoYSkKaWYoSC5oWCh0KSlyZXR1cm4gdApzPWEuY29uc3RydWN0b3IK
aWYodHlwZW9mIHM9PSJmdW5jdGlvbiIpe3I9cy5uYW1lCmlmKHR5cGVvZiByPT0ic3RyaW5nIiYmSC5o
WChyKSlyZXR1cm4gcn19cmV0dXJuIEguUChILmE4KGEpLG51bGwpfSwKaFg6ZnVuY3Rpb24oYSl7dmFy
IHQ9YSE9PSJPYmplY3QiJiZhIT09IiIKcmV0dXJuIHR9LApoVzpmdW5jdGlvbihhKXt2YXIgdCxzLHIs
cSxwPWEubGVuZ3RoCmlmKHA8PTUwMClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxs
LGEpCmZvcih0PSIiLHM9MDtzPHA7cz1yKXtyPXMrNTAwCnE9cjxwP3I6cAp0Kz1TdHJpbmcuZnJvbUNo
YXJDb2RlLmFwcGx5KG51bGwsYS5zbGljZShzLHEpKX1yZXR1cm4gdH0sCmtfOmZ1bmN0aW9uKGEpe3Zh
ciB0LHMscixxPUgubihbXSx1LnQpCmZvcih0PWEubGVuZ3RoLHM9MDtzPGEubGVuZ3RoO2EubGVuZ3Ro
PT09dHx8KDAsSC5jcikoYSksKytzKXtyPWFbc10KaWYoIUguZEoocikpdGhyb3cgSC5hKEguYXMocikp
CmlmKHI8PTY1NTM1KUMuYi5rKHEscikKZWxzZSBpZihyPD0xMTE0MTExKXtDLmIuayhxLDU1Mjk2KyhD
LmMuWihyLTY1NTM2LDEwKSYxMDIzKSkKQy5iLmsocSw1NjMyMCsociYxMDIzKSl9ZWxzZSB0aHJvdyBI
LmEoSC5hcyhyKSl9cmV0dXJuIEguaFcocSl9LApoWTpmdW5jdGlvbihhKXt2YXIgdCxzLHIKZm9yKHQ9
YS5sZW5ndGgscz0wO3M8dDsrK3Mpe3I9YVtzXQppZighSC5kSihyKSl0aHJvdyBILmEoSC5hcyhyKSkK
aWYocjwwKXRocm93IEguYShILmFzKHIpKQppZihyPjY1NTM1KXJldHVybiBILmtfKGEpfXJldHVybiBI
LmhXKGEpfSwKazA6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxCmlmKGM8PTUwMCYmYj09PTAmJmM9
PT1hLmxlbmd0aClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEpCmZvcih0PWIs
cz0iIjt0PGM7dD1yKXtyPXQrNTAwCnE9cjxjP3I6YwpzKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5
KG51bGwsYS5zdWJhcnJheSh0LHEpKX1yZXR1cm4gc30sCmRfOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKDA8
PWEpe2lmKGE8PTY1NTM1KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGEpCmlmKGE8PTExMTQxMTEp
e3Q9YS02NTUzNgpyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgoNTUyOTZ8Qy5jLloodCwxMCkpPj4+
MCw1NjMyMHx0JjEwMjMpfX10aHJvdyBILmEoUC5MKGEsMCwxMTE0MTExLG51bGwsbnVsbCkpfSwKYVQ6
ZnVuY3Rpb24oYSl7aWYoYS5kYXRlPT09dm9pZCAwKWEuZGF0ZT1uZXcgRGF0ZShhLmEpCnJldHVybiBh
LmRhdGV9LApqWjpmdW5jdGlvbihhKXt2YXIgdD1ILmFUKGEpLmdldEZ1bGxZZWFyKCkrMApyZXR1cm4g
dH0sCmpYOmZ1bmN0aW9uKGEpe3ZhciB0PUguYVQoYSkuZ2V0TW9udGgoKSsxCnJldHVybiB0fSwKalQ6
ZnVuY3Rpb24oYSl7dmFyIHQ9SC5hVChhKS5nZXREYXRlKCkrMApyZXR1cm4gdH0sCmpVOmZ1bmN0aW9u
KGEpe3ZhciB0PUguYVQoYSkuZ2V0SG91cnMoKSswCnJldHVybiB0fSwKalc6ZnVuY3Rpb24oYSl7dmFy
IHQ9SC5hVChhKS5nZXRNaW51dGVzKCkrMApyZXR1cm4gdH0sCmpZOmZ1bmN0aW9uKGEpe3ZhciB0PUgu
YVQoYSkuZ2V0U2Vjb25kcygpKzAKcmV0dXJuIHR9LApqVjpmdW5jdGlvbihhKXt2YXIgdD1ILmFUKGEp
LmdldE1pbGxpc2Vjb25kcygpKzAKcmV0dXJuIHR9LApiZjpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxy
PXt9CnIuYT0wCnQ9W10Kcz1bXQpyLmE9Yi5sZW5ndGgKQy5iLkkodCxiKQpyLmI9IiIKaWYoYyE9bnVs
bCYmYy5hIT09MCljLkEoMCxuZXcgSC5lZShyLHMsdCkpCiIiK3IuYQpyZXR1cm4gSi5qcShhLG5ldyBI
LmNKKEMuYTAsMCx0LHMsMCkpfSwKalM6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxCmlmKGIgaW5z
dGFuY2VvZiBBcnJheSl0PWM9PW51bGx8fGMuYT09PTAKZWxzZSB0PSExCmlmKHQpe3M9YgpyPXMubGVu
Z3RoCmlmKHI9PT0wKXtpZighIWEuJDApcmV0dXJuIGEuJDAoKX1lbHNlIGlmKHI9PT0xKXtpZighIWEu
JDEpcmV0dXJuIGEuJDEoc1swXSl9ZWxzZSBpZihyPT09Mil7aWYoISFhLiQyKXJldHVybiBhLiQyKHNb
MF0sc1sxXSl9ZWxzZSBpZihyPT09Myl7aWYoISFhLiQzKXJldHVybiBhLiQzKHNbMF0sc1sxXSxzWzJd
KX1lbHNlIGlmKHI9PT00KXtpZighIWEuJDQpcmV0dXJuIGEuJDQoc1swXSxzWzFdLHNbMl0sc1szXSl9
ZWxzZSBpZihyPT09NSlpZighIWEuJDUpcmV0dXJuIGEuJDUoc1swXSxzWzFdLHNbMl0sc1szXSxzWzRd
KQpxPWFbIiIrIiQiK3JdCmlmKHEhPW51bGwpcmV0dXJuIHEuYXBwbHkoYSxzKX1yZXR1cm4gSC5qUShh
LGIsYyl9LApqUTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGs9YiBpbnN0YW5j
ZW9mIEFycmF5P2I6UC5oMihiLCEwLHUueiksaj1rLmxlbmd0aCxpPWEuJFIKaWYoajxpKXJldHVybiBI
LmJmKGEsayxjKQp0PWEuJEQKcz10PT1udWxsCnI9IXM/dCgpOm51bGwKcT1KLmFFKGEpCnA9cS4kQwpp
Zih0eXBlb2YgcD09InN0cmluZyIpcD1xW3BdCmlmKHMpe2lmKGMhPW51bGwmJmMuYSE9PTApcmV0dXJu
IEguYmYoYSxrLGMpCmlmKGo9PT1pKXJldHVybiBwLmFwcGx5KGEsaykKcmV0dXJuIEguYmYoYSxrLGMp
fWlmKHIgaW5zdGFuY2VvZiBBcnJheSl7aWYoYyE9bnVsbCYmYy5hIT09MClyZXR1cm4gSC5iZihhLGss
YykKaWYoaj5pK3IubGVuZ3RoKXJldHVybiBILmJmKGEsayxudWxsKQpDLmIuSShrLHIuc2xpY2Uoai1p
KSkKcmV0dXJuIHAuYXBwbHkoYSxrKX1lbHNle2lmKGo+aSlyZXR1cm4gSC5iZihhLGssYykKbz1PYmpl
Y3Qua2V5cyhyKQppZihjPT1udWxsKWZvcihzPW8ubGVuZ3RoLG49MDtuPG8ubGVuZ3RoO28ubGVuZ3Ro
PT09c3x8KDAsSC5jcikobyksKytuKUMuYi5rKGsscltILm8ob1tuXSldKQplbHNle2ZvcihzPW8ubGVu
Z3RoLG09MCxuPTA7bjxvLmxlbmd0aDtvLmxlbmd0aD09PXN8fCgwLEguY3IpKG8pLCsrbil7bD1ILm8o
b1tuXSkKaWYoYy5hXyhsKSl7KyttCkMuYi5rKGssYy5qKDAsbCkpfWVsc2UgQy5iLmsoayxyW2xdKX1p
ZihtIT09Yy5hKXJldHVybiBILmJmKGEsayxjKX1yZXR1cm4gcC5hcHBseShhLGspfX0sCmFqOmZ1bmN0
aW9uKGEpe3Rocm93IEguYShILmFzKGEpKX0sCmk6ZnVuY3Rpb24oYSxiKXtpZihhPT1udWxsKUouYXQo
YSkKdGhyb3cgSC5hKEguYjEoYSxiKSl9LApiMTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj0iaW5kZXgi
CmlmKCFILmRKKGIpKXJldHVybiBuZXcgUC5hMSghMCxiLHIsbnVsbCkKdD1ILngoSi5hdChhKSkKaWYo
IShiPDApKXtpZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiBILmFqKHQpCnM9Yj49dH1lbHNlIHM9
ITAKaWYocylyZXR1cm4gUC5lNShiLGEscixudWxsLHQpCnJldHVybiBQLmVnKGIscil9LApsbDpmdW5j
dGlvbihhLGIsYyl7dmFyIHQ9IkludmFsaWQgdmFsdWUiCmlmKGE+YylyZXR1cm4gbmV3IFAuYVUoMCxj
LCEwLGEsInN0YXJ0Iix0KQppZihiIT1udWxsKWlmKGI8YXx8Yj5jKXJldHVybiBuZXcgUC5hVShhLGMs
ITAsYiwiZW5kIix0KQpyZXR1cm4gbmV3IFAuYTEoITAsYiwiZW5kIixudWxsKX0sCmFzOmZ1bmN0aW9u
KGEpe3JldHVybiBuZXcgUC5hMSghMCxhLG51bGwsbnVsbCl9LAphOmZ1bmN0aW9uKGEpe3ZhciB0Cmlm
KGE9PW51bGwpYT1uZXcgUC5iZCgpCnQ9bmV3IEVycm9yKCkKdC5kYXJ0RXhjZXB0aW9uPWEKaWYoImRl
ZmluZVByb3BlcnR5IiBpbiBPYmplY3Qpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJtZXNzYWdlIix7
Z2V0OkguaVd9KQp0Lm5hbWU9IiJ9ZWxzZSB0LnRvU3RyaW5nPUguaVcKcmV0dXJuIHR9LAppVzpmdW5j
dGlvbigpe3JldHVybiBKLmIyKHRoaXMuZGFydEV4Y2VwdGlvbil9LAphazpmdW5jdGlvbihhKXt0aHJv
dyBILmEoYSl9LApjcjpmdW5jdGlvbihhKXt0aHJvdyBILmEoUC5hdihhKSl9LAphbzpmdW5jdGlvbihh
KXt2YXIgdCxzLHIscSxwLG8KYT1ILmxEKGEucmVwbGFjZShTdHJpbmcoe30pLCckcmVjZWl2ZXIkJykp
CnQ9YS5tYXRjaCgvXFxcJFthLXpBLVpdK1xcXCQvZykKaWYodD09bnVsbCl0PUgubihbXSx1LnMpCnM9
dC5pbmRleE9mKCJcXCRhcmd1bWVudHNcXCQiKQpyPXQuaW5kZXhPZigiXFwkYXJndW1lbnRzRXhwclxc
JCIpCnE9dC5pbmRleE9mKCJcXCRleHByXFwkIikKcD10LmluZGV4T2YoIlxcJG1ldGhvZFxcJCIpCm89
dC5pbmRleE9mKCJcXCRyZWNlaXZlclxcJCIpCnJldHVybiBuZXcgSC5laihhLnJlcGxhY2UobmV3IFJl
Z0V4cCgnXFxcXFxcJGFyZ3VtZW50c1xcXFxcXCQnLCdnJyksJygoPzp4fFteeF0pKiknKS5yZXBsYWNl
KG5ldyBSZWdFeHAoJ1xcXFxcXCRhcmd1bWVudHNFeHByXFxcXFxcJCcsJ2cnKSwnKCg/Onh8W154XSkq
KScpLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXFxcJGV4cHJcXFxcXFwkJywnZycpLCcoKD86eHxbXnhd
KSopJykucmVwbGFjZShuZXcgUmVnRXhwKCdcXFxcXFwkbWV0aG9kXFxcXFxcJCcsJ2cnKSwnKCg/Onh8
W154XSkqKScpLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXFxcJHJlY2VpdmVyXFxcXFxcJCcsJ2cnKSwn
KCg/Onh8W154XSkqKScpLHMscixxLHAsbyl9LAplazpmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24o
JGV4cHIkKXt2YXIgJGFyZ3VtZW50c0V4cHIkPSckYXJndW1lbnRzJCcKdHJ5eyRleHByJC4kbWV0aG9k
JCgkYXJndW1lbnRzRXhwciQpfWNhdGNoKHQpe3JldHVybiB0Lm1lc3NhZ2V9fShhKX0sCmkzOmZ1bmN0
aW9uKGEpe3JldHVybiBmdW5jdGlvbigkZXhwciQpe3RyeXskZXhwciQuJG1ldGhvZCR9Y2F0Y2godCl7
cmV0dXJuIHQubWVzc2FnZX19KGEpfSwKaFY6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IEguY1YoYSxi
PT1udWxsP251bGw6Yi5tZXRob2QpfSwKaDE6ZnVuY3Rpb24oYSxiKXt2YXIgdD1iPT1udWxsLHM9dD9u
dWxsOmIubWV0aG9kCnJldHVybiBuZXcgSC5jTChhLHMsdD9udWxsOmIucmVjZWl2ZXIpfSwKUTpmdW5j
dGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnLGY9bnVsbCxlPW5ldyBILmZSKGEp
CmlmKGE9PW51bGwpcmV0dXJuIGYKaWYodHlwZW9mIGEhPT0ib2JqZWN0IilyZXR1cm4gYQppZigiZGFy
dEV4Y2VwdGlvbiIgaW4gYSlyZXR1cm4gZS4kMShhLmRhcnRFeGNlcHRpb24pCmVsc2UgaWYoISgibWVz
c2FnZSIgaW4gYSkpcmV0dXJuIGEKdD1hLm1lc3NhZ2UKaWYoIm51bWJlciIgaW4gYSYmdHlwZW9mIGEu
bnVtYmVyPT0ibnVtYmVyIil7cz1hLm51bWJlcgpyPXMmNjU1MzUKaWYoKEMuYy5aKHMsMTYpJjgxOTEp
PT09MTApc3dpdGNoKHIpe2Nhc2UgNDM4OnJldHVybiBlLiQxKEguaDEoSC5iKHQpKyIgKEVycm9yICIr
cisiKSIsZikpCmNhc2UgNDQ1OmNhc2UgNTAwNzpyZXR1cm4gZS4kMShILmhWKEguYih0KSsiIChFcnJv
ciAiK3IrIikiLGYpKX19aWYoYSBpbnN0YW5jZW9mIFR5cGVFcnJvcil7cT0kLmoyKCkKcD0kLmozKCkK
bz0kLmo0KCkKbj0kLmo1KCkKbT0kLmo4KCkKbD0kLmo5KCkKaz0kLmo3KCkKJC5qNigpCmo9JC5qYigp
Cmk9JC5qYSgpCmg9cS5MKHQpCmlmKGghPW51bGwpcmV0dXJuIGUuJDEoSC5oMShILm8odCksaCkpCmVs
c2V7aD1wLkwodCkKaWYoaCE9bnVsbCl7aC5tZXRob2Q9ImNhbGwiCnJldHVybiBlLiQxKEguaDEoSC5v
KHQpLGgpKX1lbHNle2g9by5MKHQpCmlmKGg9PW51bGwpe2g9bi5MKHQpCmlmKGg9PW51bGwpe2g9bS5M
KHQpCmlmKGg9PW51bGwpe2g9bC5MKHQpCmlmKGg9PW51bGwpe2g9ay5MKHQpCmlmKGg9PW51bGwpe2g9
bi5MKHQpCmlmKGg9PW51bGwpe2g9ai5MKHQpCmlmKGg9PW51bGwpe2g9aS5MKHQpCmc9aCE9bnVsbH1l
bHNlIGc9ITB9ZWxzZSBnPSEwfWVsc2UgZz0hMH1lbHNlIGc9ITB9ZWxzZSBnPSEwfWVsc2UgZz0hMH1l
bHNlIGc9ITAKaWYoZylyZXR1cm4gZS4kMShILmhWKEgubyh0KSxoKSl9fXJldHVybiBlLiQxKG5ldyBI
LmRhKHR5cGVvZiB0PT0ic3RyaW5nIj90OiIiKSl9aWYoYSBpbnN0YW5jZW9mIFJhbmdlRXJyb3Ipe2lm
KHR5cGVvZiB0PT0ic3RyaW5nIiYmdC5pbmRleE9mKCJjYWxsIHN0YWNrIikhPT0tMSlyZXR1cm4gbmV3
IFAuYlgoKQp0PWZ1bmN0aW9uKGIpe3RyeXtyZXR1cm4gU3RyaW5nKGIpfWNhdGNoKGQpe31yZXR1cm4g
bnVsbH0oYSkKcmV0dXJuIGUuJDEobmV3IFAuYTEoITEsZixmLHR5cGVvZiB0PT0ic3RyaW5nIj90LnJl
cGxhY2UoL15SYW5nZUVycm9yOlxzKi8sIiIpOnQpKX1pZih0eXBlb2YgSW50ZXJuYWxFcnJvcj09ImZ1
bmN0aW9uIiYmYSBpbnN0YW5jZW9mIEludGVybmFsRXJyb3IpaWYodHlwZW9mIHQ9PSJzdHJpbmciJiZ0
PT09InRvbyBtdWNoIHJlY3Vyc2lvbiIpcmV0dXJuIG5ldyBQLmJYKCkKcmV0dXJuIGF9LApjcDpmdW5j
dGlvbihhKXt2YXIgdAppZihhPT1udWxsKXJldHVybiBuZXcgSC5jZyhhKQp0PWEuJGNhY2hlZFRyYWNl
CmlmKHQhPW51bGwpcmV0dXJuIHQKcmV0dXJuIGEuJGNhY2hlZFRyYWNlPW5ldyBILmNnKGEpfSwKbG06
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscT1hLmxlbmd0aApmb3IodD0wO3Q8cTt0PXIpe3M9dCsxCnI9
cysxCmIubCgwLGFbdF0sYVtzXSl9cmV0dXJuIGJ9LApsdzpmdW5jdGlvbihhLGIsYyxkLGUsZil7dS5a
LmIoYSkKc3dpdGNoKEgueChiKSl7Y2FzZSAwOnJldHVybiBhLiQwKCkKY2FzZSAxOnJldHVybiBhLiQx
KGMpCmNhc2UgMjpyZXR1cm4gYS4kMihjLGQpCmNhc2UgMzpyZXR1cm4gYS4kMyhjLGQsZSkKY2FzZSA0
OnJldHVybiBhLiQ0KGMsZCxlLGYpfXRocm93IEguYShuZXcgUC5lQSgiVW5zdXBwb3J0ZWQgbnVtYmVy
IG9mIGFyZ3VtZW50cyBmb3Igd3JhcHBlZCBjbG9zdXJlIikpfSwKZE06ZnVuY3Rpb24oYSxiKXt2YXIg
dAppZihhPT1udWxsKXJldHVybiBudWxsCnQ9YS4kaWRlbnRpdHkKaWYoISF0KXJldHVybiB0CnQ9ZnVu
Y3Rpb24oYyxkLGUpe3JldHVybiBmdW5jdGlvbihmLGcsaCxpKXtyZXR1cm4gZShjLGQsZixnLGgsaSl9
fShhLGIsSC5sdykKYS4kaWRlbnRpdHk9dApyZXR1cm4gdH0sCmpCOmZ1bmN0aW9uKGEsYixjLGQsZSxm
LGcpe3ZhciB0LHMscixxLHAsbyxuLG0sbD1udWxsLGs9YlswXSxqPWsuJGNhbGxOYW1lLGk9ZT9PYmpl
Y3QuY3JlYXRlKG5ldyBILmQzKCkuY29uc3RydWN0b3IucHJvdG90eXBlKTpPYmplY3QuY3JlYXRlKG5l
dyBILmI2KGwsbCxsLGwpLmNvbnN0cnVjdG9yLnByb3RvdHlwZSkKaS4kaW5pdGlhbGl6ZT1pLmNvbnN0
cnVjdG9yCmlmKGUpdD1mdW5jdGlvbiBzdGF0aWNfdGVhcl9vZmYoKXt0aGlzLiRpbml0aWFsaXplKCl9
CmVsc2V7cz0kLmFtCmlmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMuQigpCiQuYW09cysxCnM9
bmV3IEZ1bmN0aW9uKCJhLGIsYyxkIitzLCJ0aGlzLiRpbml0aWFsaXplKGEsYixjLGQiK3MrIikiKQp0
PXN9aS5jb25zdHJ1Y3Rvcj10CnQucHJvdG90eXBlPWkKaWYoIWUpe3I9SC5oTChhLGssZikKci4kcmVm
bGVjdGlvbkluZm89ZH1lbHNle2kuJHN0YXRpY19uYW1lPWcKcj1rfXE9SC5qeChkLGUsZikKaS4kUz1x
Cmlbal09cgpmb3IocD1yLG89MTtvPGIubGVuZ3RoOysrbyl7bj1iW29dCm09bi4kY2FsbE5hbWUKaWYo
bSE9bnVsbCl7bj1lP246SC5oTChhLG4sZikKaVttXT1ufWlmKG89PT1jKXtuLiRyZWZsZWN0aW9uSW5m
bz1kCnA9bn19aS4kQz1wCmkuJFI9ay4kUgppLiREPWsuJEQKcmV0dXJuIHR9LApqeDpmdW5jdGlvbihh
LGIsYyl7dmFyIHQKaWYodHlwZW9mIGE9PSJudW1iZXIiKXJldHVybiBmdW5jdGlvbihkLGUpe3JldHVy
biBmdW5jdGlvbigpe3JldHVybiBkKGUpfX0oSC5pTCxhKQppZih0eXBlb2YgYT09InN0cmluZyIpe2lm
KGIpdGhyb3cgSC5hKCJDYW5ub3QgY29tcHV0ZSBzaWduYXR1cmUgZm9yIHN0YXRpYyB0ZWFyb2ZmLiIp
CnQ9Yz9ILmp2OkguanUKcmV0dXJuIGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJu
IGUodGhpcyxkKX19KGEsdCl9dGhyb3cgSC5hKCJFcnJvciBpbiBmdW5jdGlvblR5cGUgb2YgdGVhcm9m
ZiIpfSwKank6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQ9SC5oSwpzd2l0Y2goYj8tMTphKXtjYXNlIDA6
cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGYodGhpcylbZV0oKX19
KGMsdCkKY2FzZSAxOnJldHVybiBmdW5jdGlvbihlLGYpe3JldHVybiBmdW5jdGlvbihnKXtyZXR1cm4g
Zih0aGlzKVtlXShnKX19KGMsdCkKY2FzZSAyOnJldHVybiBmdW5jdGlvbihlLGYpe3JldHVybiBmdW5j
dGlvbihnLGgpe3JldHVybiBmKHRoaXMpW2VdKGcsaCl9fShjLHQpCmNhc2UgMzpyZXR1cm4gZnVuY3Rp
b24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oZyxoLGkpe3JldHVybiBmKHRoaXMpW2VdKGcsaCxpKX19KGMs
dCkKY2FzZSA0OnJldHVybiBmdW5jdGlvbihlLGYpe3JldHVybiBmdW5jdGlvbihnLGgsaSxqKXtyZXR1
cm4gZih0aGlzKVtlXShnLGgsaSxqKX19KGMsdCkKY2FzZSA1OnJldHVybiBmdW5jdGlvbihlLGYpe3Jl
dHVybiBmdW5jdGlvbihnLGgsaSxqLGspe3JldHVybiBmKHRoaXMpW2VdKGcsaCxpLGosayl9fShjLHQp
CmRlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBw
bHkoZih0aGlzKSxhcmd1bWVudHMpfX0oZCx0KX19LApoTDpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxy
LHEscCxvLG4KaWYoYylyZXR1cm4gSC5qQShhLGIpCnQ9Yi4kc3R1Yk5hbWUKcz1iLmxlbmd0aApyPWFb
dF0KcT1iPT1udWxsP3I9PW51bGw6Yj09PXIKcD0hcXx8cz49MjcKaWYocClyZXR1cm4gSC5qeShzLCFx
LHQsYikKaWYocz09PTApe3E9JC5hbQppZih0eXBlb2YgcSE9PSJudW1iZXIiKXJldHVybiBxLkIoKQok
LmFtPXErMQpvPSJzZWxmIitxCnE9InJldHVybiBmdW5jdGlvbigpe3ZhciAiK28rIiA9IHRoaXMuIgpw
PSQuYngKcmV0dXJuIG5ldyBGdW5jdGlvbihxK0guYihwPT1udWxsPyQuYng9SC5kUygic2VsZiIpOnAp
KyI7cmV0dXJuICIrbysiLiIrSC5iKHQpKyIoKTt9IikoKX1uPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiIuc3BsaXQoIiIpLnNwbGljZSgwLHMpLmpvaW4oIiwiKQpxPSQuYW0KaWYodHlwZW9mIHEhPT0i
bnVtYmVyIilyZXR1cm4gcS5CKCkKJC5hbT1xKzEKbis9cQpxPSJyZXR1cm4gZnVuY3Rpb24oIituKyIp
e3JldHVybiB0aGlzLiIKcD0kLmJ4CnJldHVybiBuZXcgRnVuY3Rpb24ocStILmIocD09bnVsbD8kLmJ4
PUguZFMoInNlbGYiKTpwKSsiLiIrSC5iKHQpKyIoIituKyIpO30iKSgpfSwKano6ZnVuY3Rpb24oYSxi
LGMsZCl7dmFyIHQ9SC5oSyxzPUguancKc3dpdGNoKGI/LTE6YSl7Y2FzZSAwOnRocm93IEguYShILmsz
KCJJbnRlcmNlcHRlZCBmdW5jdGlvbiB3aXRoIG5vIGFyZ3VtZW50cy4iKSkKY2FzZSAxOnJldHVybiBm
dW5jdGlvbihlLGYsZyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGYodGhpcylbZV0oZyh0aGlzKSl9
fShjLHQscykKY2FzZSAyOnJldHVybiBmdW5jdGlvbihlLGYsZyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3Jl
dHVybiBmKHRoaXMpW2VdKGcodGhpcyksaCl9fShjLHQscykKY2FzZSAzOnJldHVybiBmdW5jdGlvbihl
LGYsZyl7cmV0dXJuIGZ1bmN0aW9uKGgsaSl7cmV0dXJuIGYodGhpcylbZV0oZyh0aGlzKSxoLGkpfX0o
Yyx0LHMpCmNhc2UgNDpyZXR1cm4gZnVuY3Rpb24oZSxmLGcpe3JldHVybiBmdW5jdGlvbihoLGksail7
cmV0dXJuIGYodGhpcylbZV0oZyh0aGlzKSxoLGksail9fShjLHQscykKY2FzZSA1OnJldHVybiBmdW5j
dGlvbihlLGYsZyl7cmV0dXJuIGZ1bmN0aW9uKGgsaSxqLGspe3JldHVybiBmKHRoaXMpW2VdKGcodGhp
cyksaCxpLGosayl9fShjLHQscykKY2FzZSA2OnJldHVybiBmdW5jdGlvbihlLGYsZyl7cmV0dXJuIGZ1
bmN0aW9uKGgsaSxqLGssbCl7cmV0dXJuIGYodGhpcylbZV0oZyh0aGlzKSxoLGksaixrLGwpfX0oYyx0
LHMpCmRlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKGUsZixnLGgpe3JldHVybiBmdW5jdGlvbigpe2g9W2co
dGhpcyldCkFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGgsYXJndW1lbnRzKQpyZXR1cm4gZS5hcHBs
eShmKHRoaXMpLGgpfX0oZCx0LHMpfX0sCmpBOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvLG4s
bT0kLmJ4CmlmKG09PW51bGwpbT0kLmJ4PUguZFMoInNlbGYiKQp0PSQuaEoKaWYodD09bnVsbCl0PSQu
aEo9SC5kUygicmVjZWl2ZXIiKQpzPWIuJHN0dWJOYW1lCnI9Yi5sZW5ndGgKcT1hW3NdCnA9Yj09bnVs
bD9xPT1udWxsOmI9PT1xCm89IXB8fHI+PTI4CmlmKG8pcmV0dXJuIEguanoociwhcCxzLGIpCmlmKHI9
PT0xKXttPSJyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4iK0guYihtKSsiLiIrSC5iKHMpKyIo
dGhpcy4iK0guYih0KSsiKTsiCnQ9JC5hbQppZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiB0LkIo
KQokLmFtPXQrMQpyZXR1cm4gbmV3IEZ1bmN0aW9uKG0rdCsifSIpKCl9bj0iYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiLnNwbGl0KCIiKS5zcGxpY2UoMCxyLTEpLmpvaW4oIiwiKQptPSJyZXR1cm4gZnVu
Y3Rpb24oIituKyIpe3JldHVybiB0aGlzLiIrSC5iKG0pKyIuIitILmIocykrIih0aGlzLiIrSC5iKHQp
KyIsICIrbisiKTsiCnQ9JC5hbQppZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiB0LkIoKQokLmFt
PXQrMQpyZXR1cm4gbmV3IEZ1bmN0aW9uKG0rdCsifSIpKCl9LApocDpmdW5jdGlvbihhLGIsYyxkLGUs
ZixnKXtyZXR1cm4gSC5qQihhLGIsYyxkLCEhZSwhIWYsZyl9LApqdTpmdW5jdGlvbihhLGIpe3JldHVy
biBILmRGKHYudHlwZVVuaXZlcnNlLEguYTgoYS5hKSxiKX0sCmp2OmZ1bmN0aW9uKGEsYil7cmV0dXJu
IEguZEYodi50eXBlVW5pdmVyc2UsSC5hOChhLmMpLGIpfSwKaEs6ZnVuY3Rpb24oYSl7cmV0dXJuIGEu
YX0sCmp3OmZ1bmN0aW9uKGEpe3JldHVybiBhLmN9LApkUzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT1u
ZXcgSC5iNigic2VsZiIsInRhcmdldCIsInJlY2VpdmVyIiwibmFtZSIpLHA9Si5qSihPYmplY3QuZ2V0
T3duUHJvcGVydHlOYW1lcyhxKSkKZm9yKHQ9cC5sZW5ndGgscz0wO3M8dDsrK3Mpe3I9cFtzXQppZihx
W3JdPT09YSlyZXR1cm4gcn19LApkSzpmdW5jdGlvbihhKXtpZihhPT1udWxsKUgubGcoImJvb2xlYW4g
ZXhwcmVzc2lvbiBtdXN0IG5vdCBiZSBudWxsIikKcmV0dXJuIGF9LApsZzpmdW5jdGlvbihhKXt0aHJv
dyBILmEobmV3IEguZGcoYSkpfSwKbEc6ZnVuY3Rpb24oYSl7dGhyb3cgSC5hKG5ldyBQLmNCKGEpKX0s
CmszOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSC5kMChhKX0sCmhyOmZ1bmN0aW9uKGEpe3JldHVybiB2
LmdldElzb2xhdGVUYWcoYSl9LApuOmZ1bmN0aW9uKGEsYil7YS4kdGk9YgpyZXR1cm4gYX0sCmlKOmZ1
bmN0aW9uKGEpe2lmKGE9PW51bGwpcmV0dXJuIG51bGwKcmV0dXJuIGEuJHRpfSwKbXY6ZnVuY3Rpb24o
YSxiLGMpe3JldHVybiBILmlWKGFbIiRhIitILmIoYyldLEguaUooYikpfSwKaVY6ZnVuY3Rpb24oYSxi
KXtpZihhPT1udWxsKXJldHVybiBiCmE9YS5hcHBseShudWxsLGIpCmlmKGE9PW51bGwpcmV0dXJuIG51
bGwKaWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4gYQppZih0eXBlb2YgYT09ImZ1bmN0aW9uIilyZXR1
cm4gYS5hcHBseShudWxsLGIpCnJldHVybiBifSwKbXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLmFw
cGx5KGIsSC5pVihKLmFFKGIpWyIkYSIrSC5iKGMpXSxILmlKKGIpKSl9LAptdTpmdW5jdGlvbihhLGIs
Yyl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7dmFsdWU6YyxlbnVtZXJhYmxlOmZhbHNlLHdyaXRh
YmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9KX0sCmxCOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHA9
SC5vKCQuaUsuJDEoYSkpLG89JC5mb1twXQppZihvIT1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHko
YSx2LmRpc3BhdGNoUHJvcGVydHlOYW1lLHt2YWx1ZTpvLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6
dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX0pCnJldHVybiBvLml9dD0kLmZCW3BdCmlmKHQhPW51bGwpcmV0
dXJuIHQKcz12LmludGVyY2VwdG9yc0J5VGFnW3BdCmlmKHM9PW51bGwpe3A9SC5vKCQuaUguJDIoYSxw
KSkKaWYocCE9bnVsbCl7bz0kLmZvW3BdCmlmKG8hPW51bGwpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShh
LHYuZGlzcGF0Y2hQcm9wZXJ0eU5hbWUse3ZhbHVlOm8sZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0
cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfSkKcmV0dXJuIG8uaX10PSQuZkJbcF0KaWYodCE9bnVsbClyZXR1
cm4gdApzPXYuaW50ZXJjZXB0b3JzQnlUYWdbcF19fWlmKHM9PW51bGwpcmV0dXJuIG51bGwKdD1zLnBy
b3RvdHlwZQpyPXBbMF0KaWYocj09PSIhIil7bz1ILmZPKHQpCiQuZm9bcF09bwpPYmplY3QuZGVmaW5l
UHJvcGVydHkoYSx2LmRpc3BhdGNoUHJvcGVydHlOYW1lLHt2YWx1ZTpvLGVudW1lcmFibGU6ZmFsc2Us
d3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX0pCnJldHVybiBvLml9aWYocj09PSJ+Iil7JC5m
QltwXT10CnJldHVybiB0fWlmKHI9PT0iLSIpe3E9SC5mTyh0KQpPYmplY3QuZGVmaW5lUHJvcGVydHko
T2JqZWN0LmdldFByb3RvdHlwZU9mKGEpLHYuZGlzcGF0Y2hQcm9wZXJ0eU5hbWUse3ZhbHVlOnEsZW51
bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfSkKcmV0dXJuIHEuaX1p
ZihyPT09IisiKXJldHVybiBILmlTKGEsdCkKaWYocj09PSIqIil0aHJvdyBILmEoUC5lbChwKSkKaWYo
di5sZWFmVGFnc1twXT09PXRydWUpe3E9SC5mTyh0KQpPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0
LmdldFByb3RvdHlwZU9mKGEpLHYuZGlzcGF0Y2hQcm9wZXJ0eU5hbWUse3ZhbHVlOnEsZW51bWVyYWJs
ZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfSkKcmV0dXJuIHEuaX1lbHNlIHJl
dHVybiBILmlTKGEsdCl9LAppUzpmdW5jdGlvbihhLGIpe3ZhciB0PU9iamVjdC5nZXRQcm90b3R5cGVP
ZihhKQpPYmplY3QuZGVmaW5lUHJvcGVydHkodCx2LmRpc3BhdGNoUHJvcGVydHlOYW1lLHt2YWx1ZTpK
Lmh2KGIsdCxudWxsLG51bGwpLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFi
bGU6dHJ1ZX0pCnJldHVybiBifSwKZk86ZnVuY3Rpb24oYSl7cmV0dXJuIEouaHYoYSwhMSxudWxsLCEh
YS4kaUopfSwKbEM6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PWIucHJvdG90eXBlCmlmKHYubGVhZlRhZ3Nb
YV09PT10cnVlKXJldHVybiBILmZPKHQpCmVsc2UgcmV0dXJuIEouaHYodCxjLG51bGwsbnVsbCl9LAps
dTpmdW5jdGlvbigpe2lmKCEwPT09JC5ocylyZXR1cm4KJC5ocz0hMApILmx2KCl9LApsdjpmdW5jdGlv
bigpe3ZhciB0LHMscixxLHAsbyxuLG0KJC5mbz1PYmplY3QuY3JlYXRlKG51bGwpCiQuZkI9T2JqZWN0
LmNyZWF0ZShudWxsKQpILmx0KCkKdD12LmludGVyY2VwdG9yc0J5VGFnCnM9T2JqZWN0LmdldE93blBy
b3BlcnR5TmFtZXModCkKaWYodHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCIpe3dpbmRvdwpyPWZ1bmN0
aW9uKCl7fQpmb3IocT0wO3E8cy5sZW5ndGg7KytxKXtwPXNbcV0Kbz0kLmlULiQxKHApCmlmKG8hPW51
bGwpe249SC5sQyhwLHRbcF0sbykKaWYobiE9bnVsbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sdi5k
aXNwYXRjaFByb3BlcnR5TmFtZSx7dmFsdWU6bixlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUs
Y29uZmlndXJhYmxlOnRydWV9KQpyLnByb3RvdHlwZT1vfX19fWZvcihxPTA7cTxzLmxlbmd0aDsrK3Ep
e3A9c1txXQppZigvXltBLVphLXpfXS8udGVzdChwKSl7bT10W3BdCnRbIiEiK3BdPW0KdFsifiIrcF09
bQp0WyItIitwXT1tCnRbIisiK3BdPW0KdFsiKiIrcF09bX19fSwKbHQ6ZnVuY3Rpb24oKXt2YXIgdCxz
LHIscSxwLG8sbj1DLkUoKQpuPUguYnUoQy5GLEguYnUoQy5HLEguYnUoQy5yLEguYnUoQy5yLEguYnUo
Qy5ILEguYnUoQy5JLEguYnUoQy5KKEMucSksbikpKSkpKSkKaWYodHlwZW9mIGRhcnROYXRpdmVEaXNw
YXRjaEhvb2tzVHJhbnNmb3JtZXIhPSJ1bmRlZmluZWQiKXt0PWRhcnROYXRpdmVEaXNwYXRjaEhvb2tz
VHJhbnNmb3JtZXIKaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdD1bdF0KaWYodC5jb25zdHJ1Y3Rvcj09
QXJyYXkpZm9yKHM9MDtzPHQubGVuZ3RoOysrcyl7cj10W3NdCmlmKHR5cGVvZiByPT0iZnVuY3Rpb24i
KW49cihuKXx8bn19cT1uLmdldFRhZwpwPW4uZ2V0VW5rbm93blRhZwpvPW4ucHJvdG90eXBlRm9yVGFn
CiQuaUs9bmV3IEguZnkocSkKJC5pSD1uZXcgSC5meihwKQokLmlUPW5ldyBILmZBKG8pfSwKYnU6ZnVu
Y3Rpb24oYSxiKXtyZXR1cm4gYShiKXx8Yn0sCmpNOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgdD1i
PyJtIjoiIixzPWM/IiI6ImkiLHI9ZD8idSI6IiIscT1lPyJzIjoiIixwPWY/ImciOiIiLG89ZnVuY3Rp
b24oZyxoKXt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoZyxoKX1jYXRjaChuKXtyZXR1cm4gbn19KGEsdCtz
K3IrcStwKQppZihvIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBvCnRocm93IEguYShQLkEoIklsbGVn
YWwgUmVnRXhwIHBhdHRlcm4gKCIrU3RyaW5nKG8pKyIpIixhLG51bGwpKX0sCmxEOmZ1bmN0aW9uKGEp
e2lmKC9bW1xde30oKSorPy5cXF4kfF0vLnRlc3QoYSkpcmV0dXJuIGEucmVwbGFjZSgvW1tcXXt9KCkq
Kz8uXFxeJHxdL2csIlxcJCYiKQpyZXR1cm4gYX0sCmJ6OmZ1bmN0aW9uIGJ6KGEsYil7dGhpcy5hPWEK
dGhpcy4kdGk9Yn0sCmJ5OmZ1bmN0aW9uIGJ5KCl7fSwKYUo6ZnVuY3Rpb24gYUooYSxiLGMsZCl7dmFy
IF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLiR0aT1kfSwKY0o6ZnVuY3Rpb24gY0ooYSxiLGMsZCxl
KXt2YXIgXz10aGlzCl8uYT1hCl8uYz1iCl8uZD1jCl8uZT1kCl8uZj1lfSwKZWU6ZnVuY3Rpb24gZWUo
YSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKZWo6ZnVuY3Rpb24gZWooYSxiLGMsZCxl
LGYpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5kPWQKXy5lPWUKXy5mPWZ9LApjVjpmdW5j
dGlvbiBjVihhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKY0w6ZnVuY3Rpb24gY0woYSxiLGMpe3RoaXMu
YT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKZGE6ZnVuY3Rpb24gZGEoYSl7dGhpcy5hPWF9LApmUjpmdW5j
dGlvbiBmUihhKXt0aGlzLmE9YX0sCmNnOmZ1bmN0aW9uIGNnKGEpe3RoaXMuYT1hCnRoaXMuYj1udWxs
fSwKYUk6ZnVuY3Rpb24gYUkoKXt9LApkODpmdW5jdGlvbiBkOCgpe30sCmQzOmZ1bmN0aW9uIGQzKCl7
fSwKYjY6ZnVuY3Rpb24gYjYoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9
ZH0sCmQwOmZ1bmN0aW9uIGQwKGEpe3RoaXMuYT1hfSwKZGc6ZnVuY3Rpb24gZGcoYSl7dGhpcy5hPWF9
LAphbjpmdW5jdGlvbiBhbihhKXt2YXIgXz10aGlzCl8uYT0wCl8uZj1fLmU9Xy5kPV8uYz1fLmI9bnVs
bApfLnI9MApfLiR0aT1hfSwKZTg6ZnVuY3Rpb24gZTgoYSxiKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1i
Cl8uZD1fLmM9bnVsbH0sCmFQOmZ1bmN0aW9uIGFQKGEsYil7dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCmJM
OmZ1bmN0aW9uIGJMKGEsYixjKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uZD1fLmM9bnVsbApfLiR0
aT1jfSwKZnk6ZnVuY3Rpb24gZnkoYSl7dGhpcy5hPWF9LApmejpmdW5jdGlvbiBmeihhKXt0aGlzLmE9
YX0sCmZBOmZ1bmN0aW9uIGZBKGEpe3RoaXMuYT1hfSwKY0s6ZnVuY3Rpb24gY0soYSxiKXt2YXIgXz10
aGlzCl8uYT1hCl8uYj1iCl8uZD1fLmM9bnVsbH0sCmtYOmZ1bmN0aW9uKGEpe3JldHVybiBhfSwKak86
ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBJbnQ4QXJyYXkoYSl9LAphcjpmdW5jdGlvbihhLGIsYyl7aWYo
YT4+PjAhPT1hfHxhPj1jKXRocm93IEguYShILmIxKGIsYSkpfSwKa1U6ZnVuY3Rpb24oYSxiLGMpe3Zh
ciB0CmlmKCEoYT4+PjAhPT1hKSl0PWI+Pj4wIT09Ynx8YT5ifHxiPmMKZWxzZSB0PSEwCmlmKHQpdGhy
b3cgSC5hKEgubGwoYSxiLGMpKQpyZXR1cm4gYn0sCkM6ZnVuY3Rpb24gQygpe30sCmJROmZ1bmN0aW9u
IGJRKCl7fSwKYVI6ZnVuY3Rpb24gYVIoKXt9LApiUjpmdW5jdGlvbiBiUigpe30sCmNQOmZ1bmN0aW9u
IGNQKCl7fSwKY1E6ZnVuY3Rpb24gY1EoKXt9LApjUjpmdW5jdGlvbiBjUigpe30sCmNTOmZ1bmN0aW9u
IGNTKCl7fSwKY1Q6ZnVuY3Rpb24gY1QoKXt9LApiUzpmdW5jdGlvbiBiUygpe30sCmFTOmZ1bmN0aW9u
IGFTKCl7fSwKYzk6ZnVuY3Rpb24gYzkoKXt9LApjYTpmdW5jdGlvbiBjYSgpe30sCmNiOmZ1bmN0aW9u
IGNiKCl7fSwKY2M6ZnVuY3Rpb24gY2MoKXt9LAppMDpmdW5jdGlvbihhLGIpe3ZhciB0PWIuZApyZXR1
cm4gdD09bnVsbD9iLmQ9SC5mMChhLCJiRSIsW2IuUV0pOnR9LAppMTpmdW5jdGlvbihhKXt2YXIgdD1h
LnoKaWYodD09PTZ8fHQ9PT03fHx0PT09OClyZXR1cm4gSC5pMShhLlEpCnJldHVybiB0PT09MTF8fHQ9
PT0xMn0sCmsyOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRifSwKZnA6ZnVuY3Rpb24oYSl7cmV0dXJuIEgu
aGModi50eXBlVW5pdmVyc2UsYSl9LApsazpmdW5jdGlvbihhKXt2YXIgdD1hLiRTCmlmKHQhPW51bGwp
e2lmKHR5cGVvZiB0PT0ibnVtYmVyIilyZXR1cm4gSC5pTCh0KQpyZXR1cm4gYS4kUygpfXJldHVybiBu
dWxsfSwKaHQ6ZnVuY3Rpb24oYSxiKXt2YXIgdAppZihILmkxKGIpKWlmKGEgaW5zdGFuY2VvZiBILmFJ
KXt0PUgubGsoYSkKaWYodCE9bnVsbClyZXR1cm4gdH1yZXR1cm4gSC5hOChhKX0sCmE4OmZ1bmN0aW9u
KGEpe3ZhciB0CmlmKGEgaW5zdGFuY2VvZiBQLnQpe3Q9YS4kdGkKcmV0dXJuIHQhPW51bGw/dDpILmhs
KGEpfWlmKEFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIEguWihhKQpyZXR1cm4gSC5obChKLmFFKGEpKX0s
Clo6ZnVuY3Rpb24oYSl7dmFyIHQ9YS4kdGkscz11LmIKaWYodD09bnVsbClyZXR1cm4gcwppZih0LmNv
bnN0cnVjdG9yIT09cy5jb25zdHJ1Y3RvcilyZXR1cm4gcwpyZXR1cm4gdH0sCnY6ZnVuY3Rpb24oYSl7
dmFyIHQ9YS4kdGkKcmV0dXJuIHQhPW51bGw/dDpILmhsKGEpfSwKaGw6ZnVuY3Rpb24oYSl7dmFyIHQ9
YS5jb25zdHJ1Y3RvcixzPXQuJGNjYWNoZQppZihzIT1udWxsKXJldHVybiBzCnJldHVybiBILmwxKGEs
dCl9LApsMTpmdW5jdGlvbihhLGIpe3ZhciB0PWEgaW5zdGFuY2VvZiBILmFJP2EuX19wcm90b19fLl9f
cHJvdG9fXy5jb25zdHJ1Y3RvcjpiLHM9SC5rQih2LnR5cGVVbml2ZXJzZSx0Lm5hbWUpCmIuJGNjYWNo
ZT1zCnJldHVybiBzfSwKaUw6ZnVuY3Rpb24oYSl7dmFyIHQscz1hLHI9di50eXBlcyxxPXJbc10KaWYo
dHlwZW9mIHE9PSJzdHJpbmciKXt0PUguaGModi50eXBlVW5pdmVyc2UscSkKcltzXT10CnJldHVybiB0
fXJldHVybiBxfSwKbDA6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLHI9cy56LHE9SC5rWgppZihILmNx
KHMpKXtxPUgubDUKcy5iPXMuYT1ILmtTfWVsc2UgaWYocj09PTkpe3Q9cy5kYgppZigiZiI9PT10KXE9
SC5kSgplbHNlIGlmKCJUIj09PXQpcT1ILml5CmVsc2UgaWYoIlUiPT09dClxPUguaXkKZWxzZSBpZigi
YyI9PT10KXE9SC5sMwplbHNlIGlmKCJ6Ij09PXQpcT1ILmZkCmVsc2V7cj1zLlEKaWYocy5jaC5ldmVy
eShILmNxKSl7cy54PSIkaSIrcgpxPUgubDR9fX1zLmM9cQpyZXR1cm4gcy5jKGEpfSwKa1o6ZnVuY3Rp
b24oYSl7dmFyIHQ9dGhpcwpyZXR1cm4gSC5EKHYudHlwZVVuaXZlcnNlLEguaHQoYSx0KSxudWxsLHQs
bnVsbCl9LApsNDpmdW5jdGlvbihhKXt2YXIgdD10aGlzLngKaWYoYSBpbnN0YW5jZW9mIFAudClyZXR1
cm4hIWFbdF0KcmV0dXJuISFKLmFFKGEpW3RdfSwKa1k6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoYT09bnVs
bClyZXR1cm4gYQp0PXRoaXMKaWYodC5jKGEpKXJldHVybiBhCnRocm93IEguYShILmtqKEguZXkoYSxI
Lmh0KGEsdCksSC5QKHQsbnVsbCkpKSl9LApsXzpmdW5jdGlvbihhKXt2YXIgdAppZihhPT1udWxsKXJl
dHVybiBhCnQ9dGhpcwppZih0LmMoYSkpcmV0dXJuIGEKdGhyb3cgSC5hKEguaWcoSC5leShhLEguaHQo
YSx0KSxILlAodCxudWxsKSkpKX0sCmRMOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0PW51bGwKaWYoSC5E
KHYudHlwZVVuaXZlcnNlLGEsdCxiLHQpKXJldHVybiBhCnRocm93IEguYShILmlnKCJUaGUgdHlwZSBh
cmd1bWVudCAnIitILmIoSC5QKGEsdCkpKyInIGlzIG5vdCBhIHN1YnR5cGUgb2YgdGhlIHR5cGUgdmFy
aWFibGUgYm91bmQgJyIrSC5iKEguUChiLHQpKSsiJyBvZiB0eXBlIHZhcmlhYmxlICciK2MrIicgaW4g
JyIrSC5iKGQpKyInLiIpKX0sCmV5OmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1QLmFNKGEpLHM9SC5QKGI9
PW51bGw/SC5hOChhKTpiLG51bGwpCnJldHVybiB0KyI6IHR5cGUgJyIrSC5iKHMpKyInIGlzIG5vdCBh
IHN1YnR5cGUgb2YgdHlwZSAnIitILmIoYykrIicifSwKa2o6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBI
LmMxKCJDYXN0RXJyb3I6ICIrYSl9LApkajpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC5jMSgiQ2Fz
dEVycm9yOiAiK0guZXkoYSxudWxsLGIpKX0sCmlnOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSC5jaCgi
VHlwZUVycm9yOiAiK2EpfSwKZEQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IEguY2goIlR5cGVFcnJv
cjogIitILmV5KGEsbnVsbCxiKSl9LApsNTpmdW5jdGlvbihhKXtyZXR1cm4hMH0sCmtTOmZ1bmN0aW9u
KGEpe3JldHVybiBhfSwKZmQ6ZnVuY3Rpb24oYSl7cmV0dXJuITA9PT1hfHwhMT09PWF9LAptajpmdW5j
dGlvbihhKXtpZighMD09PWF8fCExPT09YSlyZXR1cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93
IEguYShILmRqKGEsImJvb2wiKSl9LApoZzpmdW5jdGlvbihhKXtpZighMD09PWF8fCExPT09YSlyZXR1
cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYShILmREKGEsImJvb2wiKSl9LAptazpmdW5j
dGlvbihhKXtpZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1cm4gYQp0
aHJvdyBILmEoSC5kaihhLCJkb3VibGUiKSl9LAptbzpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09Im51
bWJlciIpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmEoSC5kRChhLCJkb3VibGUi
KSl9LApkSjpmdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGE9PSJudW1iZXIiJiZNYXRoLmZsb29yKGEp
PT09YX0sCm1sOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIiYmTWF0aC5mbG9vcihhKT09
PWEpcmV0dXJuIGEKaWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmEoSC5kaihhLCJpbnQiKSl9LAp4
OmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIiYmTWF0aC5mbG9vcihhKT09PWEpcmV0dXJu
IGEKaWYoYT09bnVsbClyZXR1cm4gYQp0aHJvdyBILmEoSC5kRChhLCJpbnQiKSl9LAppeTpmdW5jdGlv
bihhKXtyZXR1cm4gdHlwZW9mIGE9PSJudW1iZXIifSwKbW06ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9
PSJudW1iZXIiKXJldHVybiBhCmlmKGE9PW51bGwpcmV0dXJuIGEKdGhyb3cgSC5hKEguZGooYSwibnVt
IikpfSwKbXA6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PSJudW1iZXIiKXJldHVybiBhCmlmKGE9PW51
bGwpcmV0dXJuIGEKdGhyb3cgSC5hKEguZEQoYSwibnVtIikpfSwKbDM6ZnVuY3Rpb24oYSl7cmV0dXJu
IHR5cGVvZiBhPT0ic3RyaW5nIn0sCm1uOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIily
ZXR1cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYShILmRqKGEsIlN0cmluZyIpKX0sCm86
ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBhCmlmKGE9PW51bGwpcmV0dXJu
IGEKdGhyb3cgSC5hKEguZEQoYSwiU3RyaW5nIikpfSwKbGE6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIK
Zm9yKHQ9IiIscz0iIixyPTA7cjxhLmxlbmd0aDsrK3Iscz0iLCAiKXQrPUMuYS5CKHMsSC5QKGFbcl0s
YikpCnJldHVybiB0fSwKaXQ6ZnVuY3Rpb24oYTAsYTEsYTIpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxr
LGosaSxoLGcsZixlLGQsYyxiLGE9IiwgIgppZihhMiE9bnVsbCl7dD1hMi5sZW5ndGgKaWYoYTE9PW51
bGwpe2ExPUgubihbXSx1LnMpCnM9bnVsbH1lbHNlIHM9YTEubGVuZ3RoCnI9YTEubGVuZ3RoCmZvcihx
PXQ7cT4wOy0tcSlDLmIuayhhMSwiVCIrKHIrcSkpCmZvcihwPSI8IixvPSIiLHE9MDtxPHQ7KytxLG89
YSl7cCs9bwpuPWExLmxlbmd0aAptPW4tMS1xCmlmKG08MClyZXR1cm4gSC5pKGExLG0pCnA9Qy5hLkIo
cCxhMVttXSkKbD1hMltxXQppZighSC5jcShsKSlwKz1DLmEuQigiIGV4dGVuZHMgIixILlAobCxhMSkp
fXArPSI+In1lbHNle3A9IiIKcz1udWxsfW49YTAuUQprPWEwLmNoCmo9ay5hCmk9ai5sZW5ndGgKaD1r
LmIKZz1oLmxlbmd0aApmPWsuYwplPWYubGVuZ3RoCmQ9SC5QKG4sYTEpCmZvcihjPSIiLGI9IiIscT0w
O3E8aTsrK3EsYj1hKWMrPUMuYS5CKGIsSC5QKGpbcV0sYTEpKQppZihnPjApe2MrPWIrIlsiCmZvcihi
PSIiLHE9MDtxPGc7KytxLGI9YSljKz1DLmEuQihiLEguUChoW3FdLGExKSkKYys9Il0ifWlmKGU+MCl7
Yys9YisieyIKZm9yKGI9IiIscT0wO3E8ZTtxKz0yLGI9YSljKz1DLmEuQihiLEguUChmW3ErMV0sYTEp
KSsiICIrZltxXQpjKz0ifSJ9aWYocyE9bnVsbClhMS5sZW5ndGg9cwpyZXR1cm4gcCsiKCIrYysiKSA9
PiAiK0guYihkKX0sClA6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwPWEuegppZihwPT09NSlyZXR1
cm4iZXJhc2VkIgppZihwPT09MilyZXR1cm4iZHluYW1pYyIKaWYocD09PTMpcmV0dXJuInZvaWQiCmlm
KHA9PT0xKXJldHVybiJOZXZlciIKaWYocD09PTQpcmV0dXJuImFueSIKaWYocD09PTYpcmV0dXJuIEgu
YihILlAoYS5RLGIpKSsiKiIKaWYocD09PTcpcmV0dXJuIEguYihILlAoYS5RLGIpKSsiPyIKaWYocD09
PTgpcmV0dXJuIkZ1dHVyZU9yPCIrSC5iKEguUChhLlEsYikpKyI+IgppZihwPT09OSl7dD1ILmxkKGEu
USkKcz1hLmNoCnJldHVybiBzLmxlbmd0aCE9PTA/dCsoIjwiK0gubGEocyxiKSsiPiIpOnR9aWYocD09
PTExKXJldHVybiBILml0KGEsYixudWxsKQppZihwPT09MTIpcmV0dXJuIEguaXQoYS5RLGIsYS5jaCkK
aWYocD09PTEzKXtyPWEuUQpxPWIubGVuZ3RoCnI9cS0xLXIKaWYocjwwfHxyPj1xKXJldHVybiBILmko
YixyKQpyZXR1cm4gYltyXX1yZXR1cm4iPyJ9LApsZDpmdW5jdGlvbihhKXt2YXIgdCxzPUguaVgoYSkK
aWYocyE9bnVsbClyZXR1cm4gcwp0PSJtaW5pZmllZDoiK2EKcmV0dXJuIHR9LAppajpmdW5jdGlvbihh
LGIpe3ZhciB0PWEudFJbYl0KZm9yKDt0eXBlb2YgdD09InN0cmluZyI7KXQ9YS50Ult0XQpyZXR1cm4g
dH0sCmtCOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvPWEuZVQsbj1vW2JdCmlmKG49PW51bGwp
cmV0dXJuIEguaGMoYSxiKQplbHNlIGlmKHR5cGVvZiBuPT0ibnVtYmVyIil7dD1uCnM9SC5jaShhLDUs
IiMiKQpyPVtdCmZvcihxPTA7cTx0OysrcSlyLnB1c2gocykKcD1ILmYwKGEsYixyKQpvW2JdPXAKcmV0
dXJuIHB9ZWxzZSByZXR1cm4gbn0sCmt6OmZ1bmN0aW9uKGEsYil7cmV0dXJuIEguaXIoYS50UixiKX0s
Cmt5OmZ1bmN0aW9uKGEsYil7cmV0dXJuIEguaXIoYS5lVCxiKX0sCmhjOmZ1bmN0aW9uKGEsYil7dmFy
IHQscz1hLmVDLHI9cy5nZXQoYikKaWYociE9bnVsbClyZXR1cm4gcgp0PUguaWkoYSxudWxsLGIpCnMu
c2V0KGIsdCkKcmV0dXJuIHR9LApkRjpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyPWIuY3gKaWYocj09
bnVsbClyPWIuY3g9bmV3IE1hcCgpCnQ9ci5nZXQoYykKaWYodCE9bnVsbClyZXR1cm4gdApzPUguaWko
YSxiLGMpCnIuc2V0KGMscykKcmV0dXJuIHN9LAprQTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHE9
Yi5jeQppZihxPT1udWxsKXE9Yi5jeT1uZXcgTWFwKCkKdD1jLmRiCnM9cS5nZXQodCkKaWYocyE9bnVs
bClyZXR1cm4gcwpyPUguaWgoYSxiLGMuej09PTEwP2MuY2g6W2NdKQpxLnNldCh0LHIpCnJldHVybiBy
fSwKaWk6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PUgua3IoSC5rbihhLGIsYykpCnJldHVybiB0fSwKYnA6
ZnVuY3Rpb24oYSxiKXt2YXIgdD1iLmRiCmEuZUMuc2V0KHQsYikKYi5hPUgua1kKYi5iPUgubF8KYi5j
PUgubDAKcmV0dXJuIGJ9LApjaTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscz1hLmVDLmdldChjKQppZihz
IT1udWxsKXJldHVybiBzCnQ9bmV3IEguYWYobnVsbCxudWxsLG51bGwpCnQuej1iCnQuZGI9YwpyZXR1
cm4gSC5icChhLHQpfSwKaGI6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscz1hLmVDLmdldChkKQppZihz
IT1udWxsKXJldHVybiBzCnQ9bmV3IEguYWYobnVsbCxudWxsLG51bGwpCnQuej1iCnQuUT1jCnQuZGI9
ZApyZXR1cm4gSC5icChhLHQpfSwKa3c6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPSIiK2IrIl4iLHI9YS5l
Qy5nZXQocykKaWYociE9bnVsbClyZXR1cm4gcgp0PW5ldyBILmFmKG51bGwsbnVsbCxudWxsKQp0Lno9
MTMKdC5RPWIKdC5kYj1zCnJldHVybiBILmJwKGEsdCl9LApkRTpmdW5jdGlvbihhKXt2YXIgdCxzLHIs
cT1hLmxlbmd0aApmb3IodD0iIixzPSIiLHI9MDtyPHE7KytyLHM9IiwiKXQrPXMrYVtyXS5kYgpyZXR1
cm4gdH0sCmt1OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbz1hLmxlbmd0aApmb3IodD0iIixzPSIi
LHI9MDtyPG87cis9MixzPSIsIil7cT1hW3JdCnA9YVtyKzFdLmRiCnQrPXMrcSsiOiIrcH1yZXR1cm4g
dH0sCmYwOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHI9YgppZihjLmxlbmd0aCE9PTApcis9IjwiK0gu
ZEUoYykrIj4iCnQ9YS5lQy5nZXQocikKaWYodCE9bnVsbClyZXR1cm4gdApzPW5ldyBILmFmKG51bGws
bnVsbCxudWxsKQpzLno9OQpzLlE9YgpzLmNoPWMKaWYoYy5sZW5ndGg+MClzLmQ9Y1swXQpzLmRiPXIK
cmV0dXJuIEguYnAoYSxzKX0sCmloOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscSxwCmlmKGIuej09
PTEwKXt0PWIuUQpzPWIuY2guY29uY2F0KGMpfWVsc2V7cz1jCnQ9Yn1yPXQuZGIrIjsiKygiPCIrSC5k
RShzKSsiPiIpCnE9YS5lQy5nZXQocikKaWYocSE9bnVsbClyZXR1cm4gcQpwPW5ldyBILmFmKG51bGws
bnVsbCxudWxsKQpwLno9MTAKcC5RPXQKcC5jaD1zCnAuZGI9cgpyZXR1cm4gSC5icChhLHApfSwKa3Y6
ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxPWIuZGIscD1jLmEsbz1wLmxlbmd0aCxuPWMuYixtPW4u
bGVuZ3RoLGw9Yy5jLGs9bC5sZW5ndGgsaj0iKCIrSC5kRShwKQppZihtPjApais9KG8+MD8iLCI6IiIp
KyJbIitILmRFKG4pKyJdIgppZihrPjApais9KG8+MD8iLCI6IiIpKyJ7IitILmt1KGwpKyJ9Igp0PXEr
KGorIikiKQpzPWEuZUMuZ2V0KHQpCmlmKHMhPW51bGwpcmV0dXJuIHMKcj1uZXcgSC5hZihudWxsLG51
bGwsbnVsbCkKci56PTExCnIuUT1iCnIuY2g9YwpyLmRiPXQKcmV0dXJuIEguYnAoYSxyKX0sCmt4OmZ1
bmN0aW9uKGEsYixjKXt2YXIgdCxzPWIuZGIrIjwiK0guZEUoYykrIj4iLHI9YS5lQy5nZXQocykKaWYo
ciE9bnVsbClyZXR1cm4gcgp0PW5ldyBILmFmKG51bGwsbnVsbCxudWxsKQp0Lno9MTIKdC5RPWIKdC5j
aD1jCnQuZGI9cwpyZXR1cm4gSC5icChhLHQpfSwKa246ZnVuY3Rpb24oYSxiLGMpe3JldHVybnt1OmEs
ZTpiLHI6YyxzOltdLHA6MH19LAprcjpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxq
LGksaCxnPWEucixmPWEucwpmb3IodD1nLmxlbmd0aCxzPTA7czx0Oyl7cj1nLmNoYXJDb2RlQXQocykK
aWYocj49NDgmJnI8PTU3KXM9SC5rbyhzKzEscixnLGYpCmVsc2UgaWYoKCgocnwzMik+Pj4wKS05NyY2
NTUzNSk8MjZ8fHI9PT05NXx8cj09PTM2KXM9SC5pZChhLHMsZyxmLCExKQplbHNlIGlmKHI9PT00Nilz
PUguaWQoYSxzLGcsZiwhMCkKZWxzZXsrK3MKc3dpdGNoKHIpe2Nhc2UgNDQ6YnJlYWsKY2FzZSA1ODpi
cmVhawpjYXNlIDU5OmYucHVzaChILmFEKGEudSxhLmUsZi5wb3AoKSkpCmJyZWFrCmNhc2UgOTQ6Zi5w
dXNoKEgua3coYS51LGYucG9wKCkpKQpicmVhawpjYXNlIDM1OmYucHVzaChILmNpKGEudSw1LCIjIikp
CmJyZWFrCmNhc2UgNjQ6Zi5wdXNoKEguY2koYS51LDIsIkAiKSkKYnJlYWsKY2FzZSAxMjY6Zi5wdXNo
KEguY2koYS51LDMsIn4iKSkKYnJlYWsKY2FzZSA2MDpmLnB1c2goYS5wKQphLnA9Zi5sZW5ndGgKYnJl
YWsKY2FzZSA2MjpxPWEudQpwPWYuc3BsaWNlKGEucCkKSC5oYShhLnUsYS5lLHApCmEucD1mLnBvcCgp
Cm89Zi5wb3AoKQppZih0eXBlb2Ygbz09InN0cmluZyIpZi5wdXNoKEguZjAocSxvLHApKQplbHNle249
SC5hRChxLGEuZSxvKQpzd2l0Y2gobi56KXtjYXNlIDExOmYucHVzaChILmt4KHEsbixwKSkKYnJlYWsK
ZGVmYXVsdDpmLnB1c2goSC5paChxLG4scCkpCmJyZWFrfX1icmVhawpjYXNlIDM4Okgua3AoYSxmKQpi
cmVhawpjYXNlIDQyOm09YS51Cmw9SC5hRChtLGEuZSxmLnBvcCgpKQpmLnB1c2goSC5oYihtLDYsbCxs
LmRiKyIqIikpCmJyZWFrCmNhc2UgNjM6bT1hLnUKbD1ILmFEKG0sYS5lLGYucG9wKCkpCmYucHVzaChI
LmhiKG0sNyxsLGwuZGIrIj8iKSkKYnJlYWsKY2FzZSA0NzptPWEudQpsPUguYUQobSxhLmUsZi5wb3Ao
KSkKZi5wdXNoKEguaGIobSw4LGwsbC5kYisiLyIpKQpicmVhawpjYXNlIDQwOmYucHVzaChhLnApCmEu
cD1mLmxlbmd0aApicmVhawpjYXNlIDQxOnE9YS51Cms9bmV3IEguZUIoKQpqPXEuc0VBCmk9cS5zRUEK
bz1mLnBvcCgpCmlmKHR5cGVvZiBvPT0ibnVtYmVyIilzd2l0Y2gobyl7Y2FzZS0xOmo9Zi5wb3AoKQpi
cmVhawpjYXNlLTI6aT1mLnBvcCgpCmJyZWFrCmRlZmF1bHQ6Zi5wdXNoKG8pCmJyZWFrfWVsc2UgZi5w
dXNoKG8pCnA9Zi5zcGxpY2UoYS5wKQpILmhhKGEudSxhLmUscCkKYS5wPWYucG9wKCkKay5hPXAKay5i
PWoKay5jPWkKZi5wdXNoKEgua3YocSxILmFEKHEsYS5lLGYucG9wKCkpLGspKQpicmVhawpjYXNlIDkx
OmYucHVzaChhLnApCmEucD1mLmxlbmd0aApicmVhawpjYXNlIDkzOnA9Zi5zcGxpY2UoYS5wKQpILmhh
KGEudSxhLmUscCkKYS5wPWYucG9wKCkKZi5wdXNoKHApCmYucHVzaCgtMSkKYnJlYWsKY2FzZSAxMjM6
Zi5wdXNoKGEucCkKYS5wPWYubGVuZ3RoCmJyZWFrCmNhc2UgMTI1OnA9Zi5zcGxpY2UoYS5wKQpILmtz
KGEudSxhLmUscCkKYS5wPWYucG9wKCkKZi5wdXNoKHApCmYucHVzaCgtMikKYnJlYWsKZGVmYXVsdDp0
aHJvdyJCYWQgY2hhcmFjdGVyICIrcn19fWg9Zi5wb3AoKQpyZXR1cm4gSC5hRChhLnUsYS5lLGgpfSwK
a286ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyPWItNDgKZm9yKHQ9Yy5sZW5ndGg7YTx0OysrYSl7
cz1jLmNoYXJDb2RlQXQoYSkKaWYoIShzPj00OCYmczw9NTcpKWJyZWFrCnI9cioxMCsocy00OCl9ZC5w
dXNoKHIpCnJldHVybiBhfSwKaWQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdCxzLHIscSxwLG8sbj1i
KzEKZm9yKHQ9Yy5sZW5ndGg7bjx0Oysrbil7cz1jLmNoYXJDb2RlQXQobikKaWYocz09PTQ2KXtpZihl
KWJyZWFrCmU9ITB9ZWxzZXtpZighKCgoKHN8MzIpPj4+MCktOTcmNjU1MzUpPDI2fHxzPT09OTV8fHM9
PT0zNikpcj1zPj00OCYmczw9NTcKZWxzZSByPSEwCmlmKCFyKWJyZWFrfX1xPWMuc3Vic3RyaW5nKGIs
bikKaWYoZSl7dD1hLnUKcD1hLmUKaWYocC56PT09MTApcD1wLlEKbz1ILmlqKHQscC5RKVtxXQppZihv
PT1udWxsKUguYWsoJ05vICInK3ErJyIgaW4gIicrSC5rMihwKSsnIicpCmQucHVzaChILmRGKHQscCxv
KSl9ZWxzZSBkLnB1c2gocSkKcmV0dXJuIG59LAprcDpmdW5jdGlvbihhLGIpe3ZhciB0PWIucG9wKCkK
aWYoMD09PXQpe2IucHVzaChILmNpKGEudSwxLCIwJiIpKQpyZXR1cm59aWYoMT09PXQpe2IucHVzaChI
LmNpKGEudSw0LCIxJiIpKQpyZXR1cm59dGhyb3cgSC5hKFAuZlkoIlVuZXhwZWN0ZWQgZXh0ZW5kZWQg
b3BlcmF0aW9uICIrSC5iKHQpKSl9LAphRDpmdW5jdGlvbihhLGIsYyl7aWYodHlwZW9mIGM9PSJzdHJp
bmciKXJldHVybiBILmYwKGEsYyxhLnNFQSkKZWxzZSBpZih0eXBlb2YgYz09Im51bWJlciIpcmV0dXJu
IEgua3EoYSxiLGMpCmVsc2UgcmV0dXJuIGN9LApoYTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscz1jLmxl
bmd0aApmb3IodD0wO3Q8czsrK3QpY1t0XT1ILmFEKGEsYixjW3RdKX0sCmtzOmZ1bmN0aW9uKGEsYixj
KXt2YXIgdCxzPWMubGVuZ3RoCmZvcih0PTE7dDxzO3QrPTIpY1t0XT1ILmFEKGEsYixjW3RdKX0sCmtx
OmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHI9Yi56CmlmKHI9PT0xMCl7aWYoYz09PTApcmV0dXJuIGIu
UQp0PWIuY2gKcz10Lmxlbmd0aAppZihjPD1zKXJldHVybiB0W2MtMV0KYy09cwpiPWIuUQpyPWIuen1l
bHNlIGlmKGM9PT0wKXJldHVybiBiCmlmKHIhPT05KXRocm93IEguYShQLmZZKCJJbmRleGVkIGJhc2Ug
bXVzdCBiZSBhbiBpbnRlcmZhY2UgdHlwZSIpKQp0PWIuY2gKaWYoYzw9dC5sZW5ndGgpcmV0dXJuIHRb
Yy0xXQp0aHJvdyBILmEoUC5mWSgiQmFkIGluZGV4ICIrYysiIGZvciAiK2IuaSgwKSkpfSwKRDpmdW5j
dGlvbihhLGIsYyxkLGUpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrCmlmKGI9PT1kKXJldHVybiEwCmlm
KEguY3EoZCkpcmV0dXJuITAKdD1iLnoKaWYodD09PTQpcmV0dXJuITAKaWYoSC5jcShiKSlyZXR1cm4h
MQppZihiPT09dS5QKXJldHVybiEwCnM9dD09PTEzCmlmKHMpaWYoSC5EKGEsY1tiLlFdLGMsZCxlKSly
ZXR1cm4hMApyPWQuegppZih0PT09NilyZXR1cm4gSC5EKGEsYi5RLGMsZCxlKQppZihyPT09Nil7cT1k
LlEKcmV0dXJuIEguRChhLGIsYyxxLGUpfWlmKHQ9PT04KXtpZighSC5EKGEsYi5RLGMsZCxlKSlyZXR1
cm4hMQpyZXR1cm4gSC5EKGEsSC5pMChhLGIpLGMsZCxlKX1pZih0PT09Nyl7cT1ILkQoYSxiLlEsYyxk
LGUpCnJldHVybiBxfWlmKHI9PT04KXtpZihILkQoYSxiLGMsZC5RLGUpKXJldHVybiEwCnJldHVybiBI
LkQoYSxiLGMsSC5pMChhLGQpLGUpfWlmKHI9PT03KXtxPUguRChhLGIsYyxkLlEsZSkKcmV0dXJuIHF9
aWYocylyZXR1cm4hMQpxPXQhPT0xMQppZigoIXF8fHQ9PT0xMikmJmQ9PT11LlopcmV0dXJuITAKaWYo
cj09PTEyKXtpZihiPT09dS5nKXJldHVybiEwCmlmKHQhPT0xMilyZXR1cm4hMQpwPWIuY2gKbz1kLmNo
Cm49cC5sZW5ndGgKaWYobiE9PW8ubGVuZ3RoKXJldHVybiExCmZvcihxPXUuYXYsbT0wO208bjsrK20p
e2w9cFttXQprPW9bbV0KcS5iKGwpCnEuYihrKQppZighSC5EKGEsbCxjLGssZSl8fCFILkQoYSxrLGUs
bCxjKSlyZXR1cm4hMX1jPWM9PW51bGw/cDpwLmNvbmNhdChjKQplPWU9PW51bGw/bzpvLmNvbmNhdChl
KQpyZXR1cm4gSC5pdyhhLGIuUSxjLGQuUSxlKX1pZihyPT09MTEpe2lmKGI9PT11LmcpcmV0dXJuITAK
aWYocSlyZXR1cm4hMQpyZXR1cm4gSC5pdyhhLGIsYyxkLGUpfWlmKHQ9PT05KXtpZihyIT09OSlyZXR1
cm4hMQpyZXR1cm4gSC5sMihhLGIsYyxkLGUpfXJldHVybiExfSwKaXc6ZnVuY3Rpb24oYTAsYTEsYTIs
YTMsYTQpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGosaSxoLGcsZixlLGQsYyxiLGEKaWYoIUguRChh
MCxhMS5RLGEyLGEzLlEsYTQpKXJldHVybiExCnQ9YTEuY2gKcz1hMy5jaApyPXQuYQpxPXMuYQpwPXIu
bGVuZ3RoCm89cS5sZW5ndGgKaWYocD5vKXJldHVybiExCm49by1wCm09dC5iCmw9cy5iCms9bS5sZW5n
dGgKaj1sLmxlbmd0aAppZihwK2s8bytqKXJldHVybiExCmZvcihpPTA7aTxwOysraSl7aD1yW2ldCmlm
KCFILkQoYTAscVtpXSxhNCxoLGEyKSlyZXR1cm4hMX1mb3IoaT0wO2k8bjsrK2kpe2g9bVtpXQppZigh
SC5EKGEwLHFbcCtpXSxhNCxoLGEyKSlyZXR1cm4hMX1mb3IoaT0wO2k8ajsrK2kpe2g9bVtuK2ldCmlm
KCFILkQoYTAsbFtpXSxhNCxoLGEyKSlyZXR1cm4hMX1nPXQuYwpmPXMuYwplPWcubGVuZ3RoCmQ9Zi5s
ZW5ndGgKZm9yKGk9MCxjPTA7YzxkO2MrPTIpe2I9ZltjXQpkb3tpZihpPj1lKXJldHVybiExCmE9Z1tp
XQppKz0yfXdoaWxlKGE8YikKaWYoYjxhKXJldHVybiExCmg9Z1tpLTFdCmlmKCFILkQoYTAsZltjKzFd
LGE0LGgsYTIpKXJldHVybiExfXJldHVybiEwfSwKbDI6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdCxz
LHIscSxwLG8sbixtLGw9Yi5RLGs9ZC5RCmlmKGw9PT1rKXt0PWIuY2gKcz1kLmNoCnI9dC5sZW5ndGgK
Zm9yKHE9MDtxPHI7KytxKXtwPXRbcV0Kbz1zW3FdCmlmKCFILkQoYSxwLGMsbyxlKSlyZXR1cm4hMX1y
ZXR1cm4hMH1uPUguaWooYSxsKQppZihuPT1udWxsKXJldHVybiExCm09bltrXQppZihtPT1udWxsKXJl
dHVybiExCnI9bS5sZW5ndGgKcz1kLmNoCmZvcihxPTA7cTxyOysrcSlpZighSC5EKGEsSC5kRihhLGIs
bVtxXSksYyxzW3FdLGUpKXJldHVybiExCnJldHVybiEwfSwKY3E6ZnVuY3Rpb24oYSl7dmFyIHQscwpp
ZihhPT09dS5LKXJldHVybiEwCnQ9YS56CmlmKHQhPT0yKWlmKHQhPT0zKWlmKHQhPT00KWlmKHQhPT01
KXM9dD09PTgmJkguY3EoYS5RKQplbHNlIHM9ITAKZWxzZSBzPSEwCmVsc2Ugcz0hMAplbHNlIHM9ITAK
cmV0dXJuIHN9LAppcjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj1PYmplY3Qua2V5cyhiKSxxPXIubGVu
Z3RoCmZvcih0PTA7dDxxOysrdCl7cz1yW3RdCmFbc109YltzXX19LAphZjpmdW5jdGlvbiBhZihhLGIs
Yyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLnk9Xy54PV8uZD1udWxsCl8uej0wCl8uZGI9
Xy5jeT1fLmN4PV8uY2g9Xy5RPW51bGx9LAplQjpmdW5jdGlvbiBlQigpe3RoaXMuYz10aGlzLmI9dGhp
cy5hPW51bGx9LApkcDpmdW5jdGlvbiBkcCgpe30sCmMxOmZ1bmN0aW9uIGMxKGEpe3RoaXMuYT1hfSwK
Y2g6ZnVuY3Rpb24gY2goYSl7dGhpcy5hPWF9LAppTTpmdW5jdGlvbihhKXtyZXR1cm4gdS5kLmMoYSl8
fHUuQS5jKGEpfHx1LncuYyhhKXx8dS5JLmMoYSl8fHUuRi5jKGEpfHx1Lmc0LmMoYSl8fHUuZzIuYyhh
KX0sCmlYOmZ1bmN0aW9uKGEpe3JldHVybiB2Lm1hbmdsZWRHbG9iYWxOYW1lc1thXX19LEo9ewpodjpm
dW5jdGlvbihhLGIsYyxkKXtyZXR1cm57aTphLHA6YixlOmMseDpkfX0sCmROOmZ1bmN0aW9uKGEpe3Zh
ciB0LHMscixxLHA9YVt2LmRpc3BhdGNoUHJvcGVydHlOYW1lXQppZihwPT1udWxsKWlmKCQuaHM9PW51
bGwpe0gubHUoKQpwPWFbdi5kaXNwYXRjaFByb3BlcnR5TmFtZV19aWYocCE9bnVsbCl7dD1wLnAKaWYo
ITE9PT10KXJldHVybiBwLmkKaWYoITA9PT10KXJldHVybiBhCnM9T2JqZWN0LmdldFByb3RvdHlwZU9m
KGEpCmlmKHQ9PT1zKXJldHVybiBwLmkKaWYocC5lPT09cyl0aHJvdyBILmEoUC5lbCgiUmV0dXJuIGlu
dGVyY2VwdG9yIGZvciAiK0guYih0KGEscCkpKSl9cj1hLmNvbnN0cnVjdG9yCnE9cj09bnVsbD9udWxs
OnJbJC5oeSgpXQppZihxIT1udWxsKXJldHVybiBxCnE9SC5sQihhKQppZihxIT1udWxsKXJldHVybiBx
CmlmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXJldHVybiBDLlIKdD1PYmplY3QuZ2V0UHJvdG90eXBlT2Yo
YSkKaWYodD09bnVsbClyZXR1cm4gQy5CCmlmKHQ9PT1PYmplY3QucHJvdG90eXBlKXJldHVybiBDLkIK
aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCQuaHkoKSx7dmFs
dWU6Qy5uLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFibGU6dHJ1ZX0pCnJl
dHVybiBDLm59cmV0dXJuIEMubn0sCmpKOmZ1bmN0aW9uKGEpe2EuZml4ZWQkbGVuZ3RoPUFycmF5CnJl
dHVybiBhfSwKaFI6ZnVuY3Rpb24oYSl7aWYoYTwyNTYpc3dpdGNoKGEpe2Nhc2UgOTpjYXNlIDEwOmNh
c2UgMTE6Y2FzZSAxMjpjYXNlIDEzOmNhc2UgMzI6Y2FzZSAxMzM6Y2FzZSAxNjA6cmV0dXJuITAKZGVm
YXVsdDpyZXR1cm4hMX1zd2l0Y2goYSl7Y2FzZSA1NzYwOmNhc2UgODE5MjpjYXNlIDgxOTM6Y2FzZSA4
MTk0OmNhc2UgODE5NTpjYXNlIDgxOTY6Y2FzZSA4MTk3OmNhc2UgODE5ODpjYXNlIDgxOTk6Y2FzZSA4
MjAwOmNhc2UgODIwMTpjYXNlIDgyMDI6Y2FzZSA4MjMyOmNhc2UgODIzMzpjYXNlIDgyMzk6Y2FzZSA4
Mjg3OmNhc2UgMTIyODg6Y2FzZSA2NTI3OTpyZXR1cm4hMApkZWZhdWx0OnJldHVybiExfX0sCmpLOmZ1
bmN0aW9uKGEsYil7dmFyIHQscwpmb3IodD1hLmxlbmd0aDtiPHQ7KXtzPUMuYS50KGEsYikKaWYocyE9
PTMyJiZzIT09MTMmJiFKLmhSKHMpKWJyZWFrOysrYn1yZXR1cm4gYn0sCmpMOmZ1bmN0aW9uKGEsYil7
dmFyIHQscwpmb3IoO2I+MDtiPXQpe3Q9Yi0xCnM9Qy5hLnYoYSx0KQppZihzIT09MzImJnMhPT0xMyYm
IUouaFIocykpYnJlYWt9cmV0dXJuIGJ9LAphRTpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09Im51bWJl
ciIpe2lmKE1hdGguZmxvb3IoYSk9PWEpcmV0dXJuIEouYkkucHJvdG90eXBlCnJldHVybiBKLmNJLnBy
b3RvdHlwZX1pZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIEouYXgucHJvdG90eXBlCmlmKGE9PW51
bGwpcmV0dXJuIEouYkoucHJvdG90eXBlCmlmKHR5cGVvZiBhPT0iYm9vbGVhbiIpcmV0dXJuIEouY0gu
cHJvdG90eXBlCmlmKGEuY29uc3RydWN0b3I9PUFycmF5KXJldHVybiBKLkYucHJvdG90eXBlCmlmKHR5
cGVvZiBhIT0ib2JqZWN0Iil7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIEouYWQucHJvdG90
eXBlCnJldHVybiBhfWlmKGEgaW5zdGFuY2VvZiBQLnQpcmV0dXJuIGEKcmV0dXJuIEouZE4oYSl9LAps
bjpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIEouYmEucHJvdG90eXBlCmlm
KHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gSi5heC5wcm90b3R5cGUKaWYoYT09bnVsbClyZXR1cm4g
YQppZihhLmNvbnN0cnVjdG9yPT1BcnJheSlyZXR1cm4gSi5GLnByb3RvdHlwZQppZih0eXBlb2YgYSE9
Im9iamVjdCIpe2lmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXJldHVybiBKLmFkLnByb3RvdHlwZQpyZXR1
cm4gYX1pZihhIGluc3RhbmNlb2YgUC50KXJldHVybiBhCnJldHVybiBKLmROKGEpfSwKYV86ZnVuY3Rp
b24oYSl7aWYodHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBKLmF4LnByb3RvdHlwZQppZihhPT1udWxs
KXJldHVybiBhCmlmKGEuY29uc3RydWN0b3I9PUFycmF5KXJldHVybiBKLkYucHJvdG90eXBlCmlmKHR5
cGVvZiBhIT0ib2JqZWN0Iil7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIEouYWQucHJvdG90
eXBlCnJldHVybiBhfWlmKGEgaW5zdGFuY2VvZiBQLnQpcmV0dXJuIGEKcmV0dXJuIEouZE4oYSl9LApo
cTpmdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhCmlmKGEuY29uc3RydWN0b3I9PUFycmF5KXJl
dHVybiBKLkYucHJvdG90eXBlCmlmKHR5cGVvZiBhIT0ib2JqZWN0Iil7aWYodHlwZW9mIGE9PSJmdW5j
dGlvbiIpcmV0dXJuIEouYWQucHJvdG90eXBlCnJldHVybiBhfWlmKGEgaW5zdGFuY2VvZiBQLnQpcmV0
dXJuIGEKcmV0dXJuIEouZE4oYSl9LAphMDpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09InN0cmluZyIp
cmV0dXJuIEouYXgucHJvdG90eXBlCmlmKGE9PW51bGwpcmV0dXJuIGEKaWYoIShhIGluc3RhbmNlb2Yg
UC50KSlyZXR1cm4gSi5iay5wcm90b3R5cGUKcmV0dXJuIGF9LApFOmZ1bmN0aW9uKGEpe2lmKGE9PW51
bGwpcmV0dXJuIGEKaWYodHlwZW9mIGEhPSJvYmplY3QiKXtpZih0eXBlb2YgYT09ImZ1bmN0aW9uIily
ZXR1cm4gSi5hZC5wcm90b3R5cGUKcmV0dXJuIGF9aWYoYSBpbnN0YW5jZW9mIFAudClyZXR1cm4gYQpy
ZXR1cm4gSi5kTihhKX0sCmpqOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PSJudW1iZXIiJiZ0eXBl
b2YgYj09Im51bWJlciIpcmV0dXJuIGErYgpyZXR1cm4gSi5sbihhKS5CKGEsYil9LApjczpmdW5jdGlv
bihhLGIpe2lmKGE9PW51bGwpcmV0dXJuIGI9PW51bGwKaWYodHlwZW9mIGEhPSJvYmplY3QiKXJldHVy
biBiIT1udWxsJiZhPT09YgpyZXR1cm4gSi5hRShhKS5HKGEsYil9LApmVzpmdW5jdGlvbihhLGIpe2lm
KHR5cGVvZiBiPT09Im51bWJlciIpaWYoYS5jb25zdHJ1Y3Rvcj09QXJyYXl8fHR5cGVvZiBhPT0ic3Ry
aW5nInx8SC5seChhLGFbdi5kaXNwYXRjaFByb3BlcnR5TmFtZV0pKWlmKGI+Pj4wPT09YiYmYjxhLmxl
bmd0aClyZXR1cm4gYVtiXQpyZXR1cm4gSi5hXyhhKS5qKGEsYil9LApqazpmdW5jdGlvbihhKXtyZXR1
cm4gSi5FKGEpLmJNKGEpfSwKaEQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi5hMChhKS50KGEsYil9LApq
bDpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gSi5FKGEpLmI3KGEsYixjLGQpfSwKam06ZnVuY3Rpb24o
YSxiKXtyZXR1cm4gSi5ocShhKS5PKGEsYil9LApqbjpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gSi5F
KGEpLmNiKGEsYixjLGQpfSwKam86ZnVuY3Rpb24oYSl7cmV0dXJuIEouRShhKS5nYzAoYSl9LAphbDpm
dW5jdGlvbihhKXtyZXR1cm4gSi5FKGEpLmdDKGEpfSwKYnY6ZnVuY3Rpb24oYSl7cmV0dXJuIEouYUUo
YSkuZ3EoYSl9LAphOTpmdW5jdGlvbihhKXtyZXR1cm4gSi5ocShhKS5nRihhKX0sCmF0OmZ1bmN0aW9u
KGEpe3JldHVybiBKLmFfKGEpLmdtKGEpfSwKZFA6ZnVuY3Rpb24oYSl7cmV0dXJuIEouRShhKS5nYUco
YSl9LApqcDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEouaHEoYSkuYUYoYSxiLGMpfSwKanE6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gSi5hRShhKS5haChhLGIpfSwKaEU6ZnVuY3Rpb24oYSl7cmV0dXJuIEouRShh
KS5jbihhKX0sCmpyOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBKLmEwKGEpLmEwKGEsYixjLGQpfSwK
aEY6ZnVuY3Rpb24oYSl7cmV0dXJuIEouRShhKS5idChhKX0sCmRROmZ1bmN0aW9uKGEsYil7cmV0dXJu
IEouRShhKS5zYWYoYSxiKX0sCmhHOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSi5FKGEpLmE2KGEsYixj
KX0sCmN0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSi5hMChhKS5TKGEsYixjKX0sCmpzOmZ1bmN0aW9u
KGEsYil7cmV0dXJuIEouYTAoYSkuVShhLGIpfSwKaEg6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBKLmEw
KGEpLm4oYSxiLGMpfSwKanQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEouYTAoYSkuY3IoYSl9LApiMjpmdW5j
dGlvbihhKXtyZXR1cm4gSi5hRShhKS5pKGEpfSwKZFI6ZnVuY3Rpb24oYSl7cmV0dXJuIEouYTAoYSku
Y3MoYSl9LApJOmZ1bmN0aW9uIEkoKXt9LApjSDpmdW5jdGlvbiBjSCgpe30sCmJKOmZ1bmN0aW9uIGJK
KCl7fSwKYXk6ZnVuY3Rpb24gYXkoKXt9LApjWjpmdW5jdGlvbiBjWigpe30sCmJrOmZ1bmN0aW9uIGJr
KCl7fSwKYWQ6ZnVuY3Rpb24gYWQoKXt9LApGOmZ1bmN0aW9uIEYoYSl7dGhpcy4kdGk9YX0sCmU3OmZ1
bmN0aW9uIGU3KGEpe3RoaXMuJHRpPWF9LAphRjpmdW5jdGlvbiBhRihhLGIsYyl7dmFyIF89dGhpcwpf
LmE9YQpfLmI9YgpfLmM9MApfLmQ9bnVsbApfLiR0aT1jfSwKYmE6ZnVuY3Rpb24gYmEoKXt9LApiSTpm
dW5jdGlvbiBiSSgpe30sCmNJOmZ1bmN0aW9uIGNJKCl7fSwKYXg6ZnVuY3Rpb24gYXgoKXt9fSxQPXsK
a2Y6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9e30KaWYoc2VsZi5zY2hlZHVsZUltbWVkaWF0ZSE9bnVsbCly
ZXR1cm4gUC5saCgpCmlmKHNlbGYuTXV0YXRpb25PYnNlcnZlciE9bnVsbCYmc2VsZi5kb2N1bWVudCE9
bnVsbCl7dD1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCnM9c2VsZi5kb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIikKci5hPW51bGwKbmV3IHNlbGYuTXV0YXRpb25PYnNlcnZlcihILmRN
KG5ldyBQLmV0KHIpLDEpKS5vYnNlcnZlKHQse2NoaWxkTGlzdDp0cnVlfSkKcmV0dXJuIG5ldyBQLmVz
KHIsdCxzKX1lbHNlIGlmKHNlbGYuc2V0SW1tZWRpYXRlIT1udWxsKXJldHVybiBQLmxpKCkKcmV0dXJu
IFAubGooKX0sCmtnOmZ1bmN0aW9uKGEpe3NlbGYuc2NoZWR1bGVJbW1lZGlhdGUoSC5kTShuZXcgUC5l
dSh1Lk0uYihhKSksMCkpfSwKa2g6ZnVuY3Rpb24oYSl7c2VsZi5zZXRJbW1lZGlhdGUoSC5kTShuZXcg
UC5ldih1Lk0uYihhKSksMCkpfSwKa2k6ZnVuY3Rpb24oYSl7UC5oNyhDLk0sdS5NLmIoYSkpfSwKaDc6
ZnVuY3Rpb24oYSxiKXt2YXIgdD1DLmMuYWIoYS5hLDEwMDApCnJldHVybiBQLmt0KHQ8MD8wOnQsYil9
LAprdDpmdW5jdGlvbihhLGIpe3ZhciB0PW5ldyBQLmRDKCkKdC5iRihhLGIpCnJldHVybiB0fSwKaTk6
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIKYi5hPTEKdHJ5e2EuYm4obmV3IFAuZUcoYiksbmV3IFAuZUgo
YiksdS5QKX1jYXRjaChyKXt0PUguUShyKQpzPUguY3AocikKUC5sRihuZXcgUC5lSShiLHQscykpfX0s
CmVGOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyCmZvcih0PXUuXztzPWEuYSxzPT09MjspYT10LmIoYS5j
KQppZihzPj00KXtyPWIuYTkoKQpiLmE9YS5hCmIuYz1hLmMKUC5ibyhiLHIpfWVsc2V7cj11LnguYihi
LmMpCmIuYT0yCmIuYz1hCmEuYjIocil9fSwKYm86ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8s
bixtLGwsayxqLGksaCxnLGYsZT1udWxsLGQ9e30sYz1kLmE9YQpmb3IodD11Lm4scz11Lngscj11LmM7
ITA7KXtxPXt9CnA9Yy5hPT09OAppZihiPT1udWxsKXtpZihwKXtvPXQuYihjLmMpClAuZmUoZSxlLGMu
YixvLmEsby5iKX1yZXR1cm59Zm9yKDtuPWIuYSxuIT1udWxsO2I9bil7Yi5hPW51bGwKUC5ibyhkLmEs
Yil9Yz1kLmEKbT1jLmMKcS5hPXAKcS5iPW0KbD0hcAppZihsKXtrPWIuYwprPShrJjEpIT09MHx8KGsm
MTUpPT09OH1lbHNlIGs9ITAKaWYoayl7az1iLmIKaj1rLmIKaWYocCl7aT1jLmI9PT1qCmk9IShpfHxp
KX1lbHNlIGk9ITEKaWYoaSl7dC5iKG0pClAuZmUoZSxlLGMuYixtLmEsbS5iKQpyZXR1cm59aD0kLncK
aWYoaCE9PWopJC53PWoKZWxzZSBoPWUKYz1iLmMKaWYoKGMmMTUpPT09OCluZXcgUC5lTihkLHEsYixw
KS4kMCgpCmVsc2UgaWYobCl7aWYoKGMmMSkhPT0wKW5ldyBQLmVNKHEsYixtKS4kMCgpfWVsc2UgaWYo
KGMmMikhPT0wKW5ldyBQLmVMKGQscSxiKS4kMCgpCmlmKGghPW51bGwpJC53PWgKYz1xLmIKaWYoci5j
KGMpKXtpZihjLmE+PTQpe2c9cy5iKGsuYykKay5jPW51bGwKYj1rLmFhKGcpCmsuYT1jLmEKay5jPWMu
YwpkLmE9Ywpjb250aW51ZX1lbHNlIFAuZUYoYyxrKQpyZXR1cm59fWY9Yi5iCmc9cy5iKGYuYykKZi5j
PW51bGwKYj1mLmFhKGcpCmM9cS5hCmw9cS5iCmlmKCFjKXtmLiR0aS5kLmIobCkKZi5hPTQKZi5jPWx9
ZWxzZXt0LmIobCkKZi5hPTgKZi5jPWx9ZC5hPWYKYz1mfX0sCml6OmZ1bmN0aW9uKGEsYil7dmFyIHQ9
dS5ZCmlmKHQuYyhhKSlyZXR1cm4gdC5iKGEpCnQ9dS55CmlmKHQuYyhhKSlyZXR1cm4gdC5iKGEpCnRo
cm93IEguYShQLmZYKGEsIm9uRXJyb3IiLCJFcnJvciBoYW5kbGVyIG11c3QgYWNjZXB0IG9uZSBPYmpl
Y3Qgb3Igb25lIE9iamVjdCBhbmQgYSBTdGFja1RyYWNlIGFzIGFyZ3VtZW50cywgYW5kIHJldHVybiBh
IGEgdmFsaWQgcmVzdWx0IikpfSwKbDc6ZnVuY3Rpb24oKXt2YXIgdCxzCmZvcig7dD0kLmJzLHQhPW51
bGw7KXskLmNvPW51bGwKcz10LmIKJC5icz1zCmlmKHM9PW51bGwpJC5jbj1udWxsCnQuYS4kMCgpfX0s
CmxjOmZ1bmN0aW9uKCl7JC5obT0hMAp0cnl7UC5sNygpfWZpbmFsbHl7JC5jbz1udWxsCiQuaG09ITEK
aWYoJC5icyE9bnVsbCkkLmhBKCkuJDEoUC5pSSgpKX19LAppRTpmdW5jdGlvbihhKXt2YXIgdD1uZXcg
UC5kaChhKQppZigkLmJzPT1udWxsKXskLmJzPSQuY249dAppZighJC5obSkkLmhBKCkuJDEoUC5pSSgp
KX1lbHNlICQuY249JC5jbi5iPXR9LApsYjpmdW5jdGlvbihhKXt2YXIgdCxzLHI9JC5icwppZihyPT1u
dWxsKXtQLmlFKGEpCiQuY289JC5jbgpyZXR1cm59dD1uZXcgUC5kaChhKQpzPSQuY28KaWYocz09bnVs
bCl7dC5iPXIKJC5icz0kLmNvPXR9ZWxzZXt0LmI9cy5iCiQuY289cy5iPXQKaWYodC5iPT1udWxsKSQu
Y249dH19LApsRjpmdW5jdGlvbihhKXt2YXIgdD1udWxsLHM9JC53CmlmKEMuZD09PXMpe1AuYnQodCx0
LEMuZCxhKQpyZXR1cm59UC5idCh0LHQscyx1Lk0uYihzLmF6KGEpKSl9LAprNzpmdW5jdGlvbihhLGIp
e3ZhciB0PSQudwppZih0PT09Qy5kKXJldHVybiBQLmg3KGEsdS5NLmIoYikpCnJldHVybiBQLmg3KGEs
dS5NLmIodC5heihiKSkpfSwKZmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdD17fQp0LmE9ZApQLmxi
KG5ldyBQLmZmKHQsZSkpfSwKaUE6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdCxzPSQudwppZihzPT09
YylyZXR1cm4gZC4kMCgpCiQudz1jCnQ9cwp0cnl7cz1kLiQwKCkKcmV0dXJuIHN9ZmluYWxseXskLnc9
dH19LAppQjpmdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgdCxzPSQudwppZihzPT09YylyZXR1cm4g
ZC4kMShlKQokLnc9Ywp0PXMKdHJ5e3M9ZC4kMShlKQpyZXR1cm4gc31maW5hbGx5eyQudz10fX0sCmw5
OmZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxpKXt2YXIgdCxzPSQudwppZihzPT09YylyZXR1cm4gZC4k
MihlLGYpCiQudz1jCnQ9cwp0cnl7cz1kLiQyKGUsZikKcmV0dXJuIHN9ZmluYWxseXskLnc9dH19LApi
dDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdAp1Lk0uYihkKQp0PUMuZCE9PWMKaWYodClkPSEoIXR8fCEx
KT9jLmF6KGQpOmMuYzEoZCx1LkgpClAuaUUoZCl9LApldDpmdW5jdGlvbiBldChhKXt0aGlzLmE9YX0s
CmVzOmZ1bmN0aW9uIGVzKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sCmV1OmZ1bmN0
aW9uIGV1KGEpe3RoaXMuYT1hfSwKZXY6ZnVuY3Rpb24gZXYoYSl7dGhpcy5hPWF9LApkQzpmdW5jdGlv
biBkQygpe3RoaXMuYj1udWxsfSwKZl86ZnVuY3Rpb24gZl8oYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0s
CmMyOmZ1bmN0aW9uIGMyKCl7fSwKYzA6ZnVuY3Rpb24gYzAoYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1i
fSwKYVo6ZnVuY3Rpb24gYVooYSxiLGMsZCxlKXt2YXIgXz10aGlzCl8uYT1udWxsCl8uYj1hCl8uYz1i
Cl8uZD1jCl8uZT1kCl8uJHRpPWV9LApTOmZ1bmN0aW9uIFMoYSxiKXt2YXIgXz10aGlzCl8uYT0wCl8u
Yj1hCl8uYz1udWxsCl8uJHRpPWJ9LAplQzpmdW5jdGlvbiBlQyhhLGIpe3RoaXMuYT1hCnRoaXMuYj1i
fSwKZUs6ZnVuY3Rpb24gZUsoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCmVHOmZ1bmN0aW9uIGVHKGEp
e3RoaXMuYT1hfSwKZUg6ZnVuY3Rpb24gZUgoYSl7dGhpcy5hPWF9LAplSTpmdW5jdGlvbiBlSShhLGIs
Yyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LAplRTpmdW5jdGlvbiBlRShhLGIpe3RoaXMuYT1h
CnRoaXMuYj1ifSwKZUo6ZnVuY3Rpb24gZUooYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCmVEOmZ1bmN0
aW9uIGVEKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sCmVOOmZ1bmN0aW9uIGVOKGEs
YixjLGQpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5kPWR9LAplTzpmdW5jdGlvbiBlTyhh
KXt0aGlzLmE9YX0sCmVNOmZ1bmN0aW9uIGVNKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9
Y30sCmVMOmZ1bmN0aW9uIGVMKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sCmRoOmZ1
bmN0aW9uIGRoKGEpe3RoaXMuYT1hCnRoaXMuYj1udWxsfSwKYlk6ZnVuY3Rpb24gYlkoKXt9LAplaDpm
dW5jdGlvbiBlaChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKZWk6ZnVuY3Rpb24gZWkoYSxiKXt0aGlz
LmE9YQp0aGlzLmI9Yn0sCmQ0OmZ1bmN0aW9uIGQ0KCl7fSwKZDU6ZnVuY3Rpb24gZDUoKXt9LAphdTpm
dW5jdGlvbiBhdShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKZEc6ZnVuY3Rpb24gZEcoKXt9LApmZjpm
dW5jdGlvbiBmZihhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKZHg6ZnVuY3Rpb24gZHgoKXt9LAplUjpm
dW5jdGlvbiBlUihhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LAplUTpmdW5jdGlvbiBl
UShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKZVM6ZnVuY3Rpb24gZVMoYSxiLGMpe3RoaXMuYT1hCnRo
aXMuYj1iCnRoaXMuYz1jfSwKY086ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiLmgoIkA8MD4iKS5FKGMp
LmgoImhTPDEsMj4iKS5iKEgubG0oYSxuZXcgSC5hbihiLmgoIkA8MD4iKS5FKGMpLmgoImFuPDEsMj4i
KSkpKX0sCmU5OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBILmFuKGEuaCgiQDwwPiIpLkUoYikuaCgi
YW48MSwyPiIpKX0sCmJNOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5jNihhLmgoImM2PDA+IikpfSwK
aDk6ZnVuY3Rpb24oKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpCnRbIjxub24taWRlbnRpZmllci1r
ZXk+Il09dApkZWxldGUgdFsiPG5vbi1pZGVudGlmaWVyLWtleT4iXQpyZXR1cm4gdH0sCmljOmZ1bmN0
aW9uKGEsYixjKXt2YXIgdD1uZXcgUC5iMChhLGIsYy5oKCJiMDwwPiIpKQp0LmM9YS5lCnJldHVybiB0
fSwKakg6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMKaWYoUC5obihhKSl7aWYoYj09PSIoIiYmYz09PSIp
IilyZXR1cm4iKC4uLikiCnJldHVybiBiKyIuLi4iK2N9dD1ILm4oW10sdS5zKQpDLmIuaygkLlgsYSkK
dHJ5e1AubDYoYSx0KX1maW5hbGx5e2lmKDA+PSQuWC5sZW5ndGgpcmV0dXJuIEguaSgkLlgsLTEpCiQu
WC5wb3AoKX1zPVAuaTIoYix1LlIuYih0KSwiLCAiKStjCnJldHVybiBzLmNoYXJDb2RlQXQoMCk9PTA/
czpzfSwKZTY6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMKaWYoUC5obihhKSlyZXR1cm4gYisiLi4uIitj
CnQ9bmV3IFAuSChiKQpDLmIuaygkLlgsYSkKdHJ5e3M9dApzLmE9UC5pMihzLmEsYSwiLCAiKX1maW5h
bGx5e2lmKDA+PSQuWC5sZW5ndGgpcmV0dXJuIEguaSgkLlgsLTEpCiQuWC5wb3AoKX10LmErPWMKcz10
LmEKcmV0dXJuIHMuY2hhckNvZGVBdCgwKT09MD9zOnN9LApobjpmdW5jdGlvbihhKXt2YXIgdCxzCmZv
cih0PSQuWC5sZW5ndGgscz0wO3M8dDsrK3MpaWYoYT09PSQuWFtzXSlyZXR1cm4hMApyZXR1cm4hMX0s
Cmw2OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvLG4sbT1hLmdGKGEpLGw9MCxrPTAKd2hpbGUo
ITApe2lmKCEobDw4MHx8azwzKSlicmVhawppZighbS5wKCkpcmV0dXJuCnQ9SC5iKG0uZ3UoKSkKQy5i
LmsoYix0KQpsKz10Lmxlbmd0aCsyOysra31pZighbS5wKCkpe2lmKGs8PTUpcmV0dXJuCmlmKDA+PWIu
bGVuZ3RoKXJldHVybiBILmkoYiwtMSkKcz1iLnBvcCgpCmlmKDA+PWIubGVuZ3RoKXJldHVybiBILmko
YiwtMSkKcj1iLnBvcCgpfWVsc2V7cT1tLmd1KCk7KytrCmlmKCFtLnAoKSl7aWYoazw9NCl7Qy5iLmso
YixILmIocSkpCnJldHVybn1zPUguYihxKQppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5pKGIsLTEpCnI9
Yi5wb3AoKQpsKz1zLmxlbmd0aCsyfWVsc2V7cD1tLmd1KCk7KytrCmZvcig7bS5wKCk7cT1wLHA9byl7
bz1tLmd1KCk7KytrCmlmKGs+MTAwKXt3aGlsZSghMCl7aWYoIShsPjc1JiZrPjMpKWJyZWFrCmlmKDA+
PWIubGVuZ3RoKXJldHVybiBILmkoYiwtMSkKbC09Yi5wb3AoKS5sZW5ndGgrMjstLWt9Qy5iLmsoYiwi
Li4uIikKcmV0dXJufX1yPUguYihxKQpzPUguYihwKQpsKz1zLmxlbmd0aCtyLmxlbmd0aCs0fX1pZihr
PmIubGVuZ3RoKzIpe2wrPTUKbj0iLi4uIn1lbHNlIG49bnVsbAp3aGlsZSghMCl7aWYoIShsPjgwJiZi
Lmxlbmd0aD4zKSlicmVhawppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5pKGIsLTEpCmwtPWIucG9wKCku
bGVuZ3RoKzIKaWYobj09bnVsbCl7bCs9NQpuPSIuLi4ifX1pZihuIT1udWxsKUMuYi5rKGIsbikKQy5i
LmsoYixyKQpDLmIuayhiLHMpfSwKaFQ6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHI9UC5iTShiKQpmb3Io
dD1hLmxlbmd0aCxzPTA7czxhLmxlbmd0aDthLmxlbmd0aD09PXR8fCgwLEguY3IpKGEpLCsrcylyLmso
MCxiLmIoYVtzXSkpCnJldHVybiByfSwKaDM6ZnVuY3Rpb24oYSl7dmFyIHQscz17fQppZihQLmhuKGEp
KXJldHVybiJ7Li4ufSIKdD1uZXcgUC5IKCIiKQp0cnl7Qy5iLmsoJC5YLGEpCnQuYSs9InsiCnMuYT0h
MAphLkEoMCxuZXcgUC5lYShzLHQpKQp0LmErPSJ9In1maW5hbGx5e2lmKDA+PSQuWC5sZW5ndGgpcmV0
dXJuIEguaSgkLlgsLTEpCiQuWC5wb3AoKX1zPXQuYQpyZXR1cm4gcy5jaGFyQ29kZUF0KDApPT0wP3M6
c30sCmM2OmZ1bmN0aW9uIGM2KGEpe3ZhciBfPXRoaXMKXy5hPTAKXy5mPV8uZT1fLmQ9Xy5jPV8uYj1u
dWxsCl8ucj0wCl8uJHRpPWF9LApkdTpmdW5jdGlvbiBkdShhKXt0aGlzLmE9YQp0aGlzLmM9dGhpcy5i
PW51bGx9LApiMDpmdW5jdGlvbiBiMChhLGIsYyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmQ9Xy5j
PW51bGwKXy4kdGk9Y30sCmJOOmZ1bmN0aW9uIGJOKCl7fSwKbDpmdW5jdGlvbiBsKCl7fSwKYlA6ZnVu
Y3Rpb24gYlAoKXt9LAplYTpmdW5jdGlvbiBlYShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKQjpmdW5j
dGlvbiBCKCl7fSwKY2o6ZnVuY3Rpb24gY2ooKXt9LApiYzpmdW5jdGlvbiBiYygpe30sCmF6OmZ1bmN0
aW9uIGF6KGEsYil7dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCmFXOmZ1bmN0aW9uIGFXKCl7fSwKYlc6ZnVu
Y3Rpb24gYlcoKXt9LApjZDpmdW5jdGlvbiBjZCgpe30sCmM3OmZ1bmN0aW9uIGM3KCl7fSwKY2U6ZnVu
Y3Rpb24gY2UoKXt9LApicTpmdW5jdGlvbiBicSgpe30sCmw4OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxy
LHEKaWYodHlwZW9mIGEhPSJzdHJpbmciKXRocm93IEguYShILmFzKGEpKQp0PW51bGwKdHJ5e3Q9SlNP
Ti5wYXJzZShhKX1jYXRjaChyKXtzPUguUShyKQpxPVAuQShTdHJpbmcocyksbnVsbCxudWxsKQp0aHJv
dyBILmEocSl9cT1QLmY2KHQpCnJldHVybiBxfSwKZjY6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoYT09bnVs
bClyZXR1cm4gbnVsbAppZih0eXBlb2YgYSE9Im9iamVjdCIpcmV0dXJuIGEKaWYoT2JqZWN0LmdldFBy
b3RvdHlwZU9mKGEpIT09QXJyYXkucHJvdG90eXBlKXJldHVybiBuZXcgUC5kcyhhLE9iamVjdC5jcmVh
dGUobnVsbCkpCmZvcih0PTA7dDxhLmxlbmd0aDsrK3QpYVt0XT1QLmY2KGFbdF0pCnJldHVybiBhfSwK
a2E6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIFAua2Io
ITEsYixjLGQpCnJldHVybiBudWxsfSwKa2I6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyPSQuamMo
KQppZihyPT1udWxsKXJldHVybiBudWxsCnQ9MD09PWMKaWYodCYmITApcmV0dXJuIFAuaDgocixiKQpz
PWIubGVuZ3RoCmQ9UC5hVihjLGQscykKaWYodCYmZD09PXMpcmV0dXJuIFAuaDgocixiKQpyZXR1cm4g
UC5oOChyLGIuc3ViYXJyYXkoYyxkKSl9LApoODpmdW5jdGlvbihhLGIpe2lmKFAua2QoYikpcmV0dXJu
IG51bGwKcmV0dXJuIFAua2UoYSxiKX0sCmtlOmZ1bmN0aW9uKGEsYil7dmFyIHQscwp0cnl7dD1hLmRl
Y29kZShiKQpyZXR1cm4gdH1jYXRjaChzKXtILlEocyl9cmV0dXJuIG51bGx9LAprZDpmdW5jdGlvbihh
KXt2YXIgdCxzPWEubGVuZ3RoLTIKZm9yKHQ9MDt0PHM7Kyt0KWlmKGFbdF09PT0yMzcpaWYoKGFbdCsx
XSYyMjQpPT09MTYwKXJldHVybiEwCnJldHVybiExfSwKa2M6ZnVuY3Rpb24oKXt2YXIgdCxzCnRyeXt0
PW5ldyBUZXh0RGVjb2RlcigidXRmLTgiLHtmYXRhbDp0cnVlfSkKcmV0dXJuIHR9Y2F0Y2gocyl7SC5R
KHMpfXJldHVybiBudWxsfSwKaUQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscgpmb3IodD1KLmFfKGEp
LHM9YjtzPGM7KytzKXtyPXQuaihhLHMpCmlmKHR5cGVvZiByIT09Im51bWJlciIpcmV0dXJuIHIuUCgp
CmlmKChyJjEyNykhPT1yKXJldHVybiBzLWJ9cmV0dXJuIGMtYn0sCmhJOmZ1bmN0aW9uKGEsYixjLGQs
ZSxmKXtpZihDLmMuYWsoZiw0KSE9PTApdGhyb3cgSC5hKFAuQSgiSW52YWxpZCBiYXNlNjQgcGFkZGlu
ZywgcGFkZGVkIGxlbmd0aCBtdXN0IGJlIG11bHRpcGxlIG9mIGZvdXIsIGlzICIrZixhLGMpKQppZihk
K2UhPT1mKXRocm93IEguYShQLkEoIkludmFsaWQgYmFzZTY0IHBhZGRpbmcsICc9JyBub3QgYXQgdGhl
IGVuZCIsYSxiKSkKaWYoZT4yKXRocm93IEguYShQLkEoIkludmFsaWQgYmFzZTY0IHBhZGRpbmcsIG1v
cmUgdGhhbiB0d28gJz0nIGNoYXJhY3RlcnMiLGEsYikpfSwKaXg6ZnVuY3Rpb24oYSl7YS5QKDAsNjQ1
MTIpCnJldHVybiExfSwKa1Y6ZnVuY3Rpb24oYSxiKXtyZXR1cm4oQy5jLkIoNjU1MzYsYS5QKDAsMTAy
MykuY3YoMCwxMCkpfGImMTAyMyk+Pj4wfSwKZHM6ZnVuY3Rpb24gZHMoYSxiKXt0aGlzLmE9YQp0aGlz
LmI9Ygp0aGlzLmM9bnVsbH0sCmR0OmZ1bmN0aW9uIGR0KGEpe3RoaXMuYT1hfSwKY3c6ZnVuY3Rpb24g
Y3coKXt9LApjeDpmdW5jdGlvbiBjeCgpe30sCmEyOmZ1bmN0aW9uIGEyKCl7fSwKYUs6ZnVuY3Rpb24g
YUsoKXt9LApjRTpmdW5jdGlvbiBjRSgpe30sCmNNOmZ1bmN0aW9uIGNNKCl7fSwKY046ZnVuY3Rpb24g
Y04oYSl7dGhpcy5hPWF9LApkZDpmdW5jdGlvbiBkZCgpe30sCmRmOmZ1bmN0aW9uIGRmKCl7fSwKZjQ6
ZnVuY3Rpb24gZjQoYSl7dGhpcy5iPTAKdGhpcy5jPWF9LApkZTpmdW5jdGlvbiBkZShhKXt0aGlzLmE9
YX0sCmYzOmZ1bmN0aW9uIGYzKGEsYil7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9ITAKXy5mPV8u
ZT1fLmQ9MH0sCmRPOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1ILmg0KGEsYykKaWYodCE9bnVsbClyZXR1
cm4gdAppZihiIT1udWxsKXJldHVybiBiLiQxKGEpCnRocm93IEguYShQLkEoYSxudWxsLG51bGwpKX0s
CmpHOmZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBILmFJKXJldHVybiBhLmkoMCkKcmV0dXJuIklu
c3RhbmNlIG9mICciK0guYihILmVmKGEpKSsiJyJ9LApoMjpmdW5jdGlvbihhLGIsYyl7dmFyIHQscz1I
Lm4oW10sYy5oKCJGPDA+IikpCmZvcih0PUouYTkoYSk7dC5wKCk7KUMuYi5rKHMsYy5iKHQuZ3UoKSkp
CnJldHVybiBzfSwKaDY6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CmlmKEFycmF5LmlzQXJyYXkoYSkpe3Uu
dC5iKGEpCnQ9YS5sZW5ndGgKYz1QLmFWKGIsYyx0KQpyZXR1cm4gSC5oWShiPjB8fGM8dD9DLmIuYnUo
YSxiLGMpOmEpfWlmKHUuYm0uYyhhKSlyZXR1cm4gSC5rMChhLGIsUC5hVihiLGMsYS5sZW5ndGgpKQpy
ZXR1cm4gUC5rNShhLGIsYyl9LAprNTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscD1udWxsCmlm
KGI8MCl0aHJvdyBILmEoUC5MKGIsMCxKLmF0KGEpLHAscCkpCnQ9Yz09bnVsbAppZighdCYmYzxiKXRo
cm93IEguYShQLkwoYyxiLEouYXQoYSkscCxwKSkKcz1KLmE5KGEpCmZvcihyPTA7cjxiOysrcilpZigh
cy5wKCkpdGhyb3cgSC5hKFAuTChiLDAscixwLHApKQpxPVtdCmlmKHQpZm9yKDtzLnAoKTspcS5wdXNo
KHMuZ3UoKSkKZWxzZSBmb3Iocj1iO3I8YzsrK3Ipe2lmKCFzLnAoKSl0aHJvdyBILmEoUC5MKGMsYixy
LHAscCkpCnEucHVzaChzLmd1KCkpfXJldHVybiBILmhZKHEpfSwKaV86ZnVuY3Rpb24oYSl7cmV0dXJu
IG5ldyBILmNLKGEsSC5qTShhLCExLCEwLCExLCExLCExKSl9LAppMjpmdW5jdGlvbihhLGIsYyl7dmFy
IHQ9Si5hOShiKQppZighdC5wKCkpcmV0dXJuIGEKaWYoYy5sZW5ndGg9PT0wKXtkbyBhKz1ILmIodC5n
dSgpKQp3aGlsZSh0LnAoKSl9ZWxzZXthKz1ILmIodC5ndSgpKQpmb3IoO3QucCgpOylhPWErYytILmIo
dC5ndSgpKX1yZXR1cm4gYX0sCmhVOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBuZXcgUC5jVShhLGIs
YyxkKX0sCmtSOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscixxLHAsbyxuPSIwMTIzNDU2Nzg5QUJD
REVGIgppZihjPT09Qy5mKXt0PSQuamYoKS5iCnQ9dC50ZXN0KGIpfWVsc2UgdD0hMQppZih0KXJldHVy
biBiCkgudihjKS5oKCJhMi5TIikuYihiKQpzPWMuZ2NhKCkuYUEoYikKZm9yKHQ9cy5sZW5ndGgscj0w
LHE9IiI7cjx0Oysrcil7cD1zW3JdCmlmKHA8MTI4KXtvPXA+Pj40CmlmKG8+PTgpcmV0dXJuIEguaShh
LG8pCm89KGFbb10mMTw8KHAmMTUpKSE9PTB9ZWxzZSBvPSExCmlmKG8pcSs9SC5kXyhwKQplbHNlIHE9
ZCYmcD09PTMyP3ErIisiOnErIiUiK25bcD4+PjQmMTVdK25bcCYxNV19cmV0dXJuIHEuY2hhckNvZGVB
dCgwKT09MD9xOnF9LApqRDpmdW5jdGlvbihhKXt2YXIgdD1NYXRoLmFicyhhKSxzPWE8MD8iLSI6IiIK
aWYodD49MTAwMClyZXR1cm4iIithCmlmKHQ+PTEwMClyZXR1cm4gcysiMCIrdAppZih0Pj0xMClyZXR1
cm4gcysiMDAiK3QKcmV0dXJuIHMrIjAwMCIrdH0sCmpFOmZ1bmN0aW9uKGEpe2lmKGE+PTEwMClyZXR1
cm4iIithCmlmKGE+PTEwKXJldHVybiIwIithCnJldHVybiIwMCIrYX0sCmNDOmZ1bmN0aW9uKGEpe2lm
KGE+PTEwKXJldHVybiIiK2EKcmV0dXJuIjAiK2F9LAphTTpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09
Im51bWJlciJ8fEguZmQoYSl8fG51bGw9PWEpcmV0dXJuIEouYjIoYSkKaWYodHlwZW9mIGE9PSJzdHJp
bmciKXJldHVybiBKU09OLnN0cmluZ2lmeShhKQpyZXR1cm4gUC5qRyhhKX0sCmZZOmZ1bmN0aW9uKGEp
e3JldHVybiBuZXcgUC5idyhhKX0sCmI0OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5hMSghMSxudWxs
LG51bGwsYSl9LApmWDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG5ldyBQLmExKCEwLGEsYixjKX0sCmVn
OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBQLmFVKG51bGwsbnVsbCwhMCxhLGIsIlZhbHVlIG5vdCBp
biByYW5nZSIpfSwKTDpmdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBuZXcgUC5hVShiLGMsITAsYSxk
LCJJbnZhbGlkIHZhbHVlIil9LAphVjpmdW5jdGlvbihhLGIsYyl7aWYoMD5hfHxhPmMpdGhyb3cgSC5h
KFAuTChhLDAsYywic3RhcnQiLG51bGwpKQppZihiIT1udWxsKXtpZihhPmJ8fGI+Yyl0aHJvdyBILmEo
UC5MKGIsYSxjLCJlbmQiLG51bGwpKQpyZXR1cm4gYn1yZXR1cm4gY30sCmsxOmZ1bmN0aW9uKGEsYil7
aWYodHlwZW9mIGEhPT0ibnVtYmVyIilyZXR1cm4gYS5EKCkKaWYoYTwwKXRocm93IEguYShQLkwoYSww
LG51bGwsYixudWxsKSl9LAplNTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciB0PUgueChlPT1udWxsP0ou
YXQoYik6ZSkKcmV0dXJuIG5ldyBQLmNHKHQsITAsYSxjLCJJbmRleCBvdXQgb2YgcmFuZ2UiKX0sCk46
ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLmRiKGEpfSwKZWw6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQ
LmQ5KGEpfSwKZDI6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLmJoKGEpfSwKYXY6ZnVuY3Rpb24oYSl7
cmV0dXJuIG5ldyBQLmN6KGEpfSwKQTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG5ldyBQLmVfKGEsYixj
KX0sCmpOOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzPUgubihbXSxjLmgoIkY8MD4iKSkKQy5iLnNtKHMs
YSkKZm9yKHQ9MDt0PGE7Kyt0KUMuYi5sKHMsdCxiLiQxKHQpKQpyZXR1cm4gc30sCmk1OmZ1bmN0aW9u
KGEpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGosaSxoLGcsZixlPW51bGwsZD1hLmxlbmd0aAppZihk
Pj01KXt0PSgoSi5oRChhLDQpXjU4KSozfEMuYS50KGEsMCleMTAwfEMuYS50KGEsMSleOTd8Qy5hLnQo
YSwyKV4xMTZ8Qy5hLnQoYSwzKV45Nyk+Pj4wCmlmKHQ9PT0wKXJldHVybiBQLmk0KGQ8ZD9DLmEubihh
LDAsZCk6YSw1LGUpLmdicCgpCmVsc2UgaWYodD09PTMyKXJldHVybiBQLmk0KEMuYS5uKGEsNSxkKSww
LGUpLmdicCgpfXM9bmV3IEFycmF5KDgpCnMuZml4ZWQkbGVuZ3RoPUFycmF5CnI9SC5uKHMsdS50KQpD
LmIubChyLDAsMCkKQy5iLmwociwxLC0xKQpDLmIubChyLDIsLTEpCkMuYi5sKHIsNywtMSkKQy5iLmwo
ciwzLDApCkMuYi5sKHIsNCwwKQpDLmIubChyLDUsZCkKQy5iLmwociw2LGQpCmlmKFAuaUMoYSwwLGQs
MCxyKT49MTQpQy5iLmwociw3LGQpCnE9clsxXQppZih0eXBlb2YgcSE9PSJudW1iZXIiKXJldHVybiBx
LmJyKCkKaWYocT49MClpZihQLmlDKGEsMCxxLDIwLHIpPT09MjApcls3XT1xCnM9clsyXQppZih0eXBl
b2YgcyE9PSJudW1iZXIiKXJldHVybiBzLkIoKQpwPXMrMQpvPXJbM10Kbj1yWzRdCm09cls1XQpsPXJb
Nl0KaWYodHlwZW9mIGwhPT0ibnVtYmVyIilyZXR1cm4gbC5EKCkKaWYodHlwZW9mIG0hPT0ibnVtYmVy
IilyZXR1cm4gSC5haihtKQppZihsPG0pbT1sCmlmKHR5cGVvZiBuIT09Im51bWJlciIpcmV0dXJuIG4u
RCgpCmlmKG48cCluPW0KZWxzZSBpZihuPD1xKW49cSsxCmlmKHR5cGVvZiBvIT09Im51bWJlciIpcmV0
dXJuIG8uRCgpCmlmKG88cClvPW4Kcz1yWzddCmlmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMu
RCgpCms9czwwCmlmKGspaWYocD5xKzMpe2o9ZQprPSExfWVsc2V7cz1vPjAKaWYocyYmbysxPT09bil7
aj1lCms9ITF9ZWxzZXtpZighKG08ZCYmbT09PW4rMiYmSi5jdChhLCIuLiIsbikpKWk9bT5uKzImJkou
Y3QoYSwiLy4uIixtLTMpCmVsc2UgaT0hMAppZihpKXtqPWUKaz0hMX1lbHNle2lmKHE9PT00KWlmKEou
Y3QoYSwiZmlsZSIsMCkpe2lmKHA8PTApe2lmKCFDLmEuUyhhLCIvIixuKSl7aD0iZmlsZTovLy8iCnQ9
M31lbHNle2g9ImZpbGU6Ly8iCnQ9Mn1hPWgrQy5hLm4oYSxuLGQpCnEtPTAKcz10LTAKbSs9cwpsKz1z
CmQ9YS5sZW5ndGgKcD03Cm89NwpuPTd9ZWxzZSBpZihuPT09bSl7Zz1tKzE7KytsCmE9Qy5hLmEwKGEs
bixtLCIvIik7KytkCm09Z31qPSJmaWxlIn1lbHNlIGlmKEMuYS5TKGEsImh0dHAiLDApKXtpZihzJiZv
KzM9PT1uJiZDLmEuUyhhLCI4MCIsbysxKSl7Zj1uLTMKbS09MwpsLT0zCmE9Qy5hLmEwKGEsbyxuLCIi
KQpkLT0zCm49Zn1qPSJodHRwIn1lbHNlIGo9ZQplbHNlIGlmKHE9PT01JiZKLmN0KGEsImh0dHBzIiww
KSl7aWYocyYmbys0PT09biYmSi5jdChhLCI0NDMiLG8rMSkpe2Y9bi00Cm0tPTQKbC09NAphPUouanIo
YSxvLG4sIiIpCmQtPTMKbj1mfWo9Imh0dHBzIn1lbHNlIGo9ZQprPSEwfX19ZWxzZSBqPWUKaWYoayl7
cz1hLmxlbmd0aAppZihkPHMpe2E9Si5oSChhLDAsZCkKcS09MApwLT0wCm8tPTAKbi09MAptLT0wCmwt
PTB9cmV0dXJuIG5ldyBQLmR6KGEscSxwLG8sbixtLGwsail9cmV0dXJuIFAua0MoYSwwLGQscSxwLG8s
bixtLGwsail9LAppNzpmdW5jdGlvbihhKXt2YXIgdD11Lk4KcmV0dXJuIEMuYi5jYyhILm4oYS5zcGxp
dCgiJiIpLHUucyksUC5lOSh0LHQpLG5ldyBQLmVxKEMuZiksdS5mKX0sCms5OmZ1bmN0aW9uKGEsYixj
KXt2YXIgdCxzLHIscSxwLG8sbixtPW51bGwsbD0iSVB2NCBhZGRyZXNzIHNob3VsZCBjb250YWluIGV4
YWN0bHkgNCBwYXJ0cyIsaz0iZWFjaCBwYXJ0IG11c3QgYmUgaW4gdGhlIHJhbmdlIDAuLjI1NSIsaj1u
ZXcgUC5lbihhKSxpPW5ldyBVaW50OEFycmF5KDQpCmZvcih0PWkubGVuZ3RoLHM9YixyPXMscT0wO3M8
YzsrK3Mpe3A9Qy5hLnYoYSxzKQppZihwIT09NDYpe2lmKChwXjQ4KT45KWouJDIoImludmFsaWQgY2hh
cmFjdGVyIixzKX1lbHNle2lmKHE9PT0zKWouJDIobCxzKQpvPVAuZE8oQy5hLm4oYSxyLHMpLG0sbSkK
aWYodHlwZW9mIG8hPT0ibnVtYmVyIilyZXR1cm4gby5hTSgpCmlmKG8+MjU1KWouJDIoayxyKQpuPXEr
MQppZihxPj10KXJldHVybiBILmkoaSxxKQppW3FdPW8Kcj1zKzEKcT1ufX1pZihxIT09MylqLiQyKGws
YykKbz1QLmRPKEMuYS5uKGEscixjKSxtLG0pCmlmKHR5cGVvZiBvIT09Im51bWJlciIpcmV0dXJuIG8u
YU0oKQppZihvPjI1NSlqLiQyKGsscikKaWYocT49dClyZXR1cm4gSC5pKGkscSkKaVtxXT1vCnJldHVy
biBpfSwKaTY6ZnVuY3Rpb24oYSxiLGEwKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnLGYs
ZSxkPW5ldyBQLmVvKGEpLGM9bmV3IFAuZXAoZCxhKQppZihhLmxlbmd0aDwyKWQuJDEoImFkZHJlc3Mg
aXMgdG9vIHNob3J0IikKdD1ILm4oW10sdS50KQpmb3Iocz1iLHI9cyxxPSExLHA9ITE7czxhMDsrK3Mp
e289Qy5hLnYoYSxzKQppZihvPT09NTgpe2lmKHM9PT1iKXsrK3MKaWYoQy5hLnYoYSxzKSE9PTU4KWQu
JDIoImludmFsaWQgc3RhcnQgY29sb24uIixzKQpyPXN9aWYocz09PXIpe2lmKHEpZC4kMigib25seSBv
bmUgd2lsZGNhcmQgYDo6YCBpcyBhbGxvd2VkIixzKQpDLmIuayh0LC0xKQpxPSEwfWVsc2UgQy5iLmso
dCxjLiQyKHIscykpCnI9cysxfWVsc2UgaWYobz09PTQ2KXA9ITB9aWYodC5sZW5ndGg9PT0wKWQuJDEo
InRvbyBmZXcgcGFydHMiKQpuPXI9PT1hMAptPUMuYi5nYWcodCkKaWYobiYmbSE9PS0xKWQuJDIoImV4
cGVjdGVkIGEgcGFydCBhZnRlciBsYXN0IGA6YCIsYTApCmlmKCFuKWlmKCFwKUMuYi5rKHQsYy4kMihy
LGEwKSkKZWxzZXtsPVAuazkoYSxyLGEwKQpDLmIuayh0LChsWzBdPDw4fGxbMV0pPj4+MCkKQy5iLmso
dCwobFsyXTw8OHxsWzNdKT4+PjApfWlmKHEpe2lmKHQubGVuZ3RoPjcpZC4kMSgiYW4gYWRkcmVzcyB3
aXRoIGEgd2lsZGNhcmQgbXVzdCBoYXZlIGxlc3MgdGhhbiA3IHBhcnRzIil9ZWxzZSBpZih0Lmxlbmd0
aCE9PTgpZC4kMSgiYW4gYWRkcmVzcyB3aXRob3V0IGEgd2lsZGNhcmQgbXVzdCBjb250YWluIGV4YWN0
bHkgOCBwYXJ0cyIpCms9bmV3IFVpbnQ4QXJyYXkoMTYpCmZvcihtPXQubGVuZ3RoLGo9ay5sZW5ndGgs
aT05LW0scz0wLGg9MDtzPG07KytzKXtnPXRbc10KaWYoZz09PS0xKWZvcihmPTA7ZjxpOysrZil7aWYo
aDwwfHxoPj1qKXJldHVybiBILmkoayxoKQprW2hdPTAKZT1oKzEKaWYoZT49ailyZXR1cm4gSC5pKGss
ZSkKa1tlXT0wCmgrPTJ9ZWxzZXtlPUMuYy5aKGcsOCkKaWYoaDwwfHxoPj1qKXJldHVybiBILmkoayxo
KQprW2hdPWUKZT1oKzEKaWYoZT49ailyZXR1cm4gSC5pKGssZSkKa1tlXT1nJjI1NQpoKz0yfX1yZXR1
cm4ga30sCmtDOmZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCxpLGope3ZhciB0LHMscixxLHAsbyxuLG09
bnVsbAppZihqPT1udWxsKWlmKGQ+YilqPVAua0woYSxiLGQpCmVsc2V7aWYoZD09PWIpUC5icihhLGIs
IkludmFsaWQgZW1wdHkgc2NoZW1lIikKaj0iIn1pZihlPmIpe3Q9ZCszCnM9dDxlP1Aua00oYSx0LGUt
MSk6IiIKcj1QLmtIKGEsZSxmLCExKQppZih0eXBlb2YgZiE9PSJudW1iZXIiKXJldHVybiBmLkIoKQpx
PWYrMQppZih0eXBlb2YgZyE9PSJudW1iZXIiKXJldHVybiBILmFqKGcpCnA9cTxnP1Aua0ooUC5kTyhK
LmhIKGEscSxnKSxuZXcgUC5mMShhLGYpLG0pLGopOm19ZWxzZXtwPW0Kcj1wCnM9IiJ9bz1QLmtJKGEs
ZyxoLG0saixyIT1udWxsKQppZih0eXBlb2YgaCE9PSJudW1iZXIiKXJldHVybiBoLkQoKQpuPWg8aT9Q
LmtLKGEsaCsxLGksbSk6bQpyZXR1cm4gbmV3IFAuY2soaixzLHIscCxvLG4saTxjP1Aua0coYSxpKzEs
Yyk6bSl9LAppazpmdW5jdGlvbihhKXtpZihhPT09Imh0dHAiKXJldHVybiA4MAppZihhPT09Imh0dHBz
IilyZXR1cm4gNDQzCnJldHVybiAwfSwKYnI6ZnVuY3Rpb24oYSxiLGMpe3Rocm93IEguYShQLkEoYyxh
LGIpKX0sCmtKOmZ1bmN0aW9uKGEsYil7aWYoYSE9bnVsbCYmYT09PVAuaWsoYikpcmV0dXJuIG51bGwK
cmV0dXJuIGF9LAprSDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHIscSxwLG8KaWYoYT09bnVsbCly
ZXR1cm4gbnVsbAppZihiPT09YylyZXR1cm4iIgppZihDLmEudihhLGIpPT09OTEpe2lmKHR5cGVvZiBj
IT09Im51bWJlciIpcmV0dXJuIGMuY3coKQp0PWMtMQppZihDLmEudihhLHQpIT09OTMpUC5icihhLGIs
Ik1pc3NpbmcgZW5kIGBdYCB0byBtYXRjaCBgW2AgaW4gaG9zdCIpCnM9YisxCnI9UC5rRShhLHMsdCkK
aWYodHlwZW9mIHIhPT0ibnVtYmVyIilyZXR1cm4gci5EKCkKaWYocjx0KXtxPXIrMQpwPVAuaXEoYSxD
LmEuUyhhLCIyNSIscSk/ciszOnEsdCwiJTI1Iil9ZWxzZSBwPSIiClAuaTYoYSxzLHIpCnJldHVybiBD
LmEubihhLGIscikudG9Mb3dlckNhc2UoKStwKyJdIn1pZih0eXBlb2YgYyE9PSJudW1iZXIiKXJldHVy
biBILmFqKGMpCm89Ygpmb3IoO288YzsrK28paWYoQy5hLnYoYSxvKT09PTU4KXtyPUMuYS5hZShhLCIl
IixiKQppZighKHI+PWImJnI8Yykpcj1jCmlmKHI8Yyl7cT1yKzEKcD1QLmlxKGEsQy5hLlMoYSwiMjUi
LHEpP3IrMzpxLGMsIiUyNSIpfWVsc2UgcD0iIgpQLmk2KGEsYixyKQpyZXR1cm4iWyIrQy5hLm4oYSxi
LHIpK3ArIl0ifXJldHVybiBQLmtPKGEsYixjKX0sCmtFOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzPUMu
YS5hZShhLCIlIixiKQppZihzPj1iKXtpZih0eXBlb2YgYyE9PSJudW1iZXIiKXJldHVybiBILmFqKGMp
CnQ9czxjfWVsc2UgdD0hMQpyZXR1cm4gdD9zOmN9LAppcTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxz
LHIscSxwLG8sbixtLGwsaz1kIT09IiI/bmV3IFAuSChkKTpudWxsCmlmKHR5cGVvZiBjIT09Im51bWJl
ciIpcmV0dXJuIEguYWooYykKdD1iCnM9dApyPSEwCmZvcig7dDxjOyl7cT1DLmEudihhLHQpCmlmKHE9
PT0zNyl7cD1QLmhlKGEsdCwhMCkKbz1wPT1udWxsCmlmKG8mJnIpe3QrPTMKY29udGludWV9aWYoaz09
bnVsbClrPW5ldyBQLkgoIiIpCm49ay5hKz1DLmEubihhLHMsdCkKaWYobylwPUMuYS5uKGEsdCx0KzMp
CmVsc2UgaWYocD09PSIlIilQLmJyKGEsdCwiWm9uZUlEIHNob3VsZCBub3QgY29udGFpbiAlIGFueW1v
cmUiKQprLmE9bitwCnQrPTMKcz10CnI9ITB9ZWxzZXtpZihxPDEyNyl7bz1xPj4+NAppZihvPj04KXJl
dHVybiBILmkoQy5rLG8pCm89KEMua1tvXSYxPDwocSYxNSkpIT09MH1lbHNlIG89ITEKaWYobyl7aWYo
ciYmNjU8PXEmJjkwPj1xKXtpZihrPT1udWxsKWs9bmV3IFAuSCgiIikKaWYoczx0KXtrLmErPUMuYS5u
KGEscyx0KQpzPXR9cj0hMX0rK3R9ZWxzZXtpZigocSY2NDUxMik9PT01NTI5NiYmdCsxPGMpe209Qy5h
LnYoYSx0KzEpCmlmKChtJjY0NTEyKT09PTU2MzIwKXtxPTY1NTM2fChxJjEwMjMpPDwxMHxtJjEwMjMK
bD0yfWVsc2UgbD0xfWVsc2UgbD0xCmlmKGs9PW51bGwpaz1uZXcgUC5IKCIiKQprLmErPUMuYS5uKGEs
cyx0KQprLmErPVAuaGQocSkKdCs9bApzPXR9fX1pZihrPT1udWxsKXJldHVybiBDLmEubihhLGIsYykK
aWYoczxjKWsuYSs9Qy5hLm4oYSxzLGMpCm89ay5hCnJldHVybiBvLmNoYXJDb2RlQXQoMCk9PTA/bzpv
fSwKa086ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGoKaWYodHlwZW9mIGMh
PT0ibnVtYmVyIilyZXR1cm4gSC5haihjKQp0PWIKcz10CnI9bnVsbApxPSEwCmZvcig7dDxjOyl7cD1D
LmEudihhLHQpCmlmKHA9PT0zNyl7bz1QLmhlKGEsdCwhMCkKbj1vPT1udWxsCmlmKG4mJnEpe3QrPTMK
Y29udGludWV9aWYocj09bnVsbClyPW5ldyBQLkgoIiIpCm09Qy5hLm4oYSxzLHQpCmw9ci5hKz0hcT9t
LnRvTG93ZXJDYXNlKCk6bQppZihuKXtvPUMuYS5uKGEsdCx0KzMpCms9M31lbHNlIGlmKG89PT0iJSIp
e289IiUyNSIKaz0xfWVsc2Ugaz0zCnIuYT1sK28KdCs9awpzPXQKcT0hMH1lbHNle2lmKHA8MTI3KXtu
PXA+Pj40CmlmKG4+PTgpcmV0dXJuIEguaShDLngsbikKbj0oQy54W25dJjE8PChwJjE1KSkhPT0wfWVs
c2Ugbj0hMQppZihuKXtpZihxJiY2NTw9cCYmOTA+PXApe2lmKHI9PW51bGwpcj1uZXcgUC5IKCIiKQpp
ZihzPHQpe3IuYSs9Qy5hLm4oYSxzLHQpCnM9dH1xPSExfSsrdH1lbHNle2lmKHA8PTkzKXtuPXA+Pj40
CmlmKG4+PTgpcmV0dXJuIEguaShDLmgsbikKbj0oQy5oW25dJjE8PChwJjE1KSkhPT0wfWVsc2Ugbj0h
MQppZihuKVAuYnIoYSx0LCJJbnZhbGlkIGNoYXJhY3RlciIpCmVsc2V7aWYoKHAmNjQ1MTIpPT09NTUy
OTYmJnQrMTxjKXtqPUMuYS52KGEsdCsxKQppZigoaiY2NDUxMik9PT01NjMyMCl7cD02NTUzNnwocCYx
MDIzKTw8MTB8aiYxMDIzCms9Mn1lbHNlIGs9MX1lbHNlIGs9MQppZihyPT1udWxsKXI9bmV3IFAuSCgi
IikKbT1DLmEubihhLHMsdCkKci5hKz0hcT9tLnRvTG93ZXJDYXNlKCk6bQpyLmErPVAuaGQocCkKdCs9
awpzPXR9fX19aWYocj09bnVsbClyZXR1cm4gQy5hLm4oYSxiLGMpCmlmKHM8Yyl7bT1DLmEubihhLHMs
YykKci5hKz0hcT9tLnRvTG93ZXJDYXNlKCk6bX1uPXIuYQpyZXR1cm4gbi5jaGFyQ29kZUF0KDApPT0w
P246bn0sCmtMOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscQppZihiPT09YylyZXR1cm4iIgppZigh
UC5pbShKLmEwKGEpLnQoYSxiKSkpUC5icihhLGIsIlNjaGVtZSBub3Qgc3RhcnRpbmcgd2l0aCBhbHBo
YWJldGljIGNoYXJhY3RlciIpCmZvcih0PWIscz0hMTt0PGM7Kyt0KXtyPUMuYS50KGEsdCkKaWYocjwx
Mjgpe3E9cj4+PjQKaWYocT49OClyZXR1cm4gSC5pKEMuaixxKQpxPShDLmpbcV0mMTw8KHImMTUpKSE9
PTB9ZWxzZSBxPSExCmlmKCFxKVAuYnIoYSx0LCJJbGxlZ2FsIHNjaGVtZSBjaGFyYWN0ZXIiKQppZig2
NTw9ciYmcjw9OTApcz0hMH1hPUMuYS5uKGEsYixjKQpyZXR1cm4gUC5rRChzP2EudG9Mb3dlckNhc2Uo
KTphKX0sCmtEOmZ1bmN0aW9uKGEpe2lmKGE9PT0iaHR0cCIpcmV0dXJuImh0dHAiCmlmKGE9PT0iZmls
ZSIpcmV0dXJuImZpbGUiCmlmKGE9PT0iaHR0cHMiKXJldHVybiJodHRwcyIKaWYoYT09PSJwYWNrYWdl
IilyZXR1cm4icGFja2FnZSIKcmV0dXJuIGF9LAprTTpmdW5jdGlvbihhLGIsYyl7aWYoYT09bnVsbCly
ZXR1cm4iIgpyZXR1cm4gUC5jbChhLGIsYyxDLlcsITEpfSwKa0k6ZnVuY3Rpb24oYSxiLGMsZCxlLGYp
e3ZhciB0LHM9ZT09PSJmaWxlIixyPXN8fGYscT1hPT1udWxsCmlmKHEmJiEwKXJldHVybiBzPyIvIjoi
Igp0PSFxP1AuY2woYSxiLGMsQy55LCEwKTpDLlEuYUYoZCxuZXcgUC5mMigpLHUuTikuVCgwLCIvIikK
aWYodC5sZW5ndGg9PT0wKXtpZihzKXJldHVybiIvIn1lbHNlIGlmKHImJiFDLmEuSCh0LCIvIikpdD0i
LyIrdApyZXR1cm4gUC5rTih0LGUsZil9LAprTjpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9Yi5sZW5ndGg9
PT0wCmlmKHQmJiFjJiYhQy5hLkgoYSwiLyIpKXJldHVybiBQLmtQKGEsIXR8fGMpCnJldHVybiBQLmtR
KGEpfSwKa0s6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSE9bnVsbClyZXR1cm4gUC5jbChhLGIsYyxDLmks
ITApCnJldHVybiBudWxsfSwKa0c6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PW51bGwpcmV0dXJuIG51bGwK
cmV0dXJuIFAuY2woYSxiLGMsQy5pLCEwKX0sCmhlOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscSxw
LG89YisyCmlmKG8+PWEubGVuZ3RoKXJldHVybiIlIgp0PUMuYS52KGEsYisxKQpzPUMuYS52KGEsbykK
cj1ILmZ3KHQpCnE9SC5mdyhzKQppZihyPDB8fHE8MClyZXR1cm4iJSIKcD1yKjE2K3EKaWYocDwxMjcp
e289Qy5jLloocCw0KQppZihvPj04KXJldHVybiBILmkoQy5rLG8pCm89KEMua1tvXSYxPDwocCYxNSkp
IT09MH1lbHNlIG89ITEKaWYobylyZXR1cm4gSC5kXyhjJiY2NTw9cCYmOTA+PXA/KHB8MzIpPj4+MDpw
KQppZih0Pj05N3x8cz49OTcpcmV0dXJuIEMuYS5uKGEsYixiKzMpLnRvVXBwZXJDYXNlKCkKcmV0dXJu
IG51bGx9LApoZDpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbj0iMDEyMzQ1Njc4OUFCQ0RFRiIK
aWYoYTwxMjgpe3Q9bmV3IEFycmF5KDMpCnQuZml4ZWQkbGVuZ3RoPUFycmF5CnM9SC5uKHQsdS50KQpD
LmIubChzLDAsMzcpCkMuYi5sKHMsMSxDLmEudChuLGE+Pj40KSkKQy5iLmwocywyLEMuYS50KG4sYSYx
NSkpfWVsc2V7aWYoYT4yMDQ3KWlmKGE+NjU1MzUpe3I9MjQwCnE9NH1lbHNle3I9MjI0CnE9M31lbHNl
e3I9MTkyCnE9Mn10PW5ldyBBcnJheSgzKnEpCnQuZml4ZWQkbGVuZ3RoPUFycmF5CnM9SC5uKHQsdS50
KQpmb3IocD0wOy0tcSxxPj0wO3I9MTI4KXtvPUMuYy5iWChhLDYqcSkmNjN8cgpDLmIubChzLHAsMzcp
CkMuYi5sKHMscCsxLEMuYS50KG4sbz4+PjQpKQpDLmIubChzLHArMixDLmEudChuLG8mMTUpKQpwKz0z
fX1yZXR1cm4gUC5oNihzLDAsbnVsbCl9LApjbDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciB0PVAuaXAo
YSxiLGMsZCxlKQpyZXR1cm4gdD09bnVsbD9DLmEubihhLGIsYyk6dH0sCmlwOmZ1bmN0aW9uKGEsYixj
LGQsZSl7dmFyIHQscyxyLHEscCxvPW51bGwsbj0hZSxtPWIsbD1tLGs9bwp3aGlsZSghMCl7aWYodHlw
ZW9mIG0hPT0ibnVtYmVyIilyZXR1cm4gbS5EKCkKaWYodHlwZW9mIGMhPT0ibnVtYmVyIilyZXR1cm4g
SC5haihjKQppZighKG08YykpYnJlYWsKYyQwOnt0PUMuYS52KGEsbSkKaWYodDwxMjcpe3M9dD4+PjQK
aWYocz49OClyZXR1cm4gSC5pKGQscykKcz0oZFtzXSYxPDwodCYxNSkpIT09MH1lbHNlIHM9ITEKaWYo
cykrK20KZWxzZXtpZih0PT09Mzcpe3I9UC5oZShhLG0sITEpCmlmKHI9PW51bGwpe20rPTMKYnJlYWsg
YyQwfWlmKCIlIj09PXIpe3I9IiUyNSIKcT0xfWVsc2UgcT0zfWVsc2V7aWYobilpZih0PD05Myl7cz10
Pj4+NAppZihzPj04KXJldHVybiBILmkoQy5oLHMpCnM9KEMuaFtzXSYxPDwodCYxNSkpIT09MH1lbHNl
IHM9ITEKZWxzZSBzPSExCmlmKHMpe1AuYnIoYSxtLCJJbnZhbGlkIGNoYXJhY3RlciIpCnE9bwpyPXF9
ZWxzZXtpZigodCY2NDUxMik9PT01NTI5Nil7cz1tKzEKaWYoczxjKXtwPUMuYS52KGEscykKaWYoKHAm
NjQ1MTIpPT09NTYzMjApe3Q9NjU1MzZ8KHQmMTAyMyk8PDEwfHAmMTAyMwpxPTJ9ZWxzZSBxPTF9ZWxz
ZSBxPTF9ZWxzZSBxPTEKcj1QLmhkKHQpfX1pZihrPT1udWxsKWs9bmV3IFAuSCgiIikKay5hKz1DLmEu
bihhLGwsbSkKay5hKz1ILmIocikKaWYodHlwZW9mIHEhPT0ibnVtYmVyIilyZXR1cm4gSC5haihxKQpt
Kz1xCmw9bX19fWlmKGs9PW51bGwpcmV0dXJuIG8KaWYodHlwZW9mIGwhPT0ibnVtYmVyIilyZXR1cm4g
bC5EKCkKaWYobDxjKWsuYSs9Qy5hLm4oYSxsLGMpCm49ay5hCnJldHVybiBuLmNoYXJDb2RlQXQoMCk9
PTA/bjpufSwKaW86ZnVuY3Rpb24oYSl7aWYoQy5hLkgoYSwiLiIpKXJldHVybiEwCnJldHVybiBDLmEu
YmYoYSwiLy4iKSE9PS0xfSwKa1E6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4KaWYoIVAuaW8o
YSkpcmV0dXJuIGEKdD1ILm4oW10sdS5zKQpmb3Iocz1hLnNwbGl0KCIvIikscj1zLmxlbmd0aCxxPSEx
LHA9MDtwPHI7KytwKXtvPXNbcF0KaWYoSi5jcyhvLCIuLiIpKXtuPXQubGVuZ3RoCmlmKG4hPT0wKXtp
ZigwPj1uKXJldHVybiBILmkodCwtMSkKdC5wb3AoKQppZih0Lmxlbmd0aD09PTApQy5iLmsodCwiIil9
cT0hMH1lbHNlIGlmKCIuIj09PW8pcT0hMAplbHNle0MuYi5rKHQsbykKcT0hMX19aWYocSlDLmIuayh0
LCIiKQpyZXR1cm4gQy5iLlQodCwiLyIpfSwKa1A6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8K
aWYoIVAuaW8oYSkpcmV0dXJuIWI/UC5pbChhKTphCnQ9SC5uKFtdLHUucykKZm9yKHM9YS5zcGxpdCgi
LyIpLHI9cy5sZW5ndGgscT0hMSxwPTA7cDxyOysrcCl7bz1zW3BdCmlmKCIuLiI9PT1vKWlmKHQubGVu
Z3RoIT09MCYmQy5iLmdhZyh0KSE9PSIuLiIpe2lmKDA+PXQubGVuZ3RoKXJldHVybiBILmkodCwtMSkK
dC5wb3AoKQpxPSEwfWVsc2V7Qy5iLmsodCwiLi4iKQpxPSExfWVsc2UgaWYoIi4iPT09bylxPSEwCmVs
c2V7Qy5iLmsodCxvKQpxPSExfX1zPXQubGVuZ3RoCmlmKHMhPT0wKWlmKHM9PT0xKXtpZigwPj1zKXJl
dHVybiBILmkodCwwKQpzPXRbMF0ubGVuZ3RoPT09MH1lbHNlIHM9ITEKZWxzZSBzPSEwCmlmKHMpcmV0
dXJuIi4vIgppZihxfHxDLmIuZ2FnKHQpPT09Ii4uIilDLmIuayh0LCIiKQppZighYil7aWYoMD49dC5s
ZW5ndGgpcmV0dXJuIEguaSh0LDApCkMuYi5sKHQsMCxQLmlsKHRbMF0pKX1yZXR1cm4gQy5iLlQodCwi
LyIpfSwKaWw6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9YS5sZW5ndGgKaWYocT49MiYmUC5pbShKLmhE
KGEsMCkpKWZvcih0PTE7dDxxOysrdCl7cz1DLmEudChhLHQpCmlmKHM9PT01OClyZXR1cm4gQy5hLm4o
YSwwLHQpKyIlM0EiK0MuYS5VKGEsdCsxKQppZihzPD0xMjcpe3I9cz4+PjQKaWYocj49OClyZXR1cm4g
SC5pKEMuaixyKQpyPShDLmpbcl0mMTw8KHMmMTUpKT09PTB9ZWxzZSByPSEwCmlmKHIpYnJlYWt9cmV0
dXJuIGF9LAprRjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscgpmb3IodD0wLHM9MDtzPDI7KytzKXtyPUMu
YS50KGEsYitzKQppZig0ODw9ciYmcjw9NTcpdD10KjE2K3ItNDgKZWxzZXtyfD0zMgppZig5Nzw9ciYm
cjw9MTAyKXQ9dCoxNityLTg3CmVsc2UgdGhyb3cgSC5hKFAuYjQoIkludmFsaWQgVVJMIGVuY29kaW5n
IikpfX1yZXR1cm4gdH0sCmhmOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIHQscyxyLHEscD1iCndoaWxl
KCEwKXtpZighKHA8Yykpe3Q9ITAKYnJlYWt9cz1DLmEudChhLHApCmlmKHM8PTEyNylpZihzIT09Mzcp
cj1zPT09NDMKZWxzZSByPSEwCmVsc2Ugcj0hMAppZihyKXt0PSExCmJyZWFrfSsrcH1pZih0KXtpZihD
LmYhPT1kKXI9ITEKZWxzZSByPSEwCmlmKHIpcmV0dXJuIEMuYS5uKGEsYixjKQplbHNlIHE9bmV3IEgu
Y3koQy5hLm4oYSxiLGMpKX1lbHNle3E9SC5uKFtdLHUudCkKZm9yKHI9YS5sZW5ndGgscD1iO3A8Yzsr
K3Ape3M9Qy5hLnQoYSxwKQppZihzPjEyNyl0aHJvdyBILmEoUC5iNCgiSWxsZWdhbCBwZXJjZW50IGVu
Y29kaW5nIGluIFVSSSIpKQppZihzPT09Mzcpe2lmKHArMz5yKXRocm93IEguYShQLmI0KCJUcnVuY2F0
ZWQgVVJJIikpCkMuYi5rKHEsUC5rRihhLHArMSkpCnArPTJ9ZWxzZSBpZihzPT09NDMpQy5iLmsocSwz
MikKZWxzZSBDLmIuayhxLHMpfX11LkwuYihxKQpyZXR1cm4gbmV3IFAuZGUoITEpLmFBKHEpfSwKaW06
ZnVuY3Rpb24oYSl7dmFyIHQ9YXwzMgpyZXR1cm4gOTc8PXQmJnQ8PTEyMn0sCmk0OmZ1bmN0aW9uKGEs
YixjKXt2YXIgdCxzLHIscSxwLG8sbixtLGw9IkludmFsaWQgTUlNRSB0eXBlIixrPUgubihbYi0xXSx1
LnQpCmZvcih0PWEubGVuZ3RoLHM9YixyPS0xLHE9bnVsbDtzPHQ7KytzKXtxPUMuYS50KGEscykKaWYo
cT09PTQ0fHxxPT09NTkpYnJlYWsKaWYocT09PTQ3KXtpZihyPDApe3I9cwpjb250aW51ZX10aHJvdyBI
LmEoUC5BKGwsYSxzKSl9fWlmKHI8MCYmcz5iKXRocm93IEguYShQLkEobCxhLHMpKQpmb3IoO3EhPT00
NDspe0MuYi5rKGsscyk7KytzCmZvcihwPS0xO3M8dDsrK3Mpe3E9Qy5hLnQoYSxzKQppZihxPT09NjEp
e2lmKHA8MClwPXN9ZWxzZSBpZihxPT09NTl8fHE9PT00NClicmVha31pZihwPj0wKUMuYi5rKGsscCkK
ZWxzZXtvPUMuYi5nYWcoaykKaWYocSE9PTQ0fHxzIT09bys3fHwhQy5hLlMoYSwiYmFzZTY0IixvKzEp
KXRocm93IEguYShQLkEoIkV4cGVjdGluZyAnPSciLGEscykpCmJyZWFrfX1DLmIuayhrLHMpCm49cysx
CmlmKChrLmxlbmd0aCYxKT09PTEpYT1DLkQuY2soYSxuLHQpCmVsc2V7bT1QLmlwKGEsbix0LEMuaSwh
MCkKaWYobSE9bnVsbClhPUMuYS5hMChhLG4sdCxtKX1yZXR1cm4gbmV3IFAuZW0oYSxrLGMpfSwKa1c6
ZnVuY3Rpb24oKXt2YXIgdD0iMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXotLl9+ISQmJygpKissOz0iLHM9Ii4iLHI9IjoiLHE9Ii8iLHA9Ij8i
LG89IiMiLG49dS5nYyxtPVAuak4oMjIsbmV3IFAuZmEoKSxuKSxsPW5ldyBQLmY5KG0pLGs9bmV3IFAu
ZmIoKSxqPW5ldyBQLmZjKCksaT1uLmIobC4kMigwLDIyNSkpCmsuJDMoaSx0LDEpCmsuJDMoaSxzLDE0
KQprLiQzKGksciwzNCkKay4kMyhpLHEsMykKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5i
KGwuJDIoMTQsMjI1KSkKay4kMyhpLHQsMSkKay4kMyhpLHMsMTUpCmsuJDMoaSxyLDM0KQprLiQzKGks
cSwyMzQpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDE1LDIyNSkpCmsuJDMo
aSx0LDEpCmsuJDMoaSwiJSIsMjI1KQprLiQzKGksciwzNCkKay4kMyhpLHEsOSkKay4kMyhpLHAsMTcy
KQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMSwyMjUpKQprLiQzKGksdCwxKQprLiQzKGksciwzNCkK
ay4kMyhpLHEsMTApCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDIsMjM1KSkK
ay4kMyhpLHQsMTM5KQprLiQzKGkscSwxMzEpCmsuJDMoaSxzLDE0NikKay4kMyhpLHAsMTcyKQprLiQz
KGksbywyMDUpCmk9bi5iKGwuJDIoMywyMzUpKQprLiQzKGksdCwxMSkKay4kMyhpLHEsNjgpCmsuJDMo
aSxzLDE4KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMig0LDIyOSkpCmsuJDMo
aSx0LDUpCmouJDMoaSwiQVoiLDIyOSkKay4kMyhpLHIsMTAyKQprLiQzKGksIkAiLDY4KQprLiQzKGks
IlsiLDIzMikKay4kMyhpLHEsMTM4KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4k
Mig1LDIyOSkpCmsuJDMoaSx0LDUpCmouJDMoaSwiQVoiLDIyOSkKay4kMyhpLHIsMTAyKQprLiQzKGks
IkAiLDY4KQprLiQzKGkscSwxMzgpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQy
KDYsMjMxKSkKai4kMyhpLCIxOSIsNykKay4kMyhpLCJAIiw2OCkKay4kMyhpLHEsMTM4KQprLiQzKGks
cCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMig3LDIzMSkpCmouJDMoaSwiMDkiLDcpCmsuJDMo
aSwiQCIsNjgpCmsuJDMoaSxxLDEzOCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmsuJDMobi5i
KGwuJDIoOCw4KSksIl0iLDUpCmk9bi5iKGwuJDIoOSwyMzUpKQprLiQzKGksdCwxMSkKay4kMyhpLHMs
MTYpCmsuJDMoaSxxLDIzNCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMTYs
MjM1KSkKay4kMyhpLHQsMTEpCmsuJDMoaSxzLDE3KQprLiQzKGkscSwyMzQpCmsuJDMoaSxwLDE3MikK
ay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDE3LDIzNSkpCmsuJDMoaSx0LDExKQprLiQzKGkscSw5KQpr
LiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMigxMCwyMzUpKQprLiQzKGksdCwxMSkK
ay4kMyhpLHMsMTgpCmsuJDMoaSxxLDIzNCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5i
KGwuJDIoMTgsMjM1KSkKay4kMyhpLHQsMTEpCmsuJDMoaSxzLDE5KQprLiQzKGkscSwyMzQpCmsuJDMo
aSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDE5LDIzNSkpCmsuJDMoaSx0LDExKQprLiQz
KGkscSwyMzQpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDExLDIzNSkpCmsu
JDMoaSx0LDExKQprLiQzKGkscSwxMCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwu
JDIoMTIsMjM2KSkKay4kMyhpLHQsMTIpCmsuJDMoaSxwLDEyKQprLiQzKGksbywyMDUpCmk9bi5iKGwu
JDIoMTMsMjM3KSkKay4kMyhpLHQsMTMpCmsuJDMoaSxwLDEzKQpqLiQzKG4uYihsLiQyKDIwLDI0NSkp
LCJheiIsMjEpCmw9bi5iKGwuJDIoMjEsMjQ1KSkKai4kMyhsLCJheiIsMjEpCmouJDMobCwiMDkiLDIx
KQprLiQzKGwsIistLiIsMjEpCnJldHVybiBtfSwKaUM6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdCxz
LHIscSxwLG89JC5qaCgpCmZvcih0PUouYTAoYSkscz1iO3M8YzsrK3Mpe2lmKGQ8MHx8ZD49by5sZW5n
dGgpcmV0dXJuIEguaShvLGQpCnI9b1tkXQpxPXQudChhLHMpXjk2CmlmKHE+OTUpcT0zMQppZihxPj1y
Lmxlbmd0aClyZXR1cm4gSC5pKHIscSkKcD1yW3FdCmQ9cCYzMQpDLmIubChlLHA+Pj41LHMpfXJldHVy
biBkfSwKZWI6ZnVuY3Rpb24gZWIoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCno6ZnVuY3Rpb24geigp
e30sCmI3OmZ1bmN0aW9uIGI3KGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApUOmZ1bmN0aW9uIFQoKXt9
LApiODpmdW5jdGlvbiBiOChhKXt0aGlzLmE9YX0sCmRYOmZ1bmN0aW9uIGRYKCl7fSwKZFk6ZnVuY3Rp
b24gZFkoKXt9LApyOmZ1bmN0aW9uIHIoKXt9LApidzpmdW5jdGlvbiBidyhhKXt0aGlzLmE9YX0sCmJk
OmZ1bmN0aW9uIGJkKCl7fSwKYTE6ZnVuY3Rpb24gYTEoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpf
LmI9YgpfLmM9YwpfLmQ9ZH0sCmFVOmZ1bmN0aW9uIGFVKGEsYixjLGQsZSxmKXt2YXIgXz10aGlzCl8u
ZT1hCl8uZj1iCl8uYT1jCl8uYj1kCl8uYz1lCl8uZD1mfSwKY0c6ZnVuY3Rpb24gY0coYSxiLGMsZCxl
KXt2YXIgXz10aGlzCl8uZj1hCl8uYT1iCl8uYj1jCl8uYz1kCl8uZD1lfSwKY1U6ZnVuY3Rpb24gY1Uo
YSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9ZH0sCmRiOmZ1bmN0aW9uIGRi
KGEpe3RoaXMuYT1hfSwKZDk6ZnVuY3Rpb24gZDkoYSl7dGhpcy5hPWF9LApiaDpmdW5jdGlvbiBiaChh
KXt0aGlzLmE9YX0sCmN6OmZ1bmN0aW9uIGN6KGEpe3RoaXMuYT1hfSwKY1c6ZnVuY3Rpb24gY1coKXt9
LApiWDpmdW5jdGlvbiBiWCgpe30sCmNCOmZ1bmN0aW9uIGNCKGEpe3RoaXMuYT1hfSwKZUE6ZnVuY3Rp
b24gZUEoYSl7dGhpcy5hPWF9LAplXzpmdW5jdGlvbiBlXyhhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIK
dGhpcy5jPWN9LAphYjpmdW5jdGlvbiBhYigpe30sCmY6ZnVuY3Rpb24gZigpe30sCmo6ZnVuY3Rpb24g
aigpe30sClI6ZnVuY3Rpb24gUigpe30sCm06ZnVuY3Rpb24gbSgpe30sCnk6ZnVuY3Rpb24geSgpe30s
CnA6ZnVuY3Rpb24gcCgpe30sClU6ZnVuY3Rpb24gVSgpe30sCnQ6ZnVuY3Rpb24gdCgpe30sCk06ZnVu
Y3Rpb24gTSgpe30sCmFnOmZ1bmN0aW9uIGFnKCl7fSwKYzpmdW5jdGlvbiBjKCl7fSwKSDpmdW5jdGlv
biBIKGEpe3RoaXMuYT1hfSwKYTY6ZnVuY3Rpb24gYTYoKXt9LAplcTpmdW5jdGlvbiBlcShhKXt0aGlz
LmE9YX0sCmVuOmZ1bmN0aW9uIGVuKGEpe3RoaXMuYT1hfSwKZW86ZnVuY3Rpb24gZW8oYSl7dGhpcy5h
PWF9LAplcDpmdW5jdGlvbiBlcChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKY2s6ZnVuY3Rpb24gY2so
YSxiLGMsZCxlLGYsZyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9ZApfLmU9ZQpfLmY9
ZgpfLnI9ZwpfLlE9Xy56PV8ueT1udWxsfSwKZjE6ZnVuY3Rpb24gZjEoYSxiKXt0aGlzLmE9YQp0aGlz
LmI9Yn0sCmYyOmZ1bmN0aW9uIGYyKCl7fSwKZW06ZnVuY3Rpb24gZW0oYSxiLGMpe3RoaXMuYT1hCnRo
aXMuYj1iCnRoaXMuYz1jfSwKZmE6ZnVuY3Rpb24gZmEoKXt9LApmOTpmdW5jdGlvbiBmOShhKXt0aGlz
LmE9YX0sCmZiOmZ1bmN0aW9uIGZiKCl7fSwKZmM6ZnVuY3Rpb24gZmMoKXt9LApkejpmdW5jdGlvbiBk
eihhLGIsYyxkLGUsZixnLGgpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5kPWQKXy5lPWUK
Xy5mPWYKXy5yPWcKXy54PWgKXy55PW51bGx9LApkbTpmdW5jdGlvbiBkbShhLGIsYyxkLGUsZixnKXt2
YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8uZD1kCl8uZT1lCl8uZj1mCl8ucj1nCl8uUT1fLno9
Xy55PW51bGx9LAplVjpmdW5jdGlvbiBlVigpe30sCmVYOmZ1bmN0aW9uIGVYKGEsYil7dGhpcy5hPWEK
dGhpcy5iPWJ9LAplWTpmdW5jdGlvbiBlWShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKZVc6ZnVuY3Rp
b24gZVcoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCmNBOmZ1bmN0aW9uIGNBKCl7fSwKZFQ6ZnVuY3Rp
b24gZFQoYSl7dGhpcy5hPWF9LApiSzpmdW5jdGlvbiBiSygpe30sCmtUOmZ1bmN0aW9uKGEsYixjLGQp
e3ZhciB0LHMscgpILmhnKGIpCnUuai5iKGQpCmlmKEguZEsoYikpe3Q9W2NdCkMuYi5JKHQsZCkKZD10
fXM9dS56CnI9UC5oMihKLmpwKGQsUC5seSgpLHMpLCEwLHMpCnUuWi5iKGEpCnJldHVybiBQLmhpKEgu
alMoYSxyLG51bGwpKX0sCmhqOmZ1bmN0aW9uKGEsYixjKXt2YXIgdAp0cnl7aWYoT2JqZWN0LmlzRXh0
ZW5zaWJsZShhKSYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGIpKXtPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoYSxiLHt2YWx1ZTpjfSkKcmV0dXJuITB9fWNhdGNoKHQpe0guUSh0KX1y
ZXR1cm4hMX0sCml2OmZ1bmN0aW9uKGEsYil7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0
eS5jYWxsKGEsYikpcmV0dXJuIGFbYl0KcmV0dXJuIG51bGx9LApoaTpmdW5jdGlvbihhKXtpZihhPT1u
dWxsfHx0eXBlb2YgYT09InN0cmluZyJ8fHR5cGVvZiBhPT0ibnVtYmVyInx8SC5mZChhKSlyZXR1cm4g
YQppZihhIGluc3RhbmNlb2YgUC5ZKXJldHVybiBhLmEKaWYoSC5pTShhKSlyZXR1cm4gYQppZih1Lmku
YyhhKSlyZXR1cm4gYQppZihhIGluc3RhbmNlb2YgUC5iNylyZXR1cm4gSC5hVChhKQppZih1LlouYyhh
KSlyZXR1cm4gUC5pdShhLCIkZGFydF9qc0Z1bmN0aW9uIixuZXcgUC5mNygpKQpyZXR1cm4gUC5pdShh
LCJfJGRhcnRfanNPYmplY3QiLG5ldyBQLmY4KCQuaEMoKSkpfSwKaXU6ZnVuY3Rpb24oYSxiLGMpe3Zh
ciB0PVAuaXYoYSxiKQppZih0PT1udWxsKXt0PWMuJDEoYSkKUC5oaihhLGIsdCl9cmV0dXJuIHR9LApo
aDpmdW5jdGlvbihhKXt2YXIgdCxzCmlmKGE9PW51bGx8fHR5cGVvZiBhPT0ic3RyaW5nInx8dHlwZW9m
IGE9PSJudW1iZXIifHx0eXBlb2YgYT09ImJvb2xlYW4iKXJldHVybiBhCmVsc2UgaWYoYSBpbnN0YW5j
ZW9mIE9iamVjdCYmSC5pTShhKSlyZXR1cm4gYQplbHNlIGlmKGEgaW5zdGFuY2VvZiBPYmplY3QmJnUu
aS5jKGEpKXJldHVybiBhCmVsc2UgaWYoYSBpbnN0YW5jZW9mIERhdGUpe3Q9SC54KGEuZ2V0VGltZSgp
KQppZihNYXRoLmFicyh0KTw9ODY0ZTEzKXM9ITEKZWxzZSBzPSEwCmlmKHMpSC5hayhQLmI0KCJEYXRl
VGltZSBpcyBvdXRzaWRlIHZhbGlkIHJhbmdlOiAiK3QpKQpyZXR1cm4gbmV3IFAuYjcodCwhMSl9ZWxz
ZSBpZihhLmNvbnN0cnVjdG9yPT09JC5oQygpKXJldHVybiBhLm8KZWxzZSByZXR1cm4gUC5pRihhKX0s
CmlGOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXJldHVybiBQLmhrKGEsJC5mVigp
LG5ldyBQLmZnKCkpCmlmKGEgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4gUC5oayhhLCQuaEIoKSxuZXcg
UC5maCgpKQpyZXR1cm4gUC5oayhhLCQuaEIoKSxuZXcgUC5maSgpKX0sCmhrOmZ1bmN0aW9uKGEsYixj
KXt2YXIgdD1QLml2KGEsYikKaWYodD09bnVsbHx8IShhIGluc3RhbmNlb2YgT2JqZWN0KSl7dD1jLiQx
KGEpClAuaGooYSxiLHQpfXJldHVybiB0fSwKZjc6ZnVuY3Rpb24gZjcoKXt9LApmODpmdW5jdGlvbiBm
OChhKXt0aGlzLmE9YX0sCmZnOmZ1bmN0aW9uIGZnKCl7fSwKZmg6ZnVuY3Rpb24gZmgoKXt9LApmaTpm
dW5jdGlvbiBmaSgpe30sClk6ZnVuY3Rpb24gWShhKXt0aGlzLmE9YX0sCmJiOmZ1bmN0aW9uIGJiKGEp
e3RoaXMuYT1hfSwKYU86ZnVuY3Rpb24gYU8oYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1ifSwKYzU6ZnVu
Y3Rpb24gYzUoKXt9LApiZzpmdW5jdGlvbiBiZygpe30sCmN2OmZ1bmN0aW9uIGN2KGEpe3RoaXMuYT1h
fSwKZTpmdW5jdGlvbiBlKCl7fSwKYWg6ZnVuY3Rpb24gYWgoKXt9fSxXPXsKakY6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0PWRvY3VtZW50LmJvZHkscz0odCYmQy5wKS5LKHQsYSxiLGMpCnMudG9TdHJpbmcKdD11
LmFjCnQ9bmV3IEguYVkobmV3IFcuTyhzKSx0LmgoInoobC5FKSIpLmIobmV3IFcuZFooKSksdC5oKCJh
WTxsLkU+IikpCnJldHVybiB1LmguYih0LmdZKHQpKX0sCmJEOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj0i
ZWxlbWVudCB0YWcgdW5hdmFpbGFibGUiCnRyeXt0PUouRShhKQppZih0eXBlb2YgdC5nYm0oYSk9PSJz
dHJpbmciKXI9dC5nYm0oYSl9Y2F0Y2gocyl7SC5RKHMpfXJldHVybiByfSwKZTI6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0LHMscixxPW5ldyBQLlMoJC53LHUuYW8pLHA9bmV3IFAuYzAocSx1LkUpLG89bmV3IFhN
TEh0dHBSZXF1ZXN0KCkKQy5PLmNsKG8sYj09bnVsbD8iR0VUIjpiLGEsITApCmMuQSgwLG5ldyBXLmUz
KG8pKQp0PXUuYW4Kcz10LmIobmV3IFcuZTQobyxwKSkKdS5NLmIobnVsbCkKcj11LnAKVy5hQyhvLCJs
b2FkIixzLCExLHIpClcuYUMobywiZXJyb3IiLHQuYihwLmdjNSgpKSwhMSxyKQpvLnNlbmQoKQpyZXR1
cm4gcX0sCmVQOmZ1bmN0aW9uKGEsYil7YT01MzY4NzA5MTEmYStiCmE9NTM2ODcwOTExJmErKCg1MjQy
ODcmYSk8PDEwKQpyZXR1cm4gYV5hPj4+Nn0sCmliOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0PVcuZVAo
Vy5lUChXLmVQKFcuZVAoMCxhKSxiKSxjKSxkKSxzPTUzNjg3MDkxMSZ0KygoNjcxMDg4NjMmdCk8PDMp
CnNePXM+Pj4xMQpyZXR1cm4gNTM2ODcwOTExJnMrKCgxNjM4MyZzKTw8MTUpfSwKYUM6ZnVuY3Rpb24o
YSxiLGMsZCxlKXt2YXIgdD1XLmxlKG5ldyBXLmV6KGMpLHUuQSkKaWYodCE9bnVsbCYmITApSi5qbChh
LGIsdCwhMSkKcmV0dXJuIG5ldyBXLmRxKGEsYix0LCExLGUuaCgiZHE8MD4iKSl9LAppYTpmdW5jdGlv
bihhKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikscz1uZXcgVy5keSh0LHdpbmRvdy5s
b2NhdGlvbikKcz1uZXcgVy5iXyhzKQpzLmJEKGEpCnJldHVybiBzfSwKa2w6ZnVuY3Rpb24oYSxiLGMs
ZCl7dS5oLmIoYSkKSC5vKGIpCkgubyhjKQp1Lk8uYihkKQpyZXR1cm4hMH0sCmttOmZ1bmN0aW9uKGEs
YixjLGQpe3ZhciB0LHMscgp1LmguYihhKQpILm8oYikKSC5vKGMpCnQ9dS5PLmIoZCkuYQpzPXQuYQpz
LmhyZWY9YwpyPXMuaG9zdG5hbWUKdD10LmIKaWYoIShyPT10Lmhvc3RuYW1lJiZzLnBvcnQ9PXQucG9y
dCYmcy5wcm90b2NvbD09dC5wcm90b2NvbCkpaWYocj09PSIiKWlmKHMucG9ydD09PSIiKXt0PXMucHJv
dG9jb2wKdD10PT09IjoifHx0PT09IiJ9ZWxzZSB0PSExCmVsc2UgdD0hMQplbHNlIHQ9ITAKcmV0dXJu
IHR9LAppZTpmdW5jdGlvbigpe3ZhciB0PXUuTixzPVAuaFQoQy56LHQpLHI9dS5kRy5iKG5ldyBXLmVa
KCkpLHE9SC5uKFsiVEVNUExBVEUiXSx1LnMpCnQ9bmV3IFcuZEIocyxQLmJNKHQpLFAuYk0odCksUC5i
TSh0KSxudWxsKQp0LmJFKG51bGwsbmV3IEguYTQoQy56LHIsdS5kdikscSxudWxsKQpyZXR1cm4gdH0s
CmlzOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuIG51bGwKaWYoInBvc3RNZXNzYWdl
IiBpbiBhKXt0PVcua2soYSkKcmV0dXJuIHR9ZWxzZSByZXR1cm4gdS5hUy5iKGEpfSwKa2s6ZnVuY3Rp
b24oYSl7aWYoYT09PXdpbmRvdylyZXR1cm4gdS5jaS5iKGEpCmVsc2UgcmV0dXJuIG5ldyBXLmRsKCl9
LApsZTpmdW5jdGlvbihhLGIpe3ZhciB0PSQudwppZih0PT09Qy5kKXJldHVybiBhCnJldHVybiB0LmMy
KGEsYil9LApoOmZ1bmN0aW9uIGgoKXt9LApiMzpmdW5jdGlvbiBiMygpe30sCmN1OmZ1bmN0aW9uIGN1
KCl7fSwKYjU6ZnVuY3Rpb24gYjUoKXt9LAphRzpmdW5jdGlvbiBhRygpe30sCmFIOmZ1bmN0aW9uIGFI
KCl7fSwKYWE6ZnVuY3Rpb24gYWEoKXt9LApiQTpmdW5jdGlvbiBiQSgpe30sCmRVOmZ1bmN0aW9uIGRV
KCl7fSwKYUw6ZnVuY3Rpb24gYUwoKXt9LApkVjpmdW5jdGlvbiBkVigpe30sCmJCOmZ1bmN0aW9uIGJC
KCl7fSwKZFc6ZnVuY3Rpb24gZFcoKXt9LAphcTpmdW5jdGlvbiBhcShhLGIpe3RoaXMuYT1hCnRoaXMu
JHRpPWJ9LAp1OmZ1bmN0aW9uIHUoKXt9LApkWjpmdW5jdGlvbiBkWigpe30sCmQ6ZnVuY3Rpb24gZCgp
e30sCnE6ZnVuY3Rpb24gcSgpe30sCmI5OmZ1bmN0aW9uIGI5KCl7fSwKY0Y6ZnVuY3Rpb24gY0YoKXt9
LAplMTpmdW5jdGlvbiBlMSgpe30sCmJGOmZ1bmN0aW9uIGJGKCl7fSwKYTM6ZnVuY3Rpb24gYTMoKXt9
LAplMzpmdW5jdGlvbiBlMyhhKXt0aGlzLmE9YX0sCmU0OmZ1bmN0aW9uIGU0KGEsYil7dGhpcy5hPWEK
dGhpcy5iPWJ9LApiRzpmdW5jdGlvbiBiRygpe30sCmJIOmZ1bmN0aW9uIGJIKCl7fSwKYk86ZnVuY3Rp
b24gYk8oKXt9LApLOmZ1bmN0aW9uIEsoKXt9LApPOmZ1bmN0aW9uIE8oYSl7dGhpcy5hPWF9LAprOmZ1
bmN0aW9uIGsoKXt9LApiVDpmdW5jdGlvbiBiVCgpe30sCmJlOmZ1bmN0aW9uIGJlKCl7fSwKYTU6ZnVu
Y3Rpb24gYTUoKXt9LApkMTpmdW5jdGlvbiBkMSgpe30sCmJaOmZ1bmN0aW9uIGJaKCl7fSwKZDY6ZnVu
Y3Rpb24gZDYoKXt9LApkNzpmdW5jdGlvbiBkNygpe30sCmJqOmZ1bmN0aW9uIGJqKCl7fSwKYTc6ZnVu
Y3Rpb24gYTcoKXt9LAphQTpmdW5jdGlvbiBhQSgpe30sCmFpOmZ1bmN0aW9uIGFpKCl7fSwKYm06ZnVu
Y3Rpb24gYm0oKXt9LApjMzpmdW5jdGlvbiBjMygpe30sCmM4OmZ1bmN0aW9uIGM4KCl7fSwKZGk6ZnVu
Y3Rpb24gZGkoKXt9LAphcDpmdW5jdGlvbiBhcChhKXt0aGlzLmE9YX0sCmFCOmZ1bmN0aW9uIGFCKGEp
e3RoaXMuYT1hfSwKZXc6ZnVuY3Rpb24gZXcoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCmV4OmZ1bmN0
aW9uIGV4KGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApkbjpmdW5jdGlvbiBkbihhKXt0aGlzLmE9YX0s
CmhfOmZ1bmN0aW9uIGhfKGEsYil7dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCmM0OmZ1bmN0aW9uIGM0KGEs
YixjLGQpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy4kdGk9ZH0sCmJuOmZ1bmN0aW9uIGJu
KGEsYixjLGQpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy4kdGk9ZH0sCmRxOmZ1bmN0aW9u
IGRxKGEsYixjLGQsZSl7dmFyIF89dGhpcwpfLmI9YQpfLmM9YgpfLmQ9YwpfLmU9ZApfLiR0aT1lfSwK
ZXo6ZnVuY3Rpb24gZXooYSl7dGhpcy5hPWF9LApiXzpmdW5jdGlvbiBiXyhhKXt0aGlzLmE9YX0sCmFj
OmZ1bmN0aW9uIGFjKCl7fSwKYlU6ZnVuY3Rpb24gYlUoYSl7dGhpcy5hPWF9LAplZDpmdW5jdGlvbiBl
ZChhKXt0aGlzLmE9YX0sCmVjOmZ1bmN0aW9uIGVjKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlz
LmM9Y30sCmNmOmZ1bmN0aW9uIGNmKCl7fSwKZVQ6ZnVuY3Rpb24gZVQoKXt9LAplVTpmdW5jdGlvbiBl
VSgpe30sCmRCOmZ1bmN0aW9uIGRCKGEsYixjLGQsZSl7dmFyIF89dGhpcwpfLmU9YQpfLmE9YgpfLmI9
YwpfLmM9ZApfLmQ9ZX0sCmVaOmZ1bmN0aW9uIGVaKCl7fSwKZEE6ZnVuY3Rpb24gZEEoKXt9LAphTjpm
dW5jdGlvbiBhTihhLGIsYyl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9LTEKXy5kPW51bGwKXy4k
dGk9Y30sCmRsOmZ1bmN0aW9uIGRsKCl7fSwKRzpmdW5jdGlvbiBHKCl7fSwKZHk6ZnVuY3Rpb24gZHko
YSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCmNtOmZ1bmN0aW9uIGNtKGEpe3RoaXMuYT1hfSwKZjU6ZnVu
Y3Rpb24gZjUoYSl7dGhpcy5hPWF9LApkazpmdW5jdGlvbiBkaygpe30sCmR2OmZ1bmN0aW9uIGR2KCl7
fSwKZHc6ZnVuY3Rpb24gZHcoKXt9LApkSDpmdW5jdGlvbiBkSCgpe30sCmRJOmZ1bmN0aW9uIGRJKCl7
fX0sTD17CmZyOmZ1bmN0aW9uKGEpe3ZhciB0PVAuaTUoYSkuZ2FKKCkuaigwLCJvZmZzZXQiKQpyZXR1
cm4gdD09bnVsbD9udWxsOkguaDQodCxudWxsKX0sCmZxOmZ1bmN0aW9uKGEpe3ZhciB0PVAuaTUoYSku
Z2FKKCkuaigwLCJsaW5lIikKcmV0dXJuIHQ9PW51bGw/bnVsbDpILmg0KHQsbnVsbCl9LAppRzpmdW5j
dGlvbihhKXtpZigwPj1hLmxlbmd0aClyZXR1cm4gSC5pKGEsMCkKaWYoYVswXSE9PSIvIilyZXR1cm4g
Si5kUihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucm9vdCIpLnRleHRDb250ZW50KSsiLyIrSC5iKGEp
CmVsc2UgcmV0dXJuIGF9LApsRTpmdW5jdGlvbihhKXt2YXIgdD1KLmpqKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoIi5yb290IikudGV4dENvbnRlbnQsIi8iKQppZihKLmEwKGEpLkgoYSx0KSlyZXR1cm4gQy5h
LlUoYSx0Lmxlbmd0aCkKZWxzZSByZXR1cm4gYX0sCmxIOmZ1bmN0aW9uKGEyKXt2YXIgdCxzLHIscSxw
LG8sbixtLGwsayxqLGksaCxnLGYsZSxkLGMsYj0iZGlzYWJsZWQiLGE9ImxpbmUiLGEwPWRvY3VtZW50
LGExPWEwLnF1ZXJ5U2VsZWN0b3IoIi5lZGl0LWxpc3QgLnBhbmVsLWNvbnRlbnQiKQpKLmRRKGExLCIi
KQp0PWEwLmNyZWF0ZUVsZW1lbnQoInAiKQpzPWExLmFwcGVuZENoaWxkKHQpCnQ9YTAuY3JlYXRlRWxl
bWVudCgic3Ryb25nIikKcj1zLmFwcGVuZENoaWxkKHQpCnQ9Si5hXyhhMikKcT1ILngodC5qKGEyLCJl
ZGl0Q291bnQiKSkKci5hcHBlbmRDaGlsZChhMC5jcmVhdGVUZXh0Tm9kZShKLmIyKHEpKSkKaWYocT09
PTEpcy5hcHBlbmRDaGlsZChhMC5jcmVhdGVUZXh0Tm9kZSgiIGVkaXQgd2FzIG1hZGUgdG8gdGhpcyBm
aWxlLiBDbGljayB0aGUgZWRpdCdzIGNoZWNrYm94IHRvIHRvZ2dsZSBpdHMgcmV2aWV3ZWQgc3RhdGUu
IikpCmVsc2Ugcy5hcHBlbmRDaGlsZChhMC5jcmVhdGVUZXh0Tm9kZSgiIGVkaXRzIHdlcmUgbWFkZSB0
byB0aGlzIGZpbGUuIENsaWNrIGFuIGVkaXQncyBjaGVja2JveCB0byB0b2dnbGUgaXRzIHJldmlld2Vk
IHN0YXRlLiIpKQpmb3IodD1KLmE5KHUuUi5iKHQuaihhMiwiZWRpdHMiKSkpLHA9dS5hLG89dS5DLG49
by5oKCJ+KDEpIiksbT11Lk0sbz1vLmQsbD11Lmgsaz11LmdCO3QucCgpOyl7aj10Lmd1KCkKaT1hMC5j
cmVhdGVFbGVtZW50KCJwIikKaD1rLmIoYTEuYXBwZW5kQ2hpbGQoaSkpCmguY2xhc3NMaXN0LmFkZCgi
ZWRpdCIpCmk9YTAuY3JlYXRlRWxlbWVudCgiaW5wdXQiKQpnPWwuYihoLmFwcGVuZENoaWxkKGkpKQpn
LnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94IikKZy5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiQ2xp
Y2sgdG8gbWFyayByZXZpZXdlZCIpCmcuc2V0QXR0cmlidXRlKGIsYikKaT1KLmFfKGopCmguYXBwZW5k
Q2hpbGQoYTAuY3JlYXRlVGV4dE5vZGUoImxpbmUgIitILmIoaS5qKGosYSkpKyI6ICIrSC5iKGkuaihq
LCJleHBsYW5hdGlvbiIpKSsiLiIpKQpmPWEwLmNyZWF0ZUVsZW1lbnQoImEiKQplPXAuYihoLmFwcGVu
ZENoaWxkKGYpKQplLmNsYXNzTGlzdC5hZGQoImVkaXQtbGluayIpCmQ9SC54KGkuaihqLCJvZmZzZXQi
KSkKZj1ILmIoZCkKZS5zZXRBdHRyaWJ1dGUoImRhdGEtIituZXcgVy5hQihuZXcgVy5hcChlKSkuVigi
b2Zmc2V0IiksZikKYz1ILngoaS5qKGosYSkpCmk9SC5iKGMpCmUuc2V0QXR0cmlidXRlKCJkYXRhLSIr
bmV3IFcuYUIobmV3IFcuYXAoZSkpLlYoYSksaSkKZS5hcHBlbmRDaGlsZChhMC5jcmVhdGVUZXh0Tm9k
ZSgiW3ZpZXddIikpCmk9bi5iKG5ldyBMLmZVKGQsYyxlKSkKbS5iKG51bGwpClcuYUMoZSwiY2xpY2si
LGksITEsbyl9fSwKal86ZnVuY3Rpb24oYSl7dmFyIHQ9Ii5yZWdpb25zIixzPWRvY3VtZW50LHI9cy5x
dWVyeVNlbGVjdG9yKHQpLHE9cy5xdWVyeVNlbGVjdG9yKCIuY29kZSIpCnM9Si5hXyhhKQpKLmhHKHIs
SC5vKHMuaihhLCJyZWdpb25zIikpLCQuaHooKSkKSi5oRyhxLEgubyhzLmooYSwibmF2Q29udGVudCIp
KSwkLmh6KCkpCkwubEgocy5qKGEsImVkaXRMaXN0IikpCkwubHEoKQpMLmhvKCIuY29kZSIpCkwuaG8o
dCl9LApoeDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHI9TC5mcih3aW5kb3cubG9jYXRpb24uaHJl
ZikscT1MLmZxKHdpbmRvdy5sb2NhdGlvbi5ocmVmKQppZihyIT1udWxsKXt0PWRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvIitILmIocikpCmlmKHQhPW51bGwpSi5hbCh0KS5NKDAsInRhcmdldCIpfWlmKHEh
PW51bGwpe3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmxpbmUtIitILmIocSkpCmlmKHMhPW51bGwp
Si5hbChzLnBhcmVudEVsZW1lbnQpLk0oMCwiaGlnaGxpZ2h0Iil9aWYoYT09d2luZG93LmxvY2F0aW9u
LnBhdGhuYW1lKXtMLmlQKGIsYykKZC4kMCgpfWVsc2UgTC5odShhLGIsYyxkKX0sCmh3OmZ1bmN0aW9u
KGEpe3ZhciB0PWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz10LmJvdHRvbSxyPXdpbmRvdy5pbm5l
ckhlaWdodAppZih0eXBlb2YgciE9PSJudW1iZXIiKXJldHVybiBILmFqKHIpCmlmKHM+cilKLmhGKGEp
CmVsc2UgaWYodC50b3A8MClKLmhGKGEpfSwKaVA6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIKaWYoYSE9
bnVsbCl7dD1kb2N1bWVudApzPXQuZ2V0RWxlbWVudEJ5SWQoIm8iK0guYihhKSkKcj10LnF1ZXJ5U2Vs
ZWN0b3IoIi5saW5lLSIrSC5iKGIpKQppZihzIT1udWxsKXtMLmh3KHMpCkouYWwocykuaygwLCJ0YXJn
ZXQiKX1lbHNlIGlmKHIhPW51bGwpTC5odyhyKQppZihyIT1udWxsKUouYWwodS5oLmEoci5wYXJlbnRO
b2RlKSkuaygwLCJoaWdobGlnaHQiKX1lbHNlIEwuaHcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVu
aXQtbmFtZSIpKX0sCmh1OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0PXUuTgpXLmUyKEguYihhKSsiP2lu
bGluZT10cnVlIixudWxsLFAuY08oWyJDb250ZW50LVR5cGUiLCJhcHBsaWNhdGlvbi9qc29uOyBjaGFy
c2V0PVVURi04Il0sdCx0KSkuYTQobmV3IEwuZkMoYixjLGEsZCksdS5QKS5hZChuZXcgTC5mRChhKSl9
LApmUTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscz13aW5kb3cubG9jYXRpb24scj1DLmEuQigocyYmQy5Z
KS5nY20ocyksYSkrIj8iCmlmKGIhPW51bGwpcis9Im9mZnNldD0iK0guYihiKSsiJiIKaWYoYyE9bnVs
bClyKz0ibGluZT0iK0guYihjKQpzPXdpbmRvdy5oaXN0b3J5CnQ9dS56CnMudG9TdHJpbmcKcy5wdXNo
U3RhdGUobmV3IFAuZVcoW10sW10pLmFpKFAuZTkodCx0KSksIiIscil9LAppWjpmdW5jdGlvbihhLGIp
e3ZhciB0LHMscj17fQpyLmE9YQphPUwubEUoYSkKci5hPWEKdD1kb2N1bWVudAp0LnF1ZXJ5U2VsZWN0
b3IoIiN1bml0LW5hbWUiKS50ZXh0Q29udGVudD1hCnM9dS5oCkguZEwocyxzLCJUIiwicXVlcnlTZWxl
Y3RvckFsbCIpCnQ9bmV3IFcuYXEodC5xdWVyeVNlbGVjdG9yQWxsKCIubmF2LXBhbmVsIC5uYXYtbGlu
ayIpLHUuUykKdC5BKHQsbmV3IEwuZlMocikpfSwKbHE6ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudCxz
PXUuaApILmRMKHMscywiVCIsInF1ZXJ5U2VsZWN0b3JBbGwiKQp0PW5ldyBXLmFxKHQucXVlcnlTZWxl
Y3RvckFsbCgiLmNvZGUiKSx1LlMpCnQuQSh0LG5ldyBMLmZ4KCkpfSwKbGY6ZnVuY3Rpb24oYSl7dmFy
IHQscz11LmguYShhLnBhcmVudE5vZGUpLnF1ZXJ5U2VsZWN0b3IoIjpzY29wZSA+IHVsIikscj1zLnN0
eWxlLHE9IiIrQy5lLmEzKHMub2Zmc2V0SGVpZ2h0KSoyKyJweCIKci5tYXhIZWlnaHQ9cQpyPUouZFAo
YSkKcT1yLiR0aQp0PXEuaCgifigxKSIpLmIobmV3IEwuZmoocyxhKSkKdS5NLmIobnVsbCkKVy5hQyhy
LmEsci5iLHQsITEscS5kKX0sCmxvOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHA9ImhyZWYiCnUuVi5i
KGEpCnQ9dS5oLmIoVy5pcyhhLmN1cnJlbnRUYXJnZXQpKQpzPUwuaUcodC5nZXRBdHRyaWJ1dGUocCkp
CnI9TC5mcih0LmdldEF0dHJpYnV0ZShwKSkKcT1MLmZxKHQuZ2V0QXR0cmlidXRlKHApKQppZihyIT1u
dWxsKUwuaHgocyxyLHEsbmV3IEwuZnMocyxyLHEpKQplbHNlIEwuaHgocyxudWxsLG51bGwsbmV3IEwu
ZnQocykpCmEucHJldmVudERlZmF1bHQoKX0sCmxwOmZ1bmN0aW9uKGEpe3ZhciB0LHM9e30scj11Lmgu
YShXLmlzKHUuVi5iKGEpLmN1cnJlbnRUYXJnZXQpKS5nZXRBdHRyaWJ1dGUoImhyZWYiKQpzLmE9cgpy
PUwuaUcocikKcy5hPXIKdD11Lk4KVy5lMihyLCJQT1NUIixQLmNPKFsiQ29udGVudC1UeXBlIiwiYXBw
bGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHQsdCkpLmE0KG5ldyBMLmZ1KCksdS5QKS5hZChu
ZXcgTC5mdihzKSl9LApobzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPSJxdWVyeVNlbGVjdG9yQWxs
IixvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYSksbj11LmgKby50b1N0cmluZwpILmRMKG4sbiwiVCIs
cCkKdD11LlMKcz1uZXcgVy5hcShvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5uYXYtbGluayIpLHQpCnMuQShz
LG5ldyBMLmZsKCkpCkguZEwobixuLCJUIixwKQpyPW5ldyBXLmFxKG8ucXVlcnlTZWxlY3RvckFsbCgi
LnJlZ2lvbiIpLHQpCnIuQShyLG5ldyBMLmZtKCkpCkguZEwobixuLCJUIixwKQpxPW5ldyBXLmFxKG8u
cXVlcnlTZWxlY3RvckFsbCgiLnBvc3QtbGluayIpLHQpCnEuQShxLG5ldyBMLmZuKCkpfSwKajA6ZnVu
Y3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaD0ibmFtZSIsZz1kb2N1bWVudCxm
PWcuY3JlYXRlRWxlbWVudCgidWwiKSxlPWEuYXBwZW5kQ2hpbGQoZikKZm9yKGY9Si5hOSh1LlIuYihi
KSksdD11Lmgscz11Lk07Zi5wKCk7KXtyPWYuZ3UoKQpxPWcuY3JlYXRlRWxlbWVudCgibGkiKQpwPXQu
YihlLmFwcGVuZENoaWxkKHEpKQpxPUouYV8ocikKbz1KLkUocCkKaWYoSi5jcyhxLmoociwidHlwZSIp
LCJkaXJlY3RvcnkiKSl7by5nQyhwKS5rKDAsImRpciIpCm89Zy5jcmVhdGVFbGVtZW50KCJzcGFuIikK
bj10LmIocC5hcHBlbmRDaGlsZChvKSkKbz1KLkUobikKby5nQyhuKS5rKDAsImFycm93IikKby5zYWYo
biwiJiN4MjVCQzsiKQpvPWcuY3JlYXRlRWxlbWVudCgic3BhbiIpCkouZFEodC5iKHAuYXBwZW5kQ2hp
bGQobykpLCImI3gxRjRDMTsiKQpwLmFwcGVuZENoaWxkKGcuY3JlYXRlVGV4dE5vZGUoSC5vKHEuaihy
LGgpKSkpCkwuajAocCxxLmoociwic3VidHJlZSIpKQpMLmxmKG4pfWVsc2V7by5zYWYocCwiJiN4MUY0
QzQ7IikKbz1nLmNyZWF0ZUVsZW1lbnQoImEiKQptPXQuYihwLmFwcGVuZENoaWxkKG8pKQpvPUouRSht
KQpvLmdDKG0pLmsoMCwibmF2LWxpbmsiKQpsPUgubyhxLmoociwicGF0aCIpKQptLnNldEF0dHJpYnV0
ZSgiZGF0YS0iK25ldyBXLmFCKG5ldyBXLmFwKG0pKS5WKGgpLGwpCm0uc2V0QXR0cmlidXRlKCJocmVm
IixILm8ocS5qKHIsImhyZWYiKSkpCm0uYXBwZW5kQ2hpbGQoZy5jcmVhdGVUZXh0Tm9kZShILm8ocS5q
KHIsaCkpKSkKbz1vLmdhRyhtKQpsPW8uJHRpCmwuaCgifigxKSIpLmIoTC5mUCgpKQpzLmIobnVsbCkK
Vy5hQyhvLmEsby5iLEwuZlAoKSwhMSxsLmQpCms9SC54KHEuaihyLCJlZGl0Q291bnQiKSkKaWYodHlw
ZW9mIGshPT0ibnVtYmVyIilyZXR1cm4gay5hTSgpCmlmKGs+MCl7cT1nLmNyZWF0ZUVsZW1lbnQoInNw
YW4iKQpqPXQuYihwLmFwcGVuZENoaWxkKHEpKQpKLmFsKGopLmsoMCwiZWRpdC1jb3VudCIpCmk9az09
PTE/ImVkaXQiOiJlZGl0cyIKai5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiIitrKyIgIitpKQpqLmFwcGVu
ZENoaWxkKGcuY3JlYXRlVGV4dE5vZGUoQy5jLmkoaykpKX19fX0sCmxBOmZ1bmN0aW9uKCl7dmFyIHQ9
Ii9fcHJldmlldy9uYXZpZ2F0aW9uVHJlZS5qc29uIixzPXUuTgpXLmUyKHQsbnVsbCxQLmNPKFsiQ29u
dGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHMscykpLmE0KG5ldyBM
LmZFKCksdS5QKS5hZChuZXcgTC5mRih0KSl9LApmSTpmdW5jdGlvbihhLGIpe3ZhciB0CndpbmRvdwp0
PUguYihhKQppZih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCIpd2luZG93LmNvbnNvbGUuZXJyb3Io
dCkKd2luZG93CnQ9SC5iKGIpCmlmKHR5cGVvZiBjb25zb2xlIT0idW5kZWZpbmVkIil3aW5kb3cuY29u
c29sZS5lcnJvcih0KX0sCmxJOmZ1bmN0aW9uKGEwKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGks
aCxnLGYsZSxkPSJsaW5rIixjPSJocmVmIixiPWRvY3VtZW50LGE9Yi5xdWVyeVNlbGVjdG9yKCIuZWRp
dC1wYW5lbCAucGFuZWwtY29udGVudCIpCkouZFEoYSwiIikKdD1iLmNyZWF0ZUVsZW1lbnQoInAiKQpK
LmFsKHQpLmsoMCwicmVnaW9uLWxvY2F0aW9uIikKcz1KLmFfKGEwKQp0LmFwcGVuZENoaWxkKGIuY3Jl
YXRlVGV4dE5vZGUoSC5iKHMuaihhMCwicGF0aCIpKSsiICIpKQpyPWIuY3JlYXRlRWxlbWVudCgic3Bh
biIpCnE9dS5oCnA9cS5iKHQuYXBwZW5kQ2hpbGQocikpCnAuYXBwZW5kQ2hpbGQoYi5jcmVhdGVUZXh0
Tm9kZSgibGluZSAiK0guYihzLmooYTAsImxpbmUiKSkpKQpKLmFsKHApLmsoMCwibm93cmFwIikKYS5h
cHBlbmRDaGlsZCh0KQpyPWIuY3JlYXRlRWxlbWVudCgicCIpCm89YS5hcHBlbmRDaGlsZChyKQpvLmFw
cGVuZENoaWxkKGIuY3JlYXRlVGV4dE5vZGUoSC5vKHMuaihhMCwiZXhwbGFuYXRpb24iKSkpKQpuPUou
YXQocy5qKGEwLCJkZXRhaWxzIikpCmlmKG49PT0wKW8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVUZXh0Tm9k
ZSgiLiIpKQplbHNle3I9bj09PTE/IiBmb3IgIitILmIobikrIiByZWFzb246IjoiIGZvciAiK0guYihu
KSsiIHJlYXNvbnM6IgpvLmFwcGVuZENoaWxkKGIuY3JlYXRlVGV4dE5vZGUocikpCnI9Yi5jcmVhdGVF
bGVtZW50KCJvbCIpCm09YS5hcHBlbmRDaGlsZChyKQpmb3Iocj1KLmE5KHUuUi5iKHMuaihhMCwiZGV0
YWlscyIpKSksbD11LmE7ci5wKCk7KXtrPXIuZ3UoKQpqPWIuY3JlYXRlRWxlbWVudCgibGkiKQppPW0u
YXBwZW5kQ2hpbGQoaikKaj1KLmFfKGspCmkuYXBwZW5kQ2hpbGQoYi5jcmVhdGVUZXh0Tm9kZShILm8o
ai5qKGssImRlc2NyaXB0aW9uIikpKSkKaWYoai5qKGssZCkhPW51bGwpe2kuYXBwZW5kQ2hpbGQoYi5j
cmVhdGVUZXh0Tm9kZSgiICgiKSkKaD1iLmNyZWF0ZUVsZW1lbnQoImEiKQpnPWwuYihpLmFwcGVuZENo
aWxkKGgpKQpnLmFwcGVuZENoaWxkKGIuY3JlYXRlVGV4dE5vZGUoSC5vKEouZlcoai5qKGssZCksInRl
eHQiKSkpKQpnLnNldEF0dHJpYnV0ZShjLEgubyhKLmZXKGouaihrLGQpLGMpKSkKZy5jbGFzc0xpc3Qu
YWRkKCJuYXYtbGluayIpCmkuYXBwZW5kQ2hpbGQoYi5jcmVhdGVUZXh0Tm9kZSgiKSIpKX19fWlmKHMu
aihhMCwiZWRpdHMiKSE9bnVsbClmb3Iocz1KLmE5KHUuUi5iKHMuaihhMCwiZWRpdHMiKSkpO3MucCgp
Oyl7Zj1zLmd1KCkKcj1iLmNyZWF0ZUVsZW1lbnQoInAiKQplPXEuYihhLmFwcGVuZENoaWxkKHIpKQpy
PWIuY3JlYXRlRWxlbWVudCgiYSIpCmc9cS5iKGUuYXBwZW5kQ2hpbGQocikpCnI9Si5hXyhmKQpnLmFw
cGVuZENoaWxkKGIuY3JlYXRlVGV4dE5vZGUoSC5vKHIuaihmLCJ0ZXh0IikpKSkKZy5zZXRBdHRyaWJ1
dGUoYyxILm8oci5qKGYsYykpKQpKLmFsKGcpLmsoMCwicG9zdC1saW5rIil9fSwKaU46ZnVuY3Rpb24o
YSl7dmFyIHQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtIitu
ZXcgVy5hQihuZXcgVy5hcChhKSkuVigib2Zmc2V0IikpLHI9dS5OClcuZTIoSC5iKHQpKyI/cmVnaW9u
PXJlZ2lvbiZvZmZzZXQ9IitILmIocyksbnVsbCxQLmNPKFsiQ29udGVudC1UeXBlIiwiYXBwbGljYXRp
b24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHIscikpLmE0KG5ldyBMLmZHKCksdS5QKS5hZChuZXcgTC5m
SCh0KSl9LAppVTpmdW5jdGlvbigpe3ZhciB0LHM9ZG9jdW1lbnQscj1zLnF1ZXJ5U2VsZWN0b3IoIi5u
YXYtaW5uZXIiKSxxPXdpbmRvdy5pbm5lckhlaWdodCxwPXIuc3R5bGUsbz1ILmIocSkrInB4IgpwLmhl
aWdodD1vCmlmKHR5cGVvZiBxIT09Im51bWJlciIpcmV0dXJuIHEuY3UoKQp0PXEvMi02CnA9cy5xdWVy
eVNlbGVjdG9yKCIuZWRpdC1wYW5lbCIpLnN0eWxlCm89SC5iKHQpKyJweCIKcC5oZWlnaHQ9bwpzPXMu
cXVlcnlTZWxlY3RvcigiLmVkaXQtbGlzdCIpLnN0eWxlCnA9SC5iKHQpKyJweCIKcy5oZWlnaHQ9cH0s
CmlPOmZ1bmN0aW9uKCl7Qy5OLmFjKGRvY3VtZW50LCJET01Db250ZW50TG9hZGVkIixuZXcgTC5mSygp
KQpDLm8uYWMod2luZG93LCJwb3BzdGF0ZSIsbmV3IEwuZkwoKSkKQy5vLmFjKHdpbmRvdywicmVzaXpl
IixuZXcgTC5mTShuZXcgTC5jRChDLnQpKSkKQy5vLmFjKHdpbmRvdywic2Nyb2xsIixuZXcgTC5mTihu
ZXcgTC5jRChDLnQpKSl9LApmVTpmdW5jdGlvbiBmVShhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhp
cy5jPWN9LApmVDpmdW5jdGlvbiBmVChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKZkM6ZnVuY3Rpb24g
ZkMoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9ZH0sCmZEOmZ1bmN0aW9u
IGZEKGEpe3RoaXMuYT1hfSwKZlM6ZnVuY3Rpb24gZlMoYSl7dGhpcy5hPWF9LApmeDpmdW5jdGlvbiBm
eCgpe30sCmZqOmZ1bmN0aW9uIGZqKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApmczpmdW5jdGlvbiBm
cyhhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApmdDpmdW5jdGlvbiBmdChhKXt0aGlz
LmE9YX0sCmZ1OmZ1bmN0aW9uIGZ1KCl7fSwKZnY6ZnVuY3Rpb24gZnYoYSl7dGhpcy5hPWF9LApmbDpm
dW5jdGlvbiBmbCgpe30sCmZtOmZ1bmN0aW9uIGZtKCl7fSwKZms6ZnVuY3Rpb24gZmsoYSl7dGhpcy5h
PWF9LApmbjpmdW5jdGlvbiBmbigpe30sCmZFOmZ1bmN0aW9uIGZFKCl7fSwKZkY6ZnVuY3Rpb24gZkYo
YSl7dGhpcy5hPWF9LApmRzpmdW5jdGlvbiBmRygpe30sCmZIOmZ1bmN0aW9uIGZIKGEpe3RoaXMuYT1h
fSwKZks6ZnVuY3Rpb24gZksoKXt9LApmSjpmdW5jdGlvbiBmSihhLGIsYyl7dGhpcy5hPWEKdGhpcy5i
PWIKdGhpcy5jPWN9LApmTDpmdW5jdGlvbiBmTCgpe30sCmZNOmZ1bmN0aW9uIGZNKGEpe3RoaXMuYT1h
fSwKZk46ZnVuY3Rpb24gZk4oYSl7dGhpcy5hPWF9LAplMDpmdW5jdGlvbiBlMCgpe30sCmNEOmZ1bmN0
aW9uIGNEKGEpe3RoaXMuYT1hCnRoaXMuYj1udWxsfSwKY1k6ZnVuY3Rpb24gY1koKXt9fQp2YXIgdz1b
QyxILEosUCxXLExdCmh1bmtIZWxwZXJzLnNldEZ1bmN0aW9uTmFtZXNJZk5lY2Vzc2FyeSh3KQp2YXIg
JD17fQpILmgwLnByb3RvdHlwZT17fQpKLkkucHJvdG90eXBlPXsKRzpmdW5jdGlvbihhLGIpe3JldHVy
biBhPT09Yn0sCmdxOmZ1bmN0aW9uKGEpe3JldHVybiBILmJWKGEpfSwKaTpmdW5jdGlvbihhKXtyZXR1
cm4iSW5zdGFuY2Ugb2YgJyIrSC5iKEguZWYoYSkpKyInIn0sCmFoOmZ1bmN0aW9uKGEsYil7dS5vLmIo
YikKdGhyb3cgSC5hKFAuaFUoYSxiLmdiZygpLGIuZ2JqKCksYi5nYmgoKSkpfX0KSi5jSC5wcm90b3R5
cGU9ewppOmZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSl9LApncTpmdW5jdGlvbihhKXtyZXR1cm4g
YT81MTkwMTg6MjE4MTU5fSwKJGl6OjF9CkouYkoucHJvdG90eXBlPXsKRzpmdW5jdGlvbihhLGIpe3Jl
dHVybiBudWxsPT1ifSwKaTpmdW5jdGlvbihhKXtyZXR1cm4ibnVsbCJ9LApncTpmdW5jdGlvbihhKXty
ZXR1cm4gMH0sCmFoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYnYoYSx1Lm8uYihiKSl9LAokaXA6
MX0KSi5heS5wcm90b3R5cGU9ewpncTpmdW5jdGlvbihhKXtyZXR1cm4gMH0sCmk6ZnVuY3Rpb24oYSl7
cmV0dXJuIFN0cmluZyhhKX0sCiRpaFE6MX0KSi5jWi5wcm90b3R5cGU9e30KSi5iay5wcm90b3R5cGU9
e30KSi5hZC5wcm90b3R5cGU9ewppOmZ1bmN0aW9uKGEpe3ZhciB0PWFbJC5mVigpXQppZih0PT1udWxs
KXJldHVybiB0aGlzLmJ5KGEpCnJldHVybiJKYXZhU2NyaXB0IGZ1bmN0aW9uIGZvciAiK0guYihKLmIy
KHQpKX0sCiRTOmZ1bmN0aW9uKCl7cmV0dXJue2Z1bmM6MSxvcHQ6WywsLCwsLCwsLCwsLCwsLCxdfX0s
CiRpYWI6MX0KSi5GLnByb3RvdHlwZT17Cms6ZnVuY3Rpb24oYSxiKXtILlooYSkuZC5iKGIpCmlmKCEh
YS5maXhlZCRsZW5ndGgpSC5hayhQLk4oImFkZCIpKQphLnB1c2goYil9LApJOmZ1bmN0aW9uKGEsYil7
dmFyIHQKSC5aKGEpLmgoImo8MT4iKS5iKGIpCmlmKCEhYS5maXhlZCRsZW5ndGgpSC5hayhQLk4oImFk
ZEFsbCIpKQpmb3IodD1KLmE5KGIpO3QucCgpOylhLnB1c2godC5ndSgpKX0sCmFGOmZ1bmN0aW9uKGEs
YixjKXt2YXIgdD1ILlooYSkKcmV0dXJuIG5ldyBILmE0KGEsdC5FKGMpLmgoIjEoMikiKS5iKGIpLHQu
aCgiQDwxPiIpLkUoYykuaCgiYTQ8MSwyPiIpKX0sClQ6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPW5ldyBB
cnJheShhLmxlbmd0aCkKcy5maXhlZCRsZW5ndGg9QXJyYXkKZm9yKHQ9MDt0PGEubGVuZ3RoOysrdCl0
aGlzLmwocyx0LEguYihhW3RdKSkKcmV0dXJuIHMuam9pbihiKX0sCmNjOmZ1bmN0aW9uKGEsYixjLGQp
e3ZhciB0LHMscgpkLmIoYikKSC5aKGEpLkUoZCkuaCgiMSgxLDIpIikuYihjKQp0PWEubGVuZ3RoCmZv
cihzPWIscj0wO3I8dDsrK3Ipe3M9Yy4kMihzLGFbcl0pCmlmKGEubGVuZ3RoIT09dCl0aHJvdyBILmEo
UC5hdihhKSl9cmV0dXJuIHN9LApPOmZ1bmN0aW9uKGEsYil7aWYoYjwwfHxiPj1hLmxlbmd0aClyZXR1
cm4gSC5pKGEsYikKcmV0dXJuIGFbYl19LApidTpmdW5jdGlvbihhLGIsYyl7aWYoYjwwfHxiPmEubGVu
Z3RoKXRocm93IEguYShQLkwoYiwwLGEubGVuZ3RoLCJzdGFydCIsbnVsbCkpCmlmKGM8Ynx8Yz5hLmxl
bmd0aCl0aHJvdyBILmEoUC5MKGMsYixhLmxlbmd0aCwiZW5kIixudWxsKSkKaWYoYj09PWMpcmV0dXJu
IEgubihbXSxILlooYSkpCnJldHVybiBILm4oYS5zbGljZShiLGMpLEguWihhKSl9LApnYWc6ZnVuY3Rp
b24oYSl7dmFyIHQ9YS5sZW5ndGgKaWYodD4wKXJldHVybiBhW3QtMV0KdGhyb3cgSC5hKEguaFAoKSl9
LApiODpmdW5jdGlvbihhLGIpe3ZhciB0LHMKSC5aKGEpLmgoInooMSkiKS5iKGIpCnQ9YS5sZW5ndGgK
Zm9yKHM9MDtzPHQ7KytzKXtpZihILmRLKGIuJDEoYVtzXSkpKXJldHVybiEwCmlmKGEubGVuZ3RoIT09
dCl0aHJvdyBILmEoUC5hdihhKSl9cmV0dXJuITF9LAp3OmZ1bmN0aW9uKGEsYil7dmFyIHQKZm9yKHQ9
MDt0PGEubGVuZ3RoOysrdClpZihKLmNzKGFbdF0sYikpcmV0dXJuITAKcmV0dXJuITF9LAppOmZ1bmN0
aW9uKGEpe3JldHVybiBQLmU2KGEsIlsiLCJdIil9LApnRjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEou
YUYoYSxhLmxlbmd0aCxILlooYSkuaCgiYUY8MT4iKSl9LApncTpmdW5jdGlvbihhKXtyZXR1cm4gSC5i
VihhKX0sCmdtOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aH0sCnNtOmZ1bmN0aW9uKGEsYil7aWYo
ISFhLmZpeGVkJGxlbmd0aClILmFrKFAuTigic2V0IGxlbmd0aCIpKQppZihiPDApdGhyb3cgSC5hKFAu
TChiLDAsbnVsbCwibmV3TGVuZ3RoIixudWxsKSkKYS5sZW5ndGg9Yn0sCmo6ZnVuY3Rpb24oYSxiKXtI
LngoYikKaWYoYj49YS5sZW5ndGh8fGI8MCl0aHJvdyBILmEoSC5iMShhLGIpKQpyZXR1cm4gYVtiXX0s
Cmw6ZnVuY3Rpb24oYSxiLGMpe0guWihhKS5kLmIoYykKaWYoISFhLmltbXV0YWJsZSRsaXN0KUguYWso
UC5OKCJpbmRleGVkIHNldCIpKQppZihiPj1hLmxlbmd0aHx8ITEpdGhyb3cgSC5hKEguYjEoYSxiKSkK
YVtiXT1jfSwKJGlqOjEsCiRpbToxfQpKLmU3LnByb3RvdHlwZT17fQpKLmFGLnByb3RvdHlwZT17Cmd1
OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZH0sCnA6ZnVuY3Rpb24oKXt2YXIgdCxzPXRoaXMscj1zLmEs
cT1yLmxlbmd0aAppZihzLmIhPT1xKXRocm93IEguYShILmNyKHIpKQp0PXMuYwppZih0Pj1xKXtzLnNh
WChudWxsKQpyZXR1cm4hMX1zLnNhWChyW3RdKTsrK3MuYwpyZXR1cm4hMH0sCnNhWDpmdW5jdGlvbihh
KXt0aGlzLmQ9dGhpcy4kdGkuZC5iKGEpfSwKJGlSOjF9CkouYmEucHJvdG90eXBlPXsKYm86ZnVuY3Rp
b24oYSl7dmFyIHQKaWYoYT49LTIxNDc0ODM2NDgmJmE8PTIxNDc0ODM2NDcpcmV0dXJuIGF8MAppZihp
c0Zpbml0ZShhKSl7dD1hPDA/TWF0aC5jZWlsKGEpOk1hdGguZmxvb3IoYSkKcmV0dXJuIHQrMH10aHJv
dyBILmEoUC5OKCIiK2ErIi50b0ludCgpIikpfSwKYTM6ZnVuY3Rpb24oYSl7aWYoYT4wKXtpZihhIT09
MS8wKXJldHVybiBNYXRoLnJvdW5kKGEpfWVsc2UgaWYoYT4tMS8wKXJldHVybiAwLU1hdGgucm91bmQo
MC1hKQp0aHJvdyBILmEoUC5OKCIiK2ErIi5yb3VuZCgpIikpfSwKYTU6ZnVuY3Rpb24oYSxiKXt2YXIg
dCxzLHIscQppZihiPDJ8fGI+MzYpdGhyb3cgSC5hKFAuTChiLDIsMzYsInJhZGl4IixudWxsKSkKdD1h
LnRvU3RyaW5nKGIpCmlmKEMuYS52KHQsdC5sZW5ndGgtMSkhPT00MSlyZXR1cm4gdApzPS9eKFtcZGEt
el0rKSg/OlwuKFtcZGEtel0rKSk/XChlXCsoXGQrKVwpJC8uZXhlYyh0KQppZihzPT1udWxsKUguYWso
UC5OKCJVbmV4cGVjdGVkIHRvU3RyaW5nIHJlc3VsdDogIit0KSkKcj1zLmxlbmd0aAppZigxPj1yKXJl
dHVybiBILmkocywxKQp0PXNbMV0KaWYoMz49cilyZXR1cm4gSC5pKHMsMykKcT0rc1szXQpyPXNbMl0K
aWYociE9bnVsbCl7dCs9cgpxLT1yLmxlbmd0aH1yZXR1cm4gdCtDLmEuYU4oIjAiLHEpfSwKaTpmdW5j
dGlvbihhKXtpZihhPT09MCYmMS9hPDApcmV0dXJuIi0wLjAiCmVsc2UgcmV0dXJuIiIrYX0sCmdxOmZ1
bmN0aW9uKGEpe3ZhciB0LHMscixxLHA9YXwwCmlmKGE9PT1wKXJldHVybiA1MzY4NzA5MTEmcAp0PU1h
dGguYWJzKGEpCnM9TWF0aC5sb2codCkvMC42OTMxNDcxODA1NTk5NDUzfDAKcj1NYXRoLnBvdygyLHMp
CnE9dDwxP3QvcjpyL3QKcmV0dXJuIDUzNjg3MDkxMSYoKHEqOTAwNzE5OTI1NDc0MDk5MnwwKSsocSoz
NTQyMjQzMTgxMTc2NTIxfDApKSo1OTkxOTcrcyoxMjU5fSwKQjpmdW5jdGlvbihhLGIpe2lmKHR5cGVv
ZiBiIT0ibnVtYmVyIil0aHJvdyBILmEoSC5hcyhiKSkKcmV0dXJuIGErYn0sCmFrOmZ1bmN0aW9uKGEs
Yil7dmFyIHQ9YSViCmlmKHQ9PT0wKXJldHVybiAwCmlmKHQ+MClyZXR1cm4gdAppZihiPDApcmV0dXJu
IHQtYgplbHNlIHJldHVybiB0K2J9LAphYjpmdW5jdGlvbihhLGIpe3JldHVybihhfDApPT09YT9hL2J8
MDp0aGlzLmJZKGEsYil9LApiWTpmdW5jdGlvbihhLGIpe3ZhciB0PWEvYgppZih0Pj0tMjE0NzQ4MzY0
OCYmdDw9MjE0NzQ4MzY0NylyZXR1cm4gdHwwCmlmKHQ+MCl7aWYodCE9PTEvMClyZXR1cm4gTWF0aC5m
bG9vcih0KX1lbHNlIGlmKHQ+LTEvMClyZXR1cm4gTWF0aC5jZWlsKHQpCnRocm93IEguYShQLk4oIlJl
c3VsdCBvZiB0cnVuY2F0aW5nIGRpdmlzaW9uIGlzICIrSC5iKHQpKyI6ICIrSC5iKGEpKyIgfi8gIiti
KSl9LApaOmZ1bmN0aW9uKGEsYil7dmFyIHQKaWYoYT4wKXQ9dGhpcy5iMyhhLGIpCmVsc2V7dD1iPjMx
PzMxOmIKdD1hPj50Pj4+MH1yZXR1cm4gdH0sCmJYOmZ1bmN0aW9uKGEsYil7aWYoYjwwKXRocm93IEgu
YShILmFzKGIpKQpyZXR1cm4gdGhpcy5iMyhhLGIpfSwKYjM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj4z
MT8wOmE+Pj5ifSwKUjpmdW5jdGlvbihhLGIpe3JldHVybihhfGIpPj4+MH0sCiRpVDoxLAokaVU6MX0K
Si5iSS5wcm90b3R5cGU9eyRpZjoxfQpKLmNJLnByb3RvdHlwZT17fQpKLmF4LnByb3RvdHlwZT17CnY6
ZnVuY3Rpb24oYSxiKXtpZihiPDApdGhyb3cgSC5hKEguYjEoYSxiKSkKaWYoYj49YS5sZW5ndGgpSC5h
ayhILmIxKGEsYikpCnJldHVybiBhLmNoYXJDb2RlQXQoYil9LAp0OmZ1bmN0aW9uKGEsYil7aWYoYj49
YS5sZW5ndGgpdGhyb3cgSC5hKEguYjEoYSxiKSkKcmV0dXJuIGEuY2hhckNvZGVBdChiKX0sCkI6ZnVu
Y3Rpb24oYSxiKXtpZih0eXBlb2YgYiE9InN0cmluZyIpdGhyb3cgSC5hKFAuZlgoYixudWxsLG51bGwp
KQpyZXR1cm4gYStifSwKYTA6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscwpjPVAuYVYoYixjLGEubGVu
Z3RoKQp0PWEuc3Vic3RyaW5nKDAsYikKcz1hLnN1YnN0cmluZyhjKQpyZXR1cm4gdCtkK3N9LApTOmZ1
bmN0aW9uKGEsYixjKXt2YXIgdAppZihjPDB8fGM+YS5sZW5ndGgpdGhyb3cgSC5hKFAuTChjLDAsYS5s
ZW5ndGgsbnVsbCxudWxsKSkKdD1jK2IubGVuZ3RoCmlmKHQ+YS5sZW5ndGgpcmV0dXJuITEKcmV0dXJu
IGI9PT1hLnN1YnN0cmluZyhjLHQpfSwKSDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLlMoYSxiLDAp
fSwKbjpmdW5jdGlvbihhLGIsYyl7aWYoIUguZEooYikpSC5hayhILmFzKGIpKQppZihjPT1udWxsKWM9
YS5sZW5ndGgKaWYodHlwZW9mIGIhPT0ibnVtYmVyIilyZXR1cm4gYi5EKCkKaWYoYjwwKXRocm93IEgu
YShQLmVnKGIsbnVsbCkpCmlmKGI+Yyl0aHJvdyBILmEoUC5lZyhiLG51bGwpKQppZihjPmEubGVuZ3Ro
KXRocm93IEguYShQLmVnKGMsbnVsbCkpCnJldHVybiBhLnN1YnN0cmluZyhiLGMpfSwKVTpmdW5jdGlv
bihhLGIpe3JldHVybiB0aGlzLm4oYSxiLG51bGwpfSwKY3I6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9M
b3dlckNhc2UoKX0sCmNzOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxPWEudHJpbSgpLHA9cS5sZW5ndGgK
aWYocD09PTApcmV0dXJuIHEKaWYodGhpcy50KHEsMCk9PT0xMzMpe3Q9Si5qSyhxLDEpCmlmKHQ9PT1w
KXJldHVybiIifWVsc2UgdD0wCnM9cC0xCnI9dGhpcy52KHEscyk9PT0xMzM/Si5qTChxLHMpOnAKaWYo
dD09PTAmJnI9PT1wKXJldHVybiBxCnJldHVybiBxLnN1YnN0cmluZyh0LHIpfSwKYU46ZnVuY3Rpb24o
YSxiKXt2YXIgdCxzCmlmKDA+PWIpcmV0dXJuIiIKaWYoYj09PTF8fGEubGVuZ3RoPT09MClyZXR1cm4g
YQppZihiIT09Yj4+PjApdGhyb3cgSC5hKEMuSykKZm9yKHQ9YSxzPSIiOyEwOyl7aWYoKGImMSk9PT0x
KXM9dCtzCmI9Yj4+PjEKaWYoYj09PTApYnJlYWsKdCs9dH1yZXR1cm4gc30sCmFlOmZ1bmN0aW9uKGEs
YixjKXt2YXIgdAppZihjPDB8fGM+YS5sZW5ndGgpdGhyb3cgSC5hKFAuTChjLDAsYS5sZW5ndGgsbnVs
bCxudWxsKSkKdD1hLmluZGV4T2YoYixjKQpyZXR1cm4gdH0sCmJmOmZ1bmN0aW9uKGEsYil7cmV0dXJu
IHRoaXMuYWUoYSxiLDApfSwKaTpmdW5jdGlvbihhKXtyZXR1cm4gYX0sCmdxOmZ1bmN0aW9uKGEpe3Zh
ciB0LHMscgpmb3IodD1hLmxlbmd0aCxzPTAscj0wO3I8dDsrK3Ipe3M9NTM2ODcwOTExJnMrYS5jaGFy
Q29kZUF0KHIpCnM9NTM2ODcwOTExJnMrKCg1MjQyODcmcyk8PDEwKQpzXj1zPj42fXM9NTM2ODcwOTEx
JnMrKCg2NzEwODg2MyZzKTw8MykKc149cz4+MTEKcmV0dXJuIDUzNjg3MDkxMSZzKygoMTYzODMmcyk8
PDE1KX0sCmdtOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aH0sCmo6ZnVuY3Rpb24oYSxiKXtILngo
YikKaWYoYj49YS5sZW5ndGh8fCExKXRocm93IEguYShILmIxKGEsYikpCnJldHVybiBhW2JdfSwKJGlj
WDoxLAokaWM6MX0KSC5jeS5wcm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmxl
bmd0aH0sCmo6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gQy5hLnYodGhpcy5hLEgueChiKSl9fQpILmJDLnBy
b3RvdHlwZT17fQpILmFlLnByb3RvdHlwZT17CmdGOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMKcmV0dXJu
IG5ldyBILmFRKHQsdC5nbSh0KSxILnYodCkuaCgiYVE8YWUuRT4iKSl9LAphajpmdW5jdGlvbihhLGIp
e3JldHVybiB0aGlzLmJ4KDAsSC52KHRoaXMpLmgoInooYWUuRSkiKS5iKGIpKX19CkguYVEucHJvdG90
eXBlPXsKZ3U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kfSwKcDpmdW5jdGlvbigpe3ZhciB0LHM9dGhp
cyxyPXMuYSxxPUouYV8ocikscD1xLmdtKHIpCmlmKHMuYiE9PXApdGhyb3cgSC5hKFAuYXYocikpCnQ9
cy5jCmlmKHQ+PXApe3Muc2FRKG51bGwpCnJldHVybiExfXMuc2FRKHEuTyhyLHQpKTsrK3MuYwpyZXR1
cm4hMH0sCnNhUTpmdW5jdGlvbihhKXt0aGlzLmQ9dGhpcy4kdGkuZC5iKGEpfSwKJGlSOjF9CkguYTQu
cHJvdG90eXBlPXsKZ206ZnVuY3Rpb24oYSl7cmV0dXJuIEouYXQodGhpcy5hKX0sCk86ZnVuY3Rpb24o
YSxiKXtyZXR1cm4gdGhpcy5iLiQxKEouam0odGhpcy5hLGIpKX19CkguYVkucHJvdG90eXBlPXsKZ0Y6
ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBILmNfKEouYTkodGhpcy5hKSx0aGlzLmIsdGhpcy4kdGkuaCgi
Y188MT4iKSl9fQpILmNfLnByb3RvdHlwZT17CnA6ZnVuY3Rpb24oKXt2YXIgdCxzCmZvcih0PXRoaXMu
YSxzPXRoaXMuYjt0LnAoKTspaWYoSC5kSyhzLiQxKHQuZ3UoKSkpKXJldHVybiEwCnJldHVybiExfSwK
Z3U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hLmd1KCl9fQpILlYucHJvdG90eXBlPXt9CkguYVgucHJv
dG90eXBlPXsKbDpmdW5jdGlvbihhLGIsYyl7SC52KHRoaXMpLmgoImFYLkUiKS5iKGMpCnRocm93IEgu
YShQLk4oIkNhbm5vdCBtb2RpZnkgYW4gdW5tb2RpZmlhYmxlIGxpc3QiKSl9fQpILmJsLnByb3RvdHlw
ZT17fQpILmJpLnByb3RvdHlwZT17CmdxOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuX2hhc2hDb2RlCmlm
KHQhPW51bGwpcmV0dXJuIHQKdD01MzY4NzA5MTEmNjY0NTk3KkouYnYodGhpcy5hKQp0aGlzLl9oYXNo
Q29kZT10CnJldHVybiB0fSwKaTpmdW5jdGlvbihhKXtyZXR1cm4nU3ltYm9sKCInK0guYih0aGlzLmEp
KyciKSd9LApHOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVsbClyZXR1cm4hMQpyZXR1cm4gYiBpbnN0YW5j
ZW9mIEguYmkmJnRoaXMuYT09Yi5hfSwKJGlhNjoxfQpILmJ6LnByb3RvdHlwZT17fQpILmJ5LnByb3Rv
dHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIFAuaDModGhpcyl9LApsOmZ1bmN0aW9uKGEsYixjKXt2
YXIgdD1ILnYodGhpcykKdC5kLmIoYikKdC5jaFsxXS5iKGMpCnJldHVybiBILmpDKCl9LAokaXk6MX0K
SC5hSi5wcm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hfSwKYV86ZnVuY3Rpb24o
YSl7aWYoIl9fcHJvdG9fXyI9PT1hKXJldHVybiExCnJldHVybiB0aGlzLmIuaGFzT3duUHJvcGVydHko
YSl9LApqOmZ1bmN0aW9uKGEsYil7aWYoIXRoaXMuYV8oYikpcmV0dXJuIG51bGwKcmV0dXJuIHRoaXMu
YVkoYil9LAphWTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5iW0gubyhhKV19LApBOmZ1bmN0aW9uKGEs
Yil7dmFyIHQscyxyLHEscD1ILnYodGhpcykKcC5oKCJ+KDEsMikiKS5iKGIpCnQ9dGhpcy5jCmZvcihz
PXQubGVuZ3RoLHA9cC5jaFsxXSxyPTA7cjxzOysrcil7cT10W3JdCmIuJDIocSxwLmIodGhpcy5hWShx
KSkpfX19CkguY0oucHJvdG90eXBlPXsKZ2JnOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hCnJldHVybiB0
fSwKZ2JqOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscD10aGlzCmlmKHAuYz09PTEpcmV0dXJuIEMudwp0
PXAuZApzPXQubGVuZ3RoLXAuZS5sZW5ndGgtcC5mCmlmKHM9PT0wKXJldHVybiBDLncKcj1bXQpmb3Io
cT0wO3E8czsrK3Epe2lmKHE+PXQubGVuZ3RoKXJldHVybiBILmkodCxxKQpyLnB1c2godFtxXSl9ci5m
aXhlZCRsZW5ndGg9QXJyYXkKci5pbW11dGFibGUkbGlzdD1BcnJheQpyZXR1cm4gcn0sCmdiaDpmdW5j
dGlvbigpe3ZhciB0LHMscixxLHAsbyxuLG0sbD10aGlzCmlmKGwuYyE9PTApcmV0dXJuIEMuQQp0PWwu
ZQpzPXQubGVuZ3RoCnI9bC5kCnE9ci5sZW5ndGgtcy1sLmYKaWYocz09PTApcmV0dXJuIEMuQQpwPW5l
dyBILmFuKHUuQikKZm9yKG89MDtvPHM7KytvKXtpZihvPj10Lmxlbmd0aClyZXR1cm4gSC5pKHQsbykK
bj10W29dCm09cStvCmlmKG08MHx8bT49ci5sZW5ndGgpcmV0dXJuIEguaShyLG0pCnAubCgwLG5ldyBI
LmJpKG4pLHJbbV0pfXJldHVybiBuZXcgSC5ieihwLHUuRCl9LAokaWhPOjF9CkguZWUucHJvdG90eXBl
PXsKJDI6ZnVuY3Rpb24oYSxiKXt2YXIgdApILm8oYSkKdD10aGlzLmEKdC5iPXQuYisiJCIrSC5iKGEp
CkMuYi5rKHRoaXMuYixhKQpDLmIuayh0aGlzLmMsYik7Kyt0LmF9LAokUzoxOH0KSC5lai5wcm90b3R5
cGU9ewpMOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj10aGlzLHE9bmV3IFJlZ0V4cChyLmEpLmV4ZWMoYSkK
aWYocT09bnVsbClyZXR1cm4gbnVsbAp0PU9iamVjdC5jcmVhdGUobnVsbCkKcz1yLmIKaWYocyE9PS0x
KXQuYXJndW1lbnRzPXFbcysxXQpzPXIuYwppZihzIT09LTEpdC5hcmd1bWVudHNFeHByPXFbcysxXQpz
PXIuZAppZihzIT09LTEpdC5leHByPXFbcysxXQpzPXIuZQppZihzIT09LTEpdC5tZXRob2Q9cVtzKzFd
CnM9ci5mCmlmKHMhPT0tMSl0LnJlY2VpdmVyPXFbcysxXQpyZXR1cm4gdH19CkguY1YucHJvdG90eXBl
PXsKaTpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmIKaWYodD09bnVsbClyZXR1cm4iTm9TdWNoTWV0aG9k
RXJyb3I6ICIrSC5iKHRoaXMuYSkKcmV0dXJuIk5vU3VjaE1ldGhvZEVycm9yOiBtZXRob2Qgbm90IGZv
dW5kOiAnIit0KyInIG9uIG51bGwifX0KSC5jTC5wcm90b3R5cGU9ewppOmZ1bmN0aW9uKGEpe3ZhciB0
LHM9dGhpcyxyPSJOb1N1Y2hNZXRob2RFcnJvcjogbWV0aG9kIG5vdCBmb3VuZDogJyIscT1zLmIKaWYo
cT09bnVsbClyZXR1cm4iTm9TdWNoTWV0aG9kRXJyb3I6ICIrSC5iKHMuYSkKdD1zLmMKaWYodD09bnVs
bClyZXR1cm4gcitxKyInICgiK0guYihzLmEpKyIpIgpyZXR1cm4gcitxKyInIG9uICciK3QrIicgKCIr
SC5iKHMuYSkrIikifX0KSC5kYS5wcm90b3R5cGU9ewppOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYQpy
ZXR1cm4gdC5sZW5ndGg9PT0wPyJFcnJvciI6IkVycm9yOiAiK3R9fQpILmZSLnByb3RvdHlwZT17CiQx
OmZ1bmN0aW9uKGEpe2lmKHUuYlUuYyhhKSlpZihhLiR0aHJvd25Kc0Vycm9yPT1udWxsKWEuJHRocm93
bkpzRXJyb3I9dGhpcy5hCnJldHVybiBhfSwKJFM6NH0KSC5jZy5wcm90b3R5cGU9ewppOmZ1bmN0aW9u
KGEpe3ZhciB0LHM9dGhpcy5iCmlmKHMhPW51bGwpcmV0dXJuIHMKcz10aGlzLmEKdD1zIT09bnVsbCYm
dHlwZW9mIHM9PT0ib2JqZWN0Ij9zLnN0YWNrOm51bGwKcmV0dXJuIHRoaXMuYj10PT1udWxsPyIiOnR9
LAokaWFnOjF9CkguYUkucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmNvbnN0cnVj
dG9yLHM9dD09bnVsbD9udWxsOnQubmFtZQpyZXR1cm4iQ2xvc3VyZSAnIitILmlZKHM9PW51bGw/InVu
a25vd24iOnMpKyInIn0sCiRpYWI6MSwKZ2N0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LAokQzoiJDEi
LAokUjoxLAokRDpudWxsfQpILmQ4LnByb3RvdHlwZT17fQpILmQzLnByb3RvdHlwZT17Cmk6ZnVuY3Rp
b24oYSl7dmFyIHQ9dGhpcy4kc3RhdGljX25hbWUKaWYodD09bnVsbClyZXR1cm4iQ2xvc3VyZSBvZiB1
bmtub3duIHN0YXRpYyBtZXRob2QiCnJldHVybiJDbG9zdXJlICciK0guaVkodCkrIicifX0KSC5iNi5w
cm90b3R5cGU9ewpHOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcwppZihiPT1udWxsKXJldHVybiExCmlm
KHQ9PT1iKXJldHVybiEwCmlmKCEoYiBpbnN0YW5jZW9mIEguYjYpKXJldHVybiExCnJldHVybiB0LmE9
PT1iLmEmJnQuYj09PWIuYiYmdC5jPT09Yi5jfSwKZ3E6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLmMK
aWYocz09bnVsbCl0PUguYlYodGhpcy5hKQplbHNlIHQ9dHlwZW9mIHMhPT0ib2JqZWN0Ij9KLmJ2KHMp
OkguYlYocykKcmV0dXJuKHReSC5iVih0aGlzLmIpKT4+PjB9LAppOmZ1bmN0aW9uKGEpe3ZhciB0PXRo
aXMuYwppZih0PT1udWxsKXQ9dGhpcy5hCnJldHVybiJDbG9zdXJlICciK0guYih0aGlzLmQpKyInIG9m
ICIrKCJJbnN0YW5jZSBvZiAnIitILmIoSC5lZih0KSkrIiciKX19CkguZDAucHJvdG90eXBlPXsKaTpm
dW5jdGlvbihhKXtyZXR1cm4iUnVudGltZUVycm9yOiAiK0guYih0aGlzLmEpfX0KSC5kZy5wcm90b3R5
cGU9ewppOmZ1bmN0aW9uKGEpe3JldHVybiJBc3NlcnRpb24gZmFpbGVkOiAiK1AuYU0odGhpcy5hKX19
CkguYW4ucHJvdG90eXBlPXsKZ206ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX0sCmdKOmZ1bmN0aW9u
KCl7cmV0dXJuIG5ldyBILmFQKHRoaXMsSC52KHRoaXMpLmgoImFQPDE+IikpfSwKYV86ZnVuY3Rpb24o
YSl7dmFyIHQscwppZih0eXBlb2YgYT09InN0cmluZyIpe3Q9dGhpcy5iCmlmKHQ9PW51bGwpcmV0dXJu
ITEKcmV0dXJuIHRoaXMuYk8odCxhKX1lbHNle3M9dGhpcy5jZihhKQpyZXR1cm4gc319LApjZjpmdW5j
dGlvbihhKXt2YXIgdD10aGlzLmQKaWYodD09bnVsbClyZXR1cm4hMQpyZXR1cm4gdGhpcy5hRSh0aGlz
LmF1KHQsSi5idihhKSYweDNmZmZmZmYpLGEpPj0wfSwKajpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixx
LHA9dGhpcyxvPW51bGwKaWYodHlwZW9mIGI9PSJzdHJpbmciKXt0PXAuYgppZih0PT1udWxsKXJldHVy
biBvCnM9cC5hOCh0LGIpCnI9cz09bnVsbD9vOnMuYgpyZXR1cm4gcn1lbHNlIGlmKHR5cGVvZiBiPT0i
bnVtYmVyIiYmKGImMHgzZmZmZmZmKT09PWIpe3E9cC5jCmlmKHE9PW51bGwpcmV0dXJuIG8Kcz1wLmE4
KHEsYikKcj1zPT1udWxsP286cy5iCnJldHVybiByfWVsc2UgcmV0dXJuIHAuY2coYil9LApjZzpmdW5j
dGlvbihhKXt2YXIgdCxzLHI9dGhpcy5kCmlmKHI9PW51bGwpcmV0dXJuIG51bGwKdD10aGlzLmF1KHIs
Si5idihhKSYweDNmZmZmZmYpCnM9dGhpcy5hRSh0LGEpCmlmKHM8MClyZXR1cm4gbnVsbApyZXR1cm4g
dFtzXS5ifSwKbDpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG49dGhpcyxtPUgudihuKQpt
LmQuYihiKQptLmNoWzFdLmIoYykKaWYodHlwZW9mIGI9PSJzdHJpbmciKXt0PW4uYgpuLmFSKHQ9PW51
bGw/bi5iPW4uYXYoKTp0LGIsYyl9ZWxzZSBpZih0eXBlb2YgYj09Im51bWJlciImJihiJjB4M2ZmZmZm
Zik9PT1iKXtzPW4uYwpuLmFSKHM9PW51bGw/bi5jPW4uYXYoKTpzLGIsYyl9ZWxzZXtyPW4uZAppZihy
PT1udWxsKXI9bi5kPW4uYXYoKQpxPUouYnYoYikmMHgzZmZmZmZmCnA9bi5hdShyLHEpCmlmKHA9PW51
bGwpbi5heChyLHEsW24uYW4oYixjKV0pCmVsc2V7bz1uLmFFKHAsYikKaWYobz49MClwW29dLmI9Ywpl
bHNlIHAucHVzaChuLmFuKGIsYykpfX19LApBOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyPXRoaXMKSC52
KHIpLmgoIn4oMSwyKSIpLmIoYikKdD1yLmUKcz1yLnIKZm9yKDt0IT1udWxsOyl7Yi4kMih0LmEsdC5i
KQppZihzIT09ci5yKXRocm93IEguYShQLmF2KHIpKQp0PXQuY319LAphUjpmdW5jdGlvbihhLGIsYyl7
dmFyIHQscz10aGlzLHI9SC52KHMpCnIuZC5iKGIpCnIuY2hbMV0uYihjKQp0PXMuYTgoYSxiKQppZih0
PT1udWxsKXMuYXgoYSxiLHMuYW4oYixjKSkKZWxzZSB0LmI9Y30sCmJHOmZ1bmN0aW9uKCl7dGhpcy5y
PXRoaXMucisxJjY3MTA4ODYzfSwKYW46ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPXRoaXMscj1ILnYocyks
cT1uZXcgSC5lOChyLmQuYihhKSxyLmNoWzFdLmIoYikpCmlmKHMuZT09bnVsbClzLmU9cy5mPXEKZWxz
ZXt0PXMuZgpxLmQ9dApzLmY9dC5jPXF9KytzLmEKcy5iRygpCnJldHVybiBxfSwKYUU6ZnVuY3Rpb24o
YSxiKXt2YXIgdCxzCmlmKGE9PW51bGwpcmV0dXJuLTEKdD1hLmxlbmd0aApmb3Iocz0wO3M8dDsrK3Mp
aWYoSi5jcyhhW3NdLmEsYikpcmV0dXJuIHMKcmV0dXJuLTF9LAppOmZ1bmN0aW9uKGEpe3JldHVybiBQ
LmgzKHRoaXMpfSwKYTg6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYVtiXX0sCmF1OmZ1bmN0aW9uKGEsYil7
cmV0dXJuIGFbYl19LApheDpmdW5jdGlvbihhLGIsYyl7YVtiXT1jfSwKYlA6ZnVuY3Rpb24oYSxiKXtk
ZWxldGUgYVtiXX0sCmJPOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYTgoYSxiKSE9bnVsbH0sCmF2
OmZ1bmN0aW9uKCl7dmFyIHQ9Ijxub24taWRlbnRpZmllci1rZXk+IixzPU9iamVjdC5jcmVhdGUobnVs
bCkKdGhpcy5heChzLHQscykKdGhpcy5iUChzLHQpCnJldHVybiBzfSwKJGloUzoxfQpILmU4LnByb3Rv
dHlwZT17fQpILmFQLnByb3RvdHlwZT17CmdtOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmEuYX0sCmdG
OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYSxzPW5ldyBILmJMKHQsdC5yLHRoaXMuJHRpLmgoImJMPDE+
IikpCnMuYz10LmUKcmV0dXJuIHN9fQpILmJMLnByb3RvdHlwZT17Cmd1OmZ1bmN0aW9uKCl7cmV0dXJu
IHRoaXMuZH0sCnA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHM9dC5hCmlmKHQuYiE9PXMucil0aHJvdyBI
LmEoUC5hdihzKSkKZWxzZXtzPXQuYwppZihzPT1udWxsKXt0LnNhUyhudWxsKQpyZXR1cm4hMX1lbHNl
e3Quc2FTKHMuYSkKdC5jPXQuYy5jCnJldHVybiEwfX19LApzYVM6ZnVuY3Rpb24oYSl7dGhpcy5kPXRo
aXMuJHRpLmQuYihhKX0sCiRpUjoxfQpILmZ5LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVy
biB0aGlzLmEoYSl9LAokUzo0fQpILmZ6LnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7cmV0dXJu
IHRoaXMuYShhLGIpfSwKJFM6MjF9CkguZkEucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJu
IHRoaXMuYShILm8oYSkpfSwKJFM6MjV9CkguY0sucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXtyZXR1
cm4iUmVnRXhwLyIrdGhpcy5hKyIvIit0aGlzLmIuZmxhZ3N9LAokaWNYOjEsCiRpaFo6MX0KSC5DLnBy
b3RvdHlwZT17JGlDOjEsJGlXOjF9CkguYlEucHJvdG90eXBlPXsKZ206ZnVuY3Rpb24oYSl7cmV0dXJu
IGEubGVuZ3RofSwKJGlKOjF9CkguYVIucHJvdG90eXBlPXsKajpmdW5jdGlvbihhLGIpe0gueChiKQpI
LmFyKGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19LApsOmZ1bmN0aW9uKGEsYixjKXtILmFyKGIsYSxh
Lmxlbmd0aCkKYVtiXT1jfSwKJGlqOjEsCiRpbToxfQpILmJSLnByb3RvdHlwZT17Cmw6ZnVuY3Rpb24o
YSxiLGMpe0guYXIoYixhLGEubGVuZ3RoKQphW2JdPWN9LAokaWo6MSwKJGltOjF9CkguY1AucHJvdG90
eXBlPXsKajpmdW5jdGlvbihhLGIpe0gueChiKQpILmFyKGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19
fQpILmNRLnByb3RvdHlwZT17Cmo6ZnVuY3Rpb24oYSxiKXtILngoYikKSC5hcihiLGEsYS5sZW5ndGgp
CnJldHVybiBhW2JdfX0KSC5jUi5wcm90b3R5cGU9ewpqOmZ1bmN0aW9uKGEsYil7SC54KGIpCkguYXIo
YixhLGEubGVuZ3RoKQpyZXR1cm4gYVtiXX19CkguY1MucHJvdG90eXBlPXsKajpmdW5jdGlvbihhLGIp
e0gueChiKQpILmFyKGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19fQpILmNULnByb3RvdHlwZT17Cmo6
ZnVuY3Rpb24oYSxiKXtILngoYikKSC5hcihiLGEsYS5sZW5ndGgpCnJldHVybiBhW2JdfX0KSC5iUy5w
cm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGh9LApqOmZ1bmN0aW9uKGEsYil7
SC54KGIpCkguYXIoYixhLGEubGVuZ3RoKQpyZXR1cm4gYVtiXX19CkguYVMucHJvdG90eXBlPXsKZ206
ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSwKajpmdW5jdGlvbihhLGIpe0gueChiKQpILmFyKGIs
YSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19LAokaWFTOjEsCiRpYWg6MX0KSC5jOS5wcm90b3R5cGU9e30K
SC5jYS5wcm90b3R5cGU9e30KSC5jYi5wcm90b3R5cGU9e30KSC5jYy5wcm90b3R5cGU9e30KSC5hZi5w
cm90b3R5cGU9ewpoOmZ1bmN0aW9uKGEpe3JldHVybiBILmRGKHYudHlwZVVuaXZlcnNlLHRoaXMsYSl9
LApFOmZ1bmN0aW9uKGEpe3JldHVybiBILmtBKHYudHlwZVVuaXZlcnNlLHRoaXMsYSl9fQpILmVCLnBy
b3RvdHlwZT17fQpILmRwLnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX19Ckgu
YzEucHJvdG90eXBlPXt9CkguY2gucHJvdG90eXBlPXt9ClAuZXQucHJvdG90eXBlPXsKJDE6ZnVuY3Rp
b24oYSl7dmFyIHQ9dGhpcy5hLHM9dC5hCnQuYT1udWxsCnMuJDAoKX0sCiRTOjExfQpQLmVzLnByb3Rv
dHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHMKdGhpcy5hLmE9dS5NLmIoYSkKdD10aGlzLmIKcz10
aGlzLmMKdC5maXJzdENoaWxkP3QucmVtb3ZlQ2hpbGQocyk6dC5hcHBlbmRDaGlsZChzKX0sCiRTOjM2
fQpQLmV1LnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhpcy5hLiQwKCl9LAokQzoiJDAiLAokUjow
LAokUzowfQpQLmV2LnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhpcy5hLiQwKCl9LAokQzoiJDAi
LAokUjowLAokUzowfQpQLmRDLnByb3RvdHlwZT17CmJGOmZ1bmN0aW9uKGEsYil7aWYoc2VsZi5zZXRU
aW1lb3V0IT1udWxsKXRoaXMuYj1zZWxmLnNldFRpbWVvdXQoSC5kTShuZXcgUC5mXyh0aGlzLGIpLDAp
LGEpCmVsc2UgdGhyb3cgSC5hKFAuTigiYHNldFRpbWVvdXQoKWAgbm90IGZvdW5kLiIpKX0sCmM0OmZ1
bmN0aW9uKCl7aWYoc2VsZi5zZXRUaW1lb3V0IT1udWxsKXt2YXIgdD10aGlzLmIKaWYodD09bnVsbCly
ZXR1cm4Kc2VsZi5jbGVhclRpbWVvdXQodCkKdGhpcy5iPW51bGx9ZWxzZSB0aHJvdyBILmEoUC5OKCJD
YW5jZWxpbmcgYSB0aW1lci4iKSl9LAokaWs2OjF9ClAuZl8ucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24o
KXt0aGlzLmEuYj1udWxsCnRoaXMuYi4kMCgpfSwKJEM6IiQwIiwKJFI6MCwKJFM6MX0KUC5jMi5wcm90
b3R5cGU9ewpiYTpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PW51bGwpYT1uZXcgUC5iZCgpCnQ9dGhp
cy5hCmlmKHQuYSE9PTApdGhyb3cgSC5hKFAuZDIoIkZ1dHVyZSBhbHJlYWR5IGNvbXBsZXRlZCIpKQp0
LmJLKGEsYil9LApiOTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5iYShhLG51bGwpfX0KUC5jMC5wcm90
b3R5cGU9e30KUC5hWi5wcm90b3R5cGU9ewpjaTpmdW5jdGlvbihhKXtpZigodGhpcy5jJjE1KSE9PTYp
cmV0dXJuITAKcmV0dXJuIHRoaXMuYi5iLmFLKHUuYWwuYih0aGlzLmQpLGEuYSx1LmNKLHUuSyl9LApj
ZTpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmUscz11Lnoscj11LksscT10aGlzLiR0aS5oKCIyLyIpLHA9
dGhpcy5iLmIKaWYodS5ZLmModCkpcmV0dXJuIHEuYihwLmNvKHQsYS5hLGEuYixzLHIsdS5sKSkKZWxz
ZSByZXR1cm4gcS5iKHAuYUsodS55LmIodCksYS5hLHMscikpfX0KUC5TLnByb3RvdHlwZT17CmJuOmZ1
bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscT10aGlzLiR0aQpxLkUoYykuaCgiMS8oMikiKS5iKGEpCnQ9
JC53CmlmKHQhPT1DLmQpe2MuaCgiQDwwLz4iKS5FKHEuZCkuaCgiMSgyKSIpLmIoYSkKaWYoYiE9bnVs
bCliPVAuaXooYix0KX1zPW5ldyBQLlMoJC53LGMuaCgiUzwwPiIpKQpyPWI9PW51bGw/MTozCnRoaXMu
YW8obmV3IFAuYVoocyxyLGEsYixxLmgoIkA8MT4iKS5FKGMpLmgoImFaPDEsMj4iKSkpCnJldHVybiBz
fSwKYTQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5ibihhLG51bGwsYil9LAphZDpmdW5jdGlvbihh
KXt2YXIgdCxzLHIKdS5iZi5iKG51bGwpCnQ9dGhpcy4kdGkKcz0kLncKcj1uZXcgUC5TKHMsdCkKaWYo
cyE9PUMuZClhPVAuaXooYSxzKQp0aGlzLmFvKG5ldyBQLmFaKHIsMixudWxsLGEsdC5oKCJAPDE+Iiku
RSh0LmQpLmgoImFaPDEsMj4iKSkpCnJldHVybiByfSwKYW86ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlz
LHI9cy5hCmlmKHI8PTEpe2EuYT11LnguYihzLmMpCnMuYz1hfWVsc2V7aWYocj09PTIpe3Q9dS5fLmIo
cy5jKQpyPXQuYQppZihyPDQpe3QuYW8oYSkKcmV0dXJufXMuYT1yCnMuYz10LmN9UC5idChudWxsLG51
bGwscy5iLHUuTS5iKG5ldyBQLmVDKHMsYSkpKX19LApiMjpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxw
LG89dGhpcyxuPXt9Cm4uYT1hCmlmKGE9PW51bGwpcmV0dXJuCnQ9by5hCmlmKHQ8PTEpe3M9dS54LmIo
by5jKQpyPW8uYz1hCmlmKHMhPW51bGwpe2Zvcig7cT1yLmEscSE9bnVsbDtyPXEpO3IuYT1zfX1lbHNl
e2lmKHQ9PT0yKXtwPXUuXy5iKG8uYykKdD1wLmEKaWYodDw0KXtwLmIyKGEpCnJldHVybn1vLmE9dApv
LmM9cC5jfW4uYT1vLmFhKGEpClAuYnQobnVsbCxudWxsLG8uYix1Lk0uYihuZXcgUC5lSyhuLG8pKSl9
fSwKYTk6ZnVuY3Rpb24oKXt2YXIgdD11LnguYih0aGlzLmMpCnRoaXMuYz1udWxsCnJldHVybiB0aGlz
LmFhKHQpfSwKYWE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyCmZvcih0PWEscz1udWxsO3QhPW51bGw7cz10
LHQ9cil7cj10LmEKdC5hPXN9cmV0dXJuIHN9LAphVzpmdW5jdGlvbihhKXt2YXIgdCxzPXRoaXMscj1z
LiR0aQpyLmgoIjEvIikuYihhKQppZihyLmgoImJFPDE+IikuYyhhKSlpZihyLmMoYSkpUC5lRihhLHMp
CmVsc2UgUC5pOShhLHMpCmVsc2V7dD1zLmE5KCkKci5kLmIoYSkKcy5hPTQKcy5jPWEKUC5ibyhzLHQp
fX0sCmFwOmZ1bmN0aW9uKGEsYil7dmFyIHQscz10aGlzCnUubC5iKGIpCnQ9cy5hOSgpCnMuYT04CnMu
Yz1uZXcgUC5hdShhLGIpClAuYm8ocyx0KX0sCmJKOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMscz10LiR0
aQpzLmgoIjEvIikuYihhKQppZihzLmgoImJFPDE+IikuYyhhKSl7dC5iTChhKQpyZXR1cm59dC5hPTEK
UC5idChudWxsLG51bGwsdC5iLHUuTS5iKG5ldyBQLmVFKHQsYSkpKX0sCmJMOmZ1bmN0aW9uKGEpe3Zh
ciB0PXRoaXMscz10LiR0aQpzLmgoImJFPDE+IikuYihhKQppZihzLmMoYSkpe2lmKGEuZ2N6KCkpe3Qu
YT0xClAuYnQobnVsbCxudWxsLHQuYix1Lk0uYihuZXcgUC5lSih0LGEpKSl9ZWxzZSBQLmVGKGEsdCkK
cmV0dXJufVAuaTkoYSx0KX0sCmJLOmZ1bmN0aW9uKGEsYil7dGhpcy5hPTEKUC5idChudWxsLG51bGws
dGhpcy5iLHUuTS5iKG5ldyBQLmVEKHRoaXMsYSxiKSkpfSwKJGliRToxfQpQLmVDLnByb3RvdHlwZT17
CiQwOmZ1bmN0aW9uKCl7UC5ibyh0aGlzLmEsdGhpcy5iKX0sCiRTOjB9ClAuZUsucHJvdG90eXBlPXsK
JDA6ZnVuY3Rpb24oKXtQLmJvKHRoaXMuYix0aGlzLmEuYSl9LAokUzowfQpQLmVHLnByb3RvdHlwZT17
CiQxOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYQp0LmE9MAp0LmFXKGEpfSwKJFM6MTF9ClAuZUgucHJv
dG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXt1LmwuYihiKQp0aGlzLmEuYXAoYSxiKX0sCiQxOmZ1bmN0
aW9uKGEpe3JldHVybiB0aGlzLiQyKGEsbnVsbCl9LAokQzoiJDIiLAokRDpmdW5jdGlvbigpe3JldHVy
bltudWxsXX0sCiRTOjM3fQpQLmVJLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhpcy5hLmFwKHRo
aXMuYix0aGlzLmMpfSwKJFM6MH0KUC5lRS5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe3ZhciB0PXRo
aXMuYSxzPXQuJHRpLmQuYih0aGlzLmIpLHI9dC5hOSgpCnQuYT00CnQuYz1zClAuYm8odCxyKX0sCiRT
OjB9ClAuZUoucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXtQLmVGKHRoaXMuYix0aGlzLmEpfSwKJFM6
MH0KUC5lRC5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe3RoaXMuYS5hcCh0aGlzLmIsdGhpcy5jKX0s
CiRTOjB9ClAuZU4ucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwLG8sbj10aGlz
LG09bnVsbAp0cnl7cj1uLmMKbT1yLmIuYi5ibCh1LmZPLmIoci5kKSx1LnopfWNhdGNoKHEpe3Q9SC5R
KHEpCnM9SC5jcChxKQppZihuLmQpe3I9dS5uLmIobi5hLmEuYykuYQpwPXQKcD1yPT1udWxsP3A9PW51
bGw6cj09PXAKcj1wfWVsc2Ugcj0hMQpwPW4uYgppZihyKXAuYj11Lm4uYihuLmEuYS5jKQplbHNlIHAu
Yj1uZXcgUC5hdSh0LHMpCnAuYT0hMApyZXR1cm59aWYodS5jLmMobSkpe2lmKG0gaW5zdGFuY2VvZiBQ
LlMmJm0uYT49NCl7aWYobS5hPT09OCl7cj1uLmIKci5iPXUubi5iKG0uYykKci5hPSEwfXJldHVybn1v
PW4uYS5hCnI9bi5iCnIuYj1tLmE0KG5ldyBQLmVPKG8pLHUueikKci5hPSExfX0sCiRTOjF9ClAuZU8u
cHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX0sCiRTOjM4fQpQLmVNLnByb3Rv
dHlwZT17CiQwOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscCxvLG4sbT10aGlzCnRyeXtyPW0uYgpxPXIu
JHRpCnA9cS5kCm89cC5iKG0uYykKbS5hLmI9ci5iLmIuYUsocS5oKCIyLygxKSIpLmIoci5kKSxvLHEu
aCgiMi8iKSxwKX1jYXRjaChuKXt0PUguUShuKQpzPUguY3AobikKcj1tLmEKci5iPW5ldyBQLmF1KHQs
cykKci5hPSEwfX0sCiRTOjF9ClAuZUwucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXt2YXIgdCxzLHIs
cSxwLG8sbixtLGw9dGhpcwp0cnl7dD11Lm4uYihsLmEuYS5jKQpxPWwuYwppZihILmRLKHEuY2kodCkp
JiZxLmUhPW51bGwpe3A9bC5iCnAuYj1xLmNlKHQpCnAuYT0hMX19Y2F0Y2gobyl7cz1ILlEobykKcj1I
LmNwKG8pCnE9dS5uLmIobC5hLmEuYykKcD1xLmEKbj1zCm09bC5iCmlmKHA9PW51bGw/bj09bnVsbDpw
PT09biltLmI9cQplbHNlIG0uYj1uZXcgUC5hdShzLHIpCm0uYT0hMH19LAokUzoxfQpQLmRoLnByb3Rv
dHlwZT17fQpQLmJZLnByb3RvdHlwZT17CmdtOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj10aGlzLHE9e30s
cD1uZXcgUC5TKCQudyx1LmZKKQpxLmE9MAp0PUgudihyKQpzPXQuaCgifigxKSIpLmIobmV3IFAuZWgo
cSxyKSkKdS5NLmIobmV3IFAuZWkocSxwKSkKVy5hQyhyLmEsci5iLHMsITEsdC5kKQpyZXR1cm4gcH19
ClAuZWgucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7SC52KHRoaXMuYikuZC5iKGEpOysrdGhpcy5h
LmF9LAokUzpmdW5jdGlvbigpe3JldHVybiBILnYodGhpcy5iKS5oKCJwKDEpIil9fQpQLmVpLnByb3Rv
dHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhpcy5iLmFXKHRoaXMuYS5hKX0sCiRTOjB9ClAuZDQucHJvdG90
eXBlPXt9ClAuZDUucHJvdG90eXBlPXt9ClAuYXUucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXtyZXR1
cm4gSC5iKHRoaXMuYSl9LAokaXI6MX0KUC5kRy5wcm90b3R5cGU9eyRpaTg6MX0KUC5mZi5wcm90b3R5
cGU9ewokMDpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcy5hLHI9cy5hCnM9cj09bnVsbD9zLmE9bmV3IFAu
YmQoKTpyCnI9dGhpcy5iCmlmKHI9PW51bGwpdGhyb3cgSC5hKHMpCnQ9SC5hKHMpCnQuc3RhY2s9ci5p
KDApCnRocm93IHR9LAokUzowfQpQLmR4LnByb3RvdHlwZT17CmNwOmZ1bmN0aW9uKGEpe3ZhciB0LHMs
cixxPW51bGwKdS5NLmIoYSkKdHJ5e2lmKEMuZD09PSQudyl7YS4kMCgpCnJldHVybn1QLmlBKHEscSx0
aGlzLGEsdS5IKX1jYXRjaChyKXt0PUguUShyKQpzPUguY3AocikKUC5mZShxLHEsdGhpcyx0LHUubC5i
KHMpKX19LApjcTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHE9bnVsbApjLmgoIn4oMCkiKS5iKGEp
CmMuYihiKQp0cnl7aWYoQy5kPT09JC53KXthLiQxKGIpCnJldHVybn1QLmlCKHEscSx0aGlzLGEsYix1
LkgsYyl9Y2F0Y2gocil7dD1ILlEocikKcz1ILmNwKHIpClAuZmUocSxxLHRoaXMsdCx1LmwuYihzKSl9
fSwKYzE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IFAuZVIodGhpcyxiLmgoIjAoKSIpLmIoYSksYil9
LAphejpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFAuZVEodGhpcyx1Lk0uYihhKSl9LApjMjpmdW5jdGlv
bihhLGIpe3JldHVybiBuZXcgUC5lUyh0aGlzLGIuaCgifigwKSIpLmIoYSksYil9LApqOmZ1bmN0aW9u
KGEsYil7cmV0dXJuIG51bGx9LApibDpmdW5jdGlvbihhLGIpe2IuaCgiMCgpIikuYihhKQppZigkLnc9
PT1DLmQpcmV0dXJuIGEuJDAoKQpyZXR1cm4gUC5pQShudWxsLG51bGwsdGhpcyxhLGIpfSwKYUs6ZnVu
Y3Rpb24oYSxiLGMsZCl7Yy5oKCJAPDA+IikuRShkKS5oKCIxKDIpIikuYihhKQpkLmIoYikKaWYoJC53
PT09Qy5kKXJldHVybiBhLiQxKGIpCnJldHVybiBQLmlCKG51bGwsbnVsbCx0aGlzLGEsYixjLGQpfSwK
Y286ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2QuaCgiQDwwPiIpLkUoZSkuRShmKS5oKCIxKDIsMykiKS5i
KGEpCmUuYihiKQpmLmIoYykKaWYoJC53PT09Qy5kKXJldHVybiBhLiQyKGIsYykKcmV0dXJuIFAubDko
bnVsbCxudWxsLHRoaXMsYSxiLGMsZCxlLGYpfX0KUC5lUi5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigp
e3JldHVybiB0aGlzLmEuYmwodGhpcy5iLHRoaXMuYyl9LAokUzpmdW5jdGlvbigpe3JldHVybiB0aGlz
LmMuaCgiMCgpIil9fQpQLmVRLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS5j
cCh0aGlzLmIpfSwKJFM6MX0KUC5lUy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdD10aGlz
LmMKcmV0dXJuIHRoaXMuYS5jcSh0aGlzLmIsdC5iKGEpLHQpfSwKJFM6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5jLmgoIn4oMCkiKX19ClAuYzYucHJvdG90eXBlPXsKZ0Y6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhp
cyxzPW5ldyBQLmIwKHQsdC5yLEgudih0KS5oKCJiMDwxPiIpKQpzLmM9dC5lCnJldHVybiBzfSwKZ206
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX0sCnc6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzCmlmKHR5cGVv
ZiBiPT0ic3RyaW5nIiYmYiE9PSJfX3Byb3RvX18iKXt0PXRoaXMuYgppZih0PT1udWxsKXJldHVybiEx
CnJldHVybiB1LkouYih0W2JdKSE9bnVsbH1lbHNle3M9dGhpcy5iTihiKQpyZXR1cm4gc319LApiTjpm
dW5jdGlvbihhKXt2YXIgdD10aGlzLmQKaWYodD09bnVsbClyZXR1cm4hMQpyZXR1cm4gdGhpcy5hdCh0
W3RoaXMuYXEoYSldLGEpPj0wfSwKazpmdW5jdGlvbihhLGIpe3ZhciB0LHMscj10aGlzCkgudihyKS5k
LmIoYikKaWYodHlwZW9mIGI9PSJzdHJpbmciJiZiIT09Il9fcHJvdG9fXyIpe3Q9ci5iCnJldHVybiBy
LmFUKHQ9PW51bGw/ci5iPVAuaDkoKTp0LGIpfWVsc2UgaWYodHlwZW9mIGI9PSJudW1iZXIiJiYoYiYx
MDczNzQxODIzKT09PWIpe3M9ci5jCnJldHVybiByLmFUKHM9PW51bGw/ci5jPVAuaDkoKTpzLGIpfWVs
c2UgcmV0dXJuIHIuYkgoYil9LApiSDpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT10aGlzCkgudihxKS5k
LmIoYSkKdD1xLmQKaWYodD09bnVsbCl0PXEuZD1QLmg5KCkKcz1xLmFxKGEpCnI9dFtzXQppZihyPT1u
dWxsKXRbc109W3EuYXcoYSldCmVsc2V7aWYocS5hdChyLGEpPj0wKXJldHVybiExCnIucHVzaChxLmF3
KGEpKX1yZXR1cm4hMH0sCk06ZnVuY3Rpb24oYSxiKXt2YXIgdAppZihiIT09Il9fcHJvdG9fXyIpcmV0
dXJuIHRoaXMuYlUodGhpcy5iLGIpCmVsc2V7dD10aGlzLmJUKGIpCnJldHVybiB0fX0sCmJUOmZ1bmN0
aW9uKGEpe3ZhciB0LHMscixxLHA9dGhpcyxvPXAuZAppZihvPT1udWxsKXJldHVybiExCnQ9cC5hcShh
KQpzPW9bdF0Kcj1wLmF0KHMsYSkKaWYocjwwKXJldHVybiExCnE9cy5zcGxpY2UociwxKVswXQppZigw
PT09cy5sZW5ndGgpZGVsZXRlIG9bdF0KcC5iNShxKQpyZXR1cm4hMH0sCmFUOmZ1bmN0aW9uKGEsYil7
SC52KHRoaXMpLmQuYihiKQppZih1LkouYihhW2JdKSE9bnVsbClyZXR1cm4hMQphW2JdPXRoaXMuYXco
YikKcmV0dXJuITB9LApiVTpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuITEKdD11
LkouYihhW2JdKQppZih0PT1udWxsKXJldHVybiExCnRoaXMuYjUodCkKZGVsZXRlIGFbYl0KcmV0dXJu
ITB9LApiMTpmdW5jdGlvbigpe3RoaXMucj0xMDczNzQxODIzJnRoaXMucisxfSwKYXc6ZnVuY3Rpb24o
YSl7dmFyIHQscz10aGlzLHI9bmV3IFAuZHUoSC52KHMpLmQuYihhKSkKaWYocy5lPT1udWxsKXMuZT1z
LmY9cgplbHNle3Q9cy5mCnIuYz10CnMuZj10LmI9cn0rK3MuYQpzLmIxKCkKcmV0dXJuIHJ9LApiNTpm
dW5jdGlvbihhKXt2YXIgdD10aGlzLHM9YS5jLHI9YS5iCmlmKHM9PW51bGwpdC5lPXIKZWxzZSBzLmI9
cgppZihyPT1udWxsKXQuZj1zCmVsc2Ugci5jPXM7LS10LmEKdC5iMSgpfSwKYXE6ZnVuY3Rpb24oYSl7
cmV0dXJuIEouYnYoYSkmMTA3Mzc0MTgyM30sCmF0OmZ1bmN0aW9uKGEsYil7dmFyIHQscwppZihhPT1u
dWxsKXJldHVybi0xCnQ9YS5sZW5ndGgKZm9yKHM9MDtzPHQ7KytzKWlmKEouY3MoYVtzXS5hLGIpKXJl
dHVybiBzCnJldHVybi0xfX0KUC5kdS5wcm90b3R5cGU9e30KUC5iMC5wcm90b3R5cGU9ewpndTpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmR9LApwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxzPXQuYQppZih0LmIh
PT1zLnIpdGhyb3cgSC5hKFAuYXYocykpCmVsc2V7cz10LmMKaWYocz09bnVsbCl7dC5zYVYobnVsbCkK
cmV0dXJuITF9ZWxzZXt0LnNhVih0LiR0aS5kLmIocy5hKSkKdC5jPXQuYy5iCnJldHVybiEwfX19LApz
YVY6ZnVuY3Rpb24oYSl7dGhpcy5kPXRoaXMuJHRpLmQuYihhKX0sCiRpUjoxfQpQLmJOLnByb3RvdHlw
ZT17JGlqOjEsJGltOjF9ClAubC5wcm90b3R5cGU9ewpnRjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEgu
YVEoYSx0aGlzLmdtKGEpLEguYTgoYSkuaCgiYVE8bC5FPiIpKX0sCk86ZnVuY3Rpb24oYSxiKXtyZXR1
cm4gdGhpcy5qKGEsYil9LApBOmZ1bmN0aW9uKGEsYil7dmFyIHQscwpILmE4KGEpLmgoIn4obC5FKSIp
LmIoYikKdD10aGlzLmdtKGEpCmZvcihzPTA7czx0Oysrcyl7Yi4kMSh0aGlzLmooYSxzKSkKaWYodCE9
PXRoaXMuZ20oYSkpdGhyb3cgSC5hKFAuYXYoYSkpfX0sCmFGOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1I
LmE4KGEpCnJldHVybiBuZXcgSC5hNChhLHQuRShjKS5oKCIxKGwuRSkiKS5iKGIpLHQuaCgiQDxsLkU+
IikuRShjKS5oKCJhNDwxLDI+IikpfSwKY2I6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQKSC5hOChhKS5o
KCJsLkUiKS5iKGQpClAuYVYoYixjLHRoaXMuZ20oYSkpCmZvcih0PWI7dDxjOysrdCl0aGlzLmwoYSx0
LGQpfSwKaTpmdW5jdGlvbihhKXtyZXR1cm4gUC5lNihhLCJbIiwiXSIpfX0KUC5iUC5wcm90b3R5cGU9
e30KUC5lYS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3ZhciB0LHM9dGhpcy5hCmlmKCFzLmEp
dGhpcy5iLmErPSIsICIKcy5hPSExCnM9dGhpcy5iCnQ9cy5hKz1ILmIoYSkKcy5hPXQrIjogIgpzLmEr
PUguYihiKX0sCiRTOjJ9ClAuQi5wcm90b3R5cGU9ewpBOmZ1bmN0aW9uKGEsYil7dmFyIHQscwpILnYo
dGhpcykuaCgifihCLkssQi5WKSIpLmIoYikKZm9yKHQ9Si5hOSh0aGlzLmdKKCkpO3QucCgpOyl7cz10
Lmd1KCkKYi4kMihzLHRoaXMuaigwLHMpKX19LApnbTpmdW5jdGlvbihhKXtyZXR1cm4gSi5hdCh0aGlz
LmdKKCkpfSwKaTpmdW5jdGlvbihhKXtyZXR1cm4gUC5oMyh0aGlzKX0sCiRpeToxfQpQLmNqLnByb3Rv
dHlwZT17Cmw6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PUgudih0aGlzKQp0LmQuYihiKQp0LmNoWzFdLmIo
YykKdGhyb3cgSC5hKFAuTigiQ2Fubm90IG1vZGlmeSB1bm1vZGlmaWFibGUgbWFwIikpfX0KUC5iYy5w
cm90b3R5cGU9ewpqOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYS5qKDAsYil9LApsOmZ1bmN0aW9u
KGEsYixjKXt2YXIgdD1ILnYodGhpcykKdGhpcy5hLmwoMCx0LmQuYihiKSx0LmNoWzFdLmIoYykpfSwK
QTpmdW5jdGlvbihhLGIpe3RoaXMuYS5BKDAsSC52KHRoaXMpLmgoIn4oMSwyKSIpLmIoYikpfSwKZ206
ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybiB0LmdtKHQpfSwKaTpmdW5jdGlvbihhKXtyZXR1
cm4gSi5iMih0aGlzLmEpfSwKJGl5OjF9ClAuYXoucHJvdG90eXBlPXt9ClAuYVcucHJvdG90eXBlPXsK
aTpmdW5jdGlvbihhKXtyZXR1cm4gUC5lNih0aGlzLCJ7IiwifSIpfX0KUC5iVy5wcm90b3R5cGU9eyRp
ajoxLCRpTToxfQpQLmNkLnByb3RvdHlwZT17Ckk6ZnVuY3Rpb24oYSxiKXt2YXIgdApmb3IodD1KLmE5
KEgudih0aGlzKS5oKCJqPDE+IikuYihiKSk7dC5wKCk7KXRoaXMuaygwLHQuZ3UoKSl9LAppOmZ1bmN0
aW9uKGEpe3JldHVybiBQLmU2KHRoaXMsInsiLCJ9Iil9LApUOmZ1bmN0aW9uKGEsYil7dmFyIHQscz1Q
LmljKHRoaXMsdGhpcy5yLEgudih0aGlzKS5kKQppZighcy5wKCkpcmV0dXJuIiIKaWYoYj09PSIiKXt0
PSIiCmRvIHQrPUguYihzLmQpCndoaWxlKHMucCgpKX1lbHNle3Q9SC5iKHMuZCkKZm9yKDtzLnAoKTsp
dD10K2IrSC5iKHMuZCl9cmV0dXJuIHQuY2hhckNvZGVBdCgwKT09MD90OnR9LAokaWo6MSwKJGlNOjF9
ClAuYzcucHJvdG90eXBlPXt9ClAuY2UucHJvdG90eXBlPXt9ClAuYnEucHJvdG90eXBlPXt9ClAuZHMu
cHJvdG90eXBlPXsKajpmdW5jdGlvbihhLGIpe3ZhciB0LHM9dGhpcy5iCmlmKHM9PW51bGwpcmV0dXJu
IHRoaXMuYy5qKDAsYikKZWxzZSBpZih0eXBlb2YgYiE9InN0cmluZyIpcmV0dXJuIG51bGwKZWxzZXt0
PXNbYl0KcmV0dXJuIHR5cGVvZiB0PT0idW5kZWZpbmVkIj90aGlzLmJSKGIpOnR9fSwKZ206ZnVuY3Rp
b24oYSl7cmV0dXJuIHRoaXMuYj09bnVsbD90aGlzLmMuYTp0aGlzLmExKCkubGVuZ3RofSwKZ0o6ZnVu
Y3Rpb24oKXtpZih0aGlzLmI9PW51bGwpe3ZhciB0PXRoaXMuYwpyZXR1cm4gbmV3IEguYVAodCxILnYo
dCkuaCgiYVA8MT4iKSl9cmV0dXJuIG5ldyBQLmR0KHRoaXMpfSwKbDpmdW5jdGlvbihhLGIsYyl7dmFy
IHQscyxyPXRoaXMKaWYoci5iPT1udWxsKXIuYy5sKDAsYixjKQplbHNlIGlmKHIuYV8oYikpe3Q9ci5i
CnRbYl09YwpzPXIuYQppZihzPT1udWxsP3QhPW51bGw6cyE9PXQpc1tiXT1udWxsfWVsc2Ugci5iWigp
LmwoMCxiLGMpfSwKYV86ZnVuY3Rpb24oYSl7aWYodGhpcy5iPT1udWxsKXJldHVybiB0aGlzLmMuYV8o
YSkKcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmEsYSl9LApB
OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscD10aGlzCnUuY0EuYihiKQppZihwLmI9PW51bGwpcmV0
dXJuIHAuYy5BKDAsYikKdD1wLmExKCkKZm9yKHM9MDtzPHQubGVuZ3RoOysrcyl7cj10W3NdCnE9cC5i
W3JdCmlmKHR5cGVvZiBxPT0idW5kZWZpbmVkIil7cT1QLmY2KHAuYVtyXSkKcC5iW3JdPXF9Yi4kMihy
LHEpCmlmKHQhPT1wLmMpdGhyb3cgSC5hKFAuYXYocCkpfX0sCmExOmZ1bmN0aW9uKCl7dmFyIHQ9dS5q
LmIodGhpcy5jKQppZih0PT1udWxsKXQ9dGhpcy5jPUgubihPYmplY3Qua2V5cyh0aGlzLmEpLHUucykK
cmV0dXJuIHR9LApiWjpmdW5jdGlvbigpe3ZhciB0LHMscixxLHAsbz10aGlzCmlmKG8uYj09bnVsbCly
ZXR1cm4gby5jCnQ9UC5lOSh1Lk4sdS56KQpzPW8uYTEoKQpmb3Iocj0wO3E9cy5sZW5ndGgscjxxOysr
cil7cD1zW3JdCnQubCgwLHAsby5qKDAscCkpfWlmKHE9PT0wKUMuYi5rKHMsbnVsbCkKZWxzZSBDLmIu
c20ocywwKQpvLmE9by5iPW51bGwKcmV0dXJuIG8uYz10fSwKYlI6ZnVuY3Rpb24oYSl7dmFyIHQKaWYo
IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmEsYSkpcmV0dXJuIG51bGwK
dD1QLmY2KHRoaXMuYVthXSkKcmV0dXJuIHRoaXMuYlthXT10fX0KUC5kdC5wcm90b3R5cGU9ewpnbTpm
dW5jdGlvbihhKXt2YXIgdD10aGlzLmEKcmV0dXJuIHQuZ20odCl9LApPOmZ1bmN0aW9uKGEsYil7dmFy
IHQ9dGhpcy5hCmlmKHQuYj09bnVsbCl0PXQuZ0ooKS5PKDAsYikKZWxzZXt0PXQuYTEoKQppZihiPDB8
fGI+PXQubGVuZ3RoKXJldHVybiBILmkodCxiKQp0PXRbYl19cmV0dXJuIHR9LApnRjpmdW5jdGlvbihh
KXt2YXIgdD10aGlzLmEKaWYodC5iPT1udWxsKXt0PXQuZ0ooKQp0PXQuZ0YodCl9ZWxzZXt0PXQuYTEo
KQp0PW5ldyBKLmFGKHQsdC5sZW5ndGgsSC5aKHQpLmgoImFGPDE+IikpfXJldHVybiB0fX0KUC5jdy5w
cm90b3R5cGU9ewpjazpmdW5jdGlvbihhLGEwLGExKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGks
aCxnLGYsZSxkLGMsYj0iSW52YWxpZCBiYXNlNjQgZW5jb2RpbmcgbGVuZ3RoICIKYTE9UC5hVihhMCxh
MSxhLmxlbmd0aCkKdD0kLmpkKCkKZm9yKHM9YTAscj1zLHE9bnVsbCxwPS0xLG89LTEsbj0wO3M8YTE7
cz1tKXttPXMrMQpsPUMuYS50KGEscykKaWYobD09PTM3KXtrPW0rMgppZihrPD1hMSl7aj1ILmZ3KEMu
YS50KGEsbSkpCmk9SC5mdyhDLmEudChhLG0rMSkpCmg9aioxNitpLShpJjI1NikKaWYoaD09PTM3KWg9
LTEKbT1rfWVsc2UgaD0tMX1lbHNlIGg9bAppZigwPD1oJiZoPD0xMjcpe2lmKGg8MHx8aD49dC5sZW5n
dGgpcmV0dXJuIEguaSh0LGgpCmc9dFtoXQppZihnPj0wKXtoPUMuYS52KCJBQkNERUZHSElKS0xNTk9Q
UVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixnKQppZihoPT09
bCljb250aW51ZQpsPWh9ZWxzZXtpZihnPT09LTEpe2lmKHA8MCl7Zj1xPT1udWxsP251bGw6cS5hLmxl
bmd0aAppZihmPT1udWxsKWY9MApwPWYrKHMtcikKbz1zfSsrbgppZihsPT09NjEpY29udGludWV9bD1o
fWlmKGchPT0tMil7aWYocT09bnVsbClxPW5ldyBQLkgoIiIpCnEuYSs9Qy5hLm4oYSxyLHMpCnEuYSs9
SC5kXyhsKQpyPW0KY29udGludWV9fXRocm93IEguYShQLkEoIkludmFsaWQgYmFzZTY0IGRhdGEiLGEs
cykpfWlmKHEhPW51bGwpe2Y9cS5hKz1DLmEubihhLHIsYTEpCmU9Zi5sZW5ndGgKaWYocD49MClQLmhJ
KGEsbyxhMSxwLG4sZSkKZWxzZXtkPUMuYy5hayhlLTEsNCkrMQppZihkPT09MSl0aHJvdyBILmEoUC5B
KGIsYSxhMSkpCmZvcig7ZDw0Oyl7Zis9Ij0iCnEuYT1mOysrZH19Zj1xLmEKcmV0dXJuIEMuYS5hMChh
LGEwLGExLGYuY2hhckNvZGVBdCgwKT09MD9mOmYpfWM9YTEtYTAKaWYocD49MClQLmhJKGEsbyxhMSxw
LG4sYykKZWxzZXtkPUMuYy5hayhjLDQpCmlmKGQ9PT0xKXRocm93IEguYShQLkEoYixhLGExKSkKaWYo
ZD4xKWE9Qy5hLmEwKGEsYTEsYTEsZD09PTI/Ij09IjoiPSIpfXJldHVybiBhfX0KUC5jeC5wcm90b3R5
cGU9e30KUC5hMi5wcm90b3R5cGU9e30KUC5hSy5wcm90b3R5cGU9e30KUC5jRS5wcm90b3R5cGU9e30K
UC5jTS5wcm90b3R5cGU9ewphQjpmdW5jdGlvbihhLGIsYyl7dmFyIHQKdS5lcC5iKGMpCnQ9UC5sOChi
LHRoaXMuZ2M5KCkuYSkKcmV0dXJuIHR9LApnYzk6ZnVuY3Rpb24oKXtyZXR1cm4gQy5TfX0KUC5jTi5w
cm90b3R5cGU9e30KUC5kZC5wcm90b3R5cGU9ewpnY2E6ZnVuY3Rpb24oKXtyZXR1cm4gQy5MfX0KUC5k
Zi5wcm90b3R5cGU9ewphQTpmdW5jdGlvbihhKXt2YXIgdCxzLHI9UC5hVigwLG51bGwsYS5nbShhKSks
cT1yLTAKaWYocT09PTApcmV0dXJuIG5ldyBVaW50OEFycmF5KDApCnQ9bmV3IFVpbnQ4QXJyYXkocSoz
KQpzPW5ldyBQLmY0KHQpCmlmKHMuYlEoYSwwLHIpIT09cilzLmI2KGEudigwLHItMSksMCkKcmV0dXJu
IG5ldyBVaW50OEFycmF5KHQuc3ViYXJyYXkoMCxILmtVKDAscy5iLHQubGVuZ3RoKSkpfX0KUC5mNC5w
cm90b3R5cGU9ewpiNjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHA9dGhpcwppZigoYiY2NDUxMik9
PT01NjMyMClQLmtWKGEsYikKZWxzZXt0PXAuYwpzPXAuYisrCnI9Qy5jLlIoMjI0LGEuYTcoMCwxMikp
CnE9dC5sZW5ndGgKaWYocz49cSlyZXR1cm4gSC5pKHQscykKdFtzXT1yCnI9cC5iKysKcz1DLmMuUigx
MjgsYS5hNygwLDYpLlAoMCw2MykpCmlmKHI+PXEpcmV0dXJuIEguaSh0LHIpCnRbcl09cwpzPXAuYisr
CnI9Qy5jLlIoMTI4LGEuUCgwLDYzKSkKaWYocz49cSlyZXR1cm4gSC5pKHQscykKdFtzXT1yCnJldHVy
biExfX0sCmJROmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscSxwLG8sbixtPXRoaXMKaWYoYiE9PWMm
JlAuaXgoYS52KDAsYy0xKSkpLS1jCmZvcih0PW0uYyxzPXQubGVuZ3RoLHI9YjtyPGM7KytyKXtxPWEu
digwLHIpCmlmKHEuYnMoMCwxMjcpKXtwPW0uYgppZihwPj1zKWJyZWFrCm0uYj1wKzEKQy5hXy5sKHQs
cCxxKX1lbHNlIGlmKFAuaXgocSkpe2lmKG0uYiszPj1zKWJyZWFrCm89cisxCmlmKG0uYjYocSxhLnYo
MCxvKSkpcj1vfWVsc2UgaWYocS5icygwLDIwNDcpKXtwPW0uYgpuPXArMQppZihuPj1zKWJyZWFrCm0u
Yj1uCm49Qy5jLlIoMTkyLHEuYTcoMCw2KSkKaWYocD49cylyZXR1cm4gSC5pKHQscCkKdFtwXT1uCm49
bS5iKysKcD1DLmMuUigxMjgscS5QKDAsNjMpKQppZihuPj1zKXJldHVybiBILmkodCxuKQp0W25dPXB9
ZWxzZXtwPW0uYgppZihwKzI+PXMpYnJlYWsKbS5iPXArMQpuPUMuYy5SKDIyNCxxLmE3KDAsMTIpKQpp
ZihwPj1zKXJldHVybiBILmkodCxwKQp0W3BdPW4Kbj1tLmIrKwpwPUMuYy5SKDEyOCxxLmE3KDAsNiku
UCgwLDYzKSkKaWYobj49cylyZXR1cm4gSC5pKHQsbikKdFtuXT1wCnA9bS5iKysKbj1DLmMuUigxMjgs
cS5QKDAsNjMpKQppZihwPj1zKXJldHVybiBILmkodCxwKQp0W3BdPW59fXJldHVybiByfX0KUC5kZS5w
cm90b3R5cGU9ewphQTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwKdS5MLmIoYSkKdD1Q
LmthKCExLGEsMCxudWxsKQppZih0IT1udWxsKXJldHVybiB0CnM9UC5hVigwLG51bGwsSi5hdChhKSkK
cj1QLmlEKGEsMCxzKQppZihyPjApe3E9UC5oNihhLDAscikKaWYocj09PXMpcmV0dXJuIHEKcD1uZXcg
UC5IKHEpCm89cgpuPSExfWVsc2V7bz0wCnA9bnVsbApuPSEwfWlmKHA9PW51bGwpcD1uZXcgUC5IKCIi
KQptPW5ldyBQLmYzKCExLHApCm0uYz1uCm0uYzYoYSxvLHMpCmlmKG0uZT4wKXtILmFrKFAuQSgiVW5m
aW5pc2hlZCBVVEYtOCBvY3RldCBzZXF1ZW5jZSIsYSxzKSkKcC5hKz1ILmRfKDY1NTMzKQptLmY9bS5l
PW0uZD0wfWw9cC5hCnJldHVybiBsLmNoYXJDb2RlQXQoMCk9PTA/bDpsfX0KUC5mMy5wcm90b3R5cGU9
ewpjNjpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGg9dGhpcyxnPSJC
YWQgVVRGLTggZW5jb2RpbmcgMHgiCnUuTC5iKGEpCnQ9aC5kCnM9aC5lCnI9aC5mCmguZj1oLmU9aC5k
PTAKJGxhYmVsMCQwOmZvcihxPUouYV8oYSkscD1oLmIsbz1iOyEwO289ail7JGxhYmVsMSQxOmlmKHM+
MCl7ZG97aWYobz09PWMpYnJlYWsgJGxhYmVsMCQwCm49cS5qKGEsbykKaWYodHlwZW9mIG4hPT0ibnVt
YmVyIilyZXR1cm4gbi5QKCkKaWYoKG4mMTkyKSE9PTEyOCl7bT1QLkEoZytDLmMuYTUobiwxNiksYSxv
KQp0aHJvdyBILmEobSl9ZWxzZXt0PSh0PDw2fG4mNjMpPj4+MDstLXM7KytvfX13aGlsZShzPjApCm09
ci0xCmlmKG08MHx8bT49NClyZXR1cm4gSC5pKEMudSxtKQppZih0PD1DLnVbbV0pe209UC5BKCJPdmVy
bG9uZyBlbmNvZGluZyBvZiAweCIrQy5jLmE1KHQsMTYpLGEsby1yLTEpCnRocm93IEguYShtKX1pZih0
PjExMTQxMTEpe209UC5BKCJDaGFyYWN0ZXIgb3V0c2lkZSB2YWxpZCBVbmljb2RlIHJhbmdlOiAweCIr
Qy5jLmE1KHQsMTYpLGEsby1yLTEpCnRocm93IEguYShtKX1pZighaC5jfHx0IT09NjUyNzkpcC5hKz1I
LmRfKHQpCmguYz0hMX1mb3IobT1vPGM7bTspe2w9UC5pRChhLG8sYykKaWYobD4wKXtoLmM9ITEKaz1v
K2wKcC5hKz1QLmg2KGEsbyxrKQppZihrPT09YylicmVha31lbHNlIGs9bwpqPWsrMQpuPXEuaihhLGsp
CmlmKHR5cGVvZiBuIT09Im51bWJlciIpcmV0dXJuIG4uRCgpCmlmKG48MCl7aT1QLkEoIk5lZ2F0aXZl
IFVURi04IGNvZGUgdW5pdDogLTB4IitDLmMuYTUoLW4sMTYpLGEsai0xKQp0aHJvdyBILmEoaSl9ZWxz
ZXtpZigobiYyMjQpPT09MTkyKXt0PW4mMzEKcz0xCnI9MQpjb250aW51ZSAkbGFiZWwwJDB9aWYoKG4m
MjQwKT09PTIyNCl7dD1uJjE1CnM9MgpyPTIKY29udGludWUgJGxhYmVsMCQwfWlmKChuJjI0OCk9PT0y
NDAmJm48MjQ1KXt0PW4mNwpzPTMKcj0zCmNvbnRpbnVlICRsYWJlbDAkMH1pPVAuQShnK0MuYy5hNShu
LDE2KSxhLGotMSkKdGhyb3cgSC5hKGkpfX1icmVhayAkbGFiZWwwJDB9aWYocz4wKXtoLmQ9dApoLmU9
cwpoLmY9cn19fQpQLmViLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyCnUuZm8u
YihhKQp0PXRoaXMuYgpzPXRoaXMuYQp0LmErPXMuYQpyPXQuYSs9SC5iKGEuYSkKdC5hPXIrIjogIgp0
LmErPVAuYU0oYikKcy5hPSIsICJ9LAokUzoxN30KUC56LnByb3RvdHlwZT17fQpQLmI3LnByb3RvdHlw
ZT17Ckc6ZnVuY3Rpb24oYSxiKXtpZihiPT1udWxsKXJldHVybiExCnJldHVybiBiIGluc3RhbmNlb2Yg
UC5iNyYmdGhpcy5hPT09Yi5hJiYhMH0sCmdxOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYQpyZXR1cm4o
dF5DLmMuWih0LDMwKSkmMTA3Mzc0MTgyM30sCmk6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcyxzPVAuakQo
SC5qWih0KSkscj1QLmNDKEgualgodCkpLHE9UC5jQyhILmpUKHQpKSxwPVAuY0MoSC5qVSh0KSksbz1Q
LmNDKEgualcodCkpLG49UC5jQyhILmpZKHQpKSxtPVAuakUoSC5qVih0KSksbD1zKyItIityKyItIitx
KyIgIitwKyI6IitvKyI6IituKyIuIittCnJldHVybiBsfX0KUC5ULnByb3RvdHlwZT17fQpQLmI4LnBy
b3RvdHlwZT17Ckc6ZnVuY3Rpb24oYSxiKXtpZihiPT1udWxsKXJldHVybiExCnJldHVybiBiIGluc3Rh
bmNlb2YgUC5iOCYmdGhpcy5hPT09Yi5hfSwKZ3E6ZnVuY3Rpb24oYSl7cmV0dXJuIEMuYy5ncSh0aGlz
LmEpfSwKaTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT1uZXcgUC5kWSgpLHA9dGhpcy5hCmlmKHA8MCly
ZXR1cm4iLSIrbmV3IFAuYjgoMC1wKS5pKDApCnQ9cS4kMShDLmMuYWIocCw2ZTcpJTYwKQpzPXEuJDEo
Qy5jLmFiKHAsMWU2KSU2MCkKcj1uZXcgUC5kWCgpLiQxKHAlMWU2KQpyZXR1cm4iIitDLmMuYWIocCwz
NmU4KSsiOiIrSC5iKHQpKyI6IitILmIocykrIi4iK0guYihyKX19ClAuZFgucHJvdG90eXBlPXsKJDE6
ZnVuY3Rpb24oYSl7aWYoYT49MWU1KXJldHVybiIiK2EKaWYoYT49MWU0KXJldHVybiIwIithCmlmKGE+
PTEwMDApcmV0dXJuIjAwIithCmlmKGE+PTEwMClyZXR1cm4iMDAwIithCmlmKGE+PTEwKXJldHVybiIw
MDAwIithCnJldHVybiIwMDAwMCIrYX0sCiRTOjEyfQpQLmRZLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9u
KGEpe2lmKGE+PTEwKXJldHVybiIiK2EKcmV0dXJuIjAiK2F9LAokUzoxMn0KUC5yLnByb3RvdHlwZT17
fQpQLmJ3LnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCmlmKHQhPW51bGwpcmV0
dXJuIkFzc2VydGlvbiBmYWlsZWQ6ICIrUC5hTSh0KQpyZXR1cm4iQXNzZXJ0aW9uIGZhaWxlZCJ9fQpQ
LmJkLnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIlRocm93IG9mIG51bGwuIn19ClAuYTEu
cHJvdG90eXBlPXsKZ2FzOmZ1bmN0aW9uKCl7cmV0dXJuIkludmFsaWQgYXJndW1lbnQiKyghdGhpcy5h
PyIocykiOiIiKX0sCmdhcjpmdW5jdGlvbigpe3JldHVybiIifSwKaTpmdW5jdGlvbihhKXt2YXIgdCxz
LHIscSxwPXRoaXMsbz1wLmMsbj1vIT1udWxsPyIgKCIrbysiKSI6IiIKbz1wLmQKdD1vPT1udWxsPyIi
OiI6ICIrSC5iKG8pCnM9cC5nYXMoKStuK3QKaWYoIXAuYSlyZXR1cm4gcwpyPXAuZ2FyKCkKcT1QLmFN
KHAuYikKcmV0dXJuIHMrcisiOiAiK3F9fQpQLmFVLnByb3RvdHlwZT17CmdhczpmdW5jdGlvbigpe3Jl
dHVybiJSYW5nZUVycm9yIn0sCmdhcjpmdW5jdGlvbigpe3ZhciB0LHMscj10aGlzLmUKaWYocj09bnVs
bCl7cj10aGlzLmYKdD1yIT1udWxsPyI6IE5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gIitILmIocik6
IiJ9ZWxzZXtzPXRoaXMuZgppZihzPT1udWxsKXQ9IjogTm90IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0
byAiK0guYihyKQplbHNlIGlmKHM+cil0PSI6IE5vdCBpbiByYW5nZSAiK0guYihyKSsiLi4iK0guYihz
KSsiLCBpbmNsdXNpdmUiCmVsc2UgdD1zPHI/IjogVmFsaWQgdmFsdWUgcmFuZ2UgaXMgZW1wdHkiOiI6
IE9ubHkgdmFsaWQgdmFsdWUgaXMgIitILmIocil9cmV0dXJuIHR9fQpQLmNHLnByb3RvdHlwZT17Cmdh
czpmdW5jdGlvbigpe3JldHVybiJSYW5nZUVycm9yIn0sCmdhcjpmdW5jdGlvbigpe3ZhciB0LHM9SC54
KHRoaXMuYikKaWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5EKCkKaWYoczwwKXJldHVybiI6
IGluZGV4IG11c3Qgbm90IGJlIG5lZ2F0aXZlIgp0PXRoaXMuZgppZih0PT09MClyZXR1cm4iOiBubyBp
bmRpY2VzIGFyZSB2YWxpZCIKcmV0dXJuIjogaW5kZXggc2hvdWxkIGJlIGxlc3MgdGhhbiAiK0guYih0
KX0sCmdtOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmZ9fQpQLmNVLnByb3RvdHlwZT17Cmk6ZnVuY3Rp
b24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxsPXRoaXMsaz17fSxqPW5ldyBQLkgoIiIpCmsuYT0iIgpm
b3IodD1sLmMscz10Lmxlbmd0aCxyPTAscT0iIixwPSIiO3I8czsrK3IscD0iLCAiKXtvPXRbcl0Kai5h
PXErcApxPWouYSs9UC5hTShvKQprLmE9IiwgIn1sLmQuQSgwLG5ldyBQLmViKGssaikpCm49UC5hTShs
LmEpCm09ai5pKDApCnQ9Ik5vU3VjaE1ldGhvZEVycm9yOiBtZXRob2Qgbm90IGZvdW5kOiAnIitILmIo
bC5iLmEpKyInXG5SZWNlaXZlcjogIituKyJcbkFyZ3VtZW50czogWyIrbSsiXSIKcmV0dXJuIHR9fQpQ
LmRiLnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIlVuc3VwcG9ydGVkIG9wZXJhdGlvbjog
Iit0aGlzLmF9fQpQLmQ5LnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVy
biB0IT1udWxsPyJVbmltcGxlbWVudGVkRXJyb3I6ICIrdDoiVW5pbXBsZW1lbnRlZEVycm9yIn19ClAu
YmgucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXtyZXR1cm4iQmFkIHN0YXRlOiAiK3RoaXMuYX19ClAu
Y3oucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmEKaWYodD09bnVsbClyZXR1cm4i
Q29uY3VycmVudCBtb2RpZmljYXRpb24gZHVyaW5nIGl0ZXJhdGlvbi4iCnJldHVybiJDb25jdXJyZW50
IG1vZGlmaWNhdGlvbiBkdXJpbmcgaXRlcmF0aW9uOiAiK1AuYU0odCkrIi4ifX0KUC5jVy5wcm90b3R5
cGU9ewppOmZ1bmN0aW9uKGEpe3JldHVybiJPdXQgb2YgTWVtb3J5In0sCiRpcjoxfQpQLmJYLnByb3Rv
dHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIlN0YWNrIE92ZXJmbG93In0sCiRpcjoxfQpQLmNCLnBy
b3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybiB0PT1udWxsPyJSZWFkaW5n
IHN0YXRpYyB2YXJpYWJsZSBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIjoiUmVhZGluZyBzdGF0aWMg
dmFyaWFibGUgJyIrdCsiJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIn19ClAuZUEucHJvdG90eXBl
PXsKaTpmdW5jdGlvbihhKXtyZXR1cm4iRXhjZXB0aW9uOiAiK3RoaXMuYX19ClAuZV8ucHJvdG90eXBl
PXsKaTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaD10aGlzLmEsZz0iIiE9
PWg/IkZvcm1hdEV4Y2VwdGlvbjogIitoOiJGb3JtYXRFeGNlcHRpb24iLGY9dGhpcy5jLGU9dGhpcy5i
CmlmKHR5cGVvZiBlPT0ic3RyaW5nIil7aWYoZiE9bnVsbCloPWY8MHx8Zj5lLmxlbmd0aAplbHNlIGg9
ITEKaWYoaClmPW51bGwKaWYoZj09bnVsbCl7dD1lLmxlbmd0aD43OD9DLmEubihlLDAsNzUpKyIuLi4i
OmUKcmV0dXJuIGcrIlxuIit0fWZvcihzPTEscj0wLHE9ITEscD0wO3A8ZjsrK3Ape289Qy5hLnQoZSxw
KQppZihvPT09MTApe2lmKHIhPT1wfHwhcSkrK3MKcj1wKzEKcT0hMX1lbHNlIGlmKG89PT0xMyl7Kytz
CnI9cCsxCnE9ITB9fWc9cz4xP2crKCIgKGF0IGxpbmUgIitzKyIsIGNoYXJhY3RlciAiKyhmLXIrMSkr
IilcbiIpOmcrKCIgKGF0IGNoYXJhY3RlciAiKyhmKzEpKyIpXG4iKQpuPWUubGVuZ3RoCmZvcihwPWY7
cDxuOysrcCl7bz1DLmEudihlLHApCmlmKG89PT0xMHx8bz09PTEzKXtuPXAKYnJlYWt9fWlmKG4tcj43
OClpZihmLXI8NzUpe209cis3NQpsPXIKaz0iIgpqPSIuLi4ifWVsc2V7aWYobi1mPDc1KXtsPW4tNzUK
bT1uCmo9IiJ9ZWxzZXtsPWYtMzYKbT1mKzM2Cmo9Ii4uLiJ9az0iLi4uIn1lbHNle209bgpsPXIKaz0i
IgpqPSIifWk9Qy5hLm4oZSxsLG0pCnJldHVybiBnK2sraStqKyJcbiIrQy5hLmFOKCIgIixmLWwray5s
ZW5ndGgpKyJeXG4ifWVsc2UgcmV0dXJuIGYhPW51bGw/ZysoIiAoYXQgb2Zmc2V0ICIrSC5iKGYpKyIp
Iik6Z319ClAuYWIucHJvdG90eXBlPXt9ClAuZi5wcm90b3R5cGU9e30KUC5qLnByb3RvdHlwZT17CmFq
OmZ1bmN0aW9uKGEsYil7dmFyIHQ9SC52KHRoaXMpCnJldHVybiBuZXcgSC5hWSh0aGlzLHQuaCgieihq
LkUpIikuYihiKSx0LmgoImFZPGouRT4iKSl9LApnbTpmdW5jdGlvbihhKXt2YXIgdCxzPXRoaXMuZ0Yo
dGhpcykKZm9yKHQ9MDtzLnAoKTspKyt0CnJldHVybiB0fSwKZ1k6ZnVuY3Rpb24oYSl7dmFyIHQscz10
aGlzLmdGKHRoaXMpCmlmKCFzLnAoKSl0aHJvdyBILmEoSC5oUCgpKQp0PXMuZ3UoKQppZihzLnAoKSl0
aHJvdyBILmEoSC5qSSgpKQpyZXR1cm4gdH0sCk86ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIKUC5rMShi
LCJpbmRleCIpCmZvcih0PXRoaXMuZ0YodGhpcykscz0wO3QucCgpOyl7cj10Lmd1KCkKaWYoYj09PXMp
cmV0dXJuIHI7KytzfXRocm93IEguYShQLmU1KGIsdGhpcywiaW5kZXgiLG51bGwscykpfSwKaTpmdW5j
dGlvbihhKXtyZXR1cm4gUC5qSCh0aGlzLCIoIiwiKSIpfX0KUC5SLnByb3RvdHlwZT17fQpQLm0ucHJv
dG90eXBlPXskaWo6MX0KUC55LnByb3RvdHlwZT17fQpQLnAucHJvdG90eXBlPXsKZ3E6ZnVuY3Rpb24o
YSl7cmV0dXJuIFAudC5wcm90b3R5cGUuZ3EuY2FsbCh0aGlzLHRoaXMpfSwKaTpmdW5jdGlvbihhKXty
ZXR1cm4ibnVsbCJ9fQpQLlUucHJvdG90eXBlPXt9ClAudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlAu
dCwkaXQ6MSwKRzpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzPT09Yn0sCmdxOmZ1bmN0aW9uKGEpe3Jl
dHVybiBILmJWKHRoaXMpfSwKaTpmdW5jdGlvbihhKXtyZXR1cm4iSW5zdGFuY2Ugb2YgJyIrSC5iKEgu
ZWYodGhpcykpKyInIn0sCmFoOmZ1bmN0aW9uKGEsYil7dS5vLmIoYikKdGhyb3cgSC5hKFAuaFUodGhp
cyxiLmdiZygpLGIuZ2JqKCksYi5nYmgoKSkpfSwKdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5pKHRoaXMpfX0KUC5NLnByb3RvdHlwZT17fQpQLmFnLnByb3RvdHlwZT17fQpQLmMucHJvdG90eXBl
PXskaWNYOjF9ClAuSC5wcm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmxlbmd0
aH0sCmk6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybiB0LmNoYXJDb2RlQXQoMCk9PTA/dDp0
fSwKJGlrNDoxfQpQLmE2LnByb3RvdHlwZT17fQpQLmVxLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEs
Yil7dmFyIHQscyxyLHEKdS5mLmIoYSkKSC5vKGIpCnQ9Si5hMChiKS5iZihiLCI9IikKaWYodD09PS0x
KXtpZihiIT09IiIpYS5sKDAsUC5oZihiLDAsYi5sZW5ndGgsdGhpcy5hLCEwKSwiIil9ZWxzZSBpZih0
IT09MCl7cz1DLmEubihiLDAsdCkKcj1DLmEuVShiLHQrMSkKcT10aGlzLmEKYS5sKDAsUC5oZihzLDAs
cy5sZW5ndGgscSwhMCksUC5oZihyLDAsci5sZW5ndGgscSwhMCkpfXJldHVybiBhfSwKJFM6MzV9ClAu
ZW4ucHJvdG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXt0aHJvdyBILmEoUC5BKCJJbGxlZ2FsIElQdjQg
YWRkcmVzcywgIithLHRoaXMuYSxiKSl9LAokUzoxOX0KUC5lby5wcm90b3R5cGU9ewokMjpmdW5jdGlv
bihhLGIpe3Rocm93IEguYShQLkEoIklsbGVnYWwgSVB2NiBhZGRyZXNzLCAiK2EsdGhpcy5hLGIpKX0s
CiQxOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLiQyKGEsbnVsbCl9LAokUzoyMH0KUC5lcC5wcm90b3R5
cGU9ewokMjpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGItYT40KXRoaXMuYS4kMigiYW4gSVB2NiBwYXJ0
IGNhbiBvbmx5IGNvbnRhaW4gYSBtYXhpbXVtIG9mIDQgaGV4IGRpZ2l0cyIsYSkKdD1QLmRPKEMuYS5u
KHRoaXMuYixhLGIpLG51bGwsMTYpCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuRCgpCmlm
KHQ8MHx8dD42NTUzNSl0aGlzLmEuJDIoImVhY2ggcGFydCBtdXN0IGJlIGluIHRoZSByYW5nZSBvZiBg
MHgwLi4weEZGRkZgIixhKQpyZXR1cm4gdH0sCiRTOjI0fQpQLmNrLnByb3RvdHlwZT17CmdicTpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmJ9LApnYUQ6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5jCmlmKHQ9PW51
bGwpcmV0dXJuIiIKaWYoQy5hLkgodCwiWyIpKXJldHVybiBDLmEubih0LDEsdC5sZW5ndGgtMSkKcmV0
dXJuIHR9LApnYUg6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5kCmlmKHQ9PW51bGwpcmV0dXJuIFAuaWso
dGhpcy5hKQpyZXR1cm4gdH0sCmdhSTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZgpyZXR1cm4gdD09bnVs
bD8iIjp0fSwKZ2JiOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yCnJldHVybiB0PT1udWxsPyIiOnR9LApn
YUo6ZnVuY3Rpb24oKXt2YXIgdCxzPXRoaXMKaWYocy5RPT1udWxsKXt0PXMuZgpzLnNiUyhuZXcgUC5h
eihQLmk3KHQ9PW51bGw/IiI6dCksdS5XKSl9cmV0dXJuIHMuUX0sCmdiYzpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmMhPW51bGx9LApnYmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mIT1udWxsfSwKZ2JkOmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuciE9bnVsbH0sCmk6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9dGhp
cyxwPXEueQppZihwPT1udWxsKXtwPXEuYQp0PXAubGVuZ3RoIT09MD9wKyI6IjoiIgpzPXEuYwpyPXM9
PW51bGwKaWYoIXJ8fHA9PT0iZmlsZSIpe3A9dCsiLy8iCnQ9cS5iCmlmKHQubGVuZ3RoIT09MClwPXAr
dCsiQCIKaWYoIXIpcCs9cwp0PXEuZAppZih0IT1udWxsKXA9cCsiOiIrSC5iKHQpfWVsc2UgcD10CnAr
PXEuZQp0PXEuZgppZih0IT1udWxsKXA9cCsiPyIrdAp0PXEucgppZih0IT1udWxsKXA9cCsiIyIrdApw
PXEueT1wLmNoYXJDb2RlQXQoMCk9PTA/cDpwfXJldHVybiBwfSwKRzpmdW5jdGlvbihhLGIpe3ZhciB0
LHMscj10aGlzCmlmKGI9PW51bGwpcmV0dXJuITEKaWYocj09PWIpcmV0dXJuITAKaWYodS5rLmMoYikp
aWYoci5hPT09Yi5nYVAoKSlpZihyLmMhPW51bGw9PT1iLmdiYygpKWlmKHIuYj09Yi5nYnEoKSlpZihy
LmdhRChyKT09Yi5nYUQoYikpaWYoci5nYUgocik9PWIuZ2FIKGIpKWlmKHIuZT09PWIuZ2JpKGIpKXt0
PXIuZgpzPXQ9PW51bGwKaWYoIXM9PT1iLmdiZSgpKXtpZihzKXQ9IiIKaWYodD09PWIuZ2FJKCkpe3Q9
ci5yCnM9dD09bnVsbAppZighcz09PWIuZ2JkKCkpe2lmKHMpdD0iIgp0PXQ9PT1iLmdiYigpfWVsc2Ug
dD0hMX1lbHNlIHQ9ITF9ZWxzZSB0PSExfWVsc2UgdD0hMQplbHNlIHQ9ITEKZWxzZSB0PSExCmVsc2Ug
dD0hMQplbHNlIHQ9ITEKZWxzZSB0PSExCmVsc2UgdD0hMQpyZXR1cm4gdH0sCmdxOmZ1bmN0aW9uKGEp
e3ZhciB0PXRoaXMuegpyZXR1cm4gdD09bnVsbD90aGlzLno9Qy5hLmdxKHRoaXMuaSgwKSk6dH0sCnNi
UzpmdW5jdGlvbihhKXt0aGlzLlE9dS5mLmIoYSl9LAokaWRjOjEsCmdhUDpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmF9LApnYmk6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZX19ClAuZjEucHJvdG90eXBlPXsK
JDE6ZnVuY3Rpb24oYSl7dGhyb3cgSC5hKFAuQSgiSW52YWxpZCBwb3J0Iix0aGlzLmEsdGhpcy5iKzEp
KX0sCiRTOjIyfQpQLmYyLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiBQLmtSKEMuWCxh
LEMuZiwhMSl9LAokUzoxM30KUC5lbS5wcm90b3R5cGU9ewpnYnA6ZnVuY3Rpb24oKXt2YXIgdCxzLHIs
cSxwPXRoaXMsbz1udWxsLG49cC5jCmlmKG4hPW51bGwpcmV0dXJuIG4Kbj1wLmIKaWYoMD49bi5sZW5n
dGgpcmV0dXJuIEguaShuLDApCnQ9cC5hCm49blswXSsxCnM9Qy5hLmFlKHQsIj8iLG4pCnI9dC5sZW5n
dGgKaWYocz49MCl7cT1QLmNsKHQscysxLHIsQy5pLCExKQpyPXN9ZWxzZSBxPW8KcmV0dXJuIHAuYz1u
ZXcgUC5kbSgiZGF0YSIsbyxvLG8sUC5jbCh0LG4scixDLnksITEpLHEsbyl9LAppOmZ1bmN0aW9uKGEp
e3ZhciB0LHM9dGhpcy5iCmlmKDA+PXMubGVuZ3RoKXJldHVybiBILmkocywwKQp0PXRoaXMuYQpyZXR1
cm4gc1swXT09PS0xPyJkYXRhOiIrdDp0fX0KUC5mYS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXty
ZXR1cm4gbmV3IFVpbnQ4QXJyYXkoOTYpfSwKJFM6NDB9ClAuZjkucHJvdG90eXBlPXsKJDI6ZnVuY3Rp
b24oYSxiKXt2YXIgdD10aGlzLmEKaWYoYT49dC5sZW5ndGgpcmV0dXJuIEguaSh0LGEpCnQ9dFthXQpK
LmpuKHQsMCw5NixiKQpyZXR1cm4gdH0sCiRTOjIzfQpQLmZiLnByb3RvdHlwZT17CiQzOmZ1bmN0aW9u
KGEsYixjKXt2YXIgdCxzLHIscQpmb3IodD1iLmxlbmd0aCxzPWEubGVuZ3RoLHI9MDtyPHQ7KytyKXtx
PUMuYS50KGIscileOTYKaWYocT49cylyZXR1cm4gSC5pKGEscSkKYVtxXT1jfX19ClAuZmMucHJvdG90
eXBlPXsKJDM6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxCmZvcih0PUMuYS50KGIsMCkscz1DLmEu
dChiLDEpLHI9YS5sZW5ndGg7dDw9czsrK3Qpe3E9KHReOTYpPj4+MAppZihxPj1yKXJldHVybiBILmko
YSxxKQphW3FdPWN9fX0KUC5kei5wcm90b3R5cGU9ewpnYmM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5j
PjB9LApnYmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmYKaWYodHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1
cm4gdC5EKCkKcmV0dXJuIHQ8dGhpcy5yfSwKZ2JkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucjx0aGlz
LmEubGVuZ3RofSwKZ2JfOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYj09PTQmJkMuYS5IKHRoaXMuYSwi
aHR0cCIpfSwKZ2IwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYj09PTUmJkMuYS5IKHRoaXMuYSwiaHR0
cHMiKX0sCmdhUDpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcyxyPSJmaWxlIixxPSJwYWNrYWdlIixwPXMu
YgppZihwPD0wKXJldHVybiIiCnQ9cy54CmlmKHQhPW51bGwpcmV0dXJuIHQKaWYocy5nYl8oKSlwPXMu
eD0iaHR0cCIKZWxzZSBpZihzLmdiMCgpKXtzLng9Imh0dHBzIgpwPSJodHRwcyJ9ZWxzZSBpZihwPT09
NCYmQy5hLkgocy5hLHIpKXtzLng9cgpwPXJ9ZWxzZSBpZihwPT09NyYmQy5hLkgocy5hLHEpKXtzLng9
cQpwPXF9ZWxzZXtwPUMuYS5uKHMuYSwwLHApCnMueD1wfXJldHVybiBwfSwKZ2JxOmZ1bmN0aW9uKCl7
dmFyIHQ9dGhpcy5jLHM9dGhpcy5iKzMKcmV0dXJuIHQ+cz9DLmEubih0aGlzLmEscyx0LTEpOiIifSwK
Z2FEOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYwpyZXR1cm4gdD4wP0MuYS5uKHRoaXMuYSx0LHRoaXMu
ZCk6IiJ9LApnYUg6ZnVuY3Rpb24oYSl7dmFyIHQscyxyPXRoaXMKaWYoci5jPjApe3Q9ci5kCmlmKHR5
cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuQigpCnM9ci5lCmlmKHR5cGVvZiBzIT09Im51bWJlciIp
cmV0dXJuIEguYWoocykKcz10KzE8cwp0PXN9ZWxzZSB0PSExCmlmKHQpe3Q9ci5kCmlmKHR5cGVvZiB0
IT09Im51bWJlciIpcmV0dXJuIHQuQigpCnJldHVybiBQLmRPKEMuYS5uKHIuYSx0KzEsci5lKSxudWxs
LG51bGwpfWlmKHIuZ2JfKCkpcmV0dXJuIDgwCmlmKHIuZ2IwKCkpcmV0dXJuIDQ0MwpyZXR1cm4gMH0s
CmdiaTpmdW5jdGlvbihhKXtyZXR1cm4gQy5hLm4odGhpcy5hLHRoaXMuZSx0aGlzLmYpfSwKZ2FJOmZ1
bmN0aW9uKCl7dmFyIHQ9dGhpcy5mLHM9dGhpcy5yCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJu
IHQuRCgpCnJldHVybiB0PHM/Qy5hLm4odGhpcy5hLHQrMSxzKToiIn0sCmdiYjpmdW5jdGlvbigpe3Zh
ciB0PXRoaXMucixzPXRoaXMuYQpyZXR1cm4gdDxzLmxlbmd0aD9DLmEuVShzLHQrMSk6IiJ9LApnYUo6
ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmYKaWYodHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gdC5EKCkK
aWYodD49dGhpcy5yKXJldHVybiBDLloKcmV0dXJuIG5ldyBQLmF6KFAuaTcodGhpcy5nYUkoKSksdS5X
KX0sCmdxOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMueQpyZXR1cm4gdD09bnVsbD90aGlzLnk9Qy5hLmdx
KHRoaXMuYSk6dH0sCkc6ZnVuY3Rpb24oYSxiKXtpZihiPT1udWxsKXJldHVybiExCmlmKHRoaXM9PT1i
KXJldHVybiEwCnJldHVybiB1LmsuYyhiKSYmdGhpcy5hPT09Yi5pKDApfSwKaTpmdW5jdGlvbihhKXty
ZXR1cm4gdGhpcy5hfSwKJGlkYzoxfQpQLmRtLnByb3RvdHlwZT17fQpXLmgucHJvdG90eXBlPXt9Clcu
YjMucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpfSwKJGliMzoxfQpXLmN1
LnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKX19ClcuYjUucHJvdG90eXBl
PXskaWI1OjF9ClcuYUcucHJvdG90eXBlPXskaWFHOjF9ClcuYUgucHJvdG90eXBlPXskaWFIOjF9Clcu
YWEucHJvdG90eXBlPXsKZ206ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofX0KVy5iQS5wcm90b3R5
cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGh9fQpXLmRVLnByb3RvdHlwZT17fQpXLmFM
LnByb3RvdHlwZT17fQpXLmRWLnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhh
KX19ClcuYkIucHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXtyZXR1cm4iUmVjdGFuZ2xlICgiK0guYihh
LmxlZnQpKyIsICIrSC5iKGEudG9wKSsiKSAiK0guYihhLndpZHRoKSsiIHggIitILmIoYS5oZWlnaHQp
fSwKRzpmdW5jdGlvbihhLGIpe2lmKGI9PW51bGwpcmV0dXJuITEKcmV0dXJuIHUucS5jKGIpJiZhLmxl
ZnQ9PT1iLmxlZnQmJmEudG9wPT09Yi50b3AmJmEud2lkdGg9PT1iLndpZHRoJiZhLmhlaWdodD09PWIu
aGVpZ2h0fSwKZ3E6ZnVuY3Rpb24oYSl7cmV0dXJuIFcuaWIoQy5lLmdxKGEubGVmdCksQy5lLmdxKGEu
dG9wKSxDLmUuZ3EoYS53aWR0aCksQy5lLmdxKGEuaGVpZ2h0KSl9LAokaWg1OjF9ClcuZFcucHJvdG90
eXBlPXsKZ206ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofX0KVy5hcS5wcm90b3R5cGU9ewpnbTpm
dW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmxlbmd0aH0sCmo6ZnVuY3Rpb24oYSxiKXt2YXIgdApILngo
YikKdD10aGlzLmEKaWYoYjwwfHxiPj10Lmxlbmd0aClyZXR1cm4gSC5pKHQsYikKcmV0dXJuIHRoaXMu
JHRpLmQuYih0W2JdKX0sCmw6ZnVuY3Rpb24oYSxiLGMpe3RoaXMuJHRpLmQuYihjKQp0aHJvdyBILmEo
UC5OKCJDYW5ub3QgbW9kaWZ5IGxpc3QiKSl9fQpXLnUucHJvdG90eXBlPXsKZ2MwOmZ1bmN0aW9uKGEp
e3JldHVybiBuZXcgVy5hcChhKX0sCmdDOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVy5kbihhKX0sCmk6
ZnVuY3Rpb24oYSl7cmV0dXJuIGEubG9jYWxOYW1lfSwKYnQ6ZnVuY3Rpb24oYSl7dmFyIHQ9ISFhLnNj
cm9sbEludG9WaWV3SWZOZWVkZWQKaWYodClhLnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKQplbHNlIGEu
c2Nyb2xsSW50b1ZpZXcoKX0sCks6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyLHEKaWYoYz09bnVs
bCl7aWYoZD09bnVsbCl7dD0kLmhOCmlmKHQ9PW51bGwpe3Q9SC5uKFtdLHUuUSkKcz1uZXcgVy5iVSh0
KQpDLmIuayh0LFcuaWEobnVsbCkpCkMuYi5rKHQsVy5pZSgpKQokLmhOPXMKZD1zfWVsc2UgZD10fXQ9
JC5oTQppZih0PT1udWxsKXt0PW5ldyBXLmNtKGQpCiQuaE09dApjPXR9ZWxzZXt0LmE9ZApjPXR9fWVs
c2UgaWYoZCE9bnVsbCl0aHJvdyBILmEoUC5iNCgidmFsaWRhdG9yIGNhbiBvbmx5IGJlIHBhc3NlZCBp
ZiB0cmVlU2FuaXRpemVyIGlzIG51bGwiKSkKaWYoJC5hdz09bnVsbCl7dD1kb2N1bWVudApzPXQuaW1w
bGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKQokLmF3PXMKJC5mWj1zLmNyZWF0ZVJhbmdl
KCkKcz0kLmF3LmNyZWF0ZUVsZW1lbnQoImJhc2UiKQp1LnYuYihzKQpzLmhyZWY9dC5iYXNlVVJJCiQu
YXcuaGVhZC5hcHBlbmRDaGlsZChzKX10PSQuYXcKaWYodC5ib2R5PT1udWxsKXtzPXQuY3JlYXRlRWxl
bWVudCgiYm9keSIpCnQuYm9keT11LlguYihzKX10PSQuYXcKaWYodS5YLmMoYSkpcj10LmJvZHkKZWxz
ZXtyPXQuY3JlYXRlRWxlbWVudChhLnRhZ05hbWUpCiQuYXcuYm9keS5hcHBlbmRDaGlsZChyKX1pZigi
Y3JlYXRlQ29udGV4dHVhbEZyYWdtZW50IiBpbiB3aW5kb3cuUmFuZ2UucHJvdG90eXBlJiYhQy5iLnco
Qy5VLGEudGFnTmFtZSkpeyQuZlouc2VsZWN0Tm9kZUNvbnRlbnRzKHIpCnE9JC5mWi5jcmVhdGVDb250
ZXh0dWFsRnJhZ21lbnQoYil9ZWxzZXtyLmlubmVySFRNTD1iCnE9JC5hdy5jcmVhdGVEb2N1bWVudEZy
YWdtZW50KCkKZm9yKDt0PXIuZmlyc3RDaGlsZCx0IT1udWxsOylxLmFwcGVuZENoaWxkKHQpfXQ9JC5h
dy5ib2R5CmlmKHI9PW51bGw/dCE9bnVsbDpyIT09dClKLmhFKHIpCmMuYU8ocSkKZG9jdW1lbnQuYWRv
cHROb2RlKHEpCnJldHVybiBxfSwKYzg6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLksoYSxiLGMs
bnVsbCl9LApzYWY6ZnVuY3Rpb24oYSxiKXt0aGlzLmFsKGEsYil9LAphNjpmdW5jdGlvbihhLGIsYyl7
YS50ZXh0Q29udGVudD1udWxsCmEuYXBwZW5kQ2hpbGQodGhpcy5LKGEsYixudWxsLGMpKX0sCmFsOmZ1
bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYTYoYSxiLG51bGwpfSwKZ2FHOmZ1bmN0aW9uKGEpe3JldHVy
biBuZXcgVy5ibihhLCJjbGljayIsITEsdS5DKX0sCiRpdToxLApnYm06ZnVuY3Rpb24oYSl7cmV0dXJu
IGEudGFnTmFtZX19ClcuZFoucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHUuaC5jKHUu
Ri5iKGEpKX0sCiRTOjM5fQpXLmQucHJvdG90eXBlPXskaWQ6MX0KVy5xLnByb3RvdHlwZT17CmI3OmZ1
bmN0aW9uKGEsYixjLGQpe3UuVS5iKGMpCmlmKGMhPW51bGwpdGhpcy5iSShhLGIsYyxkKX0sCmFjOmZ1
bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5iNyhhLGIsYyxudWxsKX0sCmJJOmZ1bmN0aW9uKGEsYixj
LGQpe3JldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoYixILmRNKHUuVS5iKGMpLDEpLGQpfSwKJGlxOjF9
ClcuYjkucHJvdG90eXBlPXskaWI5OjF9ClcuY0YucHJvdG90eXBlPXsKZ206ZnVuY3Rpb24oYSl7cmV0
dXJuIGEubGVuZ3RofX0KVy5lMS5wcm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5n
dGh9fQpXLmJGLnByb3RvdHlwZT17fQpXLmEzLnByb3RvdHlwZT17CmNsOmZ1bmN0aW9uKGEsYixjLGQp
e3JldHVybiBhLm9wZW4oYixjLCEwKX0sCiRpYTM6MX0KVy5lMy5wcm90b3R5cGU9ewokMjpmdW5jdGlv
bihhLGIpe3RoaXMuYS5zZXRSZXF1ZXN0SGVhZGVyKEgubyhhKSxILm8oYikpfSwKJFM6OH0KVy5lNC5w
cm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwCnUucC5iKGEpCnQ9dGhpcy5hCnM9
dC5zdGF0dXMKaWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5icigpCnI9cz49MjAwJiZzPDMw
MApxPXM+MzA3JiZzPDQwMApzPXJ8fHM9PT0wfHxzPT09MzA0fHxxCnA9dGhpcy5iCmlmKHMpe3AuJHRp
LmgoIjEvIikuYih0KQpzPXAuYQppZihzLmEhPT0wKUguYWsoUC5kMigiRnV0dXJlIGFscmVhZHkgY29t
cGxldGVkIikpCnMuYkoodCl9ZWxzZSBwLmI5KGEpfSwKJFM6MjZ9ClcuYkcucHJvdG90eXBlPXt9Clcu
YkgucHJvdG90eXBlPXskaWJIOjF9ClcuYk8ucHJvdG90eXBlPXsKZ2NtOmZ1bmN0aW9uKGEpe2lmKCJv
cmlnaW4iIGluIGEpcmV0dXJuIGEub3JpZ2luCnJldHVybiBILmIoYS5wcm90b2NvbCkrIi8vIitILmIo
YS5ob3N0KX0sCmk6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKX0sCiRpYk86MX0KVy5LLnByb3Rv
dHlwZT17JGlLOjF9ClcuTy5wcm90b3R5cGU9ewpnWTpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmEscz10
LmNoaWxkTm9kZXMubGVuZ3RoCmlmKHM9PT0wKXRocm93IEguYShQLmQyKCJObyBlbGVtZW50cyIpKQpp
ZihzPjEpdGhyb3cgSC5hKFAuZDIoIk1vcmUgdGhhbiBvbmUgZWxlbWVudCIpKQpyZXR1cm4gdC5maXJz
dENoaWxkfSwKSTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxCnUuZWguYihiKQp0PWIuYQpzPXRoaXMu
YQppZih0IT09cylmb3Iocj10LmNoaWxkTm9kZXMubGVuZ3RoLHE9MDtxPHI7KytxKXMuYXBwZW5kQ2hp
bGQodC5maXJzdENoaWxkKQpyZXR1cm59LApsOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzCnUuRi5iKGMp
CnQ9dGhpcy5hCnM9dC5jaGlsZE5vZGVzCmlmKGI8MHx8Yj49cy5sZW5ndGgpcmV0dXJuIEguaShzLGIp
CnQucmVwbGFjZUNoaWxkKGMsc1tiXSl9LApnRjpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmEuY2hpbGRO
b2RlcwpyZXR1cm4gbmV3IFcuYU4odCx0Lmxlbmd0aCxILmE4KHQpLmgoImFOPGFjLkU+IikpfSwKZ206
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYS5jaGlsZE5vZGVzLmxlbmd0aH0sCmo6ZnVuY3Rpb24oYSxi
KXt2YXIgdApILngoYikKdD10aGlzLmEuY2hpbGROb2RlcwppZihiPDB8fGI+PXQubGVuZ3RoKXJldHVy
biBILmkodCxiKQpyZXR1cm4gdFtiXX19Clcuay5wcm90b3R5cGU9ewpjbjpmdW5jdGlvbihhKXt2YXIg
dD1hLnBhcmVudE5vZGUKaWYodCE9bnVsbCl0LnJlbW92ZUNoaWxkKGEpfSwKYk06ZnVuY3Rpb24oYSl7
dmFyIHQKZm9yKDt0PWEuZmlyc3RDaGlsZCx0IT1udWxsOylhLnJlbW92ZUNoaWxkKHQpfSwKaTpmdW5j
dGlvbihhKXt2YXIgdD1hLm5vZGVWYWx1ZQpyZXR1cm4gdD09bnVsbD90aGlzLmJ3KGEpOnR9LAokaWs6
MX0KVy5iVC5wcm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGh9LApqOmZ1bmN0
aW9uKGEsYil7SC54KGIpCmlmKGI+Pj4wIT09Ynx8Yj49YS5sZW5ndGgpdGhyb3cgSC5hKFAuZTUoYixh
LG51bGwsbnVsbCxudWxsKSkKcmV0dXJuIGFbYl19LApsOmZ1bmN0aW9uKGEsYixjKXt1LkYuYihjKQp0
aHJvdyBILmEoUC5OKCJDYW5ub3QgYXNzaWduIGVsZW1lbnQgb2YgaW1tdXRhYmxlIExpc3QuIikpfSwK
TzpmdW5jdGlvbihhLGIpe2lmKGI8MHx8Yj49YS5sZW5ndGgpcmV0dXJuIEguaShhLGIpCnJldHVybiBh
W2JdfSwKJGlKOjEsCiRpajoxLAokaW06MX0KVy5iZS5wcm90b3R5cGU9eyRpYmU6MX0KVy5hNS5wcm90
b3R5cGU9eyRpYTU6MX0KVy5kMS5wcm90b3R5cGU9ewpnbTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5n
dGh9fQpXLmJaLnByb3RvdHlwZT17Cks6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscwppZigiY3JlYXRl
Q29udGV4dHVhbEZyYWdtZW50IiBpbiB3aW5kb3cuUmFuZ2UucHJvdG90eXBlKXJldHVybiB0aGlzLmFt
KGEsYixjLGQpCnQ9Vy5qRigiPHRhYmxlPiIrSC5iKGIpKyI8L3RhYmxlPiIsYyxkKQpzPWRvY3VtZW50
LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKQpzLnRvU3RyaW5nCnQudG9TdHJpbmcKbmV3IFcuTyhzKS5J
KDAsbmV3IFcuTyh0KSkKcmV0dXJuIHN9fQpXLmQ2LnByb3RvdHlwZT17Cks6ZnVuY3Rpb24oYSxiLGMs
ZCl7dmFyIHQscyxyLHEKaWYoImNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCIgaW4gd2luZG93LlJhbmdl
LnByb3RvdHlwZSlyZXR1cm4gdGhpcy5hbShhLGIsYyxkKQp0PWRvY3VtZW50CnM9dC5jcmVhdGVEb2N1
bWVudEZyYWdtZW50KCkKdD1DLkMuSyh0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksYixjLGQpCnQudG9T
dHJpbmcKdD1uZXcgVy5PKHQpCnI9dC5nWSh0KQpyLnRvU3RyaW5nCnQ9bmV3IFcuTyhyKQpxPXQuZ1ko
dCkKcy50b1N0cmluZwpxLnRvU3RyaW5nCm5ldyBXLk8ocykuSSgwLG5ldyBXLk8ocSkpCnJldHVybiBz
fX0KVy5kNy5wcm90b3R5cGU9ewpLOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscgppZigiY3JlYXRl
Q29udGV4dHVhbEZyYWdtZW50IiBpbiB3aW5kb3cuUmFuZ2UucHJvdG90eXBlKXJldHVybiB0aGlzLmFt
KGEsYixjLGQpCnQ9ZG9jdW1lbnQKcz10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKQp0PUMuQy5LKHQu
Y3JlYXRlRWxlbWVudCgidGFibGUiKSxiLGMsZCkKdC50b1N0cmluZwp0PW5ldyBXLk8odCkKcj10LmdZ
KHQpCnMudG9TdHJpbmcKci50b1N0cmluZwpuZXcgVy5PKHMpLkkoMCxuZXcgVy5PKHIpKQpyZXR1cm4g
c319ClcuYmoucHJvdG90eXBlPXsKYTY6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMKYS50ZXh0Q29udGVu
dD1udWxsCnQ9YS5jb250ZW50CnQudG9TdHJpbmcKSi5qayh0KQpzPXRoaXMuSyhhLGIsbnVsbCxjKQph
LmNvbnRlbnQuYXBwZW5kQ2hpbGQocyl9LAphbDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmE2KGEs
YixudWxsKX0sCiRpYmo6MX0KVy5hNy5wcm90b3R5cGU9e30KVy5hQS5wcm90b3R5cGU9eyRpYUE6MSwk
aWVyOjF9ClcuYWkucHJvdG90eXBlPXskaWFpOjF9ClcuYm0ucHJvdG90eXBlPXskaWJtOjF9ClcuYzMu
cHJvdG90eXBlPXsKaTpmdW5jdGlvbihhKXtyZXR1cm4iUmVjdGFuZ2xlICgiK0guYihhLmxlZnQpKyIs
ICIrSC5iKGEudG9wKSsiKSAiK0guYihhLndpZHRoKSsiIHggIitILmIoYS5oZWlnaHQpfSwKRzpmdW5j
dGlvbihhLGIpe2lmKGI9PW51bGwpcmV0dXJuITEKcmV0dXJuIHUucS5jKGIpJiZhLmxlZnQ9PT1iLmxl
ZnQmJmEudG9wPT09Yi50b3AmJmEud2lkdGg9PT1iLndpZHRoJiZhLmhlaWdodD09PWIuaGVpZ2h0fSwK
Z3E6ZnVuY3Rpb24oYSl7cmV0dXJuIFcuaWIoQy5lLmdxKGEubGVmdCksQy5lLmdxKGEudG9wKSxDLmUu
Z3EoYS53aWR0aCksQy5lLmdxKGEuaGVpZ2h0KSl9fQpXLmM4LnByb3RvdHlwZT17CmdtOmZ1bmN0aW9u
KGEpe3JldHVybiBhLmxlbmd0aH0sCmo6ZnVuY3Rpb24oYSxiKXtILngoYikKaWYoYj4+PjAhPT1ifHxi
Pj1hLmxlbmd0aCl0aHJvdyBILmEoUC5lNShiLGEsbnVsbCxudWxsLG51bGwpKQpyZXR1cm4gYVtiXX0s
Cmw6ZnVuY3Rpb24oYSxiLGMpe3UuRi5iKGMpCnRocm93IEguYShQLk4oIkNhbm5vdCBhc3NpZ24gZWxl
bWVudCBvZiBpbW11dGFibGUgTGlzdC4iKSl9LApPOmZ1bmN0aW9uKGEsYil7aWYoYjwwfHxiPj1hLmxl
bmd0aClyZXR1cm4gSC5pKGEsYikKcmV0dXJuIGFbYl19LAokaUo6MSwKJGlqOjEsCiRpbToxfQpXLmRp
LnByb3RvdHlwZT17CkE6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwCnUudS5iKGIpCmZvcih0PXRo
aXMuZ0ooKSxzPXQubGVuZ3RoLHI9dGhpcy5hLHE9MDtxPHQubGVuZ3RoO3QubGVuZ3RoPT09c3x8KDAs
SC5jcikodCksKytxKXtwPXRbcV0KYi4kMihwLHIuZ2V0QXR0cmlidXRlKHApKX19LApnSjpmdW5jdGlv
bigpe3ZhciB0LHMscixxLHA9dGhpcy5hLmF0dHJpYnV0ZXMsbz1ILm4oW10sdS5zKQpmb3IodD1wLmxl
bmd0aCxzPXUuaDkscj0wO3I8dDsrK3Ipe2lmKHI+PXAubGVuZ3RoKXJldHVybiBILmkocCxyKQpxPXMu
YihwW3JdKQppZihxLm5hbWVzcGFjZVVSST09bnVsbClDLmIuayhvLHEubmFtZSl9cmV0dXJuIG99fQpX
LmFwLnByb3RvdHlwZT17Cmo6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5hLmdldEF0dHJpYnV0ZShI
Lm8oYikpfSwKbDpmdW5jdGlvbihhLGIsYyl7dGhpcy5hLnNldEF0dHJpYnV0ZShiLGMpfSwKZ206ZnVu
Y3Rpb24oYSl7cmV0dXJuIHRoaXMuZ0ooKS5sZW5ndGh9fQpXLmFCLnByb3RvdHlwZT17Cmo6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gdGhpcy5hLmEuZ2V0QXR0cmlidXRlKCJkYXRhLSIrdGhpcy5WKEgubyhiKSkp
fSwKbDpmdW5jdGlvbihhLGIsYyl7dGhpcy5hLmEuc2V0QXR0cmlidXRlKCJkYXRhLSIrdGhpcy5WKGIp
LGMpfSwKQTpmdW5jdGlvbihhLGIpe3RoaXMuYS5BKDAsbmV3IFcuZXcodGhpcyx1LnUuYihiKSkpfSwK
Z0o6ZnVuY3Rpb24oKXt2YXIgdD1ILm4oW10sdS5zKQp0aGlzLmEuQSgwLG5ldyBXLmV4KHRoaXMsdCkp
CnJldHVybiB0fSwKZ206ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ0ooKS5sZW5ndGh9LApiNDpmdW5j
dGlvbihhKXt2YXIgdCxzLHI9SC5uKGEuc3BsaXQoIi0iKSx1LnMpCmZvcih0PTE7dDxyLmxlbmd0aDsr
K3Qpe3M9clt0XQppZihzLmxlbmd0aD4wKUMuYi5sKHIsdCxzWzBdLnRvVXBwZXJDYXNlKCkrSi5qcyhz
LDEpKX1yZXR1cm4gQy5iLlQociwiIil9LApWOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAKZm9yKHQ9
YS5sZW5ndGgscz0wLHI9IiI7czx0Oysrcyl7cT1hW3NdCnA9cS50b0xvd2VyQ2FzZSgpCnI9KHEhPT1w
JiZzPjA/cisiLSI6cikrcH1yZXR1cm4gci5jaGFyQ29kZUF0KDApPT0wP3I6cn19ClcuZXcucHJvdG90
eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXtpZihKLmEwKGEpLkgoYSwiZGF0YS0iKSl0aGlzLmIuJDIodGhp
cy5hLmI0KEMuYS5VKGEsNSkpLGIpfSwKJFM6OH0KVy5leC5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihh
LGIpe2lmKEouYTAoYSkuSChhLCJkYXRhLSIpKUMuYi5rKHRoaXMuYix0aGlzLmEuYjQoQy5hLlUoYSw1
KSkpfSwKJFM6OH0KVy5kbi5wcm90b3R5cGU9ewpYOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscD1QLmJN
KHUuTikKZm9yKHQ9dGhpcy5hLmNsYXNzTmFtZS5zcGxpdCgiICIpLHM9dC5sZW5ndGgscj0wO3I8czsr
K3Ipe3E9Si5kUih0W3JdKQppZihxLmxlbmd0aCE9PTApcC5rKDAscSl9cmV0dXJuIHB9LAphTDpmdW5j
dGlvbihhKXt0aGlzLmEuY2xhc3NOYW1lPXUuVC5iKGEpLlQoMCwiICIpfSwKZ206ZnVuY3Rpb24oYSl7
cmV0dXJuIHRoaXMuYS5jbGFzc0xpc3QubGVuZ3RofSwKdzpmdW5jdGlvbihhLGIpe3ZhciB0PXRoaXMu
YS5jbGFzc0xpc3QuY29udGFpbnMoYikKcmV0dXJuIHR9LAprOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhp
cy5hLmNsYXNzTGlzdCxzPXQuY29udGFpbnMoYikKdC5hZGQoYikKcmV0dXJuIXN9LApNOmZ1bmN0aW9u
KGEsYil7dmFyIHQ9dGhpcy5hLmNsYXNzTGlzdCxzPXQuY29udGFpbnMoYikKdC5yZW1vdmUoYikKcmV0
dXJuIHN9fQpXLmhfLnByb3RvdHlwZT17fQpXLmM0LnByb3RvdHlwZT17fQpXLmJuLnByb3RvdHlwZT17
fQpXLmRxLnByb3RvdHlwZT17fQpXLmV6LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiB0
aGlzLmEuJDEodS5BLmIoYSkpfSwKJFM6Mjd9ClcuYl8ucHJvdG90eXBlPXsKYkQ6ZnVuY3Rpb24oYSl7
dmFyIHQKaWYoJC5kci5hPT09MCl7Zm9yKHQ9MDt0PDI2MjsrK3QpJC5kci5sKDAsQy5UW3RdLFcubHIo
KSkKZm9yKHQ9MDt0PDEyOysrdCkkLmRyLmwoMCxDLm1bdF0sVy5scygpKX19LApXOmZ1bmN0aW9uKGEp
e3JldHVybiAkLmplKCkudygwLFcuYkQoYSkpfSwKTjpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9JC5kci5q
KDAsSC5iKFcuYkQoYSkpKyI6OiIrYikKaWYodD09bnVsbCl0PSQuZHIuaigwLCIqOjoiK2IpCmlmKHQ9
PW51bGwpcmV0dXJuITEKcmV0dXJuIEguaGcodC4kNChhLGIsYyx0aGlzKSl9LAokaUc6MX0KVy5hYy5w
cm90b3R5cGU9ewpnRjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFcuYU4oYSx0aGlzLmdtKGEpLEguYTgo
YSkuaCgiYU48YWMuRT4iKSl9fQpXLmJVLnByb3RvdHlwZT17Clc6ZnVuY3Rpb24oYSl7cmV0dXJuIEMu
Yi5iOCh0aGlzLmEsbmV3IFcuZWQoYSkpfSwKTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEMuYi5iOCh0
aGlzLmEsbmV3IFcuZWMoYSxiLGMpKX0sCiRpRzoxfQpXLmVkLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9u
KGEpe3JldHVybiB1LmUuYihhKS5XKHRoaXMuYSl9LAokUzoxNH0KVy5lYy5wcm90b3R5cGU9ewokMTpm
dW5jdGlvbihhKXtyZXR1cm4gdS5lLmIoYSkuTih0aGlzLmEsdGhpcy5iLHRoaXMuYyl9LAokUzoxNH0K
Vy5jZi5wcm90b3R5cGU9ewpiRTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHIKdGhpcy5hLkkoMCxj
KQp0PWIuYWooMCxuZXcgVy5lVCgpKQpzPWIuYWooMCxuZXcgVy5lVSgpKQp0aGlzLmIuSSgwLHQpCnI9
dGhpcy5jCnIuSSgwLEMudikKci5JKDAscyl9LApXOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmEudygw
LFcuYkQoYSkpfSwKTjpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9dGhpcyxzPVcuYkQoYSkscj10LmMKaWYo
ci53KDAsSC5iKHMpKyI6OiIrYikpcmV0dXJuIHQuZC5jXyhjKQplbHNlIGlmKHIudygwLCIqOjoiK2Ip
KXJldHVybiB0LmQuY18oYykKZWxzZXtyPXQuYgppZihyLncoMCxILmIocykrIjo6IitiKSlyZXR1cm4h
MAplbHNlIGlmKHIudygwLCIqOjoiK2IpKXJldHVybiEwCmVsc2UgaWYoci53KDAsSC5iKHMpKyI6Oioi
KSlyZXR1cm4hMAplbHNlIGlmKHIudygwLCIqOjoqIikpcmV0dXJuITB9cmV0dXJuITF9LAokaUc6MX0K
Vy5lVC5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4hQy5iLncoQy5tLEgubyhhKSl9LAok
UzoxMH0KVy5lVS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gQy5iLncoQy5tLEgubyhh
KSl9LAokUzoxMH0KVy5kQi5wcm90b3R5cGU9ewpOOmZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmJDKGEs
YixjKSlyZXR1cm4hMAppZihiPT09InRlbXBsYXRlIiYmYz09PSIiKXJldHVybiEwCmlmKGEuZ2V0QXR0
cmlidXRlKCJ0ZW1wbGF0ZSIpPT09IiIpcmV0dXJuIHRoaXMuZS53KDAsYikKcmV0dXJuITF9fQpXLmVa
LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiJURU1QTEFURTo6IitILmIoSC5vKGEpKX0s
CiRTOjEzfQpXLmRBLnByb3RvdHlwZT17Clc6ZnVuY3Rpb24oYSl7dmFyIHQKaWYodS5ldy5jKGEpKXJl
dHVybiExCnQ9dS5nNy5jKGEpCmlmKHQmJlcuYkQoYSk9PT0iZm9yZWlnbk9iamVjdCIpcmV0dXJuITEK
aWYodClyZXR1cm4hMApyZXR1cm4hMX0sCk46ZnVuY3Rpb24oYSxiLGMpe2lmKGI9PT0iaXMifHxDLmEu
SChiLCJvbiIpKXJldHVybiExCnJldHVybiB0aGlzLlcoYSl9LAokaUc6MX0KVy5hTi5wcm90b3R5cGU9
ewpwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxzPXQuYysxLHI9dC5iCmlmKHM8cil7dC5zYVooSi5mVyh0
LmEscykpCnQuYz1zCnJldHVybiEwfXQuc2FaKG51bGwpCnQuYz1yCnJldHVybiExfSwKZ3U6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpcy5kfSwKc2FaOmZ1bmN0aW9uKGEpe3RoaXMuZD10aGlzLiR0aS5kLmIoYSl9
LAokaVI6MX0KVy5kbC5wcm90b3R5cGU9eyRpcToxLCRpZXI6MX0KVy5HLnByb3RvdHlwZT17fQpXLmR5
LnByb3RvdHlwZT17JGlrODoxfQpXLmNtLnByb3RvdHlwZT17CmFPOmZ1bmN0aW9uKGEpe25ldyBXLmY1
KHRoaXMpLiQyKGEsbnVsbCl9LAphMjpmdW5jdGlvbihhLGIpe2lmKGI9PW51bGwpSi5oRShhKQplbHNl
IGIucmVtb3ZlQ2hpbGQoYSl9LApiVzpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbz0hMCxuPW51
bGwsbT1udWxsCnRyeXtuPUouam8oYSkKbT1uLmEuZ2V0QXR0cmlidXRlKCJpcyIpCnUuaC5iKGEpCnQ9
ZnVuY3Rpb24oYyl7aWYoIShjLmF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBOYW1lZE5vZGVNYXApKXJldHVy
biB0cnVlCnZhciBsPWMuY2hpbGROb2RlcwppZihjLmxhc3RDaGlsZCYmYy5sYXN0Q2hpbGQhPT1sW2wu
bGVuZ3RoLTFdKXJldHVybiB0cnVlCmlmKGMuY2hpbGRyZW4paWYoIShjLmNoaWxkcmVuIGluc3RhbmNl
b2YgSFRNTENvbGxlY3Rpb258fGMuY2hpbGRyZW4gaW5zdGFuY2VvZiBOb2RlTGlzdCkpcmV0dXJuIHRy
dWUKdmFyIGs9MAppZihjLmNoaWxkcmVuKWs9Yy5jaGlsZHJlbi5sZW5ndGgKZm9yKHZhciBqPTA7ajxr
O2orKyl7dmFyIGk9Yy5jaGlsZHJlbltqXQppZihpLmlkPT0nYXR0cmlidXRlcyd8fGkubmFtZT09J2F0
dHJpYnV0ZXMnfHxpLmlkPT0nbGFzdENoaWxkJ3x8aS5uYW1lPT0nbGFzdENoaWxkJ3x8aS5pZD09J2No
aWxkcmVuJ3x8aS5uYW1lPT0nY2hpbGRyZW4nKXJldHVybiB0cnVlfXJldHVybiBmYWxzZX0oYSkKbz1I
LmRLKHQpPyEwOiEoYS5hdHRyaWJ1dGVzIGluc3RhbmNlb2YgTmFtZWROb2RlTWFwKX1jYXRjaChxKXtI
LlEocSl9cz0iZWxlbWVudCB1bnByaW50YWJsZSIKdHJ5e3M9Si5iMihhKX1jYXRjaChxKXtILlEocSl9
dHJ5e3I9Vy5iRChhKQp0aGlzLmJWKHUuaC5iKGEpLGIsbyxzLHIsdS5HLmIobiksSC5vKG0pKX1jYXRj
aChxKXtpZihILlEocSkgaW5zdGFuY2VvZiBQLmExKXRocm93IHEKZWxzZXt0aGlzLmEyKGEsYikKd2lu
ZG93CnA9IlJlbW92aW5nIGNvcnJ1cHRlZCBlbGVtZW50ICIrSC5iKHMpCmlmKHR5cGVvZiBjb25zb2xl
IT0idW5kZWZpbmVkIil3aW5kb3cuY29uc29sZS53YXJuKHApfX19LApiVjpmdW5jdGlvbihhLGIsYyxk
LGUsZixnKXt2YXIgdCxzLHIscSxwLG8sbj10aGlzCmlmKGMpe24uYTIoYSxiKQp3aW5kb3cKdD0iUmVt
b3ZpbmcgZWxlbWVudCBkdWUgdG8gY29ycnVwdGVkIGF0dHJpYnV0ZXMgb24gPCIrZCsiPiIKaWYodHlw
ZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiKXdpbmRvdy5jb25zb2xlLndhcm4odCkKcmV0dXJufWlmKCFu
LmEuVyhhKSl7bi5hMihhLGIpCndpbmRvdwp0PSJSZW1vdmluZyBkaXNhbGxvd2VkIGVsZW1lbnQgPCIr
SC5iKGUpKyI+IGZyb20gIitILmIoYikKaWYodHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiKXdpbmRv
dy5jb25zb2xlLndhcm4odCkKcmV0dXJufWlmKGchPW51bGwpaWYoIW4uYS5OKGEsImlzIixnKSl7bi5h
MihhLGIpCndpbmRvdwp0PSJSZW1vdmluZyBkaXNhbGxvd2VkIHR5cGUgZXh0ZW5zaW9uIDwiK0guYihl
KSsnIGlzPSInK2crJyI+JwppZih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCIpd2luZG93LmNvbnNv
bGUud2Fybih0KQpyZXR1cm59dD1mLmdKKCkKcz1ILm4odC5zbGljZSgwKSxILloodCkuaCgiRjwxPiIp
KQpmb3Iocj1mLmdKKCkubGVuZ3RoLTEsdD1mLmE7cj49MDstLXIpe2lmKHI+PXMubGVuZ3RoKXJldHVy
biBILmkocyxyKQpxPXNbcl0KcD1uLmEKbz1KLmp0KHEpCkgubyhxKQppZighcC5OKGEsbyx0LmdldEF0
dHJpYnV0ZShxKSkpe3dpbmRvdwpwPSJSZW1vdmluZyBkaXNhbGxvd2VkIGF0dHJpYnV0ZSA8IitILmIo
ZSkrIiAiK3ErJz0iJytILmIodC5nZXRBdHRyaWJ1dGUocSkpKyciPicKaWYodHlwZW9mIGNvbnNvbGUh
PSJ1bmRlZmluZWQiKXdpbmRvdy5jb25zb2xlLndhcm4ocCkKdC5yZW1vdmVBdHRyaWJ1dGUocSl9fWlm
KHUuYVcuYyhhKSluLmFPKGEuY29udGVudCl9LAokaWpQOjF9ClcuZjUucHJvdG90eXBlPXsKJDI6ZnVu
Y3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwPXRoaXMuYQpzd2l0Y2goYS5ub2RlVHlwZSl7Y2FzZSAxOnAu
YlcoYSxiKQpicmVhawpjYXNlIDg6Y2FzZSAxMTpjYXNlIDM6Y2FzZSA0OmJyZWFrCmRlZmF1bHQ6cC5h
MihhLGIpfXQ9YS5sYXN0Q2hpbGQKZm9yKHA9dS5GO251bGwhPXQ7KXtzPW51bGwKdHJ5e3M9dC5wcmV2
aW91c1NpYmxpbmd9Y2F0Y2gocil7SC5RKHIpCnE9cC5iKHQpCmEucmVtb3ZlQ2hpbGQocSkKdD1udWxs
CnM9YS5sYXN0Q2hpbGR9aWYodCE9bnVsbCl0aGlzLiQyKHQsYSkKdD1wLmIocyl9fSwKJFM6Mjl9Clcu
ZGsucHJvdG90eXBlPXt9ClcuZHYucHJvdG90eXBlPXt9ClcuZHcucHJvdG90eXBlPXt9ClcuZEgucHJv
dG90eXBlPXt9ClcuZEkucHJvdG90eXBlPXt9ClAuZVYucHJvdG90eXBlPXsKYUM6ZnVuY3Rpb24oYSl7
dmFyIHQscz10aGlzLmEscj1zLmxlbmd0aApmb3IodD0wO3Q8cjsrK3QpaWYoc1t0XT09PWEpcmV0dXJu
IHQKQy5iLmsocyxhKQpDLmIuayh0aGlzLmIsbnVsbCkKcmV0dXJuIHJ9LAphaTpmdW5jdGlvbihhKXt2
YXIgdCxzLHIscT10aGlzLHA9e30KaWYoYT09bnVsbClyZXR1cm4gYQppZihILmZkKGEpKXJldHVybiBh
CmlmKHR5cGVvZiBhPT0ibnVtYmVyIilyZXR1cm4gYQppZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJu
IGEKaWYoYSBpbnN0YW5jZW9mIFAuYjcpcmV0dXJuIG5ldyBEYXRlKGEuYSkKaWYodS5mdi5jKGEpKXRo
cm93IEguYShQLmVsKCJzdHJ1Y3R1cmVkIGNsb25lIG9mIFJlZ0V4cCIpKQppZih1LmM4LmMoYSkpcmV0
dXJuIGEKaWYodS5kLmMoYSkpcmV0dXJuIGEKaWYodS5JLmMoYSkpcmV0dXJuIGEKdD11LmRELmMoYSl8
fCExCmlmKHQpcmV0dXJuIGEKaWYodS5HLmMoYSkpe3M9cS5hQyhhKQp0PXEuYgppZihzPj10Lmxlbmd0
aClyZXR1cm4gSC5pKHQscykKcj1wLmE9dFtzXQppZihyIT1udWxsKXJldHVybiByCnI9e30KcC5hPXIK
Qy5iLmwodCxzLHIpCmEuQSgwLG5ldyBQLmVYKHAscSkpCnJldHVybiBwLmF9aWYodS5qLmMoYSkpe3M9
cS5hQyhhKQpwPXEuYgppZihzPj1wLmxlbmd0aClyZXR1cm4gSC5pKHAscykKcj1wW3NdCmlmKHIhPW51
bGwpcmV0dXJuIHIKcmV0dXJuIHEuYzcoYSxzKX1pZih1LmVILmMoYSkpe3M9cS5hQyhhKQp0PXEuYgpp
ZihzPj10Lmxlbmd0aClyZXR1cm4gSC5pKHQscykKcj1wLmI9dFtzXQppZihyIT1udWxsKXJldHVybiBy
CnI9e30KcC5iPXIKQy5iLmwodCxzLHIpCnEuY2QoYSxuZXcgUC5lWShwLHEpKQpyZXR1cm4gcC5ifXRo
cm93IEguYShQLmVsKCJzdHJ1Y3R1cmVkIGNsb25lIG9mIG90aGVyIHR5cGUiKSl9LApjNzpmdW5jdGlv
bihhLGIpe3ZhciB0LHM9Si5hXyhhKSxyPXMuZ20oYSkscT1uZXcgQXJyYXkocikKQy5iLmwodGhpcy5i
LGIscSkKZm9yKHQ9MDt0PHI7Kyt0KUMuYi5sKHEsdCx0aGlzLmFpKHMuaihhLHQpKSkKcmV0dXJuIHF9
fQpQLmVYLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7dGhpcy5hLmFbYV09dGhpcy5iLmFpKGIp
fSwKJFM6Mn0KUC5lWS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3RoaXMuYS5iW2FdPXRoaXMu
Yi5haShiKX0sCiRTOjJ9ClAuZVcucHJvdG90eXBlPXsKY2Q6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIs
cQp1LmI4LmIoYikKZm9yKHQ9T2JqZWN0LmtleXMoYSkscz10Lmxlbmd0aCxyPTA7cjxzOysrcil7cT10
W3JdCmIuJDIocSxhW3FdKX19fQpQLmNBLnByb3RvdHlwZT17CmF5OmZ1bmN0aW9uKGEpe3ZhciB0PSQu
ajEoKS5iCmlmKHQudGVzdChhKSlyZXR1cm4gYQp0aHJvdyBILmEoUC5mWChhLCJ2YWx1ZSIsIk5vdCBh
IHZhbGlkIGNsYXNzIHRva2VuIikpfSwKaTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5YKCkuVCgwLCIg
Iil9LApnRjpmdW5jdGlvbihhKXt2YXIgdD10aGlzLlgoKQpyZXR1cm4gUC5pYyh0LHQucixILnYodCku
ZCl9LApnbTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5YKCkuYX0sCnc6ZnVuY3Rpb24oYSxiKXt0aGlz
LmF5KGIpCnJldHVybiB0aGlzLlgoKS53KDAsYil9LAprOmZ1bmN0aW9uKGEsYil7dGhpcy5heShiKQpy
ZXR1cm4gSC5oZyh0aGlzLmNqKG5ldyBQLmRUKGIpKSl9LApNOmZ1bmN0aW9uKGEsYil7dmFyIHQscwp0
aGlzLmF5KGIpCnQ9dGhpcy5YKCkKcz10Lk0oMCxiKQp0aGlzLmFMKHQpCnJldHVybiBzfSwKY2o6ZnVu
Y3Rpb24oYSl7dmFyIHQscwp1LmNoLmIoYSkKdD10aGlzLlgoKQpzPWEuJDEodCkKdGhpcy5hTCh0KQpy
ZXR1cm4gc319ClAuZFQucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHUuVC5iKGEpLmso
MCx0aGlzLmEpfSwKJFM6MzB9ClAuYksucHJvdG90eXBlPXskaWJLOjF9ClAuZjcucHJvdG90eXBlPXsK
JDE6ZnVuY3Rpb24oYSl7dmFyIHQKdS5aLmIoYSkKdD1mdW5jdGlvbihiLGMsZCl7cmV0dXJuIGZ1bmN0
aW9uKCl7cmV0dXJuIGIoYyxkLHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGFyZ3VtZW50
cykpfX0oUC5rVCxhLCExKQpQLmhqKHQsJC5mVigpLGEpCnJldHVybiB0fSwKJFM6NH0KUC5mOC5wcm90
b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IHRoaXMuYShhKX0sCiRTOjR9ClAuZmcucHJv
dG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLmJiKGEpfSwKJFM6MzF9ClAuZmgucHJv
dG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLmFPKGEsdS5hbSl9LAokUzozMn0KUC5m
aS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFAuWShhKX0sCiRTOjMzfQpQLlku
cHJvdG90eXBlPXsKajpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiIT0ic3RyaW5nIiYmdHlwZW9mIGIh
PSJudW1iZXIiKXRocm93IEguYShQLmI0KCJwcm9wZXJ0eSBpcyBub3QgYSBTdHJpbmcgb3IgbnVtIikp
CnJldHVybiBQLmhoKHRoaXMuYVtiXSl9LApsOmZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2YgYiE9InN0
cmluZyImJnR5cGVvZiBiIT0ibnVtYmVyIil0aHJvdyBILmEoUC5iNCgicHJvcGVydHkgaXMgbm90IGEg
U3RyaW5nIG9yIG51bSIpKQp0aGlzLmFbYl09UC5oaShjKX0sCkc6ZnVuY3Rpb24oYSxiKXtpZihiPT1u
dWxsKXJldHVybiExCnJldHVybiBiIGluc3RhbmNlb2YgUC5ZJiZ0aGlzLmE9PT1iLmF9LAppOmZ1bmN0
aW9uKGEpe3ZhciB0LHMKdHJ5e3Q9U3RyaW5nKHRoaXMuYSkKcmV0dXJuIHR9Y2F0Y2gocyl7SC5RKHMp
CnQ9dGhpcy5iQigwKQpyZXR1cm4gdH19LApjMzpmdW5jdGlvbihhLGIpe3ZhciB0LHM9dGhpcy5hCmlm
KGI9PW51bGwpdD1udWxsCmVsc2V7dD1ILlooYikKdD1QLmgyKG5ldyBILmE0KGIsdC5oKCJAKDEpIiku
YihQLmx6KCkpLHQuaCgiYTQ8MSxAPiIpKSwhMCx1LnopfXJldHVybiBQLmhoKHNbYV0uYXBwbHkocyx0
KSl9LApncTpmdW5jdGlvbihhKXtyZXR1cm4gMH19ClAuYmIucHJvdG90eXBlPXt9ClAuYU8ucHJvdG90
eXBlPXsKYVU6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcyxzPWE8MHx8YT49dC5nbSh0KQppZihzKXRocm93
IEguYShQLkwoYSwwLHQuZ20odCksbnVsbCxudWxsKSl9LApqOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9m
IGI9PSJudW1iZXIiJiZiPT09Qy5jLmJvKGIpKXRoaXMuYVUoSC54KGIpKQpyZXR1cm4gdGhpcy4kdGku
ZC5iKHRoaXMuYnooMCxiKSl9LApsOmZ1bmN0aW9uKGEsYixjKXt2YXIgdAp0aGlzLiR0aS5kLmIoYykK
dD1DLmMuYm8oYikKaWYoYj09PXQpdGhpcy5hVShiKQp0aGlzLmJBKDAsYixjKX0sCmdtOmZ1bmN0aW9u
KGEpe3ZhciB0PXRoaXMuYS5sZW5ndGgKaWYodHlwZW9mIHQ9PT0ibnVtYmVyIiYmdD4+PjA9PT10KXJl
dHVybiB0CnRocm93IEguYShQLmQyKCJCYWQgSnNBcnJheSBsZW5ndGgiKSl9LAokaWo6MSwKJGltOjF9
ClAuYzUucHJvdG90eXBlPXt9ClAuYmcucHJvdG90eXBlPXskaWJnOjF9ClAuY3YucHJvdG90eXBlPXsK
WDpmdW5jdGlvbigpe3ZhciB0LHMscixxLHA9dGhpcy5hLmdldEF0dHJpYnV0ZSgiY2xhc3MiKSxvPVAu
Yk0odS5OKQppZihwPT1udWxsKXJldHVybiBvCmZvcih0PXAuc3BsaXQoIiAiKSxzPXQubGVuZ3RoLHI9
MDtyPHM7KytyKXtxPUouZFIodFtyXSkKaWYocS5sZW5ndGghPT0wKW8uaygwLHEpfXJldHVybiBvfSwK
YUw6ZnVuY3Rpb24oYSl7dGhpcy5hLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGEuVCgwLCIgIikpfX0KUC5l
LnByb3RvdHlwZT17CmdDOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5jdihhKX0sCnNhZjpmdW5jdGlv
bihhLGIpe3RoaXMuYWwoYSxiKX0sCks6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyLHEscCxvCmlm
KGQ9PW51bGwpe3Q9SC5uKFtdLHUuUSkKZD1uZXcgVy5iVSh0KQpDLmIuayh0LFcuaWEobnVsbCkpCkMu
Yi5rKHQsVy5pZSgpKQpDLmIuayh0LG5ldyBXLmRBKCkpfWM9bmV3IFcuY20oZCkKcz0nPHN2ZyB2ZXJz
aW9uPSIxLjEiPicrSC5iKGIpKyI8L3N2Zz4iCnQ9ZG9jdW1lbnQKcj10LmJvZHkKcT0ociYmQy5wKS5j
OChyLHMsYykKcD10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKQpxLnRvU3RyaW5nCnQ9bmV3IFcuTyhx
KQpvPXQuZ1kodCkKZm9yKDt0PW8uZmlyc3RDaGlsZCx0IT1udWxsOylwLmFwcGVuZENoaWxkKHQpCnJl
dHVybiBwfSwKZ2FHOmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVy5ibihhLCJjbGljayIsITEsdS5DKX0s
CiRpZToxfQpQLmFoLnByb3RvdHlwZT17JGlqOjEsJGltOjEsJGlXOjF9CkwuZlUucHJvdG90eXBlPXsK
JDE6ZnVuY3Rpb24oYSl7dmFyIHQscwp1LlYuYihhKQp0PXRoaXMuYQpzPXRoaXMuYgpMLmh4KHdpbmRv
dy5sb2NhdGlvbi5wYXRobmFtZSx0LHMsbmV3IEwuZlQodCxzKSkKTC5pTih0aGlzLmMpfSwKJFM6OX0K
TC5mVC5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe0wuZlEod2luZG93LmxvY2F0aW9uLnBhdGhuYW1l
LHRoaXMuYSx0aGlzLmIpfSwKJFM6MH0KTC5mQy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIg
dCxzPXRoaXMKdS5yLmIoYSkKdD1hLnN0YXR1cwppZih0PT09MjAwKXtMLmpfKEMubC5hQigwLGEucmVz
cG9uc2VUZXh0LG51bGwpKQp0PXMuYQpMLmlQKHQscy5iKQpMLmlaKHMuYyx0KQp0PXMuZAppZih0IT1u
dWxsKXQuJDAoKX1lbHNlIHdpbmRvdy5hbGVydCgiUmVxdWVzdCBmYWlsZWQ7IHN0YXR1cyBvZiAiK0gu
Yih0KSl9LAokUzo1fQpMLmZELnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7TC5mSShhLGIpCndp
bmRvdy5hbGVydCgiQ291bGQgbm90IGxvYWQgIitILmIodGhpcy5hKSsiOyBwcmV2aWV3IHNlcnZlciBt
aWdodCBiZSBkaXNjb25uZWN0ZWQuIil9LAokQzoiJDIiLAokUjoyLAokUzoyfQpMLmZTLnByb3RvdHlw
ZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHM9InNlbGVjdGVkLWZpbGUiCnUuaC5iKGEpCmEudG9TdHJp
bmcKdD1KLkUoYSkKaWYoYS5nZXRBdHRyaWJ1dGUoImRhdGEtIituZXcgVy5hQihuZXcgVy5hcChhKSku
VigibmFtZSIpKT09dGhpcy5hLmEpdC5nQyhhKS5rKDAscykKZWxzZSB0LmdDKGEpLk0oMCxzKX0sCiRT
OjN9CkwuZngucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dS5oLmIoYSkKJC5qaSgpLnRvU3RyaW5n
CnUubS5iKCQuamcoKS5qKDAsImhsanMiKSkuYzMoImhpZ2hsaWdodEJsb2NrIixbYV0pfSwKJFM6M30K
TC5mai5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT0iY29sbGFwc2VkIgp1LlYu
YihhKQp0PXRoaXMuYQpzPUouRSh0KQpyPXRoaXMuYgppZighcy5nQyh0KS53KDAscSkpe3MuZ0ModCku
aygwLHEpCkouYWwocikuaygwLHEpfWVsc2V7cy5nQyh0KS5NKDAscSkKSi5hbChyKS5NKDAscSl9fSwK
JFM6OX0KTC5mcy5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe0wuZlEodGhpcy5hLHRoaXMuYix0aGlz
LmMpfSwKJFM6MH0KTC5mdC5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe0wuZlEodGhpcy5hLG51bGws
bnVsbCl9LAokUzowfQpMLmZ1LnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0PXUuci5iKGEp
LnN0YXR1cwppZih0IT09MjAwKXdpbmRvdy5hbGVydCgiUmVxdWVzdCBmYWlsZWQ7IHN0YXR1cyBvZiAi
K0guYih0KSl9LAokUzo1fQpMLmZ2LnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7TC5mSShhLGIp
CndpbmRvdy5hbGVydCgiQ291bGQgbm90IGxvYWQgIitILmIodGhpcy5hLmEpKyI7IHByZXZpZXcgc2Vy
dmVyIG1pZ2h0IGJlIGRpc2Nvbm5lY3RlZC4iKX0sCiRDOiIkMiIsCiRSOjIsCiRTOjJ9CkwuZmwucHJv
dG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQ9Si5kUCh1LmguYihhKSkscz10LiR0aQpzLmgoIn4o
MSkiKS5iKEwuZlAoKSkKdS5NLmIobnVsbCkKVy5hQyh0LmEsdC5iLEwuZlAoKSwhMSxzLmQpfSwKJFM6
M30KTC5mbS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIKdS5oLmIoYSkKdD1KLmRQ
KGEpCnM9dC4kdGkKcj1zLmgoIn4oMSkiKS5iKG5ldyBMLmZrKGEpKQp1Lk0uYihudWxsKQpXLmFDKHQu
YSx0LmIsciwhMSxzLmQpfSwKJFM6M30KTC5may5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt1LlYu
YihhKQpMLmlOKHRoaXMuYSl9LAokUzo5fQpMLmZuLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3Zh
ciB0PUouZFAodS5oLmIoYSkpLHM9dC4kdGkKcy5oKCJ+KDEpIikuYihMLmlRKCkpCnUuTS5iKG51bGwp
ClcuYUModC5hLHQuYixMLmlRKCksITEscy5kKX0sCiRTOjN9CkwuZkUucHJvdG90eXBlPXsKJDE6ZnVu
Y3Rpb24oYSl7dmFyIHQscyxyCnUuci5iKGEpCnQ9YS5zdGF0dXMKaWYodD09PTIwMCl7cz1DLmwuYUIo
MCxhLnJlc3BvbnNlVGV4dCxudWxsKQpyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5uYXYtdHJlZSIp
CkouZFEociwiIikKTC5qMChyLHMpfWVsc2Ugd2luZG93LmFsZXJ0KCJSZXF1ZXN0IGZhaWxlZDsgc3Rh
dHVzIG9mICIrSC5iKHQpKX0sCiRTOjV9CkwuZkYucHJvdG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXtM
LmZJKGEsYikKd2luZG93LmFsZXJ0KCJDb3VsZCBub3QgbG9hZCAiK3RoaXMuYSsiOyBwcmV2aWV3IHNl
cnZlciBtaWdodCBiZSBkaXNjb25uZWN0ZWQuIil9LAokQzoiJDIiLAokUjoyLAokUzoyfQpMLmZHLnBy
b3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0CnUuci5iKGEpCnQ9YS5zdGF0dXMKaWYodD09PTIw
MCl7TC5sSShDLmwuYUIoMCxhLnJlc3BvbnNlVGV4dCxudWxsKSkKTC5obygiLmVkaXQtcGFuZWwgLnBh
bmVsLWNvbnRlbnQiKX1lbHNlIHdpbmRvdy5hbGVydCgiUmVxdWVzdCBmYWlsZWQ7IHN0YXR1cyBvZiAi
K0guYih0KSl9LAokUzo1fQpMLmZILnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7TC5mSShhLGIp
CndpbmRvdy5hbGVydCgiQ291bGQgbm90IGxvYWQgIitILmIodGhpcy5hKSsiOyBwcmV2aWV3IHNlcnZl
ciBtaWdodCBiZSBkaXNjb25uZWN0ZWQuIil9LAokQzoiJDIiLAokUjoyLAokUzoyfQpMLmZLLnByb3Rv
dHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHMscgp1LkEuYihhKQp0PXdpbmRvdy5sb2NhdGlvbi5w
YXRobmFtZQpzPUwuZnIod2luZG93LmxvY2F0aW9uLmhyZWYpCnI9TC5mcSh3aW5kb3cubG9jYXRpb24u
aHJlZikKTC5sQSgpCmlmKHQhPT0iLyImJnQhPT1KLmRSKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5y
b290IikudGV4dENvbnRlbnQpKUwuaHUodCxzLHIsbmV3IEwuZkoodCxzLHIpKQpMLmlVKCl9LAokUzo2
fQpMLmZKLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7TC5mUSh0aGlzLmEsdGhpcy5iLHRoaXMuYyl9
LAokUzowfQpMLmZMLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxCnUuQS5iKGEp
CnQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lCnM9TC5mcih3aW5kb3cubG9jYXRpb24uaHJlZikKcj1M
LmZxKHdpbmRvdy5sb2NhdGlvbi5ocmVmKQppZih0Lmxlbmd0aD4xKUwuaHUodCxzLHIsbnVsbCkKZWxz
ZXtxPXUuTgpMLmpfKFAuY08oWyJyZWdpb25zIiwiIiwibmF2Q29udGVudCIsIiJdLHEscSkpCkwuaVoo
IiZuYnNwOyIsbnVsbCl9fSwKJFM6Nn0KTC5mTS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt1LkEu
YihhKQp0aGlzLmEuYmsoTC5pUigpKX0sCiRTOjZ9CkwuZk4ucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24o
YSl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaj0iZml4ZWQiCnUuQS5iKGEpCnQ9ZG9jdW1lbnQKcz10
LnF1ZXJ5U2VsZWN0b3IoIi5uYXYtcGFuZWwiKQpyPXMucXVlcnlTZWxlY3RvcigiLm5hdi1pbm5lciIp
CnE9dC5xdWVyeVNlbGVjdG9yKCIuaW5mby1wYW5lbCIpCnA9dC5xdWVyeVNlbGVjdG9yKCIucGFuZWwt
Y29udGFpbmVyIikKbz1DLmUuYTMocy5vZmZzZXRUb3ApCmlmKEMuZS5hMyh3aW5kb3cucGFnZVlPZmZz
ZXQpPm8pe3Q9Si5FKHIpCmlmKCF0LmdDKHIpLncoMCxqKSl7bj1DLmUuYTMocy5vZmZzZXRXaWR0aCkt
MTQKbT1zLnN0eWxlCmw9IiIrbisicHgiCm0ud2lkdGg9bAptPXIuc3R5bGUKbD1DLmMuaShuKzcpKyJw
eCIKbS53aWR0aD1sCnQuZ0MocikuaygwLGopfXQ9Si5FKHApCmlmKCF0LmdDKHApLncoMCxqKSl7az1D
LmUuYTMocS5vZmZzZXRXaWR0aCkKbT1xLnN0eWxlCmw9IiIraysicHgiCm0ud2lkdGg9bAptPXAuc3R5
bGUKbD0iIitrKyJweCIKbS53aWR0aD1sCnQuZ0MocCkuaygwLGopfX1lbHNle3Q9Si5FKHIpCmlmKHQu
Z0MocikudygwLGopKXttPXMuc3R5bGUKbS53aWR0aD0iIgptPXIuc3R5bGUKbS53aWR0aD0iIgp0LmdD
KHIpLk0oMCxqKX10PUouRShwKQppZih0LmdDKHApLncoMCxqKSl7bT1xLnN0eWxlCm0ud2lkdGg9IiIK
bT1wLnN0eWxlCm0ud2lkdGg9IiIKdC5nQyhwKS5NKDAsail9fXRoaXMuYS5iayhMLmlSKCkpfSwKJFM6
Nn0KTC5lMC5wcm90b3R5cGU9e30KTC5jRC5wcm90b3R5cGU9ewpiazpmdW5jdGlvbihhKXt2YXIgdAp1
Lk0uYihhKQp0PXRoaXMuYgppZih0IT1udWxsKXQuYzQoKQp0aGlzLmI9UC5rNyh0aGlzLmEsYSl9fQpM
LmNZLnByb3RvdHlwZT17Ck46ZnVuY3Rpb24oYSxiLGMpe3JldHVybiEwfSwKVzpmdW5jdGlvbihhKXty
ZXR1cm4hMH0sCiRpRzoxfTsoZnVuY3Rpb24gYWxpYXNlcygpe3ZhciB0PUouSS5wcm90b3R5cGUKdC5i
dz10LmkKdC5idj10LmFoCnQ9Si5heS5wcm90b3R5cGUKdC5ieT10LmkKdD1QLmoucHJvdG90eXBlCnQu
Yng9dC5hagp0PVAudC5wcm90b3R5cGUKdC5iQj10LmkKdD1XLnUucHJvdG90eXBlCnQuYW09dC5LCnQ9
Vy5jZi5wcm90b3R5cGUKdC5iQz10Lk4KdD1QLlkucHJvdG90eXBlCnQuYno9dC5qCnQuYkE9dC5sfSko
KTsoZnVuY3Rpb24gaW5zdGFsbFRlYXJPZmZzKCl7dmFyIHQ9aHVua0hlbHBlcnMuX3N0YXRpY18xLHM9
aHVua0hlbHBlcnMuX3N0YXRpY18wLHI9aHVua0hlbHBlcnMuaW5zdGFsbEluc3RhbmNlVGVhck9mZixx
PWh1bmtIZWxwZXJzLmluc3RhbGxTdGF0aWNUZWFyT2ZmCnQoUCwibGgiLCJrZyIsNykKdChQLCJsaSIs
ImtoIiw3KQp0KFAsImxqIiwia2kiLDcpCnMoUCwiaUkiLCJsYyIsMSkKcihQLmMyLnByb3RvdHlwZSwi
Z2M1IiwwLDEsbnVsbCxbIiQyIiwiJDEiXSxbImJhIiwiYjkiXSwzNCwwKQpxKFcsImxyIiw0LG51bGws
WyIkNCJdLFsia2wiXSwxNiwwKQpxKFcsImxzIiw0LG51bGwsWyIkNCJdLFsia20iXSwxNiwwKQp0KFAs
Imx6IiwiaGkiLDQpCnQoUCwibHkiLCJoaCIsMjgpCnQoTCwiZlAiLCJsbyIsMTUpCnQoTCwiaVEiLCJs
cCIsMTUpCnMoTCwiaVIiLCJpVSIsMSl9KSgpOyhmdW5jdGlvbiBpbmhlcml0YW5jZSgpe3ZhciB0PWh1
bmtIZWxwZXJzLm1peGluLHM9aHVua0hlbHBlcnMuaW5oZXJpdCxyPWh1bmtIZWxwZXJzLmluaGVyaXRN
YW55CnMoUC50LG51bGwpCnIoUC50LFtILmgwLEouSSxKLmFGLFAuYzcsUC5qLEguYVEsUC5SLEguVixI
LmFYLEguYmksUC5iYyxILmJ5LEguY0osSC5hSSxILmVqLFAucixILmNnLFAuQixILmU4LEguYkwsSC5j
SyxILmFmLEguZUIsUC5kQyxQLmMyLFAuYVosUC5TLFAuZGgsUC5iWSxQLmQ0LFAuZDUsUC5hdSxQLmRH
LFAuY2QsUC5kdSxQLmIwLFAubCxQLmNqLFAuYVcsUC5jZSxQLmEyLFAuZjQsUC5mMyxQLnosUC5iNyxQ
LlUsUC5iOCxQLmNXLFAuYlgsUC5lQSxQLmVfLFAuYWIsUC5tLFAueSxQLnAsUC5hZyxQLmMsUC5ILFAu
YTYsUC5jayxQLmVtLFAuZHosVy5kVSxXLmhfLFcuYl8sVy5hYyxXLmJVLFcuY2YsVy5kQSxXLmFOLFcu
ZGwsVy5HLFcuZHksVy5jbSxQLmVWLFAuWSxQLmFoLEwuZTAsTC5jRCxMLmNZXSkKcihKLkksW0ouY0gs
Si5iSixKLmF5LEouRixKLmJhLEouYXgsSC5DLFcucSxXLmFHLFcuZGssVy5kVixXLmJCLFcuZFcsVy5k
LFcuZTEsVy5iSCxXLmJPLFcuZHYsVy5kSCxQLmJLXSkKcihKLmF5LFtKLmNaLEouYmssSi5hZF0pCnMo
Si5lNyxKLkYpCnIoSi5iYSxbSi5iSSxKLmNJXSkKcyhQLmJOLFAuYzcpCnIoUC5iTixbSC5ibCxXLmFx
LFcuT10pCnMoSC5jeSxILmJsKQpyKFAuaixbSC5iQyxILmFZXSkKcihILmJDLFtILmFlLEguYVAsUC5N
XSkKcihILmFlLFtILmE0LFAuZHRdKQpzKEguY18sUC5SKQpzKFAuYnEsUC5iYykKcyhQLmF6LFAuYnEp
CnMoSC5ieixQLmF6KQpzKEguYUosSC5ieSkKcihILmFJLFtILmVlLEguZlIsSC5kOCxILmZ5LEguZnos
SC5mQSxQLmV0LFAuZXMsUC5ldSxQLmV2LFAuZl8sUC5lQyxQLmVLLFAuZUcsUC5lSCxQLmVJLFAuZUUs
UC5lSixQLmVELFAuZU4sUC5lTyxQLmVNLFAuZUwsUC5laCxQLmVpLFAuZmYsUC5lUixQLmVRLFAuZVMs
UC5lYSxQLmViLFAuZFgsUC5kWSxQLmVxLFAuZW4sUC5lbyxQLmVwLFAuZjEsUC5mMixQLmZhLFAuZjks
UC5mYixQLmZjLFcuZFosVy5lMyxXLmU0LFcuZXcsVy5leCxXLmV6LFcuZWQsVy5lYyxXLmVULFcuZVUs
Vy5lWixXLmY1LFAuZVgsUC5lWSxQLmRULFAuZjcsUC5mOCxQLmZnLFAuZmgsUC5maSxMLmZVLEwuZlQs
TC5mQyxMLmZELEwuZlMsTC5meCxMLmZqLEwuZnMsTC5mdCxMLmZ1LEwuZnYsTC5mbCxMLmZtLEwuZmss
TC5mbixMLmZFLEwuZkYsTC5mRyxMLmZILEwuZkssTC5mSixMLmZMLEwuZk0sTC5mTl0pCnIoUC5yLFtI
LmNWLEguY0wsSC5kYSxILmQwLFAuYncsSC5kcCxQLmJkLFAuYTEsUC5jVSxQLmRiLFAuZDksUC5iaCxQ
LmN6LFAuY0JdKQpyKEguZDgsW0guZDMsSC5iNl0pCnMoSC5kZyxQLmJ3KQpzKFAuYlAsUC5CKQpyKFAu
YlAsW0guYW4sUC5kcyxXLmRpLFcuYUJdKQpzKEguYlEsSC5DKQpyKEguYlEsW0guYzksSC5jYl0pCnMo
SC5jYSxILmM5KQpzKEguYVIsSC5jYSkKcyhILmNjLEguY2IpCnMoSC5iUixILmNjKQpyKEguYlIsW0gu
Y1AsSC5jUSxILmNSLEguY1MsSC5jVCxILmJTLEguYVNdKQpyKEguZHAsW0guYzEsSC5jaF0pCnMoUC5j
MCxQLmMyKQpzKFAuZHgsUC5kRykKcyhQLmM2LFAuY2QpCnMoUC5iVyxQLmNlKQpyKFAuYTIsW1AuY3cs
UC5jRSxQLmNNXSkKcyhQLmFLLFAuZDUpCnIoUC5hSyxbUC5jeCxQLmNOLFAuZGYsUC5kZV0pCnMoUC5k
ZCxQLmNFKQpyKFAuVSxbUC5ULFAuZl0pCnIoUC5hMSxbUC5hVSxQLmNHXSkKcyhQLmRtLFAuY2spCnIo
Vy5xLFtXLmssVy5iRyxXLmFBLFcuYWldKQpyKFcuayxbVy51LFcuYWEsVy5hTCxXLmJtXSkKcihXLnUs
W1cuaCxQLmVdKQpyKFcuaCxbVy5iMyxXLmN1LFcuYjUsVy5hSCxXLmNGLFcuYmUsVy5kMSxXLmJaLFcu
ZDYsVy5kNyxXLmJqXSkKcyhXLmJBLFcuZGspCnMoVy5iOSxXLmFHKQpzKFcuYkYsVy5hTCkKcyhXLmEz
LFcuYkcpCnIoVy5kLFtXLmE3LFcuYTVdKQpzKFcuSyxXLmE3KQpzKFcuZHcsVy5kdikKcyhXLmJULFcu
ZHcpCnMoVy5jMyxXLmJCKQpzKFcuZEksVy5kSCkKcyhXLmM4LFcuZEkpCnMoVy5hcCxXLmRpKQpzKFAu
Y0EsUC5iVykKcihQLmNBLFtXLmRuLFAuY3ZdKQpzKFcuYzQsUC5iWSkKcyhXLmJuLFcuYzQpCnMoVy5k
cSxQLmQ0KQpzKFcuZEIsVy5jZikKcyhQLmVXLFAuZVYpCnIoUC5ZLFtQLmJiLFAuYzVdKQpzKFAuYU8s
UC5jNSkKcyhQLmJnLFAuZSkKdChILmJsLEguYVgpCnQoSC5jOSxQLmwpCnQoSC5jYSxILlYpCnQoSC5j
YixQLmwpCnQoSC5jYyxILlYpCnQoUC5jNyxQLmwpCnQoUC5jZSxQLmFXKQp0KFAuYnEsUC5jaikKdChX
LmRrLFcuZFUpCnQoVy5kdixQLmwpCnQoVy5kdyxXLmFjKQp0KFcuZEgsUC5sKQp0KFcuZEksVy5hYykK
dChQLmM1LFAubCl9KSgpCnZhciB2PXt0eXBlVW5pdmVyc2U6e2VDOm5ldyBNYXAoKSx0Ujp7fSxlVDp7
fSx0UFY6e30sc0VBOltdfSxtYW5nbGVkR2xvYmFsTmFtZXM6e2Y6ImludCIsVDoiZG91YmxlIixVOiJu
dW0iLGM6IlN0cmluZyIsejoiYm9vbCIscDoiTnVsbCIsbToiTGlzdCJ9LG1hbmdsZWROYW1lczp7fSxn
ZXRUeXBlRnJvbU5hbWU6Z2V0R2xvYmFsRnJvbU5hbWUsbWV0YWRhdGE6W10sdHlwZXM6WyJwKCkiLCJ+
KCkiLCJwKEAsQCkiLCJwKHUpIiwiQChAKSIsInAoYTMpIiwicChkKSIsIn4ofigpKSIsInAoYyxjKSIs
InAoSykiLCJ6KGMpIiwicChAKSIsImMoZikiLCJjKGMpIiwieihHKSIsIn4oSykiLCJ6KHUsYyxjLGJf
KSIsInAoYTYsQCkiLCJwKGMsQCkiLCJ+KGMsZikiLCJ+KGNbQF0pIiwiQChALGMpIiwicChjKSIsImFo
KEAsQCkiLCJmKGYsZikiLCJAKGMpIiwicChhNSkiLCJAKGQpIiwidChAKSIsIn4oayxrKSIsInooTTxj
PikiLCJiYihAKSIsImFPPEA+KEApIiwiWShAKSIsIn4odFthZ10pIiwieTxjLGM+KHk8YyxjPixjKSIs
InAofigpKSIsInAoQFthZ10pIiwiUzxAPihAKSIsInooaykiLCJhaChmKSJdLGludGVyY2VwdG9yc0J5
VGFnOm51bGwsbGVhZlRhZ3M6bnVsbH0KSC5reih2LnR5cGVVbml2ZXJzZSxKU09OLnBhcnNlKCd7ImFk
IjoiYXkiLCJjWiI6ImF5IiwiYmsiOiJheSIsImxLIjoiZCIsImxTIjoiZCIsImxKIjoiZSIsImxUIjoi
ZSIsIm1oIjoiYTUiLCJsTCI6ImgiLCJsViI6ImgiLCJtXyI6ImsiLCJsUiI6ImsiLCJtYyI6ImFMIiwi
bFoiOiJLIiwibE4iOiJhNyIsImxRIjoiYWkiLCJsTSI6ImFhIiwibTAiOiJhYSIsImxYIjoiYVIiLCJs
VyI6IkMiLCJjSCI6eyJ6IjpbXX0sImJKIjp7InAiOltdfSwiYXkiOnsiaFEiOltdLCJhYiI6W119LCJG
Ijp7Im0iOlsiMSJdLCJqIjpbIjEiXX0sImU3Ijp7IkYiOlsiMSJdLCJtIjpbIjEiXSwiaiI6WyIxIl19
LCJhRiI6eyJSIjpbIjEiXX0sImJhIjp7IlQiOltdLCJVIjpbXX0sImJJIjp7ImYiOltdLCJUIjpbXSwi
VSI6W119LCJjSSI6eyJUIjpbXSwiVSI6W119LCJheCI6eyJjIjpbXSwiY1giOltdfSwiY3kiOnsiYVgi
OlsiZiJdLCJsIjpbImYiXSwibSI6WyJmIl0sImoiOlsiZiJdLCJsLkUiOiJmIiwiYVguRSI6ImYifSwi
YkMiOnsiaiI6WyIxIl19LCJhZSI6eyJqIjpbIjEiXX0sImFRIjp7IlIiOlsiMSJdfSwiYTQiOnsiYWUi
OlsiMiJdLCJqIjpbIjIiXSwiYWUuRSI6IjIiLCJqLkUiOiIyIn0sImFZIjp7ImoiOlsiMSJdLCJqLkUi
OiIxIn0sImNfIjp7IlIiOlsiMSJdfSwiYmwiOnsiYVgiOlsiMSJdLCJsIjpbIjEiXSwibSI6WyIxIl0s
ImoiOlsiMSJdfSwiYmkiOnsiYTYiOltdfSwiYnoiOnsiYXoiOlsiMSIsIjIiXSwiYnEiOlsiMSIsIjIi
XSwiYmMiOlsiMSIsIjIiXSwiY2oiOlsiMSIsIjIiXSwieSI6WyIxIiwiMiJdfSwiYnkiOnsieSI6WyIx
IiwiMiJdfSwiYUoiOnsiYnkiOlsiMSIsIjIiXSwieSI6WyIxIiwiMiJdfSwiY0oiOnsiaE8iOltdfSwi
Y1YiOnsiciI6W119LCJjTCI6eyJyIjpbXX0sImRhIjp7InIiOltdfSwiY2ciOnsiYWciOltdfSwiYUki
OnsiYWIiOltdfSwiZDgiOnsiYWIiOltdfSwiZDMiOnsiYWIiOltdfSwiYjYiOnsiYWIiOltdfSwiZDAi
OnsiciI6W119LCJkZyI6eyJyIjpbXX0sImFuIjp7ImhTIjpbIjEiLCIyIl0sIkIiOlsiMSIsIjIiXSwi
eSI6WyIxIiwiMiJdLCJCLksiOiIxIiwiQi5WIjoiMiJ9LCJhUCI6eyJqIjpbIjEiXSwiai5FIjoiMSJ9
LCJiTCI6eyJSIjpbIjEiXX0sImNLIjp7ImhaIjpbXSwiY1giOltdfSwiQyI6eyJXIjpbXX0sImJRIjp7
IkoiOlsiQCJdLCJDIjpbXSwiVyI6W119LCJhUiI6eyJsIjpbIlQiXSwiSiI6WyJAIl0sIm0iOlsiVCJd
LCJDIjpbXSwiViI6WyJUIl0sIlciOltdLCJqIjpbIlQiXSwibC5FIjoiVCJ9LCJiUiI6eyJsIjpbImYi
XSwibSI6WyJmIl0sIkoiOlsiQCJdLCJDIjpbXSwiViI6WyJmIl0sIlciOltdLCJqIjpbImYiXX0sImNQ
Ijp7ImwiOlsiZiJdLCJtIjpbImYiXSwiSiI6WyJAIl0sIkMiOltdLCJWIjpbImYiXSwiVyI6W10sImoi
OlsiZiJdLCJsLkUiOiJmIn0sImNRIjp7ImwiOlsiZiJdLCJtIjpbImYiXSwiSiI6WyJAIl0sIkMiOltd
LCJWIjpbImYiXSwiVyI6W10sImoiOlsiZiJdLCJsLkUiOiJmIn0sImNSIjp7ImwiOlsiZiJdLCJtIjpb
ImYiXSwiSiI6WyJAIl0sIkMiOltdLCJWIjpbImYiXSwiVyI6W10sImoiOlsiZiJdLCJsLkUiOiJmIn0s
ImNTIjp7ImwiOlsiZiJdLCJtIjpbImYiXSwiSiI6WyJAIl0sIkMiOltdLCJWIjpbImYiXSwiVyI6W10s
ImoiOlsiZiJdLCJsLkUiOiJmIn0sImNUIjp7ImwiOlsiZiJdLCJtIjpbImYiXSwiSiI6WyJAIl0sIkMi
OltdLCJWIjpbImYiXSwiVyI6W10sImoiOlsiZiJdLCJsLkUiOiJmIn0sImJTIjp7ImwiOlsiZiJdLCJt
IjpbImYiXSwiSiI6WyJAIl0sIkMiOltdLCJWIjpbImYiXSwiVyI6W10sImoiOlsiZiJdLCJsLkUiOiJm
In0sImFTIjp7ImFoIjpbXSwibCI6WyJmIl0sIm0iOlsiZiJdLCJKIjpbIkAiXSwiQyI6W10sIlYiOlsi
ZiJdLCJXIjpbXSwiaiI6WyJmIl0sImwuRSI6ImYifSwiZHAiOnsiciI6W119LCJjMSI6eyJyIjpbXX0s
ImNoIjp7InIiOltdfSwiZEMiOnsiazYiOltdfSwiYzAiOnsiYzIiOlsiMSJdfSwiUyI6eyJiRSI6WyIx
Il19LCJhdSI6eyJyIjpbXX0sImRHIjp7Imk4IjpbXX0sImR4Ijp7Imk4IjpbXX0sImM2Ijp7ImNkIjpb
IjEiXSwiTSI6WyIxIl0sImoiOlsiMSJdfSwiYjAiOnsiUiI6WyIxIl19LCJiTiI6eyJsIjpbIjEiXSwi
bSI6WyIxIl0sImoiOlsiMSJdfSwiYlAiOnsiQiI6WyIxIiwiMiJdLCJ5IjpbIjEiLCIyIl19LCJCIjp7
InkiOlsiMSIsIjIiXX0sImJjIjp7InkiOlsiMSIsIjIiXX0sImF6Ijp7ImJxIjpbIjEiLCIyIl0sImJj
IjpbIjEiLCIyIl0sImNqIjpbIjEiLCIyIl0sInkiOlsiMSIsIjIiXX0sImJXIjp7ImFXIjpbIjEiXSwi
TSI6WyIxIl0sImoiOlsiMSJdfSwiY2QiOnsiTSI6WyIxIl0sImoiOlsiMSJdfSwiZHMiOnsiQiI6WyJj
IiwiQCJdLCJ5IjpbImMiLCJAIl0sIkIuSyI6ImMiLCJCLlYiOiJAIn0sImR0Ijp7ImFlIjpbImMiXSwi
aiI6WyJjIl0sImFlLkUiOiJjIiwiai5FIjoiYyJ9LCJjdyI6eyJhMiI6WyJtPGY+IiwiYyJdLCJhMi5T
IjoibTxmPiJ9LCJjeCI6eyJhSyI6WyJtPGY+IiwiYyJdfSwiY0UiOnsiYTIiOlsiYyIsIm08Zj4iXX0s
ImNNIjp7ImEyIjpbInQiLCJjIl0sImEyLlMiOiJ0In0sImNOIjp7ImFLIjpbImMiLCJ0Il19LCJkZCI6
eyJhMiI6WyJjIiwibTxmPiJdLCJhMi5TIjoiYyJ9LCJkZiI6eyJhSyI6WyJjIiwibTxmPiJdfSwiZGUi
OnsiYUsiOlsibTxmPiIsImMiXX0sIlQiOnsiVSI6W119LCJidyI6eyJyIjpbXX0sImJkIjp7InIiOltd
fSwiYTEiOnsiciI6W119LCJhVSI6eyJyIjpbXX0sImNHIjp7InIiOltdfSwiY1UiOnsiciI6W119LCJk
YiI6eyJyIjpbXX0sImQ5Ijp7InIiOltdfSwiYmgiOnsiciI6W119LCJjeiI6eyJyIjpbXX0sImNXIjp7
InIiOltdfSwiYlgiOnsiciI6W119LCJjQiI6eyJyIjpbXX0sImYiOnsiVSI6W119LCJtIjp7ImoiOlsi
MSJdfSwiTSI6eyJqIjpbIjEiXX0sImMiOnsiY1giOltdfSwiSCI6eyJrNCI6W119LCJjayI6eyJkYyI6
W119LCJkeiI6eyJkYyI6W119LCJkbSI6eyJkYyI6W119LCJoIjp7InUiOltdLCJrIjpbXSwicSI6W119
LCJiMyI6eyJ1IjpbXSwiayI6W10sInEiOltdfSwiY3UiOnsidSI6W10sImsiOltdLCJxIjpbXX0sImI1
Ijp7InUiOltdLCJrIjpbXSwicSI6W119LCJhSCI6eyJ1IjpbXSwiayI6W10sInEiOltdfSwiYWEiOnsi
ayI6W10sInEiOltdfSwiYUwiOnsiayI6W10sInEiOltdfSwiYkIiOnsiaDUiOlsiVSJdfSwiYXEiOnsi
bCI6WyIxIl0sIm0iOlsiMSJdLCJqIjpbIjEiXSwibC5FIjoiMSJ9LCJ1Ijp7ImsiOltdLCJxIjpbXX0s
ImI5Ijp7ImFHIjpbXX0sImNGIjp7InUiOltdLCJrIjpbXSwicSI6W119LCJiRiI6eyJrIjpbXSwicSI6
W119LCJhMyI6eyJxIjpbXX0sImJHIjp7InEiOltdfSwiSyI6eyJkIjpbXX0sIk8iOnsibCI6WyJrIl0s
Im0iOlsiayJdLCJqIjpbImsiXSwibC5FIjoiayJ9LCJrIjp7InEiOltdfSwiYlQiOnsiYWMiOlsiayJd
LCJsIjpbImsiXSwibSI6WyJrIl0sIkoiOlsiayJdLCJqIjpbImsiXSwibC5FIjoiayIsImFjLkUiOiJr
In0sImJlIjp7InUiOltdLCJrIjpbXSwicSI6W119LCJhNSI6eyJkIjpbXX0sImQxIjp7InUiOltdLCJr
IjpbXSwicSI6W119LCJiWiI6eyJ1IjpbXSwiayI6W10sInEiOltdfSwiZDYiOnsidSI6W10sImsiOltd
LCJxIjpbXX0sImQ3Ijp7InUiOltdLCJrIjpbXSwicSI6W119LCJiaiI6eyJ1IjpbXSwiayI6W10sInEi
OltdfSwiYTciOnsiZCI6W119LCJhQSI6eyJlciI6W10sInEiOltdfSwiYWkiOnsicSI6W119LCJibSI6
eyJrIjpbXSwicSI6W119LCJjMyI6eyJoNSI6WyJVIl19LCJjOCI6eyJhYyI6WyJrIl0sImwiOlsiayJd
LCJtIjpbImsiXSwiSiI6WyJrIl0sImoiOlsiayJdLCJsLkUiOiJrIiwiYWMuRSI6ImsifSwiZGkiOnsi
QiI6WyJjIiwiYyJdLCJ5IjpbImMiLCJjIl19LCJhcCI6eyJCIjpbImMiLCJjIl0sInkiOlsiYyIsImMi
XSwiQi5LIjoiYyIsIkIuViI6ImMifSwiYUIiOnsiQiI6WyJjIiwiYyJdLCJ5IjpbImMiLCJjIl0sIkIu
SyI6ImMiLCJCLlYiOiJjIn0sImRuIjp7ImFXIjpbImMiXSwiTSI6WyJjIl0sImoiOlsiYyJdfSwiYzQi
OnsiYlkiOlsiMSJdfSwiYm4iOnsiYzQiOlsiMSJdLCJiWSI6WyIxIl19LCJiXyI6eyJHIjpbXX0sImJV
Ijp7IkciOltdfSwiY2YiOnsiRyI6W119LCJkQiI6eyJHIjpbXX0sImRBIjp7IkciOltdfSwiYU4iOnsi
UiI6WyIxIl19LCJkbCI6eyJlciI6W10sInEiOltdfSwiZHkiOnsiazgiOltdfSwiY20iOnsialAiOltd
fSwiY0EiOnsiYVciOlsiYyJdLCJNIjpbImMiXSwiaiI6WyJjIl19LCJiYiI6eyJZIjpbXX0sImFPIjp7
ImwiOlsiMSJdLCJtIjpbIjEiXSwiWSI6W10sImoiOlsiMSJdLCJsLkUiOiIxIn0sImJnIjp7ImUiOltd
LCJ1IjpbXSwiayI6W10sInEiOltdfSwiY3YiOnsiYVciOlsiYyJdLCJNIjpbImMiXSwiaiI6WyJjIl19
LCJlIjp7InUiOltdLCJrIjpbXSwicSI6W119LCJhaCI6eyJtIjpbImYiXSwiVyI6W10sImoiOlsiZiJd
fSwiY1kiOnsiRyI6W119fScpKQpILmt5KHYudHlwZVVuaXZlcnNlLEpTT04ucGFyc2UoJ3siYkMiOjEs
ImJsIjoxLCJkNCI6MSwiZDUiOjIsImJOIjoxLCJiUCI6MiwiYlciOjEsImM3IjoxLCJjZSI6MSwiYzUi
OjF9JykpCnZhciB1PShmdW5jdGlvbiBydGlpKCl7dmFyIHQ9SC5mcApyZXR1cm57YTp0KCJiMyIpLG46
dCgiYXUiKSx2OnQoImI1IiksZDp0KCJhRyIpLFg6dCgiYUgiKSxEOnQoImJ6PGE2LEA+IiksaDp0KCJ1
IiksYlU6dCgiciIpLEE6dCgiZCIpLGFTOnQoInEiKSxjODp0KCJiOSIpLFo6dCgiYWIiKSxjOnQoImJF
PEA+Iikscjp0KCJhMyIpLEk6dCgiYkgiKSxvOnQoImhPIiksZWg6dCgiajxrPiIpLFI6dCgiajxAPiIp
LFE6dCgiRjxHPiIpLHM6dCgiRjxjPiIpLGI6dCgiRjxAPiIpLHQ6dCgiRjxmPiIpLGVIOnQoImhRIiks
Zzp0KCJhZCIpLGFVOnQoIko8QD4iKSxhbTp0KCJhTzxAPiIpLEI6dCgiYW48YTYsQD4iKSxtOnQoIlki
KSx3OnQoImJLIiksajp0KCJtPEA+IiksTDp0KCJtPGY+IiksZjp0KCJ5PGMsYz4iKSxHOnQoInk8QCxA
PiIpLGR2OnQoImE0PGMsYz4iKSxWOnQoIksiKSxkRDp0KCJDIiksYm06dCgiYVMiKSxGOnQoImsiKSxl
OnQoIkciKSxQOnQoInAiKSxLOnQoInQiKSxnQjp0KCJiZSIpLHA6dCgiYTUiKSxxOnQoImg1PFU+Iiks
ZnY6dCgiaFoiKSxhdjp0KCJhZiIpLGV3OnQoImJnIiksVDp0KCJNPGM+IiksbDp0KCJhZyIpLE46dCgi
YyIpLGRHOnQoImMoYykiKSxnNzp0KCJlIiksZm86dCgiYTYiKSxhVzp0KCJiaiIpLGk6dCgiVyIpLGdj
OnQoImFoIiksYWs6dCgiYmsiKSxXOnQoImF6PGMsYz4iKSxrOnQoImRjIiksZzQ6dCgiYUEiKSxjaTp0
KCJlciIpLGcyOnQoImFpIiksRTp0KCJjMDxhMz4iKSxoOTp0KCJibSIpLGFjOnQoIk8iKSxDOnQoImJu
PEs+IiksUzp0KCJhcTx1PiIpLHg6dCgiYVo8QCxAPiIpLGFvOnQoIlM8YTM+IiksXzp0KCJTPEA+Iiks
Zko6dCgiUzxmPiIpLE86dCgiYl8iKSxKOnQoImR1IiksY0o6dCgieiIpLGFsOnQoInoodCkiKSxiZjp0
KCJ6KEApIiksejp0KCJAIiksZk86dCgiQCgpIiksVTp0KCJAKGQpIikseTp0KCJAKHQpIiksZXA6dCgi
QCh0LHQpIiksWTp0KCJAKHQsYWcpIiksY2g6dCgiQChNPGM+KSIpLGI4OnQoIkAoQCxAKSIpLEg6dCgi
fiIpLE06dCgifigpIiksYW46dCgifihhNSkiKSx1OnQoIn4oYyxjKSIpLGNBOnQoIn4oYyxAKSIpfX0p
KCk7KGZ1bmN0aW9uIGNvbnN0YW50cygpe3ZhciB0PWh1bmtIZWxwZXJzLm1ha2VDb25zdExpc3QKQy5w
PVcuYUgucHJvdG90eXBlCkMuTj1XLmJGLnByb3RvdHlwZQpDLk89Vy5hMy5wcm90b3R5cGUKQy5QPUou
SS5wcm90b3R5cGUKQy5iPUouRi5wcm90b3R5cGUKQy5jPUouYkkucHJvdG90eXBlCkMuUT1KLmJKLnBy
b3RvdHlwZQpDLmU9Si5iYS5wcm90b3R5cGUKQy5hPUouYXgucHJvdG90eXBlCkMuUj1KLmFkLnByb3Rv
dHlwZQpDLlk9Vy5iTy5wcm90b3R5cGUKQy5hXz1ILmFTLnByb3RvdHlwZQpDLkI9Si5jWi5wcm90b3R5
cGUKQy5DPVcuYloucHJvdG90eXBlCkMubj1KLmJrLnByb3RvdHlwZQpDLm89Vy5hQS5wcm90b3R5cGUK
Qy5hMT1uZXcgUC5jeCgpCkMuRD1uZXcgUC5jdygpCkMucT1mdW5jdGlvbiBnZXRUYWdGYWxsYmFjayhv
KSB7CiAgdmFyIHMgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobyk7CiAgcmV0dXJuIHMu
c3Vic3RyaW5nKDgsIHMubGVuZ3RoIC0gMSk7Cn0KQy5FPWZ1bmN0aW9uKCkgewogIHZhciB0b1N0cmlu
Z0Z1bmN0aW9uID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKICBmdW5jdGlvbiBnZXRUYWcobykg
ewogICAgdmFyIHMgPSB0b1N0cmluZ0Z1bmN0aW9uLmNhbGwobyk7CiAgICByZXR1cm4gcy5zdWJzdHJp
bmcoOCwgcy5sZW5ndGggLSAxKTsKICB9CiAgZnVuY3Rpb24gZ2V0VW5rbm93blRhZyhvYmplY3QsIHRh
ZykgewogICAgaWYgKC9eSFRNTFtBLVpdLipFbGVtZW50JC8udGVzdCh0YWcpKSB7CiAgICAgIHZhciBu
YW1lID0gdG9TdHJpbmdGdW5jdGlvbi5jYWxsKG9iamVjdCk7CiAgICAgIGlmIChuYW1lID09ICJbb2Jq
ZWN0IE9iamVjdF0iKSByZXR1cm4gbnVsbDsKICAgICAgcmV0dXJuICJIVE1MRWxlbWVudCI7CiAgICB9
CiAgfQogIGZ1bmN0aW9uIGdldFVua25vd25UYWdHZW5lcmljQnJvd3NlcihvYmplY3QsIHRhZykgewog
ICAgaWYgKHNlbGYuSFRNTEVsZW1lbnQgJiYgb2JqZWN0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHJl
dHVybiAiSFRNTEVsZW1lbnQiOwogICAgcmV0dXJuIGdldFVua25vd25UYWcob2JqZWN0LCB0YWcpOwog
IH0KICBmdW5jdGlvbiBwcm90b3R5cGVGb3JUYWcodGFnKSB7CiAgICBpZiAodHlwZW9mIHdpbmRvdyA9
PSAidW5kZWZpbmVkIikgcmV0dXJuIG51bGw7CiAgICBpZiAodHlwZW9mIHdpbmRvd1t0YWddID09ICJ1
bmRlZmluZWQiKSByZXR1cm4gbnVsbDsKICAgIHZhciBjb25zdHJ1Y3RvciA9IHdpbmRvd1t0YWddOwog
ICAgaWYgKHR5cGVvZiBjb25zdHJ1Y3RvciAhPSAiZnVuY3Rpb24iKSByZXR1cm4gbnVsbDsKICAgIHJl
dHVybiBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7CiAgfQogIGZ1bmN0aW9uIGRpc2NyaW1pbmF0b3IodGFn
KSB7IHJldHVybiBudWxsOyB9CiAgdmFyIGlzQnJvd3NlciA9IHR5cGVvZiBuYXZpZ2F0b3IgPT0gIm9i
amVjdCI7CiAgcmV0dXJuIHsKICAgIGdldFRhZzogZ2V0VGFnLAogICAgZ2V0VW5rbm93blRhZzogaXNC
cm93c2VyID8gZ2V0VW5rbm93blRhZ0dlbmVyaWNCcm93c2VyIDogZ2V0VW5rbm93blRhZywKICAgIHBy
b3RvdHlwZUZvclRhZzogcHJvdG90eXBlRm9yVGFnLAogICAgZGlzY3JpbWluYXRvcjogZGlzY3JpbWlu
YXRvciB9Owp9CkMuSj1mdW5jdGlvbihnZXRUYWdGYWxsYmFjaykgewogIHJldHVybiBmdW5jdGlvbiho
b29rcykgewogICAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT0gIm9iamVjdCIpIHJldHVybiBob29rczsK
ICAgIHZhciB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CiAgICBpZiAodWEuaW5kZXhPZigiRHVtcFJl
bmRlclRyZWUiKSA+PSAwKSByZXR1cm4gaG9va3M7CiAgICBpZiAodWEuaW5kZXhPZigiQ2hyb21lIikg
Pj0gMCkgewogICAgICBmdW5jdGlvbiBjb25maXJtKHApIHsKICAgICAgICByZXR1cm4gdHlwZW9mIHdp
bmRvdyA9PSAib2JqZWN0IiAmJiB3aW5kb3dbcF0gJiYgd2luZG93W3BdLm5hbWUgPT0gcDsKICAgICAg
fQogICAgICBpZiAoY29uZmlybSgiV2luZG93IikgJiYgY29uZmlybSgiSFRNTEVsZW1lbnQiKSkgcmV0
dXJuIGhvb2tzOwogICAgfQogICAgaG9va3MuZ2V0VGFnID0gZ2V0VGFnRmFsbGJhY2s7CiAgfTsKfQpD
LkY9ZnVuY3Rpb24oaG9va3MpIHsKICBpZiAodHlwZW9mIGRhcnRFeHBlcmltZW50YWxGaXh1cEdldFRh
ZyAhPSAiZnVuY3Rpb24iKSByZXR1cm4gaG9va3M7CiAgaG9va3MuZ2V0VGFnID0gZGFydEV4cGVyaW1l
bnRhbEZpeHVwR2V0VGFnKGhvb2tzLmdldFRhZyk7Cn0KQy5HPWZ1bmN0aW9uKGhvb2tzKSB7CiAgdmFy
IGdldFRhZyA9IGhvb2tzLmdldFRhZzsKICB2YXIgcHJvdG90eXBlRm9yVGFnID0gaG9va3MucHJvdG90
eXBlRm9yVGFnOwogIGZ1bmN0aW9uIGdldFRhZ0ZpeGVkKG8pIHsKICAgIHZhciB0YWcgPSBnZXRUYWco
byk7CiAgICBpZiAodGFnID09ICJEb2N1bWVudCIpIHsKICAgICAgaWYgKCEhby54bWxWZXJzaW9uKSBy
ZXR1cm4gIiFEb2N1bWVudCI7CiAgICAgIHJldHVybiAiIUhUTUxEb2N1bWVudCI7CiAgICB9CiAgICBy
ZXR1cm4gdGFnOwogIH0KICBmdW5jdGlvbiBwcm90b3R5cGVGb3JUYWdGaXhlZCh0YWcpIHsKICAgIGlm
ICh0YWcgPT0gIkRvY3VtZW50IikgcmV0dXJuIG51bGw7CiAgICByZXR1cm4gcHJvdG90eXBlRm9yVGFn
KHRhZyk7CiAgfQogIGhvb2tzLmdldFRhZyA9IGdldFRhZ0ZpeGVkOwogIGhvb2tzLnByb3RvdHlwZUZv
clRhZyA9IHByb3RvdHlwZUZvclRhZ0ZpeGVkOwp9CkMuST1mdW5jdGlvbihob29rcykgewogIHZhciB1
c2VyQWdlbnQgPSB0eXBlb2YgbmF2aWdhdG9yID09ICJvYmplY3QiID8gbmF2aWdhdG9yLnVzZXJBZ2Vu
dCA6ICIiOwogIGlmICh1c2VyQWdlbnQuaW5kZXhPZigiRmlyZWZveCIpID09IC0xKSByZXR1cm4gaG9v
a3M7CiAgdmFyIGdldFRhZyA9IGhvb2tzLmdldFRhZzsKICB2YXIgcXVpY2tNYXAgPSB7CiAgICAiQmVm
b3JlVW5sb2FkRXZlbnQiOiAiRXZlbnQiLAogICAgIkRhdGFUcmFuc2ZlciI6ICJDbGlwYm9hcmQiLAog
ICAgIkdlb0dlb2xvY2F0aW9uIjogIkdlb2xvY2F0aW9uIiwKICAgICJMb2NhdGlvbiI6ICIhTG9jYXRp
b24iLAogICAgIldvcmtlck1lc3NhZ2VFdmVudCI6ICJNZXNzYWdlRXZlbnQiLAogICAgIlhNTERvY3Vt
ZW50IjogIiFEb2N1bWVudCJ9OwogIGZ1bmN0aW9uIGdldFRhZ0ZpcmVmb3gobykgewogICAgdmFyIHRh
ZyA9IGdldFRhZyhvKTsKICAgIHJldHVybiBxdWlja01hcFt0YWddIHx8IHRhZzsKICB9CiAgaG9va3Mu
Z2V0VGFnID0gZ2V0VGFnRmlyZWZveDsKfQpDLkg9ZnVuY3Rpb24oaG9va3MpIHsKICB2YXIgdXNlckFn
ZW50ID0gdHlwZW9mIG5hdmlnYXRvciA9PSAib2JqZWN0IiA/IG5hdmlnYXRvci51c2VyQWdlbnQgOiAi
IjsKICBpZiAodXNlckFnZW50LmluZGV4T2YoIlRyaWRlbnQvIikgPT0gLTEpIHJldHVybiBob29rczsK
ICB2YXIgZ2V0VGFnID0gaG9va3MuZ2V0VGFnOwogIHZhciBxdWlja01hcCA9IHsKICAgICJCZWZvcmVV
bmxvYWRFdmVudCI6ICJFdmVudCIsCiAgICAiRGF0YVRyYW5zZmVyIjogIkNsaXBib2FyZCIsCiAgICAi
SFRNTERERWxlbWVudCI6ICJIVE1MRWxlbWVudCIsCiAgICAiSFRNTERURWxlbWVudCI6ICJIVE1MRWxl
bWVudCIsCiAgICAiSFRNTFBocmFzZUVsZW1lbnQiOiAiSFRNTEVsZW1lbnQiLAogICAgIlBvc2l0aW9u
IjogIkdlb3Bvc2l0aW9uIgogIH07CiAgZnVuY3Rpb24gZ2V0VGFnSUUobykgewogICAgdmFyIHRhZyA9
IGdldFRhZyhvKTsKICAgIHZhciBuZXdUYWcgPSBxdWlja01hcFt0YWddOwogICAgaWYgKG5ld1RhZykg
cmV0dXJuIG5ld1RhZzsKICAgIGlmICh0YWcgPT0gIk9iamVjdCIpIHsKICAgICAgaWYgKHdpbmRvdy5E
YXRhVmlldyAmJiAobyBpbnN0YW5jZW9mIHdpbmRvdy5EYXRhVmlldykpIHJldHVybiAiRGF0YVZpZXci
OwogICAgfQogICAgcmV0dXJuIHRhZzsKICB9CiAgZnVuY3Rpb24gcHJvdG90eXBlRm9yVGFnSUUodGFn
KSB7CiAgICB2YXIgY29uc3RydWN0b3IgPSB3aW5kb3dbdGFnXTsKICAgIGlmIChjb25zdHJ1Y3RvciA9
PSBudWxsKSByZXR1cm4gbnVsbDsKICAgIHJldHVybiBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7CiAgfQog
IGhvb2tzLmdldFRhZyA9IGdldFRhZ0lFOwogIGhvb2tzLnByb3RvdHlwZUZvclRhZyA9IHByb3RvdHlw
ZUZvclRhZ0lFOwp9CkMucj1mdW5jdGlvbihob29rcykgeyByZXR1cm4gaG9va3M7IH0KCkMubD1uZXcg
UC5jTSgpCkMuSz1uZXcgUC5jVygpCkMuZj1uZXcgUC5kZCgpCkMuTD1uZXcgUC5kZigpCkMuZD1uZXcg
UC5keCgpCkMuTT1uZXcgUC5iOCgwKQpDLnQ9bmV3IFAuYjgoMmU1KQpDLlM9bmV3IFAuY04obnVsbCkK
Qy51PUgubih0KFsxMjcsMjA0Nyw2NTUzNSwxMTE0MTExXSksdS50KQpDLmg9SC5uKHQoWzAsMCwzMjc3
NiwzMzc5MiwxLDEwMjQwLDAsMF0pLHUudCkKQy5UPUgubih0KFsiKjo6Y2xhc3MiLCIqOjpkaXIiLCIq
OjpkcmFnZ2FibGUiLCIqOjpoaWRkZW4iLCIqOjppZCIsIio6OmluZXJ0IiwiKjo6aXRlbXByb3AiLCIq
OjppdGVtcmVmIiwiKjo6aXRlbXNjb3BlIiwiKjo6bGFuZyIsIio6OnNwZWxsY2hlY2siLCIqOjp0aXRs
ZSIsIio6OnRyYW5zbGF0ZSIsIkE6OmFjY2Vzc2tleSIsIkE6OmNvb3JkcyIsIkE6OmhyZWZsYW5nIiwi
QTo6bmFtZSIsIkE6OnNoYXBlIiwiQTo6dGFiaW5kZXgiLCJBOjp0YXJnZXQiLCJBOjp0eXBlIiwiQVJF
QTo6YWNjZXNza2V5IiwiQVJFQTo6YWx0IiwiQVJFQTo6Y29vcmRzIiwiQVJFQTo6bm9ocmVmIiwiQVJF
QTo6c2hhcGUiLCJBUkVBOjp0YWJpbmRleCIsIkFSRUE6OnRhcmdldCIsIkFVRElPOjpjb250cm9scyIs
IkFVRElPOjpsb29wIiwiQVVESU86Om1lZGlhZ3JvdXAiLCJBVURJTzo6bXV0ZWQiLCJBVURJTzo6cHJl
bG9hZCIsIkJETzo6ZGlyIiwiQk9EWTo6YWxpbmsiLCJCT0RZOjpiZ2NvbG9yIiwiQk9EWTo6bGluayIs
IkJPRFk6OnRleHQiLCJCT0RZOjp2bGluayIsIkJSOjpjbGVhciIsIkJVVFRPTjo6YWNjZXNza2V5Iiwi
QlVUVE9OOjpkaXNhYmxlZCIsIkJVVFRPTjo6bmFtZSIsIkJVVFRPTjo6dGFiaW5kZXgiLCJCVVRUT046
OnR5cGUiLCJCVVRUT046OnZhbHVlIiwiQ0FOVkFTOjpoZWlnaHQiLCJDQU5WQVM6OndpZHRoIiwiQ0FQ
VElPTjo6YWxpZ24iLCJDT0w6OmFsaWduIiwiQ09MOjpjaGFyIiwiQ09MOjpjaGFyb2ZmIiwiQ09MOjpz
cGFuIiwiQ09MOjp2YWxpZ24iLCJDT0w6OndpZHRoIiwiQ09MR1JPVVA6OmFsaWduIiwiQ09MR1JPVVA6
OmNoYXIiLCJDT0xHUk9VUDo6Y2hhcm9mZiIsIkNPTEdST1VQOjpzcGFuIiwiQ09MR1JPVVA6OnZhbGln
biIsIkNPTEdST1VQOjp3aWR0aCIsIkNPTU1BTkQ6OmNoZWNrZWQiLCJDT01NQU5EOjpjb21tYW5kIiwi
Q09NTUFORDo6ZGlzYWJsZWQiLCJDT01NQU5EOjpsYWJlbCIsIkNPTU1BTkQ6OnJhZGlvZ3JvdXAiLCJD
T01NQU5EOjp0eXBlIiwiREFUQTo6dmFsdWUiLCJERUw6OmRhdGV0aW1lIiwiREVUQUlMUzo6b3BlbiIs
IkRJUjo6Y29tcGFjdCIsIkRJVjo6YWxpZ24iLCJETDo6Y29tcGFjdCIsIkZJRUxEU0VUOjpkaXNhYmxl
ZCIsIkZPTlQ6OmNvbG9yIiwiRk9OVDo6ZmFjZSIsIkZPTlQ6OnNpemUiLCJGT1JNOjphY2NlcHQiLCJG
T1JNOjphdXRvY29tcGxldGUiLCJGT1JNOjplbmN0eXBlIiwiRk9STTo6bWV0aG9kIiwiRk9STTo6bmFt
ZSIsIkZPUk06Om5vdmFsaWRhdGUiLCJGT1JNOjp0YXJnZXQiLCJGUkFNRTo6bmFtZSIsIkgxOjphbGln
biIsIkgyOjphbGlnbiIsIkgzOjphbGlnbiIsIkg0OjphbGlnbiIsIkg1OjphbGlnbiIsIkg2OjphbGln
biIsIkhSOjphbGlnbiIsIkhSOjpub3NoYWRlIiwiSFI6OnNpemUiLCJIUjo6d2lkdGgiLCJIVE1MOjp2
ZXJzaW9uIiwiSUZSQU1FOjphbGlnbiIsIklGUkFNRTo6ZnJhbWVib3JkZXIiLCJJRlJBTUU6OmhlaWdo
dCIsIklGUkFNRTo6bWFyZ2luaGVpZ2h0IiwiSUZSQU1FOjptYXJnaW53aWR0aCIsIklGUkFNRTo6d2lk
dGgiLCJJTUc6OmFsaWduIiwiSU1HOjphbHQiLCJJTUc6OmJvcmRlciIsIklNRzo6aGVpZ2h0IiwiSU1H
Ojpoc3BhY2UiLCJJTUc6OmlzbWFwIiwiSU1HOjpuYW1lIiwiSU1HOjp1c2VtYXAiLCJJTUc6OnZzcGFj
ZSIsIklNRzo6d2lkdGgiLCJJTlBVVDo6YWNjZXB0IiwiSU5QVVQ6OmFjY2Vzc2tleSIsIklOUFVUOjph
bGlnbiIsIklOUFVUOjphbHQiLCJJTlBVVDo6YXV0b2NvbXBsZXRlIiwiSU5QVVQ6OmF1dG9mb2N1cyIs
IklOUFVUOjpjaGVja2VkIiwiSU5QVVQ6OmRpc2FibGVkIiwiSU5QVVQ6OmlucHV0bW9kZSIsIklOUFVU
Ojppc21hcCIsIklOUFVUOjpsaXN0IiwiSU5QVVQ6Om1heCIsIklOUFVUOjptYXhsZW5ndGgiLCJJTlBV
VDo6bWluIiwiSU5QVVQ6Om11bHRpcGxlIiwiSU5QVVQ6Om5hbWUiLCJJTlBVVDo6cGxhY2Vob2xkZXIi
LCJJTlBVVDo6cmVhZG9ubHkiLCJJTlBVVDo6cmVxdWlyZWQiLCJJTlBVVDo6c2l6ZSIsIklOUFVUOjpz
dGVwIiwiSU5QVVQ6OnRhYmluZGV4IiwiSU5QVVQ6OnR5cGUiLCJJTlBVVDo6dXNlbWFwIiwiSU5QVVQ6
OnZhbHVlIiwiSU5TOjpkYXRldGltZSIsIktFWUdFTjo6ZGlzYWJsZWQiLCJLRVlHRU46OmtleXR5cGUi
LCJLRVlHRU46Om5hbWUiLCJMQUJFTDo6YWNjZXNza2V5IiwiTEFCRUw6OmZvciIsIkxFR0VORDo6YWNj
ZXNza2V5IiwiTEVHRU5EOjphbGlnbiIsIkxJOjp0eXBlIiwiTEk6OnZhbHVlIiwiTElOSzo6c2l6ZXMi
LCJNQVA6Om5hbWUiLCJNRU5VOjpjb21wYWN0IiwiTUVOVTo6bGFiZWwiLCJNRU5VOjp0eXBlIiwiTUVU
RVI6OmhpZ2giLCJNRVRFUjo6bG93IiwiTUVURVI6Om1heCIsIk1FVEVSOjptaW4iLCJNRVRFUjo6dmFs
dWUiLCJPQkpFQ1Q6OnR5cGVtdXN0bWF0Y2giLCJPTDo6Y29tcGFjdCIsIk9MOjpyZXZlcnNlZCIsIk9M
OjpzdGFydCIsIk9MOjp0eXBlIiwiT1BUR1JPVVA6OmRpc2FibGVkIiwiT1BUR1JPVVA6OmxhYmVsIiwi
T1BUSU9OOjpkaXNhYmxlZCIsIk9QVElPTjo6bGFiZWwiLCJPUFRJT046OnNlbGVjdGVkIiwiT1BUSU9O
Ojp2YWx1ZSIsIk9VVFBVVDo6Zm9yIiwiT1VUUFVUOjpuYW1lIiwiUDo6YWxpZ24iLCJQUkU6OndpZHRo
IiwiUFJPR1JFU1M6Om1heCIsIlBST0dSRVNTOjptaW4iLCJQUk9HUkVTUzo6dmFsdWUiLCJTRUxFQ1Q6
OmF1dG9jb21wbGV0ZSIsIlNFTEVDVDo6ZGlzYWJsZWQiLCJTRUxFQ1Q6Om11bHRpcGxlIiwiU0VMRUNU
OjpuYW1lIiwiU0VMRUNUOjpyZXF1aXJlZCIsIlNFTEVDVDo6c2l6ZSIsIlNFTEVDVDo6dGFiaW5kZXgi
LCJTT1VSQ0U6OnR5cGUiLCJUQUJMRTo6YWxpZ24iLCJUQUJMRTo6Ymdjb2xvciIsIlRBQkxFOjpib3Jk
ZXIiLCJUQUJMRTo6Y2VsbHBhZGRpbmciLCJUQUJMRTo6Y2VsbHNwYWNpbmciLCJUQUJMRTo6ZnJhbWUi
LCJUQUJMRTo6cnVsZXMiLCJUQUJMRTo6c3VtbWFyeSIsIlRBQkxFOjp3aWR0aCIsIlRCT0RZOjphbGln
biIsIlRCT0RZOjpjaGFyIiwiVEJPRFk6OmNoYXJvZmYiLCJUQk9EWTo6dmFsaWduIiwiVEQ6OmFiYnIi
LCJURDo6YWxpZ24iLCJURDo6YXhpcyIsIlREOjpiZ2NvbG9yIiwiVEQ6OmNoYXIiLCJURDo6Y2hhcm9m
ZiIsIlREOjpjb2xzcGFuIiwiVEQ6OmhlYWRlcnMiLCJURDo6aGVpZ2h0IiwiVEQ6Om5vd3JhcCIsIlRE
Ojpyb3dzcGFuIiwiVEQ6OnNjb3BlIiwiVEQ6OnZhbGlnbiIsIlREOjp3aWR0aCIsIlRFWFRBUkVBOjph
Y2Nlc3NrZXkiLCJURVhUQVJFQTo6YXV0b2NvbXBsZXRlIiwiVEVYVEFSRUE6OmNvbHMiLCJURVhUQVJF
QTo6ZGlzYWJsZWQiLCJURVhUQVJFQTo6aW5wdXRtb2RlIiwiVEVYVEFSRUE6Om5hbWUiLCJURVhUQVJF
QTo6cGxhY2Vob2xkZXIiLCJURVhUQVJFQTo6cmVhZG9ubHkiLCJURVhUQVJFQTo6cmVxdWlyZWQiLCJU
RVhUQVJFQTo6cm93cyIsIlRFWFRBUkVBOjp0YWJpbmRleCIsIlRFWFRBUkVBOjp3cmFwIiwiVEZPT1Q6
OmFsaWduIiwiVEZPT1Q6OmNoYXIiLCJURk9PVDo6Y2hhcm9mZiIsIlRGT09UOjp2YWxpZ24iLCJUSDo6
YWJiciIsIlRIOjphbGlnbiIsIlRIOjpheGlzIiwiVEg6OmJnY29sb3IiLCJUSDo6Y2hhciIsIlRIOjpj
aGFyb2ZmIiwiVEg6OmNvbHNwYW4iLCJUSDo6aGVhZGVycyIsIlRIOjpoZWlnaHQiLCJUSDo6bm93cmFw
IiwiVEg6OnJvd3NwYW4iLCJUSDo6c2NvcGUiLCJUSDo6dmFsaWduIiwiVEg6OndpZHRoIiwiVEhFQUQ6
OmFsaWduIiwiVEhFQUQ6OmNoYXIiLCJUSEVBRDo6Y2hhcm9mZiIsIlRIRUFEOjp2YWxpZ24iLCJUUjo6
YWxpZ24iLCJUUjo6Ymdjb2xvciIsIlRSOjpjaGFyIiwiVFI6OmNoYXJvZmYiLCJUUjo6dmFsaWduIiwi
VFJBQ0s6OmRlZmF1bHQiLCJUUkFDSzo6a2luZCIsIlRSQUNLOjpsYWJlbCIsIlRSQUNLOjpzcmNsYW5n
IiwiVUw6OmNvbXBhY3QiLCJVTDo6dHlwZSIsIlZJREVPOjpjb250cm9scyIsIlZJREVPOjpoZWlnaHQi
LCJWSURFTzo6bG9vcCIsIlZJREVPOjptZWRpYWdyb3VwIiwiVklERU86Om11dGVkIiwiVklERU86OnBy
ZWxvYWQiLCJWSURFTzo6d2lkdGgiXSksdS5zKQpDLmk9SC5uKHQoWzAsMCw2NTQ5MCw0NTA1NSw2NTUz
NSwzNDgxNSw2NTUzNCwxODQzMV0pLHUudCkKQy5qPUgubih0KFswLDAsMjY2MjQsMTAyMyw2NTUzNCwy
MDQ3LDY1NTM0LDIwNDddKSx1LnQpCkMuVT1ILm4odChbIkhFQUQiLCJBUkVBIiwiQkFTRSIsIkJBU0VG
T05UIiwiQlIiLCJDT0wiLCJDT0xHUk9VUCIsIkVNQkVEIiwiRlJBTUUiLCJGUkFNRVNFVCIsIkhSIiwi
SU1BR0UiLCJJTUciLCJJTlBVVCIsIklTSU5ERVgiLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNF
IiwiU1RZTEUiLCJUSVRMRSIsIldCUiJdKSx1LnMpCkMudj1ILm4odChbXSksdS5zKQpDLnc9SC5uKHQo
W10pLHUuYikKQy5XPUgubih0KFswLDAsMzI3MjIsMTIyODcsNjU1MzQsMzQ4MTUsNjU1MzQsMTg0MzFd
KSx1LnQpCkMuaz1ILm4odChbMCwwLDI0NTc2LDEwMjMsNjU1MzQsMzQ4MTUsNjU1MzQsMTg0MzFdKSx1
LnQpCkMueD1ILm4odChbMCwwLDMyNzU0LDExMjYzLDY1NTM0LDM0ODE1LDY1NTM0LDE4NDMxXSksdS50
KQpDLlg9SC5uKHQoWzAsMCwzMjcyMiwxMjI4Nyw2NTUzNSwzNDgxNSw2NTUzNCwxODQzMV0pLHUudCkK
Qy55PUgubih0KFswLDAsNjU0OTAsMTIyODcsNjU1MzUsMzQ4MTUsNjU1MzQsMTg0MzFdKSx1LnQpCkMu
ej1ILm4odChbImJpbmQiLCJpZiIsInJlZiIsInJlcGVhdCIsInN5bnRheCJdKSx1LnMpCkMubT1ILm4o
dChbIkE6OmhyZWYiLCJBUkVBOjpocmVmIiwiQkxPQ0tRVU9URTo6Y2l0ZSIsIkJPRFk6OmJhY2tncm91
bmQiLCJDT01NQU5EOjppY29uIiwiREVMOjpjaXRlIiwiRk9STTo6YWN0aW9uIiwiSU1HOjpzcmMiLCJJ
TlBVVDo6c3JjIiwiSU5TOjpjaXRlIiwiUTo6Y2l0ZSIsIlZJREVPOjpwb3N0ZXIiXSksdS5zKQpDLlo9
bmV3IEguYUooMCx7fSxDLnYsSC5mcCgiYUo8YyxjPiIpKQpDLlY9SC5uKHQoW10pLEguZnAoIkY8YTY+
IikpCkMuQT1uZXcgSC5hSigwLHt9LEMuVixILmZwKCJhSjxhNixAPiIpKQpDLmEwPW5ldyBILmJpKCJj
YWxsIil9KSgpOyhmdW5jdGlvbiBzdGF0aWNGaWVsZHMoKXskLmFtPTAKJC5ieD1udWxsCiQuaEo9bnVs
bAokLmlLPW51bGwKJC5pSD1udWxsCiQuaVQ9bnVsbAokLmZvPW51bGwKJC5mQj1udWxsCiQuaHM9bnVs
bAokLmJzPW51bGwKJC5jbj1udWxsCiQuY289bnVsbAokLmhtPSExCiQudz1DLmQKJC5YPVtdCiQuYXc9
bnVsbAokLmZaPW51bGwKJC5oTj1udWxsCiQuaE09bnVsbAokLmRyPVAuZTkodS5OLHUuWil9KSgpOyhm
dW5jdGlvbiBsYXp5SW5pdGlhbGl6ZXJzKCl7dmFyIHQ9aHVua0hlbHBlcnMubGF6eQp0KCQsImxQIiwi
ZlYiLGZ1bmN0aW9uKCl7cmV0dXJuIEguaHIoIl8kZGFydF9kYXJ0Q2xvc3VyZSIpfSkKdCgkLCJsVSIs
Imh5IixmdW5jdGlvbigpe3JldHVybiBILmhyKCJfJGRhcnRfanMiKX0pCnQoJCwibTEiLCJqMiIsZnVu
Y3Rpb24oKXtyZXR1cm4gSC5hbyhILmVrKHsKdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iJHJlY2Vp
dmVyJCJ9fSkpfSkKdCgkLCJtMiIsImozIixmdW5jdGlvbigpe3JldHVybiBILmFvKEguZWsoeyRtZXRo
b2QkOm51bGwsCnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIiRyZWNlaXZlciQifX0pKX0pCnQoJCwi
bTMiLCJqNCIsZnVuY3Rpb24oKXtyZXR1cm4gSC5hbyhILmVrKG51bGwpKX0pCnQoJCwibTQiLCJqNSIs
ZnVuY3Rpb24oKXtyZXR1cm4gSC5hbyhmdW5jdGlvbigpe3ZhciAkYXJndW1lbnRzRXhwciQ9JyRhcmd1
bWVudHMkJwp0cnl7bnVsbC4kbWV0aG9kJCgkYXJndW1lbnRzRXhwciQpfWNhdGNoKHMpe3JldHVybiBz
Lm1lc3NhZ2V9fSgpKX0pCnQoJCwibTciLCJqOCIsZnVuY3Rpb24oKXtyZXR1cm4gSC5hbyhILmVrKHZv
aWQgMCkpfSkKdCgkLCJtOCIsImo5IixmdW5jdGlvbigpe3JldHVybiBILmFvKGZ1bmN0aW9uKCl7dmFy
ICRhcmd1bWVudHNFeHByJD0nJGFyZ3VtZW50cyQnCnRyeXsodm9pZCAwKS4kbWV0aG9kJCgkYXJndW1l
bnRzRXhwciQpfWNhdGNoKHMpe3JldHVybiBzLm1lc3NhZ2V9fSgpKX0pCnQoJCwibTYiLCJqNyIsZnVu
Y3Rpb24oKXtyZXR1cm4gSC5hbyhILmkzKG51bGwpKX0pCnQoJCwibTUiLCJqNiIsZnVuY3Rpb24oKXty
ZXR1cm4gSC5hbyhmdW5jdGlvbigpe3RyeXtudWxsLiRtZXRob2QkfWNhdGNoKHMpe3JldHVybiBzLm1l
c3NhZ2V9fSgpKX0pCnQoJCwibWEiLCJqYiIsZnVuY3Rpb24oKXtyZXR1cm4gSC5hbyhILmkzKHZvaWQg
MCkpfSkKdCgkLCJtOSIsImphIixmdW5jdGlvbigpe3JldHVybiBILmFvKGZ1bmN0aW9uKCl7dHJ5eyh2
b2lkIDApLiRtZXRob2QkfWNhdGNoKHMpe3JldHVybiBzLm1lc3NhZ2V9fSgpKX0pCnQoJCwibWQiLCJo
QSIsZnVuY3Rpb24oKXtyZXR1cm4gUC5rZigpfSkKdCgkLCJtYiIsImpjIixmdW5jdGlvbigpe3JldHVy
biBQLmtjKCl9KQp0KCQsIm1lIiwiamQiLGZ1bmN0aW9uKCl7cmV0dXJuIEguak8oSC5rWChILm4oWy0y
LC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0y
LC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0yLC0xLC0yLC0yLC0y
LC0yLC0yLDYyLC0yLDYyLC0yLDYzLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLC0yLC0yLC0y
LC0xLC0yLC0yLC0yLDAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgs
MTksMjAsMjEsMjIsMjMsMjQsMjUsLTIsLTIsLTIsLTIsNjMsLTIsMjYsMjcsMjgsMjksMzAsMzEsMzIs
MzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsLTIs
LTIsLTIsLTIsLTJdLHUudCkpKX0pCnQoJCwibWkiLCJqZiIsZnVuY3Rpb24oKXtyZXR1cm4gUC5pXygi
XltcXC1cXC4wLTlBLVpfYS16fl0qJCIpfSkKdCgkLCJtcyIsImpoIixmdW5jdGlvbigpe3JldHVybiBQ
LmtXKCl9KQp0KCQsIm1nIiwiamUiLGZ1bmN0aW9uKCl7cmV0dXJuIFAuaFQoWyJBIiwiQUJCUiIsIkFD
Uk9OWU0iLCJBRERSRVNTIiwiQVJFQSIsIkFSVElDTEUiLCJBU0lERSIsIkFVRElPIiwiQiIsIkJESSIs
IkJETyIsIkJJRyIsIkJMT0NLUVVPVEUiLCJCUiIsIkJVVFRPTiIsIkNBTlZBUyIsIkNBUFRJT04iLCJD
RU5URVIiLCJDSVRFIiwiQ09ERSIsIkNPTCIsIkNPTEdST1VQIiwiQ09NTUFORCIsIkRBVEEiLCJEQVRB
TElTVCIsIkREIiwiREVMIiwiREVUQUlMUyIsIkRGTiIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJFTSIs
IkZJRUxEU0VUIiwiRklHQ0FQVElPTiIsIkZJR1VSRSIsIkZPTlQiLCJGT09URVIiLCJGT1JNIiwiSDEi
LCJIMiIsIkgzIiwiSDQiLCJINSIsIkg2IiwiSEVBREVSIiwiSEdST1VQIiwiSFIiLCJJIiwiSUZSQU1F
IiwiSU1HIiwiSU5QVVQiLCJJTlMiLCJLQkQiLCJMQUJFTCIsIkxFR0VORCIsIkxJIiwiTUFQIiwiTUFS
SyIsIk1FTlUiLCJNRVRFUiIsIk5BViIsIk5PQlIiLCJPTCIsIk9QVEdST1VQIiwiT1BUSU9OIiwiT1VU
UFVUIiwiUCIsIlBSRSIsIlBST0dSRVNTIiwiUSIsIlMiLCJTQU1QIiwiU0VDVElPTiIsIlNFTEVDVCIs
IlNNQUxMIiwiU09VUkNFIiwiU1BBTiIsIlNUUklLRSIsIlNUUk9ORyIsIlNVQiIsIlNVTU1BUlkiLCJT
VVAiLCJUQUJMRSIsIlRCT0RZIiwiVEQiLCJURVhUQVJFQSIsIlRGT09UIiwiVEgiLCJUSEVBRCIsIlRJ
TUUiLCJUUiIsIlRSQUNLIiwiVFQiLCJVIiwiVUwiLCJWQVIiLCJWSURFTyIsIldCUiJdLHUuTil9KQp0
KCQsImxPIiwiajEiLGZ1bmN0aW9uKCl7cmV0dXJuIFAuaV8oIl5cXFMrJCIpfSkKdCgkLCJtcSIsImpn
IixmdW5jdGlvbigpe3JldHVybiB1Lm0uYihQLmlGKHNlbGYpKX0pCnQoJCwibWYiLCJoQiIsZnVuY3Rp
b24oKXtyZXR1cm4gSC5ocigiXyRkYXJ0X2RhcnRPYmplY3QiKX0pCnQoJCwibXIiLCJoQyIsZnVuY3Rp
b24oKXtyZXR1cm4gZnVuY3Rpb24gRGFydE9iamVjdChhKXt0aGlzLm89YX19KQp0KCQsIm13Iiwiamki
LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMLmUwKCl9KQp0KCQsImxZIiwiaHoiLGZ1bmN0aW9uKCl7cmV0
dXJuIG5ldyBMLmNZKCl9KX0pKCk7KGZ1bmN0aW9uIG5hdGl2ZVN1cHBvcnQoKXshZnVuY3Rpb24oKXt2
YXIgdD1mdW5jdGlvbihhKXt2YXIgbj17fQpuW2FdPTEKcmV0dXJuIE9iamVjdC5rZXlzKGh1bmtIZWxw
ZXJzLmNvbnZlcnRUb0Zhc3RPYmplY3QobikpWzBdfQp2LmdldElzb2xhdGVUYWc9ZnVuY3Rpb24oYSl7
cmV0dXJuIHQoIl9fX2RhcnRfIithK3YuaXNvbGF0ZVRhZyl9CnZhciBzPSJfX19kYXJ0X2lzb2xhdGVf
dGFnc18iCnZhciByPU9iamVjdFtzXXx8KE9iamVjdFtzXT1PYmplY3QuY3JlYXRlKG51bGwpKQp2YXIg
cT0iX1p4WXhYIgpmb3IodmFyIHA9MDs7cCsrKXt2YXIgbz10KHErIl8iK3ArIl8iKQppZighKG8gaW4g
cikpe3Jbb109MQp2Lmlzb2xhdGVUYWc9bwpicmVha319di5kaXNwYXRjaFByb3BlcnR5TmFtZT12Lmdl
dElzb2xhdGVUYWcoImRpc3BhdGNoX3JlY29yZCIpfSgpCmh1bmtIZWxwZXJzLnNldE9yVXBkYXRlSW50
ZXJjZXB0b3JzQnlUYWcoe0RPTUVycm9yOkouSSxET01JbXBsZW1lbnRhdGlvbjpKLkksTWVkaWFFcnJv
cjpKLkksTmF2aWdhdG9yOkouSSxOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6Si5JLE5hdmlnYXRv
clVzZXJNZWRpYUVycm9yOkouSSxPdmVyY29uc3RyYWluZWRFcnJvcjpKLkksUG9zaXRpb25FcnJvcjpK
LkksUmFuZ2U6Si5JLFNRTEVycm9yOkouSSxEYXRhVmlldzpILkMsQXJyYXlCdWZmZXJWaWV3OkguQyxG
bG9hdDMyQXJyYXk6SC5hUixGbG9hdDY0QXJyYXk6SC5hUixJbnQxNkFycmF5OkguY1AsSW50MzJBcnJh
eTpILmNRLEludDhBcnJheTpILmNSLFVpbnQxNkFycmF5OkguY1MsVWludDMyQXJyYXk6SC5jVCxVaW50
OENsYW1wZWRBcnJheTpILmJTLENhbnZhc1BpeGVsQXJyYXk6SC5iUyxVaW50OEFycmF5OkguYVMsSFRN
TEF1ZGlvRWxlbWVudDpXLmgsSFRNTEJSRWxlbWVudDpXLmgsSFRNTEJ1dHRvbkVsZW1lbnQ6Vy5oLEhU
TUxDYW52YXNFbGVtZW50OlcuaCxIVE1MQ29udGVudEVsZW1lbnQ6Vy5oLEhUTUxETGlzdEVsZW1lbnQ6
Vy5oLEhUTUxEYXRhRWxlbWVudDpXLmgsSFRNTERhdGFMaXN0RWxlbWVudDpXLmgsSFRNTERldGFpbHNF
bGVtZW50OlcuaCxIVE1MRGlhbG9nRWxlbWVudDpXLmgsSFRNTERpdkVsZW1lbnQ6Vy5oLEhUTUxFbWJl
ZEVsZW1lbnQ6Vy5oLEhUTUxGaWVsZFNldEVsZW1lbnQ6Vy5oLEhUTUxIUkVsZW1lbnQ6Vy5oLEhUTUxI
ZWFkRWxlbWVudDpXLmgsSFRNTEhlYWRpbmdFbGVtZW50OlcuaCxIVE1MSHRtbEVsZW1lbnQ6Vy5oLEhU
TUxJRnJhbWVFbGVtZW50OlcuaCxIVE1MSW1hZ2VFbGVtZW50OlcuaCxIVE1MSW5wdXRFbGVtZW50Olcu
aCxIVE1MTElFbGVtZW50OlcuaCxIVE1MTGFiZWxFbGVtZW50OlcuaCxIVE1MTGVnZW5kRWxlbWVudDpX
LmgsSFRNTExpbmtFbGVtZW50OlcuaCxIVE1MTWFwRWxlbWVudDpXLmgsSFRNTE1lZGlhRWxlbWVudDpX
LmgsSFRNTE1lbnVFbGVtZW50OlcuaCxIVE1MTWV0YUVsZW1lbnQ6Vy5oLEhUTUxNZXRlckVsZW1lbnQ6
Vy5oLEhUTUxNb2RFbGVtZW50OlcuaCxIVE1MT0xpc3RFbGVtZW50OlcuaCxIVE1MT2JqZWN0RWxlbWVu
dDpXLmgsSFRNTE9wdEdyb3VwRWxlbWVudDpXLmgsSFRNTE9wdGlvbkVsZW1lbnQ6Vy5oLEhUTUxPdXRw
dXRFbGVtZW50OlcuaCxIVE1MUGFyYW1FbGVtZW50OlcuaCxIVE1MUGljdHVyZUVsZW1lbnQ6Vy5oLEhU
TUxQcmVFbGVtZW50OlcuaCxIVE1MUHJvZ3Jlc3NFbGVtZW50OlcuaCxIVE1MUXVvdGVFbGVtZW50Olcu
aCxIVE1MU2NyaXB0RWxlbWVudDpXLmgsSFRNTFNoYWRvd0VsZW1lbnQ6Vy5oLEhUTUxTbG90RWxlbWVu
dDpXLmgsSFRNTFNvdXJjZUVsZW1lbnQ6Vy5oLEhUTUxTcGFuRWxlbWVudDpXLmgsSFRNTFN0eWxlRWxl
bWVudDpXLmgsSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6Vy5oLEhUTUxUYWJsZUNlbGxFbGVtZW50Olcu
aCxIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQ6Vy5oLEhUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50Olcu
aCxIVE1MVGFibGVDb2xFbGVtZW50OlcuaCxIVE1MVGV4dEFyZWFFbGVtZW50OlcuaCxIVE1MVGltZUVs
ZW1lbnQ6Vy5oLEhUTUxUaXRsZUVsZW1lbnQ6Vy5oLEhUTUxUcmFja0VsZW1lbnQ6Vy5oLEhUTUxVTGlz
dEVsZW1lbnQ6Vy5oLEhUTUxVbmtub3duRWxlbWVudDpXLmgsSFRNTFZpZGVvRWxlbWVudDpXLmgsSFRN
TERpcmVjdG9yeUVsZW1lbnQ6Vy5oLEhUTUxGb250RWxlbWVudDpXLmgsSFRNTEZyYW1lRWxlbWVudDpX
LmgsSFRNTEZyYW1lU2V0RWxlbWVudDpXLmgsSFRNTE1hcnF1ZWVFbGVtZW50OlcuaCxIVE1MRWxlbWVu
dDpXLmgsSFRNTEFuY2hvckVsZW1lbnQ6Vy5iMyxIVE1MQXJlYUVsZW1lbnQ6Vy5jdSxIVE1MQmFzZUVs
ZW1lbnQ6Vy5iNSxCbG9iOlcuYUcsSFRNTEJvZHlFbGVtZW50OlcuYUgsQ0RBVEFTZWN0aW9uOlcuYWEs
Q2hhcmFjdGVyRGF0YTpXLmFhLENvbW1lbnQ6Vy5hYSxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246Vy5hYSxU
ZXh0OlcuYWEsQ1NTU3R5bGVEZWNsYXJhdGlvbjpXLmJBLE1TU3R5bGVDU1NQcm9wZXJ0aWVzOlcuYkEs
Q1NTMlByb3BlcnRpZXM6Vy5iQSxYTUxEb2N1bWVudDpXLmFMLERvY3VtZW50OlcuYUwsRE9NRXhjZXB0
aW9uOlcuZFYsRE9NUmVjdFJlYWRPbmx5OlcuYkIsRE9NVG9rZW5MaXN0OlcuZFcsRWxlbWVudDpXLnUs
QWJvcnRQYXltZW50RXZlbnQ6Vy5kLEFuaW1hdGlvbkV2ZW50OlcuZCxBbmltYXRpb25QbGF5YmFja0V2
ZW50OlcuZCxBcHBsaWNhdGlvbkNhY2hlRXJyb3JFdmVudDpXLmQsQmFja2dyb3VuZEZldGNoQ2xpY2tF
dmVudDpXLmQsQmFja2dyb3VuZEZldGNoRXZlbnQ6Vy5kLEJhY2tncm91bmRGZXRjaEZhaWxFdmVudDpX
LmQsQmFja2dyb3VuZEZldGNoZWRFdmVudDpXLmQsQmVmb3JlSW5zdGFsbFByb21wdEV2ZW50OlcuZCxC
ZWZvcmVVbmxvYWRFdmVudDpXLmQsQmxvYkV2ZW50OlcuZCxDYW5NYWtlUGF5bWVudEV2ZW50OlcuZCxD
bGlwYm9hcmRFdmVudDpXLmQsQ2xvc2VFdmVudDpXLmQsQ3VzdG9tRXZlbnQ6Vy5kLERldmljZU1vdGlv
bkV2ZW50OlcuZCxEZXZpY2VPcmllbnRhdGlvbkV2ZW50OlcuZCxFcnJvckV2ZW50OlcuZCxFeHRlbmRh
YmxlRXZlbnQ6Vy5kLEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ6Vy5kLEZldGNoRXZlbnQ6Vy5kLEZvbnRG
YWNlU2V0TG9hZEV2ZW50OlcuZCxGb3JlaWduRmV0Y2hFdmVudDpXLmQsR2FtZXBhZEV2ZW50OlcuZCxI
YXNoQ2hhbmdlRXZlbnQ6Vy5kLEluc3RhbGxFdmVudDpXLmQsTWVkaWFFbmNyeXB0ZWRFdmVudDpXLmQs
TWVkaWFLZXlNZXNzYWdlRXZlbnQ6Vy5kLE1lZGlhUXVlcnlMaXN0RXZlbnQ6Vy5kLE1lZGlhU3RyZWFt
RXZlbnQ6Vy5kLE1lZGlhU3RyZWFtVHJhY2tFdmVudDpXLmQsTWVzc2FnZUV2ZW50OlcuZCxNSURJQ29u
bmVjdGlvbkV2ZW50OlcuZCxNSURJTWVzc2FnZUV2ZW50OlcuZCxNdXRhdGlvbkV2ZW50OlcuZCxOb3Rp
ZmljYXRpb25FdmVudDpXLmQsUGFnZVRyYW5zaXRpb25FdmVudDpXLmQsUGF5bWVudFJlcXVlc3RFdmVu
dDpXLmQsUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudDpXLmQsUG9wU3RhdGVFdmVudDpXLmQsUHJlc2Vu
dGF0aW9uQ29ubmVjdGlvbkF2YWlsYWJsZUV2ZW50OlcuZCxQcmVzZW50YXRpb25Db25uZWN0aW9uQ2xv
c2VFdmVudDpXLmQsUHJvbWlzZVJlamVjdGlvbkV2ZW50OlcuZCxQdXNoRXZlbnQ6Vy5kLFJUQ0RhdGFD
aGFubmVsRXZlbnQ6Vy5kLFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ6Vy5kLFJUQ1BlZXJDb25uZWN0aW9u
SWNlRXZlbnQ6Vy5kLFJUQ1RyYWNrRXZlbnQ6Vy5kLFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6
Vy5kLFNlbnNvckVycm9yRXZlbnQ6Vy5kLFNwZWVjaFJlY29nbml0aW9uRXJyb3I6Vy5kLFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQ6Vy5kLFNwZWVjaFN5bnRoZXNpc0V2ZW50OlcuZCxTdG9yYWdlRXZlbnQ6Vy5k
LFN5bmNFdmVudDpXLmQsVHJhY2tFdmVudDpXLmQsVHJhbnNpdGlvbkV2ZW50OlcuZCxXZWJLaXRUcmFu
c2l0aW9uRXZlbnQ6Vy5kLFZSRGV2aWNlRXZlbnQ6Vy5kLFZSRGlzcGxheUV2ZW50OlcuZCxWUlNlc3Np
b25FdmVudDpXLmQsTW9qb0ludGVyZmFjZVJlcXVlc3RFdmVudDpXLmQsVVNCQ29ubmVjdGlvbkV2ZW50
OlcuZCxJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6Vy5kLEF1ZGlvUHJvY2Vzc2luZ0V2ZW50OlcuZCxPZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQ6Vy5kLFdlYkdMQ29udGV4dEV2ZW50OlcuZCxFdmVudDpXLmQs
SW5wdXRFdmVudDpXLmQsRXZlbnRUYXJnZXQ6Vy5xLEZpbGU6Vy5iOSxIVE1MRm9ybUVsZW1lbnQ6Vy5j
RixIaXN0b3J5OlcuZTEsSFRNTERvY3VtZW50OlcuYkYsWE1MSHR0cFJlcXVlc3Q6Vy5hMyxYTUxIdHRw
UmVxdWVzdEV2ZW50VGFyZ2V0OlcuYkcsSW1hZ2VEYXRhOlcuYkgsTG9jYXRpb246Vy5iTyxNb3VzZUV2
ZW50OlcuSyxEcmFnRXZlbnQ6Vy5LLFBvaW50ZXJFdmVudDpXLkssV2hlZWxFdmVudDpXLkssRG9jdW1l
bnRGcmFnbWVudDpXLmssU2hhZG93Um9vdDpXLmssRG9jdW1lbnRUeXBlOlcuayxOb2RlOlcuayxOb2Rl
TGlzdDpXLmJULFJhZGlvTm9kZUxpc3Q6Vy5iVCxIVE1MUGFyYWdyYXBoRWxlbWVudDpXLmJlLFByb2dy
ZXNzRXZlbnQ6Vy5hNSxSZXNvdXJjZVByb2dyZXNzRXZlbnQ6Vy5hNSxIVE1MU2VsZWN0RWxlbWVudDpX
LmQxLEhUTUxUYWJsZUVsZW1lbnQ6Vy5iWixIVE1MVGFibGVSb3dFbGVtZW50OlcuZDYsSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQ6Vy5kNyxIVE1MVGVtcGxhdGVFbGVtZW50OlcuYmosQ29tcG9zaXRpb25FdmVu
dDpXLmE3LEZvY3VzRXZlbnQ6Vy5hNyxLZXlib2FyZEV2ZW50OlcuYTcsVGV4dEV2ZW50OlcuYTcsVG91
Y2hFdmVudDpXLmE3LFVJRXZlbnQ6Vy5hNyxXaW5kb3c6Vy5hQSxET01XaW5kb3c6Vy5hQSxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZTpXLmFpLFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTpXLmFpLFNoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlOlcuYWksV29ya2VyR2xvYmFsU2NvcGU6Vy5haSxBdHRyOlcuYm0sQ2xp
ZW50UmVjdDpXLmMzLERPTVJlY3Q6Vy5jMyxOYW1lZE5vZGVNYXA6Vy5jOCxNb3pOYW1lZEF0dHJNYXA6
Vy5jOCxJREJLZXlSYW5nZTpQLmJLLFNWR1NjcmlwdEVsZW1lbnQ6UC5iZyxTVkdBRWxlbWVudDpQLmUs
U1ZHQW5pbWF0ZUVsZW1lbnQ6UC5lLFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OlAuZSxTVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudDpQLmUsU1ZHQW5pbWF0aW9uRWxlbWVudDpQLmUsU1ZHQ2lyY2xlRWxlbWVu
dDpQLmUsU1ZHQ2xpcFBhdGhFbGVtZW50OlAuZSxTVkdEZWZzRWxlbWVudDpQLmUsU1ZHRGVzY0VsZW1l
bnQ6UC5lLFNWR0Rpc2NhcmRFbGVtZW50OlAuZSxTVkdFbGxpcHNlRWxlbWVudDpQLmUsU1ZHRkVCbGVu
ZEVsZW1lbnQ6UC5lLFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OlAuZSxTVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudDpQLmUsU1ZHRkVDb21wb3NpdGVFbGVtZW50OlAuZSxTVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudDpQLmUsU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OlAuZSxTVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQ6UC5lLFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudDpQLmUsU1ZHRkVGbG9vZEVsZW1l
bnQ6UC5lLFNWR0ZFRnVuY0FFbGVtZW50OlAuZSxTVkdGRUZ1bmNCRWxlbWVudDpQLmUsU1ZHRkVGdW5j
R0VsZW1lbnQ6UC5lLFNWR0ZFRnVuY1JFbGVtZW50OlAuZSxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6
UC5lLFNWR0ZFSW1hZ2VFbGVtZW50OlAuZSxTVkdGRU1lcmdlRWxlbWVudDpQLmUsU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50OlAuZSxTVkdGRU1vcnBob2xvZ3lFbGVtZW50OlAuZSxTVkdGRU9mZnNldEVsZW1lbnQ6
UC5lLFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6UC5lLFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
UC5lLFNWR0ZFU3BvdExpZ2h0RWxlbWVudDpQLmUsU1ZHRkVUaWxlRWxlbWVudDpQLmUsU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudDpQLmUsU1ZHRmlsdGVyRWxlbWVudDpQLmUsU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQ6UC5lLFNWR0dFbGVtZW50OlAuZSxTVkdHZW9tZXRyeUVsZW1lbnQ6UC5lLFNWR0dyYXBoaWNzRWxl
bWVudDpQLmUsU1ZHSW1hZ2VFbGVtZW50OlAuZSxTVkdMaW5lRWxlbWVudDpQLmUsU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50OlAuZSxTVkdNYXJrZXJFbGVtZW50OlAuZSxTVkdNYXNrRWxlbWVudDpQLmUsU1ZH
TWV0YWRhdGFFbGVtZW50OlAuZSxTVkdQYXRoRWxlbWVudDpQLmUsU1ZHUGF0dGVybkVsZW1lbnQ6UC5l
LFNWR1BvbHlnb25FbGVtZW50OlAuZSxTVkdQb2x5bGluZUVsZW1lbnQ6UC5lLFNWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudDpQLmUsU1ZHUmVjdEVsZW1lbnQ6UC5lLFNWR1NldEVsZW1lbnQ6UC5lLFNWR1N0b3BF
bGVtZW50OlAuZSxTVkdTdHlsZUVsZW1lbnQ6UC5lLFNWR1NWR0VsZW1lbnQ6UC5lLFNWR1N3aXRjaEVs
ZW1lbnQ6UC5lLFNWR1N5bWJvbEVsZW1lbnQ6UC5lLFNWR1RTcGFuRWxlbWVudDpQLmUsU1ZHVGV4dENv
bnRlbnRFbGVtZW50OlAuZSxTVkdUZXh0RWxlbWVudDpQLmUsU1ZHVGV4dFBhdGhFbGVtZW50OlAuZSxT
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OlAuZSxTVkdUaXRsZUVsZW1lbnQ6UC5lLFNWR1VzZUVsZW1l
bnQ6UC5lLFNWR1ZpZXdFbGVtZW50OlAuZSxTVkdHcmFkaWVudEVsZW1lbnQ6UC5lLFNWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OlAuZSxTVkdGRURyb3BTaGFkb3dFbGVtZW50OlAuZSxTVkdN
UGF0aEVsZW1lbnQ6UC5lLFNWR0VsZW1lbnQ6UC5lfSkKaHVua0hlbHBlcnMuc2V0T3JVcGRhdGVMZWFm
VGFncyh7RE9NRXJyb3I6dHJ1ZSxET01JbXBsZW1lbnRhdGlvbjp0cnVlLE1lZGlhRXJyb3I6dHJ1ZSxO
YXZpZ2F0b3I6dHJ1ZSxOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU6dHJ1ZSxOYXZpZ2F0b3JVc2Vy
TWVkaWFFcnJvcjp0cnVlLE92ZXJjb25zdHJhaW5lZEVycm9yOnRydWUsUG9zaXRpb25FcnJvcjp0cnVl
LFJhbmdlOnRydWUsU1FMRXJyb3I6dHJ1ZSxEYXRhVmlldzp0cnVlLEFycmF5QnVmZmVyVmlldzpmYWxz
ZSxGbG9hdDMyQXJyYXk6dHJ1ZSxGbG9hdDY0QXJyYXk6dHJ1ZSxJbnQxNkFycmF5OnRydWUsSW50MzJB
cnJheTp0cnVlLEludDhBcnJheTp0cnVlLFVpbnQxNkFycmF5OnRydWUsVWludDMyQXJyYXk6dHJ1ZSxV
aW50OENsYW1wZWRBcnJheTp0cnVlLENhbnZhc1BpeGVsQXJyYXk6dHJ1ZSxVaW50OEFycmF5OmZhbHNl
LEhUTUxBdWRpb0VsZW1lbnQ6dHJ1ZSxIVE1MQlJFbGVtZW50OnRydWUsSFRNTEJ1dHRvbkVsZW1lbnQ6
dHJ1ZSxIVE1MQ2FudmFzRWxlbWVudDp0cnVlLEhUTUxDb250ZW50RWxlbWVudDp0cnVlLEhUTUxETGlz
dEVsZW1lbnQ6dHJ1ZSxIVE1MRGF0YUVsZW1lbnQ6dHJ1ZSxIVE1MRGF0YUxpc3RFbGVtZW50OnRydWUs
SFRNTERldGFpbHNFbGVtZW50OnRydWUsSFRNTERpYWxvZ0VsZW1lbnQ6dHJ1ZSxIVE1MRGl2RWxlbWVu
dDp0cnVlLEhUTUxFbWJlZEVsZW1lbnQ6dHJ1ZSxIVE1MRmllbGRTZXRFbGVtZW50OnRydWUsSFRNTEhS
RWxlbWVudDp0cnVlLEhUTUxIZWFkRWxlbWVudDp0cnVlLEhUTUxIZWFkaW5nRWxlbWVudDp0cnVlLEhU
TUxIdG1sRWxlbWVudDp0cnVlLEhUTUxJRnJhbWVFbGVtZW50OnRydWUsSFRNTEltYWdlRWxlbWVudDp0
cnVlLEhUTUxJbnB1dEVsZW1lbnQ6dHJ1ZSxIVE1MTElFbGVtZW50OnRydWUsSFRNTExhYmVsRWxlbWVu
dDp0cnVlLEhUTUxMZWdlbmRFbGVtZW50OnRydWUsSFRNTExpbmtFbGVtZW50OnRydWUsSFRNTE1hcEVs
ZW1lbnQ6dHJ1ZSxIVE1MTWVkaWFFbGVtZW50OnRydWUsSFRNTE1lbnVFbGVtZW50OnRydWUsSFRNTE1l
dGFFbGVtZW50OnRydWUsSFRNTE1ldGVyRWxlbWVudDp0cnVlLEhUTUxNb2RFbGVtZW50OnRydWUsSFRN
TE9MaXN0RWxlbWVudDp0cnVlLEhUTUxPYmplY3RFbGVtZW50OnRydWUsSFRNTE9wdEdyb3VwRWxlbWVu
dDp0cnVlLEhUTUxPcHRpb25FbGVtZW50OnRydWUsSFRNTE91dHB1dEVsZW1lbnQ6dHJ1ZSxIVE1MUGFy
YW1FbGVtZW50OnRydWUsSFRNTFBpY3R1cmVFbGVtZW50OnRydWUsSFRNTFByZUVsZW1lbnQ6dHJ1ZSxI
VE1MUHJvZ3Jlc3NFbGVtZW50OnRydWUsSFRNTFF1b3RlRWxlbWVudDp0cnVlLEhUTUxTY3JpcHRFbGVt
ZW50OnRydWUsSFRNTFNoYWRvd0VsZW1lbnQ6dHJ1ZSxIVE1MU2xvdEVsZW1lbnQ6dHJ1ZSxIVE1MU291
cmNlRWxlbWVudDp0cnVlLEhUTUxTcGFuRWxlbWVudDp0cnVlLEhUTUxTdHlsZUVsZW1lbnQ6dHJ1ZSxI
VE1MVGFibGVDYXB0aW9uRWxlbWVudDp0cnVlLEhUTUxUYWJsZUNlbGxFbGVtZW50OnRydWUsSFRNTFRh
YmxlRGF0YUNlbGxFbGVtZW50OnRydWUsSFRNTFRhYmxlSGVhZGVyQ2VsbEVsZW1lbnQ6dHJ1ZSxIVE1M
VGFibGVDb2xFbGVtZW50OnRydWUsSFRNTFRleHRBcmVhRWxlbWVudDp0cnVlLEhUTUxUaW1lRWxlbWVu
dDp0cnVlLEhUTUxUaXRsZUVsZW1lbnQ6dHJ1ZSxIVE1MVHJhY2tFbGVtZW50OnRydWUsSFRNTFVMaXN0
RWxlbWVudDp0cnVlLEhUTUxVbmtub3duRWxlbWVudDp0cnVlLEhUTUxWaWRlb0VsZW1lbnQ6dHJ1ZSxI
VE1MRGlyZWN0b3J5RWxlbWVudDp0cnVlLEhUTUxGb250RWxlbWVudDp0cnVlLEhUTUxGcmFtZUVsZW1l
bnQ6dHJ1ZSxIVE1MRnJhbWVTZXRFbGVtZW50OnRydWUsSFRNTE1hcnF1ZWVFbGVtZW50OnRydWUsSFRN
TEVsZW1lbnQ6ZmFsc2UsSFRNTEFuY2hvckVsZW1lbnQ6dHJ1ZSxIVE1MQXJlYUVsZW1lbnQ6dHJ1ZSxI
VE1MQmFzZUVsZW1lbnQ6dHJ1ZSxCbG9iOmZhbHNlLEhUTUxCb2R5RWxlbWVudDp0cnVlLENEQVRBU2Vj
dGlvbjp0cnVlLENoYXJhY3RlckRhdGE6dHJ1ZSxDb21tZW50OnRydWUsUHJvY2Vzc2luZ0luc3RydWN0
aW9uOnRydWUsVGV4dDp0cnVlLENTU1N0eWxlRGVjbGFyYXRpb246dHJ1ZSxNU1N0eWxlQ1NTUHJvcGVy
dGllczp0cnVlLENTUzJQcm9wZXJ0aWVzOnRydWUsWE1MRG9jdW1lbnQ6dHJ1ZSxEb2N1bWVudDpmYWxz
ZSxET01FeGNlcHRpb246dHJ1ZSxET01SZWN0UmVhZE9ubHk6ZmFsc2UsRE9NVG9rZW5MaXN0OnRydWUs
RWxlbWVudDpmYWxzZSxBYm9ydFBheW1lbnRFdmVudDp0cnVlLEFuaW1hdGlvbkV2ZW50OnRydWUsQW5p
bWF0aW9uUGxheWJhY2tFdmVudDp0cnVlLEFwcGxpY2F0aW9uQ2FjaGVFcnJvckV2ZW50OnRydWUsQmFj
a2dyb3VuZEZldGNoQ2xpY2tFdmVudDp0cnVlLEJhY2tncm91bmRGZXRjaEV2ZW50OnRydWUsQmFja2dy
b3VuZEZldGNoRmFpbEV2ZW50OnRydWUsQmFja2dyb3VuZEZldGNoZWRFdmVudDp0cnVlLEJlZm9yZUlu
c3RhbGxQcm9tcHRFdmVudDp0cnVlLEJlZm9yZVVubG9hZEV2ZW50OnRydWUsQmxvYkV2ZW50OnRydWUs
Q2FuTWFrZVBheW1lbnRFdmVudDp0cnVlLENsaXBib2FyZEV2ZW50OnRydWUsQ2xvc2VFdmVudDp0cnVl
LEN1c3RvbUV2ZW50OnRydWUsRGV2aWNlTW90aW9uRXZlbnQ6dHJ1ZSxEZXZpY2VPcmllbnRhdGlvbkV2
ZW50OnRydWUsRXJyb3JFdmVudDp0cnVlLEV4dGVuZGFibGVFdmVudDp0cnVlLEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQ6dHJ1ZSxGZXRjaEV2ZW50OnRydWUsRm9udEZhY2VTZXRMb2FkRXZlbnQ6dHJ1ZSxGb3Jl
aWduRmV0Y2hFdmVudDp0cnVlLEdhbWVwYWRFdmVudDp0cnVlLEhhc2hDaGFuZ2VFdmVudDp0cnVlLElu
c3RhbGxFdmVudDp0cnVlLE1lZGlhRW5jcnlwdGVkRXZlbnQ6dHJ1ZSxNZWRpYUtleU1lc3NhZ2VFdmVu
dDp0cnVlLE1lZGlhUXVlcnlMaXN0RXZlbnQ6dHJ1ZSxNZWRpYVN0cmVhbUV2ZW50OnRydWUsTWVkaWFT
dHJlYW1UcmFja0V2ZW50OnRydWUsTWVzc2FnZUV2ZW50OnRydWUsTUlESUNvbm5lY3Rpb25FdmVudDp0
cnVlLE1JRElNZXNzYWdlRXZlbnQ6dHJ1ZSxNdXRhdGlvbkV2ZW50OnRydWUsTm90aWZpY2F0aW9uRXZl
bnQ6dHJ1ZSxQYWdlVHJhbnNpdGlvbkV2ZW50OnRydWUsUGF5bWVudFJlcXVlc3RFdmVudDp0cnVlLFBh
eW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6dHJ1ZSxQb3BTdGF0ZUV2ZW50OnRydWUsUHJlc2VudGF0aW9u
Q29ubmVjdGlvbkF2YWlsYWJsZUV2ZW50OnRydWUsUHJlc2VudGF0aW9uQ29ubmVjdGlvbkNsb3NlRXZl
bnQ6dHJ1ZSxQcm9taXNlUmVqZWN0aW9uRXZlbnQ6dHJ1ZSxQdXNoRXZlbnQ6dHJ1ZSxSVENEYXRhQ2hh
bm5lbEV2ZW50OnRydWUsUlRDRFRNRlRvbmVDaGFuZ2VFdmVudDp0cnVlLFJUQ1BlZXJDb25uZWN0aW9u
SWNlRXZlbnQ6dHJ1ZSxSVENUcmFja0V2ZW50OnRydWUsU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDp0cnVlLFNlbnNvckVycm9yRXZlbnQ6dHJ1ZSxTcGVlY2hSZWNvZ25pdGlvbkVycm9yOnRydWUsU3Bl
ZWNoUmVjb2duaXRpb25FdmVudDp0cnVlLFNwZWVjaFN5bnRoZXNpc0V2ZW50OnRydWUsU3RvcmFnZUV2
ZW50OnRydWUsU3luY0V2ZW50OnRydWUsVHJhY2tFdmVudDp0cnVlLFRyYW5zaXRpb25FdmVudDp0cnVl
LFdlYktpdFRyYW5zaXRpb25FdmVudDp0cnVlLFZSRGV2aWNlRXZlbnQ6dHJ1ZSxWUkRpc3BsYXlFdmVu
dDp0cnVlLFZSU2Vzc2lvbkV2ZW50OnRydWUsTW9qb0ludGVyZmFjZVJlcXVlc3RFdmVudDp0cnVlLFVT
QkNvbm5lY3Rpb25FdmVudDp0cnVlLElEQlZlcnNpb25DaGFuZ2VFdmVudDp0cnVlLEF1ZGlvUHJvY2Vz
c2luZ0V2ZW50OnRydWUsT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50OnRydWUsV2ViR0xDb250ZXh0
RXZlbnQ6dHJ1ZSxFdmVudDpmYWxzZSxJbnB1dEV2ZW50OmZhbHNlLEV2ZW50VGFyZ2V0OmZhbHNlLEZp
bGU6dHJ1ZSxIVE1MRm9ybUVsZW1lbnQ6dHJ1ZSxIaXN0b3J5OnRydWUsSFRNTERvY3VtZW50OnRydWUs
WE1MSHR0cFJlcXVlc3Q6dHJ1ZSxYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0OmZhbHNlLEltYWdlRGF0
YTp0cnVlLExvY2F0aW9uOnRydWUsTW91c2VFdmVudDp0cnVlLERyYWdFdmVudDp0cnVlLFBvaW50ZXJF
dmVudDp0cnVlLFdoZWVsRXZlbnQ6dHJ1ZSxEb2N1bWVudEZyYWdtZW50OnRydWUsU2hhZG93Um9vdDp0
cnVlLERvY3VtZW50VHlwZTp0cnVlLE5vZGU6ZmFsc2UsTm9kZUxpc3Q6dHJ1ZSxSYWRpb05vZGVMaXN0
OnRydWUsSFRNTFBhcmFncmFwaEVsZW1lbnQ6dHJ1ZSxQcm9ncmVzc0V2ZW50OnRydWUsUmVzb3VyY2VQ
cm9ncmVzc0V2ZW50OnRydWUsSFRNTFNlbGVjdEVsZW1lbnQ6dHJ1ZSxIVE1MVGFibGVFbGVtZW50OnRy
dWUsSFRNTFRhYmxlUm93RWxlbWVudDp0cnVlLEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OnRydWUsSFRN
TFRlbXBsYXRlRWxlbWVudDp0cnVlLENvbXBvc2l0aW9uRXZlbnQ6dHJ1ZSxGb2N1c0V2ZW50OnRydWUs
S2V5Ym9hcmRFdmVudDp0cnVlLFRleHRFdmVudDp0cnVlLFRvdWNoRXZlbnQ6dHJ1ZSxVSUV2ZW50OmZh
bHNlLFdpbmRvdzp0cnVlLERPTVdpbmRvdzp0cnVlLERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOnRy
dWUsU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOnRydWUsU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6dHJ1
ZSxXb3JrZXJHbG9iYWxTY29wZTp0cnVlLEF0dHI6dHJ1ZSxDbGllbnRSZWN0OnRydWUsRE9NUmVjdDp0
cnVlLE5hbWVkTm9kZU1hcDp0cnVlLE1vek5hbWVkQXR0ck1hcDp0cnVlLElEQktleVJhbmdlOnRydWUs
U1ZHU2NyaXB0RWxlbWVudDp0cnVlLFNWR0FFbGVtZW50OnRydWUsU1ZHQW5pbWF0ZUVsZW1lbnQ6dHJ1
ZSxTVkdBbmltYXRlTW90aW9uRWxlbWVudDp0cnVlLFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OnRy
dWUsU1ZHQW5pbWF0aW9uRWxlbWVudDp0cnVlLFNWR0NpcmNsZUVsZW1lbnQ6dHJ1ZSxTVkdDbGlwUGF0
aEVsZW1lbnQ6dHJ1ZSxTVkdEZWZzRWxlbWVudDp0cnVlLFNWR0Rlc2NFbGVtZW50OnRydWUsU1ZHRGlz
Y2FyZEVsZW1lbnQ6dHJ1ZSxTVkdFbGxpcHNlRWxlbWVudDp0cnVlLFNWR0ZFQmxlbmRFbGVtZW50OnRy
dWUsU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6dHJ1ZSxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dDp0cnVlLFNWR0ZFQ29tcG9zaXRlRWxlbWVudDp0cnVlLFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
OnRydWUsU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OnRydWUsU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50OnRydWUsU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50OnRydWUsU1ZHRkVGbG9vZEVsZW1lbnQ6
dHJ1ZSxTVkdGRUZ1bmNBRWxlbWVudDp0cnVlLFNWR0ZFRnVuY0JFbGVtZW50OnRydWUsU1ZHRkVGdW5j
R0VsZW1lbnQ6dHJ1ZSxTVkdGRUZ1bmNSRWxlbWVudDp0cnVlLFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dDp0cnVlLFNWR0ZFSW1hZ2VFbGVtZW50OnRydWUsU1ZHRkVNZXJnZUVsZW1lbnQ6dHJ1ZSxTVkdGRU1l
cmdlTm9kZUVsZW1lbnQ6dHJ1ZSxTVkdGRU1vcnBob2xvZ3lFbGVtZW50OnRydWUsU1ZHRkVPZmZzZXRF
bGVtZW50OnRydWUsU1ZHRkVQb2ludExpZ2h0RWxlbWVudDp0cnVlLFNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6dHJ1ZSxTVkdGRVNwb3RMaWdodEVsZW1lbnQ6dHJ1ZSxTVkdGRVRpbGVFbGVtZW50OnRy
dWUsU1ZHRkVUdXJidWxlbmNlRWxlbWVudDp0cnVlLFNWR0ZpbHRlckVsZW1lbnQ6dHJ1ZSxTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudDp0cnVlLFNWR0dFbGVtZW50OnRydWUsU1ZHR2VvbWV0cnlFbGVtZW50OnRy
dWUsU1ZHR3JhcGhpY3NFbGVtZW50OnRydWUsU1ZHSW1hZ2VFbGVtZW50OnRydWUsU1ZHTGluZUVsZW1l
bnQ6dHJ1ZSxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6dHJ1ZSxTVkdNYXJrZXJFbGVtZW50OnRydWUs
U1ZHTWFza0VsZW1lbnQ6dHJ1ZSxTVkdNZXRhZGF0YUVsZW1lbnQ6dHJ1ZSxTVkdQYXRoRWxlbWVudDp0
cnVlLFNWR1BhdHRlcm5FbGVtZW50OnRydWUsU1ZHUG9seWdvbkVsZW1lbnQ6dHJ1ZSxTVkdQb2x5bGlu
ZUVsZW1lbnQ6dHJ1ZSxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6dHJ1ZSxTVkdSZWN0RWxlbWVudDp0
cnVlLFNWR1NldEVsZW1lbnQ6dHJ1ZSxTVkdTdG9wRWxlbWVudDp0cnVlLFNWR1N0eWxlRWxlbWVudDp0
cnVlLFNWR1NWR0VsZW1lbnQ6dHJ1ZSxTVkdTd2l0Y2hFbGVtZW50OnRydWUsU1ZHU3ltYm9sRWxlbWVu
dDp0cnVlLFNWR1RTcGFuRWxlbWVudDp0cnVlLFNWR1RleHRDb250ZW50RWxlbWVudDp0cnVlLFNWR1Rl
eHRFbGVtZW50OnRydWUsU1ZHVGV4dFBhdGhFbGVtZW50OnRydWUsU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudDp0cnVlLFNWR1RpdGxlRWxlbWVudDp0cnVlLFNWR1VzZUVsZW1lbnQ6dHJ1ZSxTVkdWaWV3RWxl
bWVudDp0cnVlLFNWR0dyYWRpZW50RWxlbWVudDp0cnVlLFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b25FbGVtZW50OnRydWUsU1ZHRkVEcm9wU2hhZG93RWxlbWVudDp0cnVlLFNWR01QYXRoRWxlbWVudDp0
cnVlLFNWR0VsZW1lbnQ6ZmFsc2V9KQpILmJRLiRuYXRpdmVTdXBlcmNsYXNzVGFnPSJBcnJheUJ1ZmZl
clZpZXciCkguYzkuJG5hdGl2ZVN1cGVyY2xhc3NUYWc9IkFycmF5QnVmZmVyVmlldyIKSC5jYS4kbmF0
aXZlU3VwZXJjbGFzc1RhZz0iQXJyYXlCdWZmZXJWaWV3IgpILmFSLiRuYXRpdmVTdXBlcmNsYXNzVGFn
PSJBcnJheUJ1ZmZlclZpZXciCkguY2IuJG5hdGl2ZVN1cGVyY2xhc3NUYWc9IkFycmF5QnVmZmVyVmll
dyIKSC5jYy4kbmF0aXZlU3VwZXJjbGFzc1RhZz0iQXJyYXlCdWZmZXJWaWV3IgpILmJSLiRuYXRpdmVT
dXBlcmNsYXNzVGFnPSJBcnJheUJ1ZmZlclZpZXcifSkoKQpjb252ZXJ0QWxsVG9GYXN0T2JqZWN0KHcp
CmNvbnZlcnRUb0Zhc3RPYmplY3QoJCk7KGZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBkb2N1bWVudD09PSJ1
bmRlZmluZWQiKXthKG51bGwpCnJldHVybn1pZih0eXBlb2YgZG9jdW1lbnQuY3VycmVudFNjcmlwdCE9
J3VuZGVmaW5lZCcpe2EoZG9jdW1lbnQuY3VycmVudFNjcmlwdCkKcmV0dXJufXZhciB0PWRvY3VtZW50
LnNjcmlwdHMKZnVuY3Rpb24gb25Mb2FkKGIpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKXRbcl0u
cmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsb25Mb2FkLGZhbHNlKQphKGIudGFyZ2V0KX1mb3IodmFy
IHM9MDtzPHQubGVuZ3RoOysrcyl0W3NdLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLG9uTG9hZCxmYWxz
ZSl9KShmdW5jdGlvbihhKXt2LmN1cnJlbnRTY3JpcHQ9YQppZih0eXBlb2YgZGFydE1haW5SdW5uZXI9
PT0iZnVuY3Rpb24iKWRhcnRNYWluUnVubmVyKEwuaU8sW10pCmVsc2UgTC5pTyhbXSl9KX0pKCkKLy8j
IHNvdXJjZU1hcHBpbmdVUkw9bWlncmF0aW9uLmpzLm1hcAo=
''';
String _migration_css;
// migration_css md5 is 'f17223177bb502d5077cd5157c4d0b38'
String _migration_css_base64 = '''
LyogQ29weXJpZ2h0IChjKSAyMDE5LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuIFBsZWFzZSBzZWUg
dGhlIEFVVEhPUlMgZmlsZSAgKi8KLyogZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgKi8KLyogQlNELXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4gICAgICAgICAgICAgICAgICAg
Ki8KCmJvZHkgewogIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOwogIGNvbG9yOiB3aGl0ZTsKICBmb250
LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWY7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7
Cn0KCmgxIHsKICBmb250LXNpemU6IDIuNGVtOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgbWFyZ2luOiA4
cHggOHB4IDAgOHB4Owp9CgpoMiN1bml0LW5hbWUgewogIGZvbnQtc2l6ZTogMS4yZW07CiAgZm9udC13
ZWlnaHQ6IDYwMDsKICBtYXJnaW46IDhweCA4cHggMCA4cHg7Cn0KCi5ob3Jpem9udGFsIHsKICBkaXNw
bGF5OiBmbGV4Owp9CgoucGFuZWwtaGVhZGluZyB7CiAgZm9udC1zaXplOiAxOHB4OwogIGZvbnQtd2Vp
Z2h0OiA2MDA7CiAgbWFyZ2luLXRvcDogMDsKICBwYWRkaW5nOiA3cHggN3B4IDAgN3B4Owp9CgoubmF2
LWxpbmssIC5yZWdpb24gewogIGN1cnNvcjogcG9pbnRlcjsKfQoKLm5hdi1wYW5lbCB7CiAgYmFja2dy
b3VuZC1jb2xvcjogIzI4MmIyZTsKICBmbGV4OiAxIDEgMjcwcHg7CiAgZm9udC1zaXplOiAxNHB4Owog
IC8qIDEwcHggdG8gbWF0Y2ggZXhhY3QgdG9wIG1hcmdpbiBvZiAuY29udGVudC4KICAgKiAwLjhlbSB0
byBwYWlyIHdpdGggdGhlIC0wLjVlbSBtYXJnaW4gb2YgLmNvbnRlbnQsIHByb2R1Y2luZyBhIG5ldCBt
YXJnaW4KICAgKiBiZXR3ZWVuIHRoZSB0d28gb2YgMC4zZW0uCiAgICovCiAgbWFyZ2luOiAxMHB4IDAu
OGVtIDAgMDsKfQoKLm5hdi1pbm5lciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MmIyZTsKICBvdmVy
ZmxvdzogYXV0bzsKICBwYWRkaW5nOiAwIDAgN3B4IDdweDsKfQoKLmZpeGVkIHsKICBwb3NpdGlvbjog
Zml4ZWQ7CiAgdG9wOiAwOwp9CgoubmF2LWlubmVyIC5yb290IHsKICBtYXJnaW46IDA7Cn0KCi5uYXYt
aW5uZXIgdWwgewogIHBhZGRpbmctbGVmdDogMTJweDsKfQoubmF2LWlubmVyID4gdWwgewogIHBhZGRp
bmctbGVmdDogMDsKICBtYXJnaW4tdG9wOiAwOwp9CgoubmF2LWlubmVyIGxpIHsKICBsaXN0LXN0eWxl
LXR5cGU6IG5vbmU7Cn0KCi5uYXYtaW5uZXIgbGkuZGlyIHsKICBtYXJnaW4tbGVmdDogNXB4Owp9Cgou
bmF2LWlubmVyIGxpOm5vdCguZGlyKSB7CiAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgbWFyZ2luLWJvdHRv
bTogM3B4Owp9CgoubmF2LWlubmVyIGxpLmRpciAuYXJyb3cgewogIGN1cnNvcjogcG9pbnRlcjsKICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgZm9udC1zaXplOiAxMHB4OwogIG1hcmdpbi1yaWdodDogNHB4
OwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0Owp9CgoubmF2LWlubmVyIGxpLmRp
ciAuYXJyb3cuY29sbGFwc2VkIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwp9CgoubmF2LWlu
bmVyIHVsIHsKICBtYXgtaGVpZ2h0OiAyMDAwcHg7CiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVz
IGVhc2Utb3V0Owp9CgoubmF2LWlubmVyIHVsLmNvbGxhcHNlZCB7CiAgbWF4LWhlaWdodDogMCAhaW1w
b3J0YW50OwogIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5uYXYtaW5uZXIgLm5hdi1saW5rIHsKICBjb2xv
cjogIzMzY2NmZjsKfQoKLm5hdi1pbm5lciAuc2VsZWN0ZWQtZmlsZSB7CiAgY29sb3I6IHdoaXRlOwog
IGN1cnNvcjogaW5oZXJpdDsKICBmb250LXdlaWdodDogNjAwOwogIHRleHQtZGVjb3JhdGlvbjogbm9u
ZTsKfQoKLmVkaXQtY291bnQgewogIGJhY2tncm91bmQtY29sb3I6ICNjY2NjMDA7CiAgYm9yZGVyLXJh
ZGl1czogMTVweDsKICBjb2xvcjogIzAwMDAwMDsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgZm9u
dC1zaXplOiAxMXB4OwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgbWFyZ2luLWxlZnQ6IDVweDsKICBtaW4t
d2lkdGg6IDI1cHg7CiAgcGFkZGluZzogNXB4IDA7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgouY29u
dGVudCB7CiAgZmxleDogMCAxIGF1dG87CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAvKioKICAg
KiBMZWZ0IG1hcmdpbiBvZmZzZXRzIHRoZSBtYXJnaW4gaW50cm9kdWNlZCBieSB0aGUgYWJzb2x1dGVs
eSBwb3NpdGlvbmVkCiAgICogY2hpbGQgZGl2LgogICAqLwogIG1hcmdpbjogMTBweCAxMHB4IDEwcHgg
LTAuNWVtOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aGl0ZS1zcGFjZTogcHJlOwp9CgouY29kZSB7
CiAgbGVmdDogMC41ZW07CiAgLyogSW5jcmVhc2UgbGluZSBoZWlnaHQgdG8gbWFrZSByb29tIGZvciBi
b3JkZXJzIGluIG5vbi1udWxsYWJsZSB0eXBlCiAgICogcmVnaW9ucy4KICAgKi8KICBsaW5lLWhlaWdo
dDogMS4zOwogIG1pbi1oZWlnaHQ6IDYwMHB4OwogIHBhZGRpbmctbGVmdDogNjJweDsKICBwb3NpdGlv
bjogaW5oZXJpdDsKICB6LWluZGV4OiAxMDA7Cn0KCi5jb2RlLmhsanMgewogIGJhY2tncm91bmQtY29s
b3I6IGluaGVyaXQ7Cn0KCi5jb2RlIC53ZWxjb21lIHsKICBmb250LWZhbWlseTogJ09wZW4gU2Fucycs
IHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOiAxOHB4OwogIG1hcmdpbi1yaWdodDogNjJweDsKfQoKLmNv
ZGUgLm5hdi1saW5rIHsKICBjb2xvcjogaW5oZXJpdDsKICB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9u
ZTsKfQoKLmNvZGUgLm5hdi1saW5rOnZpc2l0ZWQgewogIGNvbG9yOiBpbmhlcml0OwogIHRleHQtZGVj
b3JhdGlvbi1saW5lOiBub25lOwp9CgouY29kZSAubmF2LWxpbms6aG92ZXIgewogIHRleHQtZGVjb3Jh
dGlvbi1saW5lOiB1bmRlcmxpbmU7CiAgZm9udC13ZWlnaHQ6IDYwMDsKfQoKLnJlZ2lvbnMgewogIGJh
Y2tncm91bmQtY29sb3I6ICMyODJiMmU7CiAgcGFkZGluZzogMC41ZW0gMCAwLjVlbSAwLjVlbTsKICBw
b3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogMC41ZW07CiAgdG9wOiAwOwp9CgoucmVnaW9ucyB0YWJs
ZSB7CiAgYm9yZGVyLXNwYWNpbmc6IDA7Cn0KCi5yZWdpb25zIHRkIHsKICBib3JkZXI6IG5vbmU7CiAg
LyogVGhlIGNvbnRlbnQgb2YgdGhlIHJlZ2lvbnMgaXMgbm90IHZpc2libGU7IHRoZSB1c2VyIGluc3Rl
YWQgd2lsbCBzZWUgdGhlCiAgICogaGlnaGxpZ2h0ZWQgY29weSBvZiB0aGUgY29udGVudC4gKi8KICBj
b2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsKICBsaW5lLWhlaWdodDogMS4zOwogIHBhZGRpbmc6
IDA7CiAgd2hpdGUtc3BhY2U6IHByZTsKfQoKLnJlZ2lvbnMgdGQ6ZW1wdHk6YWZ0ZXIgewogIGNvbnRl
bnQ6ICJcMDBhMCI7Cn0KCi5yZWdpb25zIHRyLmhpZ2hsaWdodCB0ZDpsYXN0LWNoaWxkIHsKICBiYWNr
Z3JvdW5kLWNvbG9yOiAjNDQ0NDQ0Owp9CgoucmVnaW9ucyB0ZC5saW5lLW5vIHsKICBib3JkZXItcmln
aHQ6IHNvbGlkICMyODJiMmUgMnB4OwogIGNvbG9yOiAjOTk5OTk5OwogIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKICBwYWRkaW5nLXJpZ2h0OiA0cHg7CiAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgdmlzaWJpbGl0
eTogdmlzaWJsZTsKICB3aWR0aDogNTBweDsKfQoKLnJlZ2lvbnMgdHIuaGlnaGxpZ2h0IHRkLmxpbmUt
bm8gewogIGJvcmRlci1yaWdodDogc29saWQgI2NjY2NjYyAycHg7Cn0KCi5yZWdpb24gewogIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmlzaWJpbGl0eTogdmlzaWJs
ZTsKICB6LWluZGV4OiAyMDA7Cn0KCi5yZWdpb24uYWRkZWQtcmVnaW9uIHsKICBiYWNrZ3JvdW5kLWNv
bG9yOiAjY2NmZmNjOwogIGNvbG9yOiAjMDAzMzAwOwp9CgoucmVnaW9uLnJlbW92ZWQtcmVnaW9uIHsK
ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2NjY2OwogIGNvbG9yOiAjMDAxMTAwOwp9CgoucmVnaW9uLnVu
Y2hhbmdlZC1yZWdpb24gewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBi
b3JkZXItYm90dG9tOiBzb2xpZCAycHggI2NjY2NjYzsKICAvKiBJbnZpc2libGUgdGV4dDsgdXNlIHVu
ZGVybHlpbmcgaGlnaGxpZ2h0aW5nLiAqLwogIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogIC8qIFJl
ZHVjZSBsaW5lIGhlaWdodCB0byBtYWtlIHJvb20gZm9yIGJvcmRlci4gKi8KICBsaW5lLWhlaWdodDog
MTsKfQoKLnRhcmdldCB7CiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkY5OTsKICBjb2xvcjogYmxhY2s7
CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHZpc2liaWxpdHk6IHZpc2libGU7Cn0KCi5pbmZvLXBhbmVs
IHsKICBmbGV4OiAxIDEgMjcwcHg7CiAgZm9udC1zaXplOiAxNHB4OwogIG1hcmdpbjogMTBweCAwOwp9
CgouaW5mby1wYW5lbCAuZWRpdC1wYW5lbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MmIyZTsKICBv
dmVyZmxvdzogYXV0bzsKfQoKLmluZm8tcGFuZWwgLnBhbmVsLWNvbnRlbnQgewogIGZvbnQtc2l6ZTog
MTNweDsKICBwYWRkaW5nOiA3cHg7Cn0KCi5pbmZvLXBhbmVsIC5wYW5lbC1jb250ZW50ID4gOmZpcnN0
LWNoaWxkIHsKICBtYXJnaW4tdG9wOiAwOwp9CgouaW5mby1wYW5lbCAucmVnaW9uLWxvY2F0aW9uIHsK
ICBwYWRkaW5nLWxlZnQ6IDEycHg7CiAgdGV4dC1pbmRlbnQ6IC0xMnB4Owp9CgouaW5mby1wYW5lbCAu
bm93cmFwIHsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgouaW5mby1wYW5lbCB1bCwKLmluZm8tcGFu
ZWwgb2wgewogIHBhZGRpbmctbGVmdDogMjBweDsKfQoKLmluZm8tcGFuZWwgYSB7CiAgY29sb3I6ICMz
M2NjZmY7Cn0KCi5pbmZvLXBhbmVsIC5lZGl0LWxpc3QgewogIGJhY2tncm91bmQtY29sb3I6ICMyODJi
MmU7CiAgbWFyZ2luLXRvcDogMTJweDsKICBvdmVyZmxvdzogYXV0bzsKfQoKLmVkaXQtbGlzdCAuZWRp
dCB7CiAgbWFyZ2luOiAzcHggMDsKICBwYWRkaW5nLWxlZnQ6IDIxcHg7CiAgdGV4dC1pbmRlbnQ6IC0y
MXB4Owp9CgouZWRpdC1saXN0IC5lZGl0LWxpbmsgewogIGN1cnNvcjogcG9pbnRlcjsKfQoKLmZvb3Rl
ciB7CiAgcGFkZGluZzogOHB4IDhweCAxMDBweCA4cHg7Cn0K
''';