<?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>183965</bug_id>
          
          <creation_ts>2018-03-23 16:55:21 -0700</creation_ts>
          <short_desc>Merge ResourceHandleClient::willCacheResponseAsync with ResourceHandleClient::willCacheResponse</short_desc>
          <delta_ts>2018-03-26 10:39:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1408971</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-23 16:55:21 -0700</bug_when>
    <thetext>Merge ResourceHandleClient::willCacheResponseAsync with ResourceHandleClient::willCacheResponse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408972</commentid>
    <comment_count>1</comment_count>
      <attachid>336442</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-23 16:57:15 -0700</bug_when>
    <thetext>Created attachment 336442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409158</commentid>
    <comment_count>2</comment_count>
      <attachid>336489</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-24 23:32:00 -0700</bug_when>
    <thetext>Created attachment 336489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409160</commentid>
    <comment_count>3</comment_count>
      <attachid>336491</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-25 00:23:37 -0700</bug_when>
    <thetext>Created attachment 336491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409321</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-03-26 10:39:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/r229977</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409322</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-26 10:39:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/38871656&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336442</attachid>
            <date>2018-03-23 16:57:15 -0700</date>
            <delta_ts>2018-03-24 23:31:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183965-20180323165714.patch</filename>
            <type>text/plain</type>
            <size>25307</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTgwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTAzLTIzICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWVyZ2UgUmVz
b3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMgd2l0aCBSZXNvdXJjZUhh
bmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEl0IHR1cm5zIG91dCB0aGF0IFJlc291cmNlSGFuZGxlQ2xp
ZW50Ojp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jIGRpZG4ndCBkbyBhbnl0aGluZyBhbmQgdGhlIGxv
Z2ljIGluCisgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZSB3
YXMgbm90IGJlaW5nIGNhbGxlZC4gIFRoaXMgbWFrZXMgaXQgc28gdGhlcmUgaXMgb25lIGNvZGUK
KyAgICAgICAgcGF0aCBhbmQgaXQgZXhlY3V0ZXMgdGhlIGxvZ2ljIGluIFJlc291cmNlSGFuZGxl
Q2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVy
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hl
UmVzcG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2ls
bENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9tYWMvUmVzb3VyY2VM
b2FkZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hl
UmVzcG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2Fj
aGVSZXNwb25zZUFzeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNs
aWVudDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZUNsaWVudDo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZSk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWU6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6
OmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVy
YXRpb25RdWV1ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2ls
bENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9u
UXVldWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAg
ICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb250
aW51ZVdpbGxDYWNoZVJlc3BvbnNlOl0pOiBEZWxldGVkLgorCiAyMDE4LTAzLTIxICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ29vcmRHcmFwaGljc10g
VHJhY2sgZGlydHkgcmVjdHMgdGhhdCBuZWVkIHVwZGF0ZSBpbiBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQuaAkocmV2aXNpb24gMjI5ODA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
RnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIGNs
YXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGkKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBm
aW5hbCB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgTlNDYWNoZWRVUkxSZXNwb25zZSAqd2lsbENh
Y2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBOU0NhY2hlZFVSTFJl
c3BvbnNlICpyZXNwb25zZSkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVzcG9uc2U7IH0KKyAgICB2
b2lkIHdpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgTlND
YWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNo
ZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgZmluYWwgeyBjb21w
bGV0aW9uSGFuZGxlcihyZXNwb25zZSk7IH0KICNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVD
VElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCShy
ZXZpc2lvbiAyMjk4MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAyLDcgKzMwMiw3IEBAIHB1YmxpYzoKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICAvLyBBbGxvdyBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCB0byByZXRy
aWV2ZSBhIEZyYW1lIHBhcmVudCBpZiB0aGVyZSdzIG5vIFBsYXRmb3JtV2lkZ2V0LgogICAgIHZp
cnR1YWwgUmVtb3RlQVhPYmplY3RSZWYgYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpID0gMDsK
LSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKERvY3Vt
ZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNl
KikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSos
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJikgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgTlNEaWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpIHsg
cmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI5ODA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCB1bnNp
Z25lZCwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3Ro
LCBEYXRhUGF5bG9hZFR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgTlNDYWNoZWRV
UkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVS
TFJlc3BvbnNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJl
c291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSosIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbChSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDIyOTgwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXRyaWV2ZURlcml2ZWREYXRhRnJvbUNhY2hlKGNv
bnN0IFN0cmluZyYgdHlwZSwgU2hhcmVkQnVmZmVyJikgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShSZXNv
dXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdp
bGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICopPiYmKSBvdmVy
cmlkZTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgb3ZlcnJpZGU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVzb3VyY2VM
b2FkZXJDb2NvYS5tbQkocmV2aXNpb24gMjI5ODA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDEy
ICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5TQ2FjaGVkVVJMUmVzcG9uc2Uq
IFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3ZvaWQgU3VicmVzb3VyY2VMb2Fk
ZXI6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTlNDYWNo
ZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRV
UkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBEaXNrQ2FjaGVNb25p
dG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKHJlcXVlc3QoKSwgbV9yZXNvdXJj
ZS0+c2Vzc2lvbklEKCksIFtyZXNwb25zZSBfQ0ZDYWNoZWRVUkxSZXNwb25zZV0pOwogICAgIGlm
ICghbV9yZXNvdXJjZS0+c2hvdWxkQ2FjaGVSZXNwb25zZShyZXNwb25zZS5yZXNwb25zZSkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7CisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihudWxscHRyKTsKKyAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2VB
c3luYyhoYW5kbGUsIHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1h
Yy5tbQkocmV2aXNpb24gMjI5ODA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNv
dXJjZUxvYWRlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDE1IEBACiAKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotTlNDYWNoZWRVUkxSZXNwb25zZSogUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpCit2b2lkIFJl
c291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgTlND
YWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNo
ZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9vcHRp
b25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IERvTm90U2VuZENhbGxiYWNrcykKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLndpbGxDYWNo
ZVJlc3BvbnNlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSwgcmVzcG9uc2UpOworICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgZnJhbWVMb2FkZXIo
KS0+Y2xpZW50KCkud2lsbENhY2hlUmVzcG9uc2UoZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmll
cigpLCByZXNwb25zZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
CShyZXZpc2lvbiAyMjk4MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiwxNCArMjE2LDYgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKGJvb2wpOwogI2VuZGlmCiAKLSAgICAvLyBDYWxsZWQgaW4gcmVzcG9u
c2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoKS4KLSNp
ZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVX
aWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKLSNlbmRpZgotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVS
ZXNwb25zZShOU0NhY2hlZFVSTFJlc3BvbnNlICopOwotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBS
ZXNvdXJjZVJlcXVlc3QmIGZpcnN0UmVxdWVzdCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAJKHJl
dmlzaW9uIDIyOTgwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxOCArMzYsNiBAQCBSZXNv
dXJjZUhhbmRsZUNsaWVudDo6UmVzb3VyY2VIYW5kbGVDbGllCiAKIFJlc291cmNlSGFuZGxlQ2xp
ZW50Ojp+UmVzb3VyY2VIYW5kbGVDbGllbnQoKSA9IGRlZmF1bHQ7CiAKLSNpZiBVU0UoQ0ZVUkxD
T05ORUNUSU9OKQotdm9pZCBSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2VB
c3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3Bv
bnNlKQotewotICAgIGhhbmRsZS0+Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZShyZXNwb25zZSk7
Ci19Ci0jZWxpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgUmVzb3VyY2VIYW5kbGVDbGllbnQ6Ondp
bGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxS
ZXNwb25zZSAqcmVzcG9uc2UpCi17Ci0gICAgaGFuZGxlLT5jb250aW51ZVdpbGxDYWNoZVJlc3Bv
bnNlKHJlc3BvbnNlKTsKLX0KLSNlbmRpZgotCiB2b2lkIFJlc291cmNlSGFuZGxlQ2xpZW50Ojpk
aWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFJlZjxTaGFyZWRCdWZmZXI+
JiYgYnVmZmVyLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgZGlkUmVjZWl2ZURhdGEo
aGFuZGxlLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCksIGVuY29kZWREYXRhTGVuZ3Ro
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlQ2xpZW50LmgJKHJldmlzaW9uIDIyOTgwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogCkBAIC04MiwxMSArODMsMTEgQEAgcHVibGljOgogICAgIC8vIENsaWVudCB3aWxsIHBh
c3MgYW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpjb250aW51ZUNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoKSB3aGVuIHJlYWR5LgogICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSA9IDA7CiAj
ZW5kaWYKLSAgICAvLyBDbGllbnQgd2lsbCBwYXNzIGFuIHVwZGF0ZWQgcmVxdWVzdCB1c2luZyBS
ZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZSgpIHdoZW4gcmVhZHkuCisK
ICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9p
ZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3Bv
bnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3BvbnNl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHJlc3BvbnNlKTsgfQogI2VsaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJl
c3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICopOworICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291
cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBj
b21wbGV0aW9uSGFuZGxlcihyZXNwb25zZSk7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgeyByZXR1cm4gZmFs
c2U7IH0KQEAgLTk3LDE0ICs5OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKFJlc291cmNlSGFuZGxlKikgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAg
IHZpcnR1YWwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UpIHsgcmV0dXJuIHJlc3Bv
bnNlOyB9Ci0jaWYgUExBVEZPUk0oV0lOKQorI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIHsgcmV0dXJuIHRydWU7IH0KLSNlbmRp
ZiAvLyBQTEFURk9STShXSU4pCi0KLSNlbGlmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwg
TlNDYWNoZWRVUkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBO
U0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KICNlbmRp
ZgogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAyMjk4MDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NjMsMTEgKzY2Myw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OmNvbnRpbnVlQ2FuQXV0aGVudGkKICAgICBkLT5tX2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+Y29udGlu
dWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGNhbkF1dGhlbnRpY2F0ZSk7
CiB9CiAjZW5kaWYKLQotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZXNw
b25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3BvbnNlKQotewotICAgIGQtPm1fY29ubmVj
dGlvbkRlbGVnYXRlLT5jb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKHJlc3BvbnNlKTsKLX0KICNl
bmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAko
cmV2aXNpb24gMjI5ODA4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDcgKzQ2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXR1cENvbm5lY3Rpb25T
Y2hlZHVsaW5nKENGVVJMQ29ubmVjdGlvblJlZikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlSGFuZGxlKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25z
ZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSA9IDA7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0Vf
QVVUSF9DQUxMQkFDSykKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKGJvb2wpID0gMDsKICNlbmRpZiAvLyBVU0UoUFJPVEVDVElP
Tl9TUEFDRV9BVVRIX0NBTExCQUNLKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlv
blF1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVl
dWUuY3BwCShyZXZpc2lvbiAyMjk4MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9u
UXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDQsNyArMzA0LDEwIEBAIENGQ2FjaGVkVVJM
UmVzcG9uc2VSZWYgUmVzb3VyY2VIYW5kbGVDRlUKIAogICAgICAgICBMT0coTmV0d29yaywgIkNG
TmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25R
dWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwgaGFuZGxlLCBoYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAg
IGhhbmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoaGFuZGxlLCBjYWNoZWRS
ZXNwb25zZS5nZXQoKSk7CisgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3Bv
bnNlQXN5bmMoaGFuZGxlLCBjYWNoZWRSZXNwb25zZS5nZXQoKSwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpXSAoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkg
bXV0YWJsZSB7CisgICAgICAgICAgICBtX2NhY2hlZFJlc3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7
CisgICAgICAgICAgICBtX3NlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgfSk7CiAgICAgfTsK
ICAgICAKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCkBAIC0zODksMTIgKzM5Miw2IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2EKIH0KICNlbmRpZiAvLyBVU0UoUFJP
VEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogCi12b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNvbnRpbnVlV2lsbENhY2hlUmVz
cG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkKLXsKLSAgICBtX2NhY2hlZFJl
c3BvbnNlUmVzdWx0ID0gcmVzcG9uc2U7Ci0gICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShDRlVSTENPTk5FQ1RJT04p
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAkocmV2aXNpb24gMjI5ODA4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDcgKzU4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmRCb2R5RGF0YShDRkluZGV4
IHRvdGFsQnl0ZXNXcml0dGVuLCBDRkluZGV4IHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUpIG92
ZXJyaWRlOwogICAgIEJvb2xlYW4gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSBvdmVycmlk
ZTsKIAotICAgIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmKSBvdmVycmlkZTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQogICAgIEJvb2xlYW4gY2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKENGVVJMUHJvdGVjdGlv
blNwYWNlUmVmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZShib29sKSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
CShyZXZpc2lvbiAyMjk4MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjU4LDExICs2NTgsNiBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENoYWxsZW5nZVJlCiAgICAgY2xlYXJBdXRo
ZW50aWNhdGlvbigpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxDYWNo
ZVJlc3BvbnNlKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJlc3BvbnNlKQotewotICAgIFsoaWQpZGVs
ZWdhdGUoKSBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlOnJlc3BvbnNlXTsKLX0KLQogdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlvblRpbWluZ0RhdGEoTlNVUkxDb25uZWN0aW9uICpj
b25uZWN0aW9uLCBOZXR3b3JrTG9hZE1ldHJpY3MmIHRpbWluZykKIHsKICAgICBjb3B5VGltaW5n
RGF0YShbY29ubmVjdGlvbiBfdGltaW5nRGF0YV0sIHRpbWluZyk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUu
aAkocmV2aXNpb24gMjI5ODA4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUyLDcgKzUyLDYgQEAgQGludGVyZmFjZSBXZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdAogLSAodm9pZClkZXRhY2hIYW5kbGU7CiAtIChpZClpbml0V2l0aEhhbmRsZToo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1lc3NhZ2VRdWV1
ZTxGdW5jdGlvbjx2b2lkKCk+PiopbWVzc2FnZVF1ZXVlOwogLSAodm9pZCljb250aW51ZUNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KEJPT0wpY2FuQXV0aGVudGljYXRlOwot
LSAodm9pZCljb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICop
cmVzcG9uc2U7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291cmNlSGFuZGxlV2l0aENy
ZWRlbnRpYWxTdG9yYWdlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIDogV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVs
ZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZp
c2lvbiAyMjk4MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEyMCwxMiArMTIwLDYgQEAgLSAodm9pZCljb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcgogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOwogfQog
Ci0tICh2b2lkKWNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2U6KE5TQ2FjaGVkVVJMUmVzcG9uc2Ug
KilyZXNwb25zZQotewotICAgIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQgPSByZXNwb25zZTsKLSAg
ICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKLX0KLQogLSAoTlNVUkxS
ZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2Vu
ZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKW5ld1JlcXVlc3QgcmVkaXJlY3RSZXNwb25zZTooTlNV
UkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKQEAgLTM2NCw3ICszNTgsMTAgQEAgLSAoTlNDYWNoZWRVUkxSZXNwb25zZSAqKWNvbm5l
Y3Rpb246KE5TVQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9o
YW5kbGUtPmNsaWVudCgpLT53aWxsQ2FjaGVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBjYWNoZWRS
ZXNwb25zZS5nZXQoKSk7CisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+d2lsbENhY2hlUmVz
cG9uc2VBc3luYyhtX2hhbmRsZSwgY2FjaGVkUmVzcG9uc2UuZ2V0KCksIFtzZWxmLCBwcm90ZWN0
ZWRTZWxmID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJl
c3BvbnNlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQgPSBy
ZXNwb25zZTsKKyAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhv
cmUpOworICAgICAgICB9KTsKICAgICB9OwogCiAgICAgW3NlbGYgY2FsbEZ1bmN0aW9uT25NYWlu
VGhyZWFkOldURk1vdmUod29yayldOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTkzNykKKysr
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTgtMDMtMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBNZXJnZSBSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2VB
c3luYyB3aXRoIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlIGNvbnN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIw
MTgtMDMtMjMgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBQaWNrIHVwIElUUCBkZWJ1ZyBtb2RlIGZsYWcgZnJv
bSBkZWZhdWx0cwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lv
biAyMjk4MDgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzM2LDEzICsxNzM2LDEz
IEBAIFJlbW90ZUFYT2JqZWN0UmVmIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjoKICAgICByZXR1cm4g
d2ViUGFnZS0+YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpOwogfQogICAgIAotTlNDYWNoZWRV
UkxSZXNwb25zZSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlKERvY3Vt
ZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiByZXNwb25zZSkgY29uc3QKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNoZVJl
c3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hl
ZFVSTFJlc3BvbnNlKiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVS
TFJlc3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIFdlYlBhZ2Uq
IHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICBy
ZXR1cm4gcmVzcG9uc2U7CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihyZXNwb25z
ZSk7CiAKLSAgICByZXR1cm4gd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGll
bnQoKS5zaG91bGRDYWNoZVJlc3BvbnNlKCp3ZWJQYWdlLCAqbV9mcmFtZSwgaWRlbnRpZmllcikg
PyByZXNwb25zZSA6IG5pbDsKKyAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIod2ViUGFnZS0+
aW5qZWN0ZWRCdW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKS5zaG91bGRDYWNoZVJlc3BvbnNlKCp3
ZWJQYWdlLCAqbV9mcmFtZSwgaWRlbnRpZmllcikgPyByZXNwb25zZSA6IG5pbCk7CiB9CiAKIE5T
RGljdGlvbmFyeSAqV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRhdGFEZXRlY3Rpb25Db250ZXh0KCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjk4MDgpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDcgKzIzNiw3IEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmVtb3RlQVhPYmplY3RSZWYgYWNjZXNzaWJpbGl0eVJlbW90ZU9i
amVjdCgpIGZpbmFsOwogICAgIAotICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJl
c3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBOU0NhY2hlZFVSTFJlc3BvbnNlKikgY29uc3QgZmluYWw7CisgICAgdm9pZCB3aWxsQ2FjaGVS
ZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgTlNDYWNoZWRVUkxSZXNwb25zZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRV
UkxSZXNwb25zZSAqKT4mJikgY29uc3QgZmluYWw7CiAKICAgICBOU0RpY3Rpb25hcnkgKmRhdGFE
ZXRlY3Rpb25Db250ZXh0KCkgZmluYWw7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIyOTgwOCkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAzLTIzICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWVyZ2Ug
UmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMgd2l0aCBSZXNvdXJj
ZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZSBjb25z
dCk6CisKIDIwMTgtMDMtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIHRoZSBtaW5pbWFsIHNpbXVsYXRvciBmZWF0dXJlIGZsYWcgd2hl
biBhcHByb3ByaWF0ZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAy
Mjk4MDgpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAgcHJpdmF0
ZToKICNlbmRpZgogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpIGZpbmFsOwogCi0gICAgTlNDYWNoZWRVUkxSZXNwb25zZSogd2lsbENhY2hl
UmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHdpbGxDYWNo
ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hl
ZFVSTFJlc3BvbnNlICopPiYmKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRE
aXNwYXRjaE9ubG9hZEV2ZW50cygpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiAyMjk4MDgpCisrKyBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDg3LDcgKzQ4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkUmUKICAgICB9CiB9CiAKLU5TQ2FjaGVkVVJMUmVzcG9uc2UqIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKSBjb25zdAor
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICop
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBn
ZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFdlYlJlc291cmNlRGVsZWdhdGVJbXBs
ZW1lbnRhdGlvbkNhY2hlKiBpbXBsZW1lbnRhdGlvbnMgPSBXZWJWaWV3R2V0UmVzb3VyY2VMb2Fk
RGVsZWdhdGVJbXBsZW1lbnRhdGlvbnMod2ViVmlldyk7CkBAIC00OTUsMTYgKzQ5NSwxNiBAQCBO
U0NhY2hlZFVSTFJlc3BvbnNlKiBXZWJGcmFtZUxvYWRlckNsaWVuCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPndlYlRocmVhZFdpbGxDYWNoZVJlc3BvbnNlRnVu
YykgewogICAgICAgICBpZiAoaWQgcmVzb3VyY2UgPSBbd2ViVmlldyBfb2JqZWN0Rm9ySWRlbnRp
ZmllcjppZGVudGlmaWVyXSkKLSAgICAgICAgICAgIHJldHVybiBDYWxsUmVzb3VyY2VMb2FkRGVs
ZWdhdGVJbldlYlRocmVhZChpbXBsZW1lbnRhdGlvbnMtPndlYlRocmVhZFdpbGxDYWNoZVJlc3Bv
bnNlRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlRocmVhZFdlYlZpZXc6cmVzb3VyY2U6d2ls
bENhY2hlUmVzcG9uc2U6ZnJvbURhdGFTb3VyY2U6KSwgcmVzb3VyY2UsIHJlc3BvbnNlLCBkYXRh
U291cmNlKGxvYWRlcikpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKENh
bGxSZXNvdXJjZUxvYWREZWxlZ2F0ZUluV2ViVGhyZWFkKGltcGxlbWVudGF0aW9ucy0+d2ViVGhy
ZWFkV2lsbENhY2hlUmVzcG9uc2VGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVGhyZWFkV2Vi
VmlldzpyZXNvdXJjZTp3aWxsQ2FjaGVSZXNwb25zZTpmcm9tRGF0YVNvdXJjZTopLCByZXNvdXJj
ZSwgcmVzcG9uc2UsIGRhdGFTb3VyY2UobG9hZGVyKSkpOwogICAgICAgICAKICAgICB9IGVsc2UK
ICNlbmRpZgogICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPndpbGxDYWNoZVJlc3BvbnNlRnVuYykg
ewogICAgICAgICBpZiAoaWQgcmVzb3VyY2UgPSBbd2ViVmlldyBfb2JqZWN0Rm9ySWRlbnRpZmll
cjppZGVudGlmaWVyXSkKLSAgICAgICAgICAgIHJldHVybiBDYWxsUmVzb3VyY2VMb2FkRGVsZWdh
dGUoaW1wbGVtZW50YXRpb25zLT53aWxsQ2FjaGVSZXNwb25zZUZ1bmMsIHdlYlZpZXcsIEBzZWxl
Y3Rvcih3ZWJWaWV3OnJlc291cmNlOndpbGxDYWNoZVJlc3BvbnNlOmZyb21EYXRhU291cmNlOiks
IHJlc291cmNlLCByZXNwb25zZSwgZGF0YVNvdXJjZShsb2FkZXIpKTsKKyAgICAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihDYWxsUmVzb3VyY2VMb2FkRGVsZWdhdGUoaW1wbGVtZW50
YXRpb25zLT53aWxsQ2FjaGVSZXNwb25zZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3
OnJlc291cmNlOndpbGxDYWNoZVJlc3BvbnNlOmZyb21EYXRhU291cmNlOiksIHJlc291cmNlLCBy
ZXNwb25zZSwgZGF0YVNvdXJjZShsb2FkZXIpKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3Bv
bnNlOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3BvbnNlKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExv
YWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336489</attachid>
            <date>2018-03-24 23:32:00 -0700</date>
            <delta_ts>2018-03-25 00:23:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183965-20180324233159.patch</filename>
            <type>text/plain</type>
            <size>25718</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTAzLTI0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWVyZ2UgUmVz
b3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMgd2l0aCBSZXNvdXJjZUhh
bmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlz
IER1bWV6LgorCisgICAgICAgIEl0IHR1cm5zIG91dCB0aGF0IFJlc291cmNlSGFuZGxlQ2xpZW50
Ojp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jIGRpZG4ndCBkbyBhbnl0aGluZyBhbmQgdGhlIGxvZ2lj
IGluCisgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZSB3YXMg
bm90IGJlaW5nIGNhbGxlZC4gIFRoaXMgbWFrZXMgaXQgc28gdGhlcmUgaXMgb25lIGNvZGUKKyAg
ICAgICAgcGF0aCBhbmQgaXQgZXhlY3V0ZXMgdGhlIGxvZ2ljIGluIFJlc291cmNlSGFuZGxlQ2xp
ZW50Ojp3aWxsQ2FjaGVSZXNwb25zZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29j
b2EubW06CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVz
cG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9tYWMvUmVzb3VyY2VMb2Fk
ZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVz
cG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hl
UmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVS
ZXNwb25zZUFzeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVu
dDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZUNsaWVudDo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRo
T3BlcmF0aW9uUXVldWU6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbENh
Y2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAg
ICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb250aW51
ZVdpbGxDYWNoZVJlc3BvbnNlOl0pOiBEZWxldGVkLgorCiAyMDE4LTAzLTIzICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIGNvbXBsZXRp
b24gaGFuZGxlcnMgZm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlQXN5bmMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTg1LDcgKzE4NSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGkK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxp
dHlSZW1vdGVPYmplY3QoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgTlNDYWNoZWRV
UkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgY29uc3QgZmluYWwgeyByZXR1cm4g
cmVzcG9uc2U7IH0KKyAgICB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZywgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
Y29uc3QgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihyZXNwb25zZSk7IH0KICNlbmRpZgogCiAj
aWYgVVNFKENGVVJMQ09OTkVDVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDcgKzMwMyw3IEBA
IHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBBbGxvdyBhbiBhY2Nlc3NpYmls
aXR5IG9iamVjdCB0byByZXRyaWV2ZSBhIEZyYW1lIHBhcmVudCBpZiB0aGVyZSdzIG5vIFBsYXRm
b3JtV2lkZ2V0LgogICAgIHZpcnR1YWwgUmVtb3RlQVhPYmplY3RSZWYgYWNjZXNzaWJpbGl0eVJl
bW90ZU9iamVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxD
YWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBO
U0NhY2hlZFVSTFJlc3BvbnNlKikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2Fj
aGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlND
YWNoZWRVUkxSZXNwb25zZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNw
b25zZSAqKT4mJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTlNEaWN0aW9uYXJ5ICpkYXRhRGV0
ZWN0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
MSw3ICsxNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVy
KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgbG9uZyBsb25n
IGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgTlNDYWNoZWRVUkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VI
YW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQ2Fj
aGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSosIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJikgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbChSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDIyOTk1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXRyaWV2ZURlcml2
ZWREYXRhRnJvbUNhY2hlKGNvbnN0IFN0cmluZyYgdHlwZSwgU2hhcmVkQnVmZmVyJikgb3ZlcnJp
ZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICp3aWxs
Q2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBO
U0NhY2hlZFVSTFJlc3BvbnNlKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJl
c3BvbnNlICopPiYmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUmVzb3Vy
Y2VzKCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVz
b3VyY2VMb2FkZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQkocmV2aXNpb24gMjI5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM1LDEyICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5T
Q2FjaGVkVVJMUmVzcG9uc2UqIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3Zv
aWQgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKHJl
cXVlc3QoKSwgbV9yZXNvdXJjZS0+c2Vzc2lvbklEKCksIFtyZXNwb25zZSBfQ0ZDYWNoZWRVUkxS
ZXNwb25zZV0pOwogICAgIGlmICghbV9yZXNvdXJjZS0+c2hvdWxkQ2FjaGVSZXNwb25zZShyZXNw
b25zZS5yZXNwb25zZSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZXNv
dXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7CisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKKyAgICBSZXNvdXJjZUxvYWRlcjo6
d2lsbENhY2hlUmVzcG9uc2VBc3luYyhoYW5kbGUsIHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVz
b3VyY2VMb2FkZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL21h
Yy9SZXNvdXJjZUxvYWRlck1hYy5tbQkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTQgKzMxLDE1IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotTlNDYWNoZWRVUkxSZXNwb25zZSogUmVzb3VyY2VMb2FkZXI6
OndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSog
cmVzcG9uc2UpCit2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJl
c291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IERvTm90U2VuZENhbGxi
YWNrcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLndpbGxDYWNoZVJlc3BvbnNlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIo
KSwgcmVzcG9uc2UpOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7
CisgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkud2lsbENhY2hlUmVzcG9uc2UoZG9jdW1lbnRM
b2FkZXIoKSwgaWRlbnRpZmllcigpLCByZXNwb25zZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMSwx
NCArMjExLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50
KCk7CiAKLSAgICAvLyBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6
OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoKS4KLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShOU0NhY2hlZFVSTFJlc3BvbnNl
ICopOwotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmVyc0xvYWRpbmco
Ym9vbCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZVJlcXVlc3QmIGZpcnN0UmVxdWVz
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiwxOCArMzYsNiBAQCBSZXNvdXJjZUhhbmRsZUNsaWVudDo6UmVzb3VyY2VI
YW5kbGVDbGllCiAKIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp+UmVzb3VyY2VIYW5kbGVDbGllbnQo
KSA9IGRlZmF1bHQ7CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotdm9pZCBSZXNvdXJjZUhh
bmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3BvbnNlKQotewotICAgIGhhbmRsZS0+Y29udGlu
dWVXaWxsQ2FjaGVSZXNwb25zZShyZXNwb25zZSk7Ci19Ci0jZWxpZiBQTEFURk9STShDT0NPQSkK
LXZvaWQgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpCi17Ci0gICAg
aGFuZGxlLT5jb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKHJlc3BvbnNlKTsKLX0KLSNlbmRpZgot
CiB2b2lkIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgZW5jb2RlZERhdGFM
ZW5ndGgpCiB7CiAgICAgZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBidWZmZXItPmRhdGEoKSwgYnVm
ZmVyLT5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHJldmlz
aW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBAIC04MSwxMSArODIsMTEgQEAg
cHVibGljOgogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKICNlbmRpZgotICAgIC8vIENsaWVudCB3
aWxsIHBhc3MgYW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpjb250aW51
ZVdpbGxDYWNoZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4KKwogI2lmIFVTRShDRlVSTENPTk5FQ1RJ
T04pCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIocmVzcG9uc2UpOyB9CiAjZWxpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVS
TFJlc3BvbnNlICpyZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJl
c3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHJlc3Bv
bnNlKTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBmYWxzZTsgfQpAQCAtOTYsMTQgKzk3LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVj
dGlvblByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5k
aWYKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgdmlydHVhbCBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiByZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSNpZiBQTEFURk9STShX
SU4pCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZikgeyByZXR1cm4gdHJ1ZTsgfQotI2VuZGlmIC8vIFBMQVRGT1JNKFdJTikKLQot
I2VsaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlICp3
aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJl
c3BvbnNlKSB7IHJldHVybiByZXNwb25zZTsgfQogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2
MywxMSArNjYzLDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aQog
ICAgIGQtPm1fY29ubmVjdGlvbkRlbGVnYXRlLT5jb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoY2FuQXV0aGVudGljYXRlKTsKIH0KICNlbmRpZgotCi12b2lkIFJl
c291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYgcmVzcG9uc2UpCi17Ci0gICAgZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPmNvbnRpbnVl
V2lsbENhY2hlUmVzcG9uc2UocmVzcG9uc2UpOwotfQogI2VuZGlmIC8vIFVTRShDRlVSTENPTk5F
Q1RJT04pCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMjk5NTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoQ0ZVUkxDb25uZWN0
aW9uUmVmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VIYW5kbGUoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpID0gMDsKLQogcHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPiBz
eW50aGVzaXplUmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5KENGVVJMUmVxdWVzdFJlZiwgQ0ZV
UkxSZXNwb25zZVJlZik7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IGNyZWF0ZVJlc291cmNlUmVxdWVz
dChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWUuY3BwCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTYsMTUgKzI5Niwx
OCBAQCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIFJlc291cmNlSGFuZGxlQ0ZVCiAgICAgYXV0byBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CiAgICAgYXV0byB3b3JrID0gW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FjaGVkUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZj4oY2FjaGVkUmVzcG9uc2UpXSAoKSB7CiAgICAgICAgIGF1dG8mIGhh
bmRsZSA9IHByb3RlY3RlZFRoaXMtPm1faGFuZGxlOwotICAgICAgICAKLSAgICAgICAgaWYgKCFw
cm90ZWN0ZWRUaGlzLT5oYXNIYW5kbGUoKSB8fCAhaGFuZGxlLT5jbGllbnQoKSB8fCAhaGFuZGxl
LT5jb25uZWN0aW9uKCkpIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbnRpbnVlV2ls
bENhY2hlUmVzcG9uc2UobnVsbHB0cik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
KworICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3Byb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpXSAoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkgbXV0
YWJsZSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2NhY2hlZFJlc3BvbnNlUmVzdWx0
ID0gcmVzcG9uc2U7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3NlbWFwaG9yZS5zaWdu
YWwoKTsKKyAgICAgICAgfTsKKworICAgICAgICBpZiAoIWhhbmRsZSB8fCAhaGFuZGxlLT5jbGll
bnQoKSB8fCAhaGFuZGxlLT5jb25uZWN0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIobnVsbHB0cik7CiAKICAgICAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6Ondp
bGxDYWNoZVJlc3BvbnNlKGhhbmRsZT0lcCkgKCVzKSIsIGhhbmRsZSwgaGFuZGxlLT5maXJzdFJl
cXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgICAgICBoYW5kbGUt
PmNsaWVudCgpLT53aWxsQ2FjaGVSZXNwb25zZUFzeW5jKGhhbmRsZSwgY2FjaGVkUmVzcG9uc2Uu
Z2V0KCkpOworICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT53aWxsQ2FjaGVSZXNwb25zZUFzeW5j
KGhhbmRsZSwgY2FjaGVkUmVzcG9uc2UuZ2V0KCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKICAgICB9OwogICAgIAogICAgIGlmIChtX21lc3NhZ2VRdWV1ZSkKQEAgLTM5MSwxMiArMzk0
LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYQogfQogI2VuZGlm
IC8vIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAKLXZvaWQgUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y29udGludWVX
aWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3BvbnNlKQotewotICAg
IG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQgPSByZXNwb25zZTsKLSAgICBtX3NlbWFwaG9yZS5zaWdu
YWwoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKENGVVJM
Q09OTkVDVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oCShyZXZpc2lv
biAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsNyArNTgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2VuZEJvZHlE
YXRhKENGSW5kZXggdG90YWxCeXRlc1dyaXR0ZW4sIENGSW5kZXggdG90YWxCeXRlc0V4cGVjdGVk
VG9Xcml0ZSkgb3ZlcnJpZGU7CiAgICAgQm9vbGVhbiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiAgICAgQm9vbGVhbiBjYW5SZXNwb25kVG9Qcm90ZWN0aW9uU3BhY2UoQ0ZV
UkxQcm90ZWN0aW9uU3BhY2VSZWYpIG92ZXJyaWRlOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1MiwxMSArNjUy
LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDaGFsbGVuZ2VSZQogICAgIGNsZWFy
QXV0aGVudGljYXRpb24oKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxs
Q2FjaGVSZXNwb25zZShOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkKLXsKLSAgICBbKGlk
KWRlbGVnYXRlKCkgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZTpyZXNwb25zZV07Ci19Ci0KIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRhKE5TVVJMQ29ubmVjdGlv
biAqY29ubmVjdGlvbiwgTmV0d29ya0xvYWRNZXRyaWNzJiB0aW1pbmcpCiB7CiAgICAgY29weVRp
bWluZ0RhdGEoW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdLCB0aW1pbmcpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVn
YXRlLmgJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw2IEBAIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXQKIAogLSAodm9pZClkZXRhY2hIYW5kbGU7CiAtIChpZClpbml0V2l0aEhh
bmRsZTooV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1lc3Nh
Z2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiopbWVzc2FnZVF1ZXVlOwotLSAodm9pZCljb250aW51
ZVdpbGxDYWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopcmVzcG9uc2U7CiBAZW5k
CiAKIEBpbnRlcmZhY2UgV2ViQ29yZVJlc291cmNlSGFuZGxlV2l0aENyZWRlbnRpYWxTdG9yYWdl
QXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlIDogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyMjk5NTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNCwxMiAr
MTE0LDYgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCi0tICh2
b2lkKWNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2U6KE5TQ2FjaGVkVVJMUmVzcG9uc2UgKilyZXNw
b25zZQotewotICAgIG1fY2FjaGVkUmVzcG9uc2VSZXN1bHQgPSByZXNwb25zZTsKLSAgICBkaXNw
YXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKLX0KLQogLSAoTlNVUkxSZXF1ZXN0
ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2VuZFJlcXVl
c3Q6KE5TVVJMUmVxdWVzdCAqKW5ld1JlcXVlc3QgcmVkaXJlY3RSZXNwb25zZTooTlNVUkxSZXNw
b25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
QEAgLTM2MSw3ICszNTUsMTAgQEAgLSAoTlNDYWNoZWRVUkxSZXNwb25zZSAqKWNvbm5lY3Rpb246
KE5TVQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9oYW5kbGUt
PmNsaWVudCgpLT53aWxsQ2FjaGVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBjYWNoZWRSZXNwb25z
ZS5nZXQoKSk7CisgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+d2lsbENhY2hlUmVzcG9uc2VB
c3luYyhtX2hhbmRsZSwgY2FjaGVkUmVzcG9uc2UuZ2V0KCksIFtzZWxmLCBwcm90ZWN0ZWRTZWxm
ID0gV1RGTW92ZShwcm90ZWN0ZWRTZWxmKV0gKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKiByZXNwb25z
ZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBtX2NhY2hlZFJlc3BvbnNlUmVzdWx0ID0gcmVzcG9u
c2U7CisgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsK
KyAgICAgICAgfSk7CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVh
ZDpXVEZNb3ZlKHdvcmspXTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4
LTAzLTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgTWVyZ2UgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMg
d2l0aCBSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZSBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTAzLTI0
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0
IFdLX1BMQVRGT1JNX05BTUUgaW4gV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE3MzgsMTMgKzE3MzgsMTMgQEAgUmVtb3RlQVhPYmplY3RSZWYgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OgogICAgIHJldHVybiB3ZWJQYWdlLT5hY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCk7CiB9
CiAgICAgCi1OU0NhY2hlZFVSTFJlc3BvbnNlICpXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENh
Y2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5T
Q2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKSBjb25zdAordm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6d2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0
CiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdl
YlBhZ2UpCi0gICAgICAgIHJldHVybiByZXNwb25zZTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKHJlc3BvbnNlKTsKIAotICAgIHJldHVybiB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRs
ZVJlc291cmNlTG9hZENsaWVudCgpLnNob3VsZENhY2hlUmVzcG9uc2UoKndlYlBhZ2UsICptX2Zy
YW1lLCBpZGVudGlmaWVyKSA/IHJlc3BvbnNlIDogbmlsOworICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudCgpLnNob3Vs
ZENhY2hlUmVzcG9uc2UoKndlYlBhZ2UsICptX2ZyYW1lLCBpZGVudGlmaWVyKSA/IHJlc3BvbnNl
IDogbmlsKTsKIH0KIAogTlNEaWN0aW9uYXJ5ICpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGF0YURl
dGVjdGlvbkNvbnRleHQoKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlz
aW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsNyArMjM3LDcgQEAg
cHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9iamVjdFJlZiBhY2Nl
c3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgZmluYWw7CiAgICAgCi0gICAgTlNDYWNoZWRVUkxSZXNw
b25zZSogd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICopPiYmKSBjb25zdCBmaW5hbDsKIAogICAgIE5T
RGljdGlvbmFyeSAqZGF0YURldGVjdGlvbkNvbnRleHQoKSBmaW5hbDsKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTgtMDMtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBNZXJnZSBSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2VB
c3luYyB3aXRoIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNo
ZVJlc3BvbnNlIGNvbnN0KToKKwogMjAxOC0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSBTZWN1cml0eU9yaWdpbkRhdGEgbW9yZSBjb25zaXN0ZW50
bHkgaW4gU2VydmljZSBXb3JrZXIgY29kZQpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAx
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogCi0gICAgTlNDYWNoZWRVUkxSZXNwb25z
ZSogd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBjb25zdCBmaW5hbDsKKyAgICB2
b2lkIHdpbGxDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICopPiYmKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQg
ZGlzcGF0Y2hEaWREaXNwYXRjaE9ubG9hZEV2ZW50cygpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDg3LDcgKzQ4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkUmUKICAgICB9CiB9CiAKLU5TQ2FjaGVkVVJMUmVzcG9uc2UqIFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciogbG9h
ZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3Bv
bnNlKSBjb25zdAordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2Uo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hl
ZFVSTFJlc3BvbnNlKiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVS
TFJlc3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIFdlYlZpZXcg
KndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFdlYlJlc291cmNl
RGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBpbXBsZW1lbnRhdGlvbnMgPSBXZWJWaWV3R2V0
UmVzb3VyY2VMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbnMod2ViVmlldyk7CkBAIC00OTUsMTYg
KzQ5NSwxNiBAQCBOU0NhY2hlZFVSTFJlc3BvbnNlKiBXZWJGcmFtZUxvYWRlckNsaWVuCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPndlYlRocmVhZFdpbGxDYWNo
ZVJlc3BvbnNlRnVuYykgewogICAgICAgICBpZiAoaWQgcmVzb3VyY2UgPSBbd2ViVmlldyBfb2Jq
ZWN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVyXSkKLSAgICAgICAgICAgIHJldHVybiBDYWxsUmVz
b3VyY2VMb2FkRGVsZWdhdGVJbldlYlRocmVhZChpbXBsZW1lbnRhdGlvbnMtPndlYlRocmVhZFdp
bGxDYWNoZVJlc3BvbnNlRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlRocmVhZFdlYlZpZXc6
cmVzb3VyY2U6d2lsbENhY2hlUmVzcG9uc2U6ZnJvbURhdGFTb3VyY2U6KSwgcmVzb3VyY2UsIHJl
c3BvbnNlLCBkYXRhU291cmNlKGxvYWRlcikpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKENhbGxSZXNvdXJjZUxvYWREZWxlZ2F0ZUluV2ViVGhyZWFkKGltcGxlbWVudGF0
aW9ucy0+d2ViVGhyZWFkV2lsbENhY2hlUmVzcG9uc2VGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVGhyZWFkV2ViVmlldzpyZXNvdXJjZTp3aWxsQ2FjaGVSZXNwb25zZTpmcm9tRGF0YVNvdXJj
ZTopLCByZXNvdXJjZSwgcmVzcG9uc2UsIGRhdGFTb3VyY2UobG9hZGVyKSkpOwogICAgICAgICAK
ICAgICB9IGVsc2UKICNlbmRpZgogICAgIGlmIChpbXBsZW1lbnRhdGlvbnMtPndpbGxDYWNoZVJl
c3BvbnNlRnVuYykgewogICAgICAgICBpZiAoaWQgcmVzb3VyY2UgPSBbd2ViVmlldyBfb2JqZWN0
Rm9ySWRlbnRpZmllcjppZGVudGlmaWVyXSkKLSAgICAgICAgICAgIHJldHVybiBDYWxsUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT53aWxsQ2FjaGVSZXNwb25zZUZ1bmMsIHdl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJlc291cmNlOndpbGxDYWNoZVJlc3BvbnNlOmZyb21E
YXRhU291cmNlOiksIHJlc291cmNlLCByZXNwb25zZSwgZGF0YVNvdXJjZShsb2FkZXIpKTsKKyAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihDYWxsUmVzb3VyY2VMb2FkRGVsZWdh
dGUoaW1wbGVtZW50YXRpb25zLT53aWxsQ2FjaGVSZXNwb25zZUZ1bmMsIHdlYlZpZXcsIEBzZWxl
Y3Rvcih3ZWJWaWV3OnJlc291cmNlOndpbGxDYWNoZVJlc3BvbnNlOmZyb21EYXRhU291cmNlOiks
IHJlc291cmNlLCByZXNwb25zZSwgZGF0YVNvdXJjZShsb2FkZXIpKSk7CiAgICAgfQogCi0gICAg
cmV0dXJuIHJlc3BvbnNlOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3BvbnNlKTsKIH0KIAog
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0
aChEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBk
YXRhTGVuZ3RoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336491</attachid>
            <date>2018-03-25 00:23:37 -0700</date>
            <delta_ts>2018-03-25 00:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183965-20180325002336.patch</filename>
            <type>text/plain</type>
            <size>25858</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTAzLTI0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWVyZ2UgUmVz
b3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMgd2l0aCBSZXNvdXJjZUhh
bmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlz
IER1bWV6LgorCisgICAgICAgIEl0IHR1cm5zIG91dCB0aGF0IFJlc291cmNlSGFuZGxlQ2xpZW50
Ojp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jIGRpZG4ndCBkbyBhbnl0aGluZyBhbmQgdGhlIGxvZ2lj
IGluCisgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZSB3YXMg
bm90IGJlaW5nIGNhbGxlZC4gIFRoaXMgbWFrZXMgaXQgc28gdGhlcmUgaXMgb25lIGNvZGUKKyAg
ICAgICAgcGF0aCBhbmQgaXQgZXhlY3V0ZXMgdGhlIGxvZ2ljIGluIFJlc291cmNlSGFuZGxlQ2xp
ZW50Ojp3aWxsQ2FjaGVSZXNwb25zZS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29j
b2EubW06CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVz
cG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9tYWMvUmVzb3VyY2VMb2Fk
ZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVz
cG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hl
UmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVS
ZXNwb25zZUFzeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVu
dDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZUNsaWVudDo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29u
bmVjdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRo
T3BlcmF0aW9uUXVldWU6OndpbGxDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWU6OmNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRp
b25RdWV1ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbENh
Y2hlUmVzcG9uc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVl
dWVEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRp
b25RdWV1ZURlbGVnYXRlIGNvbm5lY3Rpb246d2lsbENhY2hlUmVzcG9uc2U6XSk6CisgICAgICAg
ICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZSBjb250aW51
ZVdpbGxDYWNoZVJlc3BvbnNlOl0pOiBEZWxldGVkLgorCiAyMDE4LTAzLTIzICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIGNvbXBsZXRp
b24gaGFuZGxlcnMgZm9yIFJlc291cmNlSGFuZGxlQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlQXN5bmMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTg1LDcgKzE4NSw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGkK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxp
dHlSZW1vdGVPYmplY3QoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgTlNDYWNoZWRV
UkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSkgY29uc3QgZmluYWwgeyByZXR1cm4g
cmVzcG9uc2U7IH0KKyAgICB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZywgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
Y29uc3QgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihyZXNwb25zZSk7IH0KICNlbmRpZgogCiAj
aWYgVVNFKENGVVJMQ09OTkVDVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDcgKzMwMyw3IEBA
IHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBBbGxvdyBhbiBhY2Nlc3NpYmls
aXR5IG9iamVjdCB0byByZXRyaWV2ZSBhIEZyYW1lIHBhcmVudCBpZiB0aGVyZSdzIG5vIFBsYXRm
b3JtV2lkZ2V0LgogICAgIHZpcnR1YWwgUmVtb3RlQVhPYmplY3RSZWYgYWNjZXNzaWJpbGl0eVJl
bW90ZU9iamVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxD
YWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBO
U0NhY2hlZFVSTFJlc3BvbnNlKikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2Fj
aGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlND
YWNoZWRVUkxSZXNwb25zZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNw
b25zZSAqKT4mJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTlNEaWN0aW9uYXJ5ICpkYXRhRGV0
ZWN0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24gMjI5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
MSw3ICsxNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVy
KGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiwgbG9uZyBsb25n
IGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgTlNDYWNoZWRVUkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VI
YW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlKikgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQ2Fj
aGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSosIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJikgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbChSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDIyOTk1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXRyaWV2ZURlcml2
ZWREYXRhRnJvbUNhY2hlKGNvbnN0IFN0cmluZyYgdHlwZSwgU2hhcmVkQnVmZmVyJikgb3ZlcnJp
ZGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBOU0NhY2hlZFVSTFJlc3BvbnNlICp3aWxs
Q2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBO
U0NhY2hlZFVSTFJlc3BvbnNlKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJl
c3BvbnNlICopPiYmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUmVzb3Vy
Y2VzKCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVz
b3VyY2VMb2FkZXJDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y29jb2EvU3VicmVzb3VyY2VMb2FkZXJDb2NvYS5tbQkocmV2aXNpb24gMjI5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL1N1YnJlc291cmNlTG9hZGVyQ29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM1LDEyICszNSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLU5T
Q2FjaGVkVVJMUmVzcG9uc2UqIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSkKK3Zv
aWQgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tpbmdTdG9yZUNyZWF0aW9uKHJl
cXVlc3QoKSwgbV9yZXNvdXJjZS0+c2Vzc2lvbklEKCksIFtyZXNwb25zZSBfQ0ZDYWNoZWRVUkxS
ZXNwb25zZV0pOwogICAgIGlmICghbV9yZXNvdXJjZS0+c2hvdWxkQ2FjaGVSZXNwb25zZShyZXNw
b25zZS5yZXNwb25zZSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSZXNv
dXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoaGFuZGxlLCByZXNwb25zZSk7CisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKKyAgICBSZXNvdXJjZUxvYWRlcjo6
d2lsbENhY2hlUmVzcG9uc2VBc3luYyhoYW5kbGUsIHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVz
b3VyY2VMb2FkZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL21h
Yy9SZXNvdXJjZUxvYWRlck1hYy5tbQkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTQgKzMxLDE1IEBACiAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotTlNDYWNoZWRVUkxSZXNwb25zZSogUmVzb3VyY2VMb2FkZXI6
OndpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSog
cmVzcG9uc2UpCit2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJl
c291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBpZiAobV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IERvTm90U2VuZENhbGxi
YWNrcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGZyYW1lTG9hZGVyKCkt
PmNsaWVudCgpLndpbGxDYWNoZVJlc3BvbnNlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIo
KSwgcmVzcG9uc2UpOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7
CisgICAgZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkud2lsbENhY2hlUmVzcG9uc2UoZG9jdW1lbnRM
b2FkZXIoKSwgaWRlbnRpZmllcigpLCByZXNwb25zZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMSwx
NCArMjExLDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ2xpZW50
KCk7CiAKLSAgICAvLyBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6
OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoKS4KLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShOU0NhY2hlZFVSTFJlc3BvbnNl
ICopOwotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmVyc0xvYWRpbmco
Ym9vbCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZVJlcXVlc3QmIGZpcnN0UmVxdWVz
dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiwxOCArMzYsNiBAQCBSZXNvdXJjZUhhbmRsZUNsaWVudDo6UmVzb3VyY2VI
YW5kbGVDbGllCiAKIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp+UmVzb3VyY2VIYW5kbGVDbGllbnQo
KSA9IGRlZmF1bHQ7CiAKLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQotdm9pZCBSZXNvdXJjZUhh
bmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3BvbnNlKQotewotICAgIGhhbmRsZS0+Y29udGlu
dWVXaWxsQ2FjaGVSZXNwb25zZShyZXNwb25zZSk7Ci19Ci0jZWxpZiBQTEFURk9STShDT0NPQSkK
LXZvaWQgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpCi17Ci0gICAg
aGFuZGxlLT5jb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKHJlc3BvbnNlKTsKLX0KLSNlbmRpZgot
CiB2b2lkIFJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgZW5jb2RlZERhdGFM
ZW5ndGgpCiB7CiAgICAgZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBidWZmZXItPmRhdGEoKSwgYnVm
ZmVyLT5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgJKHJldmlz
aW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCkBAIC04MSwxMSArODIsMTEgQEAg
cHVibGljOgogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKICNlbmRpZgotICAgIC8vIENsaWVudCB3
aWxsIHBhc3MgYW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpjb250aW51
ZVdpbGxDYWNoZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4KKwogI2lmIFVTRShDRlVSTENPTk5FQ1RJ
T04pCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5
bmMoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRs
ZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIocmVzcG9uc2UpOyB9CiAjZWxpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhh
bmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVS
TFJlc3BvbnNlICpyZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJl
c3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHJlc3Bv
bnNlKTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBmYWxzZTsgfQpAQCAtOTYsMTQgKzk3LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVj
dGlvblByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5k
aWYKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgdmlydHVhbCBDRkNhY2hlZFVSTFJl
c3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiByZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSNpZiBQTEFURk9STShX
SU4pCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZikgeyByZXR1cm4gdHJ1ZTsgfQotI2VuZGlmIC8vIFBMQVRGT1JNKFdJTikKLQot
I2VsaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlICp3
aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKnJl
c3BvbnNlKSB7IHJldHVybiByZXNwb25zZTsgfQogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2
MywxMSArNjYzLDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aQog
ICAgIGQtPm1fY29ubmVjdGlvbkRlbGVnYXRlLT5jb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2UoY2FuQXV0aGVudGljYXRlKTsKIH0KICNlbmRpZgotCi12b2lkIFJl
c291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9u
c2VSZWYgcmVzcG9uc2UpCi17Ci0gICAgZC0+bV9jb25uZWN0aW9uRGVsZWdhdGUtPmNvbnRpbnVl
V2lsbENhY2hlUmVzcG9uc2UocmVzcG9uc2UpOwotfQogI2VuZGlmIC8vIFVTRShDRlVSTENPTk5F
Q1RJT04pCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMjk5NTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOCArNDYsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoQ0ZVUkxDb25uZWN0
aW9uUmVmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VIYW5kbGUoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpID0gMDsKLQogcHJvdGVjdGVkOgogICAgIFJldGFpblB0cjxDRlVSTFJlc3BvbnNlUmVmPiBz
eW50aGVzaXplUmVkaXJlY3RSZXNwb25zZUlmTmVjZXNzYXJ5KENGVVJMUmVxdWVzdFJlZiwgQ0ZV
UkxSZXNwb25zZVJlZik7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IGNyZWF0ZVJlc291cmNlUmVxdWVz
dChDRlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVX
aXRoT3BlcmF0aW9uUXVldWUuY3BwCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdh
dGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsMTcgKzI5NCwy
MCBAQCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIFJlc291cmNlSGFuZGxlQ0ZVCiAgICAgfQogCiAg
ICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgYXV0byB3b3JrID0g
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FjaGVkUmVzcG9uc2UgPSBSZXRhaW5Q
dHI8Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZj4oY2FjaGVkUmVzcG9uc2UpXSAoKSB7CisgICAgYXV0
byB3b3JrID0gW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FjaGVkUmVzcG9uc2Ug
PSBSZXRhaW5QdHI8Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZj4oY2FjaGVkUmVzcG9uc2UpXSAoKSBt
dXRhYmxlIHsKICAgICAgICAgYXV0byYgaGFuZGxlID0gcHJvdGVjdGVkVGhpcy0+bV9oYW5kbGU7
Ci0gICAgICAgIAotICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPmhhc0hhbmRsZSgpIHx8ICFo
YW5kbGUtPmNsaWVudCgpIHx8ICFoYW5kbGUtPmNvbm5lY3Rpb24oKSkgewotICAgICAgICAgICAg
cHJvdGVjdGVkVGhpcy0+Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZShudWxscHRyKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQorCisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIChDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmIHJlc3BvbnNlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRo
aXMtPm1fY2FjaGVkUmVzcG9uc2VSZXN1bHQgPSByZXNwb25zZTsKKyAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fc2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICB9OworCisgICAgICAgIGlm
ICghaGFuZGxlIHx8ICFoYW5kbGUtPmNsaWVudCgpIHx8ICFoYW5kbGUtPmNvbm5lY3Rpb24oKSkK
KyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKIAogICAgICAg
ICBMT0coTmV0d29yaywgIkNGTmV0IC0gUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6d2lsbENhY2hlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMp
IiwgaGFuZGxlLCBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogCi0gICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5
bmMoaGFuZGxlLCBjYWNoZWRSZXNwb25zZS5nZXQoKSk7CisgICAgICAgIGhhbmRsZS0+Y2xpZW50
KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoaGFuZGxlLCBjYWNoZWRSZXNwb25zZS5nZXQoKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIH07CiAgICAgCiAgICAgaWYgKG1fbWVz
c2FnZVF1ZXVlKQpAQCAtMzkxLDEyICszOTQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhCiB9CiAjZW5kaWYgLy8gVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9D
QUxMQkFDSykKIAotdm9pZCBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYgcmVzcG9uc2UpCi17Ci0gICAgbV9jYWNoZWRSZXNwb25zZVJlc3VsdCA9IHJlc3Bv
bnNlOwotICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVn
YXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlLmgJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRTZW5kQm9keURhdGEoQ0ZJbmRleCB0b3RhbEJ5dGVzV3JpdHRlbiwg
Q0ZJbmRleCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlKSBvdmVycmlkZTsKICAgICBCb29sZWFu
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGNvbnRp
bnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CiAj
aWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICBCb29sZWFuIGNhblJl
c3BvbmRUb1Byb3RlY3Rpb25TcGFjZShDRlVSTFByb3RlY3Rpb25TcGFjZVJlZikgb3ZlcnJpZGU7
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCShyZXZpc2lvbiAyMjk5NTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjUyLDExICs2NTIsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNl
aXZlZENoYWxsZW5nZVJlCiAgICAgY2xlYXJBdXRoZW50aWNhdGlvbigpOwogfQogCi12b2lkIFJl
c291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKE5TQ2FjaGVkVVJMUmVzcG9u
c2UgKnJlc3BvbnNlKQotewotICAgIFsoaWQpZGVsZWdhdGUoKSBjb250aW51ZVdpbGxDYWNoZVJl
c3BvbnNlOnJlc3BvbnNlXTsKLX0KLQogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Z2V0Q29ubmVjdGlv
blRpbWluZ0RhdGEoTlNVUkxDb25uZWN0aW9uICpjb25uZWN0aW9uLCBOZXR3b3JrTG9hZE1ldHJp
Y3MmIHRpbWluZykKIHsKICAgICBjb3B5VGltaW5nRGF0YShbY29ubmVjdGlvbiBfdGltaW5nRGF0
YV0sIHRpbWluZyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9X
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VI
YW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAkocmV2aXNpb24gMjI5OTU5KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDYgQEAg
QGludGVyZmFjZSBXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdAogCiAtICh2b2lkKWRldGFj
aEhhbmRsZTsKIC0gKGlkKWluaXRXaXRoSGFuZGxlOihXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSop
aGFuZGxlIG1lc3NhZ2VRdWV1ZTooTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiltZXNz
YWdlUXVldWU7Ci0tICh2b2lkKWNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2U6KE5TQ2FjaGVkVVJM
UmVzcG9uc2UgKilyZXNwb25zZTsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJDb3JlUmVzb3VyY2VI
YW5kbGVXaXRoQ3JlZGVudGlhbFN0b3JhZ2VBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgOiBXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUubW0JKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTE0LDEyICsxMTQsNiBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBb
c3VwZXIgZGVhbGxvY107CiB9CiAKLS0gKHZvaWQpY29udGludWVXaWxsQ2FjaGVSZXNwb25zZToo
TlNDYWNoZWRVUkxSZXNwb25zZSAqKXJlc3BvbnNlCi17Ci0gICAgbV9jYWNoZWRSZXNwb25zZVJl
c3VsdCA9IHJlc3BvbnNlOwotICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9zZW1hcGhv
cmUpOwotfQotCiAtIChOU1VSTFJlcXVlc3QgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24g
Kiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopbmV3UmVxdWVzdCBy
ZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQogewogICAg
IEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpAQCAtMzYxLDcgKzM1NSwxMCBAQCAtIChOU0NhY2hl
ZFVSTFJlc3BvbnNlICopY29ubmVjdGlvbjooTlNVCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5
bmMobV9oYW5kbGUsIGNhY2hlZFJlc3BvbnNlLmdldCgpKTsKKyAgICAgICAgbV9oYW5kbGUtPmNs
aWVudCgpLT53aWxsQ2FjaGVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBjYWNoZWRSZXNwb25zZS5n
ZXQoKSwgW3NlbGYsIHByb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHByb3RlY3RlZFNlbGYpXSAoTlND
YWNoZWRVUkxSZXNwb25zZSAqIHJlc3BvbnNlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIG1fY2Fj
aGVkUmVzcG9uc2VSZXN1bHQgPSByZXNwb25zZTsKKyAgICAgICAgICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV9zaWduYWwobV9zZW1hcGhvcmUpOworICAgICAgICB9KTsKICAgICB9OwogCiAgICAgW3Nl
bGYgY2FsbEZ1bmN0aW9uT25NYWluVGhyZWFkOldURk1vdmUod29yayldOwpJbmRleDogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDMtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNZXJnZSBSZXNvdXJjZUhhbmRsZUNsaWVu
dDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyB3aXRoIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxs
Q2FjaGVSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzOTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNl
IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisKIDIwMTgtMDMtMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgV0tfUExBVEZPUk1fTkFNRSBpbiBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMjI5OTU5KQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczOCwxMyArMTczOCwxMyBAQCBSZW1vdGVBWE9i
amVjdFJlZiBXZWJGcmFtZUxvYWRlckNsaWVudDo6CiAgICAgcmV0dXJuIHdlYlBhZ2UtPmFjY2Vz
c2liaWxpdHlSZW1vdGVPYmplY3QoKTsKIH0KICAgICAKLU5TQ2FjaGVkVVJMUmVzcG9uc2UgKldl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpIGNv
bnN0Cit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSog
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNl
OworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIocmVzcG9uc2UpOwogCi0gICAgcmV0
dXJuIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuc2hvdWxkQ2Fj
aGVSZXNwb25zZSgqd2ViUGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIpID8gcmVzcG9uc2UgOiBu
aWw7CisgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHdlYlBhZ2UtPmluamVjdGVkQnVuZGxl
UmVzb3VyY2VMb2FkQ2xpZW50KCkuc2hvdWxkQ2FjaGVSZXNwb25zZSgqd2ViUGFnZSwgKm1fZnJh
bWUsIGlkZW50aWZpZXIpID8gcmVzcG9uc2UgOiBuaWwpOwogfQogCiBOU0RpY3Rpb25hcnkgKldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gMjI5OTU5KQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzNyw3ICsyMzcsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBmaW5hbDsK
ICAgICAKLSAgICBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxS
ZXNwb25zZSopIGNvbnN0IGZpbmFsOworICAgIHZvaWQgd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJM
UmVzcG9uc2UqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+
JiYpIGNvbnN0IGZpbmFsOwogCiAgICAgTlNEaWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4
dCgpIGZpbmFsOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMjk5NTkpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wMy0yNCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIE1lcmdlIFJlc291cmNlSGFuZGxl
Q2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jIHdpdGggUmVzb3VyY2VIYW5kbGVDbGllbnQ6
OndpbGxDYWNoZVJlc3BvbnNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM5NjUKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJG
cmFtZUxvYWRlckNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UgY29uc3QpOgorCiAyMDE4LTAzLTI0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFNlY3VyaXR5
T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3RlbnRseSBpbiBTZXJ2aWNlIFdvcmtlciBjb2RlCkluZGV4
OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9p
ZCBkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7
CiAKLSAgICBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNw
b25zZSopIGNvbnN0IGZpbmFsOworICAgIHZvaWQgd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVz
cG9uc2UqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+JiYp
IGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaERpZERpc3BhdGNoT25sb2FkRXZlbnRz
KCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZCgpIGZpbmFsOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0J
KHJldmlzaW9uIDIyOTk1OSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00ODcsNyArNDg3
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZQogICAgIH0KIH0K
IAotTlNDYWNoZWRVUkxSZXNwb25zZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNoZVJl
c3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
TlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpIGNvbnN0Cit2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIGNvbnN0CiB7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFt
ZS5nZXQoKSk7CiAgICAgV2ViUmVzb3VyY2VEZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGUqIGlt
cGxlbWVudGF0aW9ucyA9IFdlYlZpZXdHZXRSZXNvdXJjZUxvYWREZWxlZ2F0ZUltcGxlbWVudGF0
aW9ucyh3ZWJWaWV3KTsKQEAgLTQ5NSwxNiArNDk1LDE2IEBAIE5TQ2FjaGVkVVJMUmVzcG9uc2Uq
IFdlYkZyYW1lTG9hZGVyQ2xpZW4KICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGltcGxlbWVu
dGF0aW9ucy0+d2ViVGhyZWFkV2lsbENhY2hlUmVzcG9uc2VGdW5jKSB7CiAgICAgICAgIGlmIChp
ZCByZXNvdXJjZSA9IFt3ZWJWaWV3IF9vYmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXJdKQot
ICAgICAgICAgICAgcmV0dXJuIENhbGxSZXNvdXJjZUxvYWREZWxlZ2F0ZUluV2ViVGhyZWFkKGlt
cGxlbWVudGF0aW9ucy0+d2ViVGhyZWFkV2lsbENhY2hlUmVzcG9uc2VGdW5jLCB3ZWJWaWV3LCBA
c2VsZWN0b3Iod2ViVGhyZWFkV2ViVmlldzpyZXNvdXJjZTp3aWxsQ2FjaGVSZXNwb25zZTpmcm9t
RGF0YVNvdXJjZTopLCByZXNvdXJjZSwgcmVzcG9uc2UsIGRhdGFTb3VyY2UobG9hZGVyKSk7Cisg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoQ2FsbFJlc291cmNlTG9hZERlbGVn
YXRlSW5XZWJUaHJlYWQoaW1wbGVtZW50YXRpb25zLT53ZWJUaHJlYWRXaWxsQ2FjaGVSZXNwb25z
ZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJUaHJlYWRXZWJWaWV3OnJlc291cmNlOndpbGxD
YWNoZVJlc3BvbnNlOmZyb21EYXRhU291cmNlOiksIHJlc291cmNlLCByZXNwb25zZSwgZGF0YVNv
dXJjZShsb2FkZXIpKSk7CiAgICAgICAgIAogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgaWYgKGlt
cGxlbWVudGF0aW9ucy0+d2lsbENhY2hlUmVzcG9uc2VGdW5jKSB7CiAgICAgICAgIGlmIChpZCBy
ZXNvdXJjZSA9IFt3ZWJWaWV3IF9vYmplY3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXJdKQotICAg
ICAgICAgICAgcmV0dXJuIENhbGxSZXNvdXJjZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMt
PndpbGxDYWNoZVJlc3BvbnNlRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3Vy
Y2U6d2lsbENhY2hlUmVzcG9uc2U6ZnJvbURhdGFTb3VyY2U6KSwgcmVzb3VyY2UsIHJlc3BvbnNl
LCBkYXRhU291cmNlKGxvYWRlcikpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKENhbGxSZXNvdXJjZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPndpbGxDYWNoZVJl
c3BvbnNlRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cmVzb3VyY2U6d2lsbENhY2hl
UmVzcG9uc2U6ZnJvbURhdGFTb3VyY2U6KSwgcmVzb3VyY2UsIHJlc3BvbnNlLCBkYXRhU291cmNl
KGxvYWRlcikpKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzcG9uc2U7CisgICAgY29tcGxldGlv
bkhhbmRsZXIocmVzcG9uc2UpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>