<?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>59199</bug_id>
          
          <creation_ts>2011-04-22 07:26:29 -0700</creation_ts>
          <short_desc>[Qt][WK2] Implement geolocation provider for qt port</short_desc>
          <delta_ts>2023-02-27 10:46:28 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>69737</dependson>
          <blocked>55872</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mahesh Kulkarni">maheshk</reporter>
          <assigned_to name="Mahesh Kulkarni">maheshk</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>marqwar1984</cc>
    
    <cc>menard</cc>
    
    <cc>savagobr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390769</commentid>
    <comment_count>0</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-04-22 07:26:29 -0700</bug_when>
    <thetext>Implement WKGeolocationProvider support geolocation for Qt port of Webkit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397881</commentid>
    <comment_count>1</comment_count>
      <attachid>92231</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-05-04 06:41:12 -0700</bug_when>
    <thetext>Created attachment 92231
patch

Original Author: kenneth.r.christiansen@nokia.com

Changes briefly,
-          Implements default location provider from QtWebkit side for WK2 (WebGeolocationProviderQt)
-          Allows QtWebkit clients to implement/override their own provider using WK2 API’s
-          Delaying instantiating qtMobility until request from JS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411368</commentid>
    <comment_count>2</comment_count>
      <attachid>92231</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-05-27 05:49:27 -0700</bug_when>
    <thetext>Comment on attachment 92231
patch

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Allowing QtWebkit clients to implement/override their own provider using WK2 APIâs.

Typo.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:32
&gt; +    return reinterpret_cast&lt;WebGeolocationProviderQt*&gt;(const_cast&lt;void*&gt;(clientInfo));

Ouch. It&apos;s not very nice. How other ports are doing?

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:92
&gt; +        m_source = QtMobility::QGeoPositionInfoSource::createDefaultSource(this);

Why you use the namespace of QtMobility?

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:57
&gt; +    QtMobility::QGeoPositionInfoSource* m_source;

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412370</commentid>
    <comment_count>3</comment_count>
      <attachid>92231</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-05-30 14:57:17 -0700</bug_when>
    <thetext>Comment on attachment 92231
patch

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

I don&apos;t know much about the subject but there already a few good comments so I r-
Some comments on my side:

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:2
&gt; + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

2011

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:30
&gt; +static WebGeolocationProviderQt* toLocationProvider(const void* clientInfo)

This is a helper that do not execute any instruction, it could probably be set explicitely inline.

&gt;&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:32
&gt;&gt; +    return reinterpret_cast&lt;WebGeolocationProviderQt*&gt;(const_cast&lt;void*&gt;(clientInfo));
&gt; 
&gt; Ouch. It&apos;s not very nice. How other ports are doing?

I have to agree that look strange. The geolocationManager is mutable, the clientInfo isn&apos;t, it is strange we only use clientInfo there.

Why not remove the constness from the definition of WKGeolocationProvider. This make sense to have it const for other port but not in this case?

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:51
&gt; +    : QObject()

Unnecessary.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:95
&gt; +            // Mobility source is available.

I think this comment is not adding much.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:2
&gt; +    Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)

2011

&gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:56
&gt; +    static WebGeolocationProviderQt* location = WebGeolocationProviderQt::create(toAPI(geolocationManagerProxy()));
&gt; +    Q_UNUSED(location);

This can be made cleaner. You should not require a comment when you do a static initialization, the code should be clear enough by itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413517</commentid>
    <comment_count>4</comment_count>
      <attachid>95628</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-06-01 11:07:16 -0700</bug_when>
    <thetext>Created attachment 95628
patch

second attempt. Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416195</commentid>
    <comment_count>5</comment_count>
      <attachid>95628</attachid>
    <who name="Yael">yael</who>
    <bug_when>2011-06-06 18:17:01 -0700</bug_when>
    <thetext>Comment on attachment 95628
patch

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

I am not a reviewer, these are just my observations.

&gt; Source/WebKit2/ChangeLog:8
&gt; +       Original Author: kenneth.r.christiansen@nokia.com

Please fix the indentation.

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Allowing QtWebKit clients to implement/override their own provider using WK2 APIâs.

Please fix the typo.

&gt; Source/WebKit2/UIProcess/API/C/WKGeolocationManager.h:38
&gt; -typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
&gt; -typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
&gt; +typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, void* clientInfo);
&gt; +typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, void* clientInfo);
&gt;  

Wouldn&apos;t removing the const be a problem for other ports?

&gt; Source/WebKit2/UIProcess/qt/WebContextQt.cpp:57
&gt; +#if ENABLE(GEOLOCATION)
&gt; +    static WebGeolocationProviderQt* location = WebGeolocationProviderQt::create(toAPI(geolocationManagerProxy()));
&gt; +    Q_UNUSED(location);
&gt; +#endif
&gt;  }

This code is very confusing. What is the purpose of assigning the return value to location? And how does it get deleted?
I use use DEFINE_STATIC_LOCAL for it, and not pass it directly as clientInfo.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:57
&gt; +    WKRetainPtr&lt;WKGeolocationPositionRef&gt; m_lastPosition;

Can you use RefPtr? Qt is the only port to use WKRetainPtr, and it should probably go away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433418</commentid>
    <comment_count>6</comment_count>
      <attachid>99976</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-07-07 06:56:11 -0700</bug_when>
    <thetext>Created attachment 99976
patch

Thanks Yael for review. Updated as per comments from Yael.


&gt; &gt; Source/WebKit2/UIProcess/API/C/WKGeolocationManager.h:38
&gt; &gt; -typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
&gt; &gt; -typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
&gt; &gt; +typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, void* clientInfo);
&gt; &gt; +typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, void* clientInfo);
&gt; &gt;  
&gt; 
&gt; Wouldn&apos;t removing the const be a problem for other ports?

No, because no other ports have geolocation provider implemented yet.

&gt; &gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:57
&gt; &gt; +    WKRetainPtr&lt;WKGeolocationPositionRef&gt; m_lastPosition;
&gt; 
&gt; Can you use RefPtr? Qt is the only port to use WKRetainPtr, and it should probably go away.

The class isn&apos;t RefCounted yet. Shall take up this separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433423</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-07 06:59:34 -0700</bug_when>
    <thetext>Attachment 99976 did not pass style-queue:

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

Source/WebKit2/UIProcess/qt/WebContextQt.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 6 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>433429</commentid>
    <comment_count>8</comment_count>
      <attachid>99979</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-07-07 07:29:18 -0700</bug_when>
    <thetext>Created attachment 99979
patch

fixed style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444759</commentid>
    <comment_count>9</comment_count>
      <attachid>99979</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-08-01 10:40:36 -0700</bug_when>
    <thetext>Comment on attachment 99979
patch

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

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:54
&gt; +        0,      /* version */

I&apos;m not sure those comments are following the WebKit code style.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:108
&gt; +    m_source-&gt;startUpdates();

This code is wrong and will crash in the case of QGeoPositionInfoSource::createDefaultSource(this); return 0. You will enter in the else and then call m_source-&gt;startUpdates(); and m_source is null. You should probably return in the else.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:113
&gt; +    m_source-&gt;stopUpdates();

Can this be called if m_source is 0?

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:34
&gt; +// Below using is needed, because the implementation signal is defined without the namespace.

I fail to understand why you need this, especially in a header file.

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:51
&gt; +    void positionUpdated(const QGeoPositionInfo&amp;);

couldn&apos;t it be QtMobility::QGeoPositionInfo?

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:59
&gt; +    QGeoPositionInfoSource* m_source;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480800</commentid>
    <comment_count>10</comment_count>
      <attachid>110320</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-09 20:31:08 -0700</bug_when>
    <thetext>Created attachment 110320
Fixed crash condition, mobility classes forward declarations, comments, inline function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480865</commentid>
    <comment_count>11</comment_count>
      <attachid>110320</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-10 01:03:35 -0700</bug_when>
    <thetext>Comment on attachment 110320
Fixed crash condition, mobility classes forward declarations, comments, inline function

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

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:55
&gt; +    QtMobility::QGeoPositionInfoSource* m_source;

Shouldn&apos;t this be an OwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480918</commentid>
    <comment_count>12</comment_count>
      <attachid>110320</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-10 04:31:20 -0700</bug_when>
    <thetext>Comment on attachment 110320
Fixed crash condition, mobility classes forward declarations, comments, inline function

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

This patch seems correct except for the fac that we use QtMobility as a dependency. For WK2 we are based on Qt5 and most of the mobility stuff is back in Qt. 

For example : http://doc.qt.nokia.com/qt5-snapshot/qgeolocation.html

So I guess we should start with those now.

&gt;&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:55
&gt;&gt; +    QtMobility::QGeoPositionInfoSource* m_source;
&gt; 
&gt; Shouldn&apos;t this be an OwnPtr?

yep</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480935</commentid>
    <comment_count>13</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-10 06:40:07 -0700</bug_when>
    <thetext>Kenneth &amp; Alexis
Thanks for the review, I will make the changes related to the OwnPtr.

Alexis
Concerning the dependency on Mobility, initially I thought about using the class in Qt5. But this will require a change on Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp (since it is using Mobility too).

So, what if we first address the issue of current bug and then open a new issue for refactoring both files to use qt5 class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480938</commentid>
    <comment_count>14</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-10 06:44:00 -0700</bug_when>
    <thetext>Maybe this bug could be used for the refactoring task:
https://bugs.webkit.org/show_bug.cgi?id=69737</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480939</commentid>
    <comment_count>15</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2011-10-10 06:49:05 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Kenneth &amp; Alexis
&gt; Thanks for the review, I will make the changes related to the OwnPtr.
&gt; 
&gt; Alexis
&gt; Concerning the dependency on Mobility, initially I thought about using the class in Qt5. But this will require a change on Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp (since it is using Mobility too).
&gt; 

Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp is using Qt 4.X so it should use Mobility.

&gt; So, what if we first address the issue of current bug and then open a new issue for refactoring both files to use qt5 class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480945</commentid>
    <comment_count>16</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-10-10 07:16:07 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Kenneth &amp; Alexis
&gt; Thanks for the review, I will make the changes related to the OwnPtr.
&gt; 
&gt; Alexis
&gt; Concerning the dependency on Mobility, initially I thought about using the class in Qt5. But this will require a change on Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp (since it is using Mobility too).
&gt; 
&gt; So, what if we first address the issue of current bug and then open a new issue for refactoring both files to use qt5 class?

Thanks Adenilson for the patch. FYI http://gitorious.net/+mob-team/webkit/mob-team-qtwebkit2 is branch that I&apos;m working on where most of these fixes are made. For example using Qt&apos;s Location instead of QtMobilities for Qt version more than 5.0 and crash fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480949</commentid>
    <comment_count>17</comment_count>
      <attachid>99979</attachid>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-10-10 07:19:25 -0700</bug_when>
    <thetext>Comment on attachment 99979
patch

Making my patch obsolete. Adenilson you can refer mob-team-qtwebkit2 for using qt5 location mobule instead if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480951</commentid>
    <comment_count>18</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-10 07:25:23 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; Kenneth &amp; Alexis
&gt; &gt; Thanks for the review, I will make the changes related to the OwnPtr.
&gt; &gt; 
&gt; &gt; Alexis
&gt; &gt; Concerning the dependency on Mobility, initially I thought about using the class in Qt5. But this will require a change on Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp (since it is using Mobility too).

Thing is QtMobility is not tested against Qt5 and most probably will not work. So we need to use Qt&apos;s module when WK2 + Qt5 because that&apos;s the only supported code path.

&gt; &gt; 
&gt; 
&gt; Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp is using Qt 4.X so it should use Mobility.

It can work with both playing around with ifdef.

&gt; 
&gt; &gt; So, what if we first address the issue of current bug and then open a new issue for refactoring both files to use qt5 class?

No this is the other way around. We don&apos;t land something that may be broken or we know doesn&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480953</commentid>
    <comment_count>19</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-10 07:29:28 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; Kenneth &amp; Alexis
&gt; &gt; &gt; Thanks for the review, I will make the changes related to the OwnPtr.
&gt; &gt; &gt; 
&gt; &gt; &gt; Alexis
&gt; &gt; &gt; Concerning the dependency on Mobility, initially I thought about using the class in Qt5. But this will require a change on Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp (since it is using Mobility too).
&gt; 
&gt; Thing is QtMobility is not tested against Qt5 and most probably will not work. So we need to use Qt&apos;s module when WK2 + Qt5 because that&apos;s the only supported code path.
&gt; 
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp is using Qt 4.X so it should use Mobility.
&gt; 
&gt; It can work with both playing around with ifdef.

Or we can add a file in the WebCoreSupport of the WebProcess to only have Qt5 support. (duplicate code for sure).

Though in the first place it seems wrong we use stuff in Source/WebKit/qt/WebCoreSupport for WebKit2 isn&apos;t it?

&gt; 
&gt; &gt; 
&gt; &gt; &gt; So, what if we first address the issue of current bug and then open a new issue for refactoring both files to use qt5 class?
&gt; 
&gt; No this is the other way around. We don&apos;t land something that may be broken or we know doesn&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480954</commentid>
    <comment_count>20</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-10-10 07:39:24 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #15)
&gt; &gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; &gt; Kenneth &amp; Alexis
&gt; &gt; &gt; &gt; Thanks for the review, I will make the changes related to the OwnPtr.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Alexis
&gt; &gt; &gt; &gt; Concerning the dependency on Mobility, initially I thought about using the class in Qt5. But this will require a change on Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp (since it is using Mobility too).
&gt; &gt; 
&gt; &gt; Thing is QtMobility is not tested against Qt5 and most probably will not work. So we need to use Qt&apos;s module when WK2 + Qt5 because that&apos;s the only supported code path.
&gt; &gt; 
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp is using Qt 4.X so it should use Mobility.
&gt; &gt; 
&gt; &gt; It can work with both playing around with ifdef.
&gt; 
&gt; Or we can add a file in the WebCoreSupport of the WebProcess to only have Qt5 support. (duplicate code for sure).
&gt; 
&gt; Though in the first place it seems wrong we use stuff in Source/WebKit/qt/WebCoreSupport for WebKit2 isn&apos;t it?

Ok got it, it&apos;s the WK1 stuff that is built.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; So, what if we first address the issue of current bug and then open a new issue for refactoring both files to use qt5 class?
&gt; &gt; 
&gt; &gt; No this is the other way around. We don&apos;t land something that may be broken or we know doesn&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480960</commentid>
    <comment_count>21</comment_count>
    <who name="Mahesh Kulkarni">maheshk</who>
    <bug_when>2011-10-10 07:52:02 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply t/qt/WebCoreSupport for WebKit2 isn&apos;t it?
&gt; 
&gt; Ok got it, it&apos;s the WK1 stuff that is built.
&gt; 
&gt; &gt; 

Yes it is.

Copying my comment from: https://bugs.webkit.org/show_bug.cgi?id=69737

 Qt5 is made mandatory for trunk code which means that we do not have to keep mobility hooked up in trunk anymore and use qt5 location instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481841</commentid>
    <comment_count>22</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-11 12:54:53 -0700</bug_when>
    <thetext>I will &apos;port&apos; the patch to use Qt5, but meanwhile GeolocationClient (WK1 code) needs to compile with both Qt4 and Qt5.

The issue has the required patch: https://bugs.webkit.org/show_bug.cgi?id=69737</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481874</commentid>
    <comment_count>23</comment_count>
      <attachid>110568</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-11 13:44:12 -0700</bug_when>
    <thetext>Created attachment 110568
Previous fixes plus using Qt5 location.

This patch depends on https://bugs.webkit.org/show_bug.cgi?id=69737</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483267</commentid>
    <comment_count>24</comment_count>
      <attachid>110568</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-13 10:15:29 -0700</bug_when>
    <thetext>Comment on attachment 110568
Previous fixes plus using Qt5 location.

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

r- because of the const stuff. Otherwise the patch looks good to me.

&gt; Source/WebKit2/ChangeLog:6
&gt; +        Author: kenneth.r.christiansen@nokia.com

If you want to, you could also write:

&quot;Based on patch by Kenneth Christiansen &lt;his email here&gt;&quot;

&gt; Source/WebKit2/UIProcess/API/C/WKGeolocationManager.h:-43
&gt; -typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
&gt; -typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
&gt; +typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, void* clientInfo);
&gt; +typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, void* clientInfo);
&gt;  
&gt;  struct WKGeolocationProvider {
&gt; -    int                                                                 version;
&gt; -    const void *                                                        clientInfo;
&gt; -    WKGeolocationProviderStartUpdatingCallback                          startUpdating;
&gt; -    WKGeolocationProviderStopUpdatingCallback                           stopUpdating;

I do think that removing the const is a problem here. I bet Safari 5 is using this API to implement gelocation. Also the const - as ugly as it is - is the pattern used in all of the public WK2 C API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484218</commentid>
    <comment_count>25</comment_count>
      <attachid>111059</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-14 13:04:03 -0700</bug_when>
    <thetext>Created attachment 111059
Setting to mutable the GeoPositionSource class member (thus respecting WKGeolocationManager const pointers)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484227</commentid>
    <comment_count>26</comment_count>
      <attachid>111059</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-14 13:17:00 -0700</bug_when>
    <thetext>Comment on attachment 111059
Setting to mutable the GeoPositionSource class member (thus respecting WKGeolocationManager const pointers)

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

&gt; Source/WebKit2/ChangeLog:6
&gt; +        Reviewed by Simon Hausmann &lt;hausmann@webkit.org&gt;

This line needs to be omitted until the patch gets a proper r+.

&gt; Source/WebKit2/ChangeLog:12
&gt; +
&gt; +

One newline is enough here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484232</commentid>
    <comment_count>27</comment_count>
      <attachid>111065</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-14 13:23:05 -0700</bug_when>
    <thetext>Created attachment 111065
Setting to mutable the GeoPositionSource class member (thus respecting WKGeolocationManager const pointers), fixed new line in Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484579</commentid>
    <comment_count>28</comment_count>
      <attachid>111065</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-10-15 06:57:02 -0700</bug_when>
    <thetext>Comment on attachment 111065
Setting to mutable the GeoPositionSource class member (thus respecting WKGeolocationManager const pointers), fixed new line in Changelog

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Based on patch by Kenneth Christiansen &lt;kenneth.r.christiansen@nokia.com&gt;

Add newline after this

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:32
&gt; +    const WebGeolocationProviderQt *tmp = static_cast&lt;const WebGeolocationProviderQt* &gt;(clientInfo);

* alignment! also an extra space after the Qt* I don&apos;t see why this tmp is needed if you are not asserting! also tmp is a bad name

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.cpp:97
&gt; +        if (!(m_source = QGeoPositionInfoSource::createDefaultSource(const_cast&lt;WebGeolocationProviderQt* &gt;(this)))) {

Space after * again

&gt; Source/WebKit2/UIProcess/qt/WebGeolocationProviderQt.h:38
&gt; +    ~WebGeolocationProviderQt();

virtual?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484581</commentid>
    <comment_count>29</comment_count>
      <attachid>111134</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-15 07:35:26 -0700</bug_when>
    <thetext>Created attachment 111134
Previous fixes, plus virtual destructor/no tmp variable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485191</commentid>
    <comment_count>30</comment_count>
      <attachid>111272</attachid>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2011-10-17 09:05:30 -0700</bug_when>
    <thetext>Created attachment 111272
Previous fixes, plus removed an unnecessary header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485195</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 09:08:59 -0700</bug_when>
    <thetext>Attachment 111272 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;]&quot; exit_code: 2

Updating OpenSource
Current branch master is up to date.
Updating chromium port dependencies using gclient...
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Error: &apos;depot_tools/gclient sync&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107.
Re-trying &apos;depot_tools/gclient sync&apos;
No such file or directory at Tools/Scripts/update-webkit line 104.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485918</commentid>
    <comment_count>32</comment_count>
      <attachid>111272</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-10-18 01:57:06 -0700</bug_when>
    <thetext>Comment on attachment 111272
Previous fixes, plus removed an unnecessary header file.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485931</commentid>
    <comment_count>33</comment_count>
      <attachid>111272</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 03:02:10 -0700</bug_when>
    <thetext>Comment on attachment 111272
Previous fixes, plus removed an unnecessary header file.

Clearing flags on attachment: 111272

Committed r97733: &lt;http://trac.webkit.org/changeset/97733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485932</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 03:02:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92231</attachid>
            <date>2011-05-04 06:41:12 -0700</date>
            <delta_ts>2011-06-01 11:07:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59199.patch</filename>
            <type>text/plain</type>
            <size>9590</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NzQxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDUtMDQgIE1haGVzaCBL
dWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBnZW9sb2Nh
dGlvbiBwcm92aWRlciBmb3IgcXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkxOTkKKworICAgICAgICBPcmlnaW5hbCBBdXRob3I6IGtlbm5l
dGguci5jaHJpc3RpYW5zZW5Abm9raWEuY29tCisKKyAgICAgICAgSW1wbGVtZW50cyBkZWZhdWx0
IGxvY2F0aW9uIHByb3ZpZGVyIGZvciBXSzIgUXRXZWJLaXQgKFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdCk7CisgICAgICAgIEFsbG93aW5nIFF0V2Via2l0IGNsaWVudHMgdG8gaW1wbGVtZW50L292
ZXJyaWRlIHRoZWlyIG93biBwcm92aWRlciB1c2luZyBXSzIgQVBJ4oCZcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcDogQWRkZWQuCisgICAgICAgICh0b0xvY2F0
aW9uUHJvdmlkZXIpOgorICAgICAgICAobG9jYXRpb25TdGFydFVwZGF0aW5nKToKKyAgICAgICAg
KGxvY2F0aW9uU3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6V2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6fldl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQ6OnVwZGF0ZVRpbWVvdXQpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpw
b3NpdGlvblVwZGF0ZWQpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdGFy
dFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Lmg6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDExLTA1LTAzICBQcmF0aWsgU29s
YW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA4NTcxNikKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNiArMjM1LDcgQEAKICAg
ICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmggXAogICAgIFVJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmggXAor
ICAgIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCBcCiAgICAgVUlQcm9j
ZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuaCBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlv
bkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXApAQCAtNDUxLDYgKzQ1Miw3IEBA
CiAgICAgVUlQcm9jZXNzL3F0L1RleHRDaGVja2VyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQv
V2ViQ29udGV4dE1lbnVQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRR
dC5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwIFwK
ICAgICBVSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vz
cy9xdC9XZWJQYWdlUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQ
cm94eVF0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCIKKworI2lmIEVO
QUJMRShHRU9MT0NBVElPTikKKworI2luY2x1ZGUgPFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK3N0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQqIHRvTG9jYXRpb25Qcm92aWRlcihjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCo+KGNvbnN0X2Nh
c3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdGFydFVw
ZGF0aW5nKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbykt
PnN0YXJ0VXBkYXRpbmcoKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdG9wVXBkYXRpbmco
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIHRvTG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVw
ZGF0aW5nKCk7Cit9CisKK1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0OjpjcmVhdGUoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAg
ICByZXR1cm4gbmV3IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChtYW5hZ2VyKTsKK30KKworV2Vi
R2VvbG9jYXRpb25Qcm92aWRlclF0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoV0tHZW9sb2Nh
dGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKKyAgICA6IFFPYmplY3QoKQorICAgICwgbV9tYW5hZ2Vy
KG1hbmFnZXIpCisgICAgLCBtX3NvdXJjZSgwKQoreworICAgIFdLR2VvbG9jYXRpb25Qcm92aWRl
ciBwcm92aWRlciA9IHsKKyAgICAgICAgMCwgICAgICAvKiB2ZXJzaW9uICovCisgICAgICAgIHRo
aXMsICAgLyogY2xpZW50SW5mbyAqLworICAgICAgICBsb2NhdGlvblN0YXJ0VXBkYXRpbmcsCisg
ICAgICAgIGxvY2F0aW9uU3RvcFVwZGF0aW5nCisgICAgfTsKKyAgICBXS0dlb2xvY2F0aW9uTWFu
YWdlclNldFByb3ZpZGVyKG1fbWFuYWdlciwgJnByb3ZpZGVyKTsKK30KKworV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0Ojp+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KCkKK3sKK30KKwordm9pZCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnVwZGF0ZVRpbWVvdXQoKQoreworICAgIFdLR2VvbG9j
YXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihtX21hbmFnZXIp
OworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKGNv
bnN0IFFHZW9Qb3NpdGlvbkluZm8mIGdlb1Bvc2l0aW9uKQoreworICAgIGlmICghZ2VvUG9zaXRp
b24uaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBRdE1vYmlsaXR5OjpRR2VvQ29v
cmRpbmF0ZSBjb29yZCA9IGdlb1Bvc2l0aW9uLmNvb3JkaW5hdGUoKTsKKyAgICBkb3VibGUgbGF0
aXR1ZGUgPSBjb29yZC5sYXRpdHVkZSgpOworICAgIGRvdWJsZSBsb25naXR1ZGUgPSBjb29yZC5s
b25naXR1ZGUoKTsKKyAgICBkb3VibGUgYWNjdXJhY3kgPSBnZW9Qb3NpdGlvbi5hdHRyaWJ1dGUo
UUdlb1Bvc2l0aW9uSW5mbzo6SG9yaXpvbnRhbEFjY3VyYWN5KTsKKyAgICBkb3VibGUgdGltZVN0
YW1wSW5TZWNvbmRzID0gZ2VvUG9zaXRpb24udGltZXN0YW1wKCkudG9NU2Vjc1NpbmNlRXBvY2go
KSAvIDEwMDA7CisgICAgCisgICAgbV9sYXN0UG9zaXRpb24uYWRvcHQoV0tHZW9sb2NhdGlvblBv
c2l0aW9uQ3JlYXRlKHRpbWVTdGFtcEluU2Vjb25kcywgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNj
dXJhY3kpKTsKKworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3Np
dGlvbihtX21hbmFnZXIsIG1fbGFzdFBvc2l0aW9uLmdldCgpKTsKK30KKwordm9pZCBXZWJHZW9s
b2NhdGlvblByb3ZpZGVyUXQ6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmICghbV9zb3VyY2Up
IHsKKyAgICAgICAgbV9zb3VyY2UgPSBRdE1vYmlsaXR5OjpRR2VvUG9zaXRpb25JbmZvU291cmNl
OjpjcmVhdGVEZWZhdWx0U291cmNlKHRoaXMpOworCisgICAgICAgIGlmIChtX3NvdXJjZSkgewor
ICAgICAgICAgICAgLy8gTW9iaWxpdHkgc291cmNlIGlzIGF2YWlsYWJsZS4KKyAgICAgICAgICAg
IGNvbm5lY3QobV9zb3VyY2UsIFNJR05BTChwb3NpdGlvblVwZGF0ZWQoUUdlb1Bvc2l0aW9uSW5m
bykpLCB0aGlzLCBTTE9UKHBvc2l0aW9uVXBkYXRlZChRR2VvUG9zaXRpb25JbmZvKSkpOworICAg
ICAgICAgICAgY29ubmVjdChtX3NvdXJjZSwgU0lHTkFMKHVwZGF0ZVRpbWVvdXQoKSksIHRoaXMs
IFNMT1QodXBkYXRlVGltZW91dCgpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBX
S0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKG1fbWFuYWdlciwgMCk7CisgICAgICAgICAg
ICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24o
bV9tYW5hZ2VyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fc291cmNlLT5zdGFydFVwZGF0
ZXMoKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnN0b3BVcGRhdGluZygp
Cit7CisgICAgbV9zb3VyY2UtPnN0b3BVcGRhdGVzKCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
R0VPTE9DQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDYxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisKKyNpZm5kZWYgV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0X2gK
KworI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uTWFu
YWdlci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5j
bHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgUXRNb2JpbGl0eSB7Citj
bGFzcyBRR2VvUG9zaXRpb25JbmZvU291cmNlOworY2xhc3MgUUdlb1Bvc2l0aW9uSW5mbzsKK30K
KworLy8gQmVsb3cgdXNpbmcgaXMgbmVlZGVkLCBiZWNhdXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBz
aWduYWwgaXMgZGVmaW5lZCB3aXRob3V0IHRoZSBuYW1lc3BhY2UuCit1c2luZyBRdE1vYmlsaXR5
OjpRR2VvUG9zaXRpb25JbmZvOworCitjbGFzcyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQgOiBw
dWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0KiBjcmVhdGUoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYpOworCisg
ICAgfldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCgpOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5n
KCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworcHVibGljIFFfU0xPVFM6CisgICAgdm9p
ZCB1cGRhdGVUaW1lb3V0KCk7CisgICAgdm9pZCBwb3NpdGlvblVwZGF0ZWQoY29uc3QgUUdlb1Bv
c2l0aW9uSW5mbyYpOworCitwcml2YXRlOgorICAgIFFfRElTQUJMRV9DT1BZKFdlYkdlb2xvY2F0
aW9uUHJvdmlkZXJRdCk7CisgICAgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmKTsKKworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIG1fbWFuYWdlcjsK
KyAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY+IG1fbGFzdFBvc2l0aW9u
OworICAgIFF0TW9iaWxpdHk6OlFHZW9Qb3NpdGlvbkluZm9Tb3VyY2UqIG1fc291cmNlOworfTsK
KworI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0UXQuY3BwCShyZXZpc2lvbiA4NTcxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9XZWJDb250ZXh0UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNywxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKIAorI2luY2x1ZGUgIldL
U2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCisj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgPFFQcm9jZXNzPgogCkBAIC00NSw2ICs0OSwxMiBAQAogdm9pZCBXZWJDb250ZXh0
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKQogewogICAgIHFSZWdpc3Rlck1ldGFUeXBlPFFQcm9jZXNzOjpFeGl0U3RhdHVzPigiUVBy
b2Nlc3M6OkV4aXRTdGF0dXMiKTsKKworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICAvLyBJ
bml0aWFsaXplIGxvY2F0aW9uIHByb3ZpZGVyIGZvciBxdCBhbmQgaWdub3JlIHRoZSBwb2ludGVy
IGFzIHRoZSBwcm92aWRlciBjbGllbnQgaGFzIGJlZW4gdXBkYXRlZAorICAgIHN0YXRpYyBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOworICAgIFFfVU5VU0VE
KGxvY2F0aW9uKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxp
ZGF0ZUNvbnRleHQoKQo=
</data>
<flag name="review"
          id="85178"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95628</attachid>
            <date>2011-06-01 11:07:16 -0700</date>
            <delta_ts>2011-07-07 06:56:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59199.patch</filename>
            <type>text/plain</type>
            <size>11170</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3ODIzKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDYtMDEgIE1haGVzaCBL
dWxrYXJuaSAgPG1haGVzaC5rdWxrYXJuaUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBnZW9sb2Nh
dGlvbiBwcm92aWRlciBmb3IgcXQgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTkxOTkKKworICAgICAgIE9yaWdpbmFsIEF1dGhvcjoga2VubmV0
aC5yLmNocmlzdGlhbnNlbkBub2tpYS5jb20KKworICAgICAgICBJbXBsZW1lbnRzIGRlZmF1bHQg
bG9jYXRpb24gcHJvdmlkZXIgZm9yIFdLMiBRdFdlYktpdCAoV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0KTsKKyAgICAgICAgQWxsb3dpbmcgUXRXZWJLaXQgY2xpZW50cyB0byBpbXBsZW1lbnQvb3Zl
cnJpZGUgdGhlaXIgb3duIHByb3ZpZGVyIHVzaW5nIFdLMiBBUEnigJlzLgorICAgICAgICBSZW1v
dmUgY29uc3RuZXNzIG9mIGNsaWVudCBwcm92aWRlciBiZWNhdXNlIGl0IGlzIG5vdCBuZWNlc3Nh
cnkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVkLgorICAgICAg
ICAodG9Mb2NhdGlvblByb3ZpZGVyKToKKyAgICAgICAgKGxvY2F0aW9uU3RhcnRVcGRhdGluZyk6
CisgICAgICAgIChsb2NhdGlvblN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6
OldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQ6On5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0Ojp1cGRhdGVUaW1lb3V0KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6
OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKwogMjAxMS0wNi0wMSAg
QWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUm91dGUgcGx1Z2luIHdp
bmRvdyBnZW9tZXRyeSB1cGRhdGVzIHRocm91Z2ggdGhlIERyYXdpbmdBcmVhCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnBybwkocmV2aXNpb24gODc3NzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwko
d29ya2luZyBjb3B5KQpAQCAtMjM0LDYgKzIzNCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuaCBcCisgICAgVUlQ
cm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIFwKICAgICBVSVByb2Nlc3MvcXQv
V2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCkBAIC00NDgsNiArNDQ5LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1RleHRDaGVja2VyUXQuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNv
bnRleHRRdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQu
Y3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1
cE1lbnVQcm94eVF0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaAkocmV2aXNpb24gODc3NzQpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDE0IEBAIGV4dGVybiAiQyIgewogI2VuZGlmCiAKIC8v
IFByb3ZpZGVyLgotdHlwZWRlZiB2b2lkICgqV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RhcnRVcGRh
dGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tHZW9sb2NhdGlvblBy
b3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xv
Y2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpX
S0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRpb25N
YW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVm
IHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjaykoV0tHZW9s
b2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBjbGllbnRJbmZvKTsK
IAogc3RydWN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciB7Ci0gICAgaW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u
OwotICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKLSAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXJT
dGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VXBkYXRp
bmc7Ci0gICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7CisgICAgaW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgdm9pZCAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tHZW9sb2Nh
dGlvblByb3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrICAgIHN0YXJ0VXBkYXRpbmc7CisgICAg
V0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sgICAgIHN0b3BVcGRhdGlu
ZzsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgV0tHZW9sb2NhdGlv
blByb3ZpZGVyOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4
dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29u
dGV4dFF0LmNwcAkocmV2aXNpb24gODc3NzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsMTEgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAKKyNpbmNsdWRlICJX
S1NoYXJlZEFQSUNhc3QuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgor
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlIDxRUHJvY2Vzcz4KIApAQCAtNDUsNiArNDksMTEgQEAgU3RyaW5nIFdlYkNvbnRl
eHQ6OmFwcGxpY2F0aW9uQ2FjaGVEaXJlYwogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQogewogICAgIHFS
ZWdpc3Rlck1ldGFUeXBlPFFQcm9jZXNzOjpFeGl0U3RhdHVzPigiUVByb2Nlc3M6OkV4aXRTdGF0
dXMiKTsKKworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBzdGF0aWMgV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0KiBsb2NhdGlvbiA9IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRl
KHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkpKTsKKyAgICBRX1VOVVNFRChsb2NhdGlv
bik7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUludmFsaWRhdGVDb250
ZXh0KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgorCisjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQorCisjaW5jbHVkZSA8UUdlb1Bvc2l0aW9uSW5mb1NvdXJjZT4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBRdE1vYmlsaXR5OworCitzdGF0aWMg
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiB0b0xvY2F0aW9uUHJvdmlkZXIodm9pZCogY2xpZW50
SW5mbykKK3sKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQqPihjbGllbnRJbmZvKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdGFydFVwZGF0
aW5nKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xp
ZW50SW5mbykKK3sKKyAgICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBk
YXRpbmcoKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdG9wVXBkYXRpbmcoV0tHZW9sb2Nh
dGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIHRvTG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7Cit9CisK
K1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVh
dGUoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAgICByZXR1cm4gbmV3IFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdChtYW5hZ2VyKTsKK30KKworV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYg
bWFuYWdlcikKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9zb3VyY2UoMCkKK3sK
KyAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgcHJvdmlkZXIgPSB7CisgICAgICAgIDAsICAgICAg
LyogdmVyc2lvbiAqLworICAgICAgICB0aGlzLCAgIC8qIGNsaWVudEluZm8gKi8KKyAgICAgICAg
bG9jYXRpb25TdGFydFVwZGF0aW5nLAorICAgICAgICBsb2NhdGlvblN0b3BVcGRhdGluZworICAg
IH07CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihtX21hbmFnZXIsICZwcm92
aWRlcik7Cit9CisKK1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6fldlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdCgpCit7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojp1cGRhdGVU
aW1lb3V0KCkKK3sKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0
ZXJtaW5lUG9zaXRpb24obV9tYW5hZ2VyKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQ6OnBvc2l0aW9uVXBkYXRlZChjb25zdCBRR2VvUG9zaXRpb25JbmZvJiBnZW9Qb3NpdGlv
bikKK3sKKyAgICBpZiAoIWdlb1Bvc2l0aW9uLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgUUdlb0Nvb3JkaW5hdGUgY29vcmQgPSBnZW9Qb3NpdGlvbi5jb29yZGluYXRlKCk7Cisg
ICAgZG91YmxlIGxhdGl0dWRlID0gY29vcmQubGF0aXR1ZGUoKTsKKyAgICBkb3VibGUgbG9uZ2l0
dWRlID0gY29vcmQubG9uZ2l0dWRlKCk7CisgICAgZG91YmxlIGFjY3VyYWN5ID0gZ2VvUG9zaXRp
b24uYXR0cmlidXRlKFFHZW9Qb3NpdGlvbkluZm86Okhvcml6b250YWxBY2N1cmFjeSk7CisgICAg
ZG91YmxlIHRpbWVTdGFtcEluU2Vjb25kcyA9IGdlb1Bvc2l0aW9uLnRpbWVzdGFtcCgpLnRvTVNl
Y3NTaW5jZUVwb2NoKCkgLyAxMDAwOworICAgIAorICAgIG1fbGFzdFBvc2l0aW9uLmFkb3B0KFdL
R2VvbG9jYXRpb25Qb3NpdGlvbkNyZWF0ZSh0aW1lU3RhbXBJblNlY29uZHMsIGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5KSk7CisKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVy
RGlkQ2hhbmdlUG9zaXRpb24obV9tYW5hZ2VyLCBtX2xhc3RQb3NpdGlvbi5nZXQoKSk7Cit9CisK
K3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBp
ZiAoIW1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlID0gUUdlb1Bvc2l0aW9uSW5mb1NvdXJj
ZTo6Y3JlYXRlRGVmYXVsdFNvdXJjZSh0aGlzKTsKKworICAgICAgICBpZiAobV9zb3VyY2UpIHsK
KyAgICAgICAgICAgIGNvbm5lY3QobV9zb3VyY2UsIFNJR05BTChwb3NpdGlvblVwZGF0ZWQoUUdl
b1Bvc2l0aW9uSW5mbykpLCB0aGlzLCBTTE9UKHBvc2l0aW9uVXBkYXRlZChRR2VvUG9zaXRpb25J
bmZvKSkpOworICAgICAgICAgICAgY29ubmVjdChtX3NvdXJjZSwgU0lHTkFMKHVwZGF0ZVRpbWVv
dXQoKSksIHRoaXMsIFNMT1QodXBkYXRlVGltZW91dCgpKSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKG1fbWFuYWdlciwgMCk7
CisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJt
aW5lUG9zaXRpb24obV9tYW5hZ2VyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1fc291cmNl
LT5zdGFydFVwZGF0ZXMoKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnN0
b3BVcGRhdGluZygpCit7CisgICAgbV9zb3VyY2UtPnN0b3BVcGRhdGVzKCk7Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisKKyNp
Zm5kZWYgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0X2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0X2gKKworI2luY2x1ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dl
b2xvY2F0aW9uTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvblBvc2l0
aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgUXRN
b2JpbGl0eSB7CitjbGFzcyBRR2VvUG9zaXRpb25JbmZvU291cmNlOworY2xhc3MgUUdlb1Bvc2l0
aW9uSW5mbzsKK30KKworLy8gQmVsb3cgdXNpbmcgaXMgbmVlZGVkLCBiZWNhdXNlIHRoZSBpbXBs
ZW1lbnRhdGlvbiBzaWduYWwgaXMgZGVmaW5lZCB3aXRob3V0IHRoZSBuYW1lc3BhY2UuCit1c2lu
ZyBRdE1vYmlsaXR5OjpRR2VvUG9zaXRpb25JbmZvOwordXNpbmcgUXRNb2JpbGl0eTo6UUdlb1Bv
c2l0aW9uSW5mb1NvdXJjZTsKKworY2xhc3MgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0IDogcHVi
bGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgc3RhdGljIFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdCogY3JlYXRlKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmKTsKKworICAg
IH5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc3RhcnRVcGRhdGluZygp
OworICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQg
dXBkYXRlVGltZW91dCgpOworICAgIHZvaWQgcG9zaXRpb25VcGRhdGVkKGNvbnN0IFFHZW9Qb3Np
dGlvbkluZm8mKTsKKworcHJpdmF0ZToKKyAgICBRX0RJU0FCTEVfQ09QWShXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQpOworICAgIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChXS0dlb2xvY2F0aW9u
TWFuYWdlclJlZik7CisKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtX21hbmFnZXI7Cisg
ICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmPiBtX2xhc3RQb3NpdGlvbjsK
KyAgICBRR2VvUG9zaXRpb25JbmZvU291cmNlKiBtX3NvdXJjZTsKK307CisKKyNlbmRpZgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99976</attachid>
            <date>2011-07-07 06:56:11 -0700</date>
            <delta_ts>2011-07-07 07:29:18 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59199.patch</filename>
            <type>text/plain</type>
            <size>11438</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9s
b2NhdGlvblByb3ZpZGVyUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgorCisjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQorCisjaW5jbHVkZSA8UUdlb1Bvc2l0aW9uSW5mb1NvdXJjZT4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBRdE1vYmlsaXR5OworCitzdGF0aWMgV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0KiB0b0xvY2F0aW9uUHJvdmlkZXIodm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQq
PihjbGllbnRJbmZvKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdGFydFVwZGF0aW5nKFdL
R2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmco
KTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdG9wVXBkYXRpbmcoV0tHZW9sb2NhdGlvbk1h
bmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRv
TG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdCogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUoV0tH
ZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAgICByZXR1cm4gbmV3IFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdChtYW5hZ2VyKTsKK30KKworV0tHZW9sb2NhdGlvblByb3ZpZGVyKiBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnByb3ZpZGVyKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dCogbG9jYXRpb24pCit7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciBwcm92aWRl
ciA9IHsKKyAgICAgICAgMCwgICAgICAvKiB2ZXJzaW9uICovCisgICAgICAgIGxvY2F0aW9uLCAg
IC8qIGNsaWVudEluZm8gKi8KKyAgICAgICAgbG9jYXRpb25TdGFydFVwZGF0aW5nLAorICAgICAg
ICBsb2NhdGlvblN0b3BVcGRhdGluZworICAgIH07CisKKyAgICByZXR1cm4gJnByb3ZpZGVyOwor
fQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChX
S0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIp
CisgICAgLCBtX3NvdXJjZSgwKQoreworfQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6On5X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoKQoreworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdDo6dXBkYXRlVGltZW91dCgpCit7CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92
aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3NpdGlvblVwZGF0ZWQoY29uc3QgUUdlb1Bvc2l0aW9u
SW5mbyYgZ2VvUG9zaXRpb24pCit7CisgICAgaWYgKCFnZW9Qb3NpdGlvbi5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFFHZW9Db29yZGluYXRlIGNvb3JkID0gZ2VvUG9zaXRpb24u
Y29vcmRpbmF0ZSgpOworICAgIGRvdWJsZSBsYXRpdHVkZSA9IGNvb3JkLmxhdGl0dWRlKCk7Cisg
ICAgZG91YmxlIGxvbmdpdHVkZSA9IGNvb3JkLmxvbmdpdHVkZSgpOworICAgIGRvdWJsZSBhY2N1
cmFjeSA9IGdlb1Bvc2l0aW9uLmF0dHJpYnV0ZShRR2VvUG9zaXRpb25JbmZvOjpIb3Jpem9udGFs
QWNjdXJhY3kpOworICAgIGRvdWJsZSB0aW1lU3RhbXBJblNlY29uZHMgPSBnZW9Qb3NpdGlvbi50
aW1lc3RhbXAoKS50b01TZWNzU2luY2VFcG9jaCgpIC8gMTAwMDsKKyAgICAKKyAgICBtX2xhc3RQ
b3NpdGlvbi5hZG9wdChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUodGltZVN0YW1wSW5TZWNv
bmRzLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOworCisgICAgV0tHZW9sb2NhdGlv
bk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKG1fbWFuYWdlciwgbV9sYXN0UG9zaXRp
b24uZ2V0KCkpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RhcnRVcGRh
dGluZygpCit7CisgICAgaWYgKCFtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZSA9IFFHZW9Q
b3NpdGlvbkluZm9Tb3VyY2U6OmNyZWF0ZURlZmF1bHRTb3VyY2UodGhpcyk7CisKKyAgICAgICAg
aWYgKG1fc291cmNlKSB7CisgICAgICAgICAgICBjb25uZWN0KG1fc291cmNlLCBTSUdOQUwocG9z
aXRpb25VcGRhdGVkKFFHZW9Qb3NpdGlvbkluZm8pKSwgdGhpcywgU0xPVChwb3NpdGlvblVwZGF0
ZWQoUUdlb1Bvc2l0aW9uSW5mbykpKTsKKyAgICAgICAgICAgIGNvbm5lY3QobV9zb3VyY2UsIFNJ
R05BTCh1cGRhdGVUaW1lb3V0KCkpLCB0aGlzLCBTTE9UKHVwZGF0ZVRpbWVvdXQoKSkpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRl
cihtX21hbmFnZXIsIDApOworICAgICAgICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRl
ckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBtX3NvdXJjZS0+c3RhcnRVcGRhdGVzKCk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0OjpzdG9wVXBkYXRpbmcoKQoreworICAgIG1fc291cmNlLT5zdG9wVXBkYXRl
cygpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHJldmlzaW9uIDkwNTU3KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDkgKzI4LDE1IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJTdGRMaWJFeHRyYXMu
aCIKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0LmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCisjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVkZSA8UVByb2Nlc3M+CiAK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBXZWJDb250ZXh0OjphcHBsaWNhdGlvbkNh
Y2hlRGlyZWN0b3J5KCkKQEAgLTQ1LDYgKzUxLDExIEBACiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCiB7
CiAgICAgcVJlZ2lzdGVyTWV0YVR5cGU8UVByb2Nlc3M6OkV4aXRTdGF0dXM+KCJRUHJvY2Vzczo6
RXhpdFN0YXR1cyIpOworCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIHN0YXRpYyBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOworICAgIFdLR2VvbG9j
YXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSks
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsKKyNlbmRpZgog
fQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVyUXQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9o
CisjZGVmaW5lIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlIDxRT2JqZWN0
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KKworbmFtZXNwYWNlIFF0TW9iaWxpdHkgeworY2xhc3MgUUdlb1Bvc2l0aW9uSW5m
b1NvdXJjZTsKK2NsYXNzIFFHZW9Qb3NpdGlvbkluZm87Cit9CisKKy8vIEJlbG93IHVzaW5nIGlz
IG5lZWRlZCwgYmVjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gc2lnbmFsIGlzIGRlZmluZWQgd2l0
aG91dCB0aGUgbmFtZXNwYWNlLgordXNpbmcgUXRNb2JpbGl0eTo6UUdlb1Bvc2l0aW9uSW5mbzsK
K3VzaW5nIFF0TW9iaWxpdHk6OlFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U7CisKK2NsYXNzIFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVi
bGljOgorICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGNyZWF0ZShXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZik7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciogcHJv
dmlkZXIoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Kik7CisKKyAgICB+V2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0KCk7CisKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2b2lkIHN0b3BV
cGRhdGluZygpOworCitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIHVwZGF0ZVRpbWVvdXQoKTsK
KyAgICB2b2lkIHBvc2l0aW9uVXBkYXRlZChjb25zdCBRR2VvUG9zaXRpb25JbmZvJik7CisKK3By
aXZhdGU6CisgICAgUV9ESVNBQkxFX0NPUFkoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KTsKKyAg
ICBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYpOworCisg
ICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbV9tYW5hZ2VyOworICAgIFdLUmV0YWluUHRyPFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZj4gbV9sYXN0UG9zaXRpb247CisgICAgUUdlb1Bvc2l0aW9u
SW5mb1NvdXJjZSogbV9zb3VyY2U7Cit9OworCisjZW5kaWYKKwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmgJKHJl
dmlzaW9uIDkwNTU3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9j
YXRpb25NYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywxNCBAQAogI2VuZGlm
CiAKIC8vIFByb3ZpZGVyLgotdHlwZWRlZiB2b2lkICgqV0tHZW9sb2NhdGlvblByb3ZpZGVyU3Rh
cnRVcGRhdGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1h
bmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tHZW9sb2Nh
dGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVm
IGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZv
aWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5mbyk7Cit0
eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayko
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBjbGllbnRJ
bmZvKTsKIAogc3RydWN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciB7Ci0gICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOwotICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKLSAgICBXS0dlb2xvY2F0aW9uUHJv
dmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
VXBkYXRpbmc7Ci0gICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7CisgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgdm9pZCAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tH
ZW9sb2NhdGlvblByb3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrICAgIHN0YXJ0VXBkYXRpbmc7
CisgICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sgICAgIHN0b3BV
cGRhdGluZzsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgV0tHZW9s
b2NhdGlvblByb3ZpZGVyOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MDU1NykKKysrIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisy
MDExLTA3LTA3ICBNYWhlc2ggS3Vsa2FybmkgIDxtYWhlc2gua3Vsa2FybmlAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0sy
XSBJbXBsZW1lbnQgZ2VvbG9jYXRpb24gcHJvdmlkZXIgZm9yIHF0IHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTk5CisKKyAgICAgICAgT3Jp
Z2luYWwgQXV0aG9yOiBrZW5uZXRoLnIuY2hyaXN0aWFuc2VuQG5va2lhLmNvbQorCisgICAgICAg
IEltcGxlbWVudHMgZGVmYXVsdCBsb2NhdGlvbiBwcm92aWRlciBmb3IgV0syIFF0V2ViS2l0IChX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOworICAgICAgICBBbGxvd2luZyBRdFdlYktpdCBjbGll
bnRzIHRvIGltcGxlbWVudCBvciBvdmVycmlkZSB0aGVpciBvd24gcHJvdmlkZXIgdXNpbmcgV0sy
IEFQSXMuCisgICAgICAgIFJlbW92ZSBjb25zdG5lc3Mgb2YgY2xpZW50IHByb3ZpZGVyIGJlY2F1
c2UgaXQgaXMgbm90IG5lY2Vzc2FyeS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dl
b2xvY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
LmNwcDogQWRkZWQuCisgICAgICAgICh0b0xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAobG9j
YXRpb25TdGFydFVwZGF0aW5nKToKKyAgICAgICAgKGxvY2F0aW9uU3RvcFVwZGF0aW5nKToKKyAg
ICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KToKKyAgICAgICAg
KFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6fldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCk6Cisg
ICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnVwZGF0ZVRpbWVvdXQpOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3NpdGlvblVwZGF0ZWQpOgorICAgICAgICAo
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIu
cHJvOgorCiAyMDExLTA3LTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBbUXRdIFtXSzJdIEltcHJvdmUgdGhlIGhhbmRsaW5nIG9mIHRvdWNoIGV2
ZW50cyB0byB1c2UgdGhlbSBhcyBtYWluIGlucHV0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNp
b24gOTA1NTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpA
QCAtMjQ4LDYgKzI0OCw3IEBACiAgICAgVUlQcm9jZXNzL3F0L1ZpZXdJbnRlcmZhY2UuaCBcCiAg
ICAgVUlQcm9jZXNzL3F0L1dlYlVuZG9Db21tYW5kUXQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dl
YkNvbnRleHRNZW51UHJveHlRdC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmggXAog
ICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5oIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5oIFwKQEAgLTQ3Nyw2ICs0NzgsNyBAQAogICAgIFVJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0
LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclBy
b3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKICAgICBV
SVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99979</attachid>
            <date>2011-07-07 07:29:18 -0700</date>
            <delta_ts>2011-10-10 07:19:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>59199.patch</filename>
            <type>text/plain</type>
            <size>11438</size>
            <attacher name="Mahesh Kulkarni">maheshk</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9s
b2NhdGlvblByb3ZpZGVyUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgorCisjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQorCisjaW5jbHVkZSA8UUdlb1Bvc2l0aW9uSW5mb1NvdXJjZT4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBRdE1vYmlsaXR5OworCitzdGF0aWMgV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0KiB0b0xvY2F0aW9uUHJvdmlkZXIodm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQq
PihjbGllbnRJbmZvKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdGFydFVwZGF0aW5nKFdL
R2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmco
KTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdG9wVXBkYXRpbmcoV0tHZW9sb2NhdGlvbk1h
bmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRv
TG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdCogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUoV0tH
ZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAgICByZXR1cm4gbmV3IFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdChtYW5hZ2VyKTsKK30KKworV0tHZW9sb2NhdGlvblByb3ZpZGVyKiBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnByb3ZpZGVyKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dCogbG9jYXRpb24pCit7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciBwcm92aWRl
ciA9IHsKKyAgICAgICAgMCwgICAgICAvKiB2ZXJzaW9uICovCisgICAgICAgIGxvY2F0aW9uLCAg
IC8qIGNsaWVudEluZm8gKi8KKyAgICAgICAgbG9jYXRpb25TdGFydFVwZGF0aW5nLAorICAgICAg
ICBsb2NhdGlvblN0b3BVcGRhdGluZworICAgIH07CisKKyAgICByZXR1cm4gJnByb3ZpZGVyOwor
fQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChX
S0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIp
CisgICAgLCBtX3NvdXJjZSgwKQoreworfQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6On5X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoKQoreworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdDo6dXBkYXRlVGltZW91dCgpCit7CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92
aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3NpdGlvblVwZGF0ZWQoY29uc3QgUUdlb1Bvc2l0aW9u
SW5mbyYgZ2VvUG9zaXRpb24pCit7CisgICAgaWYgKCFnZW9Qb3NpdGlvbi5pc1ZhbGlkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFFHZW9Db29yZGluYXRlIGNvb3JkID0gZ2VvUG9zaXRpb24u
Y29vcmRpbmF0ZSgpOworICAgIGRvdWJsZSBsYXRpdHVkZSA9IGNvb3JkLmxhdGl0dWRlKCk7Cisg
ICAgZG91YmxlIGxvbmdpdHVkZSA9IGNvb3JkLmxvbmdpdHVkZSgpOworICAgIGRvdWJsZSBhY2N1
cmFjeSA9IGdlb1Bvc2l0aW9uLmF0dHJpYnV0ZShRR2VvUG9zaXRpb25JbmZvOjpIb3Jpem9udGFs
QWNjdXJhY3kpOworICAgIGRvdWJsZSB0aW1lU3RhbXBJblNlY29uZHMgPSBnZW9Qb3NpdGlvbi50
aW1lc3RhbXAoKS50b01TZWNzU2luY2VFcG9jaCgpIC8gMTAwMDsKKyAgICAKKyAgICBtX2xhc3RQ
b3NpdGlvbi5hZG9wdChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUodGltZVN0YW1wSW5TZWNv
bmRzLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOworCisgICAgV0tHZW9sb2NhdGlv
bk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKG1fbWFuYWdlciwgbV9sYXN0UG9zaXRp
b24uZ2V0KCkpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RhcnRVcGRh
dGluZygpCit7CisgICAgaWYgKCFtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZSA9IFFHZW9Q
b3NpdGlvbkluZm9Tb3VyY2U6OmNyZWF0ZURlZmF1bHRTb3VyY2UodGhpcyk7CisKKyAgICAgICAg
aWYgKG1fc291cmNlKSB7CisgICAgICAgICAgICBjb25uZWN0KG1fc291cmNlLCBTSUdOQUwocG9z
aXRpb25VcGRhdGVkKFFHZW9Qb3NpdGlvbkluZm8pKSwgdGhpcywgU0xPVChwb3NpdGlvblVwZGF0
ZWQoUUdlb1Bvc2l0aW9uSW5mbykpKTsKKyAgICAgICAgICAgIGNvbm5lY3QobV9zb3VyY2UsIFNJ
R05BTCh1cGRhdGVUaW1lb3V0KCkpLCB0aGlzLCBTTE9UKHVwZGF0ZVRpbWVvdXQoKSkpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRl
cihtX21hbmFnZXIsIDApOworICAgICAgICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRl
ckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBtX3NvdXJjZS0+c3RhcnRVcGRhdGVzKCk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0OjpzdG9wVXBkYXRpbmcoKQoreworICAgIG1fc291cmNlLT5zdG9wVXBkYXRl
cygpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHJldmlzaW9uIDkwNTU3KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDkgKzI4LDE1IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKKyNpbmNsdWRlICJTdGRMaWJFeHRyYXMu
aCIKKyNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgiCisjZW5kaWYKICNpbmNsdWRl
ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8UVByb2Nlc3M+CiAK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBXZWJDb250ZXh0OjphcHBsaWNhdGlvbkNh
Y2hlRGlyZWN0b3J5KCkKQEAgLTQ1LDYgKzUxLDExIEBACiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCiB7
CiAgICAgcVJlZ2lzdGVyTWV0YVR5cGU8UVByb2Nlc3M6OkV4aXRTdGF0dXM+KCJRUHJvY2Vzczo6
RXhpdFN0YXR1cyIpOworCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIHN0YXRpYyBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
OjpjcmVhdGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOworICAgIFdLR2VvbG9j
YXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSks
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsKKyNlbmRpZgog
fQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVyUXQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9o
CisjZGVmaW5lIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlIDxRT2JqZWN0
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KKworbmFtZXNwYWNlIFF0TW9iaWxpdHkgeworY2xhc3MgUUdlb1Bvc2l0aW9uSW5m
b1NvdXJjZTsKK2NsYXNzIFFHZW9Qb3NpdGlvbkluZm87Cit9CisKKy8vIEJlbG93IHVzaW5nIGlz
IG5lZWRlZCwgYmVjYXVzZSB0aGUgaW1wbGVtZW50YXRpb24gc2lnbmFsIGlzIGRlZmluZWQgd2l0
aG91dCB0aGUgbmFtZXNwYWNlLgordXNpbmcgUXRNb2JpbGl0eTo6UUdlb1Bvc2l0aW9uSW5mbzsK
K3VzaW5nIFF0TW9iaWxpdHk6OlFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U7CisKK2NsYXNzIFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVi
bGljOgorICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGNyZWF0ZShXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZik7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciogcHJv
dmlkZXIoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Kik7CisKKyAgICB+V2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0KCk7CisKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2b2lkIHN0b3BV
cGRhdGluZygpOworCitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIHVwZGF0ZVRpbWVvdXQoKTsK
KyAgICB2b2lkIHBvc2l0aW9uVXBkYXRlZChjb25zdCBRR2VvUG9zaXRpb25JbmZvJik7CisKK3By
aXZhdGU6CisgICAgUV9ESVNBQkxFX0NPUFkoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KTsKKyAg
ICBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYpOworCisg
ICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbV9tYW5hZ2VyOworICAgIFdLUmV0YWluUHRyPFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZj4gbV9sYXN0UG9zaXRpb247CisgICAgUUdlb1Bvc2l0aW9u
SW5mb1NvdXJjZSogbV9zb3VyY2U7Cit9OworCisjZW5kaWYKKwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmgJKHJl
dmlzaW9uIDkwNTU3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9j
YXRpb25NYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywxNCBAQAogI2VuZGlm
CiAKIC8vIFByb3ZpZGVyLgotdHlwZWRlZiB2b2lkICgqV0tHZW9sb2NhdGlvblByb3ZpZGVyU3Rh
cnRVcGRhdGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1h
bmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tHZW9sb2Nh
dGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVm
IGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZv
aWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5mbyk7Cit0
eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayko
V0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBjbGllbnRJ
bmZvKTsKIAogc3RydWN0IFdLR2VvbG9jYXRpb25Qcm92aWRlciB7Ci0gICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOwotICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKLSAgICBXS0dlb2xvY2F0aW9uUHJv
dmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
VXBkYXRpbmc7Ci0gICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7CisgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgdm9pZCAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CisgICAgV0tH
ZW9sb2NhdGlvblByb3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrICAgIHN0YXJ0VXBkYXRpbmc7
CisgICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2sgICAgIHN0b3BV
cGRhdGluZzsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgV0tHZW9s
b2NhdGlvblByb3ZpZGVyOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MDU1NykKKysrIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisy
MDExLTA3LTA3ICBNYWhlc2ggS3Vsa2FybmkgIDxtYWhlc2gua3Vsa2FybmlAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0sy
XSBJbXBsZW1lbnQgZ2VvbG9jYXRpb24gcHJvdmlkZXIgZm9yIHF0IHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTk5CisKKyAgICAgICAgT3Jp
Z2luYWwgQXV0aG9yOiBrZW5uZXRoLnIuY2hyaXN0aWFuc2VuQG5va2lhLmNvbQorCisgICAgICAg
IEltcGxlbWVudHMgZGVmYXVsdCBsb2NhdGlvbiBwcm92aWRlciBmb3IgV0syIFF0V2ViS2l0IChX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOworICAgICAgICBBbGxvd2luZyBRdFdlYktpdCBjbGll
bnRzIHRvIGltcGxlbWVudCBvciBvdmVycmlkZSB0aGVpciBvd24gcHJvdmlkZXIgdXNpbmcgV0sy
IEFQSXMuCisgICAgICAgIFJlbW92ZSBjb25zdG5lc3Mgb2YgY2xpZW50IHByb3ZpZGVyIGJlY2F1
c2UgaXQgaXMgbm90IG5lY2Vzc2FyeS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dl
b2xvY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
LmNwcDogQWRkZWQuCisgICAgICAgICh0b0xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAobG9j
YXRpb25TdGFydFVwZGF0aW5nKToKKyAgICAgICAgKGxvY2F0aW9uU3RvcFVwZGF0aW5nKToKKyAg
ICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KToKKyAgICAgICAg
KFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6fldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCk6Cisg
ICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnVwZGF0ZVRpbWVvdXQpOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3NpdGlvblVwZGF0ZWQpOgorICAgICAgICAo
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIu
cHJvOgorCiAyMDExLTA3LTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBbUXRdIFtXSzJdIEltcHJvdmUgdGhlIGhhbmRsaW5nIG9mIHRvdWNoIGV2
ZW50cyB0byB1c2UgdGhlbSBhcyBtYWluIGlucHV0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNp
b24gOTA1NTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpA
QCAtMjQ4LDYgKzI0OCw3IEBACiAgICAgVUlQcm9jZXNzL3F0L1ZpZXdJbnRlcmZhY2UuaCBcCiAg
ICAgVUlQcm9jZXNzL3F0L1dlYlVuZG9Db21tYW5kUXQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dl
YkNvbnRleHRNZW51UHJveHlRdC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmggXAog
ICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
ci5oIFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdl
ci5oIFwKQEAgLTQ3Nyw2ICs0NzgsNyBAQAogICAgIFVJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0
LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclBy
b3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKICAgICBV
SVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5jcHAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110320</attachid>
            <date>2011-10-09 20:31:08 -0700</date>
            <delta_ts>2011-10-13 13:00:10 -0700</delta_ts>
            <desc>Fixed crash condition, mobility classes forward declarations, comments, inline function</desc>
            <filename>geolocation.patch</filename>
            <type>text/plain</type>
            <size>12497</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA0NDhjY2M1ODk4MDNjMTU0MTA5MDc2MDgyNTc1NWQ4NDE2YTc3ZGRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFN1biwgOSBPY3QgMjAxMSAxMTo0NToxNCAtMDQwMApTdWJq
ZWN0OiBbUEFUQ0hdIEZpeGVkOiBjcmFzaCBjb25kaXRpb24sIE1vYmlsaXR5IGNsYXNzZXMgZm9y
d2FyZCBkZWNsYXJhdGlvbiwgY29tbWVudHMsIGlubGluZSBmdW5jdGlvbi4KClNpZ25lZC1vZmYt
Ynk6IEFkZW5pbHNvbiBDYXZhbGNhbnRpIDxhZGVuaWxzb24uc2lsdmFAb3BlbmJvc3NhLm9yZz4K
LS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMzAgKysrKysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFu
YWdlci5oIHwgICAxMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRR
dC5jcHAgICAgICAgfCAgIDEwICsrCiAuLi4vVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdC5jcHAgICAgICB8ICAxMTggKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmggICAgICAgIHwgICA1OCArKysrKysrKysr
CiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
IDIgKwogNiBmaWxlcyBjaGFuZ2VkLCAyMjQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2ZjQ3
YTJkLi5lMjY0ZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMTAtMDkgIEFk
ZW5pbHNvbiBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAg
ICAgICAgW1F0XVtXSzJdIEltcGxlbWVudCBnZW9sb2NhdGlvbiBwcm92aWRlciBmb3IgcXQgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxOTkK
KworICAgICAgICBBdXRob3I6IGtlbm5ldGguci5jaHJpc3RpYW5zZW5Abm9raWEuY29tCisgICAg
ICAgIEltcGxlbWVudHMgZGVmYXVsdCBsb2NhdGlvbiBwcm92aWRlciBmb3IgV0syIFF0V2ViS2l0
IChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOworICAgICAgICBBbGxvd2luZyBRdFdlYktpdCBj
bGllbnRzIHRvIGltcGxlbWVudCBvciBvdmVycmlkZSB0aGVpciBvd24gcHJvdmlkZXIgdXNpbmcg
V0syIEFQSXMuCisgICAgICAgIFJlbW92ZSBjb25zdG5lc3Mgb2YgY2xpZW50IHByb3ZpZGVyIGJl
Y2F1c2UgaXQgaXMgbm90IG5lY2Vzc2FyeS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdl
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcDogQWRkZWQuCisg
ICAgICAgICh0b0xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAobG9jYXRpb25TdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKGxvY2F0aW9uU3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdDo6cHJvdmlkZXIpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
Ojp+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdDo6dXBkYXRlVGltZW91dCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQ6OnBvc2l0aW9uVXBkYXRlZCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6
OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdG9w
VXBkYXRpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi5wcm86CisKIDIwMTEtMTAtMDYgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFk
ZCBlc3RpbWF0ZWQtcHJvZ3Jlc3MgcHJvcGVydHkgdG8gV2ViS2l0V2ViTG9hZGVyQ2xpZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFu
YWdlci5oCmluZGV4IGJjMmJkZDkuLjEwMTkzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0zMywxNCArMzMs
MTQgQEAgZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAogLy8gUHJvdmlkZXIuCi10eXBlZGVmIHZvaWQg
KCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
Ci10eXBlZGVmIHZvaWQgKCpXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFj
aykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Qcm92aWRlclN0YXJ0
VXBkYXRpbmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5h
Z2VyLCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Qcm92
aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2Nh
dGlvbk1hbmFnZXIsIHZvaWQqIGNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblBy
b3ZpZGVyIHsKLSAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247Ci0gICAgY29uc3Qgdm9pZCAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJ
bmZvOwotICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhcnRVcGRhdGluZzsKLSAgICBXS0dlb2xvY2F0aW9uUHJv
dmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3BV
cGRhdGluZzsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyc2lvbjsKKyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xpZW50SW5mbzsKKyAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdGFydFVwZGF0aW5n
Q2FsbGJhY2sgICAgc3RhcnRVcGRhdGluZzsKKyAgICBXS0dlb2xvY2F0aW9uUHJvdmlkZXJTdG9w
VXBkYXRpbmdDYWxsYmFjayAgICAgc3RvcFVwZGF0aW5nOwogfTsKIHR5cGVkZWYgc3RydWN0IFdL
R2VvbG9jYXRpb25Qcm92aWRlciBXS0dlb2xvY2F0aW9uUHJvdmlkZXI7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKaW5kZXggZDc1NWYzZi4uODIwMWY1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKQEAg
LTI5LDcgKzI5LDEzIEBACiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgog
I2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJTdGRMaWJFeHRyYXMuaCIKKyNpbmNs
dWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgog
I2luY2x1ZGUgPFFEZXNrdG9wU2VydmljZXM+CiAjaW5jbHVkZSA8UURpcj4KQEAgLTY0LDYgKzcw
LDEwIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiB7CiAgICAgcVJlZ2lzdGVyTWV0YVR5cGU8
UVByb2Nlc3M6OkV4aXRTdGF0dXM+KCJRUHJvY2Vzczo6RXhpdFN0YXR1cyIpOwogICAgIHBhcmFt
ZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeSA9IGRlZmF1bHREYXRhTG9jYXRpb24oKTsKKyNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dCogbG9jYXRpb24gPSBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OmNyZWF0ZSh0b0FQSShnZW9s
b2NhdGlvbk1hbmFnZXJQcm94eSgpKSk7CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92
aWRlcih0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpKSwgV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0Ojpwcm92aWRlcihsb2NhdGlvbikpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViQ29udGV4
dDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NmNiM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcApAQCAt
MCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCIKKworI2lmIEVOQUJMRShHRU9MT0NB
VElPTikKKworI2luY2x1ZGUgPFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7Cit1c2luZyBuYW1lc3BhY2UgUXRNb2JpbGl0eTsKKworc3RhdGljIGlubGlu
ZSBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIHRvTG9jYXRpb25Qcm92aWRlcih2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdCo+KGNsaWVudEluZm8pOworfQorCitzdGF0aWMgdm9pZCBsb2NhdGlvblN0YXJ0VXBk
YXRpbmcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIHRvTG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RhcnRV
cGRhdGluZygpOworfQorCitzdGF0aWMgdm9pZCBsb2NhdGlvblN0b3BVcGRhdGluZyhXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgdG9Mb2NhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT5zdG9wVXBkYXRpbmcoKTsKK30K
KworV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OmNy
ZWF0ZShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyKQoreworICAgIHJldHVybiBuZXcg
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KG1hbmFnZXIpOworfQorCitXS0dlb2xvY2F0aW9uUHJv
dmlkZXIqIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIoV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0KiBsb2NhdGlvbikKK3sKKyAgICBzdGF0aWMgV0tHZW9sb2NhdGlvblByb3ZpZGVy
IHByb3ZpZGVyID0geworICAgICAgICAwLCAvLyBUaGlzIGZlYXR1cmVzIHRoZSB2ZXJzaW9uLgor
ICAgICAgICBsb2NhdGlvbiwgLy8gVGhpcyBwb2ludHMgdG8gdGhlIG9iamVjdCBpbXBsZW1lbnRl
ci4KKyAgICAgICAgbG9jYXRpb25TdGFydFVwZGF0aW5nLCAvLyBUaGUgY2FsbGJhY2tzIGFyZSBu
ZXh0LgorICAgICAgICBsb2NhdGlvblN0b3BVcGRhdGluZworICAgIH07CisKKyAgICByZXR1cm4g
JnByb3ZpZGVyOworfQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OldlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdChXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyKQorICAgIDogbV9tYW5h
Z2VyKG1hbmFnZXIpCisgICAgLCBtX3NvdXJjZSgwKQoreworfQorCitXZWJHZW9sb2NhdGlvblBy
b3ZpZGVyUXQ6On5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoKQoreworfQorCit2b2lkIFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6dXBkYXRlVGltZW91dCgpCit7CisgICAgV0tHZW9sb2NhdGlv
bk1hbmFnZXJQcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7Cit9
CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3NpdGlvblVwZGF0ZWQoY29uc3Qg
UXRNb2JpbGl0eTo6UUdlb1Bvc2l0aW9uSW5mbyYgZ2VvUG9zaXRpb24pCit7CisgICAgaWYgKCFn
ZW9Qb3NpdGlvbi5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFFHZW9Db29yZGlu
YXRlIGNvb3JkID0gZ2VvUG9zaXRpb24uY29vcmRpbmF0ZSgpOworICAgIGRvdWJsZSBsYXRpdHVk
ZSA9IGNvb3JkLmxhdGl0dWRlKCk7CisgICAgZG91YmxlIGxvbmdpdHVkZSA9IGNvb3JkLmxvbmdp
dHVkZSgpOworICAgIGRvdWJsZSBhY2N1cmFjeSA9IGdlb1Bvc2l0aW9uLmF0dHJpYnV0ZShRR2Vv
UG9zaXRpb25JbmZvOjpIb3Jpem9udGFsQWNjdXJhY3kpOworICAgIGRvdWJsZSB0aW1lU3RhbXBJ
blNlY29uZHMgPSBnZW9Qb3NpdGlvbi50aW1lc3RhbXAoKS50b01TZWNzU2luY2VFcG9jaCgpIC8g
MTAwMDsKKworICAgIG1fbGFzdFBvc2l0aW9uLmFkb3B0KFdLR2VvbG9jYXRpb25Qb3NpdGlvbkNy
ZWF0ZSh0aW1lU3RhbXBJblNlY29uZHMsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7
CisKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRpb24obV9t
YW5hZ2VyLCBtX2xhc3RQb3NpdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0OjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBpZiAoIW1fc291cmNlKSB7CisgICAg
ICAgIGlmICghKG1fc291cmNlID0gUUdlb1Bvc2l0aW9uSW5mb1NvdXJjZTo6Y3JlYXRlRGVmYXVs
dFNvdXJjZSh0aGlzKSkpIHsKKyAgICAgICAgICAgIC8vIExldCB0aGUgbWFuYWdlciBrbm93biB0
aGF0IHRoZSBwcm92aWRlciBpcyBub3QgYXZhaWxhYmxlLgorICAgICAgICAgICAgV0tHZW9sb2Nh
dGlvbk1hbmFnZXJTZXRQcm92aWRlcihtX21hbmFnZXIsIDApOworICAgICAgICAgICAgLy8gTm90
aWZ5IGZhaWx1cmUgYXQgcmV0cmlldmluZyB0aGUgcG9zaXRpb24uCisgICAgICAgICAgICBXS0dl
b2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24obV9tYW5h
Z2VyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbm5lY3Qo
bV9zb3VyY2UsIFNJR05BTChwb3NpdGlvblVwZGF0ZWQoUUdlb1Bvc2l0aW9uSW5mbykpLCB0aGlz
LCBTTE9UKHBvc2l0aW9uVXBkYXRlZChRR2VvUG9zaXRpb25JbmZvKSkpOworICAgICAgICBjb25u
ZWN0KG1fc291cmNlLCBTSUdOQUwodXBkYXRlVGltZW91dCgpKSwgdGhpcywgU0xPVCh1cGRhdGVU
aW1lb3V0KCkpKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c3RhcnRVcGRhdGVzKCk7Cit9CisK
K3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdG9wVXBkYXRpbmcoKQoreworICAgIGlm
IChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3VyY2UtPnN0b3BVcGRhdGVzKCk7Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNDQ2ZWIzOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaApAQCAtMCwwICsxLDU4IEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisqLworCisKKyNpZm5kZWYgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
X2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0X2gKKworI2luY2x1ZGUgPFFPYmpl
Y3Q+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9uTWFuYWdlci5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1Jl
dGFpblB0ci5oPgorCituYW1lc3BhY2UgUXRNb2JpbGl0eSB7CitjbGFzcyBRR2VvUG9zaXRpb25J
bmZvU291cmNlOworY2xhc3MgUUdlb1Bvc2l0aW9uSW5mbzsKK30KKworY2xhc3MgV2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitwdWJsaWM6
CisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogY3JlYXRlKFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmKTsKKyAgICBzdGF0aWMgV0tHZW9sb2NhdGlvblByb3ZpZGVyKiBwcm92aWRl
cihXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqKTsKKworICAgIH5XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQoKTsKKworICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZvaWQgc3RvcFVwZGF0
aW5nKCk7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgdXBkYXRlVGltZW91dCgpOworICAg
IHZvaWQgcG9zaXRpb25VcGRhdGVkKGNvbnN0IFF0TW9iaWxpdHk6OlFHZW9Qb3NpdGlvbkluZm8m
KTsKKworcHJpdmF0ZToKKyAgICBRX0RJU0FCTEVfQ09QWShXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQpOworICAgIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChXS0dlb2xvY2F0aW9uTWFuYWdlclJl
Zik7CisKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtX21hbmFnZXI7CisgICAgV0tSZXRh
aW5QdHI8V0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBRdE1v
YmlsaXR5OjpRR2VvUG9zaXRpb25JbmZvU291cmNlKiBtX3NvdXJjZTsKK307CisKKyNlbmRpZiAv
KiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwppbmRleCAyNzc1ZThh
Li5mMzllZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMjY1LDYgKzI2NSw3IEBAIEhFQURFUlMgKz0g
XAogICAgIFVJUHJvY2Vzcy9xdC9WaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmggXAogICAgIFVJ
UHJvY2Vzcy9xdC9XZWJVbmRvQ29tbWFuZFF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0TWVudVByb3h5UXQuaCBcCisgICAgVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdC5oIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBV
SVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuaCBcCiAgICAgV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXApAQCAtNTAy
LDYgKzUwMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9WaWV3cG9ydEludGVy
YWN0aW9uRW5naW5lLmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlR
dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIFwKKyAgICBVSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJJbnNw
ZWN0b3JQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcCBc
Ci0tIAoxLjcuNC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110568</attachid>
            <date>2011-10-11 13:44:12 -0700</date>
            <delta_ts>2011-10-14 13:04:03 -0700</delta_ts>
            <desc>Previous fixes plus using Qt5 location.</desc>
            <filename>geolocation_qt5.patch</filename>
            <type>text/plain</type>
            <size>12436</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA5YzBmMTc2ZDNlZWFhODM2YjM4ZDVhNzlmOTVjMjRhM2FjMGE5YzllIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IFR1ZSwgMTEgT2N0IDIwMTEgMTY6Mzk6MDQgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBGaXhlZDogY3Jhc2ggY29uZGl0aW9uLCBNb2JpbGl0eSBjbGFzc2VzIGZv
cndhcmQgZGVjbGFyYXRpb24sIGNvbW1lbnRzLCBpbmxpbmUgZnVuY3Rpb24sIHVzaW5nCiBRdDUg
bG9jYXRpb24gbW9kdWxlLgoKU2lnbmVkLW9mZi1ieTogQWRlbmlsc29uIENhdmFsY2FudGkgPGFk
ZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMCArKysrKwogLi4uL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmggfCAgIDEyICstCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCAgICAgICB8ICAgMTAgKysKIC4uLi9V
SVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcCAgICAgIHwgIDExNyArKysr
KysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQuaCAgICAgICAgfCAgIDU2ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJv
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiA2IGZpbGVzIGNoYW5nZWQsIDIyMSBp
bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwCiBjcmVhdGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdhNjY5YjYuLjAxOWEwM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMyBAQAorMjAxMS0xMC0wOSAgQWRlbmlsc29uIENhdmFsY2FudGkgIDxhZGVuaWxz
b24uc2lsdmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdW1dLMl0gSW1wbGVtZW50IGdl
b2xvY2F0aW9uIHByb3ZpZGVyIGZvciBxdCBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTE5OQorCisgICAgICAgIEF1dGhvcjoga2VubmV0aC5y
LmNocmlzdGlhbnNlbkBub2tpYS5jb20KKyAgICAgICAgSW1wbGVtZW50cyBkZWZhdWx0IGxvY2F0
aW9uIHByb3ZpZGVyIGZvciBXSzIgUXRXZWJLaXQgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCk7
CisgICAgICAgIEFsbG93aW5nIFF0V2ViS2l0IGNsaWVudHMgdG8gaW1wbGVtZW50IG9yIG92ZXJy
aWRlIHRoZWlyIG93biBwcm92aWRlciB1c2luZyBXSzIgQVBJcy4KKyAgICAgICAgUmVtb3ZlIGNv
bnN0bmVzcyBvZiBjbGllbnQgcHJvdmlkZXIgYmVjYXVzZSBpdCBpcyBub3QgbmVjZXNzYXJ5Lgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1dlYkNvbnRleHRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKHRvTG9jYXRpb25Qcm92aWRlcik6
CisgICAgICAgIChsb2NhdGlvblN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAobG9jYXRpb25TdG9w
VXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcik6CisgICAgICAgIChX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCk6CisgICAg
ICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6On5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQp
OgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojp1cGRhdGVUaW1lb3V0KToKKyAg
ICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKToKKyAgICAg
ICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXQyLnBybzoKKwogMjAxMS0xMC0xMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWFjXSBTaG91bGQgYmUgYWJsZSB0byBkaXNwbGF5IG11bHRpLXBhZ2Ug
UERGcyBpbiBzdWJmcmFtZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggYmMyYmRkOS4uMTAxOTNhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5h
Z2VyLmgKQEAgLTMzLDE0ICszMywxNCBAQCBleHRlcm4gIkMiIHsKICNlbmRpZgogCiAvLyBQcm92
aWRlci4KLXR5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Qcm92aWRlclN0YXJ0VXBkYXRpbmdD
YWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Qcm92aWRl
clN0b3BVcGRhdGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlv
bk1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tHZW9s
b2NhdGlvblByb3ZpZGVyU3RhcnRVcGRhdGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lk
ICgqV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RvcFVwZGF0aW5nQ2FsbGJhY2spKFdLR2VvbG9jYXRp
b25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5mbyk7CiAKIHN0
cnVjdCBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgewotICAgIGludCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKLSAg
ICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsaWVudEluZm87Ci0gICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RhcnRV
cGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFVwZGF0aW5nOwot
ICAgIFdLR2VvbG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RvcFVwZGF0aW5nOworICAgIGludCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIHZvaWQgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLR2VvbG9jYXRpb25Q
cm92aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjayAgICBzdGFydFVwZGF0aW5nOworICAgIFdLR2Vv
bG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrICAgICBzdG9wVXBkYXRpbmc7CiB9
OwogdHlwZWRlZiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Qcm92
aWRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcApp
bmRleCBhZWY4ODZjLi45YjI4YmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViQ29udGV4dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViQ29udGV4dFF0LmNwcApAQCAtMjksNyArMjksMTMgQEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlN0
ZExpYkV4dHJhcy5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgorI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCIKKyNlbmRp
ZgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKwogI2luY2x1ZGUg
PFFDb3JlQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNlcz4KICNpbmNsdWRl
IDxRRGlyPgpAQCAtNjQsNiArNzAsMTAgQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAg
ICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0
U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVs
dERhdGFMb2NhdGlvbigpOworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyAgICBzdGF0aWMgV2Vi
R2VvbG9jYXRpb25Qcm92aWRlclF0KiBsb2NhdGlvbiA9IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dDo6Y3JlYXRlKHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkpKTsKKyAgICBXS0dlb2xv
Y2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKHRvQVBJKGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkp
LCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnByb3ZpZGVyKGxvY2F0aW9uKSk7CisjZW5kaWYK
IH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM2MDVmZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHBy
b2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgor
CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorCisjaW5jbHVkZSA8UXRMb2NhdGlvbi9RR2VvUG9z
aXRpb25JbmZvU291cmNlPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitzdGF0aWMgaW5s
aW5lIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogdG9Mb2NhdGlvblByb3ZpZGVyKHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0Kj4oY2xpZW50SW5mbyk7Cit9CisKK3N0YXRpYyB2b2lkIGxvY2F0aW9uU3RhcnRV
cGRhdGluZyhXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgdG9Mb2NhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT5zdGFy
dFVwZGF0aW5nKCk7Cit9CisKK3N0YXRpYyB2b2lkIGxvY2F0aW9uU3RvcFVwZGF0aW5nKFdLR2Vv
bG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnN0b3BVcGRhdGluZygpOwor
fQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6
Y3JlYXRlKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXIpCit7CisgICAgcmV0dXJuIG5l
dyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQobWFuYWdlcik7Cit9CisKK1dLR2VvbG9jYXRpb25Q
cm92aWRlciogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcihXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQqIGxvY2F0aW9uKQoreworICAgIHN0YXRpYyBXS0dlb2xvY2F0aW9uUHJvdmlk
ZXIgcHJvdmlkZXIgPSB7CisgICAgICAgIDAsIC8vIFRoaXMgZmVhdHVyZXMgdGhlIHZlcnNpb24u
CisgICAgICAgIGxvY2F0aW9uLCAvLyBUaGlzIHBvaW50cyB0byB0aGUgb2JqZWN0IGltcGxlbWVu
dGVyLgorICAgICAgICBsb2NhdGlvblN0YXJ0VXBkYXRpbmcsIC8vIFRoZSBjYWxsYmFja3MgYXJl
IG5leHQuCisgICAgICAgIGxvY2F0aW9uU3RvcFVwZGF0aW5nCisgICAgfTsKKworICAgIHJldHVy
biAmcHJvdmlkZXI7Cit9CisKK1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6V2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXIpCisgICAgOiBtX21h
bmFnZXIobWFuYWdlcikKKyAgICAsIG1fc291cmNlKDApCit7Cit9CisKK1dlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdDo6fldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCgpCit7Cit9CisKK3ZvaWQgV2Vi
R2VvbG9jYXRpb25Qcm92aWRlclF0Ojp1cGRhdGVUaW1lb3V0KCkKK3sKKyAgICBXS0dlb2xvY2F0
aW9uTWFuYWdlclByb3ZpZGVyRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24obV9tYW5hZ2VyKTsK
K30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnBvc2l0aW9uVXBkYXRlZChjb25z
dCBRR2VvUG9zaXRpb25JbmZvJiBnZW9Qb3NpdGlvbikKK3sKKyAgICBpZiAoIWdlb1Bvc2l0aW9u
LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUUdlb0Nvb3JkaW5hdGUgY29vcmQg
PSBnZW9Qb3NpdGlvbi5jb29yZGluYXRlKCk7CisgICAgZG91YmxlIGxhdGl0dWRlID0gY29vcmQu
bGF0aXR1ZGUoKTsKKyAgICBkb3VibGUgbG9uZ2l0dWRlID0gY29vcmQubG9uZ2l0dWRlKCk7Cisg
ICAgZG91YmxlIGFjY3VyYWN5ID0gZ2VvUG9zaXRpb24uYXR0cmlidXRlKFFHZW9Qb3NpdGlvbklu
Zm86Okhvcml6b250YWxBY2N1cmFjeSk7CisgICAgZG91YmxlIHRpbWVTdGFtcEluU2Vjb25kcyA9
IGdlb1Bvc2l0aW9uLnRpbWVzdGFtcCgpLnRvTVNlY3NTaW5jZUVwb2NoKCkgLyAxMDAwOworCisg
ICAgbV9sYXN0UG9zaXRpb24uYWRvcHQoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlKHRpbWVT
dGFtcEluU2Vjb25kcywgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsKKworICAgIFdL
R2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VQb3NpdGlvbihtX21hbmFnZXIsIG1f
bGFzdFBvc2l0aW9uLmdldCgpKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6
OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmICghbV9zb3VyY2UpIHsKKyAgICAgICAgaWYgKCEo
bV9zb3VyY2UgPSBRR2VvUG9zaXRpb25JbmZvU291cmNlOjpjcmVhdGVEZWZhdWx0U291cmNlKHRo
aXMpKSkgeworICAgICAgICAgICAgLy8gTGV0IHRoZSBtYW5hZ2VyIGtub3duIHRoYXQgdGhlIHBy
b3ZpZGVyIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdl
clNldFByb3ZpZGVyKG1fbWFuYWdlciwgMCk7CisgICAgICAgICAgICAvLyBOb3RpZnkgZmFpbHVy
ZSBhdCByZXRyaWV2aW5nIHRoZSBwb3NpdGlvbi4KKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25N
YW5hZ2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihtX21hbmFnZXIpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29ubmVjdChtX3NvdXJjZSwg
U0lHTkFMKHBvc2l0aW9uVXBkYXRlZChRR2VvUG9zaXRpb25JbmZvKSksIHRoaXMsIFNMT1QocG9z
aXRpb25VcGRhdGVkKFFHZW9Qb3NpdGlvbkluZm8pKSk7CisgICAgICAgIGNvbm5lY3QobV9zb3Vy
Y2UsIFNJR05BTCh1cGRhdGVUaW1lb3V0KCkpLCB0aGlzLCBTTE9UKHVwZGF0ZVRpbWVvdXQoKSkp
OworICAgIH0KKworICAgIG1fc291cmNlLT5zdGFydFVwZGF0ZXMoKTsKK30KKwordm9pZCBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgaWYgKG1fc291cmNl
KQorICAgICAgICBtX3NvdXJjZS0+c3RvcFVwZGF0ZXMoKTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShHRU9MT0NBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41YTBiY2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgICAg
Q29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyovCisKKworI2lmbmRlZiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXRfaAorI2RlZmlu
ZSBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNs
dWRlIDxXZWJLaXQyL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+
CisKK2NsYXNzIFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U7CitjbGFzcyBRR2VvUG9zaXRpb25JbmZv
OworCitjbGFzcyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUU9iamVjdCB7Cisg
ICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
KiBjcmVhdGUoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYpOworICAgIHN0YXRpYyBXS0dlb2xvY2F0
aW9uUHJvdmlkZXIqIHByb3ZpZGVyKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCopOworCisgICAg
fldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCgpOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7
CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworcHVibGljIFFfU0xPVFM6CisgICAgdm9pZCB1
cGRhdGVUaW1lb3V0KCk7CisgICAgdm9pZCBwb3NpdGlvblVwZGF0ZWQoY29uc3QgUUdlb1Bvc2l0
aW9uSW5mbyYpOworCitwcml2YXRlOgorICAgIFFfRElTQUJMRV9DT1BZKFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdCk7CisgICAgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KFdLR2VvbG9jYXRpb25N
YW5hZ2VyUmVmKTsKKworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIG1fbWFuYWdlcjsKKyAg
ICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY+IG1fbGFzdFBvc2l0aW9uOwor
ICAgIFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2UqIG1fc291cmNlOworfTsKKworI2VuZGlmIC8qIFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnBybyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IDI3NzVlOGEuLmYz
OWVmOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0yNjUsNiArMjY1LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgVUlQcm9jZXNzL3F0L1ZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBcCiAgICAgVUlQcm9j
ZXNzL3F0L1dlYlVuZG9Db21tYW5kUXQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRN
ZW51UHJveHlRdC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmggXAogICAgIFVJUHJv
Y2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5oIFwKICAgICBXZWJQcm9jZXNzL0Fw
cGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCkBAIC01MDIsNiAr
NTAzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1ZpZXdwb3J0SW50ZXJhY3Rp
b25FbmdpbmUuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9x
dC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkluc3BlY3Rv
clByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKLS0g
CjEuNy40LjEKCg==
</data>
<flag name="review"
          id="108110"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="108111"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111059</attachid>
            <date>2011-10-14 13:04:03 -0700</date>
            <delta_ts>2011-10-14 13:23:05 -0700</delta_ts>
            <desc>Setting to mutable the GeoPositionSource class member (thus respecting WKGeolocationManager const pointers)</desc>
            <filename>geolocation_const.patch</filename>
            <type>text/plain</type>
            <size>10934</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSA1ZjhlMGMwNTdlYzBkOTI1NDVmZTc5OWZkZWQzYmEwYzFiMmNjZmRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMTEgMTU6NTg6NDYgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBGaXhlZDogY3Jhc2ggY29uZGl0aW9uLCBjb25zdC1uZXNzLCBjb21tZW50
cywgaW5saW5lIGZ1bmN0aW9uLCB1c2luZ1F0NSBsb2NhdGlvbiBtb2R1bGUuCgpTaWduZWQtb2Zm
LWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+
Ci0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDMwICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNw
cCAgICAgICB8ICAgMTAgKysKIC4uLi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0LmNwcCAgICAgIHwgIDExOCArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9x
dC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCAgICAgICAgfCAgIDU2ICsrKysrKysrKwogU291
cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsK
IDUgZmlsZXMgY2hhbmdlZCwgMjE2IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzQxYjc5NS4u
ZDRjMTc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDExLTEwLTE0ICBBZGVuaWxz
b24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFtRdF1bV0syXSBJbXBsZW1lbnQgZ2VvbG9jYXRpb24gcHJvdmlkZXIgZm9yIHF0IHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTk5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4gPGhhdXNtYW5uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQmFzZWQgb24gcGF0Y2ggYnkgS2VubmV0aCBDaHJpc3RpYW5zZW4gPGtlbm5ldGgu
ci5jaHJpc3RpYW5zZW5Abm9raWEuY29tPgorICAgICAgICBJbXBsZW1lbnRzIGRlZmF1bHQgbG9j
YXRpb24gcHJvdmlkZXIgZm9yIFdLMiBRdFdlYktpdCAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0
KTsKKyAgICAgICAgQWxsb3dpbmcgUXRXZWJLaXQgY2xpZW50cyB0byBpbXBsZW1lbnQgb3Igb3Zl
cnJpZGUgdGhlaXIgb3duIHByb3ZpZGVyIHVzaW5nIFdLMiBBUElzLgorCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvV2ViQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdC5jcHA6IEFkZGVkLgorICAgICAgICAodG9Mb2NhdGlvblByb3Zp
ZGVyKToKKyAgICAgICAgKGxvY2F0aW9uU3RhcnRVcGRhdGluZyk6CisgICAgICAgIChsb2NhdGlv
blN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KToK
KyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6fldlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnVwZGF0ZVRpbWVvdXQp
OgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3NpdGlvblVwZGF0ZWQpOgor
ICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpzdGFydFVwZGF0aW5nKToKKyAgICAg
ICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Lmg6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdDIucHJvOgorCiAyMDExLTEwLTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTczNzUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCmluZGV4IGFl
Zjg4NmMuLjliMjhiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9X
ZWJDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0UXQuY3BwCkBAIC0yOSw3ICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU3RkTGliRXh0
cmFzLmgiCisjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCisjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQorI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgorI2VuZGlmCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCiAjaW5jbHVkZSA8UUNvcmVB
cHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRRGVza3RvcFNlcnZpY2VzPgogI2luY2x1ZGUgPFFEaXI+
CkBAIC02NCw2ICs3MCwxMCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogewogICAgIHFSZWdp
c3Rlck1ldGFUeXBlPFFQcm9jZXNzOjpFeGl0U3RhdHVzPigiUVByb2Nlc3M6OkV4aXRTdGF0dXMi
KTsKICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSBkZWZhdWx0RGF0YUxv
Y2F0aW9uKCk7CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorICAgIHN0YXRpYyBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQqIGxvY2F0aW9uID0gV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVh
dGUodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSkpOworICAgIFdLR2VvbG9jYXRpb25N
YW5hZ2VyU2V0UHJvdmlkZXIodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSksIFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIobG9jYXRpb24pKTsKKyNlbmRpZgogfQogCiB2
b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTNjNWZmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdC5jcHAKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgiCisKKyNpZiBF
TkFCTEUoR0VPTE9DQVRJT04pCisKKyNpbmNsdWRlIDxRdExvY2F0aW9uL1FHZW9Qb3NpdGlvbklu
Zm9Tb3VyY2U+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK3N0YXRpYyBpbmxpbmUgY29u
c3QgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiB0b0xvY2F0aW9uUHJvdmlkZXIoY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKK3sKKyAgICBjb25zdCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQgKnRt
cCA9IHN0YXRpY19jYXN0PGNvbnN0IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogPihjbGllbnRJ
bmZvKTsKKyAgICByZXR1cm4gdG1wOworfQorCitzdGF0aWMgdm9pZCBsb2NhdGlvblN0YXJ0VXBk
YXRpbmcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRvTG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+
c3RhcnRVcGRhdGluZygpOworfQorCitzdGF0aWMgdm9pZCBsb2NhdGlvblN0b3BVcGRhdGluZyhX
S0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCit7CisgICAgdG9Mb2NhdGlvblByb3ZpZGVyKGNsaWVudEluZm8pLT5zdG9wVXBk
YXRpbmcoKTsKK30KKworV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBXZWJHZW9sb2NhdGlvblBy
b3ZpZGVyUXQ6OmNyZWF0ZShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyKQoreworICAg
IHJldHVybiBuZXcgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KG1hbmFnZXIpOworfQorCitXS0dl
b2xvY2F0aW9uUHJvdmlkZXIqIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIoY29u
c3QgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBsb2NhdGlvbikKK3sKKyAgICBzdGF0aWMgV0tH
ZW9sb2NhdGlvblByb3ZpZGVyIHByb3ZpZGVyID0geworICAgICAgICAwLCAvLyBUaGlzIGZlYXR1
cmVzIHRoZSB2ZXJzaW9uLgorICAgICAgICBsb2NhdGlvbiwgLy8gVGhpcyBwb2ludHMgdG8gdGhl
IG9iamVjdCBpbXBsZW1lbnRlci4KKyAgICAgICAgbG9jYXRpb25TdGFydFVwZGF0aW5nLCAvLyBU
aGUgY2FsbGJhY2tzIGFyZSBuZXh0LgorICAgICAgICBsb2NhdGlvblN0b3BVcGRhdGluZworICAg
IH07CisKKyAgICByZXR1cm4gJnByb3ZpZGVyOworfQorCitXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQ6OldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtYW5h
Z2VyKQorICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX3NvdXJjZSgwKQoreworfQor
CitXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6On5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoKQor
eworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6dXBkYXRlVGltZW91dCgpCit7
CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0
aW9uKG1fbWFuYWdlcik7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwb3Np
dGlvblVwZGF0ZWQoY29uc3QgUUdlb1Bvc2l0aW9uSW5mbyYgZ2VvUG9zaXRpb24pCit7CisgICAg
aWYgKCFnZW9Qb3NpdGlvbi5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFFHZW9D
b29yZGluYXRlIGNvb3JkID0gZ2VvUG9zaXRpb24uY29vcmRpbmF0ZSgpOworICAgIGRvdWJsZSBs
YXRpdHVkZSA9IGNvb3JkLmxhdGl0dWRlKCk7CisgICAgZG91YmxlIGxvbmdpdHVkZSA9IGNvb3Jk
LmxvbmdpdHVkZSgpOworICAgIGRvdWJsZSBhY2N1cmFjeSA9IGdlb1Bvc2l0aW9uLmF0dHJpYnV0
ZShRR2VvUG9zaXRpb25JbmZvOjpIb3Jpem9udGFsQWNjdXJhY3kpOworICAgIGRvdWJsZSB0aW1l
U3RhbXBJblNlY29uZHMgPSBnZW9Qb3NpdGlvbi50aW1lc3RhbXAoKS50b01TZWNzU2luY2VFcG9j
aCgpIC8gMTAwMDsKKworICAgIG1fbGFzdFBvc2l0aW9uLmFkb3B0KFdLR2VvbG9jYXRpb25Qb3Np
dGlvbkNyZWF0ZSh0aW1lU3RhbXBJblNlY29uZHMsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3Vy
YWN5KSk7CisKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkQ2hhbmdlUG9zaXRp
b24obV9tYW5hZ2VyLCBtX2xhc3RQb3NpdGlvbi5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0OjpzdGFydFVwZGF0aW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc291
cmNlKSB7CisgICAgICAgIGlmICghKG1fc291cmNlID0gUUdlb1Bvc2l0aW9uSW5mb1NvdXJjZTo6
Y3JlYXRlRGVmYXVsdFNvdXJjZShjb25zdF9jYXN0PFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCog
Pih0aGlzKSkpKSB7CisgICAgICAgICAgICAvLyBMZXQgdGhlIG1hbmFnZXIga25vd24gdGhhdCB0
aGUgcHJvdmlkZXIgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25N
YW5hZ2VyU2V0UHJvdmlkZXIobV9tYW5hZ2VyLCAwKTsKKyAgICAgICAgICAgIC8vIE5vdGlmeSBm
YWlsdXJlIGF0IHJldHJpZXZpbmcgdGhlIHBvc2l0aW9uLgorICAgICAgICAgICAgV0tHZW9sb2Nh
dGlvbk1hbmFnZXJQcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25uZWN0KG1fc291
cmNlLCBTSUdOQUwocG9zaXRpb25VcGRhdGVkKFFHZW9Qb3NpdGlvbkluZm8pKSwgdGhpcywgU0xP
VChwb3NpdGlvblVwZGF0ZWQoUUdlb1Bvc2l0aW9uSW5mbykpKTsKKyAgICAgICAgY29ubmVjdCht
X3NvdXJjZSwgU0lHTkFMKHVwZGF0ZVRpbWVvdXQoKSksIHRoaXMsIFNMT1QodXBkYXRlVGltZW91
dCgpKSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnN0YXJ0VXBkYXRlcygpOworfQorCit2b2lk
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RvcFVwZGF0aW5nKCkgY29uc3QKK3sKKyAgICBp
ZiAobV9zb3VyY2UpCisgICAgICAgIG1fc291cmNlLT5zdG9wVXBkYXRlcygpOworfQorCisjZW5k
aWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjkyZDE1MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgKQEAgLTAsMCArMSw1NiBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dF9oCisjZGVmaW5lIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlIDxRT2Jq
ZWN0PgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tS
ZXRhaW5QdHIuaD4KKworY2xhc3MgUUdlb1Bvc2l0aW9uSW5mb1NvdXJjZTsKK2NsYXNzIFFHZW9Q
b3NpdGlvbkluZm87CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBR
T2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQqIGNyZWF0ZShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZik7CisgICAgc3RhdGlj
IFdLR2VvbG9jYXRpb25Qcm92aWRlciogcHJvdmlkZXIoY29uc3QgV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0Kik7CisKKyAgICB+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KCk7CisKKyAgICB2b2lk
IHN0YXJ0VXBkYXRpbmcoKSBjb25zdDsKKyAgICB2b2lkIHN0b3BVcGRhdGluZygpIGNvbnN0Owor
CitwdWJsaWMgUV9TTE9UUzoKKyAgICB2b2lkIHVwZGF0ZVRpbWVvdXQoKTsKKyAgICB2b2lkIHBv
c2l0aW9uVXBkYXRlZChjb25zdCBRR2VvUG9zaXRpb25JbmZvJik7CisKK3ByaXZhdGU6CisgICAg
UV9ESVNBQkxFX0NPUFkoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KTsKKyAgICBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYpOworCisgICAgV0tHZW9sb2Nh
dGlvbk1hbmFnZXJSZWYgbV9tYW5hZ2VyOworICAgIFdLUmV0YWluUHRyPFdLR2VvbG9jYXRpb25Q
b3NpdGlvblJlZj4gbV9sYXN0UG9zaXRpb247CisgICAgbXV0YWJsZSBRR2VvUG9zaXRpb25JbmZv
U291cmNlKiBtX3NvdXJjZTsKK307CisKKyNlbmRpZiAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybwppbmRleCBjZmQyNmVmLi4xYzg1OTg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBy
bwpAQCAtMjY3LDYgKzI2Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9WaWV3
cG9ydEludGVyYWN0aW9uRW5naW5lLmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJVbmRvQ29tbWFu
ZFF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0TWVudVByb3h5UXQuaCBcCisgICAg
VUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51
UHJveHlRdERlc2t0b3AuaCBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXApAQCAtNTA1LDYgKzUwNiw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIFVJUHJvY2Vzcy9xdC9WaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcCBcCiAgICAg
VUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9x
dC9XZWJDb250ZXh0UXQuY3BwIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlR
dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcCBcCiAgICAg
VUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcCBcCi0tIAoxLjcuNC4xCgo=
</data>
<flag name="review"
          id="108755"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111065</attachid>
            <date>2011-10-14 13:23:05 -0700</date>
            <delta_ts>2011-10-15 07:35:26 -0700</delta_ts>
            <desc>Setting to mutable the GeoPositionSource class member (thus respecting WKGeolocationManager const pointers), fixed new line in Changelog</desc>
            <filename>geolocation_const.patch</filename>
            <type>text/plain</type>
            <size>10911</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBmZmRkZDkzMGUyMWFiMjNhYTgyZjJjNzlkYjczZjEzMTE4NzUxNzgxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMTEgMTU6NTg6NDYgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBGaXhlZDogY3Jhc2ggY29uZGl0aW9uLCBjb25zdC1uZXNzLCBjb21tZW50
cywgaW5saW5lIGZ1bmN0aW9uLCB1c2luZ1F0NSBsb2NhdGlvbiBtb2R1bGUuCgpTaWduZWQtb2Zm
LWJ5OiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+
Ci0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDI5ICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNw
cCAgICAgICB8ICAgMTAgKysKIC4uLi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0LmNwcCAgICAgIHwgIDExOCArKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9x
dC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCAgICAgICAgfCAgIDU2ICsrKysrKysrKwogU291
cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsK
IDUgZmlsZXMgY2hhbmdlZCwgMjE1IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzQxYjc5NS4u
MDE0NmIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTEwLTE0ICBBZGVuaWxz
b24gQ2F2YWxjYW50aSAgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAg
IFtRdF1bV0syXSBJbXBsZW1lbnQgZ2VvbG9jYXRpb24gcHJvdmlkZXIgZm9yIHF0IHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTk5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFzZWQgb24gcGF0
Y2ggYnkgS2VubmV0aCBDaHJpc3RpYW5zZW4gPGtlbm5ldGguci5jaHJpc3RpYW5zZW5Abm9raWEu
Y29tPgorICAgICAgICBJbXBsZW1lbnRzIGRlZmF1bHQgbG9jYXRpb24gcHJvdmlkZXIgZm9yIFdL
MiBRdFdlYktpdCAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KTsKKyAgICAgICAgQWxsb3dpbmcg
UXRXZWJLaXQgY2xpZW50cyB0byBpbXBsZW1lbnQgb3Igb3ZlcnJpZGUgdGhlaXIgb3duIHByb3Zp
ZGVyIHVzaW5nIFdLMiBBUElzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9j
YXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKHRvTG9jYXRpb25Qcm92aWRlcik6CisgICAgICAgIChsb2NhdGlv
blN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAobG9jYXRpb25TdG9wVXBkYXRpbmcpOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUpOgorICAgICAgICAoV2ViR2VvbG9j
YXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcik6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQ6OldlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQ6On5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0Ojp1cGRhdGVUaW1lb3V0KToKKyAgICAgICAgKFdlYkdlb2xvY2F0
aW9uUHJvdmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0
aW9uUHJvdmlkZXJRdC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyLnBybzoKKwogMjAxMS0x
MC0xNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk3Mzc1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAppbmRleCBhZWY4ODZjLi45YjI4YmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcApAQCAtMjksNyArMjks
MTMgQEAKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgorI2luY2x1ZGUgIldLU2hh
cmVkQVBJQ2FzdC5oIgorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJXZWJHZW9s
b2NhdGlvblByb3ZpZGVyUXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKwogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8
UURlc2t0b3BTZXJ2aWNlcz4KICNpbmNsdWRlIDxRRGlyPgpAQCAtNjQsNiArNzAsMTAgQEAgdm9p
ZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmIHBhcmEKIHsKICAgICBxUmVnaXN0ZXJNZXRhVHlwZTxRUHJvY2Vzczo6
RXhpdFN0YXR1cz4oIlFQcm9jZXNzOjpFeGl0U3RhdHVzIik7CiAgICAgcGFyYW1ldGVycy5jb29r
aWVTdG9yYWdlRGlyZWN0b3J5ID0gZGVmYXVsdERhdGFMb2NhdGlvbigpOworI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKKyAgICBzdGF0aWMgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBsb2NhdGlv
biA9IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKHRvQVBJKGdlb2xvY2F0aW9uTWFu
YWdlclByb3h5KCkpKTsKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKHRvQVBJ
KGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkpLCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnBy
b3ZpZGVyKGxvY2F0aW9uKSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9y
bUludmFsaWRhdGVDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWUzYzVmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwCkBAIC0wLDAgKzEsMTE4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIgorCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorCisj
aW5jbHVkZSA8UXRMb2NhdGlvbi9RR2VvUG9zaXRpb25JbmZvU291cmNlPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitzdGF0aWMgaW5saW5lIGNvbnN0IFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdCogdG9Mb2NhdGlvblByb3ZpZGVyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAg
Y29uc3QgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0ICp0bXAgPSBzdGF0aWNfY2FzdDxjb25zdCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqID4oY2xpZW50SW5mbyk7CisgICAgcmV0dXJuIHRtcDsK
K30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdGFydFVwZGF0aW5nKFdLR2VvbG9jYXRpb25NYW5h
Z2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmcoKTsKK30KKwor
c3RhdGljIHZvaWQgbG9jYXRpb25TdG9wVXBkYXRpbmcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYg
Z2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRvTG9j
YXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdCogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUoV0tHZW9s
b2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAgICByZXR1cm4gbmV3IFdlYkdlb2xvY2F0
aW9uUHJvdmlkZXJRdChtYW5hZ2VyKTsKK30KKworV0tHZW9sb2NhdGlvblByb3ZpZGVyKiBXZWJH
ZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnByb3ZpZGVyKGNvbnN0IFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdCogbG9jYXRpb24pCit7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciBwcm92
aWRlciA9IHsKKyAgICAgICAgMCwgLy8gVGhpcyBmZWF0dXJlcyB0aGUgdmVyc2lvbi4KKyAgICAg
ICAgbG9jYXRpb24sIC8vIFRoaXMgcG9pbnRzIHRvIHRoZSBvYmplY3QgaW1wbGVtZW50ZXIuCisg
ICAgICAgIGxvY2F0aW9uU3RhcnRVcGRhdGluZywgLy8gVGhlIGNhbGxiYWNrcyBhcmUgbmV4dC4K
KyAgICAgICAgbG9jYXRpb25TdG9wVXBkYXRpbmcKKyAgICB9OworCisgICAgcmV0dXJuICZwcm92
aWRlcjsKK30KKworV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKKyAgICA6IG1fbWFuYWdlciht
YW5hZ2VyKQorICAgICwgbV9zb3VyY2UoMCkKK3sKK30KKworV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0Ojp+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KCkKK3sKK30KKwordm9pZCBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQ6OnVwZGF0ZVRpbWVvdXQoKQoreworICAgIFdLR2VvbG9jYXRpb25NYW5h
Z2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihtX21hbmFnZXIpOworfQorCit2
b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKGNvbnN0IFFHZW9Q
b3NpdGlvbkluZm8mIGdlb1Bvc2l0aW9uKQoreworICAgIGlmICghZ2VvUG9zaXRpb24uaXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBRR2VvQ29vcmRpbmF0ZSBjb29yZCA9IGdlb1Bv
c2l0aW9uLmNvb3JkaW5hdGUoKTsKKyAgICBkb3VibGUgbGF0aXR1ZGUgPSBjb29yZC5sYXRpdHVk
ZSgpOworICAgIGRvdWJsZSBsb25naXR1ZGUgPSBjb29yZC5sb25naXR1ZGUoKTsKKyAgICBkb3Vi
bGUgYWNjdXJhY3kgPSBnZW9Qb3NpdGlvbi5hdHRyaWJ1dGUoUUdlb1Bvc2l0aW9uSW5mbzo6SG9y
aXpvbnRhbEFjY3VyYWN5KTsKKyAgICBkb3VibGUgdGltZVN0YW1wSW5TZWNvbmRzID0gZ2VvUG9z
aXRpb24udGltZXN0YW1wKCkudG9NU2Vjc1NpbmNlRXBvY2goKSAvIDEwMDA7CisKKyAgICBtX2xh
c3RQb3NpdGlvbi5hZG9wdChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUodGltZVN0YW1wSW5T
ZWNvbmRzLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOworCisgICAgV0tHZW9sb2Nh
dGlvbk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKG1fbWFuYWdlciwgbV9sYXN0UG9z
aXRpb24uZ2V0KCkpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RhcnRV
cGRhdGluZygpIGNvbnN0Cit7CisgICAgaWYgKCFtX3NvdXJjZSkgeworICAgICAgICBpZiAoISht
X3NvdXJjZSA9IFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U6OmNyZWF0ZURlZmF1bHRTb3VyY2UoY29u
c3RfY2FzdDxXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqID4odGhpcykpKSkgeworICAgICAgICAg
ICAgLy8gTGV0IHRoZSBtYW5hZ2VyIGtub3duIHRoYXQgdGhlIHByb3ZpZGVyIGlzIG5vdCBhdmFp
bGFibGUuCisgICAgICAgICAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFByb3ZpZGVyKG1fbWFu
YWdlciwgMCk7CisgICAgICAgICAgICAvLyBOb3RpZnkgZmFpbHVyZSBhdCByZXRyaWV2aW5nIHRo
ZSBwb3NpdGlvbi4KKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRG
YWlsVG9EZXRlcm1pbmVQb3NpdGlvbihtX21hbmFnZXIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgY29ubmVjdChtX3NvdXJjZSwgU0lHTkFMKHBvc2l0aW9uVXBk
YXRlZChRR2VvUG9zaXRpb25JbmZvKSksIHRoaXMsIFNMT1QocG9zaXRpb25VcGRhdGVkKFFHZW9Q
b3NpdGlvbkluZm8pKSk7CisgICAgICAgIGNvbm5lY3QobV9zb3VyY2UsIFNJR05BTCh1cGRhdGVU
aW1lb3V0KCkpLCB0aGlzLCBTTE9UKHVwZGF0ZVRpbWVvdXQoKSkpOworICAgIH0KKworICAgIG1f
c291cmNlLT5zdGFydFVwZGF0ZXMoKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQ6OnN0b3BVcGRhdGluZygpIGNvbnN0Cit7CisgICAgaWYgKG1fc291cmNlKQorICAgICAgICBt
X3NvdXJjZS0+c3RvcFVwZGF0ZXMoKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmQxNTI4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgICAgQ29weXJpZ2h0IChD
KSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisK
KworI2lmbmRlZiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXRfaAorI2RlZmluZSBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXRfaAorCisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0dlb2xvY2F0aW9u
UG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK2NsYXNzIFFH
ZW9Qb3NpdGlvbkluZm9Tb3VyY2U7CitjbGFzcyBRR2VvUG9zaXRpb25JbmZvOworCitjbGFzcyBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QK
K3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KiBjcmVhdGUoV0tH
ZW9sb2NhdGlvbk1hbmFnZXJSZWYpOworICAgIHN0YXRpYyBXS0dlb2xvY2F0aW9uUHJvdmlkZXIq
IHByb3ZpZGVyKGNvbnN0IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCopOworCisgICAgfldlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdCgpOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgY29uc3Q7
CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoKSBjb25zdDsKKworcHVibGljIFFfU0xPVFM6CisgICAg
dm9pZCB1cGRhdGVUaW1lb3V0KCk7CisgICAgdm9pZCBwb3NpdGlvblVwZGF0ZWQoY29uc3QgUUdl
b1Bvc2l0aW9uSW5mbyYpOworCitwcml2YXRlOgorICAgIFFfRElTQUJMRV9DT1BZKFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdCk7CisgICAgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmKTsKKworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIG1fbWFuYWdl
cjsKKyAgICBXS1JldGFpblB0cjxXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWY+IG1fbGFzdFBvc2l0
aW9uOworICAgIG11dGFibGUgUUdlb1Bvc2l0aW9uSW5mb1NvdXJjZSogbV9zb3VyY2U7Cit9Owor
CisjZW5kaWYgLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0X2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIucHJvIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KaW5k
ZXggY2ZkMjZlZi4uMWM4NTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5w
cm8KKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTI2Nyw2ICsyNjcsNyBAQCBI
RUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvcXQvVmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5o
IFwKICAgICBVSVByb2Nlc3MvcXQvV2ViVW5kb0NvbW1hbmRRdC5oIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmggXAorICAgIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQu
aCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmggXAogICAg
IFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
IFwKQEAgLTUwNSw2ICs1MDYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvcXQvVmll
d3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0
TWVudVByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcCBcCisg
ICAgVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9xdC9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQYWdlUHJv
eHlRdC5jcHAgXAotLSAKMS43LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111134</attachid>
            <date>2011-10-15 07:35:26 -0700</date>
            <delta_ts>2011-10-17 09:05:30 -0700</delta_ts>
            <desc>Previous fixes, plus virtual destructor/no tmp variable</desc>
            <filename>geolocation_const_virtual.patch</filename>
            <type>text/plain</type>
            <size>10870</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBkNDVhNjQ1MTJkNWUwNGMwOWY4YzQ5Y2UwMzgwODBmMDZlN2MxMGJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMTEgMTU6NTg6NDYgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBGaXhlZDogY3Jhc2gsIGNvbnN0LW5lc3MsIGNvbW1lbnRzLCBpbmxpbmUg
ZnVuY3Rpb24sIFF0NSBsb2NhdGlvbiwgdmlydHVhbCBkZXN0cnVjdG9yLgoKU2lnbmVkLW9mZi1i
eTogQWRlbmlsc29uIENhdmFsY2FudGkgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgot
LS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAzMCArKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAg
ICAgICAgfCAgIDEwICsrCiAuLi4vVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dC5jcHAgICAgICB8ICAxMTcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvcXQv
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmggICAgICAgIHwgICA1NiArKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnBybyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
NSBmaWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNDFiNzk1Li5j
OGFkZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMTAtMTQgIEFkZW5pbHNv
biBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
W1F0XVtXSzJdIEltcGxlbWVudCBnZW9sb2NhdGlvbiBwcm92aWRlciBmb3IgcXQgcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRj
aCBieSBLZW5uZXRoIENocmlzdGlhbnNlbiA8a2VubmV0aC5yLmNocmlzdGlhbnNlbkBub2tpYS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50cyBkZWZhdWx0IGxvY2F0aW9uIHByb3ZpZGVyIGZvciBX
SzIgUXRXZWJLaXQgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCksCisgICAgICAgIGFsbG93aW5n
IFF0V2ViS2l0IGNsaWVudHMgdG8gaW1wbGVtZW50IG9yIG92ZXJyaWRlIHRoZWlyIG93biBwcm92
aWRlciB1c2luZyBXSzIgQVBJcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xv
Y2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNw
cDogQWRkZWQuCisgICAgICAgICh0b0xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAobG9jYXRp
b25TdGFydFVwZGF0aW5nKToKKyAgICAgICAgKGxvY2F0aW9uU3RvcFVwZGF0aW5nKToKKyAgICAg
ICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0Ojp+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6dXBkYXRlVGltZW91dCk6CisgICAgICAgIChXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQ6OnBvc2l0aW9uVXBkYXRlZCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi5wcm86CisKIDIwMTEt
MTAtMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NzM3NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKaW5kZXggYWVmODg2Yy4uOWIyOGJkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKQEAgLTI5LDcgKzI5
LDEzIEBACiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJTdGRMaWJFeHRyYXMuaCIKKyNpbmNsdWRlICJXS1No
YXJlZEFQSUNhc3QuaCIKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5jbHVkZSAiV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0LmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCisKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUg
PFFEZXNrdG9wU2VydmljZXM+CiAjaW5jbHVkZSA8UURpcj4KQEAgLTY0LDYgKzcwLDEwIEBAIHZv
aWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhCiB7CiAgICAgcVJlZ2lzdGVyTWV0YVR5cGU8UVByb2Nlc3M6
OkV4aXRTdGF0dXM+KCJRUHJvY2Vzczo6RXhpdFN0YXR1cyIpOwogICAgIHBhcmFtZXRlcnMuY29v
a2llU3RvcmFnZURpcmVjdG9yeSA9IGRlZmF1bHREYXRhTG9jYXRpb24oKTsKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisgICAgc3RhdGljIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRp
b24gPSBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OmNyZWF0ZSh0b0FQSShnZW9sb2NhdGlvbk1h
bmFnZXJQcm94eSgpKSk7CisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcih0b0FQ
SShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpKSwgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpw
cm92aWRlcihsb2NhdGlvbikpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZv
cm1JbnZhbGlkYXRlQ29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmZiMzQxMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNwcApAQCAtMCwwICsxLDEx
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCIKKworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKwor
I2luY2x1ZGUgPFF0TG9jYXRpb24vUUdlb1Bvc2l0aW9uSW5mb1NvdXJjZT4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworc3RhdGljIGlubGluZSBjb25zdCBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQqIHRvTG9jYXRpb25Qcm92aWRlcihjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqPihjbGll
bnRJbmZvKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdGFydFVwZGF0aW5nKFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9uTWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICB0b0xvY2F0aW9uUHJvdmlkZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmco
KTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRpb25TdG9wVXBkYXRpbmcoV0tHZW9sb2NhdGlvbk1h
bmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIHRvTG9jYXRpb25Qcm92aWRlcihjbGllbnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7Cit9CisK
K1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVh
dGUoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAgICByZXR1cm4gbmV3IFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdChtYW5hZ2VyKTsKK30KKworV0tHZW9sb2NhdGlvblByb3Zp
ZGVyKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnByb3ZpZGVyKGNvbnN0IFdlYkdlb2xvY2F0
aW9uUHJvdmlkZXJRdCogbG9jYXRpb24pCit7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92
aWRlciBwcm92aWRlciA9IHsKKyAgICAgICAgMCwgLy8gVGhpcyBmZWF0dXJlcyB0aGUgdmVyc2lv
bi4KKyAgICAgICAgbG9jYXRpb24sIC8vIFRoaXMgcG9pbnRzIHRvIHRoZSBvYmplY3QgaW1wbGVt
ZW50ZXIuCisgICAgICAgIGxvY2F0aW9uU3RhcnRVcGRhdGluZywgLy8gVGhlIGNhbGxiYWNrcyBh
cmUgbmV4dC4KKyAgICAgICAgbG9jYXRpb25TdG9wVXBkYXRpbmcKKyAgICB9OworCisgICAgcmV0
dXJuICZwcm92aWRlcjsKK30KKworV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKKyAgICA6IG1f
bWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9zb3VyY2UoMCkKK3sKK30KKworV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0Ojp+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KCkKK3sKK30KKwordm9pZCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnVwZGF0ZVRpbWVvdXQoKQoreworICAgIFdLR2VvbG9j
YXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihtX21hbmFnZXIp
OworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKGNv
bnN0IFFHZW9Qb3NpdGlvbkluZm8mIGdlb1Bvc2l0aW9uKQoreworICAgIGlmICghZ2VvUG9zaXRp
b24uaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBRR2VvQ29vcmRpbmF0ZSBjb29y
ZCA9IGdlb1Bvc2l0aW9uLmNvb3JkaW5hdGUoKTsKKyAgICBkb3VibGUgbGF0aXR1ZGUgPSBjb29y
ZC5sYXRpdHVkZSgpOworICAgIGRvdWJsZSBsb25naXR1ZGUgPSBjb29yZC5sb25naXR1ZGUoKTsK
KyAgICBkb3VibGUgYWNjdXJhY3kgPSBnZW9Qb3NpdGlvbi5hdHRyaWJ1dGUoUUdlb1Bvc2l0aW9u
SW5mbzo6SG9yaXpvbnRhbEFjY3VyYWN5KTsKKyAgICBkb3VibGUgdGltZVN0YW1wSW5TZWNvbmRz
ID0gZ2VvUG9zaXRpb24udGltZXN0YW1wKCkudG9NU2Vjc1NpbmNlRXBvY2goKSAvIDEwMDA7CisK
KyAgICBtX2xhc3RQb3NpdGlvbi5hZG9wdChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUodGlt
ZVN0YW1wSW5TZWNvbmRzLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOworCisgICAg
V0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRlckRpZENoYW5nZVBvc2l0aW9uKG1fbWFuYWdlciwg
bV9sYXN0UG9zaXRpb24uZ2V0KCkpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dDo6c3RhcnRVcGRhdGluZygpIGNvbnN0Cit7CisgICAgaWYgKCFtX3NvdXJjZSkgeworICAgICAg
ICBpZiAoIShtX3NvdXJjZSA9IFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2U6OmNyZWF0ZURlZmF1bHRT
b3VyY2UoY29uc3RfY2FzdDxXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqPih0aGlzKSkpKSB7Cisg
ICAgICAgICAgICAvLyBMZXQgdGhlIG1hbmFnZXIga25vd24gdGhhdCB0aGUgcHJvdmlkZXIgaXMg
bm90IGF2YWlsYWJsZS4KKyAgICAgICAgICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlk
ZXIobV9tYW5hZ2VyLCAwKTsKKyAgICAgICAgICAgIC8vIE5vdGlmeSBmYWlsdXJlIGF0IHJldHJp
ZXZpbmcgdGhlIHBvc2l0aW9uLgorICAgICAgICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92
aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKG1fbWFuYWdlcik7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25uZWN0KG1fc291cmNlLCBTSUdOQUwocG9z
aXRpb25VcGRhdGVkKFFHZW9Qb3NpdGlvbkluZm8pKSwgdGhpcywgU0xPVChwb3NpdGlvblVwZGF0
ZWQoUUdlb1Bvc2l0aW9uSW5mbykpKTsKKyAgICAgICAgY29ubmVjdChtX3NvdXJjZSwgU0lHTkFM
KHVwZGF0ZVRpbWVvdXQoKSksIHRoaXMsIFNMT1QodXBkYXRlVGltZW91dCgpKSk7CisgICAgfQor
CisgICAgbV9zb3VyY2UtPnN0YXJ0VXBkYXRlcygpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdDo6c3RvcFVwZGF0aW5nKCkgY29uc3QKK3sKKyAgICBpZiAobV9zb3VyY2UpCisg
ICAgICAgIG1fc291cmNlLT5zdG9wVXBkYXRlcygpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdF
T0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmU1OWUzZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKworCisjaWZuZGVmIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oCisjZGVmaW5lIFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oCisKKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUg
PFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKwor
Y2xhc3MgUUdlb1Bvc2l0aW9uSW5mb1NvdXJjZTsKK2NsYXNzIFFHZW9Qb3NpdGlvbkluZm87CisK
K2NsYXNzIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBR
X09CSkVDVAorcHVibGljOgorICAgIHN0YXRpYyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGNy
ZWF0ZShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZik7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Q
cm92aWRlciogcHJvdmlkZXIoY29uc3QgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Kik7CisKKyAg
ICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc3RhcnRV
cGRhdGluZygpIGNvbnN0OworICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgY29uc3Q7CisKK3B1Ymxp
YyBRX1NMT1RTOgorICAgIHZvaWQgdXBkYXRlVGltZW91dCgpOworICAgIHZvaWQgcG9zaXRpb25V
cGRhdGVkKGNvbnN0IFFHZW9Qb3NpdGlvbkluZm8mKTsKKworcHJpdmF0ZToKKyAgICBRX0RJU0FC
TEVfQ09QWShXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOworICAgIFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXJRdChXS0dlb2xvY2F0aW9uTWFuYWdlclJlZik7CisKKyAgICBXS0dlb2xvY2F0aW9uTWFu
YWdlclJlZiBtX21hbmFnZXI7CisgICAgV0tSZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBvc2l0aW9u
UmVmPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBtdXRhYmxlIFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2Uq
IG1fc291cmNlOworfTsKKworI2VuZGlmIC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybyBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIucHJvCmluZGV4IGNmZDI2ZWYuLjFjODU5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0y
NjcsNiArMjY3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1ZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmUuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlVuZG9Db21tYW5kUXQuaCBc
CiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRNZW51UHJveHlRdC5oIFwKKyAgICBVSVByb2Nl
c3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQ
b3B1cE1lbnVQcm94eVF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0
RGVza3RvcC5oIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIuaCBcCkBAIC01MDUsNiArNTA2LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
VUlQcm9jZXNzL3F0L1ZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNv
bnRleHRRdC5jcHAgXAorICAgIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQu
Y3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eVF0LmNwcCBc
CiAgICAgVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nl
c3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwKLS0gCjEuNy40LjEKCg==
</data>
<flag name="review"
          id="108864"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111272</attachid>
            <date>2011-10-17 09:05:30 -0700</date>
            <delta_ts>2011-10-18 03:02:10 -0700</delta_ts>
            <desc>Previous fixes, plus removed an unnecessary header file.</desc>
            <filename>geolocation_const_virtual_clean.patch</filename>
            <type>text/plain</type>
            <size>10843</size>
            <attacher name="Adenilson Cavalcanti Silva">savagobr</attacher>
            
              <data encoding="base64">RnJvbSBhMzVjZWVmNzgzNjhhOTk5ODBjZTMxMDY5ZDY4ZTU0NGEzY2U5MWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGVuaWxzb24gQ2F2YWxjYW50aSA8YWRlbmlsc29uLnNpbHZh
QG9wZW5ib3NzYS5vcmc+CkRhdGU6IEZyaSwgMTQgT2N0IDIwMTEgMTU6NTg6NDYgLTA0MDAKU3Vi
amVjdDogW1BBVENIXSBGaXhlZDogY3Jhc2gsIGNvbnN0LW5lc3MsIGNvbW1lbnRzLCBpbmxpbmUg
ZnVuY3Rpb24sIFF0NSBsb2NhdGlvbiwgdmlydHVhbCBkZXN0cnVjdG9yLgoKU2lnbmVkLW9mZi1i
eTogQWRlbmlsc29uIENhdmFsY2FudGkgPGFkZW5pbHNvbi5zaWx2YUBvcGVuYm9zc2Eub3JnPgot
LS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAzMCArKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAg
ICAgICAgfCAgICA5ICsrCiAuLi4vVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJR
dC5jcHAgICAgICB8ICAxMTcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvcXQv
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmggICAgICAgIHwgICA1NiArKysrKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnBybyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
NSBmaWxlcyBjaGFuZ2VkLCAyMTQgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Q
cm92aWRlclF0LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzNDFiNzk1Li5k
MmYzMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMTAtMTQgIEFkZW5pbHNv
biBDYXZhbGNhbnRpICA8YWRlbmlsc29uLnNpbHZhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
W1F0XVtXSzJdIEltcGxlbWVudCBnZW9sb2NhdGlvbiBwcm92aWRlciBmb3IgcXQgcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KKworICAgICAgICBCYXNlZCBvbiBwYXRj
aCBieSBLZW5uZXRoIENocmlzdGlhbnNlbiA8a2VubmV0aC5yLmNocmlzdGlhbnNlbkBub2tpYS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50cyBkZWZhdWx0IGxvY2F0aW9uIHByb3ZpZGVyIGZvciBX
SzIgUXRXZWJLaXQgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCksCisgICAgICAgIGFsbG93aW5n
IFF0V2ViS2l0IGNsaWVudHMgdG8gaW1wbGVtZW50IG9yIG92ZXJyaWRlIHRoZWlyIG93biBwcm92
aWRlciB1c2luZyBXSzIgQVBJcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xv
Y2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmNw
cDogQWRkZWQuCisgICAgICAgICh0b0xvY2F0aW9uUHJvdmlkZXIpOgorICAgICAgICAobG9jYXRp
b25TdGFydFVwZGF0aW5nKToKKyAgICAgICAgKGxvY2F0aW9uU3RvcFVwZGF0aW5nKToKKyAgICAg
ICAgKFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdDo6cHJvdmlkZXIpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQpOgorICAgICAgICAoV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0Ojp+V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0KToKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJRdDo6dXBkYXRlVGltZW91dCk6CisgICAgICAgIChXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQ6OnBvc2l0aW9uVXBkYXRlZCk6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
blByb3ZpZGVyUXQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qcm92
aWRlclF0OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi5wcm86CisKIDIwMTEt
MTAtMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NzM3NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKaW5kZXggYWVmODg2Yy4uMWYzNzdiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKQEAgLTI5LDcgKzI5
LDEyIEBACiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCisjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgiCisjZW5k
aWYKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisKICNpbmNsdWRl
IDxRQ29yZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFEZXNrdG9wU2VydmljZXM+CiAjaW5jbHVk
ZSA8UURpcj4KQEAgLTY0LDYgKzY5LDEwIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiB7CiAg
ICAgcVJlZ2lzdGVyTWV0YVR5cGU8UVByb2Nlc3M6OkV4aXRTdGF0dXM+KCJRUHJvY2Vzczo6RXhp
dFN0YXR1cyIpOwogICAgIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeSA9IGRlZmF1
bHREYXRhTG9jYXRpb24oKTsKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisgICAgc3RhdGljIFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRpb24gPSBXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQ6OmNyZWF0ZSh0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpKSk7CisgICAgV0tHZW9s
b2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcih0b0FQSShnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgp
KSwgV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojpwcm92aWRlcihsb2NhdGlvbikpOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMzQxMzUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0LmNwcApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBw
cm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuaCIK
KworI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKworI2luY2x1ZGUgPFF0TG9jYXRpb24vUUdlb1Bv
c2l0aW9uSW5mb1NvdXJjZT4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworc3RhdGljIGlu
bGluZSBjb25zdCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIHRvTG9jYXRpb25Qcm92aWRlcihj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqPihjbGllbnRJbmZvKTsKK30KKworc3RhdGljIHZvaWQg
bG9jYXRpb25TdGFydFVwZGF0aW5nKFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9u
TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB0b0xvY2F0aW9uUHJvdmlk
ZXIoY2xpZW50SW5mbyktPnN0YXJ0VXBkYXRpbmcoKTsKK30KKworc3RhdGljIHZvaWQgbG9jYXRp
b25TdG9wVXBkYXRpbmcoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHRvTG9jYXRpb25Qcm92aWRlcihjbGll
bnRJbmZvKS0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCog
V2ViR2VvbG9jYXRpb25Qcm92aWRlclF0OjpjcmVhdGUoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYg
bWFuYWdlcikKK3sKKyAgICByZXR1cm4gbmV3IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChtYW5h
Z2VyKTsKK30KKworV0tHZW9sb2NhdGlvblByb3ZpZGVyKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVy
UXQ6OnByb3ZpZGVyKGNvbnN0IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdCogbG9jYXRpb24pCit7
CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciBwcm92aWRlciA9IHsKKyAgICAgICAg
MCwgLy8gVGhpcyBmZWF0dXJlcyB0aGUgdmVyc2lvbi4KKyAgICAgICAgbG9jYXRpb24sIC8vIFRo
aXMgcG9pbnRzIHRvIHRoZSBvYmplY3QgaW1wbGVtZW50ZXIuCisgICAgICAgIGxvY2F0aW9uU3Rh
cnRVcGRhdGluZywgLy8gVGhlIGNhbGxiYWNrcyBhcmUgbmV4dC4KKyAgICAgICAgbG9jYXRpb25T
dG9wVXBkYXRpbmcKKyAgICB9OworCisgICAgcmV0dXJuICZwcm92aWRlcjsKK30KKworV2ViR2Vv
bG9jYXRpb25Qcm92aWRlclF0OjpXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQoV0tHZW9sb2NhdGlv
bk1hbmFnZXJSZWYgbWFuYWdlcikKKyAgICA6IG1fbWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9z
b3VyY2UoMCkKK3sKK30KKworV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0Ojp+V2ViR2VvbG9jYXRp
b25Qcm92aWRlclF0KCkKK3sKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQ6OnVw
ZGF0ZVRpbWVvdXQoKQoreworICAgIFdLR2VvbG9jYXRpb25NYW5hZ2VyUHJvdmlkZXJEaWRGYWls
VG9EZXRlcm1pbmVQb3NpdGlvbihtX21hbmFnZXIpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJRdDo6cG9zaXRpb25VcGRhdGVkKGNvbnN0IFFHZW9Qb3NpdGlvbkluZm8mIGdlb1Bv
c2l0aW9uKQoreworICAgIGlmICghZ2VvUG9zaXRpb24uaXNWYWxpZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBRR2VvQ29vcmRpbmF0ZSBjb29yZCA9IGdlb1Bvc2l0aW9uLmNvb3JkaW5hdGUo
KTsKKyAgICBkb3VibGUgbGF0aXR1ZGUgPSBjb29yZC5sYXRpdHVkZSgpOworICAgIGRvdWJsZSBs
b25naXR1ZGUgPSBjb29yZC5sb25naXR1ZGUoKTsKKyAgICBkb3VibGUgYWNjdXJhY3kgPSBnZW9Q
b3NpdGlvbi5hdHRyaWJ1dGUoUUdlb1Bvc2l0aW9uSW5mbzo6SG9yaXpvbnRhbEFjY3VyYWN5KTsK
KyAgICBkb3VibGUgdGltZVN0YW1wSW5TZWNvbmRzID0gZ2VvUG9zaXRpb24udGltZXN0YW1wKCku
dG9NU2Vjc1NpbmNlRXBvY2goKSAvIDEwMDA7CisKKyAgICBtX2xhc3RQb3NpdGlvbi5hZG9wdChX
S0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGUodGltZVN0YW1wSW5TZWNvbmRzLCBsYXRpdHVkZSwg
bG9uZ2l0dWRlLCBhY2N1cmFjeSkpOworCisgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRl
ckRpZENoYW5nZVBvc2l0aW9uKG1fbWFuYWdlciwgbV9sYXN0UG9zaXRpb24uZ2V0KCkpOworfQor
Cit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RhcnRVcGRhdGluZygpIGNvbnN0Cit7
CisgICAgaWYgKCFtX3NvdXJjZSkgeworICAgICAgICBpZiAoIShtX3NvdXJjZSA9IFFHZW9Qb3Np
dGlvbkluZm9Tb3VyY2U6OmNyZWF0ZURlZmF1bHRTb3VyY2UoY29uc3RfY2FzdDxXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyUXQqPih0aGlzKSkpKSB7CisgICAgICAgICAgICAvLyBMZXQgdGhlIG1hbmFn
ZXIga25vd24gdGhhdCB0aGUgcHJvdmlkZXIgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgICAgICAg
IFdLR2VvbG9jYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIobV9tYW5hZ2VyLCAwKTsKKyAgICAgICAg
ICAgIC8vIE5vdGlmeSBmYWlsdXJlIGF0IHJldHJpZXZpbmcgdGhlIHBvc2l0aW9uLgorICAgICAg
ICAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJQcm92aWRlckRpZEZhaWxUb0RldGVybWluZVBvc2l0
aW9uKG1fbWFuYWdlcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBjb25uZWN0KG1fc291cmNlLCBTSUdOQUwocG9zaXRpb25VcGRhdGVkKFFHZW9Qb3NpdGlvbklu
Zm8pKSwgdGhpcywgU0xPVChwb3NpdGlvblVwZGF0ZWQoUUdlb1Bvc2l0aW9uSW5mbykpKTsKKyAg
ICAgICAgY29ubmVjdChtX3NvdXJjZSwgU0lHTkFMKHVwZGF0ZVRpbWVvdXQoKSksIHRoaXMsIFNM
T1QodXBkYXRlVGltZW91dCgpKSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnN0YXJ0VXBkYXRl
cygpOworfQorCit2b2lkIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdDo6c3RvcFVwZGF0aW5nKCkg
Y29uc3QKK3sKKyAgICBpZiAobV9zb3VyY2UpCisgICAgICAgIG1fc291cmNlLT5zdG9wVXBkYXRl
cygpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1OWUzZDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRlclF0LmgK
QEAgLTAsMCArMSw1NiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworCisjaWZuZGVmIFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJRdF9oCisjZGVmaW5lIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oCisK
KyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2NhdGlvbk1hbmFn
ZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworY2xhc3MgUUdlb1Bvc2l0aW9uSW5mb1NvdXJj
ZTsKK2NsYXNzIFFHZW9Qb3NpdGlvbkluZm87CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJRdCA6IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIHN0YXRp
YyBXZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQqIGNyZWF0ZShXS0dlb2xvY2F0aW9uTWFuYWdlclJl
Zik7CisgICAgc3RhdGljIFdLR2VvbG9jYXRpb25Qcm92aWRlciogcHJvdmlkZXIoY29uc3QgV2Vi
R2VvbG9jYXRpb25Qcm92aWRlclF0Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlvblBy
b3ZpZGVyUXQoKTsKKworICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIGNvbnN0OworICAgIHZvaWQg
c3RvcFVwZGF0aW5nKCkgY29uc3Q7CisKK3B1YmxpYyBRX1NMT1RTOgorICAgIHZvaWQgdXBkYXRl
VGltZW91dCgpOworICAgIHZvaWQgcG9zaXRpb25VcGRhdGVkKGNvbnN0IFFHZW9Qb3NpdGlvbklu
Zm8mKTsKKworcHJpdmF0ZToKKyAgICBRX0RJU0FCTEVfQ09QWShXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyUXQpOworICAgIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdChXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZik7CisKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBtX21hbmFnZXI7CisgICAgV0tS
ZXRhaW5QdHI8V0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBt
dXRhYmxlIFFHZW9Qb3NpdGlvbkluZm9Tb3VyY2UqIG1fc291cmNlOworfTsKKworI2VuZGlmIC8q
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJRdF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnBybyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IGNmZDI2ZWYu
LjFjODU5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0yNjcsNiArMjY3LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgVUlQcm9jZXNzL3F0L1ZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaCBcCiAgICAgVUlQ
cm9jZXNzL3F0L1dlYlVuZG9Db21tYW5kUXQuaCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRNZW51UHJveHlRdC5oIFwKKyAgICBVSVByb2Nlc3MvcXQvV2ViR2VvbG9jYXRpb25Qcm92aWRl
clF0LmggXAogICAgIFVJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmggXAogICAgIFVJ
UHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcC5oIFwKICAgICBXZWJQcm9jZXNz
L0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCkBAIC01MDUs
NiArNTA2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1ZpZXdwb3J0SW50ZXJh
Y3Rpb25FbmdpbmUuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dE1lbnVQcm94eVF0
LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAgXAorICAgIFVJUHJvY2Vz
cy9xdC9XZWJHZW9sb2NhdGlvblByb3ZpZGVyUXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eVF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYkluc3Bl
Y3RvclByb3h5UXQuY3BwIFwKICAgICBVSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIFwK
LS0gCjEuNy40LjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>