<?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>217150</bug_id>
          
          <creation_ts>2020-09-30 16:04:39 -0700</creation_ts>
          <short_desc>[JSC] We should not tag C function with JIT code related ptr tag</short_desc>
          <delta_ts>2020-09-30 23:02:03 -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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1693558</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 16:04:39 -0700</bug_when>
    <thetext>[JSC] We should not tag C function with JIT code related ptr tag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693562</commentid>
    <comment_count>1</comment_count>
      <attachid>410162</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 16:07:47 -0700</bug_when>
    <thetext>Created attachment 410162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693567</commentid>
    <comment_count>2</comment_count>
      <attachid>410165</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 16:14:42 -0700</bug_when>
    <thetext>Created attachment 410165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693576</commentid>
    <comment_count>3</comment_count>
      <attachid>410170</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 16:28:14 -0700</bug_when>
    <thetext>Created attachment 410170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693578</commentid>
    <comment_count>4</comment_count>
      <attachid>410170</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-09-30 16:47:56 -0700</bug_when>
    <thetext>Comment on attachment 410170
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=410170&amp;action=review

r=me with fixes.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:1227
&gt; +            DisallowGC disallowGC;

Why disallowGC here?  I don&apos;t think we should be disallowing GC for the entire duration of the time we&apos;re executing the native function.  Please remove this.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:1255
&gt; +        DisallowGC disallowGC;

Ditto.  Please remove.

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1673
&gt; +            DisallowGC disallowGC;

Ditto.  Please remove.

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1692
&gt; +        DisallowGC disallowGC;

Ditto.  Please remove.

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1963
&gt; +    DisallowGC disallowGC;

Ditto.  Please remove.

&gt; Source/JavaScriptCore/llint/LLIntThunks.cpp:190
&gt;  #endif

nit: can you add `// ENABLE(JIT)` after this #endif to make it clearer what section it terminates?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693587</commentid>
    <comment_count>5</comment_count>
      <attachid>410174</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 17:12:33 -0700</bug_when>
    <thetext>Created attachment 410174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693599</commentid>
    <comment_count>6</comment_count>
      <attachid>410180</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 17:26:23 -0700</bug_when>
    <thetext>Created attachment 410180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693600</commentid>
    <comment_count>7</comment_count>
      <attachid>410181</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 17:29:02 -0700</bug_when>
    <thetext>Created attachment 410181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693616</commentid>
    <comment_count>8</comment_count>
      <attachid>410170</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-30 18:37:23 -0700</bug_when>
    <thetext>Comment on attachment 410170
Patch

Discussed with Mark at Slack and the latest patch resolved comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693647</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-30 22:15:19 -0700</bug_when>
    <thetext>Committed r267820: &lt;https://trac.webkit.org/changeset/267820&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693648</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-30 22:16:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/69822573&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410162</attachid>
            <date>2020-09-30 16:07:47 -0700</date>
            <delta_ts>2020-09-30 16:21:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217150-20200930160747.patch</filename>
            <type>text/plain</type>
            <size>37531</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NDAxYmRhNjgwZTNjZjlmZGFhMTM2ZTBkNjYxY2VlNmQxMjFhMDJmLi40NWIxZGY3OTY5Mzk5YjRi
ZTc0NThlZTFhY2ZhZDFkNjQxYzQwM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wOS0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFdlIHNob3VsZCBub3QgdGFnIEMgZnVuY3Rpb24gd2l0aCBKSVQg
Y29kZSByZWxhdGVkIHB0ciB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIGFyZSB0YWdnaW5nIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUgZnVuY3Rp
b24gd2l0aCBKSVQgcmVsYXRlZCBQdHJUYWcuIEFzIGEgcGFydCBvZiBKSVQtY2FnaW5nIGVmZm9y
dCwgd2UgYXJlIHJlc3RyaWN0aW5nIG91cgorICAgICAgICBQdHJUYWcgdXNhZ2UgbW9yZSBmb3Ig
Y29kZSB0eXBlcyAoZS5nLiBKSVQgY29kZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSklUIHJlbGF0
ZWQgUHRyVGFnKS4gU28sIHdlIHNob3VsZCBub3QgdGFnIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUK
KyAgICAgICAgd2l0aCB0aGF0LiBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSBpbiBKSVQgY29kZSBpZiBKSVQgaXMgZW5hYmxlZC4gSWYgbm90LCBpdCBpcyBpbXBs
ZW1lbnRlZCBieSBMTEludC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZN
KToKKyAgICAgICAgKiBoZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OlBy
ZWNpc2VBbGxvY2F0aW9uOjpvZmZzZXRPZldlYWtTZXQpOgorICAgICAgICAqIGhlYXAvV2Vha1Nl
dC5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0OjpvZmZzZXRPZlZNKToKKyAgICAgICAgKiBqaXQv
SG9zdENhbGxSZXR1cm5WYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaml0L0hvc3RDYWxs
UmV0dXJuVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnNNU1ZDNjQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGppdC9KSVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRy
eXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuaDoKKyAgICAgICAgKiBs
bGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpoYW5kbGVIb3N0
Q2FsbCk6CisgICAgICAgIChKU0M6OkxMSW50Ojpjb21tb25DYWxsRXZhbCk6CisgICAgICAgICog
bGxpbnQvTExJbnRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZVRodW5rKToKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpDTG9vcDo6
ZXhlY3V0ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om9m
ZnNldE9mVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6
Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06Om9mZnNldE9m
RW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOgorCiAyMDIwLTA5LTMwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI2Nzc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNiZmFlMTliMTgy
Y2I1Mjc0YmU2MTIxOTJkODUzNjA2YjNjMGU0My4uMzdmZWJmZjY1YWIzNmIxZTA1ZjM3OGE5ZjQ0
NTg0MTllOGUwNDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0Myw3ICsz
NDMsNiBAQAogCQkwRjQ2ODBDQjE0QkJCMTcyMDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29u
ZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2
ODBDNjE0QkJCMTY5MDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NjgwQ0QxNEJCQjE3
RDAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dM
ZXZlbEludGVycHJldGVyLmggKi87IH07CiAJCTBGNDY4MEQzMTRCQkQxNjcwMEJGRTI3MiAvKiBM
TEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsgfTsKLQkJMEY0Njgw
RDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovOyB9OwogCQkwRjQ4NTMy
ODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMwMDgzQjY4
NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNv
dmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2MDEsOCArMjYw
MCw2IEBACiAJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZlbEludGVycHJldGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvd0xldmVsSW50ZXJwcmV0ZXIu
aDsgcGF0aCA9IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NjgwQ0UxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludERhdGEuY3BwOyBwYXRoID0g
bGxpbnQvTExJbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Njgw
Q0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0aCA9IGxsaW50L0xMSW50RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
b3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY0
NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhN
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRoTW9k
ZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRmZy9E
RkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMjMxODdE
RkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9IGZ0
bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MTMxLDggKzYxMjgsNiBAQAogCQkJCTBGNzY2RDJFMTVBOERDREQwMDhGMzYzRSAvKiBHQ0F3
YXJlSklUU3R1YlJvdXRpbmUuaCAqLywKIAkJCQkwRjkzMjc0QzFDMUY2NkFBMDBDRjY1NjQgLyog
R1BSSW5mby5jcHAgKi8sCiAJCQkJMEYyNEU1M0YxN0VBOUY1OTAwQUJCMjE3IC8qIEdQUkluZm8u
aCAqLywKLQkJCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1
ZS5jcHAgKi8sCi0JCQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJu
VmFsdWUuaCAqLywKIAkJCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
Ki8sCiAJCQkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLywKIAkJCQlE
RTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCkBAIC05
NzY3LDcgKzk3NjIsNiBAQAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFCNiAvKiBIZWFwU25h
cHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFENEQyM0JFMDA3Njg0
NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1MUU3MjA1MzgwMDEz
NEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDY4MEQ1MTRCQkQy
NEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
QzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY0NEE3QjIyMEJGNjhDRTAwMjJCMTcxIC8qIElDU3RhdHVzTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkIzOTlCRTIwQUY2QjNEMDAxN0UyMTMgLyogSUNTdGF0dXNVdGlscy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggYzVlMmE2NmJjNzIxZTEwNTAz
ZjE1NWVmNjYxNTZkMGE5MGRkM2EwZS4uY2ZlNGVlZjc1ZGU2NTc0MTAzZGU1MTMxMDMyMmI3ODcw
YzE2N2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjI5LDcgKzYyOSw2IEBA
IGppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5jcHAKIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCiBqaXQvR1BSSW5mby5jcHAKLWpp
dC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAogaml0L0lDU3RhdHMuY3BwCiBqaXQvSW50cmluc2lj
RW1pdHRlci5jcHAKIGppdC9KSVQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCA0MWFkN2Y0Yjc0YWQ3MjU1ZGQ1MTYwYWM3N2JiNmM4
MDNhM2U5YzJlLi5iZDgyZjcxMDZlOWMwOGRiNDViMTNhZTM0NDVjNmIyOWI3NGU1Njg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTEz
MzAsNyArMTMzMCw2IEBACiAgICAgbWFjcm9fbmFtZV9jb21wb25lbnQ6IDpDTE9PUF9CWVRFQ09E
RV9IRUxQRVIKIAogb3AgOmxsaW50X2VudHJ5Ci1vcCA6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZQog
b3AgOmxsaW50X3JldHVybl90b19ob3N0CiBvcCA6bGxpbnRfdm1fZW50cnlfdG9famF2YXNjcmlw
dAogb3AgOmxsaW50X3ZtX2VudHJ5X3RvX25hdGl2ZQpAQCAtMTQwNSw2ICsxNDA0LDcgQEAKIG9w
IDpjaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5saW5lZF9jYWxsX3RyYW1wb2xpbmUKIG9wIDpj
aGVja3BvaW50X29zcl9leGl0X3RyYW1wb2xpbmUKIG9wIDpmdXp6ZXJfcmV0dXJuX2Vhcmx5X2Zy
b21fbG9vcF9oaW50CitvcCA6bGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUKIG9wIDpo
YW5kbGVVbmNhdWdodEV4Y2VwdGlvbgogb3AgOm9wX2NhbGxfcmV0dXJuX2xvY2F0aW9uCiBvcCA6
b3BfY29uc3RydWN0X3JldHVybl9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDE2ZWEyNWQzZDdkYmMxYTEyZjI5Y2M2N2UzM2Iy
NjZkZjQ5NDdlNDUuLmVhN2IyZjJmOGYxN2ExZjQ5NGNlM2FjY2ZjYTM1NTM1Y2QyY2ZmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTMx
Niw2ICszMTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2UgbGxpbnRfbmF0
aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rp
b25fY2FsbF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29u
c3RydWN0X3RyYW1wb2xpbmU6CisgICAgY2FzZSBsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92
YWx1ZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxpbmVkX2NhbGxfdHJh
bXBvbGluZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfdHJhbXBvbGluZToKICAgICBj
YXNlIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmgKaW5kZXggYzlkOTFhYmQxYTNlMzkyZDY1ZjU0MTYyMGY1MTU4NjkyZTc0N2U4
MC4uYjU5ZjFmMzM1YjRjYzZiNDg1ZDhiYjkzYTUwNDE5OWVlMjA2ZmQwYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0yNTEsNiArMjUxLDggQEAgY2xhc3Mg
TWFya2VkQmxvY2sgewogICAgIHB1YmxpYzoKICAgICAgICAgRm9vdGVyKFZNJiwgSGFuZGxlJik7
CiAgICAgICAgIH5Gb290ZXIoKTsKKworICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
Vk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRm9vdGVyLCBtX3ZtKTsgfQogICAgICAgICAK
ICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmgKaW5k
ZXggMTBlYjY3ZGQwNDJlOTQzODlhNjcyZWEwMGNmMDlhYWRhZGNkZDMyOS4uYmM4NmZlNmM1NThj
NmI5YzMxNDlhNDI0MWIzNDUzMjZhZGQ5OWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9QcmVjaXNlQWxsb2NhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBAIGNsYXNzIFByZWNp
c2VBbGxvY2F0aW9uIDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQcmVjaXNlQWxsb2Nh
dGlvbj4gewogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1NldC52bSgpOyB9CiAg
ICAgV2Vha1NldCYgd2Vha1NldCgpIHsgcmV0dXJuIG1fd2Vha1NldDsgfQogCisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZldlYWtTZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUHJl
Y2lzZUFsbG9jYXRpb24sIG1fd2Vha1NldCk7IH0KKwogICAgIHVuc2lnbmVkIGluZGV4SW5TcGFj
ZSgpIHsgcmV0dXJuIG1faW5kZXhJblNwYWNlOyB9CiAgICAgdm9pZCBzZXRJbmRleEluU3BhY2Uo
dW5zaWduZWQgaW5kZXhJblNwYWNlKSB7IG1faW5kZXhJblNwYWNlID0gaW5kZXhJblNwYWNlOyB9
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKaW5kZXggNGIzYTE0Yjk5NWE5
NGZhZmFlZTg5MmJjMGZkYmQ0ZDE1MmJlMjNhZS4uZGRhYzAzZTQ2YWZkNWEzODJmMDU2MjZjMjdl
MTgxNzFkMWQ4NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaApAQCAtNTgs
NiArNTgsOCBAQCBjbGFzcyBXZWFrU2V0IDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPFdl
YWtTZXQ+IHsKICAgICB2b2lkIHNocmluaygpOwogICAgIHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsK
IAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihXZWFrU2V0LCBtX3ZtKTsgfQorCiBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoQ2VsbENvbnRhaW5lcik7CiAgICAg
V2Vha0Jsb2NrOjpGcmVlQ2VsbCogdHJ5RmluZEFsbG9jYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk2MjEwZjMwMGUxOWY2Mzc5ODJlMDgxNjVlMjYxMTA4MDZiMjg5NWMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVl
LmgiCi0KLSNpZiAhRU5BQkxFKENfTE9PUCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+Ci0KLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLS8vIE5vdGU6IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKCkgbmVlZHMgdG8gYmUgcGxhY2VkIGJlZm9yZSB0aGUKLS8vIGRlZmluaXRpb24gb2YgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGJlbG93IGJlY2F1c2UgdGhlIFdpbmRvd3MgYnVpbGQKLS8v
IHJlcXVpcmVzIGl0LgotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJO
X1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fs
bEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsKLX0KLQotI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQotYXNtICgKLSIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGVhIC04KCVyc3ApLCAlcmRpXG4iCi0gICAgImptcCAi
IExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxu
IgotKTsKLQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShYODYpCi1hc20g
KAotIi50ZXh0IiAiXG4iIFwKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
LVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAicHVz
aCAlZWJwXG4iCi0gICAgIm1vdiAlZXNwLCAlZWF4XG4iCi0gICAgImxlYWwgLTQoJWVzcCksICVl
c3BcbiIKLSAgICAicHVzaCAlZWF4XG4iCi0gICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSAgICAibGVhbCA4KCVlc3Ap
LCAlZXNwXG4iCi0gICAgInBvcCAlZWJwXG4iCi0gICAgInJldFxuIgotKTsKLQotI2VsaWYgQ09N
UElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShBUk1fVEhVTUIyKQotYXNtICgKLSIudGV4dCIg
IlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCi0iLnRodW1iIiAiXG4iCi0iLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZSkgIjoiICJcbiIKLSAgICAic3ViIHIwLCBzcCwgIzgiICJcbiIKLSAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgotKTsK
LQotI2VsaWYgQ1BVKEFSTTY0KQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4i
Ci0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1I
SURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgICJzdWIgeDAsIHNwLCAjMTYiICJc
biIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBD
UFUoTUlQUykKLQotI2lmIFdURl9NSVBTX1BJQwotI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5
KGZ1bmN0aW9uKSBcCi0gICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCi0gICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAotICAgICAg
ICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgotI2Vsc2UKLSNkZWZp
bmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgotI2VuZGlmCi0KLWFzbSAo
Ci0iLnRleHQiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQotICAgICJh
ZGRpICRhMCwgJHNwLCAtOCIgIlxuIgotICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCi0pOwotCi0jZWxpZiBDT01QSUxFUihN
U1ZDKSAmJiBDUFUoWDg2KQotZXh0ZXJuICJDIiB7Ci0gICAgX19kZWNsc3BlYyhuYWtlZCkgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSgpCi0gICAgewotICAgICAgICBfX2FzbSBsZWEgZWF4LCBbZXNwIC0gNF0KLSAgICAg
ICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWF4OwotICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICB9Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxYmNkMjk5MDliYjBlOWI0Nzg5MjVkZmZiZGI5Zjk0MDhlYmRlNjIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotCi0jaWYgIUVOQUJMRShDX0xP
T1ApCi0KLSNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAotI2RlZmluZSBIT1NUX0NB
TExfUkVUVVJOX1ZBTFVFX09QVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUgSE9TVF9DQUxMX1JF
VFVSTl9WQUxVRV9PUFRJT04KLSNlbmRpZgotCi1uYW1lc3BhY2UgSlNDIHsKLQotZXh0ZXJuICJD
IiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7Ci0KLSNpZiBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotLy8gVGhpcyBpcyBhIHB1YmxpYyBkZWNsYXJhdGlv
biBvbmx5IHRvIGNvbnZpbmNlIENMQU5HIG5vdCB0byBlbGlkZSBpdC4KLWV4dGVybiAiQyIgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUoQ2FsbEZyYW1lKikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7Ci0KLWlubGluZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkK
LXsKLSAgICBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShudWxscHRyKTsKLX0K
LQotI2Vsc2UgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0KLWlubGluZSB2b2lkIGluaXRp
YWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkgeyB9Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Nf
Q09NUEFUSUJMRSkKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENf
TE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDU3MDhjYjI0MGY5ZmRmYTMzNTFmMDVlN2E1MGNiZDAxNTZmZGYxZDIuLmQ0NjA2NzQ4NGRmMmYy
NGNjODFhNDhjMGE4YTgzN2I4NzVhMDczZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkZ1enouaCIKICNpbmNsdWRlICJGcmFtZVRyYWNlcnMuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSUNTdGF0
cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC01Nyw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKICNpbmNsdWRlICJKU0xl
eGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAi
TExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKQEAgLTEyMjQs
NyArMTIyNCw4IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lCiAgICAgICAgIGlmIChjYWxsRGF0
YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAgICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAgICAgICAgIGNhbGxl
ZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVlKSk7Ci0gICAgICAgICAgICB2bS5ob3N0
Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
bihhc09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSkpOworICAg
ICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICAgICAgdm0uZW5jb2RlZEhv
c3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2Fs
bGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOwogICAgICAgICAgICAgaWYgKFVO
TElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNlcHRp
b25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8SlNFbnRyeVB0clRhZz4o
KS5leGVjdXRhYmxlQWRkcmVzcygpLApAQCAtMTIzMiw3ICsxMjMzLDcgQEAgc3RhdGljIFNsb3dQ
YXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgKLSAgICAgICAgICAgICAgICB0YWdDRnVuY3Rpb248dm9pZCosIEpTRW50cnlQdHJUYWc+
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLAorICAgICAgICAgICAgICAgIExMSW50OjpnZXRIb3N0
Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAog
ICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2Fs
bE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUp
KTsKICAgICAgICAgfQogICAgIApAQCAtMTI1MSwxNCArMTI1MiwxNSBAQCBzdGF0aWMgU2xvd1Bh
dGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZQogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6
Ok5hdGl2ZSkgewogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
ZWVGcmFtZSk7CiAgICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVl
KSk7Ci0gICAgICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0
KHZtKSwgY2FsbGVlRnJhbWUpKTsKKyAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAg
ICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1l
KTsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKICAgICAgICAgICAgICAgICB2bS5nZXRDVElTdHViKHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPEpTRW50
cnlQdHJUYWc+KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogCi0gICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQodGFnQ0Z1bmN0aW9uPHZvaWQqLCBKU0VudHJ5UHRyVGFnPihnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1l
KSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJu
VmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwogICAgIH0KIAogICAgIEFTU0VSVChjb25zdHJ1
Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9uc01TVkM2NC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhNWYzMTM3ZTZhMDNmODc5OGRiOGM3MGI5NGMwM2M0NjExZTgyOGIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi0vLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQgdGhhdCBpcyBvbmx5
IG5lZWRlZCBiZWNhdXNlIEpJVFN0dWJzTVNWQzY0LmFzbQotLy8gaXMgYnVpbHQgdW5jb25kaXRp
b25hbGx5IGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGUsIGFuZCBpdCByZWZlcmVuY2VzIHRo
aXMgZnVuY3Rpb24uCi0vLyBXZSBvbmx5IG5lZWQgdG8gcHJvdmlkZSBhIHN0dWIgdG8gc2F0aXNm
eSB0aGUgbGlua2FnZS4gSXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuCi1leHRlcm4gIkMiIEVuY29k
ZWRKU1ZhbHVlIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEpTR2xvYmFsT2Jq
ZWN0KikKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnNNU1ZDNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c01TVkM2NC5hc20KaW5kZXggZWRmZTVjMzA3ZmYyOGJmN2EzMjIwNDQ5NDI4OTg4Y2MzNWQyNjY4
Yy4uY2I0MzM2MmZlNjU1YTMzOWQwZjgyMzZiMTU5ZmU5YTI0M2E5ZGU0OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KQEAgLTI1LDIxICsyNSwxMCBA
QAogCiBFWFRFUk4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUgOiBuZWFyCiAK
LVBVQkxJQyBnZXRIb3N0Q2FsbFJldHVyblZhbHVlCiBQVUJMSUMgY3RpTWFzbVByb2JlVHJhbXBv
bGluZQogCiBfVEVYVCAgIFNFR01FTlQKIAotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBQUk9DCi0g
ICAgbGVhIHJjeCwgW3JzcCAtIDhdCi0gICAgOyBBbGxvY2F0ZSBzcGFjZSBmb3IgYWxsIDQgcGFy
YW1ldGVyIHJlZ2lzdGVycywgYW5kIGFsaWduIHN0YWNrIHBvaW50ZXIgdG8gMTYgYnl0ZXMgYm91
bmRhcnkgYnkgYWxsb2NhdGluZyBhbm90aGVyIDggYnl0ZXMuCi0gICAgOyBUaGUgc3RhY2sgYWxp
Z25tZW50IGlzIG5lZWRlZCB0byBmaXggYSBjcmFzaCBpbiB0aGUgQ1JUIGxpYnJhcnkgb24gYSBm
bG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbi4KLSAgICBzdWIgcnNwLCA0MAotICAgIGNhbGwgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICBhZGQgcnNwLCA0MAotICAgIHJl
dAotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBFTkRQCi0KIDsgVGhlIGZvbGxvd2luZyBjb25zdGFu
dHMgbXVzdCBtYXRjaCB0aGUgeDg2XzY0IHZlcnNpb24gaW4gTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uY3BwLgogUFRSX1NJWkUgRVFVIDgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRFbnRyeXBvaW50LmNwcAppbmRleCA4ODczNzE4N2FjMDExOTIyNTJjMTI4NTQxZDI0
MDE4ZGM0MzQ2YzE0Li41YzYwOTFjMjNiODhiYjQyZTRiYjZjNTJjNWVjYzZhMThmNmI0ZWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcApA
QCAtMTU0LDYgKzE1NCwxNSBAQCBzdGF0aWMgdm9pZCBzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2lu
dChDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJl
Zigqaml0Q29kZSkpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4g
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKQoreworI2lmIEVOQUJMRShKSVQpCisg
ICAgaWYgKE9wdGlvbnM6OnVzZUpJVCgpKQorICAgICAgICByZXR1cm4gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVRodW5rKCk7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKyAgICByZXR1cm4gZ2V0Q29k
ZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92YWx1ZSk7Cit9
CisKIHZvaWQgc2V0RW50cnlwb2ludChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBzd2l0
Y2ggKGNvZGVCbG9jay0+Y29kZVR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RW50cnlwb2ludC5oCmluZGV4IGUxMDBmYjhmZjMwNmU3MTU3ZGNiZDNkYjIyMTlh
ZmMxZTgyNjlkMGIuLmU0NzZhYTJkZWM1MzljYWRhNjkyODYxZWY4YzM3ZDk0MTU0OTUzMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmgKQEAgLTM3
LDQgKzM3LDYgQEAgdm9pZCBzZXRFbnRyeXBvaW50KENvZGVCbG9jayopOwogCiB1bnNpZ25lZCBm
cmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKik7CiAKK01hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxKU0VudHJ5UHRyVGFnPiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpOworCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGY5YTkwN2VkNDFiZGU0NTZjZjBkOWQ3ZTE5YjNm
OTFiNGJkMWRlNTAuLjgyYzM3NzQ2OTQ3YjY1ZDliOGExYWZjMWM4ZTE4ZGQxNDhlYTcwN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uQWxsb3dsaXN0LmgiCiAjaW5jbHVkZSAi
RnVuY3Rpb25Db2RlQmxvY2suaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKLSNpbmNsdWRl
ICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2lu
Y2x1ZGUgIkpJVFdvcmtsaXN0LmgiCiAjaW5jbHVkZSAiSlNBc3luY0Z1bmN0aW9uLmgiCkBAIC0x
NjcxLDggKzE2NzAsOSBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxs
KENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpTVmFsdWUgY2FsbGVlLAogICAgICAgICBpZiAoY2Fs
bERhdGEudHlwZSA9PSBDYWxsRGF0YTo6VHlwZTo6TmF0aXZlKSB7CiAgICAgICAgICAgICBTbG93
UGF0aEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbGVlRnJhbWUpOwogICAgICAgICAgICAgY2Fs
bGVlRnJhbWUtPnNldENhbGxlZShhc09iamVjdChjYWxsZWUpKTsKLSAgICAgICAgICAgIHZtLmhv
c3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKSk7Ci0g
ICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBM
TEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgQ0Z1bmN0aW9uUHRyVGFn
KTsKKyAgICAgICAgICAgIERpc2FsbG93R0MgZGlzYWxsb3dHQzsKKyAgICAgICAgICAgIHZtLmVu
Y29kZWRIb3N0Q2FsbFJldHVyblZhbHVlID0gY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2Jq
ZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgICAg
IExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRI
b3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
LCBKU0VudHJ5UHRyVGFnKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc2xvd1BhdGhM
b2coIkNhbGwgY2FsbGVlIGlzIG5vdCBhIGZ1bmN0aW9uOiAiLCBjYWxsZWUsICJcbiIpOwpAQCAt
MTY4OSw4ICsxNjg5LDkgQEAgc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2Fs
bChDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBKU1ZhbHVlIGNhbGxlZSwKICAgICBpZiAoY29uc3Ry
dWN0RGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAgU2xvd1Bh
dGhGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAgICAgY2FsbGVlRnJh
bWUtPnNldENhbGxlZShhc09iamVjdChjYWxsZWUpKTsKLSAgICAgICAgdm0uaG9zdENhbGxSZXR1
cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbihh
c09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSkpOwotICAgICAg
ICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6Z2V0
Q29kZVB0cihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgQ0Z1bmN0aW9uUHRyVGFnKTsKKyAgICAg
ICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1
cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSkt
Pmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgTExJTlRfQ0FMTF9SRVRV
Uk4oZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFtZSwgTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFs
dWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcp
OwogICAgIH0KICAgICAKICAgICBzbG93UGF0aExvZygiQ29uc3RydWN0b3IgY2FsbGVlIGlzIG5v
dCBhIGZ1bmN0aW9uOiAiLCBjYWxsZWUsICJcbiIpOwpAQCAtMTk1OSw4ICsxOTYwLDkgQEAgaW5s
aW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBjb21tb25DYWxsRXZhbChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgY29uc3QgSW5zdHJ1Y3Rpb24KICAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKGNhbGxlZUFzVmFs
dWUsIGdsb2JhbEZ1bmNFdmFsKSkKICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIHNldFVwQ2FsbChjYWxsZWVGcmFtZSwgQ29kZUZvckNhbGwsIGNhbGxlZUFzVmFsdWUpKTsK
ICAgICAKLSAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gZXZhbChnbG9iYWxPYmplY3QsIGNh
bGxlZUZyYW1lLCBieXRlY29kZS5tX2VjbWFNb2RlKTsKLSAgICBMTElOVF9DQUxMX1JFVFVSTihn
bG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSwgQ0Z1bmN0aW9uUHRyVGFnKTsKKyAgICBEaXNhbGxvd0dDIGRpc2FsbG93R0M7
CisgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoZXZh
bChnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBieXRlY29kZS5tX2VjbWFNb2RlKSk7CisgICAg
TExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFtZSwgTExJbnQ6OmdldEhv
c3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCks
IEpTRW50cnlQdHJUYWcpOwogfQogICAgIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2NhbGxfZXZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3Bw
CmluZGV4IDhhZjg2ZjMxNjdkZTNmOGY2YzFhMzQyNjg4NzgxNWVjOTIzNDNkODguLmYxMDNlMGMw
MmRjNjgzYTIyZWViZjY5OTM2Y2QyOTJiYTc5ZjlhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcApAQCAtMTUyLDYgKzE1MiwzOSBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHdhc21GdW5jdGlvbkVudHJ5VGh1bmsoKQogfQog
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpT
RW50cnlQdHJUYWc+IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVUaHVuaygpCit7CisgICAgc3RhdGlj
IExhenlOZXZlckRlc3Ryb3llZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4+
IGNvZGVSZWY7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RkOjpj
YWxsX29uY2Uob25jZUtleSwgWyZdIHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGppdDsKKworICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgaml0LmVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgR1BSSW5mbzo6cmVnVDAp
OworCisgICAgICAgIGF1dG8gcHJlY2lzZUFsbG9jYXRpb25DYXNlID0gaml0LmJyYW5jaFRlc3RQ
dHIoQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUHJlY2lzZUFsbG9jYXRpb246OmhhbGZBbGlnbm1lbnQpKTsKKyAgICAgICAg
aml0LmFuZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoTWFya2VkQmxvY2s6OmJsb2Nr
TWFzayksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZGb290ZXIgKyBN
YXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZNKCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgIGF1dG8gbG9hZGVkQ2FzZSA9IGppdC5qdW1wKCk7CisKKyAgICAgICAgcHJlY2lzZUFsbG9j
YXRpb25DYXNlLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgUHJlY2lzZUFsbG9jYXRpb246Om9mZnNldE9mV2Vha1Nl
dCgpICsgV2Vha1NldDo6b2Zmc2V0T2ZWTSgpIC0gUHJlY2lzZUFsbG9jYXRpb246OmhlYWRlclNp
emUoKSksIEdQUkluZm86OnJlZ1QwKTsKKworICAgICAgICBsb2FkZWRDYXNlLmxpbmsoJmppdCk7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIFZNOjpvZmZzZXRPZkVuY29kZWRIb3N0Q2FsbFJldHVy
blZhbHVlKCkpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworI2Vs
c2UKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6
cmVnVDAsIFZNOjpvZmZzZXRPZkVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlKCkpLCBKU1ZhbHVl
UmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsZXVHUFIg
fSk7CisjZW5kaWYKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAg
IGppdC5yZXQoKTsKKworICAgICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFM
X1RIVU5LX0lEKTsKKyAgICAgICAgY29kZVJlZi5jb25zdHJ1Y3QoRklOQUxJWkVfQ09ERShwYXRj
aEJ1ZmZlciwgSlNFbnRyeVB0clRhZywgIkxMSW50OjpnZXRIb3N0Q2FsbFJldHVyblZhbHVlIHRo
dW5rIikpOworICAgIH0pOworICAgIHJldHVybiBjb2RlUmVmOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBMTEludAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtz
LmgKaW5kZXggNzgxZTMyZDdmZWVmYzg1NTg3OGFhZDgzMjhiNDkxYjk1NjNmZmRhZS4uM2U3YmNl
NWFjMDNjNTdlYTlmZjg1MjdjOGEyNzUyMTRhOTg0NWI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50VGh1bmtzLmgKQEAgLTU3LDYgKzU3LDcgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPEpJVFRodW5rUHRyVGFnPiBmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVu
aygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBldmFsRW50cnlUaHVu
aygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBwcm9ncmFtRW50cnlU
aHVuaygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBtb2R1bGVQcm9n
cmFtRW50cnlUaHVuaygpOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50cnlQdHJUYWc+IGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVUaHVuaygpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQog
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiB3YXNtRnVuY3Rpb25FbnRyeVRo
dW5rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5jcHAKaW5kZXggOGU1ODg3MmE4YzUzMjlhNzI0ZTRjODNlMjgwNGRlOGJjYmJlNzk4
Ny4uZDQ5NDQwYjVhZDMzMjkwMjI1NzZhNWJhYTcwODQ5ZGFmYjNlODg0MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAt
NTQsNyArNTQsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpMTEludDsKIC8vIGluY2x1ZGVzLgog
Ly8KIC8vIEluIGFkZGl0aW9uLCBzb21lIEpJVCB0cmFtcG9saW5lIGZ1bmN0aW9ucyB3aGljaCBh
cmUgbmVlZGVkIGJ5IExMSW50Ci0vLyAoZS5nLiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCBjdGlP
cFRocm93Tm90Q2F1Z2h0KSBhcmUgYWxzbyBhZGRlZCBhcworLy8gKGUuZy4gY3RpT3BUaHJvd05v
dENhdWdodCkgYXJlIGFsc28gYWRkZWQgYXMKIC8vIGJ5dGVjb2RlcywgYW5kIHRoZSBDTG9vcCB3
aWxsIHByb3ZpZGUgYnl0ZWNvZGUgaGFuZGxlcnMgZm9yIHRoZW0uCiAvLwogLy8gSW4gdGhlIENM
b29wLCB3ZSBjYW4gb25seSBkaXNwYXRjaCBpbmRpcmVjdGx5IHRvIHRoZXNlIGJ5dGVjb2RlcwpA
QCAtNDM4LDIzICs0MzgsNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5
T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sCiAjZW5kaWYKICAgICAg
ICAgfQogCi0gICAgICAgIC8vIEluIHRoZSBBU00gbGxpbnQsIGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUoKSBpcyBhIHBpZWNlIG9mIGdsdWUKLSAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQgYnkg
dGhlIEpJVCAoc2VlIGppdC9KSVRPcGVyYXRpb25zLmNwcCkuCi0gICAgICAgIC8vIFdlIHNpbXVs
YXRlIGl0IGhlcmUgd2l0aCBhIHBzZWR1by1vcGNvZGUgaGFuZGxlci4KLSAgICAgICAgT0ZGTElO
RV9BU01fR0xVRV9MQUJFTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQotICAgICAgICB7Ci0gICAg
ICAgICAgICAvLyBUaGUgcGFydCBpbiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0
ZSgpOgotICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSB2bS0+aG9zdENhbGxSZXR1cm5WYWx1
ZTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgdDEgPSByZXN1bHQudGFnKCk7
Ci0gICAgICAgICAgICB0MCA9IHJlc3VsdC5wYXlsb2FkKCk7Ci0jZWxzZQotICAgICAgICAgICAg
dDAgPSBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKLSNlbmRpZgotICAgICAgICAgICAgb3Bjb2Rl
ID0gbHIub3Bjb2RlKCk7Ci0gICAgICAgICAgICBESVNQQVRDSF9PUENPREUoKTsKLSAgICAgICAg
fQotCiAjaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggYTYwMmFiZjAzMjgyYjEy
MGQzYzYxY2VmNzk5NjFhMmEwOTAwMWY3ZS4uMGVhMzIwNmZjZjA3Zjg4NzZmZGJkZTc1YzQzMTJj
OTgxNzU4Y2NiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTQyMiw2ICs0MjIsMTggQEAgb3AoaGFu
ZGxlVW5jYXVnaHRFeGNlcHRpb24sIG1hY3JvKCkKICAgICByZXQKIGVuZCkKIAorb3AobGxpbnRf
Z2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUsIG1hY3JvICgpCisgICAgZnVuY3Rpb25Qcm9sb2d1
ZSgpCisgICAgcHVzaENhbGxlZVNhdmVzKCkKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDAKKyAg
ICBjb252ZXJ0Q2FsbGVlVG9WTSh0MCkKKyAgICBsb2FkcSBWTTo6ZW5jb2RlZEhvc3RDYWxsUmV0
dXJuVmFsdWUgKyBUYWdPZmZzZXRbdDBdLCB0MQorICAgIGxvYWRxIFZNOjplbmNvZGVkSG9zdENh
bGxSZXR1cm5WYWx1ZSArIFBheWxvYWRPZmZzZXRbdDBdLCB0MAorICAgIHBvcENhbGxlZVNhdmVz
KCkKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKK2VuZCkKKwogbWFjcm8gZG9SZXR1
cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBmdW5jdGlvbkVwaWxvZ3Vl
KGV4dHJhU3RhY2tTcGFjZSkKICAgICByZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggOGI1ZjQyZDAwYzdiMTFi
YmVkNDE2ZTg2ZDBlMmQ2MDJjYTI1YmM5My4uYWEyM2VjNjNhMzA5MzkwMzAzNTBmNjA4YjBiNmZh
NDI5ODczZDU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTM1Myw2ICszNTMsMTYgQEAgb3AoaGFuZGxlVW5j
YXVnaHRFeGNlcHRpb24sIG1hY3JvICgpCiAgICAgcmV0CiBlbmQpCiAKK29wKGxsaW50X2dldF9o
b3N0X2NhbGxfcmV0dXJuX3ZhbHVlLCBtYWNybyAoKQorICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQor
ICAgIHB1c2hDYWxsZWVTYXZlcygpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQwCisgICAgY29u
dmVydENhbGxlZVRvVk0odDApCisgICAgbG9hZHEgVk06OmVuY29kZWRIb3N0Q2FsbFJldHVyblZh
bHVlW3QwXSwgdDAKKyAgICBwb3BDYWxsZWVTYXZlcygpCisgICAgZnVuY3Rpb25FcGlsb2d1ZSgp
CisgICAgcmV0CitlbmQpCiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBhZGRw
IFBCLCBQQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKaW5kZXggOGU5YjE2Njk5ZjVmZjMyZDgyOTlhYjc5MDUxMmIxZTY3NmE2NzgzYi4uYTcxZDU5
Y2EyOTRmYWUzMTA4NDg5ZGMwNzY0MGYwZjhkMDE4MjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC04MzEsNiArODMxLDggQEAgY2xh
c3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAg
ICAgUmVnRXhwR2xvYmFsRGF0YSYgcmVnRXhwR2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fcmVnRXhw
R2xvYmFsRGF0YTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgcmVnRXhwR2xvYmFsRGF0YU9mZnNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV9yZWdFeHBHbG9i
YWxEYXRhKTsgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlZNKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZtKTsgfQorCiAjaWYgRU5BQkxFKFJF
TU9URV9JTlNQRUNUT1IpCiAgICAgSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0
b3JDb250cm9sbGVyLmdldCgpOyB9CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlJiBpbnNw
ZWN0b3JEZWJ1Z2dhYmxlKCkgeyByZXR1cm4gKm1faW5zcGVjdG9yRGVidWdnYWJsZS5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDk4Nzc2ZmM4Y2U1ZGVkNmZj
OGFkZjEwYzM0YTVkOTJlNThkMWI3ZWQuLmNiYzcwNmZmNDg2MDAwYWQ2OGYwZTZkMzQ4NTc0OWZj
NjliZWQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTYzLDcgKzYz
LDYgQEAKICNpbmNsdWRlICJIYXNPd25Qcm9wZXJ0eUNhY2hlLmgiCiAjaW5jbHVkZSAiSGVhcC5o
IgogI2luY2x1ZGUgIkhlYXBQcm9maWxlci5oIgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFs
dWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkludGxDYWNoZS5oIgog
I2luY2x1ZGUgIkludGxDb2xsYXRvci5oIgpAQCAtNDkwLDEwICs0ODksNiBAQCBWTTo6Vk0oVk1U
eXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUsIFdURjo6UnVuTG9vcCogcnVuTG9vcCwgYm9v
bCogc3VjY2VzcykKIAogICAgIFRocmVhZDo6Y3VycmVudCgpLnNldEN1cnJlbnRBdG9tU3RyaW5n
VGFibGUoZXhpc3RpbmdFbnRyeUF0b21TdHJpbmdUYWJsZSk7CiAgICAgCi0jaWYgIUVOQUJMRShD
X0xPT1ApCi0gICAgaW5pdGlhbGl6ZUhvc3RDYWxsUmV0dXJuVmFsdWUoKTsgLy8gVGhpcyBpcyBu
ZWVkZWQgdG8gY29udmluY2UgdGhlIGxpbmtlciBub3QgdG8gZHJvcCBob3N0IGNhbGwgcmV0dXJu
IHN1cHBvcnQuCi0jZW5kaWYKLSAgICAKICAgICBHaWdhY2FnZTo6YWRkUHJpbWl0aXZlRGlzYWJs
ZUNhbGxiYWNrKHByaW1pdGl2ZUdpZ2FjYWdlRGlzYWJsZWRDYWxsYmFjaywgdGhpcyk7CiAKICAg
ICBoZWFwLm5vdGlmeUlzU2FmZVRvQ29sbGVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgKaW5kZXggNTI4NDk4NDZiNWE0OGFiYWJhZjE5MTBkNTA3ZjQzOGY2MmRlNDY1Yi4uNDEyOTI0
N2NkMjQ1NmQ2NzU2OTcwN2M5MmI2YzdmYzIzOWMyZmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCkBAIC04NTMsNiArODUzLDExIEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoVk0sIHRvcEVudHJ5RnJhbWUpOwogICAgIH0KIAor
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZFbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFZNLCBlbmNvZGVkSG9zdENh
bGxSZXR1cm5WYWx1ZSk7CisgICAgfQorCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkhl
YXBCYXJyaWVyVGhyZXNob2xkKCkKICAgICB7CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoVk0sIGhlYXApICsgT0JKRUNUX09GRlNFVE9GKEhlYXAsIG1fYmFycmllclRocmVzaG9sZCk7
CkBAIC05MzMsNyArOTM4LDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICAgICAgfQogICAg
IH0KIAotICAgIEpTVmFsdWUgaG9zdENhbGxSZXR1cm5WYWx1ZTsKKyAgICBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSB7IH07CiAgICAgdW5zaWduZWQgdmFyYXJnc0xl
bmd0aDsKICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZVJldHVyblZhbHVlOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lRm9yQ2F0Y2g7Cg==
</data>
<flag name="commit-queue"
          id="426031"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410165</attachid>
            <date>2020-09-30 16:14:42 -0700</date>
            <delta_ts>2020-09-30 17:07:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217150-20200930161441.patch</filename>
            <type>text/plain</type>
            <size>37531</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NDAxYmRhNjgwZTNjZjlmZGFhMTM2ZTBkNjYxY2VlNmQxMjFhMDJmLi40NWIxZGY3OTY5Mzk5YjRi
ZTc0NThlZTFhY2ZhZDFkNjQxYzQwM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wOS0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFdlIHNob3VsZCBub3QgdGFnIEMgZnVuY3Rpb24gd2l0aCBKSVQg
Y29kZSByZWxhdGVkIHB0ciB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIGFyZSB0YWdnaW5nIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUgZnVuY3Rp
b24gd2l0aCBKSVQgcmVsYXRlZCBQdHJUYWcuIEFzIGEgcGFydCBvZiBKSVQtY2FnaW5nIGVmZm9y
dCwgd2UgYXJlIHJlc3RyaWN0aW5nIG91cgorICAgICAgICBQdHJUYWcgdXNhZ2UgbW9yZSBmb3Ig
Y29kZSB0eXBlcyAoZS5nLiBKSVQgY29kZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSklUIHJlbGF0
ZWQgUHRyVGFnKS4gU28sIHdlIHNob3VsZCBub3QgdGFnIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUK
KyAgICAgICAgd2l0aCB0aGF0LiBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSBpbiBKSVQgY29kZSBpZiBKSVQgaXMgZW5hYmxlZC4gSWYgbm90LCBpdCBpcyBpbXBs
ZW1lbnRlZCBieSBMTEludC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZN
KToKKyAgICAgICAgKiBoZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OlBy
ZWNpc2VBbGxvY2F0aW9uOjpvZmZzZXRPZldlYWtTZXQpOgorICAgICAgICAqIGhlYXAvV2Vha1Nl
dC5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0OjpvZmZzZXRPZlZNKToKKyAgICAgICAgKiBqaXQv
SG9zdENhbGxSZXR1cm5WYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaml0L0hvc3RDYWxs
UmV0dXJuVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnNNU1ZDNjQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGppdC9KSVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRy
eXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuaDoKKyAgICAgICAgKiBs
bGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpoYW5kbGVIb3N0
Q2FsbCk6CisgICAgICAgIChKU0M6OkxMSW50Ojpjb21tb25DYWxsRXZhbCk6CisgICAgICAgICog
bGxpbnQvTExJbnRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZVRodW5rKToKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpDTG9vcDo6
ZXhlY3V0ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om9m
ZnNldE9mVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6
Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06Om9mZnNldE9m
RW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOgorCiAyMDIwLTA5LTMwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI2Nzc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNiZmFlMTliMTgy
Y2I1Mjc0YmU2MTIxOTJkODUzNjA2YjNjMGU0My4uMzdmZWJmZjY1YWIzNmIxZTA1ZjM3OGE5ZjQ0
NTg0MTllOGUwNDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0Myw3ICsz
NDMsNiBAQAogCQkwRjQ2ODBDQjE0QkJCMTcyMDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29u
ZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2
ODBDNjE0QkJCMTY5MDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NjgwQ0QxNEJCQjE3
RDAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dM
ZXZlbEludGVycHJldGVyLmggKi87IH07CiAJCTBGNDY4MEQzMTRCQkQxNjcwMEJGRTI3MiAvKiBM
TEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsgfTsKLQkJMEY0Njgw
RDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovOyB9OwogCQkwRjQ4NTMy
ODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMwMDgzQjY4
NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNv
dmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2MDEsOCArMjYw
MCw2IEBACiAJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZlbEludGVycHJldGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvd0xldmVsSW50ZXJwcmV0ZXIu
aDsgcGF0aCA9IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NjgwQ0UxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludERhdGEuY3BwOyBwYXRoID0g
bGxpbnQvTExJbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Njgw
Q0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0aCA9IGxsaW50L0xMSW50RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
b3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY0
NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhN
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRoTW9k
ZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRmZy9E
RkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMjMxODdE
RkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9IGZ0
bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MTMxLDggKzYxMjgsNiBAQAogCQkJCTBGNzY2RDJFMTVBOERDREQwMDhGMzYzRSAvKiBHQ0F3
YXJlSklUU3R1YlJvdXRpbmUuaCAqLywKIAkJCQkwRjkzMjc0QzFDMUY2NkFBMDBDRjY1NjQgLyog
R1BSSW5mby5jcHAgKi8sCiAJCQkJMEYyNEU1M0YxN0VBOUY1OTAwQUJCMjE3IC8qIEdQUkluZm8u
aCAqLywKLQkJCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1
ZS5jcHAgKi8sCi0JCQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJu
VmFsdWUuaCAqLywKIAkJCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
Ki8sCiAJCQkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLywKIAkJCQlE
RTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCkBAIC05
NzY3LDcgKzk3NjIsNiBAQAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFCNiAvKiBIZWFwU25h
cHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFENEQyM0JFMDA3Njg0
NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1MUU3MjA1MzgwMDEz
NEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDY4MEQ1MTRCQkQy
NEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
QzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY0NEE3QjIyMEJGNjhDRTAwMjJCMTcxIC8qIElDU3RhdHVzTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkIzOTlCRTIwQUY2QjNEMDAxN0UyMTMgLyogSUNTdGF0dXNVdGlscy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggYzVlMmE2NmJjNzIxZTEwNTAz
ZjE1NWVmNjYxNTZkMGE5MGRkM2EwZS4uY2ZlNGVlZjc1ZGU2NTc0MTAzZGU1MTMxMDMyMmI3ODcw
YzE2N2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjI5LDcgKzYyOSw2IEBA
IGppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5jcHAKIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCiBqaXQvR1BSSW5mby5jcHAKLWpp
dC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAogaml0L0lDU3RhdHMuY3BwCiBqaXQvSW50cmluc2lj
RW1pdHRlci5jcHAKIGppdC9KSVQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCA0MWFkN2Y0Yjc0YWQ3MjU1ZGQ1MTYwYWM3N2JiNmM4
MDNhM2U5YzJlLi5iZDgyZjcxMDZlOWMwOGRiNDViMTNhZTM0NDVjNmIyOWI3NGU1Njg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTEz
MzAsNyArMTMzMCw2IEBACiAgICAgbWFjcm9fbmFtZV9jb21wb25lbnQ6IDpDTE9PUF9CWVRFQ09E
RV9IRUxQRVIKIAogb3AgOmxsaW50X2VudHJ5Ci1vcCA6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZQog
b3AgOmxsaW50X3JldHVybl90b19ob3N0CiBvcCA6bGxpbnRfdm1fZW50cnlfdG9famF2YXNjcmlw
dAogb3AgOmxsaW50X3ZtX2VudHJ5X3RvX25hdGl2ZQpAQCAtMTQwNSw2ICsxNDA0LDcgQEAKIG9w
IDpjaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5saW5lZF9jYWxsX3RyYW1wb2xpbmUKIG9wIDpj
aGVja3BvaW50X29zcl9leGl0X3RyYW1wb2xpbmUKIG9wIDpmdXp6ZXJfcmV0dXJuX2Vhcmx5X2Zy
b21fbG9vcF9oaW50CitvcCA6bGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUKIG9wIDpo
YW5kbGVVbmNhdWdodEV4Y2VwdGlvbgogb3AgOm9wX2NhbGxfcmV0dXJuX2xvY2F0aW9uCiBvcCA6
b3BfY29uc3RydWN0X3JldHVybl9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDE2ZWEyNWQzZDdkYmMxYTEyZjI5Y2M2N2UzM2Iy
NjZkZjQ5NDdlNDUuLmVhN2IyZjJmOGYxN2ExZjQ5NGNlM2FjY2ZjYTM1NTM1Y2QyY2ZmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTMx
Niw2ICszMTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2UgbGxpbnRfbmF0
aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rp
b25fY2FsbF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29u
c3RydWN0X3RyYW1wb2xpbmU6CisgICAgY2FzZSBsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92
YWx1ZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxpbmVkX2NhbGxfdHJh
bXBvbGluZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfdHJhbXBvbGluZToKICAgICBj
YXNlIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmgKaW5kZXggYzlkOTFhYmQxYTNlMzkyZDY1ZjU0MTYyMGY1MTU4NjkyZTc0N2U4
MC4uYjU5ZjFmMzM1YjRjYzZiNDg1ZDhiYjkzYTUwNDE5OWVlMjA2ZmQwYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0yNTEsNiArMjUxLDggQEAgY2xhc3Mg
TWFya2VkQmxvY2sgewogICAgIHB1YmxpYzoKICAgICAgICAgRm9vdGVyKFZNJiwgSGFuZGxlJik7
CiAgICAgICAgIH5Gb290ZXIoKTsKKworICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
Vk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRm9vdGVyLCBtX3ZtKTsgfQogICAgICAgICAK
ICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmgKaW5k
ZXggMTBlYjY3ZGQwNDJlOTQzODlhNjcyZWEwMGNmMDlhYWRhZGNkZDMyOS4uYmM4NmZlNmM1NThj
NmI5YzMxNDlhNDI0MWIzNDUzMjZhZGQ5OWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9QcmVjaXNlQWxsb2NhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBAIGNsYXNzIFByZWNp
c2VBbGxvY2F0aW9uIDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQcmVjaXNlQWxsb2Nh
dGlvbj4gewogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1NldC52bSgpOyB9CiAg
ICAgV2Vha1NldCYgd2Vha1NldCgpIHsgcmV0dXJuIG1fd2Vha1NldDsgfQogCisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZldlYWtTZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUHJl
Y2lzZUFsbG9jYXRpb24sIG1fd2Vha1NldCk7IH0KKwogICAgIHVuc2lnbmVkIGluZGV4SW5TcGFj
ZSgpIHsgcmV0dXJuIG1faW5kZXhJblNwYWNlOyB9CiAgICAgdm9pZCBzZXRJbmRleEluU3BhY2Uo
dW5zaWduZWQgaW5kZXhJblNwYWNlKSB7IG1faW5kZXhJblNwYWNlID0gaW5kZXhJblNwYWNlOyB9
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKaW5kZXggNGIzYTE0Yjk5NWE5
NGZhZmFlZTg5MmJjMGZkYmQ0ZDE1MmJlMjNhZS4uZGRhYzAzZTQ2YWZkNWEzODJmMDU2MjZjMjdl
MTgxNzFkMWQ4NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaApAQCAtNTgs
NiArNTgsOCBAQCBjbGFzcyBXZWFrU2V0IDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPFdl
YWtTZXQ+IHsKICAgICB2b2lkIHNocmluaygpOwogICAgIHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsK
IAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihXZWFrU2V0LCBtX3ZtKTsgfQorCiBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoQ2VsbENvbnRhaW5lcik7CiAgICAg
V2Vha0Jsb2NrOjpGcmVlQ2VsbCogdHJ5RmluZEFsbG9jYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk2MjEwZjMwMGUxOWY2Mzc5ODJlMDgxNjVlMjYxMTA4MDZiMjg5NWMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVl
LmgiCi0KLSNpZiAhRU5BQkxFKENfTE9PUCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+Ci0KLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLS8vIE5vdGU6IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKCkgbmVlZHMgdG8gYmUgcGxhY2VkIGJlZm9yZSB0aGUKLS8vIGRlZmluaXRpb24gb2YgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGJlbG93IGJlY2F1c2UgdGhlIFdpbmRvd3MgYnVpbGQKLS8v
IHJlcXVpcmVzIGl0LgotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJO
X1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fs
bEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsKLX0KLQotI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQotYXNtICgKLSIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGVhIC04KCVyc3ApLCAlcmRpXG4iCi0gICAgImptcCAi
IExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxu
IgotKTsKLQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShYODYpCi1hc20g
KAotIi50ZXh0IiAiXG4iIFwKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
LVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAicHVz
aCAlZWJwXG4iCi0gICAgIm1vdiAlZXNwLCAlZWF4XG4iCi0gICAgImxlYWwgLTQoJWVzcCksICVl
c3BcbiIKLSAgICAicHVzaCAlZWF4XG4iCi0gICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSAgICAibGVhbCA4KCVlc3Ap
LCAlZXNwXG4iCi0gICAgInBvcCAlZWJwXG4iCi0gICAgInJldFxuIgotKTsKLQotI2VsaWYgQ09N
UElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShBUk1fVEhVTUIyKQotYXNtICgKLSIudGV4dCIg
IlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCi0iLnRodW1iIiAiXG4iCi0iLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZSkgIjoiICJcbiIKLSAgICAic3ViIHIwLCBzcCwgIzgiICJcbiIKLSAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgotKTsK
LQotI2VsaWYgQ1BVKEFSTTY0KQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4i
Ci0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1I
SURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgICJzdWIgeDAsIHNwLCAjMTYiICJc
biIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBD
UFUoTUlQUykKLQotI2lmIFdURl9NSVBTX1BJQwotI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5
KGZ1bmN0aW9uKSBcCi0gICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCi0gICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAotICAgICAg
ICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgotI2Vsc2UKLSNkZWZp
bmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgotI2VuZGlmCi0KLWFzbSAo
Ci0iLnRleHQiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQotICAgICJh
ZGRpICRhMCwgJHNwLCAtOCIgIlxuIgotICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCi0pOwotCi0jZWxpZiBDT01QSUxFUihN
U1ZDKSAmJiBDUFUoWDg2KQotZXh0ZXJuICJDIiB7Ci0gICAgX19kZWNsc3BlYyhuYWtlZCkgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSgpCi0gICAgewotICAgICAgICBfX2FzbSBsZWEgZWF4LCBbZXNwIC0gNF0KLSAgICAg
ICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWF4OwotICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICB9Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxYmNkMjk5MDliYjBlOWI0Nzg5MjVkZmZiZGI5Zjk0MDhlYmRlNjIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotCi0jaWYgIUVOQUJMRShDX0xP
T1ApCi0KLSNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAotI2RlZmluZSBIT1NUX0NB
TExfUkVUVVJOX1ZBTFVFX09QVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUgSE9TVF9DQUxMX1JF
VFVSTl9WQUxVRV9PUFRJT04KLSNlbmRpZgotCi1uYW1lc3BhY2UgSlNDIHsKLQotZXh0ZXJuICJD
IiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7Ci0KLSNpZiBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotLy8gVGhpcyBpcyBhIHB1YmxpYyBkZWNsYXJhdGlv
biBvbmx5IHRvIGNvbnZpbmNlIENMQU5HIG5vdCB0byBlbGlkZSBpdC4KLWV4dGVybiAiQyIgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUoQ2FsbEZyYW1lKikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7Ci0KLWlubGluZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkK
LXsKLSAgICBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShudWxscHRyKTsKLX0K
LQotI2Vsc2UgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0KLWlubGluZSB2b2lkIGluaXRp
YWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkgeyB9Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Nf
Q09NUEFUSUJMRSkKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENf
TE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDU3MDhjYjI0MGY5ZmRmYTMzNTFmMDVlN2E1MGNiZDAxNTZmZGYxZDIuLmQ0NjA2NzQ4NGRmMmYy
NGNjODFhNDhjMGE4YTgzN2I4NzVhMDczZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkZ1enouaCIKICNpbmNsdWRlICJGcmFtZVRyYWNlcnMuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSUNTdGF0
cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC01Nyw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKICNpbmNsdWRlICJKU0xl
eGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAi
TExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKQEAgLTEyMjQs
NyArMTIyNCw4IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lCiAgICAgICAgIGlmIChjYWxsRGF0
YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAgICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAgICAgICAgIGNhbGxl
ZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVlKSk7Ci0gICAgICAgICAgICB2bS5ob3N0
Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
bihhc09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSkpOworICAg
ICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICAgICAgdm0uZW5jb2RlZEhv
c3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2Fs
bGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOwogICAgICAgICAgICAgaWYgKFVO
TElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNlcHRp
b25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8SlNFbnRyeVB0clRhZz4o
KS5leGVjdXRhYmxlQWRkcmVzcygpLApAQCAtMTIzMiw3ICsxMjMzLDcgQEAgc3RhdGljIFNsb3dQ
YXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgKLSAgICAgICAgICAgICAgICB0YWdDRnVuY3Rpb248dm9pZCosIEpTRW50cnlQdHJUYWc+
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLAorICAgICAgICAgICAgICAgIExMSW50OjpnZXRIb3N0
Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAog
ICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2Fs
bE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUp
KTsKICAgICAgICAgfQogICAgIApAQCAtMTI1MSwxNCArMTI1MiwxNSBAQCBzdGF0aWMgU2xvd1Bh
dGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZQogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6
Ok5hdGl2ZSkgewogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
ZWVGcmFtZSk7CiAgICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVl
KSk7Ci0gICAgICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0
KHZtKSwgY2FsbGVlRnJhbWUpKTsKKyAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAg
ICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1l
KTsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKICAgICAgICAgICAgICAgICB2bS5nZXRDVElTdHViKHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPEpTRW50
cnlQdHJUYWc+KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogCi0gICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQodGFnQ0Z1bmN0aW9uPHZvaWQqLCBKU0VudHJ5UHRyVGFnPihnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1l
KSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJu
VmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwogICAgIH0KIAogICAgIEFTU0VSVChjb25zdHJ1
Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9uc01TVkM2NC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhNWYzMTM3ZTZhMDNmODc5OGRiOGM3MGI5NGMwM2M0NjExZTgyOGIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi0vLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQgdGhhdCBpcyBvbmx5
IG5lZWRlZCBiZWNhdXNlIEpJVFN0dWJzTVNWQzY0LmFzbQotLy8gaXMgYnVpbHQgdW5jb25kaXRp
b25hbGx5IGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGUsIGFuZCBpdCByZWZlcmVuY2VzIHRo
aXMgZnVuY3Rpb24uCi0vLyBXZSBvbmx5IG5lZWQgdG8gcHJvdmlkZSBhIHN0dWIgdG8gc2F0aXNm
eSB0aGUgbGlua2FnZS4gSXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuCi1leHRlcm4gIkMiIEVuY29k
ZWRKU1ZhbHVlIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEpTR2xvYmFsT2Jq
ZWN0KikKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnNNU1ZDNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c01TVkM2NC5hc20KaW5kZXggZWRmZTVjMzA3ZmYyOGJmN2EzMjIwNDQ5NDI4OTg4Y2MzNWQyNjY4
Yy4uY2I0MzM2MmZlNjU1YTMzOWQwZjgyMzZiMTU5ZmU5YTI0M2E5ZGU0OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KQEAgLTI1LDIxICsyNSwxMCBA
QAogCiBFWFRFUk4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUgOiBuZWFyCiAK
LVBVQkxJQyBnZXRIb3N0Q2FsbFJldHVyblZhbHVlCiBQVUJMSUMgY3RpTWFzbVByb2JlVHJhbXBv
bGluZQogCiBfVEVYVCAgIFNFR01FTlQKIAotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBQUk9DCi0g
ICAgbGVhIHJjeCwgW3JzcCAtIDhdCi0gICAgOyBBbGxvY2F0ZSBzcGFjZSBmb3IgYWxsIDQgcGFy
YW1ldGVyIHJlZ2lzdGVycywgYW5kIGFsaWduIHN0YWNrIHBvaW50ZXIgdG8gMTYgYnl0ZXMgYm91
bmRhcnkgYnkgYWxsb2NhdGluZyBhbm90aGVyIDggYnl0ZXMuCi0gICAgOyBUaGUgc3RhY2sgYWxp
Z25tZW50IGlzIG5lZWRlZCB0byBmaXggYSBjcmFzaCBpbiB0aGUgQ1JUIGxpYnJhcnkgb24gYSBm
bG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbi4KLSAgICBzdWIgcnNwLCA0MAotICAgIGNhbGwgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICBhZGQgcnNwLCA0MAotICAgIHJl
dAotZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBFTkRQCi0KIDsgVGhlIGZvbGxvd2luZyBjb25zdGFu
dHMgbXVzdCBtYXRjaCB0aGUgeDg2XzY0IHZlcnNpb24gaW4gTWFjcm9Bc3NlbWJsZXJYODZDb21t
b24uY3BwLgogUFRSX1NJWkUgRVFVIDgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRFbnRyeXBvaW50LmNwcAppbmRleCA4ODczNzE4N2FjMDExOTIyNTJjMTI4NTQxZDI0
MDE4ZGM0MzQ2YzE0Li41YzYwOTFjMjNiODhiYjQyZTRiYjZjNTJjNWVjYzZhMThmNmI0ZWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcApA
QCAtMTU0LDYgKzE1NCwxNSBAQCBzdGF0aWMgdm9pZCBzZXRNb2R1bGVQcm9ncmFtRW50cnlwb2lu
dChDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICBjb2RlQmxvY2stPnNldEpJVENvZGUobWFrZVJl
Zigqaml0Q29kZSkpOwogfQogCitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4g
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKQoreworI2lmIEVOQUJMRShKSVQpCisg
ICAgaWYgKE9wdGlvbnM6OnVzZUpJVCgpKQorICAgICAgICByZXR1cm4gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVRodW5rKCk7CisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKKyAgICByZXR1cm4gZ2V0Q29k
ZVJlZjxKU0VudHJ5UHRyVGFnPihsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92YWx1ZSk7Cit9
CisKIHZvaWQgc2V0RW50cnlwb2ludChDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAgICBzd2l0
Y2ggKGNvZGVCbG9jay0+Y29kZVR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50RW50cnlwb2ludC5oCmluZGV4IGUxMDBmYjhmZjMwNmU3MTU3ZGNiZDNkYjIyMTlh
ZmMxZTgyNjlkMGIuLmU0NzZhYTJkZWM1MzljYWRhNjkyODYxZWY4YzM3ZDk0MTU0OTUzMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmgKQEAgLTM3
LDQgKzM3LDYgQEAgdm9pZCBzZXRFbnRyeXBvaW50KENvZGVCbG9jayopOwogCiB1bnNpZ25lZCBm
cmFtZVJlZ2lzdGVyQ291bnRGb3IoQ29kZUJsb2NrKik7CiAKK01hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxKU0VudHJ5UHRyVGFnPiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpOworCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6TExJbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGY5YTkwN2VkNDFiZGU0NTZjZjBkOWQ3ZTE5YjNm
OTFiNGJkMWRlNTAuLjgyYzM3NzQ2OTQ3YjY1ZDliOGExYWZjMWM4ZTE4ZGQxNDhlYTcwN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uQWxsb3dsaXN0LmgiCiAjaW5jbHVkZSAi
RnVuY3Rpb25Db2RlQmxvY2suaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKLSNpbmNsdWRl
ICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2lu
Y2x1ZGUgIkpJVFdvcmtsaXN0LmgiCiAjaW5jbHVkZSAiSlNBc3luY0Z1bmN0aW9uLmgiCkBAIC0x
NjcxLDggKzE2NzAsOSBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxs
KENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpTVmFsdWUgY2FsbGVlLAogICAgICAgICBpZiAoY2Fs
bERhdGEudHlwZSA9PSBDYWxsRGF0YTo6VHlwZTo6TmF0aXZlKSB7CiAgICAgICAgICAgICBTbG93
UGF0aEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbGVlRnJhbWUpOwogICAgICAgICAgICAgY2Fs
bGVlRnJhbWUtPnNldENhbGxlZShhc09iamVjdChjYWxsZWUpKTsKLSAgICAgICAgICAgIHZtLmhv
c3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY2FsbERhdGEubmF0aXZlLmZ1bmN0
aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKSk7Ci0g
ICAgICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBM
TEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgQ0Z1bmN0aW9uUHRyVGFn
KTsKKyAgICAgICAgICAgIERpc2FsbG93R0MgZGlzYWxsb3dHQzsKKyAgICAgICAgICAgIHZtLmVu
Y29kZWRIb3N0Q2FsbFJldHVyblZhbHVlID0gY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2Jq
ZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgICAg
IExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRI
b3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
LCBKU0VudHJ5UHRyVGFnKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc2xvd1BhdGhM
b2coIkNhbGwgY2FsbGVlIGlzIG5vdCBhIGZ1bmN0aW9uOiAiLCBjYWxsZWUsICJcbiIpOwpAQCAt
MTY4OSw4ICsxNjg5LDkgQEAgc3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2Fs
bChDYWxsRnJhbWUqIGNhbGxlZUZyYW1lLCBKU1ZhbHVlIGNhbGxlZSwKICAgICBpZiAoY29uc3Ry
dWN0RGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAgU2xvd1Bh
dGhGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAgICAgY2FsbGVlRnJh
bWUtPnNldENhbGxlZShhc09iamVjdChjYWxsZWUpKTsKLSAgICAgICAgdm0uaG9zdENhbGxSZXR1
cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbihh
c09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSkpOwotICAgICAg
ICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6Z2V0
Q29kZVB0cihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgQ0Z1bmN0aW9uUHRyVGFnKTsKKyAgICAg
ICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1
cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSkt
Pmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgTExJTlRfQ0FMTF9SRVRV
Uk4oZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFtZSwgTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFs
dWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcp
OwogICAgIH0KICAgICAKICAgICBzbG93UGF0aExvZygiQ29uc3RydWN0b3IgY2FsbGVlIGlzIG5v
dCBhIGZ1bmN0aW9uOiAiLCBjYWxsZWUsICJcbiIpOwpAQCAtMTk1OSw4ICsxOTYwLDkgQEAgaW5s
aW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBjb21tb25DYWxsRXZhbChDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgY29uc3QgSW5zdHJ1Y3Rpb24KICAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKGNhbGxlZUFzVmFs
dWUsIGdsb2JhbEZ1bmNFdmFsKSkKICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIHNldFVwQ2FsbChjYWxsZWVGcmFtZSwgQ29kZUZvckNhbGwsIGNhbGxlZUFzVmFsdWUpKTsK
ICAgICAKLSAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gZXZhbChnbG9iYWxPYmplY3QsIGNh
bGxlZUZyYW1lLCBieXRlY29kZS5tX2VjbWFNb2RlKTsKLSAgICBMTElOVF9DQUxMX1JFVFVSTihn
bG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6Z2V0Q29kZVB0cihnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSwgQ0Z1bmN0aW9uUHRyVGFnKTsKKyAgICBEaXNhbGxvd0dDIGRpc2FsbG93R0M7
CisgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoZXZh
bChnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBieXRlY29kZS5tX2VjbWFNb2RlKSk7CisgICAg
TExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFtZSwgTExJbnQ6OmdldEhv
c3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCks
IEpTRW50cnlQdHJUYWcpOwogfQogICAgIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2NhbGxfZXZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3Bw
CmluZGV4IDhhZjg2ZjMxNjdkZTNmOGY2YzFhMzQyNjg4NzgxNWVjOTIzNDNkODguLmYxMDNlMGMw
MmRjNjgzYTIyZWViZjY5OTM2Y2QyOTJiYTc5ZjlhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcApAQCAtMTUyLDYgKzE1MiwzOSBAQCBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHdhc21GdW5jdGlvbkVudHJ5VGh1bmsoKQogfQog
I2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpT
RW50cnlQdHJUYWc+IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVUaHVuaygpCit7CisgICAgc3RhdGlj
IExhenlOZXZlckRlc3Ryb3llZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4+
IGNvZGVSZWY7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RkOjpj
YWxsX29uY2Uob25jZUtleSwgWyZdIHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGppdDsKKworICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgaml0LmVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgR1BSSW5mbzo6cmVnVDAp
OworCisgICAgICAgIGF1dG8gcHJlY2lzZUFsbG9jYXRpb25DYXNlID0gaml0LmJyYW5jaFRlc3RQ
dHIoQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoUHJlY2lzZUFsbG9jYXRpb246OmhhbGZBbGlnbm1lbnQpKTsKKyAgICAgICAg
aml0LmFuZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoTWFya2VkQmxvY2s6OmJsb2Nr
TWFzayksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZGb290ZXIgKyBN
YXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZNKCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAg
ICAgIGF1dG8gbG9hZGVkQ2FzZSA9IGppdC5qdW1wKCk7CisKKyAgICAgICAgcHJlY2lzZUFsbG9j
YXRpb25DYXNlLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgUHJlY2lzZUFsbG9jYXRpb246Om9mZnNldE9mV2Vha1Nl
dCgpICsgV2Vha1NldDo6b2Zmc2V0T2ZWTSgpIC0gUHJlY2lzZUFsbG9jYXRpb246OmhlYWRlclNp
emUoKSksIEdQUkluZm86OnJlZ1QwKTsKKworICAgICAgICBsb2FkZWRDYXNlLmxpbmsoJmppdCk7
CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIFZNOjpvZmZzZXRPZkVuY29kZWRIb3N0Q2FsbFJldHVy
blZhbHVlKCkpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworI2Vs
c2UKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6
cmVnVDAsIFZNOjpvZmZzZXRPZkVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlKCkpLCBKU1ZhbHVl
UmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsZXVHUFIg
fSk7CisjZW5kaWYKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAg
IGppdC5yZXQoKTsKKworICAgICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFM
X1RIVU5LX0lEKTsKKyAgICAgICAgY29kZVJlZi5jb25zdHJ1Y3QoRklOQUxJWkVfQ09ERShwYXRj
aEJ1ZmZlciwgSlNFbnRyeVB0clRhZywgIkxMSW50OjpnZXRIb3N0Q2FsbFJldHVyblZhbHVlIHRo
dW5rIikpOworICAgIH0pOworICAgIHJldHVybiBjb2RlUmVmOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBMTEludAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtz
LmgKaW5kZXggNzgxZTMyZDdmZWVmYzg1NTg3OGFhZDgzMjhiNDkxYjk1NjNmZmRhZS4uM2U3YmNl
NWFjMDNjNTdlYTlmZjg1MjdjOGEyNzUyMTRhOTg0NWI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50VGh1bmtzLmgKQEAgLTU3LDYgKzU3LDcgQEAgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPEpJVFRodW5rUHRyVGFnPiBmdW5jdGlvbkZvckNvbnN0cnVjdEFyaXR5Q2hlY2tUaHVu
aygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBldmFsRW50cnlUaHVu
aygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBwcm9ncmFtRW50cnlU
aHVuaygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBtb2R1bGVQcm9n
cmFtRW50cnlUaHVuaygpOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50cnlQdHJUYWc+IGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVUaHVuaygpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQog
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiB3YXNtRnVuY3Rpb25FbnRyeVRo
dW5rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5jcHAKaW5kZXggOGU1ODg3MmE4YzUzMjlhNzI0ZTRjODNlMjgwNGRlOGJjYmJlNzk4
Ny4uZDQ5NDQwYjVhZDMzMjkwMjI1NzZhNWJhYTcwODQ5ZGFmYjNlODg0MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcApAQCAt
NTQsNyArNTQsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpMTEludDsKIC8vIGluY2x1ZGVzLgog
Ly8KIC8vIEluIGFkZGl0aW9uLCBzb21lIEpJVCB0cmFtcG9saW5lIGZ1bmN0aW9ucyB3aGljaCBh
cmUgbmVlZGVkIGJ5IExMSW50Ci0vLyAoZS5nLiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlLCBjdGlP
cFRocm93Tm90Q2F1Z2h0KSBhcmUgYWxzbyBhZGRlZCBhcworLy8gKGUuZy4gY3RpT3BUaHJvd05v
dENhdWdodCkgYXJlIGFsc28gYWRkZWQgYXMKIC8vIGJ5dGVjb2RlcywgYW5kIHRoZSBDTG9vcCB3
aWxsIHByb3ZpZGUgYnl0ZWNvZGUgaGFuZGxlcnMgZm9yIHRoZW0uCiAvLwogLy8gSW4gdGhlIENM
b29wLCB3ZSBjYW4gb25seSBkaXNwYXRjaCBpbmRpcmVjdGx5IHRvIHRoZXNlIGJ5dGVjb2RlcwpA
QCAtNDM4LDIzICs0MzgsNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5
T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0sCiAjZW5kaWYKICAgICAg
ICAgfQogCi0gICAgICAgIC8vIEluIHRoZSBBU00gbGxpbnQsIGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUoKSBpcyBhIHBpZWNlIG9mIGdsdWUKLSAgICAgICAgLy8gZnVuY3Rpb24gcHJvdmlkZWQgYnkg
dGhlIEpJVCAoc2VlIGppdC9KSVRPcGVyYXRpb25zLmNwcCkuCi0gICAgICAgIC8vIFdlIHNpbXVs
YXRlIGl0IGhlcmUgd2l0aCBhIHBzZWR1by1vcGNvZGUgaGFuZGxlci4KLSAgICAgICAgT0ZGTElO
RV9BU01fR0xVRV9MQUJFTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQotICAgICAgICB7Ci0gICAg
ICAgICAgICAvLyBUaGUgcGFydCBpbiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0
ZSgpOgotICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSB2bS0+aG9zdENhbGxSZXR1cm5WYWx1
ZTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgdDEgPSByZXN1bHQudGFnKCk7
Ci0gICAgICAgICAgICB0MCA9IHJlc3VsdC5wYXlsb2FkKCk7Ci0jZWxzZQotICAgICAgICAgICAg
dDAgPSBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKLSNlbmRpZgotICAgICAgICAgICAgb3Bjb2Rl
ID0gbHIub3Bjb2RlKCk7Ci0gICAgICAgICAgICBESVNQQVRDSF9PUENPREUoKTsKLSAgICAgICAg
fQotCiAjaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggYTYwMmFiZjAzMjgyYjEy
MGQzYzYxY2VmNzk5NjFhMmEwOTAwMWY3ZS4uMDFhMWE5YTkxNDFjODlmMDI2YTAxOTJmY2I5NjU5
YmZiNDY2NDEwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTQyMiw2ICs0MjIsMTggQEAgb3AoaGFu
ZGxlVW5jYXVnaHRFeGNlcHRpb24sIG1hY3JvKCkKICAgICByZXQKIGVuZCkKIAorb3AobGxpbnRf
Z2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUsIG1hY3JvICgpCisgICAgZnVuY3Rpb25Qcm9sb2d1
ZSgpCisgICAgcHVzaENhbGxlZVNhdmVzKCkKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDAKKyAg
ICBjb252ZXJ0Q2FsbGVlVG9WTSh0MCkKKyAgICBsb2FkaSBWTTo6ZW5jb2RlZEhvc3RDYWxsUmV0
dXJuVmFsdWUgKyBUYWdPZmZzZXRbdDBdLCB0MQorICAgIGxvYWRpIFZNOjplbmNvZGVkSG9zdENh
bGxSZXR1cm5WYWx1ZSArIFBheWxvYWRPZmZzZXRbdDBdLCB0MAorICAgIHBvcENhbGxlZVNhdmVz
KCkKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKK2VuZCkKKwogbWFjcm8gZG9SZXR1
cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBmdW5jdGlvbkVwaWxvZ3Vl
KGV4dHJhU3RhY2tTcGFjZSkKICAgICByZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggOGI1ZjQyZDAwYzdiMTFi
YmVkNDE2ZTg2ZDBlMmQ2MDJjYTI1YmM5My4uYWEyM2VjNjNhMzA5MzkwMzAzNTBmNjA4YjBiNmZh
NDI5ODczZDU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTM1Myw2ICszNTMsMTYgQEAgb3AoaGFuZGxlVW5j
YXVnaHRFeGNlcHRpb24sIG1hY3JvICgpCiAgICAgcmV0CiBlbmQpCiAKK29wKGxsaW50X2dldF9o
b3N0X2NhbGxfcmV0dXJuX3ZhbHVlLCBtYWNybyAoKQorICAgIGZ1bmN0aW9uUHJvbG9ndWUoKQor
ICAgIHB1c2hDYWxsZWVTYXZlcygpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQwCisgICAgY29u
dmVydENhbGxlZVRvVk0odDApCisgICAgbG9hZHEgVk06OmVuY29kZWRIb3N0Q2FsbFJldHVyblZh
bHVlW3QwXSwgdDAKKyAgICBwb3BDYWxsZWVTYXZlcygpCisgICAgZnVuY3Rpb25FcGlsb2d1ZSgp
CisgICAgcmV0CitlbmQpCiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKICAgICBhZGRw
IFBCLCBQQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKaW5kZXggOGU5YjE2Njk5ZjVmZjMyZDgyOTlhYjc5MDUxMmIxZTY3NmE2NzgzYi4uYTcxZDU5
Y2EyOTRmYWUzMTA4NDg5ZGMwNzY0MGYwZjhkMDE4MjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC04MzEsNiArODMxLDggQEAgY2xh
c3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAg
ICAgUmVnRXhwR2xvYmFsRGF0YSYgcmVnRXhwR2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fcmVnRXhw
R2xvYmFsRGF0YTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgcmVnRXhwR2xvYmFsRGF0YU9mZnNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV9yZWdFeHBHbG9i
YWxEYXRhKTsgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlZNKCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0LCBtX3ZtKTsgfQorCiAjaWYgRU5BQkxFKFJF
TU9URV9JTlNQRUNUT1IpCiAgICAgSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0
b3JDb250cm9sbGVyLmdldCgpOyB9CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlJiBpbnNw
ZWN0b3JEZWJ1Z2dhYmxlKCkgeyByZXR1cm4gKm1faW5zcGVjdG9yRGVidWdnYWJsZS5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDk4Nzc2ZmM4Y2U1ZGVkNmZj
OGFkZjEwYzM0YTVkOTJlNThkMWI3ZWQuLmNiYzcwNmZmNDg2MDAwYWQ2OGYwZTZkMzQ4NTc0OWZj
NjliZWQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTYzLDcgKzYz
LDYgQEAKICNpbmNsdWRlICJIYXNPd25Qcm9wZXJ0eUNhY2hlLmgiCiAjaW5jbHVkZSAiSGVhcC5o
IgogI2luY2x1ZGUgIkhlYXBQcm9maWxlci5oIgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFs
dWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkludGxDYWNoZS5oIgog
I2luY2x1ZGUgIkludGxDb2xsYXRvci5oIgpAQCAtNDkwLDEwICs0ODksNiBAQCBWTTo6Vk0oVk1U
eXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUsIFdURjo6UnVuTG9vcCogcnVuTG9vcCwgYm9v
bCogc3VjY2VzcykKIAogICAgIFRocmVhZDo6Y3VycmVudCgpLnNldEN1cnJlbnRBdG9tU3RyaW5n
VGFibGUoZXhpc3RpbmdFbnRyeUF0b21TdHJpbmdUYWJsZSk7CiAgICAgCi0jaWYgIUVOQUJMRShD
X0xPT1ApCi0gICAgaW5pdGlhbGl6ZUhvc3RDYWxsUmV0dXJuVmFsdWUoKTsgLy8gVGhpcyBpcyBu
ZWVkZWQgdG8gY29udmluY2UgdGhlIGxpbmtlciBub3QgdG8gZHJvcCBob3N0IGNhbGwgcmV0dXJu
IHN1cHBvcnQuCi0jZW5kaWYKLSAgICAKICAgICBHaWdhY2FnZTo6YWRkUHJpbWl0aXZlRGlzYWJs
ZUNhbGxiYWNrKHByaW1pdGl2ZUdpZ2FjYWdlRGlzYWJsZWRDYWxsYmFjaywgdGhpcyk7CiAKICAg
ICBoZWFwLm5vdGlmeUlzU2FmZVRvQ29sbGVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgKaW5kZXggNTI4NDk4NDZiNWE0OGFiYWJhZjE5MTBkNTA3ZjQzOGY2MmRlNDY1Yi4uNDEyOTI0
N2NkMjQ1NmQ2NzU2OTcwN2M5MmI2YzdmYzIzOWMyZmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCkBAIC04NTMsNiArODUzLDExIEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAg
ICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoVk0sIHRvcEVudHJ5RnJhbWUpOwogICAgIH0KIAor
ICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZFbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFZNLCBlbmNvZGVkSG9zdENh
bGxSZXR1cm5WYWx1ZSk7CisgICAgfQorCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkhl
YXBCYXJyaWVyVGhyZXNob2xkKCkKICAgICB7CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoVk0sIGhlYXApICsgT0JKRUNUX09GRlNFVE9GKEhlYXAsIG1fYmFycmllclRocmVzaG9sZCk7
CkBAIC05MzMsNyArOTM4LDcgQEAgY2xhc3MgVk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8Vk0+IHsKICAgICAgICAgfQogICAg
IH0KIAotICAgIEpTVmFsdWUgaG9zdENhbGxSZXR1cm5WYWx1ZTsKKyAgICBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSB7IH07CiAgICAgdW5zaWduZWQgdmFyYXJnc0xl
bmd0aDsKICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZVJldHVyblZhbHVlOwogICAgIENhbGxG
cmFtZSogY2FsbEZyYW1lRm9yQ2F0Y2g7Cg==
</data>
<flag name="commit-queue"
          id="426038"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410170</attachid>
            <date>2020-09-30 16:28:14 -0700</date>
            <delta_ts>2020-09-30 16:50:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217150-20200930162813.patch</filename>
            <type>text/plain</type>
            <size>37608</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NDAxYmRhNjgwZTNjZjlmZGFhMTM2ZTBkNjYxY2VlNmQxMjFhMDJmLi40NWIxZGY3OTY5Mzk5YjRi
ZTc0NThlZTFhY2ZhZDFkNjQxYzQwM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wOS0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFdlIHNob3VsZCBub3QgdGFnIEMgZnVuY3Rpb24gd2l0aCBKSVQg
Y29kZSByZWxhdGVkIHB0ciB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIGFyZSB0YWdnaW5nIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUgZnVuY3Rp
b24gd2l0aCBKSVQgcmVsYXRlZCBQdHJUYWcuIEFzIGEgcGFydCBvZiBKSVQtY2FnaW5nIGVmZm9y
dCwgd2UgYXJlIHJlc3RyaWN0aW5nIG91cgorICAgICAgICBQdHJUYWcgdXNhZ2UgbW9yZSBmb3Ig
Y29kZSB0eXBlcyAoZS5nLiBKSVQgY29kZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSklUIHJlbGF0
ZWQgUHRyVGFnKS4gU28sIHdlIHNob3VsZCBub3QgdGFnIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUK
KyAgICAgICAgd2l0aCB0aGF0LiBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSBpbiBKSVQgY29kZSBpZiBKSVQgaXMgZW5hYmxlZC4gSWYgbm90LCBpdCBpcyBpbXBs
ZW1lbnRlZCBieSBMTEludC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZN
KToKKyAgICAgICAgKiBoZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OlBy
ZWNpc2VBbGxvY2F0aW9uOjpvZmZzZXRPZldlYWtTZXQpOgorICAgICAgICAqIGhlYXAvV2Vha1Nl
dC5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0OjpvZmZzZXRPZlZNKToKKyAgICAgICAgKiBqaXQv
SG9zdENhbGxSZXR1cm5WYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaml0L0hvc3RDYWxs
UmV0dXJuVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnNNU1ZDNjQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGppdC9KSVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRy
eXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuaDoKKyAgICAgICAgKiBs
bGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpoYW5kbGVIb3N0
Q2FsbCk6CisgICAgICAgIChKU0M6OkxMSW50Ojpjb21tb25DYWxsRXZhbCk6CisgICAgICAgICog
bGxpbnQvTExJbnRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZVRodW5rKToKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpDTG9vcDo6
ZXhlY3V0ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om9m
ZnNldE9mVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6
Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06Om9mZnNldE9m
RW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOgorCiAyMDIwLTA5LTMwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI2Nzc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNiZmFlMTliMTgy
Y2I1Mjc0YmU2MTIxOTJkODUzNjA2YjNjMGU0My4uMzdmZWJmZjY1YWIzNmIxZTA1ZjM3OGE5ZjQ0
NTg0MTllOGUwNDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0Myw3ICsz
NDMsNiBAQAogCQkwRjQ2ODBDQjE0QkJCMTcyMDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29u
ZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2
ODBDNjE0QkJCMTY5MDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NjgwQ0QxNEJCQjE3
RDAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dM
ZXZlbEludGVycHJldGVyLmggKi87IH07CiAJCTBGNDY4MEQzMTRCQkQxNjcwMEJGRTI3MiAvKiBM
TEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsgfTsKLQkJMEY0Njgw
RDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovOyB9OwogCQkwRjQ4NTMy
ODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMwMDgzQjY4
NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNv
dmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2MDEsOCArMjYw
MCw2IEBACiAJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZlbEludGVycHJldGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvd0xldmVsSW50ZXJwcmV0ZXIu
aDsgcGF0aCA9IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NjgwQ0UxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludERhdGEuY3BwOyBwYXRoID0g
bGxpbnQvTExJbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Njgw
Q0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0aCA9IGxsaW50L0xMSW50RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
b3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY0
NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhN
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRoTW9k
ZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRmZy9E
RkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMjMxODdE
RkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9IGZ0
bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MTMxLDggKzYxMjgsNiBAQAogCQkJCTBGNzY2RDJFMTVBOERDREQwMDhGMzYzRSAvKiBHQ0F3
YXJlSklUU3R1YlJvdXRpbmUuaCAqLywKIAkJCQkwRjkzMjc0QzFDMUY2NkFBMDBDRjY1NjQgLyog
R1BSSW5mby5jcHAgKi8sCiAJCQkJMEYyNEU1M0YxN0VBOUY1OTAwQUJCMjE3IC8qIEdQUkluZm8u
aCAqLywKLQkJCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1
ZS5jcHAgKi8sCi0JCQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJu
VmFsdWUuaCAqLywKIAkJCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
Ki8sCiAJCQkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLywKIAkJCQlE
RTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCkBAIC05
NzY3LDcgKzk3NjIsNiBAQAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFCNiAvKiBIZWFwU25h
cHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFENEQyM0JFMDA3Njg0
NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1MUU3MjA1MzgwMDEz
NEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDY4MEQ1MTRCQkQy
NEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
QzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY0NEE3QjIyMEJGNjhDRTAwMjJCMTcxIC8qIElDU3RhdHVzTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkIzOTlCRTIwQUY2QjNEMDAxN0UyMTMgLyogSUNTdGF0dXNVdGlscy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggYzVlMmE2NmJjNzIxZTEwNTAz
ZjE1NWVmNjYxNTZkMGE5MGRkM2EwZS4uY2ZlNGVlZjc1ZGU2NTc0MTAzZGU1MTMxMDMyMmI3ODcw
YzE2N2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjI5LDcgKzYyOSw2IEBA
IGppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5jcHAKIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCiBqaXQvR1BSSW5mby5jcHAKLWpp
dC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAogaml0L0lDU3RhdHMuY3BwCiBqaXQvSW50cmluc2lj
RW1pdHRlci5jcHAKIGppdC9KSVQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCA0MWFkN2Y0Yjc0YWQ3MjU1ZGQ1MTYwYWM3N2JiNmM4
MDNhM2U5YzJlLi5iZDgyZjcxMDZlOWMwOGRiNDViMTNhZTM0NDVjNmIyOWI3NGU1Njg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTEz
MzAsNyArMTMzMCw2IEBACiAgICAgbWFjcm9fbmFtZV9jb21wb25lbnQ6IDpDTE9PUF9CWVRFQ09E
RV9IRUxQRVIKIAogb3AgOmxsaW50X2VudHJ5Ci1vcCA6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZQog
b3AgOmxsaW50X3JldHVybl90b19ob3N0CiBvcCA6bGxpbnRfdm1fZW50cnlfdG9famF2YXNjcmlw
dAogb3AgOmxsaW50X3ZtX2VudHJ5X3RvX25hdGl2ZQpAQCAtMTQwNSw2ICsxNDA0LDcgQEAKIG9w
IDpjaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5saW5lZF9jYWxsX3RyYW1wb2xpbmUKIG9wIDpj
aGVja3BvaW50X29zcl9leGl0X3RyYW1wb2xpbmUKIG9wIDpmdXp6ZXJfcmV0dXJuX2Vhcmx5X2Zy
b21fbG9vcF9oaW50CitvcCA6bGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUKIG9wIDpo
YW5kbGVVbmNhdWdodEV4Y2VwdGlvbgogb3AgOm9wX2NhbGxfcmV0dXJuX2xvY2F0aW9uCiBvcCA6
b3BfY29uc3RydWN0X3JldHVybl9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDE2ZWEyNWQzZDdkYmMxYTEyZjI5Y2M2N2UzM2Iy
NjZkZjQ5NDdlNDUuLmVhN2IyZjJmOGYxN2ExZjQ5NGNlM2FjY2ZjYTM1NTM1Y2QyY2ZmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTMx
Niw2ICszMTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2UgbGxpbnRfbmF0
aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rp
b25fY2FsbF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29u
c3RydWN0X3RyYW1wb2xpbmU6CisgICAgY2FzZSBsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92
YWx1ZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxpbmVkX2NhbGxfdHJh
bXBvbGluZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfdHJhbXBvbGluZToKICAgICBj
YXNlIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmgKaW5kZXggYzlkOTFhYmQxYTNlMzkyZDY1ZjU0MTYyMGY1MTU4NjkyZTc0N2U4
MC4uYjU5ZjFmMzM1YjRjYzZiNDg1ZDhiYjkzYTUwNDE5OWVlMjA2ZmQwYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0yNTEsNiArMjUxLDggQEAgY2xhc3Mg
TWFya2VkQmxvY2sgewogICAgIHB1YmxpYzoKICAgICAgICAgRm9vdGVyKFZNJiwgSGFuZGxlJik7
CiAgICAgICAgIH5Gb290ZXIoKTsKKworICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
Vk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRm9vdGVyLCBtX3ZtKTsgfQogICAgICAgICAK
ICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmgKaW5k
ZXggMTBlYjY3ZGQwNDJlOTQzODlhNjcyZWEwMGNmMDlhYWRhZGNkZDMyOS4uYmM4NmZlNmM1NThj
NmI5YzMxNDlhNDI0MWIzNDUzMjZhZGQ5OWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9QcmVjaXNlQWxsb2NhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBAIGNsYXNzIFByZWNp
c2VBbGxvY2F0aW9uIDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQcmVjaXNlQWxsb2Nh
dGlvbj4gewogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1NldC52bSgpOyB9CiAg
ICAgV2Vha1NldCYgd2Vha1NldCgpIHsgcmV0dXJuIG1fd2Vha1NldDsgfQogCisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZldlYWtTZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUHJl
Y2lzZUFsbG9jYXRpb24sIG1fd2Vha1NldCk7IH0KKwogICAgIHVuc2lnbmVkIGluZGV4SW5TcGFj
ZSgpIHsgcmV0dXJuIG1faW5kZXhJblNwYWNlOyB9CiAgICAgdm9pZCBzZXRJbmRleEluU3BhY2Uo
dW5zaWduZWQgaW5kZXhJblNwYWNlKSB7IG1faW5kZXhJblNwYWNlID0gaW5kZXhJblNwYWNlOyB9
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKaW5kZXggNGIzYTE0Yjk5NWE5
NGZhZmFlZTg5MmJjMGZkYmQ0ZDE1MmJlMjNhZS4uZGRhYzAzZTQ2YWZkNWEzODJmMDU2MjZjMjdl
MTgxNzFkMWQ4NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaApAQCAtNTgs
NiArNTgsOCBAQCBjbGFzcyBXZWFrU2V0IDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPFdl
YWtTZXQ+IHsKICAgICB2b2lkIHNocmluaygpOwogICAgIHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsK
IAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihXZWFrU2V0LCBtX3ZtKTsgfQorCiBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoQ2VsbENvbnRhaW5lcik7CiAgICAg
V2Vha0Jsb2NrOjpGcmVlQ2VsbCogdHJ5RmluZEFsbG9jYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk2MjEwZjMwMGUxOWY2Mzc5ODJlMDgxNjVlMjYxMTA4MDZiMjg5NWMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVl
LmgiCi0KLSNpZiAhRU5BQkxFKENfTE9PUCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+Ci0KLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLS8vIE5vdGU6IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKCkgbmVlZHMgdG8gYmUgcGxhY2VkIGJlZm9yZSB0aGUKLS8vIGRlZmluaXRpb24gb2YgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGJlbG93IGJlY2F1c2UgdGhlIFdpbmRvd3MgYnVpbGQKLS8v
IHJlcXVpcmVzIGl0LgotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJO
X1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fs
bEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsKLX0KLQotI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQotYXNtICgKLSIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGVhIC04KCVyc3ApLCAlcmRpXG4iCi0gICAgImptcCAi
IExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxu
IgotKTsKLQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShYODYpCi1hc20g
KAotIi50ZXh0IiAiXG4iIFwKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
LVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAicHVz
aCAlZWJwXG4iCi0gICAgIm1vdiAlZXNwLCAlZWF4XG4iCi0gICAgImxlYWwgLTQoJWVzcCksICVl
c3BcbiIKLSAgICAicHVzaCAlZWF4XG4iCi0gICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSAgICAibGVhbCA4KCVlc3Ap
LCAlZXNwXG4iCi0gICAgInBvcCAlZWJwXG4iCi0gICAgInJldFxuIgotKTsKLQotI2VsaWYgQ09N
UElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShBUk1fVEhVTUIyKQotYXNtICgKLSIudGV4dCIg
IlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCi0iLnRodW1iIiAiXG4iCi0iLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZSkgIjoiICJcbiIKLSAgICAic3ViIHIwLCBzcCwgIzgiICJcbiIKLSAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgotKTsK
LQotI2VsaWYgQ1BVKEFSTTY0KQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4i
Ci0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1I
SURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgICJzdWIgeDAsIHNwLCAjMTYiICJc
biIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBD
UFUoTUlQUykKLQotI2lmIFdURl9NSVBTX1BJQwotI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5
KGZ1bmN0aW9uKSBcCi0gICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCi0gICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAotICAgICAg
ICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgotI2Vsc2UKLSNkZWZp
bmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgotI2VuZGlmCi0KLWFzbSAo
Ci0iLnRleHQiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQotICAgICJh
ZGRpICRhMCwgJHNwLCAtOCIgIlxuIgotICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCi0pOwotCi0jZWxpZiBDT01QSUxFUihN
U1ZDKSAmJiBDUFUoWDg2KQotZXh0ZXJuICJDIiB7Ci0gICAgX19kZWNsc3BlYyhuYWtlZCkgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSgpCi0gICAgewotICAgICAgICBfX2FzbSBsZWEgZWF4LCBbZXNwIC0gNF0KLSAgICAg
ICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWF4OwotICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICB9Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxYmNkMjk5MDliYjBlOWI0Nzg5MjVkZmZiZGI5Zjk0MDhlYmRlNjIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotCi0jaWYgIUVOQUJMRShDX0xP
T1ApCi0KLSNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAotI2RlZmluZSBIT1NUX0NB
TExfUkVUVVJOX1ZBTFVFX09QVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUgSE9TVF9DQUxMX1JF
VFVSTl9WQUxVRV9PUFRJT04KLSNlbmRpZgotCi1uYW1lc3BhY2UgSlNDIHsKLQotZXh0ZXJuICJD
IiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7Ci0KLSNpZiBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotLy8gVGhpcyBpcyBhIHB1YmxpYyBkZWNsYXJhdGlv
biBvbmx5IHRvIGNvbnZpbmNlIENMQU5HIG5vdCB0byBlbGlkZSBpdC4KLWV4dGVybiAiQyIgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUoQ2FsbEZyYW1lKikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7Ci0KLWlubGluZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkK
LXsKLSAgICBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShudWxscHRyKTsKLX0K
LQotI2Vsc2UgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0KLWlubGluZSB2b2lkIGluaXRp
YWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkgeyB9Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Nf
Q09NUEFUSUJMRSkKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENf
TE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDU3MDhjYjI0MGY5ZmRmYTMzNTFmMDVlN2E1MGNiZDAxNTZmZGYxZDIuLmQ0NjA2NzQ4NGRmMmYy
NGNjODFhNDhjMGE4YTgzN2I4NzVhMDczZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkZ1enouaCIKICNpbmNsdWRlICJGcmFtZVRyYWNlcnMuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSUNTdGF0
cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC01Nyw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKICNpbmNsdWRlICJKU0xl
eGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAi
TExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKQEAgLTEyMjQs
NyArMTIyNCw4IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lCiAgICAgICAgIGlmIChjYWxsRGF0
YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAgICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAgICAgICAgIGNhbGxl
ZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVlKSk7Ci0gICAgICAgICAgICB2bS5ob3N0
Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
bihhc09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSkpOworICAg
ICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICAgICAgdm0uZW5jb2RlZEhv
c3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2Fs
bGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOwogICAgICAgICAgICAgaWYgKFVO
TElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNlcHRp
b25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8SlNFbnRyeVB0clRhZz4o
KS5leGVjdXRhYmxlQWRkcmVzcygpLApAQCAtMTIzMiw3ICsxMjMzLDcgQEAgc3RhdGljIFNsb3dQ
YXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgKLSAgICAgICAgICAgICAgICB0YWdDRnVuY3Rpb248dm9pZCosIEpTRW50cnlQdHJUYWc+
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLAorICAgICAgICAgICAgICAgIExMSW50OjpnZXRIb3N0
Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAog
ICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2Fs
bE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUp
KTsKICAgICAgICAgfQogICAgIApAQCAtMTI1MSwxNCArMTI1MiwxNSBAQCBzdGF0aWMgU2xvd1Bh
dGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZQogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6
Ok5hdGl2ZSkgewogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
ZWVGcmFtZSk7CiAgICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVl
KSk7Ci0gICAgICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0
KHZtKSwgY2FsbGVlRnJhbWUpKTsKKyAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAg
ICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1l
KTsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKICAgICAgICAgICAgICAgICB2bS5nZXRDVElTdHViKHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPEpTRW50
cnlQdHJUYWc+KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogCi0gICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQodGFnQ0Z1bmN0aW9uPHZvaWQqLCBKU0VudHJ5UHRyVGFnPihnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1l
KSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJu
VmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwogICAgIH0KIAogICAgIEFTU0VSVChjb25zdHJ1
Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9uc01TVkM2NC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhNWYzMTM3ZTZhMDNmODc5OGRiOGM3MGI5NGMwM2M0NjExZTgyOGIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi0vLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQgdGhhdCBpcyBvbmx5
IG5lZWRlZCBiZWNhdXNlIEpJVFN0dWJzTVNWQzY0LmFzbQotLy8gaXMgYnVpbHQgdW5jb25kaXRp
b25hbGx5IGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGUsIGFuZCBpdCByZWZlcmVuY2VzIHRo
aXMgZnVuY3Rpb24uCi0vLyBXZSBvbmx5IG5lZWQgdG8gcHJvdmlkZSBhIHN0dWIgdG8gc2F0aXNm
eSB0aGUgbGlua2FnZS4gSXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuCi1leHRlcm4gIkMiIEVuY29k
ZWRKU1ZhbHVlIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEpTR2xvYmFsT2Jq
ZWN0KikKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnNNU1ZDNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c01TVkM2NC5hc20KaW5kZXggZWRmZTVjMzA3ZmYyOGJmN2EzMjIwNDQ5NDI4OTg4Y2MzNWQyNjY4
Yy4uNWVjZDQ0YzBkN2I1NTAwY2YzN2M5YTBjMDhhZjE0ZTE2NDBjZjkzMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KQEAgLTIzLDIzICsyMywxMCBA
QAogOyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogOyovCiAKLUVYVEVSTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0
aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVCTElDIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUKIFBVQkxJ
QyBjdGlNYXNtUHJvYmVUcmFtcG9saW5lCiAKIF9URVhUICAgU0VHTUVOVAogCi1nZXRIb3N0Q2Fs
bFJldHVyblZhbHVlIFBST0MKLSAgICBsZWEgcmN4LCBbcnNwIC0gOF0KLSAgICA7IEFsbG9jYXRl
IHNwYWNlIGZvciBhbGwgNCBwYXJhbWV0ZXIgcmVnaXN0ZXJzLCBhbmQgYWxpZ24gc3RhY2sgcG9p
bnRlciB0byAxNiBieXRlcyBib3VuZGFyeSBieSBhbGxvY2F0aW5nIGFub3RoZXIgOCBieXRlcy4K
LSAgICA7IFRoZSBzdGFjayBhbGlnbm1lbnQgaXMgbmVlZGVkIHRvIGZpeCBhIGNyYXNoIGluIHRo
ZSBDUlQgbGlicmFyeSBvbiBhIGZsb2F0aW5nIHBvaW50IGluc3RydWN0aW9uLgotICAgIHN1YiBy
c3AsIDQwCi0gICAgY2FsbCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZQotICAg
IGFkZCByc3AsIDQwCi0gICAgcmV0Ci1nZXRIb3N0Q2FsbFJldHVyblZhbHVlIEVORFAKLQogOyBU
aGUgZm9sbG93aW5nIGNvbnN0YW50cyBtdXN0IG1hdGNoIHRoZSB4ODZfNjQgdmVyc2lvbiBpbiBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAuCiBQVFJfU0laRSBFUVUgOAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCmluZGV4IDg4NzM3MTg3
YWMwMTE5MjI1MmMxMjg1NDFkMjQwMThkYzQzNDZjMTQuLjVjNjA5MWMyM2I4OGJiNDJlNGJiNmM1
MmM1ZWNjNmExOGY2YjRlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludEVudHJ5cG9pbnQuY3BwCkBAIC0xNTQsNiArMTU0LDE1IEBAIHN0YXRpYyB2b2lkIHNldE1v
ZHVsZVByb2dyYW1FbnRyeXBvaW50KENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIGNvZGVCbG9j
ay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRDb2RlKSk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0VudHJ5UHRyVGFnPiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpCit7
CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoT3B0aW9uczo6dXNlSklUKCkpCisgICAgICAgIHJl
dHVybiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlVGh1bmsoKTsKKyNlbmRpZiAvLyBFTkFCTEUoSklU
KQorICAgIHJldHVybiBnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X2dldF9ob3N0X2Nh
bGxfcmV0dXJuX3ZhbHVlKTsKK30KKwogdm9pZCBzZXRFbnRyeXBvaW50KENvZGVCbG9jayogY29k
ZUJsb2NrKQogewogICAgIHN3aXRjaCAoY29kZUJsb2NrLT5jb2RlVHlwZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmgKaW5kZXggZTEwMGZiOGZm
MzA2ZTcxNTdkY2JkM2RiMjIxOWFmYzFlODI2OWQwYi4uZTQ3NmFhMmRlYzUzOWNhZGE2OTI4NjFl
ZjhjMzdkOTQxNTQ5NTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50RW50cnlwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dEVudHJ5cG9pbnQuaApAQCAtMzcsNCArMzcsNiBAQCB2b2lkIHNldEVudHJ5cG9pbnQoQ29kZUJs
b2NrKik7CiAKIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqKTsKIAor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50cnlQdHJUYWc+IGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVFbnRyeXBvaW50KCk7CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggZjlhOTA3ZWQ0
MWJkZTQ1NmNmMGQ5ZDdlMTliM2Y5MWI0YmQxZGU1MC4uODJjMzc3NDY5NDdiNjVkOWI4YTFhZmMx
YzhlMThkZDE0OGVhNzA3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25BbGxv
d2xpc3QuaCIKICNpbmNsdWRlICJGdW5jdGlvbkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkdldHRl
clNldHRlci5oIgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJK
SVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiSklUV29ya2xpc3QuaCIKICNpbmNsdWRlICJKU0Fz
eW5jRnVuY3Rpb24uaCIKQEAgLTE2NzEsOCArMTY3MCw5IEBAIHN0YXRpYyBTbG93UGF0aFJldHVy
blR5cGUgaGFuZGxlSG9zdENhbGwoQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSwgSlNWYWx1ZSBjYWxs
ZWUsCiAgICAgICAgIGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUp
IHsKICAgICAgICAgICAgIFNsb3dQYXRoRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsZWVGcmFt
ZSk7CiAgICAgICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2JqZWN0KGNhbGxlZSkp
OwotICAgICAgICAgICAgdm0uaG9zdENhbGxSZXR1cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZt
KSwgY2FsbGVlRnJhbWUpKTsKLSAgICAgICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9i
amVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dD
OworICAgICAgICAgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5u
YXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVl
RnJhbWUpOworICAgICAgICAgICAgTExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFsT2JqZWN0LCBjYWxs
ZWVGcmFtZSwgTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCkuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICBzbG93UGF0aExvZygiQ2FsbCBjYWxsZWUgaXMgbm90IGEgZnVuY3Rpb246ICIs
IGNhbGxlZSwgIlxuIik7CkBAIC0xNjg5LDggKzE2ODksOSBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1
cm5UeXBlIGhhbmRsZUhvc3RDYWxsKENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpTVmFsdWUgY2Fs
bGVlLAogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2
ZSkgewogICAgICAgICBTbG93UGF0aEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbGVlRnJhbWUp
OwogICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2JqZWN0KGNhbGxlZSkpOwotICAg
ICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0cnVjdERh
dGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNh
bGxlZUZyYW1lKSk7Ci0gICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2Fs
bGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVu
Y3Rpb25QdHJUYWcpOworICAgICAgICBEaXNhbGxvd0dDIGRpc2FsbG93R0M7CisgICAgICAgIHZt
LmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlID0gY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOworICAg
ICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSwgSlNFbnRyeVB0clRhZyk7CiAgICAgfQogICAgIAogICAgIHNsb3dQYXRoTG9nKCJDb25z
dHJ1Y3RvciBjYWxsZWUgaXMgbm90IGEgZnVuY3Rpb246ICIsIGNhbGxlZSwgIlxuIik7CkBAIC0x
OTU5LDggKzE5NjAsOSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIGNvbW1vbkNhbGxFdmFs
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBJbnN0cnVjdGlvbgogICAgIGlmICghaXNIb3N0
RnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSwgZ2xvYmFsRnVuY0V2YWwpKQogICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgc2V0VXBDYWxsKGNhbGxlZUZyYW1lLCBDb2RlRm9yQ2Fs
bCwgY2FsbGVlQXNWYWx1ZSkpOwogICAgIAotICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBl
dmFsKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIGJ5dGVjb2RlLm1fZWNtYU1vZGUpOwotICAg
IExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRD
b2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgIERp
c2FsbG93R0MgZGlzYWxsb3dHQzsKKyAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSA9
IEpTVmFsdWU6OmVuY29kZShldmFsKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIGJ5dGVjb2Rl
Lm1fZWNtYU1vZGUpKTsKKyAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxl
ZUZyYW1lLCBMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKS5jb2RlKCku
ZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiB9CiAgICAgCiBMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFRodW5rcy5jcHAKaW5kZXggOGFmODZmMzE2N2RlM2Y4ZjZjMWEzNDI2ODg3ODE1
ZWM5MjM0M2Q4OC4uZjEwM2UwYzAyZGM2ODNhMjJlZWJmNjk5MzZjZDI5MmJhNzlmOWE2OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCkBAIC0xNTIsNiAr
MTUyLDM5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gd2FzbUZ1bmN0
aW9uRW50cnlUaHVuaygpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQogCitNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVRo
dW5rKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0VudHJ5UHRyVGFnPj4gY29kZVJlZjsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUtleTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0geworICAgICAgICBDQ2Fs
bEhlbHBlcnMgaml0OworCisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAg
ICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlLCBHUFJJbmZvOjpyZWdUMCk7CisKKyAgICAgICAgYXV0byBwcmVjaXNlQWxsb2NhdGlvbkNh
c2UgPSBqaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86OnJl
Z1QwLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihQcmVjaXNlQWxsb2NhdGlvbjo6aGFsZkFs
aWdubWVudCkpOworICAgICAgICBqaXQuYW5kUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihNYXJrZWRCbG9jazo6YmxvY2tNYXNrKSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIE1hcmtlZEJsb2Nr
OjpvZmZzZXRPZkZvb3RlciArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om9mZnNldE9mVk0oKSksIEdQ
UkluZm86OnJlZ1QwKTsKKyAgICAgICAgYXV0byBsb2FkZWRDYXNlID0gaml0Lmp1bXAoKTsKKwor
ICAgICAgICBwcmVjaXNlQWxsb2NhdGlvbkNhc2UubGluaygmaml0KTsKKyAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBQcmVjaXNlQWxsb2Nh
dGlvbjo6b2Zmc2V0T2ZXZWFrU2V0KCkgKyBXZWFrU2V0OjpvZmZzZXRPZlZNKCkgLSBQcmVjaXNl
QWxsb2NhdGlvbjo6aGVhZGVyU2l6ZSgpKSwgR1BSSW5mbzo6cmVnVDApOworCisgICAgICAgIGxv
YWRlZENhc2UubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBqaXQubG9h
ZFZhbHVlKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgVk06Om9mZnNldE9m
RW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUoKSksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0
dXJuVmFsdWVHUFIgfSk7CisjZWxzZQorICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgVk06Om9mZnNldE9mRW5jb2RlZEhvc3RDYWxsUmV0
dXJuVmFsdWUoKSksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJ
bmZvOjpyZXR1cm5WYWxldUdQUiB9KTsKKyNlbmRpZgorICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKKyAgICAgICAgaml0LnJldCgpOworCisgICAgICAgIExpbmtCdWZmZXIgcGF0
Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgICAgICBjb2RlUmVmLmNvbnN0cnVj
dChGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKU0VudHJ5UHRyVGFnLCAiTExJbnQ6OmdldEhv
c3RDYWxsUmV0dXJuVmFsdWUgdGh1bmsiKSk7CisgICAgfSk7CisgICAgcmV0dXJuIGNvZGVSZWY7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIExMSW50CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRUaHVua3MuaAppbmRleCA3ODFlMzJkN2ZlZWZjODU1ODc4YWFkODMyOGI0
OTFiOTU2M2ZmZGFlLi4zZTdiY2U1YWMwM2M1N2VhOWZmODUyN2M4YTI3NTIxNGE5ODQ1YjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaApAQCAtNTcsNiArNTcs
NyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGZ1bmN0aW9uRm9yQ29u
c3RydWN0QXJpdHlDaGVja1RodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQ
dHJUYWc+IGV2YWxFbnRyeVRodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQ
dHJUYWc+IHByb2dyYW1FbnRyeVRodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IG1vZHVsZVByb2dyYW1FbnRyeVRodW5rKCk7CitNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SlNFbnRyeVB0clRhZz4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVRodW5rKCk7CiAKICNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+
IHdhc21GdW5jdGlvbkVudHJ5VGh1bmsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAppbmRleCA4ZTU4ODcyYThjNTMyOWE3MjRl
NGM4M2UyODA0ZGU4YmNiYmU3OTg3Li5kNDk0NDBiNWFkMzMyOTAyMjU3NmE1YmFhNzA4NDlkYWZi
M2U4ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkxM
SW50OwogLy8gaW5jbHVkZXMuCiAvLwogLy8gSW4gYWRkaXRpb24sIHNvbWUgSklUIHRyYW1wb2xp
bmUgZnVuY3Rpb25zIHdoaWNoIGFyZSBuZWVkZWQgYnkgTExJbnQKLS8vIChlLmcuIGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUsIGN0aU9wVGhyb3dOb3RDYXVnaHQpIGFyZSBhbHNvIGFkZGVkIGFzCisv
LyAoZS5nLiBjdGlPcFRocm93Tm90Q2F1Z2h0KSBhcmUgYWxzbyBhZGRlZCBhcwogLy8gYnl0ZWNv
ZGVzLCBhbmQgdGhlIENMb29wIHdpbGwgcHJvdmlkZSBieXRlY29kZSBoYW5kbGVycyBmb3IgdGhl
bS4KIC8vCiAvLyBJbiB0aGUgQ0xvb3AsIHdlIGNhbiBvbmx5IGRpc3BhdGNoIGluZGlyZWN0bHkg
dG8gdGhlc2UgYnl0ZWNvZGVzCkBAIC00MzgsMjMgKzQzOCw2IEBAIEpTVmFsdWUgQ0xvb3A6OmV4
ZWN1dGUoT3Bjb2RlSUQgZW50cnlPcGNvZGVJRCwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZN
KiB2bSwKICNlbmRpZgogICAgICAgICB9CiAKLSAgICAgICAgLy8gSW4gdGhlIEFTTSBsbGludCwg
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGlzIGEgcGllY2Ugb2YgZ2x1ZQotICAgICAgICAvLyBm
dW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklUIChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4K
LSAgICAgICAgLy8gV2Ugc2ltdWxhdGUgaXQgaGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5k
bGVyLgotICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRoZSBwYXJ0IGluIGdldEhvc3RDYWxsUmV0
dXJuVmFsdWVXaXRoRXhlY1N0YXRlKCk6Ci0gICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IHZt
LT5ob3N0Q2FsbFJldHVyblZhbHVlOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAg
ICB0MSA9IHJlc3VsdC50YWcoKTsKLSAgICAgICAgICAgIHQwID0gcmVzdWx0LnBheWxvYWQoKTsK
LSNlbHNlCi0gICAgICAgICAgICB0MCA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotI2VuZGlm
Ci0gICAgICAgICAgICBvcGNvZGUgPSBsci5vcGNvZGUoKTsKLSAgICAgICAgICAgIERJU1BBVENI
X09QQ09ERSgpOwotICAgICAgICB9Ci0KICNpZiAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RF
UykKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpp
bmRleCBhNjAyYWJmMDMyODJiMTIwZDNjNjFjZWY3OTk2MWEyYTA5MDAxZjdlLi4wMWExYTlhOTE0
MWM4OWYwMjZhMDE5MmZjYjk2NTliZmI0NjY0MTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNDIy
LDYgKzQyMiwxOCBAQCBvcChoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbiwgbWFjcm8oKQogICAgIHJl
dAogZW5kKQogCitvcChsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92YWx1ZSwgbWFjcm8gKCkK
KyAgICBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBwdXNoQ2FsbGVlU2F2ZXMoKQorICAgIGxvYWRw
IENhbGxlZVtjZnJdLCB0MAorICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQwKQorICAgIGxvYWRpIFZN
OjplbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSArIFRhZ09mZnNldFt0MF0sIHQxCisgICAgbG9h
ZGkgVk06OmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlICsgUGF5bG9hZE9mZnNldFt0MF0sIHQw
CisgICAgcG9wQ2FsbGVlU2F2ZXMoKQorICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHJldAor
ZW5kKQorCiBtYWNybyBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNlKQog
ICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQogICAgIHJldApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpp
bmRleCA4YjVmNDJkMDBjN2IxMWJiZWQ0MTZlODZkMGUyZDYwMmNhMjViYzkzLi5hYTIzZWM2M2Ez
MDkzOTAzMDM1MGY2MDhiMGI2ZmE0Mjk4NzNkNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzUzLDYgKzM1
MywxNiBAQCBvcChoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbiwgbWFjcm8gKCkKICAgICByZXQKIGVu
ZCkKIAorb3AobGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUsIG1hY3JvICgpCisgICAg
ZnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgcHVzaENhbGxlZVNhdmVzKCkKKyAgICBsb2FkcCBDYWxs
ZWVbY2ZyXSwgdDAKKyAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MCkKKyAgICBsb2FkcSBWTTo6ZW5j
b2RlZEhvc3RDYWxsUmV0dXJuVmFsdWVbdDBdLCB0MAorICAgIHBvcENhbGxlZVNhdmVzKCkKKyAg
ICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKK2VuZCkKIAogbWFjcm8gcHJlcGFyZVN0YXRl
Rm9yQ0NhbGwoKQogICAgIGFkZHAgUEIsIFBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA4ZTliMTY2OTlmNWZmMzJkODI5OWFiNzkwNTEy
YjFlNjc2YTY3ODNiLi5hNzFkNTljYTI5NGZhZTMxMDg0ODlkYzA3NjQwZjBmOGQwMTgyNjU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAg
LTgzMSw2ICs4MzEsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0IHsKICAgICBSZWdFeHBHbG9iYWxEYXRhJiByZWdFeHBHbG9iYWxEYXRh
KCkgeyByZXR1cm4gbV9yZWdFeHBHbG9iYWxEYXRhOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCBy
ZWdFeHBHbG9iYWxEYXRhT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFs
T2JqZWN0LCBtX3JlZ0V4cEdsb2JhbERhdGEpOyB9CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9m
ZnNldE9mVk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdm0p
OyB9CisKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBJbnNwZWN0b3I6OkpTR2xv
YmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0
IHsgcmV0dXJuICptX2luc3BlY3RvckNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBKU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUmIGluc3BlY3RvckRlYnVnZ2FibGUoKSB7IHJldHVybiAqbV9pbnNwZWN0
b3JEZWJ1Z2dhYmxlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5k
ZXggOTg3NzZmYzhjZTVkZWQ2ZmM4YWRmMTBjMzRhNWQ5MmU1OGQxYjdlZC4uY2JjNzA2ZmY0ODYw
MDBhZDY4ZjBlNmQzNDg1NzQ5ZmM2OWJlZDc4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmNwcApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkhhc093blByb3BlcnR5Q2FjaGUu
aCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFByb2ZpbGVyLmgiCi0jaW5jbHVk
ZSAiSG9zdENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5j
bHVkZSAiSW50bENhY2hlLmgiCiAjaW5jbHVkZSAiSW50bENvbGxhdG9yLmgiCkBAIC00OTAsMTAg
KzQ4OSw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSwgV1RGOjpS
dW5Mb29wKiBydW5Mb29wLCBib29sKiBzdWNjZXNzKQogCiAgICAgVGhyZWFkOjpjdXJyZW50KCku
c2V0Q3VycmVudEF0b21TdHJpbmdUYWJsZShleGlzdGluZ0VudHJ5QXRvbVN0cmluZ1RhYmxlKTsK
ICAgICAKLSNpZiAhRU5BQkxFKENfTE9PUCkKLSAgICBpbml0aWFsaXplSG9zdENhbGxSZXR1cm5W
YWx1ZSgpOyAvLyBUaGlzIGlzIG5lZWRlZCB0byBjb252aW5jZSB0aGUgbGlua2VyIG5vdCB0byBk
cm9wIGhvc3QgY2FsbCByZXR1cm4gc3VwcG9ydC4KLSNlbmRpZgotICAgIAogICAgIEdpZ2FjYWdl
OjphZGRQcmltaXRpdmVEaXNhYmxlQ2FsbGJhY2socHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZENh
bGxiYWNrLCB0aGlzKTsKIAogICAgIGhlYXAubm90aWZ5SXNTYWZlVG9Db2xsZWN0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA1Mjg0OTg0NmI1YTQ4YWJhYmFmMTkxMGQ1MDdm
NDM4ZjYyZGU0NjViLi40MTI5MjQ3Y2QyNDU2ZDY3NTY5NzA3YzkyYjZjN2ZjMjM5YzJmYTA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTg1Myw2ICs4NTMsMTEgQEAgY2xhc3Mg
Vk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2Vk
TGlzdE5vZGU8Vk0+IHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihWTSwgdG9wRW50
cnlGcmFtZSk7CiAgICAgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkVuY29kZWRI
b3N0Q2FsbFJldHVyblZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoVk0sIGVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlKTsKKyAgICB9CisKICAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mSGVhcEJhcnJpZXJUaHJlc2hvbGQoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihWTSwgaGVhcCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSGVhcCwg
bV9iYXJyaWVyVGhyZXNob2xkKTsKQEAgLTkzMyw3ICs5MzgsNyBAQCBjbGFzcyBWTSA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxW
TT4gewogICAgICAgICB9CiAgICAgfQogCi0gICAgSlNWYWx1ZSBob3N0Q2FsbFJldHVyblZhbHVl
OworICAgIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlIHsgfTsKICAg
ICB1bnNpZ25lZCB2YXJhcmdzTGVuZ3RoOwogICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lUmV0
dXJuVmFsdWU7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWVGb3JDYXRjaDsK
</data>
<flag name="review"
          id="426034"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="426036"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410174</attachid>
            <date>2020-09-30 17:12:33 -0700</date>
            <delta_ts>2020-09-30 17:30:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217150-20200930171232.patch</filename>
            <type>text/plain</type>
            <size>37602</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NDAxYmRhNjgwZTNjZjlmZGFhMTM2ZTBkNjYxY2VlNmQxMjFhMDJmLi40NWIxZGY3OTY5Mzk5YjRi
ZTc0NThlZTFhY2ZhZDFkNjQxYzQwM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wOS0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFdlIHNob3VsZCBub3QgdGFnIEMgZnVuY3Rpb24gd2l0aCBKSVQg
Y29kZSByZWxhdGVkIHB0ciB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIGFyZSB0YWdnaW5nIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUgZnVuY3Rp
b24gd2l0aCBKSVQgcmVsYXRlZCBQdHJUYWcuIEFzIGEgcGFydCBvZiBKSVQtY2FnaW5nIGVmZm9y
dCwgd2UgYXJlIHJlc3RyaWN0aW5nIG91cgorICAgICAgICBQdHJUYWcgdXNhZ2UgbW9yZSBmb3Ig
Y29kZSB0eXBlcyAoZS5nLiBKSVQgY29kZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSklUIHJlbGF0
ZWQgUHRyVGFnKS4gU28sIHdlIHNob3VsZCBub3QgdGFnIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUK
KyAgICAgICAgd2l0aCB0aGF0LiBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSBpbiBKSVQgY29kZSBpZiBKSVQgaXMgZW5hYmxlZC4gSWYgbm90LCBpdCBpcyBpbXBs
ZW1lbnRlZCBieSBMTEludC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaGVhcC9NYXJr
ZWRCbG9jay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZN
KToKKyAgICAgICAgKiBoZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OlBy
ZWNpc2VBbGxvY2F0aW9uOjpvZmZzZXRPZldlYWtTZXQpOgorICAgICAgICAqIGhlYXAvV2Vha1Nl
dC5oOgorICAgICAgICAoSlNDOjpXZWFrU2V0OjpvZmZzZXRPZlZNKToKKyAgICAgICAgKiBqaXQv
SG9zdENhbGxSZXR1cm5WYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaml0L0hvc3RDYWxs
UmV0dXJuVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnNNU1ZDNjQuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGppdC9KSVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBv
aW50LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRy
eXBvaW50KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuaDoKKyAgICAgICAgKiBs
bGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpoYW5kbGVIb3N0
Q2FsbCk6CisgICAgICAgIChKU0M6OkxMSW50Ojpjb21tb25DYWxsRXZhbCk6CisgICAgICAgICog
bGxpbnQvTExJbnRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZVRodW5rKToKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpDTG9vcDo6
ZXhlY3V0ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om9m
ZnNldE9mVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6
Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06Om9mZnNldE9m
RW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOgorCiAyMDIwLTA5LTMwICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI2Nzc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjNiZmFlMTliMTgy
Y2I1Mjc0YmU2MTIxOTJkODUzNjA2YjNjMGU0My4uMzdmZWJmZjY1YWIzNmIxZTA1ZjM3OGE5ZjQ0
NTg0MTllOGUwNDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0Myw3ICsz
NDMsNiBAQAogCQkwRjQ2ODBDQjE0QkJCMTcyMDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29u
ZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ2
ODBDNjE0QkJCMTY5MDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29uZmlnLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0NjgwQ0QxNEJCQjE3
RDAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dM
ZXZlbEludGVycHJldGVyLmggKi87IH07CiAJCTBGNDY4MEQzMTRCQkQxNjcwMEJGRTI3MiAvKiBM
TEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsgfTsKLQkJMEY0Njgw
RDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRCQkM1RjgwMEJGRTI3
MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovOyB9OwogCQkwRjQ4NTMy
ODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3REZERUMwMDgzQjY4
NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4NyAvKiBGVExSZWNv
dmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI2MDEsOCArMjYw
MCw2IEBACiAJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZlbEludGVycHJldGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvd0xldmVsSW50ZXJwcmV0ZXIu
aDsgcGF0aCA9IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY0NjgwQ0UxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludERhdGEuY3BwOyBwYXRoID0g
bGxpbnQvTExJbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Njgw
Q0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0aCA9IGxsaW50L0xMSW50RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
b3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY0
NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcgLyogREZHQXJpdGhN
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0FyaXRoTW9k
ZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsgcGF0aCA9IGRmZy9E
RkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMjMxODdE
RkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcDsgcGF0aCA9IGZ0
bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MTMxLDggKzYxMjgsNiBAQAogCQkJCTBGNzY2RDJFMTVBOERDREQwMDhGMzYzRSAvKiBHQ0F3
YXJlSklUU3R1YlJvdXRpbmUuaCAqLywKIAkJCQkwRjkzMjc0QzFDMUY2NkFBMDBDRjY1NjQgLyog
R1BSSW5mby5jcHAgKi8sCiAJCQkJMEYyNEU1M0YxN0VBOUY1OTAwQUJCMjE3IC8qIEdQUkluZm8u
aCAqLywKLQkJCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1
ZS5jcHAgKi8sCi0JCQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJu
VmFsdWUuaCAqLywKIAkJCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
Ki8sCiAJCQkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLywKIAkJCQlE
RTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCkBAIC05
NzY3LDcgKzk3NjIsNiBAQAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFCNiAvKiBIZWFwU25h
cHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFENEQyM0JFMDA3Njg0
NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1MUU3MjA1MzgwMDEz
NEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDY4MEQ1MTRCQkQy
NEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
QzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY0NEE3QjIyMEJGNjhDRTAwMjJCMTcxIC8qIElDU3RhdHVzTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkIzOTlCRTIwQUY2QjNEMDAxN0UyMTMgLyogSUNTdGF0dXNVdGlscy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggYzVlMmE2NmJjNzIxZTEwNTAz
ZjE1NWVmNjYxNTZkMGE5MGRkM2EwZS4uY2ZlNGVlZjc1ZGU2NTc0MTAzZGU1MTMxMDMyMmI3ODcw
YzE2N2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjI5LDcgKzYyOSw2IEBA
IGppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRv
ci5jcHAKIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCiBqaXQvR1BSSW5mby5jcHAKLWpp
dC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAogaml0L0lDU3RhdHMuY3BwCiBqaXQvSW50cmluc2lj
RW1pdHRlci5jcHAKIGppdC9KSVQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCA0MWFkN2Y0Yjc0YWQ3MjU1ZGQ1MTYwYWM3N2JiNmM4
MDNhM2U5YzJlLi5iZDgyZjcxMDZlOWMwOGRiNDViMTNhZTM0NDVjNmIyOWI3NGU1Njg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTEz
MzAsNyArMTMzMCw2IEBACiAgICAgbWFjcm9fbmFtZV9jb21wb25lbnQ6IDpDTE9PUF9CWVRFQ09E
RV9IRUxQRVIKIAogb3AgOmxsaW50X2VudHJ5Ci1vcCA6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZQog
b3AgOmxsaW50X3JldHVybl90b19ob3N0CiBvcCA6bGxpbnRfdm1fZW50cnlfdG9famF2YXNjcmlw
dAogb3AgOmxsaW50X3ZtX2VudHJ5X3RvX25hdGl2ZQpAQCAtMTQwNSw2ICsxNDA0LDcgQEAKIG9w
IDpjaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5saW5lZF9jYWxsX3RyYW1wb2xpbmUKIG9wIDpj
aGVja3BvaW50X29zcl9leGl0X3RyYW1wb2xpbmUKIG9wIDpmdXp6ZXJfcmV0dXJuX2Vhcmx5X2Zy
b21fbG9vcF9oaW50CitvcCA6bGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUKIG9wIDpo
YW5kbGVVbmNhdWdodEV4Y2VwdGlvbgogb3AgOm9wX2NhbGxfcmV0dXJuX2xvY2F0aW9uCiBvcCA6
b3BfY29uc3RydWN0X3JldHVybl9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDE2ZWEyNWQzZDdkYmMxYTEyZjI5Y2M2N2UzM2Iy
NjZkZjQ5NDdlNDUuLmVhN2IyZjJmOGYxN2ExZjQ5NGNlM2FjY2ZjYTM1NTM1Y2QyY2ZmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTMx
Niw2ICszMTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2UgbGxpbnRfbmF0
aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rp
b25fY2FsbF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxfZnVuY3Rpb25fY29u
c3RydWN0X3RyYW1wb2xpbmU6CisgICAgY2FzZSBsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92
YWx1ZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxpbmVkX2NhbGxfdHJh
bXBvbGluZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfdHJhbXBvbGluZToKICAgICBj
YXNlIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmgKaW5kZXggYzlkOTFhYmQxYTNlMzkyZDY1ZjU0MTYyMGY1MTU4NjkyZTc0N2U4
MC4uYjU5ZjFmMzM1YjRjYzZiNDg1ZDhiYjkzYTUwNDE5OWVlMjA2ZmQwYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0yNTEsNiArMjUxLDggQEAgY2xhc3Mg
TWFya2VkQmxvY2sgewogICAgIHB1YmxpYzoKICAgICAgICAgRm9vdGVyKFZNJiwgSGFuZGxlJik7
CiAgICAgICAgIH5Gb290ZXIoKTsKKworICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
Vk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRm9vdGVyLCBtX3ZtKTsgfQogICAgICAgICAK
ICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmgKaW5k
ZXggMTBlYjY3ZGQwNDJlOTQzODlhNjcyZWEwMGNmMDlhYWRhZGNkZDMyOS4uYmM4NmZlNmM1NThj
NmI5YzMxNDlhNDI0MWIzNDUzMjZhZGQ5OWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9QcmVjaXNlQWxsb2NhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBAIGNsYXNzIFByZWNp
c2VBbGxvY2F0aW9uIDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQcmVjaXNlQWxsb2Nh
dGlvbj4gewogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1NldC52bSgpOyB9CiAg
ICAgV2Vha1NldCYgd2Vha1NldCgpIHsgcmV0dXJuIG1fd2Vha1NldDsgfQogCisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZldlYWtTZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUHJl
Y2lzZUFsbG9jYXRpb24sIG1fd2Vha1NldCk7IH0KKwogICAgIHVuc2lnbmVkIGluZGV4SW5TcGFj
ZSgpIHsgcmV0dXJuIG1faW5kZXhJblNwYWNlOyB9CiAgICAgdm9pZCBzZXRJbmRleEluU3BhY2Uo
dW5zaWduZWQgaW5kZXhJblNwYWNlKSB7IG1faW5kZXhJblNwYWNlID0gaW5kZXhJblNwYWNlOyB9
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKaW5kZXggNGIzYTE0Yjk5NWE5
NGZhZmFlZTg5MmJjMGZkYmQ0ZDE1MmJlMjNhZS4uZGRhYzAzZTQ2YWZkNWEzODJmMDU2MjZjMjdl
MTgxNzFkMWQ4NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtTZXQuaApAQCAtNTgs
NiArNTgsOCBAQCBjbGFzcyBXZWFrU2V0IDogcHVibGljIEJhc2ljUmF3U2VudGluZWxOb2RlPFdl
YWtTZXQ+IHsKICAgICB2b2lkIHNocmluaygpOwogICAgIHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsK
IAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihXZWFrU2V0LCBtX3ZtKTsgfQorCiBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoQ2VsbENvbnRhaW5lcik7CiAgICAg
V2Vha0Jsb2NrOjpGcmVlQ2VsbCogdHJ5RmluZEFsbG9jYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk2MjEwZjMwMGUxOWY2Mzc5ODJlMDgxNjVlMjYxMTA4MDZiMjg5NWMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVl
LmgiCi0KLSNpZiAhRU5BQkxFKENfTE9PUCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+Ci0KLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLS8vIE5vdGU6IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKCkgbmVlZHMgdG8gYmUgcGxhY2VkIGJlZm9yZSB0aGUKLS8vIGRlZmluaXRpb24gb2YgZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGJlbG93IGJlY2F1c2UgdGhlIFdpbmRvd3MgYnVpbGQKLS8v
IHJlcXVpcmVzIGl0LgotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJO
X1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fs
bEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsKLX0KLQotI2lmIENP
TVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQotYXNtICgKLSIuZ2xvYmwgIiBT
WU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGVhIC04KCVyc3ApLCAlcmRpXG4iCi0gICAgImptcCAi
IExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxu
IgotKTsKLQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShYODYpCi1hc20g
KAotIi50ZXh0IiAiXG4iIFwKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIK
LVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAicHVz
aCAlZWJwXG4iCi0gICAgIm1vdiAlZXNwLCAlZWF4XG4iCi0gICAgImxlYWwgLTQoJWVzcCksICVl
c3BcbiIKLSAgICAicHVzaCAlZWF4XG4iCi0gICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSAgICAibGVhbCA4KCVlc3Ap
LCAlZXNwXG4iCi0gICAgInBvcCAlZWJwXG4iCi0gICAgInJldFxuIgotKTsKLQotI2VsaWYgQ09N
UElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShBUk1fVEhVTUIyKQotYXNtICgKLSIudGV4dCIg
IlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAi
XG4iCi0iLnRodW1iIiAiXG4iCi0iLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5W
YWx1ZSkgIjoiICJcbiIKLSAgICAic3ViIHIwLCBzcCwgIzgiICJcbiIKLSAgICAiYiAiIExPQ0FM
X1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgotKTsK
LQotI2VsaWYgQ1BVKEFSTTY0KQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4i
Ci0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1I
SURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1TWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgICJzdWIgeDAsIHNwLCAjMTYiICJc
biIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBD
UFUoTUlQUykKLQotI2lmIFdURl9NSVBTX1BJQwotI2RlZmluZSBMT0FEX0ZVTkNUSU9OX1RPX1Q5
KGZ1bmN0aW9uKSBcCi0gICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBcCi0gICAgICAgICIu
Y3Bsb2FkICQyNSIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJcbiIgXAotICAgICAg
ICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgotI2Vsc2UKLSNkZWZp
bmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgotI2VuZGlmCi0KLWFzbSAo
Ci0iLnRleHQiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKQotICAgICJh
ZGRpICRhMCwgJHNwLCAtOCIgIlxuIgotICAgICJiICIgTE9DQUxfUkVGRVJFTkNFKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCi0pOwotCi0jZWxpZiBDT01QSUxFUihN
U1ZDKSAmJiBDUFUoWDg2KQotZXh0ZXJuICJDIiB7Ci0gICAgX19kZWNsc3BlYyhuYWtlZCkgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSgpCi0gICAgewotICAgICAgICBfX2FzbSBsZWEgZWF4LCBbZXNwIC0gNF0KLSAgICAg
ICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWF4OwotICAgICAgICBfX2FzbSBqbXAgZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICB9Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUxYmNkMjk5MDliYjBlOWI0Nzg5MjVkZmZiZGI5Zjk0MDhlYmRlNjIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotCi0jaWYgIUVOQUJMRShDX0xP
T1ApCi0KLSNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAotI2RlZmluZSBIT1NUX0NB
TExfUkVUVVJOX1ZBTFVFX09QVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUgSE9TVF9DQUxMX1JF
VFVSTl9WQUxVRV9PUFRJT04KLSNlbmRpZgotCi1uYW1lc3BhY2UgSlNDIHsKLQotZXh0ZXJuICJD
IiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7Ci0KLSNpZiBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotLy8gVGhpcyBpcyBhIHB1YmxpYyBkZWNsYXJhdGlv
biBvbmx5IHRvIGNvbnZpbmNlIENMQU5HIG5vdCB0byBlbGlkZSBpdC4KLWV4dGVybiAiQyIgRW5j
b2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUoQ2FsbEZyYW1lKikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZf
SU5URVJOQUw7Ci0KLWlubGluZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkK
LXsKLSAgICBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShudWxscHRyKTsKLX0K
LQotI2Vsc2UgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0KLWlubGluZSB2b2lkIGluaXRp
YWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkgeyB9Ci0KLSNlbmRpZiAvLyBDT01QSUxFUihHQ0Nf
Q09NUEFUSUJMRSkKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENf
TE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDU3MDhjYjI0MGY5ZmRmYTMzNTFmMDVlN2E1MGNiZDAxNTZmZGYxZDIuLjMzYWNmODM2OWE2Y2E0
MmNkM2Q4ODZhY2UwYzM5OTczMTY2NWNmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkZ1enouaCIKICNpbmNsdWRlICJGcmFtZVRyYWNlcnMuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSUNTdGF0
cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklULmgiCkBAIC01Nyw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKICNpbmNsdWRlICJKU0xl
eGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCisjaW5jbHVkZSAi
TExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3QuaCIKQEAgLTEyMjQs
NyArMTIyNCw4IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lCiAgICAgICAgIGlmIChjYWxsRGF0
YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAgICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAgICAgICAgIGNhbGxl
ZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVlKSk7Ci0gICAgICAgICAgICB2bS5ob3N0
Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
bihhc09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSkpOworICAg
ICAgICAgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUp
OworICAgICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOwogICAgICAgICAgICAgaWYgKFVO
TElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIodGhyb3dFeGNlcHRp
b25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8SlNFbnRyeVB0clRhZz4o
KS5leGVjdXRhYmxlQWRkcmVzcygpLApAQCAtMTIzMiw3ICsxMjMzLDcgQEAgc3RhdGljIFNsb3dQ
YXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgKLSAgICAgICAgICAgICAgICB0YWdDRnVuY3Rpb248dm9pZCosIEpTRW50cnlQdHJUYWc+
KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLAorICAgICAgICAgICAgICAgIExMSW50OjpnZXRIb3N0
Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAog
ICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxMaW5rSW5mby0+Y2Fs
bE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBLZWVwVGhlRnJhbWUp
KTsKICAgICAgICAgfQogICAgIApAQCAtMTI1MSwxNCArMTI1MiwxNSBAQCBzdGF0aWMgU2xvd1Bh
dGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZQogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6
Ok5hdGl2ZSkgewogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
ZWVGcmFtZSk7CiAgICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVl
KSk7Ci0gICAgICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0
KHZtKSwgY2FsbGVlRnJhbWUpKTsKKyAgICAgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFs
dWUgPSBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbihhc09iamVjdChjYWxsZWUpLT5nbG9i
YWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSk7CisgICAgICAgIERpc2FsbG93R0MgZGlzYWxsb3dH
QzsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAg
ICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKICAgICAgICAgICAgICAgICB2bS5nZXRDVElTdHViKHRo
cm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikucmV0YWdnZWRDb2RlPEpTRW50
cnlQdHJUYWc+KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogCi0gICAgICAgIHJl
dHVybiBlbmNvZGVSZXN1bHQodGFnQ0Z1bmN0aW9uPHZvaWQqLCBKU0VudHJ5UHRyVGFnPihnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1l
KSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJu
VmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwogICAgIH0KIAogICAgIEFTU0VSVChjb25zdHJ1
Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9uc01TVkM2NC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhNWYzMTM3ZTZhMDNmODc5OGRiOGM3MGI5NGMwM2M0NjExZTgyOGIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi0vLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQgdGhhdCBpcyBvbmx5
IG5lZWRlZCBiZWNhdXNlIEpJVFN0dWJzTVNWQzY0LmFzbQotLy8gaXMgYnVpbHQgdW5jb25kaXRp
b25hbGx5IGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGUsIGFuZCBpdCByZWZlcmVuY2VzIHRo
aXMgZnVuY3Rpb24uCi0vLyBXZSBvbmx5IG5lZWQgdG8gcHJvdmlkZSBhIHN0dWIgdG8gc2F0aXNm
eSB0aGUgbGlua2FnZS4gSXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuCi1leHRlcm4gIkMiIEVuY29k
ZWRKU1ZhbHVlIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEpTR2xvYmFsT2Jq
ZWN0KikKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKENfTE9PUCkgJiYgQ09NUElMRVIo
TVNWQykgJiYgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUU3R1YnNNU1ZDNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c01TVkM2NC5hc20KaW5kZXggZWRmZTVjMzA3ZmYyOGJmN2EzMjIwNDQ5NDI4OTg4Y2MzNWQyNjY4
Yy4uNWVjZDQ0YzBkN2I1NTAwY2YzN2M5YTBjMDhhZjE0ZTE2NDBjZjkzMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KQEAgLTIzLDIzICsyMywxMCBA
QAogOyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogOyovCiAKLUVYVEVSTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0
aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVCTElDIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUKIFBVQkxJ
QyBjdGlNYXNtUHJvYmVUcmFtcG9saW5lCiAKIF9URVhUICAgU0VHTUVOVAogCi1nZXRIb3N0Q2Fs
bFJldHVyblZhbHVlIFBST0MKLSAgICBsZWEgcmN4LCBbcnNwIC0gOF0KLSAgICA7IEFsbG9jYXRl
IHNwYWNlIGZvciBhbGwgNCBwYXJhbWV0ZXIgcmVnaXN0ZXJzLCBhbmQgYWxpZ24gc3RhY2sgcG9p
bnRlciB0byAxNiBieXRlcyBib3VuZGFyeSBieSBhbGxvY2F0aW5nIGFub3RoZXIgOCBieXRlcy4K
LSAgICA7IFRoZSBzdGFjayBhbGlnbm1lbnQgaXMgbmVlZGVkIHRvIGZpeCBhIGNyYXNoIGluIHRo
ZSBDUlQgbGlicmFyeSBvbiBhIGZsb2F0aW5nIHBvaW50IGluc3RydWN0aW9uLgotICAgIHN1YiBy
c3AsIDQwCi0gICAgY2FsbCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZQotICAg
IGFkZCByc3AsIDQwCi0gICAgcmV0Ci1nZXRIb3N0Q2FsbFJldHVyblZhbHVlIEVORFAKLQogOyBU
aGUgZm9sbG93aW5nIGNvbnN0YW50cyBtdXN0IG1hdGNoIHRoZSB4ODZfNjQgdmVyc2lvbiBpbiBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAuCiBQVFJfU0laRSBFUVUgOAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCmluZGV4IDg4NzM3MTg3
YWMwMTE5MjI1MmMxMjg1NDFkMjQwMThkYzQzNDZjMTQuLjVjNjA5MWMyM2I4OGJiNDJlNGJiNmM1
MmM1ZWNjNmExOGY2YjRlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludEVudHJ5cG9pbnQuY3BwCkBAIC0xNTQsNiArMTU0LDE1IEBAIHN0YXRpYyB2b2lkIHNldE1v
ZHVsZVByb2dyYW1FbnRyeXBvaW50KENvZGVCbG9jayogY29kZUJsb2NrKQogICAgIGNvZGVCbG9j
ay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRDb2RlKSk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0VudHJ5UHRyVGFnPiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpCit7
CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoT3B0aW9uczo6dXNlSklUKCkpCisgICAgICAgIHJl
dHVybiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlVGh1bmsoKTsKKyNlbmRpZiAvLyBFTkFCTEUoSklU
KQorICAgIHJldHVybiBnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50X2dldF9ob3N0X2Nh
bGxfcmV0dXJuX3ZhbHVlKTsKK30KKwogdm9pZCBzZXRFbnRyeXBvaW50KENvZGVCbG9jayogY29k
ZUJsb2NrKQogewogICAgIHN3aXRjaCAoY29kZUJsb2NrLT5jb2RlVHlwZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmgKaW5kZXggZTEwMGZiOGZm
MzA2ZTcxNTdkY2JkM2RiMjIxOWFmYzFlODI2OWQwYi4uZTQ3NmFhMmRlYzUzOWNhZGE2OTI4NjFl
ZjhjMzdkOTQxNTQ5NTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50RW50cnlwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTElu
dEVudHJ5cG9pbnQuaApAQCAtMzcsNCArMzcsNiBAQCB2b2lkIHNldEVudHJ5cG9pbnQoQ29kZUJs
b2NrKik7CiAKIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2RlQmxvY2sqKTsKIAor
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50cnlQdHJUYWc+IGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVFbnRyeXBvaW50KCk7CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTEludApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggZjlhOTA3ZWQ0
MWJkZTQ1NmNmMGQ5ZDdlMTliM2Y5MWI0YmQxZGU1MC4uNWUzMzYzMmZmMTZiNTRmMDhlZTM2Mjg4
MzQwODc2YThhNDBlYTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25BbGxv
d2xpc3QuaCIKICNpbmNsdWRlICJGdW5jdGlvbkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkdldHRl
clNldHRlci5oIgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJK
SVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiSklUV29ya2xpc3QuaCIKICNpbmNsdWRlICJKU0Fz
eW5jRnVuY3Rpb24uaCIKQEAgLTE2NzEsOCArMTY3MCw5IEBAIHN0YXRpYyBTbG93UGF0aFJldHVy
blR5cGUgaGFuZGxlSG9zdENhbGwoQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSwgSlNWYWx1ZSBjYWxs
ZWUsCiAgICAgICAgIGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUp
IHsKICAgICAgICAgICAgIFNsb3dQYXRoRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsZWVGcmFt
ZSk7CiAgICAgICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2JqZWN0KGNhbGxlZSkp
OwotICAgICAgICAgICAgdm0uaG9zdENhbGxSZXR1cm5WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShj
YWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZt
KSwgY2FsbGVlRnJhbWUpKTsKLSAgICAgICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9i
amVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgICAgICAgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0
dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xv
YmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOworICAgICAgICAgICAgRGlzYWxsb3dHQyBkaXNh
bGxvd0dDOworICAgICAgICAgICAgTExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFsT2JqZWN0LCBjYWxs
ZWVGcmFtZSwgTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCkuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogICAgICAgICB9CiAgICAgICAg
IAogICAgICAgICBzbG93UGF0aExvZygiQ2FsbCBjYWxsZWUgaXMgbm90IGEgZnVuY3Rpb246ICIs
IGNhbGxlZSwgIlxuIik7CkBAIC0xNjg5LDggKzE2ODksOSBAQCBzdGF0aWMgU2xvd1BhdGhSZXR1
cm5UeXBlIGhhbmRsZUhvc3RDYWxsKENhbGxGcmFtZSogY2FsbGVlRnJhbWUsIEpTVmFsdWUgY2Fs
bGVlLAogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2
ZSkgewogICAgICAgICBTbG93UGF0aEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbGVlRnJhbWUp
OwogICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2JqZWN0KGNhbGxlZSkpOwotICAg
ICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0cnVjdERh
dGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVjdCh2bSksIGNh
bGxlZUZyYW1lKSk7Ci0gICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2Fs
bGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVu
Y3Rpb25QdHJUYWcpOworICAgICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSA9IGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9iamVj
dCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOworICAg
ICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6
Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSwgSlNFbnRyeVB0clRhZyk7CiAgICAgfQogICAgIAogICAgIHNsb3dQYXRoTG9nKCJDb25z
dHJ1Y3RvciBjYWxsZWUgaXMgbm90IGEgZnVuY3Rpb246ICIsIGNhbGxlZSwgIlxuIik7CkBAIC0x
OTU5LDggKzE5NjAsOSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIGNvbW1vbkNhbGxFdmFs
KENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBJbnN0cnVjdGlvbgogICAgIGlmICghaXNIb3N0
RnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSwgZ2xvYmFsRnVuY0V2YWwpKQogICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgc2V0VXBDYWxsKGNhbGxlZUZyYW1lLCBDb2RlRm9yQ2Fs
bCwgY2FsbGVlQXNWYWx1ZSkpOwogICAgIAotICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBl
dmFsKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIGJ5dGVjb2RlLm1fZWNtYU1vZGUpOwotICAg
IExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRD
b2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgIHZt
LmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKGV2YWwoZ2xvYmFs
T2JqZWN0LCBjYWxsZWVGcmFtZSwgYnl0ZWNvZGUubV9lY21hTW9kZSkpOworICAgIERpc2FsbG93
R0MgZGlzYWxsb3dHQzsKKyAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxl
ZUZyYW1lLCBMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKS5jb2RlKCku
ZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiB9CiAgICAgCiBMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFRodW5rcy5jcHAKaW5kZXggOGFmODZmMzE2N2RlM2Y4ZjZjMWEzNDI2ODg3ODE1
ZWM5MjM0M2Q4OC4uZjQ5OWI1N2E3MThhOTNiMmExZThiZGIzMDdkNTFjM2ZhODZjY2RhYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCkBAIC0xNTIsNiAr
MTUyLDM5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gd2FzbUZ1bmN0
aW9uRW50cnlUaHVuaygpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQogCitNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVRo
dW5rKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0VudHJ5UHRyVGFnPj4gY29kZVJlZjsKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZUtleTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0geworICAgICAgICBDQ2Fs
bEhlbHBlcnMgaml0OworCisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworICAg
ICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlLCBHUFJJbmZvOjpyZWdUMCk7CisKKyAgICAgICAgYXV0byBwcmVjaXNlQWxsb2NhdGlvbkNh
c2UgPSBqaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86OnJl
Z1QwLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihQcmVjaXNlQWxsb2NhdGlvbjo6aGFsZkFs
aWdubWVudCkpOworICAgICAgICBqaXQuYW5kUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0
cihNYXJrZWRCbG9jazo6YmxvY2tNYXNrKSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIE1hcmtlZEJsb2Nr
OjpvZmZzZXRPZkZvb3RlciArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om9mZnNldE9mVk0oKSksIEdQ
UkluZm86OnJlZ1QwKTsKKyAgICAgICAgYXV0byBsb2FkZWRDYXNlID0gaml0Lmp1bXAoKTsKKwor
ICAgICAgICBwcmVjaXNlQWxsb2NhdGlvbkNhc2UubGluaygmaml0KTsKKyAgICAgICAgaml0Lmxv
YWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBQcmVjaXNlQWxsb2Nh
dGlvbjo6b2Zmc2V0T2ZXZWFrU2V0KCkgKyBXZWFrU2V0OjpvZmZzZXRPZlZNKCkgLSBQcmVjaXNl
QWxsb2NhdGlvbjo6aGVhZGVyU2l6ZSgpKSwgR1BSSW5mbzo6cmVnVDApOworCisgICAgICAgIGxv
YWRlZENhc2UubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBqaXQubG9h
ZFZhbHVlKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgVk06Om9mZnNldE9m
RW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUoKSksIEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVy
blZhbHVlR1BSKSk7CisjZWxzZQorICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgVk06Om9mZnNldE9mRW5jb2RlZEhvc3RDYWxsUmV0dXJu
VmFsdWUoKSksIEpTVmFsdWVSZWdzKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6
cmV0dXJuVmFsZXVHUFIpKTsKKyNlbmRpZgorICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKKyAgICAgICAgaml0LnJldCgpOworCisgICAgICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZm
ZXIoaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgICAgICBjb2RlUmVmLmNvbnN0cnVjdChGSU5B
TElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKU0VudHJ5UHRyVGFnLCAiTExJbnQ6OmdldEhvc3RDYWxs
UmV0dXJuVmFsdWUgdGh1bmsiKSk7CisgICAgfSk7CisgICAgcmV0dXJuIGNvZGVSZWY7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIExMSW50CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRUaHVua3MuaAppbmRleCA3ODFlMzJkN2ZlZWZjODU1ODc4YWFkODMyOGI0OTFiOTU2
M2ZmZGFlLi4zZTdiY2U1YWMwM2M1N2VhOWZmODUyN2M4YTI3NTIxNGE5ODQ1YjZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaApAQCAtNTcsNiArNTcsNyBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGZ1bmN0aW9uRm9yQ29uc3RydWN0
QXJpdHlDaGVja1RodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+
IGV2YWxFbnRyeVRodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+
IHByb2dyYW1FbnRyeVRodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJU
YWc+IG1vZHVsZVByb2dyYW1FbnRyeVRodW5rKCk7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNF
bnRyeVB0clRhZz4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVRodW5rKCk7CiAKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IHdhc21G
dW5jdGlvbkVudHJ5VGh1bmsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAppbmRleCA4ZTU4ODcyYThjNTMyOWE3MjRlNGM4M2Uy
ODA0ZGU4YmNiYmU3OTg3Li5kNDk0NDBiNWFkMzMyOTAyMjU3NmE1YmFhNzA4NDlkYWZiM2U4ODQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkxMSW50Owog
Ly8gaW5jbHVkZXMuCiAvLwogLy8gSW4gYWRkaXRpb24sIHNvbWUgSklUIHRyYW1wb2xpbmUgZnVu
Y3Rpb25zIHdoaWNoIGFyZSBuZWVkZWQgYnkgTExJbnQKLS8vIChlLmcuIGdldEhvc3RDYWxsUmV0
dXJuVmFsdWUsIGN0aU9wVGhyb3dOb3RDYXVnaHQpIGFyZSBhbHNvIGFkZGVkIGFzCisvLyAoZS5n
LiBjdGlPcFRocm93Tm90Q2F1Z2h0KSBhcmUgYWxzbyBhZGRlZCBhcwogLy8gYnl0ZWNvZGVzLCBh
bmQgdGhlIENMb29wIHdpbGwgcHJvdmlkZSBieXRlY29kZSBoYW5kbGVycyBmb3IgdGhlbS4KIC8v
CiAvLyBJbiB0aGUgQ0xvb3AsIHdlIGNhbiBvbmx5IGRpc3BhdGNoIGluZGlyZWN0bHkgdG8gdGhl
c2UgYnl0ZWNvZGVzCkBAIC00MzgsMjMgKzQzOCw2IEBAIEpTVmFsdWUgQ0xvb3A6OmV4ZWN1dGUo
T3Bjb2RlSUQgZW50cnlPcGNvZGVJRCwgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFZNKiB2bSwK
ICNlbmRpZgogICAgICAgICB9CiAKLSAgICAgICAgLy8gSW4gdGhlIEFTTSBsbGludCwgZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSgpIGlzIGEgcGllY2Ugb2YgZ2x1ZQotICAgICAgICAvLyBmdW5jdGlv
biBwcm92aWRlZCBieSB0aGUgSklUIChzZWUgaml0L0pJVE9wZXJhdGlvbnMuY3BwKS4KLSAgICAg
ICAgLy8gV2Ugc2ltdWxhdGUgaXQgaGVyZSB3aXRoIGEgcHNlZHVvLW9wY29kZSBoYW5kbGVyLgot
ICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRoZSBwYXJ0IGluIGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKCk6Ci0gICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IHZtLT5ob3N0
Q2FsbFJldHVyblZhbHVlOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICB0MSA9
IHJlc3VsdC50YWcoKTsKLSAgICAgICAgICAgIHQwID0gcmVzdWx0LnBheWxvYWQoKTsKLSNlbHNl
Ci0gICAgICAgICAgICB0MCA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotI2VuZGlmCi0gICAg
ICAgICAgICBvcGNvZGUgPSBsci5vcGNvZGUoKTsKLSAgICAgICAgICAgIERJU1BBVENIX09QQ09E
RSgpOwotICAgICAgICB9Ci0KICNpZiAhRU5BQkxFKENPTVBVVEVEX0dPVE9fT1BDT0RFUykKICAg
ICBkZWZhdWx0OgogICAgICAgICBBU1NFUlQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBh
NjAyYWJmMDMyODJiMTIwZDNjNjFjZWY3OTk2MWEyYTA5MDAxZjdlLi4wMWExYTlhOTE0MWM4OWYw
MjZhMDE5MmZjYjk2NTliZmI0NjY0MTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNDIyLDYgKzQy
MiwxOCBAQCBvcChoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbiwgbWFjcm8oKQogICAgIHJldAogZW5k
KQogCitvcChsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92YWx1ZSwgbWFjcm8gKCkKKyAgICBm
dW5jdGlvblByb2xvZ3VlKCkKKyAgICBwdXNoQ2FsbGVlU2F2ZXMoKQorICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0MAorICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQwKQorICAgIGxvYWRpIFZNOjplbmNv
ZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSArIFRhZ09mZnNldFt0MF0sIHQxCisgICAgbG9hZGkgVk06
OmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlICsgUGF5bG9hZE9mZnNldFt0MF0sIHQwCisgICAg
cG9wQ2FsbGVlU2F2ZXMoKQorICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHJldAorZW5kKQor
CiBtYWNybyBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24oZXh0cmFTdGFja1NwYWNlKQogICAgIGZ1
bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQogICAgIHJldApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA4
YjVmNDJkMDBjN2IxMWJiZWQ0MTZlODZkMGUyZDYwMmNhMjViYzkzLi5hYTIzZWM2M2EzMDkzOTAz
MDM1MGY2MDhiMGI2ZmE0Mjk4NzNkNTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMzUzLDYgKzM1MywxNiBA
QCBvcChoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbiwgbWFjcm8gKCkKICAgICByZXQKIGVuZCkKIAor
b3AobGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUsIG1hY3JvICgpCisgICAgZnVuY3Rp
b25Qcm9sb2d1ZSgpCisgICAgcHVzaENhbGxlZVNhdmVzKCkKKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdDAKKyAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MCkKKyAgICBsb2FkcSBWTTo6ZW5jb2RlZEhv
c3RDYWxsUmV0dXJuVmFsdWVbdDBdLCB0MAorICAgIHBvcENhbGxlZVNhdmVzKCkKKyAgICBmdW5j
dGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKK2VuZCkKIAogbWFjcm8gcHJlcGFyZVN0YXRlRm9yQ0Nh
bGwoKQogICAgIGFkZHAgUEIsIFBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAppbmRleCA4ZTliMTY2OTlmNWZmMzJkODI5OWFiNzkwNTEyYjFlNjc2
YTY3ODNiLi5hNzFkNTljYTI5NGZhZTMxMDg0ODlkYzA3NjQwZjBmOGQwMTgyNjU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTgzMSw2
ICs4MzEsOCBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdCA6IHB1YmxpYyBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0IHsKICAgICBSZWdFeHBHbG9iYWxEYXRhJiByZWdFeHBHbG9iYWxEYXRhKCkgeyBy
ZXR1cm4gbV9yZWdFeHBHbG9iYWxEYXRhOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCByZWdFeHBH
bG9iYWxEYXRhT2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2JqZWN0
LCBtX3JlZ0V4cEdsb2JhbERhdGEpOyB9CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
Vk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3QsIG1fdm0pOyB9CisK
ICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICBJbnNwZWN0b3I6OkpTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlciYgaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0
dXJuICptX2luc3BlY3RvckNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBKU0dsb2JhbE9iamVjdERl
YnVnZ2FibGUmIGluc3BlY3RvckRlYnVnZ2FibGUoKSB7IHJldHVybiAqbV9pbnNwZWN0b3JEZWJ1
Z2dhYmxlLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKaW5kZXggOTg3
NzZmYzhjZTVkZWQ2ZmM4YWRmMTBjMzRhNWQ5MmU1OGQxYjdlZC4uY2JjNzA2ZmY0ODYwMDBhZDY4
ZjBlNmQzNDg1NzQ5ZmM2OWJlZDc4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIkhhc093blByb3BlcnR5Q2FjaGUuaCIKICNp
bmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSGVhcFByb2ZpbGVyLmgiCi0jaW5jbHVkZSAiSG9z
dENhbGxSZXR1cm5WYWx1ZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SW50bENhY2hlLmgiCiAjaW5jbHVkZSAiSW50bENvbGxhdG9yLmgiCkBAIC00OTAsMTAgKzQ4OSw2
IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSwgV1RGOjpSdW5Mb29w
KiBydW5Mb29wLCBib29sKiBzdWNjZXNzKQogCiAgICAgVGhyZWFkOjpjdXJyZW50KCkuc2V0Q3Vy
cmVudEF0b21TdHJpbmdUYWJsZShleGlzdGluZ0VudHJ5QXRvbVN0cmluZ1RhYmxlKTsKICAgICAK
LSNpZiAhRU5BQkxFKENfTE9PUCkKLSAgICBpbml0aWFsaXplSG9zdENhbGxSZXR1cm5WYWx1ZSgp
OyAvLyBUaGlzIGlzIG5lZWRlZCB0byBjb252aW5jZSB0aGUgbGlua2VyIG5vdCB0byBkcm9wIGhv
c3QgY2FsbCByZXR1cm4gc3VwcG9ydC4KLSNlbmRpZgotICAgIAogICAgIEdpZ2FjYWdlOjphZGRQ
cmltaXRpdmVEaXNhYmxlQ2FsbGJhY2socHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZENhbGxiYWNr
LCB0aGlzKTsKIAogICAgIGhlYXAubm90aWZ5SXNTYWZlVG9Db2xsZWN0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uaAppbmRleCA1Mjg0OTg0NmI1YTQ4YWJhYmFmMTkxMGQ1MDdmNDM4ZjYy
ZGU0NjViLi40MTI5MjQ3Y2QyNDU2ZDY3NTY5NzA3YzkyYjZjN2ZjMjM5YzJmYTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTg1Myw2ICs4NTMsMTEgQEAgY2xhc3MgVk0gOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5v
ZGU8Vk0+IHsKICAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihWTSwgdG9wRW50cnlGcmFt
ZSk7CiAgICAgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkVuY29kZWRIb3N0Q2Fs
bFJldHVyblZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoVk0s
IGVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlKTsKKyAgICB9CisKICAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mSGVhcEJhcnJpZXJUaHJlc2hvbGQoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihWTSwgaGVhcCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSGVhcCwgbV9iYXJy
aWVyVGhyZXNob2xkKTsKQEAgLTkzMyw3ICs5MzgsNyBAQCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxWTT4gewog
ICAgICAgICB9CiAgICAgfQogCi0gICAgSlNWYWx1ZSBob3N0Q2FsbFJldHVyblZhbHVlOworICAg
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlIHsgfTsKICAgICB1bnNp
Z25lZCB2YXJhcmdzTGVuZ3RoOwogICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lUmV0dXJuVmFs
dWU7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWVGb3JDYXRjaDsK
</data>
<flag name="commit-queue"
          id="426047"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410180</attachid>
            <date>2020-09-30 17:26:23 -0700</date>
            <delta_ts>2020-09-30 23:02:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217150-20200930172622.patch</filename>
            <type>text/plain</type>
            <size>38587</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NDAxYmRhNjgwZTNjZjlmZGFhMTM2ZTBkNjYxY2VlNmQxMjFhMDJmLi5iMTk5MjliNjBjMjMyOTg5
YmJlMThjYWEyYjJiNGNhNzI3YmFlMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMC0wOS0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFdlIHNob3VsZCBub3QgdGFnIEMgZnVuY3Rpb24gd2l0aCBKSVQg
Y29kZSByZWxhdGVkIHB0ciB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisg
ICAgICAgIFdlIGFyZSB0YWdnaW5nIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUgZnVuY3Rpb24gd2l0
aCBKSVQgcmVsYXRlZCBQdHJUYWcuIEFzIGEgcGFydCBvZiBKSVQtY2FnaW5nIGVmZm9ydCwgd2Ug
YXJlIHJlc3RyaWN0aW5nIG91cgorICAgICAgICBQdHJUYWcgdXNhZ2UgbW9yZSBmb3IgY29kZSB0
eXBlcyAoZS5nLiBKSVQgY29kZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSklUIHJlbGF0ZWQgUHRy
VGFnKS4gU28sIHdlIHNob3VsZCBub3QgdGFnIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUKKyAgICAg
ICAgd2l0aCB0aGF0LiBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZSBpbiBKSVQgY29kZSBpZiBKSVQgaXMgZW5hYmxlZC4gSWYgbm90LCBpdCBpcyBpbXBsZW1lbnRl
ZCBieSBMTEludC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9j
ay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZNKToKKyAg
ICAgICAgKiBoZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OlByZWNpc2VB
bGxvY2F0aW9uOjpvZmZzZXRPZldlYWtTZXQpOgorICAgICAgICAqIGhlYXAvV2Vha1NldC5oOgor
ICAgICAgICAoSlNDOjpXZWFrU2V0OjpvZmZzZXRPZlZNKToKKyAgICAgICAgKiBqaXQvSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaml0L0hvc3RDYWxsUmV0dXJu
VmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnNNU1ZDNjQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGpp
dC9KSVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNw
cDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50
KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuaDoKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpoYW5kbGVIb3N0Q2FsbCk6
CisgICAgICAgIChKU0M6OkxMSW50Ojpjb21tb25DYWxsRXZhbCk6CisgICAgICAgICogbGxpbnQv
TExJbnRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5W
YWx1ZVRodW5rKToKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAgICAqIGxs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpDTG9vcDo6ZXhlY3V0
ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAg
ICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1bnRpbWUv
SlNDZWxsSW5saW5lcy5oOgorICAgICAgICAoSlNDOjp0cnlBbGxvY2F0ZUNlbGxIZWxwZXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9i
YWxPYmplY3Q6Om9mZnNldE9mVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAg
ICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6
Vk06Om9mZnNldE9mRW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOgorCiAyMDIwLTA5LTMwICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI2Nzc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZjNiZmFlMTliMTgyY2I1Mjc0YmU2MTIxOTJkODUzNjA2YjNjMGU0My4uMzdmZWJmZjY1YWIzNmIx
ZTA1ZjM3OGE5ZjQ0NTg0MTllOGUwNDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTM0Myw3ICszNDMsNiBAQAogCQkwRjQ2ODBDQjE0QkJCMTcyMDBCRkUyNzIgLyogTExJbnRP
ZmZsaW5lQXNtQ29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ2ODBDNjE0QkJCMTY5MDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29uZmln
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0
NjgwQ0QxNEJCQjE3RDAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEM4MTRCQkIxNjkwMEJG
RTI3MiAvKiBMb3dMZXZlbEludGVycHJldGVyLmggKi87IH07CiAJCTBGNDY4MEQzMTRCQkQxNjcw
MEJGRTI3MiAvKiBMTEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsg
fTsKLQkJMEY0NjgwRDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRC
QkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAwODNCNjg3
IC8qIERGR0FyaXRoTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovOyB9
OwogCQkwRjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3
REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4
NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bj
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTI2MDEsOCArMjYwMCw2IEBACiAJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZl
bEludGVycHJldGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvd0xldmVs
SW50ZXJwcmV0ZXIuaDsgcGF0aCA9IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NjgwQ0UxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50
RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludERhdGEu
Y3BwOyBwYXRoID0gbGxpbnQvTExJbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY0NjgwQ0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0aCA9IGxsaW50L0xMSW50RGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUy
NzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcg
LyogREZHQXJpdGhNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0FyaXRoTW9kZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsg
cGF0aCA9IGRmZy9ERkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cDsgcGF0aCA9IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MTMxLDggKzYxMjgsNiBAQAogCQkJCTBGNzY2RDJFMTVBOERDREQwMDhG
MzYzRSAvKiBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCAqLywKIAkJCQkwRjkzMjc0QzFDMUY2NkFB
MDBDRjY1NjQgLyogR1BSSW5mby5jcHAgKi8sCiAJCQkJMEYyNEU1M0YxN0VBOUY1OTAwQUJCMjE3
IC8qIEdQUkluZm8uaCAqLywKLQkJCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHAgKi8sCi0JCQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhv
c3RDYWxsUmV0dXJuVmFsdWUuaCAqLywKIAkJCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyog
SUNTdGF0cy5jcHAgKi8sCiAJCQkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMu
aCAqLywKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5j
cHAgKi8sCkBAIC05NzY3LDcgKzk3NjIsNiBAQAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFC
NiAvKiBIZWFwU25hcHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFE
NEQyM0JFMDA3Njg0NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1
MUU3MjA1MzgwMDEzNEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEQzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0NEE3QjIyMEJGNjhDRTAwMjJCMTcxIC8qIElDU3RhdHVzTWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkIzOTlCRTIwQUY2QjNEMDAxN0UyMTMgLyogSUNTdGF0dXNVdGls
cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggYzVlMmE2
NmJjNzIxZTEwNTAzZjE1NWVmNjYxNTZkMGE5MGRkM2EwZS4uY2ZlNGVlZjc1ZGU2NTc0MTAzZGU1
MTMxMDMyMmI3ODcwYzE2N2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjI5
LDcgKzYyOSw2IEBAIGppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCiBqaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5jcHAKIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCiBqaXQvR1BS
SW5mby5jcHAKLWppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAogaml0L0lDU3RhdHMuY3BwCiBq
aXQvSW50cmluc2ljRW1pdHRlci5jcHAKIGppdC9KSVQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCA0MWFkN2Y0Yjc0YWQ3MjU1ZGQ1
MTYwYWM3N2JiNmM4MDNhM2U5YzJlLi5iZDgyZjcxMDZlOWMwOGRiNDViMTNhZTM0NDVjNmIyOWI3
NGU1Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVMaXN0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QucmIKQEAgLTEzMzAsNyArMTMzMCw2IEBACiAgICAgbWFjcm9fbmFtZV9jb21wb25lbnQ6IDpD
TE9PUF9CWVRFQ09ERV9IRUxQRVIKIAogb3AgOmxsaW50X2VudHJ5Ci1vcCA6Z2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZQogb3AgOmxsaW50X3JldHVybl90b19ob3N0CiBvcCA6bGxpbnRfdm1fZW50cnlf
dG9famF2YXNjcmlwdAogb3AgOmxsaW50X3ZtX2VudHJ5X3RvX25hdGl2ZQpAQCAtMTQwNSw2ICsx
NDA0LDcgQEAKIG9wIDpjaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5saW5lZF9jYWxsX3RyYW1w
b2xpbmUKIG9wIDpjaGVja3BvaW50X29zcl9leGl0X3RyYW1wb2xpbmUKIG9wIDpmdXp6ZXJfcmV0
dXJuX2Vhcmx5X2Zyb21fbG9vcF9oaW50CitvcCA6bGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5f
dmFsdWUKIG9wIDpoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbgogb3AgOm9wX2NhbGxfcmV0dXJuX2xv
Y2F0aW9uCiBvcCA6b3BfY29uc3RydWN0X3JldHVybl9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDE2ZWEyNWQzZDdkYmMxYTEy
ZjI5Y2M2N2UzM2IyNjZkZjQ5NDdlNDUuLmVhN2IyZjJmOGYxN2ExZjQ5NGNlM2FjY2ZjYTM1NTM1
Y2QyY2ZmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAKQEAgLTMxNiw2ICszMTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVs
KE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNh
c2UgbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50
ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxf
ZnVuY3Rpb25fY29uc3RydWN0X3RyYW1wb2xpbmU6CisgICAgY2FzZSBsbGludF9nZXRfaG9zdF9j
YWxsX3JldHVybl92YWx1ZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxp
bmVkX2NhbGxfdHJhbXBvbGluZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfdHJhbXBv
bGluZToKICAgICBjYXNlIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKaW5kZXggYzlkOTFhYmQxYTNlMzkyZDY1ZjU0MTYyMGY1
MTU4NjkyZTc0N2U4MC4uYjU5ZjFmMzM1YjRjYzZiNDg1ZDhiYjkzYTUwNDE5OWVlMjA2ZmQwYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0yNTEsNiArMjUx
LDggQEAgY2xhc3MgTWFya2VkQmxvY2sgewogICAgIHB1YmxpYzoKICAgICAgICAgRm9vdGVyKFZN
JiwgSGFuZGxlJik7CiAgICAgICAgIH5Gb290ZXIoKTsKKworICAgICAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mVk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRm9vdGVyLCBtX3ZtKTsg
fQogICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJl
Y2lzZUFsbG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxv
Y2F0aW9uLmgKaW5kZXggMTBlYjY3ZGQwNDJlOTQzODlhNjcyZWEwMGNmMDlhYWRhZGNkZDMyOS4u
YmM4NmZlNmM1NThjNmI5YzMxNDlhNDI0MWIzNDUzMjZhZGQ5OWE0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9QcmVjaXNlQWxsb2NhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBA
IGNsYXNzIFByZWNpc2VBbGxvY2F0aW9uIDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQ
cmVjaXNlQWxsb2NhdGlvbj4gewogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1Nl
dC52bSgpOyB9CiAgICAgV2Vha1NldCYgd2Vha1NldCgpIHsgcmV0dXJuIG1fd2Vha1NldDsgfQog
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldlYWtTZXQoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoUHJlY2lzZUFsbG9jYXRpb24sIG1fd2Vha1NldCk7IH0KKwogICAgIHVuc2lnbmVk
IGluZGV4SW5TcGFjZSgpIHsgcmV0dXJuIG1faW5kZXhJblNwYWNlOyB9CiAgICAgdm9pZCBzZXRJ
bmRleEluU3BhY2UodW5zaWduZWQgaW5kZXhJblNwYWNlKSB7IG1faW5kZXhJblNwYWNlID0gaW5k
ZXhJblNwYWNlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9XZWFrU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKaW5kZXgg
NGIzYTE0Yjk5NWE5NGZhZmFlZTg5MmJjMGZkYmQ0ZDE1MmJlMjNhZS4uZGRhYzAzZTQ2YWZkNWEz
ODJmMDU2MjZjMjdlMTgxNzFkMWQ4NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtT
ZXQuaApAQCAtNTgsNiArNTgsOCBAQCBjbGFzcyBXZWFrU2V0IDogcHVibGljIEJhc2ljUmF3U2Vu
dGluZWxOb2RlPFdlYWtTZXQ+IHsKICAgICB2b2lkIHNocmluaygpOwogICAgIHZvaWQgcmVzZXRB
bGxvY2F0b3IoKTsKIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihXZWFrU2V0LCBtX3ZtKTsgfQorCiBwcml2YXRlOgogICAgIEpTX0VY
UE9SVF9QUklWQVRFIFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoQ2VsbENvbnRh
aW5lcik7CiAgICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogdHJ5RmluZEFsbG9jYXRvcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MjEwZjMwMGUxOWY2Mzc5ODJlMDgxNjVlMjYx
MTA4MDZiMjg5NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIb3N0Q2Fs
bFJldHVyblZhbHVlLmgiCi0KLSNpZiAhRU5BQkxFKENfTE9PUCkKLQotI2luY2x1ZGUgIkNhbGxG
cmFtZS5oIgotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNN
Lmg+Ci0KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIE5vdGU6IGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKCkgbmVlZHMgdG8gYmUgcGxhY2VkIGJlZm9yZSB0aGUKLS8vIGRlZmlu
aXRpb24gb2YgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGJlbG93IGJlY2F1c2UgdGhlIFdpbmRv
d3MgYnVpbGQKLS8vIHJlcXVpcmVzIGl0LgotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NU
X0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsK
LX0KLQotI2lmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQotYXNtICgK
LSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJ
REVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGVhIC04KCVyc3ApLCAlcmRpXG4i
Ci0gICAgImptcCAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZSkgIlxuIgotKTsKLQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQ
VShYODYpCi1hc20gKAotIi50ZXh0IiAiXG4iIFwKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJc
biIKLSAgICAicHVzaCAlZWJwXG4iCi0gICAgIm1vdiAlZXNwLCAlZWF4XG4iCi0gICAgImxlYWwg
LTQoJWVzcCksICVlc3BcbiIKLSAgICAicHVzaCAlZWF4XG4iCi0gICAgImNhbGwgIiBMT0NBTF9S
RUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSAgICAi
bGVhbCA4KCVlc3ApLCAlZXNwXG4iCi0gICAgInBvcCAlZWJwXG4iCi0gICAgInJldFxuIgotKTsK
LQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShBUk1fVEhVTUIyKQotYXNt
ICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiXG4iCi0iLnRodW1iIiAiXG4iCi0iLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5D
X1BBUkFNKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAic3ViIHIwLCBzcCwgIzgiICJcbiIKLSAg
ICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0
ZSkgIlxuIgotKTsKLQotI2VsaWYgQ1BVKEFSTTY0KQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5h
bGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1TWU1C
T0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgICJzdWIgeDAs
IHNwLCAjMTYiICJcbiIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQ19DT01Q
QVRJQkxFKSAmJiBDUFUoTUlQUykKLQotI2lmIFdURl9NSVBTX1BJQwotI2RlZmluZSBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSBcCi0gICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBc
Ci0gICAgICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJc
biIgXAotICAgICAgICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgot
I2Vsc2UKLSNkZWZpbmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgotI2Vu
ZGlmCi0KLWFzbSAoCi0iLnRleHQiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIK
LSAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKQotICAgICJhZGRpICRhMCwgJHNwLCAtOCIgIlxuIgotICAgICJiICIgTE9DQUxfUkVGRVJF
TkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCi0pOwotCi0jZWxp
ZiBDT01QSUxFUihNU1ZDKSAmJiBDUFUoWDg2KQotZXh0ZXJuICJDIiB7Ci0gICAgX19kZWNsc3Bl
YyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSgpCi0gICAgewotICAgICAgICBfX2FzbSBsZWEgZWF4LCBbZXNw
IC0gNF0KLSAgICAgICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWF4OwotICAgICAgICBfX2FzbSBq
bXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICB9Ci19Ci0jZW5kaWYK
LQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENfTE9PUCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxYmNkMjk5MDliYjBlOWI0Nzg5MjVkZmZiZGI5Zjk0MDhl
YmRlNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotCi0jaWYg
IUVOQUJMRShDX0xPT1ApCi0KLSNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAotI2Rl
ZmluZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUg
SE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04KLSNlbmRpZgotCi1uYW1lc3BhY2UgSlNDIHsK
LQotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElP
TiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJO
QUw7Ci0KLSNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotLy8gVGhpcyBpcyBhIHB1Ymxp
YyBkZWNsYXJhdGlvbiBvbmx5IHRvIGNvbnZpbmNlIENMQU5HIG5vdCB0byBlbGlkZSBpdC4KLWV4
dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoQ2FsbEZyYW1lKikgUkVGRVJFTkNFRF9G
Uk9NX0FTTSBXVEZfSU5URVJOQUw7Ci0KLWlubGluZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJl
dHVyblZhbHVlKCkKLXsKLSAgICBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShu
dWxscHRyKTsKLX0KLQotI2Vsc2UgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0KLWlubGlu
ZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkgeyB9Ci0KLSNlbmRpZiAvLyBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAv
LyAhRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCmluZGV4IDU3MDhjYjI0MGY5ZmRmYTMzNTFmMDVlN2E1MGNiZDAxNTZmZGYxZDIuLjMz
YWNmODM2OWE2Y2E0MmNkM2Q4ODZhY2UwYzM5OTczMTY2NWNmODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkZ1enouaCIKICNpbmNsdWRlICJGcmFtZVRyYWNlcnMuaCIKICNpbmNsdWRl
ICJHZXR0ZXJTZXR0ZXIuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5j
bHVkZSAiSUNTdGF0cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklU
LmgiCkBAIC01Nyw2ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgi
CisjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3Qu
aCIKQEAgLTEyMjQsNyArMTIyNCw4IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxl
SG9zdENhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lCiAgICAgICAg
IGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAg
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAg
ICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVlKSk7Ci0gICAgICAg
ICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbihhc09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVG
cmFtZSkpOworICAgICAgICAgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwg
Y2FsbGVlRnJhbWUpOworICAgICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOwogICAgICAg
ICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAgICAgICAg
IHJldHVybiBlbmNvZGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIo
dGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8SlNF
bnRyeVB0clRhZz4oKS5leGVjdXRhYmxlQWRkcmVzcygpLApAQCAtMTIzMiw3ICsxMjMzLDcgQEAg
c3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0
dXJuIGVuY29kZVJlc3VsdCgKLSAgICAgICAgICAgICAgICB0YWdDRnVuY3Rpb248dm9pZCosIEpT
RW50cnlQdHJUYWc+KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLAorICAgICAgICAgICAgICAgIExM
SW50OjpnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpLAogICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxM
aW5rSW5mby0+Y2FsbE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBL
ZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogICAgIApAQCAtMTI1MSwxNCArMTI1MiwxNSBAQCBz
dGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZQogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2Fs
bERhdGE6OlR5cGU6Ok5hdGl2ZSkgewogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsZWVGcmFtZSk7CiAgICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNP
YmplY3QoY2FsbGVlKSk7Ci0gICAgICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+
Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpKTsKKyAgICAgICAgdm0uZW5jb2RlZEhvc3RD
YWxsUmV0dXJuVmFsdWUgPSBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbihhc09iamVjdChj
YWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSk7CisgICAgICAgIERpc2FsbG93
R0MgZGlzYWxsb3dHQzsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkg
ewogICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKICAgICAgICAgICAgICAgICB2bS5n
ZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikucmV0YWdn
ZWRDb2RlPEpTRW50cnlQdHJUYWc+KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQog
Ci0gICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQodGFnQ0Z1bmN0aW9uPHZvaWQqLCBKU0VudHJ5
UHRyVGFnPihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
S2VlcFRoZUZyYW1lKSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoTExJbnQ6OmdldEhv
c3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCks
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwogICAgIH0KIAogICAgIEFT
U0VSVChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9uc01TVkM2NC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNWYzMTM3ZTZhMDNmODc5OGRiOGM3MGI5NGMwM2M0
NjExZTgyOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENfTE9PUCkg
JiYgQ09NUElMRVIoTVNWQykgJiYgQ1BVKFg4Nl82NCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5o
IgotI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5h
bWVzcGFjZSBKU0MgewotCi0vLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQg
dGhhdCBpcyBvbmx5IG5lZWRlZCBiZWNhdXNlIEpJVFN0dWJzTVNWQzY0LmFzbQotLy8gaXMgYnVp
bHQgdW5jb25kaXRpb25hbGx5IGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGUsIGFuZCBpdCBy
ZWZlcmVuY2VzIHRoaXMgZnVuY3Rpb24uCi0vLyBXZSBvbmx5IG5lZWQgdG8gcHJvdmlkZSBhIHN0
dWIgdG8gc2F0aXNmeSB0aGUgbGlua2FnZS4gSXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuCi1leHRl
cm4gIkMiIEVuY29kZWRKU1ZhbHVlIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRl
KEpTR2xvYmFsT2JqZWN0KikKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKENfTE9PUCkg
JiYgQ09NUElMRVIoTVNWQykgJiYgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVic01TVkM2NC5hc20KaW5kZXggZWRmZTVjMzA3ZmYyOGJmN2EzMjIwNDQ5NDI4
OTg4Y2MzNWQyNjY4Yy4uNWVjZDQ0YzBkN2I1NTAwY2YzN2M5YTBjMDhhZjE0ZTE2NDBjZjkzMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KQEAgLTIz
LDIzICsyMywxMCBAQAogOyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogOyovCiAKLUVYVEVSTiBnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVCTElDIGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUKIFBVQkxJQyBjdGlNYXNtUHJvYmVUcmFtcG9saW5lCiAKIF9URVhUICAgU0VHTUVOVAog
Ci1nZXRIb3N0Q2FsbFJldHVyblZhbHVlIFBST0MKLSAgICBsZWEgcmN4LCBbcnNwIC0gOF0KLSAg
ICA7IEFsbG9jYXRlIHNwYWNlIGZvciBhbGwgNCBwYXJhbWV0ZXIgcmVnaXN0ZXJzLCBhbmQgYWxp
Z24gc3RhY2sgcG9pbnRlciB0byAxNiBieXRlcyBib3VuZGFyeSBieSBhbGxvY2F0aW5nIGFub3Ro
ZXIgOCBieXRlcy4KLSAgICA7IFRoZSBzdGFjayBhbGlnbm1lbnQgaXMgbmVlZGVkIHRvIGZpeCBh
IGNyYXNoIGluIHRoZSBDUlQgbGlicmFyeSBvbiBhIGZsb2F0aW5nIHBvaW50IGluc3RydWN0aW9u
LgotICAgIHN1YiByc3AsIDQwCi0gICAgY2FsbCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZQotICAgIGFkZCByc3AsIDQwCi0gICAgcmV0Ci1nZXRIb3N0Q2FsbFJldHVyblZhbHVl
IEVORFAKLQogOyBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBtdXN0IG1hdGNoIHRoZSB4ODZfNjQg
dmVyc2lvbiBpbiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAuCiBQVFJfU0laRSBFUVUgOAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCmlu
ZGV4IDg4NzM3MTg3YWMwMTE5MjI1MmMxMjg1NDFkMjQwMThkYzQzNDZjMTQuLjVjNjA5MWMyM2I4
OGJiNDJlNGJiNmM1MmM1ZWNjNmExOGY2YjRlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCkBAIC0xNTQsNiArMTU0LDE1IEBAIHN0YXRp
YyB2b2lkIHNldE1vZHVsZVByb2dyYW1FbnRyeXBvaW50KENvZGVCbG9jayogY29kZUJsb2NrKQog
ICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRDb2RlKSk7CiB9CiAKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50
cnlwb2ludCgpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoT3B0aW9uczo6dXNlSklUKCkp
CisgICAgICAgIHJldHVybiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlVGh1bmsoKTsKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQorICAgIHJldHVybiBnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50
X2dldF9ob3N0X2NhbGxfcmV0dXJuX3ZhbHVlKTsKK30KKwogdm9pZCBzZXRFbnRyeXBvaW50KENv
ZGVCbG9jayogY29kZUJsb2NrKQogewogICAgIHN3aXRjaCAoY29kZUJsb2NrLT5jb2RlVHlwZSgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBv
aW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmgKaW5k
ZXggZTEwMGZiOGZmMzA2ZTcxNTdkY2JkM2RiMjIxOWFmYzFlODI2OWQwYi4uZTQ3NmFhMmRlYzUz
OWNhZGE2OTI4NjFlZjhjMzdkOTQxNTQ5NTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludEVudHJ5cG9pbnQuaApAQCAtMzcsNCArMzcsNiBAQCB2b2lkIHNldEVudHJ5
cG9pbnQoQ29kZUJsb2NrKik7CiAKIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2Rl
QmxvY2sqKTsKIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50cnlQdHJUYWc+IGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCk7CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTElu
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5k
ZXggZjlhOTA3ZWQ0MWJkZTQ1NmNmMGQ5ZDdlMTliM2Y5MWI0YmQxZGU1MC4uNWUzMzYzMmZmMTZi
NTRmMDhlZTM2Mjg4MzQwODc2YThhNDBlYTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
RnVuY3Rpb25BbGxvd2xpc3QuaCIKICNpbmNsdWRlICJGdW5jdGlvbkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkdldHRlclNldHRlci5oIgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIK
ICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiSklUV29ya2xpc3QuaCIKICNp
bmNsdWRlICJKU0FzeW5jRnVuY3Rpb24uaCIKQEAgLTE2NzEsOCArMTY3MCw5IEBAIHN0YXRpYyBT
bG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSwg
SlNWYWx1ZSBjYWxsZWUsCiAgICAgICAgIGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpU
eXBlOjpOYXRpdmUpIHsKICAgICAgICAgICAgIFNsb3dQYXRoRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsZWVGcmFtZSk7CiAgICAgICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2Jq
ZWN0KGNhbGxlZSkpOwotICAgICAgICAgICAgdm0uaG9zdENhbGxSZXR1cm5WYWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xv
YmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpKTsKLSAgICAgICAgICAgIExMSU5UX0NBTExfUkVU
VVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgICAgICAgICAgdm0uZW5jb2Rl
ZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3Qo
Y2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOworICAgICAgICAgICAgRGlz
YWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICAgICAgTExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFs
T2JqZWN0LCBjYWxsZWVGcmFtZSwgTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBv
aW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBzbG93UGF0aExvZygiQ2FsbCBjYWxsZWUgaXMgbm90IGEg
ZnVuY3Rpb246ICIsIGNhbGxlZSwgIlxuIik7CkBAIC0xNjg5LDggKzE2ODksOSBAQCBzdGF0aWMg
U2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKENhbGxGcmFtZSogY2FsbGVlRnJhbWUs
IEpTVmFsdWUgY2FsbGVlLAogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6
OlR5cGU6Ok5hdGl2ZSkgewogICAgICAgICBTbG93UGF0aEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbGVlRnJhbWUpOwogICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2JqZWN0KGNh
bGxlZSkpOwotICAgICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9i
amVjdCh2bSksIGNhbGxlZUZyYW1lKSk7Ci0gICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2Jh
bE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1
cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSkt
Pmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgRGlzYWxsb3dHQyBkaXNh
bGxvd0dDOworICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZy
YW1lLCBMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKS5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiAgICAgfQogICAgIAogICAgIHNsb3dQ
YXRoTG9nKCJDb25zdHJ1Y3RvciBjYWxsZWUgaXMgbm90IGEgZnVuY3Rpb246ICIsIGNhbGxlZSwg
IlxuIik7CkBAIC0xOTU5LDggKzE5NjAsOSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIGNv
bW1vbkNhbGxFdmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBJbnN0cnVjdGlvbgogICAg
IGlmICghaXNIb3N0RnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSwgZ2xvYmFsRnVuY0V2YWwpKQogICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgc2V0VXBDYWxsKGNhbGxlZUZyYW1l
LCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSkpOwogICAgIAotICAgIHZtLmhvc3RDYWxsUmV0
dXJuVmFsdWUgPSBldmFsKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIGJ5dGVjb2RlLm1fZWNt
YU1vZGUpOwotICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUs
IExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25QdHJU
YWcpOworICAgIHZtLmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZW5jb2Rl
KGV2YWwoZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFtZSwgYnl0ZWNvZGUubV9lY21hTW9kZSkpOwor
ICAgIERpc2FsbG93R0MgZGlzYWxsb3dHQzsKKyAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxP
YmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9p
bnQoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiB9CiAgICAg
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKaW5kZXggOGFmODZmMzE2N2RlM2Y4ZjZj
MWEzNDI2ODg3ODE1ZWM5MjM0M2Q4OC4uMzI3OWJlY2Q3OWVlZGVhOWY2NjA2ZjBjODQyZDVmMzk1
ZWQxMDhhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1
bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3Bw
CkBAIC0xNTIsNiArMTUyLDM5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRh
Zz4gd2FzbUZ1bmN0aW9uRW50cnlUaHVuaygpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQogCitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4gZ2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZVRodW5rKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKU0VudHJ5UHRyVGFnPj4gY29kZVJlZjsKKyAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUtleTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewor
ICAgICAgICBDQ2FsbEhlbHBlcnMgaml0OworCisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOworICAgICAgICBqaXQuZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoQ2FsbEZy
YW1lU2xvdDo6Y2FsbGVlLCBHUFJJbmZvOjpyZWdUMCk7CisKKyAgICAgICAgYXV0byBwcmVjaXNl
QWxsb2NhdGlvbkNhc2UgPSBqaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Ok5vblplcm8s
IEdQUkluZm86OnJlZ1QwLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihQcmVjaXNlQWxsb2Nh
dGlvbjo6aGFsZkFsaWdubWVudCkpOworICAgICAgICBqaXQuYW5kUHRyKENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cihNYXJrZWRCbG9jazo6YmxvY2tNYXNrKSwgR1BSSW5mbzo6cmVnVDApOwor
ICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAs
IE1hcmtlZEJsb2NrOjpvZmZzZXRPZkZvb3RlciArIE1hcmtlZEJsb2NrOjpGb290ZXI6Om9mZnNl
dE9mVk0oKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgYXV0byBsb2FkZWRDYXNlID0gaml0
Lmp1bXAoKTsKKworICAgICAgICBwcmVjaXNlQWxsb2NhdGlvbkNhc2UubGluaygmaml0KTsKKyAg
ICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBQ
cmVjaXNlQWxsb2NhdGlvbjo6b2Zmc2V0T2ZXZWFrU2V0KCkgKyBXZWFrU2V0OjpvZmZzZXRPZlZN
KCkgLSBQcmVjaXNlQWxsb2NhdGlvbjo6aGVhZGVyU2l6ZSgpKSwgR1BSSW5mbzo6cmVnVDApOwor
CisgICAgICAgIGxvYWRlZENhc2UubGluaygmaml0KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwg
Vk06Om9mZnNldE9mRW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUoKSksIEpTVmFsdWVSZWdzIHsg
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7CisjZWxzZQorICAgICAgICBqaXQubG9hZFZhbHVl
KENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgVk06Om9mZnNldE9mRW5jb2Rl
ZEhvc3RDYWxsUmV0dXJuVmFsdWUoKSksIEpTVmFsdWVSZWdzIHsgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIyLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiB9KTsKKyNlbmRpZgorICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKyAgICAgICAgaml0LnJldCgpOworCisgICAgICAgIExp
bmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgICAgICBjb2Rl
UmVmLmNvbnN0cnVjdChGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKU0VudHJ5UHRyVGFnLCAi
TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWUgdGh1bmsiKSk7CisgICAgfSk7CisgICAgcmV0
dXJuIGNvZGVSZWY7Cit9CisKIH0gLy8gbmFtZXNwYWNlIExMSW50CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaAppbmRleCA3ODFlMzJkN2ZlZWZjODU1
ODc4YWFkODMyOGI0OTFiOTU2M2ZmZGFlLi4zZTdiY2U1YWMwM2M1N2VhOWZmODUyN2M4YTI3NTIx
NGE5ODQ1YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRU
aHVua3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuaApA
QCAtNTcsNiArNTcsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGZ1
bmN0aW9uRm9yQ29uc3RydWN0QXJpdHlDaGVja1RodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUVGh1bmtQdHJUYWc+IGV2YWxFbnRyeVRodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUVGh1bmtQdHJUYWc+IHByb2dyYW1FbnRyeVRodW5rKCk7CiBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8SklUVGh1bmtQdHJUYWc+IG1vZHVsZVByb2dyYW1FbnRyeVRodW5rKCk7CitNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4gZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVRodW5r
KCk7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklU
VGh1bmtQdHJUYWc+IHdhc21GdW5jdGlvbkVudHJ5VGh1bmsoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAppbmRleCA4ZTU4ODcy
YThjNTMyOWE3MjRlNGM4M2UyODA0ZGU4YmNiYmU3OTg3Li5kNDk0NDBiNWFkMzMyOTAyMjU3NmE1
YmFhNzA4NDlkYWZiM2U4ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M6OkxMSW50OwogLy8gaW5jbHVkZXMuCiAvLwogLy8gSW4gYWRkaXRpb24sIHNvbWUg
SklUIHRyYW1wb2xpbmUgZnVuY3Rpb25zIHdoaWNoIGFyZSBuZWVkZWQgYnkgTExJbnQKLS8vIChl
LmcuIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUsIGN0aU9wVGhyb3dOb3RDYXVnaHQpIGFyZSBhbHNv
IGFkZGVkIGFzCisvLyAoZS5nLiBjdGlPcFRocm93Tm90Q2F1Z2h0KSBhcmUgYWxzbyBhZGRlZCBh
cwogLy8gYnl0ZWNvZGVzLCBhbmQgdGhlIENMb29wIHdpbGwgcHJvdmlkZSBieXRlY29kZSBoYW5k
bGVycyBmb3IgdGhlbS4KIC8vCiAvLyBJbiB0aGUgQ0xvb3AsIHdlIGNhbiBvbmx5IGRpc3BhdGNo
IGluZGlyZWN0bHkgdG8gdGhlc2UgYnl0ZWNvZGVzCkBAIC00MzgsMjMgKzQzOCw2IEBAIEpTVmFs
dWUgQ0xvb3A6OmV4ZWN1dGUoT3Bjb2RlSUQgZW50cnlPcGNvZGVJRCwgdm9pZCogZXhlY3V0YWJs
ZUFkZHJlc3MsIFZNKiB2bSwKICNlbmRpZgogICAgICAgICB9CiAKLSAgICAgICAgLy8gSW4gdGhl
IEFTTSBsbGludCwgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGlzIGEgcGllY2Ugb2YgZ2x1ZQot
ICAgICAgICAvLyBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgSklUIChzZWUgaml0L0pJVE9wZXJh
dGlvbnMuY3BwKS4KLSAgICAgICAgLy8gV2Ugc2ltdWxhdGUgaXQgaGVyZSB3aXRoIGEgcHNlZHVv
LW9wY29kZSBoYW5kbGVyLgotICAgICAgICBPRkZMSU5FX0FTTV9HTFVFX0xBQkVMKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRoZSBwYXJ0IGluIGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKCk6Ci0gICAgICAgICAgICBKU1ZhbHVl
IHJlc3VsdCA9IHZtLT5ob3N0Q2FsbFJldHVyblZhbHVlOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQp
Ci0gICAgICAgICAgICB0MSA9IHJlc3VsdC50YWcoKTsKLSAgICAgICAgICAgIHQwID0gcmVzdWx0
LnBheWxvYWQoKTsKLSNlbHNlCi0gICAgICAgICAgICB0MCA9IEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwotI2VuZGlmCi0gICAgICAgICAgICBvcGNvZGUgPSBsci5vcGNvZGUoKTsKLSAgICAgICAg
ICAgIERJU1BBVENIX09QQ09ERSgpOwotICAgICAgICB9Ci0KICNpZiAhRU5BQkxFKENPTVBVVEVE
X0dPVE9fT1BDT0RFUykKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlQoZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQppbmRleCBhNjAyYWJmMDMyODJiMTIwZDNjNjFjZWY3OTk2MWEyYTA5MDAxZjdl
Li4wMWExYTlhOTE0MWM4OWYwMjZhMDE5MmZjYjk2NTliZmI0NjY0MTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQpAQCAtNDIyLDYgKzQyMiwxOCBAQCBvcChoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbiwgbWFj
cm8oKQogICAgIHJldAogZW5kKQogCitvcChsbGludF9nZXRfaG9zdF9jYWxsX3JldHVybl92YWx1
ZSwgbWFjcm8gKCkKKyAgICBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBwdXNoQ2FsbGVlU2F2ZXMo
KQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAorICAgIGNvbnZlcnRDYWxsZWVUb1ZNKHQwKQor
ICAgIGxvYWRpIFZNOjplbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSArIFRhZ09mZnNldFt0MF0s
IHQxCisgICAgbG9hZGkgVk06OmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlICsgUGF5bG9hZE9m
ZnNldFt0MF0sIHQwCisgICAgcG9wQ2FsbGVlU2F2ZXMoKQorICAgIGZ1bmN0aW9uRXBpbG9ndWUo
KQorICAgIHJldAorZW5kKQorCiBtYWNybyBkb1JldHVybkZyb21Ib3N0RnVuY3Rpb24oZXh0cmFT
dGFja1NwYWNlKQogICAgIGZ1bmN0aW9uRXBpbG9ndWUoZXh0cmFTdGFja1NwYWNlKQogICAgIHJl
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbQppbmRleCA4YjVmNDJkMDBjN2IxMWJiZWQ0MTZlODZkMGUyZDYwMmNhMjViYzkz
Li5hYTIzZWM2M2EzMDkzOTAzMDM1MGY2MDhiMGI2ZmE0Mjk4NzNkNTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpA
QCAtMzUzLDYgKzM1MywxNiBAQCBvcChoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbiwgbWFjcm8gKCkK
ICAgICByZXQKIGVuZCkKIAorb3AobGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUsIG1h
Y3JvICgpCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgcHVzaENhbGxlZVNhdmVzKCkKKyAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDAKKyAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MCkKKyAgICBs
b2FkcSBWTTo6ZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWVbdDBdLCB0MAorICAgIHBvcENhbGxl
ZVNhdmVzKCkKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKK2VuZCkKIAogbWFjcm8g
cHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQogICAgIGFkZHAgUEIsIFBDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKaW5kZXggZTQwNGE2Y2I5NGRlNjRmMDI5
MmQ0MDhiNTU5MmU2MjU3YTBkYWIzMi4uZDQ3MmE5OTFmZmZmZWI4ZGRkN2I2ZmQ5YTMzOWEzMWE0
OTEwM2U5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGlu
ZXMuaApAQCAtMTY5LDcgKzE2OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBBTFdBWVNfSU5M
SU5FIHZvaWQqIHRyeUFsbG9jYXRlQ2VsbEhlbHBlcihIZWFwJiBoZWFwLCBzaXplX3Qgc2l6ZSwg
R0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29udGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2Rl
IGZhaWx1cmVNb2RlKQogewogICAgIFZNJiB2bSA9IGhlYXAudm0oKTsKLSAgICBBU1NFUlQoZGVm
ZXJyYWxDb250ZXh0IHx8ICFEaXNhbGxvd0dDOjppc0luRWZmZWN0T25DdXJyZW50VGhyZWFkKCkp
OworICAgIEFTU0VSVChkZWZlcnJhbENvbnRleHQgfHwgaGVhcC5pc0RlZmVycmVkKCkgfHwgIURp
c2FsbG93R0M6OmlzSW5FZmZlY3RPbkN1cnJlbnRUaHJlYWQoKSk7CiAgICAgQVNTRVJUKHNpemUg
Pj0gc2l6ZW9mKFQpKTsKICAgICBKU0NlbGwqIHJlc3VsdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+
KHN1YnNwYWNlRm9yPFQ+KHZtKS0+YWxsb2NhdGVOb25WaXJ0dWFsKHZtLCBzaXplLCBkZWZlcnJh
bENvbnRleHQsIGZhaWx1cmVNb2RlKSk7CiAgICAgaWYgKGZhaWx1cmVNb2RlID09IEFsbG9jYXRp
b25GYWlsdXJlTW9kZTo6UmV0dXJuTnVsbCAmJiAhcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggOGU5YjE2Njk5ZjVmZjMyZDgy
OTlhYjc5MDUxMmIxZTY3NmE2NzgzYi4uYTcxZDU5Y2EyOTRmYWUzMTA4NDg5ZGMwNzY0MGYwZjhk
MDE4MjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCkBAIC04MzEsNiArODMxLDggQEAgY2xhc3MgSlNHbG9iYWxPYmplY3QgOiBwdWJsaWMg
SlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgUmVnRXhwR2xvYmFsRGF0YSYgcmVnRXhw
R2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fcmVnRXhwR2xvYmFsRGF0YTsgfQogICAgIHN0YXRpYyBw
dHJkaWZmX3QgcmVnRXhwR2xvYmFsRGF0YU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihKU0dsb2JhbE9iamVjdCwgbV9yZWdFeHBHbG9iYWxEYXRhKTsgfQogCisgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZlZNKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTR2xvYmFsT2Jq
ZWN0LCBtX3ZtKTsgfQorCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgSW5zcGVj
dG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXImIGluc3BlY3RvckNvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiAqbV9pbnNwZWN0b3JDb250cm9sbGVyLmdldCgpOyB9CiAgICAg
SlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlJiBpbnNwZWN0b3JEZWJ1Z2dhYmxlKCkgeyByZXR1cm4g
Km1faW5zcGVjdG9yRGVidWdnYWJsZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCmluZGV4IDk4Nzc2ZmM4Y2U1ZGVkNmZjOGFkZjEwYzM0YTVkOTJlNThkMWI3ZWQuLmNi
YzcwNmZmNDg2MDAwYWQ2OGYwZTZkMzQ4NTc0OWZjNjliZWQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKQEAgLTYzLDcgKzYzLDYgQEAKICNpbmNsdWRlICJIYXNPd25Qcm9w
ZXJ0eUNhY2hlLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkhlYXBQcm9maWxlci5o
IgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIkludGxDYWNoZS5oIgogI2luY2x1ZGUgIkludGxDb2xsYXRvci5oIgpA
QCAtNDkwLDEwICs0ODksNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5
cGUsIFdURjo6UnVuTG9vcCogcnVuTG9vcCwgYm9vbCogc3VjY2VzcykKIAogICAgIFRocmVhZDo6
Y3VycmVudCgpLnNldEN1cnJlbnRBdG9tU3RyaW5nVGFibGUoZXhpc3RpbmdFbnRyeUF0b21TdHJp
bmdUYWJsZSk7CiAgICAgCi0jaWYgIUVOQUJMRShDX0xPT1ApCi0gICAgaW5pdGlhbGl6ZUhvc3RD
YWxsUmV0dXJuVmFsdWUoKTsgLy8gVGhpcyBpcyBuZWVkZWQgdG8gY29udmluY2UgdGhlIGxpbmtl
ciBub3QgdG8gZHJvcCBob3N0IGNhbGwgcmV0dXJuIHN1cHBvcnQuCi0jZW5kaWYKLSAgICAKICAg
ICBHaWdhY2FnZTo6YWRkUHJpbWl0aXZlRGlzYWJsZUNhbGxiYWNrKHByaW1pdGl2ZUdpZ2FjYWdl
RGlzYWJsZWRDYWxsYmFjaywgdGhpcyk7CiAKICAgICBoZWFwLm5vdGlmeUlzU2FmZVRvQ29sbGVj
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggNTI4NDk4NDZiNWE0OGFiYWJh
ZjE5MTBkNTA3ZjQzOGY2MmRlNDY1Yi4uNDEyOTI0N2NkMjQ1NmQ2NzU2OTcwN2M5MmI2YzdmYzIz
OWMyZmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBAIC04NTMsNiArODUzLDEx
IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERv
dWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
Vk0sIHRvcEVudHJ5RnJhbWUpOwogICAgIH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZFbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKFZNLCBlbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSk7CisgICAgfQorCiAg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkhlYXBCYXJyaWVyVGhyZXNob2xkKCkKICAgICB7
CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoVk0sIGhlYXApICsgT0JKRUNUX09GRlNF
VE9GKEhlYXAsIG1fYmFycmllclRocmVzaG9sZCk7CkBAIC05MzMsNyArOTM4LDcgQEAgY2xhc3Mg
Vk0gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Vk0+LCBwdWJsaWMgRG91Ymx5TGlua2Vk
TGlzdE5vZGU8Vk0+IHsKICAgICAgICAgfQogICAgIH0KIAotICAgIEpTVmFsdWUgaG9zdENhbGxS
ZXR1cm5WYWx1ZTsKKyAgICBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1
ZSB7IH07CiAgICAgdW5zaWduZWQgdmFyYXJnc0xlbmd0aDsKICAgICBDYWxsRnJhbWUqIG5ld0Nh
bGxGcmFtZVJldHVyblZhbHVlOwogICAgIENhbGxGcmFtZSogY2FsbEZyYW1lRm9yQ2F0Y2g7Cg==
</data>
<flag name="commit-queue"
          id="426073"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410181</attachid>
            <date>2020-09-30 17:29:02 -0700</date>
            <delta_ts>2020-09-30 22:15:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217150-20200930172902.patch</filename>
            <type>text/plain</type>
            <size>38684</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NDAxYmRhNjgwZTNjZjlmZGFhMTM2ZTBkNjYxY2VlNmQxMjFhMDJmLi5iMTk5MjliNjBjMjMyOTg5
YmJlMThjYWEyYjJiNGNhNzI3YmFlMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMC0wOS0zMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFdlIHNob3VsZCBub3QgdGFnIEMgZnVuY3Rpb24gd2l0aCBKSVQg
Y29kZSByZWxhdGVkIHB0ciB0YWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzE1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisg
ICAgICAgIFdlIGFyZSB0YWdnaW5nIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUgZnVuY3Rpb24gd2l0
aCBKSVQgcmVsYXRlZCBQdHJUYWcuIEFzIGEgcGFydCBvZiBKSVQtY2FnaW5nIGVmZm9ydCwgd2Ug
YXJlIHJlc3RyaWN0aW5nIG91cgorICAgICAgICBQdHJUYWcgdXNhZ2UgbW9yZSBmb3IgY29kZSB0
eXBlcyAoZS5nLiBKSVQgY29kZSBzaG91bGQgYmUgdGFnZ2VkIHdpdGggSklUIHJlbGF0ZWQgUHRy
VGFnKS4gU28sIHdlIHNob3VsZCBub3QgdGFnIGdldEhvc3RDYWxsUmV0dXJuVmFsdWUKKyAgICAg
ICAgd2l0aCB0aGF0LiBUaGlzIHBhdGNoIGltcGxlbWVudHMgZ2V0SG9zdENhbGxSZXR1cm5WYWx1
ZSBpbiBKSVQgY29kZSBpZiBKSVQgaXMgZW5hYmxlZC4gSWYgbm90LCBpdCBpcyBpbXBsZW1lbnRl
ZCBieSBMTEludC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9j
ay5oOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZNKToKKyAg
ICAgICAgKiBoZWFwL1ByZWNpc2VBbGxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OlByZWNpc2VB
bGxvY2F0aW9uOjpvZmZzZXRPZldlYWtTZXQpOgorICAgICAgICAqIGhlYXAvV2Vha1NldC5oOgor
ICAgICAgICAoSlNDOjpXZWFrU2V0OjpvZmZzZXRPZlZNKToKKyAgICAgICAgKiBqaXQvSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaml0L0hvc3RDYWxsUmV0dXJu
VmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0pJVE9wZXJhdGlvbnNNU1ZDNjQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGpp
dC9KSVRTdHVic01TVkM2NC5hc206CisgICAgICAgICogbGxpbnQvTExJbnRFbnRyeXBvaW50LmNw
cDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50
KToKKyAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9pbnQuaDoKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpoYW5kbGVIb3N0Q2FsbCk6
CisgICAgICAgIChKU0M6OkxMSW50Ojpjb21tb25DYWxsRXZhbCk6CisgICAgICAgICogbGxpbnQv
TExJbnRUaHVua3MuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5W
YWx1ZVRodW5rKToKKyAgICAgICAgKiBsbGludC9MTEludFRodW5rcy5oOgorICAgICAgICAqIGxs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpDTG9vcDo6ZXhlY3V0
ZSk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAg
ICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1bnRpbWUv
SlNDZWxsSW5saW5lcy5oOgorICAgICAgICAoSlNDOjp0cnlBbGxvY2F0ZUNlbGxIZWxwZXIpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9i
YWxPYmplY3Q6Om9mZnNldE9mVk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAg
ICAoSlNDOjpWTTo6Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6
Vk06Om9mZnNldE9mRW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOgorCiAyMDIwLTA5LTMwICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI2Nzc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZjNiZmFlMTliMTgyY2I1Mjc0YmU2MTIxOTJkODUzNjA2YjNjMGU0My4uMzdmZWJmZjY1YWIzNmIx
ZTA1ZjM3OGE5ZjQ0NTg0MTllOGUwNDk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTM0Myw3ICszNDMsNiBAQAogCQkwRjQ2ODBDQjE0QkJCMTcyMDBCRkUyNzIgLyogTExJbnRP
ZmZsaW5lQXNtQ29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjQ2ODBDNjE0QkJCMTY5MDBCRkUyNzIgLyogTExJbnRPZmZsaW5lQXNtQ29uZmln
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0
NjgwQ0QxNEJCQjE3RDAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEM4MTRCQkIxNjkwMEJG
RTI3MiAvKiBMb3dMZXZlbEludGVycHJldGVyLmggKi87IH07CiAJCTBGNDY4MEQzMTRCQkQxNjcw
MEJGRTI3MiAvKiBMTEludERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNDY4MENGMTRCQkIzRDEwMEJGRTI3MiAvKiBMTEludERhdGEuaCAqLzsg
fTsKLQkJMEY0NjgwRDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDY4MEQxMTRC
QkM1RjgwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY0ODUzMjIxODc3NTA1NjAwODNCNjg3
IC8qIERGR0FyaXRoTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRoTW9kZS5oICovOyB9
OwogCQkwRjQ4NTMyODE4N0RGREVDMDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDg1MzI0MTg3
REZERUMwMDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNDg1MzJBMTg3REZERUMwMDgzQjY4
NyAvKiBGVExSZWNvdmVyeU9wY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0ODUzMjYxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bj
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTI2MDEsOCArMjYwMCw2IEBACiAJCTBGNDY4MEM4MTRCQkIxNjkwMEJGRTI3MiAvKiBMb3dMZXZl
bEludGVycHJldGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvd0xldmVs
SW50ZXJwcmV0ZXIuaDsgcGF0aCA9IGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NjgwQ0UxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50
RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMTEludERhdGEu
Y3BwOyBwYXRoID0gbGxpbnQvTExJbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY0NjgwQ0YxNEJCQjNEMTAwQkZFMjcyIC8qIExMSW50RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMTEludERhdGEuaDsgcGF0aCA9IGxsaW50L0xMSW50RGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUy
NzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIb3N0Q2FsbFJldHVyblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSG9zdENhbGxSZXR1cm5WYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ4NTMxRjE4Nzc1MDU2MDA4M0I2ODcg
LyogREZHQXJpdGhNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IERGR0FyaXRoTW9kZS5jcHA7IHBhdGggPSBkZmcvREZHQXJpdGhNb2RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0ODUzMjAxODc3NTA1NjAwODNCNjg3IC8qIERGR0FyaXRo
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdBcml0aE1vZGUuaDsg
cGF0aCA9IGRmZy9ERkdBcml0aE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY0ODUzMjMxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNw
cDsgcGF0aCA9IGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MTMxLDggKzYxMjgsNiBAQAogCQkJCTBGNzY2RDJFMTVBOERDREQwMDhG
MzYzRSAvKiBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCAqLywKIAkJCQkwRjkzMjc0QzFDMUY2NkFB
MDBDRjY1NjQgLyogR1BSSW5mby5jcHAgKi8sCiAJCQkJMEYyNEU1M0YxN0VBOUY1OTAwQUJCMjE3
IC8qIEdQUkluZm8uaCAqLywKLQkJCQkwRjQ2ODBEMDE0QkJDNUY4MDBCRkUyNzIgLyogSG9zdENh
bGxSZXR1cm5WYWx1ZS5jcHAgKi8sCi0JCQkJMEY0NjgwRDExNEJCQzVGODAwQkZFMjcyIC8qIEhv
c3RDYWxsUmV0dXJuVmFsdWUuaCAqLywKIAkJCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyog
SUNTdGF0cy5jcHAgKi8sCiAJCQkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMu
aCAqLywKIAkJCQlERTVBMDlGRjFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5j
cHAgKi8sCkBAIC05NzY3LDcgKzk3NjIsNiBAQAogCQkJCUE1MzExQzM2MUM3N0NFQzUwMEU2QjFC
NiAvKiBIZWFwU25hcHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkFERTY3MzFE
NEQyM0JFMDA3Njg0NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFMUJEMDI1
MUU3MjA1MzgwMDEzNEJDOSAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NDY4MEQ1MTRCQkQyNEIwMEJGRTI3MiAvKiBIb3N0Q2FsbFJldHVyblZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEQzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0NEE3QjIyMEJGNjhDRTAwMjJCMTcxIC8qIElDU3RhdHVzTWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkIzOTlCRTIwQUY2QjNEMDAxN0UyMTMgLyogSUNTdGF0dXNVdGls
cy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXggYzVlMmE2
NmJjNzIxZTEwNTAzZjE1NWVmNjYxNTZkMGE5MGRkM2EwZS4uY2ZlNGVlZjc1ZGU2NTc0MTAzZGU1
MTMxMDMyMmI3ODcwYzE2N2Q5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApAQCAtNjI5
LDcgKzYyOSw2IEBAIGppdC9FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwCiBqaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5jcHAKIGppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwCiBqaXQvR1BS
SW5mby5jcHAKLWppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAogaml0L0lDU3RhdHMuY3BwCiBq
aXQvSW50cmluc2ljRW1pdHRlci5jcHAKIGppdC9KSVQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCA0MWFkN2Y0Yjc0YWQ3MjU1ZGQ1
MTYwYWM3N2JiNmM4MDNhM2U5YzJlLi5iZDgyZjcxMDZlOWMwOGRiNDViMTNhZTM0NDVjNmIyOWI3
NGU1Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVMaXN0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QucmIKQEAgLTEzMzAsNyArMTMzMCw2IEBACiAgICAgbWFjcm9fbmFtZV9jb21wb25lbnQ6IDpD
TE9PUF9CWVRFQ09ERV9IRUxQRVIKIAogb3AgOmxsaW50X2VudHJ5Ci1vcCA6Z2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZQogb3AgOmxsaW50X3JldHVybl90b19ob3N0CiBvcCA6bGxpbnRfdm1fZW50cnlf
dG9famF2YXNjcmlwdAogb3AgOmxsaW50X3ZtX2VudHJ5X3RvX25hdGl2ZQpAQCAtMTQwNSw2ICsx
NDA0LDcgQEAKIG9wIDpjaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5saW5lZF9jYWxsX3RyYW1w
b2xpbmUKIG9wIDpjaGVja3BvaW50X29zcl9leGl0X3RyYW1wb2xpbmUKIG9wIDpmdXp6ZXJfcmV0
dXJuX2Vhcmx5X2Zyb21fbG9vcF9oaW50CitvcCA6bGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5f
dmFsdWUKIG9wIDpoYW5kbGVVbmNhdWdodEV4Y2VwdGlvbgogb3AgOm9wX2NhbGxfcmV0dXJuX2xv
Y2F0aW9uCiBvcCA6b3BfY29uc3RydWN0X3JldHVybl9sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDE2ZWEyNWQzZDdkYmMxYTEy
ZjI5Y2M2N2UzM2IyNjZkZjQ5NDdlNDUuLmVhN2IyZjJmOGYxN2ExZjQ5NGNlM2FjY2ZjYTM1NTM1
Y2QyY2ZmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAKQEAgLTMxNiw2ICszMTYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVs
KE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNh
c2UgbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50
ZXJuYWxfZnVuY3Rpb25fY2FsbF90cmFtcG9saW5lOgogICAgIGNhc2UgbGxpbnRfaW50ZXJuYWxf
ZnVuY3Rpb25fY29uc3RydWN0X3RyYW1wb2xpbmU6CisgICAgY2FzZSBsbGludF9nZXRfaG9zdF9j
YWxsX3JldHVybl92YWx1ZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxp
bmVkX2NhbGxfdHJhbXBvbGluZToKICAgICBjYXNlIGNoZWNrcG9pbnRfb3NyX2V4aXRfdHJhbXBv
bGluZToKICAgICBjYXNlIGhhbmRsZVVuY2F1Z2h0RXhjZXB0aW9uOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKaW5kZXggYzlkOTFhYmQxYTNlMzkyZDY1ZjU0MTYyMGY1
MTU4NjkyZTc0N2U4MC4uYjU5ZjFmMzM1YjRjYzZiNDg1ZDhiYjkzYTUwNDE5OWVlMjA2ZmQwYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0yNTEsNiArMjUx
LDggQEAgY2xhc3MgTWFya2VkQmxvY2sgewogICAgIHB1YmxpYzoKICAgICAgICAgRm9vdGVyKFZN
JiwgSGFuZGxlJik7CiAgICAgICAgIH5Gb290ZXIoKTsKKworICAgICAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mVk0oKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRm9vdGVyLCBtX3ZtKTsg
fQogICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJl
Y2lzZUFsbG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1ByZWNpc2VBbGxv
Y2F0aW9uLmgKaW5kZXggMTBlYjY3ZGQwNDJlOTQzODlhNjcyZWEwMGNmMDlhYWRhZGNkZDMyOS4u
YmM4NmZlNmM1NThjNmI5YzMxNDlhNDI0MWIzNDUzMjZhZGQ5OWE0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvUHJlY2lzZUFsbG9jYXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9QcmVjaXNlQWxsb2NhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBA
IGNsYXNzIFByZWNpc2VBbGxvY2F0aW9uIDogcHVibGljIFBhY2tlZFJhd1NlbnRpbmVsTm9kZTxQ
cmVjaXNlQWxsb2NhdGlvbj4gewogICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha1Nl
dC52bSgpOyB9CiAgICAgV2Vha1NldCYgd2Vha1NldCgpIHsgcmV0dXJuIG1fd2Vha1NldDsgfQog
CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldlYWtTZXQoKSB7IHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoUHJlY2lzZUFsbG9jYXRpb24sIG1fd2Vha1NldCk7IH0KKwogICAgIHVuc2lnbmVk
IGluZGV4SW5TcGFjZSgpIHsgcmV0dXJuIG1faW5kZXhJblNwYWNlOyB9CiAgICAgdm9pZCBzZXRJ
bmRleEluU3BhY2UodW5zaWduZWQgaW5kZXhJblNwYWNlKSB7IG1faW5kZXhJblNwYWNlID0gaW5k
ZXhJblNwYWNlOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9XZWFrU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrU2V0LmgKaW5kZXgg
NGIzYTE0Yjk5NWE5NGZhZmFlZTg5MmJjMGZkYmQ0ZDE1MmJlMjNhZS4uZGRhYzAzZTQ2YWZkNWEz
ODJmMDU2MjZjMjdlMTgxNzFkMWQ4NDg0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha1NldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtT
ZXQuaApAQCAtNTgsNiArNTgsOCBAQCBjbGFzcyBXZWFrU2V0IDogcHVibGljIEJhc2ljUmF3U2Vu
dGluZWxOb2RlPFdlYWtTZXQ+IHsKICAgICB2b2lkIHNocmluaygpOwogICAgIHZvaWQgcmVzZXRB
bGxvY2F0b3IoKTsKIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZWTSgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihXZWFrU2V0LCBtX3ZtKTsgfQorCiBwcml2YXRlOgogICAgIEpTX0VY
UE9SVF9QUklWQVRFIFdlYWtCbG9jazo6RnJlZUNlbGwqIGZpbmRBbGxvY2F0b3IoQ2VsbENvbnRh
aW5lcik7CiAgICAgV2Vha0Jsb2NrOjpGcmVlQ2VsbCogdHJ5RmluZEFsbG9jYXRvcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MjEwZjMwMGUxOWY2Mzc5ODJlMDgxNjVlMjYx
MTA4MDZiMjg5NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIb3N0Q2Fs
bFJldHVyblZhbHVlLmgiCi0KLSNpZiAhRU5BQkxFKENfTE9PUCkKLQotI2luY2x1ZGUgIkNhbGxG
cmFtZS5oIgotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5saW5lQVNN
Lmg+Ci0KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIE5vdGU6IGdldEhvc3RDYWxsUmV0dXJuVmFs
dWVXaXRoRXhlY1N0YXRlKCkgbmVlZHMgdG8gYmUgcGxhY2VkIGJlZm9yZSB0aGUKLS8vIGRlZmlu
aXRpb24gb2YgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSgpIGJlbG93IGJlY2F1c2UgdGhlIFdpbmRv
d3MgYnVpbGQKLS8vIHJlcXVpcmVzIGl0LgotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NU
X0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNT
dGF0ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY2FsbEZyYW1lLT5kZXByZWNhdGVkVk0oKS5ob3N0Q2FsbFJldHVyblZhbHVlKTsK
LX0KLQotI2lmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKSAmJiBDUFUoWDg2XzY0KQotYXNtICgK
LSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJ
REVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAibGVhIC04KCVyc3ApLCAlcmRpXG4i
Ci0gICAgImptcCAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZSkgIlxuIgotKTsKLQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQ
VShYODYpCi1hc20gKAotIi50ZXh0IiAiXG4iIFwKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdl
dEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJc
biIKLSAgICAicHVzaCAlZWJwXG4iCi0gICAgIm1vdiAlZXNwLCAlZWF4XG4iCi0gICAgImxlYWwg
LTQoJWVzcCksICVlc3BcbiIKLSAgICAicHVzaCAlZWF4XG4iCi0gICAgImNhbGwgIiBMT0NBTF9S
RUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSAgICAi
bGVhbCA4KCVlc3ApLCAlZXNwXG4iCi0gICAgInBvcCAlZWJwXG4iCi0gICAgInJldFxuIgotKTsK
LQotI2VsaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpICYmIENQVShBUk1fVEhVTUIyKQotYXNt
ICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlKSAiXG4iCi0iLnRodW1iIiAiXG4iCi0iLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5D
X1BBUkFNKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9z
dENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKLSAgICAic3ViIHIwLCBzcCwgIzgiICJcbiIKLSAg
ICAiYiAiIExPQ0FMX1JFRkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0
ZSkgIlxuIgotKTsKLQotI2VsaWYgQ1BVKEFSTTY0KQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5h
bGlnbiAyIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCi1ISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCi1TWU1C
T0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4iCi0gICAgICJzdWIgeDAs
IHNwLCAjMTYiICJcbiIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZVdpdGhFeGVjU3RhdGUpICJcbiIKLSk7Ci0KLSNlbGlmIENPTVBJTEVSKEdDQ19DT01Q
QVRJQkxFKSAmJiBDUFUoTUlQUykKLQotI2lmIFdURl9NSVBTX1BJQwotI2RlZmluZSBMT0FEX0ZV
TkNUSU9OX1RPX1Q5KGZ1bmN0aW9uKSBcCi0gICAgICAgICIuc2V0IG5vcmVvcmRlciIgIlxuIiBc
Ci0gICAgICAgICIuY3Bsb2FkICQyNSIgIlxuIiBcCi0gICAgICAgICIuc2V0IHJlb3JkZXIiICJc
biIgXAotICAgICAgICAibGEgJHQ5LCAiIExPQ0FMX1JFRkVSRU5DRShmdW5jdGlvbikgIlxuIgot
I2Vsc2UKLSNkZWZpbmUgTE9BRF9GVU5DVElPTl9UT19UOShmdW5jdGlvbikgIiIgIlxuIgotI2Vu
ZGlmCi0KLWFzbSAoCi0iLnRleHQiICJcbiIKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKLUhJREVfU1lNQk9MKGdldEhvc3RDYWxsUmV0dXJuVmFs
dWUpICJcbiIKLVNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIK
LSAgICBMT0FEX0ZVTkNUSU9OX1RPX1Q5KGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0
YXRlKQotICAgICJhZGRpICRhMCwgJHNwLCAtOCIgIlxuIgotICAgICJiICIgTE9DQUxfUkVGRVJF
TkNFKGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRlKSAiXG4iCi0pOwotCi0jZWxp
ZiBDT01QSUxFUihNU1ZDKSAmJiBDUFUoWDg2KQotZXh0ZXJuICJDIiB7Ci0gICAgX19kZWNsc3Bl
YyhuYWtlZCkgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZSgpCi0gICAgewotICAgICAgICBfX2FzbSBsZWEgZWF4LCBbZXNw
IC0gNF0KLSAgICAgICAgX19hc20gbW92IFtlc3AgKyA0XSwgZWF4OwotICAgICAgICBfX2FzbSBq
bXAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUKLSAgICB9Ci19Ci0jZW5kaWYK
LQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyAhRU5BQkxFKENfTE9PUCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSG9zdENhbGxSZXR1cm5WYWx1ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxYmNkMjk5MDliYjBlOWI0Nzg5MjVkZmZiZGI5Zjk0MDhl
YmRlNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Ib3N0Q2FsbFJldHVyblZhbHVlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgotCi0jaWYg
IUVOQUJMRShDX0xPT1ApCi0KLSNpZiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAotI2Rl
ZmluZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBDREVDTAotI2Vsc2UKLSNkZWZpbmUg
SE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04KLSNlbmRpZgotCi1uYW1lc3BhY2UgSlNDIHsK
LQotZXh0ZXJuICJDIiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElP
TiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlKCkgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJO
QUw7Ci0KLSNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotLy8gVGhpcyBpcyBhIHB1Ymxp
YyBkZWNsYXJhdGlvbiBvbmx5IHRvIGNvbnZpbmNlIENMQU5HIG5vdCB0byBlbGlkZSBpdC4KLWV4
dGVybiAiQyIgRW5jb2RlZEpTVmFsdWUgSE9TVF9DQUxMX1JFVFVSTl9WQUxVRV9PUFRJT04gZ2V0
SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhFeGVjU3RhdGUoQ2FsbEZyYW1lKikgUkVGRVJFTkNFRF9G
Uk9NX0FTTSBXVEZfSU5URVJOQUw7Ci0KLWlubGluZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJl
dHVyblZhbHVlKCkKLXsKLSAgICBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZShu
dWxscHRyKTsKLX0KLQotI2Vsc2UgLy8gQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0KLWlubGlu
ZSB2b2lkIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCkgeyB9Ci0KLSNlbmRpZiAvLyBD
T01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAv
LyAhRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCmluZGV4IDU3MDhjYjI0MGY5ZmRmYTMzNTFmMDVlN2E1MGNiZDAxNTZmZGYxZDIuLjMz
YWNmODM2OWE2Y2E0MmNkM2Q4ODZhY2UwYzM5OTczMTY2NWNmODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDEsNyArNDEsNiBAQAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkZ1enouaCIKICNpbmNsdWRlICJGcmFtZVRyYWNlcnMuaCIKICNpbmNsdWRl
ICJHZXR0ZXJTZXR0ZXIuaCIKLSNpbmNsdWRlICJIb3N0Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5j
bHVkZSAiSUNTdGF0cy5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSklU
LmgiCkBAIC01Nyw2ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNJbnRlcm5hbFByb21pc2UuaCIKICNp
bmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgi
CisjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0
b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlICJSZWdFeHBPYmplY3Qu
aCIKQEAgLTEyMjQsNyArMTIyNCw4IEBAIHN0YXRpYyBTbG93UGF0aFJldHVyblR5cGUgaGFuZGxl
SG9zdENhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lCiAgICAgICAg
IGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpUeXBlOjpOYXRpdmUpIHsKICAgICAgICAg
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxlZUZyYW1lKTsKICAgICAg
ICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNPYmplY3QoY2FsbGVlKSk7Ci0gICAgICAg
ICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbihhc09iamVjdChjYWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVG
cmFtZSkpOworICAgICAgICAgICAgdm0uZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxs
RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwg
Y2FsbGVlRnJhbWUpOworICAgICAgICAgICAgRGlzYWxsb3dHQyBkaXNhbGxvd0dDOwogICAgICAg
ICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICAgICAgICAg
IHJldHVybiBlbmNvZGVSZXN1bHQoCiAgICAgICAgICAgICAgICAgICAgIHZtLmdldENUSVN0dWIo
dGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8SlNF
bnRyeVB0clRhZz4oKS5leGVjdXRhYmxlQWRkcmVzcygpLApAQCAtMTIzMiw3ICsxMjMzLDcgQEAg
c3RhdGljIFNsb3dQYXRoUmV0dXJuVHlwZSBoYW5kbGVIb3N0Q2FsbChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0
dXJuIGVuY29kZVJlc3VsdCgKLSAgICAgICAgICAgICAgICB0YWdDRnVuY3Rpb248dm9pZCosIEpT
RW50cnlQdHJUYWc+KGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLAorICAgICAgICAgICAgICAgIExM
SW50OjpnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50cnlwb2ludCgpLmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpLAogICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhbGxM
aW5rSW5mby0+Y2FsbE1vZGUoKSA9PSBDYWxsTW9kZTo6VGFpbCA/IFJldXNlVGhlRnJhbWUgOiBL
ZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogICAgIApAQCAtMTI1MSwxNCArMTI1MiwxNSBAQCBz
dGF0aWMgU2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZQogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2Fs
bERhdGE6OlR5cGU6Ok5hdGl2ZSkgewogICAgICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKHZtLCBjYWxsZWVGcmFtZSk7CiAgICAgICAgIGNhbGxlZUZyYW1lLT5zZXRDYWxsZWUoYXNP
YmplY3QoY2FsbGVlKSk7Ci0gICAgICAgIHZtLmhvc3RDYWxsUmV0dXJuVmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+
Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpKTsKKyAgICAgICAgdm0uZW5jb2RlZEhvc3RD
YWxsUmV0dXJuVmFsdWUgPSBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbihhc09iamVjdChj
YWxsZWUpLT5nbG9iYWxPYmplY3Qodm0pLCBjYWxsZWVGcmFtZSk7CisgICAgICAgIERpc2FsbG93
R0MgZGlzYWxsb3dHQzsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkg
ewogICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKICAgICAgICAgICAgICAgICB2bS5n
ZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvcikucmV0YWdn
ZWRDb2RlPEpTRW50cnlQdHJUYWc+KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQog
Ci0gICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQodGFnQ0Z1bmN0aW9uPHZvaWQqLCBKU0VudHJ5
UHRyVGFnPihnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
S2VlcFRoZUZyYW1lKSk7CisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoTExJbnQ6OmdldEhv
c3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCks
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwogICAgIH0KIAogICAgIEFT
U0VSVChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9uc01TVkM2NC5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNWYzMTM3ZTZhMDNmODc5OGRiOGM3MGI5NGMwM2M0
NjExZTgyOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zTVNWQzY0LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENfTE9PUCkg
JiYgQ09NUElMRVIoTVNWQykgJiYgQ1BVKFg4Nl82NCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5o
IgotI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5h
bWVzcGFjZSBKU0MgewotCi0vLyBGSVhNRTogVGhlIGZvbGxvd2luZyBpcyBhIHdvcmthcm91bmQg
dGhhdCBpcyBvbmx5IG5lZWRlZCBiZWNhdXNlIEpJVFN0dWJzTVNWQzY0LmFzbQotLy8gaXMgYnVp
bHQgdW5jb25kaXRpb25hbGx5IGV2ZW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGUsIGFuZCBpdCBy
ZWZlcmVuY2VzIHRoaXMgZnVuY3Rpb24uCi0vLyBXZSBvbmx5IG5lZWQgdG8gcHJvdmlkZSBhIHN0
dWIgdG8gc2F0aXNmeSB0aGUgbGlua2FnZS4gSXQgd2lsbCBuZXZlciBiZSBjYWxsZWQuCi1leHRl
cm4gIkMiIEVuY29kZWRKU1ZhbHVlIGdldEhvc3RDYWxsUmV0dXJuVmFsdWVXaXRoRXhlY1N0YXRl
KEpTR2xvYmFsT2JqZWN0KikKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKENfTE9PUCkg
JiYgQ09NUElMRVIoTVNWQykgJiYgQ1BVKFg4Nl82NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRTdHVic01TVkM2NC5hc20KaW5kZXggZWRmZTVjMzA3ZmYyOGJmN2EzMjIwNDQ5NDI4
OTg4Y2MzNWQyNjY4Yy4uNWVjZDQ0YzBkN2I1NTAwY2YzN2M5YTBjMDhhZjE0ZTE2NDBjZjkzMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KQEAgLTIz
LDIzICsyMywxMCBAQAogOyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogOyovCiAKLUVYVEVSTiBnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSA6IG5lYXIKLQotUFVCTElDIGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUKIFBVQkxJQyBjdGlNYXNtUHJvYmVUcmFtcG9saW5lCiAKIF9URVhUICAgU0VHTUVOVAog
Ci1nZXRIb3N0Q2FsbFJldHVyblZhbHVlIFBST0MKLSAgICBsZWEgcmN4LCBbcnNwIC0gOF0KLSAg
ICA7IEFsbG9jYXRlIHNwYWNlIGZvciBhbGwgNCBwYXJhbWV0ZXIgcmVnaXN0ZXJzLCBhbmQgYWxp
Z24gc3RhY2sgcG9pbnRlciB0byAxNiBieXRlcyBib3VuZGFyeSBieSBhbGxvY2F0aW5nIGFub3Ro
ZXIgOCBieXRlcy4KLSAgICA7IFRoZSBzdGFjayBhbGlnbm1lbnQgaXMgbmVlZGVkIHRvIGZpeCBh
IGNyYXNoIGluIHRoZSBDUlQgbGlicmFyeSBvbiBhIGZsb2F0aW5nIHBvaW50IGluc3RydWN0aW9u
LgotICAgIHN1YiByc3AsIDQwCi0gICAgY2FsbCBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4
ZWNTdGF0ZQotICAgIGFkZCByc3AsIDQwCi0gICAgcmV0Ci1nZXRIb3N0Q2FsbFJldHVyblZhbHVl
IEVORFAKLQogOyBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyBtdXN0IG1hdGNoIHRoZSB4ODZfNjQg
dmVyc2lvbiBpbiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAuCiBQVFJfU0laRSBFUVUgOAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCmlu
ZGV4IDg4NzM3MTg3YWMwMTE5MjI1MmMxMjg1NDFkMjQwMThkYzQzNDZjMTQuLjVjNjA5MWMyM2I4
OGJiNDJlNGJiNmM1MmM1ZWNjNmExOGY2YjRlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnQuY3BwCkBAIC0xNTQsNiArMTU0LDE1IEBAIHN0YXRp
YyB2b2lkIHNldE1vZHVsZVByb2dyYW1FbnRyeXBvaW50KENvZGVCbG9jayogY29kZUJsb2NrKQog
ICAgIGNvZGVCbG9jay0+c2V0SklUQ29kZShtYWtlUmVmKCpqaXRDb2RlKSk7CiB9CiAKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlRW50
cnlwb2ludCgpCit7CisjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAoT3B0aW9uczo6dXNlSklUKCkp
CisgICAgICAgIHJldHVybiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlVGh1bmsoKTsKKyNlbmRpZiAv
LyBFTkFCTEUoSklUKQorICAgIHJldHVybiBnZXRDb2RlUmVmPEpTRW50cnlQdHJUYWc+KGxsaW50
X2dldF9ob3N0X2NhbGxfcmV0dXJuX3ZhbHVlKTsKK30KKwogdm9pZCBzZXRFbnRyeXBvaW50KENv
ZGVCbG9jayogY29kZUJsb2NrKQogewogICAgIHN3aXRjaCAoY29kZUJsb2NrLT5jb2RlVHlwZSgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBv
aW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRFbnRyeXBvaW50LmgKaW5k
ZXggZTEwMGZiOGZmMzA2ZTcxNTdkY2JkM2RiMjIxOWFmYzFlODI2OWQwYi4uZTQ3NmFhMmRlYzUz
OWNhZGE2OTI4NjFlZjhjMzdkOTQxNTQ5NTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludEVudHJ5cG9pbnQuaApAQCAtMzcsNCArMzcsNiBAQCB2b2lkIHNldEVudHJ5
cG9pbnQoQ29kZUJsb2NrKik7CiAKIHVuc2lnbmVkIGZyYW1lUmVnaXN0ZXJDb3VudEZvcihDb2Rl
QmxvY2sqKTsKIAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50cnlQdHJUYWc+IGdldEhvc3RD
YWxsUmV0dXJuVmFsdWVFbnRyeXBvaW50KCk7CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpMTElu
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5k
ZXggZjlhOTA3ZWQ0MWJkZTQ1NmNmMGQ5ZDdlMTliM2Y5MWI0YmQxZGU1MC4uNWUzMzYzMmZmMTZi
NTRmMDhlZTM2Mjg4MzQwODc2YThhNDBlYTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
RnVuY3Rpb25BbGxvd2xpc3QuaCIKICNpbmNsdWRlICJGdW5jdGlvbkNvZGVCbG9jay5oIgogI2lu
Y2x1ZGUgIkdldHRlclNldHRlci5oIgotI2luY2x1ZGUgIkhvc3RDYWxsUmV0dXJuVmFsdWUuaCIK
ICNpbmNsdWRlICJKSVRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiSklUV29ya2xpc3QuaCIKICNp
bmNsdWRlICJKU0FzeW5jRnVuY3Rpb24uaCIKQEAgLTE2NzEsOCArMTY3MCw5IEBAIHN0YXRpYyBT
bG93UGF0aFJldHVyblR5cGUgaGFuZGxlSG9zdENhbGwoQ2FsbEZyYW1lKiBjYWxsZWVGcmFtZSwg
SlNWYWx1ZSBjYWxsZWUsCiAgICAgICAgIGlmIChjYWxsRGF0YS50eXBlID09IENhbGxEYXRhOjpU
eXBlOjpOYXRpdmUpIHsKICAgICAgICAgICAgIFNsb3dQYXRoRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBjYWxsZWVGcmFtZSk7CiAgICAgICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2Jq
ZWN0KGNhbGxlZSkpOwotICAgICAgICAgICAgdm0uaG9zdENhbGxSZXR1cm5WYWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3QoY2FsbGVlKS0+Z2xv
YmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpKTsKLSAgICAgICAgICAgIExMSU5UX0NBTExfUkVU
VVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgICAgICAgICAgdm0uZW5jb2Rl
ZEhvc3RDYWxsUmV0dXJuVmFsdWUgPSBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24oYXNPYmplY3Qo
Y2FsbGVlKS0+Z2xvYmFsT2JqZWN0KHZtKSwgY2FsbGVlRnJhbWUpOworICAgICAgICAgICAgRGlz
YWxsb3dHQyBkaXNhbGxvd0dDOworICAgICAgICAgICAgTExJTlRfQ0FMTF9SRVRVUk4oZ2xvYmFs
T2JqZWN0LCBjYWxsZWVGcmFtZSwgTExJbnQ6OmdldEhvc3RDYWxsUmV0dXJuVmFsdWVFbnRyeXBv
aW50KCkuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksIEpTRW50cnlQdHJUYWcpOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBzbG93UGF0aExvZygiQ2FsbCBjYWxsZWUgaXMgbm90IGEg
ZnVuY3Rpb246ICIsIGNhbGxlZSwgIlxuIik7CkBAIC0xNjg5LDggKzE2ODksOSBAQCBzdGF0aWMg
U2xvd1BhdGhSZXR1cm5UeXBlIGhhbmRsZUhvc3RDYWxsKENhbGxGcmFtZSogY2FsbGVlRnJhbWUs
IEpTVmFsdWUgY2FsbGVlLAogICAgIGlmIChjb25zdHJ1Y3REYXRhLnR5cGUgPT0gQ2FsbERhdGE6
OlR5cGU6Ok5hdGl2ZSkgewogICAgICAgICBTbG93UGF0aEZyYW1lVHJhY2VyIHRyYWNlcih2bSwg
Y2FsbGVlRnJhbWUpOwogICAgICAgICBjYWxsZWVGcmFtZS0+c2V0Q2FsbGVlKGFzT2JqZWN0KGNh
bGxlZSkpOwotICAgICAgICB2bS5ob3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSktPmdsb2JhbE9i
amVjdCh2bSksIGNhbGxlZUZyYW1lKSk7Ci0gICAgICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2Jh
bE9iamVjdCwgY2FsbGVlRnJhbWUsIExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJu
VmFsdWUpLCBDRnVuY3Rpb25QdHJUYWcpOworICAgICAgICB2bS5lbmNvZGVkSG9zdENhbGxSZXR1
cm5WYWx1ZSA9IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uKGFzT2JqZWN0KGNhbGxlZSkt
Pmdsb2JhbE9iamVjdCh2bSksIGNhbGxlZUZyYW1lKTsKKyAgICAgICAgRGlzYWxsb3dHQyBkaXNh
bGxvd0dDOworICAgICAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxPYmplY3QsIGNhbGxlZUZy
YW1lLCBMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9pbnQoKS5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiAgICAgfQogICAgIAogICAgIHNsb3dQ
YXRoTG9nKCJDb25zdHJ1Y3RvciBjYWxsZWUgaXMgbm90IGEgZnVuY3Rpb246ICIsIGNhbGxlZSwg
IlxuIik7CkBAIC0xOTU5LDggKzE5NjAsOSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIGNv
bW1vbkNhbGxFdmFsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBJbnN0cnVjdGlvbgogICAg
IGlmICghaXNIb3N0RnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSwgZ2xvYmFsRnVuY0V2YWwpKQogICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgc2V0VXBDYWxsKGNhbGxlZUZyYW1l
LCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSkpOwogICAgIAotICAgIHZtLmhvc3RDYWxsUmV0
dXJuVmFsdWUgPSBldmFsKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUsIGJ5dGVjb2RlLm1fZWNt
YU1vZGUpOwotICAgIExMSU5UX0NBTExfUkVUVVJOKGdsb2JhbE9iamVjdCwgY2FsbGVlRnJhbWUs
IExMSW50OjpnZXRDb2RlUHRyKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpLCBDRnVuY3Rpb25QdHJU
YWcpOworICAgIHZtLmVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZW5jb2Rl
KGV2YWwoZ2xvYmFsT2JqZWN0LCBjYWxsZWVGcmFtZSwgYnl0ZWNvZGUubV9lY21hTW9kZSkpOwor
ICAgIERpc2FsbG93R0MgZGlzYWxsb3dHQzsKKyAgICBMTElOVF9DQUxMX1JFVFVSTihnbG9iYWxP
YmplY3QsIGNhbGxlZUZyYW1lLCBMTEludDo6Z2V0SG9zdENhbGxSZXR1cm5WYWx1ZUVudHJ5cG9p
bnQoKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwgSlNFbnRyeVB0clRhZyk7CiB9CiAgICAg
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9ldmFsKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAKaW5kZXggOGFmODZmMzE2N2RlM2Y4ZjZj
MWEzNDI2ODg3ODE1ZWM5MjM0M2Q4OC4uYzU5M2MwNzI4YzQxNjZlYjM0ZWNkNWViYzFkNGE2YWQy
Y2NhY2U0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1
bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3Bw
CkBAIC0xNTIsOSArMTUyLDQyIEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRh
Zz4gd2FzbUZ1bmN0aW9uRW50cnlUaHVuaygpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VN
QkxZKQogCi19IC8vIG5hbWVzcGFjZSBMTEludAorTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTRW50
cnlQdHJUYWc+IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVUaHVuaygpCit7CisgICAgc3RhdGljIExh
enlOZXZlckRlc3Ryb3llZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNFbnRyeVB0clRhZz4+IGNv
ZGVSZWY7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7CisgICAgc3RkOjpjYWxs
X29uY2Uob25jZUtleSwgWyZdIHsKKyAgICAgICAgQ0NhbGxIZWxwZXJzIGppdDsKIAorICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyAgICAgICAgaml0LmVtaXRHZXRGcm9tQ2Fs
bEZyYW1lSGVhZGVyUHRyKENhbGxGcmFtZVNsb3Q6OmNhbGxlZSwgR1BSSW5mbzo6cmVnVDApOwor
CisgICAgICAgIGF1dG8gcHJlY2lzZUFsbG9jYXRpb25DYXNlID0gaml0LmJyYW5jaFRlc3RQdHIo
Q0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoUHJlY2lzZUFsbG9jYXRpb246OmhhbGZBbGlnbm1lbnQpKTsKKyAgICAgICAgaml0
LmFuZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoTWFya2VkQmxvY2s6OmJsb2NrTWFz
ayksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZGb290ZXIgKyBNYXJr
ZWRCbG9jazo6Rm9vdGVyOjpvZmZzZXRPZlZNKCkpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAg
IGF1dG8gbG9hZGVkQ2FzZSA9IGppdC5qdW1wKCk7CisKKyAgICAgICAgcHJlY2lzZUFsbG9jYXRp
b25DYXNlLmxpbmsoJmppdCk7CisgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhHUFJJbmZvOjpyZWdUMCwgUHJlY2lzZUFsbG9jYXRpb246Om9mZnNldE9mV2Vha1NldCgp
ICsgV2Vha1NldDo6b2Zmc2V0T2ZWTSgpIC0gUHJlY2lzZUFsbG9jYXRpb246OmhlYWRlclNpemUo
KSksIEdQUkluZm86OnJlZ1QwKTsKKworICAgICAgICBsb2FkZWRDYXNlLmxpbmsoJmppdCk7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MoR1BSSW5mbzo6cmVnVDAsIFZNOjpvZmZzZXRPZkVuY29kZWRIb3N0Q2FsbFJldHVyblZh
bHVlKCkpLCBKU1ZhbHVlUmVncyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSIH0pOworI2Vsc2UK
KyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVn
VDAsIFZNOjpvZmZzZXRPZkVuY29kZWRIb3N0Q2FsbFJldHVyblZhbHVlKCkpLCBKU1ZhbHVlUmVn
cyB7IEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIgfSk7
CiAjZW5kaWYKKyAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisgICAgICAgIGpp
dC5yZXQoKTsKKworICAgICAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFMX1RI
VU5LX0lEKTsKKyAgICAgICAgY29kZVJlZi5jb25zdHJ1Y3QoRklOQUxJWkVfQ09ERShwYXRjaEJ1
ZmZlciwgSlNFbnRyeVB0clRhZywgIkxMSW50OjpnZXRIb3N0Q2FsbFJldHVyblZhbHVlIHRodW5r
IikpOworICAgIH0pOworICAgIHJldHVybiBjb2RlUmVmOworfQorCit9IC8vIG5hbWVzcGFjZSBM
TEludAorCisjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIAogI2lmIEVOQUJMRShDX0xPT1ApCiAvLyBO
b24tSklUIChpLmUuIEMgTG9vcCBMTElOVCkgY2FzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50VGh1bmtzLmgKaW5kZXggNzgxZTMyZDdmZWVmYzg1NTg3OGFhZDgzMjhiNDkxYjk1
NjNmZmRhZS4uM2U3YmNlNWFjMDNjNTdlYTlmZjg1MjdjOGEyNzUyMTRhOTg0NWI2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50VGh1bmtzLmgKQEAgLTU3LDYgKzU3LDcgQEAg
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBmdW5jdGlvbkZvckNvbnN0cnVj
dEFyaXR5Q2hlY2tUaHVuaygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFn
PiBldmFsRW50cnlUaHVuaygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFn
PiBwcm9ncmFtRW50cnlUaHVuaygpOwogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPiBtb2R1bGVQcm9ncmFtRW50cnlUaHVuaygpOworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpT
RW50cnlQdHJUYWc+IGdldEhvc3RDYWxsUmV0dXJuVmFsdWVUaHVuaygpOwogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiB3YXNt
RnVuY3Rpb25FbnRyeVRodW5rKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5jcHAKaW5kZXggOGU1ODg3MmE4YzUzMjlhNzI0ZTRjODNl
MjgwNGRlOGJjYmJlNzk4Ny4uZDQ5NDQwYjVhZDMzMjkwMjI1NzZhNWJhYTcwODQ5ZGFmYjNlODg0
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmNwcApAQCAtNTQsNyArNTQsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpMTEludDsK
IC8vIGluY2x1ZGVzLgogLy8KIC8vIEluIGFkZGl0aW9uLCBzb21lIEpJVCB0cmFtcG9saW5lIGZ1
bmN0aW9ucyB3aGljaCBhcmUgbmVlZGVkIGJ5IExMSW50Ci0vLyAoZS5nLiBnZXRIb3N0Q2FsbFJl
dHVyblZhbHVlLCBjdGlPcFRocm93Tm90Q2F1Z2h0KSBhcmUgYWxzbyBhZGRlZCBhcworLy8gKGUu
Zy4gY3RpT3BUaHJvd05vdENhdWdodCkgYXJlIGFsc28gYWRkZWQgYXMKIC8vIGJ5dGVjb2Rlcywg
YW5kIHRoZSBDTG9vcCB3aWxsIHByb3ZpZGUgYnl0ZWNvZGUgaGFuZGxlcnMgZm9yIHRoZW0uCiAv
LwogLy8gSW4gdGhlIENMb29wLCB3ZSBjYW4gb25seSBkaXNwYXRjaCBpbmRpcmVjdGx5IHRvIHRo
ZXNlIGJ5dGVjb2RlcwpAQCAtNDM4LDIzICs0MzgsNiBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRl
KE9wY29kZUlEIGVudHJ5T3Bjb2RlSUQsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBWTSogdm0s
CiAjZW5kaWYKICAgICAgICAgfQogCi0gICAgICAgIC8vIEluIHRoZSBBU00gbGxpbnQsIGdldEhv
c3RDYWxsUmV0dXJuVmFsdWUoKSBpcyBhIHBpZWNlIG9mIGdsdWUKLSAgICAgICAgLy8gZnVuY3Rp
b24gcHJvdmlkZWQgYnkgdGhlIEpJVCAoc2VlIGppdC9KSVRPcGVyYXRpb25zLmNwcCkuCi0gICAg
ICAgIC8vIFdlIHNpbXVsYXRlIGl0IGhlcmUgd2l0aCBhIHBzZWR1by1vcGNvZGUgaGFuZGxlci4K
LSAgICAgICAgT0ZGTElORV9BU01fR0xVRV9MQUJFTChnZXRIb3N0Q2FsbFJldHVyblZhbHVlKQot
ICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgcGFydCBpbiBnZXRIb3N0Q2FsbFJldHVyblZh
bHVlV2l0aEV4ZWNTdGF0ZSgpOgotICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSB2bS0+aG9z
dENhbGxSZXR1cm5WYWx1ZTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgdDEg
PSByZXN1bHQudGFnKCk7Ci0gICAgICAgICAgICB0MCA9IHJlc3VsdC5wYXlsb2FkKCk7Ci0jZWxz
ZQotICAgICAgICAgICAgdDAgPSBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKLSNlbmRpZgotICAg
ICAgICAgICAgb3Bjb2RlID0gbHIub3Bjb2RlKCk7Ci0gICAgICAgICAgICBESVNQQVRDSF9PUENP
REUoKTsKLSAgICAgICAgfQotCiAjaWYgIUVOQUJMRShDT01QVVRFRF9HT1RPX09QQ09ERVMpCiAg
ICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXgg
YTYwMmFiZjAzMjgyYjEyMGQzYzYxY2VmNzk5NjFhMmEwOTAwMWY3ZS4uMDFhMWE5YTkxNDFjODlm
MDI2YTAxOTJmY2I5NjU5YmZiNDY2NDEwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTQyMiw2ICs0
MjIsMTggQEAgb3AoaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24sIG1hY3JvKCkKICAgICByZXQKIGVu
ZCkKIAorb3AobGxpbnRfZ2V0X2hvc3RfY2FsbF9yZXR1cm5fdmFsdWUsIG1hY3JvICgpCisgICAg
ZnVuY3Rpb25Qcm9sb2d1ZSgpCisgICAgcHVzaENhbGxlZVNhdmVzKCkKKyAgICBsb2FkcCBDYWxs
ZWVbY2ZyXSwgdDAKKyAgICBjb252ZXJ0Q2FsbGVlVG9WTSh0MCkKKyAgICBsb2FkaSBWTTo6ZW5j
b2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgKyBUYWdPZmZzZXRbdDBdLCB0MQorICAgIGxvYWRpIFZN
OjplbmNvZGVkSG9zdENhbGxSZXR1cm5WYWx1ZSArIFBheWxvYWRPZmZzZXRbdDBdLCB0MAorICAg
IHBvcENhbGxlZVNhdmVzKCkKKyAgICBmdW5jdGlvbkVwaWxvZ3VlKCkKKyAgICByZXQKK2VuZCkK
KwogbWFjcm8gZG9SZXR1cm5Gcm9tSG9zdEZ1bmN0aW9uKGV4dHJhU3RhY2tTcGFjZSkKICAgICBm
dW5jdGlvbkVwaWxvZ3VlKGV4dHJhU3RhY2tTcGFjZSkKICAgICByZXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXgg
OGI1ZjQyZDAwYzdiMTFiYmVkNDE2ZTg2ZDBlMmQ2MDJjYTI1YmM5My4uYWEyM2VjNjNhMzA5Mzkw
MzAzNTBmNjA4YjBiNmZhNDI5ODczZDU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTM1Myw2ICszNTMsMTYg
QEAgb3AoaGFuZGxlVW5jYXVnaHRFeGNlcHRpb24sIG1hY3JvICgpCiAgICAgcmV0CiBlbmQpCiAK
K29wKGxsaW50X2dldF9ob3N0X2NhbGxfcmV0dXJuX3ZhbHVlLCBtYWNybyAoKQorICAgIGZ1bmN0
aW9uUHJvbG9ndWUoKQorICAgIHB1c2hDYWxsZWVTYXZlcygpCisgICAgbG9hZHAgQ2FsbGVlW2Nm
cl0sIHQwCisgICAgY29udmVydENhbGxlZVRvVk0odDApCisgICAgbG9hZHEgVk06OmVuY29kZWRI
b3N0Q2FsbFJldHVyblZhbHVlW3QwXSwgdDAKKyAgICBwb3BDYWxsZWVTYXZlcygpCisgICAgZnVu
Y3Rpb25FcGlsb2d1ZSgpCisgICAgcmV0CitlbmQpCiAKIG1hY3JvIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKICAgICBhZGRwIFBCLCBQQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsSW5saW5lcy5oCmluZGV4IGU0MDRhNmNiOTRkZTY0ZjAyOTJkNDA4YjU1OTJlNjI1N2Ew
ZGFiMzIuLmQ0NzJhOTkxZmZmZmViOGRkZDdiNmZkOWEzMzlhMzFhNDkxMDNlOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKQEAgLTE2OSw3ICsx
NjksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogQUxXQVlTX0lOTElORSB2b2lkKiB0cnlBbGxv
Y2F0ZUNlbGxIZWxwZXIoSGVhcCYgaGVhcCwgc2l6ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0
KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBmYWlsdXJlTW9kZSkKIHsK
ICAgICBWTSYgdm0gPSBoZWFwLnZtKCk7Ci0gICAgQVNTRVJUKGRlZmVycmFsQ29udGV4dCB8fCAh
RGlzYWxsb3dHQzo6aXNJbkVmZmVjdE9uQ3VycmVudFRocmVhZCgpKTsKKyAgICBBU1NFUlQoZGVm
ZXJyYWxDb250ZXh0IHx8IGhlYXAuaXNEZWZlcnJlZCgpIHx8ICFEaXNhbGxvd0dDOjppc0luRWZm
ZWN0T25DdXJyZW50VGhyZWFkKCkpOwogICAgIEFTU0VSVChzaXplID49IHNpemVvZihUKSk7CiAg
ICAgSlNDZWxsKiByZXN1bHQgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihzdWJzcGFjZUZvcjxUPih2
bSktPmFsbG9jYXRlTm9uVmlydHVhbCh2bSwgc2l6ZSwgZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJl
TW9kZSkpOwogICAgIGlmIChmYWlsdXJlTW9kZSA9PSBBbGxvY2F0aW9uRmFpbHVyZU1vZGU6OlJl
dHVybk51bGwgJiYgIXJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCmluZGV4IDhlOWIxNjY5OWY1ZmYzMmQ4Mjk5YWI3OTA1MTJiMWU2NzZh
Njc4M2IuLmE3MWQ1OWNhMjk0ZmFlMzEwODQ4OWRjMDc2NDBmMGY4ZDAxODI2NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtODMxLDYg
KzgzMSw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFyaWFi
bGVPYmplY3QgewogICAgIFJlZ0V4cEdsb2JhbERhdGEmIHJlZ0V4cEdsb2JhbERhdGEoKSB7IHJl
dHVybiBtX3JlZ0V4cEdsb2JhbERhdGE7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IHJlZ0V4cEds
b2JhbERhdGFPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNHbG9iYWxPYmplY3Qs
IG1fcmVnRXhwR2xvYmFsRGF0YSk7IH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZW
TSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0dsb2JhbE9iamVjdCwgbV92bSk7IH0KKwog
I2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIEluc3BlY3Rvcjo6SlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyJiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1
cm4gKm1faW5zcGVjdG9yQ29udHJvbGxlci5nZXQoKTsgfQogICAgIEpTR2xvYmFsT2JqZWN0RGVi
dWdnYWJsZSYgaW5zcGVjdG9yRGVidWdnYWJsZSgpIHsgcmV0dXJuICptX2luc3BlY3RvckRlYnVn
Z2FibGUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCA5ODc3
NmZjOGNlNWRlZDZmYzhhZGYxMGMzNGE1ZDkyZTU4ZDFiN2VkLi5jYmM3MDZmZjQ4NjAwMGFkNjhm
MGU2ZDM0ODU3NDlmYzY5YmVkNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3Bw
CkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiSGFzT3duUHJvcGVydHlDYWNoZS5oIgogI2lu
Y2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJIZWFwUHJvZmlsZXIuaCIKLSNpbmNsdWRlICJIb3N0
Q2FsbFJldHVyblZhbHVlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJJ
bnRsQ2FjaGUuaCIKICNpbmNsdWRlICJJbnRsQ29sbGF0b3IuaCIKQEAgLTQ5MCwxMCArNDg5LDYg
QEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlLCBXVEY6OlJ1bkxvb3Aq
IHJ1bkxvb3AsIGJvb2wqIHN1Y2Nlc3MpCiAKICAgICBUaHJlYWQ6OmN1cnJlbnQoKS5zZXRDdXJy
ZW50QXRvbVN0cmluZ1RhYmxlKGV4aXN0aW5nRW50cnlBdG9tU3RyaW5nVGFibGUpOwogICAgIAot
I2lmICFFTkFCTEUoQ19MT09QKQotICAgIGluaXRpYWxpemVIb3N0Q2FsbFJldHVyblZhbHVlKCk7
IC8vIFRoaXMgaXMgbmVlZGVkIHRvIGNvbnZpbmNlIHRoZSBsaW5rZXIgbm90IHRvIGRyb3AgaG9z
dCBjYWxsIHJldHVybiBzdXBwb3J0LgotI2VuZGlmCi0gICAgCiAgICAgR2lnYWNhZ2U6OmFkZFBy
aW1pdGl2ZURpc2FibGVDYWxsYmFjayhwcmltaXRpdmVHaWdhY2FnZURpc2FibGVkQ2FsbGJhY2ss
IHRoaXMpOwogCiAgICAgaGVhcC5ub3RpZnlJc1NhZmVUb0NvbGxlY3QoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCmluZGV4IDUyODQ5ODQ2YjVhNDhhYmFiYWYxOTEwZDUwN2Y0MzhmNjJk
ZTQ2NWIuLjQxMjkyNDdjZDI0NTZkNjc1Njk3MDdjOTJiNmM3ZmMyMzljMmZhMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtODUzLDYgKzg1MywxMSBAQCBjbGFzcyBWTSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9k
ZTxWTT4gewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFZNLCB0b3BFbnRyeUZyYW1l
KTsKICAgICB9CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mRW5jb2RlZEhvc3RDYWxs
UmV0dXJuVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihWTSwg
ZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUpOworICAgIH0KKwogICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZIZWFwQmFycmllclRocmVzaG9sZCgpCiAgICAgewogICAgICAgICByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKFZNLCBoZWFwKSArIE9CSkVDVF9PRkZTRVRPRihIZWFwLCBtX2JhcnJp
ZXJUaHJlc2hvbGQpOwpAQCAtOTMzLDcgKzkzOCw3IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBKU1ZhbHVlIGhvc3RDYWxsUmV0dXJuVmFsdWU7CisgICAg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhvc3RDYWxsUmV0dXJuVmFsdWUgeyB9OwogICAgIHVuc2ln
bmVkIHZhcmFyZ3NMZW5ndGg7CiAgICAgQ2FsbEZyYW1lKiBuZXdDYWxsRnJhbWVSZXR1cm5WYWx1
ZTsKICAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZUZvckNhdGNoOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>