<?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>86215</bug_id>
          
          <creation_ts>2012-05-11 07:10:26 -0700</creation_ts>
          <short_desc>[chromium] MediaStream API: Moving the mock create* WebRTC calls into a shadow Platform class</short_desc>
          <delta_ts>2012-07-19 00:36:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>61069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>621610</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-11 07:10:26 -0700</bug_when>
    <thetext>This is patch #1 of 3 to make most of the WebRTC code testable in DumpRenderTree.

This patch moves the WebRTC Platform createXXX calls into a factory.
The second patch (in chromium) will add a setMockWebRTCFactory call to TestWebKitPlatformSupport.
And the third patch will then create a Mock factory that will return Mock objects.

All Mock code will be chromium specific, but I will be very happy working with the next port that enables WebRTC to make as much as possible generic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621623</commentid>
    <comment_count>1</comment_count>
      <attachid>141412</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-11 07:17:14 -0700</bug_when>
    <thetext>Created attachment 141412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621625</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-11 07:20:13 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621689</commentid>
    <comment_count>3</comment_count>
      <attachid>141428</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-11 09:21:00 -0700</bug_when>
    <thetext>Created attachment 141428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621736</commentid>
    <comment_count>4</comment_count>
      <attachid>141428</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 10:00:12 -0700</bug_when>
    <thetext>Comment on attachment 141428
Patch

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

&gt; Source/Platform/chromium/public/Platform.h:300
&gt; +    virtual WebWebRTCFactory* webRTCFactory() { return 0; }

WebWeb -&gt; so many Webs!

I don&apos;t understand why we need this lever of indirection.  Can&apos;t DumpRenderTree just override the virtual functions below without creating a separate factory object in the API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622764</commentid>
    <comment_count>5</comment_count>
      <attachid>141428</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-14 02:19:13 -0700</bug_when>
    <thetext>Comment on attachment 141428
Patch

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

&gt;&gt; Source/Platform/chromium/public/Platform.h:300
&gt;&gt; +    virtual WebWebRTCFactory* webRTCFactory() { return 0; }
&gt; 
&gt; WebWeb -&gt; so many Webs!
&gt; 
&gt; I don&apos;t understand why we need this lever of indirection.  Can&apos;t DumpRenderTree just override the virtual functions below without creating a separate factory object in the API?

Re name: What do you suggest? The name is a mouthful I agree and I thought a lot about it but eventually following the standard naming scheme won.

Unfortunately DRT can&apos;t override TestWebKitPlatformSupport since it is created in the Chromium code base: http://src.chromium.org/viewvc/chrome/trunk/src/webkit/support/webkit_support.cc , line 149
Instead of adding three setMock* functions I refactored everything to use a factory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623110</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-14 10:58:27 -0700</bug_when>
    <thetext>I recommend solving the problem on the embedder&apos;s side of the interface.  The Chromium code should let DRT override TestWebKitPlatformSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623895</commentid>
    <comment_count>7</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-15 04:40:13 -0700</bug_when>
    <thetext>Agree that letting DRT overriding the test platform support class is the best approach but that opens up a gigantic can of worms. It seems that DRT is using a hacked/minimal version of the logging functionality tailored to get the current include files to compile and including e.g. test_webkit_platform_support.h from DumpRenderTree.cpp causes havoc. There&apos;s a fixme in DRT/chromium/config.h that says &quot;fix this&quot;...
I don&apos;t think I am the correct person to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624289</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-15 11:15:08 -0700</bug_when>
    <thetext>&gt; I don&apos;t think I am the correct person to do that.

Sounds like we need to unwind that hack.  Tony might have some ideas about the best approach.  Maybe we should add a mechanism to Assertions.h to disable LOG?  It might be the case that we can substitute the LOG from logging.h whenever folks are expecting LOG from Assertions.h...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624497</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-15 13:38:02 -0700</bug_when>
    <thetext>The hack mentioned in config.h may not be valid anymore.  Specifically, we shouldn&apos;t be including base/logging.h in webkit and I don&apos;t see it with a quick grep.  I think we just need to convert some Chromium style DCHECKs to WebKit style ASSERTs.

Rather than including test_webkit_platform_support.h directly, can you add functions to webkit_support.h that override the TestWebKitPlatformSupport features you need?  You could pass in a pointer to a TestWebKitPlatformSupport instance.  webkit_support.h (and webkit_support_gfx.h) is the API into chromium for DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625122</commentid>
    <comment_count>10</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-16 01:32:18 -0700</bug_when>
    <thetext>Yep, that was what this patch was in preparation for :)

Instead of adding three different factory objects to webkit_support.h, I have grouped together our three create* functions into one factory in preparation of adding a single function to  webkit_support.h. Since the three function actually need to create objects simple set* functions can&apos;t be used.

(In reply to comment #9)
&gt; Rather than including test_webkit_platform_support.h directly, can you add functions to webkit_support.h that override the TestWebKitPlatformSupport features you need?  You could pass in a pointer to a TestWebKitPlatformSupport instance.  webkit_support.h (and webkit_support_gfx.h) is the API into chromium for DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626167</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-16 19:46:15 -0700</bug_when>
    <thetext>I&apos;m sorry, I still don&apos;t think we should add this complexity to the API.  We should build a mechanism that lets DumpRenderTree override whichever of these virtual functions it wants.

The natural approach is for DumpRenderTree to subclass the implementation of this object in test_webkit_platform_support.h.  If we need to remove the fake implementation of logging.h in config.h, then that&apos;s what we need to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626658</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-17 09:59:10 -0700</bug_when>
    <thetext>Isn&apos;t test_webkit_platform_support.h only used by DRT and test_shell?  Tommy, can TestWebKitPlatformSupport always use the mock objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628857</commentid>
    <comment_count>13</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-05-21 01:10:32 -0700</bug_when>
    <thetext>It sure can, but I would like to place the mock objects themselves in DRT/chromium. That way any needed behaviour changes for tests can be done solely within WebKit.

(In reply to comment #12)
&gt; Isn&apos;t test_webkit_platform_support.h only used by DRT and test_shell?  Tommy, can TestWebKitPlatformSupport always use the mock objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657523</commentid>
    <comment_count>14</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-06-26 05:13:39 -0700</bug_when>
    <thetext>Any ideas how to progress with this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657756</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-26 11:10:41 -0700</bug_when>
    <thetext>IMHO, we should add the ability for DRT to subclass TestWebKitPlatformSupport in order to replace these virtual functions with mock implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664817</commentid>
    <comment_count>16</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-09 05:28:47 -0700</bug_when>
    <thetext>To make this work I needed to &quot;enhance&quot; the macros since they were actually unused and not working.

The chromium patch to make this possible is here: http://codereview.chromium.org/10703114/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665884</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-10 11:01:21 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; IMHO, we should add the ability for DRT to subclass TestWebKitPlatformSupport in order to replace these virtual functions with mock implementations.

I don&apos;t think this is going to work.  If we #include test_webkit_platform_support.h in DRT, we&apos;re going to end up depending on everything that TestWebKitPlatformSupport #includes.  This is a lot of implementation files:
http://git.chromium.org/gitweb/?p=chromium/chromium.git;a=blob;f=webkit/support/test_webkit_platform_support.h;h=b5c78ad5d192e20dcf72b47cdd3f9d10cc5f97cf;hb=HEAD

Instead, we could have a DRT implementation of WebKitPlatformSupport that TestWebKitPlatformSupport includes an instance of.  TestWebKitPlatformSupport will first try to see if createXXX returns an object on the DRT implementation and if it&apos;s not, fall back to it&apos;s own code (or WebKitPlatformSupportImpl version).

Alternately, we could maybe add test interfaces to a DumpRenderTree/chromium/public directory and have TestWebKitPlatformSupport just call these directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665948</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-10 12:20:02 -0700</bug_when>
    <thetext>&gt; Instead, we could have a DRT implementation of WebKitPlatformSupport that TestWebKitPlatformSupport includes an instance of.  TestWebKitPlatformSupport will first try to see if createXXX returns an object on the DRT implementation and if it&apos;s not, fall back to it&apos;s own code (or WebKitPlatformSupportImpl version).

That sounds like a good approach, at least for functions that have a well-defined &quot;fail&quot; output.

&gt; Alternately, we could maybe add test interfaces to a DumpRenderTree/chromium/public directory and have TestWebKitPlatformSupport just call these directly.

Hum...  Can we try an approach that doesn&apos;t introduce more API first?  We should be able to do this using the WebKitPlatformSupport API itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665964</commentid>
    <comment_count>19</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-10 12:50:26 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; Instead, we could have a DRT implementation of WebKitPlatformSupport that TestWebKitPlatformSupport includes an instance of.  TestWebKitPlatformSupport will first try to see if createXXX returns an object on the DRT implementation and if it&apos;s not, fall back to it&apos;s own code (or WebKitPlatformSupportImpl version).
&gt; 
&gt; That sounds like a good approach, at least for functions that have a well-defined &quot;fail&quot; output.
&gt; 

I&apos;ll give this a try tomorrow. It is certainly sounds much cleaner than the current approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666629</commentid>
    <comment_count>20</comment_count>
      <attachid>151672</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-11 04:08:57 -0700</bug_when>
    <thetext>Created attachment 151672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666630</commentid>
    <comment_count>21</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-11 04:11:15 -0700</bug_when>
    <thetext>Here&apos;s roughly how the functionality in Chromium bug 10703114 would be implemented in DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671079</commentid>
    <comment_count>22</comment_count>
      <attachid>152714</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-17 01:25:30 -0700</bug_when>
    <thetext>Created attachment 152714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671324</commentid>
    <comment_count>23</comment_count>
      <attachid>152714</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-07-17 09:36:28 -0700</bug_when>
    <thetext>Comment on attachment 152714
Patch

LGTM, but I&apos;ll let Adam make the final call.  Adam has been moving many of the DRT mocks into TestRunner.  It&apos;s not clear to me how we want to share this with content_shell, but we can deal with that in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671400</commentid>
    <comment_count>24</comment_count>
      <attachid>152714</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 11:00:44 -0700</bug_when>
    <thetext>Comment on attachment 152714
Patch

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

&gt; Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h:40
&gt; +    virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) OVERRIDE;

Are we sure we want to override this function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672081</commentid>
    <comment_count>25</comment_count>
      <attachid>152714</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-18 00:33:17 -0700</bug_when>
    <thetext>Comment on attachment 152714
Patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h:40
&gt;&gt; +    virtual void cryptographicallyRandomValues(unsigned char* buffer, size_t length) OVERRIDE;
&gt; 
&gt; Are we sure we want to override this function?

Yes, it is pure virtual in WebKit::Platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672085</commentid>
    <comment_count>26</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-18 00:36:06 -0700</bug_when>
    <thetext>Right now I don&apos;t need any other intergration than just to be able to create mock versions of WebMediaStreamCenter and WebPeerConnection00Handler (or the next version currently cooking).

(In reply to comment #23)
&gt; (From update of attachment 152714 [details])
&gt; LGTM, but I&apos;ll let Adam make the final call.  Adam has been moving many of the DRT mocks into TestRunner.  It&apos;s not clear to me how we want to share this with content_shell, but we can deal with that in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672459</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 09:56:23 -0700</bug_when>
    <thetext>Ok.  Let&apos;s add a CRASH() to cryptographicallyRandomValues to make sure we don&apos;t ever call it.  The reason it&apos;s pure virtual is to make sure folks provide an implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672463</commentid>
    <comment_count>28</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 09:58:25 -0700</bug_when>
    <thetext>Yeah, jochen and I need to figure out what our story is with mocks in ContentShell.  We certainly don&apos;t need to block this patch on that issue, however.  I&apos;ll update the patch with the CRASH to save Tommy the timezone round-trip.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672484</commentid>
    <comment_count>29</comment_count>
      <attachid>153036</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 10:19:32 -0700</bug_when>
    <thetext>Created attachment 153036
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672508</commentid>
    <comment_count>30</comment_count>
      <attachid>153036</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 10:38:33 -0700</bug_when>
    <thetext>Comment on attachment 153036
Patch for landing

Rejecting attachment 153036 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:
ools/DumpRenderTree/chromium/MockWebKitPlatformSupport.o
Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: In member function &apos;virtual void MockWebKitPlatformSupport::cryptographicallyRandomValues(unsigned char*, size_t)&apos;:
Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp:47: error: &apos;CRASH&apos; was not declared in this scope
make: *** [out/Debug/obj.target/DumpRenderTree/Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/13280553</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672517</commentid>
    <comment_count>31</comment_count>
      <attachid>153042</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-18 10:44:50 -0700</bug_when>
    <thetext>Created attachment 153042
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672574</commentid>
    <comment_count>32</comment_count>
      <attachid>153042</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 11:34:29 -0700</bug_when>
    <thetext>Comment on attachment 153042
Patch for landing

Clearing flags on attachment: 153042

Committed r122995: &lt;http://trac.webkit.org/changeset/122995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672576</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 11:34:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673252</commentid>
    <comment_count>34</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-07-19 00:36:09 -0700</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141412</attachid>
            <date>2012-05-11 07:17:14 -0700</date>
            <delta_ts>2012-05-11 09:20:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86215-20120511161712.patch</filename>
            <type>text/plain</type>
            <size>11982</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2MjdjN2UwZmY3MWM1
ZTVmMTdhMzk0NTU0NzNkYjNkY2E1NDcxMTA4Li4yOTgxM2E4OTk1ZDRmMWFlMmQ1NjU2NTg1OWI5
YjcwZmI1OTQ2NjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNS0xMSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21p
dW1dIE1lZGlhU3RyZWFtIEFQSTogTW92aW5nIHRoZSBQbGF0Zm9ybSBjcmVhdGUqIFdlYlJUQyBj
YWxscyBpbnRvIGEgZmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIGlzIHBhdGNoICMxIG9mIDMgdG8gbWFrZSBtb3N0IG9mIHRoZSBXZWJS
VEMgY29kZSB0ZXN0YWJsZSBpbiBEdW1wUmVuZGVyVHJlZSBhbmQKKyAgICAgICAgbW92ZXMgdGhl
IFdlYlJUQyBQbGF0Zm9ybSBjcmVhdGVYWFggY2FsbHMgaW50byBhIGZhY3RvcnkuCisgICAgICAg
IFRoZSBzZWNvbmQgcGF0Y2ggKGluIGNocm9taXVtKSB3aWxsIGFkZCBhIHNldE1vY2tXZWJSVENG
YWN0b3J5IGNhbGwgdG8gVGVzdFdlYktpdFBsYXRmb3JtU3VwcG9ydC4KKyAgICAgICAgQW5kIHRo
ZSB0aGlyZCBwYXRjaCB3aWxsIHRoZW4gY3JlYXRlIGEgTW9jayBmYWN0b3J5IHRoYXQgd2lsbCBy
ZXR1cm4gTW9jayBvYmplY3RzLgorCisgICAgICAgIEFsbCBNb2NrIGNvZGUgd2lsbCBiZSBjaHJv
bWl1bSBzcGVjaWZpYywgYnV0IEkgd2lsbCBiZSB2ZXJ5IGhhcHB5IHdvcmtpbmcgd2l0aCB0aGUg
bmV4dCBwb3J0CisgICAgICAgIHRoYXQgZW5hYmxlcyBXZWJSVEMgdG8gbWFrZSBhcyBtdWNoIGFz
IHBvc3NpYmxlIGdlbmVyaWMuCisKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0u
aDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtOjp3ZWJSVENG
YWN0b3J5KToKKyAgICAgICAgKFBsYXRmb3JtKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMv
V2ViV2ViUlRDRmFjdG9yeS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJXZWJSVENGYWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2ViUlRDRmFjdG9yeTo6fldl
YldlYlJUQ0ZhY3RvcnkpOgorCiAyMDEyLTA1LTEwICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSBXRUJLSVRfVVNJTkdfU0tJ
QSBpZmRlZnMgdGhhdCBhcmUgYWx3YXlzIHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYmExNGU4YjFhYWQ3
ZDc5N2FjOTExMDY1ZmEyNDZkYmExMWM1ZDgzLi42MWYyNzVhOGZmOTczYzZmOGFhNjRhNGQ1NDIz
ZGRjMjAwMDBhMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDUtMTEgIFRv
bW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVt
XSBNZWRpYVN0cmVhbSBBUEk6IE1vdmluZyB0aGUgUGxhdGZvcm0gY3JlYXRlKiBXZWJSVEMgY2Fs
bHMgaW50byBhIGZhY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyBwYXRjaCAjMSBvZiAzIHRvIG1ha2UgbW9zdCBvZiB0aGUgV2ViUlRD
IGNvZGUgdGVzdGFibGUgaW4gRHVtcFJlbmRlclRyZWUgYW5kCisgICAgICAgIG1vdmVzIHRoZSBX
ZWJSVEMgUGxhdGZvcm0gY3JlYXRlWFhYIGNhbGxzIGludG8gYSBmYWN0b3J5LgorICAgICAgICBU
aGUgc2Vjb25kIHBhdGNoIChpbiBjaHJvbWl1bSkgd2lsbCBhZGQgYSBzZXRNb2NrV2ViUlRDRmFj
dG9yeSBjYWxsIHRvIFRlc3RXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuCisgICAgICAgIEFuZCB0aGUg
dGhpcmQgcGF0Y2ggd2lsbCB0aGVuIGNyZWF0ZSBhIE1vY2sgZmFjdG9yeSB0aGF0IHdpbGwgcmV0
dXJuIE1vY2sgb2JqZWN0cy4KKworICAgICAgICBBbGwgTW9jayBjb2RlIHdpbGwgYmUgY2hyb21p
dW0gc3BlY2lmaWMsIGJ1dCBJIHdpbGwgYmUgdmVyeSBoYXBweSB3b3JraW5nIHdpdGggdGhlIG5l
eHQgcG9ydAorICAgICAgICB0aGF0IGVuYWJsZXMgV2ViUlRDIHRvIG1ha2UgYXMgbXVjaCBhcyBw
b3NzaWJsZSBnZW5lcmljLgorCisgICAgICAgIE5vdCB0ZXN0YWJsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJJbnRlcm5hbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkUGVlckNvbm5lY3Rp
b25IYW5kbGVySW50ZXJuYWw6OkRlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5h
bCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1D
ZW50ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlckNo
cm9taXVtOjpNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWw6OlBlZXJD
b25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwpOgorCiAyMDEyLTA1LTExICBLZWlzaGkgSGF0dG9y
aSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNhbml0aXphdGlvbiBhbGdvcml0aG0g
Zm9yIGlucHV0IHR5cGU9ZW1haWwgc2hvdWxkIHN0cmlwIHdoaXRlc3BhY2VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKaW5kZXggNmU1ODYxYjIwYTM3ZmY2ZTE3
ZTgwYTcyNzg5OWU1YjJjNmFhYTAwNC4uZmFlMTg1MzFhNmNlNzJhZGZhMWFlOTRmNmYwNjBjMzg5
ZTZhYmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0
Zm9ybS5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApA
QCAtNTMsNiArNTMsNyBAQCBjbGFzcyBXZWJVUkw7CiBjbGFzcyBXZWJVUkxMb2FkZXI7CiBjbGFz
cyBXZWJTb2NrZXRTdHJlYW1IYW5kbGU7CiBjbGFzcyBXZWJUaHJlYWQ7CitjbGFzcyBXZWJXZWJS
VENGYWN0b3J5OwogCiBjbGFzcyBQbGF0Zm9ybSB7CiBwdWJsaWM6CkBAIC0yOTYsMTYgKzI5Nywy
MCBAQCBwdWJsaWM6CiAKICAgICAvLyBXZWJSVEMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCisgICAgdmlydHVhbCBXZWJXZWJSVENG
YWN0b3J5KiB3ZWJSVENGYWN0b3J5KCkgeyByZXR1cm4gMDsgfQorCiAgICAgLy8gREVQUkVDQVRF
RAogICAgIC8vIENyZWF0ZXMgYW4gV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyIGZvciBEZXByZWNh
dGVkUGVlckNvbm5lY3Rpb24uCiAgICAgLy8gTWF5IHJldHVybiBudWxsIGlmIFdlYlJUQyBmdW5j
dGlvbmFsaXR5IGlzIG5vdCBhdmFsaWFibGUgb3Igb3V0IG9mIHJlc291cmNlcy4KICAgICB2aXJ0
dWFsIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlciogY3JlYXRlUGVlckNvbm5lY3Rpb25IYW5kbGVy
KFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCopIHsgcmV0dXJuIDA7IH0KIAorICAgIC8v
IERFUFJFQ0FURUQKICAgICAvLyBDcmVhdGVzIGFuIFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVy
IGZvciBQZWVyQ29ubmVjdGlvbjAwLgogICAgIC8vIFRoaXMgaXMgYW4gaGlnaGx5IGV4cGVyaW1l
bnRhbCBmZWF0dXJlIG5vdCB5ZXQgaW4gdGhlIFdlYlJUQyBzdGFuZGFyZC4KICAgICAvLyBNYXkg
cmV0dXJuIG51bGwgaWYgV2ViUlRDIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2YWxpYWJsZSBvciBv
dXQgb2YgcmVzb3VyY2VzLgogICAgIHZpcnR1YWwgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIq
IGNyZWF0ZVBlZXJDb25uZWN0aW9uMDBIYW5kbGVyKFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVy
Q2xpZW50KikgeyByZXR1cm4gMDsgfQogCisgICAgLy8gREVQUkVDQVRFRAogICAgIC8vIE1heSBy
ZXR1cm4gbnVsbCBpZiBXZWJSVEMgZnVuY3Rpb25hbGl0eSBpcyBub3QgYXZhbGlhYmxlIG9yIG91
dCBvZiByZXNvdXJjZXMuCiAgICAgdmlydHVhbCBXZWJNZWRpYVN0cmVhbUNlbnRlciogY3JlYXRl
TWVkaWFTdHJlYW1DZW50ZXIoV2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQqKSB7IHJldHVybiAw
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViV2Vi
UlRDRmFjdG9yeS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJXZWJSVENG
YWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWJiNzU4ZTdiOGZiZTJjNTc5NWZjYTIxZTQwYjlmYzBlNWU0
MWUxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViV2ViUlRDRmFjdG9yeS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
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
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYldlYlJUQ0ZhY3Rv
cnlfaAorI2RlZmluZSBXZWJXZWJSVENGYWN0b3J5X2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcjsK
K2NsYXNzIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKK2NsYXNzIFdlYlBlZXJDb25u
ZWN0aW9uMDBIYW5kbGVyOworY2xhc3MgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQ7
CitjbGFzcyBXZWJNZWRpYVN0cmVhbUNlbnRlcjsKK2NsYXNzIFdlYk1lZGlhU3RyZWFtQ2VudGVy
Q2xpZW50OworCitjbGFzcyBXZWJXZWJSVENGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5XZWJXZWJSVENGYWN0b3J5KCkgeyB9CisKKyAgICAvLyBERVBSRUNBVEVECisgICAgLy8gQ3Jl
YXRlcyBhbiBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIgZm9yIERlcHJlY2F0ZWRQZWVyQ29ubmVj
dGlvbi4KKyAgICAvLyBNYXkgcmV0dXJuIG51bGwgaWYgV2ViUlRDIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWxpYWJsZSBvciBvdXQgb2YgcmVzb3VyY2VzLgorICAgIHZpcnR1YWwgV2ViUGVlckNv
bm5lY3Rpb25IYW5kbGVyKiBjcmVhdGVQZWVyQ29ubmVjdGlvbkhhbmRsZXIoV2ViUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50KikgPSAwOworCisgICAgLy8gQ3JlYXRlcyBhbiBXZWJQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlciBmb3IgUGVlckNvbm5lY3Rpb24wMC4KKyAgICAvLyBUaGlzIGlzIGFu
IGhpZ2hseSBleHBlcmltZW50YWwgZmVhdHVyZSBub3QgeWV0IGluIHRoZSBXZWJSVEMgc3RhbmRh
cmQuCisgICAgLy8gTWF5IHJldHVybiBudWxsIGlmIFdlYlJUQyBmdW5jdGlvbmFsaXR5IGlzIG5v
dCBhdmFsaWFibGUgb3Igb3V0IG9mIHJlc291cmNlcy4KKyAgICB2aXJ0dWFsIFdlYlBlZXJDb25u
ZWN0aW9uMDBIYW5kbGVyKiBjcmVhdGVQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcihXZWJQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlckNsaWVudCopID0gMDsKKworICAgIC8vIE1heSByZXR1cm4gbnVsbCBp
ZiBXZWJSVEMgZnVuY3Rpb25hbGl0eSBpcyBub3QgYXZhbGlhYmxlIG9yIG91dCBvZiByZXNvdXJj
ZXMuCisgICAgdmlydHVhbCBXZWJNZWRpYVN0cmVhbUNlbnRlciogY3JlYXRlTWVkaWFTdHJlYW1D
ZW50ZXIoV2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQqKSA9IDA7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYldlYlJUQ0ZhY3RvcnlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vRGVwcmVjYXRlZFBl
ZXJDb25uZWN0aW9uSGFuZGxlckludGVybmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRl
cm5hbC5jcHAKaW5kZXggZDVlOTYzODExZTQ2NmVlMjhmNTA1YmJhM2M3YjA3NmFjMWQ1Y2NmNS4u
ODE1NzM1MmYyOTY3YWRjOTc1ZjExMmNjNzE0NDhmMDNmMTU5NjRlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vRGVwcmVjYXRlZFBlZXJD
b25uZWN0aW9uSGFuZGxlckludGVybmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb25IYW5kbGVySW50
ZXJuYWwuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg+
CisjaW5jbHVkZSA8cHVibGljL1dlYldlYlJUQ0ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NywxMCArNDgsMTUgQEAgRGVw
cmVjYXRlZFBlZXJDb25uZWN0aW9uSGFuZGxlckludGVybmFsOjpEZXByZWNhdGVkUGVlckNvbm5l
Y3Rpb25IYW5kbGVySW50ZXJuYWwKICAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKICAgICBBU1NF
UlQobV9jbGllbnQpOwotICAgIG1fd2ViSGFuZGxlciA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+Y3JlYXRlUGVlckNvbm5lY3Rpb25IYW5kbGVyKHRoaXMpKTsKKworICAg
IFdlYktpdDo6V2ViV2ViUlRDRmFjdG9yeSogZmFjdG9yeSA9IFdlYktpdDo6UGxhdGZvcm06OmN1
cnJlbnQoKS0+d2ViUlRDRmFjdG9yeSgpOworICAgIGlmIChmYWN0b3J5KQorICAgICAgICBtX3dl
YkhhbmRsZXIgPSBhZG9wdFB0cihmYWN0b3J5LT5jcmVhdGVQZWVyQ29ubmVjdGlvbkhhbmRsZXIo
dGhpcykpOworICAgIGVsc2UKKyAgICAgICAgbV93ZWJIYW5kbGVyID0gYWRvcHRQdHIoV2ViS2l0
OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVQZWVyQ29ubmVjdGlvbkhhbmRsZXIodGhpcykp
OworCiAgICAgLy8gRklYTUU6IFdoZW4gdGhlcmUgaXMgc29tZSBlcnJvciByZXBvcnRpbmcgYXZh
bGlhYmxlIGluIHRoZSBQZWVyQ29ubmVjdGlvbiBvYmplY3QgcmVwb3J0CiAgICAgLy8gaWYgd2Ug
ZGlkbid0IGdldCBhIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlciBpbnN0YW5jZS4KLQogICAgIGlm
IChtX3dlYkhhbmRsZXIpCiAgICAgICAgIG1fd2ViSGFuZGxlci0+aW5pdGlhbGl6ZShzZXJ2ZXJD
b25maWd1cmF0aW9uLCB1c2VybmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3Ry
ZWFtQ2VudGVyQ2hyb21pdW0uY3BwCmluZGV4IDEzMTdkMmQ4MzdhN2Y5OTE2OTYzMmJiMTIxMDI5
ZDEzNjJmYzBlOWYuLmU4YTQ4YTQzOGZiMzIwYTg0MzE4ZjIzZDZiNTQzNzRiYmYxMzdmOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01l
ZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwCkBAIC00
NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbVNvdXJjZXNSZXF1ZXN0Lmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4KKyNpbmNsdWRl
IDxwdWJsaWMvV2ViV2ViUlRDRmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNTgsOCArNTksMTIgQEAgTWVkaWFT
dHJlYW1DZW50ZXImIE1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpCiB9CiAKIE1lZGlhU3Ry
ZWFtQ2VudGVyQ2hyb21pdW06Ok1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0oKQotICAgIDogbV9w
cml2YXRlKGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlTWVkaWFT
dHJlYW1DZW50ZXIodGhpcykpKQogeworICAgIFdlYktpdDo6V2ViV2ViUlRDRmFjdG9yeSogZmFj
dG9yeSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+d2ViUlRDRmFjdG9yeSgpOworICAg
IGlmIChmYWN0b3J5KQorICAgICAgICBtX3ByaXZhdGUgPSBhZG9wdFB0cihmYWN0b3J5LT5jcmVh
dGVNZWRpYVN0cmVhbUNlbnRlcih0aGlzKSk7CisgICAgZWxzZQorICAgICAgICBtX3ByaXZhdGUg
PSBhZG9wdFB0cihXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZU1lZGlhU3RyZWFt
Q2VudGVyKHRoaXMpKTsKIH0KIAogTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6fk1lZGlhU3Ry
ZWFtQ2VudGVyQ2hyb21pdW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVj
dGlvbjAwSGFuZGxlckludGVybmFsLmNwcAppbmRleCA1YTkwYmYxOGU5NTAxNWQyYmE2MGEzYTE1
Y2E1MDkxNzhhMDdmNGY4Li5mZDEwYmY0ZDVmMmZiMjA3MWE1ZGI3NDJiYjMxNmRhMWJjNGZhZTEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlcklu
dGVybmFsLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAw
SGFuZGxlckNsaWVudC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYldlYlJUQ0ZhY3RvcnkuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Niw3ICs1
NywxMyBAQCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsOjpQZWVyQ29ubmVjdGlvbjAw
SGFuZGxlckludGVybmFsKFBlZXJDb25uZWN0aW9uMAogICAgIDogbV9jbGllbnQoY2xpZW50KQog
ewogICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV93ZWJIYW5kbGVyID0gYWRvcHRQdHIoV2Vi
S2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcih0
aGlzKSk7CisKKyAgICBXZWJLaXQ6OldlYldlYlJUQ0ZhY3RvcnkqIGZhY3RvcnkgPSBXZWJLaXQ6
OlBsYXRmb3JtOjpjdXJyZW50KCktPndlYlJUQ0ZhY3RvcnkoKTsKKyAgICBpZiAoZmFjdG9yeSkK
KyAgICAgICAgbV93ZWJIYW5kbGVyID0gYWRvcHRQdHIoZmFjdG9yeS0+Y3JlYXRlUGVlckNvbm5l
Y3Rpb24wMEhhbmRsZXIodGhpcykpOworICAgIGVsc2UKKyAgICAgICAgbV93ZWJIYW5kbGVyID0g
YWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVQZWVyQ29ubmVjdGlv
bjAwSGFuZGxlcih0aGlzKSk7CisKICAgICAvLyBGSVhNRTogV2hlbiB0aGVyZSBpcyBzb21lIGVy
cm9yIHJlcG9ydGluZyBhdmFsaWFibGUgaW4gdGhlIFBlZXJDb25uZWN0aW9uIG9iamVjdCByZXBv
cnQKICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IGEgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIg
aW5zdGFuY2UuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141428</attachid>
            <date>2012-05-11 09:21:00 -0700</date>
            <delta_ts>2012-07-11 04:08:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86215-20120511182058.patch</filename>
            <type>text/plain</type>
            <size>12572</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA2MjdjN2UwZmY3MWM1
ZTVmMTdhMzk0NTU0NzNkYjNkY2E1NDcxMTA4Li43Y2JlOTdhOTU1MjVkMDE0Mzg4YTdiMTIyYjA0
ODA0Y2JjZGM3ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNS0xMSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21p
dW1dIE1lZGlhU3RyZWFtIEFQSTogTW92ZSB0aGUgUGxhdGZvcm0gY3JlYXRlKiBXZWJSVEMgY2Fs
bHMgaW50byBhIGZhY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyBwYXRjaCAjMSBvZiAzIHRvIG1ha2UgbW9zdCBvZiB0aGUgV2ViUlRD
IGNvZGUgdGVzdGFibGUgaW4gRHVtcFJlbmRlclRyZWUgYW5kCisgICAgICAgIG1vdmVzIHRoZSBX
ZWJSVEMgUGxhdGZvcm0gY3JlYXRlWFhYIGNhbGxzIGludG8gYSBmYWN0b3J5LgorICAgICAgICBU
aGUgc2Vjb25kIHBhdGNoIChpbiBjaHJvbWl1bSkgd2lsbCBhZGQgYSBzZXRNb2NrV2ViUlRDRmFj
dG9yeSBjYWxsIHRvIFRlc3RXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuCisgICAgICAgIEFuZCB0aGUg
dGhpcmQgcGF0Y2ggd2lsbCB0aGVuIGNyZWF0ZSBhIE1vY2sgZmFjdG9yeSB0aGF0IHdpbGwgcmV0
dXJuIE1vY2sgb2JqZWN0cy4KKworICAgICAgICBBbGwgTW9jayBjb2RlIHdpbGwgYmUgY2hyb21p
dW0gc3BlY2lmaWMsIGJ1dCBJIHdpbGwgYmUgdmVyeSBoYXBweSB3b3JraW5nIHdpdGggdGhlIG5l
eHQgcG9ydAorICAgICAgICB0aGF0IGVuYWJsZXMgV2ViUlRDIHRvIG1ha2UgYXMgbXVjaCBhcyBw
b3NzaWJsZSBnZW5lcmljLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybTo6d2ViUlRDRmFj
dG9yeSk6CisgICAgICAgIChQbGF0Zm9ybSk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dl
YldlYlJUQ0ZhY3RvcnkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
V2ViUlRDRmFjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OldlYldlYlJUQ0ZhY3Rvcnk6On5XZWJX
ZWJSVENGYWN0b3J5KToKKwogMjAxMi0wNS0xMCAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgV0VCS0lUX1VTSU5HX1NLSUEg
aWZkZWZzIHRoYXQgYXJlIGFsd2F5cyB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJhMTRlOGIxYWFkN2Q3
OTdhYzkxMTA2NWZhMjQ2ZGJhMTFjNWQ4My4uZDYyYjQ4MTRjYjgyYWRkYmIzOGYzMzhkYjk3ZmJj
YWFmMGE3YzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA1LTExICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0g
TWVkaWFTdHJlYW0gQVBJOiBNb3ZlIHRoZSBQbGF0Zm9ybSBjcmVhdGUqIFdlYlJUQyBjYWxscyBp
bnRvIGEgZmFjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODYyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIHBhdGNoICMxIG9mIDMgdG8gbWFrZSBtb3N0IG9mIHRoZSBXZWJSVEMgY29k
ZSB0ZXN0YWJsZSBpbiBEdW1wUmVuZGVyVHJlZSBhbmQKKyAgICAgICAgbW92ZXMgdGhlIFdlYlJU
QyBQbGF0Zm9ybSBjcmVhdGVYWFggY2FsbHMgaW50byBhIGZhY3RvcnkuCisgICAgICAgIFRoZSBz
ZWNvbmQgcGF0Y2ggKGluIGNocm9taXVtKSB3aWxsIGFkZCBhIHNldE1vY2tXZWJSVENGYWN0b3J5
IGNhbGwgdG8gVGVzdFdlYktpdFBsYXRmb3JtU3VwcG9ydC4KKyAgICAgICAgQW5kIHRoZSB0aGly
ZCBwYXRjaCB3aWxsIHRoZW4gY3JlYXRlIGEgTW9jayBmYWN0b3J5IHRoYXQgd2lsbCByZXR1cm4g
TW9jayBvYmplY3RzLgorCisgICAgICAgIEFsbCBNb2NrIGNvZGUgd2lsbCBiZSBjaHJvbWl1bSBz
cGVjaWZpYywgYnV0IEkgd2lsbCBiZSB2ZXJ5IGhhcHB5IHdvcmtpbmcgd2l0aCB0aGUgbmV4dCBw
b3J0CisgICAgICAgIHRoYXQgZW5hYmxlcyBXZWJSVEMgdG8gbWFrZSBhcyBtdWNoIGFzIHBvc3Np
YmxlIGdlbmVyaWMuCisKKyAgICAgICAgTm90IHRlc3RhYmxlLgorCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uSGFuZGxlcklu
dGVybmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhh
bmRsZXJJbnRlcm5hbDo6RGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uSGFuZGxlckludGVybmFsKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRl
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyQ2hyb21p
dW06Ok1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL2Nocm9taXVtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbDo6UGVlckNvbm5l
Y3Rpb24wMEhhbmRsZXJJbnRlcm5hbCk6CisKIDIwMTItMDUtMTEgIEtlaXNoaSBIYXR0b3JpICA8
a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2FuaXRpemF0aW9uIGFsZ29yaXRobSBmb3Ig
aW5wdXQgdHlwZT1lbWFpbCBzaG91bGQgc3RyaXAgd2hpdGVzcGFjZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5
cGkKaW5kZXggOWE4Mjc4YWNiNTIzYTlkYzAxNjBhNzM2YzM0ZjhlOTIwMzZmYmEwNi4uYTdkMDQ3
YWM2ZTg5Y2NhNzlmZmZjNTJiZmYzMjc0MDY1NzY1MDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1Bs
YXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkK
QEAgLTEwMiw2ICsxMDIsNyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJWZWN0
b3IuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWUuaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlZpZGVvRnJhbWVQcm92aWRlci5oJywKKyAg
ICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViV2ViUlRDRmFjdG9yeS5oJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9zcmMvUGxhdGZvcm0uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9z
cmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3NyYy9XZWJGbG9hdFF1
YWQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxh
dGZvcm0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAppbmRl
eCA2ZTU4NjFiMjBhMzdmZjZlMTdlODBhNzI3ODk5ZTViMmM2YWFhMDA0Li5mYWUxODUzMWE2Y2U3
MmFkZmExYWU5NGY2ZjA2MGMzODllNmFiZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9QbGF0Zm9ybS5oCkBAIC01Myw2ICs1Myw3IEBAIGNsYXNzIFdlYlVSTDsKIGNsYXNz
IFdlYlVSTExvYWRlcjsKIGNsYXNzIFdlYlNvY2tldFN0cmVhbUhhbmRsZTsKIGNsYXNzIFdlYlRo
cmVhZDsKK2NsYXNzIFdlYldlYlJUQ0ZhY3Rvcnk7CiAKIGNsYXNzIFBsYXRmb3JtIHsKIHB1Ymxp
YzoKQEAgLTI5NiwxNiArMjk3LDIwIEBAIHB1YmxpYzoKIAogICAgIC8vIFdlYlJUQyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKKyAg
ICB2aXJ0dWFsIFdlYldlYlJUQ0ZhY3RvcnkqIHdlYlJUQ0ZhY3RvcnkoKSB7IHJldHVybiAwOyB9
CisKICAgICAvLyBERVBSRUNBVEVECiAgICAgLy8gQ3JlYXRlcyBhbiBXZWJQZWVyQ29ubmVjdGlv
bkhhbmRsZXIgZm9yIERlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbi4KICAgICAvLyBNYXkgcmV0dXJu
IG51bGwgaWYgV2ViUlRDIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2YWxpYWJsZSBvciBvdXQgb2Yg
cmVzb3VyY2VzLgogICAgIHZpcnR1YWwgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBjcmVhdGVQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIoV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KikgeyBy
ZXR1cm4gMDsgfQogCisgICAgLy8gREVQUkVDQVRFRAogICAgIC8vIENyZWF0ZXMgYW4gV2ViUGVl
ckNvbm5lY3Rpb24wMEhhbmRsZXIgZm9yIFBlZXJDb25uZWN0aW9uMDAuCiAgICAgLy8gVGhpcyBp
cyBhbiBoaWdobHkgZXhwZXJpbWVudGFsIGZlYXR1cmUgbm90IHlldCBpbiB0aGUgV2ViUlRDIHN0
YW5kYXJkLgogICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBXZWJSVEMgZnVuY3Rpb25hbGl0eSBp
cyBub3QgYXZhbGlhYmxlIG9yIG91dCBvZiByZXNvdXJjZXMuCiAgICAgdmlydHVhbCBXZWJQZWVy
Q29ubmVjdGlvbjAwSGFuZGxlciogY3JlYXRlUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIoV2ViUGVl
ckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQqKSB7IHJldHVybiAwOyB9CiAKKyAgICAvLyBERVBS
RUNBVEVECiAgICAgLy8gTWF5IHJldHVybiBudWxsIGlmIFdlYlJUQyBmdW5jdGlvbmFsaXR5IGlz
IG5vdCBhdmFsaWFibGUgb3Igb3V0IG9mIHJlc291cmNlcy4KICAgICB2aXJ0dWFsIFdlYk1lZGlh
U3RyZWFtQ2VudGVyKiBjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcihXZWJNZWRpYVN0cmVhbUNlbnRl
ckNsaWVudCopIHsgcmV0dXJuIDA7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJXZWJSVENGYWN0b3J5LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYldlYlJUQ0ZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmI3NThlN2I4ZmJlMmM1
Nzk1ZmNhMjFlNDBiOWZjMGU1ZTQxZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJXZWJSVENGYWN0b3J5LmgKQEAgLTAsMCArMSw2NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
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
Zm5kZWYgV2ViV2ViUlRDRmFjdG9yeV9oCisjZGVmaW5lIFdlYldlYlJUQ0ZhY3RvcnlfaAorCisj
aW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOworY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50
OworY2xhc3MgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI7CitjbGFzcyBXZWJQZWVyQ29ubmVj
dGlvbjAwSGFuZGxlckNsaWVudDsKK2NsYXNzIFdlYk1lZGlhU3RyZWFtQ2VudGVyOworY2xhc3Mg
V2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQ7CisKK2NsYXNzIFdlYldlYlJUQ0ZhY3Rvcnkgewor
cHVibGljOgorICAgIHZpcnR1YWwgfldlYldlYlJUQ0ZhY3RvcnkoKSB7IH0KKworICAgIC8vIERF
UFJFQ0FURUQKKyAgICAvLyBDcmVhdGVzIGFuIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlciBmb3Ig
RGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLgorICAgIC8vIE1heSByZXR1cm4gbnVsbCBpZiBXZWJS
VEMgZnVuY3Rpb25hbGl0eSBpcyBub3QgYXZhbGlhYmxlIG9yIG91dCBvZiByZXNvdXJjZXMuCisg
ICAgdmlydHVhbCBXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIGNyZWF0ZVBlZXJDb25uZWN0aW9u
SGFuZGxlcihXZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqKSA9IDA7CisKKyAgICAvLyBD
cmVhdGVzIGFuIFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyIGZvciBQZWVyQ29ubmVjdGlvbjAw
LgorICAgIC8vIFRoaXMgaXMgYW4gaGlnaGx5IGV4cGVyaW1lbnRhbCBmZWF0dXJlIG5vdCB5ZXQg
aW4gdGhlIFdlYlJUQyBzdGFuZGFyZC4KKyAgICAvLyBNYXkgcmV0dXJuIG51bGwgaWYgV2ViUlRD
IGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2YWxpYWJsZSBvciBvdXQgb2YgcmVzb3VyY2VzLgorICAg
IHZpcnR1YWwgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIqIGNyZWF0ZVBlZXJDb25uZWN0aW9u
MDBIYW5kbGVyKFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50KikgPSAwOworCisgICAg
Ly8gTWF5IHJldHVybiBudWxsIGlmIFdlYlJUQyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBhdmFsaWFi
bGUgb3Igb3V0IG9mIHJlc291cmNlcy4KKyAgICB2aXJ0dWFsIFdlYk1lZGlhU3RyZWFtQ2VudGVy
KiBjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcihXZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudCopID0g
MDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViV2ViUlRDRmFj
dG9yeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
aHJvbWl1bS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vRGVwcmVjYXRlZFBlZXJD
b25uZWN0aW9uSGFuZGxlckludGVybmFsLmNwcAppbmRleCBkNWU5NjM4MTFlNDY2ZWUyOGY1MDVi
YmEzYzdiMDc2YWMxZDVjY2Y1Li44MTU3MzUyZjI5NjdhZGM5NzVmMTEyY2M3MTQ0OGYwM2YxNTk2
NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJv
bWl1bS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL0RlcHJlY2F0ZWRQZWVy
Q29ubmVjdGlvbkhhbmRsZXJJbnRlcm5hbC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRl
IDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlBlZXJDb25uZWN0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViV2ViUlRDRmFjdG9yeS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ3LDEwICs0OCwxNSBAQCBEZXByZWNhdGVkUGVlckNvbm5lY3Rpb25IYW5kbGVySW50ZXJuYWw6
OkRlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhhbmRsZXJJbnRlcm5hbAogICAgIDogbV9jbGllbnQo
Y2xpZW50KQogewogICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgbV93ZWJIYW5kbGVyID0gYWRv
cHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVQZWVyQ29ubmVjdGlvbkhh
bmRsZXIodGhpcykpOworCisgICAgV2ViS2l0OjpXZWJXZWJSVENGYWN0b3J5KiBmYWN0b3J5ID0g
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT53ZWJSVENGYWN0b3J5KCk7CisgICAgaWYgKGZh
Y3RvcnkpCisgICAgICAgIG1fd2ViSGFuZGxlciA9IGFkb3B0UHRyKGZhY3RvcnktPmNyZWF0ZVBl
ZXJDb25uZWN0aW9uSGFuZGxlcih0aGlzKSk7CisgICAgZWxzZQorICAgICAgICBtX3dlYkhhbmRs
ZXIgPSBhZG9wdFB0cihXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZVBlZXJDb25u
ZWN0aW9uSGFuZGxlcih0aGlzKSk7CisKICAgICAvLyBGSVhNRTogV2hlbiB0aGVyZSBpcyBzb21l
IGVycm9yIHJlcG9ydGluZyBhdmFsaWFibGUgaW4gdGhlIFBlZXJDb25uZWN0aW9uIG9iamVjdCBy
ZXBvcnQKICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IGEgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVy
IGluc3RhbmNlLgotCiAgICAgaWYgKG1fd2ViSGFuZGxlcikKICAgICAgICAgbV93ZWJIYW5kbGVy
LT5pbml0aWFsaXplKHNlcnZlckNvbmZpZ3VyYXRpb24sIHVzZXJuYW1lKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3Ry
ZWFtQ2VudGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHAKaW5kZXggMTMxN2QyZDgz
N2E3Zjk5MTY5NjMyYmIxMjEwMjlkMTM2MmZjMGU5Zi4uZThhNDhhNDM4ZmIzMjBhODQzMThmMjNk
NmI1NDM3NGJiZjEzN2Y5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50
ZXJDaHJvbWl1bS5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtU291
cmNlc1JlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJXZWJSVENGYWN0b3J5Lmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC01
OCw4ICs1OSwxMiBAQCBNZWRpYVN0cmVhbUNlbnRlciYgTWVkaWFTdHJlYW1DZW50ZXI6Omluc3Rh
bmNlKCkKIH0KIAogTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bTo6TWVkaWFTdHJlYW1DZW50ZXJD
aHJvbWl1bSgpCi0gICAgOiBtX3ByaXZhdGUoYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jcmVhdGVNZWRpYVN0cmVhbUNlbnRlcih0aGlzKSkpCiB7CisgICAgV2ViS2l0OjpX
ZWJXZWJSVENGYWN0b3J5KiBmYWN0b3J5ID0gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT53
ZWJSVENGYWN0b3J5KCk7CisgICAgaWYgKGZhY3RvcnkpCisgICAgICAgIG1fcHJpdmF0ZSA9IGFk
b3B0UHRyKGZhY3RvcnktPmNyZWF0ZU1lZGlhU3RyZWFtQ2VudGVyKHRoaXMpKTsKKyAgICBlbHNl
CisgICAgICAgIG1fcHJpdmF0ZSA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+Y3JlYXRlTWVkaWFTdHJlYW1DZW50ZXIodGhpcykpOwogfQogCiBNZWRpYVN0cmVhbUNlbnRl
ckNocm9taXVtOjp+TWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlvbjAw
SGFuZGxlckludGVybmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2Nocm9taXVtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3BwCmluZGV4IDVhOTBi
ZjE4ZTk1MDE1ZDJiYTYwYTNhMTVjYTUwOTE3OGEwN2Y0ZjguLmZkMTBiZjRkNWYyZmIyMDcxYTVk
Yjc0MmJiMzE2ZGExYmM0ZmFlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1BlZXJD
b25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVk
ZSA8cHVibGljL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViV2Vi
UlRDRmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTU2LDcgKzU3LDEzIEBAIFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJu
YWw6OlBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwoUGVlckNvbm5lY3Rpb24wCiAgICAg
OiBtX2NsaWVudChjbGllbnQpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICBtX3dlYkhh
bmRsZXIgPSBhZG9wdFB0cihXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZVBlZXJD
b25uZWN0aW9uMDBIYW5kbGVyKHRoaXMpKTsKKworICAgIFdlYktpdDo6V2ViV2ViUlRDRmFjdG9y
eSogZmFjdG9yeSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+d2ViUlRDRmFjdG9yeSgp
OworICAgIGlmIChmYWN0b3J5KQorICAgICAgICBtX3dlYkhhbmRsZXIgPSBhZG9wdFB0cihmYWN0
b3J5LT5jcmVhdGVQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcih0aGlzKSk7CisgICAgZWxzZQorICAg
ICAgICBtX3dlYkhhbmRsZXIgPSBhZG9wdFB0cihXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCkt
PmNyZWF0ZVBlZXJDb25uZWN0aW9uMDBIYW5kbGVyKHRoaXMpKTsKKwogICAgIC8vIEZJWE1FOiBX
aGVuIHRoZXJlIGlzIHNvbWUgZXJyb3IgcmVwb3J0aW5nIGF2YWxpYWJsZSBpbiB0aGUgUGVlckNv
bm5lY3Rpb24gb2JqZWN0IHJlcG9ydAogICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSBXZWJQZWVy
Q29ubmVjdGlvbjAwSGFuZGxlciBpbnN0YW5jZS4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151672</attachid>
            <date>2012-07-11 04:08:57 -0700</date>
            <delta_ts>2012-07-17 01:25:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86215-20120711130855.patch</filename>
            <type>text/plain</type>
            <size>7303</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODMyCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUuZ3lwaQppbmRleCBhNDE0ZmQyNWEwY2Q0ZTg4ZThiZjRjYTg1YjU5MjlhYjJkMmE1NGZh
Li43ZWJhYmZkM2JkZWE2YTAxMTE0YmY1M2NlYWEwMmFjMjcwMTMwOThkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAgLTI0LDYgKzI0LDggQEAKICAgICAgICAg
ICAgICdjaHJvbWl1bS9Nb2NrR3JhbW1hckNoZWNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L01vY2tTcGVsbENoZWNrLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vTW9ja1NwZWxsQ2hl
Y2suaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5j
cHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vTW9ja1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuY3BwJywK
ICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmNwcCcsCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5k
ZXggN2IxMjg0ZDMxZDkxYjBiYmU5NTIwZjVlYzU3MjFlNDg2NGU1NzYyZC4uYTgxMWYwNDlhZmRm
MDkxZDRmMmNlYmM0NjkyN2U4OTJlNWUwYzdlMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAKKyNpbmNsdWRlICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0Lmgi
CiAjaW5jbHVkZSAiVGVzdFNoZWxsLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2lu
Y2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCkBAIC03Myw3ICs3NCw3IEBA
IGNsYXNzIFdlYktpdFN1cHBvcnRUZXN0RW52aXJvbm1lbnQgewogcHVibGljOgogICAgIFdlYktp
dFN1cHBvcnRUZXN0RW52aXJvbm1lbnQoKQogICAgIHsKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6
OlNldFVwVGVzdEVudmlyb25tZW50KCk7CisgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXRVcFRl
c3RFbnZpcm9ubWVudChNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGUoKSk7CiAgICAg
fQogICAgIH5XZWJLaXRTdXBwb3J0VGVzdEVudmlyb25tZW50KCkKICAgICB7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1
cHBvcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlNDM2ZTI4NmNmMDFmZDlmZDIzOGVkZDQ2Y2ZlYTYzYzZk
YmVlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9N
b2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
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
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworUGxhdGZvcm0qIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6
OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG5ldyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCk7
Cit9CisKK01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6Ok1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKQoreworfQorCit2b2lkIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyeXB0b2dyYXBo
aWNhbGx5UmFuZG9tVmFsdWVzKHVuc2lnbmVkIGNoYXIqLCBzaXplX3QpCit7Cit9CisKK1dlYk1l
ZGlhU3RyZWFtQ2VudGVyKiBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVNZWRpYVN0
cmVhbUNlbnRlcihXZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudCopCit7CisgICAgcmV0dXJuIDA7
Cit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWRhYTZmMGY1OTA3MWZhYzUyMjJl
NjFjYzk4NjM5YTg4MDNjMTE2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnRfaAorI2RlZmluZSBNb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0X2gKKworI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorCitjbGFzcyBN
b2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0IDogcHVibGljIFdlYktpdDo6UGxhdGZvcm0geworcHVi
bGljOgorICAgIHN0YXRpYyBXZWJLaXQ6OlBsYXRmb3JtKiBjcmVhdGUoKTsKKworICAgIHZpcnR1
YWwgdm9pZCBjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyh1bnNpZ25lZCBjaGFyKiBidWZm
ZXIsIHNpemVfdCBsZW5ndGgpIE9WRVJSSURFOworCisgICAgdmlydHVhbCBXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtQ2VudGVyKiBjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcihXZWJLaXQ6OldlYk1lZGlh
U3RyZWFtQ2VudGVyQ2xpZW50KikgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgTW9ja1dlYktp
dFBsYXRmb3JtU3VwcG9ydCgpOworfTsKKworI2VuZGlmIC8vIE1vY2tXZWJLaXRQbGF0Zm9ybVN1
cHBvcnRfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vY29uZmln
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcuaAppbmRleCA1N2IzYTU0
ZmMyNDRkYWIzNjA2ZWZkZmQyZDE3M2QxZTQ2MTI0Mzc0Li5lZjQxOGFlYzAyNmVmNjI5YzZlZDE1
ZTM2MWY0ZjgwZmEzOWE1YTcwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9jb25maWcuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcu
aApAQCAtMzEsMTcgKzMxLDYgQEAKICNpZm5kZWYgY29uZmlnX2gKICNkZWZpbmUgY29uZmlnX2gK
IAotLy8gVG8gYXZvaWQgY29uZmljdCBvZiBMT0cgaW4gd3RmL0Fzc2VydGlvbnMuaCBhbmQgTE9H
IGluIGJhc2UvbG9nZ2luZy5oLAotLy8gc2tpcCBiYXNlL2xvZ2dpbi5oIGJ5IGRlZmluaW5nIEJB
U0VfTE9HR0lOR19IXyBhbmQgZGVmaW5lIHNvbWUgbWFjcm9zCi0vLyBwcm92aWRlZCBieSBiYXNl
L2xvZ2dpbmcuaC4KLS8vIEZJWE1FOiBSZW1vdmUgdGhpcyBoYWNrIQotI2luY2x1ZGUgPGlvc3Ry
ZWFtPgotI2RlZmluZSBCQVNFX0xPR0dJTkdfSF8KLSNkZWZpbmUgQ0hFQ0soY29uZGl0aW9uKSB3
aGlsZSAoZmFsc2UgJiYgKGNvbmRpdGlvbikpIHN0ZDo6Y2VycgotI2RlZmluZSBEQ0hFQ0soY29u
ZGl0aW9uKSB3aGlsZSAoZmFsc2UgJiYgKGNvbmRpdGlvbikpIHN0ZDo6Y2VycgotI2RlZmluZSBE
Q0hFQ0tfRVEoYSwgYikgd2hpbGUgKGZhbHNlICYmIChhKSA9PSAoYikpIHN0ZDo6Y2VycgotI2Rl
ZmluZSBEQ0hFQ0tfTkUoYSwgYikgd2hpbGUgKGZhbHNlICYmIChhKSAhPSAoYikpIHN0ZDo6Y2Vy
cgotCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL0V4cG9ydE1hY3Jv
cy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152714</attachid>
            <date>2012-07-17 01:25:30 -0700</date>
            <delta_ts>2012-07-18 10:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86215-20120717102528.patch</filename>
            <type>text/plain</type>
            <size>8813</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzAxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTJmZjkxODhhOGM1ODMwODE1NDhkNWYzZDkxODVjMTQy
YWUxZDM5Mi4uZGU1ZjJmOThiMGM1OWM4MTFmZDk4NTJiYWVmYjYyNjM3MTFiMmVjOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEyLTA3LTE2ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgor
CisgICAgICAgIFtjaHJvbWl1bV0gTWVkaWFTdHJlYW0gQVBJOiBNb3ZpbmcgdGhlIG1vY2sgY3Jl
YXRlKiBXZWJSVEMgY2FsbHMgaW50byBhIHNoYWRvdyBQbGF0Zm9ybSBjbGFzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYSBzaGFkb3cgUGxh
dGZvcm0gb2JqZWN0IHRoYXQgaXMgdXNlZCB0byBvdmVycmlkZSBzb21lIFdlYktpdDo6UGxhdGZv
cm0gZnVudGlvbnMgdG8KKyAgICAgICAgaW5zdGVhZCBjcmVhdGUgbW9jayBvYmplY3RzLiBObyBh
Y3R1YWwgbW9jayBvYmplY3RzIGNyZWF0ZWQgeWV0LgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25t
ZW50OjpXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25tZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmNwcDogQ29waWVkIGZyb20g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vY29uZmlnLmguCisgICAgICAgIChNb2NrV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGUpOgorICAgICAgICAoTW9ja1dlYktpdFBsYXRmb3Jt
U3VwcG9ydDo6TW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAgIChNb2NrV2ViS2l0
UGxhdGZvcm1TdXBwb3J0OjpjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyk6CisgICAgICAg
IChNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcik6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9y
dC5oOiBDb3BpZWQgZnJvbSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcuaC4K
KyAgICAgICAgKE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL2NvbmZpZy5oOgorCiAyMDEyLTA3LTE1ICBHeXV5b3VuZyBLaW0gIDxn
eXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkIEVGTFdl
YktpdDJQdWJsaWNBUEksIEVGTFdlYktpdDJQbGF0Zm9ybVNwZWNpZmljIHRvIHdhdGNoIGxpc3Qu
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBhNDE0ZmQyNWEw
Y2Q0ZTg4ZThiZjRjYTg1YjU5MjlhYjJkMmE1NGZhLi43ZWJhYmZkM2JkZWE2YTAxMTE0YmY1M2Nl
YWEwMmFjMjcwMTMwOThkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5
cGkKQEAgLTI0LDYgKzI0LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrR3JhbW1hckNo
ZWNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmNwcCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vTW9ja1NwZWxsQ2hlY2suaCcsCisgICAgICAgICAgICAnY2hyb21p
dW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVt
L01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vTW9j
a1dlYlByZXJlbmRlcmluZ1N1cHBvcnQuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2Nr
V2ViUHJlcmVuZGVyaW5nU3VwcG9ydC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggN2IxMjg0ZDMxZDkxYjBiYmU5NTIwZjVl
YzU3MjFlNDg2NGU1NzYyZC4uYTgxMWYwNDlhZmRmMDkxZDRmMmNlYmM0NjkyN2U4OTJlNWUwYzdl
MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRy
ZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVl
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpbmNsdWRl
ICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiVGVzdFNoZWxsLmgiCiAj
aW5jbHVkZSAiV2ViQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIndlYmtpdC9zdXBwb3J0L3dlYmtp
dF9zdXBwb3J0LmgiCkBAIC03Myw3ICs3NCw3IEBAIGNsYXNzIFdlYktpdFN1cHBvcnRUZXN0RW52
aXJvbm1lbnQgewogcHVibGljOgogICAgIFdlYktpdFN1cHBvcnRUZXN0RW52aXJvbm1lbnQoKQog
ICAgIHsKLSAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlNldFVwVGVzdEVudmlyb25tZW50KCk7Cisg
ICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXRVcFRlc3RFbnZpcm9ubWVudChNb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0OjpjcmVhdGUoKSk7CiAgICAgfQogICAgIH5XZWJLaXRTdXBwb3J0VGVzdEVu
dmlyb25tZW50KCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZmMz
NzhhMjQzMjNlYTc2ZGIwNDczNjgzMDIyZWYwNjBiZWEwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmNw
cApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
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
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworUGxhdGZv
cm0qIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG5l
dyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCk7Cit9CisKK01vY2tXZWJLaXRQbGF0Zm9ybVN1
cHBvcnQ6Ok1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKQoreworfQorCit2b2lkIE1vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQ6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKHVuc2lnbmVk
IGNoYXIqLCBzaXplX3QpCit7Cit9CisKK1dlYk1lZGlhU3RyZWFtQ2VudGVyKiBNb2NrV2ViS2l0
UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVNZWRpYVN0cmVhbUNlbnRlcihXZWJNZWRpYVN0cmVhbUNl
bnRlckNsaWVudCopCit7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzVkYWE2ZjBmNTkwNzFmYWM1MjIyZTYxY2M5ODYzOWE4ODAzYzExNgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9y
bVN1cHBvcnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2NrV2ViS2l0UGxhdGZvcm1TdXBw
b3J0X2gKKyNkZWZpbmUgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydF9oCisKKyNpbmNsdWRlIDxw
dWJsaWMvUGxhdGZvcm0uaD4KKworY2xhc3MgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydCA6IHB1
YmxpYyBXZWJLaXQ6OlBsYXRmb3JtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2l0OjpQbGF0
Zm9ybSogY3JlYXRlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgY3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21WYWx1ZXModW5zaWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKSBPVkVSUklERTsK
KworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbUNlbnRlciogY3JlYXRlTWVkaWFT
dHJlYW1DZW50ZXIoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudCopIE9WRVJSSURF
OworCitwcml2YXRlOgorICAgIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKTsKK307CisKKyNl
bmRpZiAvLyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0X2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL2NvbmZpZy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vY29uZmlnLmgKaW5kZXggNTdiM2E1NGZjMjQ0ZGFiMzYwNmVmZGZkMmQxNzNkMWU0NjEy
NDM3NC4uZWY0MThhZWMwMjZlZjYyOWM2ZWQxNWUzNjFmNGY4MGZhMzlhNWE3MCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vY29uZmlnLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vY29uZmlnLmgKQEAgLTMxLDE3ICszMSw2IEBACiAjaWZuZGVm
IGNvbmZpZ19oCiAjZGVmaW5lIGNvbmZpZ19oCiAKLS8vIFRvIGF2b2lkIGNvbmZpY3Qgb2YgTE9H
IGluIHd0Zi9Bc3NlcnRpb25zLmggYW5kIExPRyBpbiBiYXNlL2xvZ2dpbmcuaCwKLS8vIHNraXAg
YmFzZS9sb2dnaW4uaCBieSBkZWZpbmluZyBCQVNFX0xPR0dJTkdfSF8gYW5kIGRlZmluZSBzb21l
IG1hY3JvcwotLy8gcHJvdmlkZWQgYnkgYmFzZS9sb2dnaW5nLmguCi0vLyBGSVhNRTogUmVtb3Zl
IHRoaXMgaGFjayEKLSNpbmNsdWRlIDxpb3N0cmVhbT4KLSNkZWZpbmUgQkFTRV9MT0dHSU5HX0hf
Ci0jZGVmaW5lIENIRUNLKGNvbmRpdGlvbikgd2hpbGUgKGZhbHNlICYmIChjb25kaXRpb24pKSBz
dGQ6OmNlcnIKLSNkZWZpbmUgRENIRUNLKGNvbmRpdGlvbikgd2hpbGUgKGZhbHNlICYmIChjb25k
aXRpb24pKSBzdGQ6OmNlcnIKLSNkZWZpbmUgRENIRUNLX0VRKGEsIGIpIHdoaWxlIChmYWxzZSAm
JiAoYSkgPT0gKGIpKSBzdGQ6OmNlcnIKLSNkZWZpbmUgRENIRUNLX05FKGEsIGIpIHdoaWxlIChm
YWxzZSAmJiAoYSkgIT0gKGIpKSBzdGQ6OmNlcnIKLQogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5o
PgogI2luY2x1ZGUgPHd0Zi9FeHBvcnRNYWNyb3MuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153036</attachid>
            <date>2012-07-18 10:19:32 -0700</date>
            <delta_ts>2012-07-18 10:44:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86215-20120718101931.patch</filename>
            <type>text/plain</type>
            <size>8533</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyMjk4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDEyLTA3LTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gTWVkaWFTdHJlYW0gQVBJOiBNb3ZpbmcgdGhlIG1v
Y2sgY3JlYXRlKiBXZWJSVEMgY2FsbHMgaW50byBhIHNoYWRvdyBQbGF0Zm9ybSBjbGFzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEFkZGluZyBhIHNoYWRvdyBQ
bGF0Zm9ybSBvYmplY3QgdGhhdCBpcyB1c2VkIHRvIG92ZXJyaWRlIHNvbWUgV2ViS2l0OjpQbGF0
Zm9ybSBmdW50aW9ucyB0bworICAgICAgICBpbnN0ZWFkIGNyZWF0ZSBtb2NrIG9iamVjdHMuIE5v
IGFjdHVhbCBtb2NrIG9iamVjdHMgY3JlYXRlZCB5ZXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdFN1cHBvcnRUZXN0RW52aXJv
bm1lbnQ6OldlYktpdFN1cHBvcnRUZXN0RW52aXJvbm1lbnQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuY3BwOiBDb3BpZWQgZnJv
bSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcuaC4KKyAgICAgICAgKE1vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChNb2NrV2ViS2l0UGxhdGZv
cm1TdXBwb3J0OjpNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KToKKyAgICAgICAgKE1vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQ6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAg
ICAgKE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZU1lZGlhU3RyZWFtQ2VudGVyKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBw
b3J0Lmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL2NvbmZpZy5o
LgorICAgICAgICAoTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vY29uZmlnLmg6CisKIDIwMTItMDctMTggIFRoaWFnbyBNYXJjb3Mg
UC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtlXVtF
RkxdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSB1bml0IHRlc3RzCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHJldmlzaW9uIDEyMjk4NCkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAg
LTE0LDYgKzE0LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrR3JhbW1hckNoZWNrLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmNwcCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vTW9ja1NwZWxsQ2hlY2suaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vTW9j
a1dlYktpdFBsYXRmb3JtU3VwcG9ydC5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vTW9ja1dlYlBy
ZXJlbmRlcmluZ1N1cHBvcnQuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViUHJl
cmVuZGVyaW5nU3VwcG9ydC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViU3BlZWNo
SW5wdXRDb250cm9sbGVyLmNwcCcsCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EdW1wUmVuZGVyVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAxMjI5ODQpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiTW9j
a1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3Vw
cG9ydC5oIgpAQCAtNzIsNyArNzMsNyBAQCBjbGFzcyBXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25t
ZW50IHsKIHB1YmxpYzoKICAgICBXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25tZW50KCkKICAgICB7
Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXRVcFRlc3RFbnZpcm9ubWVudCgpOworICAgICAg
ICB3ZWJraXRfc3VwcG9ydDo6U2V0VXBUZXN0RW52aXJvbm1lbnQoTW9ja1dlYktpdFBsYXRmb3Jt
U3VwcG9ydDo6Y3JlYXRlKCkpOwogICAgIH0KICAgICB+V2ViS2l0U3VwcG9ydFRlc3RFbnZpcm9u
bWVudCgpCiAgICAgewpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5jcHAJKHJldmlzaW9uIDApCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
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
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK1BsYXRmb3JtKiBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGUoKQor
eworICAgIHJldHVybiBuZXcgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydCgpOworfQorCitNb2Nr
V2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KCkKK3sKK30K
Kwordm9pZCBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcnlwdG9ncmFwaGljYWxseVJhbmRv
bVZhbHVlcyh1bnNpZ25lZCBjaGFyKiwgc2l6ZV90KQoreworICAgIENSQVNIKCk7Cit9CisKK1dl
Yk1lZGlhU3RyZWFtQ2VudGVyKiBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0OjpjcmVhdGVNZWRp
YVN0cmVhbUNlbnRlcihXZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudCopCit7CisgICAgcmV0dXJu
IDA7Cit9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCShyZXZpc2lvbiAwKQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0X2gK
KyNkZWZpbmUgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydF9oCisKKyNpbmNsdWRlIDxwdWJsaWMv
UGxhdGZvcm0uaD4KKworY2xhc3MgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydCA6IHB1YmxpYyBX
ZWJLaXQ6OlBsYXRmb3JtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2l0OjpQbGF0Zm9ybSog
Y3JlYXRlKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1
ZXModW5zaWduZWQgY2hhciogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKSBPVkVSUklERTsKKworICAg
IHZpcnR1YWwgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbUNlbnRlciogY3JlYXRlTWVkaWFTdHJlYW1D
ZW50ZXIoV2ViS2l0OjpXZWJNZWRpYVN0cmVhbUNlbnRlckNsaWVudCopIE9WRVJSSURFOworCitw
cml2YXRlOgorICAgIE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKTsKK307CisKKyNlbmRpZiAv
LyBNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0X2gKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL2NvbmZpZy5oCShyZXZpc2lvbiAxMjI5ODQpCisrKyBUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTcgKzMxLDYgQEAKICNp
Zm5kZWYgY29uZmlnX2gKICNkZWZpbmUgY29uZmlnX2gKIAotLy8gVG8gYXZvaWQgY29uZmljdCBv
ZiBMT0cgaW4gd3RmL0Fzc2VydGlvbnMuaCBhbmQgTE9HIGluIGJhc2UvbG9nZ2luZy5oLAotLy8g
c2tpcCBiYXNlL2xvZ2dpbi5oIGJ5IGRlZmluaW5nIEJBU0VfTE9HR0lOR19IXyBhbmQgZGVmaW5l
IHNvbWUgbWFjcm9zCi0vLyBwcm92aWRlZCBieSBiYXNlL2xvZ2dpbmcuaC4KLS8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBoYWNrIQotI2luY2x1ZGUgPGlvc3RyZWFtPgotI2RlZmluZSBCQVNFX0xPR0dJ
TkdfSF8KLSNkZWZpbmUgQ0hFQ0soY29uZGl0aW9uKSB3aGlsZSAoZmFsc2UgJiYgKGNvbmRpdGlv
bikpIHN0ZDo6Y2VycgotI2RlZmluZSBEQ0hFQ0soY29uZGl0aW9uKSB3aGlsZSAoZmFsc2UgJiYg
KGNvbmRpdGlvbikpIHN0ZDo6Y2VycgotI2RlZmluZSBEQ0hFQ0tfRVEoYSwgYikgd2hpbGUgKGZh
bHNlICYmIChhKSA9PSAoYikpIHN0ZDo6Y2VycgotI2RlZmluZSBEQ0hFQ0tfTkUoYSwgYikgd2hp
bGUgKGZhbHNlICYmIChhKSAhPSAoYikpIHN0ZDo6Y2VycgotCiAjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+CiAjaW5jbHVkZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153042</attachid>
            <date>2012-07-18 10:44:50 -0700</date>
            <delta_ts>2012-07-18 11:34:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86215-20120718104449.patch</filename>
            <type>text/plain</type>
            <size>8564</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDEyMjk4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDEyLTA3LTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gTWVkaWFTdHJlYW0gQVBJOiBNb3ZpbmcgdGhlIG1v
Y2sgY3JlYXRlKiBXZWJSVEMgY2FsbHMgaW50byBhIHNoYWRvdyBQbGF0Zm9ybSBjbGFzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEFkZGluZyBhIHNoYWRvdyBQ
bGF0Zm9ybSBvYmplY3QgdGhhdCBpcyB1c2VkIHRvIG92ZXJyaWRlIHNvbWUgV2ViS2l0OjpQbGF0
Zm9ybSBmdW50aW9ucyB0bworICAgICAgICBpbnN0ZWFkIGNyZWF0ZSBtb2NrIG9iamVjdHMuIE5v
IGFjdHVhbCBtb2NrIG9iamVjdHMgY3JlYXRlZCB5ZXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdFN1cHBvcnRUZXN0RW52aXJv
bm1lbnQ6OldlYktpdFN1cHBvcnRUZXN0RW52aXJvbm1lbnQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuY3BwOiBDb3BpZWQgZnJv
bSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcuaC4KKyAgICAgICAgKE1vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChNb2NrV2ViS2l0UGxhdGZv
cm1TdXBwb3J0OjpNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0KToKKyAgICAgICAgKE1vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQ6OmNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKToKKyAgICAg
ICAgKE1vY2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmNyZWF0ZU1lZGlhU3RyZWFtQ2VudGVyKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBw
b3J0Lmg6IENvcGllZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL2NvbmZpZy5o
LgorICAgICAgICAoTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vY29uZmlnLmg6CisKIDIwMTItMDctMTggIFRoaWFnbyBNYXJjb3Mg
UC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0NNYWtlXVtF
RkxdIEJ1aWxkIGFuZCBydW4gVGVzdFdlYktpdEFQSSB1bml0IHRlc3RzCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHJldmlzaW9uIDEyMjk4NCkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAg
LTE0LDYgKzE0LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrR3JhbW1hckNoZWNrLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tTcGVsbENoZWNrLmNwcCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vTW9ja1NwZWxsQ2hlY2suaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vTW9j
a1dlYktpdFBsYXRmb3JtU3VwcG9ydC5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL01vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vTW9ja1dlYlBy
ZXJlbmRlcmluZ1N1cHBvcnQuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViUHJl
cmVuZGVyaW5nU3VwcG9ydC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9Nb2NrV2ViU3BlZWNo
SW5wdXRDb250cm9sbGVyLmNwcCcsCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EdW1wUmVuZGVyVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAxMjI5ODQpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCisjaW5jbHVkZSAiTW9j
a1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3Vw
cG9ydC5oIgpAQCAtNzIsNyArNzMsNyBAQCBjbGFzcyBXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25t
ZW50IHsKIHB1YmxpYzoKICAgICBXZWJLaXRTdXBwb3J0VGVzdEVudmlyb25tZW50KCkKICAgICB7
Ci0gICAgICAgIHdlYmtpdF9zdXBwb3J0OjpTZXRVcFRlc3RFbnZpcm9ubWVudCgpOworICAgICAg
ICB3ZWJraXRfc3VwcG9ydDo6U2V0VXBUZXN0RW52aXJvbm1lbnQoTW9ja1dlYktpdFBsYXRmb3Jt
U3VwcG9ydDo6Y3JlYXRlKCkpOwogICAgIH0KICAgICB+V2ViS2l0U3VwcG9ydFRlc3RFbnZpcm9u
bWVudCgpCiAgICAgewpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5jcHAJKHJldmlzaW9uIDApCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
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
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCisKKyNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitQbGF0Zm9ybSogTW9ja1dl
YktpdFBsYXRmb3JtU3VwcG9ydDo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbmV3IE1vY2tXZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKTsKK30KKworTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydDo6TW9j
a1dlYktpdFBsYXRmb3JtU3VwcG9ydCgpCit7Cit9CisKK3ZvaWQgTW9ja1dlYktpdFBsYXRmb3Jt
U3VwcG9ydDo6Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXModW5zaWduZWQgY2hhciosIHNp
emVfdCkKK3sKKyAgICBDUkFTSCgpOworfQorCitXZWJNZWRpYVN0cmVhbUNlbnRlciogTW9ja1dl
YktpdFBsYXRmb3JtU3VwcG9ydDo6Y3JlYXRlTWVkaWFTdHJlYW1DZW50ZXIoV2ViTWVkaWFTdHJl
YW1DZW50ZXJDbGllbnQqKQoreworICAgIHJldHVybiAwOworfQpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuaAkocmV2aXNpb24gMCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9ydF9oCisjZGVmaW5lIE1vY2tXZWJLaXRQbGF0Zm9y
bVN1cHBvcnRfaAorCisjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CisKK2NsYXNzIE1vY2tX
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQgOiBwdWJsaWMgV2ViS2l0OjpQbGF0Zm9ybSB7CitwdWJsaWM6
CisgICAgc3RhdGljIFdlYktpdDo6UGxhdGZvcm0qIGNyZWF0ZSgpOworCisgICAgdmlydHVhbCB2
b2lkIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwg
c2l6ZV90IGxlbmd0aCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViTWVkaWFT
dHJlYW1DZW50ZXIqIGNyZWF0ZU1lZGlhU3RyZWFtQ2VudGVyKFdlYktpdDo6V2ViTWVkaWFTdHJl
YW1DZW50ZXJDbGllbnQqKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBNb2NrV2ViS2l0UGxh
dGZvcm1TdXBwb3J0KCk7Cit9OworCisjZW5kaWYgLy8gTW9ja1dlYktpdFBsYXRmb3JtU3VwcG9y
dF9oCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9jb25maWcuaAkocmV2aXNpb24g
MTIyOTg0KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vY29uZmlnLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDE3ICszMSw2IEBACiAjaWZuZGVmIGNvbmZpZ19oCiAjZGVmaW5lIGNv
bmZpZ19oCiAKLS8vIFRvIGF2b2lkIGNvbmZpY3Qgb2YgTE9HIGluIHd0Zi9Bc3NlcnRpb25zLmgg
YW5kIExPRyBpbiBiYXNlL2xvZ2dpbmcuaCwKLS8vIHNraXAgYmFzZS9sb2dnaW4uaCBieSBkZWZp
bmluZyBCQVNFX0xPR0dJTkdfSF8gYW5kIGRlZmluZSBzb21lIG1hY3JvcwotLy8gcHJvdmlkZWQg
YnkgYmFzZS9sb2dnaW5nLmguCi0vLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGFjayEKLSNpbmNsdWRl
IDxpb3N0cmVhbT4KLSNkZWZpbmUgQkFTRV9MT0dHSU5HX0hfCi0jZGVmaW5lIENIRUNLKGNvbmRp
dGlvbikgd2hpbGUgKGZhbHNlICYmIChjb25kaXRpb24pKSBzdGQ6OmNlcnIKLSNkZWZpbmUgRENI
RUNLKGNvbmRpdGlvbikgd2hpbGUgKGZhbHNlICYmIChjb25kaXRpb24pKSBzdGQ6OmNlcnIKLSNk
ZWZpbmUgRENIRUNLX0VRKGEsIGIpIHdoaWxlIChmYWxzZSAmJiAoYSkgPT0gKGIpKSBzdGQ6OmNl
cnIKLSNkZWZpbmUgRENIRUNLX05FKGEsIGIpIHdoaWxlIChmYWxzZSAmJiAoYSkgIT0gKGIpKSBz
dGQ6OmNlcnIKLQogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHd0Zi9FeHBv
cnRNYWNyb3MuaD4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>