<?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>65897</bug_id>
          
          <creation_ts>2011-08-08 21:08:31 -0700</creation_ts>
          <short_desc>Implement &lt;input type=color&gt; UI WebKit chromium part</short_desc>
          <delta_ts>2011-12-18 21:23:18 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71644</dependson>
    
    <dependson>74591</dependson>
    
    <dependson>74809</dependson>
          <blocked>29358</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>mike</cc>
    
    <cc>peter</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>448422</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-08 21:08:31 -0700</bug_when>
    <thetext>implement ChromeClient::openColorChooser, closeColorChooser, and setSelectedColorInColorChooser for WebKit chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448959</commentid>
    <comment_count>1</comment_count>
      <attachid>103436</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-09 20:48:51 -0700</bug_when>
    <thetext>Created attachment 103436
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448961</commentid>
    <comment_count>2</comment_count>
      <attachid>103436</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-09 20:54:22 -0700</bug_when>
    <thetext>Comment on attachment 103436
patch

Attachment 103436 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9339463</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448964</commentid>
    <comment_count>3</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-09 21:00:44 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 103436(apply) [details])
&gt; Attachment 103436(apply) [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/9339463

I forgot to wrap some parts with the flag. Fixing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448966</commentid>
    <comment_count>4</comment_count>
      <attachid>103436</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-09 21:10:25 -0700</bug_when>
    <thetext>Comment on attachment 103436
patch

Attachment 103436 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/9337487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448976</commentid>
    <comment_count>5</comment_count>
      <attachid>103442</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-09 22:19:58 -0700</bug_when>
    <thetext>Created attachment 103442
wrapped in flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449025</commentid>
    <comment_count>6</comment_count>
      <attachid>103442</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-10 01:14:50 -0700</bug_when>
    <thetext>Comment on attachment 103442
wrapped in flag

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

&gt; Source/WebKit/chromium/public/WebColorChooserListener.h:38
&gt; +
&gt; +class WebColorChooserListener {

Would you write the purpose of this class here?
A user of Chromium WebKi API needs to know how to use this class.

&gt; Source/WebKit/chromium/public/WebViewClient.h:184
&gt; +
&gt; +    virtual void openColorChooser(WebColor, WebColorChooserListener*) { }
&gt; +    virtual void closeColorChooser() { }
&gt; +    virtual void setSelectedColorInColorChooser(WebColor) { }

Would you write descriptions what should be done in these functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449029</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-10 01:28:30 -0700</bug_when>
    <thetext>BTW, will we have multiple color chooser dialogs if multiple tabs have color input fields?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449030</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-10 01:28:55 -0700</bug_when>
    <thetext>Adding fishd for WebKit API change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449038</commentid>
    <comment_count>9</comment_count>
      <attachid>103454</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-10 01:54:38 -0700</bug_when>
    <thetext>Created attachment 103454
added comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449039</commentid>
    <comment_count>10</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-10 01:55:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; BTW, will we have multiple color chooser dialogs if multiple tabs have color input fields?

No. If the color chooser is already open because of a color input from another tab, the color chooser&apos;s listener is updated to the new one and the color chooser window regains focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449044</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-10 02:06:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #7)
&gt; &gt; BTW, will we have multiple color chooser dialogs if multiple tabs have color input fields?
&gt; 
&gt; No. If the color chooser is already open because of a color input from another tab, the color chooser&apos;s listener is updated to the new one and the color chooser window regains focus.

So, a color chooser dialog implementation in the browser process counts the number of WebViews which are asking to open it, and doesn&apos;t close the dialog if a WebView asked to close it but another WebView doesn&apos;t ask to close it yet.  Right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449053</commentid>
    <comment_count>12</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-10 02:24:30 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; So, a color chooser dialog implementation in the browser process counts the number of WebViews which are asking to open it, and doesn&apos;t close the dialog if a WebView asked to close it but another WebView doesn&apos;t ask to close it yet.  Right?

Not quite. The dialog closes if the web view containing the &quot;last clicked color input element&quot; asks.

I think what users expect when they click is for the old color chooser to close and the new color chooser to open.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450229</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-08-11 19:05:14 -0700</bug_when>
    <thetext>LGTM.

fishd,
Would you review WebKit API changes please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450233</commentid>
    <comment_count>14</comment_count>
      <attachid>103723</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-11 19:12:20 -0700</bug_when>
    <thetext>Created attachment 103723
changed selectedColor to colorSelected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450234</commentid>
    <comment_count>15</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-11 19:13:22 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=103723)(apply) [details]
&gt; changed selectedColor to colorSelected

Sorry. WebColorChooserListener::selectedColor should have been colorSelected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450404</commentid>
    <comment_count>16</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-12 06:02:05 -0700</bug_when>
    <thetext>Here are the patches on the chromium side.

common for every platform part: http://codereview.chromium.org/7633013
mac specific part: http://codereview.chromium.org/7628016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454443</commentid>
    <comment_count>17</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-08-21 19:45:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Here are the patches on the chromium side.

Here are the new URLs.

Implement input type=color UI (common part)
http://codereview.chromium.org/7685006/

Implement input type=color UI (mac part)
http://codereview.chromium.org/7687006/

Implement input type=color UI (gtk part)
http://codereview.chromium.org/7696018/

Implement input type=color UI (win part)
http://codereview.chromium.org/7690004/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458748</commentid>
    <comment_count>18</comment_count>
      <attachid>103723</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-30 00:35:15 -0700</bug_when>
    <thetext>Comment on attachment 103723
changed selectedColor to colorSelected

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

&gt; Source/WebKit/chromium/public/WebColorChooserListener.h:39
&gt; +class WebColorChooserListener {

please add a protected destructor, just like WebFileChooserCompletion.

also, i think it would be helpful to use the same naming convention as
other interfaces.  instead of a Listener, call this a Completion.

 WebColorChooserCompletion

&gt; Source/WebKit/chromium/public/WebColorChooserListener.h:41
&gt; +    // Called when user selects a color. On the Mac this would be called every

nit: &quot;Called when [the] user selects a color.&quot;

I would be careful about documenting platform specific behavior here.  That
can change as new versions of the OS are released.  I wouldn&apos;t be surprised
to find Linux desktops behaving like Macs in the future.  Maybe this comment
should just say something more generic, like &quot;Depending on the platform, this
method may either be called multiple times to preview the selected color, or
just once when the user has made their final color choice.&quot;

&gt; Source/WebKit/chromium/public/WebColorChooserListener.h:44
&gt; +    virtual void colorSelected(WebColor) = 0;

nit: we use the convention of prefix-naming event methods either did* or will*, and
so in this case I think didSelectColor would be best.

actually, to be like WebFileChooserCompletion, I&apos;d call this didChooseColor.

&gt; Source/WebKit/chromium/public/WebViewClient.h:179
&gt;  

nit: please preserve the two new line whitespace gap above section separators.

&gt; Source/WebKit/chromium/public/WebViewClient.h:185
&gt; +    virtual void openColorChooser(WebColor, WebColorChooserListener*) { }

nit: I think you should name the first parameter defaultColor.  That should make
the code more self-documenting.

nit: call this runColorChooser, just like runFileChooser

&gt; Source/WebKit/chromium/public/WebViewClient.h:187
&gt; +    // This method tries to closes the color chooser interface. The color

nit: &quot;tries to closes&quot; -&gt; &quot;tries to close&quot;

no need to say &quot;interface&quot; here.  it is sufficient to refer to it as a &quot;color chooser&quot;.

&gt; Source/WebKit/chromium/public/WebViewClient.h:188
&gt; +    // chooser would not close if the color chooser&apos;s listener is is tied to

nit: &quot;is is&quot;

I&apos;m having a hard time understanding this last sentence.  It seems like this
method can only refer to a color chooser that was created by this WebView.
So, how can &quot;the color chooser&apos;s listener&quot; be tied to another tab?  I&apos;m very
confused.

&gt; Source/WebKit/chromium/public/WebViewClient.h:197
&gt;      // Dialogs -------------------------------------------------------------

nit: please preserve the two new line whitespace gap above section separators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460406</commentid>
    <comment_count>19</comment_count>
      <attachid>105949</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-09-01 06:22:25 -0700</bug_when>
    <thetext>Created attachment 105949
fixed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460407</commentid>
    <comment_count>20</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-09-01 06:22:44 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 103723(apply) [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103723&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebColorChooserListener.h:39
&gt; &gt; +class WebColorChooserListener {
&gt; 
&gt; please add a protected destructor, just like WebFileChooserCompletion.
Done.

&gt; also, i think it would be helpful to use the same naming convention as
&gt; other interfaces.  instead of a Listener, call this a Completion.
&gt; 
&gt;  WebColorChooserCompletion
Done.

&gt; &gt; Source/WebKit/chromium/public/WebColorChooserListener.h:41
&gt; &gt; +    // Called when user selects a color. On the Mac this would be called every
&gt; 
&gt; nit: &quot;Called when [the] user selects a color.&quot;
Done.

&gt; I would be careful about documenting platform specific behavior here.  That
&gt; can change as new versions of the OS are released.  I wouldn&apos;t be surprised
&gt; to find Linux desktops behaving like Macs in the future.  Maybe this comment
&gt; should just say something more generic, like &quot;Depending on the platform, this
&gt; method may either be called multiple times to preview the selected color, or
&gt; just once when the user has made their final color choice.&quot;
Done.

&gt; &gt; Source/WebKit/chromium/public/WebColorChooserListener.h:44
&gt; &gt; +    virtual void colorSelected(WebColor) = 0;
&gt; 
&gt; nit: we use the convention of prefix-naming event methods either did* or will*, and
&gt; so in this case I think didSelectColor would be best.
&gt; 
&gt; actually, to be like WebFileChooserCompletion, I&apos;d call this didChooseColor.
Done.

&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:179
&gt; &gt;  
&gt; 
&gt; nit: please preserve the two new line whitespace gap above section separators.
Done.

&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:185
&gt; &gt; +    virtual void openColorChooser(WebColor, WebColorChooserListener*) { }
&gt; 
&gt; nit: I think you should name the first parameter defaultColor.  That should make
&gt; the code more self-documenting.
Done.

&gt; nit: call this runColorChooser, just like runFileChooser
I didn&apos;t do this because &quot;open&quot; would match all the method names up to ColorChooserImple::open() in Chromium.

&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:187
&gt; &gt; +    // This method tries to closes the color chooser interface. The color
&gt; 
&gt; nit: &quot;tries to closes&quot; -&gt; &quot;tries to close&quot;
Done.

&gt; no need to say &quot;interface&quot; here.  it is sufficient to refer to it as a &quot;color chooser&quot;.
Done.

&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:188
&gt; &gt; +    // chooser would not close if the color chooser&apos;s listener is is tied to
&gt; 
&gt; nit: &quot;is is&quot;
Done.

&gt; I&apos;m having a hard time understanding this last sentence.  It seems like this
&gt; method can only refer to a color chooser that was created by this WebView.
&gt; So, how can &quot;the color chooser&apos;s listener&quot; be tied to another tab?  I&apos;m very
&gt; confused.
There will only be one color chooser in chromium. But each tab has RenderViews. If 

&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:197
&gt; &gt;      // Dialogs -------------------------------------------------------------
&gt; 
&gt; nit: please preserve the two new line whitespace gap above section separators.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473906</commentid>
    <comment_count>21</comment_count>
      <attachid>108838</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-09-27 06:33:04 -0700</bug_when>
    <thetext>Created attachment 108838
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478445</commentid>
    <comment_count>22</comment_count>
      <attachid>108838</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-05 09:52:12 -0700</bug_when>
    <thetext>Comment on attachment 108838
rebased

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

&gt; Source/WebKit/chromium/public/WebColorChooserCompletion.h:44
&gt; +    virtual void didChooseColor(WebColor) = 0;

How do we know when we can delete the WebColorChooserCompletion instance?
In the case of WebFileChooserCompletion, we know that we can delete the
instance when didChooseFile is called because it will only be called once.
Since you need to support many calls to didChooseColor, it seems like you
need a finalization method.

You seem to be getting around this by making the WebColorChooserCompletion
be allocated as a singleton.

&gt; Source/WebKit/chromium/public/WebViewClient.h:188
&gt; +    // This method does cleanup on the color chooser interface.

I think it would be much cleaner to define a WebColorChooser interface, and on
that interface you could put methods like &quot;close()&quot; and &quot;setSelectedColor()&quot;.

I think you should hide the detail that Chrome will only show one color chooser
globally for all tabs at any given time.  The API here should not mandate such
an implementation.

How about a design like this:

  class WebViewClient {
  public:
      ...
      virtual WebColorChooser* createColorChooser(WebColor initialColor, WebColorChooserClient*) { return 0; }
  };

  class WebColorChooser {
  public:
      virtual ~WebColorChooser() {}  // Destroys the color chooser.
      virtual void setSelectedColor(WebColor) = 0;  // Updates the color shown in the chooser.
  };

  class WebColorChooserClient {
  public:
      virtual void didChooseColor(WebColor) = 0;  // Can be called multiple times to preview the chosen color.  Can be reverted via didCancel.
      virtual void didAccept() = 0;  // Done choosing color, and user accepts chosen color.
      virtual void didCancel() = 0;  // Done choosing color, and user wants to revert back to the original color.
  protected:
      ~WebColorChooserClient() {}
  };

In this design, the WebColorChooser should be destroyed by the client once didAccept or didCancel is called,
and at that point it is safe to destroy the WebColorChooserClient instance.  If setSelectedColor is called
after didAccept/didCancel, then it will be ignored.

An alternative design might add methods on WebColorChooser to show and hide the dialog, and then the Client
interface might have didShow and didHide methods.  It might also need a didRevert method to indicate when the
previewed color choice should be reverted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485854</commentid>
    <comment_count>23</comment_count>
      <attachid>111393</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-10-17 23:49:10 -0700</bug_when>
    <thetext>Created attachment 111393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485855</commentid>
    <comment_count>24</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-10-17 23:49:39 -0700</bug_when>
    <thetext>I agree with your design and I have decided to go with WebColorChooser+WebColorChooserClient and stopped using singletons inside of WebKit.

I do not need to revert the selected color for any of the platforms, so the methods are different from what you suggested. 

The WebColorChooserClient instance and WebColorChooser instance will be destroyed when didCleanup is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485857</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 23:51:52 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485886</commentid>
    <comment_count>26</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-10-18 00:46:12 -0700</bug_when>
    <thetext>&gt;   class WebViewClient {
&gt;   public:
&gt;       ...
&gt;       virtual WebColorChooser* createColorChooser(WebColor initialColor, WebColorChooserClient*) { return 0; }
&gt;   };

I implemented WebViewClient::colorChooser() so that it creates a new color chooser if it doesn&apos;t exist already. Maybe I should rename it to WebViewClient::createColorChooserIfNecessary ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496989</commentid>
    <comment_count>27</comment_count>
      <attachid>113826</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-06 23:22:25 -0800</bug_when>
    <thetext>Created attachment 113826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496990</commentid>
    <comment_count>28</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-06 23:25:09 -0800</bug_when>
    <thetext>This new patch is for when the patch for Bug 71644  lands.
WebCore::ColorChooser will no longer be a singleton.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497049</commentid>
    <comment_count>29</comment_count>
      <attachid>113841</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-07 03:15:11 -0800</bug_when>
    <thetext>Created attachment 113841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497637</commentid>
    <comment_count>30</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-07 17:38:44 -0800</bug_when>
    <thetext>I updated the chromium side to reflect this change
http://codereview.chromium.org/7685006/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502671</commentid>
    <comment_count>31</comment_count>
      <attachid>113841</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-14 23:20:33 -0800</bug_when>
    <thetext>Comment on attachment 113841
Patch

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

&gt; Source/WebKit/chromium/public/WebColorChooserClient.h:51
&gt; +    virtual void didCleanup() = 0;

nit: I think using a term like &quot;Close&quot; here might be a bit clearer.  It seems like
there are two events that you can receive from the color chooser.  Either, the
color was changed or the dialog was closed.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:673
&gt; +    client-&gt;colorChooser()-&gt;setClient(colorChooserClient);

It seems like it would be better to create a new WebColorChooser for use by WebKit.
It may be the case that you only ever want to make one color chooser visible to the
user at a time, but by allocating a separate WebColorChooser for each openColorChooser
call, you simplify some of the state management.  For example, your checks for
&quot;colorChooser == client-&gt;colorChooser()-&gt;client()-&gt;colorChooser()&quot; go away.  Instead,
when WebKit wants to close the WebColorChooser instance, it just deletes it.  When
WebKit wants to change the color shown in its WebColorChooser instance, it just calls
a method on it.

So, I&apos;d go with:

  class WebViewClient {
    ...
    virtual WebColorChooser* createColorChooser(WebColor initialColor, WebColorChooserClient*) { return 0; }
    ...
  };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502708</commentid>
    <comment_count>32</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-15 00:48:51 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 113841(apply) [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113841&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebColorChooserClient.h:51
&gt; &gt; +    virtual void didCleanup() = 0;
&gt; 
&gt; nit: I think using a term like &quot;Close&quot; here might be a bit clearer.  It seems like
&gt; there are two events that you can receive from the color chooser.  Either, the
&gt; color was changed or the dialog was closed.

I prefer &quot;Close&quot; too. But calling this won&apos;t close the color chooser panel on OS X.

Darin Adler said that Apple&apos;s UI guideline says that an application should never close the color chooser panel(only the user can). And we will follow this guideline for OS X.

I couldn&apos;t come up with a suitable term. Do you still think that &quot;Close&quot; is better?


&gt; &gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:673
&gt; &gt; +    client-&gt;colorChooser()-&gt;setClient(colorChooserClient);
&gt; 
&gt; It seems like it would be better to create a new WebColorChooser for use by WebKit.
&gt; It may be the case that you only ever want to make one color chooser visible to the
&gt; user at a time, but by allocating a separate WebColorChooser for each openColorChooser
&gt; call, you simplify some of the state management.  For example, your checks for
&gt; &quot;colorChooser == client-&gt;colorChooser()-&gt;client()-&gt;colorChooser()&quot; go away.  Instead,
&gt; when WebKit wants to close the WebColorChooser instance, it just deletes it.  When
&gt; WebKit wants to change the color shown in its WebColorChooser instance, it just calls
&gt; a method on it.
&gt; 
&gt; So, I&apos;d go with:
&gt; 
&gt;   class WebViewClient {
&gt;     ...
&gt;     virtual WebColorChooser* createColorChooser(WebColor initialColor, WebColorChooserClient*) { return 0; }
&gt;     ...
&gt;   };

This won&apos;t work because WebCore::ColorChooser is no longer a singleton http://trac.webkit.org/changeset/99403

There may be multiple input color elements on the page and they can call ChromeClientImpl::cleanupColorChooser even when it is not the one that opened the color picker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511391</commentid>
    <comment_count>33</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-29 22:13:15 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; (From update of attachment 113841 [details](apply) [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113841&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/WebColorChooserClient.h:51
&gt; &gt; &gt; +    virtual void didCleanup() = 0;
&gt; &gt; 
&gt; &gt; nit: I think using a term like &quot;Close&quot; here might be a bit clearer.  It seems like
&gt; &gt; there are two events that you can receive from the color chooser.  Either, the
&gt; &gt; color was changed or the dialog was closed.
&gt; 
&gt; I prefer &quot;Close&quot; too. But calling this won&apos;t close the color chooser panel on OS X.
&gt; 
&gt; Darin Adler said that Apple&apos;s UI guideline says that an application should never close the color chooser panel(only the user can). And we will follow this guideline for OS X.
&gt; 
&gt; I couldn&apos;t come up with a suitable term. Do you still think that &quot;Close&quot; is better?

I think this API should be about a web page expressing interest or disinterest in the
color chooser, and allowing the color chooser to inform the web page of color changes.

I was thinking of WebColorChooser as a &quot;color chooser connection&quot; or &quot;color choosing
session&quot; object.  Maybe using a name like that would help since the lifetime of the
color chooser dialog can be independent of a web page&apos;s interest in the color chooser?

Hmm, WebColorChooserSession:

class WebViewClient {
    ...
    virtual WebColorChooserSession* createColorChooserSession(WebColor initialColor, WebColorChooserSessionClient*) { ... }
};

class WebColorChooserSession {
public:
    virtual ~WebColorChooserSession() { }
    virtual void setColor(WebColor) { }
};

class WebColorChooserSessionClient {
public:
    virtual void didChangeColor(WebColor) = 0;
    virtual void didEndSession() = 0;
protected:
    virtual ~WebColorChooserSessionClient() { }
};

The caller of createColorChooserSession is responsible for deleting the WebColorChooserSession
object when they are no longer interested in the color chooser.  The color chooser can also
force the session to end (via didEndSession), in which case it is still the responsibility of
the caller of createColorChooserSession to delete the WebColorChooserSession object.

Given a session object, it is possible to force the color chooser to show a different color
by calling setColor.  Also, while the session is active, it is possible for the color chooser
to inform the web page that the color selection changed (didChangeColor).


&gt; &gt; So, I&apos;d go with:
&gt; &gt; 
&gt; &gt;   class WebViewClient {
&gt; &gt;     ...
&gt; &gt;     virtual WebColorChooser* createColorChooser(WebColor initialColor, WebColorChooserClient*) { return 0; }
&gt; &gt;     ...
&gt; &gt;   };
&gt; 
&gt; This won&apos;t work because WebCore::ColorChooser is no longer a singleton http://trac.webkit.org/changeset/99403
&gt; 
&gt; There may be multiple input color elements on the page and they can call ChromeClientImpl::cleanupColorChooser even when it is not the one that opened the color picker.

^^^ I&apos;m having a hard time understanding these issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513476</commentid>
    <comment_count>34</comment_count>
      <attachid>117562</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-01 21:54:46 -0800</bug_when>
    <thetext>Created attachment 117562
patch using WebColorChooserSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513477</commentid>
    <comment_count>35</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-01 21:55:36 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; I think this API should be about a web page expressing interest or disinterest in the
&gt; color chooser, and allowing the color chooser to inform the web page of color changes.

Great idea! I&apos;ve made a new patch using WebColorChooserSession.

&gt; I was thinking of WebColorChooser as a &quot;color chooser connection&quot; or &quot;color choosing
&gt; session&quot; object.  Maybe using a name like that would help since the lifetime of the
&gt; color chooser dialog can be independent of a web page&apos;s interest in the color chooser?

After implementing this I realized that WebColorChooserSessionClient wasn&apos;t doing much and was just making it complicated so I decided to make ChromeClientImpl be a WebColorChooserSessionClient.

&gt; Given a session object, it is possible to force the color chooser to show a different color
&gt; by calling setColor.  Also, while the session is active, it is possible for the color chooser
&gt; to inform the web page that the color selection changed (didChangeColor).

If we don&apos;t separate color being changed from the web page and color being changed by the user from the color picker, it will cause an infinite loop.

Therefore I kept the method name didChooseColor, because it will only be called when the user changes color.
Not when the web page changes the element value.

&gt; 
&gt; &gt; &gt; So, I&apos;d go with:
&gt; &gt; &gt; 
&gt; &gt; &gt;   class WebViewClient {
&gt; &gt; &gt;     ...
&gt; &gt; &gt;     virtual WebColorChooser* createColorChooser(WebColor initialColor, WebColorChooserClient*) { return 0; }
&gt; &gt; &gt;     ...
&gt; &gt; &gt;   };
&gt; &gt; 
&gt; &gt; This won&apos;t work because WebCore::ColorChooser is no longer a singleton http://trac.webkit.org/changeset/99403
&gt; &gt; 
&gt; &gt; There may be multiple input color elements on the page and they can call ChromeClientImpl::cleanupColorChooser even when it is not the one that opened the color picker.
&gt; 
&gt; ^^^ I&apos;m having a hard time understanding these issues.

Sorry. What I wanted to say was,

Because the WebCore::ColorChooser is no longer a singleton, the checks &quot;colorChooser == client-&gt;colorChooser()-&gt;client()-&gt;colorChooser()&quot; (in my new patch they are colorChooser == m_colorChooser) are necessary.

Each input color element now has a WebCore::ColorChooser instance, so it needs to check if the set color/close call is coming from the one that opened the color chooser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513514</commentid>
    <comment_count>36</comment_count>
      <attachid>117562</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 22:37:53 -0800</bug_when>
    <thetext>Comment on attachment 117562
patch using WebColorChooserSession

Attachment 117562 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10725219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514261</commentid>
    <comment_count>37</comment_count>
      <attachid>117562</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-02 16:13:52 -0800</bug_when>
    <thetext>Comment on attachment 117562
patch using WebColorChooserSession

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

&gt; Source/WebKit/chromium/public/WebColorChooserSession.h:49
&gt; +    virtual void didChooseColor(WebColor) = 0;

I think it is very confusing that you have didChooserColor on both WebColorChooserSession
and WebColorChooserSessionClient.

Looking at the WebCore equivalents of these classes (ColorChooser and ColorChooserClient),
I see similarly confusing method names.  I&apos;m suspicious of that design.

I&apos;m also not sure that it makes sense to use the term Session here but not in WebCore.
Maybe the Session naming is not helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519108</commentid>
    <comment_count>38</comment_count>
      <attachid>118768</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-12 03:39:14 -0800</bug_when>
    <thetext>Created attachment 118768
new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519109</commentid>
    <comment_count>39</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-12 03:41:42 -0800</bug_when>
    <thetext>This is a new patch with the new architecture.

WebColorChooserSession no longer has a method named didChooserColor.
I removed any traces of &quot;cleanup&quot; and there is no more ColorChooser object in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520729</commentid>
    <comment_count>40</comment_count>
      <attachid>118768</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-13 23:42:49 -0800</bug_when>
    <thetext>Comment on attachment 118768
new patch

This design makes a lot more sense to me.  Thank you for reconsidering the WebCore side.  I will try to do a more thorough code review shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521101</commentid>
    <comment_count>41</comment_count>
      <attachid>118768</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-14 11:09:40 -0800</bug_when>
    <thetext>Comment on attachment 118768
new patch

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

I&apos;m going to make the radical suggestion that given this new architecture, you could probably drop the word &quot;Session&quot; from everything, and it would all still make sense.  You might need to change &quot;endSession&quot; to &quot;endChooser&quot;

&gt; Source/WebCore/html/ColorInputType.cpp:130
&gt; +      session()-&gt;setSelectedColor(valueAsColor());

nit: indentation

&gt; Source/WebCore/html/ColorInputType.cpp:150
&gt; +void ColorInputType::newColorChooserSession(const Color&amp; initialColor)

since this method returns early if there is already a session, perhaps it&apos;s name
should have the IfNecessary suffix?  also, I think &apos;create&apos; would be a more
canonical prefix:  createColorChooserSessionIfNecessary

&gt; Source/WebCore/loader/EmptyClients.h:195
&gt; +    ColorChooserSession* createColorChooserSession(ColorChooserSessionClient*, const Color&amp;) { return 0; }

perhaps this should return PassOwnPtr?

&gt; Source/WebCore/platform/ColorChooserSessionClient.h:18
&gt; +    ColorChooserSession* session() { return m_session.get(); }

Why does the ColorChooserSession need to be stored on the *Client?  That is a very
uncommon design.  It seems like ColorInputType should have a m_session instead.

&gt; Source/WebCore/platform/ColorChooserSessionClient.h:19
&gt; +    void setSession(ColorChooserSession* session) { m_session = adoptPtr(session); }

nit: parameter should be PassOwnPtr&lt;ColorChooserSession&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521449</commentid>
    <comment_count>42</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-14 16:36:44 -0800</bug_when>
    <thetext>Let&apos;s split the patch into the WebCore part and the WebKit part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521752</commentid>
    <comment_count>43</comment_count>
      <attachid>119399</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-15 01:56:07 -0800</bug_when>
    <thetext>Created attachment 119399
new patch(webcore side moved to separate patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521753</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 01:58:12 -0800</bug_when>
    <thetext>Attachment 119399 did not pass style-queue:

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

Source/WebKit/chromium/src/ColorChooserProxy.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 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>521758</commentid>
    <comment_count>45</comment_count>
      <attachid>119399</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-15 02:11:48 -0800</bug_when>
    <thetext>Comment on attachment 119399
new patch(webcore side moved to separate patch)

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

&gt; Source/WebKit/chromium/src/ChromeClientImpl.h:142
&gt; +    virtual PassOwnPtr&lt;WebCore::ColorChooser&gt; createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&amp;);

nit: append OVERRIDE.

&gt; Source/WebKit/chromium/src/ColorChooserProxy.h:54
&gt; +#endif // GeolocationClientProxy_h

False comment.

&gt; Source/WebKit/chromium/src/WebColorChooserClientImpl.h:45
&gt; +    virtual void didChooseColor(const WebColor&amp;);
&gt; +    virtual void didEndChooser();

nit: OVERRIDE

&gt; Source/WebKit/chromium/src/WebColorChooserClientImpl.h:55
&gt; +#endif // WebColorChooserClient_h

False comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521760</commentid>
    <comment_count>46</comment_count>
      <attachid>119399</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 02:13:56 -0800</bug_when>
    <thetext>Comment on attachment 119399
new patch(webcore side moved to separate patch)

Attachment 119399 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10904166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521770</commentid>
    <comment_count>47</comment_count>
      <attachid>119399</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-15 02:37:04 -0800</bug_when>
    <thetext>Comment on attachment 119399
new patch(webcore side moved to separate patch)

Attachment 119399 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10905209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521817</commentid>
    <comment_count>48</comment_count>
      <attachid>119410</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-15 04:12:47 -0800</bug_when>
    <thetext>Created attachment 119410
fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521820</commentid>
    <comment_count>49</comment_count>
      <attachid>118768</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-15 04:20:24 -0800</bug_when>
    <thetext>Comment on attachment 118768
new patch

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

&gt;&gt; Source/WebCore/html/ColorInputType.cpp:130
&gt;&gt; +      session()-&gt;setSelectedColor(valueAsColor());
&gt; 
&gt; nit: indentation

done.

&gt;&gt; Source/WebCore/html/ColorInputType.cpp:150
&gt;&gt; +void ColorInputType::newColorChooserSession(const Color&amp; initialColor)
&gt; 
&gt; since this method returns early if there is already a session, perhaps it&apos;s name
&gt; should have the IfNecessary suffix?  also, I think &apos;create&apos; would be a more
&gt; canonical prefix:  createColorChooserSessionIfNecessary

Removed since its only called from one place.

&gt;&gt; Source/WebCore/loader/EmptyClients.h:195
&gt;&gt; +    ColorChooserSession* createColorChooserSession(ColorChooserSessionClient*, const Color&amp;) { return 0; }
&gt; 
&gt; perhaps this should return PassOwnPtr?

done.

&gt;&gt; Source/WebCore/platform/ColorChooserSessionClient.h:18
&gt;&gt; +    ColorChooserSession* session() { return m_session.get(); }
&gt; 
&gt; Why does the ColorChooserSession need to be stored on the *Client?  That is a very
&gt; uncommon design.  It seems like ColorInputType should have a m_session instead.

done.

&gt;&gt; Source/WebCore/platform/ColorChooserSessionClient.h:19
&gt;&gt; +    void setSession(ColorChooserSession* session) { m_session = adoptPtr(session); }
&gt; 
&gt; nit: parameter should be PassOwnPtr&lt;ColorChooserSession&gt;

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521836</commentid>
    <comment_count>50</comment_count>
      <attachid>119410</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 04:53:18 -0800</bug_when>
    <thetext>Comment on attachment 119410
fixed

Attachment 119410 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10904223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521839</commentid>
    <comment_count>51</comment_count>
      <attachid>119410</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-15 05:16:51 -0800</bug_when>
    <thetext>Comment on attachment 119410
fixed

Attachment 119410 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10904235</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521856</commentid>
    <comment_count>52</comment_count>
      <attachid>119410</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-12-15 06:17:57 -0800</bug_when>
    <thetext>Comment on attachment 119410
fixed

Attachment 119410 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10904234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522611</commentid>
    <comment_count>53</comment_count>
      <attachid>119410</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-16 00:46:29 -0800</bug_when>
    <thetext>Comment on attachment 119410
fixed

Rejecting attachment 119410 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
WebKit/chromium/src/WebColor.o
  CXX(target) out/Debug/obj.target/webkit/Source/WebKit/chromium/src/WebColorChooserClientImpl.o
  CXX(target) out/Debug/obj.target/webkit/Source/WebKit/chromium/src/WebCommon.o
Source/WebKit/chromium/src/WebColorChooserClientImpl.cpp:30: fatal error: ColorChooserClient.h: No such file or directory
compilation terminated.
make: *** [out/Debug/obj.target/webkit/Source/WebKit/chromium/src/WebColorChooserClientImpl.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/10900596</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523421</commentid>
    <comment_count>54</comment_count>
      <attachid>119410</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 02:37:27 -0800</bug_when>
    <thetext>Comment on attachment 119410
fixed

Clearing flags on attachment: 119410

Committed r103169: &lt;http://trac.webkit.org/changeset/103169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523422</commentid>
    <comment_count>55</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 02:37:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523610</commentid>
    <comment_count>56</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-18 18:19:28 -0800</bug_when>
    <thetext>Reopened because it was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523674</commentid>
    <comment_count>57</comment_count>
      <attachid>119803</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-12-18 20:18:33 -0800</bug_when>
    <thetext>Created attachment 119803
updated pbxproj and GNUmakefile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523702</commentid>
    <comment_count>58</comment_count>
      <attachid>119803</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 21:23:10 -0800</bug_when>
    <thetext>Comment on attachment 119803
updated pbxproj and GNUmakefile

Clearing flags on attachment: 119803

Committed r103215: &lt;http://trac.webkit.org/changeset/103215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523703</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-18 21:23:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103436</attachid>
            <date>2011-08-09 20:48:51 -0700</date>
            <delta_ts>2011-08-09 22:19:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-65897-20110810124850.patch</filename>
            <type>text/plain</type>
            <size>15235</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTM4YzUyYmNkZWExYzUw
MGE5ZjFjMmExZmE2ZDgzMjQ0MjJjZDg3Li44NzQ5MjA0YzBkOTZmNmE5YTMzYjE2NGIwOTQ2NTZj
ZDIwNDVmZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDgtMDkgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0wOC0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlcyBWOCdzIEphdmFJbnN0YW5jZUpvYmplY3QsIEph
dmFDbGFzc0pvYmplY3QgYW5kIEphdmFGaWVsZEpvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
NzliZTljZGUwNDg1ZTUyMWE0YTQ1NjgzYTY2M2ZhZWUwMWM3NjJmZS4uM2MwY2Q5ZmRmYTFkM2Ew
ZTc1MWQ4N2I0NmJlN2Y0NTVjOTI1NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUyLDYgKzY1
Miw3IEBACiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAg
ICAgICAgICdwYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llLmgnLApAQCAtMjk5NCw2ICsyOTk1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Db2xvckNob29zZXIuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Db250ZW50VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRU
eXBlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGYzNDRkNDQ1MjM1ZGJlYTk3Y2ZkZmNkNjFiMjQxZGI2YmI3
MzQzNDAuLjM2MTY5MWZhNjAzY2M1NGZlYWZmZjU0OGQ5OTViYWVkZDI0OWRhZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDgtMDkgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0
eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVkIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyLmgsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC57aCxjcHB9CisgICAg
ICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyLmg6IEFkZGVkLiBDb2xvciBjaG9v
c2VyIGNhbGxzIHRoaXMgb2JqZWN0IHdoZW4gdXNlciBzZWxlY3RzIGEgY29sb3IuCisgICAgICAg
ICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVu
dDo6b3BlbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVyVmlldy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGVkLiBP
dmVycmlkZGVuIGluIFJlbmRlclZpZXcuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVu
ZGVyVmlldy4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMg
V2ViVmlld0NsaWVudDo6b3BlbkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVu
dDo6Y2xvc2VDb2xvckNob29zZXIuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZGVkLiBDYWxscyBXZWJWaWV3Q2xp
ZW50OjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIuCisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBs
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1w
bDo6c2hhcmVkTGlzdGVuZXIpOiBBZGRlZC4gUmV0dXJucyBzaGFyZWQgaW5zdGFuY2UuCisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6c2VsZWN0ZWRDb2xvcik6
IEFkZGVkLiBDaHJvbWl1bSBzaWRlIGNhbGxzIHRoaXMgbWV0aG9kIHdoZW4gdXNlciBzZWxlY3Rz
IGEgY29sb3IuCisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oOiBB
ZGRlZC4KKwogMjAxMS0wOC0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkyNjE5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGI5N2E2N2M0NTE3MjA2MWVhZTNmNjU5ZTk4ZjkzYTQw
ZjllZTUyMDcuLmQ1NWY2NzYyMWZkOGJjNjAzNjhlZjU1YmM0ZDc5Y2Q3MDMxMzE3MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTExNSw2ICsxMTUsNyBAQAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ2FudmFzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ2xp
cGJvYXJkLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3IuaCcsCisgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lci5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkNvbG9yTmFtZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkNvbW1vbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVu
dC5oJywKQEAgLTQyNyw2ICs0MjgsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRh
dGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJDb2xvci5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JD
aG9vc2VyTGlzdGVuZXJJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNo
b29zZXJMaXN0ZW5lckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21tb24uY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNTdHJpbmcuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5l
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU5NTFmYmM0YTRkZjhiZWRlM2E0YzVkZTE3YmQyMmVmYTVkYmM2YmEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xv
ckNob29zZXJMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVyX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJfaAorCisjaW5jbHVk
ZSAiV2ViQ29sb3IuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDb2xvcihX
ZWJDb2xvcikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDg5OTg2
YjJmNzg5ZDNmNDFlNzY2ZTBkZjhlYjE0YmQwYTE0ZTAxYWQuLjVlZGY3ZGUxOThjMDk1MDRjMWFl
ODIxZTk5OTZkOTFiY2E2ZjFkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmlld0NsaWVu
dF9oCiAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uLmgiCisjaW5jbHVk
ZSAiV2ViQ29sb3IuaCIKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5o
IgpAQCAtNDYsNiArNDcsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3Q7CitjbGFzcyBXZWJDb2xvckNob29zZXJMaXN0ZW5lcjsKIGNsYXNzIFdl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJF
bGVtZW50OwpAQCAtMTc1LDYgKzE3NywxMSBAQCBwdWJsaWM6CiAgICAgLy8gaW5kaWNhdGluZyB0
aGF0IHRoZSBkZWZhdWx0IGFjdGlvbiBzaG91bGQgYmUgc3VwcHJlc3NlZC4KICAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKSB7IHJldHVybiBmYWxzZTsgfQogCisg
ICAgLy8gQ29sb3IgQ2hvb3NlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihX
ZWJDb2xvciwgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
Y2xvc2VDb2xvckNob29zZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xv
ckluQ29sb3JDaG9vc2VyKFdlYkNvbG9yKSB7IH0KIAogICAgIC8vIERpYWxvZ3MgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4
IGEzZTliMGZkOTNiYjhjMGU2MzZhOWI2YjMxYTNiMTVhNjc4NWNmOGYuLmYzYTgwNDE0YTA2MmUx
NzBhNDlmZDJhZjQwZjMxNzExMjkyN2RlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAi
VjhQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgor
I2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oIgogI2luY2x1ZGUgIldlYkNv
bnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV2ViQ3Vyc29ySW5mby5oIgogI2luY2x1ZGUgIldl
YkZpbGVDaG9vc2VyQ29tcGxldGlvbkltcGwuaCIKQEAgLTY2OCw2ICs2NjksMzcgQEAgdm9pZCBD
aHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3Vy
aXR5T3JpZ2luKiwgaW50NjQKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQor
dm9pZCBDaHJvbWVDbGllbnRJbXBsOjpvcGVuQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hv
b3NlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCit7CisgICAgV2ViVmll
d0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29sb3IgcGxhdGZvcm1Db2xvciA9IHN0YXRpY19j
YXN0PFdlYkNvbG9yPihpbml0aWFsQ29sb3IucmdiKCkpOworICAgIGNsaWVudC0+b3BlbkNvbG9y
Q2hvb3NlcihwbGF0Zm9ybUNvbG9yLCBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGw6OnNoYXJl
ZExpc3RlbmVyKCkpOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmNsb3NlQ29sb3JDaG9v
c2VyKCkKK3sKKyAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgp
OworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBjbGllbnQtPmNsb3Nl
Q29sb3JDaG9vc2VyKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0U2VsZWN0ZWRD
b2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBX
ZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xp
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3Rh
dGljX2Nhc3Q8V2ViQ29sb3I+KGNvbG9yLnJnYigpKTsKKyAgICBjbGllbnQtPnNldFNlbGVjdGVk
Q29sb3JJbkNvbG9yQ2hvb3NlcihwbGF0Zm9ybUNvbG9yKTsKK30KKyNlbmRpZgorCiB2b2lkIENo
cm9tZUNsaWVudEltcGw6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8Rmls
ZUNob29zZXI+IGZpbGVDaG9vc2VyKQogewogICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1f
d2ViVmlldy0+Y2xpZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmgKaW5kZXggNTIzNGU0MzY3OTQ1MDVmZjFlZjk0MjNmNTI2MDcxNWQ4OTcyZjIx
OS4uNDI4ZjA3ZjI4NTc2NDQ3OTY5OGViN2Y2NTAzOGJhMGM3ZWIzYWM5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTM4LDYgKzEzOCwx
MSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24q
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKKyNpZiBFTkFC
TEUoSU5QVVRfQ09MT1IpCisgICAgdmlydHVhbCB2b2lkIG9wZW5Db2xvckNob29zZXIoV2ViQ29y
ZTo6Q29sb3JDaG9vc2VyKiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2xvc2VDb2xvckNob29zZXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xv
ckluQ29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisjZW5kaWYKICAgICB2aXJ0
dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGaWxlQ2hvb3Nlcj4pOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopOwogI2lmIEVO
QUJMRShESVJFQ1RPUllfVVBMT0FEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1
OGU5ZmJkZGQ1YmM3M2ExZWU3ZDQ1OWM4NjllNWU0YWJiZGJhMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xv
ckNob29zZXJMaXN0ZW5lckltcGwuaCIKKworI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorIAor
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0
aWMgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsKiBzdGF0aWNMaXN0ZW5lciA9IDA7CisKK1dl
YkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbCogV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsOjpz
aGFyZWRMaXN0ZW5lcigpCit7CisgICAgaWYgKCFzdGF0aWNMaXN0ZW5lcikKKyAgICAgICAgc3Rh
dGljTGlzdGVuZXIgPSBhZG9wdFB0cihuZXcgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsKCkp
LmxlYWtQdHIoKTsKKyAgICByZXR1cm4gc3RhdGljTGlzdGVuZXI7Cit9CisKK3ZvaWQgV2ViQ29s
b3JDaG9vc2VyTGlzdGVuZXJJbXBsOjpzZWxlY3RlZENvbG9yKFdlYkNvbG9yIGNvbG9yKQorewor
ICAgIFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jb2xvclNlbGVjdGVkKFdlYkNv
cmU6OkNvbG9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OlJHQkEzMj4oY29sb3IpKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTNmOGNkZDcy
Zjg5NmY0MGEyZGU4ZjgyNmQ3NmFkOWJmMmY4OGUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmgKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsX2gKKyNkZWZpbmUg
V2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsX2gKKworI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVyLmgiCisKK3VzaW5nIFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyTGlzdGVuZXI7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwg
OiBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBX
ZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwqIHNoYXJlZExpc3RlbmVyKCk7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2VsZWN0ZWRDb2xvcihXZWJDb2xvcik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103442</attachid>
            <date>2011-08-09 22:19:58 -0700</date>
            <delta_ts>2011-08-10 01:54:32 -0700</delta_ts>
            <desc>wrapped in flag</desc>
            <filename>bug-65897-20110810141956.patch</filename>
            <type>text/plain</type>
            <size>15375</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTM4YzUyYmNkZWExYzUw
MGE5ZjFjMmExZmE2ZDgzMjQ0MjJjZDg3Li44NzQ5MjA0YzBkOTZmNmE5YTMzYjE2NGIwOTQ2NTZj
ZDIwNDVmZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDgtMDkgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0wOC0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlcyBWOCdzIEphdmFJbnN0YW5jZUpvYmplY3QsIEph
dmFDbGFzc0pvYmplY3QgYW5kIEphdmFGaWVsZEpvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
NzliZTljZGUwNDg1ZTUyMWE0YTQ1NjgzYTY2M2ZhZWUwMWM3NjJmZS4uM2MwY2Q5ZmRmYTFkM2Ew
ZTc1MWQ4N2I0NmJlN2Y0NTVjOTI1NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUyLDYgKzY1
Miw3IEBACiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAg
ICAgICAgICdwYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llLmgnLApAQCAtMjk5NCw2ICsyOTk1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Db2xvckNob29zZXIuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Db250ZW50VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRU
eXBlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGYzNDRkNDQ1MjM1ZGJlYTk3Y2ZkZmNkNjFiMjQxZGI2YmI3
MzQzNDAuLjM2MTY5MWZhNjAzY2M1NGZlYWZmZjU0OGQ5OTViYWVkZDI0OWRhZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDgtMDkgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0
eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVkIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyLmgsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC57aCxjcHB9CisgICAg
ICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyLmg6IEFkZGVkLiBDb2xvciBjaG9v
c2VyIGNhbGxzIHRoaXMgb2JqZWN0IHdoZW4gdXNlciBzZWxlY3RzIGEgY29sb3IuCisgICAgICAg
ICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVu
dDo6b3BlbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVyVmlldy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGVkLiBP
dmVycmlkZGVuIGluIFJlbmRlclZpZXcuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVu
ZGVyVmlldy4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMg
V2ViVmlld0NsaWVudDo6b3BlbkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVu
dDo6Y2xvc2VDb2xvckNob29zZXIuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZGVkLiBDYWxscyBXZWJWaWV3Q2xp
ZW50OjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIuCisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBs
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1w
bDo6c2hhcmVkTGlzdGVuZXIpOiBBZGRlZC4gUmV0dXJucyBzaGFyZWQgaW5zdGFuY2UuCisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6c2VsZWN0ZWRDb2xvcik6
IEFkZGVkLiBDaHJvbWl1bSBzaWRlIGNhbGxzIHRoaXMgbWV0aG9kIHdoZW4gdXNlciBzZWxlY3Rz
IGEgY29sb3IuCisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oOiBB
ZGRlZC4KKwogMjAxMS0wOC0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkyNjE5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGI5N2E2N2M0NTE3MjA2MWVhZTNmNjU5ZTk4ZjkzYTQw
ZjllZTUyMDcuLmQ1NWY2NzYyMWZkOGJjNjAzNjhlZjU1YmM0ZDc5Y2Q3MDMxMzE3MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTExNSw2ICsxMTUsNyBAQAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ2FudmFzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ2xp
cGJvYXJkLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3IuaCcsCisgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lci5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkNvbG9yTmFtZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkNvbW1vbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVu
dC5oJywKQEAgLTQyNyw2ICs0MjgsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRh
dGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJDb2xvci5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JD
aG9vc2VyTGlzdGVuZXJJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNo
b29zZXJMaXN0ZW5lckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21tb24uY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNTdHJpbmcuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5l
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE1ZTFkYjFjYjFlNjE1NGQyZmY1ZWNmYmRjOTYyYmZlOGI5MDU5MGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xv
ckNob29zZXJMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVyX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJfaAorCisjaW5jbHVk
ZSAiV2ViQ29sb3IuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDb2xvcihX
ZWJDb2xvcikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBX
ZWJDb2xvckNob29zZXJMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggODk5ODZiMmY3ODlkM2Y0MWU3NjZlMGRmOGViMTRiZDBh
MTRlMDFhZC4uNWVkZjdkZTE5OGMwOTUwNGMxYWU4MjFlOTk5NmQ5MWJjYTZmMWQzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2RlZmluZSBXZWJWaWV3Q2xpZW50X2gKIAogI2luY2x1ZGUgIldlYkFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb2xvci5oIgogI2luY2x1ZGUgIldl
YkRyYWdPcGVyYXRpb24uaCIKICNpbmNsdWRlICJXZWJFZGl0aW5nQWN0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgiCkBAIC00Niw2ICs0Nyw3IEBACiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKK2NsYXNzIFdlYkNv
bG9yQ2hvb3Nlckxpc3RlbmVyOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiBj
bGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkVsZW1lbnQ7CkBAIC0xNzUsNiArMTc3LDExIEBA
IHB1YmxpYzoKICAgICAvLyBpbmRpY2F0aW5nIHRoYXQgdGhlIGRlZmF1bHQgYWN0aW9uIHNob3Vs
ZCBiZSBzdXBwcmVzc2VkLgogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRF
dmVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBDb2xvciBDaG9vc2VyIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHZp
cnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKFdlYkNvbG9yLCBXZWJDb2xvckNob29zZXJMaXN0
ZW5lciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbG9zZUNvbG9yQ2hvb3NlcigpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoV2ViQ29sb3IpIHsg
fQogCiAgICAgLy8gRGlhbG9ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggYTNlOWIwZmQ5M2JiOGMwZTYzNmE5YjZiMzFh
M2IxNWE2Nzg1Y2Y4Zi4uZjNhODA0MTRhMDYyZTE3MGE0OWZkMmFmNDBmMzE3MTEyOTI3ZGUwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
QEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRl
ICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyTGlz
dGVuZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJX
ZWJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5o
IgpAQCAtNjY4LDYgKzY2OSwzNyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NAogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2b2lkIENocm9tZUNsaWVudEltcGw6Om9wZW5D
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyKiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGluaXRpYWxDb2xvcikKK3sKKyAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXct
PmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJD
b2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nhc3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xvci5y
Z2IoKSk7CisgICAgY2xpZW50LT5vcGVuQ29sb3JDaG9vc2VyKHBsYXRmb3JtQ29sb3IsIFdlYkNv
bG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6c2hhcmVkTGlzdGVuZXIoKSk7Cit9CisKK3ZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29zZXIoKQoreworICAgIFdlYlZpZXdDbGllbnQq
IGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGNsaWVudC0+Y2xvc2VDb2xvckNob29zZXIoKTsKK30KKwordm9pZCBD
aHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2Vi
Vmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IFdlYkNvbG9yIHBsYXRmb3JtQ29sb3IgPSBzdGF0aWNfY2FzdDxXZWJDb2xvcj4oY29sb3Iucmdi
KCkpOworICAgIGNsaWVudC0+c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKHBsYXRmb3Jt
Q29sb3IpOworfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVs
KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAg
ICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA1MjM0ZTQzNjc5
NDUwNWZmMWVmOTQyM2Y1MjYwNzE1ZDg5NzJmMjE5Li40MjhmMDdmMjg1NzY0NDc5Njk4ZWI3ZjY1
MDM4YmEwYzdlYjNhYzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oCkBAIC0xMzgsNiArMTM4LDExIEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJD
b3JlOjpHZW9sb2NhdGlvbiopOworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyAgICB2aXJ0dWFs
IHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXIqLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZUNvbG9yQ2hvb3NlcigpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29y
ZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7CiAgICAgdmlydHVh
bCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNv
cmU6OkZpbGVJY29uTG9hZGVyKik7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5l
ckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlz
dGVuZXJJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2Q2ZWZkZDIzNDA3OGRmNDcwNDMzYzRhZjI1YTZi
NmViOTI5ODE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oIgorCisj
aW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCisgCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRp
YyBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwqIHN0YXRpY0xpc3RlbmVyID0gMDsKKworV2Vi
Q29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsKiBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGw6OnNo
YXJlZExpc3RlbmVyKCkKK3sKKyAgICBpZiAoIXN0YXRpY0xpc3RlbmVyKQorICAgICAgICBzdGF0
aWNMaXN0ZW5lciA9IGFkb3B0UHRyKG5ldyBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwoKSku
bGVha1B0cigpOworICAgIHJldHVybiBzdGF0aWNMaXN0ZW5lcjsKK30KKwordm9pZCBXZWJDb2xv
ckNob29zZXJMaXN0ZW5lckltcGw6OnNlbGVjdGVkQ29sb3IoV2ViQ29sb3IgY29sb3IpCit7Cisg
ICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyOjpjaG9vc2VyKCktPmNvbG9yU2VsZWN0ZWQoV2ViQ29y
ZTo6Q29sb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UkdCQTMyPihjb2xvcikpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5l
ckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3Rl
bmVySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmNTQ5MWY3MWU2ZDZiN2Q2YzBjMjEwNDIxYjM0ZDdjNWY2
MDBjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJD
b2xvckNob29zZXJMaXN0ZW5lckltcGwuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xv
ckNob29zZXJMaXN0ZW5lckltcGxfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJMaXN0ZW5lcklt
cGxfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXIuaCIKKworI2lmIEVOQUJM
RShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVySW1wbCA6IHB1YmxpYyBXZWJDb2xvckNob29zZXJMaXN0ZW5lciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbCogc2hhcmVkTGlzdGVu
ZXIoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENvbG9yKFdlYkNvbG9yKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQor
CisjZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103454</attachid>
            <date>2011-08-10 01:54:38 -0700</date>
            <delta_ts>2011-08-11 19:12:14 -0700</delta_ts>
            <desc>added comments</desc>
            <filename>bug-65897-20110810175436.patch</filename>
            <type>text/plain</type>
            <size>16257</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTM4YzUyYmNkZWExYzUw
MGE5ZjFjMmExZmE2ZDgzMjQ0MjJjZDg3Li44NzQ5MjA0YzBkOTZmNmE5YTMzYjE2NGIwOTQ2NTZj
ZDIwNDVmZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDgtMDkgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0wOC0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlcyBWOCdzIEphdmFJbnN0YW5jZUpvYmplY3QsIEph
dmFDbGFzc0pvYmplY3QgYW5kIEphdmFGaWVsZEpvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
NzliZTljZGUwNDg1ZTUyMWE0YTQ1NjgzYTY2M2ZhZWUwMWM3NjJmZS4uM2MwY2Q5ZmRmYTFkM2Ew
ZTc1MWQ4N2I0NmJlN2Y0NTVjOTI1NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUyLDYgKzY1
Miw3IEBACiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAg
ICAgICAgICdwYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llLmgnLApAQCAtMjk5NCw2ICsyOTk1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Db2xvckNob29zZXIuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Db250ZW50VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRU
eXBlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGYzNDRkNDQ1MjM1ZGJlYTk3Y2ZkZmNkNjFiMjQxZGI2YmI3
MzQzNDAuLjM2MTY5MWZhNjAzY2M1NGZlYWZmZjU0OGQ5OTViYWVkZDI0OWRhZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDgtMDkgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0
eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVkIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyLmgsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC57aCxjcHB9CisgICAg
ICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyLmg6IEFkZGVkLiBDb2xvciBjaG9v
c2VyIGNhbGxzIHRoaXMgb2JqZWN0IHdoZW4gdXNlciBzZWxlY3RzIGEgY29sb3IuCisgICAgICAg
ICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVu
dDo6b3BlbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVyVmlldy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGVkLiBP
dmVycmlkZGVuIGluIFJlbmRlclZpZXcuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVu
ZGVyVmlldy4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMg
V2ViVmlld0NsaWVudDo6b3BlbkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVu
dDo6Y2xvc2VDb2xvckNob29zZXIuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZGVkLiBDYWxscyBXZWJWaWV3Q2xp
ZW50OjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIuCisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBs
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1w
bDo6c2hhcmVkTGlzdGVuZXIpOiBBZGRlZC4gUmV0dXJucyBzaGFyZWQgaW5zdGFuY2UuCisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6c2VsZWN0ZWRDb2xvcik6
IEFkZGVkLiBDaHJvbWl1bSBzaWRlIGNhbGxzIHRoaXMgbWV0aG9kIHdoZW4gdXNlciBzZWxlY3Rz
IGEgY29sb3IuCisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oOiBB
ZGRlZC4KKwogMjAxMS0wOC0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkyNjE5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGI5N2E2N2M0NTE3MjA2MWVhZTNmNjU5ZTk4ZjkzYTQw
ZjllZTUyMDcuLmQ1NWY2NzYyMWZkOGJjNjAzNjhlZjU1YmM0ZDc5Y2Q3MDMxMzE3MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTExNSw2ICsxMTUsNyBAQAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ2FudmFzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ2xp
cGJvYXJkLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3IuaCcsCisgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lci5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkNvbG9yTmFtZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkNvbW1vbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVu
dC5oJywKQEAgLTQyNyw2ICs0MjgsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRh
dGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJDb2xvci5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JD
aG9vc2VyTGlzdGVuZXJJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNo
b29zZXJMaXN0ZW5lckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21tb24uY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNTdHJpbmcuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5l
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI2ODBiMzg1NmE1Y2U4OTI5OGRhMWI3NWRiNDVmMjhhZDEwOTQ3YTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xv
ckNob29zZXJMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVyX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJfaAorCisjaW5jbHVk
ZSAiV2ViQ29sb3IuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEdldHMgY2FsbGVkIGJh
Y2sgd2hlbiBXZWJWaWV3Q2xpZW50IHNlbGVjdHMgYSBjb2xvci4KK2NsYXNzIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMg
YSBjb2xvci4gT24gdGhlIE1hYyB0aGlzIHdvdWxkIGJlIGNhbGxlZCBldmVyeQorICAgIC8vIHRp
bWUgdGhlIHVzZXIgY2hhbmdlcyB0aGUgY29sb3IuIE9uIExpbnV4IHRoaXMgd2lsbCBiZSBjYWxs
ZWQgd2hlbiB0aGUKKyAgICAvLyBPSyBidXR0b24gaXMgY2xpY2tlZC4KKyAgICB2aXJ0dWFsIHZv
aWQgc2VsZWN0ZWRDb2xvcihXZWJDb2xvcikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggODk5ODZiMmY3ODlkM2Y0
MWU3NjZlMGRmOGViMTRiZDBhMTRlMDFhZC4uZDEwYjRhMDg3NmQ1ZmJiZTRhODY5NzZkNTE0OWM1
MGM1OWY4N2VjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdD
bGllbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBXZWJWaWV3Q2xpZW50X2gKIAogI2lu
Y2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb2xv
ci5oIgogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRpb24uaCIKICNpbmNsdWRlICJXZWJFZGl0aW5n
QWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgiCkBAIC00Niw2
ICs0Nyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9i
amVjdDsKK2NsYXNzIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyOwogY2xhc3MgV2ViRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ7CiBjbGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkVsZW1lbnQ7CkBA
IC0xNzUsNiArMTc3LDIyIEBAIHB1YmxpYzoKICAgICAvLyBpbmRpY2F0aW5nIHRoYXQgdGhlIGRl
ZmF1bHQgYWN0aW9uIHNob3VsZCBiZSBzdXBwcmVzc2VkLgogICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBDb2xv
ciBDaG9vc2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworICAgIC8vIFRoaXMgbWV0aG9kIG9wZW5zIHRoZSBjb2xvciBjaG9vc2VyIGlu
dGVyZmFjZSB3aXRoIHRoZSBzZWxlY3RlZCBjb2xvcgorICAgIC8vIHNldCB0byB0aGUgZ2l2ZW4g
V2ViQ29sb3IuIFdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGNvbG9yLCAKKyAgICAvLyBXZWJDb2xv
ckNob29zZXJMaXN0ZW5lcjo6c2VsZWN0ZWRDb2xvciBpcyBjYWxsZWQuCisgICAgdmlydHVhbCB2
b2lkIG9wZW5Db2xvckNob29zZXIoV2ViQ29sb3IsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyKikg
eyB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCB0cmllcyB0byBjbG9zZXMgdGhlIGNvbG9yIGNob29z
ZXIgaW50ZXJmYWNlLiBUaGUgY29sb3IKKyAgICAvLyBjaG9vc2VyIHdvdWxkIG5vdCBjbG9zZSBp
ZiB0aGUgY29sb3IgY2hvb3NlcidzIGxpc3RlbmVyIGlzIGlzIHRpZWQgdG8KKyAgICAvLyBhbm90
aGVyIHRhYiBvciBhbm90aGVyIHBhcnQgb2YgdGhlIGJyb3dzZXIgVUkuCisgICAgdmlydHVhbCB2
b2lkIGNsb3NlQ29sb3JDaG9vc2VyKCkgeyB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2Vk
IHRvIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgY29sb3IgaW4gdGhlIGNvbG9yIGNob29zZXIuCisgICAg
Ly8gTGlrZSBjbG9zZUNvbG9yQ2hvb3NlciwgdGhpcyBzaG91bGQgYmUgaWdub3JlZCBpZiB0aGUg
Y29sb3IgY2hvb3NlcgorICAgIC8vIGlzIHRpZWQgdG8gYW5vdGhlciB0YWIgb3IgYW5vdGhlciBw
YXJ0IG9mIHRoZSBicm93c2VyIFVJLgorICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoV2ViQ29sb3IpIHsgfQogCiAgICAgLy8gRGlhbG9ncyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXgg
YTNlOWIwZmQ5M2JiOGMwZTYzNmE5YjZiMzFhM2IxNWE2Nzg1Y2Y4Zi4uZjNhODA0MTRhMDYyZTE3
MGE0OWZkMmFmNDBmMzE3MTEyOTI3ZGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJW
OFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisj
aW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViQ29u
c29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJXZWJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiV2Vi
RmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5oIgpAQCAtNjY4LDYgKzY2OSwzNyBAQCB2b2lkIENo
cm9tZUNsaWVudEltcGw6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJp
dHlPcmlnaW4qLCBpbnQ2NAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2
b2lkIENocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyKiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKK3sKKyAgICBXZWJWaWV3
Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nh
c3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xvci5yZ2IoKSk7CisgICAgY2xpZW50LT5vcGVuQ29sb3JD
aG9vc2VyKHBsYXRmb3JtQ29sb3IsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6c2hhcmVk
TGlzdGVuZXIoKSk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29z
ZXIoKQoreworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7
CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGNsaWVudC0+Y2xvc2VD
b2xvckNob29zZXIoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENv
bG9ySW5Db2xvckNob29zZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIFdl
YlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGll
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvbG9yIHBsYXRmb3JtQ29sb3IgPSBzdGF0
aWNfY2FzdDxXZWJDb2xvcj4oY29sb3IucmdiKCkpOworICAgIGNsaWVudC0+c2V0U2VsZWN0ZWRD
b2xvckluQ29sb3JDaG9vc2VyKHBsYXRmb3JtQ29sb3IpOworfQorI2VuZGlmCisKIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAppbmRleCA1MjM0ZTQzNjc5NDUwNWZmMWVmOTQyM2Y1MjYwNzE1ZDg5NzJmMjE5
Li40MjhmMDdmMjg1NzY0NDc5Njk4ZWI3ZjY1MDM4YmEwYzdlYjNhYzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMzgsNiArMTM4LDEx
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiop
OwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOworI2lmIEVOQUJM
RShJTlBVVF9DT0xPUikKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihXZWJDb3Jl
OjpDb2xvckNob29zZXIqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZUNvbG9yQ2hvb3NlcigpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyNlbmRpZgogICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPik7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CiAjaWYgRU5B
QkxFKERJUkVDVE9SWV9VUExPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2Q2
ZWZkZDIzNDA3OGRmNDcwNDMzYzRhZjI1YTZiNmViOTI5ODE1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmNw
cApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9y
Q2hvb3Nlckxpc3RlbmVySW1wbC5oIgorCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCisgCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwq
IHN0YXRpY0xpc3RlbmVyID0gMDsKKworV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsKiBXZWJD
b2xvckNob29zZXJMaXN0ZW5lckltcGw6OnNoYXJlZExpc3RlbmVyKCkKK3sKKyAgICBpZiAoIXN0
YXRpY0xpc3RlbmVyKQorICAgICAgICBzdGF0aWNMaXN0ZW5lciA9IGFkb3B0UHRyKG5ldyBXZWJD
b2xvckNob29zZXJMaXN0ZW5lckltcGwoKSkubGVha1B0cigpOworICAgIHJldHVybiBzdGF0aWNM
aXN0ZW5lcjsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGw6OnNlbGVjdGVk
Q29sb3IoV2ViQ29sb3IgY29sb3IpCit7CisgICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyOjpjaG9v
c2VyKCktPmNvbG9yU2VsZWN0ZWQoV2ViQ29yZTo6Q29sb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
UkdCQTMyPihjb2xvcikpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmNTQ5MWY3
MWU2ZDZiN2Q2YzBjMjEwNDIxYjM0ZDdjNWY2MDBjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuaApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGxfaAorI2RlZmlu
ZSBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9v
c2VyTGlzdGVuZXIuaCIKKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbCA6IHB1YmxpYyBXZWJD
b2xvckNob29zZXJMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVySW1wbCogc2hhcmVkTGlzdGVuZXIoKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RlZENvbG9yKFdlYkNvbG9yKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQorCisjZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyTGlz
dGVuZXJJbXBsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103723</attachid>
            <date>2011-08-11 19:12:20 -0700</date>
            <delta_ts>2011-09-01 06:22:18 -0700</delta_ts>
            <desc>changed selectedColor to colorSelected</desc>
            <filename>bug-65897-20110812111218.patch</filename>
            <type>text/plain</type>
            <size>16257</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTM4YzUyYmNkZWExYzUw
MGE5ZjFjMmExZmE2ZDgzMjQ0MjJjZDg3Li44NzQ5MjA0YzBkOTZmNmE5YTMzYjE2NGIwOTQ2NTZj
ZDIwNDVmZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDgtMDkgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0wOC0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlcyBWOCdzIEphdmFJbnN0YW5jZUpvYmplY3QsIEph
dmFDbGFzc0pvYmplY3QgYW5kIEphdmFGaWVsZEpvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
NzliZTljZGUwNDg1ZTUyMWE0YTQ1NjgzYTY2M2ZhZWUwMWM3NjJmZS4uM2MwY2Q5ZmRmYTFkM2Ew
ZTc1MWQ4N2I0NmJlN2Y0NTVjOTI1NjU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjUyLDYgKzY1
Miw3IEBACiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAg
ICAgICAgICdwYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Q29va2llLmgnLApAQCAtMjk5NCw2ICsyOTk1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9B
c3luY0ZpbGVTeXN0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVt
Q2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9Db2xvckNob29zZXIuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Db250ZW50VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRU
eXBlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGYzNDRkNDQ1MjM1ZGJlYTk3Y2ZkZmNkNjFiMjQxZGI2YmI3
MzQzNDAuLjZiMDVlNzkwNGE1YWY4MTgxNDcwMGRkYzM3MTNlMTI2M2U5ODMzYjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDgtMDkgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0
eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVkIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyLmgsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC57aCxjcHB9CisgICAg
ICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyLmg6IEFkZGVkLiBDb2xvciBjaG9v
c2VyIGNhbGxzIHRoaXMgb2JqZWN0IHdoZW4gdXNlciBzZWxlY3RzIGEgY29sb3IuCisgICAgICAg
ICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVu
dDo6b3BlbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVyVmlldy4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGVkLiBP
dmVycmlkZGVuIGluIFJlbmRlclZpZXcuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZWQuIE92ZXJyaWRkZW4gaW4gUmVu
ZGVyVmlldy4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMg
V2ViVmlld0NsaWVudDo6b3BlbkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVu
dDo6Y2xvc2VDb2xvckNob29zZXIuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcik6IEFkZGVkLiBDYWxscyBXZWJWaWV3Q2xp
ZW50OjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIuCisgICAgICAgICogc3JjL0Nocm9t
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBs
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1w
bDo6c2hhcmVkTGlzdGVuZXIpOiBBZGRlZC4gUmV0dXJucyBzaGFyZWQgaW5zdGFuY2UuCisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6Y29sb3JTZWxlY3RlZCk6
IEFkZGVkLiBDaHJvbWl1bSBzaWRlIGNhbGxzIHRoaXMgbWV0aG9kIHdoZW4gdXNlciBzZWxlY3Rz
IGEgY29sb3IuCisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oOiBB
ZGRlZC4KKwogMjAxMS0wOC0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkyNjE5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGI5N2E2N2M0NTE3MjA2MWVhZTNmNjU5ZTk4ZjkzYTQw
ZjllZTUyMDcuLmQ1NWY2NzYyMWZkOGJjNjAzNjhlZjU1YmM0ZDc5Y2Q3MDMxMzE3MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTExNSw2ICsxMTUsNyBAQAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ2FudmFzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ2xp
cGJvYXJkLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3IuaCcsCisgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lci5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkNvbG9yTmFtZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkNvbW1vbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVu
dC5oJywKQEAgLTQyNyw2ICs0MjgsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRh
dGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJDb2xvci5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JD
aG9vc2VyTGlzdGVuZXJJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNo
b29zZXJMaXN0ZW5lckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21tb24uY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNTdHJpbmcuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJMaXN0ZW5l
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNkMDhkMWE2MzM3NzVmMTYxNzM2YzJlYmE4MTg4YjQ2NDY3MmM5MjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xv
ckNob29zZXJMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVyX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJfaAorCisjaW5jbHVk
ZSAiV2ViQ29sb3IuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIEdldHMgY2FsbGVkIGJh
Y2sgd2hlbiBXZWJWaWV3Q2xpZW50IHNlbGVjdHMgYSBjb2xvci4KK2NsYXNzIFdlYkNvbG9yQ2hv
b3Nlckxpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICAvLyBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMg
YSBjb2xvci4gT24gdGhlIE1hYyB0aGlzIHdvdWxkIGJlIGNhbGxlZCBldmVyeQorICAgIC8vIHRp
bWUgdGhlIHVzZXIgY2hhbmdlcyB0aGUgY29sb3IuIE9uIExpbnV4IHRoaXMgd2lsbCBiZSBjYWxs
ZWQgd2hlbiB0aGUKKyAgICAvLyBPSyBidXR0b24gaXMgY2xpY2tlZC4KKyAgICB2aXJ0dWFsIHZv
aWQgY29sb3JTZWxlY3RlZChXZWJDb2xvcikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggODk5ODZiMmY3ODlkM2Y0
MWU3NjZlMGRmOGViMTRiZDBhMTRlMDFhZC4uMDcxNWQ4OTE1ZGMxNDlmYTg5NDIxZDkxYmIxMmM1
NWZlNzg3OTY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdD
bGllbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBXZWJWaWV3Q2xpZW50X2gKIAogI2lu
Y2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlICJXZWJDb2xv
ci5oIgogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRpb24uaCIKICNpbmNsdWRlICJXZWJFZGl0aW5n
QWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgiCkBAIC00Niw2
ICs0Nyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9i
amVjdDsKK2NsYXNzIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyOwogY2xhc3MgV2ViRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ7CiBjbGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkVsZW1lbnQ7CkBA
IC0xNzUsNiArMTc3LDIyIEBAIHB1YmxpYzoKICAgICAvLyBpbmRpY2F0aW5nIHRoYXQgdGhlIGRl
ZmF1bHQgYWN0aW9uIHNob3VsZCBiZSBzdXBwcmVzc2VkLgogICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBDb2xv
ciBDaG9vc2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworICAgIC8vIFRoaXMgbWV0aG9kIG9wZW5zIHRoZSBjb2xvciBjaG9vc2VyIGlu
dGVyZmFjZSB3aXRoIHRoZSBzZWxlY3RlZCBjb2xvcgorICAgIC8vIHNldCB0byB0aGUgZ2l2ZW4g
V2ViQ29sb3IuIFdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGNvbG9yLCAKKyAgICAvLyBXZWJDb2xv
ckNob29zZXJMaXN0ZW5lcjo6Y29sb3JTZWxlY3RlZCBpcyBjYWxsZWQuCisgICAgdmlydHVhbCB2
b2lkIG9wZW5Db2xvckNob29zZXIoV2ViQ29sb3IsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVyKikg
eyB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCB0cmllcyB0byBjbG9zZXMgdGhlIGNvbG9yIGNob29z
ZXIgaW50ZXJmYWNlLiBUaGUgY29sb3IKKyAgICAvLyBjaG9vc2VyIHdvdWxkIG5vdCBjbG9zZSBp
ZiB0aGUgY29sb3IgY2hvb3NlcidzIGxpc3RlbmVyIGlzIGlzIHRpZWQgdG8KKyAgICAvLyBhbm90
aGVyIHRhYiBvciBhbm90aGVyIHBhcnQgb2YgdGhlIGJyb3dzZXIgVUkuCisgICAgdmlydHVhbCB2
b2lkIGNsb3NlQ29sb3JDaG9vc2VyKCkgeyB9CisKKyAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2Vk
IHRvIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgY29sb3IgaW4gdGhlIGNvbG9yIGNob29zZXIuCisgICAg
Ly8gTGlrZSBjbG9zZUNvbG9yQ2hvb3NlciwgdGhpcyBzaG91bGQgYmUgaWdub3JlZCBpZiB0aGUg
Y29sb3IgY2hvb3NlcgorICAgIC8vIGlzIHRpZWQgdG8gYW5vdGhlciB0YWIgb3IgYW5vdGhlciBw
YXJ0IG9mIHRoZSBicm93c2VyIFVJLgorICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoV2ViQ29sb3IpIHsgfQogCiAgICAgLy8gRGlhbG9ncyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXgg
YTNlOWIwZmQ5M2JiOGMwZTYzNmE5YjZiMzFhM2IxNWE2Nzg1Y2Y4Zi4uZjNhODA0MTRhMDYyZTE3
MGE0OWZkMmFmNDBmMzE3MTEyOTI3ZGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJW
OFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisj
aW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViQ29u
c29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJXZWJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiV2Vi
RmlsZUNob29zZXJDb21wbGV0aW9uSW1wbC5oIgpAQCAtNjY4LDYgKzY2OSwzNyBAQCB2b2lkIENo
cm9tZUNsaWVudEltcGw6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJp
dHlPcmlnaW4qLCBpbnQ2NAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2
b2lkIENocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyKiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKK3sKKyAgICBXZWJWaWV3
Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nh
c3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xvci5yZ2IoKSk7CisgICAgY2xpZW50LT5vcGVuQ29sb3JD
aG9vc2VyKHBsYXRmb3JtQ29sb3IsIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbDo6c2hhcmVk
TGlzdGVuZXIoKSk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Y2xvc2VDb2xvckNob29z
ZXIoKQoreworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7
CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGNsaWVudC0+Y2xvc2VD
b2xvckNob29zZXIoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENv
bG9ySW5Db2xvckNob29zZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIFdl
YlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGll
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvbG9yIHBsYXRmb3JtQ29sb3IgPSBzdGF0
aWNfY2FzdDxXZWJDb2xvcj4oY29sb3IucmdiKCkpOworICAgIGNsaWVudC0+c2V0U2VsZWN0ZWRD
b2xvckluQ29sb3JDaG9vc2VyKHBsYXRmb3JtQ29sb3IpOworfQorI2VuZGlmCisKIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAppbmRleCA1MjM0ZTQzNjc5NDUwNWZmMWVmOTQyM2Y1MjYwNzE1ZDg5NzJmMjE5
Li40MjhmMDdmMjg1NzY0NDc5Njk4ZWI3ZjY1MDM4YmEwYzdlYjNhYzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMzgsNiArMTM4LDEx
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiop
OwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOworI2lmIEVOQUJM
RShJTlBVVF9DT0xPUikKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihXZWJDb3Jl
OjpDb2xvckNob29zZXIqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9p
ZCBjbG9zZUNvbG9yQ2hvb3NlcigpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyNlbmRpZgogICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPik7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CiAjaWYgRU5B
QkxFKERJUkVDVE9SWV9VUExPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjMz
ZDdkMjAwNWVjMmI0NTBhZWNjMDc1ZGFkMTk1YWU5YjhjM2MwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLmNw
cApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9y
Q2hvb3Nlckxpc3RlbmVySW1wbC5oIgorCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCisgCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwq
IHN0YXRpY0xpc3RlbmVyID0gMDsKKworV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsKiBXZWJD
b2xvckNob29zZXJMaXN0ZW5lckltcGw6OnNoYXJlZExpc3RlbmVyKCkKK3sKKyAgICBpZiAoIXN0
YXRpY0xpc3RlbmVyKQorICAgICAgICBzdGF0aWNMaXN0ZW5lciA9IGFkb3B0UHRyKG5ldyBXZWJD
b2xvckNob29zZXJMaXN0ZW5lckltcGwoKSkubGVha1B0cigpOworICAgIHJldHVybiBzdGF0aWNM
aXN0ZW5lcjsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGw6OmNvbG9yU2Vs
ZWN0ZWQoV2ViQ29sb3IgY29sb3IpCit7CisgICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyOjpjaG9v
c2VyKCktPmNvbG9yU2VsZWN0ZWQoV2ViQ29yZTo6Q29sb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
UkdCQTMyPihjb2xvcikpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMmUyYTZm
YzRkMTIxNzdkNzEwOTFkMjFjMDcwNWVjMzIzZWE5OTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGwuaApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGxfaAorI2RlZmlu
ZSBXZWJDb2xvckNob29zZXJMaXN0ZW5lckltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9v
c2VyTGlzdGVuZXIuaCIKKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3Nlckxpc3RlbmVySW1wbCA6IHB1YmxpYyBXZWJD
b2xvckNob29zZXJMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNvbG9yQ2hvb3Nl
ckxpc3RlbmVySW1wbCogc2hhcmVkTGlzdGVuZXIoKTsKKworICAgIHZpcnR1YWwgdm9pZCBjb2xv
clNlbGVjdGVkKFdlYkNvbG9yKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQorCisjZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyTGlz
dGVuZXJJbXBsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105949</attachid>
            <date>2011-09-01 06:22:25 -0700</date>
            <delta_ts>2011-09-27 06:32:58 -0700</delta_ts>
            <desc>fixed patch</desc>
            <filename>bug-65897-20110901222223.patch</filename>
            <type>text/plain</type>
            <size>17547</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyOTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNDczNjY0NGYzOTNlMTQw
ZDAyMGNmOTdkZWNmYTFmZmE5OWVlZWNjLi4zOGEzNjQ2YjFmYTg2N2NjZTQ2OTI0MmQ4MDA0Zjc1
NDkwYjU3ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMDEgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0wOC0zMSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgYWxsIG1lbnRpb25zIG9mIEFuZHJvaWQgaW4g
Y29tbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzNjA4YTYzNmJmYzY2MTIzODkzMGEzNzAwNjg1
M2Y3NGNkYTlmMzMwLi41OTUzYTliMmJlYzI0MWNkYTBlMzFjZjU0ODVjZjZiNDY4YTM1ZDkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC02NTcsNiArNjU3LDcgQEAKICAgICAgICAgICAgICdwYWdlL21h
Yy9XZWJDb3JlRnJhbWVWaWV3LmgnLAogICAgICAgICAgICAgJ3BhZ2UvbWFjL1dlYkNvcmVWaWV3
RmFjdG9yeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0NvbnRleHRNZW51LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29raWUuaCcsCkBAIC0yOTk2LDYgKzI5OTcs
NyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vQXV0b2RyYWluZWRQb29sLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9y
Q2hvb3Nlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRUeXBlLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vQ29udGVudFR5cGUuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vQ29udGV4dE1lbnUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDJjYTcy
NzFmOTEwN2I2YWQ3YjMzODc3MDVjNTY5NTkxNjlkMTVmNy4uZTYzMzViMWNhNDNmNzQ1MWMwZTJk
MTgyMDE5MzkxYTI1YzI5NTVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAxMS0wOS0wMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4K
KworICAgICAgICBJbXBsZW1lbnQgPGlucHV0IHR5cGU9Y29sb3I+IFVJIFdlYktpdCBjaHJvbWl1
bSBwYXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViS2l0Lmd5cDogQWRkZWQgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXIuaCwgV2ViQ29sb3JDaG9v
c2VyTGlzdGVuZXJJbXBsLntoLGNwcH0KKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBBZGRlZCBF
TkFCTEVfSU5QVVRfQ09MT1IgZmxhZyB0dXJuZWQgb2ZmLgorICAgICAgICAqIHB1YmxpYy9XZWJD
b2xvckNob29zZXJDb21wbGV0aW9uLmg6IEFkZGVkLiBDb2xvciBjaG9vc2VyIGNhbGxzIHRoaXMg
b2JqZWN0IHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGNvbG9yLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb2xvckNob29zZXJDb21wbGV0aW9uOjp+V2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbik6IAor
ICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdDbGllbnQ6Om9wZW5Db2xvckNob29zZXIpOiBBZGRlZC4gT3ZlcnJpZGRlbiBpbiBSZW5kZXJW
aWV3LgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjbGVhbnVwQ29sb3JDaG9vc2Vy
KTogQWRkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVyVmlldy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKTogQWRkZWQuIE92ZXJy
aWRkZW4gaW4gUmVuZGVyVmlldy4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIpOiBB
ZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVudDo6b3BlbkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y2xlYW51cENvbG9yQ2hvb3Nlcik6IEFkZGVkLiBDYWxs
cyBXZWJWaWV3Q2xpZW50OjpjbGVhbnVwQ29sb3JDaG9vc2VyLgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIpOiBBZGRlZC4g
Q2FsbHMgV2ViVmlld0NsaWVudDo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyLgorICAg
ICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hv
b3NlckNvbXBsZXRpb25JbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
Q2hvb3NlckNvbXBsZXRpb25JbXBsOjpzaGFyZWRMaXN0ZW5lcik6IEFkZGVkLiBSZXR1cm5zIHNo
YXJlZCBpbnN0YW5jZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ29tcGxldGlv
bkltcGw6On5XZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsOjpkaWRDaG9vc2VDb2xvcik6IEFkZGVkLiBD
aHJvbWl1bSBzaWRlIGNhbGxzIHRoaXMgbWV0aG9kIHdoZW4gdXNlciBzZWxlY3RzIGEgY29sb3Iu
CisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsLmg6IEFkZGVkLgor
CiAyMDExLTA4LTMxICBHcmVnIEJpbGxvY2sgIDxnYmlsbG9ja0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIEFkZCBwYXNzLXRocm91Z2hzIGZvciBOUE9iamVjdC92ODo6VmFsdWUgbWFyc2hhbGxpbmcg
dG8gV2ViQmluZGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBjZGY2ZTk5YWVh
MWQ5YjFmNjJmNDBjNGU0MDY5NjM0N2I5OGY3OGE0Li5kNmE0NGY5ZmJmNDM2ZjBhOWI2MjA2MDk1
MGViYzJjZTljMjc0ZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMTksNiAr
MTE5LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNhbnZhcy5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkNsaXBib2FyZC5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkNvbG9yLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ29t
cGxldGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbG9yTmFtZS5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbi5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkNvbW1vbldvcmtlckNsaWVudC5oJywKQEAgLTQzOSw2ICs0NDAsOCBAQAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViQmxvYkRhdGEuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvci5jcHAnLAorICAgICAg
ICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwuY3BwJywKKyAgICAg
ICAgICAgICAgICAnc3JjL1dlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViQ29tbW9uLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJDU3RyaW5nLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2Zl
YXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXgg
MjcxN2M1MDU1YjM5NGJhNjI5ZGY2YjI4Mjc3OWFmMWY4MzVkNDVjMi4uNmNmMGJmMGY5MzMxMzBj
NzZkOGJiYzE5MTgwNDdiNGNkMGRkYWUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaQpAQCAtNTUsNiArNTUsNyBAQAogICAgICAgJ0VOQUJMRV9HRVNUVVJFX1JFQ09HTklaRVI9
MScsCiAgICAgICAnRU5BQkxFX0lDT05EQVRBQkFTRT0wJywKICAgICAgICdFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRT0xJywKKyAgICAgICdFTkFCTEVfSU5QVVRfQ09MT1I9MCcsCiAgICAgICAnRU5B
QkxFX0lOUFVUX1NQRUVDSD0xJywKICAgICAgICdFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUj0x
JywKICAgICAgICdFTkFCTEVfSlNDX01VTFRJUExFX1RIUkVBRFM9MCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2Q4NjUyYzAzYzNiZDE3ZDFkYzBjNDFkMWZjZDU1Zjg3M2UxOWUwOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9y
Q2hvb3NlckNvbXBsZXRpb24uaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29z
ZXJDb21wbGV0aW9uX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbl9oCisKKyNp
bmNsdWRlICJXZWJDb2xvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gR2V0cyBjYWxs
ZWQgYmFjayB3aGVuIFdlYlZpZXdDbGllbnQgc2VsZWN0cyBhIGNvbG9yLgorY2xhc3MgV2ViQ29s
b3JDaG9vc2VyQ29tcGxldGlvbiB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHVz
ZXIgc2VsZWN0cyBhIGNvbG9yLiBEZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtLCB0aGlzCisgICAg
Ly8gbWV0aG9kIG1heSBlaXRoZXIgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIHByZXZpZXcg
dGhlIHNlbGVjdGVkIGNvbG9yLAorICAgIC8vIG9yIGp1c3Qgb25jZSB3aGVuIHRoZSB1c2VyIGhh
cyBtYWRlIHRoZWlyIGZpbmFsIGNvbG9yIGNob2ljZS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hv
b3NlQ29sb3IoV2ViQ29sb3IpID0gMDsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5XZWJDb2xv
ckNob29zZXJDb21wbGV0aW9uKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDUyYmZjMjE1NWE1ZmI2N2I4MzI4
NDMzOTAwM2M0OTU5OGQwN2I3OWIuLmZiNGRiYWE5Yjg5MWQ1ZTMzYTkyZTdlNDM2MjI5NWIyYTFl
M2EyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmlld0NsaWVudF9oCiAKICNpbmNsdWRl
ICJXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29sb3IuaCIK
ICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlv
bi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgpAQCAtNDYsNiArNDcs
NyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7
CitjbGFzcyBXZWJDb2xvckNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50
YXRpb25DbGllbnQ7CiBjbGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkVsZW1lbnQ7CkBAIC0x
NzYsNiArMTc4LDI1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlQ3VycmVudEtl
eWJvYXJkRXZlbnQoKSB7IHJldHVybiBmYWxzZTsgfQogCiAKKyAgICAvLyBDb2xvciBDaG9vc2Vy
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworICAgIC8vIFRoaXMgbWV0aG9kIG9wZW5zIHRoZSBjb2xvciBjaG9vc2VyIGludGVyZmFjZSB3
aXRoIHRoZSBzZWxlY3RlZCBjb2xvcgorICAgIC8vIHNldCB0byB0aGUgZ2l2ZW4gV2ViQ29sb3Iu
IFdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGNvbG9yLAorICAgIC8vIFdlYkNvbG9yQ2hvb3NlckNv
bXBsZXRpb246OmNvbG9yU2VsZWN0ZWQgaXMgY2FsbGVkLgorICAgIHZpcnR1YWwgdm9pZCBvcGVu
Q29sb3JDaG9vc2VyKFdlYkNvbG9yIGluaXRpYWxDb2xvciwgV2ViQ29sb3JDaG9vc2VyQ29tcGxl
dGlvbiopIHsgfQorCisgICAgLy8gVGhpcyBtZXRob2QgZG9lcyBjbGVhbnVwIG9uIHRoZSBjb2xv
ciBjaG9vc2VyIGludGVyZmFjZS4KKyAgICAvLyBEZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIHRo
aXMgbWlnaHQgb3IgbWlnaHQgbm90IGNsb3NlIHRoZSBjb2xvciBjaG9vc2VyLgorICAgIC8vIFRo
aXMgY2FsbCB3aWxsIGJlIGlnbm9yZWQgaWYgdGhlIGxpc3RlbmVyIG9mIHRoZSBjb2xvciBjaG9v
c2VyIGhhcyBjaGFuZ2VkCisgICAgLy8gKGV4LiB0byBhbmQgZWxlbWVudCBpbiBhbm90aGVyIHRh
YikKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpIHsgfQorCisgICAgLy8g
VGhpcyBtZXRob2QgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHNlbGVjdGVkIGNvbG9yIGluIHRoZSBj
b2xvciBjaG9vc2VyLgorICAgIC8vIFRoaXMgY2FsbCB3aWxsIGJlIGlnbm9yZWQgaWYgdGhlIGxp
c3RlbmVyIG9mIHRoZSBjb2xvciBjaG9vc2VyIGhhcyBjaGFuZ2VkCisgICAgLy8gKGV4LiB0byBh
bmQgZWxlbWVudCBpbiBhbm90aGVyIHRhYikKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRD
b2xvckluQ29sb3JDaG9vc2VyKFdlYkNvbG9yKSB7IH0KKworCiAgICAgLy8gRGlhbG9ncyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKICAgICAvLyBUaGlzIG1ldGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVyIHNob3dpbmcg
dGhlIGRpYWxvZy4gV2hlbiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHAKaW5kZXggZmVmN2U3YzlkMDNkNmMyNmZlYTNkZGU2YzU2ZmE1MzM1
YzlhZjlmNC4uMjZhNjE2MjYzZmM3OTRmNzA5NDM3NmY3MWFjYmNlZDE2YmNiOThlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY4
LDYgKzY4LDcgQEAKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRlICJXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlv
bkltcGwuaCIKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkN1
cnNvckluZm8uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgiCkBA
IC02NTcsNiArNjU4LDM3IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShJTlBVVF9DT0xPUikKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6b3BlbkNvbG9y
Q2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXIqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5p
dGlhbENvbG9yKQoreworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xp
ZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYkNvbG9y
IHBsYXRmb3JtQ29sb3IgPSBzdGF0aWNfY2FzdDxXZWJDb2xvcj4oaW5pdGlhbENvbG9yLnJnYigp
KTsKKyAgICBjbGllbnQtPm9wZW5Db2xvckNob29zZXIocGxhdGZvcm1Db2xvciwgV2ViQ29sb3JD
aG9vc2VyQ29tcGxldGlvbkltcGw6OnNoYXJlZExpc3RlbmVyKCkpOworfQorCit2b2lkIENocm9t
ZUNsaWVudEltcGw6OmNsZWFudXBDb2xvckNob29zZXIoKQoreworICAgIFdlYlZpZXdDbGllbnQq
IGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGNsaWVudC0+Y2xlYW51cENvbG9yQ2hvb3NlcigpOworfQorCit2b2lk
IENocm9tZUNsaWVudEltcGw6OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgV2ViQ29sb3IgcGxhdGZvcm1Db2xvciA9IHN0YXRpY19jYXN0PFdlYkNvbG9yPihjb2xvci5y
Z2IoKSk7CisgICAgY2xpZW50LT5zZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIocGxhdGZv
cm1Db2xvcik7Cit9CisjZW5kaWYKKwogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVuUGFu
ZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKIHsK
ICAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDA5MDkzOTBj
Y2I5YjdjMjMyMGJkZmFkODdkODYyMWRkOTkwN2UxNDAuLmI1MWFmOThmMjRlYTMxYzJkZDY4YTNj
ZDk5OTE1YTY0M2JhN2NhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKQEAgLTEzOCw2ICsxMzgsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKKyNpZiBFTkFCTEUo
SU5QVVRfQ09MT1IpCisgICAgdmlydHVhbCB2b2lkIG9wZW5Db2xvckNob29zZXIoV2ViQ29yZTo6
Q29sb3JDaG9vc2VyKiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYW51cENvbG9yQ2hvb3NlcigpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyNlbmRpZgogICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPik7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CiAjaWYgRU5B
QkxFKERJUkVDVE9SWV9VUExPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjExM2YwODEwZGIxOGRiN2U4ODUxNTMzYTExZjViMDlhNWQ4MDQ0NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25J
bXBsLmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgiCisKKyNpbmNsdWRlICJDb2xvckNob29zZXIu
aCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKKyNpZiBFTkFCTEUoSU5QVVRfQ09M
T1IpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgV2ViQ29sb3JDaG9vc2VyQ29tcGxl
dGlvbkltcGwqIHN0YXRpY0xpc3RlbmVyID0gMDsKKworV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlv
bkltcGwqIFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsOjpzaGFyZWRMaXN0ZW5lcigpCit7
CisgICAgaWYgKCFzdGF0aWNMaXN0ZW5lcikKKyAgICAgICAgc3RhdGljTGlzdGVuZXIgPSBhZG9w
dFB0cihuZXcgV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwoKSkubGVha1B0cigpOworICAg
IHJldHVybiBzdGF0aWNMaXN0ZW5lcjsKK30KKworV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbklt
cGw6On5XZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViQ29s
b3JDaG9vc2VyQ29tcGxldGlvbkltcGw6OmRpZENob29zZUNvbG9yKFdlYkNvbG9yIGNvbG9yKQor
eworICAgIFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5kaWRDaG9vc2VDb2xvcihX
ZWJDb3JlOjpDb2xvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KGNvbG9yKSkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNv
bXBsZXRpb25JbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29z
ZXJDb21wbGV0aW9uSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwNDcyOGQ4ZWM1ZWJlY2YzMjU1MGYzZTE2
M2M3ZmQ4YTcyMjM1ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9v
c2VyQ29tcGxldGlvbkltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlv
bi5oIgorCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwgOiBwdWJsaWMgV2ViQ29sb3JDaG9v
c2VyQ29tcGxldGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNvbG9yQ2hvb3NlckNvbXBs
ZXRpb25JbXBsKiBzaGFyZWRMaXN0ZW5lcigpOworICAgIH5XZWJDb2xvckNob29zZXJDb21wbGV0
aW9uSW1wbCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xvcik7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xP
UikKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108838</attachid>
            <date>2011-09-27 06:33:04 -0700</date>
            <delta_ts>2011-10-17 23:49:02 -0700</delta_ts>
            <desc>rebased</desc>
            <filename>bug-65897-20110927223302.patch</filename>
            <type>text/plain</type>
            <size>17554</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYwNjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NWQzYWY1MzNhYWM2OGMz
ZDVhMDYyYzkzMTRlN2U3Yzg4YTIxNzJlLi45MWZiZjg4M2U3OTk3NDgyZWQxMzYxYjVlOWE3ODkz
YWUyYWJjZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMDEgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0wOS0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBUcmFuc2x1Y2VudCBzY3JvbGxiYXJzIG9uIGNvbXBvc2l0
ZWQgbGF5ZXJzIHJlbmRlciBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGUwYzk1YmJh
YTQ2ZWIwNzIxN2Q2NWQzZWY3NDNkYzg3Y2UxNzU2ZTcuLjcxNWE4MjlhNTJiMTZjYjk2MjRiYzBi
ZDA1OGY4ODNjZDRlZWQ0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTY1NCw2ICs2NTQsNyBAQAog
ICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQ29sb3JDaG9v
c2VyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9D
b29raWUuaCcsCkBAIC0yOTk0LDYgKzI5OTUsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Fz
eW5jRmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1D
YWxsYmFja3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXV0b2RyYWluZWRQb29sLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL0NvbnRlbnRUeXBlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29udGVudFR5
cGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggYjg0OTkyYTE3NzEzMjFmYTYwNmExOGUwODU4ZjFmNjhjNmE4
Y2YwOC4uYjhmNThiNzEzNTJkOTY2ZjRkM2M0MDFkN2ExZTUxMjRhODc0ZDRkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMS0wOS0wMSAgS2Vpc2hpIEhh
dHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgPGlucHV0IHR5
cGU9Y29sb3I+IFVJIFdlYktpdCBjaHJvbWl1bSBwYXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDogQWRkZWQgV2ViQ29sb3JDaG9v
c2VyTGlzdGVuZXIuaCwgV2ViQ29sb3JDaG9vc2VyTGlzdGVuZXJJbXBsLntoLGNwcH0KKyAgICAg
ICAgKiBmZWF0dXJlcy5neXBpOiBBZGRlZCBFTkFCTEVfSU5QVVRfQ09MT1IgZmxhZyB0dXJuZWQg
b2ZmLgorICAgICAgICAqIHB1YmxpYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uLmg6IEFkZGVk
LiBDb2xvciBjaG9vc2VyIGNhbGxzIHRoaXMgb2JqZWN0IHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBh
IGNvbG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJDb21wbGV0aW9uOjp+V2Vi
Q29sb3JDaG9vc2VyQ29tcGxldGlvbik6IAorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Q2xpZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6Om9wZW5Db2xvckNob29zZXIpOiBB
ZGRlZC4gT3ZlcnJpZGRlbiBpbiBSZW5kZXJWaWV3LgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
Q2xpZW50OjpjbGVhbnVwQ29sb3JDaG9vc2VyKTogQWRkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVy
Vmlldy4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6c2V0U2VsZWN0ZWRDb2xvcklu
Q29sb3JDaG9vc2VyKTogQWRkZWQuIE92ZXJyaWRkZW4gaW4gUmVuZGVyVmlldy4KKyAgICAgICAg
KiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dEltcGw6Om9wZW5Db2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVudDo6b3Bl
bkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y2xlYW51
cENvbG9yQ2hvb3Nlcik6IEFkZGVkLiBDYWxscyBXZWJWaWV3Q2xpZW50OjpjbGVhbnVwQ29sb3JD
aG9vc2VyLgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENv
bG9ySW5Db2xvckNob29zZXIpOiBBZGRlZC4gQ2FsbHMgV2ViVmlld0NsaWVudDo6c2V0U2VsZWN0
ZWRDb2xvckluQ29sb3JDaG9vc2VyLgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsOjpzaGFyZWRM
aXN0ZW5lcik6IEFkZGVkLiBSZXR1cm5zIHNoYXJlZCBpbnN0YW5jZS4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGw6On5XZWJDb2xvckNob29zZXJDb21wbGV0
aW9uSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBs
OjpkaWRDaG9vc2VDb2xvcik6IEFkZGVkLiBDaHJvbWl1bSBzaWRlIGNhbGxzIHRoaXMgbWV0aG9k
IHdoZW4gdXNlciBzZWxlY3RzIGEgY29sb3IuCisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3Nl
ckNvbXBsZXRpb25JbXBsLmg6IEFkZGVkLgorCiAyMDExLTA5LTI2ICBOYXQgRHVjYSAgPG5kdWNh
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1ha2UgQ0NUaHJlYWRQcm94eSBk
cmF3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMDMwYjcxM2NmOTM5YjJkYTczMjc2
NGRmMjc3M2EzNTdkODIwNTE1OC4uMWRkYzY0YzNmYmMzOWExNDI0MzRlYTY4OGIyY2YyMTUxZTli
M2ZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMTIzLDYgKzEyMyw3IEBACiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDYW52YXMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJDbGlwYm9hcmQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvci5o
JywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb24uaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvck5hbWUuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJDb21tb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21t
b25Xb3JrZXJDbGllbnQuaCcsCkBAIC00NDQsNiArNDQ1LDggQEAKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkJsb2JEYXRhLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDYWNoZS5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3IuY3BwJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsLmNwcCcsCisgICAgICAgICAgICAgICAg
J3NyYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbC5oJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ1N0cmlu
Zy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDZjNDVjZDEzYjVm
NjIwNmUxMjE5MzdkMWIxYzAwODU1MDNmYTM3YWQuLjI3YmJkM2ViY2QzYjJjYzBkNmVjZWMzZDlm
ZGViMGU2ZWJlMDQ5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTUy
LDYgKzUyLDcgQEAKICAgICAgICdFTkFCTEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAgICAg
J0VOQUJMRV9JQ09OREFUQUJBU0U9MCcsCiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9
MScsCisgICAgICAnRU5BQkxFX0lOUFVUX0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBVVF9T
UEVFQ0g9MScsCiAgICAgICAnRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVI9MScsCiAgICAgICAn
RU5BQkxFX0pBVkFTQ1JJUFRfSTE4Tl9BUEk9MScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDb21wbGV0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2Q4NjUyYzAzYzNiZDE3ZDFkYzBjNDFkMWZjZDU1Zjg3M2UxOWUwOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3NlckNvbXBs
ZXRpb24uaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJDb21wbGV0aW9u
X2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbl9oCisKKyNpbmNsdWRlICJXZWJD
b2xvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gR2V0cyBjYWxsZWQgYmFjayB3aGVu
IFdlYlZpZXdDbGllbnQgc2VsZWN0cyBhIGNvbG9yLgorY2xhc3MgV2ViQ29sb3JDaG9vc2VyQ29t
cGxldGlvbiB7CitwdWJsaWM6CisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBh
IGNvbG9yLiBEZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtLCB0aGlzCisgICAgLy8gbWV0aG9kIG1h
eSBlaXRoZXIgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIHByZXZpZXcgdGhlIHNlbGVjdGVk
IGNvbG9yLAorICAgIC8vIG9yIGp1c3Qgb25jZSB3aGVuIHRoZSB1c2VyIGhhcyBtYWRlIHRoZWly
IGZpbmFsIGNvbG9yIGNob2ljZS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoV2Vi
Q29sb3IpID0gMDsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29zZXJDb21w
bGV0aW9uKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdl
YkNvbG9yQ2hvb3NlckNvbXBsZXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDUyYmZjMjE1NWE1ZmI2N2I4MzI4NDMzOTAwM2M0OTU5
OGQwN2I3OWIuLmZiNGRiYWE5Yjg5MWQ1ZTMzYTkyZTdlNDM2MjI5NWIyYTFlM2EyZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNkZWZpbmUgV2ViVmlld0NsaWVudF9oCiAKICNpbmNsdWRlICJXZWJBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29sb3IuaCIKICNpbmNsdWRlICJX
ZWJEcmFnT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1
ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgpAQCAtNDYsNiArNDcsNyBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CitjbGFzcyBXZWJD
b2xvckNob29zZXJDb21wbGV0aW9uOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7
CiBjbGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkVsZW1lbnQ7CkBAIC0xNzYsNiArMTc4LDI1
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQo
KSB7IHJldHVybiBmYWxzZTsgfQogCiAKKyAgICAvLyBDb2xvciBDaG9vc2VyIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFRo
aXMgbWV0aG9kIG9wZW5zIHRoZSBjb2xvciBjaG9vc2VyIGludGVyZmFjZSB3aXRoIHRoZSBzZWxl
Y3RlZCBjb2xvcgorICAgIC8vIHNldCB0byB0aGUgZ2l2ZW4gV2ViQ29sb3IuIFdoZW4gdGhlIHVz
ZXIgc2VsZWN0cyBhIGNvbG9yLAorICAgIC8vIFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb246OmNv
bG9yU2VsZWN0ZWQgaXMgY2FsbGVkLgorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2Vy
KFdlYkNvbG9yIGluaXRpYWxDb2xvciwgV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbiopIHsgfQor
CisgICAgLy8gVGhpcyBtZXRob2QgZG9lcyBjbGVhbnVwIG9uIHRoZSBjb2xvciBjaG9vc2VyIGlu
dGVyZmFjZS4KKyAgICAvLyBEZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIHRoaXMgbWlnaHQgb3Ig
bWlnaHQgbm90IGNsb3NlIHRoZSBjb2xvciBjaG9vc2VyLgorICAgIC8vIFRoaXMgY2FsbCB3aWxs
IGJlIGlnbm9yZWQgaWYgdGhlIGxpc3RlbmVyIG9mIHRoZSBjb2xvciBjaG9vc2VyIGhhcyBjaGFu
Z2VkCisgICAgLy8gKGV4LiB0byBhbmQgZWxlbWVudCBpbiBhbm90aGVyIHRhYikKKyAgICB2aXJ0
dWFsIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpIHsgfQorCisgICAgLy8gVGhpcyBtZXRob2Qg
aXMgdXNlZCB0byB1cGRhdGUgdGhlIHNlbGVjdGVkIGNvbG9yIGluIHRoZSBjb2xvciBjaG9vc2Vy
LgorICAgIC8vIFRoaXMgY2FsbCB3aWxsIGJlIGlnbm9yZWQgaWYgdGhlIGxpc3RlbmVyIG9mIHRo
ZSBjb2xvciBjaG9vc2VyIGhhcyBjaGFuZ2VkCisgICAgLy8gKGV4LiB0byBhbmQgZWxlbWVudCBp
biBhbm90aGVyIHRhYikKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JD
aG9vc2VyKFdlYkNvbG9yKSB7IH0KKworCiAgICAgLy8gRGlhbG9ncyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBU
aGlzIG1ldGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVyIHNob3dpbmcgdGhlIGRpYWxvZy4g
V2hlbiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKaW5kZXggYTgwYzY5YWQ4NmQ2MTdkZmQxYmI4YThmM2M4ZGUwMDU1YzkyYjBhMi4uMDk5
MGQ5MWY3NTQ5NDEyNzQwNTMxMWViNWMzNWYxMjQ1MmUyYTcyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY4LDYgKzY4LDcgQEAK
ICNpbmNsdWRlICJWOFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwuaCIKICNp
bmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkN1cnNvckluZm8uaCIK
ICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgiCkBAIC02NTUsNiArNjU2
LDM3IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2b2lkIENocm9tZUNsaWVudEltcGw6Om9w
ZW5Db2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyKiwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImIGluaXRpYWxDb2xvcikKK3sKKyAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZp
ZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBX
ZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nhc3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xv
ci5yZ2IoKSk7CisgICAgY2xpZW50LT5vcGVuQ29sb3JDaG9vc2VyKHBsYXRmb3JtQ29sb3IsIFdl
YkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsOjpzaGFyZWRMaXN0ZW5lcigpKTsKK30KKwordm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpjbGVhbnVwQ29sb3JDaG9vc2VyKCkKK3sKKyAgICBXZWJWaWV3
Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBjbGllbnQtPmNsZWFudXBDb2xvckNob29zZXIoKTsKK30K
Kwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIo
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVu
dCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIFdlYkNvbG9yIHBsYXRmb3JtQ29sb3IgPSBzdGF0aWNfY2FzdDxXZWJDb2xvcj4o
Y29sb3IucmdiKCkpOworICAgIGNsaWVudC0+c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2Vy
KHBsYXRmb3JtQ29sb3IpOworfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVu
T3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29z
ZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3
OTAzYzM5OTZhMTQ0NmIxYTFhOTYxMWUyNDZkYjc5MWZhZDY1NzMxLi4zMTc5OTU4NTM2N2YwOTY3
YjgxY2NkZmIyYWVhOWM4OGZjYzI4OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMzYsNiArMTM2LDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CisjaWYg
RU5BQkxFKElOUFVUX0NPTE9SKQorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0
ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisjZW5kaWYKICAg
ICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopOwog
I2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYxMTNmMDgxMGRiMThkYjdlODg1MTUzM2ExMWY1YjA5YTVkODA0NDcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDb21w
bGV0aW9uSW1wbC5jcHAKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbC5oIgorCisjaW5jbHVkZSAiQ29sb3JD
aG9vc2VyLmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCisjaWYgRU5BQkxFKElO
UFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFdlYkNvbG9yQ2hvb3Nl
ckNvbXBsZXRpb25JbXBsKiBzdGF0aWNMaXN0ZW5lciA9IDA7CisKK1dlYkNvbG9yQ2hvb3NlckNv
bXBsZXRpb25JbXBsKiBXZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbDo6c2hhcmVkTGlzdGVu
ZXIoKQoreworICAgIGlmICghc3RhdGljTGlzdGVuZXIpCisgICAgICAgIHN0YXRpY0xpc3RlbmVy
ID0gYWRvcHRQdHIobmV3IFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsKCkpLmxlYWtQdHIo
KTsKKyAgICByZXR1cm4gc3RhdGljTGlzdGVuZXI7Cit9CisKK1dlYkNvbG9yQ2hvb3NlckNvbXBs
ZXRpb25JbXBsOjp+V2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwoKQoreworfQorCit2b2lk
IFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsOjpkaWRDaG9vc2VDb2xvcihXZWJDb2xvciBj
b2xvcikKK3sKKyAgICBXZWJDb3JlOjpDb2xvckNob29zZXI6OmNob29zZXIoKS0+ZGlkQ2hvb3Nl
Q29sb3IoV2ViQ29yZTo6Q29sb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UkdCQTMyPihjb2xvcikp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRf
Q09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNo
b29zZXJDb21wbGV0aW9uSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29s
b3JDaG9vc2VyQ29tcGxldGlvbkltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDQ3MjhkOGVjNWViZWNmMzI1
NTBmM2UxNjNjN2ZkOGE3MjIzNWQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ29tcGxldGlvbkltcGwuaApAQCAtMCwwICsxLDUx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbF9oCisjZGVmaW5lIFdlYkNv
bG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsX2gKKworI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlckNv
bXBsZXRpb24uaCIKKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNvbXBsZXRpb25JbXBsIDogcHVibGljIFdlYkNv
bG9yQ2hvb3NlckNvbXBsZXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBXZWJDb2xvckNob29z
ZXJDb21wbGV0aW9uSW1wbCogc2hhcmVkTGlzdGVuZXIoKTsKKyAgICB+V2ViQ29sb3JDaG9vc2Vy
Q29tcGxldGlvbkltcGwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoV2ViQ29s
b3IpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5Q
VVRfQ09MT1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJDb21wbGV0aW9uSW1wbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111393</attachid>
            <date>2011-10-17 23:49:10 -0700</date>
            <delta_ts>2011-11-06 23:22:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65897-20111018154908.patch</filename>
            <type>text/plain</type>
            <size>19941</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc1NzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZmUxN2E3MWZkMGU0NDVi
NzkzMzBlNjE3ZmI2YzBkM2I0YzgxMjM2Li4xZWZhMGIzMmM2OWI0ODViZjFmODU5OGI1MjAyNjY2
OTI1NzQzNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTAtMTcgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0xMC0xNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHI5NjYyMCk6IEZsb2F0LWF2b2lkaW5nIGJsb2Nr
IHBvc2l0aW9uZWQgaW5jb3JyZWN0bHkgaW4gcmlnaHQtdG8tbGVmdCBibG9jawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAwMzM5Y2JkMGM3ODhjZTJhZDQxYTk2YmJlOGU5MTdmODllNWQy
YmFhLi5iZWEwYTQ5ZGFlMzRkYzhlYWM4YTVkNWQwMGM1MTlmNTM5OGY0MTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTEwLTE3ICBLZWlzaGkgSGF0
dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5wdXQgdHlw
ZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOiBBZGRlZCBXZWJDb2xvckNob29z
ZXIuaCwgV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmggYW5kIFdlYkNvbG9yQ2hvb3NlckNsaWVudElt
cGwue2gsY3BwfQorICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IEFkZGVkIEVOQUJMRV9JTlBVVF9D
T0xPUiBzZXQgdG8gMC4KKyAgICAgICAgKiBwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmg6IEFkZGVk
LiBJbnRlcmZhY2UgdG8gdGhlIGNvbG9yIGNob29zZXIgaW4gdGhlIGJyb3dzZXIuCisgICAgICAg
IChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nlcjo6fldlYkNvbG9yQ2hvb3Nlcik6CisgICAgICAgICog
cHVibGljL1dlYkNvbG9yQ2hvb3NlckNsaWVudC5oOiBBZGRlZC4gUmVjZWl2ZXMgY2FsbGJhY2tz
IGZyb20gV2ViQ29sb3JDaG9vc2VyIGFuZCBwYXNzZXMgaXQgdG8gV2ViQ29yZSBDb2xvckNob29z
ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudDo6fldlYkNvbG9yQ2hv
b3NlckNsaWVudCk6CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9w
ZW5Db2xvckNob29zZXIpOiBDYWxsZWQgZnJvbSBXZWJDb3JlLiBDYWxscyBvcGVuIG9uIFdlYkNv
bG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y2xlYW51cENv
bG9yQ2hvb3Nlcik6IENhbGxlZCBmcm9tIFdlYkNvcmUuIENhbGxzIGNsZWFudXAgb24gV2ViQ29s
b3JDaG9vc2VyLgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3Rl
ZENvbG9ySW5Db2xvckNob29zZXIpOiBDYWxsZWQgZnJvbSBXZWJDb3JlLiBDYWxscyBzZXRTZWxl
Y3RlZENvbG9yIG9uIFdlYkNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50
SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6OldlYkNvbG9y
Q2hvb3NlckNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJDbGll
bnRJbXBsOjp+V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbG9yQ2hvb3NlckNsaWVudEltcGw6OmRpZENob29zZUNvbG9yKTogQ2FsbGVkIHdoZW4gY29s
b3IgY2hvb3NlciBjaG9zZSBhIGNvbG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29z
ZXJDbGllbnRJbXBsOjpkaWRDbGVhbnVwKTogQ2FsbGVkIGFmdGVyIGNvbG9yIGNob29zZXIgaGFz
IGRvbmUgY2xlYW51cC4gRG9lcworICAgICAgICBub3RoaW5nIHJpZ2h0IG5vdyBidXQgd2lsbCBi
ZSB1c2luZyBpdCB0byBjbGVhbiB1cCBXZWJDb3JlOjpDb2xvckNob29zZXIuCisgICAgICAgICog
c3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuaDogQWRkZWQuCisKIDIwMTEtMTAtMTYgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShET01fU1RPUkFHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxZjgzZGYyNjYyMjFjOTU1MjRi
MmJmNmE3NTY5YmI1MjlhNDI2YjMwLi5hMjI1ZThmYWJkNWRhOGM1YzBkOGVmNWJjNTBkZWU0NDVi
NDdmYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02NTcsNiArNjU3LDcgQEAKICAgICAgICAgICAg
ICdwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3Bh
Z2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNG
aWxlU3RyZWFtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9Db250ZXh0TWVudUl0ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29va2llLmgnLApA
QCAtMzAxMiw2ICszMDEzLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0
ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9Db2xvckNob29zZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250
ZW50VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRUeXBlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKaW5kZXggM2Y0NmEyNGFjMzg3NTEzMDgwZmM3NmY1NzhiY2QwNjc5ZGQzMDczYS4uNWM4
Njc5OTVkNzljZmM2NWQ5MGI3NGZkMjI0NzZlZTkwNDVmM2NkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cApAQCAtMTIzLDYgKzEyMyw4IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJDYW52YXMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDbGlwYm9hcmQuaCcsCiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvci5oJywKKyAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkNvbG9yQ2hvb3Nlci5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbG9y
Q2hvb3NlckNsaWVudC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbG9yTmFtZS5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbW1vbi5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkNvbW1vbldvcmtlckNsaWVudC5oJywKQEAgLTQ1MSw2ICs0NTMsOCBAQAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRhdGEuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvci5jcHAnLAor
ICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAnLAorICAg
ICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29t
cG9zaXRvckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJbXBs
LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGMxYzM2YzY1NTlmNTky
OGU0ZWIyNTcwZjUzN2FkYTYzMjk4ZTYyYmYuLmM1MTgyY2JhZTU2MzI5MTRmN2JiODFmM2Y1ZTk4
ZTdkMTMwN2U0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTUyLDYg
KzUyLDcgQEAKICAgICAgICdFTkFCTEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAgICAgJ0VO
QUJMRV9JQ09OREFUQUJBU0U9MCcsCiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MScs
CisgICAgICAnRU5BQkxFX0lOUFVUX0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBVVF9TUEVF
Q0g9MScsCiAgICAgICAnRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MCcsCiAgICAgICAnRU5BQkxF
X0lOUFVUX1RZUEVfREFURT0wJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29sb3JDaG9vc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUxYmRlZmE4NjU1YWRlNDFmMmVjZDAxYjRi
ZmY4MzZjNzQ5MWU5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9y
Q2hvb3Nlcl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nlcl9oCisKKyNpbmNsdWRlICJXZWJDb2xv
ci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JDaG9vc2VyQ2xpZW50
OworCisvLyBDb250cm9scyB0aGUgY29sb3IgY2hvb3NlciBpbiB0aGUgYnJvd3NlciBhbmQgcmVj
ZWl2ZXMgY2FsbGJhY2tzIGZyb20gaXQuCitjbGFzcyBXZWJDb2xvckNob29zZXIgeworcHVibGlj
OgorICAgIC8vIE9wZW5zIHRoZSBjb2xvciBjaG9vc2VyIGFuZCBzZXRzIHRoZSBpbml0aWFsIGNv
bG9yLgorICAgIHZpcnR1YWwgdm9pZCBvcGVuKFdlYkNvbG9yKSA9IDA7CisgICAgLy8gU3RvcCBs
aXN0ZW5pbmcgdG8gdGhlIGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lkIGNsZWFudXAo
KSA9IDA7CisgICAgLy8gU2V0IHNlbGVjdGVkIGNvbG9yIGluIHRoZSBjb2xvciBjaG9vc2VyLgor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKFdlYkNvbG9yKSA9IDA7CisKKyAgICAv
LyBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMgYSBjb2xvciBpbiB0aGUgY29sb3IgY2hvb3Nlci4K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoV2ViQ29sb3IpID0gMDsKKyAgICAvLyBD
YWxsZWQgd2hlbiBjbGVhbnVwIG9jY3VyZWQgYW5kIHRoZSB2aWV3IGlzIG5vIGxvbmdlciBsaXN0
ZW5pbmcgdG8gdGhlCisgICAgLy8gY29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2xlYW51cCgpID0gMDsKKworICAgIC8vIFNldHMgdGhlIGNsaWVudCB0aGF0IHdpbGwgYmUgcmVj
aWV2aW5nIHRoZSBjYWxsYmFja3MuCisgICAgLy8gV2ViQ29sb3JDaG9vc2VyIHdpbGwgb3duIHRo
aXMgY2xpZW50LgorICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoV2ViQ29sb3JDaG9vc2VyQ2xp
ZW50KikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9vc2VyKCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hv
b3Nlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xv
ckNob29zZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9y
Q2hvb3NlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwZWI5YWU1YzA3ZjczYTljMDIxZWYyZGYwYjk5
MDE2N2RjMTc4ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJDb2xvckNob29zZXJDbGllbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJD
b2xvckNob29zZXJDbGllbnRfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJDbGllbnRfaAorCisj
aW5jbHVkZSAiV2ViQ29sb3IuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFJlY2VpdmVz
IGNhbGxzIGZyb20gV2ViQ29sb3JDaG9vc2VyIGFuZCBwYXNzZXMgaXQgdG8gYSBXZWJDb3JlIG9i
amVjdC4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+V2ViQ29sb3JDaG9vc2VyQ2xpZW50KCkgeyB9CisKKyAgICAvLyBDYWxsZWQgd2hlbiB1c2Vy
IHNlbGVjdHMgYSBjb2xvciBpbiB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hvb3NlQ29sb3IoV2ViQ29sb3IpID0gMDsKKyAgICAvLyBDYWxsZWQgd2hlbiBjbGVhbnVw
IG9jY3VyZWQuCisgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXAoKSA9IDA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlckNsaWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggNTJi
ZmMyMTU1YTVmYjY3YjgzMjg0MzM5MDAzYzQ5NTk4ZDA3Yjc5Yi4uNDA3YTBkNDU1NGI3MTg5M2Y2
NjRiNTUzZjIzM2FkYTIyMjYxZDE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBXZWJWaWV3Q2xp
ZW50X2gKIAogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKKyNpbmNs
dWRlICJXZWJDb2xvci5oIgogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRpb24uaCIKICNpbmNsdWRl
ICJXZWJFZGl0aW5nQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9u
LmgiCkBAIC00Niw2ICs0Nyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdDsKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlcjsKIGNsYXNzIFdlYkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJFbGVtZW50
OwpAQCAtMTc2LDYgKzE3OCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUN1
cnJlbnRLZXlib2FyZEV2ZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogCisgICAgLy8gQ29sb3Ig
Q2hvb3NlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKyAgICAvLyBUaGlzIG1ldGhvZCByZXR1cm5zIGEgV2ViQ29sb3JDaG9vc2VyIGlu
c3RhbmNlIHRoYXQgaXMgYW4gaW50ZXJmYWNlIHRvCisgICAgLy8gdGhlIGNvbG9yIGNob29zZXIg
aW4gdGhlIGJyb3dzZXIuCisgICAgdmlydHVhbCBXZWJDb2xvckNob29zZXIqIGNvbG9yQ2hvb3Nl
cigpIHsgcmV0dXJuIDA7IH0KKworCiAgICAgLy8gRGlhbG9ncyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBUaGlz
IG1ldGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVyIHNob3dpbmcgdGhlIGRpYWxvZy4gV2hl
biB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKaW5kZXggMDU5ZGU3NzI2ZGZlODNkYmY1ODNmN2NiZDJjYzRhYWUzM2MzNWM3Yi4uZjhjMTlh
Y2ZhY2VjNmE5OTlkMWNiZThhZWJlY2FjNGE4OTg0N2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY4LDYgKzY4LDEwIEBACiAj
aW5jbHVkZSAiVjhQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9i
amVjdC5oIgorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvckNob29z
ZXIuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgiCisjZW5kaWYKICNp
bmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkN1cnNvckluZm8uaCIK
ICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgiCkBAIC02NTUsNiArNjU5
LDM5IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2b2lkIENocm9tZUNsaWVudEltcGw6Om9w
ZW5Db2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyKiBjb2xvckNob29zZXIsIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCit7CisgICAgV2ViVmlld0NsaWVudCogY2xp
ZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCogY29sb3JDaG9vc2VyQ2xpZW50
ID0gbmV3IFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwoY29sb3JDaG9vc2VyKTsKKyAgICBjbGll
bnQtPmNvbG9yQ2hvb3NlcigpLT5zZXRDbGllbnQoY29sb3JDaG9vc2VyQ2xpZW50KTsKKyAgICBX
ZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nhc3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xv
ci5yZ2IoKSk7CisgICAgY2xpZW50LT5jb2xvckNob29zZXIoKS0+b3BlbihwbGF0Zm9ybUNvbG9y
KTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjbGVhbnVwQ29sb3JDaG9vc2VyKCkKK3sK
KyAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlm
ICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBjbGllbnQtPmNvbG9yQ2hvb3Nlcigp
LT5jbGVhbnVwKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0U2VsZWN0ZWRDb2xv
ckluQ29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sKKyAgICBXZWJW
aWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGlj
X2Nhc3Q8V2ViQ29sb3I+KGNvbG9yLnJnYigpKTsKKyAgICBjbGllbnQtPmNvbG9yQ2hvb3Nlcigp
LT5zZXRTZWxlY3RlZENvbG9yKHBsYXRmb3JtQ29sb3IpOworfQorI2VuZGlmCisKIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAppbmRleCA3OTAzYzM5OTZhMTQ0NmIxYTFhOTYxMWUyNDZkYjc5MWZhZDY1NzMx
Li4zMTc5OTU4NTM2N2YwOTY3YjgxY2NkZmIyYWVhOWM4OGZjYzI4OTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMzYsNiArMTM2LDEx
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdl
b2xvY2F0aW9uKik7CisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorICAgIHZpcnR1YWwgdm9pZCBv
cGVuQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciosIGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNv
bG9yJik7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZy
YW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwogICAgIHZpcnR1YWwgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpG
aWxlSWNvbkxvYWRlciopOwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBs
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zODMxMzBkOGY2ZmExZTg5NjRjNWEwYjA3YjE2YWFmYjhkZWQ5MDU5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJDb2xv
ckNob29zZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKKyNpZiBFTkFCTEUo
SU5QVVRfQ09MT1IpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvckNob29zZXJDbGll
bnRJbXBsOjpXZWJDb2xvckNob29zZXJDbGllbnRJbXBsKFdlYkNvcmU6OkNvbG9yQ2hvb3Nlciog
Y29sb3JDaG9vc2VyKQoreworICAgIG1fY29sb3JDaG9vc2VyID0gY29sb3JDaG9vc2VyOworfQor
CitXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjp+V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCgp
Cit7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3Io
V2ViQ29sb3IgY29sb3IpCit7CisgICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyOjpjaG9vc2VyKCkt
PmRpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OlJHQkEz
Mj4oY29sb3IpKSk7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6ZGlkQ2xl
YW51cCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMGI2ZTY4NDExZTdiYWQ0OWZj
OGU1YjllNDA3ODJiNTUyYzUxMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbF9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nl
ckNsaWVudEltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgiCisKKyNp
ZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbG9y
Q2hvb3NlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3Nl
ckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciopOworICAg
IHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xvcik7CisgICAgdmlydHVhbCB2b2lk
IGRpZENsZWFudXAoKTsKK3Byb3RlY3RlZDoKKyAgICB+V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1w
bCgpOworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDb2xvckNob29zZXIqIG1fY29sb3JDaG9vc2Vy
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRf
Q09MT1IpCisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113826</attachid>
            <date>2011-11-06 23:22:25 -0800</date>
            <delta_ts>2011-11-07 03:15:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65897-20111107162223.patch</filename>
            <type>text/plain</type>
            <size>20771</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5kYWYzMDlmZTkyM2QyNmU5NDE0MWE0YTQ2N2I1NDFl
YmZmYWI4YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTEtMDYgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1
dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JD
aG9vc2VyLntoLGNwcH0KKwogMjAxMS0xMS0wNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENNYWtlIGJ1aWxkIGZpeCBmb3IgIUVO
QUJMRShTUUxfREFUQUJBU0UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxZDg5Nzcz
NDc0M2MwYjJkNDRlMDIwZTFiYmU1MWZhZTU4MDdkYTNhLi45ZTc3NzEzMDhlMzE5YjM1NGJmNjRm
YmEwNzEzMjUwZjYzODNkNDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMxIEBACisyMDExLTExLTA2ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgor
CisgICAgICAgIEltcGxlbWVudCA8aW5wdXQgdHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVt
IHBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJLaXQuZ3lwOiBBZGRlZCBXZWJDb2xvckNob29zZXIuaCwgV2ViQ29sb3JDaG9vc2VyQ2xpZW50
LmgsIGFuZCBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsLntjcHAsaH0KKyAgICAgICAgKiBmZWF0
dXJlcy5neXBpOiBBZGRlZCBFTkFCTEVfSU5QVVRfQ09MT1IKKyAgICAgICAgKiBwdWJsaWMvV2Vi
Q29sb3JDaG9vc2VyLmg6IEFkZGVkLiBDb250cm9scyB0aGUgY29sb3IgY2hvb3NlciBpbiB0aGUg
YnJvd3Nlci4gQWxzbyByZWNlaXZlcyBjYWxsYmFja3MgZnJvbSBpdCBhbmQgcGFzc2VzIGl0IHRv
IFdlYkNvbG9yQ2hvb3NlckNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
Ojp+V2ViQ29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ2xp
ZW50Lmg6IEFkZGVkLiBSZWNlaXZlcyBjYWxsYmFja3MgZnJvbSBXZWJDb2xvckNob29zZXIgYW5k
IHBhc3NlcyBpdCB0byBXZWJDb3JlOjpDb2xvckNob29zZXIuCisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbG9yQ2hvb3NlckNsaWVudDo6fldlYkNvbG9yQ2hvb3NlckNsaWVudCk6CisgICAgICAgICog
cHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6
Y29sb3JDaG9vc2VyKTogUmV0dXJucyB0aGUgV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHRoYXQgd2ls
bCByZWNlaXZlIHRoZSBjYWxsYmFja3MuCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpvcGVuQ29sb3JDaG9vc2Vy
KTogQ2FsbHMgV2ViQ29sb3JDaG9vc2VyOjpvcGVuKCkKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50SW1wbDo6Y2xlYW51cENvbG9yQ2hvb3Nlcik6IENhbGxzIFdlYkNvbG9yQ2hvb3Nlcjo6
Y2xlYW51cAorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENv
bG9ySW5Db2xvckNob29zZXIpOiBDYWxscyBDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3JJ
bkNvbG9yQ2hvb3NlcgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAg
ICogc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1w
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJDb2xv
ckNob29zZXJDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xp
ZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29z
ZXJDbGllbnRJbXBsOjpkaWRDbGVhbnVwKToKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2Vy
Q2xpZW50SW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xp
ZW50SW1wbDo6Y29sb3JDaG9vc2VyKToKKwogMjAxMS0xMS0wMiAgWGlhb21laSBKaSAgPHhqaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRW5hYmxlIGN0cmwtYXJyb3cgbW92ZSBjdXJzb3IgYnkg
d29yZCBpbiB2aXN1YWwgb3JkZXIgaW4gY3Itd2luIGJ5IGNvbW1hbmQgbGluZSBmbGFnLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDVkNzUwZDI3NDhlMjJiZGI1ZWQwZWNkMWE4ZGRiMzNlNDFhY2I0YTcu
LmZiMTVlOWI3ZWRiNDYwMTljYzhhMDhlZTAxYjZmY2NjNWZkYTcyYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTY1OCw2ICs2NTgsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmll
dy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nv
bnRleHRNZW51LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29raWUuaCcsCkBAIC0zMDQxLDYgKzMwNDIsNyBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vQXV0b2RyYWluZWRQb29sLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3Nl
ci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRUeXBlLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vQ29udGVudFR5cGUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29u
dGV4dE1lbnUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA1ZDgzYzg0YjAy
YjYzYjIxNTQzZWQ3ZjkwNTEwMmI2YmNiODc5ODI4Li5iMzJiODQzMTZmZDg4YWY3MDhhYTE0Yzdl
ZmEwY2ZkYTVjNTFkOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMjgsNiAr
MTI4LDggQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNhbnZhcy5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkNsaXBib2FyZC5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkNvbG9yLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgn
LAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29sb3JOYW1lLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViQ29tbW9uLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uV29y
a2VyQ2xpZW50LmgnLApAQCAtNDU5LDYgKzQ2MSw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJCbG9iRGF0YS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ2FjaGUuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYkNvbG9yLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJD
b2xvckNob29zZXJDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tbW9u
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9zaXRvckltcGwuaCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L2ZlYXR1cmVzLmd5cGkKaW5kZXggNzMxMTFlMmE0NmI2ODZlYTUwNjZkMmIzNTM0M2Q1MDAwOTcz
NGU3NS4uMjAwZGRlY2QzYTIwYWVkMjE5NGJkYTU3NzJiMzNmYmExOWY5ODM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtNTIsNiArNTIsNyBAQAogICAgICAgJ0VOQUJM
RV9HRVNUVVJFX1JFQ09HTklaRVI9MScsCiAgICAgICAnRU5BQkxFX0lDT05EQVRBQkFTRT0wJywK
ICAgICAgICdFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRT0xJywKKyAgICAgICdFTkFCTEVfSU5QVVRf
Q09MT1I9MCcsCiAgICAgICAnRU5BQkxFX0lOUFVUX1NQRUVDSD0xJywKICAgICAgICdFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUj0wJywKICAgICAgICdFTkFCTEVfSU5QVVRfVFlQRV9EQVRFPTAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kZTVlMzNlOWJmN2U0YWNiYjVlZjEwYWQ0ZGM1MDYyYjIwMjc3ZjFjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2Vy
LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyX2gKKyNkZWZpbmUgV2Vi
Q29sb3JDaG9vc2VyX2gKKworI2luY2x1ZGUgIldlYkNvbG9yLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJDb2xvckNob29zZXJDbGllbnQ7CisKKy8vIENvbnRyb2xzIHRoZSBj
b2xvciBjaG9vc2VyIGluIHRoZSBicm93c2VyIGFuZCByZWNlaXZlcyBjYWxsYmFja3MgZnJvbSBp
dC4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciB7CitwdWJsaWM6CisgICAgLy8gT3BlbnMgdGhlIGNv
bG9yIGNob29zZXIgYW5kIHNldHMgdGhlIGluaXRpYWwgY29sb3IuCisgICAgdmlydHVhbCB2b2lk
IG9wZW4oV2ViQ29sb3IpID0gMDsKKyAgICAvLyBTdG9wIGxpc3RlbmluZyB0byB0aGUgY29sb3Ig
Y2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cCgpID0gMDsKKyAgICAvLyBTZXQgc2Vs
ZWN0ZWQgY29sb3IgaW4gdGhlIGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lkIHNldFNl
bGVjdGVkQ29sb3IoV2ViQ29sb3IpID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIHVzZXIgc2Vs
ZWN0cyBhIGNvbG9yIGluIHRoZSBjb2xvciBjaG9vc2VyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRD
aG9vc2VDb2xvcihXZWJDb2xvcikgPSAwOworICAgIC8vIENhbGxlZCB3aGVuIGNsZWFudXAgb2Nj
dXJlZCBhbmQgdGhlIHZpZXcgaXMgbm8gbG9uZ2VyIGxpc3RlbmluZyB0byB0aGUKKyAgICAvLyBj
b2xvciBjaG9vc2VyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwKCkgPSAwOworCisgICAg
Ly8gUmV0dXJucyB0aGUgY3VycmVudCBjbGllbnQgdGhhdCB3aWxsIGJlIHJlY2lldmluZyB0aGUg
Y2FsbGJhY2tzLgorICAgIHZpcnR1YWwgV2ViQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQoKSA9
IDA7CisKKyAgICAvLyBTZXRzIHRoZSBjbGllbnQgdGhhdCB3aWxsIGJlIHJlY2lldmluZyB0aGUg
Y2FsbGJhY2tzLgorICAgIC8vIFdlYkNvbG9yQ2hvb3NlciB3aWxsIG93biB0aGlzIGNsaWVudC4K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdlYkNvbG9yQ2hvb3NlckNsaWVudCopID0gMDsK
KworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldlYkNvbG9yQ2hvb3NlcigpIHsgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NzJiNzZjMzcwNGVhYmM1YzIxYmNiZTI0MGYyOGVhODg3ZTU0OWNm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29s
b3JDaG9vc2VyQ2xpZW50LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2Vy
Q2xpZW50X2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyQ2xpZW50X2gKKworI2luY2x1ZGUgIldl
YkNvbG9yLmgiCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKKyNpZiBXRUJLSVRfSU1QTEVNRU5U
QVRJT04KK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgQ29sb3JDaG9vc2VyOyB9CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFJlY2VpdmVzIGNhbGxzIGZyb20gV2ViQ29sb3JD
aG9vc2VyIGFuZCBwYXNzZXMgaXQgdG8gV2ViQ29yZTo6Q29sb3JDaG9vc2VyLgorY2xhc3MgV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29z
ZXJDbGllbnQoKSB7IH0KKworICAgIC8vIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyBhIGNvbG9y
IGluIHRoZSBjb2xvciBjaG9vc2VyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihX
ZWJDb2xvcikgPSAwOworICAgIC8vIENhbGxlZCB3aGVuIGNsZWFudXAgb2NjdXJlZC4KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cCgpID0gMDsKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04K
KyAgICAvLyBSZXR1cm5zIHRoZSBXZWJDb3JlOjpDb2xvckNob29zZXIgdGhhdCB3aWxsIGJlIGdl
dHRpbmcgdGhlCisgICAgLy8gZGlkQ2hvb3NlQ29sb3IgYW5kIGRpZENsZWFudXAgY2FsbHMuCisg
ICAgdmlydHVhbCBXZWJDb3JlOjpDb2xvckNob29zZXIqIGNvbG9yQ2hvb3NlcigpIGNvbnN0ID0g
MDsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJD
b2xvckNob29zZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCmluZGV4IDUyYmZjMjE1NWE1ZmI2N2I4MzI4NDMzOTAwM2M0OTU5OGQwN2I3
OWIuLmQzNzYxNDIxZWIyZjU3M2RkMWQ2M2RhNjQ3NTFiZWZmYjZhMmI4NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNkZWZpbmUgV2ViVmlld0NsaWVudF9oCiAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29sb3IuaCIKICNpbmNsdWRlICJXZWJEcmFn
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldl
YkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgpAQCAtNDYsNiArNDcsNyBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CitjbGFzcyBXZWJDb2xvckNo
b29zZXI7CiBjbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFdlYkRyYWdE
YXRhOwogY2xhc3MgV2ViRWxlbWVudDsKQEAgLTE3Niw2ICsxNzgsMTMgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAKIAorICAgIC8vIENvbG9yIENob29zZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gVGhpcyBtZXRob2QgcmV0dXJu
cyB0aGUgV2ViQ29sb3JDaG9vc2VyIGluc3RhbmNlIHRoYXQgaXMgYW4gaW50ZXJmYWNlIHRvCisg
ICAgLy8gdGhlIGNvbG9yIGNob29zZXIgaW4gdGhlIGJyb3dzZXIuCisgICAgdmlydHVhbCBXZWJD
b2xvckNob29zZXIqIGNvbG9yQ2hvb3NlcigpIHsgcmV0dXJuIDA7IH0KKworCiAgICAgLy8gRGlh
bG9ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKICAgICAvLyBUaGlzIG1ldGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVy
IHNob3dpbmcgdGhlIGRpYWxvZy4gV2hlbiB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKaW5kZXggMWYwNjljOTI2MDQ1ODI3NWZkNGMyNDNl
YjNmZmY3MTUxODlkNGJmZC4uMTBkYTljMmZiZDJmNDA2YzViZDQ2NjUyZDY5OTRjYmFkZTY3ZTIy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKQEAgLTY4LDYgKzY4LDEwIEBACiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2VuZGlmCiAjaW5j
bHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikK
KyNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJD
bGllbnRJbXBsLmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2lu
Y2x1ZGUgIldlYkN1cnNvckluZm8uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRp
b25JbXBsLmgiCkBAIC02NTgsNiArNjYyLDQyIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2
b2lkIENocm9tZUNsaWVudEltcGw6Om9wZW5Db2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyKiBjb2xvckNob29zZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCit7
CisgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBp
ZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViQ29sb3JDaG9vc2VyQ2xpZW50
SW1wbCogY29sb3JDaG9vc2VyQ2xpZW50ID0gbmV3IFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwo
Y29sb3JDaG9vc2VyKTsKKyAgICBjbGllbnQtPmNvbG9yQ2hvb3NlcigpLT5zZXRDbGllbnQoY29s
b3JDaG9vc2VyQ2xpZW50KTsKKyAgICBXZWJDb2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nh
c3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xvci5yZ2IoKSk7CisgICAgY2xpZW50LT5jb2xvckNob29z
ZXIoKS0+b3BlbihwbGF0Zm9ybUNvbG9yKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpj
bGVhbnVwQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQor
eworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAg
aWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb2xvckNob29zZXIgPT0g
Y2xpZW50LT5jb2xvckNob29zZXIoKS0+Y2xpZW50KCktPmNvbG9yQ2hvb3NlcigpKQorICAgICAg
ICBjbGllbnQtPmNvbG9yQ2hvb3NlcigpLT5jbGVhbnVwKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xp
ZW50SW1wbDo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hv
b3NlciogY29sb3JDaG9vc2VyLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAg
V2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBpZiAoIWNs
aWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNvbG9yQ2hvb3NlciA9PSBjbGllbnQt
PmNvbG9yQ2hvb3NlcigpLT5jbGllbnQoKS0+Y29sb3JDaG9vc2VyKCkpIHsKKyAgICAgICAgV2Vi
Q29sb3IgcGxhdGZvcm1Db2xvciA9IHN0YXRpY19jYXN0PFdlYkNvbG9yPihjb2xvci5yZ2IoKSk7
CisgICAgICAgIGNsaWVudC0+Y29sb3JDaG9vc2VyKCktPnNldFNlbGVjdGVkQ29sb3IocGxhdGZv
cm1Db2xvcik7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVu
T3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29z
ZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3
OTAzYzM5OTZhMTQ0NmIxYTFhOTYxMWUyNDZkYjc5MWZhZDY1NzMxLi40YzA4ZWM2MGU0ZjhmZDU5
YTViNTkwYzQwMGIwZWI2ZWI5MWQxZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0xMzYsNiArMTM2LDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CisjaWYg
RU5BQkxFKElOUFVUX0NPTE9SKQorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyKik7CisgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xv
ckNob29zZXIqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rmls
ZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0
b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsKICNpZiBFTkFCTEUo
RElSRUNUT1JZX1VQTE9BRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg3MjRjNjA3ZjY3
MTI3YTNkMGZlMDllMWFjNWU3ZjZkNTc5ZTVhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuY3BwCkBAIC0wLDAg
KzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ2xp
ZW50SW1wbC5oIgorCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCisKKyNpZiBFTkFCTEUoSU5Q
VVRfQ09MT1IpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsOjpXZWJDb2xvckNob29zZXJDbGllbnRJbXBsKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciogY29s
b3JDaG9vc2VyKQoreworICAgIG1fY29sb3JDaG9vc2VyID0gY29sb3JDaG9vc2VyOworfQorCitX
ZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjp+V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCgpCit7
Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IoV2Vi
Q29sb3IgY29sb3IpCit7CisgICAgbV9jb2xvckNob29zZXItPmRpZENob29zZUNvbG9yKFdlYkNv
cmU6OkNvbG9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OlJHQkEzMj4oY29sb3IpKSk7Cit9CisKK3Zv
aWQgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6ZGlkQ2xlYW51cCgpCit7CisgICAgbV9jb2xv
ckNob29zZXItPmRpZENsZWFudXAoKTsKKyAgICBtX2NvbG9yQ2hvb3Nlci5jbGVhcigpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNs
aWVudEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDdkZjMzMTYyNWExMmE0YWZjMmFjMGI2YzExMTgxZDFk
NzM0YzBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9y
Q2hvb3NlckNsaWVudEltcGxfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsX2gK
KworI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlckNs
aWVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIEVOQUJMRShJTlBVVF9DT0xP
UikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudElt
cGwgOiBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJDb2xv
ckNob29zZXJDbGllbnRJbXBsKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciopOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xvcik7CisgICAgdmlydHVhbCB2b2lkIGRpZENsZWFu
dXAoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2xvckNob29zZXIuZ2V0KCk7IH07Citwcm90ZWN0ZWQ6CisgICAg
fldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwoKTsKK3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYkNv
cmU6OkNvbG9yQ2hvb3Nlcj4gbV9jb2xvckNob29zZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNv
bG9yQ2hvb3NlckNsaWVudEltcGxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113841</attachid>
            <date>2011-11-07 03:15:11 -0800</date>
            <delta_ts>2011-12-01 21:54:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65897-20111107201509.patch</filename>
            <type>text/plain</type>
            <size>20744</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2VhZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5k
YWYzMDlmZTkyM2QyNmU5NDE0MWE0YTQ2N2I1NDFlYmZmYWI4YzQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTEtMTEtMDYgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hy
b21pdW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JDaG9vc2VyLntoLGNwcH0KKwogMjAxMS0xMS0w
NCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIENNYWtlIGJ1aWxkIGZpeCBmb3IgIUVOQUJMRShTUUxfREFUQUJBU0UpLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAxZDg5NzczNDc0M2MwYjJkNDRlMDIwZTFiYmU1MWZhZTU4
MDdkYTNhLi45ZTc3NzEzMDhlMzE5YjM1NGJmNjRmYmEwNzEzMjUwZjYzODNkNDFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTExLTA2ICBLZWlzaGkg
SGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5wdXQg
dHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOiBBZGRlZCBXZWJDb2xvckNo
b29zZXIuaCwgV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgsIGFuZCBXZWJDb2xvckNob29zZXJDbGll
bnRJbXBsLntjcHAsaH0KKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBBZGRlZCBFTkFCTEVfSU5Q
VVRfQ09MT1IKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmg6IEFkZGVkLiBDb250
cm9scyB0aGUgY29sb3IgY2hvb3NlciBpbiB0aGUgYnJvd3Nlci4gQWxzbyByZWNlaXZlcyBjYWxs
YmFja3MgZnJvbSBpdCBhbmQgcGFzc2VzIGl0IHRvIFdlYkNvbG9yQ2hvb3NlckNsaWVudC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyOjp+V2ViQ29sb3JDaG9vc2VyKToKKyAgICAg
ICAgKiBwdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50Lmg6IEFkZGVkLiBSZWNlaXZlcyBjYWxs
YmFja3MgZnJvbSBXZWJDb2xvckNob29zZXIgYW5kIHBhc3NlcyBpdCB0byBXZWJDb3JlOjpDb2xv
ckNob29zZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudDo6fldlYkNv
bG9yQ2hvb3NlckNsaWVudCk6CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y29sb3JDaG9vc2VyKTogUmV0dXJucyB0aGUg
V2ViQ29yZTo6Q29sb3JDaG9vc2VyIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBjYWxsYmFja3MuCisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpvcGVuQ29sb3JDaG9vc2VyKTogQ2FsbHMgV2ViQ29sb3JDaG9vc2VyOjpv
cGVuKCkKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y2xlYW51cENvbG9yQ2hv
b3Nlcik6IENhbGxzIFdlYkNvbG9yQ2hvb3Nlcjo6Y2xlYW51cAorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIpOiBDYWxscyBD
b2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcgorICAgICAgICAqIHNy
Yy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVu
dEltcGwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50
SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJDb2xvckNob29zZXJDbGllbnRJbXBsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjpkaWRDbGVhbnVwKToK
KyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6Y29sb3JDaG9vc2VyKToKKwog
MjAxMS0xMS0wMiAgWGlhb21laSBKaSAgPHhqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRW5h
YmxlIGN0cmwtYXJyb3cgbW92ZSBjdXJzb3IgYnkgd29yZCBpbiB2aXN1YWwgb3JkZXIgaW4gY3It
d2luIGJ5IGNvbW1hbmQgbGluZSBmbGFnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDVkNzUwZDI3NDhl
MjJiZGI1ZWQwZWNkMWE4ZGRiMzNlNDFhY2I0YTcuLmZiMTVlOWI3ZWRiNDYwMTljYzhhMDhlZTAx
YjZmY2NjNWZkYTcyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTY1OCw2ICs2NTgsNyBAQAogICAg
ICAgICAgICAgJ3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaCcsCiAgICAgICAg
ICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9Bc3luY0ZpbGVTdHJlYW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2Vy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29r
aWUuaCcsCkBAIC0zMDQxLDYgKzMwNDIsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FzeW5j
RmlsZVN5c3RlbS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW1DYWxs
YmFja3MuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXV0b2RyYWluZWRQb29sLmgnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0NvbnRlbnRUeXBlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29udGVudFR5cGUu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29udGV4dE1lbnUuY3BwJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAppbmRleCA1ZDgzYzg0YjAyYjYzYjIxNTQzZWQ3ZjkwNTEwMmI2YmNiODc5
ODI4Li5iMzJiODQzMTZmZDg4YWY3MDhhYTE0YzdlZmEwY2ZkYTVjNTFkOGNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMjgsNiArMTI4LDggQEAKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkNhbnZhcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNsaXBib2Fy
ZC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbG9yLmgnLAorICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29s
b3JOYW1lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgnLApAQCAtNDU5LDYgKzQ2
MSw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJCbG9iRGF0YS5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViQ2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbG9y
LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmNw
cCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tbW9uLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJDb21wb3NpdG9ySW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9z
aXRvckltcGwuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVz
Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggNzMxMTFl
MmE0NmI2ODZlYTUwNjZkMmIzNTM0M2Q1MDAwOTczNGU3NS4uMjAwZGRlY2QzYTIwYWVkMjE5NGJk
YTU3NzJiMzNmYmExOWY5ODM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9m
ZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpA
QCAtNTIsNiArNTIsNyBAQAogICAgICAgJ0VOQUJMRV9HRVNUVVJFX1JFQ09HTklaRVI9MScsCiAg
ICAgICAnRU5BQkxFX0lDT05EQVRBQkFTRT0wJywKICAgICAgICdFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRT0xJywKKyAgICAgICdFTkFCTEVfSU5QVVRfQ09MT1I9MCcsCiAgICAgICAnRU5BQkxFX0lO
UFVUX1NQRUVDSD0xJywKICAgICAgICdFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUj0wJywKICAgICAg
ICdFTkFCTEVfSU5QVVRfVFlQRV9EQVRFPTAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJDb2xvckNob29zZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTVlMzNlOWJmN2U0YWNiYjVl
ZjEwYWQ0ZGM1MDYyYjIwMjc3ZjFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViQ29sb3JDaG9vc2VyX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyX2gKKworI2luY2x1ZGUg
IldlYkNvbG9yLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvckNob29z
ZXJDbGllbnQ7CisKKy8vIENvbnRyb2xzIHRoZSBjb2xvciBjaG9vc2VyIGluIHRoZSBicm93c2Vy
IGFuZCByZWNlaXZlcyBjYWxsYmFja3MgZnJvbSBpdC4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciB7
CitwdWJsaWM6CisgICAgLy8gT3BlbnMgdGhlIGNvbG9yIGNob29zZXIgYW5kIHNldHMgdGhlIGlu
aXRpYWwgY29sb3IuCisgICAgdmlydHVhbCB2b2lkIG9wZW4oV2ViQ29sb3IpID0gMDsKKyAgICAv
LyBTdG9wIGxpc3RlbmluZyB0byB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYW51cCgpID0gMDsKKyAgICAvLyBTZXQgc2VsZWN0ZWQgY29sb3IgaW4gdGhlIGNvbG9yIGNo
b29zZXIuCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoV2ViQ29sb3IpID0gMDsK
KworICAgIC8vIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyBhIGNvbG9yIGluIHRoZSBjb2xvciBj
aG9vc2VyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xvcikgPSAwOwor
ICAgIC8vIENhbGxlZCB3aGVuIGNsZWFudXAgb2NjdXJlZCBhbmQgdGhlIHZpZXcgaXMgbm8gbG9u
Z2VyIGxpc3RlbmluZyB0byB0aGUKKyAgICAvLyBjb2xvciBjaG9vc2VyLgorICAgIHZpcnR1YWwg
dm9pZCBkaWRDbGVhbnVwKCkgPSAwOworCisgICAgLy8gUmV0dXJucyB0aGUgY3VycmVudCBjbGll
bnQgdGhhdCB3aWxsIGJlIHJlY2lldmluZyB0aGUgY2FsbGJhY2tzLgorICAgIHZpcnR1YWwgV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQoKSA9IDA7CisKKyAgICAvLyBTZXRzIHRoZSBjbGll
bnQgdGhhdCB3aWxsIGJlIHJlY2lldmluZyB0aGUgY2FsbGJhY2tzLgorICAgIC8vIFdlYkNvbG9y
Q2hvb3NlciB3aWxsIG93biB0aGlzIGNsaWVudC4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50
KFdlYkNvbG9yQ2hvb3NlckNsaWVudCopID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
fldlYkNvbG9yQ2hvb3NlcigpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBXZWJDb2xvckNob29zZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzJiNzZjMzcw
NGVhYmM1YzIxYmNiZTI0MGYyOGVhODg3ZTU0OWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgKQEAgLTAsMCAr
MSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyQ2xpZW50X2gKKyNkZWZpbmUgV2ViQ29sb3JD
aG9vc2VyQ2xpZW50X2gKKworI2luY2x1ZGUgIldlYkNvbG9yLmgiCisjaW5jbHVkZSAiV2ViQ29t
bW9uLmgiCisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KK25hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgQ29sb3JDaG9vc2VyOyB9CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8v
IFJlY2VpdmVzIGNhbGxzIGZyb20gV2ViQ29sb3JDaG9vc2VyIGFuZCBwYXNzZXMgaXQgdG8gV2Vi
Q29yZTo6Q29sb3JDaG9vc2VyLgorY2xhc3MgV2ViQ29sb3JDaG9vc2VyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29zZXJDbGllbnQoKSB7IH0KKworICAgIC8vIENh
bGxlZCB3aGVuIHVzZXIgc2VsZWN0cyBhIGNvbG9yIGluIHRoZSBjb2xvciBjaG9vc2VyLgorICAg
IHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xvcikgPSAwOworICAgIC8vIENhbGxl
ZCB3aGVuIGNsZWFudXAgb2NjdXJlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cCgpID0g
MDsKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICAvLyBSZXR1cm5zIHRoZSBXZWJDb3Jl
OjpDb2xvckNob29zZXIgdGhhdCB3aWxsIGJlIGdldHRpbmcgdGhlCisgICAgLy8gZGlkQ2hvb3Nl
Q29sb3IgYW5kIGRpZENsZWFudXAgY2FsbHMuCisgICAgdmlydHVhbCBXZWJDb3JlOjpDb2xvckNo
b29zZXIqIGNvbG9yQ2hvb3NlcigpIGNvbnN0ID0gMDsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJDbGllbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDUyYmZjMjE1
NWE1ZmI2N2I4MzI4NDMzOTAwM2M0OTU5OGQwN2I3OWIuLmQzNzYxNDIxZWIyZjU3M2RkMWQ2M2Rh
NjQ3NTFiZWZmYjZhMmI4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3Q2xpZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViVmlld0NsaWVudF9o
CiAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uLmgiCisjaW5jbHVkZSAi
V2ViQ29sb3IuaCIKICNpbmNsdWRlICJXZWJEcmFnT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
RWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgpA
QCAtNDYsNiArNDcsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2li
aWxpdHlPYmplY3Q7CitjbGFzcyBXZWJDb2xvckNob29zZXI7CiBjbGFzcyBXZWJEZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKIGNsYXNzIFdlYkRyYWdEYXRhOwogY2xhc3MgV2ViRWxlbWVudDsKQEAg
LTE3Niw2ICsxNzgsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50
S2V5Ym9hcmRFdmVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKIAorICAgIC8vIENvbG9yIENob29z
ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgV2ViQ29sb3JDaG9vc2VyIGluc3Rh
bmNlIHRoYXQgaXMgYW4gaW50ZXJmYWNlIHRvCisgICAgLy8gdGhlIGNvbG9yIGNob29zZXIgaW4g
dGhlIGJyb3dzZXIuCisgICAgdmlydHVhbCBXZWJDb2xvckNob29zZXIqIGNvbG9yQ2hvb3Nlcigp
IHsgcmV0dXJuIDA7IH0KKworCiAgICAgLy8gRGlhbG9ncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBUaGlzIG1l
dGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVyIHNob3dpbmcgdGhlIGRpYWxvZy4gV2hlbiB0
aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
aW5kZXggMWYwNjljOTI2MDQ1ODI3NWZkNGMyNDNlYjNmZmY3MTUxODlkNGJmZC4uMTBkYTljMmZi
ZDJmNDA2YzViZDQ2NjUyZDY5OTRjYmFkZTY3ZTIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTY4LDYgKzY4LDEwIEBACiAjaW5j
bHVkZSAiVjhQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVj
dC5oIgorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXIu
aCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgiCisjZW5kaWYKICNpbmNs
dWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldlYkN1cnNvckluZm8uaCIKICNp
bmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgiCkBAIC02NTgsNiArNjYyLDQy
IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCit2b2lkIENocm9tZUNsaWVudEltcGw6Om9wZW5D
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyKiBjb2xvckNob29zZXIsIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCit7CisgICAgV2ViVmlld0NsaWVudCogY2xpZW50
ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCogY29sb3JDaG9vc2VyQ2xpZW50ID0g
bmV3IFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwoY29sb3JDaG9vc2VyKTsKKyAgICBjbGllbnQt
PmNvbG9yQ2hvb3NlcigpLT5zZXRDbGllbnQoY29sb3JDaG9vc2VyQ2xpZW50KTsKKyAgICBXZWJD
b2xvciBwbGF0Zm9ybUNvbG9yID0gc3RhdGljX2Nhc3Q8V2ViQ29sb3I+KGluaXRpYWxDb2xvci5y
Z2IoKSk7CisgICAgY2xpZW50LT5jb2xvckNob29zZXIoKS0+b3BlbihwbGF0Zm9ybUNvbG9yKTsK
K30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjbGVhbnVwQ29sb3JDaG9vc2VyKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQoreworICAgIFdlYlZpZXdDbGllbnQqIGNsaWVu
dCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChjb2xvckNob29zZXIgPT0gY2xpZW50LT5jb2xvckNob29zZXIoKS0+Y2xp
ZW50KCktPmNvbG9yQ2hvb3NlcigpKQorICAgICAgICBjbGllbnQtPmNvbG9yQ2hvb3NlcigpLT5j
bGVhbnVwKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2V0U2VsZWN0ZWRDb2xvcklu
Q29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGNvbG9yQ2hvb3NlciA9PSBjbGllbnQtPmNvbG9yQ2hvb3NlcigpLT5jbGllbnQoKS0+
Y29sb3JDaG9vc2VyKCkpIHsKKyAgICAgICAgV2ViQ29sb3IgcGxhdGZvcm1Db2xvciA9IHN0YXRp
Y19jYXN0PFdlYkNvbG9yPihjb2xvci5yZ2IoKSk7CisgICAgICAgIGNsaWVudC0+Y29sb3JDaG9v
c2VyKCktPnNldFNlbGVjdGVkQ29sb3IocGxhdGZvcm1Db2xvcik7CisgICAgfQorfQorI2VuZGlm
CisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFz
c1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCog
Y2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA3OTAzYzM5OTZhMTQ0NmIxYTFhOTYxMWUyNDZk
Yjc5MWZhZDY1NzMxLi40YzA4ZWM2MGU0ZjhmZDU5YTViNTkwYzQwMGIwZWI2ZWI5MWQxZWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0x
MzYsNiArMTM2LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVy
aGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorICAgIHZp
cnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciosIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIo
V2ViQ29yZTo6Q29sb3JDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29s
b3JJbkNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXIqLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYpOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpG
cmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6
RmlsZUljb25Mb2FkZXIqKTsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1w
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDg3MjRjNjA3ZjY3MTI3YTNkMGZlMDllMWFjNWU3ZjZkNTc5ZTVh
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9y
Q2hvb3NlckNsaWVudEltcGwuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiQ29s
b3JDaG9vc2VyLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjpXZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsKFdlYkNvcmU6OkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQoreworICAgIG1fY29sb3JD
aG9vc2VyID0gY29sb3JDaG9vc2VyOworfQorCitXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjp+
V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2Vy
Q2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IoV2ViQ29sb3IgY29sb3IpCit7CisgICAgbV9jb2xv
ckNob29zZXItPmRpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yKHN0YXRpY19jYXN0PFdlYkNv
cmU6OlJHQkEzMj4oY29sb3IpKSk7Cit9CisKK3ZvaWQgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1w
bDo6ZGlkQ2xlYW51cCgpCit7CisgICAgbV9jb2xvckNob29zZXItPmRpZENsZWFudXAoKTsKKyAg
ICBtX2NvbG9yQ2hvb3Nlci5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDdk
ZjMzMTYyNWExMmE0YWZjMmFjMGI2YzExMTgxZDFkNzM0YzBjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGxfaAorI2RlZmlu
ZSBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsX2gKKworI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5o
IgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlckNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29sb3JDaG9vc2Vy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xv
cik7CisgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXAoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkNvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvckNob29z
ZXIuZ2V0KCk7IH07Citwcm90ZWN0ZWQ6CisgICAgfldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwo
KTsKK3ByaXZhdGU6CisgICAgUmVmUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gbV9jb2xvckNo
b29zZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJ
TlBVVF9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117562</attachid>
            <date>2011-12-01 21:54:46 -0800</date>
            <delta_ts>2011-12-12 03:39:07 -0800</delta_ts>
            <desc>patch using WebColorChooserSession</desc>
            <filename>bug-65897-20111202145444.patch</filename>
            <type>text/plain</type>
            <size>16491</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzYyMWMzYTk2MzVhOTg3
Nzk4YTQ5MTM1Y2QxNTVlN2JhMGQ4ZjY5MS4uNDc0MGRmNTg1Mjc0ZDBkZjY0NDI4ODQ0NWY2MDU2
YjBiYzE0N2Q1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTAxICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5w
dXQgdHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIENvbG9y
Q2hvb3Nlci57Y3BwLGh9CisKIDIwMTEtMTEtMjkgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWJJREw6IEFkZCBzdXBwb3J0IGZvciBzdGF0aWMgZm9yIEpT
QyBhbmQgVjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNGU4NGYxYWU0Y2I5YWE4NTU0
MTg5NDgwMDBjMjFkMjY2YTc1NGY2NS4uODcyNWY3MDRkOTQ5MDkxNDc4NWNmOTBlZDAzYjg1ODVj
ZmFkMzA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAx
MS0xMi0wMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBJ
bXBsZW1lbnQgPGlucHV0IHR5cGU9Y29sb3I+IFVJIFdlYktpdCBjaHJvbWl1bSBwYXJ0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDog
QWRkZWQgV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbi5oLCBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xp
ZW50LmguCisgICAgICAgICogZmVhdHVyZXMuZ3lwaTogQWRkZWQgRU5BQkxFX0lOUFVUX0NPTE9S
LgorICAgICAgICAqIHB1YmxpYy9XZWJDb2xvckNob29zZXJTZXNzaW9uLmg6IEFkZGVkLiBTZXNz
aW9uIG9iamVjdCB0aGF0IGNhbGxzIGNhbGxiYWNrcyBvbiBXZWJDb2xvckNob29zZXJTZXNzaW9u
Q2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJTZXNzaW9uOjp+V2ViQ29s
b3JDaG9vc2VyU2Vzc2lvbik6CisgICAgICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3NlclNlc3Np
b25DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclNlc3Np
b25DbGllbnQ6On5XZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50KToKKyAgICAgICAgKiBwdWJs
aWMvV2ViVmlld0NsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVh
dGVDb2xvckNob29zZXJTZXNzaW9uKTogQ3JlYXRlcyBhIFdlYkNvbG9yQ2hvb3NlclNlc3Npb24g
b2JqZWN0IGFuZCBvcGVucyB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0NsaWVudDo6ZW5kQ29sb3JDaG9vc2VyU2Vzc2lvbik6IEVuZHMgdGhlIGN1cnJlbnQgV2Vi
Q29sb3JDaG9vc2VyU2Vzc2lvbiBhbmQgcmVtb3ZlcyBhbGwgcmVmZXJlbmNlcyB0byBpdC4gQ29s
b3IgY2hvb3NlciB3aWxsIGJlIGNsb3NlZCBvciBkZXRhY2hlZC4KKyAgICAgICAgKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6Om9w
ZW5Db2xvckNob29zZXIpOiBDYWxscyBjcmVhdGVDb2xvckNob29zZXJTZXNzaW9uIGFuZCBrZWVw
cyBpdCBhcyBtX2NvbG9yQ2hvb3NlclNlc3Npb24uCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudEltcGw6OmNsZWFudXBDb2xvckNob29zZXIpOiBDYWxscyBlbmRDb2xvckNob29zZXJTZXNz
aW9uLgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIpOiBDYWxscyBzZXRTZWxlY3RlZENvbG9yIG9uIG1fY29sb3JDaG9vc2Vy
U2Vzc2lvbi4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29s
b3IpOiBDYWxsZWQgd2hlbiB1c2VyIGNob3NlIGEgY29sb3IuIFdpbGwgY2FsbCAKKyAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6ZGlkRW5kU2Vzc2lvbik6IERlc3Ryb3lzIG1fY29s
b3JDaG9vc2VyU2Vzc2lvbi4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOiBBZGRl
ZCBzdXBlcmNsYXNzIFdlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQuIEFkZGVkIG1fY29sb3JD
aG9vc2VyIGFuZCBtX2NvbG9yQ2hvb3NlclNlc3Npb24uCisKIDIwMTEtMTEtMjkgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxMDE0MTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzkwMGRjNTM4YjBmMjg4
NmQ1ODMyMDVlNjgwMjJhZTBjM2YyYWIyNC4uZWMzYmFhYzA0NjE0OGMzMDdkZWQ3MDE3ZDQxYTA0
MjIyMTdhYThjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjY0LDYgKzY2NCw3IEBACiAgICAgICAg
ICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9Bc3luY0ZpbGVTdHJlYW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ2xvY2suaCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0NvbnRleHRNZW51LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29raWUuaCcsCkBAIC0zMDc4LDYgKzMwNzks
OCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9DbG9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nsb2NrLmgn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZW50
VHlwZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRlbnRUeXBlLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggZWFhYzI3MmE2MDU1OGE5YWFlZjljZTRjMGNiNzQ3OTFkMmY0NTJlNS4uZDVkZDI4
NDI1OGUzMzlmNTczOGY4M2JiZmM0MjA3ZjFlN2FmMmY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtMTMwLDYgKzEzMCw4IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJD
YW52YXMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDbGlwYm9hcmQuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb2xvci5oJywKKyAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkNvbG9yQ2hvb3NlclNlc3Npb24uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJD
b2xvckNob29zZXJTZXNzaW9uQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
Q29sb3JOYW1lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9uV29ya2VyQ2xpZW50LmgnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGUwOGY2NWE1YzJkYzljN2M3NGY2M2NkNjk2MGMy
OThiNDEwODMxZjQuLmFkMjVhMzlkNTNiODRiYzQwMmI3ZGRjODYzMTExNGJjNGNhZGU4MDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAg
ICdFTkFCTEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAgICAgJ0VOQUJMRV9JQ09OREFUQUJB
U0U9MCcsCiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MScsCisgICAgICAnRU5BQkxF
X0lOUFVUX0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBVVF9TUEVFQ0g9MScsCiAgICAgICAn
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MCcsCiAgICAgICAnRU5BQkxFX0lOUFVUX1RZUEVfREFU
RT0wJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9y
Q2hvb3NlclNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9y
Q2hvb3NlclNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDE2MzdhOTJmNWFiOGIzMTczMGQ1NjI4MDA0
ZTgxMDJhZGZhMWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbi5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YkNvbG9yQ2hvb3NlclNlc3Npb25faAorI2RlZmluZSBXZWJDb2xvckNob29zZXJTZXNzaW9uX2gK
KworI2luY2x1ZGUgIldlYkNvbG9yLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50OworCisvLyBTZXNzaW9uIG9iamVjdCB0aGF0IGNh
bGxzIGNhbGxiYWNrcyBvbiBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50LgorY2xhc3MgV2Vi
Q29sb3JDaG9vc2VyU2Vzc2lvbiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9v
c2VyU2Vzc2lvbigpIHsgfQorCisgICAgLy8gU2V0IHNlbGVjdGVkIGNvbG9yIGluIHRoZSBjb2xv
ciBjaG9vc2VyLgorICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKFdlYkNvbG9yKSA9
IDA7CisKKyAgICAvLyBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMgYSBjb2xvciBpbiB0aGUgY29s
b3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoV2ViQ29sb3IpID0g
MDsKKyAgICAvLyBDYWxsZWQgd2hlbiBjbGVhbnVwIG9jY3VyZWQgYW5kIHRoZSB2aWV3IGlzIG5v
IGxvbmdlciBsaXN0ZW5pbmcgdG8gdGhlCisgICAgLy8gY29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRW5kU2Vzc2lvbigpID0gMDsKKworICAgIC8vIFJldHVybnMgdGhlIGN1cnJl
bnQgY2xpZW50IHRoYXQgd2lsbCBiZSByZWNpZXZpbmcgdGhlIGNhbGxiYWNrcy4KKyAgICB2aXJ0
dWFsIFdlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQqIGNsaWVudCgpID0gMDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29z
ZXJTZXNzaW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xv
ckNob29zZXJTZXNzaW9uQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQwMjExNWEwNjc1YTZkYjEwOTY3
YjZkNTQ4NTEyMjlhNmNjMmIxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQuaApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50X2gKKyNkZWZpbmUgV2ViQ29s
b3JDaG9vc2VyU2Vzc2lvbkNsaWVudF9oCisKKyNpbmNsdWRlICJXZWJDb2xvci5oIgorI2luY2x1
ZGUgIldlYkNvbW1vbi5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKKy8vIFJlY2VpdmVzIGNhbGxzIGZyb20gV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbiBhbmQg
cGFzc2VzIGl0IHRvIHRoZSBhcHByb3ByaWF0ZQorLy8gV2ViQ29yZSBvYmplY3RzLgorY2xhc3Mg
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2Vi
Q29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudCgpIHsgfQorCisgICAgLy8gQ2FsbGVkIHdoZW4gdXNl
ciBzZWxlY3RzIGEgY29sb3IgaW4gdGhlIGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lk
IGRpZENob29zZUNvbG9yKFdlYkNvbG9yKSA9IDA7CisgICAgLy8gQ2FsbGVkIHdoZW4gY2xlYW51
cCBvY2N1cmVkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRTZXNzaW9uKCkgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJTZXNzaW9u
Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQu
aAppbmRleCAyMGFjNWU5YjkzMmNlZWFiNTMwYzJlMzhhNzA3ZWZmOGIyNWJhNTY1Li40ODJiMDdk
MWRiOWNkZmM0YjEzYWEzM2Q5ZDNhMjI3MDRjMGNmYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5l
IFdlYlZpZXdDbGllbnRfaAogCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bi5oIgorI2luY2x1ZGUgIldlYkNvbG9yLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5o
IgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3Nl
ckNvbXBsZXRpb24uaCIKQEAgLTQ2LDYgKzQ3LDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OworY2xhc3MgV2ViQ29sb3JDaG9vc2VyU2Vzc2lv
bjsKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQ7CiBjbGFzcyBXZWJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFdlYkRyYWdEYXRhOwogY2xhc3MgV2ViRWxlbWVudDsK
QEAgLTE3Nyw2ICsxODAsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJy
ZW50S2V5Ym9hcmRFdmVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKIAorICAgIC8vIENvbG9yIENo
b29zZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisgICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgV2ViQ29sb3JDaG9vc2VyU2Vz
c2lvbiBpbnN0YW5jZSB0aGF0IGlzIGFuCisgICAgLy8gY29ubmVjdGlvbiBiZXR3ZWVuIHRoaXMg
YW5kIHRoZSBXZWJDb2xvckNob29zZXJTZXNzaW9uIG9iamVjdCBvbiB0aGUKKyAgICAvLyBXZWJL
aXQgc2lkZS4gVGhpcyBhbHNvIG9wZW5zIHRoZSBjb2xvciBjaG9vc2VyLgorICAgIHZpcnR1YWwg
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbiogY3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbigKKyAgICAg
ICAgV2ViQ29sb3IgaW5pdGlhbENvbG9yLCBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50Kikg
eyByZXR1cm4gMDsgfQorCisgICAgLy8gRW5kcyB0aGUgV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbi4g
QWxsIHJlZmVyZW5jZXMgdG8gdGhlIHNlc3Npb24gd2lsbCBiZQorICAgIC8vIGRlbGV0ZWQuIFRo
aXMgd2lsbCBhbHNvIGNsb3NlIG9yIGRldGFjaCB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0
dWFsIHZvaWQgZW5kQ29sb3JDaG9vc2VyU2Vzc2lvbigpIHsgfQorCisKICAgICAvLyBEaWFsb2dz
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAogICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMgaW1tZWRpYXRlbHkgYWZ0ZXIgc2hv
d2luZyB0aGUgZGlhbG9nLiBXaGVuIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCA1Zjg0YTJmY2M3YjRmNjgyMGYwNDY4MmZmNDY0
NWZhODE1ZTcwMWQ2Li4yN2JjODIyN2FjMzhiYTNmNjJiNjdkMmFhOTRmODYzYzg5YjlmN2VhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApA
QCAtNjcsNiArNjcsMTAgQEAKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRl
ICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorI2lu
Y2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclNlc3Npb24u
aCIKKyNlbmRpZgogI2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV2Vi
Q3Vyc29ySW5mby5oIgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbkltcGwuaCIK
QEAgLTYyNCw2ICs2MjgsNTUgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjQKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKK3ZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6b3BlbkNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXIqIGNvbG9y
Q2hvb3NlciwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKK3sKKyAgICBXZWJW
aWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvbG9yQ2hvb3NlciA9IGNvbG9yQ2hvb3NlcjsK
KyAgICBXZWJDb2xvciB3ZWJDb2xvciA9IHN0YXRpY19jYXN0PFdlYkNvbG9yPihpbml0aWFsQ29s
b3IucmdiKCkpOworICAgIG1fY29sb3JDaG9vc2VyU2Vzc2lvbiA9IGFkb3B0UHRyKGNsaWVudC0+
Y3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbih3ZWJDb2xvciwgdGhpcykpOworfQorCit2b2lkIENo
cm9tZUNsaWVudEltcGw6OmNsZWFudXBDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
KiBjb2xvckNob29zZXIpCit7CisgICAgaWYgKGNvbG9yQ2hvb3NlciAhPSBtX2NvbG9yQ2hvb3Nl
cikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFdlYlZpZXdDbGllbnQqIGNsaWVudCA9IG1f
d2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBjbGllbnQtPmVuZENvbG9yQ2hvb3NlclNlc3Npb24oKTsKK30KKwordm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyKiBjb2xvckNob29zZXIsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKK3sK
KyAgICBpZiAoY29sb3JDaG9vc2VyICE9IG1fY29sb3JDaG9vc2VyKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIW1fY29sb3JDaG9vc2VyU2Vzc2lvbi5nZXQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgV2ViQ29sb3IgcGxhdGZvcm1Db2xvciA9IHN0YXRpY19jYXN0PFdlYkNvbG9yPihj
b2xvci5yZ2IoKSk7CisgICAgbV9jb2xvckNob29zZXJTZXNzaW9uLT5zZXRTZWxlY3RlZENvbG9y
KHBsYXRmb3JtQ29sb3IpOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmRpZENob29zZUNv
bG9yKFdlYkNvbG9yIGNvbG9yKQoreworICAgIG1fY29sb3JDaG9vc2VyLT5kaWRDaG9vc2VDb2xv
cihXZWJDb3JlOjpDb2xvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KGNvbG9yKSkpOwor
fQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmRpZEVuZFNlc3Npb24oKQoreworICAgIG1fY29s
b3JDaG9vc2VyLT5kaWRDbGVhbnVwKCk7CisgICAgbV9jb2xvckNob29zZXJTZXNzaW9uLnJlbGVh
c2UoKTsKKyAgICBtX2NvbG9yQ2hvb3Nlci5jbGVhcigpOworfQorI2VuZGlmCisKIHZvaWQgQ2hy
b21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAgICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93
ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaAppbmRleCA3N2YyNjQxYTQ0NGRmMGMwZWMwMjNkOGNlNTZlMWZhOWQwNDkxNTU4
Li4yYWRlOTA1YTcxNzQ0ZmZlZmI3MDUzZWQ0OGY2NTc4NWE3NTJlYmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50Q2hyb21pdW0uaCIKICNpbmNsdWRlICJQb3B1cE1lbnUu
aCIKICNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29z
ZXJTZXNzaW9uQ2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2li
aWxpdHlPYmplY3Q7CkBAIC00OCwxMiArNDksMTMgQEAgc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclNlc3Npb247CiBj
bGFzcyBXZWJWaWV3SW1wbDsKIHN0cnVjdCBXZWJDdXJzb3JJbmZvOwogc3RydWN0IFdlYlBvcHVw
TWVudUluZm87CiAKIC8vIEhhbmRsZXMgd2luZG93LWxldmVsIG5vdGlmaWNhdGlvbnMgZnJvbSBX
ZWJDb3JlIG9uIGJlaGFsZiBvZiBhIFdlYlZpZXcuCi1jbGFzcyBDaHJvbWVDbGllbnRJbXBsIDog
cHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudENocm9taXVtIHsKK2NsYXNzIENocm9tZUNsaWVu
dEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50Q2hyb21pdW0sIHB1YmxpYyBXZWJD
b2xvckNob29zZXJTZXNzaW9uQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDaHJvbWVD
bGllbnRJbXBsKFdlYlZpZXdJbXBsKiB3ZWJWaWV3KTsKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGll
bnRJbXBsKCk7CkBAIC0xMzMsNiArMTM1LDExIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CisjaWYgRU5BQkxFKElOUFVU
X0NPTE9SKQorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9y
Q2hvb3NlciosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgdmlydHVhbCB2b2lkIGNsZWFu
dXBDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyKik7CisgICAgdmlydHVhbCB2b2lk
IHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXIqLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYpOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5Q
YW5lbChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsK
ICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJp
bmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQ
TE9BRCkKQEAgLTE5NiwxMCArMjAzLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQp
OwogCisgICAgLy8gV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudCBtZXRob2RzOgorICAgIHZp
cnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihXZWJDb2xvcik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEVuZFNlc3Npb24oKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGdldFBvcHVwTWVudUluZm8oV2Vi
Q29yZTo6UG9wdXBDb250YWluZXIqLCBXZWJQb3B1cE1lbnVJbmZvKik7CiAgICAgdm9pZCBzZXRD
dXJzb3IoY29uc3QgV2ViQ3Vyc29ySW5mbyYpOwogCisgICAgT3duUHRyPFdlYkNvbG9yQ2hvb3Nl
clNlc3Npb24+IG1fY29sb3JDaG9vc2VyU2Vzc2lvbjsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Q29s
b3JDaG9vc2VyPiBtX2NvbG9yQ2hvb3NlcjsKICAgICBXZWJWaWV3SW1wbCogbV93ZWJWaWV3OyAg
Ly8gd2VhayBwb2ludGVyCiAgICAgYm9vbCBtX3Rvb2xiYXJzVmlzaWJsZTsKICAgICBib29sIG1f
c3RhdHVzYmFyVmlzaWJsZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118768</attachid>
            <date>2011-12-12 03:39:14 -0800</date>
            <delta_ts>2011-12-15 04:20:24 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>bug-65897-20111212203913.patch</filename>
            <type>text/plain</type>
            <size>40242</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZiOTU4NTJkZmQ4ZDMw
ZWFmMmFkMzhmMzNhZDM3ODA1YzE3YjY2Yy4uNDdjMDdkMDdmNzJmZjFiYzQ5NGJiMDgzOGZhZTY3
ZDQwY2Q1ZmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTEyLTEyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5w
dXQgdHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIENvbG9y
Q2hvb3NlclNlc3Npb24uaCBhbmQgQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudC5oCisgICAgICAg
ICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0
VHlwZTo6fkNvbG9ySW5wdXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBl
OjpzZXRWYWx1ZSk6IAorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmhhbmRsZURP
TUFjdGl2YXRlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmRldGFj
aCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6bmV3Q29sb3JDaG9vc2VyU2Vz
c2lvbik6IENhbGxzIGNyZWF0ZUNvbG9yQ2hvb3NlclNlc3Npb24gb24gQ2hyb21lLiBUaGlzIHdp
bGwgb3BlbiB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRU
eXBlOjpkaWRFbmRTZXNzaW9uKTogQ2FsbGVkIHdoZW4gc2Vzc2lvbiBlbmRzLiBXaWxsIGRlc3Ry
b3kgdGhlIHNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6ZGV0YWNo
Q29sb3JDaG9vc2VyKTogUmVuYW1lZCBmcm9tIGNsZWFudXBDb2xvckNob29zZXIuCisgICAgICAg
ICogaHRtbC9Db2xvcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3RDb2xvcklu
Q29sb3JDaG9vc2VyKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbik6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlclNlc3Np
b24pOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckNob29zZXJTZXNzaW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpDb2xvckNob29zZXJTZXNzaW9uOjp+Q29sb3JDaG9vc2VyU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJTZXNzaW9uOjpzZXRTZWxlY3RlZENvbG9yKTog
Q2FsbHMgY29sb3IgY2hvb3NlciBzbyB0aGF0IHRoZSBzZWxlY3RlZCBjb2xvciBjaGFuZ2VzLgor
ICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyU2Vzc2lvbjo6ZW5kU2Vzc2lvbik6IENhbGxz
IGNvbG9yIGNob29zZXIgc28gdGhhdCBpdCB3b24ndCBzZW5kIGNhbGxiYWNrcyBhbnltb3JlLgor
ICAgICAgICAqIHBsYXRmb3JtL0NvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50OjpzZXNzaW9uKTogUmV0
dXJucyB0aGUgc2Vzc2lvbiB0aGF0IGl0IGlzIGEgY2xpZW50IG9mLgorICAgICAgICAoV2ViQ29y
ZTo6Q29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudDo6c2V0U2Vzc2lvbik6IFNldHMgdGhlIHNlc3Np
b24uCisKIDIwMTEtMTItMDMgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgog
CiAgICAgICAgIEZpeCBXZWJQSW1hZ2VEZWNvZGVyIGRlY29kZXIgbGVhay4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNGM3MjFiYjM0ZWFkYTRiNDllNTQyMGYzMWE3NjQwY2NlOGViNWZm
Yi4uMDU0OTE5ODFlMDA4MmIzNThmYzVhYmZmYzhkMDBjYTc4N2VmYjViYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMS0xMi0xMiAgS2Vpc2hpIEhhdHRv
cmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgPGlucHV0IHR5cGU9
Y29sb3I+IFVJIFdlYktpdCBjaHJvbWl1bSBwYXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cDogQWRkZWQgV2ViQ29sb3JDaG9vc2Vy
U2Vzc2lvbi5oLCBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50LmgsIENvbG9yQ2hvb3NlclNl
c3Npb25Qcm94eS57Y3BwLGh9LCBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50SW1wbC57Y3Bw
LGh9CisgICAgICAgICogZmVhdHVyZXMuZ3lwaTogQWRkZWQgRU5BQkxFX0lOUFVUX0NPTE9SCisg
ICAgICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3NlclNlc3Npb24uaDogQWRkZWQuIFNlc3Npb24g
dGhhdCBjb25uZWN0cyB0aGUgc2Vzc2lvbiBjbGllbnQgdG8gdGhlIGNvbG9yIGNob29zZXIuCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclNlc3Npb246On5XZWJDb2xvckNob29zZXJT
ZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbjo6c2V0U2Vs
ZWN0ZWRDb2xvcik6IFNldHMgc2VsZWN0ZWQgY29sb3IuCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bG9yQ2hvb3NlclNlc3Npb246OmVuZFNlc3Npb24pOiBFbmRzIHNlc3Npb24uCisgICAgICAgICog
cHVibGljL1dlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQuaDogQWRkZWQuIFJlY2VpdmVzIGNh
bGxzIGZyb20gV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbiBhbmQgcGFzc2VzIGl0IHRvIHRoZSBXZWJD
b3JlIHNpZGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQ6
On5XZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29s
b3JDaG9vc2VyU2Vzc2lvbkNsaWVudDo6ZGlkQ2hvb3NlQ29sb3IpOiBDYWxsZWQgd2hlbiB1c2Vy
IHNlbGVjdHMgYSBjb2xvciBpbiB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudDo6ZGlkRW5kU2Vzc2lvbik6IENhbGxlZCB3aGVu
IGNsZWFudXAgb2NjdXJlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmlld0NsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3Q2xpZW50OjpjcmVhdGVDb2xvckNob29zZXJTZXNzaW9uKTog
Q3JlYXRlcyBhIG5ldyBjb2xvciBjaG9vc2VyIHNlc3Npb24sIG9wZW5zIHRoZSBjb2xvciBjaG9v
c2VyIGFuZCByZXR1cm5zIGl0LiBJZiB0aGVyZSBpcyBhbiBleGlzdGluZyBzZXNzaW9uLCB0aGUg
b2xkIHNlc3Npb24gd2lsbCBiZSBlbmRlZCBhbmQgcmVwbGFjZWQgYnkgdGhlIG5ldyBvbmUuCisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpjcmVhdGVDb2xvckNob29zZXJTZXNzaW9uKTogQ2FsbHMgV2ViVmlld0Ns
aWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbgorICAgICAgICAqIHNyYy9DaHJvbWVDbGll
bnRJbXBsLmg6CisgICAgICAgICogc3JjL0NvbG9yQ2hvb3NlclNlc3Npb25Qcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbG9yQ2hvb3NlclNlc3Npb25Qcm94eTo6Q29sb3JDaG9vc2VyU2Vz
c2lvblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyU2Vzc2lvblByb3h5Ojp+
Q29sb3JDaG9vc2VyU2Vzc2lvblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2Vy
U2Vzc2lvblByb3h5OjpzZXRTZWxlY3RlZENvbG9yKTogQ29udmVydHMgdGhlIGNvbG9yIGFuZCBj
YWxscyBXZWJDb2xvckNob29zZXJTZXNzaW9uOjpzZXRTZWxlY3RlZENvbG9yLgorICAgICAgICAo
V2ViS2l0OjpDb2xvckNob29zZXJTZXNzaW9uUHJveHk6OmVuZFNlc3Npb24pOiBDYWxscyBXZWJD
b2xvckNob29zZXJTZXNzaW9uOjplbmRTZXNzaW9uLgorICAgICAgICAqIHNyYy9Db2xvckNob29z
ZXJTZXNzaW9uUHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNs
aWVudEltcGwuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNs
aWVudEltcGw6OldlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnRJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudEltcGw6On5XZWJDb2xvckNob29zZXJT
ZXNzaW9uQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlclNlc3Np
b25DbGllbnRJbXBsOjpkaWRDaG9vc2VDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
Q2hvb3NlclNlc3Npb25DbGllbnRJbXBsOjpkaWRFbmRTZXNzaW9uKToKKyAgICAgICAgKiBzcmMv
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudEltcGwuaDogQWRkZWQuCisKIDIwMTEtMTItMDIg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDE5MDYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMmZmNjI1
MDA2NzkxODhlMGEzMDkxOTk1NmM3Y2FiNTY0NmYzNjVmMS4uNGMxNzczMWM3NzU4MzhlMDgxNWU2
MzgxOGMxOTAyNTc5YzU0MzgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjc1LDYgKzY3NSw4IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vRHJhZ0ltYWdlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3NlclNlc3Npb24uaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9GaWxlU3RyZWFtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVTdHJlYW1D
bGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRmlsZVN5c3RlbS5oJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNTdlZTU3NzAxN2ZhYjIzMDA3NzkyMzVm
MGNjNWZkY2YyYWU4NmY4Yi4uYzk5NjY5NTIwMzU1ZjRjZTA3OTA3OWNhNDgyYmYwY2MxNGM1NmZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgUGFzc093blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIAogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7
Ci0gICAgY2xlYW51cENvbG9yQ2hvb3NlcigpOworICAgIGRldGFjaENvbG9yQ2hvb3NlcigpOwog
fQogCiBib29sIENvbG9ySW5wdXRUeXBlOjppc0NvbG9yQ29udHJvbCgpIGNvbnN0CkBAIC0xMjYs
OSArMTI2LDggQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIGJvb2wgc2VuZEMKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgdXBkYXRlQ29sb3JTd2F0Y2goKTsKLSAgICBDaHJvbWUqIGNocm9tZSA9IHRoaXMtPmNocm9t
ZSgpOwotICAgIGlmIChjaHJvbWUgJiYgY2hvb3NlcigpKQotICAgICAgICBjaHJvbWUtPnNldFNl
bGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihjaG9vc2VyKCksIHZhbHVlQXNDb2xvcigpKTsKKyAg
ICBpZiAoc2Vzc2lvbigpKQorICAgICAgc2Vzc2lvbigpLT5zZXRTZWxlY3RlZENvbG9yKHZhbHVl
QXNDb2xvcigpKTsKIH0KIAogdm9pZCBDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVF
dmVudChFdmVudCogZXZlbnQpCkBAIC0xMzksMTQgKzEzOCwyMSBAQCB2b2lkIENvbG9ySW5wdXRU
eXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KiBldmVudCkKICAgICBpZiAoIVNjcmlw
dENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkKLSAgICAgICAgY2hyb21l
LT5vcGVuQ29sb3JDaG9vc2VyKG5ld0NvbG9yQ2hvb3NlcigpLCB2YWx1ZUFzQ29sb3IoKSk7Cisg
ICAgbmV3Q29sb3JDaG9vc2VyU2Vzc2lvbih2YWx1ZUFzQ29sb3IoKSk7CiAgICAgZXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmRldGFjaCgpCiB7
Ci0gICAgY2xlYW51cENvbG9yQ2hvb3NlcigpOworICAgIGRldGFjaENvbG9yQ2hvb3NlcigpOwor
fQorCit2b2lkIENvbG9ySW5wdXRUeXBlOjpuZXdDb2xvckNob29zZXJTZXNzaW9uKGNvbnN0IENv
bG9yJiBpbml0aWFsQ29sb3IpCit7CisgICAgaWYgKHNlc3Npb24oKSkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmIChDaHJvbWUqIGNocm9tZSA9IHRoaXMtPmNocm9tZSgpKQorICAgICAgICBzZXRT
ZXNzaW9uKGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbih0aGlzLCBpbml0aWFsQ29s
b3IpKTsKIH0KIAogdm9pZCBDb2xvcklucHV0VHlwZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQpAQCAtMTU4LDE3ICsxNjQsMTUgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6ZGlk
Q2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgIGVsZW1lbnQoKS0+ZGlzcGF0Y2hG
b3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiB9CiAKLXZvaWQgQ29sb3JJbnB1dFR5cGU6OmRpZENs
ZWFudXAoKQordm9pZCBDb2xvcklucHV0VHlwZTo6ZGlkRW5kU2Vzc2lvbigpCiB7Ci0gICAgZGlz
Y2FyZENob29zZXIoKTsKKyAgICBzZXRTZXNzaW9uKDApOwogfQogCi12b2lkIENvbG9ySW5wdXRU
eXBlOjpjbGVhbnVwQ29sb3JDaG9vc2VyKCkKK3ZvaWQgQ29sb3JJbnB1dFR5cGU6OmRldGFjaENv
bG9yQ2hvb3NlcigpCiB7Ci0gICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKLSAg
ICBpZiAoY2hyb21lICYmIGNob29zZXIoKSkKLSAgICAgICAgY2hyb21lLT5jbGVhbnVwQ29sb3JD
aG9vc2VyKGNob29zZXIoKSk7Ci0gICAgZGlzY2FyZENob29zZXIoKTsKKyAgICBpZiAoc2Vzc2lv
bigpKQorICAgICAgICBzZXNzaW9uKCktPmVuZFNlc3Npb24oKTsKIH0KIAogdm9pZCBDb2xvcklu
cHV0VHlwZTo6dXBkYXRlQ29sb3JTd2F0Y2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlw
ZS5oCmluZGV4IDRiMjMzZDMzODA4NTVlZjIzZWZlZTRlNzdiN2QxYjVhZGZiZDQxNDYuLjczYTFl
NWFiMTVjZmYxNmExMGIzMzgxYjA5Zjg5YjA0YmRmN2VlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bG9ySW5wdXRUeXBlLmgKQEAgLTMxLDE4ICszMSwyMyBAQAogI2lmbmRlZiBDb2xvcklucHV0VHlw
ZV9oCiAjZGVmaW5lIENvbG9ySW5wdXRUeXBlX2gKIAotI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5o
IgorI2luY2x1ZGUgIkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQuaCIKICNpbmNsdWRlICJJbnB1
dFR5cGUuaCIKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBDb2xvcklucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUsIHB1YmxpYyBDb2xv
ckNob29zZXJDbGllbnQgeworY2xhc3MgQ29sb3JJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBl
LCBwdWJsaWMgQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZp
cnR1YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKKyAgICAvLyBDb2xvckNob29zZXJTZXNzaW9uQ2xp
ZW50IGltcGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgdm9pZCBuZXdDb2xvckNob29zZXJTZXNz
aW9uKGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9v
c2VDb2xvcihjb25zdCBDb2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRT
ZXNzaW9uKCkgT1ZFUlJJREU7CisKIHByaXZhdGU6CiAgICAgQ29sb3JJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCogZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVh
bCBib29sIGlzQ29sb3JDb250cm9sKCkgY29uc3Q7CkBAIC01NiwxMSArNjEsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Kik7CiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaCgpOwogCi0gICAgLy8gQ29sb3JDaG9vc2VyQ2xpZW50IGltcGxl
bWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwKCkgT1ZFUlJJREU7Ci0KLSAg
ICB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKKyAgICB2b2lkIGRldGFjaENvbG9yQ2hvb3Nl
cigpOwogICAgIHZvaWQgdXBkYXRlQ29sb3JTd2F0Y2goKTsKICAgICBIVE1MRWxlbWVudCogc2hh
ZG93Q29sb3JTd2F0Y2goKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCA0ODExM2I1N2RiZWNmYjQ4Y2Y2NzE5YmE3MGQ2ZTE1MzAwODA0ZjM4
Li5kZTE2MmQwMDljZTdiZWZhMGY3YjM0MWM4OWYyMGI4MjRjOTM5NmJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDYgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0jaW5jbHVk
ZSAiQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiQ29sb3JJbnB1dFR5cGUuaCIKICNlbmRpZgog
CkBAIC0xNTQyLDEwICsxNTQxLDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3RDb2xv
ckluQ29sb3JDaG9vc2VyKGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAgICBpZiAoIW1faW5wdXRU
eXBlLT5pc0NvbG9yQ29udHJvbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgUmVmUHRyPENvbG9y
Q2hvb3Nlcj4gY2hvb3NlciA9IHN0YXRpY19jYXN0PENvbG9ySW5wdXRUeXBlKj4obV9pbnB1dFR5
cGUuZ2V0KCkpLT5jaG9vc2VyKCk7Ci0gICAgaWYgKCFjaG9vc2VyKQotICAgICAgICByZXR1cm47
Ci0gICAgY2hvb3Nlci0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOworICAgIHN0YXRpY19jYXN0PENv
bG9ySW5wdXRUeXBlKj4obV9pbnB1dFR5cGUuZ2V0KCkpLT5kaWRDaG9vc2VDb2xvcihjb2xvcik7
CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAy
MDMyNDgxOWZkMTU1ZjFhZjY0OGFhMmExM2QwOWFmZjU3NjEzMTBiLi44MDQzMjg3YmQwNDM5ZWEw
OTBjNGU4MDFkOTg2Y2U2MWMzYTYyYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCkBAIC0xOTIsOSArMTkyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5Q
VVRfQ09MT1IpCi0gICAgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0
IENvbG9yJikgeyB9Ci0gICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nlciop
IHsgfQotICAgIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ciosIGNvbnN0IENvbG9yJikgeyB9CisgICAgQ29sb3JDaG9vc2VyU2Vzc2lvbiogY3JlYXRlQ29s
b3JDaG9vc2VyU2Vzc2lvbihDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50KiwgY29uc3QgQ29sb3Im
KSB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCA2N2M2Y2JhNDA5MGZjODlhZjRjMTY3MmY2YjI4YTNhMzQwNzFl
NzIxLi4xYmNlNGY1N2ExYmEyNTU4NWVjM2FjOWY1ZDNlYjkwZGJhN2UwZWYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEwMiwxMSArMTAyLDYgQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
LSNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0jaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCi0jaW5j
bHVkZSAiQ29sb3JJbnB1dFR5cGUuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JL
RVJTKQogI2luY2x1ZGUgIlNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCIKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCmluZGV4IDk0Y2RkOWM1ZmFhZTNiZTk0NGJlOTE5MTZiYTY4YWZiNjQ4MTRh
OTAuLmQwNWJlMGUzMmQ0NGQ0OWU1MjM5ZjZjYWQxNTE2NjBiN2M4ZTBiYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0jaW5jbHVkZSAiQ29sb3JDaG9v
c2VyLmgiCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyU2Vzc2lvbi5oIgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ1OCwxOSArNDU4LDkgQEAgdm9pZCBDaHJvbWU6OmVudW1lcmF0
ZUNob3NlbkRpcmVjdG9yeShGaWxlQ2hvb3NlciogZmlsZUNob29zZXIpCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShJTlBVVF9DT0xPUikKLXZvaWQgQ2hyb21lOjpvcGVuQ29sb3JDaG9vc2VyKENvbG9y
Q2hvb3NlciogY29sb3JDaG9vc2VyLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorQ29sb3JD
aG9vc2VyU2Vzc2lvbiogQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXJTZXNzaW9uKENvbG9yQ2hv
b3NlclNlc3Npb25DbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsK
LSAgICBtX2NsaWVudC0+b3BlbkNvbG9yQ2hvb3Nlcihjb2xvckNob29zZXIsIGluaXRpYWxDb2xv
cik7Ci19Ci0KLXZvaWQgQ2hyb21lOjpjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nlciog
Y29sb3JDaG9vc2VyKQotewotICAgIG1fY2xpZW50LT5jbGVhbnVwQ29sb3JDaG9vc2VyKGNvbG9y
Q2hvb3Nlcik7Ci19Ci0KLXZvaWQgQ2hyb21lOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29z
ZXIoQ29sb3JDaG9vc2VyKiBjb2xvckNob29zZXIsIGNvbnN0IENvbG9yJiBjb2xvcikKLXsKLSAg
ICBtX2NsaWVudC0+c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbG9yQ2hvb3Nlciwg
Y29sb3IpOworICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbihj
bGllbnQsIGluaXRpYWxDb2xvcik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXgg
YjNmMDg3NDBmOTQ3NDkyOTMyMjA4ODNmZGEyZmRkYjU5YmU4NjU3OC4uMjVkZmUxZTg2ODk2ODA3
MWZiOTNjYjYyMGQyN2NkOWI4NDQ5ZTQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0zNyw3ICsz
Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENocm9tZUNsaWVudDsKICNp
ZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0gICAgY2xhc3MgQ29sb3JDaG9vc2VyOworICAgIGNsYXNz
IENvbG9yQ2hvb3NlclNlc3Npb247CisgICAgY2xhc3MgQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVu
dDsKICNlbmRpZgogICAgIGNsYXNzIEZpbGVDaG9vc2VyOwogICAgIGNsYXNzIEZpbGVJY29uTG9h
ZGVyOwpAQCAtMTUzLDkgKzE1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9s
b2NhdGlvbiopOwogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQotICAgICAgICB2b2lkIG9wZW5D
b2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiwgY29uc3QgQ29sb3ImKTsKLSAgICAgICAgdm9pZCBj
bGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciopOwotICAgICAgICB2b2lkIHNldFNlbGVj
dGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpOworICAg
ICAgICBDb2xvckNob29zZXJTZXNzaW9uKiBjcmVhdGVDb2xvckNob29zZXJTZXNzaW9uKENvbG9y
Q2hvb3NlclNlc3Npb25DbGllbnQqLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRp
ZgogCiAgICAgICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMGIxZmQ1NWYyNmNiMWNj
M2M0NWE3YTE3YzA4MTI4YjJkZTdiMGE3ZC4uZTAwZTVmZmY2ZGViNjZhZjJhZWVkNWE2YTEwMmEw
ZjJmYTc5OGYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC03Miw3ICs3Miw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9S
KQotICAgIGNsYXNzIENvbG9yQ2hvb3NlcjsKKyAgICBjbGFzcyBDb2xvckNob29zZXJTZXNzaW9u
OworICAgIGNsYXNzIENvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQ7CiAjZW5kaWYKIAogICAgIGNs
YXNzIENocm9tZUNsaWVudCB7CkBAIC0yMTksOSArMjIwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSA9IDA7CiAKICNpZiBFTkFCTEUoSU5QVVRf
Q09MT1IpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ciosIGNvbnN0IENvbG9yJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cENvbG9y
Q2hvb3NlcihDb2xvckNob29zZXIqKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxl
Y3RlZENvbG9ySW5Db2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiwgY29uc3QgQ29sb3ImKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgQ29sb3JDaG9vc2VyU2Vzc2lvbiogY3JlYXRlQ29sb3JDaG9vc2Vy
U2Vzc2lvbihDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50KiwgY29uc3QgQ29sb3ImKSA9IDA7CiAj
ZW5kaWYKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NvbG9yQ2hvb3Nlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29z
ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzNmM2Y4ZTNmNTVkMTllOWMx
ZTgwMzE3NTcwY2Q0MDNkMjVmZGRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKLSAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKLQotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
Ci0KLSNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQ29s
b3JDaG9vc2VyQ2xpZW50Ojp+Q29sb3JDaG9vc2VyQ2xpZW50KCkKLXsKLSAgICBkaXNjYXJkQ2hv
b3NlcigpOwotfQotCi1Db2xvckNob29zZXIqIENvbG9yQ2hvb3NlckNsaWVudDo6bmV3Q29sb3JD
aG9vc2VyKCkKLXsKLSAgICBkaXNjYXJkQ2hvb3NlcigpOwotCi0gICAgbV9jaG9vc2VyID0gQ29s
b3JDaG9vc2VyOjpjcmVhdGUodGhpcyk7Ci0gICAgcmV0dXJuIG1fY2hvb3Nlci5nZXQoKTsKLX0K
LQotdm9pZCBDb2xvckNob29zZXJDbGllbnQ6OmRpc2NhcmRDaG9vc2VyKCkKLXsKLSAgICBpZiAo
bV9jaG9vc2VyKQotICAgICAgICBtX2Nob29zZXItPmRpc2Nvbm5lY3RDbGllbnQoKTsKLSAgICBt
X2Nob29zZXIuY2xlYXIoKTsKLX0KLQotaW5saW5lIENvbG9yQ2hvb3Nlcjo6Q29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50KQotewot
fQotCi1QYXNzUmVmUHRyPENvbG9yQ2hvb3Nlcj4gQ29sb3JDaG9vc2VyOjpjcmVhdGUoQ29sb3JD
aG9vc2VyQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb2xvckNo
b29zZXIoY2xpZW50KSk7Ci19Ci0KLUNvbG9yQ2hvb3Nlcjo6fkNvbG9yQ2hvb3NlcigpCi17Ci19
Ci0KLXZvaWQgQ29sb3JDaG9vc2VyOjpkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYgY29sb3Ip
Ci17Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3Io
Y29sb3IpOwotfQotCi12b2lkIENvbG9yQ2hvb3Nlcjo6ZGlkQ2xlYW51cCgpCi17Ci0gICAgaWYg
KG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkQ2xlYW51cCgpOwotfQotCi19Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db2xvckNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hv
b3Nlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTExMTM0ODlmM2Y5MDU3MWEw
N2E4MmVlOWNjZDA2YjkzNDEyODFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jaWZuZGVmIENvbG9yQ2hvb3Nlcl9o
Ci0jZGVmaW5lIENvbG9yQ2hvb3Nlcl9oCi0KLSNpbmNsdWRlICJDb2xvci5oIgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi0jaWYgRU5BQkxF
KElOUFVUX0NPTE9SKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENvbG9yQ2hvb3Nl
cjsKLQotY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5D
b2xvckNob29zZXJDbGllbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29u
c3QgQ29sb3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXAoKSA9IDA7Ci0gICAg
Q29sb3JDaG9vc2VyKiBjaG9vc2VyKCkgeyByZXR1cm4gbV9jaG9vc2VyLmdldCgpOyB9Ci0KLXBy
b3RlY3RlZDoKLSAgICBDb2xvckNob29zZXIqIG5ld0NvbG9yQ2hvb3NlcigpOwotICAgIHZvaWQg
ZGlzY2FyZENob29zZXIoKTsKLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8Q29sb3JDaG9vc2VyPiBt
X2Nob29zZXI7Ci19OwotCi1jbGFzcyBDb2xvckNob29zZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxD
b2xvckNob29zZXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb2xvckNob29z
ZXI+IGNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqKTsKLSAgICB+Q29sb3JDaG9vc2VyKCk7Ci0K
LSAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fY2xpZW50ID0gMDsgfQotCi0gICAgdm9p
ZCBkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYpOwotICAgIHZvaWQgZGlkQ2xlYW51cCgpOwot
Ci1wcml2YXRlOgotICAgIENvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqKTsKLQotICAg
IENvbG9yQ2hvb3NlckNsaWVudCogbV9jbGllbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1IpCi0KLSNlbmRpZiAvLyBDb2xvckNo
b29zZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2Vy
U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyU2Vzc2lvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjllMDg0ODcwZDRkMzJhMTQyMzJmODMwYzIyMTM5NTg5MTZiNGUwMTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXJTZXNz
aW9uLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIENvbG9yQ2hvb3NlclNlc3Np
b25faAorI2RlZmluZSBDb2xvckNob29zZXJTZXNzaW9uX2gKKworI2lmIEVOQUJMRShJTlBVVF9D
T0xPUikKKyNpbmNsdWRlIDxzdGRpby5oPgorbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
b2xvcjsKKworY2xhc3MgQ29sb3JDaG9vc2VyU2Vzc2lvbiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+Q29sb3JDaG9vc2VyU2Vzc2lvbigpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVj
dGVkQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW5kU2Vzc2lvbigp
IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElO
UFVUX0NPTE9SKQorCisjZW5kaWYgLy8gQ29sb3JDaG9vc2VyU2Vzc2lvbl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXJTZXNzaW9uQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXJTZXNzaW9uQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmZkMDY0MzA0MDhjYzFmZDk5NzY0MDQ0OTA0YTRmNWM0Yzk3ODMxYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3NlclNlc3Npb25DbGll
bnQuaApAQCAtMCwwICsxLDMyIEBACisjaWZuZGVmIENvbG9yQ2hvb3NlclNlc3Npb25DbGllbnRf
aAorI2RlZmluZSBDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50X2gKKworI2lmIEVOQUJMRShJTlBV
VF9DT0xPUikKKworI2luY2x1ZGUgIkNvbG9yQ2hvb3NlclNlc3Npb24uaCIKKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDb2xvcjsKKworY2xhc3MgQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENvbG9y
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRTZXNzaW9uKCkgPSAwOworICAgIENvbG9y
Q2hvb3NlclNlc3Npb24qIHNlc3Npb24oKSB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KKyAg
ICB2b2lkIHNldFNlc3Npb24oQ29sb3JDaG9vc2VyU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Np
b24gPSBhZG9wdFB0cihzZXNzaW9uKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgQ29sb3JDaG9vc2Vy
U2Vzc2lvbiogbmV3Q29sb3JDaG9vc2VyU2Vzc2lvbihjb25zdCBDb2xvciYgaW5pdGFsQ29sb3Ip
OworCitwcml2YXRlOgorICAgIE93blB0cjxDb2xvckNob29zZXJTZXNzaW9uPiBtX3Nlc3Npb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRf
Q09MT1IpCisKKyNlbmRpZiAvLyBDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAppbmRleCBhMTRiN2ZiY2RmZGQ1MTA5NDhhZTE1NWU2YzIyMzJjMmU3
NTVlMWEwLi42OGE2MTIwOWFkMTQwNWY1Zjk0NDBhYzZkY2NmYzhlZTk5Y2JmYmM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMzEsNiArMTMxLDggQEAKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkNhbnZhcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNsaXBi
b2FyZC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbG9yLmgnLAorICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbi5oJywKKyAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJDb2xvck5hbWUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJD
b21tb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21tb25Xb3JrZXJDbGllbnQu
aCcsCkBAIC0zNjgsNiArMzcwLDggQEAKICAgICAgICAgICAgICAgICAnc3JjL0NDVGhyZWFkSW1w
bC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL0Nocm9tZUNsaWVudEltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9Db2xvckNob29zZXJTZXNzaW9uUHJveHkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0Nv
bG9yQ2hvb3NlclNlc3Npb25Qcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0Nocm9taXVt
Q3VycmVudFRpbWUuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0Nocm9taXVtT1NSYW5kb21T
b3VyY2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0Nocm9taXVtVGhyZWFkaW5nLmNwcCcs
CkBAIC00NzcsNiArNDgxLDggQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYkJsb2JEYXRhLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViQ29sb3IuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbG9yQ2hvb3Nl
clNlc3Npb25DbGllbnRJbXBsLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvckNo
b29zZXJTZXNzaW9uQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbW1v
bi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9mZWF0dXJlcy5neXBpCmluZGV4IGUwOGY2NWE1YzJkYzljN2M3NGY2M2NkNjk2MGMyOThiNDEw
ODMxZjQuLmFkMjVhMzlkNTNiODRiYzQwMmI3ZGRjODYzMTExNGJjNGNhZGU4MDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAgICdFTkFC
TEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAgICAgJ0VOQUJMRV9JQ09OREFUQUJBU0U9MCcs
CiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MScsCisgICAgICAnRU5BQkxFX0lOUFVU
X0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBVVF9TUEVFQ0g9MScsCiAgICAgICAnRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1I9MCcsCiAgICAgICAnRU5BQkxFX0lOUFVUX1RZUEVfREFURT0wJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nl
clNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nl
clNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODVmMjFlMTU5MTc1MjY3MTg4ZmU2ZDYzZTkzMThmMzdl
NjUwYTgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbi5oCkBAIC0wLDAgKzEsMjQgQEAKKyNpZm5kZWYgV2ViQ29s
b3JDaG9vc2VyU2Vzc2lvbl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3NlclNlc3Npb25faAorCisj
aW5jbHVkZSAiV2ViQ29sb3IuaCIKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKKy8vIFNlc3Npb24gdGhhdCBjb25uZWN0cyB0aGUgc2Vzc2lvbiBjbGllbnQg
dG8gdGhlIGNvbG9yIGNob29zZXIuCitjbGFzcyBXZWJDb2xvckNob29zZXJTZXNzaW9uIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDb2xvckNob29zZXJTZXNzaW9uKCkgeyB9CisKKyAgICAv
LyBTZXQgc2VsZWN0ZWQgY29sb3IgaW4gdGhlIGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2
b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29sb3IgY29sb3IpIHsgfQorCisgICAgLy8g
Q2FsbGVkIHdoZW4gY2xlYW51cCBvY2N1cmVkIGFuZCB0aGUgdmlldyBpcyBubyBsb25nZXIgbGlz
dGVuaW5nIHRvIHRoZQorICAgIC8vIGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lkIGVu
ZFNlc3Npb24oKSB7IH0KK307CisKK30KKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlclNlc3Np
b25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29sb3JD
aG9vc2VyU2Vzc2lvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Q29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2MTk0YzdmYTY5NWM5MDI3
YTUzYjJkNzIyMTkwZTE4NTE5NjE0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50LmgKQEAgLTAsMCAr
MSwyMyBAQAorI2lmbmRlZiBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50X2gKKyNkZWZpbmUg
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudF9oCisKKyNpbmNsdWRlICJXZWJDb2xvci5oIgor
I2luY2x1ZGUgIldlYkNvbW1vbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gUmVjZWl2
ZXMgY2FsbHMgZnJvbSBXZWJDb2xvckNob29zZXJTZXNzaW9uIGFuZCBwYXNzZXMgaXQgdG8gdGhl
IFdlYkNvcmUgc2lkZS4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfldlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQoKSB7IH0KKwor
ICAgIC8vIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyBhIGNvbG9yIGluIHRoZSBjb2xvciBjaG9v
c2VyLgorICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb2xvciYpIHsg
fQorCisgICAgLy8gQ2FsbGVkIHdoZW4gY2xlYW51cCBvY2N1cmVkLgorICAgIHZpcnR1YWwgdm9p
ZCBkaWRFbmRTZXNzaW9uKCkgeyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29z
ZXJTZXNzaW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXdDbGllbnQuaAppbmRleCAwMzlkNDlkZjM3YjZkNmYzOTMwYjk1Yzc4ZDc1MGI5ZTJiMmQzYzc2
Li5jOWJjOTljMTJlZWRjYjExZDM5YzYyODYxZGY4NWRlNjdjNGZjZDViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0zMiw2ICszMiw3IEBA
CiAjZGVmaW5lIFdlYlZpZXdDbGllbnRfaAogCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU5v
dGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvbG9yLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ09w
ZXJhdGlvbi5oIgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKICNpbmNsdWRlICJXZWJG
aWxlQ2hvb3NlckNvbXBsZXRpb24uaCIKQEAgLTQ2LDYgKzQ3LDggQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OworY2xhc3MgV2ViQ29sb3JDaG9v
c2VyU2Vzc2lvbjsKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQ7CiBjbGFzcyBX
ZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFdlYkRyYWdEYXRhOwogY2xhc3MgV2Vi
RWxlbWVudDsKQEAgLTE3Nyw2ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgLy8gaW5kaWNhdGluZyB0
aGF0IHRoZSBkZWZhdWx0IGFjdGlvbiBzaG91bGQgYmUgc3VwcHJlc3NlZC4KICAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKSB7IHJldHVybiBmYWxzZTsgfQogCisg
ICAgdmlydHVhbCBXZWJDb2xvckNob29zZXJTZXNzaW9uKiBjcmVhdGVDb2xvckNob29zZXJTZXNz
aW9uKFdlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQqLCBjb25zdCBXZWJDb2xvciYpIHsgcmV0
dXJuIDA7IH0KIAogICAgIC8vIERpYWxvZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDE2MTI4MzI1NmJlMDk5MDdkNmNm
OWI2NzAzM2UyZDM5Y2IwNmMxYmIuLjI0ZmQ0ZTAzZjYyMDVjZDUwZjMyYTY0Nzg5YzdhN2I2Njhm
ZmMwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwCkBAIC0zNCw2ICszNCwxMSBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1Ip
CisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nl
clNlc3Npb25DbGllbnQuaCIKKyNpbmNsdWRlICJDb2xvckNob29zZXJTZXNzaW9uUHJveHkuaCIK
KyNlbmRpZgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNs
dWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKQEAgLTY3LDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiVjhQ
cm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2lm
IEVOQUJMRShJTlBVVF9DT0xPUikKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJTZXNzaW9uLmgi
CisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudEltcGwuaCIKKyNlbmRpZgog
I2luY2x1ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV2ViQ3Vyc29ySW5mby5o
IgogI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbkltcGwuaCIKQEAgLTk0LDYgKzEw
Myw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KICNpbmNsdWRl
IDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYyMiw2ICs2MzIsMjEgQEAgdm9pZCBDaHJv
bWVDbGllbnRJbXBsOjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5
T3JpZ2luKiwgaW50NjQKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorI2lmIEVOQUJM
RShJTlBVVF9DT0xPUikKK0NvbG9yQ2hvb3NlclNlc3Npb24qIENocm9tZUNsaWVudEltcGw6OmNy
ZWF0ZUNvbG9yQ2hvb3NlclNlc3Npb24oQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudCogc2Vzc2lv
bkNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKK3sKKyAgICBXZWJWaWV3Q2xpZW50
KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAgIGlmICghY2xpZW50KQorICAgICAg
ICByZXR1cm4gMDsKKyAgICBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50SW1wbCogY2xpZW50
UHJveHkgPSBuZXcgV2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudEltcGwoc2Vzc2lvbkNsaWVu
dCk7CisgICAgV2ViQ29sb3Igd2ViQ29sb3IgPSBzdGF0aWNfY2FzdDxXZWJDb2xvcj4oaW5pdGlh
bENvbG9yLnJnYigpKTsKKyAgICBXZWJDb2xvckNob29zZXJTZXNzaW9uKiBzZXNzaW9uID0gY2xp
ZW50LT5jcmVhdGVDb2xvckNob29zZXJTZXNzaW9uKGNsaWVudFByb3h5LCB3ZWJDb2xvcik7Cisg
ICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbmV3IENvbG9y
Q2hvb3NlclNlc3Npb25Qcm94eShhZG9wdFB0cihzZXNzaW9uKSk7Cit9CisjZW5kaWYKKwogdm9p
ZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRy
PEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKIHsKICAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQg
PSBtX3dlYlZpZXctPmNsaWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCmluZGV4IDc3ZjI2NDFhNDQ0ZGYwYzBlYzAyM2Q4Y2U1NmUxZmE5ZDA0
OTE1NTguLjlkMTljZGJkYzY4YTNhZjNiZWUyZmExYzRkZjgwNDZkMjM3MTk4NmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTM4LDYgKzM4
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3Q7
CisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorY2xhc3MgQ29sb3JDaG9vc2VyU2Vzc2lvbjsKK2Ns
YXNzIENvbG9yQ2hvb3NlclNlc3Npb25DbGllbnQ7CisjZW5kaWYKIGNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBGaWxlQ2hvb3NlcjsKIGNsYXNzIFBvcHVwQ29udGFpbmVyOwpAQCAtMTMzLDYgKzEzNyw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdl
b2xvY2F0aW9uKik7CisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorICAgIHZpcnR1YWwgV2ViQ29y
ZTo6Q29sb3JDaG9vc2VyU2Vzc2lvbiogY3JlYXRlQ29sb3JDaG9vc2VyU2Vzc2lvbihXZWJDb3Jl
OjpDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyNl
bmRpZgogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPik7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9h
ZGVyKik7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJTZXNzaW9uUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyU2Vzc2lvblByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YjUyZWFjZGUyOWFjNDkxM2I3YTM0N2RmMjM3YWE5ZWQxY2U5N2E3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyU2Vzc2lvblBy
b3h5LmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkNvbG9yQ2hvb3NlclNlc3Npb25Qcm94eS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIK
KyNpbmNsdWRlICJXZWJDb2xvci5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlclNlc3Npb24u
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0NvbG9yQ2hvb3NlclNlc3Npb25Qcm94eTo6Q29s
b3JDaG9vc2VyU2Vzc2lvblByb3h5KFBhc3NPd25QdHI8V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbj4g
c2Vzc2lvbikgOiBtX3Nlc3Npb24oc2Vzc2lvbikKK3sKK30KKworQ29sb3JDaG9vc2VyU2Vzc2lv
blByb3h5Ojp+Q29sb3JDaG9vc2VyU2Vzc2lvblByb3h5KCkKK3sKK30KKwordm9pZCBDb2xvckNo
b29zZXJTZXNzaW9uUHJveHk6OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGNvbG9yKQoreworICAgIGlmICghbV9zZXNzaW9uKQorICAgICAgICByZXR1cm47CisgICAgV2Vi
Q29sb3Igd2ViQ29sb3IgPSBzdGF0aWNfY2FzdDxXZWJDb2xvcj4oY29sb3IucmdiKCkpOworICAg
IG1fc2Vzc2lvbi0+c2V0U2VsZWN0ZWRDb2xvcih3ZWJDb2xvcik7Cit9CisKK3ZvaWQgQ29sb3JD
aG9vc2VyU2Vzc2lvblByb3h5OjplbmRTZXNzaW9uKCkKK3sKKyAgICBpZiAoIW1fc2Vzc2lvbikK
KyAgICAgICAgcmV0dXJuOworICAgIG1fc2Vzc2lvbi0+ZW5kU2Vzc2lvbigpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJTZXNzaW9u
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclNlc3Npb25Q
cm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlmNTBmZGY5ZDI3YTg1YjFjYTBhNWFmYTFmMDYzNzk0MDVjZmEx
NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNo
b29zZXJTZXNzaW9uUHJveHkuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb2xv
ckNob29zZXJTZXNzaW9uUHJveHlfaAorI2RlZmluZSBDb2xvckNob29zZXJTZXNzaW9uUHJveHlf
aAorCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYkNvbG9y
Q2hvb3NlclNlc3Npb24uaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvbG9yQ2hvb3Nl
clNlc3Npb25Qcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpDb2xvckNob29zZXJTZXNzaW9uIHsKK3B1
YmxpYzoKKyAgICBDb2xvckNob29zZXJTZXNzaW9uUHJveHkoUGFzc093blB0cjxXZWJDb2xvckNo
b29zZXJTZXNzaW9uPik7CisgICAgdmlydHVhbCB+Q29sb3JDaG9vc2VyU2Vzc2lvblByb3h5KCk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xv
ciYpOworICAgIHZpcnR1YWwgdm9pZCBlbmRTZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgT3du
UHRyPFdlYkNvbG9yQ2hvb3NlclNlc3Npb24+IG1fc2Vzc2lvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gR2VvbG9jYXRpb25DbGllbnRQcm94eV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJTZXNzaW9uQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJT
ZXNzaW9uQ2xpZW50SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzlmNDZhYjBjNzI0ZWUyMjVhZGM2NGZi
ZDJhMDFkNzYxYTg1NDgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nl
clNlc3Npb25DbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkNv
bG9yQ2hvb3NlclNlc3Npb25DbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNv
bG9yQ2hvb3NlclNlc3Npb25DbGllbnRJbXBsOjpXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50
SW1wbChXZWJDb3JlOjpDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50KiBjbGllbnQpIDogbV9jbGll
bnQoY2xpZW50KQoreworfQorCitXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50SW1wbDo6fldl
YkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnRJbXBsKCkKK3sKK30KKwordm9pZCBXZWJDb2xvckNo
b29zZXJTZXNzaW9uQ2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29sb3ImIGNv
bG9yKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVu
dC0+ZGlkQ2hvb3NlQ29sb3IoV2ViQ29yZTo6Q29sb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UkdC
QTMyPihjb2xvcikpKTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50SW1w
bDo6ZGlkRW5kU2Vzc2lvbigpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fY2xpZW50LT5kaWRFbmRTZXNzaW9uKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlclNlc3Npb25DbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJTZXNzaW9uQ2xp
ZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4Yzg4M2JmNWI2YmI1YWQ0NWFkZjZlMjRiMGExYjc4NGJl
NDY4YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJD
b2xvckNob29zZXJTZXNzaW9uQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsMjYgQEAKKyNpZm5kZWYg
V2ViQ29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudEltcGxfaAorI2RlZmluZSBXZWJDb2xvckNob29z
ZXJTZXNzaW9uQ2xpZW50SW1wbF9oCisKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJTZXNzaW9u
Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvbG9yQ2hvb3NlclNlc3Np
b25DbGllbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb2xvckNob29z
ZXJTZXNzaW9uQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50SW1wbChXZWJDb3Jl
OjpDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50Kik7CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9v
c2VyU2Vzc2lvbkNsaWVudEltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xv
cihjb25zdCBXZWJDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRTZXNzaW9uKCk7CisK
K3ByaXZhdGU6CisgICAgV2ViQ29yZTo6Q29sb3JDaG9vc2VyU2Vzc2lvbkNsaWVudCogbV9jbGll
bnQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBXZWJDb2xvckNob29zZXJTZXNzaW9uQ2xpZW50X2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119399</attachid>
            <date>2011-12-15 01:56:07 -0800</date>
            <delta_ts>2011-12-15 04:12:38 -0800</delta_ts>
            <desc>new patch(webcore side moved to separate patch)</desc>
            <filename>bug-65897-20111215185605.patch</filename>
            <type>text/plain</type>
            <size>27181</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI0OTExMzc2ZjhjNmM4
NjJkMzJhODRjNDVkZTYxNTYyZTQzNTBlMy4uZjJhZWIxNDRlZTg1YWEwMzBmOThhZTJiMDIwNTc3
MWM3Zjg4YTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTE1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5w
dXQgdHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIENvbG9y
Q2hvb3Nlci5oIGFuZCBDb2xvckNob29zZXJDbGllbnQuaAorCiAyMDExLTEyLTE0ICBLZWlzaGkg
SGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZmFjdG9yIGlucHV0IHR5
cGUgY29sb3IgV2ViQ29yZSBwYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ5NjRj
MzFjYWE5YmZiMGI2YWQ3OTM1NWRlZDFmOTdhNzVlYmRmYTYuLjMzNzEwNjhjOWQwZDQyNTkzMThi
YzQ0MmI1YTQwNDEyNjlmZGI4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTEtMTItMTUgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21p
dW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdC5neXA6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBB
ZGRlZCBFTkFCTEVfSU5QVVRfQ09MT1IuCisgICAgICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nl
ci5oOiBBZGRlZC4gSW50ZXJmYWNlIGZvciBDb2xvckNob29zZXJQcm94eSB0byBjYWxsLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6On5XZWJDb2xvckNob29zZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJDb2xvckNob29zZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
Q2hvb3NlckNsaWVudDo6fldlYkNvbG9yQ2hvb3NlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yQ2hvb3NlckNsaWVudDo6ZGlkQ2hvb3NlQ29sb3IpOiBPbmx5IGNhbGxlZCB3aGVu
IHVzZXIgY2hhbmdlcyB0aGUgY29sb3IuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nl
ckNsaWVudDo6ZGlkRW5kQ2hvb3Nlcik6IENhbGxlZCB3aGVuIFdlYkNvbG9yQ2hvb3Nlcjo6ZW5k
Q2hvb3NlciBpcyBjYWxsZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKTogQ3JlYXRl
cyBhIG5ldyBjb2xvciBjaG9vc2VyLiBJZiB0aGVyZSBpcyBhbiBvbGQgY29sb3IgY2hvb3Nlciwg
dGhpcyB3aWxsIGVuZCBpdC4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IENh
bGxzIFdlYlZpZXdDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9Db2xvckNob29zZXJQcm94eS5jcHA6IFBy
b3hpZXMgY2FsbHMgdG8gV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHRvIFdlYktpdDo6V2ViQ29sb3JD
aG9vc2VyLgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6Q29sb3JDaG9vc2Vy
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6fkNvbG9yQ2hvb3Nl
clByb3h5KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyUHJveHk6OnNldFNlbGVjdGVk
Q29sb3IpOgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6ZW5kQ2hvb3Nlcik6
CisgICAgICAgICogc3JjL0NvbG9yQ2hvb3NlclByb3h5Lmg6CisgICAgICAgICogc3JjL1dlYkNv
bG9yQ2hvb3NlckNsaWVudEltcGwuY3BwOiBQcm94aWVzIGNhbGxzIHRvIFdlYktpdDo6V2ViQ29s
b3JDaG9vc2VyQ2xpZW50IHRvIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50
SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJD
b2xvckNob29zZXJDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
Q2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNo
b29zZXJDbGllbnRJbXBsOjpkaWRFbmRDaG9vc2VyKToKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbC5oOiBBZGRlZC4KKwogMjAxMS0xMi0xNCAgSm9uYXRoYW4gQmFja2Vy
ICA8YmFja2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFBsdW1iIHRocm91
Z2ggZmxhZyBmb3IgZW5hYmxpbmcgcGFydGlhbCBzd2FwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzUy
NzhhNGRkNGMxZTliNmE4NWQzMWQ5MTY4MmM0Yjk2OGNmOWNiMy4uZDVjMDAwM2EwODQxZmE5MDAx
YTRmOGVlMzNlMDA3MjJmM2Y4YjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjY3LDYgKzY2Nyw4
IEBACiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Q2xvY2suaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyLmgnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3NlckNsaWVudC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29va2llLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3
M2YzZjhlM2Y1NWQxOWU5YzFlODAzMTc1NzBjZDQwM2QyNWZkZGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29s
b3JDaG9vc2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgotCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLQotI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1Db2xvckNob29zZXJDbGllbnQ6On5Db2xvckNob29zZXJDbGllbnQoKQot
ewotICAgIGRpc2NhcmRDaG9vc2VyKCk7Ci19Ci0KLUNvbG9yQ2hvb3NlciogQ29sb3JDaG9vc2Vy
Q2xpZW50OjpuZXdDb2xvckNob29zZXIoKQotewotICAgIGRpc2NhcmRDaG9vc2VyKCk7Ci0KLSAg
ICBtX2Nob29zZXIgPSBDb2xvckNob29zZXI6OmNyZWF0ZSh0aGlzKTsKLSAgICByZXR1cm4gbV9j
aG9vc2VyLmdldCgpOwotfQotCi12b2lkIENvbG9yQ2hvb3NlckNsaWVudDo6ZGlzY2FyZENob29z
ZXIoKQotewotICAgIGlmIChtX2Nob29zZXIpCi0gICAgICAgIG1fY2hvb3Nlci0+ZGlzY29ubmVj
dENsaWVudCgpOwotICAgIG1fY2hvb3Nlci5jbGVhcigpOwotfQotCi1pbmxpbmUgQ29sb3JDaG9v
c2VyOjpDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2Ns
aWVudChjbGllbnQpCi17Ci19Ci0KLVBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiBDb2xvckNob29z
ZXI6OmNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENvbG9yQ2hvb3NlcihjbGllbnQpKTsKLX0KLQotQ29sb3JDaG9vc2VyOjp+Q29s
b3JDaG9vc2VyKCkKLXsKLX0KLQotdm9pZCBDb2xvckNob29zZXI6OmRpZENob29zZUNvbG9yKGNv
bnN0IENvbG9yJiBjb2xvcikKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Ci19Ci0KLXZvaWQgQ29sb3JDaG9vc2VyOjpkaWRDbGVh
bnVwKCkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDbGVhbnVw
KCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAppbmRleCA5YTgzZmJmZTUwMTMyMGUxYzhkODM2MTE1ZWEwYTYzM2UyMzA4
ZGM5Li4wOTQxY2EwYzZhYzQ1YzRmNzNkYjgzNGJmMzY3YzllMTZkNzE5ZmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMDYsNiArMTA2LDggQEAKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkJpbmRpbmdzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQmxvYi5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNhY2hlLmgnLAorICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9u
V29ya2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRpb25V
bmRlcmxpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9yLmgnLApA
QCAtMzcxLDYgKzM3Myw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9DQ1RocmVhZEltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvQ29s
b3JDaG9vc2VyUHJveHkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0NvbG9yQ2hvb3NlclBy
b3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1DdXJyZW50VGltZS5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1PU1JhbmRvbVNvdXJjZS5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvQ2hyb21pdW1UaHJlYWRpbmcuY3BwJywKQEAgLTQ4Miw2ICs0ODYsOCBA
QAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRhdGEuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvci5jcHAn
LAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAnLAor
ICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
Q29tcG9zaXRvckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJ
bXBsLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDZmZGFhMGU0Mjg3
NDM1NTQyODRiMDQwOTAwMmVmOTE3MTQ0Y2Y2NTEuLmE5MDNiMDAzY2RkYjg0MDg3NmQ0ZGMyYzA3
ZmNjYWQ2MjVkOTBlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTUy
LDYgKzUyLDcgQEAKICAgICAgICdFTkFCTEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAgICAg
J0VOQUJMRV9JQ09OREFUQUJBU0U9MCcsCiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9
MScsCisgICAgICAnRU5BQkxFX0lOUFVUX0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBVVF9T
UEVFQ0g9MScsCiAgICAgICAnRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MCcsCiAgICAgICAnRU5B
QkxFX0lOUFVUX1RZUEVfREFURT0wJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQ29sb3JDaG9vc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI2MzdmY2IxMTdiMDQyNGM0NDAwYjI4
NzM5N2JlZGI3YTg0MGZhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYkNvbG9yQ2hvb3Nlcl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nlcl9oCisKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb2xvci5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbW1vbi5o
IgorCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8g
VGhpcyByZXByZXNlbnRzIGEgY29sb3IgY2hvb3Nlci4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9vc2VyKCkgeyB9CisKKyAgICAvLyBT
ZXQgc2VsZWN0ZWQgY29sb3IgaW4gdGhlIGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lk
IHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29sb3IgY29sb3IpIHsgfQorCisgICAgLy8gQ2Fs
bGluZyB0aGlzIGVuZHMgdGhlIGNvbG9yIGNob29zZXIgYW5kIHRoZSBjbGllbnQgd29uJ3QgYmUg
cmVjaWV2aW5nCisgICAgLy8gZGlkQ2hvb3NlQ29sb3IgY2FsbGJhY2tzIGFueW1vcmUuCisgICAg
dmlydHVhbCB2b2lkIGVuZENob29zZXIoKSB7IH0KK307CisKK30KKworI2VuZGlmIC8vIEVOQUJM
RShJTlBVVF9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3Nlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3NlckNsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU1MGNmY2VjODRjNDY4MDM3OThmOGQwNDM4MDEwYjQxYzM4YmQ2ZDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29z
ZXJDbGllbnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29z
ZXJDbGllbnRfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJDbGllbnRfaAorCisjaW5jbHVkZSAi
cGxhdGZvcm0vV2ViQ29sb3IuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKKwor
I2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFJlY2Vp
dmVzIGNhbGxzIGZyb20gV2ViQ29sb3JDaG9vc2VyIGFuZCBwYXNzZXMgaXQgdG8gdGhlIFdlYkNv
cmUgc2lkZS4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+V2ViQ29sb3JDaG9vc2VyQ2xpZW50KCkgeyB9CisKKyAgICAvLyBDYWxsZWQgd2hlbiB1
c2VyIHNlbGVjdHMgYSBjb2xvciBpbiB0aGUgY29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29sb3ImKSB7IH0KKworICAgIC8vIENhbGxlZCB3
aGVuIGNvbG9yIGNob29zZXIgaGFzIGVuZGVkLgorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDaG9v
c2VyKCkgeyB9Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1IpCisKKyNl
bmRpZiAvLyBXZWJDb2xvckNob29zZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDAzOWQ0OWRmMzdiNmQ2ZjM5MzBiOTVjNzhk
NzUwYjllMmIyZDNjNzYuLjE3NGUwMDRiMGUwZTI4OWI1Y2IyNWM4NDZhYzA2NWQwYWFlZjZmNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAg
LTQxLDExICs0MSwxNiBAQAogI2luY2x1ZGUgIldlYlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUg
IldlYlRleHREaXJlY3Rpb24uaCIKICNpbmNsdWRlICJXZWJXaWRnZXRDbGllbnQuaCIKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb2xvci5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsK
KyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCitjbGFzcyBXZWJDb2xvckNob29zZXI7CitjbGFzcyBX
ZWJDb2xvckNob29zZXJDbGllbnQ7CisjZW5kaWYKIGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9u
Q2xpZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJFbGVtZW50OwpAQCAtMTc3LDkg
KzE4MiwxNyBAQCBwdWJsaWM6CiAgICAgLy8gaW5kaWNhdGluZyB0aGF0IHRoZSBkZWZhdWx0IGFj
dGlvbiBzaG91bGQgYmUgc3VwcHJlc3NlZC4KICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlQ3VycmVu
dEtleWJvYXJkRXZlbnQoKSB7IHJldHVybiBmYWxzZTsgfQogCi0KICAgICAvLyBEaWFsb2dzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyAgICAvLyBUaGlzIG1ldGhvZCBvcGVucyB0
aGUgY29sb3IgY2hvb3NlciBhbmQgcmV0dXJucyBhIG5ldyBXZWJDb2xvckNob29zZXIKKyAgICAv
LyBpbnN0YW5jZS4gSWYgdGhlcmUgaXMgYSBXZWJDb2xvckNob29zZXIgYWxyZWFkeSBmcm9tIHRo
ZSBsYXN0IHRpbWUgdGhpcworICAgIC8vIHdhcyBjYWxsZWQsIGl0IGVuZHMgdGhlIGNvbG9yIGNo
b29zZXIgYnkgY2FsbGluZyBlbmRDaG9vc2VyLCBhbmQgcmVwbGFjZXMKKyAgICAvLyBpdCB3aXRo
IHRoZSBuZXcgb25lLgorICAgIHZpcnR1YWwgV2ViQ29sb3JDaG9vc2VyKiBjcmVhdGVDb2xvckNo
b29zZXIoV2ViQ29sb3JDaG9vc2VyQ2xpZW50KiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvbG9yJikgeyByZXR1cm4gMDsgfQorI2Vu
ZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikKKwogICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMg
aW1tZWRpYXRlbHkgYWZ0ZXIgc2hvd2luZyB0aGUgZGlhbG9nLiBXaGVuIHRoZQogICAgIC8vIGRp
YWxvZyBpcyBjbG9zZWQsIGl0IHNob3VsZCBjYWxsIHRoZSBXZWJGaWxlQ2hvb3NlckNvbXBsZXRp
b24gdG8KICAgICAvLyBwYXNzIHRoZSByZXN1bHRzIG9mIHRoZSBkaWFsb2cuIFJldHVybnMgZmFs
c2UgaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAKaW5kZXggZGZhOGIyNGI0YTY0NDA4MjY2YTYwOGYwOWM5YTYzMTFjNTg0OGEwNS4uNjg5MDcy
MmU2YjZlM2M4YWNlMGE5YmMwN2M3NThiZGViNGEwNDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTM0LDYgKzM0LDExIEBACiAK
ICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVj
dC5oIgorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyNpbmNsdWRlICJDb2xvckNob29zZXIuaCIK
KyNpbmNsdWRlICJDb2xvckNob29zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJDb2xvckNob29zZXJQ
cm94eS5oIgorI2VuZGlmCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkN1cnNvci5o
IgogI2luY2x1ZGUgIkRhdGFiYXNlVHJhY2tlci5oIgpAQCAtNjgsNiArNzMsMTAgQEAKICNpbmNs
dWRlICJWOFByb3h5LmgiCiAjZW5kaWYKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
LmgiCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5o
IgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuaCIKKyNlbmRpZgogI2luY2x1
ZGUgIldlYkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV2ViQ3Vyc29ySW5mby5oIgogI2lu
Y2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbkltcGwuaCIKQEAgLTY3NSw2ICs2ODQsMjEg
QEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjQKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKK1Bhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBDaHJv
bWVDbGllbnRJbXBsOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjaG9v
c2VyQ2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQoreworICAgIFdlYlZpZXdDbGll
bnQqIGNsaWVudCA9IG1fd2ViVmlldy0+Y2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIFdlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwqIGNob29z
ZXJDbGllbnRQcm94eSA9IG5ldyBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsKGNob29zZXJDbGll
bnQpOworICAgIFdlYkNvbG9yIHdlYkNvbG9yID0gc3RhdGljX2Nhc3Q8V2ViQ29sb3I+KGluaXRp
YWxDb2xvci5yZ2IoKSk7CisgICAgV2ViQ29sb3JDaG9vc2VyKiBjaG9vc2VyID0gY2xpZW50LT5j
cmVhdGVDb2xvckNob29zZXIoY2hvb3NlckNsaWVudFByb3h5LCB3ZWJDb2xvcik7CisgICAgaWYg
KCFjaG9vc2VyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IENvbG9yQ2hvb3NlclByb3h5KGFkb3B0UHRyKGNob29zZXIpKSk7Cit9CisjZW5kaWYKKwog
dm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVm
UHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKIHsKICAgICBXZWJWaWV3Q2xpZW50KiBjbGll
bnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDlmYTkyZWZlMDFiZmJmZDZmM2Q4NDM5YTA2M2FlMDI1
Y2Y1YTlkN2YuLmZiOTEzMGU5OTQ0MzRjMzI2NjEwMWE2Zjk4N2MxODFmYTFmZWE3ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTM4LDYg
KzM4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q7CisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorY2xhc3MgQ29sb3JDaG9vc2VyOworY2xhc3Mg
Q29sb3JDaG9vc2VyQ2xpZW50OworI2VuZGlmCiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRmlsZUNo
b29zZXI7CiBjbGFzcyBQb3B1cENvbnRhaW5lcjsKQEAgLTEzNCw2ICsxMzgsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
ZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiop
OworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29y
ZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVD
aG9vc2VyPik7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CiAjaWYgRU5BQkxFKERJ
UkVDVE9SWV9VUExPQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
b2xvckNob29zZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNo
b29zZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA1OTEwNGVhNTM4OTViYzI5ODkwMjhmZTk3NTM4
NjFmZTVkMjU2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0NvbG9yQ2hvb3NlclByb3h5LmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3NlclByb3h5LmgiCisKKyNpbmNsdWRlICJD
b2xvci5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbG9yLmgiCisjaW5jbHVkZSAiV2ViQ29s
b3JDaG9vc2VyLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitDb2xvckNob29zZXJQcm94eTo6Q29sb3JDaG9vc2VyUHJveHkoUGFzc093blB0cjxX
ZWJDb2xvckNob29zZXI+IGNob29zZXIpIDogbV9jaG9vc2VyKGNob29zZXIpCit7Cit9CisKK0Nv
bG9yQ2hvb3NlclByb3h5Ojp+Q29sb3JDaG9vc2VyUHJveHkoKQoreworfQorCit2b2lkIENvbG9y
Q2hvb3NlclByb3h5OjpzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xv
cikKK3sKKyAgICBpZiAoIW1fY2hvb3NlcikKKyAgICAgICAgcmV0dXJuOworICAgIFdlYkNvbG9y
IHdlYkNvbG9yID0gc3RhdGljX2Nhc3Q8V2ViQ29sb3I+KGNvbG9yLnJnYigpKTsKKyAgICBtX2No
b29zZXItPnNldFNlbGVjdGVkQ29sb3Iod2ViQ29sb3IpOworfQorCit2b2lkIENvbG9yQ2hvb3Nl
clByb3h5OjplbmRDaG9vc2VyKCkKK3sKKyAgICBpZiAoIW1fY2hvb3NlcikKKyAgICAgICAgcmV0
dXJuOworICAgIG1fY2hvb3Nlci0+ZW5kQ2hvb3NlcigpOworfQorCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db2xvckNob29zZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JD
aG9vc2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2ZkZDRiN2I0ODczZGMzMzU0NTJiNjcwMDgzOWJh
ZWJmMWMwOGVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q29sb3JDaG9vc2VyUHJveHkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb2xv
ckNob29zZXJQcm94eV9oCisjZGVmaW5lIENvbG9yQ2hvb3NlclByb3h5X2gKKworI2luY2x1ZGUg
IkNvbG9yQ2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nlci5oIgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCisjaWYgRU5BQkxF
KElOUFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ29sb3JDaG9vc2Vy
UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHsKK3B1YmxpYzoKKyAgICBDb2xv
ckNob29zZXJQcm94eShQYXNzT3duUHRyPFdlYkNvbG9yQ2hvb3Nlcj4pOworICAgIHZpcnR1YWwg
fkNvbG9yQ2hvb3NlclByb3h5KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCk7
CisKK3ByaXZhdGU6CisgICAgT3duUHRyPFdlYkNvbG9yQ2hvb3Nlcj4gbV9jaG9vc2VyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1Ip
CisKKyNlbmRpZiAvLyBHZW9sb2NhdGlvbkNsaWVudFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzRmOGU2OWE0ZmY0ZDc5Y2VmYWE2OTIxMzE2ZTVlNzFhZGU3ZGUwZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNs
aWVudEltcGwuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiQ29s
b3IuaCIKKyNpbmNsdWRlICJDb2xvckNob29zZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShJTlBV
VF9DT0xPUikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkNvbG9yQ2hvb3NlckNsaWVudElt
cGw6OldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50
KiBjbGllbnQpIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCitXZWJDb2xvckNob29zZXJDbGll
bnRJbXBsOjp+V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCgpCit7Cit9CisKK3ZvaWQgV2ViQ29s
b3JDaG9vc2VyQ2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29sb3ImIGNvbG9y
KQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+
ZGlkQ2hvb3NlQ29sb3IoV2ViQ29yZTo6Q29sb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UkdCQTMy
Pihjb2xvcikpKTsKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjpkaWRFbmRD
aG9vc2VyKCkKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisgICAgbV9j
bGllbnQtPmRpZEVuZENob29zZXIoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVU
X0NPTE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0OGZlMjhlMDg5OGFkOTZjYmQ1MmZkZWQy
NTdlNGRhZjIyODk4YTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbF9oCisjZGVmaW5lIFdlYkNvbG9yQ2hv
b3NlckNsaWVudEltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgiCisK
KyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENv
bG9yQ2hvb3NlckNsaWVudDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNv
bG9yQ2hvb3NlckNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29sb3JDaG9vc2VyQ2xpZW50IHsKK3B1
YmxpYzoKKyAgICBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsKFdlYkNvcmU6OkNvbG9yQ2hvb3Nl
ckNsaWVudCopOworICAgIHZpcnR1YWwgfldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb2xvciYpOworICAgIHZp
cnR1YWwgdm9pZCBkaWRFbmRDaG9vc2VyKCk7CisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6Q29s
b3JDaG9vc2VyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShJ
TlBVVF9DT0xPUikKKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3NlckNsaWVudF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119410</attachid>
            <date>2011-12-15 04:12:47 -0800</date>
            <delta_ts>2011-12-18 20:18:24 -0800</delta_ts>
            <desc>fixed</desc>
            <filename>bug-65897-20111215211245.patch</filename>
            <type>text/plain</type>
            <size>26998</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI0OTExMzc2ZjhjNmM4
NjJkMzJhODRjNDVkZTYxNTYyZTQzNTBlMy4uZjJhZWIxNDRlZTg1YWEwMzBmOThhZTJiMDIwNTc3
MWM3Zjg4YTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTE1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5w
dXQgdHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIENvbG9y
Q2hvb3Nlci5oIGFuZCBDb2xvckNob29zZXJDbGllbnQuaAorCiAyMDExLTEyLTE0ICBLZWlzaGkg
SGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZmFjdG9yIGlucHV0IHR5
cGUgY29sb3IgV2ViQ29yZSBwYXJ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGQ5NjRj
MzFjYWE5YmZiMGI2YWQ3OTM1NWRlZDFmOTdhNzVlYmRmYTYuLjMzNzEwNjhjOWQwZDQyNTkzMThi
YzQ0MmI1YTQwNDEyNjlmZGI4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTEtMTItMTUgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgSW1wbGVtZW50IDxpbnB1dCB0eXBlPWNvbG9yPiBVSSBXZWJLaXQgY2hyb21p
dW0gcGFydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjU4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdC5neXA6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBB
ZGRlZCBFTkFCTEVfSU5QVVRfQ09MT1IuCisgICAgICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nl
ci5oOiBBZGRlZC4gSW50ZXJmYWNlIGZvciBDb2xvckNob29zZXJQcm94eSB0byBjYWxsLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6On5XZWJDb2xvckNob29zZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAgICAqIHB1YmxpYy9X
ZWJDb2xvckNob29zZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
Q2hvb3NlckNsaWVudDo6fldlYkNvbG9yQ2hvb3NlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yQ2hvb3NlckNsaWVudDo6ZGlkQ2hvb3NlQ29sb3IpOiBPbmx5IGNhbGxlZCB3aGVu
IHVzZXIgY2hhbmdlcyB0aGUgY29sb3IuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3Nl
ckNsaWVudDo6ZGlkRW5kQ2hvb3Nlcik6IENhbGxlZCB3aGVuIFdlYkNvbG9yQ2hvb3Nlcjo6ZW5k
Q2hvb3NlciBpcyBjYWxsZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKTogQ3JlYXRl
cyBhIG5ldyBjb2xvciBjaG9vc2VyLiBJZiB0aGVyZSBpcyBhbiBvbGQgY29sb3IgY2hvb3Nlciwg
dGhpcyB3aWxsIGVuZCBpdC4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IENh
bGxzIFdlYlZpZXdDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKiBzcmMvQ2hy
b21lQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9Db2xvckNob29zZXJQcm94eS5jcHA6IFBy
b3hpZXMgY2FsbHMgdG8gV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHRvIFdlYktpdDo6V2ViQ29sb3JD
aG9vc2VyLgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6Q29sb3JDaG9vc2Vy
UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6fkNvbG9yQ2hvb3Nl
clByb3h5KToKKyAgICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyUHJveHk6OnNldFNlbGVjdGVk
Q29sb3IpOgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6ZW5kQ2hvb3Nlcik6
CisgICAgICAgICogc3JjL0NvbG9yQ2hvb3NlclByb3h5Lmg6CisgICAgICAgICogc3JjL1dlYkNv
bG9yQ2hvb3NlckNsaWVudEltcGwuY3BwOiBQcm94aWVzIGNhbGxzIHRvIFdlYktpdDo6V2ViQ29s
b3JDaG9vc2VyQ2xpZW50IHRvIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50
SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJD
b2xvckNob29zZXJDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2Vy
Q2xpZW50SW1wbDo6ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNo
b29zZXJDbGllbnRJbXBsOjpkaWRFbmRDaG9vc2VyKToKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbC5oOiBBZGRlZC4KKwogMjAxMS0xMi0xNCAgSm9uYXRoYW4gQmFja2Vy
ICA8YmFja2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFBsdW1iIHRocm91
Z2ggZmxhZyBmb3IgZW5hYmxpbmcgcGFydGlhbCBzd2FwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzUy
NzhhNGRkNGMxZTliNmE4NWQzMWQ5MTY4MmM0Yjk2OGNmOWNiMy4uZDVjMDAwM2EwODQxZmE5MDAx
YTRmOGVlMzNlMDA3MjJmM2Y4YjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjY3LDYgKzY2Nyw4
IEBACiAgICAgICAgICAgICAncGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Q2xvY2suaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyLmgnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL0NvbG9yQ2hvb3NlckNsaWVudC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9Db250ZXh0TWVudS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ29va2llLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3
M2YzZjhlM2Y1NWQxOWU5YzFlODAzMTc1NzBjZDQwM2QyNWZkZGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29s
b3JDaG9vc2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgotCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLQotI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1Db2xvckNob29zZXJDbGllbnQ6On5Db2xvckNob29zZXJDbGllbnQoKQot
ewotICAgIGRpc2NhcmRDaG9vc2VyKCk7Ci19Ci0KLUNvbG9yQ2hvb3NlciogQ29sb3JDaG9vc2Vy
Q2xpZW50OjpuZXdDb2xvckNob29zZXIoKQotewotICAgIGRpc2NhcmRDaG9vc2VyKCk7Ci0KLSAg
ICBtX2Nob29zZXIgPSBDb2xvckNob29zZXI6OmNyZWF0ZSh0aGlzKTsKLSAgICByZXR1cm4gbV9j
aG9vc2VyLmdldCgpOwotfQotCi12b2lkIENvbG9yQ2hvb3NlckNsaWVudDo6ZGlzY2FyZENob29z
ZXIoKQotewotICAgIGlmIChtX2Nob29zZXIpCi0gICAgICAgIG1fY2hvb3Nlci0+ZGlzY29ubmVj
dENsaWVudCgpOwotICAgIG1fY2hvb3Nlci5jbGVhcigpOwotfQotCi1pbmxpbmUgQ29sb3JDaG9v
c2VyOjpDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2Ns
aWVudChjbGllbnQpCi17Ci19Ci0KLVBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiBDb2xvckNob29z
ZXI6OmNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENvbG9yQ2hvb3NlcihjbGllbnQpKTsKLX0KLQotQ29sb3JDaG9vc2VyOjp+Q29s
b3JDaG9vc2VyKCkKLXsKLX0KLQotdm9pZCBDb2xvckNob29zZXI6OmRpZENob29zZUNvbG9yKGNv
bnN0IENvbG9yJiBjb2xvcikKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Ci19Ci0KLXZvaWQgQ29sb3JDaG9vc2VyOjpkaWRDbGVh
bnVwKCkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDbGVhbnVw
KCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAppbmRleCA5YTgzZmJmZTUwMTMyMGUxYzhkODM2MTE1ZWEwYTYzM2UyMzA4
ZGM5Li4wOTQxY2EwYzZhYzQ1YzRmNzNkYjgzNGJmMzY3YzllMTZkNzE5ZmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMDYsNiArMTA2LDggQEAKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkJpbmRpbmdzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQmxvYi5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNhY2hlLmgnLAorICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
Q29sb3JDaG9vc2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tbW9u
V29ya2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRpb25V
bmRlcmxpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9yLmgnLApA
QCAtMzcxLDYgKzM3Myw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9DQ1RocmVhZEltcGwuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvQ29s
b3JDaG9vc2VyUHJveHkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0NvbG9yQ2hvb3NlclBy
b3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1DdXJyZW50VGltZS5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1PU1JhbmRvbVNvdXJjZS5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvQ2hyb21pdW1UaHJlYWRpbmcuY3BwJywKQEAgLTQ4Miw2ICs0ODYsOCBA
QAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRhdGEuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvci5jcHAn
LAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAnLAor
ICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
Q29tcG9zaXRvckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJ
bXBsLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBp
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDZmZGFhMGU0Mjg3
NDM1NTQyODRiMDQwOTAwMmVmOTE3MTQ0Y2Y2NTEuLmE5MDNiMDAzY2RkYjg0MDg3NmQ0ZGMyYzA3
ZmNjYWQ2MjVkOTBlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTUy
LDYgKzUyLDcgQEAKICAgICAgICdFTkFCTEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAgICAg
J0VOQUJMRV9JQ09OREFUQUJBU0U9MCcsCiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJBU0U9
MScsCisgICAgICAnRU5BQkxFX0lOUFVUX0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBVVF9T
UEVFQ0g9MScsCiAgICAgICAnRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MCcsCiAgICAgICAnRU5B
QkxFX0lOUFVUX1RZUEVfREFURT0wJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQ29sb3JDaG9vc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3ZjY2ZTY3OWYwZWQ1MGY3ODdjZjMw
MmVhMzE4YjEwM2VjNWMxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYkNvbG9yQ2hvb3Nlcl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nlcl9oCisKKyNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb2xvci5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbW1vbi5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhpcyByZXByZXNlbnRzIGEgY29sb3IgY2hv
b3Nlci4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2Vi
Q29sb3JDaG9vc2VyKCkgeyB9CisKKyAgICAvLyBTZXQgc2VsZWN0ZWQgY29sb3IgaW4gdGhlIGNv
bG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2Vi
Q29sb3IgY29sb3IpIHsgfQorCisgICAgLy8gQ2FsbGluZyB0aGlzIGVuZHMgdGhlIGNvbG9yIGNo
b29zZXIgYW5kIHRoZSBjbGllbnQgd29uJ3QgYmUgcmVjaWV2aW5nCisgICAgLy8gZGlkQ2hvb3Nl
Q29sb3IgY2FsbGJhY2tzIGFueW1vcmUuCisgICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIoKSB7
IH0KK307CisKK30KKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3Nlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3NlckNsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE4MGE5ODRjNzA3MGJiOGZlZGNlYWI4NTY4YTk2ZmYwNDYzZTQzMmQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJD
bGllbnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJD
bGllbnRfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJDbGllbnRfaAorCisjaW5jbHVkZSAicGxh
dGZvcm0vV2ViQ29sb3IuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKKy8vIFJlY2VpdmVzIGNhbGxzIGZyb20gV2ViQ29sb3JDaG9vc2Vy
IGFuZCBwYXNzZXMgaXQgdG8gdGhlIFdlYkNvcmUgc2lkZS4KK2NsYXNzIFdlYkNvbG9yQ2hvb3Nl
ckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9vc2VyQ2xpZW50KCkg
eyB9CisKKyAgICAvLyBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMgYSBjb2xvciBpbiB0aGUgY29s
b3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29s
b3ImKSB7IH0KKworICAgIC8vIENhbGxlZCB3aGVuIGNvbG9yIGNob29zZXIgaGFzIGVuZGVkLgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDaG9vc2VyKCkgeyB9Cit9OworCit9CisKKyNlbmRpZiAv
LyBXZWJDb2xvckNob29zZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDAzOWQ0OWRmMzdiNmQ2ZjM5MzBiOTVjNzhkNzUwYjll
MmIyZDNjNzYuLjVhNGQ0ZThlNDljM2Q3MmE2OGEwZWE4ZWVjZDQyMDI0ZWQ2NzhlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTQxLDEx
ICs0MSwxNCBAQAogI2luY2x1ZGUgIldlYlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIldlYlRl
eHREaXJlY3Rpb24uaCIKICNpbmNsdWRlICJXZWJXaWRnZXRDbGllbnQuaCIKKyNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJDb2xvci5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKK2NsYXNz
IFdlYkNvbG9yQ2hvb3NlcjsKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudDsKIGNsYXNzIFdl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJF
bGVtZW50OwpAQCAtMTc3LDkgKzE4MCwxNSBAQCBwdWJsaWM6CiAgICAgLy8gaW5kaWNhdGluZyB0
aGF0IHRoZSBkZWZhdWx0IGFjdGlvbiBzaG91bGQgYmUgc3VwcHJlc3NlZC4KICAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKSB7IHJldHVybiBmYWxzZTsgfQogCi0K
ICAgICAvLyBEaWFsb2dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorICAgIC8vIFRoaXMgbWV0aG9kIG9wZW5zIHRoZSBjb2xv
ciBjaG9vc2VyIGFuZCByZXR1cm5zIGEgbmV3IFdlYkNvbG9yQ2hvb3NlcgorICAgIC8vIGluc3Rh
bmNlLiBJZiB0aGVyZSBpcyBhIFdlYkNvbG9yQ2hvb3NlciBhbHJlYWR5IGZyb20gdGhlIGxhc3Qg
dGltZSB0aGlzCisgICAgLy8gd2FzIGNhbGxlZCwgaXQgZW5kcyB0aGUgY29sb3IgY2hvb3NlciBi
eSBjYWxsaW5nIGVuZENob29zZXIsIGFuZCByZXBsYWNlcworICAgIC8vIGl0IHdpdGggdGhlIG5l
dyBvbmUuCisgICAgdmlydHVhbCBXZWJDb2xvckNob29zZXIqIGNyZWF0ZUNvbG9yQ2hvb3NlcihX
ZWJDb2xvckNob29zZXJDbGllbnQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViQ29sb3ImKSB7IHJldHVybiAwOyB9CisKICAgICAvLyBU
aGlzIG1ldGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVyIHNob3dpbmcgdGhlIGRpYWxvZy4g
V2hlbiB0aGUKICAgICAvLyBkaWFsb2cgaXMgY2xvc2VkLCBpdCBzaG91bGQgY2FsbCB0aGUgV2Vi
RmlsZUNob29zZXJDb21wbGV0aW9uIHRvCiAgICAgLy8gcGFzcyB0aGUgcmVzdWx0cyBvZiB0aGUg
ZGlhbG9nLiBSZXR1cm5zIGZhbHNlIGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGRmYThiMjRiNGE2NDQwODI2NmE2MDhmMDljOWE2
MzExYzU4NDhhMDUuLjY4OTA3MjJlNmI2ZTNjOGFjZTBhOWJjMDdjNzU4YmRlYjRhMDQzYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBA
IC0zNCw2ICszNCwxMSBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisjaW5jbHVk
ZSAiQ29sb3JDaG9vc2VyLmgiCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyQ2xpZW50LmgiCisjaW5j
bHVkZSAiQ29sb3JDaG9vc2VyUHJveHkuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkNvbnNvbGUuaCIK
ICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKQEAgLTY4
LDYgKzczLDEwIEBACiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyNpbmNsdWRl
ICJXZWJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGllbnRJbXBs
LmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIldl
YkN1cnNvckluZm8uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsLmgi
CkBAIC02NzUsNiArNjg0LDIxIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCitQYXNzT3duUHRy
PENvbG9yQ2hvb3Nlcj4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9y
Q2hvb3NlckNsaWVudCogY2hvb3NlckNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikK
K3sKKyAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOworICAg
IGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBXZWJDb2xvckNob29z
ZXJDbGllbnRJbXBsKiBjaG9vc2VyQ2xpZW50UHJveHkgPSBuZXcgV2ViQ29sb3JDaG9vc2VyQ2xp
ZW50SW1wbChjaG9vc2VyQ2xpZW50KTsKKyAgICBXZWJDb2xvciB3ZWJDb2xvciA9IHN0YXRpY19j
YXN0PFdlYkNvbG9yPihpbml0aWFsQ29sb3IucmdiKCkpOworICAgIFdlYkNvbG9yQ2hvb3Nlciog
Y2hvb3NlciA9IGNsaWVudC0+Y3JlYXRlQ29sb3JDaG9vc2VyKGNob29zZXJDbGllbnRQcm94eSwg
d2ViQ29sb3IpOworICAgIGlmICghY2hvb3NlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDb2xvckNob29zZXJQcm94eShhZG9wdFB0cihjaG9vc2Vy
KSkpOworfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVsKEZy
YW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAgICAg
V2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCA5ZmE5MmVmZTAxYmZi
ZmQ2ZjNkODQzOWEwNjNhZTAyNWNmNWE5ZDdmLi41NGJiZjdjNDgyMGVjZDE0YTczZGU3NTVlZjI4
MThmY2IzMGRhMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCkBAIC0zOCw2ICszOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBBY2Nlc3NpYmlsaXR5T2JqZWN0OworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKK2NsYXNzIENv
bG9yQ2hvb3NlcjsKK2NsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKKyNlbmRpZgogY2xhc3MgRWxl
bWVudDsKIGNsYXNzIEZpbGVDaG9vc2VyOwogY2xhc3MgUG9wdXBDb250YWluZXI7CkBAIC0xMzQs
NiArMTM4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5n
QXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R2VvbG9jYXRpb24qKTsKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJ
REU7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1l
KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwogICAgIHZpcnR1YWwgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxl
SWNvbkxvYWRlciopOwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRh
ZTFiMTI3ZDY2MzVjYjdkODVlZTMzMzg5YzU3ODA4MWNkMmJhOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJQcm94eS5jcHAKQEAgLTAs
MCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb2xvckNo
b29zZXJQcm94eS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNo
b29zZXIuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb2xvci5oIgorCisjaWYgRU5BQkxFKElO
UFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29sb3JDaG9vc2VyUHJveHk6OkNv
bG9yQ2hvb3NlclByb3h5KFBhc3NPd25QdHI8V2ViQ29sb3JDaG9vc2VyPiBjaG9vc2VyKSA6IG1f
Y2hvb3NlcihjaG9vc2VyKQoreworfQorCitDb2xvckNob29zZXJQcm94eTo6fkNvbG9yQ2hvb3Nl
clByb3h5KCkKK3sKK30KKwordm9pZCBDb2xvckNob29zZXJQcm94eTo6c2V0U2VsZWN0ZWRDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX2Nob29zZXIpCisg
ICAgICAgIHJldHVybjsKKyAgICBXZWJDb2xvciB3ZWJDb2xvciA9IHN0YXRpY19jYXN0PFdlYkNv
bG9yPihjb2xvci5yZ2IoKSk7CisgICAgbV9jaG9vc2VyLT5zZXRTZWxlY3RlZENvbG9yKHdlYkNv
bG9yKTsKK30KKwordm9pZCBDb2xvckNob29zZXJQcm94eTo6ZW5kQ2hvb3NlcigpCit7CisgICAg
aWYgKCFtX2Nob29zZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nob29zZXItPmVuZENob29z
ZXIoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZh
OTk4MGYyOGQ5OTJhZDY5ODBmNDMwYTgwZTJhOWVmYWJhODFlMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclByb3h5LmgKQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ29sb3JDaG9vc2VyUHJveHlfaAorI2RlZmluZSBDb2xv
ckNob29zZXJQcm94eV9oCisKKyNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlICJX
ZWJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIENvbG9yQ2hvb3NlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkNvbG9y
Q2hvb3NlciB7CitwdWJsaWM6CisgICAgQ29sb3JDaG9vc2VyUHJveHkoUGFzc093blB0cjxXZWJD
b2xvckNob29zZXI+KTsKKyAgICB2aXJ0dWFsIH5Db2xvckNob29zZXJQcm94eSgpOworCisgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpOworCitwcml2YXRlOgorICAgIE93blB0cjxXZWJD
b2xvckNob29zZXI+IG1fY2hvb3NlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQorCisjZW5kaWYgLy8gQ29sb3JDaG9vc2VyUHJv
eHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JDaG9v
c2VyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNo
b29zZXJDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGY4ZTY5YTRmZjRkNzljZWZhYTY5MjEz
MTZlNWU3MWFkZTdkZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3NlckNsaWVu
dC5oIgorCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbChXZWJD
b3JlOjpDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpCit7Cit9
CisKK1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJDb2xvckNob29zZXJDbGllbnRJbXBs
KCkKK3sKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjpkaWRDaG9vc2VDb2xv
cihjb25zdCBXZWJDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvcihzdGF0
aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KGNvbG9yKSkpOworfQorCit2b2lkIFdlYkNvbG9yQ2hv
b3NlckNsaWVudEltcGw6OmRpZEVuZENob29zZXIoKQoreworICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+ZGlkRW5kQ2hvb3NlcigpOworfQorCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY3
MzVkODlkODVkMjY5ZjA4NDBmYTU3YTI4MDRmZDE4ZDExMWM5NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwuaApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJDbGllbnRJbXBs
X2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbF9oCisKKyNpbmNsdWRlICJXZWJD
b2xvckNob29zZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50OworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJD
b2xvckNob29zZXJDbGllbnQgeworcHVibGljOgorICAgIFdlYkNvbG9yQ2hvb3NlckNsaWVudElt
cGwoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50Kik7CisgICAgdmlydHVhbCB+V2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbCgpOworCisgICAgdmlydHVhbCB2b2lkIGRpZENob29zZUNvbG9yKGNv
bnN0IFdlYkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZENob29zZXIo
KSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQq
IG1fY2xpZW50OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQorCisj
ZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119803</attachid>
            <date>2011-12-18 20:18:33 -0800</date>
            <delta_ts>2011-12-18 21:23:10 -0800</delta_ts>
            <desc>updated pbxproj and GNUmakefile</desc>
            <filename>bug-65897-20111219131831.patch</filename>
            <type>text/plain</type>
            <size>32872</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc0NGJiYzVmMWJmMmVh
NTI0M2QxMTg2N2EyMjljNjk1ZGEyMjAzZC4uOTcyM2RlNDU1OGY1ZGRjZWFhNTBiYTU2NjJmOTU3
NjA4NzI0NjMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTE4ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCA8aW5w
dXQgdHlwZT1jb2xvcj4gVUkgV2ViS2l0IGNocm9taXVtIHBhcnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3Zl
ZCBDb2xvckNob29zZXIuY3BwIGFuZCBhZGRlZCBDb2xvckNob29zZXJDbGllbnQuaAorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgQ29sb3JDaG9vc2VyLmggYW5kIENvbG9yQ2hvb3NlckNs
aWVudC5oCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1v
dmVkIENvbG9yQ2hvb3Nlci5jcHAgYW5kIGFkZGVkIENvbG9yQ2hvb3NlckNsaWVudC5oCisKIDIw
MTEtMTItMTggIEx1a2UgTWFjcGhlcnNvbiAgIDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBJbXBsZW1lbnQgQ1NTIGxpbmUtaGVpZ2h0IHByb3BlcnR5IGluIENTU1N0eWxlQXBw
bHlQcm9wZXJ0eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTg5OWM2NzJiZDFhYTE2
NmRiMmE2YmI5MDhmN2Y3YTdmZThmMDI3Yy4uNDA0ZmIwNDk0ZDhkN2JiY2VkODJhMWZmYWM4MzQ3
NTIxZGY1ODcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAor
MjAxMS0xMi0xOCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAg
ICBJbXBsZW1lbnQgPGlucHV0IHR5cGU9Y29sb3I+IFVJIFdlYktpdCBjaHJvbWl1bSBwYXJ0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICAqIFdlYktpdC5neXA6
IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBBZGRlZCBFTkFCTEVf
SU5QVVRfQ09MT1IuCisgICAgICAgICogcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oOiBBZGRlZC4g
SW50ZXJmYWNlIGZvciBDb2xvckNob29zZXJQcm94eSB0byBjYWxsLgorICAgICAgICAoV2ViS2l0
OjpXZWJDb2xvckNob29zZXI6On5XZWJDb2xvckNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb2xvckNob29zZXI6OnNldFNlbGVjdGVkQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvckNob29zZXI6OmVuZENob29zZXIpOgorICAgICAgICAqIHB1YmxpYy9XZWJDb2xvckNob29z
ZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVu
dDo6fldlYkNvbG9yQ2hvb3NlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hv
b3NlckNsaWVudDo6ZGlkQ2hvb3NlQ29sb3IpOiBPbmx5IGNhbGxlZCB3aGVuIHVzZXIgY2hhbmdl
cyB0aGUgY29sb3IuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudDo6ZGlk
RW5kQ2hvb3Nlcik6IENhbGxlZCB3aGVuIFdlYkNvbG9yQ2hvb3Nlcjo6ZW5kQ2hvb3NlciBpcyBj
YWxsZWQuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0NsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKTogQ3JlYXRlcyBhIG5ldyBjb2xv
ciBjaG9vc2VyLiBJZiB0aGVyZSBpcyBhbiBvbGQgY29sb3IgY2hvb3NlciwgdGhpcyB3aWxsIGVu
ZCBpdC4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IENhbGxzIFdlYlZpZXdD
bGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlci4KKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1w
bC5oOgorICAgICAgICAqIHNyYy9Db2xvckNob29zZXJQcm94eS5jcHA6IFByb3hpZXMgY2FsbHMg
dG8gV2ViQ29yZTo6Q29sb3JDaG9vc2VyIHRvIFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyLgorICAg
ICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6Q29sb3JDaG9vc2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6fkNvbG9yQ2hvb3NlclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6Q29sb3JDaG9vc2VyUHJveHk6OnNldFNlbGVjdGVkQ29sb3IpOgorICAg
ICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJQcm94eTo6ZW5kQ2hvb3Nlcik6CisgICAgICAgICog
c3JjL0NvbG9yQ2hvb3NlclByb3h5Lmg6CisgICAgICAgICogc3JjL1dlYkNvbG9yQ2hvb3NlckNs
aWVudEltcGwuY3BwOiBQcm94aWVzIGNhbGxzIHRvIFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xp
ZW50IHRvIFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJDb2xvckNob29zZXJD
bGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6
ZGlkQ2hvb3NlQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsOjpkaWRFbmRDaG9vc2VyKToKKyAgICAgICAgKiBzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50
SW1wbC5oOiBBZGRlZC4KKwogMjAxMS0xMi0xOCAgSmFtZXMgS296aWFuc2tpICA8a296QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB3b3JsZElkIHBhcmFtZXRlciB0byBh
bGxvd1NjcmlwdEV4dGVuc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBi
MDIzOWMzNjdlNzA0YmJkNjk0NDNiNzgwNTJiODNhNjRiOTFiNzQzLi4xNmE3NDhiZTBhOGIyYmQ4
YjIxZTllYjkyMmI5ZGIxMjdjMGFlZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTI0NzUsOCArMjQ3NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ2xvY2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2tHZW5l
cmljLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2xvY2tHZW5lcmljLmggXAotCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xv
ckNob29zZXJDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudFR5cGUu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwOWU1
ODlhNTA0MGMxYWFiYmJiYzNkNWI2ZWY3YmRiYTM1OGU0MTIwLi5kOWUxZWI2YTI4MzRmZmM2Mzg4
OTA0ZTJkOThkYmU0YzZiMzdjNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02NjcsNiArNjY3LDgg
QEAKICAgICAgICAgICAgICdwYWdlL21hYy9XZWJDb3JlRnJhbWVWaWV3LmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9D
bG9jay5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Db2xvckNob29zZXIuaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vQ29sb3JDaG9vc2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0NvbnRleHRNZW51LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0NvbnRleHRNZW51SXRl
bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Db29raWUuaCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjE3NDMyYjQzY2U1
MmJhZGIzMmY0YWJlYjgyYzg2OTU3NzFlNWI2MS4uMjJhOGY4N2ZiZjIwMDNhY2Y2ZjIxOTVlZDBi
NWQ2OWIzZWUzZTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTQzNyw4ICs1NDM3LDggQEAKIAkJQzBGMkE0NDExMzg2OUFB
QjAwNjZDNTM0IC8qIHByZXByb2Nlc3Nvci5wbSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMwRjJBNDNGMTM4NjlBMjgwMDY2QzUzNCAvKiBwcmVwcm9jZXNz
b3IucG0gKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QzEwNURBNjIwRjNBQTY4RjAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYxMEYz
QUE2OEYwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi87IH07CiAJCUMx
MDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAw
MURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07Ci0JCUMzMzBBMjIyMTNFQzE5
NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzMzMEEyMjAxM0VDMTk2QjAwMDBCNDVCIC8qIENvbG9yQ2hv
b3Nlci5jcHAgKi87IH07CiAJCUMzMzBBMjIzMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29z
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzMzBB
MjIxMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQg
LyogQ29sb3JDaG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xp
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QzUwQjU2MTYxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwQjU2MTQxMjExOUQyMzAwOEI0
NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwICovOyB9OwogCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2
RTAgLyogR3JvdXBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDNTBEMEU4
MjBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTBEMEU4MDBGRjQyNzI5MDBBQzI2NDQg
LyogU3RvcmFnZU5hbWVzcGFjZS5jcHAgKi87IH07CkBAIC0xMjgxMSw4ICsxMjgxMSw4IEBACiAJ
CUMwRjJBNDNGMTM4NjlBMjgwMDY2QzUzNCAvKiBwcmVwcm9jZXNzb3IucG0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBu
YW1lID0gcHJlcHJvY2Vzc29yLnBtOyBwYXRoID0gc2NyaXB0cy9wcmVwcm9jZXNzb3IucG07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxMDVEQTYxMEYzQUE2OEYwMDFERDQ0RiAvKiBU
ZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3RvcklDVS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMxMDVEQTYzMEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5jb2RpbmdEZXRlY3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDMzMwQTIyMDEzRUMxOTZCMDAwMEI0
NUIgLyogQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzMzBB
MjIxMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29sb3JDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMzN0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sb3JDaG9vc2VyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MEI1NjE0MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91
cFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyb3Vw
U2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTBCNTYxNTEyMTE5
RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcm91cFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1
MEQwRTgwMEZGNDI3MjkwMEFDMjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAyMzMsOCArMjAyMzMsOCBAQAogCQkJCTg5RDA4RDlE
MTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uaCAqLywKIAkJCQk4OUQwOEQ5RTEy
MjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi8sCiAJCQkJNTFF
MUVDQjEwQzkxQzU1NjAwREMyNTVCIC8qIEF1dG9kcmFpbmVkUG9vbC5oICovLAotCQkJCUMzMzBB
MjIwMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIuY3BwICovLAogCQkJCUMzMzBBMjIx
MTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIuaCAqLywKKwkJCQlDMzdDREVCQzE0OUVG
MjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi8sCiAJCQkJQkNDOENGQ0EwOTg2
Q0QyNDAwMTQwQkYyIC8qIENvbG9yRGF0YS5ncGVyZiAqLywKIAkJCQk0MUQwMTVDOTBGNEI1Qzcx
MDA0QTY2MkYgLyogQ29udGVudFR5cGUuY3BwICovLAogCQkJCTQxRDAxNUM4MEY0QjVDNzEwMDRB
NjYyRiAvKiBDb250ZW50VHlwZS5oICovLApAQCAtMjQ5NDAsNiArMjQ5NDAsNyBAQAogCQkJCTQ5
RUNFQjZDMTQ5OTc5MEQwMENERDNBNCAvKiBGRUxpZ2h0aW5nTkVPTi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUEyRjlEN0ExNDk2OEM3NDAwNjVBQzYzIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUE3MTYwQjE0OUJDNERCMDAxNkVDMTkgLyogVGlsZUNhY2hl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JD
aG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI1NDMzLDcgKzI1NDM0LDYgQEAKIAkJ
CQk5M0M0NDFFRjBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyNzUzNTY2MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkNGMzMyNDBGMkI5NzE1MDA0QjY3OTUgLyogQ29sb3JDRy5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlDMzMwQTIyMjEzRUMxOTZCMDAwMEI0NUIgLyogQ29sb3JDaG9vc2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQkE3NkM5MTFEMjBFNDcwMDRDMjAxQyAvKiBDb2xv
ckRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjc5NjIwRDAwQkYyMjAwNzFCNzgyIC8q
IENvbG9yRGlzdGFuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjMxMjUxRjEyRDAw
M0VGMjY5IC8qIENvbG9ySW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE3M2YzZjhlM2Y1NWQxOWU5YzFlODAzMTc1NzBjZDQwM2QyNWZkZGIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29sb3JDaG9vc2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgotCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1Db2xvckNob29zZXJDbGllbnQ6On5Db2xvckNob29zZXJDbGllbnQo
KQotewotICAgIGRpc2NhcmRDaG9vc2VyKCk7Ci19Ci0KLUNvbG9yQ2hvb3NlciogQ29sb3JDaG9v
c2VyQ2xpZW50OjpuZXdDb2xvckNob29zZXIoKQotewotICAgIGRpc2NhcmRDaG9vc2VyKCk7Ci0K
LSAgICBtX2Nob29zZXIgPSBDb2xvckNob29zZXI6OmNyZWF0ZSh0aGlzKTsKLSAgICByZXR1cm4g
bV9jaG9vc2VyLmdldCgpOwotfQotCi12b2lkIENvbG9yQ2hvb3NlckNsaWVudDo6ZGlzY2FyZENo
b29zZXIoKQotewotICAgIGlmIChtX2Nob29zZXIpCi0gICAgICAgIG1fY2hvb3Nlci0+ZGlzY29u
bmVjdENsaWVudCgpOwotICAgIG1fY2hvb3Nlci5jbGVhcigpOwotfQotCi1pbmxpbmUgQ29sb3JD
aG9vc2VyOjpDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQpCi0gICAgOiBt
X2NsaWVudChjbGllbnQpCi17Ci19Ci0KLVBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiBDb2xvckNo
b29zZXI6OmNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IENvbG9yQ2hvb3NlcihjbGllbnQpKTsKLX0KLQotQ29sb3JDaG9vc2VyOjp+
Q29sb3JDaG9vc2VyKCkKLXsKLX0KLQotdm9pZCBDb2xvckNob29zZXI6OmRpZENob29zZUNvbG9y
KGNvbnN0IENvbG9yJiBjb2xvcikKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7Ci19Ci0KLXZvaWQgQ29sb3JDaG9vc2VyOjpkaWRD
bGVhbnVwKCkKLXsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDbGVh
bnVwKCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9DT0xPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAppbmRleCBmNjVmZGM5Mjk4ZmFkNTE3MjdiMzBmZmQ5NWIxYTQ1M2Iz
NzhhYzVmLi4zZmNjY2E1YjI0NmU3MGMzNjBkNjk0NmUzZjNjODg3YzZlM2JlOWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMDYsNiArMTA2LDggQEAKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkJpbmRpbmdzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQmxv
Yi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNhY2hlLmgnLAorICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ29sb3JDaG9vc2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29t
bW9uV29ya2VyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRp
b25VbmRlcmxpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9yLmgn
LApAQCAtMzcwLDYgKzM3Miw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9DQ1RocmVhZEltcGwu
aCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9DaHJvbWVDbGllbnRJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMv
Q29sb3JDaG9vc2VyUHJveHkuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0NvbG9yQ2hvb3Nl
clByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1DdXJyZW50VGltZS5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1PU1JhbmRvbVNvdXJjZS5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1UaHJlYWRpbmcuY3BwJywKQEAgLTQ4MSw2ICs0ODUs
OCBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViQmxvYkRhdGEuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJDb2xvci5j
cHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAn
LAorICAgICAgICAgICAgICAgICdzcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5oJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViQ29tcG9zaXRvckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0
b3JJbXBsLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5n
eXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDBlYjlkZTk5
YWU4NTA0YThiOGM0ZDhhYmY4MTIxNGU1MTA4YmU0MWYuLjM4N2U0NjAyYmNhOTIyN2VmMzEyNTk0
MWQ2OTUyNmM3YTM1MzI0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAg
LTUzLDYgKzUzLDcgQEAKICAgICAgICdFTkFCTEVfR0VTVFVSRV9SRUNPR05JWkVSPTEnLAogICAg
ICAgJ0VOQUJMRV9JQ09OREFUQUJBU0U9MCcsCiAgICAgICAnRU5BQkxFX0lOREVYRURfREFUQUJB
U0U9MScsCisgICAgICAnRU5BQkxFX0lOUFVUX0NPTE9SPTAnLAogICAgICAgJ0VOQUJMRV9JTlBV
VF9TUEVFQ0g9MScsCiAgICAgICAnRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I9MCcsCiAgICAgICAn
RU5BQkxFX0lOUFVUX1RZUEVfREFURT0wJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29sb3JDaG9vc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3ZjY2ZTY3OWYwZWQ1MGY3ODdj
ZjMwMmVhMzE4YjEwM2VjNWMxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3Nlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYkNvbG9yQ2hvb3Nlcl9oCisjZGVmaW5lIFdlYkNvbG9yQ2hvb3Nlcl9oCisKKyNp
bmNsdWRlICJwbGF0Zm9ybS9XZWJDb2xvci5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNvbW1v
bi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhpcyByZXByZXNlbnRzIGEgY29sb3Ig
Y2hvb3Nlci4KK2NsYXNzIFdlYkNvbG9yQ2hvb3NlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
V2ViQ29sb3JDaG9vc2VyKCkgeyB9CisKKyAgICAvLyBTZXQgc2VsZWN0ZWQgY29sb3IgaW4gdGhl
IGNvbG9yIGNob29zZXIuCisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3Qg
V2ViQ29sb3IgY29sb3IpIHsgfQorCisgICAgLy8gQ2FsbGluZyB0aGlzIGVuZHMgdGhlIGNvbG9y
IGNob29zZXIgYW5kIHRoZSBjbGllbnQgd29uJ3QgYmUgcmVjaWV2aW5nCisgICAgLy8gZGlkQ2hv
b3NlQ29sb3IgY2FsbGJhY2tzIGFueW1vcmUuCisgICAgdmlydHVhbCB2b2lkIGVuZENob29zZXIo
KSB7IH0KK307CisKK30KKworI2VuZGlmIC8vIFdlYkNvbG9yQ2hvb3Nlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29zZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbG9yQ2hvb3NlckNsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE4MGE5ODRjNzA3MGJiOGZlZGNlYWI4NTY4YTk2ZmYwNDYzZTQzMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb2xvckNob29z
ZXJDbGllbnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29z
ZXJDbGllbnRfaAorI2RlZmluZSBXZWJDb2xvckNob29zZXJDbGllbnRfaAorCisjaW5jbHVkZSAi
cGxhdGZvcm0vV2ViQ29sb3IuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFJlY2VpdmVzIGNhbGxzIGZyb20gV2ViQ29sb3JDaG9v
c2VyIGFuZCBwYXNzZXMgaXQgdG8gdGhlIFdlYkNvcmUgc2lkZS4KK2NsYXNzIFdlYkNvbG9yQ2hv
b3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29sb3JDaG9vc2VyQ2xpZW50
KCkgeyB9CisKKyAgICAvLyBDYWxsZWQgd2hlbiB1c2VyIHNlbGVjdHMgYSBjb2xvciBpbiB0aGUg
Y29sb3IgY2hvb3Nlci4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2Vi
Q29sb3ImKSB7IH0KKworICAgIC8vIENhbGxlZCB3aGVuIGNvbG9yIGNob29zZXIgaGFzIGVuZGVk
LgorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRDaG9vc2VyKCkgeyB9Cit9OworCit9CisKKyNlbmRp
ZiAvLyBXZWJDb2xvckNob29zZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDAzOWQ0OWRmMzdiNmQ2ZjM5MzBiOTVjNzhkNzUw
YjllMmIyZDNjNzYuLjVhNGQ0ZThlNDljM2Q3MmE2OGEwZWE4ZWVjZDQyMDI0ZWQ2NzhlMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTQx
LDExICs0MSwxNCBAQAogI2luY2x1ZGUgIldlYlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIldl
YlRleHREaXJlY3Rpb24uaCIKICNpbmNsdWRlICJXZWJXaWRnZXRDbGllbnQuaCIKKyNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJDb2xvci5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKK2Ns
YXNzIFdlYkNvbG9yQ2hvb3NlcjsKK2NsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudDsKIGNsYXNz
IFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBX
ZWJFbGVtZW50OwpAQCAtMTc3LDkgKzE4MCwxNSBAQCBwdWJsaWM6CiAgICAgLy8gaW5kaWNhdGlu
ZyB0aGF0IHRoZSBkZWZhdWx0IGFjdGlvbiBzaG91bGQgYmUgc3VwcHJlc3NlZC4KICAgICB2aXJ0
dWFsIGJvb2wgaGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKSB7IHJldHVybiBmYWxzZTsgfQog
Ci0KICAgICAvLyBEaWFsb2dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorICAgIC8vIFRoaXMgbWV0aG9kIG9wZW5zIHRoZSBj
b2xvciBjaG9vc2VyIGFuZCByZXR1cm5zIGEgbmV3IFdlYkNvbG9yQ2hvb3NlcgorICAgIC8vIGlu
c3RhbmNlLiBJZiB0aGVyZSBpcyBhIFdlYkNvbG9yQ2hvb3NlciBhbHJlYWR5IGZyb20gdGhlIGxh
c3QgdGltZSB0aGlzCisgICAgLy8gd2FzIGNhbGxlZCwgaXQgZW5kcyB0aGUgY29sb3IgY2hvb3Nl
ciBieSBjYWxsaW5nIGVuZENob29zZXIsIGFuZCByZXBsYWNlcworICAgIC8vIGl0IHdpdGggdGhl
IG5ldyBvbmUuCisgICAgdmlydHVhbCBXZWJDb2xvckNob29zZXIqIGNyZWF0ZUNvbG9yQ2hvb3Nl
cihXZWJDb2xvckNob29zZXJDbGllbnQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29sb3ImKSB7IHJldHVybiAwOyB9CisKICAgICAv
LyBUaGlzIG1ldGhvZCByZXR1cm5zIGltbWVkaWF0ZWx5IGFmdGVyIHNob3dpbmcgdGhlIGRpYWxv
Zy4gV2hlbiB0aGUKICAgICAvLyBkaWFsb2cgaXMgY2xvc2VkLCBpdCBzaG91bGQgY2FsbCB0aGUg
V2ViRmlsZUNob29zZXJDb21wbGV0aW9uIHRvCiAgICAgLy8gcGFzcyB0aGUgcmVzdWx0cyBvZiB0
aGUgZGlhbG9nLiBSZXR1cm5zIGZhbHNlIGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDdkZGJmYWMzNTE0ZWEwYjg1YmNlNWZjNDA0
Y2Q1ZGViNTU0Y2JhZjQuLjZiYTgzNjY3N2RmODI4MjI5MzQ1ZTQwMmMzNmIyZGYzOWQ3OWM0YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CkBAIC0zNCw2ICszNCwxMSBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisjaW5j
bHVkZSAiQ29sb3JDaG9vc2VyLmgiCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyQ2xpZW50LmgiCisj
aW5jbHVkZSAiQ29sb3JDaG9vc2VyUHJveHkuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkNvbnNvbGUu
aCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKQEAg
LTY4LDYgKzczLDEwIEBACiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2VuZGlmCiAjaW5jbHVkZSAi
V2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKyNpbmNs
dWRlICJXZWJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsLmgiCisjZW5kaWYKICNpbmNsdWRlICJXZWJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUg
IldlYkN1cnNvckluZm8uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBs
LmgiCkBAIC02NzUsNiArNjg0LDIxIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0CiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCitQYXNzT3du
UHRyPENvbG9yQ2hvb3Nlcj4gQ2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENv
bG9yQ2hvb3NlckNsaWVudCogY2hvb3NlckNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xv
cikKK3sKKyAgICBXZWJWaWV3Q2xpZW50KiBjbGllbnQgPSBtX3dlYlZpZXctPmNsaWVudCgpOwor
ICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBXZWJDb2xvckNo
b29zZXJDbGllbnRJbXBsKiBjaG9vc2VyQ2xpZW50UHJveHkgPSBuZXcgV2ViQ29sb3JDaG9vc2Vy
Q2xpZW50SW1wbChjaG9vc2VyQ2xpZW50KTsKKyAgICBXZWJDb2xvciB3ZWJDb2xvciA9IHN0YXRp
Y19jYXN0PFdlYkNvbG9yPihpbml0aWFsQ29sb3IucmdiKCkpOworICAgIFdlYkNvbG9yQ2hvb3Nl
ciogY2hvb3NlciA9IGNsaWVudC0+Y3JlYXRlQ29sb3JDaG9vc2VyKGNob29zZXJDbGllbnRQcm94
eSwgd2ViQ29sb3IpOworICAgIGlmICghY2hvb3NlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDb2xvckNob29zZXJQcm94eShhZG9wdFB0cihjaG9v
c2VyKSkpOworfQorI2VuZGlmCisKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cnVuT3BlblBhbmVs
KEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7CiAg
ICAgV2ViVmlld0NsaWVudCogY2xpZW50ID0gbV93ZWJWaWV3LT5jbGllbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCAxY2ExMjk0NTUx
ZDEyM2U5NTY3OTEwMmRlZjBiM2RiYzMyZDhjMzEzLi4yMTEzZWMxYWY0ZjgxZDdkMTliZWNhNjUx
ODczMjMyMTc3YWM0N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oCkBAIC0zOCw2ICszOCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKK2NsYXNz
IENvbG9yQ2hvb3NlcjsKK2NsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKKyNlbmRpZgogY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIEZpbGVDaG9vc2VyOwogY2xhc3MgUG9wdXBDb250YWluZXI7CkBAIC0x
MzQsNiArMTM4LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJo
YW5nQXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgY2Fu
Y2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwg
V2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisgICAgdmly
dHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZF
UlJJREU7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZy
YW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwogICAgIHZpcnR1YWwgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpG
aWxlSWNvbkxvYWRlciopOwogI2lmIEVOQUJMRShESVJFQ1RPUllfVVBMT0FEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRhZTFiMTI3ZDY2MzVjYjdkODVlZTMzMzg5YzU3ODA4MWNkMmJhOTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJQcm94eS5jcHAKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb2xv
ckNob29zZXJQcm94eS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJXZWJDb2xv
ckNob29zZXIuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDb2xvci5oIgorCisjaWYgRU5BQkxF
KElOUFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29sb3JDaG9vc2VyUHJveHk6
OkNvbG9yQ2hvb3NlclByb3h5KFBhc3NPd25QdHI8V2ViQ29sb3JDaG9vc2VyPiBjaG9vc2VyKSA6
IG1fY2hvb3NlcihjaG9vc2VyKQoreworfQorCitDb2xvckNob29zZXJQcm94eTo6fkNvbG9yQ2hv
b3NlclByb3h5KCkKK3sKK30KKwordm9pZCBDb2xvckNob29zZXJQcm94eTo6c2V0U2VsZWN0ZWRD
b2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX2Nob29zZXIp
CisgICAgICAgIHJldHVybjsKKyAgICBXZWJDb2xvciB3ZWJDb2xvciA9IHN0YXRpY19jYXN0PFdl
YkNvbG9yPihjb2xvci5yZ2IoKSk7CisgICAgbV9jaG9vc2VyLT5zZXRTZWxlY3RlZENvbG9yKHdl
YkNvbG9yKTsKK30KKwordm9pZCBDb2xvckNob29zZXJQcm94eTo6ZW5kQ2hvb3NlcigpCit7Cisg
ICAgaWYgKCFtX2Nob29zZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Nob29zZXItPmVuZENo
b29zZXIoKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTZhOTk4MGYyOGQ5OTJhZDY5ODBmNDMwYTgwZTJhOWVmYWJhODFlMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclByb3h5LmgKQEAgLTAs
MCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29sb3JDaG9vc2VyUHJveHlfaAorI2RlZmluZSBD
b2xvckNob29zZXJQcm94eV9oCisKKyNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRl
ICJXZWJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIENvbG9yQ2hvb3NlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkNv
bG9yQ2hvb3NlciB7CitwdWJsaWM6CisgICAgQ29sb3JDaG9vc2VyUHJveHkoUGFzc093blB0cjxX
ZWJDb2xvckNob29zZXI+KTsKKyAgICB2aXJ0dWFsIH5Db2xvckNob29zZXJQcm94eSgpOworCisg
ICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpOworCitwcml2YXRlOgorICAgIE93blB0cjxX
ZWJDb2xvckNob29zZXI+IG1fY2hvb3NlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQorCisjZW5kaWYgLy8gQ29sb3JDaG9vc2Vy
UHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29sb3JD
aG9vc2VyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb2xv
ckNob29zZXJDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGY4ZTY5YTRmZjRkNzljZWZhYTY5
MjEzMTZlNWU3MWFkZTdkZTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb2xvckNob29zZXJDbGll
bnRJbXBsLmgiCisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkNvbG9yQ2hvb3NlckNs
aWVudC5oIgorCisjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbDo6V2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbChX
ZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpCit7
Cit9CisKK1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGw6On5XZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsKCkKK3sKK30KKwordm9pZCBXZWJDb2xvckNob29zZXJDbGllbnRJbXBsOjpkaWRDaG9vc2VD
b2xvcihjb25zdCBXZWJDb2xvciYgY29sb3IpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvcihz
dGF0aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KGNvbG9yKSkpOworfQorCit2b2lkIFdlYkNvbG9y
Q2hvb3NlckNsaWVudEltcGw6OmRpZEVuZENob29zZXIoKQoreworICAgIGlmICghbV9jbGllbnQp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+ZGlkRW5kQ2hvb3NlcigpOworfQorCit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb2xvckNob29zZXJDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmY3MzVkODlkODVkMjY5ZjA4NDBmYTU3YTI4MDRmZDE4ZDExMWM5NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbG9yQ2hvb3NlckNsaWVudEltcGwu
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb2xvckNob29zZXJDbGllbnRJ
bXBsX2gKKyNkZWZpbmUgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbF9oCisKKyNpbmNsdWRlICJX
ZWJDb2xvckNob29zZXJDbGllbnQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50OworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbCA6IHB1YmxpYyBX
ZWJDb2xvckNob29zZXJDbGllbnQgeworcHVibGljOgorICAgIFdlYkNvbG9yQ2hvb3NlckNsaWVu
dEltcGwoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50Kik7CisgICAgdmlydHVhbCB+V2ViQ29s
b3JDaG9vc2VyQ2xpZW50SW1wbCgpOworCisgICAgdmlydHVhbCB2b2lkIGRpZENob29zZUNvbG9y
KGNvbnN0IFdlYkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZENob29z
ZXIoKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjpDb2xvckNob29zZXJDbGll
bnQqIG1fY2xpZW50OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQor
CisjZW5kaWYgLy8gV2ViQ29sb3JDaG9vc2VyQ2xpZW50SW1wbF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>