<?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>168832</bug_id>
          
          <creation_ts>2017-02-24 09:52:04 -0800</creation_ts>
          <short_desc>[iOS][WK2] Disable network cache speculative revalidation / loading in low power mode</short_desc>
          <delta_ts>2017-02-24 11:53:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1280788</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 09:52:04 -0800</bug_when>
    <thetext>Disable network cache speculative revalidation / loading in low power mode on iOS to save battery.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280789</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-02-24 09:52:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/30697911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280801</commentid>
    <comment_count>2</comment_count>
      <attachid>302676</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 11:16:04 -0800</bug_when>
    <thetext>Created attachment 302676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280805</commentid>
    <comment_count>3</comment_count>
      <attachid>302676</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-02-24 11:28:17 -0800</bug_when>
    <thetext>Comment on attachment 302676
Patch

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

&gt; Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:85
&gt; +                m_speculativeLoadManager = nullptr;

Have you verified that SpeculativeLoadManager can deal with being deleted while having ongoing requests? I think it is a new scenario. It could be tested with simulated repeated switches to low power and back while browsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280808</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 11:39:54 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 302676 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302676&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp:85
&gt; &gt; +                m_speculativeLoadManager = nullptr;
&gt; 
&gt; Have you verified that SpeculativeLoadManager can deal with being deleted
&gt; while having ongoing requests? I think it is a new scenario. It could be
&gt; tested with simulated repeated switches to low power and back while browsing.

I&apos;ll try with simulated switches. I tried with manual ones but triggering them during a load is not super easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280811</commentid>
    <comment_count>5</comment_count>
      <attachid>302676</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 11:53:07 -0800</bug_when>
    <thetext>Comment on attachment 302676
Patch

Clearing flags on attachment: 302676

Committed r212965: &lt;http://trac.webkit.org/changeset/212965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280812</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 11:53:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302676</attachid>
            <date>2017-02-24 11:16:04 -0800</date>
            <delta_ts>2017-02-24 11:53:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168832-20170224111314.patch</filename>
            <type>text/plain</type>
            <size>19087</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVjMTg3YmIxNjVhODFi
M2YzYmViYWViMzNkODNhNzZjZmM5MmM3OS4uYzYyY2ZhNWIyNGVkMTE5YjI0ODEwM2M5MWRmMmUw
OGM1YmI5OThjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU11bV0syXSBEaXNhYmxl
IG5ldHdvcmsgY2FjaGUgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIC8gbG9hZGluZyBpbiBsb3cg
cG93ZXIgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY4ODMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDY5NzkxMT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTG93UG93ZXJNb2RlTm90
aWZpZXIgY2xhc3MgdG8gbW9uaXRvciBsb3cgcG93ZXIgbW9kZSBzdGF0ZSBvbiBpT1MuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okxvd1Bvd2VyTW9kZU5vdGlmaWVyOjpMb3dQb3dlck1vZGVOb3RpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcjo6aXNMb3dQb3dlck1vZGVFbmFibGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb3dQb3dlck1vZGVOb3RpZmllci5oOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW06IEFkZGVkLgorICAgICAg
ICAoLVtXZWJMb3dQb3dlck1vZGVPYnNlcnZlciBpbml0V2l0aE5vdGlmaWVyOl0pOgorICAgICAg
ICAoLVtXZWJMb3dQb3dlck1vZGVPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dlYkxv
d1Bvd2VyTW9kZU9ic2VydmVyIF9kaWRSZWNlaXZlTG93UG93ZXJNb2RlQ2hhbmdlXSk6CisgICAg
ICAgIChXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcjo6TG93UG93ZXJNb2RlTm90aWZpZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TG93UG93ZXJNb2RlTm90aWZpZXI6OmlzTG93UG93ZXJNb2Rl
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllcjo6bm90aWZ5
TG93UG93ZXJNb2RlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlMb3dQb3dlck1v
ZGVDaGFuZ2VkKToKKwogMjAxNy0wMi0yNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtNYWNdW2NtYWtlXSBVbnJldmlld2VkIGJ1aWxkZml4IGFmdGVy
IHIyMTI3MzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmI4MDUwMGVlZGIwMGY3M2ZiYmFjNjQ4YzE1N2EwYzU0
ZTYyOTA3Yy4uODg5YTE5YjU5ZWRkMzhmYzE0YzEzMWZhNjZkOGMyMDk4MzI4Y2FhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU11bV0syXSBEaXNhYmxlIG5ldHdvcmsgY2FjaGUgc3Bl
Y3VsYXRpdmUgcmV2YWxpZGF0aW9uIC8gbG9hZGluZyBpbiBsb3cgcG93ZXIgbW9kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4ODMyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMDY5NzkxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIG5ldHdvcmsgY2FjaGUgc3BlY3VsYXRpdmUgcmV2
YWxpZGF0aW9uIC8gbG9hZGluZyBpbiBsb3cgcG93ZXIgbW9kZSBvbiBpT1MgdG8KKyAgICAgICAg
c2F2ZSBiYXR0ZXJ5LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6aW5pdGlhbGl6
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisKIDIw
MTctMDItMjQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBBZGQgYWx0ZXJuYXRlIGNsYXNzaWZpY2F0aW9uIG1l
dGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDcyYWU5MTg5NTFlZTI4NGYyMGRjMmJiY2UwMTc4ZjExZDgxMDNiMDAuLjk2YTlj
MjY4YmU1Y2ZkZWZjOTY1Y2YxMGE0NDUxNGE3ZDdjYzRiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NzksNiArMTc3OSw5
IEBACiAJCTQ2REZGNDlCMURDMjYyMEIwMEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2REZGNDk5MURD
MjYxRjkwMEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmNwcCAqLzsgfTsKIAkJNDZERkY0OUMx
REMyNjIwQjAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2REZGNDlBMURDMjYxRjkwMEI4MEI0OCAvKiBK
U1NoYWRvd1Jvb3RNb2RlLmggKi87IH07CiAJCTQ2RUJFQTAyMUI3RDRENjUwMEJFNDk0MSAvKiBD
b2xsZWN0aW9uVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlvblRyYXZlcnNh
bC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ2
RUZBRjBFMUU1RkI5Q0EwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLzsgfTsKKwkJNDZFRkFG
MTExRTVGQjlGMTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RUZBRjBGMUU1RkI5RTEwMEU3
RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5jcHAgKi87IH07CisJCTQ2RUZBRjEyMUU1RkI5
RjEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFRkFGMTAxRTVGQjlFMTAwRTdGMzRCIC8qIExv
d1Bvd2VyTW9kZU5vdGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDZGQ0I2MTgxQTcwODIwRTAwQzVBMjFFIC8qIERpYWdub3N0aWNMb2dn
aW5nS2V5cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ5MDcwN0U2MTIx
OUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyog
QU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovOyB9OwogCQk0OTA3MDdFNzEyMTlDMDQzMDBEOTBFNTEg
LyogQU5HTEVXZWJLaXRCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRn
ZS5oICovOyB9OwpAQCAtOTA5Niw2ICs5MDk5LDkgQEAKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgw
QjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTaGFkb3dSb290TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQkVBMDExQjdENEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rp
b25UcmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdGlv
blRyYXZlcnNhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkVGQUYwRDFFNUZC
OUMyMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZFRkFGMEYxRTVGQjlFMTAwRTdGMzRCIC8qIExv
d1Bvd2VyTW9kZU5vdGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDZFRkFGMTAxRTVGQjlFMTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBB
TkdMRVdlYktpdEJyaWRnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBTkdMRVdlYktpdEJyaWRnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdMRVdlYktpdEJyaWRnZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTI5MUU0QTEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJp
bmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlUmVuZGVyaW5n
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAxMDksNiArMjAxMTUsNyBA
QAogCQkJCUU0QjY1QTVEMTMyRkFEQjYwMDcwRTdCRSAvKiBMZWdhY3lUaWxlTGF5ZXIubW0gKi8s
CiAJCQkJRTRFMzlBRkExMzMwRUZBODAwM0FCMjc0IC8qIExlZ2FjeVRpbGVMYXllclBvb2wuaCAq
LywKIAkJCQlFNEUzOUFGQzEzMzBFRkM1MDAzQUIyNzQgLyogTGVnYWN5VGlsZUxheWVyUG9vbC5t
bSAqLywKKwkJCQk0NkVGQUYwRDFFNUZCOUMyMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZp
ZXJJT1MubW0gKi8sCiAJCQkJRTQ1MzkwMTkwRUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJ
T1MubW0gKi8sCiAJCQkJMjY2MDFFQkQxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRG
YWN0b3J5SU9TLmggKi8sCiAJCQkJMjY2MDFFQkUxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3Jt
RXZlbnRGYWN0b3J5SU9TLm1tICovLApAQCAtMjI5ODYsNiArMjI5OTMsOCBAQAogCQkJCUE4MjM5
REZGMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmggKi8sCiAJCQkJMEZEQ0Q3RjIxRDQ3RTY1
NTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggKi8sCiAJCQkJMEZEQ0Q3RjQxRDQ3RTcy
NTAwOUYwOEJDIC8qIExvZ01hY3Jvcy5oICovLAorCQkJCTQ2RUZBRjBGMUU1RkI5RTEwMEU3RjM0
QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5jcHAgKi8sCisJCQkJNDZFRkFGMTAxRTVGQjlFMTAw
RTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVyLmggKi8sCiAJCQkJN0FFNkM5MzkxQkUwQzYw
MTAwRTE5RTAzIC8qIE1haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAgKi8sCiAJCQkJN0FFNkM5M0Ex
QkUwQzYwMTAwRTE5RTAzIC8qIE1haW5UaHJlYWRTaGFyZWRUaW1lci5oICovLAogCQkJCUNERjJC
MDAzMTgxRjA1OUMwMEYyQjQyNCAvKiBNZWRpYURlc2NyaXB0aW9uLmggKi8sCkBAIC0yODA4Nyw2
ICsyODA5Niw3IEBACiAJCQkJRTRFOUIxMUQxODE0NTY5QzAwM0FDQ0RGIC8qIFNpbXBsZUxpbmVM
YXlvdXRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0RTlCMTE5MTgxMDkxNkYwMDNB
Q0NERiAvKiBTaW1wbGVMaW5lTGF5b3V0UmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4
MkNCMDUzMUE3OEExNEIwMEFGRkNDNCAvKiBTaW1wbGVMaW5lTGF5b3V0VGV4dEZyYWdtZW50SXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2RUZBRjEyMUU1RkI5RjEwMEU3RjM0QiAvKiBM
b3dQb3dlck1vZGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVBMUVBN0QxNTJCQ0Yw
ODAwNEQwMEI2IC8qIFNpbXBsaWZ5TWFya3VwQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTcyQTdGMjExQzZFNTcxOTAwOUM2MTQ5IC8qIFNpbXVsYXRlZENsaWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTc0MUFBRDE2NjM2NjA5MDA4QTVCN0UgLyogU2ltdWxhdGVkQ2xpY2tPcHRpb25z
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxMjk3LDYgKzMxMzA3LDcgQEAKIAkJCQlBOEM0QTgwMDA5
RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczMjBB
MjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4NTRGRTczNDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQ2RUZBRjBFMUU1RkI5Q0EwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3Rp
ZmllcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTRGRkMwMjJCMTY0M0I3MTAwMDRFMTYzOCAv
KiBOb2RlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQzMTA1QjgxNjc1MEYwQzAw
REIyRkI4IC8qIE5vZGVUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzM1MDNDQzcx
MDE3QTFCMTAwM0I0N0UxIC8qIE5vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMy
Mzk5LDYgKzMyNDEwLDcgQEAKIAkJCQkwMEI5MzE4OTEzQkE4REJDMDAzNUE5NDggLyogWE1MRG9j
dW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTAwQjkzMThCMTNCQThE
QzkwMDM1QTk0OCAvKiBYTUxEb2N1bWVudFBhcnNlclNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTU5QzI4MDQ1MTM4REMyNDEwMDc5QjdFMiAvKiBYTUxFcnJvcnMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDZFRkFGMTExRTVGQjlGMTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNzcyQzQ2MEM0RUIyQzYwMDgzMjg1RiAvKiBYTUxI
dHRwUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTM2QTAwQzExMzREQkQyMDBDQzhE
NTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNERkQ0OEYwRTMwNTI5MDAwOUQxMEFEIC8qIFhNTEh0dHBSZXF1ZXN0VXBsb2Fk
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG93UG93
ZXJNb2RlTm90aWZpZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NmRkMTNmYWI4NTg4ZDI2ZjE0NmU5Zjlk
MGM3MTE1OTQ0MjcwODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb3dQb3dlck1vZGVOb3RpZmllci5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb3dQb3dlck1vZGVOb3RpZmllci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorCitMb3dQb3dlck1v
ZGVOb3RpZmllcjo6TG93UG93ZXJNb2RlTm90aWZpZXIoTG93UG93ZXJNb2RlQ2hhbmdlQ2FsbGJh
Y2smJikKK3sKK30KKworYm9vbCBMb3dQb3dlck1vZGVOb3RpZmllcjo6aXNMb3dQb3dlck1vZGVF
bmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNlbmRpZgorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b3dQb3dlck1vZGVOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG93UG93ZXJN
b2RlTm90aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTViZWZmYmM5ZDRhYzRkYTZlOWI0MjFhNGE3NzY3
OTNlNGY5N2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG93
UG93ZXJNb2RlTm90aWZpZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKworI2lmIFBMQVRGT1JNKElPUykK
KworI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KK09CSkNfQ0xBU1MgV2ViTG93UG93ZXJNb2Rl
T2JzZXJ2ZXI7CisKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIExvd1Bv
d2VyTW9kZU5vdGlmaWVyIHsKK3B1YmxpYzoKKyAgICB1c2luZyBMb3dQb3dlck1vZGVDaGFuZ2VD
YWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChib29sIGlzTG93UG93ZXJNb2RlRW5hYmxlZCk+
OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IExvd1Bvd2VyTW9kZU5vdGlmaWVyKExvd1Bv
d2VyTW9kZUNoYW5nZUNhbGxiYWNrJiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0xv
d1Bvd2VyTW9kZUVuYWJsZWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgdm9pZCBub3RpZnlMb3dQb3dlck1vZGVDaGFuZ2VkKGJvb2wpOworICAgIGZyaWVuZCB2
b2lkIG5vdGlmeUxvd1Bvd2VyTW9kZUNoYW5nZWQoTG93UG93ZXJNb2RlTm90aWZpZXIqLCBib29s
KTsKKworICAgIFJldGFpblB0cjxXZWJMb3dQb3dlck1vZGVPYnNlcnZlcj4gbV9vYnNlcnZlcjsK
KyAgICBMb3dQb3dlck1vZGVDaGFuZ2VDYWxsYmFjayBtX2NhbGxiYWNrOworI2VuZGlmCit9Owor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTG93UG93ZXJNb2Rl
Tm90aWZpZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTG93UG93ZXJNb2Rl
Tm90aWZpZXJJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNjZjRmYTgwMzA3ZmJiYTAwMmM4MzgzN2I5NmRk
NTkxODhmZjQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9Mb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbQpAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0ICJMb3dQ
b3dlck1vZGVOb3RpZmllci5oIgorCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0IDxGb3Vu
ZGF0aW9uL05TUHJvY2Vzc0luZm8uaD4KKworQGludGVyZmFjZSBXZWJMb3dQb3dlck1vZGVPYnNl
cnZlciA6IE5TT2JqZWN0CitAcHJvcGVydHkgKG5vbmF0b21pYykgV2ViQ29yZTo6TG93UG93ZXJN
b2RlTm90aWZpZXIqIG5vdGlmaWVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIGlzTG93UG93ZXJNb2RlRW5hYmxlZDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkxv
d1Bvd2VyTW9kZU9ic2VydmVyIHsKK30KKworLSAoV2ViTG93UG93ZXJNb2RlT2JzZXJ2ZXIgKilp
bml0V2l0aE5vdGlmaWVyOihXZWJDb3JlOjpMb3dQb3dlck1vZGVOb3RpZmllciAqKW5vdGlmaWVy
Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBfbm90aWZpZXIgPSBub3RpZmllcjsKKyAgICBfaXNMb3dQb3dlck1v
ZGVFbmFibGVkID0gW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dLmxvd1Bvd2VyTW9kZUVuYWJs
ZWQ7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZl
cjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGlkUmVjZWl2ZUxvd1Bvd2VyTW9kZUNoYW5nZSkg
bmFtZTpOU1Byb2Nlc3NJbmZvUG93ZXJTdGF0ZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6
bmlsXTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6TlNQcm9jZXNzSW5mb1Bvd2VyU3RhdGVEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5p
bF07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKV9kaWRSZWNlaXZlTG93UG93
ZXJNb2RlQ2hhbmdlCit7CisgICAgX2lzTG93UG93ZXJNb2RlRW5hYmxlZCA9IFtOU1Byb2Nlc3NJ
bmZvIHByb2Nlc3NJbmZvXS5sb3dQb3dlck1vZGVFbmFibGVkOworICAgIG5vdGlmeUxvd1Bvd2Vy
TW9kZUNoYW5nZWQoX25vdGlmaWVyLCBfaXNMb3dQb3dlck1vZGVFbmFibGVkKTsKK30KKworQGVu
ZAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0xvd1Bvd2VyTW9kZU5vdGlmaWVyOjpMb3dQb3dl
ck1vZGVOb3RpZmllcihMb3dQb3dlck1vZGVDaGFuZ2VDYWxsYmFjayYmIGNhbGxiYWNrKQorICAg
IDogbV9vYnNlcnZlcihhZG9wdE5TKFtbV2ViTG93UG93ZXJNb2RlT2JzZXJ2ZXIgYWxsb2NdIGlu
aXRXaXRoTm90aWZpZXI6IHRoaXNdKSkKKyAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFj
aykpCit7Cit9CisKK2Jvb2wgTG93UG93ZXJNb2RlTm90aWZpZXI6OmlzTG93UG93ZXJNb2RlRW5h
YmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb2JzZXJ2ZXIuZ2V0KCkuaXNMb3dQb3dlck1v
ZGVFbmFibGVkOworfQorCit2b2lkIExvd1Bvd2VyTW9kZU5vdGlmaWVyOjpub3RpZnlMb3dQb3dl
ck1vZGVDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX2NhbGxiYWNrKGVuYWJsZWQpOwor
fQorCit2b2lkIG5vdGlmeUxvd1Bvd2VyTW9kZUNoYW5nZWQoTG93UG93ZXJNb2RlTm90aWZpZXIq
IG5vdGlmaWVyLCBib29sIGVuYWJsZWQpCit7CisgICAgUkVMRUFTRV9MT0coUGVyZm9ybWFuY2VM
b2dnaW5nLCAiTG93IHBvd2VyIG1vZGUgc3RhdGUgaGFzIGNoYW5nZWQgdG8gJWQiLCBlbmFibGVk
KTsKKyAgICBub3RpZmllci0+bm90aWZ5TG93UG93ZXJNb2RlQ2hhbmdlZChlbmFibGVkKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmluZGV4IGJiZWRjZTNm
MTU3YmU4MDY4NTJhNzliODRiZWY3ZmI0MWUxZWJiN2IuLmUzMWJjMDRlZGI3NzUwNDQyMjRhN2I3
MmZjZTg0ZTI5MzY4MjljMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQ2FjaGVWYWxpZGF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVt
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyTmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0xvd1Bvd2VyTW9kZU5vdGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ29va2llSmFyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTc3LDggKzc4LDE5IEBAIGJv
b2wgQ2FjaGU6OmluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgsIGNvbnN0IFBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgbV9zdG9yYWdlID0gU3RvcmFnZTo6b3BlbihjYWNoZVBh
dGgpOwogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9O
KQotICAgIGlmIChwYXJhbWV0ZXJzLmVuYWJsZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxp
ZGF0aW9uKQotICAgICAgICBtX3NwZWN1bGF0aXZlTG9hZE1hbmFnZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI+KCptX3N0b3JhZ2UpOworICAgIGlmIChwYXJhbWV0
ZXJzLmVuYWJsZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uKSB7CisgICAgICAg
IG1fbG93UG93ZXJNb2RlTm90aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6Okxvd1Bv
d2VyTW9kZU5vdGlmaWVyPihbdGhpc10oYm9vbCBpc0xvd1Bvd2VyTW9kZUVuYWJsZWQpIHsKKyAg
ICAgICAgICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgICAgIGlmIChp
c0xvd1Bvd2VyTW9kZUVuYWJsZWQpCisgICAgICAgICAgICAgICAgbV9zcGVjdWxhdGl2ZUxvYWRN
YW5hZ2VyID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEFT
U0VSVCghbV9zcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyKTsKKyAgICAgICAgICAgICAgICBtX3NwZWN1
bGF0aXZlTG9hZE1hbmFnZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXI+KCptX3N0b3JhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgaWYg
KCFtX2xvd1Bvd2VyTW9kZU5vdGlmaWVyLT5pc0xvd1Bvd2VyTW9kZUVuYWJsZWQoKSkKKyAgICAg
ICAgICAgIG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlciA9IHN0ZDo6bWFrZV91bmlxdWU8U3BlY3Vs
YXRpdmVMb2FkTWFuYWdlcj4oKm1fc3RvcmFnZSk7CisgICAgfQogI2VuZGlmCiAKICAgICBpZiAo
cGFyYW1ldGVycy5lbmFibGVFZmZpY2FjeUxvZ2dpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IGNhMmJiYzJkY2NmM2U2
MmY5NWI5ZGVjNzIxMzgxMjkwOTQ1MTVmZDEuLjYzYmJmMjQxMGRiOWYxYTc3ODA0NGRiNjhkODY5
ZTIzYWYxOWI4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIExvd1Bvd2VyTW9kZU5v
dGlmaWVyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xh
c3MgVVJMOwpAQCAtMTQ3LDYgKzE0OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U3RvcmFnZT4gbV9zdG9yYWdlOwogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TG93UG93ZXJN
b2RlTm90aWZpZXI+IG1fbG93UG93ZXJNb2RlTm90aWZpZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFNwZWN1bGF0aXZlTG9hZE1hbmFnZXI+IG1fc3BlY3VsYXRpdmVMb2FkTWFuYWdlcjsKICNlbmRp
ZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0aXN0aWNzPiBtX3N0YXRpc3RpY3M7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>