<?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>81748</bug_id>
          
          <creation_ts>2012-03-21 02:21:51 -0700</creation_ts>
          <short_desc>Add exception for the setter of &quot;fftSize&quot; in RealtimeAnalyserNode</short_desc>
          <delta_ts>2012-03-22 20:49:55 -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>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Xingnan Wang">xingnan.wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>crogers</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>583922</commentid>
    <comment_count>0</comment_count>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-21 02:21:51 -0700</bug_when>
    <thetext>When fftSize is illegal, NOT_SUPPORTED_ERR exception is thrown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583923</commentid>
    <comment_count>1</comment_count>
      <attachid>132997</attachid>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-21 02:25:04 -0700</bug_when>
    <thetext>Created attachment 132997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583925</commentid>
    <comment_count>2</comment_count>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-21 02:25:34 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=132997) [details]
&gt; Patch

Uploaded a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583927</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 02:28:47 -0700</bug_when>
    <thetext>Attachment 132997 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/weba...&quot; exit_code: 1
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583941</commentid>
    <comment_count>4</comment_count>
      <attachid>133000</attachid>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-21 02:51:51 -0700</bug_when>
    <thetext>Created attachment 133000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584445</commentid>
    <comment_count>5</comment_count>
      <attachid>133000</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-03-21 11:52:59 -0700</bug_when>
    <thetext>Comment on attachment 133000
Patch

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

Xingnan, thanks for the patch.  This looks pretty good with a few comments:

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp:80
&gt; +int RealtimeAnalyser::setFftSize(size_t size)

This would be better returning &apos;bool&apos; (true for success)

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyser.h:47
&gt; +    int setFftSize(size_t);

&apos;bool&apos; return result for success

&gt; Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp:33
&gt;  

please remove extra blank line

&gt; LayoutTests/webaudio/realtimeanalyser-fft-sizing.html:21
&gt; +var result = false;

I think it would be better to output a PASS/FAIL message for each of the calls to doTest()

&gt; LayoutTests/webaudio/realtimeanalyser-fft-sizing.html:26
&gt; +        a.fftSize = fftSize;

And directly call testFailed() here

&gt; LayoutTests/webaudio/realtimeanalyser-fft-sizing.html:28
&gt; +        result = true;

and instead of setting &apos;result = true&apos; call testPassed() here

You can construct a message string something like this:
var message = &quot;Exception thrown for illegal fftSize &quot; + fftSize;

&gt; LayoutTests/webaudio/realtimeanalyser-fft-sizing.html:47
&gt; +

and then remove lines 43:47

&gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:18
&gt; +var fftSize = 256;

This is fine for now, but I think we can improve this layout test to not use an analyser at all and instead use a stereo AudioBuffer (if I&apos;m not mistaken) - can write up another bug if you want</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585059</commentid>
    <comment_count>6</comment_count>
      <attachid>133204</attachid>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-22 01:27:15 -0700</bug_when>
    <thetext>Created attachment 133204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585060</commentid>
    <comment_count>7</comment_count>
      <attachid>133000</attachid>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-22 01:29:54 -0700</bug_when>
    <thetext>Comment on attachment 133000
Patch

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

&gt;&gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:18
&gt;&gt; +var fftSize = 256;
&gt; 
&gt; This is fine for now, but I think we can improve this layout test to not use an analyser at all and instead use a stereo AudioBuffer (if I&apos;m not mistaken) - can write up another bug if you want


Yes, we can use stereo AudioBuffer instead of analyser and I filed a bug for this.

Patch is updated as the comments. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585462</commentid>
    <comment_count>8</comment_count>
      <attachid>133204</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-03-22 10:43:51 -0700</bug_when>
    <thetext>Comment on attachment 133204
Patch

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

Looking pretty good - just a couple of comments:

&gt; LayoutTests/webaudio/realtimeanalyser-fft-sizing.html:27
&gt; +           testFailed(&quot;No exception thrown for illegal fftSize&quot; + fftSize + &quot;.&quot;);

You should add an &quot;else&quot; clause here (for illegal==false) with an appropriate testPassed() message.

&gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:18
&gt; +var fftSize = 256;

You can remove changes to this file since https://bugs.webkit.org/show_bug.cgi?id=81881 has been approved and will land first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585977</commentid>
    <comment_count>9</comment_count>
      <attachid>133411</attachid>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-22 19:01:28 -0700</bug_when>
    <thetext>Created attachment 133411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585979</commentid>
    <comment_count>10</comment_count>
    <who name="Xingnan Wang">xingnan.wang</who>
    <bug_when>2012-03-22 19:04:48 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=133411) [details]
&gt; Patch

(In reply to comment #8)
&gt; (From update of attachment 133204 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133204&amp;action=review
&gt; 
&gt; Looking pretty good - just a couple of comments:
&gt; 
&gt; &gt; LayoutTests/webaudio/realtimeanalyser-fft-sizing.html:27
&gt; &gt; +           testFailed(&quot;No exception thrown for illegal fftSize&quot; + fftSize + &quot;.&quot;);
&gt; 
&gt; You should add an &quot;else&quot; clause here (for illegal==false) with an appropriate testPassed() message.
&gt; 
&gt; &gt; LayoutTests/webaudio/stereo2mono-down-mixing.html:18
&gt; &gt; +var fftSize = 256;
&gt; 
&gt; You can remove changes to this file since https://bugs.webkit.org/show_bug.cgi?id=81881 has been approved and will land first.

Updated the patch as your comments, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586038</commentid>
    <comment_count>11</comment_count>
      <attachid>133411</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-03-22 20:20:25 -0700</bug_when>
    <thetext>Comment on attachment 133411
Patch

Thanks Xingnan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586050</commentid>
    <comment_count>12</comment_count>
      <attachid>133411</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 20:49:49 -0700</bug_when>
    <thetext>Comment on attachment 133411
Patch

Clearing flags on attachment: 133411

Committed r111821: &lt;http://trac.webkit.org/changeset/111821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586051</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-22 20:49:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132997</attachid>
            <date>2012-03-21 02:25:04 -0700</date>
            <delta_ts>2012-03-21 02:51:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81748-20120321172818.patch</filename>
            <type>text/plain</type>
            <size>8472</size>
            <attacher name="Xingnan Wang">xingnan.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk5YzAwMWEyOTFkMzFj
ZDRmNjk4MTYyNDg2NWNkMTZjZjQyZWEyMy4uYWM2YTllNzg0MWJmYmEwMmZmOGMyYmY0YTQwZWFh
M2Y0ODIwMWQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTIxICBYaW5n
bmFuIFdhbmcgIDx4aW5nbmFuLndhbmdAaW50ZWwuY29tPgorCisgICAgICAgIEFkZCBleGNlcHRp
b24gZm9yIHRoZSBzZXR0ZXIgb2YgImZmdFNpemUiIGluIFJlYWx0aW1lQW5hbHlzZXJOb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gKE9PUFMhKQorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lQW5hbHlzZXI6OnNldEZmdFNpemUpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oOgorICAgICAgICAo
UmVhbHRpbWVBbmFseXNlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFu
YWx5c2VyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyTm9kZTo6
c2V0RmZ0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmg6CisgICAgICAgIChSZWFsdGltZUFuYWx5c2VyTm9k
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGw6
CisKIDIwMTItMDMtMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW5maW5pdGUgcmVwYWludCBsb29wIHdpdGggU1ZHSW1hZ2VDYWNoZSBhbmQgZGVm
ZXJyZWQgcmVwYWludCB0aW1lcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4IDU0YTlkMWNiMDQwODBjMmJiZTRlNzcy
OGZiMmRjODNjNjE5MTI5OGIuLjNmYTFlYTE3NTc3MzcwYzkyMjEyZjVjYzYzOTlkNmMyMDNjZTU3
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVB
bmFseXNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGlt
ZUFuYWx5c2VyLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OnJl
c2V0KCkKICAgICBtX21hZ25pdHVkZUJ1ZmZlci56ZXJvKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVB
bmFseXNlcjo6c2V0RmZ0U2l6ZShzaXplX3Qgc2l6ZSkKK2ludCBSZWFsdGltZUFuYWx5c2VyOjpz
ZXRGZnRTaXplKHNpemVfdCBzaXplKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
QEAgLTg1LDEwICs4NSw4IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6c2V0RmZ0U2l6ZShzaXpl
X3Qgc2l6ZSkKICAgICB1bnNpZ25lZCBsb2cyc2l6ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihs
b2cyKHNpemUpKTsKICAgICBib29sIGlzUE9UKDFVTCA8PCBsb2cyc2l6ZSA9PSBzaXplKTsKIAot
ICAgIGlmICghaXNQT1QgfHwgc2l6ZSA+IE1heEZGVFNpemUgfHwgc2l6ZSA8IE1pbkZGVFNpemUp
IHsKLSAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGdvb2QgdG8gYWxzbyBzZXQgYW4gZXhj
ZXB0aW9uLgotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghaXNQT1QgfHwgc2l6ZSA+
IE1heEZGVFNpemUgfHwgc2l6ZSA8IE1pbkZGVFNpemUpCisgICAgICAgIHJldHVybiAtMTsKIAog
ICAgIGlmIChtX2ZmdFNpemUgIT0gc2l6ZSkgewogICAgICAgICBtX2FuYWx5c2lzRnJhbWUgPSBh
ZG9wdFB0cihuZXcgRkZURnJhbWUoc2l6ZSkpOwpAQCAtOTYsNiArOTQsOCBAQCB2b2lkIFJlYWx0
aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90IHNpemUpCiAgICAgICAgIG1fbWFnbml0dWRl
QnVmZmVyLmFsbG9jYXRlKHNpemUgLyAyKTsKICAgICAgICAgbV9mZnRTaXplID0gc2l6ZTsKICAg
ICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBSZWFsdGltZUFuYWx5c2VyOjp3cml0ZUlu
cHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oCmluZGV4IDI0MmVh
Y2FmMDQ3NjlmN2ZhNDJjZDRiMjg5ZWNlMTFhZTllMGM1MWMuLmUxYjBlYzQyMDY2Mzc0Yzg0MTky
NDFjMzQ3ZmIwODM2MGJiYzk4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlc2V0KCk7CiAKICAgICBzaXplX3QgZmZ0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmZ0U2l6ZTsgfQotICAgIHZvaWQgc2V0RmZ0U2l6ZShzaXplX3Qgc2l6ZSk7CisgICAgaW50IHNl
dEZmdFNpemUoc2l6ZV90KTsKIAogICAgIHVuc2lnbmVkIGZyZXF1ZW5jeUJpbkNvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9mZnRTaXplIC8gMjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3BwCmluZGV4IDhkNzRh
NjdhODBhNzI3NjdkNzhhMDZlZGQ4NmZhNzI3YjYzZGQ3ZWYuLmZiNjJlM2ZiY2JjMGU0Y2M3MTI0
ODVhZWY0OGQ5YTUyNzZmZThjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3BwCkBAIC0zMSw2ICszMSw4IEBA
CiAjaW5jbHVkZSAiQXVkaW9Ob2RlSW5wdXQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQu
aCIKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBSZWFsdGltZUFuYWx5c2VyTm9kZTo6UmVhbHRpbWVBbmFseXNlck5vZGUoQXVkaW9Db250ZXh0
KiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlKQpAQCAtODMsNiArODUsMTIgQEAgdm9pZCBSZWFs
dGltZUFuYWx5c2VyTm9kZTo6cmVzZXQoKQogICAgIG1fYW5hbHlzZXIucmVzZXQoKTsKIH0KIAor
dm9pZCBSZWFsdGltZUFuYWx5c2VyTm9kZTo6c2V0RmZ0U2l6ZSh1bnNpZ25lZCBpbnQgc2l6ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKG1fYW5hbHlzZXIuc2V0RmZ0U2l6ZShzaXpl
KSA8IDApCisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmgKaW5k
ZXggMDIyMTc5ZmM2MWJlYmM3ZTVjODRkMWYyZDAxNmU1OGI2MDU3NDIwMy4uY2UzNjRhOTk5NWVl
NmFjNzZjZDNlNDY2ZjFlMWNmY2I0MjE3ZjBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaApAQCAtNDcsNyArNDcs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBKYXZhc2NyaXB0IGJpbmRpbmdzCiAgICAgdW5zaWduZWQg
aW50IGZmdFNpemUoKSBjb25zdCB7IHJldHVybiBtX2FuYWx5c2VyLmZmdFNpemUoKTsgfQotICAg
IHZvaWQgc2V0RmZ0U2l6ZSh1bnNpZ25lZCBpbnQgc2l6ZSkgeyBtX2FuYWx5c2VyLnNldEZmdFNp
emUoc2l6ZSk7IH0KKyAgICB2b2lkIHNldEZmdFNpemUodW5zaWduZWQgaW50IHNpemUsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIHVuc2lnbmVkIGZyZXF1ZW5jeUJpbkNvdW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9hbmFseXNlci5mcmVxdWVuY3lCaW5Db3VudCgpOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGwK
aW5kZXggNTBlZGJjMTc0YjhkOWMxNmI4ZGEwZWRlNmIxMzc1MTVhYTU0YzUxMS4uZGMyZGI4MDRm
ZjUwYjExNzAxZTU0Nzk4ZDQ2YTBmMGY3YjE2NGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGwKQEAgLTI3
LDcgKzI3LDggQEAgbW9kdWxlIGF1ZGlvIHsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElP
LAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogICAgIF0gUmVhbHRpbWVBbmFseXNlck5v
ZGUgOiBBdWRpb05vZGUgewotICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmZnRTaXpl
OworICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmZnRTaXplCisgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGZyZXF1ZW5jeUJpbkNvdW50OwogCiAgICAgICAgIC8vIG1pbkRlY2liZWxz
IC8gbWF4RGVjaWJlbHMgcmVwcmVzZW50IHRoZSByYW5nZSB0byBzY2FsZSB0aGUgRkZUIGFuYWx5
c2lzIGRhdGEgZm9yIGNvbnZlcnNpb24gdG8gdW5zaWduZWQgYnl0ZSB2YWx1ZXMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ODliNGNmMzBiODBjZDM1NGEwOTJhOGQ1NmUxODE4NTBlYzJiN2U1OS4uYTgzZWUwOGYwN2Y5ZTlj
MjA0YTAyY2IzYmMyY2E1OWRlNDRjYmYxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTAz
LTIxICBYaW5nbmFuIFdhbmcgIDx4aW5nbmFuLndhbmdAaW50ZWwuY29tPgorCisgICAgICAgIEFk
ZCBleGNlcHRpb24gZm9yIHRoZSBzZXR0ZXIgb2YgImZmdFNpemUiIGluIFJlYWx0aW1lQW5hbHlz
ZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTc0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sOgorCiAyMDEyLTAzLTIwICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgb3BfbW9kIGZhaWxzIG9u
IG1hbnkgaW50ZXJlc3RpbmcgY29ybmVyIGNhc2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dApp
bmRleCA0YjBlYTYwYjI5ZGE1YWE4NWZlZjNjYzg1NTlkYWNiZjI0ZGQ0OTY4Li5hN2M0YzNmOGY2
ZTJkNmRhODYzYTcyYzc2ODM4MzEyNDQ0MTEyOWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50
eHQKQEAgLTIsNiArMiw3IEBAIFRlc3QgdGhhdCByZS1zaXppbmcgdGhlIEZGVCBhcnJheXMgZG9l
cyBub3QgZmFpbC4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCitQQVNTIEV4Y2VwdGlv
biB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZS4KIFBBU1Mgd2Via2l0QXVkaW9Db250ZXh0IHN1
cnZpdmVkIG11bHRpcGxlIGludmFsaWQgRkZUIGFycmF5IHJlc2l6aW5ncy4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
cmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9y
ZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbAppbmRleCBiYTJmZmQ0YjRkZTFjY2JmZjVi
OWQwM2E4YzNjNzE3Y2JkMjE0ZWY0Li41MWQ5MGZkMTQ3Njg4ZDY4OWZhY2NmM2NmYjEzNGFkMDdk
NjQwNzg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2Vy
LWZmdC1zaXppbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5
c2VyLWZmdC1zaXppbmcuaHRtbApAQCAtMTgsMTAgKzE4LDE1IEBAIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CiB9CiAKK3ZhciByZXN1bHQgPSBmYWxzZTsKIHZhciBkb1Rlc3QgPSBmdW5jdGlvbihmZnRT
aXplKSB7CiAgICAgdmFyIGMgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAw
KTsKICAgICB2YXIgYSA9IGMuY3JlYXRlQW5hbHlzZXIoKTsKLSAgICBhLmZmdFNpemUgPSBmZnRT
aXplOworICAgIHRyeSB7CisgICAgICAgIGEuZmZ0U2l6ZSA9IGZmdFNpemU7CisgICAgfSBjYXRj
aChlKSB7CisgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgfQogICAgIC8vIFRoaXMgYXJiaXRy
YXJ5IHNpemUgZG9lcyBub3QgYWZmZWN0IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdGVzdC4KICAg
ICB2YXIgYXJyID0gbmV3IEZsb2F0MzJBcnJheSgxMDApOwogICAgIGEuZ2V0RmxvYXRGcmVxdWVu
Y3lEYXRhKGFycik7CkBAIC0zNSw2ICs0MCwxMSBAQCBmb3IgKHZhciBpID0gMjsgaSA8PSAweDIw
MDAwOyBpICo9IDIpIHsKICAgICBkb1Rlc3QoaSArIDEpOwogfQogCitpZiAocmVzdWx0KQorICAg
IHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZS4iKTsKK2Vs
c2UKKyAgICB0ZXN0RmFpbGVkKCJObyBleGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNp
emUuIik7CisKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogdGVzdFBhc3NlZCgid2Via2l0QXVkaW9Db250ZXh0
IHN1cnZpdmVkIG11bHRpcGxlIGludmFsaWQgRkZUIGFycmF5IHJlc2l6aW5ncy4iKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCmluZGV4
IDU2YjIyZDAwNTkyZjY4MjQwZjdhNGRmNzBjNjQwMWM1YTI2YTA2MWIuLjBkNGU1NzZlY2FiZWQz
ZmRhMGYxYjQ3NjMxMWYyYmRkZDE4NDllZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbApAQCAtMTUsNyArMTUsNyBAQCBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHdoZXRoZXIgZG93biBtaXhpbmcgZnJvbSBzdGVyZW8g
dG8gbW9ubyB3aWxsIGNhdQogCiB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7CiB2YXIgcmVuZGVy
TGVuZ3RoU2Vjb25kcyA9IDAuMTsKLXZhciBmZnRTaXplID0gMzI7Cit2YXIgZmZ0U2l6ZSA9IDI1
NjsKIAogdmFyIGNvbnRleHQ7CiB2YXIgdG9uZUJ1ZmZlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133000</attachid>
            <date>2012-03-21 02:51:51 -0700</date>
            <delta_ts>2012-03-22 01:29:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81748-20120321175506.patch</filename>
            <type>text/plain</type>
            <size>8431</size>
            <attacher name="Xingnan Wang">xingnan.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JiZjhkZmZmYzcxZmVm
MTlhYWY5NjlmNDY5ODhlOTgxNDVlY2E5ZC4uMGYzMmI2YTg4ZmJhMjY0YWZkNmZmYzIzN2U2MmVi
ZWNjNjg2ZGE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAzLTIxICBYaW5n
bmFuIFdhbmcgIDx4aW5nbmFuLndhbmdAaW50ZWwuY29tPgorCisgICAgICAgIEFkZCBleGNlcHRp
b24gZm9yIHRoZSBzZXR0ZXIgb2YgImZmdFNpemUiIGluIFJlYWx0aW1lQW5hbHlzZXJOb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
QW5hbHlzZXI6OnNldEZmdFNpemUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5oOgorICAgICAgICAoUmVhbHRpbWVBbmFseXNlcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZUFuYWx5c2VyTm9kZTo6c2V0RmZ0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmg6CisgICAg
ICAgIChSZWFsdGltZUFuYWx5c2VyTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9S
ZWFsdGltZUFuYWx5c2VyTm9kZS5pZGw6CisKIDIwMTItMDMtMjEgIExldmkgV2VpbnRyYXViICA8
bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVwZGF0ZSBMYXlvdXRVbml0IHVzYWdlIGlu
IGRlc2NlbmRhbnRzIG9mIFJlbmRlclJlcGxhY2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCA1NGE5ZDFjYjA0MDgw
YzJiYmU0ZTc3MjhmYjJkYzgzYzYxOTEyOThiLi4zZmExZWExNzU3NzM3MGM5MjIxMmY1Y2M2Mzk5
ZDZjMjAzY2U1NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1JlYWx0aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUmVhbHRpbWVBbmFseXNlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZWFsdGltZUFu
YWx5c2VyOjpyZXNldCgpCiAgICAgbV9tYWduaXR1ZGVCdWZmZXIuemVybygpOwogfQogCi12b2lk
IFJlYWx0aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90IHNpemUpCitpbnQgUmVhbHRpbWVB
bmFseXNlcjo6c2V0RmZ0U2l6ZShzaXplX3Qgc2l6ZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCkBAIC04NSwxMCArODUsOCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OnNldEZm
dFNpemUoc2l6ZV90IHNpemUpCiAgICAgdW5zaWduZWQgbG9nMnNpemUgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obG9nMihzaXplKSk7CiAgICAgYm9vbCBpc1BPVCgxVUwgPDwgbG9nMnNpemUgPT0g
c2l6ZSk7CiAKLSAgICBpZiAoIWlzUE9UIHx8IHNpemUgPiBNYXhGRlRTaXplIHx8IHNpemUgPCBN
aW5GRlRTaXplKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBnb29kIHRvIGFsc28g
c2V0IGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIWlzUE9U
IHx8IHNpemUgPiBNYXhGRlRTaXplIHx8IHNpemUgPCBNaW5GRlRTaXplKQorICAgICAgICByZXR1
cm4gLTE7CiAKICAgICBpZiAobV9mZnRTaXplICE9IHNpemUpIHsKICAgICAgICAgbV9hbmFseXNp
c0ZyYW1lID0gYWRvcHRQdHIobmV3IEZGVEZyYW1lKHNpemUpKTsKQEAgLTk2LDYgKzk0LDggQEAg
dm9pZCBSZWFsdGltZUFuYWx5c2VyOjpzZXRGZnRTaXplKHNpemVfdCBzaXplKQogICAgICAgICBt
X21hZ25pdHVkZUJ1ZmZlci5hbGxvY2F0ZShzaXplIC8gMik7CiAgICAgICAgIG1fZmZ0U2l6ZSA9
IHNpemU7CiAgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgUmVhbHRpbWVBbmFseXNl
cjo6d3JpdGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaApp
bmRleCAyNDJlYWNhZjA0NzY5ZjdmYTQyY2Q0YjI4OWVjZTExYWU5ZTBjNTFjLi5lMWIwZWM0MjA2
NjM3NGM4NDE5MjQxYzM0N2ZiMDgzNjBiYmM5OGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXNldCgpOwogCiAgICAgc2l6ZV90IGZmdFNpemUoKSBjb25zdCB7
IHJldHVybiBtX2ZmdFNpemU7IH0KLSAgICB2b2lkIHNldEZmdFNpemUoc2l6ZV90IHNpemUpOwor
ICAgIGludCBzZXRGZnRTaXplKHNpemVfdCk7CiAKICAgICB1bnNpZ25lZCBmcmVxdWVuY3lCaW5D
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmZ0U2l6ZSAvIDI7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmNwcApp
bmRleCA4ZDc0YTY3YTgwYTcyNzY3ZDc4YTA2ZWRkODZmYTcyN2I2M2RkN2VmLi5mYjYyZTNmYmNi
YzBlNGNjNzEyNDg1YWVmNDhkOWE1Mjc2ZmU4Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmNwcApAQCAtMzEs
NiArMzEsOCBAQAogI2luY2x1ZGUgIkF1ZGlvTm9kZUlucHV0LmgiCiAjaW5jbHVkZSAiQXVkaW9O
b2RlT3V0cHV0LmgiCiAKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogUmVhbHRpbWVBbmFseXNlck5vZGU6OlJlYWx0aW1lQW5hbHlzZXJOb2RlKEF1
ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTgzLDYgKzg1LDEyIEBA
IHZvaWQgUmVhbHRpbWVBbmFseXNlck5vZGU6OnJlc2V0KCkKICAgICBtX2FuYWx5c2VyLnJlc2V0
KCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVBbmFseXNlck5vZGU6OnNldEZmdFNpemUodW5zaWduZWQg
aW50IHNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX2FuYWx5c2VyLnNldEZm
dFNpemUoc2l6ZSkgPCAwKQorICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2Vy
Tm9kZS5oCmluZGV4IDAyMjE3OWZjNjFiZWJjN2U1Yzg0ZDFmMmQwMTZlNThiNjA1NzQyMDMuLmNl
MzY0YTk5OTVlZTZhYzc2Y2QzZTQ2NmYxZTFjZmNiNDIxN2YwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgLy8gSmF2YXNjcmlwdCBiaW5kaW5ncwogICAg
IHVuc2lnbmVkIGludCBmZnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9hbmFseXNlci5mZnRTaXpl
KCk7IH0KLSAgICB2b2lkIHNldEZmdFNpemUodW5zaWduZWQgaW50IHNpemUpIHsgbV9hbmFseXNl
ci5zZXRGZnRTaXplKHNpemUpOyB9CisgICAgdm9pZCBzZXRGZnRTaXplKHVuc2lnbmVkIGludCBz
aXplLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB1bnNpZ25lZCBmcmVxdWVuY3lCaW5Db3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fYW5hbHlzZXIuZnJlcXVlbmN5QmluQ291bnQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJO
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNl
ck5vZGUuaWRsCmluZGV4IDUwZWRiYzE3NGI4ZDljMTZiOGRhMGVkZTZiMTM3NTE1YWE1NGM1MTEu
LmRjMmRiODA0ZmY1MGIxMTcwMWU1NDc5OGQ0NmEwZjBmN2IxNjRjMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUu
aWRsCkBAIC0yNyw3ICsyNyw4IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAgICAgIENvbmRpdGlvbmFs
PVdFQl9BVURJTywKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKICAgICBdIFJlYWx0aW1l
QW5hbHlzZXJOb2RlIDogQXVkaW9Ob2RlIHsKLSAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgZmZ0U2l6ZTsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZmZ0U2l6ZQorICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmcmVxdWVuY3lCaW5Db3VudDsKIAogICAgICAgICAvLyBt
aW5EZWNpYmVscyAvIG1heERlY2liZWxzIHJlcHJlc2VudCB0aGUgcmFuZ2UgdG8gc2NhbGUgdGhl
IEZGVCBhbmFseXNpcyBkYXRhIGZvciBjb252ZXJzaW9uIHRvIHVuc2lnbmVkIGJ5dGUgdmFsdWVz
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDhlZDEyMjcxZDE5YjBiMTQwYjYxZTE1ZDU5Njg1YmMyZmM2ZmU4N2MuLmVlM2Zk
MWVjZWYxM2JkYjcwOGQ2YjVmZmM4NDc4OGZmY2E4MGYzN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wMy0yMSAgWGluZ25hbiBXYW5nICA8eGluZ25hbi53YW5nQGludGVsLmNvbT4KKwor
ICAgICAgICBBZGQgZXhjZXB0aW9uIGZvciB0aGUgc2V0dGVyIG9mICJmZnRTaXplIiBpbiBSZWFs
dGltZUFuYWx5c2VyTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODE3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHdlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbDoKKwogMjAx
Mi0wMy0yMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtRdF0gZmFzdC9jc3MvcmVzaXplLXNpbmdsZS1heGlzLmh0bWwgdGltZW91dApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemlu
Zy1leHBlY3RlZC50eHQKaW5kZXggNGIwZWE2MGIyOWRhNWFhODVmZWYzY2M4NTU5ZGFjYmYyNGRk
NDk2OC4uYTdjNGMzZjhmNmUyZDZkYTg2M2E3MmM3NjgzODMxMjQ0NDExMjlhYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1z
aXppbmctZXhwZWN0ZWQudHh0CkBAIC0yLDYgKzIsNyBAQCBUZXN0IHRoYXQgcmUtc2l6aW5nIHRo
ZSBGRlQgYXJyYXlzIGRvZXMgbm90IGZhaWwuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUuCiBQQVNTIHdlYmtp
dEF1ZGlvQ29udGV4dCBzdXJ2aXZlZCBtdWx0aXBsZSBpbnZhbGlkIEZGVCBhcnJheSByZXNpemlu
Z3MuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwKaW5kZXggYmEy
ZmZkNGI0ZGUxY2NiZmY1YjlkMDNhOGMzYzcxN2NiZDIxNGVmNC4uNTFkOTBmZDE0NzY4OGQ2ODlm
YWNjZjNjZmIxMzRhZDA3ZDY0MDc4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
cmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwKQEAgLTE4LDEwICsxOCwxNSBAQCBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwogfQogCit2YXIgcmVzdWx0ID0gZmFsc2U7CiB2YXIgZG9UZXN0
ID0gZnVuY3Rpb24oZmZ0U2l6ZSkgewogICAgIHZhciBjID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgxLCAxMDAwLCA0NDEwMCk7CiAgICAgdmFyIGEgPSBjLmNyZWF0ZUFuYWx5c2VyKCk7Ci0gICAg
YS5mZnRTaXplID0gZmZ0U2l6ZTsKKyAgICB0cnkgeworICAgICAgICBhLmZmdFNpemUgPSBmZnRT
aXplOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICByZXN1bHQgPSB0cnVlOworICAgIH0KICAg
ICAvLyBUaGlzIGFyYml0cmFyeSBzaXplIGRvZXMgbm90IGFmZmVjdCB0aGUgY29ycmVjdG5lc3Mg
b2YgdGhlIHRlc3QuCiAgICAgdmFyIGFyciA9IG5ldyBGbG9hdDMyQXJyYXkoMTAwKTsKICAgICBh
LmdldEZsb2F0RnJlcXVlbmN5RGF0YShhcnIpOwpAQCAtMzUsNiArNDAsMTEgQEAgZm9yICh2YXIg
aSA9IDI7IGkgPD0gMHgyMDAwMDsgaSAqPSAyKSB7CiAgICAgZG9UZXN0KGkgKyAxKTsKIH0KIAor
aWYgKHJlc3VsdCkKKyAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2Fs
IGZmdFNpemUuIik7CitlbHNlCisgICAgdGVzdEZhaWxlZCgiTm8gZXhjZXB0aW9uIHRocm93biBm
b3IgaWxsZWdhbCBmZnRTaXplLiIpOworCiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQogICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIHRlc3RQYXNzZWQoIndl
YmtpdEF1ZGlvQ29udGV4dCBzdXJ2aXZlZCBtdWx0aXBsZSBpbnZhbGlkIEZGVCBhcnJheSByZXNp
emluZ3MuIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1k
b3duLW1peGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1t
aXhpbmcuaHRtbAppbmRleCA1NmIyMmQwMDU5MmY2ODI0MGY3YTRkZjcwYzY0MDFjNWEyNmEwNjFi
Li4wZDRlNTc2ZWNhYmVkM2ZkYTBmMWI0NzYzMTFmMmJkZGQxODQ5ZWRiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKQEAgLTE1LDcg
KzE1LDcgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB3aGV0aGVyIGRvd24gbWl4
aW5nIGZyb20gc3RlcmVvIHRvIG1vbm8gd2lsbCBjYXUKIAogdmFyIHNhbXBsZVJhdGUgPSA0NDEw
MC4wOwogdmFyIHJlbmRlckxlbmd0aFNlY29uZHMgPSAwLjE7Ci12YXIgZmZ0U2l6ZSA9IDMyOwor
dmFyIGZmdFNpemUgPSAyNTY7CiAKIHZhciBjb250ZXh0OwogdmFyIHRvbmVCdWZmZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133204</attachid>
            <date>2012-03-22 01:27:15 -0700</date>
            <delta_ts>2012-03-22 19:01:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81748-20120322163031.patch</filename>
            <type>text/plain</type>
            <size>10255</size>
            <attacher name="Xingnan Wang">xingnan.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY3YWY3YWM2NzY5MDIw
YjJiMGFmMzZkZThlZjYzMWYxNDEzOGNlZi4uNDllMjlhMWZhNTU1ZjJiZWRiNDUxZmM3NjMyYTRm
MzcwMTAyMmEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAzLTIxICBYaW5n
bmFuIFdhbmcgIDx4aW5nbmFuLndhbmdAaW50ZWwuY29tPgorCisgICAgICAgIEFkZCBleGNlcHRp
b24gZm9yIHRoZSBzZXR0ZXIgb2YgImZmdFNpemUiIGluIFJlYWx0aW1lQW5hbHlzZXJOb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
QW5hbHlzZXI6OnNldEZmdFNpemUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5oOgorICAgICAgICAoUmVhbHRpbWVBbmFseXNlcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZUFuYWx5c2VyTm9kZTo6c2V0RmZ0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmg6CisgICAg
ICAgIChSZWFsdGltZUFuYWx5c2VyTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9S
ZWFsdGltZUFuYWx5c2VyTm9kZS5pZGw6CisKIDIwMTItMDMtMjEgIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTExNjM1KTogQXNzZXJ0aW9u
IGZhaWx1cmUgaW4gUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcygpICghbGluZUNv
bnRleHRzLnNpemUoKSkgaW4gbWFueSBmbGV4Ym94IHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCAwMmRmZWRk
MWVmYjMyZDhjZjAwNDM0YmIyNmFlZDczNTlmZWE3NmVlLi4zNzU3Y2VjZjY3ZTc4Yzc1MGJhMTY0
ODhiOGIxNDVkY2FmMTkyZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBSZWFs
dGltZUFuYWx5c2VyOjpyZXNldCgpCiAgICAgbV9tYWduaXR1ZGVCdWZmZXIuemVybygpOwogfQog
Ci12b2lkIFJlYWx0aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90IHNpemUpCitib29sIFJl
YWx0aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIApAQCAtODYsMTAgKzg2LDggQEAgdm9pZCBSZWFsdGltZUFuYWx5c2Vy
OjpzZXRGZnRTaXplKHNpemVfdCBzaXplKQogICAgIHVuc2lnbmVkIGxvZzJzaXplID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGxvZzIoc2l6ZSkpOwogICAgIGJvb2wgaXNQT1QoMVVMIDw8IGxvZzJz
aXplID09IHNpemUpOwogCi0gICAgaWYgKCFpc1BPVCB8fCBzaXplID4gTWF4RkZUU2l6ZSB8fCBz
aXplIDwgTWluRkZUU2l6ZSkgewotICAgICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ29vZCB0
byBhbHNvIHNldCBhbiBleGNlcHRpb24uCi0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYg
KCFpc1BPVCB8fCBzaXplID4gTWF4RkZUU2l6ZSB8fCBzaXplIDwgTWluRkZUU2l6ZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fZmZ0U2l6ZSAhPSBzaXplKSB7CiAgICAgICAg
IG1fYW5hbHlzaXNGcmFtZSA9IGFkb3B0UHRyKG5ldyBGRlRGcmFtZShzaXplKSk7CkBAIC05Nyw2
ICs5NSw4IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6c2V0RmZ0U2l6ZShzaXplX3Qgc2l6ZSkK
ICAgICAgICAgbV9tYWduaXR1ZGVCdWZmZXIuYWxsb2NhdGUoc2l6ZSAvIDIpOwogICAgICAgICBt
X2ZmdFNpemUgPSBzaXplOwogICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJl
YWx0aW1lQW5hbHlzZXI6OndyaXRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1Rv
UHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVh
bHRpbWVBbmFseXNlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGlt
ZUFuYWx5c2VyLmgKaW5kZXggMjQyZWFjYWYwNDc2OWY3ZmE0MmNkNGIyODllY2UxMWFlOWUwYzUx
Yy4uMDJlYTA1ZjVlZWVhNWNmYWVmMjA2NTMzNTBkZjQyM2YzOWE5YzAwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKQEAgLTQ0
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHNpemVfdCBmZnRT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9mZnRTaXplOyB9Ci0gICAgdm9pZCBzZXRGZnRTaXplKHNp
emVfdCBzaXplKTsKKyAgICBib29sIHNldEZmdFNpemUoc2l6ZV90KTsKIAogICAgIHVuc2lnbmVk
IGZyZXF1ZW5jeUJpbkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9mZnRTaXplIC8gMjsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFs
eXNlck5vZGUuY3BwCmluZGV4IDhkNzRhNjdhODBhNzI3NjdkNzhhMDZlZGQ4NmZhNzI3YjYzZGQ3
ZWYuLmQwMzlmM2M2YWIyNmNhNGY1YzlhNjQ3OTM1ZTg3NjlmOWZhMDRlMDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5v
ZGUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgog
I2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04Myw2ICs4NCwxMiBAQCB2b2lkIFJlYWx0aW1l
QW5hbHlzZXJOb2RlOjpyZXNldCgpCiAgICAgbV9hbmFseXNlci5yZXNldCgpOwogfQogCit2b2lk
IFJlYWx0aW1lQW5hbHlzZXJOb2RlOjpzZXRGZnRTaXplKHVuc2lnbmVkIGludCBzaXplLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW1fYW5hbHlzZXIuc2V0RmZ0U2l6ZShzaXplKSkK
KyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaAppbmRleCAwMjIx
NzlmYzYxYmViYzdlNWM4NGQxZjJkMDE2ZTU4YjYwNTc0MjAzLi5jZTM2NGE5OTk1ZWU2YWM3NmNk
M2U0NjZmMWUxY2ZjYjQyMTdmMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIEphdmFzY3JpcHQgYmluZGluZ3MKICAgICB1bnNpZ25lZCBpbnQgZmZ0
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5hbHlzZXIuZmZ0U2l6ZSgpOyB9Ci0gICAgdm9pZCBz
ZXRGZnRTaXplKHVuc2lnbmVkIGludCBzaXplKSB7IG1fYW5hbHlzZXIuc2V0RmZ0U2l6ZShzaXpl
KTsgfQorICAgIHZvaWQgc2V0RmZ0U2l6ZSh1bnNpZ25lZCBpbnQgc2l6ZSwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgdW5zaWduZWQgZnJlcXVlbmN5QmluQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2FuYWx5c2VyLmZyZXF1ZW5jeUJpbkNvdW50KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbAppbmRleCA1
MGVkYmMxNzRiOGQ5YzE2YjhkYTBlZGU2YjEzNzUxNWFhNTRjNTExLi5kYzJkYjgwNGZmNTBiMTE3
MDFlNTQ3OThkNDZhMGYwZjdiMTY0YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbApAQCAtMjcsNyArMjcs
OCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAg
ICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiAgICAgXSBSZWFsdGltZUFuYWx5c2VyTm9kZSA6IEF1
ZGlvTm9kZSB7Ci0gICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZmdFNpemU7CisgICAg
ICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZmdFNpemUKKyAgICAgICAgICAgIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgZnJlcXVlbmN5QmluQ291bnQ7CiAKICAgICAgICAgLy8gbWluRGVjaWJlbHMgLyBtYXhE
ZWNpYmVscyByZXByZXNlbnQgdGhlIHJhbmdlIHRvIHNjYWxlIHRoZSBGRlQgYW5hbHlzaXMgZGF0
YSBmb3IgY29udmVyc2lvbiB0byB1bnNpZ25lZCBieXRlIHZhbHVlcy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNmYzYjA5
OWMzNzA5ZDI0NTgyODBjZDdhYjI0MTc5YTAzZGI3Mjc1Li5kMWY0YTc0NjMyYTA5MTJmMGVlZWVi
NzY5Zjg0YWUyMjJkMWEzMzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMjEgIFhp
bmduYW4gV2FuZyAgPHhpbmduYW4ud2FuZ0BpbnRlbC5jb20+CisKKyAgICAgICAgQWRkIGV4Y2Vw
dGlvbiBmb3IgdGhlIHNldHRlciBvZiAiZmZ0U2l6ZSIgaW4gUmVhbHRpbWVBbmFseXNlck5vZGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzQ4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJhdWRp
by9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
YmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWw6CisKIDIwMTItMDMtMjEgIFJhcGhhZWwg
S3VibyBkYSBDb3N0YSAgPHJha3Vjb0BGcmVlQlNELm9yZz4KIAogICAgICAgICBbRUZMXSBVbnJl
dmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0
aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0CmluZGV4IDRiMGVhNjBi
MjlkYTVhYTg1ZmVmM2NjODU1OWRhY2JmMjRkZDQ5NjguLmYwMWYxODcxNzY2MWY0ZTlkYzhmMGUw
NmM4YTdmNDA4Yzg5ZWVkZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0
aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsy
LDM4IEBAIFRlc3QgdGhhdCByZS1zaXppbmcgdGhlIEZGVCBhcnJheXMgZG9lcyBub3QgZmFpbC4K
IAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9y
IGlsbGVnYWwgZmZ0U2l6ZSAtMS4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBm
ZnRTaXplIDAuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSAxLgor
UEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMi4KK1BBU1MgRXhjZXB0
aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDMuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24g
Zm9yIGlsbGVnYWwgZmZ0U2l6ZSA0LgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2Fs
IGZmdFNpemUgNS4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDgu
CitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA5LgorUEFTUyBFeGNl
cHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTYuCitQQVNTIEV4Y2VwdGlvbiB0aHJv
d24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSAxNy4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxs
ZWdhbCBmZnRTaXplIDMyLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNp
emUgMzMuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA2NC4KK1BB
U1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDY1LgorUEFTUyBFeGNlcHRp
b24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTI5LgorUEFTUyBFeGNlcHRpb24gdGhyb3du
IGZvciBpbGxlZ2FsIGZmdFNpemUgMjU3LgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxl
Z2FsIGZmdFNpemUgNTEzLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNp
emUgMTAyNS4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDIwNDku
CitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA0MDk2LgorUEFTUyBF
eGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgNDA5Ny4KK1BBU1MgRXhjZXB0aW9u
IHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDgxOTIuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24g
Zm9yIGlsbGVnYWwgZmZ0U2l6ZSA4MTkzLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxl
Z2FsIGZmdFNpemUgMTYzODQuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0
U2l6ZSAxNjM4NS4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDMy
NzY4LgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMzI3NjkuCitQ
QVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA2NTUzNi4KK1BBU1MgRXhj
ZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDY1NTM3LgorUEFTUyBFeGNlcHRpb24g
dGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDcyLgorUEFTUyBFeGNlcHRpb24gdGhyb3du
IGZvciBpbGxlZ2FsIGZmdFNpemUgMTMxMDczLgogUEFTUyB3ZWJraXRBdWRpb0NvbnRleHQgc3Vy
dml2ZWQgbXVsdGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVzaXppbmdzLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9y
ZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jl
YWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sCmluZGV4IGJhMmZmZDRiNGRlMWNjYmZmNWI5
ZDAzYThjM2M3MTdjYmQyMTRlZjQuLmNhZDAwYzExYmI1OGNhNmE3MWY5ZDdlMGM5ZmJhYjNjZTgy
OTZlNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXIt
ZmZ0LXNpemluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlz
ZXItZmZ0LXNpemluZy5odG1sCkBAIC0xOCwyMSArMTgsMzAgQEAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIH0KIAotdmFyIGRvVGVzdCA9IGZ1bmN0aW9uKGZmdFNpemUpIHsKK3ZhciBkb1Rlc3QgPSBm
dW5jdGlvbihmZnRTaXplLCBpbGxlZ2FsKSB7CiAgICAgdmFyIGMgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKICAgICB2YXIgYSA9IGMuY3JlYXRlQW5hbHlzZXIoKTsK
LSAgICBhLmZmdFNpemUgPSBmZnRTaXplOworICAgIHRyeSB7CisgICAgICAgIGEuZmZ0U2l6ZSA9
IGZmdFNpemU7CisgICAgICAgIGlmIChpbGxlZ2FsKQorICAgICAgICAgICB0ZXN0RmFpbGVkKCJO
byBleGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUiICsgZmZ0U2l6ZSArICIuIik7
CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiB0aHJvd24g
Zm9yIGlsbGVnYWwgZmZ0U2l6ZSAiICsgZmZ0U2l6ZSArICIuIik7CisgICAgfQogICAgIC8vIFRo
aXMgYXJiaXRyYXJ5IHNpemUgZG9lcyBub3QgYWZmZWN0IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUg
dGVzdC4KICAgICB2YXIgYXJyID0gbmV3IEZsb2F0MzJBcnJheSgxMDApOwogICAgIGEuZ2V0Rmxv
YXRGcmVxdWVuY3lEYXRhKGFycik7CiB9CiAKLWRvVGVzdCgtMSk7Ci1kb1Rlc3QoMCk7Ci1kb1Rl
c3QoMSk7Citkb1Rlc3QoLTEsIHRydWUpOworZG9UZXN0KDAsIHRydWUpOworZG9UZXN0KDEsIHRy
dWUpOwogZm9yICh2YXIgaSA9IDI7IGkgPD0gMHgyMDAwMDsgaSAqPSAyKSB7Ci0gICAgZG9UZXN0
KGkpOwotICAgIGRvVGVzdChpICsgMSk7CisJaWYgKGkgPj0gMTI4ICYmIGkgPD0gMjA0OCkKKyAg
ICAgICAgZG9UZXN0KGksIGZhbHNlKTsKKyAgICBlbHNlCisgICAgICAgIGRvVGVzdChpLCB0cnVl
KTsKKyAgICBkb1Rlc3QoaSArIDEsIHRydWUpOwogfQogCiBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8t
ZG93bi1taXhpbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24t
bWl4aW5nLmh0bWwKaW5kZXggNTZiMjJkMDA1OTJmNjgyNDBmN2E0ZGY3MGM2NDAxYzVhMjZhMDYx
Yi4uN2MxNDUwMDA3MTcyNzE3OGFmMGNiZTZkNzM5ZGRmMGRlMGVhMDM1ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCkBAIC0xNSwx
MSArMTUsMTQgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB3aGV0aGVyIGRvd24g
bWl4aW5nIGZyb20gc3RlcmVvIHRvIG1vbm8gd2lsbCBjYXUKIAogdmFyIHNhbXBsZVJhdGUgPSA0
NDEwMC4wOwogdmFyIHJlbmRlckxlbmd0aFNlY29uZHMgPSAwLjE7Ci12YXIgZmZ0U2l6ZSA9IDMy
OwordmFyIGZmdFNpemUgPSAyNTY7CiAKIHZhciBjb250ZXh0OwogdmFyIHRvbmVCdWZmZXI7CiB2
YXIgYnVmZmVyU291cmNlOworCisvLyBGSVhNRTogSXRgcyBiZXR0ZXIgdG8gdXNlIHN0ZXJlbyBB
dWRpb0J1ZmZlciBpbnN0ZWFkIG9mIFJlYWx0aW1lQW5hbHlzZXJOb2RlLgorLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxODgxCiB2YXIgYW5hbHlzZXI7CiAKIGZ1
bmN0aW9uIGNyZWF0ZURhdGFCdWZmZXIoY29udGV4dCwgbGVuZ3RoSW5TZWNvbmRzKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133411</attachid>
            <date>2012-03-22 19:01:28 -0700</date>
            <delta_ts>2012-03-22 20:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81748-20120323100444.patch</filename>
            <type>text/plain</type>
            <size>9669</size>
            <attacher name="Xingnan Wang">xingnan.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjBlZTAzYzgzYjFm
OGViZjU5ZmVlYmE2N2M2YThhZmY4MGM0Yy4uOTFiNTA1YmY1OTU3N2RlMTI4ZDc5Zjc3YzFlYWM2
NWFiN2E0NzYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAzLTIyICBYaW5n
bmFuIFdhbmcgIDx4aW5nbmFuLndhbmdAaW50ZWwuY29tPgorCisgICAgICAgIEFkZCBleGNlcHRp
b24gZm9yIHRoZSBzZXR0ZXIgb2YgImZmdFNpemUiIGluIFJlYWx0aW1lQW5hbHlzZXJOb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc0OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
QW5hbHlzZXI6OnNldEZmdFNpemUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5oOgorICAgICAgICAoUmVhbHRpbWVBbmFseXNlcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZUFuYWx5c2VyTm9kZTo6c2V0RmZ0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmg6CisgICAg
ICAgIChSZWFsdGltZUFuYWx5c2VyTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9S
ZWFsdGltZUFuYWx5c2VyTm9kZS5pZGw6CisKIDIwMTItMDMtMjIgIFJhcGhhZWwgS3VibyBkYSBD
b3N0YSAgPHJha3Vjb0BGcmVlQlNELm9yZz4KIAogICAgICAgICBbQ01ha2VdIFVucmV2aWV3ZWQg
YnVpbGQgZml4IGFmdGVyIHIxMTE3NzguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCAwMmRmZWRkMWVmYjMyZDhjZjAw
NDM0YmIyNmFlZDczNTlmZWE3NmVlLi4zNzU3Y2VjZjY3ZTc4Yzc1MGJhMTY0ODhiOGIxNDVkY2Fm
MTkyZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVh
bHRpbWVBbmFseXNlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBSZWFsdGltZUFuYWx5c2Vy
OjpyZXNldCgpCiAgICAgbV9tYWduaXR1ZGVCdWZmZXIuemVybygpOwogfQogCi12b2lkIFJlYWx0
aW1lQW5hbHlzZXI6OnNldEZmdFNpemUoc2l6ZV90IHNpemUpCitib29sIFJlYWx0aW1lQW5hbHlz
ZXI6OnNldEZmdFNpemUoc2l6ZV90IHNpemUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIApAQCAtODYsMTAgKzg2LDggQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpzZXRGZnRTaXpl
KHNpemVfdCBzaXplKQogICAgIHVuc2lnbmVkIGxvZzJzaXplID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGxvZzIoc2l6ZSkpOwogICAgIGJvb2wgaXNQT1QoMVVMIDw8IGxvZzJzaXplID09IHNpemUp
OwogCi0gICAgaWYgKCFpc1BPVCB8fCBzaXplID4gTWF4RkZUU2l6ZSB8fCBzaXplIDwgTWluRkZU
U2l6ZSkgewotICAgICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ29vZCB0byBhbHNvIHNldCBh
biBleGNlcHRpb24uCi0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFpc1BPVCB8fCBz
aXplID4gTWF4RkZUU2l6ZSB8fCBzaXplIDwgTWluRkZUU2l6ZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKG1fZmZ0U2l6ZSAhPSBzaXplKSB7CiAgICAgICAgIG1fYW5hbHlzaXNG
cmFtZSA9IGFkb3B0UHRyKG5ldyBGRlRGcmFtZShzaXplKSk7CkBAIC05Nyw2ICs5NSw4IEBAIHZv
aWQgUmVhbHRpbWVBbmFseXNlcjo6c2V0RmZ0U2l6ZShzaXplX3Qgc2l6ZSkKICAgICAgICAgbV9t
YWduaXR1ZGVCdWZmZXIuYWxsb2NhdGUoc2l6ZSAvIDIpOwogICAgICAgICBtX2ZmdFNpemUgPSBz
aXplOwogICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFJlYWx0aW1lQW5hbHlz
ZXI6OndyaXRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgK
aW5kZXggMjQyZWFjYWYwNDc2OWY3ZmE0MmNkNGIyODllY2UxMWFlOWUwYzUxYy4uMDJlYTA1ZjVl
ZWVhNWNmYWVmMjA2NTMzNTBkZjQyM2YzOWE5YzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcmVzZXQoKTsKIAogICAgIHNpemVfdCBmZnRTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9mZnRTaXplOyB9Ci0gICAgdm9pZCBzZXRGZnRTaXplKHNpemVfdCBzaXplKTsK
KyAgICBib29sIHNldEZmdFNpemUoc2l6ZV90KTsKIAogICAgIHVuc2lnbmVkIGZyZXF1ZW5jeUJp
bkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9mZnRTaXplIC8gMjsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3Bw
CmluZGV4IDhkNzRhNjdhODBhNzI3NjdkNzhhMDZlZGQ4NmZhNzI3YjYzZGQ3ZWYuLmQwMzlmM2M2
YWIyNmNhNGY1YzlhNjQ3OTM1ZTg3NjlmOWZhMDRlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb05vZGVJbnB1dC5oIgogI2luY2x1ZGUgIkF1
ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC04Myw2ICs4NCwxMiBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXJOb2Rl
OjpyZXNldCgpCiAgICAgbV9hbmFseXNlci5yZXNldCgpOwogfQogCit2b2lkIFJlYWx0aW1lQW5h
bHlzZXJOb2RlOjpzZXRGZnRTaXplKHVuc2lnbmVkIGludCBzaXplLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIW1fYW5hbHlzZXIuc2V0RmZ0U2l6ZShzaXplKSkKKyAgICAgICAgZWMg
PSBOT1RfU1VQUE9SVEVEX0VSUjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlck5vZGUuaAppbmRleCAwMjIxNzlmYzYxYmViYzdl
NWM4NGQxZjJkMDE2ZTU4YjYwNTc0MjAzLi5jZTM2NGE5OTk1ZWU2YWM3NmNkM2U0NjZmMWUxY2Zj
YjQyMTdmMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Jl
YWx0aW1lQW5hbHlzZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9SZWFsdGltZUFuYWx5c2VyTm9kZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIEphdmFzY3JpcHQgYmluZGluZ3MKICAgICB1bnNpZ25lZCBpbnQgZmZ0U2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYW5hbHlzZXIuZmZ0U2l6ZSgpOyB9Ci0gICAgdm9pZCBzZXRGZnRTaXplKHVu
c2lnbmVkIGludCBzaXplKSB7IG1fYW5hbHlzZXIuc2V0RmZ0U2l6ZShzaXplKTsgfQorICAgIHZv
aWQgc2V0RmZ0U2l6ZSh1bnNpZ25lZCBpbnQgc2l6ZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
dW5zaWduZWQgZnJlcXVlbmN5QmluQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2FuYWx5c2VyLmZy
ZXF1ZW5jeUJpbkNvdW50KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbAppbmRleCA1MGVkYmMxNzRiOGQ5
YzE2YjhkYTBlZGU2YjEzNzUxNWFhNTRjNTExLi5kYzJkYjgwNGZmNTBiMTE3MDFlNTQ3OThkNDZh
MGYwZjdiMTY0YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbApAQCAtMjcsNyArMjcsOCBAQCBtb2R1bGUg
YXVkaW8gewogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAgIEpTR2VuZXJh
dGVUb0pTT2JqZWN0CiAgICAgXSBSZWFsdGltZUFuYWx5c2VyTm9kZSA6IEF1ZGlvTm9kZSB7Ci0g
ICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZmdFNpemU7CisgICAgICAgIGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGZmdFNpemUKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZnJlcXVl
bmN5QmluQ291bnQ7CiAKICAgICAgICAgLy8gbWluRGVjaWJlbHMgLyBtYXhEZWNpYmVscyByZXBy
ZXNlbnQgdGhlIHJhbmdlIHRvIHNjYWxlIHRoZSBGRlQgYW5hbHlzaXMgZGF0YSBmb3IgY29udmVy
c2lvbiB0byB1bnNpZ25lZCBieXRlIHZhbHVlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYTk1MzY3ZjI1NzkzYmUyNDQ4
ODNjYTA0ODMwMzg3MDdkOGU1MjJhLi5hY2FhYzNhNzk3YzIxMWQ5MjA2ZTA2ODlhYjAyYTQ2NDAz
NjFjMGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMjIgIFhpbmduYW4gV2FuZyAg
PHhpbmduYW4ud2FuZ0BpbnRlbC5jb20+CisKKyAgICAgICAgQWRkIGV4Y2VwdGlvbiBmb3IgdGhl
IHNldHRlciBvZiAiZmZ0U2l6ZSIgaW4gUmVhbHRpbWVBbmFseXNlck5vZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJhdWRpby9yZWFsdGltZWFu
YWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL3JlYWx0
aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sOgorCiAyMDEyLTAzLTIyICBEYXZlIFRoYXJwICA8
ZHRoYXJwQGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIFFUIDQuOCBzb2Z0IGh5cGhlbiBidWcg
aGFzIG5vIGZhaWxpbmcgdGVzdCBjYXNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLWV4cGVjdGVkLnR4dAppbmRleCA0
YjBlYTYwYjI5ZGE1YWE4NWZlZjNjYzg1NTlkYWNiZjI0ZGQ0OTY4Li45ZGE1MzUwMDEyZTM3MzA5
N2Q5ZTg3YzMyYzE2ZDM4YjU5Y2RlZDRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy1leHBlY3RlZC50eHQKQEAg
LTIsNiArMiw0MyBAQCBUZXN0IHRoYXQgcmUtc2l6aW5nIHRoZSBGRlQgYXJyYXlzIGRvZXMgbm90
IGZhaWwuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAorUEFTUyBFeGNlcHRpb24gdGhy
b3duIGZvciBpbGxlZ2FsIGZmdFNpemUgLTEuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGls
bGVnYWwgZmZ0U2l6ZSAwLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNp
emUgMS4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDIuCitQQVNT
IEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSAzLgorUEFTUyBFeGNlcHRpb24g
dGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgNC4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3Ig
aWxsZWdhbCBmZnRTaXplIDUuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0
U2l6ZSA4LgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgOS4KK1BB
U1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDE2LgorUEFTUyBFeGNlcHRp
b24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMTcuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24g
Zm9yIGlsbGVnYWwgZmZ0U2l6ZSAzMi4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdh
bCBmZnRTaXplIDMzLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUg
NjQuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA2NS4KK1BBU1Mg
U3VjY2Vzc2Z1bGx5IHNldCBsZWdhbCBmZnRTaXplIDEyOC4KK1BBU1MgRXhjZXB0aW9uIHRocm93
biBmb3IgaWxsZWdhbCBmZnRTaXplIDEyOS4KK1BBU1MgU3VjY2Vzc2Z1bGx5IHNldCBsZWdhbCBm
ZnRTaXplIDI1Ni4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDI1
Ny4KK1BBU1MgU3VjY2Vzc2Z1bGx5IHNldCBsZWdhbCBmZnRTaXplIDUxMi4KK1BBU1MgRXhjZXB0
aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDUxMy4KK1BBU1MgU3VjY2Vzc2Z1bGx5IHNl
dCBsZWdhbCBmZnRTaXplIDEwMjQuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwg
ZmZ0U2l6ZSAxMDI1LgorUEFTUyBTdWNjZXNzZnVsbHkgc2V0IGxlZ2FsIGZmdFNpemUgMjA0OC4K
K1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDIwNDkuCitQQVNTIEV4
Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA0MDk2LgorUEFTUyBFeGNlcHRpb24g
dGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgNDA5Ny4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBm
b3IgaWxsZWdhbCBmZnRTaXplIDgxOTIuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVn
YWwgZmZ0U2l6ZSA4MTkzLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNp
emUgMTYzODQuCitQQVNTIEV4Y2VwdGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSAxNjM4
NS4KK1BBU1MgRXhjZXB0aW9uIHRocm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDMyNzY4LgorUEFT
UyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgMzI3NjkuCitQQVNTIEV4Y2Vw
dGlvbiB0aHJvd24gZm9yIGlsbGVnYWwgZmZ0U2l6ZSA2NTUzNi4KK1BBU1MgRXhjZXB0aW9uIHRo
cm93biBmb3IgaWxsZWdhbCBmZnRTaXplIDY1NTM3LgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZv
ciBpbGxlZ2FsIGZmdFNpemUgMTMxMDcyLgorUEFTUyBFeGNlcHRpb24gdGhyb3duIGZvciBpbGxl
Z2FsIGZmdFNpemUgMTMxMDczLgogUEFTUyB3ZWJraXRBdWRpb0NvbnRleHQgc3Vydml2ZWQgbXVs
dGlwbGUgaW52YWxpZCBGRlQgYXJyYXkgcmVzaXppbmdzLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFu
YWx5c2VyLWZmdC1zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5h
bHlzZXItZmZ0LXNpemluZy5odG1sCmluZGV4IGJhMmZmZDRiNGRlMWNjYmZmNWI5ZDAzYThjM2M3
MTdjYmQyMTRlZjQuLjEzYTVmMzhmMzNmYWU0ZjkyZWUxODE0NDBlNWE1NmQ5YjMxMTUwYzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemlu
Zy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNp
emluZy5odG1sCkBAIC0xOCwyMSArMTgsMzIgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAot
dmFyIGRvVGVzdCA9IGZ1bmN0aW9uKGZmdFNpemUpIHsKK3ZhciBkb1Rlc3QgPSBmdW5jdGlvbihm
ZnRTaXplLCBpbGxlZ2FsKSB7CiAgICAgdmFyIGMgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEs
IDEwMDAsIDQ0MTAwKTsKICAgICB2YXIgYSA9IGMuY3JlYXRlQW5hbHlzZXIoKTsKLSAgICBhLmZm
dFNpemUgPSBmZnRTaXplOworICAgIHRyeSB7CisgICAgICAgIGEuZmZ0U2l6ZSA9IGZmdFNpemU7
CisgICAgICAgIGlmIChpbGxlZ2FsKQorICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBleGNlcHRp
b24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgIiArIGZmdFNpemUgKyAiLiIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBzZXQgbGVnYWwgZmZ0
U2l6ZSAiICsgIGZmdFNpemUgKyAiLiIpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0
UGFzc2VkKCJFeGNlcHRpb24gdGhyb3duIGZvciBpbGxlZ2FsIGZmdFNpemUgIiArIGZmdFNpemUg
KyAiLiIpOworICAgIH0KICAgICAvLyBUaGlzIGFyYml0cmFyeSBzaXplIGRvZXMgbm90IGFmZmVj
dCB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIHRlc3QuCiAgICAgdmFyIGFyciA9IG5ldyBGbG9hdDMy
QXJyYXkoMTAwKTsKICAgICBhLmdldEZsb2F0RnJlcXVlbmN5RGF0YShhcnIpOwogfQogCi1kb1Rl
c3QoLTEpOwotZG9UZXN0KDApOwotZG9UZXN0KDEpOworZG9UZXN0KC0xLCB0cnVlKTsKK2RvVGVz
dCgwLCB0cnVlKTsKK2RvVGVzdCgxLCB0cnVlKTsKIGZvciAodmFyIGkgPSAyOyBpIDw9IDB4MjAw
MDA7IGkgKj0gMikgewotICAgIGRvVGVzdChpKTsKLSAgICBkb1Rlc3QoaSArIDEpOworCWlmIChp
ID49IDEyOCAmJiBpIDw9IDIwNDgpCisgICAgICAgIGRvVGVzdChpLCBmYWxzZSk7CisgICAgZWxz
ZQorICAgICAgICBkb1Rlc3QoaSwgdHJ1ZSk7CisgICAgZG9UZXN0KGkgKyAxLCB0cnVlKTsKIH0K
IAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>