<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>216231</bug_id>
          
          <creation_ts>2020-09-06 15:11:47 -0700</creation_ts>
          <short_desc>[WebIDL] Add mode to preprocess-idls.pl to validate fast regex based scanner with the normal IDL parser</short_desc>
          <delta_ts>2020-09-06 17:21:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1686230</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-06 15:11:47 -0700</bug_when>
    <thetext>[WebIDL] Add mode to preprocess-idls.pl to validate fast regex based scanner with the normal IDL parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686232</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-06 15:14:36 -0700</bug_when>
    <thetext>I keep finding myself running into issues with preprocess-idls.pl, mostly due to its very optimistic parsing of IDL files not matching the actual IDL grammar.

One day, I would like to remove this alternative parsing, but as a first step, I want to add a mode I can run preprocess-idls.pl in that uses the real IDL parser to validate that the regex based one is getting the right results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686242</commentid>
    <comment_count>2</comment_count>
      <attachid>408144</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-06 15:39:16 -0700</bug_when>
    <thetext>Created attachment 408144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686245</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-06 15:42:09 -0700</bug_when>
    <thetext>Oh bummer, looks like I can&apos;t &apos;use experimental &apos;smartmatch&apos;;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686253</commentid>
    <comment_count>4</comment_count>
      <attachid>408148</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-06 16:03:46 -0700</bug_when>
    <thetext>Created attachment 408148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686254</commentid>
    <comment_count>5</comment_count>
      <attachid>408149</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-06 16:05:24 -0700</bug_when>
    <thetext>Created attachment 408149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686270</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-06 17:20:05 -0700</bug_when>
    <thetext>Committed r266687: &lt;https://trac.webkit.org/changeset/266687&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408149.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686271</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-06 17:21:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/68437813&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408144</attachid>
            <date>2020-09-06 15:39:16 -0700</date>
            <delta_ts>2020-09-06 16:03:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216231-20200906153916.patch</filename>
            <type>text/plain</type>
            <size>43368</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTA5LTA2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBBZGQgbW9kZSB0byBw
cmVwcm9jZXNzLWlkbHMucGwgdG8gdmFsaWRhdGUgZmFzdCByZWdleCBiYXNlZCBzY2FubmVyIHdp
dGggdGhlIG5vcm1hbCBJREwgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTYyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUbyBhaWQgdHJhY2tpbmcgZG93biBtaXN0YWtlcyBpbiB0aGUgZmFz
dCByZWdleCBiYXNlZCBzY2FubmVyIGluIHByZXByb2Nlc3MtaWRscy5wbCwgdGhpcworICAgICAg
ICBhZGRzIGEgdmFsaWRhdGlvbiBtb2RlIHRvIHRoZSBzY3JpcHQgd2hpY2ggY2hlY2tzIHRoZSBy
ZXN1bHRzIGFnYWluc3Qgd2hhdCB0aGUgbm9ybWFsLCBtdWNoCisgICAgICAgIHNsb3dlciwgSURM
IHBhcnNlciBnZXRzLiBJbiBidWlsZGluZyBpdCwgaXQgY2F1Z2h0IHRoYXQgd2Ugd2VyZSBub3Qg
Y3JlYXRpbmcgYSBkZXBlbmRlbmN5IG9uCisgICAgICAgIFJUQ1J0cENvZGluZ1BhcmFtZXRlcnMu
aWRsIGZvciBkaWN0aW9uYXJpZXMgdGhhdCBkZXJpdmVkIGZyb20gaXQgYmVjYXVzZSBpdCB3YXMg
bWlzc2luZyBmcm9tCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UvQ01ha2VMaXN0cy50eHQs
IHdoaWNoIHdvdWxkIGhhdmUgbWFuaWZlc3RlZCBpbiBjb25mdXNpbmcgYnVpbGQgZXJyb3JzCisg
ICAgICAgIGluIHNvbWUgY2FzZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MtYWxsLnBsOgorICAgICAgICBBZGQgbWlzc2luZyBSVENSdHBDb2RpbmdQ
YXJhbWV0ZXJzLmlkbCBhbmQgdXBkYXRlIGludm9jYXRpb24gb2YgcHJlcHJvY2Vzcy1pZGxzLnBs
IHRvIAorICAgICAgICBwYXNzIGluIGlkbEF0dHJpYnV0ZXNGaWxlLCB3aGljaCB0aGUgcGFyc2Vy
IG5lZWRzIChpdCBpcyBub3QgcmVhZCB3aGVuIG5vdCB2YWxpZGF0aW5nKS4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwOgorICAg
ICAgICBVcGRhdGVkIHRvIGluY2x1ZGUgbWlzc2luZyBkaWN0aW9uYXJ5IGRlcGVuZGVuY2llcy4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAg
ICAoR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKToKKyAgICAgICAgKHByb2Nlc3NJREwpOgorICAg
ICAgICAoZ2V0UGFydGlhbE5hbWVzRnJvbUlETCk6CisgICAgICAgIChnZXRJbmNsdWRlZEludGVy
ZmFjZXNGcm9tSURMKToKKyAgICAgICAgKGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKToKKyAg
ICAgICAgKGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSXRlcmFi
bGVJbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFj
a0ludGVyZmFjZUZyb21JREwpOgorICAgICAgICAoY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3Rh
bnRzRnJvbUlETCk6CisgICAgICAgIChnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9t
SURMKToKKyAgICAgICAgKGdldFVuZGVmaW5lZEJhc2VEaWN0aW9uYXJpZXNGcm9tSURMKToKKyAg
ICAgICAgKHNob3VsZEV4cG9zZUludGVyZmFjZSk6CisgICAgICAgIChnZXRGaWxlQ29udGVudHMp
OiBEZWxldGVkLgorICAgICAgICAoaW50ZXJmYWNlSXNJdGVyYWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChjb250YWluc0ludGVyZmFjZUZyb21JREwpOiBEZWxldGVkLgorICAgICAgICAoaW50ZXJm
YWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAodXBkYXRlRGljdGlv
bmFyeURlcGVuZGVuY2llcyk6IERlbGV0ZWQuCisgICAgICAgIC0gQWxsb3cgZW5hYmxpbmcgYSB2
YWxpZGF0aW9uIG1vZGUgdmlhIHRoZSAkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyIHZhcmlhYmxlIHdo
aWNoIHBhcnNlcyBlYWNoCisgICAgICAgICAgSURMIHdpdGggdGhlIG5vcm1hbCBJREwgcGFyc2Vy
IGFuZCBjb21wYXJlcyByZXN1bHRzLiAKKyAgICAgICAgLSBVcGRhdGVzIGEgYnVuY2ggb2YgbmFt
aW5nIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQgd2hpY2ggdmFyaWFibGVzIGNvbnRhaW4gZmlsZSBu
YW1lcyB2cy4gZmlsZQorICAgICAgICAgIHBhdGhzLgorICAgICAgICAtIFJlbmFtZXMgZnVuY3Rp
b25zIHRvIHVzZSBtb3JlIGNvbnNpc3RlbnQgbmFtaW5nLgorICAgICAgICAtIEZpeGVzIGJ1ZyBp
biBkaWN0aW9uYXJ5IGRlcGVuZGVuY3kgYW5hbHlzaXMgdGhhdCBzaWxlbnRseSBpZ25vcmVkIGRl
cGVuZGVuY2llcyB0aGF0IHdlcmVuJ3QKKyAgICAgICAgICBpbiB0aGUgZmlsZSBsaXN0LgorCiAy
MDIwLTA5LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTGV0dGVyLXNwYWNpbmcgc2hvdWxkIGRpc2FibGUgbGlnYXR1cmVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY2NjgzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM3Nyw2ICszNzcsNyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ2FwYWJpbGl0
aWVzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kZWNQYXJhbWV0ZXJzLmlkbAorICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kaW5nUGFyYW1ldGVycy5pZGwKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZS5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cEZlY1BhcmFtZXRlcnMuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw2ICszMDYsNyBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cENhcGFi
aWxpdGllcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBD
b2RlY0NhcGFiaWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwQ29kZWNQYXJhbWV0ZXJzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cENvZGluZ1BhcmFtZXRlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29udHJpYnV0aW5nU291cmNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBGZWNQYXJhbWV0ZXJzLmlk
bCBcCkBAIC0xNzM4LDkgKzE3MzksOSBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogIwog
SURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFU
RV9GSUxFUykpCiAKLSQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1Nf
SURMU19TQ1JJUFRTKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9E
RUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExB
VEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKKyQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVzTGlzdCAkKElETF9GSUxFU19UTVAp
IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9G
SUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxF
KSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1F
TlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVG
SU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVT
X1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlz
b1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRv
d0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtF
RklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmgg
OiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJ
RExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBF
TkRFTkNJRVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLWFsbC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbAkocmV2aXNpb24gMjY2NjgzKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwJKHdv
cmtpbmcgY29weSkKQEAgLTg1LDggKzg1LDkgQEAgaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZSkgewogICAgICAgICByZWFkU3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUoJHN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlLCBcJW9sZFN1cHBsZW1lbnRzKSBpZiAtZSAkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGU7CiAgICAgICAgIG15IEBhcmdzID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUo
JHNjcmlwdERpciwgJ3ByZXByb2Nlc3MtaWRscy5wbCcpLAogICAgICAgICAgICAgICAgICAgICAn
LS1kZWZpbmVzJywgJGRlZmluZXMsCi0gICAgICAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlz
dCcsICRwcElETEZpbGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0taWRsRmlsZU5hbWVz
TGlzdCcsICRwcElETEZpbGVzTGlzdCwKICAgICAgICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAg
ICAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAog
ICAgICAgICAgICAgICAgICAgICBAcHBFeHRyYUFyZ3MpOwogICAgICAgICBwcmludFByb2dyZXNz
KCJQcmVwcm9jZXNzIElETCIpOwogICAgICAgICBleGVjdXRlQ29tbWFuZCgkcGVybCwgQGFyZ3Mp
ID09IDAgb3IgZGllOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVw
cm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCSh3b3JraW5nIGNvcHkpCkBA
IC0yMywxNCArMjMsMjEgQEAgdXNlIHdhcm5pbmdzOwogdXNlIEZpbmRCaW47CiB1c2UgbGliICRG
aW5kQmluOjpCaW47CiAKK3VzZSBFbmdsaXNoOwogdXNlIEZpbGU6OkJhc2VuYW1lOwogdXNlIEdl
dG9wdDo6TG9uZzsKIHVzZSBDd2Q7CiB1c2UgQ29uZmlnOwordXNlIENsYXNzOjpTdHJ1Y3Q7Cit1
c2UgSlNPTjo6UFA7Cit1c2UgRGF0YTo6RHVtcGVyOwordXNlIGV4cGVyaW1lbnRhbCAnc21hcnRt
YXRjaCc7CisKK3VzZSBJRExQYXJzZXI7CiAKIG15ICRkZWZpbmVzOwogbXkgJHByZXByb2Nlc3Nv
cjsKLW15ICRpZGxGaWxlc0xpc3Q7CitteSAkaWRsRmlsZU5hbWVzTGlzdDsKIG15ICR0ZXN0R2xv
YmFsQ29udGV4dE5hbWU7CiBteSAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU7CiBteSAkaXNv
U3Vic3BhY2VzSGVhZGVyRmlsZTsKQEAgLTQyLDEwICs0OSwxNiBAQCBteSAkd29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yc0ZpbGU7CiBteSAkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZTsKIG15ICRz
dXBwbGVtZW50YWxNYWtlZmlsZURlcHM7CitteSAkaWRsQXR0cmlidXRlc0ZpbGU7CisKKyMgVG9n
Z2xlIHRoaXMgdG8gdmFsaWRhdGUgdGhhdCB0aGUgZmFzdCByZWd1bGFyIGV4cHJlc3Npb24gYmFz
ZWQgInBhcnNpbmciIHVzZWQKKyMgaW4gdGhpcyBmaWxlIHByb2R1Y2VzIHRoZSBzYW1lIHJlc3Vs
dHMgYXMgdGhlIHNsb3dlciByZXN1bHRzIHByb2R1Y2VkIGJ5IHRoZQorIyBjb21wbGV0ZSBJRExQ
YXJzZXIuCitteSAkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyID0gMDsKIAogR2V0T3B0aW9ucygnZGVm
aW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICdwcmVwcm9jZXNzb3I9cycgPT4gXCRw
cmVwcm9jZXNzb3IsCi0gICAgICAgICAgICdpZGxGaWxlc0xpc3Q9cycgPT4gXCRpZGxGaWxlc0xp
c3QsCisgICAgICAgICAgICdpZGxGaWxlTmFtZXNMaXN0PXMnID0+IFwkaWRsRmlsZU5hbWVzTGlz
dCwKICAgICAgICAgICAgJ3Rlc3RHbG9iYWxDb250ZXh0TmFtZT1zJyA9PiBcJHRlc3RHbG9iYWxD
b250ZXh0TmFtZSwKICAgICAgICAgICAgJ3N1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlPXMnID0+
IFwkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCiAgICAgICAgICAgICdpc29TdWJzcGFjZXNI
ZWFkZXJGaWxlPXMnID0+IFwkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSwKQEAgLTU2LDcgKzY5LDkg
QEAgR2V0T3B0aW9ucygnZGVmaW5lcz1zJyA9PiBcJGRlZmluZXMsCiAgICAgICAgICAgICd3b3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkd29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSwKICAgICAgICAgICAgJ3BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JzRmlsZT1zJyA9PiBcJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Jz
RmlsZSwKICAgICAgICAgICAgJ3Rlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4g
XCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLAotICAgICAgICAgICAnc3VwcGxlbWVu
dGFsTWFrZWZpbGVEZXBzPXMnID0+IFwkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKTsKKyAgICAg
ICAgICAgJ3N1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1lbnRhbE1ha2Vm
aWxlRGVwcywKKyAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmli
dXRlc0ZpbGUsCisgICAgICAgICAgICd2YWxpZGF0ZUFnYWluc3RQYXJzZXInID0+IFwkdmFsaWRh
dGVBZ2FpbnN0UGFyc2VyKTsKIAogZGllKCdNdXN0IHNwZWNpZnkgI2RlZmluZSBtYWNyb3MgdXNp
bmcgLS1kZWZpbmVzLicpIHVubGVzcyBkZWZpbmVkKCRkZWZpbmVzKTsKIGRpZSgnTXVzdCBzcGVj
aWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUuJykg
dW5sZXNzIGRlZmluZWQoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKTsKQEAgLTY3LDcgKzgy
LDggQEAgZGllKCdNdXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLQogZGllKCdNdXN0
IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUgdXNpbmcgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRwYWlu
dFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUpOwogZGllKCdNdXN0IHNwZWNpZnkg
YW4gb3V0cHV0IGZpbGUgdXNpbmcgLS10ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlLicp
IHVubGVzcyBkZWZpbmVkKCR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKSB8fCAhZGVm
aW5lZCgkdGVzdEdsb2JhbENvbnRleHROYW1lKTsKLWRpZSgnTXVzdCBzcGVjaWZ5IHRoZSBmaWxl
IGxpc3RpbmcgYWxsIElETHMgdXNpbmcgLS1pZGxGaWxlc0xpc3QuJykgdW5sZXNzIGRlZmluZWQo
JGlkbEZpbGVzTGlzdCk7CitkaWUoJ011c3Qgc3BlY2lmeSB0aGUgZmlsZSBsaXN0aW5nIGFsbCBJ
RExzIHVzaW5nIC0taWRsRmlsZU5hbWVzTGlzdC4nKSB1bmxlc3MgZGVmaW5lZCgkaWRsRmlsZU5h
bWVzTGlzdCk7CitkaWUoJ011c3Qgc3BlY2lmeSBJREwgYXR0cmlidXRlcyBmaWxlIHVzaW5nIC0t
aWRsQXR0cmlidXRlc0ZpbGUuJykgdW5sZXNzIGRlZmluZWQoJGlkbEF0dHJpYnV0ZXNGaWxlKTsK
IAogJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBw
bGVtZW50YWxEZXBlbmRlbmN5RmlsZSk7CiAkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSA9IEN5Z3dp
blBhdGhJZk5lZWRlZCgkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSk7CkBAIC03OSwxMyArOTUsMzUg
QEAgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBDeQogJHBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSA9IEN5Z3dpblBhdGhJZk5lZWRlZCgkcGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlKTsKICRzdXBwbGVtZW50YWxNYWtlZmls
ZURlcHMgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcykgaWYg
ZGVmaW5lZCgkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKTsKIAotbXkgQGlkbEZpbGVzOwotb3Bl
bihteSAkZmgsICc8JywgJGlkbEZpbGVzTGlzdCkgb3IgZGllICJDYW5ub3Qgb3BlbiAkaWRsRmls
ZXNMaXN0IjsKLUBpZGxGaWxlcyA9IG1hcCB7IEN5Z3dpblBhdGhJZk5lZWRlZChzL1xyP1xuPyQv
L3IpIH0gPCRmaD47CitteSBAaWRsRmlsZU5hbWVzOworb3BlbihteSAkZmgsICc8JywgJGlkbEZp
bGVOYW1lc0xpc3QpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVOYW1lc0xpc3QiOworQGlk
bEZpbGVOYW1lcyA9IG1hcCB7IEN5Z3dpblBhdGhJZk5lZWRlZChzL1xyP1xuPyQvL3IpIH0gPCRm
aD47CiBjbG9zZSgkZmgpIG9yIGRpZTsKIAotbXkgJWludGVyZmFjZU5hbWVUb0lkbEZpbGU7Ci1t
eSAlaWRsRmlsZVRvSW50ZXJmYWNlTmFtZTsKK215ICRpZGxBdHRyaWJ1dGVzOworaWYgKCR2YWxp
ZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICBteSAkaW5wdXQ7CisgICAgeworICAgICAgICBsb2Nh
bCAkSU5QVVRfUkVDT1JEX1NFUEFSQVRPUjsKKyAgICAgICAgb3BlbihKU09OLCAiPCIsICRpZGxB
dHRyaWJ1dGVzRmlsZSkgb3IgZGllICJDb3VsZG4ndCBvcGVuICRpZGxBdHRyaWJ1dGVzRmlsZTog
JCEiOworICAgICAgICAkaW5wdXQgPSA8SlNPTj47CisgICAgICAgIGNsb3NlKEpTT04pOworICAg
IH0KKworICAgIG15ICRqc29uRGVjb2RlciA9IEpTT046OlBQLT5uZXctPnV0Zjg7CisgICAgbXkg
JGpzb25IYXNoUmVmID0gJGpzb25EZWNvZGVyLT5kZWNvZGUoJGlucHV0KTsKKyAgICAkaWRsQXR0
cmlidXRlcyA9ICRqc29uSGFzaFJlZi0+e2F0dHJpYnV0ZXN9OworfQorCitzdHJ1Y3QoIElETEZp
bGUgPT4geworICAgIGZpbGVOYW1lID0+ICckJywKKyAgICBmaWxlQ29udGVudHMgPT4gJyQnLAor
ICAgIHByaW1hcnlEZWNsYXJhdGlvbk5hbWUgPT4gJyQnLAorICAgIHBhcnNlZERvY3VtZW50ID0+
ICckJworfSk7CisKK215ICVpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aDsKK215ICVpZGxGaWxl
UGF0aFRvSW50ZXJmYWNlTmFtZTsKIG15ICVzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXM7CiBteSAl
ZGljdGlvbmFyeURlcGVuZGVuY2llczsKIG15ICVzdXBwbGVtZW50YWxzOwpAQCAtMTEyLDIzICsx
NTAsMjUgQEAgcHVibGljOgogICAgIERPTUlzb1N1YnNwYWNlcygpID0gZGVmYXVsdDsKIEVORAog
Ci0jIEdldCByaWQgb2YgZHVwbGljYXRlcyBpbiBpZGxGaWxlcyBhcnJheS4KLW15ICVpZGxGaWxl
SGFzaCA9IG1hcCB7ICRfLCAxIH0gQGlkbEZpbGVzOworIyBHZXQgcmlkIG9mIGR1cGxpY2F0ZXMg
aW4gaWRsRmlsZU5hbWVzIGFycmF5LgorbXkgJWlkbEZpbGVOYW1lSGFzaCA9IG1hcCB7ICRfLCAx
IH0gQGlkbEZpbGVOYW1lczsKIAotIyBQb3B1bGF0ZSAkaWRsRmlsZVRvSW50ZXJmYWNlTmFtZSBh
bmQgJGludGVyZmFjZU5hbWVUb0lkbEZpbGUuCi1mb3JlYWNoIG15ICRpZGxGaWxlIChzb3J0IGtl
eXMgJWlkbEZpbGVIYXNoKSB7Ci0gICAgbXkgJGZ1bGxQYXRoID0gQ3dkOjpyZWFscGF0aCgkaWRs
RmlsZSk7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSBmaWxlcGFyc2UoYmFzZW5hbWUoJGlkbEZp
bGUpLCAiLmlkbCIpOwotICAgICRpZGxGaWxlVG9JbnRlcmZhY2VOYW1leyRmdWxsUGF0aH0gPSAk
aW50ZXJmYWNlTmFtZTsKLSAgICAkaW50ZXJmYWNlTmFtZVRvSWRsRmlsZXskaW50ZXJmYWNlTmFt
ZX0gPSAkZnVsbFBhdGg7CisjIFBvcHVsYXRlICRpZGxGaWxlUGF0aFRvSW50ZXJmYWNlTmFtZSBh
bmQgJGludGVyZmFjZU5hbWVUb0lkbEZpbGVQYXRoLgorZm9yZWFjaCBteSAkaWRsRmlsZU5hbWUg
KHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNoKSB7CisgICAgbXkgJGZ1bGxQYXRoID0gQ3dkOjpy
ZWFscGF0aCgkaWRsRmlsZU5hbWUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gZmlsZXBhcnNl
KGJhc2VuYW1lKCRpZGxGaWxlTmFtZSksICIuaWRsIik7CisgICAgJGlkbEZpbGVQYXRoVG9JbnRl
cmZhY2VOYW1leyRmdWxsUGF0aH0gPSAkaW50ZXJmYWNlTmFtZTsKKyAgICAkaW50ZXJmYWNlTmFt
ZVRvSWRsRmlsZVBhdGh7JGludGVyZmFjZU5hbWV9ID0gJGZ1bGxQYXRoOwogfQogCiAjIFBhcnNl
IGFsbCBJREwgZmlsZXMuCi1mb3JlYWNoIG15ICRpZGxGaWxlIChzb3J0IGtleXMgJWlkbEZpbGVI
YXNoKSB7Ci0gICAgbXkgJGZ1bGxQYXRoID0gQ3dkOjpyZWFscGF0aCgkaWRsRmlsZSk7Ci0gICAg
bXkgJGlkbEZpbGVDb250ZW50cyA9IGdldEZpbGVDb250ZW50cygkZnVsbFBhdGgpOworZm9yZWFj
aCBteSAkaWRsRmlsZU5hbWUgKHNvcnQga2V5cyAlaWRsRmlsZU5hbWVIYXNoKSB7CisgICAgbXkg
JGZ1bGxQYXRoID0gQ3dkOjpyZWFscGF0aCgkaWRsRmlsZU5hbWUpOworICAgIAorICAgIG15ICRp
ZGxGaWxlID0gcHJvY2Vzc0lETCgkaWRsRmlsZU5hbWUsICRmdWxsUGF0aCk7CisKICAgICAjIEhh
bmRsZSBwYXJ0aWFsIG5hbWVzLgotICAgIG15ICRwYXJ0aWFsTmFtZXMgPSBnZXRQYXJ0aWFsTmFt
ZXNGcm9tSURMKCRpZGxGaWxlQ29udGVudHMpOworICAgIG15ICRwYXJ0aWFsTmFtZXMgPSBnZXRQ
YXJ0aWFsTmFtZXNGcm9tSURMKCRpZGxGaWxlKTsKICAgICBpZiAoQHskcGFydGlhbE5hbWVzfSkg
ewogICAgICAgICAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRmdWxsUGF0aH0gPSAkcGFydGlh
bE5hbWVzOwogICAgICAgICBuZXh0OwpAQCAtMTM2LDMxICsxNzYsMzQgQEAgZm9yZWFjaCBteSAk
aWRsRmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSAogCiAgICAgJHN1cHBsZW1lbnRhbHN7JGZ1bGxQ
YXRofSA9IFtdOwogCi0gICAgdXBkYXRlRGljdGlvbmFyeURlcGVuZGVuY2llcygkaWRsRmlsZUNv
bnRlbnRzLCAkaWRsRmlsZSk7CisgICAgbXkgJGJhc2VEaWN0aW9uYXJpZXMgPSBnZXRVbmRlZmlu
ZWRCYXNlRGljdGlvbmFyaWVzRnJvbUlETCgkaWRsRmlsZSk7CisgICAgaWYgKEB7JGJhc2VEaWN0
aW9uYXJpZXN9KSB7CisgICAgICAgICRkaWN0aW9uYXJ5RGVwZW5kZW5jaWVzeyRpZGxGaWxlLT5w
cmltYXJ5RGVjbGFyYXRpb25OYW1lfSA9IChqb2luKCIuaWRsICIsIEB7JGJhc2VEaWN0aW9uYXJp
ZXN9KSAuICIuaWRsIik7CisgICAgfQogCiAgICAgIyBTa2lwIGlmIHRoZSBJREwgZmlsZSBkb2Vz
IG5vdCBjb250YWluIGFuIGludGVyZmFjZSBvciBhIGNhbGxiYWNrIGludGVyZmFjZS4KICAgICAj
IFRoZSBJREwgbWF5IGNvbnRhaW4gYSBkaWN0aW9uYXJ5LgotICAgIG5leHQgdW5sZXNzIGNvbnRh
aW5zSW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAgICBuZXh0IHVubGVzcyBj
b250YWluc0ludGVyZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlKTsKIAot
ICAgIG15ICRpbnRlcmZhY2VOYW1lID0gZmlsZXBhcnNlKGJhc2VuYW1lKCRpZGxGaWxlKSwgIi5p
ZGwiKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpZGxGaWxlLT5wcmltYXJ5RGVjbGFyYXRp
b25OYW1lOwogICAgICMgSGFuZGxlIGluY2x1ZGUgc3RhdGVtZW50cy4KLSAgICBteSAkaW5jbHVk
ZWRJbnRlcmZhY2VzID0gZ2V0SW5jbHVkZWRJbnRlcmZhY2VzRnJvbUlETCgkaWRsRmlsZUNvbnRl
bnRzLCAkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgJGluY2x1ZGVkSW50ZXJmYWNlcyA9IGdldElu
Y2x1ZGVkSW50ZXJmYWNlc0Zyb21JREwoJGlkbEZpbGUsICRpbnRlcmZhY2VOYW1lKTsKICAgICBm
b3JlYWNoIG15ICRpbmNsdWRlZEludGVyZmFjZSAoQHskaW5jbHVkZWRJbnRlcmZhY2VzfSkgewot
ICAgICAgICBteSAkaW5jbHVkZWRJZGxGaWxlID0gJGludGVyZmFjZU5hbWVUb0lkbEZpbGV7JGlu
Y2x1ZGVkSW50ZXJmYWNlfTsKLSAgICAgICAgZGllICJDb3VsZCBub3QgZmluZCBhIHRoZSBJREwg
ZmlsZSB3aGVyZSB0aGUgZm9sbG93aW5nIGluY2x1ZGVkIGludGVyZmFjZSBpcyBkZWZpbmVkOiAk
aW5jbHVkZWRJbnRlcmZhY2UiIHVubGVzcyAkaW5jbHVkZWRJZGxGaWxlOwotICAgICAgICBpZiAo
JHN1cHBsZW1lbnRhbERlcGVuZGVuY2llc3skaW5jbHVkZWRJZGxGaWxlfSkgewotICAgICAgICAg
ICAgcHVzaChAeyRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXN7JGluY2x1ZGVkSWRsRmlsZX19LCAk
aW50ZXJmYWNlTmFtZSk7CisgICAgICAgIG15ICRpbmNsdWRlZElkbEZpbGVQYXRoID0gJGludGVy
ZmFjZU5hbWVUb0lkbEZpbGVQYXRoeyRpbmNsdWRlZEludGVyZmFjZX07CisgICAgICAgIGRpZSAi
Q291bGQgbm90IGZpbmQgYSB0aGUgSURMIGZpbGUgd2hlcmUgdGhlIGZvbGxvd2luZyBpbmNsdWRl
ZCBpbnRlcmZhY2UgaXMgZGVmaW5lZDogJGluY2x1ZGVkSW50ZXJmYWNlIiB1bmxlc3MgJGluY2x1
ZGVkSWRsRmlsZVBhdGg7CisgICAgICAgIGlmICgkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRp
bmNsdWRlZElkbEZpbGVQYXRofSkgeworICAgICAgICAgICAgcHVzaChAeyRzdXBwbGVtZW50YWxE
ZXBlbmRlbmNpZXN7JGluY2x1ZGVkSWRsRmlsZVBhdGh9fSwgJGludGVyZmFjZU5hbWUpOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgJHN1cHBsZW1lbnRhbERlcGVuZGVuY2llc3skaW5j
bHVkZWRJZGxGaWxlfSA9IFskaW50ZXJmYWNlTmFtZV07CisgICAgICAgICAgICAkc3VwcGxlbWVu
dGFsRGVwZW5kZW5jaWVzeyRpbmNsdWRlZElkbEZpbGVQYXRofSA9IFskaW50ZXJmYWNlTmFtZV07
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBuZXh0IGlmIGlzTWl4aW5JbnRlcmZhY2VGcm9tSURM
KCRpZGxGaWxlQ29udGVudHMpOworICAgIG5leHQgaWYgaXNNaXhpbkludGVyZmFjZUZyb21JREwo
JGlkbEZpbGUpOwogCi0gICAgbXkgJGlzQ2FsbGJhY2tJbnRlcmZhY2UgPSBpc0NhbGxiYWNrSW50
ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAgICBteSAkaXNDYWxsYmFja0ludGVy
ZmFjZSA9IGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlKTsKICAgICBpZiAoISRp
c0NhbGxiYWNrSW50ZXJmYWNlKSB7CiAgICAgICAgICRpc29TdWJzcGFjZXNIZWFkZXJDb2RlIC49
ICIgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SXNvU3Vic3BhY2U+IG1fc3Vic3BhY2VGb3Ike2lu
dGVyZmFjZU5hbWV9O1xuIjsKLSAgICAgICAgaWYgKGludGVyZmFjZUlzSXRlcmFibGUoJGlkbEZp
bGVDb250ZW50cykpIHsKKyAgICAgICAgaWYgKGNvbnRhaW5zSXRlcmFibGVJbnRlcmZhY2VGcm9t
SURMKCRpZGxGaWxlKSkgewogICAgICAgICAgICAgJGlzb1N1YnNwYWNlc0hlYWRlckNvZGUgLj0g
IiAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNDOjpJc29TdWJzcGFjZT4gbV9zdWJzcGFjZUZvciR7aW50
ZXJmYWNlTmFtZX1JdGVyYXRvcjtcbiI7CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzAsOSArMjEz
LDkgQEAgZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSAogICAgICMgLSBp
cyBhIG5vbi1jYWxsYmFjayBpbnRlcmZhY2UgdGhhdCBpcyBub3QgZGVjbGFyZWQgd2l0aCB0aGUg
W0xlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUsIGEgY29ycmVzcG9u
ZGluZwogICAgICMgICBwcm9wZXJ0eSBtdXN0IGV4aXN0IG9uIHRoZSBFQ01BU2NyaXB0IGVudmly
b25tZW50J3MgZ2xvYmFsIG9iamVjdC4KICAgICAjIFNlZSBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNlcy1pbnRlcmZhY2VzCi0gICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGdl
dEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21JREwoJGlkbEZpbGVDb250ZW50cyk7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRl
c0Zyb21JREwoJGlkbEZpbGUpOwogICAgIGlmIChzaG91bGRFeHBvc2VJbnRlcmZhY2UoJGV4dGVu
ZGVkQXR0cmlidXRlcykpIHsKLSAgICAgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSB8fCBp
bnRlcmZhY2VIYXNDb25zdGFudEF0dHJpYnV0ZSgkaWRsRmlsZUNvbnRlbnRzKSkgeworICAgICAg
ICBpZiAoISRpc0NhbGxiYWNrSW50ZXJmYWNlIHx8IGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0
YW50c0Zyb21JREwoJGlkbEZpbGUpKSB7CiAgICAgICAgICAgICBteSAkZXhwb3NlZEF0dHJpYnV0
ZSA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXhwb3NlZCJ9IHx8ICR0ZXN0R2xvYmFsQ29udGV4
dE5hbWUgfHwgIldpbmRvdyI7CiAgICAgICAgICAgICAkZXhwb3NlZEF0dHJpYnV0ZSA9IHN1YnN0
cigkZXhwb3NlZEF0dHJpYnV0ZSwgMSwgLTEpIGlmIHN1YnN0cigkZXhwb3NlZEF0dHJpYnV0ZSwg
MCwgMSkgZXEgIigiOwogICAgICAgICAgICAgbXkgQGdsb2JhbENvbnRleHRzID0gc3BsaXQoIiwi
LCAkZXhwb3NlZEF0dHJpYnV0ZSk7CkBAIC0xOTMsNyArMjM2LDcgQEAgZm9yZWFjaCBteSAkaWRs
RmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSAogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRnbG9i
YWxDb250ZXh0IGVxICR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpIHsKICAgICAgICAgICAgICAgICAg
ICAgJHRlc3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUgLj0gJGF0dHJpYnV0ZUNvZGU7CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllICJVbnN1cHBv
cnRlZCBnbG9iYWwgY29udGV4dCAnJGdsb2JhbENvbnRleHQnIHVzZWQgaW4gW0V4cG9zZWRdIGF0
ICRpZGxGaWxlIjsKKyAgICAgICAgICAgICAgICAgICAgZGllICJVbnN1cHBvcnRlZCBnbG9iYWwg
Y29udGV4dCAnJGdsb2JhbENvbnRleHQnIHVzZWQgaW4gW0V4cG9zZWRdIGF0ICRpZGxGaWxlTmFt
ZSI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgJHdpbmRv
d0NvbnN0cnVjdG9yc0NvZGUgLj0gJHdpbmRvd0FsaWFzZXMgaWYgJHdpbmRvd0FsaWFzZXM7CkBA
IC0yMTEsMTMgKzI1NCwxMyBAQCBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoIlBhaW50V29ya2xl
dEdsCiBHZW5lcmF0ZVBhcnRpYWxJbnRlcmZhY2UoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSwgJHRl
c3RHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0NvZGUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlKSBpZiBkZWZpbmVkKCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUpOwogCiAjIFJlc29sdmVz
IHBhcnRpYWwgaW50ZXJmYWNlcyBhbmQgaW5jbHVkZSBkZXBlbmRlbmNpZXMuCi1mb3JlYWNoIG15
ICRpZGxGaWxlIChzb3J0IGtleXMgJXN1cHBsZW1lbnRhbERlcGVuZGVuY2llcykgewotICAgIG15
ICRiYXNlRmlsZXMgPSAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRpZGxGaWxlfTsKK2ZvcmVh
Y2ggbXkgJGlkbEZpbGVQYXRoIChzb3J0IGtleXMgJXN1cHBsZW1lbnRhbERlcGVuZGVuY2llcykg
eworICAgIG15ICRiYXNlRmlsZXMgPSAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRpZGxGaWxl
UGF0aH07CiAgICAgZm9yZWFjaCBteSAkYmFzZUZpbGUgKEB7JGJhc2VGaWxlc30pIHsKLSAgICAg
ICAgbXkgJHRhcmdldElkbEZpbGUgPSAkaW50ZXJmYWNlTmFtZVRvSWRsRmlsZXskYmFzZUZpbGV9
IG9yIGRpZSAiJHtiYXNlRmlsZX0uaWRsIG5vdCBmb3VuZCwgYnV0IGl0IGlzIHN1cHBsZW1lbnRl
ZCBieSAkaWRsRmlsZSI7Ci0gICAgICAgIHB1c2goQHskc3VwcGxlbWVudGFsc3skdGFyZ2V0SWRs
RmlsZX19LCAkaWRsRmlsZSk7CisgICAgICAgIG15ICR0YXJnZXRJZGxGaWxlUGF0aCA9ICRpbnRl
cmZhY2VOYW1lVG9JZGxGaWxlUGF0aHskYmFzZUZpbGV9IG9yIGRpZSAiJHtiYXNlRmlsZX0uaWRs
IG5vdCBmb3VuZCwgYnV0IGl0IGlzIHN1cHBsZW1lbnRlZCBieSAkaWRsRmlsZVBhdGgiOworICAg
ICAgICBwdXNoKEB7JHN1cHBsZW1lbnRhbHN7JHRhcmdldElkbEZpbGVQYXRofX0sICRpZGxGaWxl
UGF0aCk7CiAgICAgfQotICAgIGRlbGV0ZSAkc3VwcGxlbWVudGFsc3skaWRsRmlsZX07CisgICAg
ZGVsZXRlICRzdXBwbGVtZW50YWxzeyRpZGxGaWxlUGF0aH07CiB9CiAKIGlmICgkaXNvU3Vic3Bh
Y2VzSGVhZGVyRmlsZSkgewpAQCAtMjM4LDE3ICsyODEsMTcgQEAgaWYgKCRpc29TdWJzcGFjZXNI
ZWFkZXJGaWxlKSB7CiAjIERvY3VtZW50LmlkbCBpcyBzdXBwbGVtZW50ZWQgYnkgUy5pZGwsIGFu
ZCBFdmVudC5pZGwgaXMgc3VwcGxlbWVudGVkIGJ5IG5vIElETHMuCiAjIFRoZSBJREwgdGhhdCBz
dXBwbGVtZW50cyBhbm90aGVyIElETCAoZS5nLiBQLmlkbCkgbmV2ZXIgYXBwZWFycyBpbiB0aGUg
ZGVwZW5kZW5jeSBmaWxlLgogbXkgJGRlcGVuZGVuY2llcyA9ICIiOwotZm9yZWFjaCBteSAkaWRs
RmlsZSAoc29ydCBrZXlzICVzdXBwbGVtZW50YWxzKSB7Ci0gICAgJGRlcGVuZGVuY2llcyAuPSAi
JGlkbEZpbGUgQHskc3VwcGxlbWVudGFsc3skaWRsRmlsZX19XG4iOworZm9yZWFjaCBteSAkaWRs
RmlsZVBhdGggKHNvcnQga2V5cyAlc3VwcGxlbWVudGFscykgeworICAgICRkZXBlbmRlbmNpZXMg
Lj0gIiRpZGxGaWxlUGF0aCBAeyRzdXBwbGVtZW50YWxzeyRpZGxGaWxlUGF0aH19XG4iOwogfQog
V3JpdGVGaWxlSWZDaGFuZ2VkKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwgJGRlcGVuZGVu
Y2llcyk7CiAKIGlmICgkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzKSB7CiAgICAgbXkgJG1ha2Vm
aWxlRGVwcyA9ICIjIFN1cHBsZW1lbnRhbCBkZXBlbmRlbmNpZXNcbiI7Ci0gICAgZm9yZWFjaCBt
eSAkaWRsRmlsZSAoc29ydCBrZXlzICVzdXBwbGVtZW50YWxzKSB7Ci0gICAgICAgIG15ICRiYXNl
bmFtZSA9ICRpZGxGaWxlVG9JbnRlcmZhY2VOYW1leyRpZGxGaWxlfTsKKyAgICBmb3JlYWNoIG15
ICRpZGxGaWxlUGF0aCAoc29ydCBrZXlzICVzdXBwbGVtZW50YWxzKSB7CisgICAgICAgIG15ICRi
YXNlbmFtZSA9ICRpZGxGaWxlUGF0aFRvSW50ZXJmYWNlTmFtZXskaWRsRmlsZVBhdGh9OwogCi0g
ICAgICAgIG15IEBkZXBlbmRlbmN5TGlzdCA9IG1hcCB7IGJhc2VuYW1lKCRfKSB9IEB7JHN1cHBs
ZW1lbnRhbHN7JGlkbEZpbGV9fTsKKyAgICAgICAgbXkgQGRlcGVuZGVuY3lMaXN0ID0gbWFwIHsg
YmFzZW5hbWUoJF8pIH0gQHskc3VwcGxlbWVudGFsc3skaWRsRmlsZVBhdGh9fTsKICAgICAgICAg
bXkgQGRlcGVuZGVuY2llcyA9IHNvcnQoa2V5cyAle3sgbWFweyRfPT4xfUBkZXBlbmRlbmN5TGlz
dH19KTsKIAogICAgICAgICAkbWFrZWZpbGVEZXBzIC49ICJKUyR7YmFzZW5hbWV9Lmg6IEB7ZGVw
ZW5kZW5jaWVzfVxuIjsKQEAgLTMwMSw3ICszNDQsNyBAQCBzdWIgR2VuZXJhdGVQYXJ0aWFsSW50
ZXJmYWNlCiAgICAgV3JpdGVGaWxlSWZDaGFuZ2VkKCRkZXN0aW5hdGlvbkZpbGUsICRjb250ZW50
cyk7CiAKICAgICBteSAkZnVsbFBhdGggPSBDd2Q6OnJlYWxwYXRoKCRkZXN0aW5hdGlvbkZpbGUp
OwotICAgICRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXN7JGZ1bGxQYXRofSA9IFskaW50ZXJmYWNl
TmFtZV0gaWYgJGludGVyZmFjZU5hbWVUb0lkbEZpbGV7JGludGVyZmFjZU5hbWV9OworICAgICRz
dXBwbGVtZW50YWxEZXBlbmRlbmNpZXN7JGZ1bGxQYXRofSA9IFskaW50ZXJmYWNlTmFtZV0gaWYg
JGludGVyZmFjZU5hbWVUb0lkbEZpbGVQYXRoeyRpbnRlcmZhY2VOYW1lfTsKIH0KIAogc3ViIEdl
bmVyYXRlQ29uc3RydWN0b3JBdHRyaWJ1dGVzCkBAIC0zNTEsMjcgKzM5NCw3MSBAQCBzdWIgR2Vu
ZXJhdGVDb25zdHJ1Y3RvckF0dHJpYnV0ZXMKICAgICByZXR1cm4gKCRjb2RlLCAkd2luZG93QWxp
YXNlc0NvZGUpOwogfQogCi1zdWIgZ2V0RmlsZUNvbnRlbnRzCitzdWIgcHJvY2Vzc0lETAogewot
ICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisgICAgbXkgJGZpbGVOYW1lID0gc2hpZnQ7CisgICAg
bXkgJGZpbGVQYXRoID0gc2hpZnQ7CiAKLSAgICBvcGVuIG15ICRmaWxlLCAiPCIsICRpZGxGaWxl
IG9yIGRpZSAiQ291bGQgbm90IG9wZW4gJGlkbEZpbGUgZm9yIHJlYWRpbmc6ICQhIjsKKyAgICBt
eSAkaWRsRmlsZSA9IElETEZpbGUtPm5ldygpOworICAgICRpZGxGaWxlLT5maWxlTmFtZSgkZmls
ZU5hbWUpOworICAgIAorICAgIG15ICRwcmltYXJ5RGVjbGFyYXRpb25OYW1lID0gZmlsZXBhcnNl
KGJhc2VuYW1lKCRmaWxlTmFtZSksICIuaWRsIik7CisgICAgJGlkbEZpbGUtPnByaW1hcnlEZWNs
YXJhdGlvbk5hbWUoJHByaW1hcnlEZWNsYXJhdGlvbk5hbWUpOworCisgICAgb3BlbiBteSAkZmls
ZSwgIjwiLCAkZmlsZVBhdGggb3IgZGllICJDb3VsZCBub3Qgb3BlbiAkaWRsRmlsZSBmb3IgcmVh
ZGluZzogJCEiOwogICAgIG15IEBsaW5lcyA9IDwkZmlsZT47CiAgICAgY2xvc2UgJGZpbGU7CiAK
KyAgICAjIEZJWE1FOiBJdCB3b3VsZCBiZSB1c2VmdWwgdG8gcmVtb3ZlIGFsbCBjL2MrKyBzdHls
ZSBjb21tZW50cyBhcyB3ZWxsIHRvIHJlZHVjZSBmYWxzZSBwYXJzZXMuIFBlcmhhcHMgd2UgY2Fu
IHVzZSBwcmVwcm9jZXNzb3IucG0gaWYgaXQgaXMgbm90IHRvbyBleHBlbnNpdmUuCiAgICAgIyBG
aWx0ZXIgb3V0IHByZXByb2Nlc3NvciBsaW5lcy4KICAgICBAbGluZXMgPSBncmVwKCEvXlxzKiMv
LCBAbGluZXMpOwogCi0gICAgcmV0dXJuIGpvaW4oJycsIEBsaW5lcyk7CisgICAgJGlkbEZpbGUt
PmZpbGVDb250ZW50cyhqb2luKCcnLCBAbGluZXMpKTsKKworICAgIGlmICgkdmFsaWRhdGVBZ2Fp
bnN0UGFyc2VyKSB7CisgICAgICAgIG15ICRwYXJzZXIgPSBJRExQYXJzZXItPm5ldygxKTsKKyAg
ICAgICAgJGlkbEZpbGUtPnBhcnNlZERvY3VtZW50KCRwYXJzZXItPlBhcnNlKCRmaWxlUGF0aCwg
JGRlZmluZXMsICRwcmVwcm9jZXNzb3IsICRpZGxBdHRyaWJ1dGVzKSk7CisgICAgfQorCisgICAg
cmV0dXJuICRpZGxGaWxlOwogfQogCiBzdWIgZ2V0UGFydGlhbE5hbWVzRnJvbUlETAogewotICAg
IG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKKyAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OworCisg
ICAgbXkgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29udGVudHM7CisKICAgICBteSBA
cGFydGlhbE5hbWVzID0gKCk7Ci0gICAgd2hpbGUgKCRmaWxlQ29udGVudHMgPX4gL3BhcnRpYWxc
cysoaW50ZXJmYWNlfGRpY3Rpb25hcnkpXHMrKFx3KykvbWcpIHsKKyAgICB3aGlsZSAoJGZpbGVD
b250ZW50cyA9fiAvcGFydGlhbFxzKyhpbnRlcmZhY2V8ZGljdGlvbmFyeXxuYW1lc3BhY2UpXHMr
KFx3KykvbWcpIHsKICAgICAgICAgcHVzaChAcGFydGlhbE5hbWVzLCAkMik7CiAgICAgfQorICAg
IAorICAgIGlmICgkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgICAgIHByaW50KCJWYWxp
ZGF0aW5nIGdldFBhcnRpYWxOYW1lc0Zyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSBAcGFydGlh
bHNGcm9tUGFyc2VkRG9jdW1lbnQgPSAoKTsKKyAgICAgICAgZm9yZWFjaCBteSAkaW50ZXJmYWNl
IChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW50ZXJmYWNlc30pIHsKKyAgICAgICAgICAg
IHB1c2goQHBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50LCAkaW50ZXJmYWNlLT50eXBlLT5uYW1l
KSBpZiAkaW50ZXJmYWNlLT5pc1BhcnRpYWw7CisgICAgICAgIH0KKyAgICAgICAgZm9yZWFjaCBt
eSAkZGljdGlvbmFyeSAoQHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQtPmRpY3Rpb25hcmllc30p
IHsKKyAgICAgICAgICAgIHB1c2goQHBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50LCAkZGljdGlv
bmFyeS0+dHlwZS0+bmFtZSkgaWYgJGRpY3Rpb25hcnktPmlzUGFydGlhbDsKKyAgICAgICAgfQor
ICAgICAgICBmb3JlYWNoIG15ICRuYW1lc3BhY2UgKEB7JGlkbEZpbGUtPnBhcnNlZERvY3VtZW50
LT5uYW1lc3BhY2VzfSkgeworICAgICAgICAgICAgcHVzaChAcGFydGlhbHNGcm9tUGFyc2VkRG9j
dW1lbnQsICRuYW1lc3BhY2UtPm5hbWUpIGlmICRuYW1lc3BhY2UtPmlzUGFydGlhbDsKKyAgICAg
ICAgfQorCisgICAgICAgIG15IEBzb3J0ZWRQYXJ0aWFsTmFtZXMgPSBzb3J0IEBwYXJ0aWFsTmFt
ZXM7CisgICAgICAgIG15IEBzb3J0ZWRQYXJ0aWFsc0Zyb21QYXJzZWREb2N1bWVudCA9IHNvcnQg
QHBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50OworCisgICAgICAgIGxvY2FsICREYXRhOjpEdW1w
ZXI6OlRlcnNlID0gMTsKKyAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6SW5kZW50ID0gMDsK
KyAgICAgICAgdW5sZXNzIChAc29ydGVkUGFydGlhbE5hbWVzIH5+IEBzb3J0ZWRQYXJ0aWFsc0Zy
b21QYXJzZWREb2N1bWVudCkgeworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBQYXJ0aWFsIGRl
Y2xhcmF0aW9ucyBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1w
ZXIoQHNvcnRlZFBhcnRpYWxOYW1lcykgLiAiKSBkb24ndCBtYXRjaCB0aG9zZSBmcm9tIHZhbGlk
YXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRQYXJ0aWFsc0Zyb21QYXJzZWREb2N1bWVu
dCkgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAgICAg
ICAgcHJpbnQgIlNVQ0NFU1MhIFBhcnRpYWwgZGVjbGFyYXRpb25zIGZyb20gcmVndWxhciBleHBy
ZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkUGFydGlhbE5hbWVzKSAuICIp
IG1hdGNoIHRob3NlIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZFBh
cnRpYWxzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpLlxuIjsKKyAgICB9CisgICAgCiAgICAgcmV0
dXJuIFxAcGFydGlhbE5hbWVzOwogfQogCkBAIC0zNzksNDIgKzQ2NiwxNjcgQEAgc3ViIGdldFBh
cnRpYWxOYW1lc0Zyb21JREwKICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW5j
bHVkZXMtc3RhdGVtZW50CiBzdWIgZ2V0SW5jbHVkZWRJbnRlcmZhY2VzRnJvbUlETAogewotICAg
IG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKKyAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OwogICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlk
bEZpbGUtPmZpbGVDb250ZW50czsKKwogICAgIG15IEBpbmNsdWRlZEludGVyZmFjZXMgPSAoKTsK
ICAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9fiAvXlxzKihcdyspXHMraW5jbHVkZXNccysoXHcr
KVxzKjsvbWcpIHsKICAgICAgICAgZGllICJJZGVudGlmaWVyIG9uIHRoZSBsZWZ0IG9mIHRoZSAn
aW5jbHVkZXMnIHN0YXRlbWVudCBzaG91bGQgYmUgJGludGVyZmFjZU5hbWUgaW4gJGludGVyZmFj
ZU5hbWUuaWRsLCBidXQgZm91bmQgJDEiIGlmICQxIG5lICRpbnRlcmZhY2VOYW1lOwogICAgICAg
ICBwdXNoKEBpbmNsdWRlZEludGVyZmFjZXMsICQyKTsKICAgICB9CisKKyAgICBpZiAoJHZhbGlk
YXRlQWdhaW5zdFBhcnNlcikgeworICAgICAgICBwcmludCgiVmFsaWRhdGluZyBnZXRJbmNsdWRl
ZEludGVyZmFjZXNGcm9tSURMIGZvciAiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0
IHZhbGlkYXRpb24gcGFyc2VyLlxuIik7CisKKyAgICAgICAgbXkgQGluY2x1ZGVkSW50ZXJmYWNl
c0Zyb21QYXJzZWREb2N1bWVudCA9ICgpOworICAgICAgICBmb3JlYWNoIG15ICRpbmNsdWRlIChA
eyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW5jbHVkZXN9KSB7CisgICAgICAgICAgICBwdXNo
KEBpbmNsdWRlZEludGVyZmFjZXNGcm9tUGFyc2VkRG9jdW1lbnQsICRpbmNsdWRlLT5taXhpbklk
ZW50aWZpZXIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50ZXJm
YWNlcyA9IHNvcnQgQGluY2x1ZGVkSW50ZXJmYWNlczsKKyAgICAgICAgbXkgQHNvcnRlZEluY2x1
ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCA9IHNvcnQgQGluY2x1ZGVkSW50ZXJmYWNl
c0Zyb21QYXJzZWREb2N1bWVudDsKKworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpUZXJz
ZSA9IDE7CisgICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CisKKyAgICAg
ICAgdW5sZXNzIChAc29ydGVkSW5jbHVkZWRJbnRlcmZhY2VzIH5+IEBzb3J0ZWRJbmNsdWRlZElu
dGVyZmFjZXNGcm9tUGFyc2VkRG9jdW1lbnQpIHsKKyAgICAgICAgICAgIGRpZSAiRkFJTFVSRTog
SW5jbHVkZWQgaW50ZXJmYWNlcyBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIg
KCIgLiBEdW1wZXIoQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcykgLiAiKSBkb24ndCBtYXRjaCB0
aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRJbmNsdWRlZElu
dGVyZmFjZXNGcm9tUGFyc2VkRG9jdW1lbnQpIC4gIikgWyIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiXSI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIEluY2x1ZGVkIGludGVy
ZmFjZXMgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gRHVtcGVyKEBz
b3J0ZWRJbmNsdWRlZEludGVyZmFjZXMpIC4gIikgbWF0Y2ggdGhvc2UgZnJvbSB2YWxpZGF0aW9u
IHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkSW5jbHVkZWRJbnRlcmZhY2VzRnJvbVBhcnNlZERv
Y3VtZW50KSAuICIpLlxuIjsKKyAgICB9CisKICAgICByZXR1cm4gXEBpbmNsdWRlZEludGVyZmFj
ZXMKIH0KIAogc3ViIGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMCiB7Ci0gICAgbXkgJGZpbGVD
b250ZW50cyA9IHNoaWZ0OwotICAgIHJldHVybiAoJGZpbGVDb250ZW50cyA9fiAvY2FsbGJhY2tc
cytpbnRlcmZhY2VccytcdysvZ3MpOworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBt
eSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKKyAgICBteSAkY29udGFp
bnNDYWxsYmFja0ludGVyZmFjZSA9ICgkZmlsZUNvbnRlbnRzID1+IC9jYWxsYmFja1xzK2ludGVy
ZmFjZVxzK1x3Ky9ncyk7CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgeworICAg
ICAgICBwcmludCgiVmFsaWRhdGluZyBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCBmb3IgIiAu
ICRpZGxGaWxlLT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOwor
CisgICAgICAgIG15ICRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50
ID0gMDsKKyAgICAgICAgZm9yZWFjaCBteSAkaW50ZXJmYWNlIChAeyRpZGxGaWxlLT5wYXJzZWRE
b2N1bWVudC0+aW50ZXJmYWNlc30pIHsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5pc0Nh
bGxiYWNrKSB7CisgICAgICAgICAgICAgICAgJGNvbnRhaW5zQ2FsbGJhY2tJbnRlcmZhY2VGcm9t
UGFyc2VkRG9jdW1lbnQgPSAxOworICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICB1bmxlc3MgKCRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNl
ID09ICRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ICkgeworICAg
ICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRlcm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhlcmUgaXMg
YSBjYWxsYmFjayBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2Vy
ICgiIC4gKCRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNlID8gIllFUyIgOiAiTk8iKSAuICIpIGRv
ZXNuJ3QgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJvbSB0aGUgdmFsaWRhdGlvbiBwYXJzZXIg
KCIgLiAoJGNvbnRhaW5zQ2FsbGJhY2tJbnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPyAiWUVT
IiA6ICJOTyIpIC4gIikgWyIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAiXS4iOworICAgICAgICB9
CisgICAgICAgIHByaW50ICJTVUNDRVNTISBEZXRlcm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhlcmUg
aXMgYSBjYWxsYmFjayBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFy
c2VyICgiIC4gKCRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNlID8gIllFUyIgOiAiTk8iKSAuICIp
IGRvZXMgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJvbSB0aGUgdmFsaWRhdGlvbiBwYXJzZXIg
KCIgLiAoJGNvbnRhaW5zQ2FsbGJhY2tJbnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPyAiWUVT
IiA6ICJOTyIpIC4gIikuXG4iOworICAgIH0KKworICAgIHJldHVybiAkY29udGFpbnNDYWxsYmFj
a0ludGVyZmFjZQogfQogCiBzdWIgaXNNaXhpbkludGVyZmFjZUZyb21JREwKIHsKLSAgICBteSAk
ZmlsZUNvbnRlbnRzID0gc2hpZnQ7Ci0gICAgcmV0dXJuICgkZmlsZUNvbnRlbnRzID1+IC9pbnRl
cmZhY2VccyttaXhpblxzK1x3Ky9ncyk7CisgICAgbXkgJGlkbEZpbGUgPSBzaGlmdDsKKworICAg
IG15ICRmaWxlQ29udGVudHMgPSAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzOworICAgIG15ICRjb250
YWluc01peGluSW50ZXJmYWNlID0gKCRmaWxlQ29udGVudHMgPX4gL2ludGVyZmFjZVxzK21peGlu
XHMrXHcrL2dzKTsKKworICAgIGlmICgkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgICAg
IHByaW50KCJWYWxpZGF0aW5nIGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMIGZvciAiIC4gJGlk
bEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0IHZhbGlkYXRpb24gcGFyc2VyLlxuIik7CisKKyAg
ICAgICAgbXkgJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPSAwOwor
ICAgICAgICBmb3JlYWNoIG15ICRpbnRlcmZhY2UgKEB7JGlkbEZpbGUtPnBhcnNlZERvY3VtZW50
LT5pbnRlcmZhY2VzfSkgeworICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmlzTWl4aW4pIHsK
KyAgICAgICAgICAgICAgICAkY29udGFpbnNNaXhpbkludGVyZmFjZUZyb21QYXJzZWREb2N1bWVu
dCA9IDE7CisgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIHVubGVzcyAoJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2UgPT0gJGNvbnRhaW5zTWl4
aW5JbnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgKSB7CisgICAgICAgICAgICBkaWUgIkZBSUxV
UkU6IERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBhIG1peGluIGludGVyZmFjZSBm
cm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zTWl4aW5J
bnRlcmZhY2UgPyAiWUVTIiA6ICJOTyIpIC4gIikgZG9lc24ndCBtYXRjaCB0aGUgZGV0ZXJtaW5h
dGlvbiBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRjb250YWluc01peGluSW50ZXJmYWNl
RnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpIFsiIC4gJGlkbEZpbGUtPmZp
bGVOYW1lIC4gIl0uIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCAiU1VDQ0VTUyEgRGV0ZXJt
aW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGEgbWl4aW4gaW50ZXJmYWNlIGZyb20gcmVndWxh
ciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuICgkY29udGFpbnNNaXhpbkludGVyZmFjZSA/
ICJZRVMiIDogIk5PIikgLiAiKSBkb2VzIG1hdGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdmFs
aWRhdGlvbiBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2VGcm9tUGFyc2VkRG9j
dW1lbnQgPyAiWUVTIiA6ICJOTyIpIC4gIikuXG4iOworICAgIH0KKworICAgIHJldHVybiAkY29u
dGFpbnNNaXhpbkludGVyZmFjZTsKIH0KIAotc3ViIGludGVyZmFjZUlzSXRlcmFibGUKK3N1YiBj
b250YWluc0l0ZXJhYmxlSW50ZXJmYWNlRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMg
PSBzaGlmdDsKLSAgICByZXR1cm4gKCRmaWxlQ29udGVudHMgPX4gL2l0ZXJhYmxlXHMqPFxzKlx3
K1xzKi9ncyk7CisgICAgbXkgJGlkbEZpbGUgPSBzaGlmdDsKKworICAgIG15ICRmaWxlQ29udGVu
dHMgPSAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzOworICAgIG15ICRjb250YWluc0l0ZXJhYmxlSW50
ZXJmYWNlID0gKCRmaWxlQ29udGVudHMgPX4gL2l0ZXJhYmxlXHMqPFxzKlx3K1xzKi9ncyk7CisK
KyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgeworICAgICAgICBwcmludCgiVmFsaWRh
dGluZyBjb250YWluc0l0ZXJhYmxlSW50ZXJmYWNlRnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5m
aWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOworCisgICAgICAgIG15
ICRjb250YWluc0l0ZXJhYmxlSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID0gMDsKKyAgICAg
ICAgZm9yZWFjaCBteSAkaW50ZXJmYWNlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW50
ZXJmYWNlc30pIHsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5pdGVyYWJsZSkgeworICAg
ICAgICAgICAgICAgICRjb250YWluc0l0ZXJhYmxlSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50
ID0gMTsKKyAgICAgICAgICAgICAgICBsYXN0OworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgdW5sZXNzICgkY29udGFpbnNJdGVyYWJsZUludGVyZmFjZSA9PSAkY29udGFpbnNJ
dGVyYWJsZUludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCApIHsKKyAgICAgICAgICAgIGRpZSAi
RkFJTFVSRTogRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGFuIGl0ZXJhYmxlIGlu
dGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRh
aW5zSXRlcmFibGVJbnRlcmZhY2UgPyAiWUVTIiA6ICJOTyIpIC4gIikgZG9lc24ndCBtYXRjaCB0
aGUgZGV0ZXJtaW5hdGlvbiBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRjb250YWluc0l0
ZXJhYmxlSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpIFsi
IC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIl0uIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCAi
U1VDQ0VTUyEgRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGFuIGl0ZXJhYmxlIGlu
dGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRh
aW5zSXRlcmFibGVJbnRlcmZhY2UgPyAiWUVTIiA6ICJOTyIpIC4gIikgZG9lcyBtYXRjaCB0aGUg
ZGV0ZXJtaW5hdGlvbiBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRjb250YWluc0l0ZXJh
YmxlSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpLlxuIjsK
KyAgICB9CisKKyAgICByZXR1cm4gJGNvbnRhaW5zSXRlcmFibGVJbnRlcmZhY2U7CiB9CiAKLXN1
YiBjb250YWluc0ludGVyZmFjZUZyb21JREwKK3N1YiBjb250YWluc0ludGVyZmFjZU9yQ2FsbGJh
Y2tJbnRlcmZhY2VGcm9tSURMCiB7Ci0gICAgbXkgJGZpbGVDb250ZW50cyA9IHNoaWZ0OworICAg
IG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUt
PmZpbGVDb250ZW50czsKKyAgICBteSAkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlID0gKCRmaWxlQ29udGVudHMgPX4gL1xiKGNhbGxiYWNrIGludGVyZmFjZXxpbnRlcmZhY2Up
XHMrKFx3KykvZ3MpOworCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAg
ICAgcHJpbnQoIlZhbGlkYXRpbmcgY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNl
RnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9u
IHBhcnNlci5cbiIpOworCisgICAgICAgIG15ICRjb250YWluc0ludGVyZmFjZU9yQ2FsbGJhY2tJ
bnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPSAoQHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQt
PmludGVyZmFjZXN9ID4gMCk7CiAKLSAgICByZXR1cm4gMSBpZiAkZmlsZUNvbnRlbnRzID1+IC9c
YmNhbGxiYWNrXHMraW50ZXJmYWNlXHMrXHcrL2dzOwotICAgIHJldHVybiAxIGlmICRmaWxlQ29u
dGVudHMgPX4gL1xiaW50ZXJmYWNlXHMrXHcrL2dzOwotICAgIHJldHVybiAwOworICAgICAgICB1
bmxlc3MgKCRjb250YWluc0ludGVyZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2UgPT0gJGNvbnRhaW5z
SW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCApIHsKKyAgICAg
ICAgICAgIGRpZSAiRkFJTFVSRTogRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGFu
IGludGVyZmFjZSBvciBjYWxsYmFjayBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24g
YmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc0ludGVyZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2Ug
PyAiWUVTIiA6ICJOTyIpIC4gIikgZG9lc24ndCBtYXRjaCB0aGUgZGV0ZXJtaW5hdGlvbiBmcm9t
IHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRjb250YWluc0ludGVyZmFjZU9yQ2FsbGJhY2tJbnRl
cmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPyAiWUVTIiA6ICJOTyIpIC4gIikgWyIgLiAkaWRsRmls
ZS0+ZmlsZU5hbWUgLiAiXS4iOworICAgICAgICB9CisgICAgICAgIHByaW50ICJTVUNDRVNTISBE
ZXRlcm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhlcmUgaXMgYW4gaW50ZXJmYWNlIG9yIGNhbGxiYWNr
IGludGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNv
bnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBk
b2VzIG1hdGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiAo
JGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA/
ICJZRVMiIDogIk5PIikgLiAiKS5cbiI7CisgICAgfQorCisgICAgcmV0dXJuICRjb250YWluc0lu
dGVyZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2U7Cit9CisKK3N1YiBjb250YWluc0ludGVyZmFjZVdp
dGhDb25zdGFudHNGcm9tSURMCit7CisgICAgbXkgJGlkbEZpbGUgPSBzaGlmdDsKKworICAgIG15
ICRmaWxlQ29udGVudHMgPSAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzOworICAgIG15ICRjb250YWlu
c0ludGVyZmFjZVdpdGhDb25zdGFudHMgPSAoJGZpbGVDb250ZW50cyA9fiAvXHMrY29uc3RbXHNc
d10rPVxzK1tcd10rOy9ncyk7CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgewor
ICAgICAgICBwcmludCgiVmFsaWRhdGluZyBjb250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHNG
cm9tSURMIGZvciAiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0IHZhbGlkYXRpb24g
cGFyc2VyLlxuIik7CisKKyAgICAgICAgbXkgJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50
c0Zyb21QYXJzZWREb2N1bWVudCA9IDA7CisgICAgICAgIGZvcmVhY2ggbXkgJGludGVyZmFjZSAo
QHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQtPmludGVyZmFjZXN9KSB7CisgICAgICAgICAgICBp
ZiAoQHskaW50ZXJmYWNlLT5jb25zdGFudHN9ID4gMCkgeworICAgICAgICAgICAgICAgICRjb250
YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHNGcm9tUGFyc2VkRG9jdW1lbnQgPSAxOworICAgICAg
ICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB1bmxl
c3MgKCRjb250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHMgPT0gJGNvbnRhaW5zSW50ZXJmYWNl
V2l0aENvbnN0YW50c0Zyb21QYXJzZWREb2N1bWVudCApIHsKKyAgICAgICAgICAgIGRpZSAiRkFJ
TFVSRTogRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGFuIGludGVyZmFjZSB3aXRo
IGNvbnN0YW50cyBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNv
bnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50cyA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2Vzbid0
IG1hdGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiAoJGNv
bnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50c0Zyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDog
Ik5PIikgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAg
ICAgICAgcHJpbnQgIlNVQ0NFU1MhIERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBh
biBpbnRlcmZhY2Ugd2l0aCBjb25zdGFudHMgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQg
cGFyc2VyICgiIC4gKCRjb250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHMgPyAiWUVTIiA6ICJO
TyIpIC4gIikgZG9lcyBtYXRjaCB0aGUgZGV0ZXJtaW5hdGlvbiBmcm9tIHZhbGlkYXRpb24gcGFy
c2VyICgiIC4gKCRjb250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHNGcm9tUGFyc2VkRG9jdW1l
bnQgPyAiWUVTIiA6ICJOTyIpIC4gIikuXG4iOworICAgIH0KKworICAgIHJldHVybiAkY29udGFp
bnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzOwogfQogCiBzdWIgdHJpbQpAQCAtNDI2LDcgKzYzOCw5
IEBAIHN1YiB0cmltCiAKIHN1YiBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURM
CiB7Ci0gICAgbXkgJGZpbGVDb250ZW50cyA9IHNoaWZ0OworICAgIG15ICRpZGxGaWxlID0gc2hp
ZnQ7CisKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKIAog
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSB7fTsKIApAQCAtNDUzLDM0ICs2NjcsOTIgQEAg
c3ViIGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21JRAogICAgICAgICB9CiAgICAg
fQogCi0gICAgcmV0dXJuICRleHRlbmRlZEF0dHJpYnV0ZXM7Ci19CisgICAgaWYgKCR2YWxpZGF0
ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgZ2V0SW50ZXJmYWNl
RXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICIg
YWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOwogCi1zdWIgaW50ZXJmYWNlSGFzQ29uc3Rh
bnRBdHRyaWJ1dGUKLXsKLSAgICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7CisgICAgICAgIG15
ICRwcmltYXJ5SW50ZXJmYWNlOworICAgICAgICBmb3JlYWNoIG15ICRpbnRlcmZhY2UgKEB7JGlk
bEZpbGUtPnBhcnNlZERvY3VtZW50LT5pbnRlcmZhY2VzfSkgeworICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgJGlkbEZpbGUtPnByaW1hcnlEZWNsYXJhdGlvbk5hbWUp
IHsKKyAgICAgICAgICAgICAgICAkcHJpbWFyeUludGVyZmFjZSA9ICRpbnRlcmZhY2U7CisgICAg
ICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgcmV0dXJu
ICRmaWxlQ29udGVudHMgPX4gL1xzK2NvbnN0W1xzXHddKz1ccytbXHddKzsvZ3M7Ci19CisgICAg
ICAgICMgRklYTUU6IENvbXBhcmluZyB0aGUgZGVlcCBzdHJ1Y3R1cmUgb2YgdGhlIGV4dGVuZGVk
IGF0dHJpYnV0ZXMgaXMgc3VpdGFibHkgY29tcGxleCB0aGF0IGZvciBub3cKKyAgICAgICAgIyB3
ZSBvbmx5IHZhbGlkYXRlIHRoYXQgYm90aCBwYXJzZXJzIHByb2R1Y2UgdGhlIHNhbWUga2V5cy4K
IAotc3ViIHNob3VsZEV4cG9zZUludGVyZmFjZQotewotICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZXMgPSBzaGlmdDsKKyAgICAgICAgbXkgQHNvcnRlZEV4dGVuZGVkQXR0cmlidXRlS2V5cyA9IHNv
cnQga2V5cyAleyRleHRlbmRlZEF0dHJpYnV0ZXN9OworICAgICAgICBteSBAc29ydGVkRXh0ZW5k
ZWRBdHRyaWJ1dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50ID0gc29ydCBrZXlzICV7JHByaW1hcnlJ
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlc307CiAKLSAgICByZXR1cm4gISRleHRlbmRlZEF0
dHJpYnV0ZXMtPnsiTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QifTsKKyAgICAgICAgbG9jYWwgJERh
dGE6OkR1bXBlcjo6VGVyc2UgPSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRl
bnQgPSAwOworCisgICAgICAgIHVubGVzcyAoQHNvcnRlZEV4dGVuZGVkQXR0cmlidXRlS2V5cyB+
fiBAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSB7CisgICAg
ICAgICAgICBkaWUgIkZBSUxVUkU6IEV4dGVuZGVkIGF0dHJpYnV0ZXMgZm9yIHRoZSBwcmltYXJ5
IGludGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1w
ZXIoQHNvcnRlZEV4dGVuZGVkQXR0cmlidXRlS2V5cykgLiAiKSBkb24ndCBtYXRjaCB0aG9zZSBm
cm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0
ZUtleXNGcm9tUGFyc2VkRG9jdW1lbnQpIC4gIikgWyIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAi
XSI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIEV4dGVuZGVkIGF0dHJpYnV0
ZXMgZm9yIHRoZSBwcmltYXJ5IGludGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNl
ZCBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZEV4dGVuZGVkQXR0cmlidXRlS2V5cykgLiAiKSBt
YXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRFeHRl
bmRlZEF0dHJpYnV0ZUtleXNGcm9tUGFyc2VkRG9jdW1lbnQpIC4gIikuXG4iOworICAgIH0KKwor
ICAgIHJldHVybiAkZXh0ZW5kZWRBdHRyaWJ1dGVzOwogfQogCi1zdWIgdXBkYXRlRGljdGlvbmFy
eURlcGVuZGVuY2llcworc3ViIGdldFVuZGVmaW5lZEJhc2VEaWN0aW9uYXJpZXNGcm9tSURMCiB7
Ci0gICAgbXkgJGZpbGVDb250ZW50cyA9IHNoaWZ0OwogICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7
CiAKLSAgICBteSAkZGljdGlvbmFyeU5hbWUgPSBmaWxlcGFyc2UoYmFzZW5hbWUoJGlkbEZpbGUp
LCAiLmlkbCIpOworICAgIG15ICRmaWxlQ29udGVudHMgPSAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRz
OworCisgICAgbXkgQGRpY3Rpb25hcnlOYW1lcyA9ICgpOworICAgIHdoaWxlICgkZmlsZUNvbnRl
bnRzID1+IC9ccypkaWN0aW9uYXJ5XHMrKFx3KylccyovbWcpIHsKKyAgICAgICAgcHVzaChAZGlj
dGlvbmFyeU5hbWVzLCAkMSkKKyAgICB9CiAKKyAgICAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUt
PmZpbGVDb250ZW50czsKICAgICBteSBAYmFzZURpY3Rpb25hcmllcyA9ICgpOwogICAgIHdoaWxl
ICgkZmlsZUNvbnRlbnRzID1+IC9ccypkaWN0aW9uYXJ5XHMrKFx3Kylccys6XHMrKFx3Kylccyov
bWcpIHsKLSAgICAgICAgbmV4dCBpZiAhJGludGVyZmFjZU5hbWVUb0lkbEZpbGV7JDJ9IHx8IChn
cmVwIHsgJF8gZXEgJDIgfSBAYmFzZURpY3Rpb25hcmllcyk7CisgICAgICAgIG5leHQgaWYgKGdy
ZXAgeyAkXyBlcSAkMiB9IEBkaWN0aW9uYXJ5TmFtZXMpOworICAgICAgICBuZXh0IGlmIChncmVw
IHsgJF8gZXEgJDIgfSBAYmFzZURpY3Rpb25hcmllcyk7CiAgICAgICAgIHB1c2goQGJhc2VEaWN0
aW9uYXJpZXMsICQyKTsKICAgICB9Ci0gICAgJGRpY3Rpb25hcnlEZXBlbmRlbmNpZXN7JGRpY3Rp
b25hcnlOYW1lfSA9IChqb2luKCIuaWRsICIsIEBiYXNlRGljdGlvbmFyaWVzKSAuICIuaWRsIikg
aWYgQGJhc2VEaWN0aW9uYXJpZXM7CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikg
eworICAgICAgICBwcmludCgiVmFsaWRhdGluZyBnZXRVbmRlZmluZWRCYXNlRGljdGlvbmFyaWVz
RnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9u
IHBhcnNlci5cbiIpOworCisgICAgICAgIG15IEBkaWN0aW9uYXJ5TmFtZXNGcm9tUGFyc2VkRG9j
dW1lbnQgPSAoKTsKKyAgICAgICAgZm9yZWFjaCBteSAkZGljdGlvbmFyeSAoQHskaWRsRmlsZS0+
cGFyc2VkRG9jdW1lbnQtPmRpY3Rpb25hcmllc30pIHsKKyAgICAgICAgICAgIHB1c2goQGRpY3Rp
b25hcnlOYW1lc0Zyb21QYXJzZWREb2N1bWVudCwgJGRpY3Rpb25hcnktPnR5cGUtPm5hbWUpOwor
ICAgICAgICB9CisKKyAgICAgICAgbXkgQGJhc2VEaWN0aW9uYXJpZXNGcm9tUGFyc2VkRG9jdW1l
bnQgPSAoKTsKKyAgICAgICAgZm9yZWFjaCBteSAkZGljdGlvbmFyeSAoQHskaWRsRmlsZS0+cGFy
c2VkRG9jdW1lbnQtPmRpY3Rpb25hcmllc30pIHsKKyAgICAgICAgICAgICMgU2tpcCBkaWN0aW9u
YXJpZXMgd2l0aG91dCBhIGJhc2UgdHlwZS4KKyAgICAgICAgICAgIG5leHQgaWYgISRkaWN0aW9u
YXJ5LT5wYXJlbnRUeXBlOworICAgICAgICAgICAgIyBTa2lwIGRpY3Rpb25hcmllcyB0aGF0IGhh
dmUgdGhlaXIgYmFzZSB0eXBlIGRlZmluZWQgaW4gdGhpcyBkb2N1bWVudC4KKyAgICAgICAgICAg
IG5leHQgaWYgKGdyZXAgeyAkXyBlcSAkZGljdGlvbmFyeS0+cGFyZW50VHlwZS0+bmFtZSB9IEBk
aWN0aW9uYXJ5TmFtZXNGcm9tUGFyc2VkRG9jdW1lbnQpOworICAgICAgICAgICAgIyBTa2lwIGRp
Y3Rpb25hcmllcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHRoZSBsaXN0LgorICAg
ICAgICAgICAgbmV4dCBpZiAoZ3JlcCB7ICRfIGVxICRkaWN0aW9uYXJ5LT5wYXJlbnRUeXBlLT5u
YW1lIH0gQGJhc2VEaWN0aW9uYXJpZXNGcm9tUGFyc2VkRG9jdW1lbnQpOworCisgICAgICAgICAg
ICBwdXNoKEBiYXNlRGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3VtZW50LCAkZGljdGlvbmFyeS0+
cGFyZW50VHlwZS0+bmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBteSBAc29ydGVkQmFzZURp
Y3Rpb25hcmllcyA9IHNvcnQgQGJhc2VEaWN0aW9uYXJpZXM7CisgICAgICAgIG15IEBzb3J0ZWRC
YXNlRGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3VtZW50ID0gc29ydCBAYmFzZURpY3Rpb25hcmll
c0Zyb21QYXJzZWREb2N1bWVudDsKKworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpUZXJz
ZSA9IDE7CisgICAgICAgIGxvY2FsICREYXRhOjpEdW1wZXI6OkluZGVudCA9IDA7CisKKyAgICAg
ICAgdW5sZXNzIChAc29ydGVkQmFzZURpY3Rpb25hcmllcyB+fiBAc29ydGVkQmFzZURpY3Rpb25h
cmllc0Zyb21QYXJzZWREb2N1bWVudCkgeworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBVbmRl
ZmluZWQgYmFzZSBkaWN0aW9uYXJpZXMgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFy
c2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRCYXNlRGljdGlvbmFyaWVzKSAuICIpIGRvbid0IG1hdGNo
IHRob3NlIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZEJhc2VEaWN0
aW9uYXJpZXNGcm9tUGFyc2VkRG9jdW1lbnQpIC4gIikgWyIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiXSI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIFVuZGVmaW5lZCBiYXNl
IGRpY3Rpb25hcmllcyBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBE
dW1wZXIoQHNvcnRlZEJhc2VEaWN0aW9uYXJpZXMpIC4gIikgbWF0Y2ggdGhvc2UgZnJvbSB2YWxp
ZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkQmFzZURpY3Rpb25hcmllc0Zyb21QYXJz
ZWREb2N1bWVudCkgLiAiKS5cbiI7CisgICAgfQorCisgICAgcmV0dXJuIFxAYmFzZURpY3Rpb25h
cmllczsKK30KKworc3ViIHNob3VsZEV4cG9zZUludGVyZmFjZQoreworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZXMgPSBzaGlmdDsKKworICAgIHJldHVybiAhJGV4dGVuZGVkQXR0cmlidXRlcy0+
eyJMZWdhY3lOb0ludGVyZmFjZU9iamVjdCJ9OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERl
cGVuZGVuY2llcy5kZXAJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjcsMyArMjY3LDUgQEAgV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzLmlk
bDoKICMgRGljdGlvbmFyaWVzIGRlcGVuZGVuY2llcwogSlNUZXN0RGVyaXZlZERpY3Rpb25hcnku
Y3BwOiBUZXN0SW5oZXJpdGVkRGljdGlvbmFyeS5pZGwKIEpTVGVzdERlcml2ZWREaWN0aW9uYXJ5
Mi5jcHA6IFRlc3RJbmhlcml0ZWREaWN0aW9uYXJ5LmlkbCBUZXN0SW5oZXJpdGVkRGljdGlvbmFy
eTIuaWRsCitKU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDogRXZlbnRJbml0LmlkbAorSlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcDogRXZlbnRJbml0LmlkbApJbmRleDogVG9vbHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY2NjgzKQor
KysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAt
MDktMDYgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJJRExd
IEFkZCBtb2RlIHRvIHByZXByb2Nlc3MtaWRscy5wbCB0byB2YWxpZGF0ZSBmYXN0IHJlZ2V4IGJh
c2VkIHNjYW5uZXIgd2l0aCB0aGUgbm9ybWFsIElETCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjIzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iaW5kaW5n
cy9tYWluLnB5OgorICAgICAgICAoQmluZGluZ3NUZXN0cy5nZW5lcmF0ZV9zdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeSk6CisgICAgICAgIFVwZGF0ZSBmb3IgcmVuYW1lIGZyb20gaWRsRmlsZXNMaXN0
IHRvIGlkbEZpbGVOYW1lc0xpc3QgYW5kIHRvIHBhc3MgdGhlIGlkbEF0dHJpYnV0ZXNGaWxlIGFy
Z3VtZW50LiAKKwogMjAyMC0wOS0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCiAgICAgICAgIExldHRlci1zcGFjaW5nIHNob3VsZCBkaXNhYmxlIGxpZ2F0dXJl
cwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmluZGluZ3MvbWFpbi5weQkocmV2aXNpb24g
MjY2NjgzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5ncy9tYWluLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC04Niw5ICs4NiwxMCBAQCBjbGFzcyBCaW5kaW5nc1Rlc3RzOgogICAgICAg
ICBjbWQgPSBbJ3BlcmwnLCAnLXcnLAogICAgICAgICAgICAgICAgJy1JV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzJywKICAgICAgICAgICAgICAgICdXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJl
cHJvY2Vzcy1pZGxzLnBsJywKLSAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlzdCcsIGlkbF9m
aWxlc19saXN0WzFdLAorICAgICAgICAgICAgICAgJy0taWRsRmlsZU5hbWVzTGlzdCcsIGlkbF9m
aWxlc19saXN0WzFdLAogICAgICAgICAgICAgICAgJy0tdGVzdEdsb2JhbENvbnRleHROYW1lJywg
J1Rlc3RHbG9iYWxPYmplY3QnLAogICAgICAgICAgICAgICAgJy0tZGVmaW5lcycsICcnLAorICAg
ICAgICAgICAgICAgJy0taWRsQXR0cmlidXRlc0ZpbGUnLCAnV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMuanNvbicsCiAgICAgICAgICAgICAgICAnLS1zdXBwbGVtZW50YWxE
ZXBlbmRlbmN5RmlsZScsIHN1cHBsZW1lbnRhbF9kZXBlbmRlbmN5X2ZpbGUsCiAgICAgICAgICAg
ICAgICAnLS1zdXBwbGVtZW50YWxNYWtlZmlsZURlcHMnLCBzdXBwbGVtZW50YWxfbWFrZWZpbGVf
ZGVwZW5kZW5jeV9maWxlLAogICAgICAgICAgICAgICAgJy0td2luZG93Q29uc3RydWN0b3JzRmls
ZScsIHdpbmRvd19jb25zdHJ1Y3RvcnNfZmlsZSwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL3Njcm9sbC1hbmltYXRvci1iYXNpYy1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3ItYmFzaWMtZXZlbnRzLmh0
bWwJKHJldmlzaW9uIDI2NjY4MykKKysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9s
bC1hbmltYXRvci1iYXNpYy1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMs
NyBAQAogPHNjcmlwdD4KICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICBpZiAod2luZG93
LmludGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXRVc2VzTW9ja1Njcm9sbEFu
aW1hdG9yKHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1vY2tT
Y3JvbGxBbmltYXRvckVuYWJsZWQodHJ1ZSk7CiAKICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlja2Vk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFu
aW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlja2VkLmh0bWwJKHJldmlzaW9uIDI2NjY4MykK
KysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5LXNj
cm9sbGJhcnMtY2xpY2tlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNj
cmlwdD4KICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICBpZiAod2luZG93LmludGVybmFs
cykgewotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFVzZXNNb2NrU2Nyb2xsQW5pbWF0b3Io
dHJ1ZSk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0TW9ja1Njcm9sbEFu
aW1hdG9yRW5hYmxlZCh0cnVlKTsKICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRVc2VzT3Zl
cmxheVNjcm9sbGJhcnModHJ1ZSk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9zY3JvbGwtYW5pbWF0b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWhvdmVyZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3It
b3ZlcmxheS1zY3JvbGxiYXJzLWhvdmVyZWQuaHRtbAkocmV2aXNpb24gMjY2NjgzKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFy
cy1ob3ZlcmVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0Pgog
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0g
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcih0cnVlKTsK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRNb2NrU2Nyb2xsQW5pbWF0b3JF
bmFibGVkKHRydWUpOwogICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFVzZXNPdmVybGF5U2Ny
b2xsYmFycyh0cnVlKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1hbmltYXRvci1zZWxlY3QtbGlzdC1ldmVudHMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3Itc2VsZWN0LWxpc3QtZXZl
bnRzLmh0bWwJKHJldmlzaW9uIDI2NjY4MykKKysrIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3Njcm9sbC1hbmltYXRvci1zZWxlY3QtbGlzdC1ldmVudHMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMyw3ICszLDcgQEAKIDxzY3JpcHQ+CiAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0VXNlc01v
Y2tTY3JvbGxBbmltYXRvcih0cnVlKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRNb2NrU2Nyb2xsQW5pbWF0b3JFbmFibGVkKHRydWUpOwogCiAgICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408148</attachid>
            <date>2020-09-06 16:03:46 -0700</date>
            <delta_ts>2020-09-06 16:05:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216231-20200906160345.patch</filename>
            <type>text/plain</type>
            <size>43844</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTA5LTA2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBBZGQgbW9kZSB0byBw
cmVwcm9jZXNzLWlkbHMucGwgdG8gdmFsaWRhdGUgZmFzdCByZWdleCBiYXNlZCBzY2FubmVyIHdp
dGggdGhlIG5vcm1hbCBJREwgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTYyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUbyBhaWQgdHJhY2tpbmcgZG93biBtaXN0YWtlcyBpbiB0aGUgZmFz
dCByZWdleCBiYXNlZCBzY2FubmVyIGluIHByZXByb2Nlc3MtaWRscy5wbCwgdGhpcworICAgICAg
ICBhZGRzIGEgdmFsaWRhdGlvbiBtb2RlIHRvIHRoZSBzY3JpcHQgd2hpY2ggY2hlY2tzIHRoZSBy
ZXN1bHRzIGFnYWluc3Qgd2hhdCB0aGUgbm9ybWFsLCBtdWNoCisgICAgICAgIHNsb3dlciwgSURM
IHBhcnNlciBnZXRzLiBJbiBidWlsZGluZyBpdCwgaXQgY2F1Z2h0IHRoYXQgd2Ugd2VyZSBub3Qg
Y3JlYXRpbmcgYSBkZXBlbmRlbmN5IG9uCisgICAgICAgIFJUQ1J0cENvZGluZ1BhcmFtZXRlcnMu
aWRsIGZvciBkaWN0aW9uYXJpZXMgdGhhdCBkZXJpdmVkIGZyb20gaXQgYmVjYXVzZSBpdCB3YXMg
bWlzc2luZyBmcm9tCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UvQ01ha2VMaXN0cy50eHQs
IHdoaWNoIHdvdWxkIGhhdmUgbWFuaWZlc3RlZCBpbiBjb25mdXNpbmcgYnVpbGQgZXJyb3JzCisg
ICAgICAgIGluIHNvbWUgY2FzZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MtYWxsLnBsOgorICAgICAgICBBZGQgbWlzc2luZyBSVENSdHBDb2RpbmdQ
YXJhbWV0ZXJzLmlkbCBhbmQgdXBkYXRlIGludm9jYXRpb24gb2YgcHJlcHJvY2Vzcy1pZGxzLnBs
IHRvIAorICAgICAgICBwYXNzIGluIGlkbEF0dHJpYnV0ZXNGaWxlLCB3aGljaCB0aGUgcGFyc2Vy
IG5lZWRzIChpdCBpcyBub3QgcmVhZCB3aGVuIG5vdCB2YWxpZGF0aW5nKS4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwOgorICAg
ICAgICBVcGRhdGVkIHRvIGluY2x1ZGUgbWlzc2luZyBkaWN0aW9uYXJ5IGRlcGVuZGVuY2llcy4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAg
ICAoR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKToKKyAgICAgICAgKHByb2Nlc3NJREwpOgorICAg
ICAgICAoZ2V0UGFydGlhbE5hbWVzRnJvbUlETCk6CisgICAgICAgIChnZXRJbmNsdWRlZEludGVy
ZmFjZXNGcm9tSURMKToKKyAgICAgICAgKGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKToKKyAg
ICAgICAgKGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSXRlcmFi
bGVJbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFj
a0ludGVyZmFjZUZyb21JREwpOgorICAgICAgICAoY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3Rh
bnRzRnJvbUlETCk6CisgICAgICAgIChnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9t
SURMKToKKyAgICAgICAgKGdldFVuZGVmaW5lZEJhc2VEaWN0aW9uYXJpZXNGcm9tSURMKToKKyAg
ICAgICAgKHNob3VsZEV4cG9zZUludGVyZmFjZSk6CisgICAgICAgIChnZXRGaWxlQ29udGVudHMp
OiBEZWxldGVkLgorICAgICAgICAoaW50ZXJmYWNlSXNJdGVyYWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChjb250YWluc0ludGVyZmFjZUZyb21JREwpOiBEZWxldGVkLgorICAgICAgICAoaW50ZXJm
YWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAodXBkYXRlRGljdGlv
bmFyeURlcGVuZGVuY2llcyk6IERlbGV0ZWQuCisgICAgICAgIC0gQWxsb3cgZW5hYmxpbmcgYSB2
YWxpZGF0aW9uIG1vZGUgdmlhIHRoZSAkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyIHZhcmlhYmxlIHdo
aWNoIHBhcnNlcyBlYWNoCisgICAgICAgICAgSURMIHdpdGggdGhlIG5vcm1hbCBJREwgcGFyc2Vy
IGFuZCBjb21wYXJlcyByZXN1bHRzLiAKKyAgICAgICAgLSBVcGRhdGVzIGEgYnVuY2ggb2YgbmFt
aW5nIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQgd2hpY2ggdmFyaWFibGVzIGNvbnRhaW4gZmlsZSBu
YW1lcyB2cy4gZmlsZQorICAgICAgICAgIHBhdGhzLgorICAgICAgICAtIFJlbmFtZXMgZnVuY3Rp
b25zIHRvIHVzZSBtb3JlIGNvbnNpc3RlbnQgbmFtaW5nLgorICAgICAgICAtIEZpeGVzIGJ1ZyBp
biBkaWN0aW9uYXJ5IGRlcGVuZGVuY3kgYW5hbHlzaXMgdGhhdCBzaWxlbnRseSBpZ25vcmVkIGRl
cGVuZGVuY2llcyB0aGF0IHdlcmVuJ3QKKyAgICAgICAgICBpbiB0aGUgZmlsZSBsaXN0LgorCiAy
MDIwLTA5LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTGV0dGVyLXNwYWNpbmcgc2hvdWxkIGRpc2FibGUgbGlnYXR1cmVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY2NjgzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM3Nyw2ICszNzcsNyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ2FwYWJpbGl0
aWVzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kZWNQYXJhbWV0ZXJzLmlkbAorICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kaW5nUGFyYW1ldGVycy5pZGwKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZS5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cEZlY1BhcmFtZXRlcnMuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw2ICszMDYsNyBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cENhcGFi
aWxpdGllcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBD
b2RlY0NhcGFiaWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwQ29kZWNQYXJhbWV0ZXJzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cENvZGluZ1BhcmFtZXRlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29udHJpYnV0aW5nU291cmNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBGZWNQYXJhbWV0ZXJzLmlk
bCBcCkBAIC0xNzM4LDkgKzE3MzksOSBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogIwog
SURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFU
RV9GSUxFUykpCiAKLSQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1Nf
SURMU19TQ1JJUFRTKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9E
RUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExB
VEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKKyQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVzTGlzdCAkKElETF9GSUxFU19UTVAp
IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9G
SUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxF
KSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1F
TlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVG
SU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVT
X1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlz
b1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRv
d0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtF
RklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmgg
OiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJ
RExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBF
TkRFTkNJRVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLWFsbC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbAkocmV2aXNpb24gMjY2NjgzKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwJKHdv
cmtpbmcgY29weSkKQEAgLTg1LDggKzg1LDkgQEAgaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZSkgewogICAgICAgICByZWFkU3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUoJHN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlLCBcJW9sZFN1cHBsZW1lbnRzKSBpZiAtZSAkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGU7CiAgICAgICAgIG15IEBhcmdzID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUo
JHNjcmlwdERpciwgJ3ByZXByb2Nlc3MtaWRscy5wbCcpLAogICAgICAgICAgICAgICAgICAgICAn
LS1kZWZpbmVzJywgJGRlZmluZXMsCi0gICAgICAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlz
dCcsICRwcElETEZpbGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0taWRsRmlsZU5hbWVz
TGlzdCcsICRwcElETEZpbGVzTGlzdCwKICAgICAgICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAg
ICAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAog
ICAgICAgICAgICAgICAgICAgICBAcHBFeHRyYUFyZ3MpOwogICAgICAgICBwcmludFByb2dyZXNz
KCJQcmVwcm9jZXNzIElETCIpOwogICAgICAgICBleGVjdXRlQ29tbWFuZCgkcGVybCwgQGFyZ3Mp
ID09IDAgb3IgZGllOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVw
cm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCSh3b3JraW5nIGNvcHkpCkBA
IC0yMywxNCArMjMsMjAgQEAgdXNlIHdhcm5pbmdzOwogdXNlIEZpbmRCaW47CiB1c2UgbGliICRG
aW5kQmluOjpCaW47CiAKK3VzZSBFbmdsaXNoOwogdXNlIEZpbGU6OkJhc2VuYW1lOwogdXNlIEdl
dG9wdDo6TG9uZzsKIHVzZSBDd2Q7CiB1c2UgQ29uZmlnOwordXNlIENsYXNzOjpTdHJ1Y3Q7Cit1
c2UgSlNPTjo6UFA7Cit1c2UgRGF0YTo6RHVtcGVyOworCit1c2UgSURMUGFyc2VyOwogCiBteSAk
ZGVmaW5lczsKIG15ICRwcmVwcm9jZXNzb3I7Ci1teSAkaWRsRmlsZXNMaXN0OworbXkgJGlkbEZp
bGVOYW1lc0xpc3Q7CiBteSAkdGVzdEdsb2JhbENvbnRleHROYW1lOwogbXkgJHN1cHBsZW1lbnRh
bERlcGVuZGVuY3lGaWxlOwogbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CkBAIC00MiwxMCAr
NDgsMTYgQEAgbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOworbXkgJGlk
bEF0dHJpYnV0ZXNGaWxlOworCisjIFRvZ2dsZSB0aGlzIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZh
c3QgcmVndWxhciBleHByZXNzaW9uIGJhc2VkICJwYXJzaW5nIiB1c2VkCisjIGluIHRoaXMgZmls
ZSBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHRzIGFzIHRoZSBzbG93ZXIgcmVzdWx0cyBwcm9kdWNl
ZCBieSB0aGUKKyMgY29tcGxldGUgSURMUGFyc2VyLgorbXkgJHZhbGlkYXRlQWdhaW5zdFBhcnNl
ciA9IDA7CiAKIEdldE9wdGlvbnMoJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAg
ICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAotICAgICAgICAgICAnaWRsRmls
ZXNMaXN0PXMnID0+IFwkaWRsRmlsZXNMaXN0LAorICAgICAgICAgICAnaWRsRmlsZU5hbWVzTGlz
dD1zJyA9PiBcJGlkbEZpbGVOYW1lc0xpc3QsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsQ29udGV4
dE5hbWU9cycgPT4gXCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUsCiAgICAgICAgICAgICdzdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZT1zJyA9PiBcJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLAog
ICAgICAgICAgICAnaXNvU3Vic3BhY2VzSGVhZGVyRmlsZT1zJyA9PiBcJGlzb1N1YnNwYWNlc0hl
YWRlckZpbGUsCkBAIC01Niw3ICs2OCw5IEBAIEdldE9wdGlvbnMoJ2RlZmluZXM9cycgPT4gXCRk
ZWZpbmVzLAogICAgICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1z
JyA9PiBcJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSwKLSAgICAgICAgICAgJ3N1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyk7CisgICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM9
cycgPT4gXCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMsCisgICAgICAgICAgICdpZGxBdHRyaWJ1
dGVzRmlsZT1zJyA9PiBcJGlkbEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAgICAndmFsaWRhdGVB
Z2FpbnN0UGFyc2VyJyA9PiBcJHZhbGlkYXRlQWdhaW5zdFBhcnNlcik7CiAKIGRpZSgnTXVzdCBz
cGVjaWZ5ICNkZWZpbmUgbWFjcm9zIHVzaW5nIC0tZGVmaW5lcy4nKSB1bmxlc3MgZGVmaW5lZCgk
ZGVmaW5lcyk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXN1cHBs
ZW1lbnRhbERlcGVuZGVuY3lGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSk7CkBAIC02Nyw3ICs4MSw4IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0KIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0t
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBv
dXRwdXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZS4nKSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tdGVzdEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkdGVzdEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSkgfHwgIWRlZmluZWQoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSk7Ci1k
aWUoJ011c3Qgc3BlY2lmeSB0aGUgZmlsZSBsaXN0aW5nIGFsbCBJRExzIHVzaW5nIC0taWRsRmls
ZXNMaXN0LicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlc0xpc3QpOworZGllKCdNdXN0IHNwZWNp
ZnkgdGhlIGZpbGUgbGlzdGluZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykg
dW5sZXNzIGRlZmluZWQoJGlkbEZpbGVOYW1lc0xpc3QpOworZGllKCdNdXN0IHNwZWNpZnkgSURM
IGF0dHJpYnV0ZXMgZmlsZSB1c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZp
bmVkKCRpZGxBdHRyaWJ1dGVzRmlsZSk7CiAKICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSA9
IEN5Z3dpblBhdGhJZk5lZWRlZCgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpOwogJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGlzb1N1YnNwYWNlc0hlYWRl
ckZpbGUpOwpAQCAtNzksMTMgKzk0LDM1IEBAICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlID0gQ3kKICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBw
bGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmluZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVw
cyk7CiAKLW15IEBpZGxGaWxlczsKLW9wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlc0xpc3QpIG9y
IGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVzTGlzdCI7Ci1AaWRsRmlsZXMgPSBtYXAgeyBDeWd3
aW5QYXRoSWZOZWVkZWQocy9ccj9cbj8kLy9yKSB9IDwkZmg+OworbXkgQGlkbEZpbGVOYW1lczsK
K29wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlTmFtZXNMaXN0KSBvciBkaWUgIkNhbm5vdCBvcGVu
ICRpZGxGaWxlTmFtZXNMaXN0IjsKK0BpZGxGaWxlTmFtZXMgPSBtYXAgeyBDeWd3aW5QYXRoSWZO
ZWVkZWQocy9ccj9cbj8kLy9yKSB9IDwkZmg+OwogY2xvc2UoJGZoKSBvciBkaWU7CiAKLW15ICVp
bnRlcmZhY2VOYW1lVG9JZGxGaWxlOwotbXkgJWlkbEZpbGVUb0ludGVyZmFjZU5hbWU7CitteSAk
aWRsQXR0cmlidXRlczsKK2lmICgkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgbXkgJGlu
cHV0OworICAgIHsKKyAgICAgICAgbG9jYWwgJElOUFVUX1JFQ09SRF9TRVBBUkFUT1I7CisgICAg
ICAgIG9wZW4oSlNPTiwgIjwiLCAkaWRsQXR0cmlidXRlc0ZpbGUpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiAkaWRsQXR0cmlidXRlc0ZpbGU6ICQhIjsKKyAgICAgICAgJGlucHV0ID0gPEpTT04+Owor
ICAgICAgICBjbG9zZShKU09OKTsKKyAgICB9CisKKyAgICBteSAkanNvbkRlY29kZXIgPSBKU09O
OjpQUC0+bmV3LT51dGY4OworICAgIG15ICRqc29uSGFzaFJlZiA9ICRqc29uRGVjb2Rlci0+ZGVj
b2RlKCRpbnB1dCk7CisgICAgJGlkbEF0dHJpYnV0ZXMgPSAkanNvbkhhc2hSZWYtPnthdHRyaWJ1
dGVzfTsKK30KKworc3RydWN0KCBJRExGaWxlID0+IHsKKyAgICBmaWxlTmFtZSA9PiAnJCcsCisg
ICAgZmlsZUNvbnRlbnRzID0+ICckJywKKyAgICBwcmltYXJ5RGVjbGFyYXRpb25OYW1lID0+ICck
JywKKyAgICBwYXJzZWREb2N1bWVudCA9PiAnJCcKK30pOworCitteSAlaW50ZXJmYWNlTmFtZVRv
SWRsRmlsZVBhdGg7CitteSAlaWRsRmlsZVBhdGhUb0ludGVyZmFjZU5hbWU7CiBteSAlc3VwcGxl
bWVudGFsRGVwZW5kZW5jaWVzOwogbXkgJWRpY3Rpb25hcnlEZXBlbmRlbmNpZXM7CiBteSAlc3Vw
cGxlbWVudGFsczsKQEAgLTExMiwyMyArMTQ5LDI1IEBAIHB1YmxpYzoKICAgICBET01Jc29TdWJz
cGFjZXMoKSA9IGRlZmF1bHQ7CiBFTkQKIAotIyBHZXQgcmlkIG9mIGR1cGxpY2F0ZXMgaW4gaWRs
RmlsZXMgYXJyYXkuCi1teSAlaWRsRmlsZUhhc2ggPSBtYXAgeyAkXywgMSB9IEBpZGxGaWxlczsK
KyMgR2V0IHJpZCBvZiBkdXBsaWNhdGVzIGluIGlkbEZpbGVOYW1lcyBhcnJheS4KK215ICVpZGxG
aWxlTmFtZUhhc2ggPSBtYXAgeyAkXywgMSB9IEBpZGxGaWxlTmFtZXM7CiAKLSMgUG9wdWxhdGUg
JGlkbEZpbGVUb0ludGVyZmFjZU5hbWUgYW5kICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlLgotZm9y
ZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSGFzaCkgewotICAgIG15ICRmdWxs
UGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGlkbEZpbGUpOwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
ZmlsZXBhcnNlKGJhc2VuYW1lKCRpZGxGaWxlKSwgIi5pZGwiKTsKLSAgICAkaWRsRmlsZVRvSW50
ZXJmYWNlTmFtZXskZnVsbFBhdGh9ID0gJGludGVyZmFjZU5hbWU7Ci0gICAgJGludGVyZmFjZU5h
bWVUb0lkbEZpbGV7JGludGVyZmFjZU5hbWV9ID0gJGZ1bGxQYXRoOworIyBQb3B1bGF0ZSAkaWRs
RmlsZVBhdGhUb0ludGVyZmFjZU5hbWUgYW5kICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aC4K
K2ZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewor
ICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGlkbEZpbGVOYW1lKTsKKyAgICBteSAk
aW50ZXJmYWNlTmFtZSA9IGZpbGVwYXJzZShiYXNlbmFtZSgkaWRsRmlsZU5hbWUpLCAiLmlkbCIp
OworICAgICRpZGxGaWxlUGF0aFRvSW50ZXJmYWNlTmFtZXskZnVsbFBhdGh9ID0gJGludGVyZmFj
ZU5hbWU7CisgICAgJGludGVyZmFjZU5hbWVUb0lkbEZpbGVQYXRoeyRpbnRlcmZhY2VOYW1lfSA9
ICRmdWxsUGF0aDsKIH0KIAogIyBQYXJzZSBhbGwgSURMIGZpbGVzLgotZm9yZWFjaCBteSAkaWRs
RmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSGFzaCkgewotICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6
cmVhbHBhdGgoJGlkbEZpbGUpOwotICAgIG15ICRpZGxGaWxlQ29udGVudHMgPSBnZXRGaWxlQ29u
dGVudHMoJGZ1bGxQYXRoKTsKK2ZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlk
bEZpbGVOYW1lSGFzaCkgeworICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGlkbEZp
bGVOYW1lKTsKKyAgICAKKyAgICBteSAkaWRsRmlsZSA9IHByb2Nlc3NJREwoJGlkbEZpbGVOYW1l
LCAkZnVsbFBhdGgpOworCiAgICAgIyBIYW5kbGUgcGFydGlhbCBuYW1lcy4KLSAgICBteSAkcGFy
dGlhbE5hbWVzID0gZ2V0UGFydGlhbE5hbWVzRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAg
ICBteSAkcGFydGlhbE5hbWVzID0gZ2V0UGFydGlhbE5hbWVzRnJvbUlETCgkaWRsRmlsZSk7CiAg
ICAgaWYgKEB7JHBhcnRpYWxOYW1lc30pIHsKICAgICAgICAgJHN1cHBsZW1lbnRhbERlcGVuZGVu
Y2llc3skZnVsbFBhdGh9ID0gJHBhcnRpYWxOYW1lczsKICAgICAgICAgbmV4dDsKQEAgLTEzNiwz
MSArMTc1LDM0IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlaWRsRmlsZUgKIAog
ICAgICRzdXBwbGVtZW50YWxzeyRmdWxsUGF0aH0gPSBbXTsKIAotICAgIHVwZGF0ZURpY3Rpb25h
cnlEZXBlbmRlbmNpZXMoJGlkbEZpbGVDb250ZW50cywgJGlkbEZpbGUpOworICAgIG15ICRiYXNl
RGljdGlvbmFyaWVzID0gZ2V0VW5kZWZpbmVkQmFzZURpY3Rpb25hcmllc0Zyb21JREwoJGlkbEZp
bGUpOworICAgIGlmIChAeyRiYXNlRGljdGlvbmFyaWVzfSkgeworICAgICAgICAkZGljdGlvbmFy
eURlcGVuZGVuY2llc3skaWRsRmlsZS0+cHJpbWFyeURlY2xhcmF0aW9uTmFtZX0gPSAoam9pbigi
LmlkbCAiLCBAeyRiYXNlRGljdGlvbmFyaWVzfSkgLiAiLmlkbCIpOworICAgIH0KIAogICAgICMg
U2tpcCBpZiB0aGUgSURMIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbiBpbnRlcmZhY2Ugb3IgYSBj
YWxsYmFjayBpbnRlcmZhY2UuCiAgICAgIyBUaGUgSURMIG1heSBjb250YWluIGEgZGljdGlvbmFy
eS4KLSAgICBuZXh0IHVubGVzcyBjb250YWluc0ludGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250
ZW50cyk7CisgICAgbmV4dCB1bmxlc3MgY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlRnJvbUlETCgkaWRsRmlsZSk7CiAKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9IGZpbGVwYXJz
ZShiYXNlbmFtZSgkaWRsRmlsZSksICIuaWRsIik7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
aWRsRmlsZS0+cHJpbWFyeURlY2xhcmF0aW9uTmFtZTsKICAgICAjIEhhbmRsZSBpbmNsdWRlIHN0
YXRlbWVudHMuCi0gICAgbXkgJGluY2x1ZGVkSW50ZXJmYWNlcyA9IGdldEluY2x1ZGVkSW50ZXJm
YWNlc0Zyb21JREwoJGlkbEZpbGVDb250ZW50cywgJGludGVyZmFjZU5hbWUpOworICAgIG15ICRp
bmNsdWRlZEludGVyZmFjZXMgPSBnZXRJbmNsdWRlZEludGVyZmFjZXNGcm9tSURMKCRpZGxGaWxl
LCAkaW50ZXJmYWNlTmFtZSk7CiAgICAgZm9yZWFjaCBteSAkaW5jbHVkZWRJbnRlcmZhY2UgKEB7
JGluY2x1ZGVkSW50ZXJmYWNlc30pIHsKLSAgICAgICAgbXkgJGluY2x1ZGVkSWRsRmlsZSA9ICRp
bnRlcmZhY2VOYW1lVG9JZGxGaWxleyRpbmNsdWRlZEludGVyZmFjZX07Ci0gICAgICAgIGRpZSAi
Q291bGQgbm90IGZpbmQgYSB0aGUgSURMIGZpbGUgd2hlcmUgdGhlIGZvbGxvd2luZyBpbmNsdWRl
ZCBpbnRlcmZhY2UgaXMgZGVmaW5lZDogJGluY2x1ZGVkSW50ZXJmYWNlIiB1bmxlc3MgJGluY2x1
ZGVkSWRsRmlsZTsKLSAgICAgICAgaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXN7JGluY2x1
ZGVkSWRsRmlsZX0pIHsKLSAgICAgICAgICAgIHB1c2goQHskc3VwcGxlbWVudGFsRGVwZW5kZW5j
aWVzeyRpbmNsdWRlZElkbEZpbGV9fSwgJGludGVyZmFjZU5hbWUpOworICAgICAgICBteSAkaW5j
bHVkZWRJZGxGaWxlUGF0aCA9ICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aHskaW5jbHVkZWRJ
bnRlcmZhY2V9OworICAgICAgICBkaWUgIkNvdWxkIG5vdCBmaW5kIGEgdGhlIElETCBmaWxlIHdo
ZXJlIHRoZSBmb2xsb3dpbmcgaW5jbHVkZWQgaW50ZXJmYWNlIGlzIGRlZmluZWQ6ICRpbmNsdWRl
ZEludGVyZmFjZSIgdW5sZXNzICRpbmNsdWRlZElkbEZpbGVQYXRoOworICAgICAgICBpZiAoJHN1
cHBsZW1lbnRhbERlcGVuZGVuY2llc3skaW5jbHVkZWRJZGxGaWxlUGF0aH0pIHsKKyAgICAgICAg
ICAgIHB1c2goQHskc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRpbmNsdWRlZElkbEZpbGVQYXRo
fX0sICRpbnRlcmZhY2VOYW1lKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRzdXBw
bGVtZW50YWxEZXBlbmRlbmNpZXN7JGluY2x1ZGVkSWRsRmlsZX0gPSBbJGludGVyZmFjZU5hbWVd
OworICAgICAgICAgICAgJHN1cHBsZW1lbnRhbERlcGVuZGVuY2llc3skaW5jbHVkZWRJZGxGaWxl
UGF0aH0gPSBbJGludGVyZmFjZU5hbWVdOwogICAgICAgICB9CiAgICAgfQogCi0gICAgbmV4dCBp
ZiBpc01peGluSW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAgICBuZXh0IGlm
IGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlKTsKIAotICAgIG15ICRpc0NhbGxiYWNr
SW50ZXJmYWNlID0gaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250ZW50cyk7
CisgICAgbXkgJGlzQ2FsbGJhY2tJbnRlcmZhY2UgPSBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlE
TCgkaWRsRmlsZSk7CiAgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSkgewogICAgICAgICAk
aXNvU3Vic3BhY2VzSGVhZGVyQ29kZSAuPSAiICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Oklzb1N1
YnNwYWNlPiBtX3N1YnNwYWNlRm9yJHtpbnRlcmZhY2VOYW1lfTtcbiI7Ci0gICAgICAgIGlmIChp
bnRlcmZhY2VJc0l0ZXJhYmxlKCRpZGxGaWxlQ29udGVudHMpKSB7CisgICAgICAgIGlmIChjb250
YWluc0l0ZXJhYmxlSW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZSkpIHsKICAgICAgICAgICAgICRp
c29TdWJzcGFjZXNIZWFkZXJDb2RlIC49ICIgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SXNvU3Vi
c3BhY2U+IG1fc3Vic3BhY2VGb3Ike2ludGVyZmFjZU5hbWV9SXRlcmF0b3I7XG4iOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMTcwLDkgKzIxMiw5IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQg
a2V5cyAlaWRsRmlsZUgKICAgICAjIC0gaXMgYSBub24tY2FsbGJhY2sgaW50ZXJmYWNlIHRoYXQg
aXMgbm90IGRlY2xhcmVkIHdpdGggdGhlIFtMZWdhY3lOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5k
ZWQgYXR0cmlidXRlLCBhIGNvcnJlc3BvbmRpbmcKICAgICAjICAgcHJvcGVydHkgbXVzdCBleGlz
dCBvbiB0aGUgRUNNQVNjcmlwdCBlbnZpcm9ubWVudCdzIGdsb2JhbCBvYmplY3QuCiAgICAgIyBT
ZWUgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtaW50ZXJmYWNlcwotICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9t
SURMKCRpZGxGaWxlQ29udGVudHMpOworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBnZXRJ
bnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURMKCRpZGxGaWxlKTsKICAgICBpZiAoc2hv
dWxkRXhwb3NlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZXMpKSB7Ci0gICAgICAgIGlmICgh
JGlzQ2FsbGJhY2tJbnRlcmZhY2UgfHwgaW50ZXJmYWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUoJGlk
bEZpbGVDb250ZW50cykpIHsKKyAgICAgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSB8fCBj
b250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHNGcm9tSURMKCRpZGxGaWxlKSkgewogICAgICAg
ICAgICAgbXkgJGV4cG9zZWRBdHRyaWJ1dGUgPSAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4cG9z
ZWQifSB8fCAkdGVzdEdsb2JhbENvbnRleHROYW1lIHx8ICJXaW5kb3ciOwogICAgICAgICAgICAg
JGV4cG9zZWRBdHRyaWJ1dGUgPSBzdWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDEsIC0xKSBpZiBz
dWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDAsIDEpIGVxICIoIjsKICAgICAgICAgICAgIG15IEBn
bG9iYWxDb250ZXh0cyA9IHNwbGl0KCIsIiwgJGV4cG9zZWRBdHRyaWJ1dGUpOwpAQCAtMTkzLDcg
KzIzNSw3IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlaWRsRmlsZUgKICAgICAg
ICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENvbnRleHRO
YW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGRpZSAiVW5zdXBwb3J0ZWQgZ2xvYmFsIGNvbnRleHQgJyRnbG9iYWxDb250
ZXh0JyB1c2VkIGluIFtFeHBvc2VkXSBhdCAkaWRsRmlsZSI7CisgICAgICAgICAgICAgICAgICAg
IGRpZSAiVW5zdXBwb3J0ZWQgZ2xvYmFsIGNvbnRleHQgJyRnbG9iYWxDb250ZXh0JyB1c2VkIGlu
IFtFeHBvc2VkXSBhdCAkaWRsRmlsZU5hbWUiOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICR3aW5kb3dDb25zdHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlh
c2VzIGlmICR3aW5kb3dBbGlhc2VzOwpAQCAtMjExLDEzICsyNTMsMTMgQEAgR2VuZXJhdGVQYXJ0
aWFsSW50ZXJmYWNlKCJQYWludFdvcmtsZXRHbAogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAk
dGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVmaW5lZCgkdGVzdEdsb2JhbENv
bnRleHROYW1lKTsKIAogIyBSZXNvbHZlcyBwYXJ0aWFsIGludGVyZmFjZXMgYW5kIGluY2x1ZGUg
ZGVwZW5kZW5jaWVzLgotZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVzdXBwbGVtZW50
YWxEZXBlbmRlbmNpZXMpIHsKLSAgICBteSAkYmFzZUZpbGVzID0gJHN1cHBsZW1lbnRhbERlcGVu
ZGVuY2llc3skaWRsRmlsZX07Citmb3JlYWNoIG15ICRpZGxGaWxlUGF0aCAoc29ydCBrZXlzICVz
dXBwbGVtZW50YWxEZXBlbmRlbmNpZXMpIHsKKyAgICBteSAkYmFzZUZpbGVzID0gJHN1cHBsZW1l
bnRhbERlcGVuZGVuY2llc3skaWRsRmlsZVBhdGh9OwogICAgIGZvcmVhY2ggbXkgJGJhc2VGaWxl
IChAeyRiYXNlRmlsZXN9KSB7Ci0gICAgICAgIG15ICR0YXJnZXRJZGxGaWxlID0gJGludGVyZmFj
ZU5hbWVUb0lkbEZpbGV7JGJhc2VGaWxlfSBvciBkaWUgIiR7YmFzZUZpbGV9LmlkbCBub3QgZm91
bmQsIGJ1dCBpdCBpcyBzdXBwbGVtZW50ZWQgYnkgJGlkbEZpbGUiOwotICAgICAgICBwdXNoKEB7
JHN1cHBsZW1lbnRhbHN7JHRhcmdldElkbEZpbGV9fSwgJGlkbEZpbGUpOworICAgICAgICBteSAk
dGFyZ2V0SWRsRmlsZVBhdGggPSAkaW50ZXJmYWNlTmFtZVRvSWRsRmlsZVBhdGh7JGJhc2VGaWxl
fSBvciBkaWUgIiR7YmFzZUZpbGV9LmlkbCBub3QgZm91bmQsIGJ1dCBpdCBpcyBzdXBwbGVtZW50
ZWQgYnkgJGlkbEZpbGVQYXRoIjsKKyAgICAgICAgcHVzaChAeyRzdXBwbGVtZW50YWxzeyR0YXJn
ZXRJZGxGaWxlUGF0aH19LCAkaWRsRmlsZVBhdGgpOwogICAgIH0KLSAgICBkZWxldGUgJHN1cHBs
ZW1lbnRhbHN7JGlkbEZpbGV9OworICAgIGRlbGV0ZSAkc3VwcGxlbWVudGFsc3skaWRsRmlsZVBh
dGh9OwogfQogCiBpZiAoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpIHsKQEAgLTIzOCwxNyArMjgw
LDE3IEBAIGlmICgkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSkgewogIyBEb2N1bWVudC5pZGwgaXMg
c3VwcGxlbWVudGVkIGJ5IFMuaWRsLCBhbmQgRXZlbnQuaWRsIGlzIHN1cHBsZW1lbnRlZCBieSBu
byBJRExzLgogIyBUaGUgSURMIHRoYXQgc3VwcGxlbWVudHMgYW5vdGhlciBJREwgKGUuZy4gUC5p
ZGwpIG5ldmVyIGFwcGVhcnMgaW4gdGhlIGRlcGVuZGVuY3kgZmlsZS4KIG15ICRkZXBlbmRlbmNp
ZXMgPSAiIjsKLWZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlc3VwcGxlbWVudGFscykg
ewotICAgICRkZXBlbmRlbmNpZXMgLj0gIiRpZGxGaWxlIEB7JHN1cHBsZW1lbnRhbHN7JGlkbEZp
bGV9fVxuIjsKK2ZvcmVhY2ggbXkgJGlkbEZpbGVQYXRoIChzb3J0IGtleXMgJXN1cHBsZW1lbnRh
bHMpIHsKKyAgICAkZGVwZW5kZW5jaWVzIC49ICIkaWRsRmlsZVBhdGggQHskc3VwcGxlbWVudGFs
c3skaWRsRmlsZVBhdGh9fVxuIjsKIH0KIFdyaXRlRmlsZUlmQ2hhbmdlZCgkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUsICRkZXBlbmRlbmNpZXMpOwogCiBpZiAoJHN1cHBsZW1lbnRhbE1ha2Vm
aWxlRGVwcykgewogICAgIG15ICRtYWtlZmlsZURlcHMgPSAiIyBTdXBwbGVtZW50YWwgZGVwZW5k
ZW5jaWVzXG4iOwotICAgIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlc3VwcGxlbWVu
dGFscykgewotICAgICAgICBteSAkYmFzZW5hbWUgPSAkaWRsRmlsZVRvSW50ZXJmYWNlTmFtZXsk
aWRsRmlsZX07CisgICAgZm9yZWFjaCBteSAkaWRsRmlsZVBhdGggKHNvcnQga2V5cyAlc3VwcGxl
bWVudGFscykgeworICAgICAgICBteSAkYmFzZW5hbWUgPSAkaWRsRmlsZVBhdGhUb0ludGVyZmFj
ZU5hbWV7JGlkbEZpbGVQYXRofTsKIAotICAgICAgICBteSBAZGVwZW5kZW5jeUxpc3QgPSBtYXAg
eyBiYXNlbmFtZSgkXykgfSBAeyRzdXBwbGVtZW50YWxzeyRpZGxGaWxlfX07CisgICAgICAgIG15
IEBkZXBlbmRlbmN5TGlzdCA9IG1hcCB7IGJhc2VuYW1lKCRfKSB9IEB7JHN1cHBsZW1lbnRhbHN7
JGlkbEZpbGVQYXRofX07CiAgICAgICAgIG15IEBkZXBlbmRlbmNpZXMgPSBzb3J0KGtleXMgJXt7
IG1hcHskXz0+MX1AZGVwZW5kZW5jeUxpc3R9fSk7CiAKICAgICAgICAgJG1ha2VmaWxlRGVwcyAu
PSAiSlMke2Jhc2VuYW1lfS5oOiBAe2RlcGVuZGVuY2llc31cbiI7CkBAIC0zMDEsNyArMzQzLDcg
QEAgc3ViIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZQogICAgIFdyaXRlRmlsZUlmQ2hhbmdlZCgk
ZGVzdGluYXRpb25GaWxlLCAkY29udGVudHMpOwogCiAgICAgbXkgJGZ1bGxQYXRoID0gQ3dkOjpy
ZWFscGF0aCgkZGVzdGluYXRpb25GaWxlKTsKLSAgICAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVz
eyRmdWxsUGF0aH0gPSBbJGludGVyZmFjZU5hbWVdIGlmICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxl
eyRpbnRlcmZhY2VOYW1lfTsKKyAgICAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRmdWxsUGF0
aH0gPSBbJGludGVyZmFjZU5hbWVdIGlmICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aHskaW50
ZXJmYWNlTmFtZX07CiB9CiAKIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yQXR0cmlidXRlcwpAQCAt
MzUxLDI3ICszOTMsOTUgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JBdHRyaWJ1dGVzCiAgICAg
cmV0dXJuICgkY29kZSwgJHdpbmRvd0FsaWFzZXNDb2RlKTsKIH0KIAotc3ViIGdldEZpbGVDb250
ZW50cworc3ViIHRyaW0KIHsKLSAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OworICAgIG15ICRzdHJp
bmcgPSBzaGlmdDsKKyAgICAkc3RyaW5nID1+IHMvXlxzK3xccyskLy9nOworICAgIHJldHVybiAk
c3RyaW5nOworfQorCitzdWIgbGlzdHNBcmVJZGVudGljYWwKK3sKKyAgICBteSAoJGxpc3QxLCAk
bGlzdDIpID0gQF87CisgICAgCisgICAgaWYgKHNjYWxhcihAeyRsaXN0MX0pICE9IHNjYWxhcihA
eyRsaXN0Mn0pKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICBmb3IgbXkg
JGkgKDAgLi4gJCN7JGxpc3QxfSkgeworICAgICAgICBpZiAoJGxpc3QxLT5bJGldIG5lICRsaXN0
Mi0+WyRpXSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICByZXR1cm4gMTsKK30KIAotICAgIG9wZW4gbXkgJGZpbGUsICI8IiwgJGlkbEZpbGUgb3IgZGll
ICJDb3VsZCBub3Qgb3BlbiAkaWRsRmlsZSBmb3IgcmVhZGluZzogJCEiOworc3ViIHByb2Nlc3NJ
REwKK3sKKyAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkZmlsZVBhdGggPSBzaGlm
dDsKKworICAgIG15ICRpZGxGaWxlID0gSURMRmlsZS0+bmV3KCk7CisgICAgJGlkbEZpbGUtPmZp
bGVOYW1lKCRmaWxlTmFtZSk7CisgICAgCisgICAgbXkgJHByaW1hcnlEZWNsYXJhdGlvbk5hbWUg
PSBmaWxlcGFyc2UoYmFzZW5hbWUoJGZpbGVOYW1lKSwgIi5pZGwiKTsKKyAgICAkaWRsRmlsZS0+
cHJpbWFyeURlY2xhcmF0aW9uTmFtZSgkcHJpbWFyeURlY2xhcmF0aW9uTmFtZSk7CisKKyAgICBv
cGVuIG15ICRmaWxlLCAiPCIsICRmaWxlUGF0aCBvciBkaWUgIkNvdWxkIG5vdCBvcGVuICRpZGxG
aWxlIGZvciByZWFkaW5nOiAkISI7CiAgICAgbXkgQGxpbmVzID0gPCRmaWxlPjsKICAgICBjbG9z
ZSAkZmlsZTsKIAorICAgICMgRklYTUU6IEl0IHdvdWxkIGJlIHVzZWZ1bCB0byByZW1vdmUgYWxs
IGMvYysrIHN0eWxlIGNvbW1lbnRzIGFzIHdlbGwgdG8gcmVkdWNlIGZhbHNlIHBhcnNlcy4gUGVy
aGFwcyB3ZSBjYW4gdXNlIHByZXByb2Nlc3Nvci5wbSBpZiBpdCBpcyBub3QgdG9vIGV4cGVuc2l2
ZS4KICAgICAjIEZpbHRlciBvdXQgcHJlcHJvY2Vzc29yIGxpbmVzLgogICAgIEBsaW5lcyA9IGdy
ZXAoIS9eXHMqIy8sIEBsaW5lcyk7CiAKLSAgICByZXR1cm4gam9pbignJywgQGxpbmVzKTsKKyAg
ICAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzKGpvaW4oJycsIEBsaW5lcykpOworCisgICAgaWYgKCR2
YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgbXkgJHBhcnNlciA9IElETFBhcnNlci0+
bmV3KDEpOworICAgICAgICAkaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQoJHBhcnNlci0+UGFyc2Uo
JGZpbGVQYXRoLCAkZGVmaW5lcywgJHByZXByb2Nlc3NvciwgJGlkbEF0dHJpYnV0ZXMpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gJGlkbEZpbGU7CiB9CiAKIHN1YiBnZXRQYXJ0aWFsTmFtZXNGcm9t
SURMCiB7Ci0gICAgbXkgJGZpbGVDb250ZW50cyA9IHNoaWZ0OworICAgIG15ICRpZGxGaWxlID0g
c2hpZnQ7CisKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsK
KwogICAgIG15IEBwYXJ0aWFsTmFtZXMgPSAoKTsKLSAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9
fiAvcGFydGlhbFxzKyhpbnRlcmZhY2V8ZGljdGlvbmFyeSlccysoXHcrKS9tZykgeworICAgIHdo
aWxlICgkZmlsZUNvbnRlbnRzID1+IC9wYXJ0aWFsXHMrKGludGVyZmFjZXxkaWN0aW9uYXJ5fG5h
bWVzcGFjZSlccysoXHcrKS9tZykgewogICAgICAgICBwdXNoKEBwYXJ0aWFsTmFtZXMsICQyKTsK
ICAgICB9CisgICAgCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAg
cHJpbnQoIlZhbGlkYXRpbmcgZ2V0UGFydGlhbE5hbWVzRnJvbUlETCBmb3IgIiAuICRpZGxGaWxl
LT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOworCisgICAgICAg
IG15IEBwYXJ0aWFsc0Zyb21QYXJzZWREb2N1bWVudCA9ICgpOworICAgICAgICBmb3JlYWNoIG15
ICRpbnRlcmZhY2UgKEB7JGlkbEZpbGUtPnBhcnNlZERvY3VtZW50LT5pbnRlcmZhY2VzfSkgewor
ICAgICAgICAgICAgcHVzaChAcGFydGlhbHNGcm9tUGFyc2VkRG9jdW1lbnQsICRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWUpIGlmICRpbnRlcmZhY2UtPmlzUGFydGlhbDsKKyAgICAgICAgfQorICAgICAg
ICBmb3JlYWNoIG15ICRkaWN0aW9uYXJ5IChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+ZGlj
dGlvbmFyaWVzfSkgeworICAgICAgICAgICAgcHVzaChAcGFydGlhbHNGcm9tUGFyc2VkRG9jdW1l
bnQsICRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lKSBpZiAkZGljdGlvbmFyeS0+aXNQYXJ0aWFsOwor
ICAgICAgICB9CisgICAgICAgIGZvcmVhY2ggbXkgJG5hbWVzcGFjZSAoQHskaWRsRmlsZS0+cGFy
c2VkRG9jdW1lbnQtPm5hbWVzcGFjZXN9KSB7CisgICAgICAgICAgICBwdXNoKEBwYXJ0aWFsc0Zy
b21QYXJzZWREb2N1bWVudCwgJG5hbWVzcGFjZS0+bmFtZSkgaWYgJG5hbWVzcGFjZS0+aXNQYXJ0
aWFsOworICAgICAgICB9CisKKyAgICAgICAgbXkgQHNvcnRlZFBhcnRpYWxOYW1lcyA9IHNvcnQg
QHBhcnRpYWxOYW1lczsKKyAgICAgICAgbXkgQHNvcnRlZFBhcnRpYWxzRnJvbVBhcnNlZERvY3Vt
ZW50ID0gc29ydCBAcGFydGlhbHNGcm9tUGFyc2VkRG9jdW1lbnQ7CisKKyAgICAgICAgbG9jYWwg
JERhdGE6OkR1bXBlcjo6VGVyc2UgPSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJ
bmRlbnQgPSAwOworICAgICAgICB1bmxlc3MgKGxpc3RzQXJlSWRlbnRpY2FsKFxAc29ydGVkUGFy
dGlhbE5hbWVzLCBcQHNvcnRlZFBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50KSkgeworICAgICAg
ICAgICAgZGllICJGQUlMVVJFOiBQYXJ0aWFsIGRlY2xhcmF0aW9ucyBmcm9tIHJlZ3VsYXIgZXhw
cmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZFBhcnRpYWxOYW1lcykgLiAi
KSBkb24ndCBtYXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBz
b3J0ZWRQYXJ0aWFsc0Zyb21QYXJzZWREb2N1bWVudCkgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxl
TmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIFBhcnRpYWwg
ZGVjbGFyYXRpb25zIGZyb20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuIER1
bXBlcihAc29ydGVkUGFydGlhbE5hbWVzKSAuICIpIG1hdGNoIHRob3NlIGZyb20gdmFsaWRhdGlv
biBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZFBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50KSAu
ICIpLlxuIjsKKyAgICB9CisgICAgCiAgICAgcmV0dXJuIFxAcGFydGlhbE5hbWVzOwogfQogCkBA
IC0zNzksNTQgKzQ4OSwxNzQgQEAgc3ViIGdldFBhcnRpYWxOYW1lc0Zyb21JREwKICMgaHR0cHM6
Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW5jbHVkZXMtc3RhdGVtZW50CiBzdWIgZ2V0SW5j
bHVkZWRJbnRlcmZhY2VzRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsK
KyAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7
CiAKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKKwogICAg
IG15IEBpbmNsdWRlZEludGVyZmFjZXMgPSAoKTsKICAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9
fiAvXlxzKihcdyspXHMraW5jbHVkZXNccysoXHcrKVxzKjsvbWcpIHsKICAgICAgICAgZGllICJJ
ZGVudGlmaWVyIG9uIHRoZSBsZWZ0IG9mIHRoZSAnaW5jbHVkZXMnIHN0YXRlbWVudCBzaG91bGQg
YmUgJGludGVyZmFjZU5hbWUgaW4gJGludGVyZmFjZU5hbWUuaWRsLCBidXQgZm91bmQgJDEiIGlm
ICQxIG5lICRpbnRlcmZhY2VOYW1lOwogICAgICAgICBwdXNoKEBpbmNsdWRlZEludGVyZmFjZXMs
ICQyKTsKICAgICB9CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgeworICAgICAg
ICBwcmludCgiVmFsaWRhdGluZyBnZXRJbmNsdWRlZEludGVyZmFjZXNGcm9tSURMIGZvciAiIC4g
JGlkbEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0IHZhbGlkYXRpb24gcGFyc2VyLlxuIik7CisK
KyAgICAgICAgbXkgQGluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCA9ICgpOwor
ICAgICAgICBmb3JlYWNoIG15ICRpbmNsdWRlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+
aW5jbHVkZXN9KSB7CisgICAgICAgICAgICBwdXNoKEBpbmNsdWRlZEludGVyZmFjZXNGcm9tUGFy
c2VkRG9jdW1lbnQsICRpbmNsdWRlLT5taXhpbklkZW50aWZpZXIpOworICAgICAgICB9CisKKyAg
ICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcyA9IHNvcnQgQGluY2x1ZGVkSW50ZXJm
YWNlczsKKyAgICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1
bWVudCA9IHNvcnQgQGluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudDsKKworICAg
ICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpUZXJzZSA9IDE7CisgICAgICAgIGxvY2FsICREYXRh
OjpEdW1wZXI6OkluZGVudCA9IDA7CisKKyAgICAgICAgdW5sZXNzIChsaXN0c0FyZUlkZW50aWNh
bChcQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcywgXEBzb3J0ZWRJbmNsdWRlZEludGVyZmFjZXNG
cm9tUGFyc2VkRG9jdW1lbnQpKSB7CisgICAgICAgICAgICBkaWUgIkZBSUxVUkU6IEluY2x1ZGVk
IGludGVyZmFjZXMgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gRHVt
cGVyKEBzb3J0ZWRJbmNsdWRlZEludGVyZmFjZXMpIC4gIikgZG9uJ3QgbWF0Y2ggdGhvc2UgZnJv
bSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkSW5jbHVkZWRJbnRlcmZhY2Vz
RnJvbVBhcnNlZERvY3VtZW50KSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIl0iOwor
ICAgICAgICB9CisgICAgICAgIHByaW50ICJTVUNDRVNTISBJbmNsdWRlZCBpbnRlcmZhY2VzIGZy
b20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkSW5j
bHVkZWRJbnRlcmZhY2VzKSAuICIpIG1hdGNoIHRob3NlIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIg
KCIgLiBEdW1wZXIoQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCkg
LiAiKS5cbiI7CisgICAgfQorCiAgICAgcmV0dXJuIFxAaW5jbHVkZWRJbnRlcmZhY2VzCiB9CiAK
IHN1YiBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMg
PSBzaGlmdDsKLSAgICByZXR1cm4gKCRmaWxlQ29udGVudHMgPX4gL2NhbGxiYWNrXHMraW50ZXJm
YWNlXHMrXHcrL2dzKTsKKyAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OworCisgICAgbXkgJGZpbGVD
b250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29udGVudHM7CisgICAgbXkgJGNvbnRhaW5zQ2FsbGJh
Y2tJbnRlcmZhY2UgPSAoJGZpbGVDb250ZW50cyA9fiAvY2FsbGJhY2tccytpbnRlcmZhY2Vccytc
dysvZ3MpOworCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgcHJp
bnQoIlZhbGlkYXRpbmcgaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwgZm9yICIgLiAkaWRsRmls
ZS0+ZmlsZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAg
ICBteSAkY29udGFpbnNDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA9IDA7Cisg
ICAgICAgIGZvcmVhY2ggbXkgJGludGVyZmFjZSAoQHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQt
PmludGVyZmFjZXN9KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+aXNDYWxsYmFjaykg
eworICAgICAgICAgICAgICAgICRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERv
Y3VtZW50ID0gMTsKKyAgICAgICAgICAgICAgICBsYXN0OworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgdW5sZXNzICgkY29udGFpbnNDYWxsYmFja0ludGVyZmFjZSA9PSAkY29u
dGFpbnNDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCApIHsKKyAgICAgICAgICAg
IGRpZSAiRkFJTFVSRTogRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGEgY2FsbGJh
Y2sgaW50ZXJmYWNlIGZyb20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuICgk
Y29udGFpbnNDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2Vzbid0IG1h
dGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdGhlIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRj
b250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8i
KSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIl0uIjsKKyAgICAgICAgfQorICAgICAg
ICBwcmludCAiU1VDQ0VTUyEgRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGEgY2Fs
bGJhY2sgaW50ZXJmYWNlIGZyb20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAu
ICgkY29udGFpbnNDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2VzIG1h
dGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdGhlIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRj
b250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8i
KSAuICIpLlxuIjsKKyAgICB9CisKKyAgICByZXR1cm4gJGNvbnRhaW5zQ2FsbGJhY2tJbnRlcmZh
Y2UKIH0KIAogc3ViIGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMCiB7Ci0gICAgbXkgJGZpbGVDb250
ZW50cyA9IHNoaWZ0OwotICAgIHJldHVybiAoJGZpbGVDb250ZW50cyA9fiAvaW50ZXJmYWNlXHMr
bWl4aW5ccytcdysvZ3MpOworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmls
ZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKKyAgICBteSAkY29udGFpbnNNaXhp
bkludGVyZmFjZSA9ICgkZmlsZUNvbnRlbnRzID1+IC9pbnRlcmZhY2VccyttaXhpblxzK1x3Ky9n
cyk7CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgeworICAgICAgICBwcmludCgi
VmFsaWRhdGluZyBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5m
aWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOworCisgICAgICAgIG15
ICRjb250YWluc01peGluSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID0gMDsKKyAgICAgICAg
Zm9yZWFjaCBteSAkaW50ZXJmYWNlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW50ZXJm
YWNlc30pIHsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5pc01peGluKSB7CisgICAgICAg
ICAgICAgICAgJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPSAxOwor
ICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICB1bmxlc3MgKCRjb250YWluc01peGluSW50ZXJmYWNlID09ICRjb250YWluc01peGluSW50ZXJm
YWNlRnJvbVBhcnNlZERvY3VtZW50ICkgeworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRl
cm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhlcmUgaXMgYSBtaXhpbiBpbnRlcmZhY2UgZnJvbSByZWd1
bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc01peGluSW50ZXJmYWNl
ID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXNuJ3QgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJv
bSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNNaXhpbkludGVyZmFjZUZyb21QYXJz
ZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxlTmFtZSAu
ICJdLiI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIERldGVybWluYXRpb24g
b2Ygd2hldGhlciB0aGVyZSBpcyBhIG1peGluIGludGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVz
c2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2UgPyAiWUVTIiA6
ICJOTyIpIC4gIikgZG9lcyBtYXRjaCB0aGUgZGV0ZXJtaW5hdGlvbiBmcm9tIHZhbGlkYXRpb24g
cGFyc2VyICgiIC4gKCRjb250YWluc01peGluSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8g
IllFUyIgOiAiTk8iKSAuICIpLlxuIjsKKyAgICB9CisKKyAgICByZXR1cm4gJGNvbnRhaW5zTWl4
aW5JbnRlcmZhY2U7CiB9CiAKLXN1YiBpbnRlcmZhY2VJc0l0ZXJhYmxlCitzdWIgY29udGFpbnNJ
dGVyYWJsZUludGVyZmFjZUZyb21JREwKIHsKLSAgICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7
Ci0gICAgcmV0dXJuICgkZmlsZUNvbnRlbnRzID1+IC9pdGVyYWJsZVxzKjxccypcdytccyovZ3Mp
OworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlk
bEZpbGUtPmZpbGVDb250ZW50czsKKyAgICBteSAkY29udGFpbnNJdGVyYWJsZUludGVyZmFjZSA9
ICgkZmlsZUNvbnRlbnRzID1+IC9pdGVyYWJsZVxzKjxccypcdytccyovZ3MpOworCisgICAgaWYg
KCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgY29u
dGFpbnNJdGVyYWJsZUludGVyZmFjZUZyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSAkY29udGFp
bnNJdGVyYWJsZUludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA9IDA7CisgICAgICAgIGZvcmVh
Y2ggbXkgJGludGVyZmFjZSAoQHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQtPmludGVyZmFjZXN9
KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+aXRlcmFibGUpIHsKKyAgICAgICAgICAg
ICAgICAkY29udGFpbnNJdGVyYWJsZUludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA9IDE7Cisg
ICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHVubGVzcyAoJGNvbnRhaW5zSXRlcmFibGVJbnRlcmZhY2UgPT0gJGNvbnRhaW5zSXRlcmFibGVJ
bnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgKSB7CisgICAgICAgICAgICBkaWUgIkZBSUxVUkU6
IERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBhbiBpdGVyYWJsZSBpbnRlcmZhY2Ug
ZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc0l0ZXJh
YmxlSW50ZXJmYWNlID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXNuJ3QgbWF0Y2ggdGhlIGRldGVy
bWluYXRpb24gZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJdGVyYWJsZUlu
dGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKSBbIiAuICRpZGxG
aWxlLT5maWxlTmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1Mh
IERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBhbiBpdGVyYWJsZSBpbnRlcmZhY2Ug
ZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc0l0ZXJh
YmxlSW50ZXJmYWNlID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXMgbWF0Y2ggdGhlIGRldGVybWlu
YXRpb24gZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJdGVyYWJsZUludGVy
ZmFjZUZyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKS5cbiI7CisgICAgfQor
CisgICAgcmV0dXJuICRjb250YWluc0l0ZXJhYmxlSW50ZXJmYWNlOwogfQogCi1zdWIgY29udGFp
bnNJbnRlcmZhY2VGcm9tSURMCitzdWIgY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKKyAgICBteSAkaWRs
RmlsZSA9IHNoaWZ0OworCisgICAgbXkgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29u
dGVudHM7CisgICAgbXkgJGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZSA9ICgk
ZmlsZUNvbnRlbnRzID1+IC9cYihjYWxsYmFjayBpbnRlcmZhY2V8aW50ZXJmYWNlKVxzKyhcdysp
L2dzKTsKKworICAgIGlmICgkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgICAgIHByaW50
KCJWYWxpZGF0aW5nIGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21JREwg
Zm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIu
XG4iKTsKKworICAgICAgICBteSAkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNl
RnJvbVBhcnNlZERvY3VtZW50ID0gKEB7JGlkbEZpbGUtPnBhcnNlZERvY3VtZW50LT5pbnRlcmZh
Y2VzfSA+IDApOworCisgICAgICAgIHVubGVzcyAoJGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFj
a0ludGVyZmFjZSA9PSAkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNlRnJvbVBh
cnNlZERvY3VtZW50ICkgeworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRlcm1pbmF0aW9u
IG9mIHdoZXRoZXIgdGhlcmUgaXMgYW4gaW50ZXJmYWNlIG9yIGNhbGxiYWNrIGludGVyZmFjZSBm
cm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zSW50ZXJm
YWNlT3JDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2Vzbid0IG1hdGNo
IHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiAoJGNvbnRhaW5z
SW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDog
Ik5PIikgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAg
ICAgICAgcHJpbnQgIlNVQ0NFU1MhIERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBh
biBpbnRlcmZhY2Ugb3IgY2FsbGJhY2sgaW50ZXJmYWNlIGZyb20gcmVndWxhciBleHByZXNzaW9u
IGJhc2VkIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNl
ID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXMgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJvbSB2
YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpLlxuIjsKKyAgICB9CiAK
LSAgICByZXR1cm4gMSBpZiAkZmlsZUNvbnRlbnRzID1+IC9cYmNhbGxiYWNrXHMraW50ZXJmYWNl
XHMrXHcrL2dzOwotICAgIHJldHVybiAxIGlmICRmaWxlQ29udGVudHMgPX4gL1xiaW50ZXJmYWNl
XHMrXHcrL2dzOwotICAgIHJldHVybiAwOworICAgIHJldHVybiAkY29udGFpbnNJbnRlcmZhY2VP
ckNhbGxiYWNrSW50ZXJmYWNlOwogfQogCi1zdWIgdHJpbQorc3ViIGNvbnRhaW5zSW50ZXJmYWNl
V2l0aENvbnN0YW50c0Zyb21JREwKIHsKLSAgICBteSAkc3RyaW5nID0gc2hpZnQ7Ci0gICAgJHN0
cmluZyA9fiBzL15ccyt8XHMrJC8vZzsKLSAgICByZXR1cm4gJHN0cmluZzsKKyAgICBteSAkaWRs
RmlsZSA9IHNoaWZ0OworCisgICAgbXkgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29u
dGVudHM7CisgICAgbXkgJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50cyA9ICgkZmlsZUNv
bnRlbnRzID1+IC9ccytjb25zdFtcc1x3XSs9XHMrW1x3XSs7L2dzKTsKKworICAgIGlmICgkdmFs
aWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgICAgIHByaW50KCJWYWxpZGF0aW5nIGNvbnRhaW5z
SW50ZXJmYWNlV2l0aENvbnN0YW50c0Zyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSAkY29udGFp
bnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzRnJvbVBhcnNlZERvY3VtZW50ID0gMDsKKyAgICAgICAg
Zm9yZWFjaCBteSAkaW50ZXJmYWNlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW50ZXJm
YWNlc30pIHsKKyAgICAgICAgICAgIGlmIChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30gPiAwKSB7
CisgICAgICAgICAgICAgICAgJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50c0Zyb21QYXJz
ZWREb2N1bWVudCA9IDE7CisgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIHVubGVzcyAoJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50
cyA9PSAkY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzRnJvbVBhcnNlZERvY3VtZW50ICkg
eworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRlcm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhl
cmUgaXMgYW4gaW50ZXJmYWNlIHdpdGggY29uc3RhbnRzIGZyb20gcmVndWxhciBleHByZXNzaW9u
IGJhc2VkIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzID8gIllF
UyIgOiAiTk8iKSAuICIpIGRvZXNuJ3QgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJvbSB2YWxp
ZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzRnJvbVBh
cnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1l
IC4gIl0uIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCAiU1VDQ0VTUyEgRGV0ZXJtaW5hdGlv
biBvZiB3aGV0aGVyIHRoZXJlIGlzIGFuIGludGVyZmFjZSB3aXRoIGNvbnN0YW50cyBmcm9tIHJl
Z3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zSW50ZXJmYWNlV2l0
aENvbnN0YW50cyA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2VzIG1hdGNoIHRoZSBkZXRlcm1pbmF0
aW9uIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENv
bnN0YW50c0Zyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKS5cbiI7CisgICAg
fQorCisgICAgcmV0dXJuICRjb250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHM7CiB9CiAKIHN1
YiBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURMCiB7Ci0gICAgbXkgJGZpbGVD
b250ZW50cyA9IHNoaWZ0OworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmls
ZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKIAogICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZXMgPSB7fTsKIApAQCAtNDUzLDM0ICs2ODMsOTIgQEAgc3ViIGdldEludGVyZmFjZUV4
dGVuZGVkQXR0cmlidXRlc0Zyb21JRAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuICRl
eHRlbmRlZEF0dHJpYnV0ZXM7Ci19CisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsK
KyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgZ2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVz
RnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9u
IHBhcnNlci5cbiIpOwogCi1zdWIgaW50ZXJmYWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUKLXsKLSAg
ICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7CisgICAgICAgIG15ICRwcmltYXJ5SW50ZXJmYWNl
OworICAgICAgICBmb3JlYWNoIG15ICRpbnRlcmZhY2UgKEB7JGlkbEZpbGUtPnBhcnNlZERvY3Vt
ZW50LT5pbnRlcmZhY2VzfSkgeworICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnR5cGUtPm5h
bWUgZXEgJGlkbEZpbGUtPnByaW1hcnlEZWNsYXJhdGlvbk5hbWUpIHsKKyAgICAgICAgICAgICAg
ICAkcHJpbWFyeUludGVyZmFjZSA9ICRpbnRlcmZhY2U7CisgICAgICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgcmV0dXJuICRmaWxlQ29udGVudHMgPX4g
L1xzK2NvbnN0W1xzXHddKz1ccytbXHddKzsvZ3M7Ci19CisgICAgICAgICMgRklYTUU6IENvbXBh
cmluZyB0aGUgZGVlcCBzdHJ1Y3R1cmUgb2YgdGhlIGV4dGVuZGVkIGF0dHJpYnV0ZXMgaXMgc3Vp
dGFibHkgY29tcGxleCB0aGF0IGZvciBub3cKKyAgICAgICAgIyB3ZSBvbmx5IHZhbGlkYXRlIHRo
YXQgYm90aCBwYXJzZXJzIHByb2R1Y2UgdGhlIHNhbWUga2V5cy4KIAotc3ViIHNob3VsZEV4cG9z
ZUludGVyZmFjZQotewotICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBzaGlmdDsKKyAgICAg
ICAgbXkgQHNvcnRlZEV4dGVuZGVkQXR0cmlidXRlS2V5cyA9IHNvcnQga2V5cyAleyRleHRlbmRl
ZEF0dHJpYnV0ZXN9OworICAgICAgICBteSBAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1dGVLZXlzRnJv
bVBhcnNlZERvY3VtZW50ID0gc29ydCBrZXlzICV7JHByaW1hcnlJbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlc307CiAKLSAgICByZXR1cm4gISRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QifTsKKyAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VGVyc2Ug
PSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOworCisgICAgICAg
IHVubGVzcyAobGlzdHNBcmVJZGVudGljYWwoXEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0ZUtleXMs
IFxAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSkgeworICAg
ICAgICAgICAgZGllICJGQUlMVVJFOiBFeHRlbmRlZCBhdHRyaWJ1dGVzIGZvciB0aGUgcHJpbWFy
eSBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gRHVt
cGVyKEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0ZUtleXMpIC4gIikgZG9uJ3QgbWF0Y2ggdGhvc2Ug
ZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1
dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4g
Il0iOworICAgICAgICB9CisgICAgICAgIHByaW50ICJTVUNDRVNTISBFeHRlbmRlZCBhdHRyaWJ1
dGVzIGZvciB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFz
ZWQgcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0ZUtleXMpIC4gIikg
bWF0Y2ggdGhvc2UgZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkRXh0
ZW5kZWRBdHRyaWJ1dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpLlxuIjsKKyAgICB9CisK
KyAgICByZXR1cm4gJGV4dGVuZGVkQXR0cmlidXRlczsKIH0KIAotc3ViIHVwZGF0ZURpY3Rpb25h
cnlEZXBlbmRlbmNpZXMKK3N1YiBnZXRVbmRlZmluZWRCYXNlRGljdGlvbmFyaWVzRnJvbUlETAog
ewotICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKICAgICBteSAkaWRsRmlsZSA9IHNoaWZ0
OwogCi0gICAgbXkgJGRpY3Rpb25hcnlOYW1lID0gZmlsZXBhcnNlKGJhc2VuYW1lKCRpZGxGaWxl
KSwgIi5pZGwiKTsKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50
czsKIAorICAgIG15IEBkaWN0aW9uYXJ5TmFtZXMgPSAoKTsKKyAgICB3aGlsZSAoJGZpbGVDb250
ZW50cyA9fiAvXHMqZGljdGlvbmFyeVxzKyhcdyspXHMqL21nKSB7CisgICAgICAgIHB1c2goQGRp
Y3Rpb25hcnlOYW1lcywgJDEpCisgICAgfQorCisgICAgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxl
LT5maWxlQ29udGVudHM7CiAgICAgbXkgQGJhc2VEaWN0aW9uYXJpZXMgPSAoKTsKICAgICB3aGls
ZSAoJGZpbGVDb250ZW50cyA9fiAvXHMqZGljdGlvbmFyeVxzKyhcdyspXHMrOlxzKyhcdyspXHMq
L21nKSB7Ci0gICAgICAgIG5leHQgaWYgISRpbnRlcmZhY2VOYW1lVG9JZGxGaWxleyQyfSB8fCAo
Z3JlcCB7ICRfIGVxICQyIH0gQGJhc2VEaWN0aW9uYXJpZXMpOworICAgICAgICBuZXh0IGlmIChn
cmVwIHsgJF8gZXEgJDIgfSBAZGljdGlvbmFyeU5hbWVzKTsKKyAgICAgICAgbmV4dCBpZiAoZ3Jl
cCB7ICRfIGVxICQyIH0gQGJhc2VEaWN0aW9uYXJpZXMpOwogICAgICAgICBwdXNoKEBiYXNlRGlj
dGlvbmFyaWVzLCAkMik7CiAgICAgfQotICAgICRkaWN0aW9uYXJ5RGVwZW5kZW5jaWVzeyRkaWN0
aW9uYXJ5TmFtZX0gPSAoam9pbigiLmlkbCAiLCBAYmFzZURpY3Rpb25hcmllcykgLiAiLmlkbCIp
IGlmIEBiYXNlRGljdGlvbmFyaWVzOworCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIp
IHsKKyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgZ2V0VW5kZWZpbmVkQmFzZURpY3Rpb25hcmll
c0Zyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlv
biBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSBAZGljdGlvbmFyeU5hbWVzRnJvbVBhcnNlZERv
Y3VtZW50ID0gKCk7CisgICAgICAgIGZvcmVhY2ggbXkgJGRpY3Rpb25hcnkgKEB7JGlkbEZpbGUt
PnBhcnNlZERvY3VtZW50LT5kaWN0aW9uYXJpZXN9KSB7CisgICAgICAgICAgICBwdXNoKEBkaWN0
aW9uYXJ5TmFtZXNGcm9tUGFyc2VkRG9jdW1lbnQsICRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lKTsK
KyAgICAgICAgfQorCisgICAgICAgIG15IEBiYXNlRGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3Vt
ZW50ID0gKCk7CisgICAgICAgIGZvcmVhY2ggbXkgJGRpY3Rpb25hcnkgKEB7JGlkbEZpbGUtPnBh
cnNlZERvY3VtZW50LT5kaWN0aW9uYXJpZXN9KSB7CisgICAgICAgICAgICAjIFNraXAgZGljdGlv
bmFyaWVzIHdpdGhvdXQgYSBiYXNlIHR5cGUuCisgICAgICAgICAgICBuZXh0IGlmICEkZGljdGlv
bmFyeS0+cGFyZW50VHlwZTsKKyAgICAgICAgICAgICMgU2tpcCBkaWN0aW9uYXJpZXMgdGhhdCBo
YXZlIHRoZWlyIGJhc2UgdHlwZSBkZWZpbmVkIGluIHRoaXMgZG9jdW1lbnQuCisgICAgICAgICAg
ICBuZXh0IGlmIChncmVwIHsgJF8gZXEgJGRpY3Rpb25hcnktPnBhcmVudFR5cGUtPm5hbWUgfSBA
ZGljdGlvbmFyeU5hbWVzRnJvbVBhcnNlZERvY3VtZW50KTsKKyAgICAgICAgICAgICMgU2tpcCBk
aWN0aW9uYXJpZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgbGlzdC4KKyAg
ICAgICAgICAgIG5leHQgaWYgKGdyZXAgeyAkXyBlcSAkZGljdGlvbmFyeS0+cGFyZW50VHlwZS0+
bmFtZSB9IEBiYXNlRGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3VtZW50KTsKKworICAgICAgICAg
ICAgcHVzaChAYmFzZURpY3Rpb25hcmllc0Zyb21QYXJzZWREb2N1bWVudCwgJGRpY3Rpb25hcnkt
PnBhcmVudFR5cGUtPm5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgbXkgQHNvcnRlZEJhc2VE
aWN0aW9uYXJpZXMgPSBzb3J0IEBiYXNlRGljdGlvbmFyaWVzOworICAgICAgICBteSBAc29ydGVk
QmFzZURpY3Rpb25hcmllc0Zyb21QYXJzZWREb2N1bWVudCA9IHNvcnQgQGJhc2VEaWN0aW9uYXJp
ZXNGcm9tUGFyc2VkRG9jdW1lbnQ7CisKKyAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VGVy
c2UgPSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOworCisgICAg
ICAgIHVubGVzcyAobGlzdHNBcmVJZGVudGljYWwoXEBzb3J0ZWRCYXNlRGljdGlvbmFyaWVzLCBc
QHNvcnRlZEJhc2VEaWN0aW9uYXJpZXNGcm9tUGFyc2VkRG9jdW1lbnQpKSB7CisgICAgICAgICAg
ICBkaWUgIkZBSUxVUkU6IFVuZGVmaW5lZCBiYXNlIGRpY3Rpb25hcmllcyBmcm9tIHJlZ3VsYXIg
ZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZEJhc2VEaWN0aW9uYXJp
ZXMpIC4gIikgZG9uJ3QgbWF0Y2ggdGhvc2UgZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1
bXBlcihAc29ydGVkQmFzZURpY3Rpb25hcmllc0Zyb21QYXJzZWREb2N1bWVudCkgLiAiKSBbIiAu
ICRpZGxGaWxlLT5maWxlTmFtZSAuICJdIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCAiU1VD
Q0VTUyEgVW5kZWZpbmVkIGJhc2UgZGljdGlvbmFyaWVzIGZyb20gcmVndWxhciBleHByZXNzaW9u
IGJhc2VkIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkQmFzZURpY3Rpb25hcmllcykgLiAiKSBt
YXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRCYXNl
RGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpLlxuIjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gXEBiYXNlRGljdGlvbmFyaWVzOworfQorCitzdWIgc2hvdWxkRXhwb3NlSW50ZXJmYWNl
Cit7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHNoaWZ0OworCisgICAgcmV0dXJuICEk
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0In07CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5k
ZW5jaWVzLmRlcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAkocmV2aXNpb24gMjY2NjgzKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVu
Y2llcy5kZXAJKHdvcmtpbmcgY29weSkKQEAgLTI2NywzICsyNjcsNSBAQCBXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgogIyBEaWN0aW9uYXJpZXMgZGVwZW5kZW5jaWVzCiBKU1Rl
c3REZXJpdmVkRGljdGlvbmFyeS5jcHA6IFRlc3RJbmhlcml0ZWREaWN0aW9uYXJ5LmlkbAogSlNU
ZXN0RGVyaXZlZERpY3Rpb25hcnkyLmNwcDogVGVzdEluaGVyaXRlZERpY3Rpb25hcnkuaWRsIFRl
c3RJbmhlcml0ZWREaWN0aW9uYXJ5Mi5pZGwKK0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOiBF
dmVudEluaXQuaWRsCitKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOiBFdmVudEluaXQu
aWRsCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjY2ODMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAyMC0wOS0wNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgW1dlYklETF0gQWRkIG1vZGUgdG8gcHJlcHJvY2Vzcy1pZGxzLnBsIHRvIHZh
bGlkYXRlIGZhc3QgcmVnZXggYmFzZWQgc2Nhbm5lciB3aXRoIHRoZSBub3JtYWwgSURMIHBhcnNl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAgICAgIChCaW5kaW5nc1Rlc3RzLmdl
bmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAgICAgICAgVXBkYXRlIGZvciByZW5h
bWUgZnJvbSBpZGxGaWxlc0xpc3QgdG8gaWRsRmlsZU5hbWVzTGlzdCBhbmQgdG8gcGFzcyB0aGUg
aWRsQXR0cmlidXRlc0ZpbGUgYXJndW1lbnQuIAorCiAyMDIwLTA5LTA2ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTGV0dGVyLXNwYWNpbmcgc2hv
dWxkIGRpc2FibGUgbGlnYXR1cmVzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5n
cy9tYWluLnB5CShyZXZpc2lvbiAyNjY2ODMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jp
bmRpbmdzL21haW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTg2LDkgKzg2LDEwIEBAIGNsYXNzIEJp
bmRpbmdzVGVzdHM6CiAgICAgICAgIGNtZCA9IFsncGVybCcsICctdycsCiAgICAgICAgICAgICAg
ICAnLUlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMnLAogICAgICAgICAgICAgICAgJ1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwnLAotICAgICAgICAgICAgICAgJy0t
aWRsRmlsZXNMaXN0JywgaWRsX2ZpbGVzX2xpc3RbMV0sCisgICAgICAgICAgICAgICAnLS1pZGxG
aWxlTmFtZXNMaXN0JywgaWRsX2ZpbGVzX2xpc3RbMV0sCiAgICAgICAgICAgICAgICAnLS10ZXN0
R2xvYmFsQ29udGV4dE5hbWUnLCAnVGVzdEdsb2JhbE9iamVjdCcsCiAgICAgICAgICAgICAgICAn
LS1kZWZpbmVzJywgJycsCisgICAgICAgICAgICAgICAnLS1pZGxBdHRyaWJ1dGVzRmlsZScsICdX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uJywKICAgICAgICAgICAg
ICAgICctLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlJywgc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3lfZmlsZSwKICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcycsIHN1
cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsCiAgICAgICAgICAgICAgICAnLS13
aW5kb3dDb25zdHJ1Y3RvcnNGaWxlJywgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLWJhc2ljLWV2ZW50cy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmlt
YXRvci1iYXNpYy1ldmVudHMuaHRtbAkocmV2aXNpb24gMjY2NjgzKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLWJhc2ljLWV2ZW50cy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMyw3ICsxMyw3IEBACiA8c2NyaXB0PgogICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IodHJ1ZSk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0TW9ja1Njcm9sbEFuaW1hdG9yRW5hYmxlZCh0cnVlKTsKIAogICAgIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3Itb3Zlcmxh
eS1zY3JvbGxiYXJzLWNsaWNrZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWNsaWNrZWQuaHRt
bAkocmV2aXNpb24gMjY2NjgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xs
LWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1jbGlja2VkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsNyArMyw3IEBACiA8c2NyaXB0PgogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0VXNl
c01vY2tTY3JvbGxBbmltYXRvcih0cnVlKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRNb2NrU2Nyb2xsQW5pbWF0b3JFbmFibGVkKHRydWUpOwogICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFVzZXNPdmVybGF5U2Nyb2xsYmFycyh0cnVlKTsKICAgICB9CiAKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5LXNjcm9s
bGJhcnMtaG92ZXJlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5LXNjcm9sbGJhcnMtaG92ZXJlZC5odG1sCShyZXZp
c2lvbiAyNjY2ODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9zY3JvbGwtYW5pbWF0
b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWhvdmVyZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw3
ICszLDcgQEAKIDxzY3JpcHQ+CiAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXRVc2VzTW9ja1Nj
cm9sbEFuaW1hdG9yKHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dE1vY2tTY3JvbGxBbmltYXRvckVuYWJsZWQodHJ1ZSk7CiAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKHRydWUpOwogICAgIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLXNlbGVjdC1saXN0LWV2ZW50cy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmlt
YXRvci1zZWxlY3QtbGlzdC1ldmVudHMuaHRtbAkocmV2aXNpb24gMjY2NjgzKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLXNlbGVjdC1saXN0LWV2ZW50cy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2luZG93
LmludGVybmFscy5zZXRVc2VzTW9ja1Njcm9sbEFuaW1hdG9yKHRydWUpOworICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1vY2tTY3JvbGxBbmltYXRvckVuYWJsZWQodHJ1ZSk7
CiAKICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408149</attachid>
            <date>2020-09-06 16:05:24 -0700</date>
            <delta_ts>2020-09-06 17:20:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216231-20200906160523.patch</filename>
            <type>text/plain</type>
            <size>41432</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTA5LTA2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBBZGQgbW9kZSB0byBw
cmVwcm9jZXNzLWlkbHMucGwgdG8gdmFsaWRhdGUgZmFzdCByZWdleCBiYXNlZCBzY2FubmVyIHdp
dGggdGhlIG5vcm1hbCBJREwgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTYyMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUbyBhaWQgdHJhY2tpbmcgZG93biBtaXN0YWtlcyBpbiB0aGUgZmFz
dCByZWdleCBiYXNlZCBzY2FubmVyIGluIHByZXByb2Nlc3MtaWRscy5wbCwgdGhpcworICAgICAg
ICBhZGRzIGEgdmFsaWRhdGlvbiBtb2RlIHRvIHRoZSBzY3JpcHQgd2hpY2ggY2hlY2tzIHRoZSBy
ZXN1bHRzIGFnYWluc3Qgd2hhdCB0aGUgbm9ybWFsLCBtdWNoCisgICAgICAgIHNsb3dlciwgSURM
IHBhcnNlciBnZXRzLiBJbiBidWlsZGluZyBpdCwgaXQgY2F1Z2h0IHRoYXQgd2Ugd2VyZSBub3Qg
Y3JlYXRpbmcgYSBkZXBlbmRlbmN5IG9uCisgICAgICAgIFJUQ1J0cENvZGluZ1BhcmFtZXRlcnMu
aWRsIGZvciBkaWN0aW9uYXJpZXMgdGhhdCBkZXJpdmVkIGZyb20gaXQgYmVjYXVzZSBpdCB3YXMg
bWlzc2luZyBmcm9tCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UvQ01ha2VMaXN0cy50eHQs
IHdoaWNoIHdvdWxkIGhhdmUgbWFuaWZlc3RlZCBpbiBjb25mdXNpbmcgYnVpbGQgZXJyb3JzCisg
ICAgICAgIGluIHNvbWUgY2FzZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MtYWxsLnBsOgorICAgICAgICBBZGQgbWlzc2luZyBSVENSdHBDb2RpbmdQ
YXJhbWV0ZXJzLmlkbCBhbmQgdXBkYXRlIGludm9jYXRpb24gb2YgcHJlcHJvY2Vzcy1pZGxzLnBs
IHRvIAorICAgICAgICBwYXNzIGluIGlkbEF0dHJpYnV0ZXNGaWxlLCB3aGljaCB0aGUgcGFyc2Vy
IG5lZWRzIChpdCBpcyBub3QgcmVhZCB3aGVuIG5vdCB2YWxpZGF0aW5nKS4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMuZGVwOgorICAg
ICAgICBVcGRhdGVkIHRvIGluY2x1ZGUgbWlzc2luZyBkaWN0aW9uYXJ5IGRlcGVuZGVuY2llcy4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAg
ICAoR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKToKKyAgICAgICAgKHByb2Nlc3NJREwpOgorICAg
ICAgICAoZ2V0UGFydGlhbE5hbWVzRnJvbUlETCk6CisgICAgICAgIChnZXRJbmNsdWRlZEludGVy
ZmFjZXNGcm9tSURMKToKKyAgICAgICAgKGlzQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKToKKyAg
ICAgICAgKGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSXRlcmFi
bGVJbnRlcmZhY2VGcm9tSURMKToKKyAgICAgICAgKGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFj
a0ludGVyZmFjZUZyb21JREwpOgorICAgICAgICAoY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3Rh
bnRzRnJvbUlETCk6CisgICAgICAgIChnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9t
SURMKToKKyAgICAgICAgKGdldFVuZGVmaW5lZEJhc2VEaWN0aW9uYXJpZXNGcm9tSURMKToKKyAg
ICAgICAgKHNob3VsZEV4cG9zZUludGVyZmFjZSk6CisgICAgICAgIChnZXRGaWxlQ29udGVudHMp
OiBEZWxldGVkLgorICAgICAgICAoaW50ZXJmYWNlSXNJdGVyYWJsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChjb250YWluc0ludGVyZmFjZUZyb21JREwpOiBEZWxldGVkLgorICAgICAgICAoaW50ZXJm
YWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAodXBkYXRlRGljdGlv
bmFyeURlcGVuZGVuY2llcyk6IERlbGV0ZWQuCisgICAgICAgIC0gQWxsb3cgZW5hYmxpbmcgYSB2
YWxpZGF0aW9uIG1vZGUgdmlhIHRoZSAkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyIHZhcmlhYmxlIHdo
aWNoIHBhcnNlcyBlYWNoCisgICAgICAgICAgSURMIHdpdGggdGhlIG5vcm1hbCBJREwgcGFyc2Vy
IGFuZCBjb21wYXJlcyByZXN1bHRzLiAKKyAgICAgICAgLSBVcGRhdGVzIGEgYnVuY2ggb2YgbmFt
aW5nIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQgd2hpY2ggdmFyaWFibGVzIGNvbnRhaW4gZmlsZSBu
YW1lcyB2cy4gZmlsZQorICAgICAgICAgIHBhdGhzLgorICAgICAgICAtIFJlbmFtZXMgZnVuY3Rp
b25zIHRvIHVzZSBtb3JlIGNvbnNpc3RlbnQgbmFtaW5nLgorICAgICAgICAtIEZpeGVzIGJ1ZyBp
biBkaWN0aW9uYXJ5IGRlcGVuZGVuY3kgYW5hbHlzaXMgdGhhdCBzaWxlbnRseSBpZ25vcmVkIGRl
cGVuZGVuY2llcyB0aGF0IHdlcmVuJ3QKKyAgICAgICAgICBpbiB0aGUgZmlsZSBsaXN0LgorCiAy
MDIwLTA5LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTGV0dGVyLXNwYWNpbmcgc2hvdWxkIGRpc2FibGUgbGlnYXR1cmVzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY2NjgzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM3Nyw2ICszNzcsNyBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ2FwYWJpbGl0
aWVzLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kZWNQYXJhbWV0ZXJzLmlkbAorICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29kaW5nUGFyYW1ldGVycy5pZGwKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZS5pZGwKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cEZlY1BhcmFtZXRlcnMuaWRsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw2ICszMDYsNyBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cENhcGFi
aWxpdGllcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBD
b2RlY0NhcGFiaWxpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwQ29kZWNQYXJhbWV0ZXJzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cENvZGluZ1BhcmFtZXRlcnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwQ29udHJpYnV0aW5nU291cmNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBGZWNQYXJhbWV0ZXJzLmlk
bCBcCkBAIC0xNzM4LDkgKzE3MzksOSBAQCBJRExfSU5URVJNRURJQVRFX0ZJTEVTID0gXAogIwog
SURMX0lOVEVSTUVESUFURV9QQVRURVJOUyA9ICQoc3Vic3QgLiwlLCQoSURMX0lOVEVSTUVESUFU
RV9GSUxFUykpCiAKLSQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykgOiAkKFBSRVBST0NFU1Nf
SURMU19TQ1JJUFRTKSAkKEpTX0JJTkRJTkdfSURMUykgJChGRUFUVVJFX0FORF9QTEFURk9STV9E
RUZJTkVfREVQRU5ERU5DSUVTKSBEZXJpdmVkU291cmNlcy5tYWtlICQoRkVBVFVSRV9BTkRfUExB
VEZPUk1fREVGSU5FX0RFUEVOREVOQ0lFUykKKyQoSURMX0lOVEVSTUVESUFURV9QQVRURVJOUykg
OiAkKFBSRVBST0NFU1NfSURMU19TQ1JJUFRTKSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpICQoSlNf
QklORElOR19JRExTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBFTkRFTkNJRVMp
IERlcml2ZWRTb3VyY2VzLm1ha2UgJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5E
RU5DSUVTKQogCSQoZm9yZWFjaCBmLCQoSlNfQklORElOR19JRExTKSxAZWNobyAkKGYpPj4kKElE
TF9GSUxFU19UTVApJChOTCkpCi0JJChQRVJMKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWlkbEZpbGVzTGlzdCAkKElETF9GSUxFU19UTVAp
IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9G
SUxFKSAtLWlzb1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxF
KSAtLXdpbmRvd0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0t
d29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09O
U1RSVUNUT1JTX0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICQoREVESUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9C
QUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlICQoV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BF
X0NPTlNUUlVDVE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1F
TlRBTF9NQUtFRklMRV9ERVBTKQorCSQoUEVSTCkgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L3ByZXByb2Nlc3MtaWRscy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVG
SU5FUykgTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1pZGxGaWxlTmFtZXNMaXN0ICQoSURMX0ZJTEVT
X1RNUCkgLS1pZGxBdHRyaWJ1dGVzRmlsZSAkKElETF9BVFRSSUJVVEVTX0ZJTEUpIC0tc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUgJChTVVBQTEVNRU5UQUxfREVQRU5ERU5DWV9GSUxFKSAtLWlz
b1N1YnNwYWNlc0hlYWRlckZpbGUgJChJU09fU1VCU1BBQ0VTX0hFQURFUl9GSUxFKSAtLXdpbmRv
d0NvbnN0cnVjdG9yc0ZpbGUgJChXSU5ET1dfQ09OU1RSVUNUT1JTX0ZJTEUpIC0td29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JT
X0ZJTEUpIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQoREVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEUpIC0tc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFNFUlZJQ0VXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRSkgLS13b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICQo
V09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVDVE9SU19GSUxFKSAtLXBhaW50V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZSAkKFBBSU5UV09SS0xFVEdMT0JBTFNDT1BFX0NPTlNUUlVD
VE9SU19GSUxFKSAtLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcyAkKFNVUFBMRU1FTlRBTF9NQUtF
RklMRV9ERVBTKQogCSQoREVMRVRFKSAkKElETF9GSUxFU19UTVApCiAKIEpTJS5jcHAgSlMlLmgg
OiAlLmlkbCAkKEpTX0JJTkRJTkdTX1NDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChJ
RExfSU5URVJNRURJQVRFX0ZJTEVTKSAkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORV9ERVBF
TkRFTkNJRVMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLWFsbC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbAkocmV2aXNpb24gMjY2NjgzKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwJKHdv
cmtpbmcgY29weSkKQEAgLTg1LDggKzg1LDkgQEAgaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZSkgewogICAgICAgICByZWFkU3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUoJHN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlLCBcJW9sZFN1cHBsZW1lbnRzKSBpZiAtZSAkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGU7CiAgICAgICAgIG15IEBhcmdzID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUo
JHNjcmlwdERpciwgJ3ByZXByb2Nlc3MtaWRscy5wbCcpLAogICAgICAgICAgICAgICAgICAgICAn
LS1kZWZpbmVzJywgJGRlZmluZXMsCi0gICAgICAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlz
dCcsICRwcElETEZpbGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0taWRsRmlsZU5hbWVz
TGlzdCcsICRwcElETEZpbGVzTGlzdCwKICAgICAgICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAg
ICAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAog
ICAgICAgICAgICAgICAgICAgICBAcHBFeHRyYUFyZ3MpOwogICAgICAgICBwcmludFByb2dyZXNz
KCJQcmVwcm9jZXNzIElETCIpOwogICAgICAgICBleGVjdXRlQ29tbWFuZCgkcGVybCwgQGFyZ3Mp
ID09IDAgb3IgZGllOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVw
cm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlzaW9uIDI2NjY4MykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCSh3b3JraW5nIGNvcHkpCkBA
IC0yMywxNCArMjMsMjAgQEAgdXNlIHdhcm5pbmdzOwogdXNlIEZpbmRCaW47CiB1c2UgbGliICRG
aW5kQmluOjpCaW47CiAKK3VzZSBFbmdsaXNoOwogdXNlIEZpbGU6OkJhc2VuYW1lOwogdXNlIEdl
dG9wdDo6TG9uZzsKIHVzZSBDd2Q7CiB1c2UgQ29uZmlnOwordXNlIENsYXNzOjpTdHJ1Y3Q7Cit1
c2UgSlNPTjo6UFA7Cit1c2UgRGF0YTo6RHVtcGVyOworCit1c2UgSURMUGFyc2VyOwogCiBteSAk
ZGVmaW5lczsKIG15ICRwcmVwcm9jZXNzb3I7Ci1teSAkaWRsRmlsZXNMaXN0OworbXkgJGlkbEZp
bGVOYW1lc0xpc3Q7CiBteSAkdGVzdEdsb2JhbENvbnRleHROYW1lOwogbXkgJHN1cHBsZW1lbnRh
bERlcGVuZGVuY3lGaWxlOwogbXkgJGlzb1N1YnNwYWNlc0hlYWRlckZpbGU7CkBAIC00MiwxMCAr
NDgsMTYgQEAgbXkgJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkcGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlOwogbXkgJHRlc3RHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGU7CiBteSAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzOworbXkgJGlk
bEF0dHJpYnV0ZXNGaWxlOworCisjIFRvZ2dsZSB0aGlzIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZh
c3QgcmVndWxhciBleHByZXNzaW9uIGJhc2VkICJwYXJzaW5nIiB1c2VkCisjIGluIHRoaXMgZmls
ZSBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHRzIGFzIHRoZSBzbG93ZXIgcmVzdWx0cyBwcm9kdWNl
ZCBieSB0aGUKKyMgY29tcGxldGUgSURMUGFyc2VyLgorbXkgJHZhbGlkYXRlQWdhaW5zdFBhcnNl
ciA9IDA7CiAKIEdldE9wdGlvbnMoJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAogICAgICAgICAg
ICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAotICAgICAgICAgICAnaWRsRmls
ZXNMaXN0PXMnID0+IFwkaWRsRmlsZXNMaXN0LAorICAgICAgICAgICAnaWRsRmlsZU5hbWVzTGlz
dD1zJyA9PiBcJGlkbEZpbGVOYW1lc0xpc3QsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsQ29udGV4
dE5hbWU9cycgPT4gXCR0ZXN0R2xvYmFsQ29udGV4dE5hbWUsCiAgICAgICAgICAgICdzdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZT1zJyA9PiBcJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLAog
ICAgICAgICAgICAnaXNvU3Vic3BhY2VzSGVhZGVyRmlsZT1zJyA9PiBcJGlzb1N1YnNwYWNlc0hl
YWRlckZpbGUsCkBAIC01Niw3ICs2OCw5IEBAIEdldE9wdGlvbnMoJ2RlZmluZXM9cycgPT4gXCRk
ZWZpbmVzLAogICAgICAgICAgICAnd29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZT1z
JyA9PiBcJHdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICdw
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGU9cycgPT4gXCRwYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUsCiAgICAgICAgICAgICd0ZXN0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcnNGaWxlPXMnID0+IFwkdGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSwKLSAgICAgICAgICAgJ3N1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcz1zJyA9PiBcJHN1cHBsZW1l
bnRhbE1ha2VmaWxlRGVwcyk7CisgICAgICAgICAgICdzdXBwbGVtZW50YWxNYWtlZmlsZURlcHM9
cycgPT4gXCRzdXBwbGVtZW50YWxNYWtlZmlsZURlcHMsCisgICAgICAgICAgICdpZGxBdHRyaWJ1
dGVzRmlsZT1zJyA9PiBcJGlkbEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAgICAndmFsaWRhdGVB
Z2FpbnN0UGFyc2VyJyA9PiBcJHZhbGlkYXRlQWdhaW5zdFBhcnNlcik7CiAKIGRpZSgnTXVzdCBz
cGVjaWZ5ICNkZWZpbmUgbWFjcm9zIHVzaW5nIC0tZGVmaW5lcy4nKSB1bmxlc3MgZGVmaW5lZCgk
ZGVmaW5lcyk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmlsZSB1c2luZyAtLXN1cHBs
ZW1lbnRhbERlcGVuZGVuY3lGaWxlLicpIHVubGVzcyBkZWZpbmVkKCRzdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSk7CkBAIC02Nyw3ICs4MSw4IEBAIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1
dCBmaWxlIHVzaW5nIC0KIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0t
d29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkd29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSk7CiBkaWUoJ011c3Qgc3BlY2lmeSBhbiBv
dXRwdXQgZmlsZSB1c2luZyAtLXBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZS4nKSB1bmxlc3MgZGVmaW5lZCgkcGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlKTsKIGRpZSgnTXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIHVzaW5nIC0tdGVzdEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JzRmlsZS4nKSB1bmxlc3MgZGVmaW5lZCgkdGVzdEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JzRmlsZSkgfHwgIWRlZmluZWQoJHRlc3RHbG9iYWxDb250ZXh0TmFtZSk7Ci1k
aWUoJ011c3Qgc3BlY2lmeSB0aGUgZmlsZSBsaXN0aW5nIGFsbCBJRExzIHVzaW5nIC0taWRsRmls
ZXNMaXN0LicpIHVubGVzcyBkZWZpbmVkKCRpZGxGaWxlc0xpc3QpOworZGllKCdNdXN0IHNwZWNp
ZnkgdGhlIGZpbGUgbGlzdGluZyBhbGwgSURMcyB1c2luZyAtLWlkbEZpbGVOYW1lc0xpc3QuJykg
dW5sZXNzIGRlZmluZWQoJGlkbEZpbGVOYW1lc0xpc3QpOworZGllKCdNdXN0IHNwZWNpZnkgSURM
IGF0dHJpYnV0ZXMgZmlsZSB1c2luZyAtLWlkbEF0dHJpYnV0ZXNGaWxlLicpIHVubGVzcyBkZWZp
bmVkKCRpZGxBdHRyaWJ1dGVzRmlsZSk7CiAKICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSA9
IEN5Z3dpblBhdGhJZk5lZWRlZCgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpOwogJGlzb1N1
YnNwYWNlc0hlYWRlckZpbGUgPSBDeWd3aW5QYXRoSWZOZWVkZWQoJGlzb1N1YnNwYWNlc0hlYWRl
ckZpbGUpOwpAQCAtNzksMTMgKzk0LDM1IEBAICR3b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cnNGaWxlID0gQ3kKICRwYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgPSBD
eWd3aW5QYXRoSWZOZWVkZWQoJHBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmls
ZSk7CiAkc3VwcGxlbWVudGFsTWFrZWZpbGVEZXBzID0gQ3lnd2luUGF0aElmTmVlZGVkKCRzdXBw
bGVtZW50YWxNYWtlZmlsZURlcHMpIGlmIGRlZmluZWQoJHN1cHBsZW1lbnRhbE1ha2VmaWxlRGVw
cyk7CiAKLW15IEBpZGxGaWxlczsKLW9wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlc0xpc3QpIG9y
IGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVzTGlzdCI7Ci1AaWRsRmlsZXMgPSBtYXAgeyBDeWd3
aW5QYXRoSWZOZWVkZWQocy9ccj9cbj8kLy9yKSB9IDwkZmg+OworbXkgQGlkbEZpbGVOYW1lczsK
K29wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlTmFtZXNMaXN0KSBvciBkaWUgIkNhbm5vdCBvcGVu
ICRpZGxGaWxlTmFtZXNMaXN0IjsKK0BpZGxGaWxlTmFtZXMgPSBtYXAgeyBDeWd3aW5QYXRoSWZO
ZWVkZWQocy9ccj9cbj8kLy9yKSB9IDwkZmg+OwogY2xvc2UoJGZoKSBvciBkaWU7CiAKLW15ICVp
bnRlcmZhY2VOYW1lVG9JZGxGaWxlOwotbXkgJWlkbEZpbGVUb0ludGVyZmFjZU5hbWU7CitteSAk
aWRsQXR0cmlidXRlczsKK2lmICgkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgbXkgJGlu
cHV0OworICAgIHsKKyAgICAgICAgbG9jYWwgJElOUFVUX1JFQ09SRF9TRVBBUkFUT1I7CisgICAg
ICAgIG9wZW4oSlNPTiwgIjwiLCAkaWRsQXR0cmlidXRlc0ZpbGUpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiAkaWRsQXR0cmlidXRlc0ZpbGU6ICQhIjsKKyAgICAgICAgJGlucHV0ID0gPEpTT04+Owor
ICAgICAgICBjbG9zZShKU09OKTsKKyAgICB9CisKKyAgICBteSAkanNvbkRlY29kZXIgPSBKU09O
OjpQUC0+bmV3LT51dGY4OworICAgIG15ICRqc29uSGFzaFJlZiA9ICRqc29uRGVjb2Rlci0+ZGVj
b2RlKCRpbnB1dCk7CisgICAgJGlkbEF0dHJpYnV0ZXMgPSAkanNvbkhhc2hSZWYtPnthdHRyaWJ1
dGVzfTsKK30KKworc3RydWN0KCBJRExGaWxlID0+IHsKKyAgICBmaWxlTmFtZSA9PiAnJCcsCisg
ICAgZmlsZUNvbnRlbnRzID0+ICckJywKKyAgICBwcmltYXJ5RGVjbGFyYXRpb25OYW1lID0+ICck
JywKKyAgICBwYXJzZWREb2N1bWVudCA9PiAnJCcKK30pOworCitteSAlaW50ZXJmYWNlTmFtZVRv
SWRsRmlsZVBhdGg7CitteSAlaWRsRmlsZVBhdGhUb0ludGVyZmFjZU5hbWU7CiBteSAlc3VwcGxl
bWVudGFsRGVwZW5kZW5jaWVzOwogbXkgJWRpY3Rpb25hcnlEZXBlbmRlbmNpZXM7CiBteSAlc3Vw
cGxlbWVudGFsczsKQEAgLTExMiwyMyArMTQ5LDI1IEBAIHB1YmxpYzoKICAgICBET01Jc29TdWJz
cGFjZXMoKSA9IGRlZmF1bHQ7CiBFTkQKIAotIyBHZXQgcmlkIG9mIGR1cGxpY2F0ZXMgaW4gaWRs
RmlsZXMgYXJyYXkuCi1teSAlaWRsRmlsZUhhc2ggPSBtYXAgeyAkXywgMSB9IEBpZGxGaWxlczsK
KyMgR2V0IHJpZCBvZiBkdXBsaWNhdGVzIGluIGlkbEZpbGVOYW1lcyBhcnJheS4KK215ICVpZGxG
aWxlTmFtZUhhc2ggPSBtYXAgeyAkXywgMSB9IEBpZGxGaWxlTmFtZXM7CiAKLSMgUG9wdWxhdGUg
JGlkbEZpbGVUb0ludGVyZmFjZU5hbWUgYW5kICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlLgotZm9y
ZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSGFzaCkgewotICAgIG15ICRmdWxs
UGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGlkbEZpbGUpOwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
ZmlsZXBhcnNlKGJhc2VuYW1lKCRpZGxGaWxlKSwgIi5pZGwiKTsKLSAgICAkaWRsRmlsZVRvSW50
ZXJmYWNlTmFtZXskZnVsbFBhdGh9ID0gJGludGVyZmFjZU5hbWU7Ci0gICAgJGludGVyZmFjZU5h
bWVUb0lkbEZpbGV7JGludGVyZmFjZU5hbWV9ID0gJGZ1bGxQYXRoOworIyBQb3B1bGF0ZSAkaWRs
RmlsZVBhdGhUb0ludGVyZmFjZU5hbWUgYW5kICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aC4K
K2ZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFzaCkgewor
ICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGlkbEZpbGVOYW1lKTsKKyAgICBteSAk
aW50ZXJmYWNlTmFtZSA9IGZpbGVwYXJzZShiYXNlbmFtZSgkaWRsRmlsZU5hbWUpLCAiLmlkbCIp
OworICAgICRpZGxGaWxlUGF0aFRvSW50ZXJmYWNlTmFtZXskZnVsbFBhdGh9ID0gJGludGVyZmFj
ZU5hbWU7CisgICAgJGludGVyZmFjZU5hbWVUb0lkbEZpbGVQYXRoeyRpbnRlcmZhY2VOYW1lfSA9
ICRmdWxsUGF0aDsKIH0KIAogIyBQYXJzZSBhbGwgSURMIGZpbGVzLgotZm9yZWFjaCBteSAkaWRs
RmlsZSAoc29ydCBrZXlzICVpZGxGaWxlSGFzaCkgewotICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6
cmVhbHBhdGgoJGlkbEZpbGUpOwotICAgIG15ICRpZGxGaWxlQ29udGVudHMgPSBnZXRGaWxlQ29u
dGVudHMoJGZ1bGxQYXRoKTsKK2ZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlk
bEZpbGVOYW1lSGFzaCkgeworICAgIG15ICRmdWxsUGF0aCA9IEN3ZDo6cmVhbHBhdGgoJGlkbEZp
bGVOYW1lKTsKKyAgICAKKyAgICBteSAkaWRsRmlsZSA9IHByb2Nlc3NJREwoJGlkbEZpbGVOYW1l
LCAkZnVsbFBhdGgpOworCiAgICAgIyBIYW5kbGUgcGFydGlhbCBuYW1lcy4KLSAgICBteSAkcGFy
dGlhbE5hbWVzID0gZ2V0UGFydGlhbE5hbWVzRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAg
ICBteSAkcGFydGlhbE5hbWVzID0gZ2V0UGFydGlhbE5hbWVzRnJvbUlETCgkaWRsRmlsZSk7CiAg
ICAgaWYgKEB7JHBhcnRpYWxOYW1lc30pIHsKICAgICAgICAgJHN1cHBsZW1lbnRhbERlcGVuZGVu
Y2llc3skZnVsbFBhdGh9ID0gJHBhcnRpYWxOYW1lczsKICAgICAgICAgbmV4dDsKQEAgLTEzNiwz
MSArMTc1LDM0IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlaWRsRmlsZUgKIAog
ICAgICRzdXBwbGVtZW50YWxzeyRmdWxsUGF0aH0gPSBbXTsKIAotICAgIHVwZGF0ZURpY3Rpb25h
cnlEZXBlbmRlbmNpZXMoJGlkbEZpbGVDb250ZW50cywgJGlkbEZpbGUpOworICAgIG15ICRiYXNl
RGljdGlvbmFyaWVzID0gZ2V0VW5kZWZpbmVkQmFzZURpY3Rpb25hcmllc0Zyb21JREwoJGlkbEZp
bGUpOworICAgIGlmIChAeyRiYXNlRGljdGlvbmFyaWVzfSkgeworICAgICAgICAkZGljdGlvbmFy
eURlcGVuZGVuY2llc3skaWRsRmlsZS0+cHJpbWFyeURlY2xhcmF0aW9uTmFtZX0gPSAoam9pbigi
LmlkbCAiLCBAeyRiYXNlRGljdGlvbmFyaWVzfSkgLiAiLmlkbCIpOworICAgIH0KIAogICAgICMg
U2tpcCBpZiB0aGUgSURMIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbiBpbnRlcmZhY2Ugb3IgYSBj
YWxsYmFjayBpbnRlcmZhY2UuCiAgICAgIyBUaGUgSURMIG1heSBjb250YWluIGEgZGljdGlvbmFy
eS4KLSAgICBuZXh0IHVubGVzcyBjb250YWluc0ludGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250
ZW50cyk7CisgICAgbmV4dCB1bmxlc3MgY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlRnJvbUlETCgkaWRsRmlsZSk7CiAKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9IGZpbGVwYXJz
ZShiYXNlbmFtZSgkaWRsRmlsZSksICIuaWRsIik7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
aWRsRmlsZS0+cHJpbWFyeURlY2xhcmF0aW9uTmFtZTsKICAgICAjIEhhbmRsZSBpbmNsdWRlIHN0
YXRlbWVudHMuCi0gICAgbXkgJGluY2x1ZGVkSW50ZXJmYWNlcyA9IGdldEluY2x1ZGVkSW50ZXJm
YWNlc0Zyb21JREwoJGlkbEZpbGVDb250ZW50cywgJGludGVyZmFjZU5hbWUpOworICAgIG15ICRp
bmNsdWRlZEludGVyZmFjZXMgPSBnZXRJbmNsdWRlZEludGVyZmFjZXNGcm9tSURMKCRpZGxGaWxl
LCAkaW50ZXJmYWNlTmFtZSk7CiAgICAgZm9yZWFjaCBteSAkaW5jbHVkZWRJbnRlcmZhY2UgKEB7
JGluY2x1ZGVkSW50ZXJmYWNlc30pIHsKLSAgICAgICAgbXkgJGluY2x1ZGVkSWRsRmlsZSA9ICRp
bnRlcmZhY2VOYW1lVG9JZGxGaWxleyRpbmNsdWRlZEludGVyZmFjZX07Ci0gICAgICAgIGRpZSAi
Q291bGQgbm90IGZpbmQgYSB0aGUgSURMIGZpbGUgd2hlcmUgdGhlIGZvbGxvd2luZyBpbmNsdWRl
ZCBpbnRlcmZhY2UgaXMgZGVmaW5lZDogJGluY2x1ZGVkSW50ZXJmYWNlIiB1bmxlc3MgJGluY2x1
ZGVkSWRsRmlsZTsKLSAgICAgICAgaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXN7JGluY2x1
ZGVkSWRsRmlsZX0pIHsKLSAgICAgICAgICAgIHB1c2goQHskc3VwcGxlbWVudGFsRGVwZW5kZW5j
aWVzeyRpbmNsdWRlZElkbEZpbGV9fSwgJGludGVyZmFjZU5hbWUpOworICAgICAgICBteSAkaW5j
bHVkZWRJZGxGaWxlUGF0aCA9ICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aHskaW5jbHVkZWRJ
bnRlcmZhY2V9OworICAgICAgICBkaWUgIkNvdWxkIG5vdCBmaW5kIGEgdGhlIElETCBmaWxlIHdo
ZXJlIHRoZSBmb2xsb3dpbmcgaW5jbHVkZWQgaW50ZXJmYWNlIGlzIGRlZmluZWQ6ICRpbmNsdWRl
ZEludGVyZmFjZSIgdW5sZXNzICRpbmNsdWRlZElkbEZpbGVQYXRoOworICAgICAgICBpZiAoJHN1
cHBsZW1lbnRhbERlcGVuZGVuY2llc3skaW5jbHVkZWRJZGxGaWxlUGF0aH0pIHsKKyAgICAgICAg
ICAgIHB1c2goQHskc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRpbmNsdWRlZElkbEZpbGVQYXRo
fX0sICRpbnRlcmZhY2VOYW1lKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRzdXBw
bGVtZW50YWxEZXBlbmRlbmNpZXN7JGluY2x1ZGVkSWRsRmlsZX0gPSBbJGludGVyZmFjZU5hbWVd
OworICAgICAgICAgICAgJHN1cHBsZW1lbnRhbERlcGVuZGVuY2llc3skaW5jbHVkZWRJZGxGaWxl
UGF0aH0gPSBbJGludGVyZmFjZU5hbWVdOwogICAgICAgICB9CiAgICAgfQogCi0gICAgbmV4dCBp
ZiBpc01peGluSW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZUNvbnRlbnRzKTsKKyAgICBuZXh0IGlm
IGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlKTsKIAotICAgIG15ICRpc0NhbGxiYWNr
SW50ZXJmYWNlID0gaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwoJGlkbEZpbGVDb250ZW50cyk7
CisgICAgbXkgJGlzQ2FsbGJhY2tJbnRlcmZhY2UgPSBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlE
TCgkaWRsRmlsZSk7CiAgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSkgewogICAgICAgICAk
aXNvU3Vic3BhY2VzSGVhZGVyQ29kZSAuPSAiICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6Oklzb1N1
YnNwYWNlPiBtX3N1YnNwYWNlRm9yJHtpbnRlcmZhY2VOYW1lfTtcbiI7Ci0gICAgICAgIGlmIChp
bnRlcmZhY2VJc0l0ZXJhYmxlKCRpZGxGaWxlQ29udGVudHMpKSB7CisgICAgICAgIGlmIChjb250
YWluc0l0ZXJhYmxlSW50ZXJmYWNlRnJvbUlETCgkaWRsRmlsZSkpIHsKICAgICAgICAgICAgICRp
c29TdWJzcGFjZXNIZWFkZXJDb2RlIC49ICIgICAgc3RkOjp1bmlxdWVfcHRyPEpTQzo6SXNvU3Vi
c3BhY2U+IG1fc3Vic3BhY2VGb3Ike2ludGVyZmFjZU5hbWV9SXRlcmF0b3I7XG4iOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMTcwLDkgKzIxMiw5IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQg
a2V5cyAlaWRsRmlsZUgKICAgICAjIC0gaXMgYSBub24tY2FsbGJhY2sgaW50ZXJmYWNlIHRoYXQg
aXMgbm90IGRlY2xhcmVkIHdpdGggdGhlIFtMZWdhY3lOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5k
ZWQgYXR0cmlidXRlLCBhIGNvcnJlc3BvbmRpbmcKICAgICAjICAgcHJvcGVydHkgbXVzdCBleGlz
dCBvbiB0aGUgRUNNQVNjcmlwdCBlbnZpcm9ubWVudCdzIGdsb2JhbCBvYmplY3QuCiAgICAgIyBT
ZWUgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtaW50ZXJmYWNlcwotICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9t
SURMKCRpZGxGaWxlQ29udGVudHMpOworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBnZXRJ
bnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURMKCRpZGxGaWxlKTsKICAgICBpZiAoc2hv
dWxkRXhwb3NlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZXMpKSB7Ci0gICAgICAgIGlmICgh
JGlzQ2FsbGJhY2tJbnRlcmZhY2UgfHwgaW50ZXJmYWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUoJGlk
bEZpbGVDb250ZW50cykpIHsKKyAgICAgICAgaWYgKCEkaXNDYWxsYmFja0ludGVyZmFjZSB8fCBj
b250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHNGcm9tSURMKCRpZGxGaWxlKSkgewogICAgICAg
ICAgICAgbXkgJGV4cG9zZWRBdHRyaWJ1dGUgPSAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4cG9z
ZWQifSB8fCAkdGVzdEdsb2JhbENvbnRleHROYW1lIHx8ICJXaW5kb3ciOwogICAgICAgICAgICAg
JGV4cG9zZWRBdHRyaWJ1dGUgPSBzdWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDEsIC0xKSBpZiBz
dWJzdHIoJGV4cG9zZWRBdHRyaWJ1dGUsIDAsIDEpIGVxICIoIjsKICAgICAgICAgICAgIG15IEBn
bG9iYWxDb250ZXh0cyA9IHNwbGl0KCIsIiwgJGV4cG9zZWRBdHRyaWJ1dGUpOwpAQCAtMTkzLDcg
KzIzNSw3IEBAIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlaWRsRmlsZUgKICAgICAg
ICAgICAgICAgICB9IGVsc2lmICgkZ2xvYmFsQ29udGV4dCBlcSAkdGVzdEdsb2JhbENvbnRleHRO
YW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnND
b2RlIC49ICRhdHRyaWJ1dGVDb2RlOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGRpZSAiVW5zdXBwb3J0ZWQgZ2xvYmFsIGNvbnRleHQgJyRnbG9iYWxDb250
ZXh0JyB1c2VkIGluIFtFeHBvc2VkXSBhdCAkaWRsRmlsZSI7CisgICAgICAgICAgICAgICAgICAg
IGRpZSAiVW5zdXBwb3J0ZWQgZ2xvYmFsIGNvbnRleHQgJyRnbG9iYWxDb250ZXh0JyB1c2VkIGlu
IFtFeHBvc2VkXSBhdCAkaWRsRmlsZU5hbWUiOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICR3aW5kb3dDb25zdHJ1Y3RvcnNDb2RlIC49ICR3aW5kb3dBbGlh
c2VzIGlmICR3aW5kb3dBbGlhc2VzOwpAQCAtMjExLDEzICsyNTMsMTMgQEAgR2VuZXJhdGVQYXJ0
aWFsSW50ZXJmYWNlKCJQYWludFdvcmtsZXRHbAogR2VuZXJhdGVQYXJ0aWFsSW50ZXJmYWNlKCR0
ZXN0R2xvYmFsQ29udGV4dE5hbWUsICR0ZXN0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNDb2RlLCAk
dGVzdEdsb2JhbFNjb3BlQ29uc3RydWN0b3JzRmlsZSkgaWYgZGVmaW5lZCgkdGVzdEdsb2JhbENv
bnRleHROYW1lKTsKIAogIyBSZXNvbHZlcyBwYXJ0aWFsIGludGVyZmFjZXMgYW5kIGluY2x1ZGUg
ZGVwZW5kZW5jaWVzLgotZm9yZWFjaCBteSAkaWRsRmlsZSAoc29ydCBrZXlzICVzdXBwbGVtZW50
YWxEZXBlbmRlbmNpZXMpIHsKLSAgICBteSAkYmFzZUZpbGVzID0gJHN1cHBsZW1lbnRhbERlcGVu
ZGVuY2llc3skaWRsRmlsZX07Citmb3JlYWNoIG15ICRpZGxGaWxlUGF0aCAoc29ydCBrZXlzICVz
dXBwbGVtZW50YWxEZXBlbmRlbmNpZXMpIHsKKyAgICBteSAkYmFzZUZpbGVzID0gJHN1cHBsZW1l
bnRhbERlcGVuZGVuY2llc3skaWRsRmlsZVBhdGh9OwogICAgIGZvcmVhY2ggbXkgJGJhc2VGaWxl
IChAeyRiYXNlRmlsZXN9KSB7Ci0gICAgICAgIG15ICR0YXJnZXRJZGxGaWxlID0gJGludGVyZmFj
ZU5hbWVUb0lkbEZpbGV7JGJhc2VGaWxlfSBvciBkaWUgIiR7YmFzZUZpbGV9LmlkbCBub3QgZm91
bmQsIGJ1dCBpdCBpcyBzdXBwbGVtZW50ZWQgYnkgJGlkbEZpbGUiOwotICAgICAgICBwdXNoKEB7
JHN1cHBsZW1lbnRhbHN7JHRhcmdldElkbEZpbGV9fSwgJGlkbEZpbGUpOworICAgICAgICBteSAk
dGFyZ2V0SWRsRmlsZVBhdGggPSAkaW50ZXJmYWNlTmFtZVRvSWRsRmlsZVBhdGh7JGJhc2VGaWxl
fSBvciBkaWUgIiR7YmFzZUZpbGV9LmlkbCBub3QgZm91bmQsIGJ1dCBpdCBpcyBzdXBwbGVtZW50
ZWQgYnkgJGlkbEZpbGVQYXRoIjsKKyAgICAgICAgcHVzaChAeyRzdXBwbGVtZW50YWxzeyR0YXJn
ZXRJZGxGaWxlUGF0aH19LCAkaWRsRmlsZVBhdGgpOwogICAgIH0KLSAgICBkZWxldGUgJHN1cHBs
ZW1lbnRhbHN7JGlkbEZpbGV9OworICAgIGRlbGV0ZSAkc3VwcGxlbWVudGFsc3skaWRsRmlsZVBh
dGh9OwogfQogCiBpZiAoJGlzb1N1YnNwYWNlc0hlYWRlckZpbGUpIHsKQEAgLTIzOCwxNyArMjgw
LDE3IEBAIGlmICgkaXNvU3Vic3BhY2VzSGVhZGVyRmlsZSkgewogIyBEb2N1bWVudC5pZGwgaXMg
c3VwcGxlbWVudGVkIGJ5IFMuaWRsLCBhbmQgRXZlbnQuaWRsIGlzIHN1cHBsZW1lbnRlZCBieSBu
byBJRExzLgogIyBUaGUgSURMIHRoYXQgc3VwcGxlbWVudHMgYW5vdGhlciBJREwgKGUuZy4gUC5p
ZGwpIG5ldmVyIGFwcGVhcnMgaW4gdGhlIGRlcGVuZGVuY3kgZmlsZS4KIG15ICRkZXBlbmRlbmNp
ZXMgPSAiIjsKLWZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlc3VwcGxlbWVudGFscykg
ewotICAgICRkZXBlbmRlbmNpZXMgLj0gIiRpZGxGaWxlIEB7JHN1cHBsZW1lbnRhbHN7JGlkbEZp
bGV9fVxuIjsKK2ZvcmVhY2ggbXkgJGlkbEZpbGVQYXRoIChzb3J0IGtleXMgJXN1cHBsZW1lbnRh
bHMpIHsKKyAgICAkZGVwZW5kZW5jaWVzIC49ICIkaWRsRmlsZVBhdGggQHskc3VwcGxlbWVudGFs
c3skaWRsRmlsZVBhdGh9fVxuIjsKIH0KIFdyaXRlRmlsZUlmQ2hhbmdlZCgkc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUsICRkZXBlbmRlbmNpZXMpOwogCiBpZiAoJHN1cHBsZW1lbnRhbE1ha2Vm
aWxlRGVwcykgewogICAgIG15ICRtYWtlZmlsZURlcHMgPSAiIyBTdXBwbGVtZW50YWwgZGVwZW5k
ZW5jaWVzXG4iOwotICAgIGZvcmVhY2ggbXkgJGlkbEZpbGUgKHNvcnQga2V5cyAlc3VwcGxlbWVu
dGFscykgewotICAgICAgICBteSAkYmFzZW5hbWUgPSAkaWRsRmlsZVRvSW50ZXJmYWNlTmFtZXsk
aWRsRmlsZX07CisgICAgZm9yZWFjaCBteSAkaWRsRmlsZVBhdGggKHNvcnQga2V5cyAlc3VwcGxl
bWVudGFscykgeworICAgICAgICBteSAkYmFzZW5hbWUgPSAkaWRsRmlsZVBhdGhUb0ludGVyZmFj
ZU5hbWV7JGlkbEZpbGVQYXRofTsKIAotICAgICAgICBteSBAZGVwZW5kZW5jeUxpc3QgPSBtYXAg
eyBiYXNlbmFtZSgkXykgfSBAeyRzdXBwbGVtZW50YWxzeyRpZGxGaWxlfX07CisgICAgICAgIG15
IEBkZXBlbmRlbmN5TGlzdCA9IG1hcCB7IGJhc2VuYW1lKCRfKSB9IEB7JHN1cHBsZW1lbnRhbHN7
JGlkbEZpbGVQYXRofX07CiAgICAgICAgIG15IEBkZXBlbmRlbmNpZXMgPSBzb3J0KGtleXMgJXt7
IG1hcHskXz0+MX1AZGVwZW5kZW5jeUxpc3R9fSk7CiAKICAgICAgICAgJG1ha2VmaWxlRGVwcyAu
PSAiSlMke2Jhc2VuYW1lfS5oOiBAe2RlcGVuZGVuY2llc31cbiI7CkBAIC0zMDEsNyArMzQzLDcg
QEAgc3ViIEdlbmVyYXRlUGFydGlhbEludGVyZmFjZQogICAgIFdyaXRlRmlsZUlmQ2hhbmdlZCgk
ZGVzdGluYXRpb25GaWxlLCAkY29udGVudHMpOwogCiAgICAgbXkgJGZ1bGxQYXRoID0gQ3dkOjpy
ZWFscGF0aCgkZGVzdGluYXRpb25GaWxlKTsKLSAgICAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVz
eyRmdWxsUGF0aH0gPSBbJGludGVyZmFjZU5hbWVdIGlmICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxl
eyRpbnRlcmZhY2VOYW1lfTsKKyAgICAkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRmdWxsUGF0
aH0gPSBbJGludGVyZmFjZU5hbWVdIGlmICRpbnRlcmZhY2VOYW1lVG9JZGxGaWxlUGF0aHskaW50
ZXJmYWNlTmFtZX07CiB9CiAKIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yQXR0cmlidXRlcwpAQCAt
MzUxLDI3ICszOTMsOTUgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JBdHRyaWJ1dGVzCiAgICAg
cmV0dXJuICgkY29kZSwgJHdpbmRvd0FsaWFzZXNDb2RlKTsKIH0KIAotc3ViIGdldEZpbGVDb250
ZW50cworc3ViIHRyaW0KIHsKLSAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OworICAgIG15ICRzdHJp
bmcgPSBzaGlmdDsKKyAgICAkc3RyaW5nID1+IHMvXlxzK3xccyskLy9nOworICAgIHJldHVybiAk
c3RyaW5nOworfQorCitzdWIgbGlzdHNBcmVJZGVudGljYWwKK3sKKyAgICBteSAoJGxpc3QxLCAk
bGlzdDIpID0gQF87CisgICAgCisgICAgaWYgKHNjYWxhcihAeyRsaXN0MX0pICE9IHNjYWxhcihA
eyRsaXN0Mn0pKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICBmb3IgbXkg
JGkgKDAgLi4gJCN7JGxpc3QxfSkgeworICAgICAgICBpZiAoJGxpc3QxLT5bJGldIG5lICRsaXN0
Mi0+WyRpXSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICByZXR1cm4gMTsKK30KIAotICAgIG9wZW4gbXkgJGZpbGUsICI8IiwgJGlkbEZpbGUgb3IgZGll
ICJDb3VsZCBub3Qgb3BlbiAkaWRsRmlsZSBmb3IgcmVhZGluZzogJCEiOworc3ViIHByb2Nlc3NJ
REwKK3sKKyAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkZmlsZVBhdGggPSBzaGlm
dDsKKworICAgIG15ICRpZGxGaWxlID0gSURMRmlsZS0+bmV3KCk7CisgICAgJGlkbEZpbGUtPmZp
bGVOYW1lKCRmaWxlTmFtZSk7CisgICAgCisgICAgbXkgJHByaW1hcnlEZWNsYXJhdGlvbk5hbWUg
PSBmaWxlcGFyc2UoYmFzZW5hbWUoJGZpbGVOYW1lKSwgIi5pZGwiKTsKKyAgICAkaWRsRmlsZS0+
cHJpbWFyeURlY2xhcmF0aW9uTmFtZSgkcHJpbWFyeURlY2xhcmF0aW9uTmFtZSk7CisKKyAgICBv
cGVuIG15ICRmaWxlLCAiPCIsICRmaWxlUGF0aCBvciBkaWUgIkNvdWxkIG5vdCBvcGVuICRpZGxG
aWxlIGZvciByZWFkaW5nOiAkISI7CiAgICAgbXkgQGxpbmVzID0gPCRmaWxlPjsKICAgICBjbG9z
ZSAkZmlsZTsKIAorICAgICMgRklYTUU6IEl0IHdvdWxkIGJlIHVzZWZ1bCB0byByZW1vdmUgYWxs
IGMvYysrIHN0eWxlIGNvbW1lbnRzIGFzIHdlbGwgdG8gcmVkdWNlIGZhbHNlIHBhcnNlcy4gUGVy
aGFwcyB3ZSBjYW4gdXNlIHByZXByb2Nlc3Nvci5wbSBpZiBpdCBpcyBub3QgdG9vIGV4cGVuc2l2
ZS4KICAgICAjIEZpbHRlciBvdXQgcHJlcHJvY2Vzc29yIGxpbmVzLgogICAgIEBsaW5lcyA9IGdy
ZXAoIS9eXHMqIy8sIEBsaW5lcyk7CiAKLSAgICByZXR1cm4gam9pbignJywgQGxpbmVzKTsKKyAg
ICAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzKGpvaW4oJycsIEBsaW5lcykpOworCisgICAgaWYgKCR2
YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgbXkgJHBhcnNlciA9IElETFBhcnNlci0+
bmV3KDEpOworICAgICAgICAkaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQoJHBhcnNlci0+UGFyc2Uo
JGZpbGVQYXRoLCAkZGVmaW5lcywgJHByZXByb2Nlc3NvciwgJGlkbEF0dHJpYnV0ZXMpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gJGlkbEZpbGU7CiB9CiAKIHN1YiBnZXRQYXJ0aWFsTmFtZXNGcm9t
SURMCiB7Ci0gICAgbXkgJGZpbGVDb250ZW50cyA9IHNoaWZ0OworICAgIG15ICRpZGxGaWxlID0g
c2hpZnQ7CisKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsK
KwogICAgIG15IEBwYXJ0aWFsTmFtZXMgPSAoKTsKLSAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9
fiAvcGFydGlhbFxzKyhpbnRlcmZhY2V8ZGljdGlvbmFyeSlccysoXHcrKS9tZykgeworICAgIHdo
aWxlICgkZmlsZUNvbnRlbnRzID1+IC9wYXJ0aWFsXHMrKGludGVyZmFjZXxkaWN0aW9uYXJ5fG5h
bWVzcGFjZSlccysoXHcrKS9tZykgewogICAgICAgICBwdXNoKEBwYXJ0aWFsTmFtZXMsICQyKTsK
ICAgICB9CisgICAgCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAg
cHJpbnQoIlZhbGlkYXRpbmcgZ2V0UGFydGlhbE5hbWVzRnJvbUlETCBmb3IgIiAuICRpZGxGaWxl
LT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOworCisgICAgICAg
IG15IEBwYXJ0aWFsc0Zyb21QYXJzZWREb2N1bWVudCA9ICgpOworICAgICAgICBmb3JlYWNoIG15
ICRpbnRlcmZhY2UgKEB7JGlkbEZpbGUtPnBhcnNlZERvY3VtZW50LT5pbnRlcmZhY2VzfSkgewor
ICAgICAgICAgICAgcHVzaChAcGFydGlhbHNGcm9tUGFyc2VkRG9jdW1lbnQsICRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWUpIGlmICRpbnRlcmZhY2UtPmlzUGFydGlhbDsKKyAgICAgICAgfQorICAgICAg
ICBmb3JlYWNoIG15ICRkaWN0aW9uYXJ5IChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+ZGlj
dGlvbmFyaWVzfSkgeworICAgICAgICAgICAgcHVzaChAcGFydGlhbHNGcm9tUGFyc2VkRG9jdW1l
bnQsICRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lKSBpZiAkZGljdGlvbmFyeS0+aXNQYXJ0aWFsOwor
ICAgICAgICB9CisgICAgICAgIGZvcmVhY2ggbXkgJG5hbWVzcGFjZSAoQHskaWRsRmlsZS0+cGFy
c2VkRG9jdW1lbnQtPm5hbWVzcGFjZXN9KSB7CisgICAgICAgICAgICBwdXNoKEBwYXJ0aWFsc0Zy
b21QYXJzZWREb2N1bWVudCwgJG5hbWVzcGFjZS0+bmFtZSkgaWYgJG5hbWVzcGFjZS0+aXNQYXJ0
aWFsOworICAgICAgICB9CisKKyAgICAgICAgbXkgQHNvcnRlZFBhcnRpYWxOYW1lcyA9IHNvcnQg
QHBhcnRpYWxOYW1lczsKKyAgICAgICAgbXkgQHNvcnRlZFBhcnRpYWxzRnJvbVBhcnNlZERvY3Vt
ZW50ID0gc29ydCBAcGFydGlhbHNGcm9tUGFyc2VkRG9jdW1lbnQ7CisKKyAgICAgICAgbG9jYWwg
JERhdGE6OkR1bXBlcjo6VGVyc2UgPSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJ
bmRlbnQgPSAwOworICAgICAgICB1bmxlc3MgKGxpc3RzQXJlSWRlbnRpY2FsKFxAc29ydGVkUGFy
dGlhbE5hbWVzLCBcQHNvcnRlZFBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50KSkgeworICAgICAg
ICAgICAgZGllICJGQUlMVVJFOiBQYXJ0aWFsIGRlY2xhcmF0aW9ucyBmcm9tIHJlZ3VsYXIgZXhw
cmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZFBhcnRpYWxOYW1lcykgLiAi
KSBkb24ndCBtYXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBz
b3J0ZWRQYXJ0aWFsc0Zyb21QYXJzZWREb2N1bWVudCkgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxl
TmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIFBhcnRpYWwg
ZGVjbGFyYXRpb25zIGZyb20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuIER1
bXBlcihAc29ydGVkUGFydGlhbE5hbWVzKSAuICIpIG1hdGNoIHRob3NlIGZyb20gdmFsaWRhdGlv
biBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZFBhcnRpYWxzRnJvbVBhcnNlZERvY3VtZW50KSAu
ICIpLlxuIjsKKyAgICB9CisgICAgCiAgICAgcmV0dXJuIFxAcGFydGlhbE5hbWVzOwogfQogCkBA
IC0zNzksNTQgKzQ4OSwxNzQgQEAgc3ViIGdldFBhcnRpYWxOYW1lc0Zyb21JREwKICMgaHR0cHM6
Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW5jbHVkZXMtc3RhdGVtZW50CiBzdWIgZ2V0SW5j
bHVkZWRJbnRlcmZhY2VzRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsK
KyAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7
CiAKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKKwogICAg
IG15IEBpbmNsdWRlZEludGVyZmFjZXMgPSAoKTsKICAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9
fiAvXlxzKihcdyspXHMraW5jbHVkZXNccysoXHcrKVxzKjsvbWcpIHsKICAgICAgICAgZGllICJJ
ZGVudGlmaWVyIG9uIHRoZSBsZWZ0IG9mIHRoZSAnaW5jbHVkZXMnIHN0YXRlbWVudCBzaG91bGQg
YmUgJGludGVyZmFjZU5hbWUgaW4gJGludGVyZmFjZU5hbWUuaWRsLCBidXQgZm91bmQgJDEiIGlm
ICQxIG5lICRpbnRlcmZhY2VOYW1lOwogICAgICAgICBwdXNoKEBpbmNsdWRlZEludGVyZmFjZXMs
ICQyKTsKICAgICB9CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgeworICAgICAg
ICBwcmludCgiVmFsaWRhdGluZyBnZXRJbmNsdWRlZEludGVyZmFjZXNGcm9tSURMIGZvciAiIC4g
JGlkbEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0IHZhbGlkYXRpb24gcGFyc2VyLlxuIik7CisK
KyAgICAgICAgbXkgQGluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCA9ICgpOwor
ICAgICAgICBmb3JlYWNoIG15ICRpbmNsdWRlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+
aW5jbHVkZXN9KSB7CisgICAgICAgICAgICBwdXNoKEBpbmNsdWRlZEludGVyZmFjZXNGcm9tUGFy
c2VkRG9jdW1lbnQsICRpbmNsdWRlLT5taXhpbklkZW50aWZpZXIpOworICAgICAgICB9CisKKyAg
ICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcyA9IHNvcnQgQGluY2x1ZGVkSW50ZXJm
YWNlczsKKyAgICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1
bWVudCA9IHNvcnQgQGluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudDsKKworICAg
ICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpUZXJzZSA9IDE7CisgICAgICAgIGxvY2FsICREYXRh
OjpEdW1wZXI6OkluZGVudCA9IDA7CisKKyAgICAgICAgdW5sZXNzIChsaXN0c0FyZUlkZW50aWNh
bChcQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcywgXEBzb3J0ZWRJbmNsdWRlZEludGVyZmFjZXNG
cm9tUGFyc2VkRG9jdW1lbnQpKSB7CisgICAgICAgICAgICBkaWUgIkZBSUxVUkU6IEluY2x1ZGVk
IGludGVyZmFjZXMgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gRHVt
cGVyKEBzb3J0ZWRJbmNsdWRlZEludGVyZmFjZXMpIC4gIikgZG9uJ3QgbWF0Y2ggdGhvc2UgZnJv
bSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkSW5jbHVkZWRJbnRlcmZhY2Vz
RnJvbVBhcnNlZERvY3VtZW50KSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIl0iOwor
ICAgICAgICB9CisgICAgICAgIHByaW50ICJTVUNDRVNTISBJbmNsdWRlZCBpbnRlcmZhY2VzIGZy
b20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkSW5j
bHVkZWRJbnRlcmZhY2VzKSAuICIpIG1hdGNoIHRob3NlIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIg
KCIgLiBEdW1wZXIoQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCkg
LiAiKS5cbiI7CisgICAgfQorCiAgICAgcmV0dXJuIFxAaW5jbHVkZWRJbnRlcmZhY2VzCiB9CiAK
IHN1YiBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMg
PSBzaGlmdDsKLSAgICByZXR1cm4gKCRmaWxlQ29udGVudHMgPX4gL2NhbGxiYWNrXHMraW50ZXJm
YWNlXHMrXHcrL2dzKTsKKyAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OworCisgICAgbXkgJGZpbGVD
b250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29udGVudHM7CisgICAgbXkgJGNvbnRhaW5zQ2FsbGJh
Y2tJbnRlcmZhY2UgPSAoJGZpbGVDb250ZW50cyA9fiAvY2FsbGJhY2tccytpbnRlcmZhY2Vccytc
dysvZ3MpOworCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgcHJp
bnQoIlZhbGlkYXRpbmcgaXNDYWxsYmFja0ludGVyZmFjZUZyb21JREwgZm9yICIgLiAkaWRsRmls
ZS0+ZmlsZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAg
ICBteSAkY29udGFpbnNDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA9IDA7Cisg
ICAgICAgIGZvcmVhY2ggbXkgJGludGVyZmFjZSAoQHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQt
PmludGVyZmFjZXN9KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+aXNDYWxsYmFjaykg
eworICAgICAgICAgICAgICAgICRjb250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERv
Y3VtZW50ID0gMTsKKyAgICAgICAgICAgICAgICBsYXN0OworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgdW5sZXNzICgkY29udGFpbnNDYWxsYmFja0ludGVyZmFjZSA9PSAkY29u
dGFpbnNDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCApIHsKKyAgICAgICAgICAg
IGRpZSAiRkFJTFVSRTogRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGEgY2FsbGJh
Y2sgaW50ZXJmYWNlIGZyb20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAuICgk
Y29udGFpbnNDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2Vzbid0IG1h
dGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdGhlIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRj
b250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8i
KSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIl0uIjsKKyAgICAgICAgfQorICAgICAg
ICBwcmludCAiU1VDQ0VTUyEgRGV0ZXJtaW5hdGlvbiBvZiB3aGV0aGVyIHRoZXJlIGlzIGEgY2Fs
bGJhY2sgaW50ZXJmYWNlIGZyb20gcmVndWxhciBleHByZXNzaW9uIGJhc2VkIHBhcnNlciAoIiAu
ICgkY29udGFpbnNDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2VzIG1h
dGNoIHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdGhlIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gKCRj
b250YWluc0NhbGxiYWNrSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8i
KSAuICIpLlxuIjsKKyAgICB9CisKKyAgICByZXR1cm4gJGNvbnRhaW5zQ2FsbGJhY2tJbnRlcmZh
Y2UKIH0KIAogc3ViIGlzTWl4aW5JbnRlcmZhY2VGcm9tSURMCiB7Ci0gICAgbXkgJGZpbGVDb250
ZW50cyA9IHNoaWZ0OwotICAgIHJldHVybiAoJGZpbGVDb250ZW50cyA9fiAvaW50ZXJmYWNlXHMr
bWl4aW5ccytcdysvZ3MpOworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmls
ZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKKyAgICBteSAkY29udGFpbnNNaXhp
bkludGVyZmFjZSA9ICgkZmlsZUNvbnRlbnRzID1+IC9pbnRlcmZhY2VccyttaXhpblxzK1x3Ky9n
cyk7CisKKyAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgeworICAgICAgICBwcmludCgi
VmFsaWRhdGluZyBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5m
aWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIpOworCisgICAgICAgIG15
ICRjb250YWluc01peGluSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID0gMDsKKyAgICAgICAg
Zm9yZWFjaCBteSAkaW50ZXJmYWNlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW50ZXJm
YWNlc30pIHsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5pc01peGluKSB7CisgICAgICAg
ICAgICAgICAgJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgPSAxOwor
ICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICB1bmxlc3MgKCRjb250YWluc01peGluSW50ZXJmYWNlID09ICRjb250YWluc01peGluSW50ZXJm
YWNlRnJvbVBhcnNlZERvY3VtZW50ICkgeworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRl
cm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhlcmUgaXMgYSBtaXhpbiBpbnRlcmZhY2UgZnJvbSByZWd1
bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc01peGluSW50ZXJmYWNl
ID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXNuJ3QgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJv
bSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNNaXhpbkludGVyZmFjZUZyb21QYXJz
ZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxlTmFtZSAu
ICJdLiI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1MhIERldGVybWluYXRpb24g
b2Ygd2hldGhlciB0aGVyZSBpcyBhIG1peGluIGludGVyZmFjZSBmcm9tIHJlZ3VsYXIgZXhwcmVz
c2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zTWl4aW5JbnRlcmZhY2UgPyAiWUVTIiA6
ICJOTyIpIC4gIikgZG9lcyBtYXRjaCB0aGUgZGV0ZXJtaW5hdGlvbiBmcm9tIHZhbGlkYXRpb24g
cGFyc2VyICgiIC4gKCRjb250YWluc01peGluSW50ZXJmYWNlRnJvbVBhcnNlZERvY3VtZW50ID8g
IllFUyIgOiAiTk8iKSAuICIpLlxuIjsKKyAgICB9CisKKyAgICByZXR1cm4gJGNvbnRhaW5zTWl4
aW5JbnRlcmZhY2U7CiB9CiAKLXN1YiBpbnRlcmZhY2VJc0l0ZXJhYmxlCitzdWIgY29udGFpbnNJ
dGVyYWJsZUludGVyZmFjZUZyb21JREwKIHsKLSAgICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7
Ci0gICAgcmV0dXJuICgkZmlsZUNvbnRlbnRzID1+IC9pdGVyYWJsZVxzKjxccypcdytccyovZ3Mp
OworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlk
bEZpbGUtPmZpbGVDb250ZW50czsKKyAgICBteSAkY29udGFpbnNJdGVyYWJsZUludGVyZmFjZSA9
ICgkZmlsZUNvbnRlbnRzID1+IC9pdGVyYWJsZVxzKjxccypcdytccyovZ3MpOworCisgICAgaWYg
KCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKKyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgY29u
dGFpbnNJdGVyYWJsZUludGVyZmFjZUZyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSAkY29udGFp
bnNJdGVyYWJsZUludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA9IDA7CisgICAgICAgIGZvcmVh
Y2ggbXkgJGludGVyZmFjZSAoQHskaWRsRmlsZS0+cGFyc2VkRG9jdW1lbnQtPmludGVyZmFjZXN9
KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+aXRlcmFibGUpIHsKKyAgICAgICAgICAg
ICAgICAkY29udGFpbnNJdGVyYWJsZUludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA9IDE7Cisg
ICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHVubGVzcyAoJGNvbnRhaW5zSXRlcmFibGVJbnRlcmZhY2UgPT0gJGNvbnRhaW5zSXRlcmFibGVJ
bnRlcmZhY2VGcm9tUGFyc2VkRG9jdW1lbnQgKSB7CisgICAgICAgICAgICBkaWUgIkZBSUxVUkU6
IERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBhbiBpdGVyYWJsZSBpbnRlcmZhY2Ug
ZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc0l0ZXJh
YmxlSW50ZXJmYWNlID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXNuJ3QgbWF0Y2ggdGhlIGRldGVy
bWluYXRpb24gZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJdGVyYWJsZUlu
dGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKSBbIiAuICRpZGxG
aWxlLT5maWxlTmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgIlNVQ0NFU1Mh
IERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBhbiBpdGVyYWJsZSBpbnRlcmZhY2Ug
ZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gKCRjb250YWluc0l0ZXJh
YmxlSW50ZXJmYWNlID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXMgbWF0Y2ggdGhlIGRldGVybWlu
YXRpb24gZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJdGVyYWJsZUludGVy
ZmFjZUZyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKS5cbiI7CisgICAgfQor
CisgICAgcmV0dXJuICRjb250YWluc0l0ZXJhYmxlSW50ZXJmYWNlOwogfQogCi1zdWIgY29udGFp
bnNJbnRlcmZhY2VGcm9tSURMCitzdWIgY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlRnJvbUlETAogewotICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKKyAgICBteSAkaWRs
RmlsZSA9IHNoaWZ0OworCisgICAgbXkgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29u
dGVudHM7CisgICAgbXkgJGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZSA9ICgk
ZmlsZUNvbnRlbnRzID1+IC9cYihjYWxsYmFjayBpbnRlcmZhY2V8aW50ZXJmYWNlKVxzKyhcdysp
L2dzKTsKKworICAgIGlmICgkdmFsaWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgICAgIHByaW50
KCJWYWxpZGF0aW5nIGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21JREwg
Zm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIu
XG4iKTsKKworICAgICAgICBteSAkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNl
RnJvbVBhcnNlZERvY3VtZW50ID0gKEB7JGlkbEZpbGUtPnBhcnNlZERvY3VtZW50LT5pbnRlcmZh
Y2VzfSA+IDApOworCisgICAgICAgIHVubGVzcyAoJGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFj
a0ludGVyZmFjZSA9PSAkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNlRnJvbVBh
cnNlZERvY3VtZW50ICkgeworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRlcm1pbmF0aW9u
IG9mIHdoZXRoZXIgdGhlcmUgaXMgYW4gaW50ZXJmYWNlIG9yIGNhbGxiYWNrIGludGVyZmFjZSBm
cm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zSW50ZXJm
YWNlT3JDYWxsYmFja0ludGVyZmFjZSA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2Vzbid0IG1hdGNo
IHRoZSBkZXRlcm1pbmF0aW9uIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiAoJGNvbnRhaW5z
SW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDog
Ik5PIikgLiAiKSBbIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICJdLiI7CisgICAgICAgIH0KKyAg
ICAgICAgcHJpbnQgIlNVQ0NFU1MhIERldGVybWluYXRpb24gb2Ygd2hldGhlciB0aGVyZSBpcyBh
biBpbnRlcmZhY2Ugb3IgY2FsbGJhY2sgaW50ZXJmYWNlIGZyb20gcmVndWxhciBleHByZXNzaW9u
IGJhc2VkIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNl
ID8gIllFUyIgOiAiTk8iKSAuICIpIGRvZXMgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJvbSB2
YWxpZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJm
YWNlRnJvbVBhcnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpLlxuIjsKKyAgICB9CiAK
LSAgICByZXR1cm4gMSBpZiAkZmlsZUNvbnRlbnRzID1+IC9cYmNhbGxiYWNrXHMraW50ZXJmYWNl
XHMrXHcrL2dzOwotICAgIHJldHVybiAxIGlmICRmaWxlQ29udGVudHMgPX4gL1xiaW50ZXJmYWNl
XHMrXHcrL2dzOwotICAgIHJldHVybiAwOworICAgIHJldHVybiAkY29udGFpbnNJbnRlcmZhY2VP
ckNhbGxiYWNrSW50ZXJmYWNlOwogfQogCi1zdWIgdHJpbQorc3ViIGNvbnRhaW5zSW50ZXJmYWNl
V2l0aENvbnN0YW50c0Zyb21JREwKIHsKLSAgICBteSAkc3RyaW5nID0gc2hpZnQ7Ci0gICAgJHN0
cmluZyA9fiBzL15ccyt8XHMrJC8vZzsKLSAgICByZXR1cm4gJHN0cmluZzsKKyAgICBteSAkaWRs
RmlsZSA9IHNoaWZ0OworCisgICAgbXkgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29u
dGVudHM7CisgICAgbXkgJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50cyA9ICgkZmlsZUNv
bnRlbnRzID1+IC9ccytjb25zdFtcc1x3XSs9XHMrW1x3XSs7L2dzKTsKKworICAgIGlmICgkdmFs
aWRhdGVBZ2FpbnN0UGFyc2VyKSB7CisgICAgICAgIHByaW50KCJWYWxpZGF0aW5nIGNvbnRhaW5z
SW50ZXJmYWNlV2l0aENvbnN0YW50c0Zyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUg
LiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSAkY29udGFp
bnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzRnJvbVBhcnNlZERvY3VtZW50ID0gMDsKKyAgICAgICAg
Zm9yZWFjaCBteSAkaW50ZXJmYWNlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVudC0+aW50ZXJm
YWNlc30pIHsKKyAgICAgICAgICAgIGlmIChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30gPiAwKSB7
CisgICAgICAgICAgICAgICAgJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50c0Zyb21QYXJz
ZWREb2N1bWVudCA9IDE7CisgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIHVubGVzcyAoJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENvbnN0YW50
cyA9PSAkY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzRnJvbVBhcnNlZERvY3VtZW50ICkg
eworICAgICAgICAgICAgZGllICJGQUlMVVJFOiBEZXRlcm1pbmF0aW9uIG9mIHdoZXRoZXIgdGhl
cmUgaXMgYW4gaW50ZXJmYWNlIHdpdGggY29uc3RhbnRzIGZyb20gcmVndWxhciBleHByZXNzaW9u
IGJhc2VkIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzID8gIllF
UyIgOiAiTk8iKSAuICIpIGRvZXNuJ3QgbWF0Y2ggdGhlIGRldGVybWluYXRpb24gZnJvbSB2YWxp
ZGF0aW9uIHBhcnNlciAoIiAuICgkY29udGFpbnNJbnRlcmZhY2VXaXRoQ29uc3RhbnRzRnJvbVBh
cnNlZERvY3VtZW50ID8gIllFUyIgOiAiTk8iKSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1l
IC4gIl0uIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCAiU1VDQ0VTUyEgRGV0ZXJtaW5hdGlv
biBvZiB3aGV0aGVyIHRoZXJlIGlzIGFuIGludGVyZmFjZSB3aXRoIGNvbnN0YW50cyBmcm9tIHJl
Z3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zSW50ZXJmYWNlV2l0
aENvbnN0YW50cyA/ICJZRVMiIDogIk5PIikgLiAiKSBkb2VzIG1hdGNoIHRoZSBkZXRlcm1pbmF0
aW9uIGZyb20gdmFsaWRhdGlvbiBwYXJzZXIgKCIgLiAoJGNvbnRhaW5zSW50ZXJmYWNlV2l0aENv
bnN0YW50c0Zyb21QYXJzZWREb2N1bWVudCA/ICJZRVMiIDogIk5PIikgLiAiKS5cbiI7CisgICAg
fQorCisgICAgcmV0dXJuICRjb250YWluc0ludGVyZmFjZVdpdGhDb25zdGFudHM7CiB9CiAKIHN1
YiBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURMCiB7Ci0gICAgbXkgJGZpbGVD
b250ZW50cyA9IHNoaWZ0OworICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CisKKyAgICBteSAkZmls
ZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKIAogICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZXMgPSB7fTsKIApAQCAtNDUzLDM0ICs2ODMsOTIgQEAgc3ViIGdldEludGVyZmFjZUV4
dGVuZGVkQXR0cmlidXRlc0Zyb21JRAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuICRl
eHRlbmRlZEF0dHJpYnV0ZXM7Ci19CisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsK
KyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgZ2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVz
RnJvbUlETCBmb3IgIiAuICRpZGxGaWxlLT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9u
IHBhcnNlci5cbiIpOwogCi1zdWIgaW50ZXJmYWNlSGFzQ29uc3RhbnRBdHRyaWJ1dGUKLXsKLSAg
ICBteSAkZmlsZUNvbnRlbnRzID0gc2hpZnQ7CisgICAgICAgIG15ICRwcmltYXJ5SW50ZXJmYWNl
OworICAgICAgICBmb3JlYWNoIG15ICRpbnRlcmZhY2UgKEB7JGlkbEZpbGUtPnBhcnNlZERvY3Vt
ZW50LT5pbnRlcmZhY2VzfSkgeworICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnR5cGUtPm5h
bWUgZXEgJGlkbEZpbGUtPnByaW1hcnlEZWNsYXJhdGlvbk5hbWUpIHsKKyAgICAgICAgICAgICAg
ICAkcHJpbWFyeUludGVyZmFjZSA9ICRpbnRlcmZhY2U7CisgICAgICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCi0gICAgcmV0dXJuICRmaWxlQ29udGVudHMgPX4g
L1xzK2NvbnN0W1xzXHddKz1ccytbXHddKzsvZ3M7Ci19CisgICAgICAgICMgRklYTUU6IENvbXBh
cmluZyB0aGUgZGVlcCBzdHJ1Y3R1cmUgb2YgdGhlIGV4dGVuZGVkIGF0dHJpYnV0ZXMgaXMgc3Vp
dGFibHkgY29tcGxleCB0aGF0IGZvciBub3cKKyAgICAgICAgIyB3ZSBvbmx5IHZhbGlkYXRlIHRo
YXQgYm90aCBwYXJzZXJzIHByb2R1Y2UgdGhlIHNhbWUga2V5cy4KIAotc3ViIHNob3VsZEV4cG9z
ZUludGVyZmFjZQotewotICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBzaGlmdDsKKyAgICAg
ICAgbXkgQHNvcnRlZEV4dGVuZGVkQXR0cmlidXRlS2V5cyA9IHNvcnQga2V5cyAleyRleHRlbmRl
ZEF0dHJpYnV0ZXN9OworICAgICAgICBteSBAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1dGVLZXlzRnJv
bVBhcnNlZERvY3VtZW50ID0gc29ydCBrZXlzICV7JHByaW1hcnlJbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlc307CiAKLSAgICByZXR1cm4gISRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3QifTsKKyAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VGVyc2Ug
PSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOworCisgICAgICAg
IHVubGVzcyAobGlzdHNBcmVJZGVudGljYWwoXEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0ZUtleXMs
IFxAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSkgeworICAg
ICAgICAgICAgZGllICJGQUlMVVJFOiBFeHRlbmRlZCBhdHRyaWJ1dGVzIGZvciB0aGUgcHJpbWFy
eSBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gRHVt
cGVyKEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0ZUtleXMpIC4gIikgZG9uJ3QgbWF0Y2ggdGhvc2Ug
ZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkRXh0ZW5kZWRBdHRyaWJ1
dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpIFsiIC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4g
Il0iOworICAgICAgICB9CisgICAgICAgIHByaW50ICJTVUNDRVNTISBFeHRlbmRlZCBhdHRyaWJ1
dGVzIGZvciB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFz
ZWQgcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRFeHRlbmRlZEF0dHJpYnV0ZUtleXMpIC4gIikg
bWF0Y2ggdGhvc2UgZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkRXh0
ZW5kZWRBdHRyaWJ1dGVLZXlzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpLlxuIjsKKyAgICB9CisK
KyAgICByZXR1cm4gJGV4dGVuZGVkQXR0cmlidXRlczsKIH0KIAotc3ViIHVwZGF0ZURpY3Rpb25h
cnlEZXBlbmRlbmNpZXMKK3N1YiBnZXRVbmRlZmluZWRCYXNlRGljdGlvbmFyaWVzRnJvbUlETAog
ewotICAgIG15ICRmaWxlQ29udGVudHMgPSBzaGlmdDsKICAgICBteSAkaWRsRmlsZSA9IHNoaWZ0
OwogCi0gICAgbXkgJGRpY3Rpb25hcnlOYW1lID0gZmlsZXBhcnNlKGJhc2VuYW1lKCRpZGxGaWxl
KSwgIi5pZGwiKTsKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50
czsKIAorICAgIG15IEBkaWN0aW9uYXJ5TmFtZXMgPSAoKTsKKyAgICB3aGlsZSAoJGZpbGVDb250
ZW50cyA9fiAvXHMqZGljdGlvbmFyeVxzKyhcdyspXHMqL21nKSB7CisgICAgICAgIHB1c2goQGRp
Y3Rpb25hcnlOYW1lcywgJDEpCisgICAgfQorCisgICAgJGZpbGVDb250ZW50cyA9ICRpZGxGaWxl
LT5maWxlQ29udGVudHM7CiAgICAgbXkgQGJhc2VEaWN0aW9uYXJpZXMgPSAoKTsKICAgICB3aGls
ZSAoJGZpbGVDb250ZW50cyA9fiAvXHMqZGljdGlvbmFyeVxzKyhcdyspXHMrOlxzKyhcdyspXHMq
L21nKSB7Ci0gICAgICAgIG5leHQgaWYgISRpbnRlcmZhY2VOYW1lVG9JZGxGaWxleyQyfSB8fCAo
Z3JlcCB7ICRfIGVxICQyIH0gQGJhc2VEaWN0aW9uYXJpZXMpOworICAgICAgICBuZXh0IGlmIChn
cmVwIHsgJF8gZXEgJDIgfSBAZGljdGlvbmFyeU5hbWVzKTsKKyAgICAgICAgbmV4dCBpZiAoZ3Jl
cCB7ICRfIGVxICQyIH0gQGJhc2VEaWN0aW9uYXJpZXMpOwogICAgICAgICBwdXNoKEBiYXNlRGlj
dGlvbmFyaWVzLCAkMik7CiAgICAgfQotICAgICRkaWN0aW9uYXJ5RGVwZW5kZW5jaWVzeyRkaWN0
aW9uYXJ5TmFtZX0gPSAoam9pbigiLmlkbCAiLCBAYmFzZURpY3Rpb25hcmllcykgLiAiLmlkbCIp
IGlmIEBiYXNlRGljdGlvbmFyaWVzOworCisgICAgaWYgKCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIp
IHsKKyAgICAgICAgcHJpbnQoIlZhbGlkYXRpbmcgZ2V0VW5kZWZpbmVkQmFzZURpY3Rpb25hcmll
c0Zyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlv
biBwYXJzZXIuXG4iKTsKKworICAgICAgICBteSBAZGljdGlvbmFyeU5hbWVzRnJvbVBhcnNlZERv
Y3VtZW50ID0gKCk7CisgICAgICAgIGZvcmVhY2ggbXkgJGRpY3Rpb25hcnkgKEB7JGlkbEZpbGUt
PnBhcnNlZERvY3VtZW50LT5kaWN0aW9uYXJpZXN9KSB7CisgICAgICAgICAgICBwdXNoKEBkaWN0
aW9uYXJ5TmFtZXNGcm9tUGFyc2VkRG9jdW1lbnQsICRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lKTsK
KyAgICAgICAgfQorCisgICAgICAgIG15IEBiYXNlRGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3Vt
ZW50ID0gKCk7CisgICAgICAgIGZvcmVhY2ggbXkgJGRpY3Rpb25hcnkgKEB7JGlkbEZpbGUtPnBh
cnNlZERvY3VtZW50LT5kaWN0aW9uYXJpZXN9KSB7CisgICAgICAgICAgICAjIFNraXAgZGljdGlv
bmFyaWVzIHdpdGhvdXQgYSBiYXNlIHR5cGUuCisgICAgICAgICAgICBuZXh0IGlmICEkZGljdGlv
bmFyeS0+cGFyZW50VHlwZTsKKyAgICAgICAgICAgICMgU2tpcCBkaWN0aW9uYXJpZXMgdGhhdCBo
YXZlIHRoZWlyIGJhc2UgdHlwZSBkZWZpbmVkIGluIHRoaXMgZG9jdW1lbnQuCisgICAgICAgICAg
ICBuZXh0IGlmIChncmVwIHsgJF8gZXEgJGRpY3Rpb25hcnktPnBhcmVudFR5cGUtPm5hbWUgfSBA
ZGljdGlvbmFyeU5hbWVzRnJvbVBhcnNlZERvY3VtZW50KTsKKyAgICAgICAgICAgICMgU2tpcCBk
aWN0aW9uYXJpZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgbGlzdC4KKyAg
ICAgICAgICAgIG5leHQgaWYgKGdyZXAgeyAkXyBlcSAkZGljdGlvbmFyeS0+cGFyZW50VHlwZS0+
bmFtZSB9IEBiYXNlRGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3VtZW50KTsKKworICAgICAgICAg
ICAgcHVzaChAYmFzZURpY3Rpb25hcmllc0Zyb21QYXJzZWREb2N1bWVudCwgJGRpY3Rpb25hcnkt
PnBhcmVudFR5cGUtPm5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgbXkgQHNvcnRlZEJhc2VE
aWN0aW9uYXJpZXMgPSBzb3J0IEBiYXNlRGljdGlvbmFyaWVzOworICAgICAgICBteSBAc29ydGVk
QmFzZURpY3Rpb25hcmllc0Zyb21QYXJzZWREb2N1bWVudCA9IHNvcnQgQGJhc2VEaWN0aW9uYXJp
ZXNGcm9tUGFyc2VkRG9jdW1lbnQ7CisKKyAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6VGVy
c2UgPSAxOworICAgICAgICBsb2NhbCAkRGF0YTo6RHVtcGVyOjpJbmRlbnQgPSAwOworCisgICAg
ICAgIHVubGVzcyAobGlzdHNBcmVJZGVudGljYWwoXEBzb3J0ZWRCYXNlRGljdGlvbmFyaWVzLCBc
QHNvcnRlZEJhc2VEaWN0aW9uYXJpZXNGcm9tUGFyc2VkRG9jdW1lbnQpKSB7CisgICAgICAgICAg
ICBkaWUgIkZBSUxVUkU6IFVuZGVmaW5lZCBiYXNlIGRpY3Rpb25hcmllcyBmcm9tIHJlZ3VsYXIg
ZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZEJhc2VEaWN0aW9uYXJp
ZXMpIC4gIikgZG9uJ3QgbWF0Y2ggdGhvc2UgZnJvbSB2YWxpZGF0aW9uIHBhcnNlciAoIiAuIER1
bXBlcihAc29ydGVkQmFzZURpY3Rpb25hcmllc0Zyb21QYXJzZWREb2N1bWVudCkgLiAiKSBbIiAu
ICRpZGxGaWxlLT5maWxlTmFtZSAuICJdIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCAiU1VD
Q0VTUyEgVW5kZWZpbmVkIGJhc2UgZGljdGlvbmFyaWVzIGZyb20gcmVndWxhciBleHByZXNzaW9u
IGJhc2VkIHBhcnNlciAoIiAuIER1bXBlcihAc29ydGVkQmFzZURpY3Rpb25hcmllcykgLiAiKSBt
YXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRCYXNl
RGljdGlvbmFyaWVzRnJvbVBhcnNlZERvY3VtZW50KSAuICIpLlxuIjsKKyAgICB9CisKKyAgICBy
ZXR1cm4gXEBiYXNlRGljdGlvbmFyaWVzOworfQorCitzdWIgc2hvdWxkRXhwb3NlSW50ZXJmYWNl
Cit7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHNoaWZ0OworCisgICAgcmV0dXJuICEk
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0In07CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5k
ZW5jaWVzLmRlcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAkocmV2aXNpb24gMjY2NjgzKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVu
Y2llcy5kZXAJKHdvcmtpbmcgY29weSkKQEAgLTI2NywzICsyNjcsNSBAQCBXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcnMuaWRsOgogIyBEaWN0aW9uYXJpZXMgZGVwZW5kZW5jaWVzCiBKU1Rl
c3REZXJpdmVkRGljdGlvbmFyeS5jcHA6IFRlc3RJbmhlcml0ZWREaWN0aW9uYXJ5LmlkbAogSlNU
ZXN0RGVyaXZlZERpY3Rpb25hcnkyLmNwcDogVGVzdEluaGVyaXRlZERpY3Rpb25hcnkuaWRsIFRl
c3RJbmhlcml0ZWREaWN0aW9uYXJ5Mi5pZGwKK0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOiBF
dmVudEluaXQuaWRsCitKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOiBFdmVudEluaXQu
aWRsCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjY2ODMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAyMC0wOS0wNiAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgW1dlYklETF0gQWRkIG1vZGUgdG8gcHJlcHJvY2Vzcy1pZGxzLnBsIHRvIHZh
bGlkYXRlIGZhc3QgcmVnZXggYmFzZWQgc2Nhbm5lciB3aXRoIHRoZSBub3JtYWwgSURMIHBhcnNl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MjMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2JpbmRpbmdzL21haW4ucHk6CisgICAgICAgIChCaW5kaW5nc1Rlc3RzLmdl
bmVyYXRlX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KToKKyAgICAgICAgVXBkYXRlIGZvciByZW5h
bWUgZnJvbSBpZGxGaWxlc0xpc3QgdG8gaWRsRmlsZU5hbWVzTGlzdCBhbmQgdG8gcGFzcyB0aGUg
aWRsQXR0cmlidXRlc0ZpbGUgYXJndW1lbnQuIAorCiAyMDIwLTA5LTA2ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTGV0dGVyLXNwYWNpbmcgc2hv
dWxkIGRpc2FibGUgbGlnYXR1cmVzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JpbmRp
bmdzL21haW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iaW5kaW5n
cy9tYWluLnB5CShyZXZpc2lvbiAyNjY2ODMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jp
bmRpbmdzL21haW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTg2LDkgKzg2LDEwIEBAIGNsYXNzIEJp
bmRpbmdzVGVzdHM6CiAgICAgICAgIGNtZCA9IFsncGVybCcsICctdycsCiAgICAgICAgICAgICAg
ICAnLUlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMnLAogICAgICAgICAgICAgICAgJ1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwnLAotICAgICAgICAgICAgICAgJy0t
aWRsRmlsZXNMaXN0JywgaWRsX2ZpbGVzX2xpc3RbMV0sCisgICAgICAgICAgICAgICAnLS1pZGxG
aWxlTmFtZXNMaXN0JywgaWRsX2ZpbGVzX2xpc3RbMV0sCiAgICAgICAgICAgICAgICAnLS10ZXN0
R2xvYmFsQ29udGV4dE5hbWUnLCAnVGVzdEdsb2JhbE9iamVjdCcsCiAgICAgICAgICAgICAgICAn
LS1kZWZpbmVzJywgJycsCisgICAgICAgICAgICAgICAnLS1pZGxBdHRyaWJ1dGVzRmlsZScsICdX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uJywKICAgICAgICAgICAg
ICAgICctLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlJywgc3VwcGxlbWVudGFsX2RlcGVuZGVu
Y3lfZmlsZSwKICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbE1ha2VmaWxlRGVwcycsIHN1
cHBsZW1lbnRhbF9tYWtlZmlsZV9kZXBlbmRlbmN5X2ZpbGUsCiAgICAgICAgICAgICAgICAnLS13
aW5kb3dDb25zdHJ1Y3RvcnNGaWxlJywgd2luZG93X2NvbnN0cnVjdG9yc19maWxlLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>