<?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>65289</bug_id>
          
          <creation_ts>2011-07-27 15:13:31 -0700</creation_ts>
          <short_desc>Remove GeolocationPositionCache</short_desc>
          <delta_ts>2011-07-28 09:58:54 -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>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>30676</dependson>
    
    <dependson>50825</dependson>
    
    <dependson>50826</dependson>
    
    <dependson>51557</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>443179</commentid>
    <comment_count>0</comment_count>
      <attachid>102191</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-27 15:13:31 -0700</bug_when>
    <thetext>Created attachment 102191
Patch

Reviewed by NOBODY (OOPS!).

* page/Geolocation.h: Update copyright.  Include what we use.
(WebCore::Geolocation::PositionCacheWrapper): Add separate
implementation of PositionCacheWrapper that does not use
GeolocationPositionCache.  Although GeolocationPositionCache
effectively does nothing until setDatabasePath() is called,
there&apos;s no need to compile the code if it&apos;s not being used.
* page/GeolocationPositionCache.cpp: Update macro guard.
---
 3 files changed, 37 insertions(+), 4 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443182</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-27 15:16:24 -0700</bug_when>
    <thetext>Attachment 102191 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443192</commentid>
    <comment_count>2</comment_count>
      <attachid>102191</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-27 15:25:01 -0700</bug_when>
    <thetext>Comment on attachment 102191
Patch

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

&gt; Source/WebCore/page/Geolocation.h:42
&gt; +#include &lt;wtf/HashMap.h&gt;
&gt; +#include &lt;wtf/HashSet.h&gt;
&gt; +#include &lt;wtf/PassRefPtr.h&gt;
&gt; +#include &lt;wtf/RefCounted.h&gt;
&gt; +#include &lt;wtf/RefPtr.h&gt;
&gt; +#include &lt;wtf/Vector.h&gt;

This seems like too many new includes. Why do we need to include all of these? I can see why we’d need to Geoposition.h and maybe RefPtr.h, but not all those others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443198</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-27 15:32:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 102191 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102191&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Geolocation.h:42
&gt; &gt; +#include &lt;wtf/HashMap.h&gt;
&gt; &gt; +#include &lt;wtf/HashSet.h&gt;
&gt; &gt; +#include &lt;wtf/PassRefPtr.h&gt;
&gt; &gt; +#include &lt;wtf/RefCounted.h&gt;
&gt; &gt; +#include &lt;wtf/RefPtr.h&gt;
&gt; &gt; +#include &lt;wtf/Vector.h&gt;
&gt; 
&gt; This seems like too many new includes. Why do we need to include all of these? I can see why we’d need to Geoposition.h and maybe RefPtr.h, but not all those others.

Each of those types is used in definition of the Geolocation object.

In an experimental patch (where I commented out most of GeolocationPositionCache.h), I had to go back and add these headers because they were no longer being included for us.

Hence, I&apos;m &quot;including what we use&quot; in case other headers change later.  (I can remove these headers, but there are implicit dependencies on those same headers being included elsewhere.)

Maybe we should include these common wtf headers in config.h?  (That would be a separate bug, though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443225</commentid>
    <comment_count>4</comment_count>
      <attachid>102191</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-27 16:57:01 -0700</bug_when>
    <thetext>Comment on attachment 102191
Patch

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

&gt;&gt;&gt; Source/WebCore/page/Geolocation.h:42
&gt;&gt;&gt; +#include &lt;wtf/Vector.h&gt;
&gt;&gt; 
&gt;&gt; This seems like too many new includes. Why do we need to include all of these? I can see why we’d need to Geoposition.h and maybe RefPtr.h, but not all those others.
&gt; 
&gt; Each of those types is used in definition of the Geolocation object.
&gt; 
&gt; In an experimental patch (where I commented out most of GeolocationPositionCache.h), I had to go back and add these headers because they were no longer being included for us.
&gt; 
&gt; Hence, I&apos;m &quot;including what we use&quot; in case other headers change later.  (I can remove these headers, but there are implicit dependencies on those same headers being included elsewhere.)
&gt; 
&gt; Maybe we should include these common wtf headers in config.h?  (That would be a separate bug, though.)

Thanks. Good explanation.

We do not do the “including what we use in case other headers change later” technique elsewhere in the project, so I suggest not doing it here either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443265</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-07-27 18:35:45 -0700</bug_when>
    <thetext>Given that there are no Android build files anymore, can we just rip out the parts that do write to disk?  I don&apos;t think it is a good feature for WebCore to have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443278</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-27 19:10:29 -0700</bug_when>
    <thetext>&gt; Given that there are no Android build files anymore, can we just rip out the parts that do write to disk?  I don&apos;t think it is a good feature for WebCore to have.

WebCore is writing to disk?  I agree that sounds like a misfeature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443293</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-27 20:27:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Given that there are no Android build files anymore, can we just rip out the parts that do write to disk?  I don&apos;t think it is a good feature for WebCore to have.
&gt; 
&gt; WebCore is writing to disk?  I agree that sounds like a misfeature.

To be crystal clear, you&apos;re talking about removing GeolocationPositionCache, correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443315</commentid>
    <comment_count>8</comment_count>
      <attachid>102223</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-27 21:29:35 -0700</bug_when>
    <thetext>Created attachment 102223
Remove GeolocationPositionCache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443418</commentid>
    <comment_count>9</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-07-28 03:17:54 -0700</bug_when>
    <thetext>LGTM. Thanks for CC&apos;ing me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443495</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-28 07:55:27 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; LGTM. Thanks for CC&apos;ing me.

Did you see the second patch?  You&apos;re okay with removing GeolocationPositionCache?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443499</commentid>
    <comment_count>11</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2011-07-28 08:08:01 -0700</bug_when>
    <thetext>&gt; Did you see the second patch?  You&apos;re okay with removing GeolocationPositionCache?
Yes, sure. I think it has value, but there obviously problems with it and I don&apos;t have time to address them now. I might look at reinstating it in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443523</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-28 09:58:16 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Did you see the second patch?  You&apos;re okay with removing GeolocationPositionCache?
&gt; Yes, sure. I think it has value, but there obviously problems with it and I don&apos;t have time to address them now. I might look at reinstating it in the future.

Okay, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443524</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-07-28 09:58:54 -0700</bug_when>
    <thetext>Committed r91936: &lt;http://trac.webkit.org/changeset/91936&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102191</attachid>
            <date>2011-07-27 15:13:31 -0700</date>
            <delta_ts>2011-07-27 21:27:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>20110727151330.patch</filename>
            <type>text/plain</type>
            <size>3873</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE4NjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTYyNGY3N2U0NmY3MDI5
YjI0YmJjNDRhZTA4OGIyMGUxZWVhNTQ5Li5mYmNlMGU0OWIwMzc2YWM0NTVlYTY3Nzc3ODY3MWJh
Y2VhYTQzYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDctMjcgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dlYmtpdC5v
cmcvYi8wMDAwMD4gRGlzYWJsZSBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUgb24gQXBwbGUgcG9y
dHMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBh
Z2UvR2VvbG9jYXRpb24uaDogVXBkYXRlIGNvcHlyaWdodC4gIEluY2x1ZGUgd2hhdCB3ZSB1c2Uu
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6UG9zaXRpb25DYWNoZVdyYXBwZXIpOiBB
ZGQgc2VwYXJhdGUKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgUG9zaXRpb25DYWNoZVdyYXBw
ZXIgdGhhdCBkb2VzIG5vdCB1c2UKKyAgICAgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLiAg
QWx0aG91Z2ggR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlCisgICAgICAgIGVmZmVjdGl2ZWx5IGRv
ZXMgbm90aGluZyB1bnRpbCBzZXREYXRhYmFzZVBhdGgoKSBpcyBjYWxsZWQsCisgICAgICAgIHRo
ZXJlJ3Mgbm8gbmVlZCB0byBjb21waWxlIHRoZSBjb2RlIGlmIGl0J3Mgbm90IGJlaW5nIHVzZWQu
CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwOiBVcGRhdGUgbWFj
cm8gZ3VhcmQuCisKIDIwMTEtMDctMjUgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBBZGQgYmV0dGVyIFdlYktpdCBBUEkgZm9yIGNo
cm9tZS50YWJzLmluc2VydENTUyBleHRlbnNpb24gQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0dlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmgKaW5kZXggMGJkYjFhNWVhYzM3MGFlMWQ1M2M2ZjQ3ZmVjODNlNGFiMzY2MTM2ZS4uMTA1ZWJm
ODUwYmMxN2JiNTM1ZjM3ZjkyMDZlZDY5Mjc3OTJjZTUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqIENvcHly
aWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0yOCwxNCArMjgsMjIgQEAKICNkZWZpbmUgR2VvbG9jYXRpb25faAogCiAjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmgiCisjaW5jbHVkZSAiR2VvcG9zaXRpb24uaCIK
ICNpbmNsdWRlICJQb3NpdGlvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5o
IgogI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBvc2l0aW9u
T3B0aW9ucy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDcgKzUzLDYgQEAgY2xh
c3MgRnJhbWU7CiBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogY2xhc3MgR2VvbG9jYXRpb25F
cnJvcjsKICNlbmRpZgotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBH
ZW9sb2NhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uPgpAQCAtMTMxLDYgKzEz
OCwxNyBAQCBwcml2YXRlOgogICAgICAgICBOb3RpZmllclRvSWRNYXAgbV9ub3RpZmllclRvSWRN
YXA7CiAgICAgfTsKIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKFdJTikgJiYgVVNF
KENHKSkKKyAgICBjbGFzcyBQb3NpdGlvbkNhY2hlV3JhcHBlciB7CisgICAgcHVibGljOgorICAg
ICAgICBQb3NpdGlvbkNhY2hlV3JhcHBlcigpIHsgfQorICAgICAgICB+UG9zaXRpb25DYWNoZVdy
YXBwZXIoKSB7IH0KKyAgICAgICAgdm9pZCBzZXRDYWNoZWRQb3NpdGlvbihHZW9wb3NpdGlvbiog
Y2FjaGVkUG9zaXRpb24pIHsgbV9jYWNoZWRQb3NpdGlvbiA9IGNhY2hlZFBvc2l0aW9uOyB9Cisg
ICAgICAgIEdlb3Bvc2l0aW9uKiBjYWNoZWRQb3NpdGlvbigpIHsgcmV0dXJuIG1fY2FjaGVkUG9z
aXRpb24uZ2V0KCk7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8R2VvcG9zaXRpb24+
IG1fY2FjaGVkUG9zaXRpb247CisgICAgfTsKKyNlbHNlCiAgICAgY2xhc3MgUG9zaXRpb25DYWNo
ZVdyYXBwZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgUG9zaXRpb25DYWNoZVdyYXBwZXIoKQpA
QCAtMTQ3LDYgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgcHJpdmF0ZToKICAgICAgICAgR2VvbG9j
YXRpb25Qb3NpdGlvbkNhY2hlKiBtX2NhY2hlOwogICAgIH07CisjZW5kaWYKIAogICAgIGJvb2wg
aGFzTGlzdGVuZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fb25lU2hvdHMuaXNFbXB0eSgpIHx8ICFt
X3dhdGNoZXJzLmlzRW1wdHkoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uUG9zaXRpb25DYWNoZS5jcHAKaW5kZXggYTQyZjJlYzIwYTgxZTU4OTk1YjI3MjlhNTY3
MjhiNDA3ZDJjMzY4My4uNTY3MDNlMDM5NGNjM2M5Y2NlZDM1Y2Q0ZDI2MTNmMWIxYmQzMzJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNw
cApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25DYWNoZS5oIgogCi0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorI2lmIEVO
QUJMRShHRU9MT0NBVElPTikgJiYgIShQTEFURk9STShNQUMpIHx8IChQTEFURk9STShXSU4pICYm
IFVTRShDRykpKQogCiAjaW5jbHVkZSAiQ3Jvc3NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiR2Vv
cG9zaXRpb24uaCIKQEAgLTI1OCw0ICsyNTgsNCBAQCB2b2lkIEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZTo6d3JpdGVUb0RhdGFiYXNlSW1wbCgpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJ
T04pICYmICEoUExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpKSkK
</data>
<flag name="review"
          id="97366"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102223</attachid>
            <date>2011-07-27 21:29:35 -0700</date>
            <delta_ts>2011-07-27 21:34:51 -0700</delta_ts>
            <desc>Remove GeolocationPositionCache</desc>
            <filename>0001-http-webkit.org-b-65289-Remove-GeolocationPositionCa.patch</filename>
            <type>text/plain</type>
            <size>29939</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">RnJvbSBhYmMzYWFkNjc1NTdkMWM4YmQxMjUyZjA0NGRiZWQ2MDViODNiMWJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBLaWx6ZXIgPGRka2lsemVyQGFwcGxlLmNvbT4KRGF0
ZTogV2VkLCAyNyBKdWwgMjAxMSAyMToxMToyNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIDxodHRw
Oi8vd2Via2l0Lm9yZy9iLzY1Mjg5PiBSZW1vdmUgR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlCgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZSByZWZl
cmVuY2VzIHRvIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS4KKiBHTlVtYWtlZmlsZS5saXN0LmFt
OiBEaXR0by4KKiBXZWJDb3JlLmd5cGk6IERpdHRvLgoqIFdlYkNvcmUub3JkZXI6IERpdHRvLgoq
IFdlYkNvcmUucHJvOiBEaXR0by4KKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0
dG8uCiogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KCiogcGFnZS9H
ZW9sb2NhdGlvbi5jcHA6IFN3aXRjaCBmcm9tIHVzaW5nIG1fcG9zaXRpb25DYWNoZSB0bwptX2Nh
Y2hlZFBvc2l0aW9uLgooV2ViQ29yZTo6R2VvbG9jYXRpb246Om1ha2VDYWNoZWRQb3NpdGlvbkNh
bGxiYWNrcyk6CihXZWJDb3JlOjpHZW9sb2NhdGlvbjo6aGF2ZVN1aXRhYmxlQ2FjaGVkUG9zaXRp
b24pOgooV2ViQ29yZTo6R2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZEludGVybmFsKToKKiBw
YWdlL0dlb2xvY2F0aW9uLmg6IFJlbW92ZSBQb3NpdGlvbkNhY2hlV3JhcHBlciBhbmQgcmVwbGFj
ZQp3aXRoIFJlZlB0cjxHZW9wb3NpdGlvbj4uCiogcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2Fj
aGUuY3BwOiBSZW1vdmVkLgoqIHBhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmg6IFJlbW92
ZWQuCi0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAg
IHwgICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDI0ICsrCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtICAgICAgICAg
ICAgICAgfCAgICAyIC0KIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDIgLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciAgICAgICAgICAg
ICAgICAgICAgIHwgICAgNSAtCiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAyIC0KIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qICAgICB8ICAgIDggLQogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIHwgICAgOCAtCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmNwcCAgICAgICAgICAgICAgfCAgIDEwICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uLmggICAgICAgICAgICAgICAgfCAgIDI0ICstLQogU291cmNlL1dlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIHwgIDI2MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICAgfCAgIDc5IC0t
LS0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDM5NCBkZWxldGlvbnMo
LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9z
aXRpb25DYWNoZS5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9wYWdlL0dl
b2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZDBmOWFl
Li4xZWFkYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTczLDcgKzk3Myw2IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0ZyYW1lVmlldy5jcHAKICAgICBwYWdlL0dlb2xvY2F0
aW9uLmNwcAogICAgIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAotICAgIHBhZ2UvR2Vv
bG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcAogICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAKICAg
ICBwYWdlL0hpc3RvcnkuY3BwCiAgICAgcGFnZS9Mb2NhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAx
OTYyNGY3Li4zZjE3OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDctMjcg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICA8aHR0cDovL3dl
YmtpdC5vcmcvYi82NTI4OT4gUmVtb3ZlIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6IFJlbW92ZSByZWZlcmVuY2VzIHRvIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS4KKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IERpdHRvLgorICAgICAgICAqIFdlYkNv
cmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0
by4KKworICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOiBTd2l0Y2ggZnJvbSB1c2luZyBt
X3Bvc2l0aW9uQ2FjaGUgdG8KKyAgICAgICAgbV9jYWNoZWRQb3NpdGlvbi4KKyAgICAgICAgKFdl
YkNvcmU6Okdlb2xvY2F0aW9uOjptYWtlQ2FjaGVkUG9zaXRpb25DYWxsYmFja3MpOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmhhdmVTdWl0YWJsZUNhY2hlZFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWRJbnRlcm5hbCk6Cisg
ICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOiBSZW1vdmUgUG9zaXRpb25DYWNoZVdyYXBwZXIg
YW5kIHJlcGxhY2UKKyAgICAgICAgd2l0aCBSZWZQdHI8R2VvcG9zaXRpb24+LgorICAgICAgICAq
IHBhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oOiBSZW1vdmVkLgorCiAyMDExLTA3LTI1ICBN
aWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gQWRkIGJldHRlciBXZWJLaXQgQVBJIGZvciBjaHJvbWUudGFicy5pbnNlcnRDU1MgZXh0ZW5z
aW9uIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYTdiYzQyNC4uMWE4MDQx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMjUzLDggKzIyNTMsNiBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250
cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25FcnJvci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uUG9zaXRpb24uaCBcCi0JU291cmNlL1dlYkNv
cmUvcGFnZS9HZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9w
YWdlL0dlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0dl
b3Bvc2l0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAyYWZkODc2Li5kMzc2YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MjQsNyArNjI0LDYgQEAK
ICAgICAgICAgICAgICdwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oJywKICAgICAgICAgICAg
ICdwYWdlL0dlb2xvY2F0aW9uRXJyb3IuaCcsCiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlv
blBvc2l0aW9uLmgnLAotICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hl
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvR2VvcG9zaXRpb24uaCcsCiAgICAgICAgICAgICAncGFn
ZS9Hcm91cFNldHRpbmdzLmgnLAogICAgICAgICAgICAgJ3BhZ2UvSGFsdGFibGVQbHVnaW4uaCcs
CkBAIC0yODczLDcgKzI4NzIsNiBAQAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVWaWV3LmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2Uv
R2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCcsCi0gICAgICAgICAgICAncGFnZS9HZW9sb2NhdGlv
blBvc2l0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdwYWdlL0dyb3VwU2V0dGluZ3MuY3Bw
JywKICAgICAgICAgICAgICdwYWdlL0hpc3RvcnkuY3BwJywKICAgICAgICAgICAgICdwYWdlL0hp
c3RvcnkuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCAwMmQ3YmQwLi44ZGZhNGQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUub3JkZXIKQEAgLTIzNjI0LDggKzIzNjI0LDYgQEAgX19aTjdXZWJDb3JlNE5vZGU5c2V0
UHJlZml4RVJLTjNXVEYxMkF0b21pY1N0cmluZ0VSaQogX19aTjdXZWJDb3JlMjJqc05hdmlnYXRv
ckdlb2xvY2F0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRp
ZmllckUKIF9fWk5LN1dlYkNvcmU5TmF2aWdhdG9yMTFnZW9sb2NhdGlvbkV2CiBfX1pON1dlYkNv
cmUxMUdlb2xvY2F0aW9uQzFFUE5TXzVGcmFtZUUKLV9fWk43V2ViQ29yZTI0R2VvbG9jYXRpb25Q
b3NpdGlvbkNhY2hlOGluc3RhbmNlRXYKLV9fWk43V2ViQ29yZTI0R2VvbG9jYXRpb25Qb3NpdGlv
bkNhY2hlN2FkZFVzZXJFdgogX19aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNf
MTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTFHZW9sb2NhdGlvbkUKIF9fWk43V2ViQ29yZTR3cmFw
SU5TXzEzSlNHZW9sb2NhdGlvbkVOU18xMUdlb2xvY2F0aW9uRUVFTjNKU0M3SlNWYWx1ZUVQTlMz
XzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUFQwXwogX19aTjdXZWJDb3JlMTVn
ZXRET01TdHJ1Y3R1cmVJTlNfMTNKU0dlb2xvY2F0aW9uRUVFUE4zSlNDOVN0cnVjdHVyZUVQTlMy
XzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFCkBAIC0yMzY0MCw3ICsyMzYzOCw2
IEBAIF9fWk43V2ViQ29yZTE0SlNDYWxsYmFja0RhdGFDMkVQTjNKU0M4SlNPYmplY3RFUE5TXzE3
SlNET01HbG9iYWxPYmplY3RFCiBfX1pON1dlYkNvcmVMMjFjcmVhdGVQb3NpdGlvbk9wdGlvbnNF
UE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxMUdlb2xvY2F0aW9u
MThnZXRDdXJyZW50UG9zaXRpb25FTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZQb3NpdGlvbkNhbGxi
YWNrRUVFTlMyX0lOU18yMVBvc2l0aW9uRXJyb3JDYWxsYmFja0VFRU5TMl9JTlNfMTVQb3NpdGlv
bk9wdGlvbnNFRUUKIF9fWk43V2ViQ29yZTExR2VvbG9jYXRpb24xMnN0YXJ0UmVxdWVzdEVOM1dU
RjEwUGFzc1JlZlB0cklOU18xNlBvc2l0aW9uQ2FsbGJhY2tFRUVOUzJfSU5TXzIxUG9zaXRpb25F
cnJvckNhbGxiYWNrRUVFTlMyX0lOU18xNVBvc2l0aW9uT3B0aW9uc0VFRQotX19aTjdXZWJDb3Jl
MjRHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUxNGNhY2hlZFBvc2l0aW9uRXYKIF9fWk43V2ViQ29y
ZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTdyZXF1ZXN0UGVybWlzc2lvbkVQTlNfMTFHZW9sb2Nh
dGlvbkUKIF9fWk43V2ViQ29yZTI0SlNDdXN0b21Qb3NpdGlvbkNhbGxiYWNrRDBFdgogX19aTjdX
ZWJDb3JlMjlKU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFja0MxRVBOM0pTQzhKU09iamVjdEVQ
TlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTIzNjg4LDcgKzIzNjg1LDYgQEAgX19aTjdXZWJD
b3JlMTVKU1Bvc2l0aW9uRXJyb3JEMUV2CiBfX1pON1dlYkNvcmUyOUpTQ3VzdG9tUG9zaXRpb25F
cnJvckNhbGxiYWNrRDBFdgogX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbkQxRXYKIF9fWk43V2Vi
Q29yZTExR2VvbG9jYXRpb25EMkV2Ci1fX1pON1dlYkNvcmUyNEdlb2xvY2F0aW9uUG9zaXRpb25D
YWNoZTEwcmVtb3ZlVXNlckV2CiBfX1pON1dlYkNvcmUxMUdlb2xvY2F0aW9uOFdhdGNoZXJzRDFF
dgogX19aTjdXZWJDb3JlMjFHZW9sb2NhdGlvbkNvbnRyb2xsZXIxNXBvc2l0aW9uQ2hhbmdlZEVQ
TlNfMTlHZW9sb2NhdGlvblBvc2l0aW9uRQogX19aTjNXVEYxMmNvcHlUb1ZlY3RvcklOU182UmVm
UHRySU43V2ViQ29yZTExR2VvbG9jYXRpb25FRUVOU183UHRySGFzaElTNF9FRU5TXzEwSGFzaFRy
YWl0c0lTNF9FRU5TXzZWZWN0b3JJUzRfTG0wRUVFRUV2UktOU183SGFzaFNldElUX1QwX1QxX0VF
UlQyXwpAQCAtMjM2OTcsNyArMjM2OTMsNiBAQCBfX1pON1dlYkNvcmUxMUdlb2xvY2F0aW9uMTVw
b3NpdGlvbkNoYW5nZWRFdgogX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbjIzcG9zaXRpb25DaGFu
Z2VkSW50ZXJuYWxFdgogX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbjEybGFzdFBvc2l0aW9uRXYK
IF9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTJsYXN0UG9zaXRpb25FdgotX19a
TjdXZWJDb3JlMjRHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUxN3NldENhY2hlZFBvc2l0aW9uRVBO
U18xMUdlb3Bvc2l0aW9uRQogX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbjIxc3RvcFRpbWVyc0Zv
ck9uZVNob3RzRXYKIF9fWk43V2ViQ29yZTExR2VvbG9jYXRpb245c3RvcFRpbWVyRVJOM1dURjZW
ZWN0b3JJTlMxXzZSZWZQdHJJTlMwXzExR2VvTm90aWZpZXJFRUVMbTBFRUUKIF9fWk43V2ViQ29y
ZTExR2VvbG9jYXRpb24yMXN0b3BUaW1lcnNGb3JXYXRjaGVyc0V2CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDczMGJiMGMuLmE1M2Q1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC05MjEsNyArOTIxLDYgQEAgU09V
UkNFUyArPSBcCiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0aW9u
LmNwcCBcCiAgICAgcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIFwKLSAgICBwYWdlL0dl
b2xvY2F0aW9uUG9zaXRpb25DYWNoZS5jcHAgXAogICAgIHBhZ2UvR3JvdXBTZXR0aW5ncy5jcHAg
XAogICAgIHBhZ2UvSGlzdG9yeS5jcHAgXAogICAgIHBhZ2UvTG9jYXRpb24uY3BwIFwKQEAgLTE4
OTIsNyArMTg5MSw2IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvRnJhbWVUcmVlLmggXAogICAg
IHBhZ2UvRnJhbWVWaWV3LmggXAogICAgIHBhZ2UvR2VvbG9jYXRpb24uaCBcCi0gICAgcGFnZS9H
ZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCBcCiAgICAgcGFnZS9HZW9wb3NpdGlvbi5oIFwKICAg
ICBwYWdlL0dyb3VwU2V0dGluZ3MuaCBcCiAgICAgcGFnZS9IYWx0YWJsZVBsdWdpbi5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTNkNjU4
MC4uY2E1OTRkMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTI1NDIyLDE0ICsyNTQyMiw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNw
cCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFn
ZVxHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxHZW9wb3NpdGlvbi5oIgogCQkJCT4KIAkJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmOWZiYzc3Li44NjcwZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDkyLDggKzE0OTIsNiBAQAogCQk1
OTMwOUExMzExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTMwOUExMjEx
RjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTkzRDNFQUYxMzI1MzI4
QzAwNTdFN0VFIC8qIEphdmFNZXRob2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU5M0QzRUFFMTMyNTMyOEMwMDU3RTdFRSAvKiBKYXZhTWV0aG9kLmgg
Ki87IH07CiAJCTU5M0QzRUIxMTMyNTMyOTUwMDU3RTdFRSAvKiBKYXZhU3RyaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTNEM0VCMDEzMjUzMjk1
MDA1N0U3RUUgLyogSmF2YVN0cmluZy5oICovOyB9OwotCQk1OTYyMjk3ODExMzNFRkQ3MDBEQzRD
QkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5NjIyOTc3MTEzM0VGRDcwMERDNENCQiAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwICovOyB9OwotCQk1OTYyMjk3QTExMzNFRkUyMDBEQzRD
QkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTYyMjk3OTExMzNFRkUyMDBEQzRDQkIgLyogR2VvbG9j
YXRpb25Qb3NpdGlvbkNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTk2OTUwODIxMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTY5NTA4
MTEzMjEwNTk5MDBDM0VEMTggLyogSm9iamVjdFdyYXBwZXIuaCAqLzsgfTsKIAkJNTk2OTUwODQx
MzIxMDVBNTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5Njk1MDgzMTMyMTA1QTUwMEMzRUQxOCAvKiBK
b2JqZWN0V3JhcHBlci5jcHAgKi87IH07CiAJCTU5ODM2NUREMTM1NUY1NTcwMDFCMTg1RCAvKiBK
U1Bvc2l0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU5ODM2NURDMTM1NUY1M0MwMDFCMTg1RCAvKiBKU1Bvc2l0aW9uQ2FsbGJhY2su
aCAqLzsgfTsKQEAgLTgwODksOCArODA4Nyw2IEBACiAJCTU5M0QzRUIwMTMyNTMyOTUwMDU3RTdF
RSAvKiBKYXZhU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFT
dHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk1OEYxQ0IxMzQzOTE3QzAw
ODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IFhNTFZp
ZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NThGMUNDMTM0MzkxN0Mw
MDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU5NjIy
OTc3MTEzM0VGRDcwMERDNENCQiAvKiBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTk2MjI5NzkxMTMzRUZFMjAwREM0
Q0JCIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTk2OTUwODExMzIxMDU5OTAwQzNFRDE4IC8qIEpvYmplY3RXcmFwcGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpvYmplY3RXcmFwcGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5Njk1MDgzMTMyMTA1QTUwMEMzRUQxOCAvKiBKb2Jq
ZWN0V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKb2Jq
ZWN0V3JhcHBlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5ODM2NURDMTM1
NUY1M0MwMDFCMTg1RCAvKiBKU1Bvc2l0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNQb3NpdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNDU0NCw4ICsxNDU0MCw2IEBACiAJCQkJQkM1NkNCMUQxMEQ1QUM4MDAwQTc3
QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oICovLAogCQkJCUJDNTZDQjFGMTBENUFDODAw
MEE3N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmggKi8sCiAJCQkJQkM1NkNCMjAxMEQ1QUM4MDAw
QTc3QzY0IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLywKLQkJCQk1OTYyMjk3NzExMzNFRkQ3
MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCAqLywKLQkJCQk1OTYyMjk3
OTExMzNFRkUyMDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggKi8sCiAJCQkJ
RkU4MEQ3QkIwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmggKi8sCiAJCQkJRkU4MEQ3
QkMwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmlkbCAqLywKIAkJCQlDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi8sCkBAIC0yMTQxMSw3ICsyMTQw
NSw2IEBACiAJCQkJQkM1NkNCMjIxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdl
b2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTZDQjI1MTBENUFDODAwMEE3
N0M2NCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk1OTYyMjk3
QTExMzNFRkUyMDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA4NkJCRDBGMTM2MDM5QzIwMDhCMTVEOCAvKiBHbHlwaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJDM0RBNkMwRDAwNkNENjAwRUY2RjI2IC8qIEdseXBoQnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI0MzM0LDcgKzI0MzI3LDYgQEAKIAkJCQlGRTgwRDdDNTBFOUMx
RjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDUyQkZD
RTkxMjhBQkYxNTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzU2Q0IyMTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTU5NjIyOTc4MTEzM0VGRDcwMERDNENCQiAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBNkQw
RDAwNkNENjAwRUY2RjI2IC8qIEdseXBoUGFnZVRyZWVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIyQUZGQzgzMEQwMEE1QzEwMDMwMDc0RCAvKiBHbHlwaFBhZ2VUcmVlTm9kZU1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzUzQzYwODBEQTU2QzU3MDAyMUVCNUQgLyogR3JhZGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCmluZGV4IGNj
M2RmYTguLjJjODEzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLgogICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291
cmNlIFByb2plY3QKICAqCkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFr
ZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCkKICAgICBHZW9Ob3RpZmllclNldDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9yZXF1ZXN0c0F3YWl0aW5nQ2FjaGVkUG9zaXRpb24uZW5kKCk7CiAgICAg
Zm9yIChHZW9Ob3RpZmllclNldDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fcmVxdWVzdHNBd2Fp
dGluZ0NhY2hlZFBvc2l0aW9uLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKICAgICAg
ICAgR2VvTm90aWZpZXIqIG5vdGlmaWVyID0gaXRlci0+Z2V0KCk7Ci0gICAgICAgIG5vdGlmaWVy
LT5ydW5TdWNjZXNzQ2FsbGJhY2sobV9wb3NpdGlvbkNhY2hlLmNhY2hlZFBvc2l0aW9uKCkpOwor
ICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxiYWNrKG1fY2FjaGVkUG9zaXRpb24uZ2V0
KCkpOwogCiAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBvbmUtc2hvdCByZXF1ZXN0LCBzdG9wIGl0
LiBPdGhlcndpc2UsIGlmIHRoZSB3YXRjaCBzdGlsbAogICAgICAgICAvLyBleGlzdHMsIHN0YXJ0
IHRoZSBzZXJ2aWNlIHRvIGdldCB1cGRhdGVzLgpAQCAtNDAzLDE0ICs0MDMsMTQgQEAgdm9pZCBH
ZW9sb2NhdGlvbjo6cmVxdWVzdFRpbWVkT3V0KEdlb05vdGlmaWVyKiBub3RpZmllcikKIAogYm9v
bCBHZW9sb2NhdGlvbjo6aGF2ZVN1aXRhYmxlQ2FjaGVkUG9zaXRpb24oUG9zaXRpb25PcHRpb25z
KiBvcHRpb25zKQogewotICAgIGlmICghbV9wb3NpdGlvbkNhY2hlLmNhY2hlZFBvc2l0aW9uKCkp
CisgICAgaWYgKCFtX2NhY2hlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFvcHRpb25zLT5oYXNNYXhpbXVtQWdlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IGlmICghb3B0aW9ucy0+bWF4aW11bUFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
RE9NVGltZVN0YW1wIGN1cnJlbnRUaW1lTWlsbGlzID0gY29udmVydFNlY29uZHNUb0RPTVRpbWVT
dGFtcChjdXJyZW50VGltZSgpKTsKLSAgICByZXR1cm4gbV9wb3NpdGlvbkNhY2hlLmNhY2hlZFBv
c2l0aW9uKCktPnRpbWVzdGFtcCgpID4gY3VycmVudFRpbWVNaWxsaXMgLSBvcHRpb25zLT5tYXhp
bXVtQWdlKCk7CisgICAgcmV0dXJuIG1fY2FjaGVkUG9zaXRpb24tPnRpbWVzdGFtcCgpID4gY3Vy
cmVudFRpbWVNaWxsaXMgLSBvcHRpb25zLT5tYXhpbXVtQWdlKCk7CiB9CiAKIHZvaWQgR2VvbG9j
YXRpb246OmNsZWFyV2F0Y2goaW50IHdhdGNoSWQpCkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBH
ZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oKQogCiB2b2lkIEdlb2xvY2F0aW9uOjpwb3Np
dGlvbkNoYW5nZWRJbnRlcm5hbCgpCiB7Ci0gICAgbV9wb3NpdGlvbkNhY2hlLnNldENhY2hlZFBv
c2l0aW9uKGxhc3RQb3NpdGlvbigpKTsKKyAgICBtX2NhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0
aW9uKCk7CiAKICAgICAvLyBTdG9wIGFsbCBjdXJyZW50bHkgcnVubmluZyB0aW1lcnMuCiAgICAg
c3RvcFRpbWVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCmluZGV4IDBiZGIxYTUuLmY5
NmM1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBT
b3VyY2UgUHJvamVjdAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjcsNyArMjcsNyBAQAogI2lmbmRl
ZiBHZW9sb2NhdGlvbl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uX2gKIAotI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25DYWNoZS5oIgorI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCiAjaW5jbHVk
ZSAiUG9zaXRpb25DYWxsYmFjay5oIgogI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNs
dWRlICJQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCIKQEAgLTQ1LDcgKzQ1LDYgQEAgY2xhc3MgRnJh
bWU7CiBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogY2xhc3MgR2VvbG9jYXRpb25FcnJvcjsK
ICNlbmRpZgotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBHZW9sb2Nh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uPgpAQCAtMTMxLDIzICsxMzAsNiBA
QCBwcml2YXRlOgogICAgICAgICBOb3RpZmllclRvSWRNYXAgbV9ub3RpZmllclRvSWRNYXA7CiAg
ICAgfTsKIAotICAgIGNsYXNzIFBvc2l0aW9uQ2FjaGVXcmFwcGVyIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIFBvc2l0aW9uQ2FjaGVXcmFwcGVyKCkKLSAgICAgICAgICAgIDogbV9jYWNoZShHZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGU6Omluc3RhbmNlKCkpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IG1fY2FjaGUtPmFkZFVzZXIoKTsKLSAgICAgICAgfQotICAgICAgICB+UG9zaXRpb25DYWNoZVdy
YXBwZXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2NhY2hlLT5yZW1vdmVVc2VyKCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBzZXRDYWNoZWRQb3NpdGlvbihHZW9wb3NpdGlvbiogY2Fj
aGVkUG9zaXRpb24pIHsgbV9jYWNoZS0+c2V0Q2FjaGVkUG9zaXRpb24oY2FjaGVkUG9zaXRpb24p
OyB9Ci0gICAgICAgIEdlb3Bvc2l0aW9uKiBjYWNoZWRQb3NpdGlvbigpIHsgcmV0dXJuIG1fY2Fj
aGUtPmNhY2hlZFBvc2l0aW9uKCk7IH0KLSAgICBwcml2YXRlOgotICAgICAgICBHZW9sb2NhdGlv
blBvc2l0aW9uQ2FjaGUqIG1fY2FjaGU7Ci0gICAgfTsKLQogICAgIGJvb2wgaGFzTGlzdGVuZXJz
KCkgY29uc3QgeyByZXR1cm4gIW1fb25lU2hvdHMuaXNFbXB0eSgpIHx8ICFtX3dhdGNoZXJzLmlz
RW1wdHkoKTsgfQogCiAgICAgdm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0b3ImLCBQb3Np
dGlvbkVycm9yKik7CkBAIC0yMTAsNyArMTkyLDcgQEAgcHJpdmF0ZToKICAgICB9IG1fYWxsb3dH
ZW9sb2NhdGlvbjsKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSAgICBQb3NpdGlvbkNhY2hl
V3JhcHBlciBtX3Bvc2l0aW9uQ2FjaGU7CisgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBtX2NhY2hl
ZFBvc2l0aW9uOwogI2VuZGlmCiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5n
Q2FjaGVkUG9zaXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvblBvc2l0aW9uQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlv
blBvc2l0aW9uQ2FjaGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDJmMmVj
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNh
Y2hlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmgiCi0KLSNpZiBF
TkFCTEUoR0VPTE9DQVRJT04pCi0KLSNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKLSNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgotI2luY2x1ZGUgIlNRTFZhbHVlLmgiCi0jaW5jbHVkZSAiU1FM
aXRlRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJTUUxpdGVGaWxlU3lzdGVtLmgiCi0jaW5jbHVkZSAi
U1FMaXRlU3RhdGVtZW50LmgiCi0jaW5jbHVkZSAiU1FMaXRlVHJhbnNhY3Rpb24uaCIKLSNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotdXNp
bmcgbmFtZXNwYWNlIFdURjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgaW50IG51
bVVzZXJzID0gMDsKLQotR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlKiBHZW9sb2NhdGlvblBvc2l0
aW9uQ2FjaGU6Omluc3RhbmNlKCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEdlb2xvY2F0
aW9uUG9zaXRpb25DYWNoZSosIGluc3RhbmNlLCAoMCkpOwotICAgIGlmICghaW5zdGFuY2UpCi0g
ICAgICAgIGluc3RhbmNlID0gbmV3IEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZSgpOwotICAgIHJl
dHVybiBpbnN0YW5jZTsKLX0KLQotR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlOjpHZW9sb2NhdGlv
blBvc2l0aW9uQ2FjaGUoKQotICAgIDogbV90aHJlYWRJZCgwKQotewotfQotCi12b2lkIEdlb2xv
Y2F0aW9uUG9zaXRpb25DYWNoZTo6YWRkVXNlcigpCi17Ci0gICAgQVNTRVJUKG51bVVzZXJzID49
IDApOwotICAgIE11dGV4TG9ja2VyIGRhdGFiYXNlTG9jayhtX2RhdGFiYXNlRmlsZU11dGV4KTsK
LSAgICBpZiAoIW51bVVzZXJzICYmICFtX3RocmVhZElkICYmICFtX2RhdGFiYXNlRmlsZS5pc051
bGwoKSkgewotICAgICAgICBzdGFydEJhY2tncm91bmRUaHJlYWQoKTsKLSAgICAgICAgTXV0ZXhM
b2NrZXIgbG9jayhtX2NhY2hlZFBvc2l0aW9uTXV0ZXgpOwotICAgICAgICBpZiAoIW1fY2FjaGVk
UG9zaXRpb24pCi0gICAgICAgICAgICB0cmlnZ2VyUmVhZEZyb21EYXRhYmFzZSgpOwotICAgIH0K
LSAgICArK251bVVzZXJzOwotfQotCi12b2lkIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZTo6cmVt
b3ZlVXNlcigpCi17Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NhY2hlZFBvc2l0aW9uTXV0ZXgp
OwotICAgIC0tbnVtVXNlcnM7Ci0gICAgQVNTRVJUKG51bVVzZXJzID49IDApOwotICAgIGlmICgh
bnVtVXNlcnMgJiYgbV9jYWNoZWRQb3NpdGlvbiAmJiBtX3RocmVhZElkKQotICAgICAgICB0cmln
Z2VyV3JpdGVUb0RhdGFiYXNlKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hl
OjpzZXREYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBkYXRhYmFzZU5hbWUgPSAiQ2FjaGVkR2VvcG9zaXRpb24uZGIiOwotICAgIFN0cmlu
ZyBuZXdGaWxlID0gU1FMaXRlRmlsZVN5c3RlbTo6YXBwZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0
aChwYXRoLCBkYXRhYmFzZU5hbWUpOwotICAgIE11dGV4TG9ja2VyIGxvY2sobV9kYXRhYmFzZUZp
bGVNdXRleCk7Ci0gICAgaWYgKG1fZGF0YWJhc2VGaWxlICE9IG5ld0ZpbGUpIHsKLSAgICAgICAg
bV9kYXRhYmFzZUZpbGUgPSBuZXdGaWxlOwotICAgICAgICBpZiAobnVtVXNlcnMgJiYgIW1fdGhy
ZWFkSWQpIHsKLSAgICAgICAgICAgIHN0YXJ0QmFja2dyb3VuZFRocmVhZCgpOwotICAgICAgICAg
ICAgaWYgKCFtX2NhY2hlZFBvc2l0aW9uKQotICAgICAgICAgICAgICAgIHRyaWdnZXJSZWFkRnJv
bURhdGFiYXNlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25Qb3Np
dGlvbkNhY2hlOjpzZXRDYWNoZWRQb3NpdGlvbihHZW9wb3NpdGlvbiogY2FjaGVkUG9zaXRpb24p
Ci17Ci0gICAgTXV0ZXhMb2NrZXIgbG9jayhtX2NhY2hlZFBvc2l0aW9uTXV0ZXgpOwotICAgIG1f
Y2FjaGVkUG9zaXRpb24gPSBjYWNoZWRQb3NpdGlvbjsKLX0KLQotR2VvcG9zaXRpb24qIEdlb2xv
Y2F0aW9uUG9zaXRpb25DYWNoZTo6Y2FjaGVkUG9zaXRpb24oKQotewotICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9jYWNoZWRQb3NpdGlvbk11dGV4KTsKLSAgICByZXR1cm4gbV9jYWNoZWRQb3NpdGlv
bi5nZXQoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGU6OnN0YXJ0QmFja2dy
b3VuZFRocmVhZCgpCi17Ci0gICAgLy8gRklYTUU6IENvbnNpZGVyIHNoYXJpbmcgdGhpcyB0aHJl
YWQgd2l0aCBvdGhlciBiYWNrZ3JvdW5kIHRhc2tzLgotICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVU
aHJlYWQodGhyZWFkRW50cnlQb2ludCwgdGhpcywgIldlYkNvcmU6IEdlb2xvY2F0aW9uIGNhY2hl
Iik7Ci19Ci0KLXZvaWQqIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZTo6dGhyZWFkRW50cnlQb2lu
dCh2b2lkKiBvYmplY3QpCi17Ci0gICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25Qb3NpdGlvbkNh
Y2hlKj4ob2JqZWN0KS0+dGhyZWFkRW50cnlQb2ludEltcGwoKTsKLSAgICByZXR1cm4gMDsKLX0K
LQotdm9pZCBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGU6OnRocmVhZEVudHJ5UG9pbnRJbXBsKCkK
LXsKLSAgICB3aGlsZSAoT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2sg
PSBtX3F1ZXVlLndhaXRGb3JNZXNzYWdlKCkpIHsKLSAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCBh
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaW4gdGhlIGNhbGxiYWNrLCBzbyBwYXNzIDAgaGVyZS4K
LSAgICAgICAgdGFzay0+cGVyZm9ybVRhc2soMCk7Ci0gICAgfQotfQotCi12b2lkIEdlb2xvY2F0
aW9uUG9zaXRpb25DYWNoZTo6dHJpZ2dlclJlYWRGcm9tRGF0YWJhc2UoKQotewotICAgIG1fcXVl
dWUuYXBwZW5kKGNyZWF0ZUNhbGxiYWNrVGFzaygmR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlOjpy
ZWFkRnJvbURhdGFiYXNlLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKHRoaXMpKSk7Ci19Ci0KLXZv
aWQgR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlOjpyZWFkRnJvbURhdGFiYXNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUqIGNhY2hlKQotewotICAgIGNh
Y2hlLT5yZWFkRnJvbURhdGFiYXNlSW1wbCgpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uUG9zaXRp
b25DYWNoZTo6cmVhZEZyb21EYXRhYmFzZUltcGwoKQotewotICAgIFNRTGl0ZURhdGFiYXNlIGRh
dGFiYXNlOwotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX2RhdGFiYXNlRmlsZU11
dGV4KTsKLSAgICAgICAgaWYgKCFkYXRhYmFzZS5vcGVuKG1fZGF0YWJhc2VGaWxlKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBDcmVhdGUgdGhlIHRhYmxlIGhlcmUsIHN1
Y2ggdGhhdCBldmVuIGlmIHdlJ3ZlIGp1c3QgY3JlYXRlZCB0aGUKLSAgICAvLyBEQiwgdGhlIGNv
bW1hbmRzIGJlbG93IHNob3VsZCBzdWNjZWVkLgotICAgIGlmICghZGF0YWJhc2UuZXhlY3V0ZUNv
bW1hbmQoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIENhY2hlZFBvc2l0aW9uICgiCi0gICAg
ICAgICAgICAibGF0aXR1ZGUgUkVBTCBOT1QgTlVMTCwgIgotICAgICAgICAgICAgImxvbmdpdHVk
ZSBSRUFMIE5PVCBOVUxMLCAiCi0gICAgICAgICAgICAiYWx0aXR1ZGUgUkVBTCwgIgotICAgICAg
ICAgICAgImFjY3VyYWN5IFJFQUwgTk9UIE5VTEwsICIKLSAgICAgICAgICAgICJhbHRpdHVkZUFj
Y3VyYWN5IFJFQUwsICIKLSAgICAgICAgICAgICJoZWFkaW5nIFJFQUwsICIKLSAgICAgICAgICAg
ICJzcGVlZCBSRUFMLCAiCi0gICAgICAgICAgICAidGltZXN0YW1wIElOVEVHRVIgTk9UIE5VTEwp
IikpCi0gICAgICAgIHJldHVybjsKLQotICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoZGF0
YWJhc2UsICJTRUxFQ1QgKiBGUk9NIENhY2hlZFBvc2l0aW9uIik7Ci0gICAgaWYgKHN0YXRlbWVu
dC5wcmVwYXJlKCkgIT0gU1FMUmVzdWx0T2spCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChz
dGF0ZW1lbnQuc3RlcCgpICE9IFNRTFJlc3VsdFJvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Ym9vbCBwcm92aWRlc0FsdGl0dWRlID0gc3RhdGVtZW50LmdldENvbHVtblZhbHVlKDIpLnR5cGUo
KSAhPSBTUUxWYWx1ZTo6TnVsbFZhbHVlOwotICAgIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFjY3Vy
YWN5ID0gc3RhdGVtZW50LmdldENvbHVtblZhbHVlKDQpLnR5cGUoKSAhPSBTUUxWYWx1ZTo6TnVs
bFZhbHVlOwotICAgIGJvb2wgcHJvdmlkZXNIZWFkaW5nID0gc3RhdGVtZW50LmdldENvbHVtblZh
bHVlKDUpLnR5cGUoKSAhPSBTUUxWYWx1ZTo6TnVsbFZhbHVlOwotICAgIGJvb2wgcHJvdmlkZXNT
cGVlZCA9IHN0YXRlbWVudC5nZXRDb2x1bW5WYWx1ZSg2KS50eXBlKCkgIT0gU1FMVmFsdWU6Ok51
bGxWYWx1ZTsKLSAgICBSZWZQdHI8Q29vcmRpbmF0ZXM+IGNvb3JkaW5hdGVzID0gQ29vcmRpbmF0
ZXM6OmNyZWF0ZShzdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDApLCAvLyBsYXRpdHVkZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoMSksIC8vIGxvbmdpdHVkZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVzQWx0aXR1
ZGUsIHN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoMiksIC8vIGFsdGl0dWRlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVtZW50
LmdldENvbHVtbkRvdWJsZSgzKSwgLy8gYWNjdXJhY3kKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3ksIHN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoNCksIC8vIGFsdGl0dWRlQWNjdXJhY3kKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm92aWRlc0hlYWRpbmcsIHN0YXRlbWVudC5nZXRDb2x1bW5Eb3VibGUoNSksIC8vIGhlYWRpbmcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm92aWRlc1NwZWVkLCBzdGF0ZW1lbnQuZ2V0Q29sdW1uRG91YmxlKDYpKTsgLy8gc3BlZWQK
LSAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0gc3RhdGVtZW50LmdldENvbHVtbkludDY0KDcp
OyAvLyB0aW1lc3RhbXAKLQotICAgIC8vIEEgcG9zaXRpb24gbWF5IGhhdmUgYmVlbiBzZXQgc2lu
Y2Ugd2UgY2FsbGVkIHRyaWdnZXJSZWFkRnJvbURhdGFiYXNlKCkuCi0gICAgTXV0ZXhMb2NrZXIg
bG9jayhtX2NhY2hlZFBvc2l0aW9uTXV0ZXgpOwotICAgIGlmIChtX2NhY2hlZFBvc2l0aW9uKQot
ICAgICAgICByZXR1cm47Ci0gICAgbV9jYWNoZWRQb3NpdGlvbiA9IEdlb3Bvc2l0aW9uOjpjcmVh
dGUoY29vcmRpbmF0ZXMucmVsZWFzZSgpLCB0aW1lc3RhbXApOwotfQotCi12b2lkIEdlb2xvY2F0
aW9uUG9zaXRpb25DYWNoZTo6dHJpZ2dlcldyaXRlVG9EYXRhYmFzZSgpCi17Ci0gICAgbV9xdWV1
ZS5hcHBlbmQoY3JlYXRlQ2FsbGJhY2tUYXNrKHdyaXRlVG9EYXRhYmFzZSwgQWxsb3dDcm9zc1Ro
cmVhZEFjY2Vzcyh0aGlzKSkpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZTo6
d3JpdGVUb0RhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBHZW9sb2NhdGlvblBvc2l0
aW9uQ2FjaGUqIGNhY2hlKQotewotICAgIGNhY2hlLT53cml0ZVRvRGF0YWJhc2VJbXBsKCk7Ci19
Ci0KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlOjp3cml0ZVRvRGF0YWJhc2VJbXBsKCkK
LXsKLSAgICBTUUxpdGVEYXRhYmFzZSBkYXRhYmFzZTsKLSAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2sobV9kYXRhYmFzZUZpbGVNdXRleCk7Ci0gICAgICAgIGlmICghZGF0YWJhc2Uub3Bl
bihtX2RhdGFiYXNlRmlsZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVm
UHRyPEdlb3Bvc2l0aW9uPiBjYWNoZWRQb3NpdGlvbjsKLSAgICB7Ci0gICAgICAgIE11dGV4TG9j
a2VyIGxvY2sobV9jYWNoZWRQb3NpdGlvbk11dGV4KTsKLSAgICAgICAgaWYgKG1fY2FjaGVkUG9z
aXRpb24pCi0gICAgICAgICAgICBjYWNoZWRQb3NpdGlvbiA9IG1fY2FjaGVkUG9zaXRpb24tPnRo
cmVhZFNhZmVDb3B5KCk7Ci0gICAgfQotCi0gICAgU1FMaXRlVHJhbnNhY3Rpb24gdHJhbnNhY3Rp
b24oZGF0YWJhc2UpOwotCi0gICAgaWYgKCFkYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiREVMRVRF
IEZST00gQ2FjaGVkUG9zaXRpb24iKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU1FMaXRlU3Rh
dGVtZW50IHN0YXRlbWVudChkYXRhYmFzZSwgIklOU0VSVCBJTlRPIENhY2hlZFBvc2l0aW9uICgi
Ci0gICAgICAgICJsYXRpdHVkZSwgIgotICAgICAgICAibG9uZ2l0dWRlLCAiCi0gICAgICAgICJh
bHRpdHVkZSwgIgotICAgICAgICAiYWNjdXJhY3ksICIKLSAgICAgICAgImFsdGl0dWRlQWNjdXJh
Y3ksICIKLSAgICAgICAgImhlYWRpbmcsICIKLSAgICAgICAgInNwZWVkLCAiCi0gICAgICAgICJ0
aW1lc3RhbXApICIKLSAgICAgICAgIlZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPykiKTsK
LSAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgc3RhdGVtZW50LmJpbmREb3VibGUoMSwgY2FjaGVkUG9zaXRpb24tPmNvb3Jk
cygpLT5sYXRpdHVkZSgpKTsKLSAgICBzdGF0ZW1lbnQuYmluZERvdWJsZSgyLCBjYWNoZWRQb3Np
dGlvbi0+Y29vcmRzKCktPmxvbmdpdHVkZSgpKTsKLSAgICBpZiAoY2FjaGVkUG9zaXRpb24tPmNv
b3JkcygpLT5jYW5Qcm92aWRlQWx0aXR1ZGUoKSkKLSAgICAgICAgc3RhdGVtZW50LmJpbmREb3Vi
bGUoMywgY2FjaGVkUG9zaXRpb24tPmNvb3JkcygpLT5hbHRpdHVkZSgpKTsKLSAgICBlbHNlCi0g
ICAgICAgIHN0YXRlbWVudC5iaW5kTnVsbCgzKTsKLSAgICBzdGF0ZW1lbnQuYmluZERvdWJsZSg0
LCBjYWNoZWRQb3NpdGlvbi0+Y29vcmRzKCktPmFjY3VyYWN5KCkpOwotICAgIGlmIChjYWNoZWRQ
b3NpdGlvbi0+Y29vcmRzKCktPmNhblByb3ZpZGVBbHRpdHVkZUFjY3VyYWN5KCkpCi0gICAgICAg
IHN0YXRlbWVudC5iaW5kRG91YmxlKDUsIGNhY2hlZFBvc2l0aW9uLT5jb29yZHMoKS0+YWx0aXR1
ZGVBY2N1cmFjeSgpKTsKLSAgICBlbHNlCi0gICAgICAgIHN0YXRlbWVudC5iaW5kTnVsbCg1KTsK
LSAgICBpZiAoY2FjaGVkUG9zaXRpb24tPmNvb3JkcygpLT5jYW5Qcm92aWRlSGVhZGluZygpKQot
ICAgICAgICBzdGF0ZW1lbnQuYmluZERvdWJsZSg2LCBjYWNoZWRQb3NpdGlvbi0+Y29vcmRzKCkt
PmhlYWRpbmcoKSk7Ci0gICAgZWxzZQotICAgICAgICBzdGF0ZW1lbnQuYmluZE51bGwoNik7Ci0g
ICAgaWYgKGNhY2hlZFBvc2l0aW9uLT5jb29yZHMoKS0+Y2FuUHJvdmlkZVNwZWVkKCkpCi0gICAg
ICAgIHN0YXRlbWVudC5iaW5kRG91YmxlKDcsIGNhY2hlZFBvc2l0aW9uLT5jb29yZHMoKS0+c3Bl
ZWQoKSk7Ci0gICAgZWxzZQotICAgICAgICBzdGF0ZW1lbnQuYmluZE51bGwoNyk7Ci0gICAgc3Rh
dGVtZW50LmJpbmRJbnQ2NCg4LCBjYWNoZWRQb3NpdGlvbi0+dGltZXN0YW1wKCkpOwotCi0gICAg
aWYgKCFzdGF0ZW1lbnQuZXhlY3V0ZUNvbW1hbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
dHJhbnNhY3Rpb24uY29tbWl0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uUG9zaXRpb25DYWNoZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OTAz
YWU0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Qb3NpdGlv
bkNhY2hlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdl
b2xvY2F0aW9uUG9zaXRpb25DYWNoZV9oCi0jZGVmaW5lIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNo
ZV9oCi0KLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotCi0jaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotLy8gTWFpbnRhaW5zIGEgY2FjaGVkIHBvc2l0aW9uIGZvciBHZW9sb2NhdGlvbi4g
VGFrZXMgY2FyZSBvZiB3cml0aW5nIGFuZAotLy8gcmVhZGluZyB0aGUgcG9zaXRpb24gdG8gYSBk
YXRhYmFzZSBvbiBhIGJhY2tncm91bmQgdGhyZWFkLiBUaGUgR2VvbG9jYXRpb24KLS8vIHNwZWMg
ZG9lcyBub3QgcmVxdWlyZSBhIGNhY2hlZCBwb3NpdGlvbiB0byBiZSBtYWludGFpbmVkLCBzbyB3
ZSB0YWtlIGEKLS8vIGJlc3QtZWZmb3J0IGFwcHJvYWNoIHdoZXJlIHdlIGRvIG5vdCB3YWl0IGZv
ciBkYXRhYmFzZSByZWFkcyBvciB3cml0ZXMuCi1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uQ2Fj
aGUgewotcHVibGljOgotICAgIHN0YXRpYyBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUqIGluc3Rh
bmNlKCk7Ci0KLSAgICB2b2lkIGFkZFVzZXIoKTsKLSAgICB2b2lkIHJlbW92ZVVzZXIoKTsKLQot
ICAgIHZvaWQgc2V0RGF0YWJhc2VQYXRoKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0Q2Fj
aGVkUG9zaXRpb24oR2VvcG9zaXRpb24qKTsKLSAgICBHZW9wb3NpdGlvbiogY2FjaGVkUG9zaXRp
b24oKTsKLQotcHJpdmF0ZToKLSAgICBHZW9sb2NhdGlvblBvc2l0aW9uQ2FjaGUoKTsKLQotICAg
IHZvaWQgc3RhcnRCYWNrZ3JvdW5kVGhyZWFkKCk7Ci0gICAgc3RhdGljIHZvaWQqIHRocmVhZEVu
dHJ5UG9pbnQodm9pZCogb2JqZWN0KTsKLSAgICB2b2lkIHRocmVhZEVudHJ5UG9pbnRJbXBsKCk7
Ci0KLSAgICB2b2lkIHRyaWdnZXJSZWFkRnJvbURhdGFiYXNlKCk7Ci0gICAgc3RhdGljIHZvaWQg
cmVhZEZyb21EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgR2VvbG9jYXRpb25Qb3Np
dGlvbkNhY2hlKik7Ci0gICAgdm9pZCByZWFkRnJvbURhdGFiYXNlSW1wbCgpOwotICAgIHZvaWQg
dHJpZ2dlcldyaXRlVG9EYXRhYmFzZSgpOwotICAgIHN0YXRpYyB2b2lkIHdyaXRlVG9EYXRhYmFz
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlKik7Ci0g
ICAgdm9pZCB3cml0ZVRvRGF0YWJhc2VJbXBsKCk7Ci0KLSAgICBSZWZQdHI8R2VvcG9zaXRpb24+
IG1fY2FjaGVkUG9zaXRpb247Ci0gICAgTXV0ZXggbV9jYWNoZWRQb3NpdGlvbk11dGV4OwotICAg
IFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJZDsKLSAgICBNZXNzYWdlUXVldWU8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzaz4gbV9xdWV1ZTsKLSAgICBTdHJpbmcgbV9kYXRhYmFzZUZpbGU7
Ci0gICAgTXV0ZXggbV9kYXRhYmFzZUZpbGVNdXRleDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEdlb2xvY2F0aW9uUG9zaXRpb25DYWNoZV9oCi0tIAoxLjcuMi4x
LjE1OC5nYmQzYTk3Cgo=
</data>
<flag name="review"
          id="97404"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>