<?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>226362</bug_id>
          
          <creation_ts>2021-05-27 17:10:06 -0700</creation_ts>
          <short_desc>Merge B3::StackSlot and Air::StackSlot</short_desc>
          <delta_ts>2021-06-02 16:29:25 -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>JavaScriptCore</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="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764591</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-05-27 17:10:06 -0700</bug_when>
    <thetext>Simple and cheap memory saving, since every B3StackSlot eventually becomes an AirStackSlot, and there is no more information in a B3StackSlot than in the AirStackSlot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764598</commentid>
    <comment_count>1</comment_count>
      <attachid>429962</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-05-27 17:21:07 -0700</bug_when>
    <thetext>Created attachment 429962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764612</commentid>
    <comment_count>2</comment_count>
      <attachid>429968</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-05-27 17:59:16 -0700</bug_when>
    <thetext>Created attachment 429968
Patch

Fix missing &quot;inline&quot; keyword</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766204</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 16:28:37 -0700</bug_when>
    <thetext>Committed r278381 (238408@main): &lt;https://commits.webkit.org/238408@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429968.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766206</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-02 16:29:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/78788343&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429962</attachid>
            <date>2021-05-27 17:21:07 -0700</date>
            <delta_ts>2021-05-27 18:09:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch226362</filename>
            <type>text/plain</type>
            <size>27680</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQyYzhkZDg1NDYzYS4uZGIxYTliNTY4M2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAyMS0wNS0yNyAgUm9i
aW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIEIzOjpT
dGFja1Nsb3QgYW5kIEFpcjo6U3RhY2tTbG90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzNjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgdmVyeSBzaW1wbGUgYW5kIHNhZmUgKGFsdGhv
dWdoIHNtYWxsKSBtZW1vcnkgc2F2aW5nLCBzaW5jZSBldmVyeSBCM1N0YWNrU2xvdCBldmVudHVh
bGx5IGJlY29tZXMgYW4gQWlyU3RhY2tTbG90IHdpdGggYW4gZXhhY3QgY29weSBvZiBhbGwgdGhl
IHNhbWUgaW5mb3JtYXRpb24uCisgICAgICAgIFNpbXBseSBkcm9wcGluZyB0aGUgQjNTdGFja1Ns
b3QgcGFzdCB0aGF0IHBvaW50IGlzIHRyaWNreSwgYmVjYXVzZSBvbmUgb2YgdGhlbSBtaWdodCBi
ZSByZXRhaW5lZCBieSBGVExTdGF0ZSAoYW5kIG1vZGlmaWVkIGJ5IEFpcikuCisgICAgICAgIEl0
IGlzIG11Y2ggc2ltcGxlciB0byBqdXN0IHVzZSBBaXI6OlN0YWNrU2xvdCB0aHJvdWdob3V0LiBJ
dCBzYXZlcyB1czoKKyAgICAgICAgLSAxNiBieXRlcyBwZXIgQjNTdGFja1Nsb3QgKGZvciB0aGUg
c3RydWN0dXJlIGl0c2VsZikKKyAgICAgICAgLSBhbm90aGVyIDggYnl0ZXMgcGVyIEIzU3RhY2tT
bG90IChmb3IgdGhlIHBvaW50ZXIgaW4gdGhlIFNwYXJzZUNvbGxlY3Rpb24pCisgICAgICAgIC0g
OCBieXRlcyBwZXIgQWlyU3RhY2tTbG90IChmb3IgdGhlIHBvaW50ZXIgdG8gdGhlIEIzOjpTdGFj
a1Nsb3QpCisgICAgICAgIEkgYWxzbyB0b29rIHRoZSBvcHBvcnR1bml0eSB0byBzYXZlIGFuIGV4
dHJhIDggYnl0ZXMgcGVyIEFpclN0YWNrU2xvdCwgYnkgc2hyaW5raW5nIHRoZSBieXRlc2l6ZSBm
aWVsZCB0byBhIHVpbnQxNl90ICh3aXRoIGEgUkVMRUFTRV9BU1NFUlQgdGhhdCB3ZSBuZXZlciBv
dmVyZmxvdyBpdCkgYW5kIG1vdmluZyB0aGUgU3RhY2tTbG90S2luZCBpbiB0aGUgaG9sZSB0aGlz
IGNyZWF0ZXMuCisgICAgICAgIFRvdGFsIHNhdmluZ3M6IDE2IGJ5dGVzIHBlciBzcGlsbCBzbG90
IGFuZCA0MCBieXRlcyBwZXIgbG9ja2VkIChieSBCMykgc2xvdC4KKworICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKiBiMy9CM1Byb2Nl
ZHVyZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmFkZFN0YWNrU2xvdCk6Cisg
ICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmR1bXAgY29uc3QpOgorICAgICAgICAqIGIzL0Iz
UHJvY2VkdXJlLmg6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmVJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6OnN0YWNrU2xvdHMpOgorICAgICAgICAoSlNDOjpCMzo6UHJv
Y2VkdXJlOjpzdGFja1Nsb3RzIGNvbnN0KToKKyAgICAgICAgKiBiMy9CM1Nsb3RCYXNlVmFsdWUu
Y3BwOgorICAgICAgICAqIGIzL0IzU2xvdEJhc2VWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzU3Rh
Y2tTbG90LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiMy9CM1N0YWNrU2xvdC5oOiBSZW1vdmVk
LgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkU3RhY2tTbG90KToKKyAgICAgICAg
KiBiMy9haXIvQWlyQ29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTdGFja1Nsb3QuY3BwOgor
ICAgICAgICAoSlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OnNldE9mZnNldEZyb21GUCk6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OlN0YWNrU2xvdDo6ZGVlcER1bXAgY29uc3QpOgorICAgICAgICAo
SlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OlN0YWNrU2xvdCk6CisgICAgICAgICogYjMvYWlyL0Fp
clN0YWNrU2xvdC5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OmVuc3VyZVNp
emUpOgorICAgICAgICAqIGIzL3Rlc3RiMy5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNw
cDoKKyAgICAgICAgKiBmdGwvRlRMU3RhdGUuaDoKKwogMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBVbmNoZWNrZWRMb2NrIGV2ZW4gbGVz
cyBpbiBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NDI3
NjExMzRkYTEuLjQzM2M3ZGI1ZDQxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQ2Nyw3ICs0NjcsNiBAQAogCQkwRjkzMzJBNDE0Q0E3REQ5MDA4NUYzQzYgLyogUHV0QnlJZFN0
YXR1cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5
MzMyOUExNENBN0RDMTAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjkzMzJBNTE0Q0E3REREMDA4NUYz
QzYgLyogU3RydWN0dXJlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjkzMzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5M0I0QUEx
OEI5MkM0RDAwMTc4QTNGIC8qIFB1dEJ5SWRWYXJpYW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjkzQjRBODE4QjkyQzREMDAxNzhBM0YgLyogUHV0
QnlJZFZhcmlhbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwRjk0OTU4ODFDNTdGNDc1MDA0MTNBNDggLyogQjNTdGFja1Nsb3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTQ5NTg2MUM1N0Y0NzUw
MDQxM0E0OCAvKiBCM1N0YWNrU2xvdC5oICovOyB9OwogCQkwRjk1MkFBMTFERjc4NjA5MDBFMDZG
QkQgLyogVmlzaXRSYWNlS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjk1MkFBMDFERjc4NjA3MDBFMDZGQkQgLyogVmlzaXRSYWNlS2V5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5NTJBQkQx
QjQ4N0E3NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk1MkFCQjFCNDg3QTc3MDBDMzY3QzUgLyog
VHJhY2tlZFJlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjk2MzAzQTFENDE5MkM4MDA1NjA5RDkgLyogQ2VsbEF0dHJpYnV0ZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTYzMDM2
MUQ0MTkyQzMwMDU2MDlEOSAvKiBDZWxsQXR0cmlidXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yODU1LDggKzI4NTQsNiBAQAogCQkwRjkz
MzI5QjE0Q0E3REMxMDA4NUYzQzYgLyogU3RydWN0dXJlU2V0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0cnVjdHVyZVNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjkzQjRBNzE4QjkyQzREMDAxNzhBM0YgLyogUHV0QnlJZFZhcmlhbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHV0QnlJZFZhcmlhbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkzQjRBODE4QjkyQzREMDAxNzhBM0YgLyogUHV0
QnlJZFZhcmlhbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHV0QnlJZFZh
cmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5NDk1ODUxQzU3RjQ3NTAw
NDEzQTQ4IC8qIEIzU3RhY2tTbG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEIzU3RhY2tTbG90LmNwcDsgcGF0aCA9IGIzL0IzU3RhY2tTbG90LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5NDk1ODYxQzU3RjQ3NTAwNDEzQTQ4IC8qIEIzU3Rh
Y2tTbG90LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzU3RhY2tTbG90Lmg7
IHBhdGggPSBiMy9CM1N0YWNrU2xvdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjk1MkE5RjFERjc4NjA3MDBFMDZGQkQgLyogVmlzaXRSYWNlS2V5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2l0UmFjZUtleS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOTUyQUEwMURGNzg2MDcwMEUwNkZCRCAvKiBWaXNpdFJhY2VLZXku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlzaXRSYWNlS2V5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTUyQUJBMUI0ODdBNzcwMEMzNjdDNSAvKiBUcmFj
a2VkUmVmZXJlbmNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
cmFja2VkUmVmZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTE1
LDggKzU5MTIsNiBAQAogCQkJCTBGRUM4NEU3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFw
U3BlY2lhbC5oICovLAogCQkJCTBGMzM4REVGMUJFOTNBRDEwMDEzQzg4RiAvKiBCM1N0YWNrbWFw
VmFsdWUuY3BwICovLAogCQkJCTBGMzM4REYwMUJFOTNBRDEwMDEzQzg4RiAvKiBCM1N0YWNrbWFw
VmFsdWUuaCAqLywKLQkJCQkwRjk0OTU4NTFDNTdGNDc1MDA0MTNBNDggLyogQjNTdGFja1Nsb3Qu
Y3BwICovLAotCQkJCTBGOTQ5NTg2MUM1N0Y0NzUwMDQxM0E0OCAvKiBCM1N0YWNrU2xvdC5oICov
LAogCQkJCTBGRUM4NEVDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N1Y2Nlc3NvckNvbGxlY3Rpb24u
aCAqLywKIAkJCQkwRkVDODRFRDFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmNwcCAq
LywKIAkJCQkwRkVDODRFRTFCREFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmggKi8sCkBA
IC05MzQ5LDcgKzkzNDQsNiBAQAogCQkJCTBGMzNGQ0Y4MUMxMzZFMjUwMDMyM0Y2NyAvKiBCM1N0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MzExQkRB
Q0RBQzAwODBGRjc0IC8qIEIzU3RhY2ttYXBTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjMzOERGMjFCRTkzQUQxMDAxM0M4OEYgLyogQjNTdGFja21hcFZhbHVlLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjk0OTU4ODFDNTdGNDc1MDA0MTNBNDggLyogQjNTdGFja1Nsb3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUM4NTM2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N1Y2Nlc3NvckNvbGxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTM4MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M1N3aXRjaENhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTNBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM1N3aXRjaFZhbHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dAppbmRleCBiYzFjYjNkOWNlZDcuLmFiNWNhM2YwMmViMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
b3VyY2VzLnR4dApAQCAtMTY2LDcgKzE2Niw2IEBAIGIzL0IzU2xvdEJhc2VWYWx1ZS5jcHAKIGIz
L0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAogYjMvQjNTdGFja21hcFNwZWNpYWwuY3Bw
CiBiMy9CM1N0YWNrbWFwVmFsdWUuY3BwCi1iMy9CM1N0YWNrU2xvdC5jcHAKIGIzL0IzU3dpdGNo
Q2FzZS5jcHAKIGIzL0IzU3dpdGNoVmFsdWUuY3BwCiBiMy9CM1R5cGUuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCmluZGV4IDg3ZWZiOTc2YzBlYi4uNTU3MjA1
NjgyMDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWly
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcApAQCAt
MTUzLDggKzE1Myw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAg
ICAgIGZvciAoQjM6OlN0YWNrU2xvdCogc3RhY2sgOiBtX3Byb2NlZHVyZS5zdGFja1Nsb3RzKCkp
Ci0gICAgICAgICAgICBtX3N0YWNrVG9TdGFjay5hZGQoc3RhY2ssIG1fY29kZS5hZGRTdGFja1Ns
b3Qoc3RhY2spKTsKICAgICAgICAgZm9yIChWYXJpYWJsZSogdmFyaWFibGUgOiBtX3Byb2NlZHVy
ZS52YXJpYWJsZXMoKSkgewogICAgICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3ZhcmlhYmxl
VG9UbXBzLmFkZCh2YXJpYWJsZSwgVmVjdG9yPFRtcCwgMT4obV9wcm9jZWR1cmUucmVzdWx0Q291
bnQodmFyaWFibGUtPnR5cGUoKSkpKTsKICAgICAgICAgICAgIEFTU0VSVChhZGRSZXN1bHQuaXNO
ZXdFbnRyeSk7CkBAIC01ODIsNyArNTgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVy
biBBcmc6OmFkZHIoVG1wKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKSwgb2Zmc2V0KTsKIAog
ICAgICAgICBjYXNlIFNsb3RCYXNlOgotICAgICAgICAgICAgcmV0dXJuIEFyZzo6c3RhY2sobV9z
dGFja1RvU3RhY2suZ2V0KGFkZHJlc3MtPmFzPFNsb3RCYXNlVmFsdWU+KCktPnNsb3QoKSksIG9m
ZnNldCk7CisgICAgICAgICAgICByZXR1cm4gQXJnOjpzdGFjayhhZGRyZXNzLT5hczxTbG90QmFz
ZVZhbHVlPigpLT5zbG90KCksIG9mZnNldCk7CiAKICAgICAgICAgY2FzZSBXYXNtQWRkcmVzczog
ewogICAgICAgICAgICAgV2FzbUFkZHJlc3NWYWx1ZSogd2FzbUFkZHJlc3MgPSBhZGRyZXNzLT5h
czxXYXNtQWRkcmVzc1ZhbHVlPigpOwpAQCAtMzAxNyw3ICszMDE1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBTbG90QmFzZTogewogICAgICAgICAgICAgYXBwZW5kKAogICAgICAgICAgICAg
ICAgIHBvaW50ZXJUeXBlKCkgPT0gSW50NjQgPyBMZWE2NCA6IExlYTMyLAotICAgICAgICAgICAg
ICAgIEFyZzo6c3RhY2sobV9zdGFja1RvU3RhY2suZ2V0KG1fdmFsdWUtPmFzPFNsb3RCYXNlVmFs
dWU+KCktPnNsb3QoKSkpLAorICAgICAgICAgICAgICAgIEFyZzo6c3RhY2sobV92YWx1ZS0+YXM8
U2xvdEJhc2VWYWx1ZT4oKS0+c2xvdCgpKSwKICAgICAgICAgICAgICAgICB0bXAobV92YWx1ZSkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zNzEyLDcgKzM3MTAsNiBAQCBw
cml2YXRlOgogICAgIEhhc2hNYXA8VmFsdWUqLCBWZWN0b3I8VG1wPj4gbV90dXBsZVZhbHVlVG9U
bXBzOyAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIG1fdmFsdWVUb1RtcCBmb3IgVmFsdWVzIHRoYXQg
YXJlIFR1cGxlcy4KICAgICBIYXNoTWFwPFZhbHVlKiwgVmVjdG9yPFRtcD4+IG1fdHVwbGVQaGlU
b1RtcHM7IC8vIFRoaXMgaXMgdGhlIHNhbWUgYXMgbV9waGlUb1RtcCBmb3IgUGhpcyB0aGF0IGFy
ZSBUdXBsZXMuCiAgICAgSW5kZXhNYXA8QjM6OkJhc2ljQmxvY2sqLCBBaXI6OkJhc2ljQmxvY2sq
PiBtX2Jsb2NrVG9CbG9jazsKLSAgICBIYXNoTWFwPEIzOjpTdGFja1Nsb3QqLCBBaXI6OlN0YWNr
U2xvdCo+IG1fc3RhY2tUb1N0YWNrOwogICAgIEhhc2hNYXA8VmFyaWFibGUqLCBWZWN0b3I8VG1w
Pj4gbV92YXJpYWJsZVRvVG1wczsKIAogICAgIFVzZUNvdW50cyBtX3VzZUNvdW50czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCmluZGV4IGE1MmMwZjdmYWUxMS4uODYw
ZTdhMWFlM2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1
cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQWlyQ29kZS5o
IgorI2luY2x1ZGUgIkFpclN0YWNrU2xvdEtpbmQuaCIKICNpbmNsdWRlICJCM0JhY2t3YXJkc0NG
Ry5oIgogI2luY2x1ZGUgIkIzQmFja3dhcmRzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCkBAIC0zNyw3ICszOCw2IEBACiAjaW5jbHVkZSAiQjNEb21pbmF0b3Jz
LmgiCiAjaW5jbHVkZSAiQjNOYXR1cmFsTG9vcHMuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlu
bGluZXMuaCIKLSNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgogI2luY2x1ZGUgIkpJVE9wYXF1ZUJ5cHJv
ZHVjdHMuaCIKQEAgLTczLDkgKzczLDkgQEAgQmFzaWNCbG9jayogUHJvY2VkdXJlOjphZGRCbG9j
ayhkb3VibGUgZnJlcXVlbmN5KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVN0YWNrU2xvdCog
UHJvY2VkdXJlOjphZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUpCitBaXI6OlN0YWNrU2xv
dCogUHJvY2VkdXJlOjphZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUpCiB7Ci0gICAgcmV0
dXJuIG1fc3RhY2tTbG90cy5hZGROZXcoYnl0ZVNpemUpOworICAgIHJldHVybiBtX2NvZGUtPmFk
ZFN0YWNrU2xvdChieXRlU2l6ZSwgQWlyOjpTdGFja1Nsb3RLaW5kOjpMb2NrZWQpOwogfQogCiBW
YXJpYWJsZSogUHJvY2VkdXJlOjphZGRWYXJpYWJsZShUeXBlIHR5cGUpCkBAIC0yNTMsNyArMjUz
LDcgQEAgdm9pZCBQcm9jZWR1cmU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICB9
CiAgICAgaWYgKHN0YWNrU2xvdHMoKS5zaXplKCkpIHsKICAgICAgICAgb3V0LnByaW50KHRpZXJO
YW1lLCAiU3RhY2sgc2xvdHM6XG4iKTsKLSAgICAgICAgZm9yIChTdGFja1Nsb3QqIHNsb3QgOiBz
dGFja1Nsb3RzKCkpCisgICAgICAgIGZvciAoQWlyOjpTdGFja1Nsb3QqIHNsb3QgOiBzdGFja1Ns
b3RzKCkpCiAgICAgICAgICAgICBvdXQucHJpbnQodGllck5hbWUsICIgICAgIiwgcG9pbnRlckR1
bXAoc2xvdCksICI6ICIsIGRlZXBEdW1wKHNsb3QpLCAiXG4iKTsKICAgICB9CiAgICAgaWYgKG1f
Ynlwcm9kdWN0cy0+Y291bnQoKSkKQEAgLTI3MCwxMSArMjcwLDYgQEAgVmVjdG9yPEJhc2ljQmxv
Y2sqPiBQcm9jZWR1cmU6OmJsb2Nrc0luUG9zdE9yZGVyKCkKICAgICByZXR1cm4gQjM6OmJsb2Nr
c0luUG9zdE9yZGVyKGF0KDApKTsKIH0KIAotdm9pZCBQcm9jZWR1cmU6OmRlbGV0ZVN0YWNrU2xv
dChTdGFja1Nsb3QqIHN0YWNrU2xvdCkKLXsKLSAgICBtX3N0YWNrU2xvdHMucmVtb3ZlKHN0YWNr
U2xvdCk7Ci19Ci0KIHZvaWQgUHJvY2VkdXJlOjpkZWxldGVWYXJpYWJsZShWYXJpYWJsZSogdmFy
aWFibGUpCiB7CiAgICAgbV92YXJpYWJsZXMucmVtb3ZlKHZhcmlhYmxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKaW5kZXggMDZmZjZmNWZhMTNlLi43YzkzOTNjNjJhNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCkBAIC01OCwxMSArNTgsMTMg
QEAgY2xhc3MgQmxvY2tJbnNlcnRpb25TZXQ7CiBjbGFzcyBDRkc7CiBjbGFzcyBEb21pbmF0b3Jz
OwogY2xhc3MgTmF0dXJhbExvb3BzOwotY2xhc3MgU3RhY2tTbG90OwogY2xhc3MgVmFsdWU7CiBj
bGFzcyBWYXJpYWJsZTsKIAotbmFtZXNwYWNlIEFpciB7IGNsYXNzIENvZGU7IH0KK25hbWVzcGFj
ZSBBaXIgeworY2xhc3MgQ29kZTsKK2NsYXNzIFN0YWNrU2xvdDsKK30gLy8gbmFtZXNwYWNlIEFp
cgogCiB0eXBlZGVmIHZvaWQgV2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yRnVuY3Rpb24oQ0NhbGxI
ZWxwZXJzJiwgR1BSUmVnKTsKIHR5cGVkZWYgU2hhcmVkVGFzazxXYXNtQm91bmRzQ2hlY2tHZW5l
cmF0b3JGdW5jdGlvbj4gV2FzbUJvdW5kc0NoZWNrR2VuZXJhdG9yOwpAQCAtMTEyLDcgKzExNCw3
IEBAIHB1YmxpYzoKICAgICAgICAgc2V0QmxvY2tPcmRlckltcGwoYmxvY2tzKTsKICAgICB9CiAK
LSAgICBKU19FWFBPUlRfUFJJVkFURSBTdGFja1Nsb3QqIGFkZFN0YWNrU2xvdCh1bnNpZ25lZCBi
eXRlU2l6ZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQWlyOjpTdGFja1Nsb3QqIGFkZFN0YWNr
U2xvdCh1bnNpZ25lZCBieXRlU2l6ZSk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFyaWFibGUq
IGFkZFZhcmlhYmxlKFR5cGUpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVHlwZSBhZGRUdXBs
ZShWZWN0b3I8VHlwZT4mJiB0eXBlcyk7CkBAIC0xNjMsMTEgKzE2NSw4IEBAIHB1YmxpYzoKICAg
ICBWZWN0b3I8QmFzaWNCbG9jayo+IGJsb2Nrc0luUHJlT3JkZXIoKTsKICAgICBWZWN0b3I8QmFz
aWNCbG9jayo+IGJsb2Nrc0luUG9zdE9yZGVyKCk7CiAKLSAgICBTcGFyc2VDb2xsZWN0aW9uPFN0
YWNrU2xvdD4mIHN0YWNrU2xvdHMoKSB7IHJldHVybiBtX3N0YWNrU2xvdHM7IH0KLSAgICBjb25z
dCBTcGFyc2VDb2xsZWN0aW9uPFN0YWNrU2xvdD4mIHN0YWNrU2xvdHMoKSBjb25zdCB7IHJldHVy
biBtX3N0YWNrU2xvdHM7IH0KLQotICAgIC8vIFNob3J0IGZvciBzdGFja1Nsb3RzKCkucmVtb3Zl
KCkuIEl0J3MgYmV0dGVyIHRvIGNhbGwgdGhpcyBtZXRob2Qgc2luY2UgaXQncyBvdXQgb2YgbGlu
ZS4KLSAgICB2b2lkIGRlbGV0ZVN0YWNrU2xvdChTdGFja1Nsb3QqKTsKKyAgICBTcGFyc2VDb2xs
ZWN0aW9uPEFpcjo6U3RhY2tTbG90PiYgc3RhY2tTbG90cygpOworICAgIGNvbnN0IFNwYXJzZUNv
bGxlY3Rpb248QWlyOjpTdGFja1Nsb3Q+JiBzdGFja1Nsb3RzKCkgY29uc3Q7CiAKICAgICBTcGFy
c2VDb2xsZWN0aW9uPFZhcmlhYmxlPiYgdmFyaWFibGVzKCkgeyByZXR1cm4gbV92YXJpYWJsZXM7
IH0KICAgICBjb25zdCBTcGFyc2VDb2xsZWN0aW9uPFZhcmlhYmxlPiYgdmFyaWFibGVzKCkgY29u
c3QgeyByZXR1cm4gbV92YXJpYWJsZXM7IH0KQEAgLTI3OCw3ICsyNzcsNiBAQCBwcml2YXRlOgog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhZGRWYWx1ZUltcGwoVmFsdWUqKTsKICAgICB2
b2lkIHNldEJsb2NrT3JkZXJJbXBsKFZlY3RvcjxCYXNpY0Jsb2NrKj4mKTsKIAotICAgIFNwYXJz
ZUNvbGxlY3Rpb248U3RhY2tTbG90PiBtX3N0YWNrU2xvdHM7CiAgICAgU3BhcnNlQ29sbGVjdGlv
bjxWYXJpYWJsZT4gbV92YXJpYWJsZXM7CiAgICAgVmVjdG9yPFZlY3RvcjxUeXBlPj4gbV90dXBs
ZXM7CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxCYXNpY0Jsb2NrPj4gbV9ibG9ja3M7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmVJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmVJbmxpbmVzLmgKaW5kZXggNTAz
MDE0ODA0Mjg5Li5kOTg4NDcxODEwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZUlubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmVJbmxpbmVzLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShCM19K
SVQpCiAKKyNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1ZhbHVlLmgiCkBAIC00Niw2ICs0
Nyw5IEBAIGlubGluZSBUeXBlIFByb2NlZHVyZTo6ZXh0cmFjdEZyb21UdXBsZShUeXBlIHR1cGxl
LCB1bnNpZ25lZCBpbmRleCkgY29uc3QKICAgICByZXR1cm4gbV90dXBsZXNbdHVwbGUudHVwbGVJ
bmRleCgpXVtpbmRleF07CiB9CiAKK1NwYXJzZUNvbGxlY3Rpb248QWlyOjpTdGFja1Nsb3Q+JiBQ
cm9jZWR1cmU6OnN0YWNrU2xvdHMoKSB7IHJldHVybiBtX2NvZGUtPnN0YWNrU2xvdHMoKTsgfQor
Y29uc3QgU3BhcnNlQ29sbGVjdGlvbjxBaXI6OlN0YWNrU2xvdD4mIFByb2NlZHVyZTo6c3RhY2tT
bG90cygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZS0+c3RhY2tTbG90cygpOyB9CisKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5jcHAKaW5kZXggYTBiZTFmNTE0Y2UyLi5j
YzZlM2VhNWRiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RC
YXNlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFs
dWUuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVk
ZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Nsb3RCYXNlVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RC
YXNlVmFsdWUuaAppbmRleCAzM2M5YTJkNTFkZTMuLmU0NGVhZjM3YTQ2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuaApAQCAtMzEsMTUgKzMxLDIwIEBACiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCituYW1lc3BhY2UgQWlyIHsKKwogY2xh
c3MgU3RhY2tTbG90OwogCit9IC8vIG5hbWVzcGFjZSBBaXIKKworCiBjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBTbG90QmFzZVZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBTbG90QmFz
ZTsgfQogCiAgICAgflNsb3RCYXNlVmFsdWUoKSBmaW5hbDsKIAotICAgIFN0YWNrU2xvdCogc2xv
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2xvdDsgfQorICAgIEFpcjo6U3RhY2tTbG90KiBzbG90KCkg
Y29uc3QgeyByZXR1cm4gbV9zbG90OyB9CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9O
T19DSElMRFJFTgogCkBAIC00OSwxNCArNTQsMTQgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZHVt
cE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKIAotICAgIHN0
YXRpYyBPcGNvZGUgb3Bjb2RlRnJvbUNvbnN0cnVjdG9yKE9yaWdpbiwgU3RhY2tTbG90KikgeyBy
ZXR1cm4gU2xvdEJhc2U7IH0KLSAgICBTbG90QmFzZVZhbHVlKE9yaWdpbiBvcmlnaW4sIFN0YWNr
U2xvdCogc2xvdCkKKyAgICBzdGF0aWMgT3Bjb2RlIG9wY29kZUZyb21Db25zdHJ1Y3RvcihPcmln
aW4sIEFpcjo6U3RhY2tTbG90KikgeyByZXR1cm4gU2xvdEJhc2U7IH0KKyAgICBTbG90QmFzZVZh
bHVlKE9yaWdpbiBvcmlnaW4sIEFpcjo6U3RhY2tTbG90KiBzbG90KQogICAgICAgICA6IFZhbHVl
KENoZWNrZWRPcGNvZGUsIFNsb3RCYXNlLCBwb2ludGVyVHlwZSgpLCBaZXJvLCBvcmlnaW4pCiAg
ICAgICAgICwgbV9zbG90KHNsb3QpCiAgICAgewogICAgIH0KIAotICAgIFN0YWNrU2xvdCogbV9z
bG90OworICAgIEFpcjo6U3RhY2tTbG90KiBtX3Nsb3Q7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrU2xv
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja1Nsb3QuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTIyMDE0YTQ5YzUuLjAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja1Nsb3QuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKLQotI2lm
IEVOQUJMRShCM19KSVQpCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1TdGFj
a1Nsb3Q6On5TdGFja1Nsb3QoKQotewotfQotCi12b2lkIFN0YWNrU2xvdDo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAotewotICAgIG91dC5wcmludCgic3RhY2siLCBtX2luZGV4KTsKLX0K
LQotdm9pZCBTdGFja1Nsb3Q6OmRlZXBEdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci17Ci0g
ICAgb3V0LnByaW50KCJieXRlU2l6ZSA9ICIsIG1fYnl0ZVNpemUsICIsIG9mZnNldEZyb21GUCA9
ICIsIG1fb2Zmc2V0RnJvbUZQKTsKLX0KLQotU3RhY2tTbG90OjpTdGFja1Nsb3QodW5zaWduZWQg
Ynl0ZVNpemUpCi0gICAgOiBtX2J5dGVTaXplKGJ5dGVTaXplKQotewotfQotCi19IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrU2xvdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2tTbG90LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRh
NDc1MDk5YjNhZC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1N0YWNrU2xvdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBF
TkFCTEUoQjNfSklUKQotCi0jaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCi0jaW5jbHVk
ZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KLQotbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLWNsYXNzIFByb2NlZHVyZTsKLQotbmFtZXNwYWNlIEFp
ciB7Ci1jbGFzcyBTdGFja1Nsb3Q7Ci19IC8vIG5hbWVzcGFjZSBBaXIKLQotY2xhc3MgU3RhY2tT
bG90IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTdGFja1Nsb3QpOwotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotCi1wdWJsaWM6Ci0gICAgflN0YWNrU2xvdCgpOwotCi0gICAgdW5z
aWduZWQgYnl0ZVNpemUoKSBjb25zdCB7IHJldHVybiBtX2J5dGVTaXplOyB9Ci0gICAgdW5zaWdu
ZWQgaW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4OyB9Ci0KLSAgICAvLyBUaGlzIGdldHMg
YXNzaWduZWQgYXQgdGhlIGVuZCBvZiBjb21waWxhdGlvbi4gQnV0LCB5b3UgY2FuIHRvdGFsbHkg
cGluIHN0YWNrIHNsb3RzLiBVc2UgdGhlCi0gICAgLy8gc2V0IG1ldGhvZCB0byBkbyB0aGF0Lgot
ICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0RnJvbUZQ
OyB9Ci0KLSAgICAvLyBOb3RlIHRoYXQgdGhpcyBpcyBtZWFuaW5nbGVzcyB1bmxlc3MgdGhlIHN0
YWNrIHNsb3QgaXMgTG9ja2VkLgotICAgIHZvaWQgc2V0T2Zmc2V0RnJvbUZQKGludHB0cl90IHZh
bHVlKQotICAgIHsKLSAgICAgICAgbV9vZmZzZXRGcm9tRlAgPSB2YWx1ZTsKLSAgICB9Ci0KLSAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKLSAgICB2b2lkIGRlZXBEdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEFpcjo6U3RhY2tT
bG90OwotICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7Ci0gICAgZnJpZW5kIGNsYXNzIFNwYXJz
ZUNvbGxlY3Rpb248U3RhY2tTbG90PjsKLQotICAgIFN0YWNrU2xvdCh1bnNpZ25lZCBieXRlU2l6
ZSk7Ci0KLSAgICB1bnNpZ25lZCBtX2luZGV4IHsgVUlOVF9NQVggfTsKLSAgICB1bnNpZ25lZCBt
X2J5dGVTaXplIHsgMCB9OwotICAgIGludHB0cl90IG1fb2Zmc2V0RnJvbUZQIHsgMCB9OwotfTsK
LQotY2xhc3MgRGVlcFN0YWNrU2xvdER1bXAgewotcHVibGljOgotICAgIERlZXBTdGFja1Nsb3RE
dW1wKGNvbnN0IFN0YWNrU2xvdCogc2xvdCkKLSAgICAgICAgOiBtX3Nsb3Qoc2xvdCkKLSAgICB7
Ci0gICAgfQotCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci0gICAgewot
ICAgICAgICBpZiAobV9zbG90KQotICAgICAgICAgICAgbV9zbG90LT5kZWVwRHVtcChvdXQpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBvdXQucHJpbnQoIjxudWxsPiIpOwotICAgIH0KLQot
cHJpdmF0ZToKLSAgICBjb25zdCBTdGFja1Nsb3QqIG1fc2xvdDsKLX07Ci0KLWlubGluZSBEZWVw
U3RhY2tTbG90RHVtcCBkZWVwRHVtcChjb25zdCBTdGFja1Nsb3QqIHNsb3QpCi17Ci0gICAgcmV0
dXJuIERlZXBTdGFja1Nsb3REdW1wKHNsb3QpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAKaW5kZXggY2UxMzcxMjFiZDhjLi42NTEyODBkNDc4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJCM09yaWdpbkR1
bXAuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1Nsb3RC
YXNlVmFsdWUuaCIKLSNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUtleUlubGluZXMuaCIKICNpbmNsdWRlICJCM1dh
c21Cb3VuZHNDaGVja1ZhbHVlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2Rl
LmNwcAppbmRleCA5MDQxODFiNTc5NTMuLmUwOGQ5MjM2YTYyZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQWxs
b3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlSWYuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tV
dGlscy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCi0jaW5jbHVkZSAiQjNTdGFja1Nsb3Qu
aCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4K
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTYzLDkgKzE2Miw5IEBAIEJhc2ljQmxv
Y2sqIENvZGU6OmFkZEJsb2NrKGRvdWJsZSBmcmVxdWVuY3kpCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotU3RhY2tTbG90KiBDb2RlOjphZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0
YWNrU2xvdEtpbmQga2luZCwgQjM6OlN0YWNrU2xvdCogYjNTbG90KQorU3RhY2tTbG90KiBDb2Rl
OjphZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0YWNrU2xvdEtpbmQga2luZCkKIHsK
LSAgICBTdGFja1Nsb3QqIHJlc3VsdCA9IG1fc3RhY2tTbG90cy5hZGROZXcoYnl0ZVNpemUsIGtp
bmQsIGIzU2xvdCk7CisgICAgU3RhY2tTbG90KiByZXN1bHQgPSBtX3N0YWNrU2xvdHMuYWRkTmV3
KGJ5dGVTaXplLCBraW5kKTsKICAgICBpZiAobV9zdGFja0lzQWxsb2NhdGVkKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGlzIHVubmVjZXNzYXJpbHkgYXdmdWwuIEZvcnR1bmF0ZWx5LCBpdCBk
b2Vzbid0IHJ1biBvZnRlbi4KICAgICAgICAgdW5zaWduZWQgZXh0ZW50ID0gV1RGOjpyb3VuZFVw
VG9NdWx0aXBsZU9mKHJlc3VsdC0+YWxpZ25tZW50KCksIGZyYW1lU2l6ZSgpICsgYnl0ZVNpemUp
OwpAQCAtMTc1LDExICsxNzQsNiBAQCBTdGFja1Nsb3QqIENvZGU6OmFkZFN0YWNrU2xvdCh1bnNp
Z25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2luZCBraW5kLCBCMzo6U3RhY2tTbAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLVN0YWNrU2xvdCogQ29kZTo6YWRkU3RhY2tTbG90KEIzOjpTdGFja1Ns
b3QqIGIzU2xvdCkKLXsKLSAgICByZXR1cm4gYWRkU3RhY2tTbG90KGIzU2xvdC0+Ynl0ZVNpemUo
KSwgU3RhY2tTbG90S2luZDo6TG9ja2VkLCBiM1Nsb3QpOwotfQotCiBTcGVjaWFsKiBDb2RlOjph
ZGRTcGVjaWFsKHN0ZDo6dW5pcXVlX3B0cjxTcGVjaWFsPiBzcGVjaWFsKQogewogICAgIHNwZWNp
YWwtPm1fY29kZSA9IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCmlu
ZGV4IGQ4ZWU0MTI3YjU3My4uODBkYWZiZDg1YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNvZGUuaApAQCAtMTEyLDkgKzExMiw3IEBAIHB1YmxpYzoKICAgICAvLyBOb3RlIHRo
YXQgeW91IGNhbiByZWx5IG9uIHN0YWNrIHNsb3RzIGFsd2F5cyBnZXR0aW5nIGluZGljZXMgdGhh
dCBhcmUgbGFyZ2VyIHRoYW4gdGhlIGluZGV4CiAgICAgLy8gb2YgYW55IHByaW9yIHN0YWNrIHNs
b3QuIEluIGZhY3QsIGFsbCBzdGFjayBzbG90cyB5b3UgY3JlYXRlIGluIHRoZSBmdXR1cmUgd2ls
bCBoYXZlIGFuIGluZGV4CiAgICAgLy8gdGhhdCBpcyA+PSBzdGFja1Nsb3RzKCkuc2l6ZSgpLgot
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrU2xvdCogYWRkU3RhY2tTbG90KAotICAgICAgICB1
bnNpZ25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2luZCwgQjM6OlN0YWNrU2xvdCogPSBudWxscHRy
KTsKLSAgICBTdGFja1Nsb3QqIGFkZFN0YWNrU2xvdChCMzo6U3RhY2tTbG90Kik7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgU3RhY2tTbG90KiBhZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUs
IFN0YWNrU2xvdEtpbmQpOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3BlY2lhbCogYWRkU3Bl
Y2lhbChzdGQ6OnVuaXF1ZV9wdHI8U3BlY2lhbD4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpclN0YWNrU2xvdC5jcHAKaW5kZXggNThjYWMwNjU3NTA2Li5kNzQyNTQxYzNh
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3RhY2tTbG90
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5jcHAK
QEAgLTI4LDE1ICsyOCwxMSBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkIz
U3RhY2tTbG90LmgiCi0KIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2Ug
QWlyIHsKIAogdm9pZCBTdGFja1Nsb3Q6OnNldE9mZnNldEZyb21GUChpbnRwdHJfdCB2YWx1ZSkK
IHsKICAgICBtX29mZnNldEZyb21GUCA9IHZhbHVlOwotICAgIGlmIChtX2IzU2xvdCkKLSAgICAg
ICAgbV9iM1Nsb3QtPm1fb2Zmc2V0RnJvbUZQID0gdmFsdWU7CiB9CiAKIHVuc2lnbmVkIFN0YWNr
U2xvdDo6anNIYXNoKCkgY29uc3QKQEAgLTU2LDE3ICs1MiwxNSBAQCB2b2lkIFN0YWNrU2xvdDo6
ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogdm9pZCBTdGFja1Nsb3Q6OmRlZXBEdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KCJieXRlU2l6ZSA9ICIsIG1f
Ynl0ZVNpemUsICIsIG9mZnNldEZyb21GUCA9ICIsIG1fb2Zmc2V0RnJvbUZQLCAiLCBraW5kID0g
IiwgbV9raW5kKTsKLSAgICBpZiAobV9iM1Nsb3QpCi0gICAgICAgIG91dC5wcmludCgiLCBiM1Ns
b3QgPSAiLCAqbV9iM1Nsb3QsICI6ICgiLCBCMzo6ZGVlcER1bXAobV9iM1Nsb3QpLCAiKSIpOwog
fQogCi1TdGFja1Nsb3Q6OlN0YWNrU2xvdCh1bnNpZ25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2lu
ZCBraW5kLCBCMzo6U3RhY2tTbG90KiBiM1Nsb3QpCi0gICAgOiBtX2J5dGVTaXplKGJ5dGVTaXpl
KQotICAgICwgbV9vZmZzZXRGcm9tRlAoYjNTbG90ID8gYjNTbG90LT5vZmZzZXRGcm9tRlAoKSA6
IDApCitTdGFja1Nsb3Q6OlN0YWNrU2xvdCh1bnNpZ25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2lu
ZCBraW5kLCBpbnRwdHJfdCBvZmZzZXRGcm9tRlApCisgICAgOiBtX2J5dGVTaXplKHN0YXRpY19j
YXN0PHVpbnQxNl90PihieXRlU2l6ZSkpCiAgICAgLCBtX2tpbmQoa2luZCkKLSAgICAsIG1fYjNT
bG90KGIzU2xvdCkKKyAgICAsIG1fb2Zmc2V0RnJvbUZQKG9mZnNldEZyb21GUCkKIHsKICAgICBB
U1NFUlQoYnl0ZVNpemUpOworICAgIFJFTEVBU0VfQVNTRVJUKGJ5dGVTaXplIDw9IHN0ZDo6bnVt
ZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKSk7CiB9CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzOjpBaXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3RhY2tTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5o
CmluZGV4IDg1Yzk0YWNjODMzNy4uNzEzMTBiMzliMGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU3RhY2tTbG90LmgKQEAgLTUzLDcgKzUzLDggQEAgcHVibGljOgogICAg
IHZvaWQgZW5zdXJlU2l6ZSh1bnNpZ25lZCByZXF1ZXN0ZWRTaXplKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFtX29mZnNldEZyb21GUCk7Ci0gICAgICAgIG1fYnl0ZVNpemUgPSBzdGQ6Om1heCht
X2J5dGVTaXplLCByZXF1ZXN0ZWRTaXplKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVxdWVz
dGVkU2l6ZSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQxNl90Pjo6bWF4KCkpOworICAgICAg
ICBtX2J5dGVTaXplID0gc3RkOjptYXgobV9ieXRlU2l6ZSwgc3RhdGljX2Nhc3Q8dWludDE2X3Q+
KHJlcXVlc3RlZFNpemUpKTsKICAgICB9CiAKICAgICB1bnNpZ25lZCBhbGlnbm1lbnQoKSBjb25z
dApAQCAtNjcsOCArNjgsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiA4OwogICAgIH0KIAot
ICAgIEIzOjpTdGFja1Nsb3QqIGIzU2xvdCgpIGNvbnN0IHsgcmV0dXJuIG1fYjNTbG90OyB9Ci0K
ICAgICAvLyBaZXJvIG1lYW5zIHRoYXQgaXQncyBub3QgeWV0IGFzc2lnbmVkLgogICAgIGludHB0
cl90IG9mZnNldEZyb21GUCgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0RnJvbUZQOyB9CiAKQEAg
LTg2LDEzICs4NSwxMiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDb2RlOwogICAgIGZy
aWVuZCBjbGFzcyBTcGFyc2VDb2xsZWN0aW9uPFN0YWNrU2xvdD47CiAKLSAgICBTdGFja1Nsb3Qo
dW5zaWduZWQgYnl0ZVNpemUsIFN0YWNrU2xvdEtpbmQsIEIzOjpTdGFja1Nsb3QqKTsKKyAgICBT
dGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0YWNrU2xvdEtpbmQsIGludHB0cl90IG9mZnNl
dEZyb21GUCA9IDApOwogICAgIAotICAgIHVuc2lnbmVkIG1fYnl0ZVNpemUgeyAwIH07CisgICAg
dWludDE2X3QgbV9ieXRlU2l6ZSB7IDAgfTsKKyAgICBTdGFja1Nsb3RLaW5kIG1fa2luZCB7IFN0
YWNrU2xvdEtpbmQ6OkxvY2tlZCB9OwogICAgIHVuc2lnbmVkIG1faW5kZXggeyBVSU5UX01BWCB9
OwogICAgIGludHB0cl90IG1fb2Zmc2V0RnJvbUZQIHsgMCB9OwotICAgIFN0YWNrU2xvdEtpbmQg
bV9raW5kIHsgU3RhY2tTbG90S2luZDo6TG9ja2VkIH07Ci0gICAgQjM6OlN0YWNrU2xvdCogbV9i
M1Nsb3QgeyBudWxscHRyIH07CiB9OwogCiBjbGFzcyBEZWVwU3RhY2tTbG90RHVtcCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggN2IwZWE1NTY5MzgwLi5hMmNhMTM1YjBkZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUg
IkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorI2luY2x1ZGUgIkFpclN0
YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgi
CkBAIC01Miw3ICs1Myw2IEBACiAjaW5jbHVkZSAiQjNSZWR1Y2VMb29wU3RyZW5ndGguaCIKICNp
bmNsdWRlICJCM1JlZHVjZVN0cmVuZ3RoLmgiCiAjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgi
Ci0jaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2ls
b25WYWx1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21w
aWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKaW5kZXgg
MDYzZmQ2MDQzYzg4Li5kN2MyN2NjZWY5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDb21waWxlLmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgog
I2luY2x1ZGUgIkFpckRpc2Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgog
I2luY2x1ZGUgIkIzR2VuZXJhdGUuaCIKLSNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1
ZGUgIkIzVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNv
ZGVCbG9ja1dpdGhKSVRUeXBlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFN0YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKaW5k
ZXggYTNlZmViZjFkYTc3Li5iMTc3ZmI0Y2I4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU3RhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFN0YXRlLmgKQEAgLTQxLDcgKzQxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBC
MyB7CiBjbGFzcyBQYXRjaHBvaW50VmFsdWU7CituYW1lc3BhY2UgQWlyIHsKIGNsYXNzIFN0YWNr
U2xvdDsKK30gLy8gbmFtZXNwYWNlIEFpcgogfSAvLyBuYW1lc3BhY2UgQjMKIAogbmFtZXNwYWNl
IEZUTCB7CkBAIC03OSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICAvLyBhcmUgbm8gYXBwbGljYWJs
ZSBjYXRjaCBibG9ja3MgYW55d2hlcmUgaW4gdGhlIEdyYXBoLgogICAgIFJlZlB0cjxQYXRjaHBv
aW50RXhjZXB0aW9uSGFuZGxlPiBkZWZhdWx0RXhjZXB0aW9uSGFuZGxlOwogICAgIEJveDxDQ2Fs
bEhlbHBlcnM6OkxhYmVsPiBleGNlcHRpb25IYW5kbGVyIHsgQm94PENDYWxsSGVscGVyczo6TGFi
ZWw+OjpjcmVhdGUoKSB9OwotICAgIEIzOjpTdGFja1Nsb3QqIGNhcHR1cmVkVmFsdWUgeyBudWxs
cHRyIH07CisgICAgQjM6OkFpcjo6U3RhY2tTbG90KiBjYXB0dXJlZFZhbHVlIHsgbnVsbHB0ciB9
OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAo=
</data>
<flag name="commit-queue"
          id="451275"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429968</attachid>
            <date>2021-05-27 17:59:16 -0700</date>
            <delta_ts>2021-06-02 16:28:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch226362</filename>
            <type>text/plain</type>
            <size>27707</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg4ZWNmMmJhNTU0My4uOTM5NzYxYzA1YTFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAyMS0wNS0yNyAgUm9i
aW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIE1lcmdlIEIzOjpT
dGFja1Nsb3QgYW5kIEFpcjo6U3RhY2tTbG90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzNjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgdmVyeSBzaW1wbGUgYW5kIHNhZmUgKGFsdGhv
dWdoIHNtYWxsKSBtZW1vcnkgc2F2aW5nLCBzaW5jZSBldmVyeSBCM1N0YWNrU2xvdCBldmVudHVh
bGx5IGJlY29tZXMgYW4gQWlyU3RhY2tTbG90IHdpdGggYW4gZXhhY3QgY29weSBvZiBhbGwgdGhl
IHNhbWUgaW5mb3JtYXRpb24uCisgICAgICAgIFNpbXBseSBkcm9wcGluZyB0aGUgQjNTdGFja1Ns
b3QgcGFzdCB0aGF0IHBvaW50IGlzIHRyaWNreSwgYmVjYXVzZSBvbmUgb2YgdGhlbSBtaWdodCBi
ZSByZXRhaW5lZCBieSBGVExTdGF0ZSAoYW5kIG1vZGlmaWVkIGJ5IEFpcikuCisgICAgICAgIEl0
IGlzIG11Y2ggc2ltcGxlciB0byBqdXN0IHVzZSBBaXI6OlN0YWNrU2xvdCB0aHJvdWdob3V0LiBJ
dCBzYXZlcyB1czoKKyAgICAgICAgLSAxNiBieXRlcyBwZXIgQjNTdGFja1Nsb3QgKGZvciB0aGUg
c3RydWN0dXJlIGl0c2VsZikKKyAgICAgICAgLSBhbm90aGVyIDggYnl0ZXMgcGVyIEIzU3RhY2tT
bG90IChmb3IgdGhlIHBvaW50ZXIgaW4gdGhlIFNwYXJzZUNvbGxlY3Rpb24pCisgICAgICAgIC0g
OCBieXRlcyBwZXIgQWlyU3RhY2tTbG90IChmb3IgdGhlIHBvaW50ZXIgdG8gdGhlIEIzOjpTdGFj
a1Nsb3QpCisgICAgICAgIEkgYWxzbyB0b29rIHRoZSBvcHBvcnR1bml0eSB0byBzYXZlIGFuIGV4
dHJhIDggYnl0ZXMgcGVyIEFpclN0YWNrU2xvdCwgYnkgc2hyaW5raW5nIHRoZSBieXRlc2l6ZSBm
aWVsZCB0byBhIHVpbnQxNl90ICh3aXRoIGEgUkVMRUFTRV9BU1NFUlQgdGhhdCB3ZSBuZXZlciBv
dmVyZmxvdyBpdCkgYW5kIG1vdmluZyB0aGUgU3RhY2tTbG90S2luZCBpbiB0aGUgaG9sZSB0aGlz
IGNyZWF0ZXMuCisgICAgICAgIFRvdGFsIHNhdmluZ3M6IDE2IGJ5dGVzIHBlciBzcGlsbCBzbG90
IGFuZCA0MCBieXRlcyBwZXIgbG9ja2VkIChieSBCMykgc2xvdC4KKworICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKiBiMy9CM1Byb2Nl
ZHVyZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmFkZFN0YWNrU2xvdCk6Cisg
ICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmR1bXAgY29uc3QpOgorICAgICAgICAqIGIzL0Iz
UHJvY2VkdXJlLmg6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmVJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6OnN0YWNrU2xvdHMpOgorICAgICAgICAoSlNDOjpCMzo6UHJv
Y2VkdXJlOjpzdGFja1Nsb3RzIGNvbnN0KToKKyAgICAgICAgKiBiMy9CM1Nsb3RCYXNlVmFsdWUu
Y3BwOgorICAgICAgICAqIGIzL0IzU2xvdEJhc2VWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzU3Rh
Y2tTbG90LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiMy9CM1N0YWNrU2xvdC5oOiBSZW1vdmVk
LgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJDb2RlLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkU3RhY2tTbG90KToKKyAgICAgICAg
KiBiMy9haXIvQWlyQ29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJTdGFja1Nsb3QuY3BwOgor
ICAgICAgICAoSlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OnNldE9mZnNldEZyb21GUCk6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OlN0YWNrU2xvdDo6ZGVlcER1bXAgY29uc3QpOgorICAgICAgICAo
SlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OlN0YWNrU2xvdCk6CisgICAgICAgICogYjMvYWlyL0Fp
clN0YWNrU2xvdC5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OmVuc3VyZVNp
emUpOgorICAgICAgICAqIGIzL3Rlc3RiMy5oOgorICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNw
cDoKKyAgICAgICAgKiBmdGwvRlRMU3RhdGUuaDoKKwogMjAyMS0wNS0yNyAgQWRyaWFuIFBlcmV6
IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1
aWxkIGZpeGVzLCBsYXRlIE1heSAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggOTQyNzYxMTM0ZGExLi40MzNjN2RiNWQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC00NjcsNyArNDY3LDYgQEAKIAkJMEY5MzMyQTQxNENBN0REOTAwODVGM0M2
IC8qIFB1dEJ5SWRTdGF0dXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOTMzMjlBMTRDQTdEQzEwMDg1RjNDNiAvKiBQdXRCeUlkU3RhdHVzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5MzMyQTUx
NENBN0RERDAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVj
dHVyZVNldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGOTNCNEFBMThCOTJDNEQwMDE3OEEzRiAvKiBQdXRCeUlkVmFyaWFudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5M0I0QTgxOEI5MkM0RDAw
MTc4QTNGIC8qIFB1dEJ5SWRWYXJpYW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY5NDk1ODgxQzU3RjQ3NTAwNDEzQTQ4IC8qIEIzU3RhY2tT
bG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk0
OTU4NjFDNTdGNDc1MDA0MTNBNDggLyogQjNTdGFja1Nsb3QuaCAqLzsgfTsKIAkJMEY5NTJBQTEx
REY3ODYwOTAwRTA2RkJEIC8qIFZpc2l0UmFjZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NTJBQTAxREY3ODYwNzAwRTA2RkJEIC8qIFZpc2l0
UmFjZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGOTUyQUJEMUI0ODdBNzcwMEMzNjdDNSAvKiBUcmFja2VkUmVmZXJlbmNlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NTJBQkIxQjQ4N0E3
NzAwQzM2N0M1IC8qIFRyYWNrZWRSZWZlcmVuY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY5NjMwM0ExRDQxOTJDODAwNTYwOUQ5IC8qIENl
bGxBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjk2MzAzNjFENDE5MkMzMDA1NjA5RDkgLyogQ2VsbEF0dHJpYnV0ZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg1NSw4ICsyODU0
LDYgQEAKIAkJMEY5MzMyOUIxNENBN0RDMTAwODVGM0M2IC8qIFN0cnVjdHVyZVNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVTZXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY5M0I0QTcxOEI5MkM0RDAwMTc4QTNGIC8qIFB1dEJ5SWRWYXJp
YW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1dEJ5SWRWYXJp
YW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5M0I0QTgxOEI5MkM0RDAw
MTc4QTNGIC8qIFB1dEJ5SWRWYXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFB1dEJ5SWRWYXJpYW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTQ5
NTg1MUM1N0Y0NzUwMDQxM0E0OCAvKiBCM1N0YWNrU2xvdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCM1N0YWNrU2xvdC5jcHA7IHBhdGggPSBiMy9CM1N0YWNrU2xv
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTQ5NTg2MUM1N0Y0NzUwMDQx
M0E0OCAvKiBCM1N0YWNrU2xvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
M1N0YWNrU2xvdC5oOyBwYXRoID0gYjMvQjNTdGFja1Nsb3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5NTJBOUYxREY3ODYwNzAwRTA2RkJEIC8qIFZpc2l0UmFjZUtleS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpdFJhY2VLZXkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk1MkFBMDFERjc4NjA3MDBFMDZGQkQgLyog
VmlzaXRSYWNlS2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpc2l0UmFj
ZUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk1MkFCQTFCNDg3QTc3MDBD
MzY3QzUgLyogVHJhY2tlZFJlZmVyZW5jZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVHJhY2tlZFJlZmVyZW5jZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTkxNSw4ICs1OTEyLDYgQEAKIAkJCQkwRkVDODRFNzFCREFDREFDMDA4MEZGNzQg
LyogQjNTdGFja21hcFNwZWNpYWwuaCAqLywKIAkJCQkwRjMzOERFRjFCRTkzQUQxMDAxM0M4OEYg
LyogQjNTdGFja21hcFZhbHVlLmNwcCAqLywKIAkJCQkwRjMzOERGMDFCRTkzQUQxMDAxM0M4OEYg
LyogQjNTdGFja21hcFZhbHVlLmggKi8sCi0JCQkJMEY5NDk1ODUxQzU3RjQ3NTAwNDEzQTQ4IC8q
IEIzU3RhY2tTbG90LmNwcCAqLywKLQkJCQkwRjk0OTU4NjFDNTdGNDc1MDA0MTNBNDggLyogQjNT
dGFja1Nsb3QuaCAqLywKIAkJCQkwRkVDODRFQzFCREFDREFDMDA4MEZGNzQgLyogQjNTdWNjZXNz
b3JDb2xsZWN0aW9uLmggKi8sCiAJCQkJMEZFQzg0RUQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dp
dGNoQ2FzZS5jcHAgKi8sCiAJCQkJMEZFQzg0RUUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dpdGNo
Q2FzZS5oICovLApAQCAtOTM0OSw3ICs5MzQ0LDYgQEAKIAkJCQkwRjMzRkNGODFDMTM2RTI1MDAz
MjNGNjcgLyogQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUM4NTMxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N0YWNrbWFwU3BlY2lhbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzMzhERjIxQkU5M0FEMTAwMTNDODhGIC8qIEIzU3RhY2ttYXBWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5NDk1ODgxQzU3RjQ3NTAwNDEzQTQ4IC8qIEIzU3RhY2tT
bG90LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUzNjFCREFDREFDMDA4MEZGNzQgLyogQjNT
dWNjZXNzb3JDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUzODFCREFDREFD
MDA4MEZGNzQgLyogQjNTd2l0Y2hDYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUzQTFC
REFDREFDMDA4MEZGNzQgLyogQjNTd2l0Y2hWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU291cmNlcy50eHQKaW5kZXggYmMxY2IzZDljZWQ3Li5hYjVjYTNmMDJlYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTE2Niw3ICsxNjYsNiBAQCBiMy9CM1Nsb3RCYXNl
VmFsdWUuY3BwCiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKIGIzL0IzU3RhY2tt
YXBTcGVjaWFsLmNwcAogYjMvQjNTdGFja21hcFZhbHVlLmNwcAotYjMvQjNTdGFja1Nsb3QuY3Bw
CiBiMy9CM1N3aXRjaENhc2UuY3BwCiBiMy9CM1N3aXRjaFZhbHVlLmNwcAogYjMvQjNUeXBlLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAppbmRleCA4N2VmYjk3
NmMwZWIuLjU1NzIwNTY4MjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAKQEAgLTE1Myw4ICsxNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAotICAgICAgICBmb3IgKEIzOjpTdGFja1Nsb3QqIHN0YWNrIDogbV9wcm9jZWR1cmUu
c3RhY2tTbG90cygpKQotICAgICAgICAgICAgbV9zdGFja1RvU3RhY2suYWRkKHN0YWNrLCBtX2Nv
ZGUuYWRkU3RhY2tTbG90KHN0YWNrKSk7CiAgICAgICAgIGZvciAoVmFyaWFibGUqIHZhcmlhYmxl
IDogbV9wcm9jZWR1cmUudmFyaWFibGVzKCkpIHsKICAgICAgICAgICAgIGF1dG8gYWRkUmVzdWx0
ID0gbV92YXJpYWJsZVRvVG1wcy5hZGQodmFyaWFibGUsIFZlY3RvcjxUbXAsIDE+KG1fcHJvY2Vk
dXJlLnJlc3VsdENvdW50KHZhcmlhYmxlLT50eXBlKCkpKSk7CiAgICAgICAgICAgICBBU1NFUlQo
YWRkUmVzdWx0LmlzTmV3RW50cnkpOwpAQCAtNTgyLDcgKzU4MCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICByZXR1cm4gQXJnOjphZGRyKFRtcChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciks
IG9mZnNldCk7CiAKICAgICAgICAgY2FzZSBTbG90QmFzZToKLSAgICAgICAgICAgIHJldHVybiBB
cmc6OnN0YWNrKG1fc3RhY2tUb1N0YWNrLmdldChhZGRyZXNzLT5hczxTbG90QmFzZVZhbHVlPigp
LT5zbG90KCkpLCBvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIEFyZzo6c3RhY2soYWRkcmVz
cy0+YXM8U2xvdEJhc2VWYWx1ZT4oKS0+c2xvdCgpLCBvZmZzZXQpOwogCiAgICAgICAgIGNhc2Ug
V2FzbUFkZHJlc3M6IHsKICAgICAgICAgICAgIFdhc21BZGRyZXNzVmFsdWUqIHdhc21BZGRyZXNz
ID0gYWRkcmVzcy0+YXM8V2FzbUFkZHJlc3NWYWx1ZT4oKTsKQEAgLTMwMTcsNyArMzAxNSw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgU2xvdEJhc2U6IHsKICAgICAgICAgICAgIGFwcGVuZCgK
ICAgICAgICAgICAgICAgICBwb2ludGVyVHlwZSgpID09IEludDY0ID8gTGVhNjQgOiBMZWEzMiwK
LSAgICAgICAgICAgICAgICBBcmc6OnN0YWNrKG1fc3RhY2tUb1N0YWNrLmdldChtX3ZhbHVlLT5h
czxTbG90QmFzZVZhbHVlPigpLT5zbG90KCkpKSwKKyAgICAgICAgICAgICAgICBBcmc6OnN0YWNr
KG1fdmFsdWUtPmFzPFNsb3RCYXNlVmFsdWU+KCktPnNsb3QoKSksCiAgICAgICAgICAgICAgICAg
dG1wKG1fdmFsdWUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzcxMiw3
ICszNzEwLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFZhbHVlKiwgVmVjdG9yPFRtcD4+IG1f
dHVwbGVWYWx1ZVRvVG1wczsgLy8gVGhpcyBpcyB0aGUgc2FtZSBhcyBtX3ZhbHVlVG9UbXAgZm9y
IFZhbHVlcyB0aGF0IGFyZSBUdXBsZXMuCiAgICAgSGFzaE1hcDxWYWx1ZSosIFZlY3RvcjxUbXA+
PiBtX3R1cGxlUGhpVG9UbXBzOyAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIG1fcGhpVG9UbXAgZm9y
IFBoaXMgdGhhdCBhcmUgVHVwbGVzLgogICAgIEluZGV4TWFwPEIzOjpCYXNpY0Jsb2NrKiwgQWly
OjpCYXNpY0Jsb2NrKj4gbV9ibG9ja1RvQmxvY2s7Ci0gICAgSGFzaE1hcDxCMzo6U3RhY2tTbG90
KiwgQWlyOjpTdGFja1Nsb3QqPiBtX3N0YWNrVG9TdGFjazsKICAgICBIYXNoTWFwPFZhcmlhYmxl
KiwgVmVjdG9yPFRtcD4+IG1fdmFyaWFibGVUb1RtcHM7CiAKICAgICBVc2VDb3VudHMgbV91c2VD
b3VudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAppbmRleCBhNTJj
MGY3ZmFlMTEuLjg2MGU3YTFhZTNjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUHJvY2VkdXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9j
ZWR1cmUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1
ZGUgIkFpckNvZGUuaCIKKyNpbmNsdWRlICJBaXJTdGFja1Nsb3RLaW5kLmgiCiAjaW5jbHVkZSAi
QjNCYWNrd2FyZHNDRkcuaCIKICNpbmNsdWRlICJCM0JhY2t3YXJkc0RvbWluYXRvcnMuaCIKICNp
bmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgpAQCAtMzcsNyArMzgsNiBAQAogI2luY2x1ZGUg
IkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzTmF0dXJhbExvb3BzLmgiCiAjaW5jbHVkZSAi
QjNQcm9jZWR1cmVJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKICNpbmNsdWRl
ICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGUuaCIKICNpbmNsdWRlICJK
SVRPcGFxdWVCeXByb2R1Y3RzLmgiCkBAIC03Myw5ICs3Myw5IEBAIEJhc2ljQmxvY2sqIFByb2Nl
ZHVyZTo6YWRkQmxvY2soZG91YmxlIGZyZXF1ZW5jeSkKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1TdGFja1Nsb3QqIFByb2NlZHVyZTo6YWRkU3RhY2tTbG90KHVuc2lnbmVkIGJ5dGVTaXplKQor
QWlyOjpTdGFja1Nsb3QqIFByb2NlZHVyZTo6YWRkU3RhY2tTbG90KHVuc2lnbmVkIGJ5dGVTaXpl
KQogewotICAgIHJldHVybiBtX3N0YWNrU2xvdHMuYWRkTmV3KGJ5dGVTaXplKTsKKyAgICByZXR1
cm4gbV9jb2RlLT5hZGRTdGFja1Nsb3QoYnl0ZVNpemUsIEFpcjo6U3RhY2tTbG90S2luZDo6TG9j
a2VkKTsKIH0KIAogVmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eXBlKQpA
QCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgUHJvY2VkdXJlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiAgICAgfQogICAgIGlmIChzdGFja1Nsb3RzKCkuc2l6ZSgpKSB7CiAgICAgICAgIG91
dC5wcmludCh0aWVyTmFtZSwgIlN0YWNrIHNsb3RzOlxuIik7Ci0gICAgICAgIGZvciAoU3RhY2tT
bG90KiBzbG90IDogc3RhY2tTbG90cygpKQorICAgICAgICBmb3IgKEFpcjo6U3RhY2tTbG90KiBz
bG90IDogc3RhY2tTbG90cygpKQogICAgICAgICAgICAgb3V0LnByaW50KHRpZXJOYW1lLCAiICAg
ICIsIHBvaW50ZXJEdW1wKHNsb3QpLCAiOiAiLCBkZWVwRHVtcChzbG90KSwgIlxuIik7CiAgICAg
fQogICAgIGlmIChtX2J5cHJvZHVjdHMtPmNvdW50KCkpCkBAIC0yNzAsMTEgKzI3MCw2IEBAIFZl
Y3RvcjxCYXNpY0Jsb2NrKj4gUHJvY2VkdXJlOjpibG9ja3NJblBvc3RPcmRlcigpCiAgICAgcmV0
dXJuIEIzOjpibG9ja3NJblBvc3RPcmRlcihhdCgwKSk7CiB9CiAKLXZvaWQgUHJvY2VkdXJlOjpk
ZWxldGVTdGFja1Nsb3QoU3RhY2tTbG90KiBzdGFja1Nsb3QpCi17Ci0gICAgbV9zdGFja1Nsb3Rz
LnJlbW92ZShzdGFja1Nsb3QpOwotfQotCiB2b2lkIFByb2NlZHVyZTo6ZGVsZXRlVmFyaWFibGUo
VmFyaWFibGUqIHZhcmlhYmxlKQogewogICAgIG1fdmFyaWFibGVzLnJlbW92ZSh2YXJpYWJsZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCmluZGV4IDA2ZmY2ZjVmYTEzZS4u
N2M5MzkzYzYyYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9j
ZWR1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaApAQCAt
NTgsMTEgKzU4LDEzIEBAIGNsYXNzIEJsb2NrSW5zZXJ0aW9uU2V0OwogY2xhc3MgQ0ZHOwogY2xh
c3MgRG9taW5hdG9yczsKIGNsYXNzIE5hdHVyYWxMb29wczsKLWNsYXNzIFN0YWNrU2xvdDsKIGNs
YXNzIFZhbHVlOwogY2xhc3MgVmFyaWFibGU7CiAKLW5hbWVzcGFjZSBBaXIgeyBjbGFzcyBDb2Rl
OyB9CituYW1lc3BhY2UgQWlyIHsKK2NsYXNzIENvZGU7CitjbGFzcyBTdGFja1Nsb3Q7Cit9IC8v
IG5hbWVzcGFjZSBBaXIKIAogdHlwZWRlZiB2b2lkIFdhc21Cb3VuZHNDaGVja0dlbmVyYXRvckZ1
bmN0aW9uKENDYWxsSGVscGVycyYsIEdQUlJlZyk7CiB0eXBlZGVmIFNoYXJlZFRhc2s8V2FzbUJv
dW5kc0NoZWNrR2VuZXJhdG9yRnVuY3Rpb24+IFdhc21Cb3VuZHNDaGVja0dlbmVyYXRvcjsKQEAg
LTExMiw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHNldEJsb2NrT3JkZXJJbXBsKGJsb2Nr
cyk7CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RhY2tTbG90KiBhZGRTdGFja1Ns
b3QodW5zaWduZWQgYnl0ZVNpemUpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEFpcjo6U3RhY2tT
bG90KiBhZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUpOwogICAgIEpTX0VYUE9SVF9QUklW
QVRFIFZhcmlhYmxlKiBhZGRWYXJpYWJsZShUeXBlKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFR5cGUgYWRkVHVwbGUoVmVjdG9yPFR5cGU+JiYgdHlwZXMpOwpAQCAtMTYzLDExICsxNjUsOCBA
QCBwdWJsaWM6CiAgICAgVmVjdG9yPEJhc2ljQmxvY2sqPiBibG9ja3NJblByZU9yZGVyKCk7CiAg
ICAgVmVjdG9yPEJhc2ljQmxvY2sqPiBibG9ja3NJblBvc3RPcmRlcigpOwogCi0gICAgU3BhcnNl
Q29sbGVjdGlvbjxTdGFja1Nsb3Q+JiBzdGFja1Nsb3RzKCkgeyByZXR1cm4gbV9zdGFja1Nsb3Rz
OyB9Ci0gICAgY29uc3QgU3BhcnNlQ29sbGVjdGlvbjxTdGFja1Nsb3Q+JiBzdGFja1Nsb3RzKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGFja1Nsb3RzOyB9Ci0KLSAgICAvLyBTaG9ydCBmb3Igc3RhY2tT
bG90cygpLnJlbW92ZSgpLiBJdCdzIGJldHRlciB0byBjYWxsIHRoaXMgbWV0aG9kIHNpbmNlIGl0
J3Mgb3V0IG9mIGxpbmUuCi0gICAgdm9pZCBkZWxldGVTdGFja1Nsb3QoU3RhY2tTbG90Kik7Cisg
ICAgU3BhcnNlQ29sbGVjdGlvbjxBaXI6OlN0YWNrU2xvdD4mIHN0YWNrU2xvdHMoKTsKKyAgICBj
b25zdCBTcGFyc2VDb2xsZWN0aW9uPEFpcjo6U3RhY2tTbG90PiYgc3RhY2tTbG90cygpIGNvbnN0
OwogCiAgICAgU3BhcnNlQ29sbGVjdGlvbjxWYXJpYWJsZT4mIHZhcmlhYmxlcygpIHsgcmV0dXJu
IG1fdmFyaWFibGVzOyB9CiAgICAgY29uc3QgU3BhcnNlQ29sbGVjdGlvbjxWYXJpYWJsZT4mIHZh
cmlhYmxlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFyaWFibGVzOyB9CkBAIC0yNzgsNyArMjc3LDYg
QEAgcHJpdmF0ZToKICAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYWRkVmFsdWVJbXBsKFZh
bHVlKik7CiAgICAgdm9pZCBzZXRCbG9ja09yZGVySW1wbChWZWN0b3I8QmFzaWNCbG9jayo+Jik7
CiAKLSAgICBTcGFyc2VDb2xsZWN0aW9uPFN0YWNrU2xvdD4gbV9zdGFja1Nsb3RzOwogICAgIFNw
YXJzZUNvbGxlY3Rpb248VmFyaWFibGU+IG1fdmFyaWFibGVzOwogICAgIFZlY3RvcjxWZWN0b3I8
VHlwZT4+IG1fdHVwbGVzOwogICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8QmFzaWNCbG9jaz4+
IG1fYmxvY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlSW5saW5l
cy5oCmluZGV4IDUwMzAxNDgwNDI4OS4uZjM2OTdlM2Q1NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmVJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlSW5saW5lcy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
ZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9jay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZS5o
IgpAQCAtNDYsNiArNDcsOSBAQCBpbmxpbmUgVHlwZSBQcm9jZWR1cmU6OmV4dHJhY3RGcm9tVHVw
bGUoVHlwZSB0dXBsZSwgdW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG1fdHVwbGVz
W3R1cGxlLnR1cGxlSW5kZXgoKV1baW5kZXhdOwogfQogCitpbmxpbmUgU3BhcnNlQ29sbGVjdGlv
bjxBaXI6OlN0YWNrU2xvdD4mIFByb2NlZHVyZTo6c3RhY2tTbG90cygpIHsgcmV0dXJuIG1fY29k
ZS0+c3RhY2tTbG90cygpOyB9CitpbmxpbmUgY29uc3QgU3BhcnNlQ29sbGVjdGlvbjxBaXI6OlN0
YWNrU2xvdD4mIFByb2NlZHVyZTo6c3RhY2tTbG90cygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZS0+
c3RhY2tTbG90cygpOyB9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCiAjZW5kaWYgLy8g
RU5BQkxFKEIzX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Ns
b3RCYXNlVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1
ZS5jcHAKaW5kZXggYTBiZTFmNTE0Y2UyLi5jYzZlM2VhNWRiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
ZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNsdWRlICJB
aXJTdGFja1Nsb3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuaAppbmRleCAzM2M5YTJkNTFkZTMu
LmU0NGVhZjM3YTQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xv
dEJhc2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFs
dWUuaApAQCAtMzEsMTUgKzMxLDIwIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
ewogCituYW1lc3BhY2UgQWlyIHsKKwogY2xhc3MgU3RhY2tTbG90OwogCit9IC8vIG5hbWVzcGFj
ZSBBaXIKKworCiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBTbG90QmFzZVZhbHVlIGZpbmFsIDog
cHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2lu
ZCkgeyByZXR1cm4ga2luZCA9PSBTbG90QmFzZTsgfQogCiAgICAgflNsb3RCYXNlVmFsdWUoKSBm
aW5hbDsKIAotICAgIFN0YWNrU2xvdCogc2xvdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2xvdDsgfQor
ICAgIEFpcjo6U3RhY2tTbG90KiBzbG90KCkgY29uc3QgeyByZXR1cm4gbV9zbG90OyB9CiAKICAg
ICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9OT19DSElMRFJFTgogCkBAIC00OSwxNCArNTQsMTQg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJl
YW0mKSBjb25zdCBmaW5hbDsKIAotICAgIHN0YXRpYyBPcGNvZGUgb3Bjb2RlRnJvbUNvbnN0cnVj
dG9yKE9yaWdpbiwgU3RhY2tTbG90KikgeyByZXR1cm4gU2xvdEJhc2U7IH0KLSAgICBTbG90QmFz
ZVZhbHVlKE9yaWdpbiBvcmlnaW4sIFN0YWNrU2xvdCogc2xvdCkKKyAgICBzdGF0aWMgT3Bjb2Rl
IG9wY29kZUZyb21Db25zdHJ1Y3RvcihPcmlnaW4sIEFpcjo6U3RhY2tTbG90KikgeyByZXR1cm4g
U2xvdEJhc2U7IH0KKyAgICBTbG90QmFzZVZhbHVlKE9yaWdpbiBvcmlnaW4sIEFpcjo6U3RhY2tT
bG90KiBzbG90KQogICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIFNsb3RCYXNlLCBwb2lu
dGVyVHlwZSgpLCBaZXJvLCBvcmlnaW4pCiAgICAgICAgICwgbV9zbG90KHNsb3QpCiAgICAgewog
ICAgIH0KIAotICAgIFN0YWNrU2xvdCogbV9zbG90OworICAgIEFpcjo6U3RhY2tTbG90KiBtX3Ns
b3Q7CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrU2xvdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTdGFja1Nsb3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTIyMDE0
YTQ5YzUuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFj
a1Nsb3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiQjNTdGFja1Nsb3QuaCIKLQotI2lmIEVOQUJMRShCM19KSVQpCi0KLW5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewotCi1TdGFja1Nsb3Q6On5TdGFja1Nsb3QoKQotewotfQotCi12
b2lkIFN0YWNrU2xvdDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAotewotICAgIG91dC5w
cmludCgic3RhY2siLCBtX2luZGV4KTsKLX0KLQotdm9pZCBTdGFja1Nsb3Q6OmRlZXBEdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0Ci17Ci0gICAgb3V0LnByaW50KCJieXRlU2l6ZSA9ICIsIG1f
Ynl0ZVNpemUsICIsIG9mZnNldEZyb21GUCA9ICIsIG1fb2Zmc2V0RnJvbUZQKTsKLX0KLQotU3Rh
Y2tTbG90OjpTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUpCi0gICAgOiBtX2J5dGVTaXplKGJ5
dGVTaXplKQotewotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0
YWNrU2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tTbG90LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhNDc1MDk5YjNhZC4uMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrU2xvdC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoQjNfSklUKQotCi0jaW5jbHVkZSAiQjNT
cGFyc2VDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8d3RmL0Zh
c3RNYWxsb2MuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYv
UHJpbnRTdHJlYW0uaD4KLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLWNsYXNz
IFByb2NlZHVyZTsKLQotbmFtZXNwYWNlIEFpciB7Ci1jbGFzcyBTdGFja1Nsb3Q7Ci19IC8vIG5h
bWVzcGFjZSBBaXIKLQotY2xhc3MgU3RhY2tTbG90IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShTdGFja1Nsb3QpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotCi1wdWJsaWM6Ci0g
ICAgflN0YWNrU2xvdCgpOwotCi0gICAgdW5zaWduZWQgYnl0ZVNpemUoKSBjb25zdCB7IHJldHVy
biBtX2J5dGVTaXplOyB9Ci0gICAgdW5zaWduZWQgaW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2lu
ZGV4OyB9Ci0KLSAgICAvLyBUaGlzIGdldHMgYXNzaWduZWQgYXQgdGhlIGVuZCBvZiBjb21waWxh
dGlvbi4gQnV0LCB5b3UgY2FuIHRvdGFsbHkgcGluIHN0YWNrIHNsb3RzLiBVc2UgdGhlCi0gICAg
Ly8gc2V0IG1ldGhvZCB0byBkbyB0aGF0LgotICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNv
bnN0IHsgcmV0dXJuIG1fb2Zmc2V0RnJvbUZQOyB9Ci0KLSAgICAvLyBOb3RlIHRoYXQgdGhpcyBp
cyBtZWFuaW5nbGVzcyB1bmxlc3MgdGhlIHN0YWNrIHNsb3QgaXMgTG9ja2VkLgotICAgIHZvaWQg
c2V0T2Zmc2V0RnJvbUZQKGludHB0cl90IHZhbHVlKQotICAgIHsKLSAgICAgICAgbV9vZmZzZXRG
cm9tRlAgPSB2YWx1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25z
dDsKLSAgICB2b2lkIGRlZXBEdW1wKFByaW50U3RyZWFtJikgY29uc3Q7Ci0KLXByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIEFpcjo6U3RhY2tTbG90OwotICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7Ci0gICAgZnJpZW5kIGNsYXNzIFNwYXJzZUNvbGxlY3Rpb248U3RhY2tTbG90PjsKLQotICAg
IFN0YWNrU2xvdCh1bnNpZ25lZCBieXRlU2l6ZSk7Ci0KLSAgICB1bnNpZ25lZCBtX2luZGV4IHsg
VUlOVF9NQVggfTsKLSAgICB1bnNpZ25lZCBtX2J5dGVTaXplIHsgMCB9OwotICAgIGludHB0cl90
IG1fb2Zmc2V0RnJvbUZQIHsgMCB9OwotfTsKLQotY2xhc3MgRGVlcFN0YWNrU2xvdER1bXAgewot
cHVibGljOgotICAgIERlZXBTdGFja1Nsb3REdW1wKGNvbnN0IFN0YWNrU2xvdCogc2xvdCkKLSAg
ICAgICAgOiBtX3Nsb3Qoc2xvdCkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAobV9zbG90KQotICAgICAgICAg
ICAgbV9zbG90LT5kZWVwRHVtcChvdXQpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBvdXQu
cHJpbnQoIjxudWxsPiIpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBjb25zdCBTdGFja1Nsb3Qq
IG1fc2xvdDsKLX07Ci0KLWlubGluZSBEZWVwU3RhY2tTbG90RHVtcCBkZWVwRHVtcChjb25zdCBT
dGFja1Nsb3QqIHNsb3QpCi17Ci0gICAgcmV0dXJuIERlZXBTdGFja1Nsb3REdW1wKHNsb3QpOwot
fQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKaW5kZXggY2UxMzcxMjFiZDhjLi42NTEy
ODBkNDc4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKQEAgLTM4LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJCM09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlu
bGluZXMuaCIKICNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKLSNpbmNsdWRlICJCM1N0YWNr
U2xvdC5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUtl
eUlubGluZXMuaCIKICNpbmNsdWRlICJCM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAppbmRleCA5MDQxODFiNTc5NTMuLmUwOGQ5
MjM2YTYyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2Rl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCkBAIC0z
NCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlSWYu
aCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
LmgiCi0jaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIK
ICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpA
QCAtMTYzLDkgKzE2Miw5IEBAIEJhc2ljQmxvY2sqIENvZGU6OmFkZEJsb2NrKGRvdWJsZSBmcmVx
dWVuY3kpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotU3RhY2tTbG90KiBDb2RlOjphZGRTdGFj
a1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0YWNrU2xvdEtpbmQga2luZCwgQjM6OlN0YWNrU2xv
dCogYjNTbG90KQorU3RhY2tTbG90KiBDb2RlOjphZGRTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNp
emUsIFN0YWNrU2xvdEtpbmQga2luZCkKIHsKLSAgICBTdGFja1Nsb3QqIHJlc3VsdCA9IG1fc3Rh
Y2tTbG90cy5hZGROZXcoYnl0ZVNpemUsIGtpbmQsIGIzU2xvdCk7CisgICAgU3RhY2tTbG90KiBy
ZXN1bHQgPSBtX3N0YWNrU2xvdHMuYWRkTmV3KGJ5dGVTaXplLCBraW5kKTsKICAgICBpZiAobV9z
dGFja0lzQWxsb2NhdGVkKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHVubmVjZXNzYXJp
bHkgYXdmdWwuIEZvcnR1bmF0ZWx5LCBpdCBkb2Vzbid0IHJ1biBvZnRlbi4KICAgICAgICAgdW5z
aWduZWQgZXh0ZW50ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHJlc3VsdC0+YWxpZ25tZW50
KCksIGZyYW1lU2l6ZSgpICsgYnl0ZVNpemUpOwpAQCAtMTc1LDExICsxNzQsNiBAQCBTdGFja1Ns
b3QqIENvZGU6OmFkZFN0YWNrU2xvdCh1bnNpZ25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2luZCBr
aW5kLCBCMzo6U3RhY2tTbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVN0YWNrU2xvdCogQ29k
ZTo6YWRkU3RhY2tTbG90KEIzOjpTdGFja1Nsb3QqIGIzU2xvdCkKLXsKLSAgICByZXR1cm4gYWRk
U3RhY2tTbG90KGIzU2xvdC0+Ynl0ZVNpemUoKSwgU3RhY2tTbG90S2luZDo6TG9ja2VkLCBiM1Ns
b3QpOwotfQotCiBTcGVjaWFsKiBDb2RlOjphZGRTcGVjaWFsKHN0ZDo6dW5pcXVlX3B0cjxTcGVj
aWFsPiBzcGVjaWFsKQogewogICAgIHNwZWNpYWwtPm1fY29kZSA9IHRoaXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCmluZGV4IGQ4ZWU0MTI3YjU3My4uODBkYWZiZDg1YWFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaApAQCAtMTEyLDkgKzExMiw3
IEBAIHB1YmxpYzoKICAgICAvLyBOb3RlIHRoYXQgeW91IGNhbiByZWx5IG9uIHN0YWNrIHNsb3Rz
IGFsd2F5cyBnZXR0aW5nIGluZGljZXMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gdGhlIGluZGV4CiAg
ICAgLy8gb2YgYW55IHByaW9yIHN0YWNrIHNsb3QuIEluIGZhY3QsIGFsbCBzdGFjayBzbG90cyB5
b3UgY3JlYXRlIGluIHRoZSBmdXR1cmUgd2lsbCBoYXZlIGFuIGluZGV4CiAgICAgLy8gdGhhdCBp
cyA+PSBzdGFja1Nsb3RzKCkuc2l6ZSgpLgotICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrU2xv
dCogYWRkU3RhY2tTbG90KAotICAgICAgICB1bnNpZ25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2lu
ZCwgQjM6OlN0YWNrU2xvdCogPSBudWxscHRyKTsKLSAgICBTdGFja1Nsb3QqIGFkZFN0YWNrU2xv
dChCMzo6U3RhY2tTbG90Kik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RhY2tTbG90KiBhZGRT
dGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0YWNrU2xvdEtpbmQpOwogCiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgU3BlY2lhbCogYWRkU3BlY2lhbChzdGQ6OnVuaXF1ZV9wdHI8U3BlY2lhbD4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xv
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5jcHAKaW5k
ZXggNThjYWMwNjU3NTA2Li5kNzQyNTQxYzNhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyU3RhY2tTbG90LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpclN0YWNrU2xvdC5jcHAKQEAgLTI4LDE1ICsyOCwxMSBAQAogCiAjaWYgRU5B
QkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCi0KIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIAogdm9pZCBTdGFja1Nsb3Q6OnNldE9m
ZnNldEZyb21GUChpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBtX29mZnNldEZyb21GUCA9IHZhbHVl
OwotICAgIGlmIChtX2IzU2xvdCkKLSAgICAgICAgbV9iM1Nsb3QtPm1fb2Zmc2V0RnJvbUZQID0g
dmFsdWU7CiB9CiAKIHVuc2lnbmVkIFN0YWNrU2xvdDo6anNIYXNoKCkgY29uc3QKQEAgLTU2LDE3
ICs1MiwxNSBAQCB2b2lkIFN0YWNrU2xvdDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
dm9pZCBTdGFja1Nsb3Q6OmRlZXBEdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAg
b3V0LnByaW50KCJieXRlU2l6ZSA9ICIsIG1fYnl0ZVNpemUsICIsIG9mZnNldEZyb21GUCA9ICIs
IG1fb2Zmc2V0RnJvbUZQLCAiLCBraW5kID0gIiwgbV9raW5kKTsKLSAgICBpZiAobV9iM1Nsb3Qp
Ci0gICAgICAgIG91dC5wcmludCgiLCBiM1Nsb3QgPSAiLCAqbV9iM1Nsb3QsICI6ICgiLCBCMzo6
ZGVlcER1bXAobV9iM1Nsb3QpLCAiKSIpOwogfQogCi1TdGFja1Nsb3Q6OlN0YWNrU2xvdCh1bnNp
Z25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2luZCBraW5kLCBCMzo6U3RhY2tTbG90KiBiM1Nsb3Qp
Ci0gICAgOiBtX2J5dGVTaXplKGJ5dGVTaXplKQotICAgICwgbV9vZmZzZXRGcm9tRlAoYjNTbG90
ID8gYjNTbG90LT5vZmZzZXRGcm9tRlAoKSA6IDApCitTdGFja1Nsb3Q6OlN0YWNrU2xvdCh1bnNp
Z25lZCBieXRlU2l6ZSwgU3RhY2tTbG90S2luZCBraW5kLCBpbnRwdHJfdCBvZmZzZXRGcm9tRlAp
CisgICAgOiBtX2J5dGVTaXplKHN0YXRpY19jYXN0PHVpbnQxNl90PihieXRlU2l6ZSkpCiAgICAg
LCBtX2tpbmQoa2luZCkKLSAgICAsIG1fYjNTbG90KGIzU2xvdCkKKyAgICAsIG1fb2Zmc2V0RnJv
bUZQKG9mZnNldEZyb21GUCkKIHsKICAgICBBU1NFUlQoYnl0ZVNpemUpOworICAgIFJFTEVBU0Vf
QVNTRVJUKGJ5dGVTaXplIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKSk7
CiB9CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3RhY2tTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclN0YWNrU2xvdC5oCmluZGV4IDg1Yzk0YWNjODMzNy4uNzEzMTBiMzli
MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclN0YWNrU2xv
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3RhY2tTbG90LmgKQEAg
LTUzLDcgKzUzLDggQEAgcHVibGljOgogICAgIHZvaWQgZW5zdXJlU2l6ZSh1bnNpZ25lZCByZXF1
ZXN0ZWRTaXplKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX29mZnNldEZyb21GUCk7Ci0gICAg
ICAgIG1fYnl0ZVNpemUgPSBzdGQ6Om1heChtX2J5dGVTaXplLCByZXF1ZXN0ZWRTaXplKTsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlQocmVxdWVzdGVkU2l6ZSA8PSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQxNl90Pjo6bWF4KCkpOworICAgICAgICBtX2J5dGVTaXplID0gc3RkOjptYXgobV9ieXRl
U2l6ZSwgc3RhdGljX2Nhc3Q8dWludDE2X3Q+KHJlcXVlc3RlZFNpemUpKTsKICAgICB9CiAKICAg
ICB1bnNpZ25lZCBhbGlnbm1lbnQoKSBjb25zdApAQCAtNjcsOCArNjgsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiA4OwogICAgIH0KIAotICAgIEIzOjpTdGFja1Nsb3QqIGIzU2xvdCgpIGNv
bnN0IHsgcmV0dXJuIG1fYjNTbG90OyB9Ci0KICAgICAvLyBaZXJvIG1lYW5zIHRoYXQgaXQncyBu
b3QgeWV0IGFzc2lnbmVkLgogICAgIGludHB0cl90IG9mZnNldEZyb21GUCgpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0RnJvbUZQOyB9CiAKQEAgLTg2LDEzICs4NSwxMiBAQCBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBDb2RlOwogICAgIGZyaWVuZCBjbGFzcyBTcGFyc2VDb2xsZWN0aW9uPFN0
YWNrU2xvdD47CiAKLSAgICBTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0YWNrU2xvdEtp
bmQsIEIzOjpTdGFja1Nsb3QqKTsKKyAgICBTdGFja1Nsb3QodW5zaWduZWQgYnl0ZVNpemUsIFN0
YWNrU2xvdEtpbmQsIGludHB0cl90IG9mZnNldEZyb21GUCA9IDApOwogICAgIAotICAgIHVuc2ln
bmVkIG1fYnl0ZVNpemUgeyAwIH07CisgICAgdWludDE2X3QgbV9ieXRlU2l6ZSB7IDAgfTsKKyAg
ICBTdGFja1Nsb3RLaW5kIG1fa2luZCB7IFN0YWNrU2xvdEtpbmQ6OkxvY2tlZCB9OwogICAgIHVu
c2lnbmVkIG1faW5kZXggeyBVSU5UX01BWCB9OwogICAgIGludHB0cl90IG1fb2Zmc2V0RnJvbUZQ
IHsgMCB9OwotICAgIFN0YWNrU2xvdEtpbmQgbV9raW5kIHsgU3RhY2tTbG90S2luZDo6TG9ja2Vk
IH07Ci0gICAgQjM6OlN0YWNrU2xvdCogbV9iM1Nsb3QgeyBudWxscHRyIH07CiB9OwogCiBjbGFz
cyBEZWVwU3RhY2tTbG90RHVtcCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKaW5kZXggN2Iw
ZWE1NTY5MzgwLi5hMmNhMTM1YjBkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmgKQEAg
LTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0
SW5saW5lcy5oIgorI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclZhbGlk
YXRlLmgiCiAjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5j
bHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCkBAIC01Miw3ICs1Myw2IEBACiAjaW5jbHVkZSAi
QjNSZWR1Y2VMb29wU3RyZW5ndGguaCIKICNpbmNsdWRlICJCM1JlZHVjZVN0cmVuZ3RoLmgiCiAj
aW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCi0jaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKICNp
bmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNo
VmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ29tcGlsZS5jcHAKaW5kZXggMDYzZmQ2MDQzYzg4Li5kN2MyN2NjZWY5MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApAQCAtMzAsOCArMzAsOCBA
QAogCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckRpc2Fzc2VtYmxlci5oIgor
I2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzR2VuZXJhdGUuaCIKLSNpbmNs
dWRlICJCM1N0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkIzVmFsdWUuaCIKICNpbmNsdWRlICJCM1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKaW5kZXggYTNlZmViZjFkYTc3Li5iMTc3ZmI0Y2I4ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKQEAgLTQxLDcgKzQxLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIG5hbWVzcGFjZSBCMyB7CiBjbGFzcyBQYXRjaHBvaW50VmFsdWU7Citu
YW1lc3BhY2UgQWlyIHsKIGNsYXNzIFN0YWNrU2xvdDsKK30gLy8gbmFtZXNwYWNlIEFpcgogfSAv
LyBuYW1lc3BhY2UgQjMKIAogbmFtZXNwYWNlIEZUTCB7CkBAIC03OSw3ICs4MSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBhcmUgbm8gYXBwbGljYWJsZSBjYXRjaCBibG9ja3MgYW55d2hlcmUgaW4gdGhl
IEdyYXBoLgogICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBkZWZhdWx0RXhj
ZXB0aW9uSGFuZGxlOwogICAgIEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBleGNlcHRpb25IYW5k
bGVyIHsgQm94PENDYWxsSGVscGVyczo6TGFiZWw+OjpjcmVhdGUoKSB9OwotICAgIEIzOjpTdGFj
a1Nsb3QqIGNhcHR1cmVkVmFsdWUgeyBudWxscHRyIH07CisgICAgQjM6OkFpcjo6U3RhY2tTbG90
KiBjYXB0dXJlZFZhbHVlIHsgbnVsbHB0ciB9OwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkZUTAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>