<?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>209469</bug_id>
          
          <creation_ts>2020-03-24 02:34:39 -0700</creation_ts>
          <short_desc>Filter DOMCache records in network process to reduce the number of records being sent to WebProcess</short_desc>
          <delta_ts>2020-03-27 09:11:28 -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>Service Workers</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1633264</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-24 02:34:39 -0700</bug_when>
    <thetext>Filter DOMCache records in network process to reduce the number of records being sent to WebProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633265</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-24 02:34:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/55207565&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633268</commentid>
    <comment_count>2</comment_count>
      <attachid>394357</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-24 02:39:48 -0700</bug_when>
    <thetext>Created attachment 394357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633273</commentid>
    <comment_count>3</comment_count>
      <attachid>394359</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-24 04:13:02 -0700</bug_when>
    <thetext>Created attachment 394359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634054</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-25 14:16:47 -0700</bug_when>
    <thetext>Ping review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634529</commentid>
    <comment_count>5</comment_count>
      <attachid>394359</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-26 13:20:32 -0700</bug_when>
    <thetext>Comment on attachment 394359
Patch

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

&gt; Source/WebCore/Modules/cache/DOMCache.h:77
&gt; +    enum class ShouldRetrieveResponses { No, Yes };

: bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634807</commentid>
    <comment_count>6</comment_count>
      <attachid>394719</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-27 08:06:47 -0700</bug_when>
    <thetext>Created attachment 394719
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634818</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-27 09:11:27 -0700</bug_when>
    <thetext>Committed r259115: &lt;https://trac.webkit.org/changeset/259115&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394719.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394357</attachid>
            <date>2020-03-24 02:39:48 -0700</date>
            <delta_ts>2020-03-24 04:12:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209469-20200324103945.patch</filename>
            <type>text/plain</type>
            <size>36935</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc0OTljYzc4ZDcwYjNk
ZWIyOTQxM2U4ZWZlODlhYjQyMjIzY2IwNy4uMzc3YTk3NWMwY2I5MTk1ZjY5YWQ5NTI4MzFiYzIw
NDNkYWM1MmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTAzLTI0ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWx0ZXIgRE9NQ2FjaGUg
cmVjb3JkcyBpbiBuZXR3b3JrIHByb2Nlc3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcmVjb3Jk
cyBiZWluZyBzZW50IHRvIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTQ2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTUyMDc1
NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5z
dGVhZCBvZiByZXRyaWV2aW5nIGFsbCByZWNvcmRzIGFuZCBmaWx0ZXJpbmcgdGhlbSBpbiBXZWJQ
cm9jZXNzLCBXZWJQcm9jZXNzIGlzIG5vdworICAgICAgICBzZW5kaW5nIGZpbHRlcmluZyBvcHRp
b25zIHRvIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBJbiBjYXNlIG9mIGtleXMsIGFzayBuZXR3
b3JrIHByb2Nlc3MgdG8gbm90IHNlbmQgYmFjayBhbnkgcmVzcG9uc2UuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6
ZG9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6bWF0Y2hBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ2FjaGU6OmtleXMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6
OnF1ZXJ5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnJldHJpZXZlUmVjb3Jk
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6cXVlcnlDYWNoZVdpdGhU
YXJnZXRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hl
Lmg6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJl
dHJpZXZlUmVjb3Jkcyk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDoKKwogMjAyMC0wMy0y
MyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIGJs
YW5rVVJMIHRvIGFib3V0QmxhbmtVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzBmOTFjM2NmZjZhODZlZjViOTZh
MmY5ZDc3OTBkZGJlOGE4ZDlhNy4uMDlhMWJmMGY4NmFkMWNhMGEzMWEwMjVkNDBiMWQyODdmZDBi
Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0wMy0yNCAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsdGVyIERPTUNhY2hlIHJlY29yZHMg
aW4gbmV0d29yayBwcm9jZXNzIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJlY29yZHMgYmVpbmcg
c2VudCB0byBXZWJQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDk0NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1MjA3NTY1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlY2VpdmUgbmV3
IHJldHJpZXZlIHJlY29yZCBvcHRpb25zIGFuZCBtYWtlIHVzZSBvZiB0aGVtIHRvIGZpbHRlciB0
aGUgcmVjb3JkcyBzZW50IGJhY2sgdG8gdGhlIFdlYlByb2Nlc3MuCisgICAgICAgIFRoaXMgaW5j
bHVkZXMgZmlsdGVyaW5nIHRoZSByZWNvcmRzIGZvciBhIGdpdmVuIHJlcXVlc3RzLgorICAgICAg
ICBUaGlzIGluY2x1ZGVzIHJlbW92aW5nIHJlc3BvbnNlcyBpbiBjYXNlIHRoZSByZXF1ZXN0IGlz
IG1hZGUgdG8gZ2F0aGVyIGFsbCByZXF1ZXN0cyBmb3IgQ2FjaGUua2V5cygpLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJldHJpZXZlUmVjb3Jkcyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlOjpyZXRyaWV2ZVJlY29yZHMpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnJldHJp
ZXZlUmVjb3Jkcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMC0wMy0y
MyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIGJs
YW5rVVJMIHRvIGFib3V0QmxhbmtVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDlmNTU2NTQ2Zjhk
NmRjODE3ZGJkNGQ4NjMzM2ViMTQ1OGE4MmNlZDkuLjlhZDUzNzg1MzI0YmIzNGMwZGRiOWRjYzEx
NzBjOGNkZDRhMzY2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUsNiArMTUsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9jYWNoZS9DYWNo
ZVF1ZXJ5T3B0aW9ucy5oCiAgICAgTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgKICAgICBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmgKKyAgICBNb2R1bGVzL2NhY2hl
L1JldHJpZXZlUmVjb3Jkc09wdGlvbnMuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1DbGllbnQuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDYzNmYwZGYyYzQzOTk4YzU4MjBiZjJmNWZmZjVi
ZTBiNThmNDBhZDAuLjc3ZGFkNDg1Y2MwYzVjZjc0NWZjMmJiMWMwMDFhZTFiNTljMTkxYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oCkBAIC0yNyw2ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRP
TUNhY2hlRW5naW5lLmgiCisjaW5jbHVkZSAiUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVy
Q2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXRyaWV2ZUNhY2hlcyhjb25zdCBD
bGllbnRPcmlnaW4mLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJbmZvc0NhbGxiYWNrJiYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCByZXRyaWV2ZVJlY29y
ZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBVUkwmLCBET01DYWNoZUVuZ2luZTo6
UmVjb3Jkc0NhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYs
IERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
PSAwOwogCkBAIC02Myw0ICs2NCw1IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgdWludDY0X3Q+IG1fb3BhcXVlUmVzcG9uc2VUb1NpemVXaXRoUGFkZGluZ01h
cDsKIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5jcHAKaW5kZXggNGU0YTMzNGE5ZTdjMjViYTAzNWZiYmY3ZmUxNjFhZDE1
MDk2MzIwOC4uNjZlYWUzZmY1NjU0ZDUzOTE3OWRlNWY0NGRhZWQ2NWVmMjliOWE5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAgLTkyLDkgKzkyLDkgQEAg
dm9pZCBET01DYWNoZTo6ZG9NYXRjaChSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRp
b25zJiYgb3B0aW9ucywgTWF0Y2hDYWwKICAgICAgICAgY2FsbGJhY2sobnVsbHB0cik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0aW9u
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgcXVlcnlDYWNoZShyZXF1ZXN0LmdldCgpLCBX
VEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0byByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0
aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsKKyAgICBxdWVyeUNh
Y2hlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzOjpZ
ZXMsIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAg
ICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC0xMjAsMTcgKzEyMCwxNyBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25h
bDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogICAgIGlm
IChVTkxJS0VMWSghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUmVmUHRyPEZldGNoUmVxdWVzdD4gcmVxdWVzdDsKKyAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVzb3VyY2VSZXF1ZXN0OwogICAgIGlmIChpbmZvKSB7CiAgICAgICAgIGF1dG8gcmVxdWVzdE9y
RXhjZXB0aW9uID0gcmVxdWVzdEZyb21JbmZvKFdURk1vdmUoaW5mby52YWx1ZSgpKSwgb3B0aW9u
cy5pZ25vcmVNZXRob2QpOwogICAgICAgICBpZiAocmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2Vw
dGlvbigpKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoeyB9KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0aW9u
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0
T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCktPnJlc291cmNlUmVxdWVzdCgpOwogICAg
IH0KIAotICAgIFJlY29yZHNDYWxsYmFjayBjYWxsYmFjayA9IFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgcXVlcnlDYWNoZShX
VEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2Vz
OjpZZXMsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVj
dChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKQEAgLTEzOCwxMSArMTM4LDcgQEAgdm9pZCBE
T01DYWNoZTo6bWF0Y2hBbGwoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVy
eU9wdGlvbnMmJiBvcHRpb24KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByb21pc2UucmVz
b2x2ZShjbG9uZVJlc3BvbnNlcyhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKICAgICAg
ICAgfSk7Ci0gICAgfTsKLQotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJuIHJldHJp
ZXZlUmVjb3JkcyhVUkwgeyB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgcXVlcnlDYWNoZShy
ZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUoY2FsbGJh
Y2spKTsKKyAgICB9KTsKIH0KIAogdm9pZCBET01DYWNoZTo6YWRkKFJlcXVlc3RJbmZvJiYgaW5m
bywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKQEAgLTQyNSwxNyArNDIxLDE3
IEBAIHZvaWQgRE9NQ2FjaGU6OmtleXMoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2Fj
aGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBLCiAgICAgaWYgKFVOTElLRUxZKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8RmV0Y2hSZXF1
ZXN0PiByZXF1ZXN0OworICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3Q7CiAgICAg
aWYgKGluZm8pIHsKICAgICAgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSByZXF1ZXN0RnJv
bUluZm8oV1RGTW92ZShpbmZvLnZhbHVlKCkpLCBvcHRpb25zLmlnbm9yZU1ldGhvZCk7CiAgICAg
ICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZShWZWN0b3I8UmVmPEZldGNoUmVxdWVzdD4+IHsgfSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3RPckV4Y2Vw
dGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgcmVzb3VyY2VSZXF1ZXN0ID0gcmVx
dWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsK
ICAgICB9CiAKLSAgICBSZWNvcmRzQ2FsbGJhY2sgY2FsbGJhY2sgPSBbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIHF1ZXJ5Q2Fj
aGUoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBvcHRpb25zLCBTaG91bGRSZXRyaWV2ZVJlc3Bv
bnNlczo6Tm8sIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKQEAgLTQ0NywxOSArNDQzLDEzIEBAIHZv
aWQgRE9NQ2FjaGU6OmtleXMoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVy
eU9wdGlvbnMmJiBvcHRpb25zLCBLCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlcXVl
c3QoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcmVjb3JkKTsKICAgICAgICAgICAgIH0pKTsK
ICAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJu
IHJldHJpZXZlUmVjb3JkcyhVUkwgeyB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgcXVlcnlD
YWNoZShyZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICB9KTsKIH0KIAotdm9pZCBET01DYWNoZTo6cmV0cmlldmVSZWNvcmRz
KGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRE9NQ2Fj
aGU6OnF1ZXJ5Q2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgQ2FjaGVRdWVy
eU9wdGlvbnMmIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzIHNob3VsZFJldHJpZXZl
UmVzcG9uc2VzLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAgICBVUkwgcmV0cmll
dmVVUkwgPSB1cmw7Ci0gICAgcmV0cmlldmVVUkwucmVtb3ZlUXVlcnlBbmRGcmFnbWVudElkZW50
aWZpZXIoKTsKLQotICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVSZWNvcmRzKG1faWRlbnRpZmll
ciwgcmV0cmlldmVVUkwsIFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2
aXR5KCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyByZXRyaWV2ZU9wdGlvbnMgeyBX
VEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLmlnbm9yZVNlYXJjaCwgb3B0aW9ucy5pZ25vcmVNZXRo
b2QsIG9wdGlvbnMuaWdub3JlVmFyeSwgc2hvdWxkUmV0cmlldmVSZXNwb25zZXMgPT0gU2hvdWxk
UmV0cmlldmVSZXNwb25zZXM6OlllcyB9OworICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVSZWNv
cmRzKG1faWRlbnRpZmllciwgcmV0cmlldmVPcHRpb25zLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAobV9pc1N0b3BwZWQpIHsK
ICAgICAgICAgICAgIGNhbGxiYWNrKERPTUNhY2hlRW5naW5lOjpjb252ZXJ0VG9FeGNlcHRpb25B
bmRMb2coc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBET01DYWNoZUVuZ2luZTo6RXJyb3I6OlN0
b3BwZWQpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ3MiwzMiArNDYyLDcgQEAgdm9pZCBE
T01DYWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7
CiAgICAgfSk7Ci19CiAKLXZvaWQgRE9NQ2FjaGU6OnF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVz
dD4mJiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHNDYWxsYmFj
ayYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gdXJsID0gcmVxdWVzdC0+dXJsKCk7Ci0gICAgcmV0
cmlldmVSZWNvcmRzKHVybCwgW3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRp
b25zID0gV1RGTW92ZShvcHRpb25zKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKHF1ZXJ5Q2FjaGVX
aXRoVGFyZ2V0U3RvcmFnZShyZXF1ZXN0LmdldCgpLCBvcHRpb25zLCByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkpKTsKLSAgICB9KTsKLX0KLQotVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNv
cmQ+IERPTUNhY2hlOjpxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgVmVj
dG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiB0YXJnZXRTdG9yYWdlKQotewotICAgIGlmICgh
b3B0aW9ucy5pZ25vcmVNZXRob2QgJiYgcmVxdWVzdC5tZXRob2QoKSAhPSAiR0VUIikKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiByZWNv
cmRzOwotICAgIGZvciAoYXV0byYgcmVjb3JkIDogdGFyZ2V0U3RvcmFnZSkgewotICAgICAgICAv
LyBXZSBuZWVkIHRvIHBhc3MgdGhlIHJlc291cmNlIHJlcXVlc3Qgd2l0aCBhbGwgY29ycmVjdCBo
ZWFkZXJzIGhlbmNlIHdoeSB3ZSBjYWxsIHJlc291cmNlUmVxdWVzdCgpLgotICAgICAgICBpZiAo
RE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRjaChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCByZWNvcmQucmVxdWVzdCwgcmVjb3JkLnJlc3BvbnNlLCBvcHRpb25zKSkKLSAgICAgICAgICAg
IHJlY29yZHMuYXBwZW5kKHJlY29yZC5jb3B5KCkpOwotICAgIH0KLSAgICByZXR1cm4gcmVjb3Jk
czsKIH0KIAogdm9pZCBET01DYWNoZTo6YmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hS
ZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKaW5kZXggNmRhY2MzMTU4NTM3NWNiY2JmNjE0OGE4
YTU1MjFjMTBlZWY2NDAzMy4uZWZlYzcwY2ZiYzA2NjY0Njg1ZDMwODVlZGYzNTU5NTQ2N2QwMTg0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaApAQCAtNzQsMTAgKzc0
LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHB1dFdpdGhSZXNwb25zZURhdGEoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYsIFJlZjxGZXRjaFJlcXVlc3Q+JiYsIFJlZjxGZXRjaFJlc3BvbnNl
PiYmLCBFeGNlcHRpb25PcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mJik7CiAKKyAgICBlbnVtIGNs
YXNzIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzIHsgTm8sIFllcyB9OwogICAgIHVzaW5nIFJlY29y
ZHNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPERP
TUNhY2hlRW5naW5lOjpSZWNvcmQ+PiYmKT47Ci0gICAgdm9pZCByZXRyaWV2ZVJlY29yZHMoY29u
c3QgVVJMJiwgUmVjb3Jkc0NhbGxiYWNrJiYpOwotICAgIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6
UmVjb3JkPiBxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1ZXN0Jiwg
Y29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZD4mKTsKLSAgICB2b2lkIHF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVzdD4mJiwgQ2FjaGVR
dWVyeU9wdGlvbnMmJiwgUmVjb3Jkc0NhbGxiYWNrJiYpOworICAgIHZvaWQgcXVlcnlDYWNoZShS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBTaG91bGRSZXRyaWV2
ZVJlc3BvbnNlcywgUmVjb3Jkc0NhbGxiYWNrJiYpOworCiAgICAgdm9pZCBiYXRjaERlbGV0ZU9w
ZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKTsKICAgICB2b2lkIGJhdGNo
UHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBET01DYWNo
ZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYpOwogICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24oVmVjdG9yPERPTUNh
Y2hlRW5naW5lOjpSZWNvcmQ+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMjA2YzI0MThlOTg3
ZmVkZmRhMjEwMWU2ZWJhNWY1YTViYTBhZjNlZi4uYmExY2I1MGYzMmNiZjlmOTkzNGZlZmRhYTRh
MWNjOGE2MDAxMDZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0xOTUsMTMgKzE5
NSwxMyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlQ2FjaGVz
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudAogICAgICAgICBjYWxsYmFjayhXVEZNb3Zl
KHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJp
ZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgdXJsLCBSZWNv
cmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmll
dmVSZWNvcmRzT3B0aW9ucyYgb3B0aW9ucywgUmVjb3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7
CiAgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlm
aWVyOwogICAgIG1fcmV0cmlldmVSZWNvcmRzUGVuZGluZ1JlcXVlc3RzLmFkZChyZXF1ZXN0SWRl
bnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbd29y
a2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRocmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVu
dGlmaWVyLCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7Ci0gICAgICAgIG1h
aW5UaHJlYWRDb25uZWN0aW9uLT5yZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCB1cmws
IFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVy
XShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVh
ZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRocmVhZCgpKSwgbWFpblRocmVhZENv
bm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2Fj
aGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3JkcyhjYWNoZUlk
ZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCks
IHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3Jlc3Vs
dCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKHJlc3VsdCksIHJlcXVlc3RJZGVudGlm
aWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLnJldHJpZXZl
UmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVj
b3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQpKSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29w
OjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMTE5ZDRjYzYxMjA4
M2RhNzI4NWY0Zjc5YzIyZGU1OWM5YjBjNGJmYi4uZTA2MWVmZjI4NTM2MWIwNzFiNjJiNmMzOGU2
MDQxMGVmZjJhODE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNh
Y2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJl
dHJpZXZlQ2FjaGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIs
IERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgZmluYWw7CiAKLSAgICB2b2lk
IHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIERP
TUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2
ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJlY29yZHNP
cHRpb25zJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgRE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJh
dGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVj
b3JkPiYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGRjYTU1YTQxZTkxZmZkZjE2ZTllNTM4ZjZmNjNkMzNlZTE3NTY1ZWMuLjVkNGRl
NWZjY2JiMWRhMjRlMDQ4MWExODViN2NkNDY4YWEyYmU0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMTAsNiArMTExMCw3
IEBACiAJCTQxODZCRDQwMjEzRUUzNDUwMDAxODI2RiAvKiBMaWJXZWJSVENSdHBSZWNlaXZlckJh
Y2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFEMUEwNEEyMTNFRERGRTAwNjNGQjZCIC8qIExpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5j
cHAgKi87IH07CiAJCTQxODZCRDRFMjE0MEI5RTgwMDAxODI2RiAvKiBMaWJXZWJSVENSdHBUcmFu
c2NlaXZlckJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE4NkJENEQyMTQwQjlFODAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZC5jcHAgKi87IH07CiAJCTQxODg1QjkzMTFCNkZEQTYwMDMzODNCQiAvKiBGb3Jt
U3VibWlzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4OTM4QjIyNDI5RjlC
NDAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODkzOEFGMjQyOUY5QUIwMDdGREM0MSAvKiBS
ZXRyaWV2ZVJlY29yZHNPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDE4QTA2RDAxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4
QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oICovOyB9OwogCQk0MThG
ODgwNTBGRjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1
IC8qIEpTQWJzdHJhY3RXb3JrZXIuaCAqLzsgfTsKIAkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNG
IC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8q
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tICovOyB9OwpAQCAtNzQ4NCw2ICs3
NDg1LDcgQEAKIAkJNDE4NkJENEQyMTQwQjlFODAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5z
Y2VpdmVyQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldl
YlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Np
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybVN1Ym1pc3Np
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTg5MzhBRjI0MjlGOUFCMDA3
RkRDNDEgLyogUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXRyaWV2ZVJlY29yZHNPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNGMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVu
dERpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZl
bnREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QzM5NTIx
QzhEQUM3QjAwNTFDOEEzIC8qIERPTVdpbmRvd0ZldGNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0ZldGNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE4MjExLDYgKzE4MjEzLDcgQEAKIAkJCQk0MUZCMjc4RTFGMzRDMjgyMDA3
OTU0ODcgLyogRE9NV2luZG93Q2FjaGVzLmNwcCAqLywKIAkJCQk0MUZCMjc4QzFGMzRDMjgyMDA3
OTU0ODcgLyogRE9NV2luZG93Q2FjaGVzLmggKi8sCiAJCQkJNDEzODBDMkIxRjM0M0UyRjAwMTU1
RkRBIC8qIERPTVdpbmRvd0NhY2hlcy5pZGwgKi8sCisJCQkJNDE4OTM4QUYyNDI5RjlBQjAwN0ZE
QzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlvbnMuaCAqLywKIAkJCQk0MUE3RDM0RjFGNDM4RDEw
MDA4OTg4REUgLyogV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNDFB
N0QzNTAxRjQzOEQxMDAwODk4OERFIC8qIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCAq
LywKIAkJCQk0MUZCMjc4RjFGMzRDMjgyMDA3OTU0ODcgLyogV29ya2VyR2xvYmFsU2NvcGVDYWNo
ZXMuY3BwICovLApAQCAtMzE5NzYsNiArMzE5NzksNyBAQAogCQkJCUUzNzdGRTREMURBREUxNjUw
MENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTRGRTczMTBB
MjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0RkU3
MzMwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxODkzOEIyMjQyOUY5QjQwMDdGREM0MSAvKiBSZXRyaWV2ZVJlY29yZHNPcHRpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTRGRTczNTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NzIxQjA5NzdEM0MwMDA1ODI2RDkgLyog
Tm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTYzMTg5QUUzMEU4M0EzMzMwMDAxMkU0MSAv
KiBOb2RlUmFyZURhdGEuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNo
ZVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IDk5YWZjMmE3ZTUzZjEzODgzODk4NmQ1NzFiMTczMDVj
ZjNlNDI4YjAuLmVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3Qg
U3RyaW5nJiwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFs
IHsgfQogICAgICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hl
SWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2Fj
aGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJ
bmZvc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1
aW50NjRfdCwgY29uc3QgVVJMJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBm
aW5hbCB7IH0KKyAgICAgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QsIGNvbnN0IFJl
dHJpZXZlUmVjb3Jkc09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYp
IGZpbmFsIHsgfQogICAgICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90LCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBET01DYWNoZUVuZ2lu
ZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBi
YXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+
JiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsg
fQogICAgICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZS5jcHAKaW5kZXggZDZiZWRhNjNmN2NkYTlmNmNiYWVlZTgwZGIyZTk3MTc3NjdjOTdjZi4uODg5
NTMwMzEzNmJhOWQ2MDg1ZWIwOTU3MDlhOGQzN2M3ZjE0NjNhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVF1ZXJ5T3B0aW9u
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dy
ZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xMzMsMTAgKzEz
NCwxMCBAQCB2b2lkIEVuZ2luZTo6cmV0cmlldmVDYWNoZXMoTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaQogfQogCiAKLXZvaWQgRW5naW5lOjpyZXRy
aWV2ZVJlY29yZHMoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYgdXJsLCBXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2lu
ZTo6cmV0cmlldmVSZWNvcmRzKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
dHJpZXZlUmVjb3Jkc09wdGlvbnMmJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
UmVjb3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgZnJvbShuZXR3b3JrUHJvY2Vzcywg
c2Vzc2lvbklELCBbY2FjaGVJZGVudGlmaWVyLCB1cmwgPSBXVEZNb3ZlKHVybCksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGVuZ2luZSkgbXV0YWJsZSB7Ci0gICAgICAgIGVu
Z2luZS5yZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKHVybCksIFdURk1v
dmUoY2FsbGJhY2spKTsKKyAgICBmcm9tKG5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uSUQsIFtjYWNo
ZUlkZW50aWZpZXIsIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShhdXRvJiBlbmdpbmUpIG11dGFibGUgeworICAgICAgICBlbmdpbmUucmV0
cmlldmVSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShj
YWxsYmFjaykpOwogICAgIH0pOwogfQogCkBAIC0zMTEsMTQgKzMxMiwxNCBAQCB2b2lkIEVuZ2lu
ZTo6cmV0cmlldmVDYWNoZXMoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIHVp
bnQ2NF90IHVwZGF0ZQogICAgIH0pOwogfQogCi12b2lkIEVuZ2luZTo6cmV0cmlldmVSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3ZvaWQgRW5naW5lOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYgb3B0aW9ucywgUmVjb3Jk
c0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgcmVhZENhY2hlKGNhY2hlSWRlbnRpZmllciwg
W3VybCA9IFdURk1vdmUodXJsKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FjaGVP
ckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICByZWFkQ2FjaGUoY2FjaGVJZGVudGlmaWVy
LCBbb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKENhY2hlT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0
Lmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChyZXN1
bHQuZXJyb3IoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJl
c3VsdC52YWx1ZSgpLmdldCgpLnJldHJpZXZlUmVjb3Jkcyh1cmwsIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICAgICAgcmVzdWx0LnZhbHVlKCkuZ2V0KCkucmV0cmlldmVSZWNvcmRzKG9wdGlvbnMs
IFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKaW5kZXggMjJl
ZTY2YmNhNDc2YmNlMmJjYTRiMmQ1MWRhY2U5NTQ3YWQ3MTdjZi4uMTk0NGE1Yzc5MmQ4ZDc5OWUy
OWRhYmM4NDY2NjdiNjY4NjJiYjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCkBAIC00NCw2ICs0NCwxMCBA
QCBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIENhbGxiYWNrQWdncmVnYXRvcjsKIH07CiAKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zOworfQorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CkBAIC02NSw3ICs2OSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZW1vdmUoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNl
c3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZUVuZ2lu
ZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJik7CiAgICAgc3RhdGljIHZvaWQgcmV0cmlldmVD
YWNoZXMoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpD
YWNoZUluZm9zQ2FsbGJhY2smJik7CiAKLSAgICBzdGF0aWMgdm9pZCByZXRyaWV2ZVJlY29yZHMo
TmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBVUkwmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKTsKKyAg
ICBzdGF0aWMgdm9pZCByZXRyaWV2ZVJlY29yZHMoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Np
b25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNP
cHRpb25zJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJik7CiAg
ICAgc3RhdGljIHZvaWQgcHV0UmVjb3JkcyhOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklE
LCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2lu
ZTo6UmVjb3JkPiYmLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnND
YWxsYmFjayYmKTsKICAgICBzdGF0aWMgdm9pZCBkZWxldGVNYXRjaGluZ1JlY29yZHMoTmV0d29y
a1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2Vi
Q29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAKQEAg
LTExMSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNZW1vcnlSZXByZXNlbnRh
dGlvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpET01DYWNoZUVuZ2lu
ZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYpOwogICAgIFN0cmluZyByZXByZXNlbnRhdGlvbigpOwog
Ci0gICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBVUkwm
JiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKTsKKyAgICB2b2lk
IHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJp
ZXZlUmVjb3Jkc09wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxs
YmFjayYmKTsKICAgICB2b2lkIHB1dFJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBW
ZWN0b3I8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgV2ViQ29yZTo6RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAgICAgdm9pZCBkZWxldGVN
YXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDYWNoZS5jcHAKaW5kZXggYmExMzRjZjRjYWIwMDVmMzQyMTM4OWQ1NTkwMTY5ZWM0N2FkNGU5
ZC4uNWQ0MzUwNWU3MWY3NWJjY2FiMzI0ZTgzNGU3YmQyNzI5OWIwODJlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlUXVlcnlPcHRpb25zLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVFRQUGFyc2Vycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmV0cmll
dmVSZWNvcmRzT3B0aW9ucy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
MjgxLDE4ICsyODIsMjYgQEAgdm9pZCBDYWNoZTo6cmV0cmlldmVSZWNvcmQoY29uc3QgUmVjb3Jk
SW5mb3JtYXRpb24mIHJlY29yZCwgUmVmPFJlYWRSZWNvcmRUYXNrQ28KICAgICB9KTsKIH0KIAot
dm9pZCBDYWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJh
Y2smJiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGU6OnJldHJpZXZlUmVjb3Jkcyhjb25zdCBSZXRyaWV2
ZVJlY29yZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsK
ICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6T3Blbik7CiAKLSAgICBhdXRvIHRhc2tDb3Vu
dGVyID0gUmVhZFJlY29yZFRhc2tDb3VudGVyOjpjcmVhdGUoW2NhY2hlcyA9IG1ha2VSZWYobV9j
YWNoZXMpLCBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFZlY3Rvcjx1aW50NjRfdD4mJiBmYWls
ZWRSZWNvcmRJZGVudGlmaWVycykgbXV0YWJsZSB7CisgICAgYXV0byB0YXNrQ291bnRlciA9IFJl
YWRSZWNvcmRUYXNrQ291bnRlcjo6Y3JlYXRlKFtjYWNoZXMgPSBtYWtlUmVmKG1fY2FjaGVzKSwg
aWRlbnRpZmllciA9IG1faWRlbnRpZmllciwgc2hvdWxkUHJvdmlkZVJlc3BvbnNlID0gb3B0aW9u
cy5zaG91bGRQcm92aWRlUmVzcG9uc2UsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKFZl
Y3RvcjxSZWNvcmQ+JiYgcmVjb3JkcywgVmVjdG9yPHVpbnQ2NF90PiYmIGZhaWxlZFJlY29yZElk
ZW50aWZpZXJzKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byogY2FjaGUgPSBjYWNoZXMtPmZpbmQo
aWRlbnRpZmllcik7CiAgICAgICAgIGlmIChjYWNoZSkKICAgICAgICAgICAgIGNhY2hlLT5yZW1v
dmVGcm9tUmVjb3JkTGlzdChmYWlsZWRSZWNvcmRJZGVudGlmaWVycyk7CisKKyAgICAgICAgaWYg
KCFzaG91bGRQcm92aWRlUmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcmVjb3Jk
IDogcmVjb3JkcykgeworICAgICAgICAgICAgICAgIHJlY29yZC5yZXNwb25zZSA9IHsgfTsKKyAg
ICAgICAgICAgICAgICByZWNvcmQucmVzcG9uc2VCb2R5ID0gbnVsbHB0cjsKKyAgICAgICAgICAg
ICAgICByZWNvcmQucmVzcG9uc2VCb2R5U2l6ZSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZWNvcmRzKSk7CiAgICAgfSk7CiAKLSAgICBp
ZiAodXJsLmlzTnVsbCgpKSB7CisgICAgaWYgKG9wdGlvbnMucmVxdWVzdC51cmwoKS5pc051bGwo
KSkgewogICAgICAgICBmb3IgKGF1dG8mIHJlY29yZHMgOiBtX3JlY29yZHMudmFsdWVzKCkpIHsK
ICAgICAgICAgICAgIGZvciAoYXV0byYgcmVjb3JkIDogcmVjb3JkcykKICAgICAgICAgICAgICAg
ICByZXRyaWV2ZVJlY29yZChyZWNvcmQsIHRhc2tDb3VudGVyLmNvcHlSZWYoKSk7CkBAIC0zMDAs
MTIgKzMwOSwxOCBAQCB2b2lkIENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiB1cmws
IFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgYXV0byogcmVjb3JkcyA9IHJlY29yZHNGcm9tVVJMKHVybCk7CisgICAgaWYgKCFvcHRpb25z
Lmlnbm9yZU1ldGhvZCAmJiBvcHRpb25zLnJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiByZWNvcmRzID0gcmVjb3Jkc0Zyb21VUkwob3B0
aW9ucy5yZXF1ZXN0LnVybCgpKTsKICAgICBpZiAoIXJlY29yZHMpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGZvciAoYXV0byYgcmVjb3JkIDogKnJlY29yZHMpCi0gICAgICAgIHJldHJpZXZlUmVj
b3JkKHJlY29yZCwgdGFza0NvdW50ZXIuY29weVJlZigpKTsKKyAgICBDYWNoZVF1ZXJ5T3B0aW9u
cyBxdWVyeU9wdGlvbnMgeyBvcHRpb25zLmlnbm9yZVNlYXJjaCwgb3B0aW9ucy5pZ25vcmVNZXRo
b2QsIG9wdGlvbnMuaWdub3JlVmFyeSwgeyB9IH07CisgICAgZm9yIChhdXRvJiByZWNvcmQgOiAq
cmVjb3JkcykgeworICAgICAgICBpZiAoRE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRjaChv
cHRpb25zLnJlcXVlc3QsIHJlY29yZC51cmwsIHJlY29yZC5oYXNWYXJ5U3RhciwgcmVjb3JkLnZh
cnlIZWFkZXJzLCBxdWVyeU9wdGlvbnMpKQorICAgICAgICAgICAgcmV0cmlldmVSZWNvcmQocmVj
b3JkLCB0YXNrQ291bnRlci5jb3B5UmVmKCkpOworICAgIH0KIH0KIAogUmVjb3JkSW5mb3JtYXRp
b24mIENhY2hlOjphZGRSZWNvcmQoVmVjdG9yPFJlY29yZEluZm9ybWF0aW9uPiogcmVjb3Jkcywg
Y29uc3QgUmVjb3JkJiByZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKaW5kZXggN2QxZmU0
YzdkMDk4OTBhM2E4MWQ0YTMxMzEzYTBlMGE5NzQ2YjQ3My4uOGY3OGQ3NzBkYzMwMDYyMzJhNWI5
MDQzMzljMTQxOWY4OWYyYTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaApAQCAtMzAsNiAr
MzAsMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBSZXRyaWV2ZVJlY29yZHNP
cHRpb25zOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogbmFtZXNwYWNlIENhY2hlU3RvcmFn
ZSB7CkBAIC02Niw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHVuaXF1ZU5h
bWUoKSBjb25zdCB7IHJldHVybiBtX3VuaXF1ZU5hbWU7IH0KICAgICBib29sIGlzQWN0aXZlKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBTdGF0ZTo6VW5pbml0aWFsaXplZDsgfQogCi0gICAg
dm9pZCByZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyhjb25zdCBXZWJD
b3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZHNDYWxsYmFjayYmKTsKICAgICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZv
IGluZm8oKSBjb25zdCB7IHJldHVybiB7IG1faWRlbnRpZmllciwgbV9uYW1lIH07IH0KIAogICAg
IHZvaWQgcHV0KFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJD
b3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwCmluZGV4IDA3YmE2ZTBmNzRlOWMzYWEzMzQx
OTgzMGU2OGZiZTU2YmQ0MGU3NzEuLmY5OGUzYmUxNjljNTFhMThjOTA1ZTEwN2Q5NzIxNzFhZjI1
MDM4ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcApAQCAtODYsMTAg
Kzg2LDEwIEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2FjaGVzKFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgdWludDY0CiAgICAgfSk7CiB9CiAKLXZvaWQgQ2Fj
aGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgVVJMJiYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMs
IFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInJldHJpZXZlUmVjb3JkcyBpbiBjYWNoZSAlIiBQUkl1NjQsIGNhY2hlSWRlbnRpZmllcik7
Ci0gICAgRW5naW5lOjpyZXRyaWV2ZVJlY29yZHMobV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNz
KCksIHNlc3Npb25JRCgpLCBjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUodXJsKSwgW2NhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9IHRoaXMtPnNlc3Npb25JRCgpXShhdXRv
JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBFbmdpbmU6OnJldHJpZXZlUmVjb3JkcyhtX2Nvbm5l
Y3Rpb24ubmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKCksIGNhY2hlSWRlbnRpZmllciwgV1RG
TW92ZShvcHRpb25zKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9
IHRoaXMtPnNlc3Npb25JRCgpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfRlVOQ1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSygicmV0cmlldmVSZWNvcmRz
IiwgInJlY29yZHMgc2l6ZSBpcyAlbHUiLCBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyByZXR1cm4g
dmFsdWUuc2l6ZSgpOyB9KTsKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKICAg
ICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKaW5kZXggYjRlZWEwYWVjNjBm
ZDhhMzFhMzdhZmFhOGY2YjI1NDI5YzA2MDA4OS4uNTYwNjBkYmQ3NmY1NWMxZGQxNmFlZTA2MWEz
Yzk3N2Q4NTdjNmM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKQEAgLTY3
LDcgKzY3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYm
KTsKICAgICB2b2lkIGNhY2hlcyhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgdWludDY0X3QgdXBk
YXRlQ291bnRlciwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYm
KTsKIAotICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
VVJMJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJik7CisgICAg
dm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRz
Q2FsbGJhY2smJik7CiAgICAgdm9pZCBkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVR
dWVyeU9wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJz
Q2FsbGJhY2smJik7CiAgICAgdm9pZCBwdXRSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIFdlYkNvcmU6OkRP
TUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNzFlZTVhOWFh
MmQyYTBhNDZmMzJiMDFmMTc0MzY0NmUxNmZkM2Y5NS4uNTk5MjAwYTYyMDBkMWVhYmU4YTI2MDUy
YjdhMzkzMzMxMjk1MmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBDYWNoZVN0b3Jh
Z2VFbmdpbmVDb25uZWN0aW9uIHsKICAgICBSZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVy
KSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVz
dWx0KSBBc3luYwogICAgIENhY2hlcyhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdp
biwgdWludDY0X3QgdXBkYXRlQ291bnRlcikgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpD
YWNoZUluZm9zT3JFcnJvciByZXN1bHQpIEFzeW5jCiAKLSAgICBSZXRyaWV2ZVJlY29yZHModWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyLCBVUkwgdXJsKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdp
bmU6OlJlY29yZHNPckVycm9yIHJlc3VsdCkgQXN5bmMKKyAgICBSZXRyaWV2ZVJlY29yZHModWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0
aW9ucyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNPckVycm9y
IHJlc3VsdCkgQXN5bmMKICAgICBEZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNv
cmU6OkNhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2lu
ZTo6UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkgQXN5bmMKICAgICBQdXRSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5l
OjpSZWNvcmQ+IHJlY29yZCkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVu
dGlmaWVyc09yRXJyb3IgcmVzdWx0KSBBc3luYwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5k
ZXggOTAzYjEyZThhNDY2OWEyY2ExZWI1NDRlZjc5ZjRiM2ZhNGNiMjhkMC4uNzY1MzM5MmIxOTM0
YTJjYWI5ZTMwZjFlMzk4OTRmNGM2NjgxNzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApA
QCAtNzAsOSArNzAsOSBAQCB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZl
Q2FjaGVzKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZwogICAgIGNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b246OkNhY2hlcyhvcmlnaW4sIHVwZGF0ZUNvdW50ZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9
CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OkRPTUNhY2hlRW5n
aW5lOjpSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYgb3B0aW9ucywgV2ViQ29yZTo6RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIGNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b246OlJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIHVybCksIFdURk1vdmUoY2FsbGJh
Y2spKTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpSZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVy
LCBvcHRpb25zKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpDYWNo
ZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJ
ZGVudGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAx
NGI4NzQxMTA4YWQzMmJjZjBhZjE5NDM4Mzg4ODc5MWQyZTcwNzk2Li4xN2FjNDBhMjFiZmVmZmVm
NjllZDdiMDc5MjRkMzUzYmFkM2ZmMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU2LDcg
KzU2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNo
ZUluZm9zQ2FsbGJhY2smJikgZmluYWw7CiAKLSAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5l
OjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRp
b25zJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlv
bnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2sm
JikgZmluYWw7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394359</attachid>
            <date>2020-03-24 04:13:02 -0700</date>
            <delta_ts>2020-03-27 08:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209469-20200324121300.patch</filename>
            <type>text/plain</type>
            <size>40352</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc0OTljYzc4ZDcwYjNk
ZWIyOTQxM2U4ZWZlODlhYjQyMjIzY2IwNy4uMzc3YTk3NWMwY2I5MTk1ZjY5YWQ5NTI4MzFiYzIw
NDNkYWM1MmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTAzLTI0ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWx0ZXIgRE9NQ2FjaGUg
cmVjb3JkcyBpbiBuZXR3b3JrIHByb2Nlc3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcmVjb3Jk
cyBiZWluZyBzZW50IHRvIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTQ2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTUyMDc1
NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5z
dGVhZCBvZiByZXRyaWV2aW5nIGFsbCByZWNvcmRzIGFuZCBmaWx0ZXJpbmcgdGhlbSBpbiBXZWJQ
cm9jZXNzLCBXZWJQcm9jZXNzIGlzIG5vdworICAgICAgICBzZW5kaW5nIGZpbHRlcmluZyBvcHRp
b25zIHRvIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBJbiBjYXNlIG9mIGtleXMsIGFzayBuZXR3
b3JrIHByb2Nlc3MgdG8gbm90IHNlbmQgYmFjayBhbnkgcmVzcG9uc2UuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6
ZG9NYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6bWF0Y2hBbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ2FjaGU6OmtleXMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6
OnF1ZXJ5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OnJldHJpZXZlUmVjb3Jk
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6cXVlcnlDYWNoZVdpdGhU
YXJnZXRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hl
Lmg6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJl
dHJpZXZlUmVjb3Jkcyk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDoKKwogMjAyMC0wMy0y
MyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIGJs
YW5rVVJMIHRvIGFib3V0QmxhbmtVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzBmOTFjM2NmZjZhODZlZjViOTZh
MmY5ZDc3OTBkZGJlOGE4ZDlhNy4uMDlhMWJmMGY4NmFkMWNhMGEzMWEwMjVkNDBiMWQyODdmZDBi
Nzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0wMy0yNCAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsdGVyIERPTUNhY2hlIHJlY29yZHMg
aW4gbmV0d29yayBwcm9jZXNzIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJlY29yZHMgYmVpbmcg
c2VudCB0byBXZWJQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDk0NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1MjA3NTY1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlY2VpdmUgbmV3
IHJldHJpZXZlIHJlY29yZCBvcHRpb25zIGFuZCBtYWtlIHVzZSBvZiB0aGVtIHRvIGZpbHRlciB0
aGUgcmVjb3JkcyBzZW50IGJhY2sgdG8gdGhlIFdlYlByb2Nlc3MuCisgICAgICAgIFRoaXMgaW5j
bHVkZXMgZmlsdGVyaW5nIHRoZSByZWNvcmRzIGZvciBhIGdpdmVuIHJlcXVlc3RzLgorICAgICAg
ICBUaGlzIGluY2x1ZGVzIHJlbW92aW5nIHJlc3BvbnNlcyBpbiBjYXNlIHRoZSByZXF1ZXN0IGlz
IG1hZGUgdG8gZ2F0aGVyIGFsbCByZXF1ZXN0cyBmb3IgQ2FjaGUua2V5cygpLgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJldHJpZXZlUmVjb3Jkcyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlOjpyZXRyaWV2ZVJlY29yZHMpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnJldHJp
ZXZlUmVjb3Jkcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMC0wMy0y
MyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIGJs
YW5rVVJMIHRvIGFib3V0QmxhbmtVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDlmNTU2NTQ2Zjhk
NmRjODE3ZGJkNGQ4NjMzM2ViMTQ1OGE4MmNlZDkuLjlhZDUzNzg1MzI0YmIzNGMwZGRiOWRjYzEx
NzBjOGNkZDRhMzY2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUsNiArMTUsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9jYWNoZS9DYWNo
ZVF1ZXJ5T3B0aW9ucy5oCiAgICAgTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgKICAgICBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmgKKyAgICBNb2R1bGVzL2NhY2hl
L1JldHJpZXZlUmVjb3Jkc09wdGlvbnMuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1DbGllbnQuaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDYzNmYwZGYyYzQzOTk4YzU4MjBiZjJmNWZmZjVi
ZTBiNThmNDBhZDAuLjc3ZGFkNDg1Y2MwYzVjZjc0NWZjMmJiMWMwMDFhZTFiNTljMTkxYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oCkBAIC0yNyw2ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRP
TUNhY2hlRW5naW5lLmgiCisjaW5jbHVkZSAiUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVy
Q2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXRyaWV2ZUNhY2hlcyhjb25zdCBD
bGllbnRPcmlnaW4mLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJbmZvc0NhbGxiYWNrJiYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCByZXRyaWV2ZVJlY29y
ZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBVUkwmLCBET01DYWNoZUVuZ2luZTo6
UmVjb3Jkc0NhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYs
IERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
PSAwOwogCkBAIC02Myw0ICs2NCw1IEBAIHByaXZhdGU6CiBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgdWludDY0X3Q+IG1fb3BhcXVlUmVzcG9uc2VUb1NpemVXaXRoUGFkZGluZ01h
cDsKIH07CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5jcHAKaW5kZXggNGU0YTMzNGE5ZTdjMjViYTAzNWZiYmY3ZmUxNjFhZDE1
MDk2MzIwOC4uNjZlYWUzZmY1NjU0ZDUzOTE3OWRlNWY0NGRhZWQ2NWVmMjliOWE5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAgLTkyLDkgKzkyLDkgQEAg
dm9pZCBET01DYWNoZTo6ZG9NYXRjaChSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRp
b25zJiYgb3B0aW9ucywgTWF0Y2hDYWwKICAgICAgICAgY2FsbGJhY2sobnVsbHB0cik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0gICAgYXV0byByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0aW9u
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgcXVlcnlDYWNoZShyZXF1ZXN0LmdldCgpLCBX
VEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0byByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0
aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsKKyAgICBxdWVyeUNh
Y2hlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzOjpZ
ZXMsIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAg
ICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICByZXR1
cm47CkBAIC0xMjAsMTcgKzEyMCwxNyBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25h
bDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogICAgIGlm
IChVTkxJS0VMWSghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUmVmUHRyPEZldGNoUmVxdWVzdD4gcmVxdWVzdDsKKyAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVzb3VyY2VSZXF1ZXN0OwogICAgIGlmIChpbmZvKSB7CiAgICAgICAgIGF1dG8gcmVxdWVzdE9y
RXhjZXB0aW9uID0gcmVxdWVzdEZyb21JbmZvKFdURk1vdmUoaW5mby52YWx1ZSgpKSwgb3B0aW9u
cy5pZ25vcmVNZXRob2QpOwogICAgICAgICBpZiAocmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2Vw
dGlvbigpKSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoeyB9KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0aW9u
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0
T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCktPnJlc291cmNlUmVxdWVzdCgpOwogICAg
IH0KIAotICAgIFJlY29yZHNDYWxsYmFjayBjYWxsYmFjayA9IFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgcXVlcnlDYWNoZShX
VEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2Vz
OjpZZXMsIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVj
dChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKQEAgLTEzOCwxMSArMTM4LDcgQEAgdm9pZCBE
T01DYWNoZTo6bWF0Y2hBbGwoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVy
eU9wdGlvbnMmJiBvcHRpb24KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByb21pc2UucmVz
b2x2ZShjbG9uZVJlc3BvbnNlcyhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpKTsKICAgICAg
ICAgfSk7Ci0gICAgfTsKLQotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJuIHJldHJp
ZXZlUmVjb3JkcyhVUkwgeyB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgcXVlcnlDYWNoZShy
ZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUoY2FsbGJh
Y2spKTsKKyAgICB9KTsKIH0KIAogdm9pZCBET01DYWNoZTo6YWRkKFJlcXVlc3RJbmZvJiYgaW5m
bywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKQEAgLTQyNSwxNyArNDIxLDE3
IEBAIHZvaWQgRE9NQ2FjaGU6OmtleXMoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2Fj
aGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBLCiAgICAgaWYgKFVOTElLRUxZKCFzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8RmV0Y2hSZXF1
ZXN0PiByZXF1ZXN0OworICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3Q7CiAgICAg
aWYgKGluZm8pIHsKICAgICAgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSByZXF1ZXN0RnJv
bUluZm8oV1RGTW92ZShpbmZvLnZhbHVlKCkpLCBvcHRpb25zLmlnbm9yZU1ldGhvZCk7CiAgICAg
ICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAg
IHByb21pc2UucmVzb2x2ZShWZWN0b3I8UmVmPEZldGNoUmVxdWVzdD4+IHsgfSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3RPckV4Y2Vw
dGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgcmVzb3VyY2VSZXF1ZXN0ID0gcmVx
dWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLT5yZXNvdXJjZVJlcXVlc3QoKTsK
ICAgICB9CiAKLSAgICBSZWNvcmRzQ2FsbGJhY2sgY2FsbGJhY2sgPSBbdGhpcywgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIHF1ZXJ5Q2Fj
aGUoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBvcHRpb25zLCBTaG91bGRSZXRyaWV2ZVJlc3Bv
bnNlczo6Tm8sIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKQEAgLTQ0NywxOSArNDQzLDEzIEBAIHZv
aWQgRE9NQ2FjaGU6OmtleXMoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVy
eU9wdGlvbnMmJiBvcHRpb25zLCBLCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlcXVl
c3QoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcmVjb3JkKTsKICAgICAgICAgICAgIH0pKTsK
ICAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJu
IHJldHJpZXZlUmVjb3JkcyhVUkwgeyB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgcXVlcnlD
YWNoZShyZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICB9KTsKIH0KIAotdm9pZCBET01DYWNoZTo6cmV0cmlldmVSZWNvcmRz
KGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgRE9NQ2Fj
aGU6OnF1ZXJ5Q2FjaGUoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgQ2FjaGVRdWVy
eU9wdGlvbnMmIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzIHNob3VsZFJldHJpZXZl
UmVzcG9uc2VzLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAgICBVUkwgcmV0cmll
dmVVUkwgPSB1cmw7Ci0gICAgcmV0cmlldmVVUkwucmVtb3ZlUXVlcnlBbmRGcmFnbWVudElkZW50
aWZpZXIoKTsKLQotICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVSZWNvcmRzKG1faWRlbnRpZmll
ciwgcmV0cmlldmVVUkwsIFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2
aXR5KCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyByZXRyaWV2ZU9wdGlvbnMgeyBX
VEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLmlnbm9yZVNlYXJjaCwgb3B0aW9ucy5pZ25vcmVNZXRo
b2QsIG9wdGlvbnMuaWdub3JlVmFyeSwgc2hvdWxkUmV0cmlldmVSZXNwb25zZXMgPT0gU2hvdWxk
UmV0cmlldmVSZXNwb25zZXM6OlllcyB9OworICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVSZWNv
cmRzKG1faWRlbnRpZmllciwgcmV0cmlldmVPcHRpb25zLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAobV9pc1N0b3BwZWQpIHsK
ICAgICAgICAgICAgIGNhbGxiYWNrKERPTUNhY2hlRW5naW5lOjpjb252ZXJ0VG9FeGNlcHRpb25B
bmRMb2coc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBET01DYWNoZUVuZ2luZTo6RXJyb3I6OlN0
b3BwZWQpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ3MiwzMiArNDYyLDcgQEAgdm9pZCBE
T01DYWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSk7
CiAgICAgfSk7Ci19CiAKLXZvaWQgRE9NQ2FjaGU6OnF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVz
dD4mJiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHNDYWxsYmFj
ayYmIGNhbGxiYWNrKQotewotICAgIGF1dG8gdXJsID0gcmVxdWVzdC0+dXJsKCk7Ci0gICAgcmV0
cmlldmVSZWNvcmRzKHVybCwgW3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRp
b25zID0gV1RGTW92ZShvcHRpb25zKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxiYWNrKHF1ZXJ5Q2FjaGVX
aXRoVGFyZ2V0U3RvcmFnZShyZXF1ZXN0LmdldCgpLCBvcHRpb25zLCByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkpKTsKLSAgICB9KTsKLX0KLQotVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNv
cmQ+IERPTUNhY2hlOjpxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgVmVj
dG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiB0YXJnZXRTdG9yYWdlKQotewotICAgIGlmICgh
b3B0aW9ucy5pZ25vcmVNZXRob2QgJiYgcmVxdWVzdC5tZXRob2QoKSAhPSAiR0VUIikKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLQotICAgIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiByZWNv
cmRzOwotICAgIGZvciAoYXV0byYgcmVjb3JkIDogdGFyZ2V0U3RvcmFnZSkgewotICAgICAgICAv
LyBXZSBuZWVkIHRvIHBhc3MgdGhlIHJlc291cmNlIHJlcXVlc3Qgd2l0aCBhbGwgY29ycmVjdCBo
ZWFkZXJzIGhlbmNlIHdoeSB3ZSBjYWxsIHJlc291cmNlUmVxdWVzdCgpLgotICAgICAgICBpZiAo
RE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRjaChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LCByZWNvcmQucmVxdWVzdCwgcmVjb3JkLnJlc3BvbnNlLCBvcHRpb25zKSkKLSAgICAgICAgICAg
IHJlY29yZHMuYXBwZW5kKHJlY29yZC5jb3B5KCkpOwotICAgIH0KLSAgICByZXR1cm4gcmVjb3Jk
czsKIH0KIAogdm9pZCBET01DYWNoZTo6YmF0Y2hEZWxldGVPcGVyYXRpb24oY29uc3QgRmV0Y2hS
ZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKaW5kZXggNmRhY2MzMTU4NTM3NWNiY2JmNjE0OGE4
YTU1MjFjMTBlZWY2NDAzMy4uZWZlYzcwY2ZiYzA2NjY0Njg1ZDMwODVlZGYzNTU5NTQ2N2QwMTg0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaApAQCAtNzQsMTAgKzc0
LDEwIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHB1dFdpdGhSZXNwb25zZURhdGEoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYsIFJlZjxGZXRjaFJlcXVlc3Q+JiYsIFJlZjxGZXRjaFJlc3BvbnNl
PiYmLCBFeGNlcHRpb25PcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mJik7CiAKKyAgICBlbnVtIGNs
YXNzIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzIHsgTm8sIFllcyB9OwogICAgIHVzaW5nIFJlY29y
ZHNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPERP
TUNhY2hlRW5naW5lOjpSZWNvcmQ+PiYmKT47Ci0gICAgdm9pZCByZXRyaWV2ZVJlY29yZHMoY29u
c3QgVVJMJiwgUmVjb3Jkc0NhbGxiYWNrJiYpOwotICAgIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6
UmVjb3JkPiBxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1ZXN0Jiwg
Y29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZD4mKTsKLSAgICB2b2lkIHF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVzdD4mJiwgQ2FjaGVR
dWVyeU9wdGlvbnMmJiwgUmVjb3Jkc0NhbGxiYWNrJiYpOworICAgIHZvaWQgcXVlcnlDYWNoZShS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBTaG91bGRSZXRyaWV2
ZVJlc3BvbnNlcywgUmVjb3Jkc0NhbGxiYWNrJiYpOworCiAgICAgdm9pZCBiYXRjaERlbGV0ZU9w
ZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKTsKICAgICB2b2lkIGJhdGNo
UHV0T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBET01DYWNo
ZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8dm9pZD4mJik+JiYpOwogICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24oVmVjdG9yPERPTUNh
Y2hlRW5naW5lOjpSZWNvcmQ+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9S
ZXRyaWV2ZVJlY29yZHNPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1Jl
dHJpZXZlUmVjb3Jkc09wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmFmYTA4M2NjNzAwMzgxZTBiODNl
ZTBjYzJhODNjZmI3NTQxMzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9SZXRyaWV2ZVJlY29yZHNPcHRpb25zLmgKQEAgLTAsMCArMSw4MSBAQAorCisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyB7
CisgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVy
biB7IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIGlnbm9yZVNlYXJjaCwgaWdub3JlTWV0aG9kLCBp
Z25vcmVWYXJ5LCBzaG91bGRQcm92aWRlUmVzcG9uc2UgfTsgfQorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZXRyaWV2ZVJlY29yZHNPcHRpb25zPiBkZWNv
ZGUoRGVjb2RlciYpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CisgICAgYm9vbCBp
Z25vcmVTZWFyY2ggeyBmYWxzZSB9OworICAgIGJvb2wgaWdub3JlTWV0aG9kIHsgZmFsc2UgfTsK
KyAgICBib29sIGlnbm9yZVZhcnkgeyBmYWxzZSB9OworICAgIGJvb2wgc2hvdWxkUHJvdmlkZVJl
c3BvbnNlIHsgdHJ1ZSB9OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZv
aWQgUmV0cmlldmVSZWNvcmRzT3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCByZXF1ZXN0IDw8IGlnbm9yZVNlYXJjaCA8PCBpZ25vcmVNZXRo
b2QgPDwgaWdub3JlVmFyeSA8PCBzaG91bGRQcm92aWRlUmVzcG9uc2U7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxSZXRyaWV2ZVJlY29yZHNPcHRpb25zPiBS
ZXRyaWV2ZVJlY29yZHNPcHRpb25zOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBP
cHRpb25hbDxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgZGVjb2RlciA+PiByZXF1ZXN0
OworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPGJvb2w+IGlnbm9yZVNlYXJjaDsKKyAgICBkZWNvZGVyID4+IGlnbm9yZVNlYXJj
aDsKKyAgICBpZiAoIWlnbm9yZVNlYXJjaCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KworICAgIE9wdGlvbmFsPGJvb2w+IGlnbm9yZU1ldGhvZDsKKyAgICBkZWNvZGVyID4+IGlnbm9y
ZU1ldGhvZDsKKyAgICBpZiAoIWlnbm9yZU1ldGhvZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGlnbm9yZVZhcnk7CisgICAgZGVjb2RlciA+PiBp
Z25vcmVWYXJ5OworICAgIGlmICghaWdub3JlVmFyeSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHNob3VsZFByb3ZpZGVSZXNwb25zZTsKKyAgICBk
ZWNvZGVyID4+IHNob3VsZFByb3ZpZGVSZXNwb25zZTsKKyAgICBpZiAoIXNob3VsZFByb3ZpZGVS
ZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqcmVxdWVzdCksIFdURk1vdmUoKmlnbm9yZVNlYXJjaCksIFdURk1vdmUoKmlnbm9y
ZU1ldGhvZCksIFdURk1vdmUoKmlnbm9yZVZhcnkpLCBXVEZNb3ZlKCpzaG91bGRQcm92aWRlUmVz
cG9uc2UpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggMjA2YzI0MThlOTg3ZmVkZmRhMjEwMWU2ZWJhNWY1YTViYTBhZjNlZi4u
YmExY2I1MGYzMmNiZjlmOTkzNGZlZmRhYTRhMWNjOGE2MDAxMDZlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OnJldHJpZXZlQ2FjaGVzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIsIGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYgb3B0aW9ucywgUmVj
b3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOwogICAgIG1fcmV0cmlldmVSZWNvcmRzUGVu
ZGluZ1JlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwog
Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRo
cmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBy
ZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5
KCldKCkgbXV0YWJsZSB7Ci0gICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5yZXRyaWV2ZVJl
Y29yZHMoY2FjaGVJZGVudGlmaWVyLCB1cmwsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtl
clRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Nj
b3BlLnRocmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0
aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9u
cy5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rp
b24tPnJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JF
cnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFza0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNv
cmRzKHJlc3VsdCksIHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVT
dG9yYWdlQ29ubmVjdGlvbigpLnJldHJpZXZlUmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRp
ZmllciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQpKSk7CiAg
ICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmgKaW5kZXggMTE5ZDRjYzYxMjA4M2RhNzI4NWY0Zjc5YzIyZGU1OWM5YjBjNGJmYi4u
ZTA2MWVmZjI4NTM2MWIwNzFiNjJiNmMzOGU2MDQxMGVmZjJhODE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IENsaWVudE9yaWdp
biYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9zQ2Fs
bGJhY2smJikgZmluYWw7CiAKLSAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNo
ZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2sm
JikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlm
aWVyLCBjb25zdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZHNDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9w
dGlvbnMmJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmlu
YWw7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIs
IFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jk
SWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRjYTU1YTQxZTkxZmZkZjE2ZTll
NTM4ZjZmNjNkMzNlZTE3NTY1ZWMuLmUzODI2ZjIyMTg4ZTQ0MGE1ZjMyYjgxZTRmNDVmZDhhZTk3
MTY5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTExMTAsNiArMTExMCw3IEBACiAJCTQxODZCRDQwMjEzRUUzNDUwMDAxODI2
RiAvKiBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEMUEwNEEyMTNFRERGRTAwNjNGQjZCIC8qIExp
YldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHAgKi87IH07CiAJCTQxODZCRDRFMjE0MEI5RTgw
MDAxODI2RiAvKiBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4NkJENEQyMTQwQjlFODAwMDE4
MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgKi87IH07CiAJCTQxODg1
QjkzMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8q
IEZvcm1TdWJtaXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNDE4OTM4QjIyNDI5RjlCNDAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
ODkzOEFGMjQyOUY5QUIwMDdGREM0MSAvKiBSZXRyaWV2ZVJlY29yZHNPcHRpb25zLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4QTA2RDAxMzND
MDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50
RGlzcGF0Y2hlci5oICovOyB9OwogCQk0MThGODgwNTBGRjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0
cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuaCAqLzsgfTsK
IAkJNDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tICovOyB9OwpAQCAtNzQ4NCw2ICs3NDg1LDcgQEAKIAkJNDE4NkJENEQyMTQwQjlFODAw
MDE4MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQu
Y3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAv
KiBGb3JtU3VibWlzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3Jt
U3VibWlzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4NUI5MjExQjZG
REE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRm9ybVN1Ym1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTg5MzhBRjI0MjlGOUFCMDA3RkRDNDEgLyogUmV0cmlldmVSZWNvcmRzT3B0aW9u
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXRyaWV2ZVJlY29yZHNPcHRp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENE
Mzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEw
NkNGMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QzM5NTIxQzhEQUM3QjAwNTFDOEEzIC8qIERPTVdpbmRvd0Zl
dGNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0Zl
dGNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjExLDYgKzE4MjEzLDcg
QEAKIAkJCQk0MUZCMjc4RTFGMzRDMjgyMDA3OTU0ODcgLyogRE9NV2luZG93Q2FjaGVzLmNwcCAq
LywKIAkJCQk0MUZCMjc4QzFGMzRDMjgyMDA3OTU0ODcgLyogRE9NV2luZG93Q2FjaGVzLmggKi8s
CiAJCQkJNDEzODBDMkIxRjM0M0UyRjAwMTU1RkRBIC8qIERPTVdpbmRvd0NhY2hlcy5pZGwgKi8s
CisJCQkJNDE4OTM4QUYyNDI5RjlBQjAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlvbnMu
aCAqLywKIAkJCQk0MUE3RDM0RjFGNDM4RDEwMDA4OTg4REUgLyogV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJNDFBN0QzNTAxRjQzOEQxMDAwODk4OERFIC8qIFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKIAkJCQk0MUZCMjc4RjFGMzRDMjgyMDA3OTU0
ODcgLyogV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwICovLApAQCAtMzI0ODcsNiArMzI0OTAs
NyBAQAogCQkJCUE1MDcxRTg1MUM1NkQwREMwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQURCQUQ2RUYxQkNERDk1NzAwMzgxMzI1IC8qIFJlc291cmNl
VXNhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTA3MUU4NzFDNTZEMEUxMDA5OTUx
QkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM4QjIy
NDI5RjlCNDAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZEMzE2MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJBY2N1bXVsYXRpb25CdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE5MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZl
cmJDb252b2x2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0
b3JhZ2VQcm92aWRlci5oCmluZGV4IDk5YWZjMmE3ZTUzZjEzODgzODk4NmQ1NzFiMTczMDVjZjNl
NDI4YjAuLmVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
cHVibGljOgogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3Ry
aW5nJiwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsg
fQogICAgICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRl
bnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2FjaGVz
KGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZv
c0NhbGxiYWNrJiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50
NjRfdCwgY29uc3QgVVJMJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5h
bCB7IH0KKyAgICAgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QsIGNvbnN0IFJldHJp
ZXZlUmVjb3Jkc09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpIGZp
bmFsIHsgfQogICAgICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBET01DYWNoZUVuZ2luZTo6
UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBiYXRj
aFB1dE9wZXJhdGlvbih1aW50NjRfdCwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYs
IERPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQog
ICAgICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5j
cHAKaW5kZXggZDZiZWRhNjNmN2NkYTlmNmNiYWVlZTgwZGIyZTk3MTc3NjdjOTdjZi4uODg5NTMw
MzEzNmJhOWQ2MDg1ZWIwOTU3MDlhOGQzN2M3ZjE0NjNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVF1ZXJ5T3B0aW9ucy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdh
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xMzMsMTAgKzEzNCwx
MCBAQCB2b2lkIEVuZ2luZTo6cmV0cmlldmVDYWNoZXMoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaQogfQogCiAKLXZvaWQgRW5naW5lOjpyZXRyaWV2
ZVJlY29yZHMoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYgdXJsLCBXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6
cmV0cmlldmVSZWNvcmRzKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJp
ZXZlUmVjb3Jkc09wdGlvbnMmJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVj
b3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgZnJvbShuZXR3b3JrUHJvY2Vzcywgc2Vz
c2lvbklELCBbY2FjaGVJZGVudGlmaWVyLCB1cmwgPSBXVEZNb3ZlKHVybCksIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGVuZ2luZSkgbXV0YWJsZSB7Ci0gICAgICAgIGVuZ2lu
ZS5yZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKHVybCksIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBmcm9tKG5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uSUQsIFtjYWNoZUlk
ZW50aWZpZXIsIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShhdXRvJiBlbmdpbmUpIG11dGFibGUgeworICAgICAgICBlbmdpbmUucmV0cmll
dmVSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShjYWxs
YmFjaykpOwogICAgIH0pOwogfQogCkBAIC0zMTEsMTQgKzMxMiwxNCBAQCB2b2lkIEVuZ2luZTo6
cmV0cmlldmVDYWNoZXMoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2
NF90IHVwZGF0ZQogICAgIH0pOwogfQogCi12b2lkIEVuZ2luZTo6cmV0cmlldmVSZWNvcmRzKHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxs
YmFjaykKK3ZvaWQgRW5naW5lOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYgb3B0aW9ucywgUmVjb3Jkc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgcmVhZENhY2hlKGNhY2hlSWRlbnRpZmllciwgW3Vy
bCA9IFdURk1vdmUodXJsKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FjaGVPckVy
cm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICByZWFkQ2FjaGUoY2FjaGVJZGVudGlmaWVyLCBb
b3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KENhY2hlT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhh
c192YWx1ZSgpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChyZXN1bHQu
ZXJyb3IoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJlc3Vs
dC52YWx1ZSgpLmdldCgpLnJldHJpZXZlUmVjb3Jkcyh1cmwsIFdURk1vdmUoY2FsbGJhY2spKTsK
KyAgICAgICAgcmVzdWx0LnZhbHVlKCkuZ2V0KCkucmV0cmlldmVSZWNvcmRzKG9wdGlvbnMsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKaW5kZXggMjJlZTY2
YmNhNDc2YmNlMmJjYTRiMmQ1MWRhY2U5NTQ3YWQ3MTdjZi4uMTk0NGE1Yzc5MmQ4ZDc5OWUyOWRh
YmM4NDY2NjdiNjY4NjJiYjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCkBAIC00NCw2ICs0NCwxMCBAQCBu
YW1lc3BhY2UgV1RGIHsKIGNsYXNzIENhbGxiYWNrQWdncmVnYXRvcjsKIH07CiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3N0cnVjdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zOworfQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CkBAIC02NSw3ICs2OSw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZW1vdmUoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Np
b25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJik7CiAgICAgc3RhdGljIHZvaWQgcmV0cmlldmVDYWNo
ZXMoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNo
ZUluZm9zQ2FsbGJhY2smJik7CiAKLSAgICBzdGF0aWMgdm9pZCByZXRyaWV2ZVJlY29yZHMoTmV0
d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBV
UkwmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKTsKKyAgICBz
dGF0aWMgdm9pZCByZXRyaWV2ZVJlY29yZHMoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25J
RCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRp
b25zJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJik7CiAgICAg
c3RhdGljIHZvaWQgcHV0UmVjb3JkcyhOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCB1
aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
UmVjb3JkPiYmLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxs
YmFjayYmKTsKICAgICBzdGF0aWMgdm9pZCBkZWxldGVNYXRjaGluZ1JlY29yZHMoTmV0d29ya1By
b2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2ViQ29y
ZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAKQEAgLTEx
MSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNZW1vcnlSZXByZXNlbnRhdGlv
bihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
Q29tcGxldGlvbkNhbGxiYWNrJiYpOwogICAgIFN0cmluZyByZXByZXNlbnRhdGlvbigpOwogCi0g
ICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBVUkwmJiwg
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJl
dHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJpZXZl
UmVjb3Jkc09wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFj
ayYmKTsKICAgICB2b2lkIHB1dFJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0
b3I8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAgICAgdm9pZCBkZWxldGVNYXRj
aGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZS5jcHAKaW5kZXggYmExMzRjZjRjYWIwMDVmMzQyMTM4OWQ1NTkwMTY5ZWM0N2FkNGU5ZC4u
NWQ0MzUwNWU3MWY3NWJjY2FiMzI0ZTgzNGU3YmQyNzI5OWIwODJlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmVDYWNoZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlUXVlcnlPcHRpb25zLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9IVFRQUGFyc2Vycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmV0cmlldmVS
ZWNvcmRzT3B0aW9ucy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMjgx
LDE4ICsyODIsMjYgQEAgdm9pZCBDYWNoZTo6cmV0cmlldmVSZWNvcmQoY29uc3QgUmVjb3JkSW5m
b3JtYXRpb24mIHJlY29yZCwgUmVmPFJlYWRSZWNvcmRUYXNrQ28KICAgICB9KTsKIH0KIAotdm9p
ZCBDYWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2sm
JiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGU6OnJldHJpZXZlUmVjb3Jkcyhjb25zdCBSZXRyaWV2ZVJl
Y29yZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAg
ICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6T3Blbik7CiAKLSAgICBhdXRvIHRhc2tDb3VudGVy
ID0gUmVhZFJlY29yZFRhc2tDb3VudGVyOjpjcmVhdGUoW2NhY2hlcyA9IG1ha2VSZWYobV9jYWNo
ZXMpLCBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFZlY3Rvcjx1aW50NjRfdD4mJiBmYWlsZWRS
ZWNvcmRJZGVudGlmaWVycykgbXV0YWJsZSB7CisgICAgYXV0byB0YXNrQ291bnRlciA9IFJlYWRS
ZWNvcmRUYXNrQ291bnRlcjo6Y3JlYXRlKFtjYWNoZXMgPSBtYWtlUmVmKG1fY2FjaGVzKSwgaWRl
bnRpZmllciA9IG1faWRlbnRpZmllciwgc2hvdWxkUHJvdmlkZVJlc3BvbnNlID0gb3B0aW9ucy5z
aG91bGRQcm92aWRlUmVzcG9uc2UsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKFZlY3Rv
cjxSZWNvcmQ+JiYgcmVjb3JkcywgVmVjdG9yPHVpbnQ2NF90PiYmIGZhaWxlZFJlY29yZElkZW50
aWZpZXJzKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byogY2FjaGUgPSBjYWNoZXMtPmZpbmQoaWRl
bnRpZmllcik7CiAgICAgICAgIGlmIChjYWNoZSkKICAgICAgICAgICAgIGNhY2hlLT5yZW1vdmVG
cm9tUmVjb3JkTGlzdChmYWlsZWRSZWNvcmRJZGVudGlmaWVycyk7CisKKyAgICAgICAgaWYgKCFz
aG91bGRQcm92aWRlUmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcmVjb3JkIDog
cmVjb3JkcykgeworICAgICAgICAgICAgICAgIHJlY29yZC5yZXNwb25zZSA9IHsgfTsKKyAgICAg
ICAgICAgICAgICByZWNvcmQucmVzcG9uc2VCb2R5ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAg
ICByZWNvcmQucmVzcG9uc2VCb2R5U2l6ZSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
ICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZWNvcmRzKSk7CiAgICAgfSk7CiAKLSAgICBpZiAo
dXJsLmlzTnVsbCgpKSB7CisgICAgaWYgKG9wdGlvbnMucmVxdWVzdC51cmwoKS5pc051bGwoKSkg
ewogICAgICAgICBmb3IgKGF1dG8mIHJlY29yZHMgOiBtX3JlY29yZHMudmFsdWVzKCkpIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byYgcmVjb3JkIDogcmVjb3JkcykKICAgICAgICAgICAgICAgICBy
ZXRyaWV2ZVJlY29yZChyZWNvcmQsIHRhc2tDb3VudGVyLmNvcHlSZWYoKSk7CkBAIC0zMDAsMTIg
KzMwOSwxOCBAQCB2b2lkIENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiB1cmwsIFJl
Y29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
YXV0byogcmVjb3JkcyA9IHJlY29yZHNGcm9tVVJMKHVybCk7CisgICAgaWYgKCFvcHRpb25zLmln
bm9yZU1ldGhvZCAmJiBvcHRpb25zLnJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvKiByZWNvcmRzID0gcmVjb3Jkc0Zyb21VUkwob3B0aW9u
cy5yZXF1ZXN0LnVybCgpKTsKICAgICBpZiAoIXJlY29yZHMpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGZvciAoYXV0byYgcmVjb3JkIDogKnJlY29yZHMpCi0gICAgICAgIHJldHJpZXZlUmVjb3Jk
KHJlY29yZCwgdGFza0NvdW50ZXIuY29weVJlZigpKTsKKyAgICBDYWNoZVF1ZXJ5T3B0aW9ucyBx
dWVyeU9wdGlvbnMgeyBvcHRpb25zLmlnbm9yZVNlYXJjaCwgb3B0aW9ucy5pZ25vcmVNZXRob2Qs
IG9wdGlvbnMuaWdub3JlVmFyeSwgeyB9IH07CisgICAgZm9yIChhdXRvJiByZWNvcmQgOiAqcmVj
b3JkcykgeworICAgICAgICBpZiAoRE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRjaChvcHRp
b25zLnJlcXVlc3QsIHJlY29yZC51cmwsIHJlY29yZC5oYXNWYXJ5U3RhciwgcmVjb3JkLnZhcnlI
ZWFkZXJzLCBxdWVyeU9wdGlvbnMpKQorICAgICAgICAgICAgcmV0cmlldmVSZWNvcmQocmVjb3Jk
LCB0YXNrQ291bnRlci5jb3B5UmVmKCkpOworICAgIH0KIH0KIAogUmVjb3JkSW5mb3JtYXRpb24m
IENhY2hlOjphZGRSZWNvcmQoVmVjdG9yPFJlY29yZEluZm9ybWF0aW9uPiogcmVjb3JkcywgY29u
c3QgUmVjb3JkJiByZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKaW5kZXggN2QxZmU0Yzdk
MDk4OTBhM2E4MWQ0YTMxMzEzYTBlMGE5NzQ2YjQ3My4uOGY3OGQ3NzBkYzMwMDYyMzJhNWI5MDQz
MzljMTQxOWY4OWYyYTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaApAQCAtMzAsNiArMzAs
MTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBSZXRyaWV2ZVJlY29yZHNPcHRp
b25zOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogbmFtZXNwYWNlIENhY2hlU3RvcmFnZSB7
CkBAIC02Niw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHVuaXF1ZU5hbWUo
KSBjb25zdCB7IHJldHVybiBtX3VuaXF1ZU5hbWU7IH0KICAgICBib29sIGlzQWN0aXZlKCkgY29u
c3QgeyByZXR1cm4gbV9zdGF0ZSAhPSBTdGF0ZTo6VW5pbml0aWFsaXplZDsgfQogCi0gICAgdm9p
ZCByZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyhjb25zdCBXZWJDb3Jl
OjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZHNDYWxsYmFjayYmKTsKICAgICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvIGlu
Zm8oKSBjb25zdCB7IHJldHVybiB7IG1faWRlbnRpZmllciwgbV9uYW1lIH07IH0KIAogICAgIHZv
aWQgcHV0KFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5l
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwCmluZGV4IDA3YmE2ZTBmNzRlOWMzYWEzMzQxOTgz
MGU2OGZiZTU2YmQ0MGU3NzEuLmY5OGUzYmUxNjljNTFhMThjOTA1ZTEwN2Q5NzIxNzFhZjI1MDM4
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcApAQCAtODYsMTAgKzg2
LDEwIEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2FjaGVzKFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgdWludDY0CiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRl
bnRpZmllciwgVVJMJiYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgQ2Fj
aGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJl
Y29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InJldHJpZXZlUmVjb3JkcyBpbiBjYWNoZSAlIiBQUkl1NjQsIGNhY2hlSWRlbnRpZmllcik7Ci0g
ICAgRW5naW5lOjpyZXRyaWV2ZVJlY29yZHMobV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCks
IHNlc3Npb25JRCgpLCBjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUodXJsKSwgW2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9IHRoaXMtPnNlc3Npb25JRCgpXShhdXRvJiYg
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICBFbmdpbmU6OnJldHJpZXZlUmVjb3JkcyhtX2Nvbm5lY3Rp
b24ubmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKCksIGNhY2hlSWRlbnRpZmllciwgV1RGTW92
ZShvcHRpb25zKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9IHRo
aXMtPnNlc3Npb25JRCgpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgUkVMRUFT
RV9MT0dfRlVOQ1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSygicmV0cmlldmVSZWNvcmRzIiwg
InJlY29yZHMgc2l6ZSBpcyAlbHUiLCBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyByZXR1cm4gdmFs
dWUuc2l6ZSgpOyB9KTsKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKICAgICB9
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKaW5kZXggYjRlZWEwYWVjNjBmZDhh
MzFhMzdhZmFhOGY2YjI1NDI5YzA2MDA4OS4uNTYwNjBkYmQ3NmY1NWMxZGQxNmFlZTA2MWEzYzk3
N2Q4NTdjNmM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKQEAgLTY3LDcg
KzY3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsK
ICAgICB2b2lkIGNhY2hlcyhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgdWludDY0X3QgdXBkYXRl
Q291bnRlciwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKTsK
IAotICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJM
JiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJik7CisgICAgdm9p
ZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXRy
aWV2ZVJlY29yZHNPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2Fs
bGJhY2smJik7CiAgICAgdm9pZCBkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVy
eU9wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2Fs
bGJhY2smJik7CiAgICAgdm9pZCBwdXRSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
VmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIFdlYkNvcmU6OkRPTUNh
Y2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNzFlZTVhOWFhMmQy
YTBhNDZmMzJiMDFmMTc0MzY0NmUxNmZkM2Y5NS4uNTk5MjAwYTYyMDBkMWVhYmU4YTI2MDUyYjdh
MzkzMzMxMjk1MmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uIHsKICAgICBSZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKSAt
PiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVzdWx0
KSBBc3luYwogICAgIENhY2hlcyhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwg
dWludDY0X3QgdXBkYXRlQ291bnRlcikgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNo
ZUluZm9zT3JFcnJvciByZXN1bHQpIEFzeW5jCiAKLSAgICBSZXRyaWV2ZVJlY29yZHModWludDY0
X3QgY2FjaGVJZGVudGlmaWVyLCBVUkwgdXJsKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZHNPckVycm9yIHJlc3VsdCkgQXN5bmMKKyAgICBSZXRyaWV2ZVJlY29yZHModWludDY0
X3QgY2FjaGVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9u
cyBvcHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNPckVycm9yIHJl
c3VsdCkgQXN5bmMKICAgICBEZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6
OkNhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
UmVjb3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkgQXN5bmMKICAgICBQdXRSZWNvcmRzKHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpS
ZWNvcmQ+IHJlY29yZCkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlm
aWVyc09yRXJyb3IgcmVzdWx0KSBBc3luYwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXgg
OTAzYjEyZThhNDY2OWEyY2ExZWI1NDRlZjc5ZjRiM2ZhNGNiMjhkMC4uNzY1MzM5MmIxOTM0YTJj
YWI5ZTMwZjFlMzk4OTRmNGM2NjgxNzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
NzAsOSArNzAsOSBAQCB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlQ2Fj
aGVzKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZwogICAgIGNvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246
OkNhY2hlcyhvcmlnaW4sIHVwZGF0ZUNvdW50ZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAK
LXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5l
OjpSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYgb3B0aW9ucywgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIGNvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246
OlJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIHVybCksIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpDYWNoZVN0
b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpSZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBv
cHRpb25zKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpDYWNoZVF1
ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVu
dGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAxNGI4
NzQxMTA4YWQzMmJjZjBhZjE5NDM4Mzg4ODc5MWQyZTcwNzk2Li4xN2FjNDBhMjFiZmVmZmVmNjll
ZDdiMDc5MjRkMzUzYmFkM2ZmMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU2LDcgKzU2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKSBmaW5h
bDsKICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlu
Zm9zQ2FsbGJhY2smJikgZmluYWw7CiAKLSAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpS
ZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0
X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25z
JiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMm
JiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394719</attachid>
            <date>2020-03-27 08:06:47 -0700</date>
            <delta_ts>2020-03-27 09:11:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209469-20200327160645.patch</filename>
            <type>text/plain</type>
            <size>40406</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVjOGY2MjRlYmVhZDBh
ODcwZTA4MzRkMTk4MzI1NmI5MWExZTRhNy4uZGQzNThiMmU3ZjVmNDQyYmUwMmMxNDQ2OWYyNDEw
NmIzOTViZDAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTAzLTI3ICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWx0ZXIgRE9NQ2FjaGUg
cmVjb3JkcyBpbiBuZXR3b3JrIHByb2Nlc3MgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcmVjb3Jk
cyBiZWluZyBzZW50IHRvIFdlYlByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTQ2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTUyMDc1
NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBJ
bnN0ZWFkIG9mIHJldHJpZXZpbmcgYWxsIHJlY29yZHMgYW5kIGZpbHRlcmluZyB0aGVtIGluIFdl
YlByb2Nlc3MsIFdlYlByb2Nlc3MgaXMgbm93CisgICAgICAgIHNlbmRpbmcgZmlsdGVyaW5nIG9w
dGlvbnMgdG8gTmV0d29ya1Byb2Nlc3MuCisgICAgICAgIEluIGNhc2Ugb2Yga2V5cywgYXNrIG5l
dHdvcmsgcHJvY2VzcyB0byBub3Qgc2VuZCBiYWNrIGFueSByZXNwb25zZS4KKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAg
ICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hl
Ojpkb01hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjptYXRjaEFsbCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNo
ZTo6cXVlcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6cmV0cmlldmVSZWNv
cmRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpxdWVyeUNhY2hlV2l0
aFRhcmdldFN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oOgorCiAyMDIwLTAz
LTI1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCdW1wIGxp
YndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDliNjU3ZDlhYWJlNzY5ZWEyODU5NDQ1YzVmNWZi
ZTEwMGQxYzQ1MC4uYmU1Mjg4NTA3NDcyYjFlNDBlNzU5OGQ0MGVjMjRhMDU2MWVjZjdiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0wMy0yNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsdGVyIERPTUNhY2hlIHJlY29yZHMgaW4gbmV0d29y
ayBwcm9jZXNzIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJlY29yZHMgYmVpbmcgc2VudCB0byBX
ZWJQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDk0NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1MjA3NTY1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgUmVjZWl2ZSBuZXcgcmV0cmll
dmUgcmVjb3JkIG9wdGlvbnMgYW5kIG1ha2UgdXNlIG9mIHRoZW0gdG8gZmlsdGVyIHRoZSByZWNv
cmRzIHNlbnQgYmFjayB0byB0aGUgV2ViUHJvY2Vzcy4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBm
aWx0ZXJpbmcgdGhlIHJlY29yZHMgZm9yIGEgZ2l2ZW4gcmVxdWVzdHMuCisgICAgICAgIFRoaXMg
aW5jbHVkZXMgcmVtb3ZpbmcgcmVzcG9uc2VzIGluIGNhc2UgdGhlIHJlcXVlc3QgaXMgbWFkZSB0
byBnYXRoZXIgYWxsIHJlcXVlc3RzIGZvciBDYWNoZS5rZXlzKCkuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGU6OnJldHJpZXZlUmVjb3Jkcyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNv
cmRzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hl
L1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIwLTAzLTI2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRvbUNvb2tpZXNGb3JIb3N0IHNob3VsZCB2YWxpZGF0ZSBpdHMgYGhv
c3RgIHBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWY1NTY1NDZmOGQ2ZGM4MTdkYmQ0
ZDg2MzMzZWIxNDU4YTgyY2VkOS4uOWFkNTM3ODUzMjRiYjM0YzBkZGI5ZGNjMTE3MGM4Y2RkNGEz
NjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNSw2ICsxNSw3IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NhY2hlL0NhY2hlUXVlcnlPcHRp
b25zLmgKICAgICBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1v
ZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuaAorICAgIE1vZHVsZXMvY2FjaGUvUmV0cmlldmVS
ZWNvcmRzT3B0aW9ucy5oCiAKICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETUNsaWVudC5o
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggNjM2ZjBkZjJjNDM5OThjNTgyMGJmMmY1ZmZmNWJlMGI1OGY0MGFk
MC4uNzdkYWQ0ODVjYzBjNWNmNzQ1ZmMyYmIxYzAwMWFlMWI1OWMxOTFjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRE9NQ2FjaGVFbmdp
bmUuaCIKKyNpbmNsdWRlICJSZXRyaWV2ZVJlY29yZHNPcHRpb25zLmgiCiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAt
NDMsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZSh1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IENsaWVudE9yaWdp
biYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9zQ2Fs
bGJhY2smJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2Fs
bGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgRE9NQ2FjaGVF
bmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJhdGNoRGVs
ZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZp
ZXJzQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1
aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYm
LCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSA9IDA7CiAKQEAg
LTYzLDQgKzY0LDUgQEAgcHJpdmF0ZToKIHByb3RlY3RlZDoKICAgICBIYXNoTWFwPHVpbnQ2NF90
LCB1aW50NjRfdD4gbV9vcGFxdWVSZXNwb25zZVRvU2l6ZVdpdGhQYWRkaW5nTWFwOwogfTsKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlLmNwcAppbmRleCA0ZTRhMzM0YTllN2MyNWJhMDM1ZmJiZjdmZTE2MWFkMTUwOTYzMjA4Li42
NmVhZTNmZjU2NTRkNTM5MTc5ZGU1ZjQ0ZGFlZDY1ZWYyOWI5YTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lkIERPTUNh
Y2hlOjpkb01hdGNoKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zLCBNYXRjaENhbAogICAgICAgICBjYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KLSAgICBhdXRvIHJlcXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJl
dHVyblZhbHVlKCk7CiAKLSAgICBxdWVyeUNhY2hlKHJlcXVlc3QuZ2V0KCksIFdURk1vdmUob3B0
aW9ucyksIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICBhdXRvIHJlcXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFz
ZVJldHVyblZhbHVlKCktPnJlc291cmNlUmVxdWVzdCgpOworICAgIHF1ZXJ5Q2FjaGUoV1RGTW92
ZShyZXF1ZXN0KSwgb3B0aW9ucywgU2hvdWxkUmV0cmlldmVSZXNwb25zZXM6OlllcywgW3RoaXMs
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBjYWxsYmFj
ayhyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEy
MCwxNyArMTIwLDE3IEBAIHZvaWQgRE9NQ2FjaGU6Om1hdGNoQWxsKE9wdGlvbmFsPFJlcXVlc3RJ
bmZvPiYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9uCiAgICAgaWYgKFVOTElLRUxZ
KCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQ
dHI8RmV0Y2hSZXF1ZXN0PiByZXF1ZXN0OworICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJl
cXVlc3Q7CiAgICAgaWYgKGluZm8pIHsKICAgICAgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24g
PSByZXF1ZXN0RnJvbUluZm8oV1RGTW92ZShpbmZvLnZhbHVlKCkpLCBvcHRpb25zLmlnbm9yZU1l
dGhvZCk7CiAgICAgICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpIHsK
ICAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZSh7IH0pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9Ci0gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJl
dHVyblZhbHVlKCk7CisgICAgICAgIHJlc291cmNlUmVxdWVzdCA9IHJlcXVlc3RPckV4Y2VwdGlv
bi5yZWxlYXNlUmV0dXJuVmFsdWUoKS0+cmVzb3VyY2VSZXF1ZXN0KCk7CiAgICAgfQogCi0gICAg
UmVjb3Jkc0NhbGxiYWNrIGNhbGxiYWNrID0gW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBxdWVyeUNhY2hlKFdURk1vdmUocmVz
b3VyY2VSZXF1ZXN0KSwgb3B0aW9ucywgU2hvdWxkUmV0cmlldmVSZXNwb25zZXM6OlllcywgW3Ro
aXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsK
ICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpE
T01NYW5pcHVsYXRpb24sIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0
ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCkpOwpAQCAtMTM4LDExICsxMzgsNyBAQCB2b2lkIERPTUNhY2hlOjpt
YXRjaEFsbChPcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKGNsb25l
UmVzcG9uc2VzKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSkpOwogICAgICAgICB9KTsKLSAg
ICB9OwotCi0gICAgaWYgKCFyZXF1ZXN0KQotICAgICAgICByZXR1cm4gcmV0cmlldmVSZWNvcmRz
KFVSTCB7IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBxdWVyeUNhY2hlKHJlcXVlc3QucmVs
ZWFzZU5vbk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IH0pOwogfQogCiB2b2lkIERPTUNhY2hlOjphZGQoUmVxdWVzdEluZm8mJiBpbmZvLCBET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtNDI1LDE3ICs0MjEsMTcgQEAgdm9pZCBE
T01DYWNoZTo6a2V5cyhPcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0
aW9ucyYmIG9wdGlvbnMsIEsKICAgICBpZiAoVU5MSUtFTFkoIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxGZXRjaFJlcXVlc3Q+IHJlcXVl
c3Q7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdDsKICAgICBpZiAoaW5mbykg
ewogICAgICAgICBhdXRvIHJlcXVlc3RPckV4Y2VwdGlvbiA9IHJlcXVlc3RGcm9tSW5mbyhXVEZN
b3ZlKGluZm8udmFsdWUoKSksIG9wdGlvbnMuaWdub3JlTWV0aG9kKTsKICAgICAgICAgaWYgKHJl
cXVlc3RPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKFZlY3RvcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4geyB9KTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworICAgICAgICByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0T3JFeGNl
cHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCktPnJlc291cmNlUmVxdWVzdCgpOwogICAgIH0KIAot
ICAgIFJlY29yZHNDYWxsYmFjayBjYWxsYmFjayA9IFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgcXVlcnlDYWNoZShXVEZNb3Zl
KHJlc291cmNlUmVxdWVzdCksIG9wdGlvbnMsIFNob3VsZFJldHJpZXZlUmVzcG9uc2VzOjpObywg
W3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxl
IHsKICAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNl
OjpET01NYW5pcHVsYXRpb24sIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVz
dWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpOwpAQCAtNDQ3LDE5ICs0NDMsMTMgQEAgdm9pZCBET01DYWNo
ZTo6a2V5cyhPcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbnMsIEsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdCgqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCByZWNvcmQpOwogICAgICAgICAgICAgfSkpOwogICAgICAgICB9
KTsKLSAgICB9OwotCi0gICAgaWYgKCFyZXF1ZXN0KQotICAgICAgICByZXR1cm4gcmV0cmlldmVS
ZWNvcmRzKFVSTCB7IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBxdWVyeUNhY2hlKHJlcXVl
c3QucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIH0pOwogfQogCi12b2lkIERPTUNhY2hlOjpyZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJM
JiB1cmwsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBET01DYWNoZTo6cXVlcnlD
YWNoZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBDYWNoZVF1ZXJ5T3B0aW9ucyYg
b3B0aW9ucywgU2hvdWxkUmV0cmlldmVSZXNwb25zZXMgc2hvdWxkUmV0cmlldmVSZXNwb25zZXMs
IFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIFVSTCByZXRyaWV2ZVVSTCA9IHVy
bDsKLSAgICByZXRyaWV2ZVVSTC5yZW1vdmVRdWVyeUFuZEZyYWdtZW50SWRlbnRpZmllcigpOwot
Ci0gICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2ZVJlY29yZHMobV9pZGVudGlmaWVyLCByZXRyaWV2
ZVVSTCwgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMp
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICBSZXRyaWV2ZVJlY29yZHNPcHRpb25zIHJldHJpZXZlT3B0aW9ucyB7IFdURk1vdmUocmVx
dWVzdCksIG9wdGlvbnMuaWdub3JlU2VhcmNoLCBvcHRpb25zLmlnbm9yZU1ldGhvZCwgb3B0aW9u
cy5pZ25vcmVWYXJ5LCBzaG91bGRSZXRyaWV2ZVJlc3BvbnNlcyA9PSBTaG91bGRSZXRyaWV2ZVJl
c3BvbnNlczo6WWVzIH07CisgICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2ZVJlY29yZHMobV9pZGVu
dGlmaWVyLCByZXRyaWV2ZU9wdGlvbnMsIFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVu
ZGluZ0FjdGl2aXR5KCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYm
IHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX2lzU3RvcHBlZCkgewogICAgICAgICAg
ICAgY2FsbGJhY2soRE9NQ2FjaGVFbmdpbmU6OmNvbnZlcnRUb0V4Y2VwdGlvbkFuZExvZyhzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIERPTUNhY2hlRW5naW5lOjpFcnJvcjo6U3RvcHBlZCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDcyLDMyICs0NjIsNyBAQCB2b2lkIERPTUNhY2hlOjpy
ZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiB1cmwsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNr
KQogCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0LnZhbHVlKCkpKTsKICAgICB9KTsK
LX0KIAotdm9pZCBET01DYWNoZTo6cXVlcnlDYWNoZShSZWY8RmV0Y2hSZXF1ZXN0PiYmIHJlcXVl
c3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywgUmVjb3Jkc0NhbGxiYWNrJiYgY2FsbGJh
Y2spCi17Ci0gICAgYXV0byB1cmwgPSByZXF1ZXN0LT51cmwoKTsKLSAgICByZXRyaWV2ZVJlY29y
ZHModXJsLCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMgPSBXVEZN
b3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0
KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAg
ICAgICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgY2FsbGJhY2socXVlcnlDYWNoZVdpdGhUYXJnZXRT
dG9yYWdlKHJlcXVlc3QuZ2V0KCksIG9wdGlvbnMsIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KSkpOwotICAgIH0pOwotfQotCi1WZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gRE9NQ2Fj
aGU6OnF1ZXJ5Q2FjaGVXaXRoVGFyZ2V0U3RvcmFnZShjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zLCBjb25zdCBWZWN0b3I8RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZD4mIHRhcmdldFN0b3JhZ2UpCi17Ci0gICAgaWYgKCFvcHRpb25zLmln
bm9yZU1ldGhvZCAmJiByZXF1ZXN0Lm1ldGhvZCgpICE9ICJHRVQiKQotICAgICAgICByZXR1cm4g
eyB9OwotCi0gICAgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+IHJlY29yZHM7Ci0gICAg
Zm9yIChhdXRvJiByZWNvcmQgOiB0YXJnZXRTdG9yYWdlKSB7Ci0gICAgICAgIC8vIFdlIG5lZWQg
dG8gcGFzcyB0aGUgcmVzb3VyY2UgcmVxdWVzdCB3aXRoIGFsbCBjb3JyZWN0IGhlYWRlcnMgaGVu
Y2Ugd2h5IHdlIGNhbGwgcmVzb3VyY2VSZXF1ZXN0KCkuCi0gICAgICAgIGlmIChET01DYWNoZUVu
Z2luZTo6cXVlcnlDYWNoZU1hdGNoKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlY29yZC5y
ZXF1ZXN0LCByZWNvcmQucmVzcG9uc2UsIG9wdGlvbnMpKQotICAgICAgICAgICAgcmVjb3Jkcy5h
cHBlbmQocmVjb3JkLmNvcHkoKSk7Ci0gICAgfQotICAgIHJldHVybiByZWNvcmRzOwogfQogCiB2
b2lkIERPTUNhY2hlOjpiYXRjaERlbGV0ZU9wZXJhdGlvbihjb25zdCBGZXRjaFJlcXVlc3QmIHJl
cXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGUuaAppbmRleCA2ZGFjYzMxNTg1Mzc1Y2JjYmY2MTQ4YThhNTUyMWMxMGVl
ZjY0MDMzLi45MjBlNDIwYjEyYTg4ZDgyOTNkZTY3Y2EyODkxMTlkYWFkMDE3NGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCkBAIC03NCwxMCArNzQsMTAgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgcHV0V2l0aFJlc3BvbnNlRGF0YShET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiwgUmVmPEZldGNoUmVxdWVzdD4mJiwgUmVmPEZldGNoUmVzcG9uc2U+JiYsIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYmKTsKIAorICAgIGVudW0gY2xhc3MgU2hvdWxk
UmV0cmlldmVSZXNwb25zZXMgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHVzaW5nIFJlY29yZHND
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPERPTUNh
Y2hlRW5naW5lOjpSZWNvcmQ+PiYmKT47Ci0gICAgdm9pZCByZXRyaWV2ZVJlY29yZHMoY29uc3Qg
VVJMJiwgUmVjb3Jkc0NhbGxiYWNrJiYpOwotICAgIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVj
b3JkPiBxdWVyeUNhY2hlV2l0aFRhcmdldFN0b3JhZ2UoY29uc3QgRmV0Y2hSZXF1ZXN0JiwgY29u
c3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBjb25zdCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZD4mKTsKLSAgICB2b2lkIHF1ZXJ5Q2FjaGUoUmVmPEZldGNoUmVxdWVzdD4mJiwgQ2FjaGVRdWVy
eU9wdGlvbnMmJiwgUmVjb3Jkc0NhbGxiYWNrJiYpOworICAgIHZvaWQgcXVlcnlDYWNoZShSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmLCBTaG91bGRSZXRyaWV2ZVJl
c3BvbnNlcywgUmVjb3Jkc0NhbGxiYWNrJiYpOworCiAgICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJh
dGlvbihjb25zdCBGZXRjaFJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKTsKICAgICB2b2lkIGJhdGNoUHV0
T3BlcmF0aW9uKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVzcG9uc2UmLCBET01DYWNoZUVu
Z2luZTo6UmVzcG9uc2VCb2R5JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYpOwogICAgIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24oVmVjdG9yPERPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9p
ZD4mJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9SZXRy
aWV2ZVJlY29yZHNPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1JldHJp
ZXZlUmVjb3Jkc09wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmFmYTA4M2NjNzAwMzgxZTBiODNlZTBj
YzJhODNjZmI3NTQxMzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9SZXRyaWV2ZVJlY29yZHNPcHRpb25zLmgKQEAgLTAsMCArMSw4MSBAQAorCisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyB7Cisg
ICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7
IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIGlnbm9yZVNlYXJjaCwgaWdub3JlTWV0aG9kLCBpZ25v
cmVWYXJ5LCBzaG91bGRQcm92aWRlUmVzcG9uc2UgfTsgfQorCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZXRyaWV2ZVJlY29yZHNPcHRpb25zPiBkZWNvZGUo
RGVjb2RlciYpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CisgICAgYm9vbCBpZ25v
cmVTZWFyY2ggeyBmYWxzZSB9OworICAgIGJvb2wgaWdub3JlTWV0aG9kIHsgZmFsc2UgfTsKKyAg
ICBib29sIGlnbm9yZVZhcnkgeyBmYWxzZSB9OworICAgIGJvb2wgc2hvdWxkUHJvdmlkZVJlc3Bv
bnNlIHsgdHJ1ZSB9OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQg
UmV0cmlldmVSZWNvcmRzT3B0aW9uczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCByZXF1ZXN0IDw8IGlnbm9yZVNlYXJjaCA8PCBpZ25vcmVNZXRob2Qg
PDwgaWdub3JlVmFyeSA8PCBzaG91bGRQcm92aWRlUmVzcG9uc2U7Cit9CisKK3RlbXBsYXRlPGNs
YXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxSZXRyaWV2ZVJlY29yZHNPcHRpb25zPiBSZXRy
aWV2ZVJlY29yZHNPcHRpb25zOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRp
b25hbDxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgZGVjb2RlciA+PiByZXF1ZXN0Owor
ICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9w
dGlvbmFsPGJvb2w+IGlnbm9yZVNlYXJjaDsKKyAgICBkZWNvZGVyID4+IGlnbm9yZVNlYXJjaDsK
KyAgICBpZiAoIWlnbm9yZVNlYXJjaCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIE9wdGlvbmFsPGJvb2w+IGlnbm9yZU1ldGhvZDsKKyAgICBkZWNvZGVyID4+IGlnbm9yZU1l
dGhvZDsKKyAgICBpZiAoIWlnbm9yZU1ldGhvZCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IGlnbm9yZVZhcnk7CisgICAgZGVjb2RlciA+PiBpZ25v
cmVWYXJ5OworICAgIGlmICghaWdub3JlVmFyeSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPGJvb2w+IHNob3VsZFByb3ZpZGVSZXNwb25zZTsKKyAgICBkZWNv
ZGVyID4+IHNob3VsZFByb3ZpZGVSZXNwb25zZTsKKyAgICBpZiAoIXNob3VsZFByb3ZpZGVSZXNw
b25zZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqcmVxdWVzdCksIFdURk1vdmUoKmlnbm9yZVNlYXJjaCksIFdURk1vdmUoKmlnbm9yZU1l
dGhvZCksIFdURk1vdmUoKmlnbm9yZVZhcnkpLCBXVEZNb3ZlKCpzaG91bGRQcm92aWRlUmVzcG9u
c2UpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5jcHAKaW5kZXggMjA2YzI0MThlOTg3ZmVkZmRhMjEwMWU2ZWJhNWY1YTViYTBhZjNlZi4uYmEx
Y2I1MGYzMmNiZjlmOTkzNGZlZmRhYTRhMWNjOGE2MDAxMDZlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCkBAIC0xOTUsMTMgKzE5NSwxMyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OnJldHJpZXZlQ2FjaGVzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudAog
ICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYgb3B0aW9ucywgUmVjb3Jk
c0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIg
PSArK21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOwogICAgIG1fcmV0cmlldmVSZWNvcmRzUGVuZGlu
Z1JlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0g
ICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRocmVh
ZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1
ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCld
KCkgbXV0YWJsZSB7Ci0gICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5yZXRyaWV2ZVJlY29y
ZHMoY2FjaGVJZGVudGlmaWVyLCB1cmwsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRo
cmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3Bl
LnRocmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9u
LCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9ucy5p
c29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24t
PnJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJv
ciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRz
KHJlc3VsdCksIHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAg
ICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVTdG9y
YWdlQ29ubmVjdGlvbigpLnJldHJpZXZlUmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmll
ciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQpKSk7CiAgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmgKaW5kZXggMTE5ZDRjYzYxMjA4M2RhNzI4NWY0Zjc5YzIyZGU1OWM5YjBjNGJmYi4uZTA2
MWVmZjI4NTM2MWIwNzFiNjJiNmMzOGU2MDQxMGVmZjJhODE1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFj
ayYmKSBmaW5hbDsKICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IENsaWVudE9yaWdpbiYs
IHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9zQ2FsbGJh
Y2smJikgZmluYWw7CiAKLSAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIsIGNvbnN0IFVSTCYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikg
ZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBjb25zdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHND
YWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlv
bnMmJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWw7
CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZl
Y3RvcjxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRl
bnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI3OGQwM2NkN2U1ZGU1ZGE5MTlhYTk1
YjY1ZDBmOWQ1YmVhMjAwYjYuLmVhM2M0YjRkZjE5NDI5Mzk0YWYzODNmZjI1MGY2MDI1OTk2Nzk0
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTExMTAsNiArMTExMCw3IEBACiAJCTQxODZCRDQwMjEzRUUzNDUwMDAxODI2RiAv
KiBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEMUEwNEEyMTNFRERGRTAwNjNGQjZCIC8qIExpYldl
YlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5jcHAgKi87IH07CiAJCTQxODZCRDRFMjE0MEI5RTgwMDAx
ODI2RiAvKiBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4NkJENEQyMTQwQjlFODAwMDE4MjZG
IC8qIExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgKi87IH07CiAJCTQxODg1Qjkz
MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZv
cm1TdWJtaXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNDE4OTM4QjIyNDI5RjlCNDAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODkz
OEFGMjQyOUY5QUIwMDdGREM0MSAvKiBSZXRyaWV2ZVJlY29yZHNPcHRpb25zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4QTA2RDAxMzNDMDRE
NTAwQ0QzNzlDIC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50RGlz
cGF0Y2hlci5oICovOyB9OwogCQk0MThGODgwNTBGRjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0cmFj
dFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4Rjg4MDMwRkY5NTdBRTAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3JrZXIuaCAqLzsgfTsKIAkJ
NDE5MjQyNDkyMTI3QjkzRTAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5
MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29h
Lm1tICovOyB9OwpAQCAtNzQ4NCw2ICs3NDg1LDcgQEAKIAkJNDE4NkJENEQyMTQwQjlFODAwMDE4
MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3Bw
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBG
b3JtU3VibWlzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtU3Vi
bWlzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4NUI5MjExQjZGREE2
MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRm9ybVN1Ym1pc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTg5MzhBRjI0MjlGOUFCMDA3RkRDNDEgLyogUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXRyaWV2ZVJlY29yZHNPcHRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5
QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNG
MTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE4QzM5NTIxQzhEQUM3QjAwNTFDOEEzIC8qIERPTVdpbmRvd0ZldGNo
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0ZldGNo
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjEyLDYgKzE4MjE0LDcgQEAK
IAkJCQk0MUZCMjc4RTFGMzRDMjgyMDA3OTU0ODcgLyogRE9NV2luZG93Q2FjaGVzLmNwcCAqLywK
IAkJCQk0MUZCMjc4QzFGMzRDMjgyMDA3OTU0ODcgLyogRE9NV2luZG93Q2FjaGVzLmggKi8sCiAJ
CQkJNDEzODBDMkIxRjM0M0UyRjAwMTU1RkRBIC8qIERPTVdpbmRvd0NhY2hlcy5pZGwgKi8sCisJ
CQkJNDE4OTM4QUYyNDI5RjlBQjAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlvbnMuaCAq
LywKIAkJCQk0MUE3RDM0RjFGNDM4RDEwMDA4OTg4REUgLyogV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAgKi8sCiAJCQkJNDFBN0QzNTAxRjQzOEQxMDAwODk4OERFIC8qIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKIAkJCQk0MUZCMjc4RjFGMzRDMjgyMDA3OTU0ODcg
LyogV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwICovLApAQCAtMzI0ODksNiArMzI0OTIsNyBA
QAogCQkJCUE1MDcxRTg1MUM1NkQwREMwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQURCQUQ2RUYxQkNERDk1NzAwMzgxMzI1IC8qIFJlc291cmNlVXNh
Z2VPdmVybGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTA3MUU4NzFDNTZEMEUxMDA5OTUxQkUg
LyogUmVzb3VyY2VVc2FnZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM4QjIyNDI5
RjlCNDAwN0ZEQzQxIC8qIFJldHJpZXZlUmVjb3Jkc09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZEMzE2MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJBY2N1bXVsYXRpb25CdWZmZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MEE5MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJD
b252b2x2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3Jh
Z2VQcm92aWRlci5oCmluZGV4IDk5YWZjMmE3ZTUzZjEzODgzODk4NmQ1NzFiMTczMDVjZjNlNDI4
YjAuLmVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVi
bGljOgogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5n
JiwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQog
ICAgICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRp
ZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNv
bnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvc0Nh
bGxiYWNrJiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRf
dCwgY29uc3QgVVJMJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbCB7
IH0KKyAgICAgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QsIGNvbnN0IFJldHJpZXZl
UmVjb3Jkc09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpIGZpbmFs
IHsgfQogICAgICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBET01DYWNoZUVuZ2luZTo6UmVj
b3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBiYXRjaFB1
dE9wZXJhdGlvbih1aW50NjRfdCwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIERP
TUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAg
ICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAK
aW5kZXggZDZiZWRhNjNmN2NkYTlmNmNiYWVlZTgwZGIyZTk3MTc3NjdjOTdjZi4uODg5NTMwMzEz
NmJhOWQ2MDg1ZWIwOTU3MDlhOGQzN2M3ZjE0NjNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGFUeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVF1ZXJ5T3B0aW9ucy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xMzMsMTAgKzEzNCwxMCBA
QCB2b2lkIEVuZ2luZTo6cmV0cmlldmVDYWNoZXMoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaQogfQogCiAKLXZvaWQgRW5naW5lOjpyZXRyaWV2ZVJl
Y29yZHMoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYgdXJsLCBXZWJDb3JlOjpET01D
YWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIEVuZ2luZTo6cmV0
cmlldmVSZWNvcmRzKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJpZXZl
UmVjb3Jkc09wdGlvbnMmJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jk
c0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgZnJvbShuZXR3b3JrUHJvY2Vzcywgc2Vzc2lv
bklELCBbY2FjaGVJZGVudGlmaWVyLCB1cmwgPSBXVEZNb3ZlKHVybCksIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGF1dG8mIGVuZ2luZSkgbXV0YWJsZSB7Ci0gICAgICAgIGVuZ2luZS5y
ZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKHVybCksIFdURk1vdmUoY2Fs
bGJhY2spKTsKKyAgICBmcm9tKG5ldHdvcmtQcm9jZXNzLCBzZXNzaW9uSUQsIFtjYWNoZUlkZW50
aWZpZXIsIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShhdXRvJiBlbmdpbmUpIG11dGFibGUgeworICAgICAgICBlbmdpbmUucmV0cmlldmVS
ZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShjYWxsYmFj
aykpOwogICAgIH0pOwogfQogCkBAIC0zMTEsMTQgKzMxMiwxNCBAQCB2b2lkIEVuZ2luZTo6cmV0
cmlldmVDYWNoZXMoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIHVpbnQ2NF90
IHVwZGF0ZQogICAgIH0pOwogfQogCi12b2lkIEVuZ2luZTo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFj
aykKK3ZvaWQgRW5naW5lOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYgb3B0aW9ucywgUmVjb3Jkc0NhbGxi
YWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgcmVhZENhY2hlKGNhY2hlSWRlbnRpZmllciwgW3VybCA9
IFdURk1vdmUodXJsKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FjaGVPckVycm9y
JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICByZWFkQ2FjaGUoY2FjaGVJZGVudGlmaWVyLCBbb3B0
aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENh
Y2hlT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhhc192
YWx1ZSgpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChyZXN1bHQuZXJy
b3IoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC52
YWx1ZSgpLmdldCgpLnJldHJpZXZlUmVjb3Jkcyh1cmwsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICAgICAgcmVzdWx0LnZhbHVlKCkuZ2V0KCkucmV0cmlldmVSZWNvcmRzKG9wdGlvbnMsIFdURk1v
dmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKaW5kZXggMjJlZTY2YmNh
NDc2YmNlMmJjYTRiMmQ1MWRhY2U5NTQ3YWQ3MTdjZi4uMTk0NGE1Yzc5MmQ4ZDc5OWUyOWRhYmM4
NDY2NjdiNjY4NjJiYjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCkBAIC00NCw2ICs0NCwxMCBAQCBuYW1l
c3BhY2UgV1RGIHsKIGNsYXNzIENhbGxiYWNrQWdncmVnYXRvcjsKIH07CiAKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK3N0cnVjdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zOworfQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3M7CkBAIC02NSw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCByZW1vdmUoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25J
RCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJZGVudGlmaWVyQ2FsbGJhY2smJik7CiAgICAgc3RhdGljIHZvaWQgcmV0cmlldmVDYWNoZXMo
TmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYs
IHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlu
Zm9zQ2FsbGJhY2smJik7CiAKLSAgICBzdGF0aWMgdm9pZCByZXRyaWV2ZVJlY29yZHMoTmV0d29y
a1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBVUkwm
JiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKTsKKyAgICBzdGF0
aWMgdm9pZCByZXRyaWV2ZVJlY29yZHMoTmV0d29ya1Byb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwg
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25z
JiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJik7CiAgICAgc3Rh
dGljIHZvaWQgcHV0UmVjb3JkcyhOZXR3b3JrUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCB1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVj
b3JkPiYmLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFj
ayYmKTsKICAgICBzdGF0aWMgdm9pZCBkZWxldGVNYXRjaGluZ1JlY29yZHMoTmV0d29ya1Byb2Nl
c3MmLCBQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2ViQ29yZTo6
RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAKQEAgLTExMSw3
ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNZW1vcnlSZXByZXNlbnRhdGlvbihj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29t
cGxldGlvbkNhbGxiYWNrJiYpOwogICAgIFN0cmluZyByZXByZXNlbnRhdGlvbigpOwogCi0gICAg
dm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBVUkwmJiwgV2Vi
Q29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJldHJp
ZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJpZXZlUmVj
b3Jkc09wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYm
KTsKICAgICB2b2lkIHB1dFJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdp
bmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAgICAgdm9pZCBkZWxldGVNYXRjaGlu
Z1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdp
bmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZS5jcHAKaW5kZXggYmExMzRjZjRjYWIwMDVmMzQyMTM4OWQ1NTkwMTY5ZWM0N2FkNGU5ZC4uNWQ0
MzUwNWU3MWY3NWJjY2FiMzI0ZTgzNGU3YmQyNzI5OWIwODJlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDYWNoZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlUXVlcnlPcHRpb25zLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IVFRQUGFyc2Vycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmV0cmlldmVSZWNv
cmRzT3B0aW9ucy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMjgxLDE4
ICsyODIsMjYgQEAgdm9pZCBDYWNoZTo6cmV0cmlldmVSZWNvcmQoY29uc3QgUmVjb3JkSW5mb3Jt
YXRpb24mIHJlY29yZCwgUmVmPFJlYWRSZWNvcmRUYXNrQ28KICAgICB9KTsKIH0KIAotdm9pZCBD
YWNoZTo6cmV0cmlldmVSZWNvcmRzKGNvbnN0IFVSTCYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3ZvaWQgQ2FjaGU6OnJldHJpZXZlUmVjb3Jkcyhjb25zdCBSZXRyaWV2ZVJlY29y
ZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBB
U1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6T3Blbik7CiAKLSAgICBhdXRvIHRhc2tDb3VudGVyID0g
UmVhZFJlY29yZFRhc2tDb3VudGVyOjpjcmVhdGUoW2NhY2hlcyA9IG1ha2VSZWYobV9jYWNoZXMp
LCBpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMsIFZlY3Rvcjx1aW50NjRfdD4mJiBmYWlsZWRSZWNv
cmRJZGVudGlmaWVycykgbXV0YWJsZSB7CisgICAgYXV0byB0YXNrQ291bnRlciA9IFJlYWRSZWNv
cmRUYXNrQ291bnRlcjo6Y3JlYXRlKFtjYWNoZXMgPSBtYWtlUmVmKG1fY2FjaGVzKSwgaWRlbnRp
ZmllciA9IG1faWRlbnRpZmllciwgc2hvdWxkUHJvdmlkZVJlc3BvbnNlID0gb3B0aW9ucy5zaG91
bGRQcm92aWRlUmVzcG9uc2UsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKFZlY3RvcjxS
ZWNvcmQ+JiYgcmVjb3JkcywgVmVjdG9yPHVpbnQ2NF90PiYmIGZhaWxlZFJlY29yZElkZW50aWZp
ZXJzKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byogY2FjaGUgPSBjYWNoZXMtPmZpbmQoaWRlbnRp
Zmllcik7CiAgICAgICAgIGlmIChjYWNoZSkKICAgICAgICAgICAgIGNhY2hlLT5yZW1vdmVGcm9t
UmVjb3JkTGlzdChmYWlsZWRSZWNvcmRJZGVudGlmaWVycyk7CisKKyAgICAgICAgaWYgKCFzaG91
bGRQcm92aWRlUmVzcG9uc2UpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcmVjb3JkIDogcmVj
b3JkcykgeworICAgICAgICAgICAgICAgIHJlY29yZC5yZXNwb25zZSA9IHsgfTsKKyAgICAgICAg
ICAgICAgICByZWNvcmQucmVzcG9uc2VCb2R5ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBy
ZWNvcmQucmVzcG9uc2VCb2R5U2l6ZSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAg
ICAgICAgY2FsbGJhY2soV1RGTW92ZShyZWNvcmRzKSk7CiAgICAgfSk7CiAKLSAgICBpZiAodXJs
LmlzTnVsbCgpKSB7CisgICAgaWYgKG9wdGlvbnMucmVxdWVzdC51cmwoKS5pc051bGwoKSkgewog
ICAgICAgICBmb3IgKGF1dG8mIHJlY29yZHMgOiBtX3JlY29yZHMudmFsdWVzKCkpIHsKICAgICAg
ICAgICAgIGZvciAoYXV0byYgcmVjb3JkIDogcmVjb3JkcykKICAgICAgICAgICAgICAgICByZXRy
aWV2ZVJlY29yZChyZWNvcmQsIHRhc2tDb3VudGVyLmNvcHlSZWYoKSk7CkBAIC0zMDAsMTIgKzMw
OSwxOCBAQCB2b2lkIENhY2hlOjpyZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiB1cmwsIFJlY29y
ZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0
byogcmVjb3JkcyA9IHJlY29yZHNGcm9tVVJMKHVybCk7CisgICAgaWYgKCFvcHRpb25zLmlnbm9y
ZU1ldGhvZCAmJiBvcHRpb25zLnJlcXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvKiByZWNvcmRzID0gcmVjb3Jkc0Zyb21VUkwob3B0aW9ucy5y
ZXF1ZXN0LnVybCgpKTsKICAgICBpZiAoIXJlY29yZHMpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGZvciAoYXV0byYgcmVjb3JkIDogKnJlY29yZHMpCi0gICAgICAgIHJldHJpZXZlUmVjb3JkKHJl
Y29yZCwgdGFza0NvdW50ZXIuY29weVJlZigpKTsKKyAgICBDYWNoZVF1ZXJ5T3B0aW9ucyBxdWVy
eU9wdGlvbnMgeyBvcHRpb25zLmlnbm9yZVNlYXJjaCwgb3B0aW9ucy5pZ25vcmVNZXRob2QsIG9w
dGlvbnMuaWdub3JlVmFyeSwgeyB9IH07CisgICAgZm9yIChhdXRvJiByZWNvcmQgOiAqcmVjb3Jk
cykgeworICAgICAgICBpZiAoRE9NQ2FjaGVFbmdpbmU6OnF1ZXJ5Q2FjaGVNYXRjaChvcHRpb25z
LnJlcXVlc3QsIHJlY29yZC51cmwsIHJlY29yZC5oYXNWYXJ5U3RhciwgcmVjb3JkLnZhcnlIZWFk
ZXJzLCBxdWVyeU9wdGlvbnMpKQorICAgICAgICAgICAgcmV0cmlldmVSZWNvcmQocmVjb3JkLCB0
YXNrQ291bnRlci5jb3B5UmVmKCkpOworICAgIH0KIH0KIAogUmVjb3JkSW5mb3JtYXRpb24mIENh
Y2hlOjphZGRSZWNvcmQoVmVjdG9yPFJlY29yZEluZm9ybWF0aW9uPiogcmVjb3JkcywgY29uc3Qg
UmVjb3JkJiByZWNvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmgKaW5kZXggN2QxZmU0YzdkMDk4
OTBhM2E4MWQ0YTMxMzEzYTBlMGE5NzQ2YjQ3My4uOGY3OGQ3NzBkYzMwMDYyMzJhNWI5MDQzMzlj
MTQxOWY4OWYyYTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaApAQCAtMzAsNiArMzAsMTAg
QEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25z
OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogbmFtZXNwYWNlIENhY2hlU3RvcmFnZSB7CkBA
IC02Niw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHVuaXF1ZU5hbWUoKSBj
b25zdCB7IHJldHVybiBtX3VuaXF1ZU5hbWU7IH0KICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gbV9zdGF0ZSAhPSBTdGF0ZTo6VW5pbml0aWFsaXplZDsgfQogCi0gICAgdm9pZCBy
ZXRyaWV2ZVJlY29yZHMoY29uc3QgVVJMJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZHNDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyhjb25zdCBXZWJDb3JlOjpS
ZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHND
YWxsYmFjayYmKTsKICAgICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvIGluZm8o
KSBjb25zdCB7IHJldHVybiB7IG1faWRlbnRpZmllciwgbV9uYW1lIH07IH0KIAogICAgIHZvaWQg
cHV0KFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwCmluZGV4IDA3YmE2ZTBmNzRlOWMzYWEzMzQxOTgzMGU2
OGZiZTU2YmQ0MGU3NzEuLmY5OGUzYmUxNjljNTFhMThjOTA1ZTEwN2Q5NzIxNzFhZjI1MDM4ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcApAQCAtODYsMTAgKzg2LDEw
IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2FjaGVzKFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmIG9yaWdpbiwgdWludDY0CiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRp
ZmllciwgVVJMJiYgdXJsLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRl
bnRpZmllciwgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJlY29y
ZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJl
dHJpZXZlUmVjb3JkcyBpbiBjYWNoZSAlIiBQUkl1NjQsIGNhY2hlSWRlbnRpZmllcik7Ci0gICAg
RW5naW5lOjpyZXRyaWV2ZVJlY29yZHMobV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCksIHNl
c3Npb25JRCgpLCBjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUodXJsKSwgW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9IHRoaXMtPnNlc3Npb25JRCgpXShhdXRvJiYgcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICBFbmdpbmU6OnJldHJpZXZlUmVjb3JkcyhtX2Nvbm5lY3Rpb24u
bmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKCksIGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShv
cHRpb25zKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9IHRoaXMt
PnNlc3Npb25JRCgpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRlVOQ1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSygicmV0cmlldmVSZWNvcmRzIiwgInJl
Y29yZHMgc2l6ZSBpcyAlbHUiLCBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUu
c2l6ZSgpOyB9KTsKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKaW5kZXggYjRlZWEwYWVjNjBmZDhhMzFh
MzdhZmFhOGY2YjI1NDI5YzA2MDA4OS4uNTYwNjBkYmQ3NmY1NWMxZGQxNmFlZTA2MWEzYzk3N2Q4
NTdjNmM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgKQEAgLTY3LDcgKzY3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsKICAg
ICB2b2lkIGNhY2hlcyhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgdWludDY0X3QgdXBkYXRlQ291
bnRlciwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKTsKIAot
ICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVVJMJiYs
IFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJik7CisgICAgdm9pZCBy
ZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2
ZVJlY29yZHNPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJh
Y2smJik7CiAgICAgdm9pZCBkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9w
dGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJh
Y2smJik7CiAgICAgdm9pZCBwdXRSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVj
dG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNzFlZTVhOWFhMmQyYTBh
NDZmMzJiMDFmMTc0MzY0NmUxNmZkM2Y5NS4uNTk5MjAwYTYyMDBkMWVhYmU4YTI2MDUyYjdhMzkz
MzMxMjk1MmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBDYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uIHsKICAgICBSZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKSAtPiAo
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllck9yRXJyb3IgcmVzdWx0KSBB
c3luYwogICAgIENhY2hlcyhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgdWlu
dDY0X3QgdXBkYXRlQ291bnRlcikgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlu
Zm9zT3JFcnJvciByZXN1bHQpIEFzeW5jCiAKLSAgICBSZXRyaWV2ZVJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBVUkwgdXJsKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZHNPckVycm9yIHJlc3VsdCkgQXN5bmMKKyAgICBSZXRyaWV2ZVJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyBv
cHRpb25zKSAtPiAoV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNPckVycm9yIHJlc3Vs
dCkgQXN5bmMKICAgICBEZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkNh
Y2hlUXVlcnlPcHRpb25zIG9wdGlvbnMpIC0+IChXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVj
b3JkSWRlbnRpZmllcnNPckVycm9yIHJlc3VsdCkgQXN5bmMKICAgICBQdXRSZWNvcmRzKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNv
cmQ+IHJlY29yZCkgLT4gKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVy
c09yRXJyb3IgcmVzdWx0KSBBc3luYwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggOTAz
YjEyZThhNDY2OWEyY2ExZWI1NDRlZjc5ZjRiM2ZhNGNiMjhkMC4uNzY1MzM5MmIxOTM0YTJjYWI5
ZTMwZjFlMzk4OTRmNGM2NjgxNzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNzAs
OSArNzAsOSBAQCB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlQ2FjaGVz
KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZwogICAgIGNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OkNh
Y2hlcyhvcmlnaW4sIHVwZGF0ZUNvdW50ZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZv
aWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpS
ZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYgb3B0aW9ucywgV2ViQ29yZTo6RE9NQ2FjaGVFbmdp
bmU6OlJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIGNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OlJl
dHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIHVybCksIFdURk1vdmUoY2FsbGJhY2spKTsK
KyAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpDYWNoZVN0b3Jh
Z2VFbmdpbmVDb25uZWN0aW9uOjpSZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBvcHRp
b25zKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpDYWNoZVF1ZXJ5
T3B0aW9ucyYmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlm
aWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAxNGI4NzQx
MTA4YWQzMmJjZjBhZjE5NDM4Mzg4ODc5MWQyZTcwNzk2Li4xN2FjNDBhMjFiZmVmZmVmNjllZDdi
MDc5MjRkMzUzYmFkM2ZmMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Q2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU2LDcgKzU2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIHVp
bnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9z
Q2FsbGJhY2smJikgZmluYWw7CiAKLSAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNv
cmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwg
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwg
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmlu
YWw7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIs
IFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3JlOjpET01D
YWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>