<?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>68206</bug_id>
          
          <creation_ts>2011-09-15 18:44:13 -0700</creation_ts>
          <short_desc>Ensure TestWebKitAPI works on mac, win, chromium-mac and chromium-linux</short_desc>
          <delta_ts>2011-09-21 10:37:08 -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>Tools / Tests</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="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>dpranke</cc>
    
    <cc>dslomov</cc>
    
    <cc>fishd</cc>
    
    <cc>keishi</cc>
    
    <cc>levin</cc>
    
    <cc>sam</cc>
    
    <cc>shinyak</cc>
    
    <cc>tony</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>468223</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-15 18:44:13 -0700</bug_when>
    <thetext>The patch to TestWebKitAPI may break some platforms or configurations. First, there were some changes after the patch was uploaded, and the new code after the patch may break. Second, I didn&apos;t verified the patch on all platforms and configurations. I&apos;m working on making TestWebKitAPI work on mac, win, chromium-mac, chromium-win and chromium-linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468224</commentid>
    <comment_count>1</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-15 18:45:37 -0700</bug_when>
    <thetext>Specifically, should fix the break on chromium&apos;s shared windows build (http://www.chromium.org/developers/how-tos/component-build).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468246</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-09-15 19:23:04 -0700</bug_when>
    <thetext>Okay, I spent a half hour or so staring at this on the win shared build and I think you&apos;ve got a couple of things to fix before this&apos;ll work.

this TestWebKitAPI target is new to me ... it looks like it is intended to be the unit test driver for c++ tests in webkit/webcore/etc.?

At any rate, it appears to be linking in both webkit and wtf, and it looks like the existing files for TestWebKitAPI are unit tests for WTF ...

Here&apos;s where the problems come up ... Chromium is only building wtf as a static library; it gets included into webkit.dll, but the WTF symbols aren&apos;t (and shouldn&apos;t be) exported from that. 

the WTF library has internal dependencies on a function called currentTime; Chromium overrides the default WTF implementation with one found in ChromiumCurrentTime. Which, unfortunately, is not built as part of wtf.lib, it&apos;s built as part of webkit.dll. 

So, wtf can&apos;t link without webkit.dll. However, there&apos;s no good way to export the CurrentTime symbol out of webkit.dll on windows in a way where the __declspec(dllexport) makes sense, without creating a compile time dependency from wtf onto webkit.

You can hack around this by including ChromiumCurrentTime.cpp and ChromiumThreading.cpp (apparently also needed) directly into the TestWebKitAPI sources list, but of course you can&apos;t call the currentTime function() without initializing webkit_support and including that as a dependency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468282</commentid>
    <comment_count>3</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-15 20:59:26 -0700</bug_when>
    <thetext>(In reply to comment #2)

Thanks Dirk for detailed and helpful explanation.

I just tried component=shared_library in a WebKit source tree with chromium dependencies on Linux, and encountered linking errors:

/usr/bin/ld: out/Release/obj.target/DumpRenderTree/Tools/DumpRenderTree/chromium/TestShell.o: in function TestShell::bindJSObjectsToWindow(WebKit::WebFrame*):TestShell.cpp(.text._ZN9TestShell21bindJSObjectsToWindowEPN6WebKit8WebFrameE+0x17): error: undefined reference to &apos;WebKit::WebTestingSupport::injectInternalsObject(WebKit::WebFrame*)&apos;
/usr/bin/ld: out/Release/obj.target/DumpRenderTree/Tools/DumpRenderTree/chromium/TestShell.o: in function TestShell::resetTestController():TestShell.cpp(.text._ZN9TestShell19resetTestControllerEv+0x132): error: undefined reference to &apos;WebKit::WebTestingSupport::resetInternalsObject(WebKit::WebFrame*)&apos;

I tried to fix it by moving the &apos;component==&quot;shared_library&quot;&apos; condition out of &apos;inside_chromium_build==1&apos; condition (WebKit.gyp about line 619), and I can successfully build all targets.

Is it intended that component=shared_library doesn&apos;t work for &apos;build-wekit --chromium&apos;?

BTW do you know what Source/WebCore/gyp/WebCore.gyp (not .../WebCore.gyp/WebCore.gyp) and Source/JavaScriptCore/gyp/JavaScriptCore.gyp are for?

&gt; Okay, I spent a half hour or so staring at this on the win shared build and I think you&apos;ve got a couple of things to fix before this&apos;ll work.
&gt; 
&gt; this TestWebKitAPI target is new to me ... it looks like it is intended to be the unit test driver for c++ tests in webkit/webcore/etc.?
&gt; 

I think so. However, for now it contains only tests for WTF and WebKit2. I touched this because I&apos;m making some changes to WTF::StringBuilder and want unit tests for it.

&gt; At any rate, it appears to be linking in both webkit and wtf, and it looks like the existing files for TestWebKitAPI are unit tests for WTF ...
&gt; 
&gt; Here&apos;s where the problems come up ... Chromium is only building wtf as a static library; it gets included into webkit.dll, but the WTF symbols aren&apos;t (and shouldn&apos;t be) exported from that. 
&gt; 
&gt; the WTF library has internal dependencies on a function called currentTime; Chromium overrides the default WTF implementation with one found in ChromiumCurrentTime. Which, unfortunately, is not built as part of wtf.lib, it&apos;s built as part of webkit.dll. 
&gt; 
&gt; So, wtf can&apos;t link without webkit.dll. However, there&apos;s no good way to export the CurrentTime symbol out of webkit.dll on windows in a way where the __declspec(dllexport) makes sense, without creating a compile time dependency from wtf onto webkit.
&gt; 
&gt; You can hack around this by including ChromiumCurrentTime.cpp and ChromiumThreading.cpp (apparently also needed) directly into the TestWebKitAPI sources list, but of course you can&apos;t call the currentTime function() without initializing webkit_support and including that as a dependency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468313</commentid>
    <comment_count>4</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-15 23:02:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; Is it intended that component=shared_library doesn&apos;t work for &apos;build-wekit --chromium&apos;?
&gt;
Never mind. I&apos;ve found the reason and will fix it.
 
&gt; BTW do you know what Source/WebCore/gyp/WebCore.gyp (not .../WebCore.gyp/WebCore.gyp) and Source/JavaScriptCore/gyp/JavaScriptCore.gyp are for?
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468405</commentid>
    <comment_count>5</comment_count>
      <attachid>107629</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-16 02:47:21 -0700</bug_when>
    <thetext>Created attachment 107629
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469861</commentid>
    <comment_count>6</comment_count>
      <attachid>107629</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-09-19 18:51:31 -0700</bug_when>
    <thetext>Comment on attachment 107629
patch

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

&gt; Is it intended that component=shared_library doesn&apos;t work for &apos;build-wekit --chromium&apos;?

We don&apos;t have a bot for this, so I&apos;m not surprised it doesn&apos;t work.

I don&apos;t really understand exactly how TestWebKitAPI works on win/mac and I don&apos;t have access to a win/mac right now.  I&apos;ll look again tomorrow.

&gt; Source/WebKit/chromium/WebKit.gyp:1265
&gt; +                &apos;public&apos;,

Is this include only needed for Chromium{CurrentTime,Threading}.cpp?  If so, maybe it should be in the condition below?

&gt; Source/WebKit/chromium/WebKit.gyp:1270
&gt; +                &apos;&apos;

Nit: Remove this blank line

&gt; Source/WebKit/chromium/WebKit.gyp:1276
&gt; +                        &apos;src/ChromiumCurrentTime.cpp&apos;,
&gt; +                        &apos;src/ChromiumThreading.cpp&apos;,

In the shared_library build on windows, do we call currentTime() or ChromiumThreading::callOnMainThread()?  Should we include separate stub implementations when linking TestWebKitAPI rather than using the definitions in webkit?  For example, we could add stubs in WebKit/Tools/TestWebKitAPI/chromium/.

&gt; Tools/TestWebKitAPI/Tests/WTF/MetaAllocator.cpp:32
&gt; -#include &lt;JavaScriptCore/MetaAllocator.h&gt;
&gt; -#include &lt;JavaScriptCore/Vector.h&gt;
&gt; +#include &lt;stdarg.h&gt;
&gt; +#include &lt;wtf/MetaAllocator.h&gt;
&gt; +#include &lt;wtf/Vector.h&gt;

I don&apos;t understand this include/ForwardingHeader change.  Can you describe why this is needed in the ChangeLog?  Why does it work in the Apple Mac build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469867</commentid>
    <comment_count>7</comment_count>
      <attachid>107629</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-19 19:16:14 -0700</bug_when>
    <thetext>Comment on attachment 107629
patch

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

&gt;&gt; Source/WebKit/chromium/WebKit.gyp:1265
&gt;&gt; +                &apos;public&apos;,
&gt; 
&gt; Is this include only needed for Chromium{CurrentTime,Threading}.cpp?  If so, maybe it should be in the condition below?

tests/RunAllTests.cpp also needs it.

&gt;&gt; Source/WebKit/chromium/WebKit.gyp:1270
&gt;&gt; +                &apos;&apos;
&gt; 
&gt; Nit: Remove this blank line

Will change it.

&gt;&gt; Source/WebKit/chromium/WebKit.gyp:1276
&gt;&gt; +                        &apos;src/ChromiumThreading.cpp&apos;,
&gt; 
&gt; In the shared_library build on windows, do we call currentTime() or ChromiumThreading::callOnMainThread()?  Should we include separate stub implementations when linking TestWebKitAPI rather than using the definitions in webkit?  For example, we could add stubs in WebKit/Tools/TestWebKitAPI/chromium/.

I reused the tests/RunAllTests.cpp which uses webkit_support. As webkit_support is the testing support of Chromium, I think it&apos;s reasonable for TestWebKitAPI on Chromium to reuse the same facility, and also reuse other stuffs of Chromium WebKit as much as possible. What&apos;s your opinion?

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/MetaAllocator.cpp:32
&gt;&gt; +#include &lt;wtf/Vector.h&gt;
&gt; 
&gt; I don&apos;t understand this include/ForwardingHeader change.  Can you describe why this is needed in the ChangeLog?  Why does it work in the Apple Mac build?

Originally in Apple Mac the code uses #include &lt;JavaScriptCore/...&gt; to include WTF headers in a magic way (I don&apos;t know the details of how it works). However, the path &lt;JavaScriptCore/Vector.h&gt; doesn&apos;t exist on some other platforms, so we should change it to &lt;wtf/Vector.h&gt;, but because Mac still expects &lt;JavaScriptCore/Vector.h&gt;, to resolve this problem, each header that is included in &lt;wtf/...&gt; way should have a forwarding header file to include &lt;JavaScriptCore/...&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470197</commentid>
    <comment_count>8</comment_count>
      <attachid>107629</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-09-20 11:16:40 -0700</bug_when>
    <thetext>Comment on attachment 107629
patch

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

&gt;&gt;&gt; Source/WebKit/chromium/WebKit.gyp:1276

&gt;&gt; 
&gt;&gt; In the shared_library build on windows, do we call currentTime() or ChromiumThreading::callOnMainThread()?  Should we include separate stub implementations when linking TestWebKitAPI rather than using the definitions in webkit?  For example, we could add stubs in WebKit/Tools/TestWebKitAPI/chromium/.
&gt; 
&gt; I reused the tests/RunAllTests.cpp which uses webkit_support. As webkit_support is the testing support of Chromium, I think it&apos;s reasonable for TestWebKitAPI on Chromium to reuse the same facility, and also reuse other stuffs of Chromium WebKit as much as possible. What&apos;s your opinion?

On further inspection, this seems fine.  I was a confused by how this works in the shared_library case, but have convinced myself that this is OK.  Please add a comment here explaining why this is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470559</commentid>
    <comment_count>9</comment_count>
      <attachid>108100</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-20 19:15:46 -0700</bug_when>
    <thetext>Created attachment 108100
patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470916</commentid>
    <comment_count>10</comment_count>
      <attachid>108100</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 10:37:03 -0700</bug_when>
    <thetext>Comment on attachment 108100
patch v2

Clearing flags on attachment: 108100

Committed r95647: &lt;http://trac.webkit.org/changeset/95647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470917</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 10:37:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107629</attachid>
            <date>2011-09-16 02:47:21 -0700</date>
            <delta_ts>2011-09-20 19:15:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>68206</filename>
            <type>text/plain</type>
            <size>6651</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9NZXRhQWxsb2NhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL01l
dGFBbGxvY2F0b3IuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdI
ZWFkZXJzL3d0Zi9NZXRhQWxsb2NhdG9yLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9NZXRhQWxsb2NhdG9yX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0Rf
TWV0YUFsbG9jYXRvcl9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWV0YUFsbG9jYXRvci5o
PgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvUmVk
QmxhY2tUcmVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL1JlZEJsYWNrVHJlZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL1JlZEJsYWNrVHJlZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfUmVkQmxhY2tUcmVlX2gKKyNkZWZpbmUgV2ViQ29y
ZV9GV0RfUmVkQmxhY2tUcmVlX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZWRCbGFja1Ry
ZWUuaD4KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1
Mjc0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMiBAQAorMjAxMS0wOS0xNiAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIEVuc3VyZSBUZXN0V2ViS2l0QVBJIHdvcmtzIG9uIG1h
Yywgd2luLCBjaHJvbWl1bS1tYWMsIGNocm9taXVtLXdpbiBhbmQgY2hyb21pdW0tbGludXgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4MjA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
OgorCiAyMDExLTA5LTE1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgU2lnaC4gIE1pc3NlZCB0aGlzIG9uZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAJKHJldmlzaW9uIDk1MjY0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAgICAgJ2luY2x1ZGVzJzogWwogICAg
ICAgICAnLi4vLi4vV2ViQ29yZS9XZWJDb3JlLmd5cGknLAogICAgICAgICAnLi4vLi4vLi4vVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaScsCisgICAgICAgICcuLi8uLi8u
Li9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaScsCiAgICAgICAgICdXZWJL
aXQuZ3lwaScsCiAgICAgICAgICdmZWF0dXJlcy5neXBpJywKICAgICBdLApAQCAtMTE1Nyw3ICsx
MTU4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3dl
YmtpdC9zdXBwb3J0L3NldHVwX3RoaXJkX3BhcnR5Lmd5cDp0aGlyZF9wYXJ0eV9oZWFkZXJzJywK
ICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgIH1dLAotICAgICAgICAgICAg
ICAgIFsnY29tcG9uZW50IT0ic2hhcmVkX2xpYnJhcnkiJywgeworICAgICAgICAgICAgICAgIFsn
aW5zaWRlX2Nocm9taXVtX2J1aWxkPT0wIG9yIGNvbXBvbmVudCE9InNoYXJlZF9saWJyYXJ5Iics
IHsKICAgICAgICAgICAgICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKICAgICAgICAgICAgICAg
ICAgICAgICAgICcuLi8uLi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOndlYmNvcmVf
dGVzdF9zdXBwb3J0JywKICAgICAgICAgICAgICAgICAgICAgXSwKQEAgLTEyNDgsNiArMTI0OSwz
NSBAQAogICAgICAgICAgICAgICAgIH1dLAogICAgICAgICAgICAgXSwKICAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgJ3RhcmdldF9uYW1lJzogJ1Rlc3RXZWJLaXRBUEknLAorICAg
ICAgICAgICAgJ3R5cGUnOiAnZXhlY3V0YWJsZScsCisgICAgICAgICAgICAnZGVwZW5kZW5jaWVz
JzogWworICAgICAgICAgICAgICAgICd3ZWJraXQnLAorICAgICAgICAgICAgICAgICcuLi8uLi9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOndlYmNvcmUnLAorICAgICAgICAgICAgICAg
ICc8KGNocm9taXVtX3NyY19kaXIpL2Jhc2UvYmFzZS5neXA6dGVzdF9zdXBwb3J0X2Jhc2UnLAor
ICAgICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3Rlc3RpbmcvZ3Rlc3QuZ3lwOmd0
ZXN0JywKKyAgICAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS90ZXN0aW5nL2dtb2Nr
Lmd5cDpnbW9jaycsCisgICAgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikvd2Via2l0
L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuZ3lwOndlYmtpdF9zdXBwb3J0JywKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWworICAgICAgICAgICAgICAgICcuLi8u
Li8uLi9Ub29scy9UZXN0V2ViS2l0QVBJJywKKyAgICAgICAgICAgICAgICAncHVibGljJywKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAnc291cmNlcyc6IFsKKyAgICAgICAgICAgICAgICAn
dGVzdHMvUnVuQWxsVGVzdHMuY3BwJywKKyAgICAgICAgICAgICAgICAnPEAoVGVzdFdlYktpdEFQ
SV9maWxlcyknLAorICAgICAgICAgICAgICAgICcnCisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgJ2NvbmRpdGlvbnMnOiBbCisgICAgICAgICAgICAgICAgWydpbnNpZGVfY2hyb21pdW1fYnVp
bGQ9PTEgYW5kIGNvbXBvbmVudD09InNoYXJlZF9saWJyYXJ5IicsIHsKKyAgICAgICAgICAgICAg
ICAgICAgJ3NvdXJjZXMnOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAnc3JjL0Nocm9taXVt
Q3VycmVudFRpbWUuY3BwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzcmMvQ2hyb21pdW1U
aHJlYWRpbmcuY3BwJywKKyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB9
XSwKKyAgICAgICAgICAgIF0sCisgICAgICAgIH0sCiAgICAgXSwgIyB0YXJnZXRzCiAgICAgJ2Nv
bmRpdGlvbnMnOiBbCiAgICAgICAgIFsnT1M9PSJ3aW4iJywgewpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTUyNzQpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wOS0x
NiAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVu
c3VyZSBUZXN0V2ViS2l0QVBJIHdvcmtzIG9uIG1hYywgd2luLCBjaHJvbWl1bS1tYWMsIGNocm9t
aXVtLXdpbiBhbmQgY2hyb21pdW0tbGludXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY4MjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChkZXRl
cm1pbmVCYXNlUHJvZHVjdERpcik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
TWV0YUFsbG9jYXRvci5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVk
QmxhY2tUcmVlLmNwcDoKKwogMjAxMS0wOS0xNSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBBbnRvaW5lIExhYm91ciBhbmQgU2hhd24gU2luZ2gg
dG8gdGhlIGNvbnRyaWJ1dG9ycy1idXQtbm90LWNvbW1pdHRlcnMgbGlzdC4KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0ZGlycy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0JKHJldmlzaW9uIDk1MjY0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDEzIEBAIHN1YiBkZXRlcm1pbmVCYXNlUHJv
ZHVjdERpcgogICAgICAgICAjIFNoYWRvdyBidWlsZHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gU3lt
YmlhbgogICAgICAgICAkYmFzZVByb2R1Y3REaXIgPSAkc291cmNlRGlyOwogICAgIH0gZWxzaWYg
KGlzQ2hyb21pdW0oKSkgewotICAgICAgICAkYmFzZVByb2R1Y3REaXIgPSAiJHNvdXJjZURpci9v
dXQiOworICAgICAgICBpZiAoaXNMaW51eCgpIHx8IGlzQ2hyb21pdW1BbmRyb2lkKCkpIHsKKyAg
ICAgICAgICAgICRiYXNlUHJvZHVjdERpciA9ICIkc291cmNlRGlyL291dCI7CisgICAgICAgIH0g
ZWxzaWYgKGlzRGFyd2luKCkpIHsKKyAgICAgICAgICAgICRiYXNlUHJvZHVjdERpciA9ICIkc291
cmNlRGlyL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0veGNvZGVidWlsZCI7CisgICAgICAgIH0gZWxz
aWYgKGlzV2luZG93cygpIHx8IGlzQ3lnd2luKCkpIHsKKyAgICAgICAgICAgICMgRklYTUU6IHNl
dCB0aGUgY29ycmVjdCBiYXNlUHJvZHVjdERpciBmb3IgY2hyb21pdW0td2luLgorICAgICAgICB9
CiAgICAgfQogCiAgICAgaWYgKCFkZWZpbmVkKCRiYXNlUHJvZHVjdERpcikpIHsgIyBQb3J0LXNw
ZXNpZmljIGNoZWNrcyBmYWlsZWQsIHVzZSBkZWZhdWx0CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkuZ3lwaQkocmV2aXNpb24gOTUyNjQpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAog
ICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICdUZXN0V2ViS2l0QVBJX2ZpbGVzJzogWwogICAg
ICAgICAgICAgJ1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwJywKKyAg
ICAgICAgICAgICdUZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcCcsCiAgICAgICAgICAgICAnVGVz
dHMvV1RGL1N0cmluZ09wZXJhdG9ycy5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9WZWN0
b3JCYXNpYy5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9WZWN0b3JSZXZlcnNlLmNwcCcs
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9y
LmNwcAkocmV2aXNpb24gOTUyNjQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9N
ZXRhQWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCArMjcsOSBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NZXRhQWxsb2Nh
dG9yLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVmVjdG9yLmg+CisjaW5jbHVkZSA8c3Rk
YXJnLmg+CisjaW5jbHVkZSA8d3RmL01ldGFBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1JlZEJsYWNrVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcAkocmV2aXNpb24gOTUyNjQpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWRCbGFja1RyZWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw4ICsyNyw4IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1JlZEJsYWNrVHJlZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9SZWRCbGFja1RyZWUuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAK
</data>
<flag name="review"
          id="104363"
          type_id="1"
          status="-"
          setter="tony"
    />
    <flag name="commit-queue"
          id="104364"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108100</attachid>
            <date>2011-09-20 19:15:46 -0700</date>
            <delta_ts>2011-09-21 10:37:03 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>68206a</filename>
            <type>text/plain</type>
            <size>7925</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1NTkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMjAgIFhpYW56aHUg
V2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVtLm9yZz4KKworICAgICAgICBFbnN1cmUgVGVzdFdl
YktpdEFQSSB3b3JrcyBvbiBtYWMsIHdpbiwgY2hyb21pdW0tbWFjIGFuZCBjaHJvbWl1bS1saW51
eAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMDYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0
d28gbmV3IHd0ZiBoZWFkZXJzIGludG8gRm9yd2FyZGluZ0hlYWRlcnMvd3RmIHRvIG1ha2UKKyAg
ICAgICAgI2luY2x1ZGUgPHd0Zi8uLi5oPiBjcm9zcy1wbGF0Zm9ybS4KKyAgICAgICAgTm8gbmV3
IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9NZXRhQWxs
b2NhdG9yLmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9SZWRCbGFj
a1RyZWUuaDogQWRkZWQuCisKIDIwMTEtMDktMjAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY3NzMy1mbGV4Ym94XSBjbGVhbnVwIHBhZGRpbmcgd2lkdGggY2Fs
Y3VsYXRpb25zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvTWV0
YUFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL3d0Zi9NZXRhQWxsb2NhdG9yLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy93dGYvTWV0YUFsbG9jYXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfTWV0YUFsbG9jYXRvcl9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX01ldGFBbGxvY2F0b3JfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01ldGFB
bGxvY2F0b3IuaD4KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvd3RmL1JlZEJsYWNrVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL3d0Zi9SZWRCbGFja1RyZWUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9SZWRCbGFja1RyZWUuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX1JlZEJsYWNrVHJlZV9oCisjZGVm
aW5lIFdlYkNvcmVfRldEX1JlZEJsYWNrVHJlZV9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
UmVkQmxhY2tUcmVlLmg+CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NTU5MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMjAgIFhpYW56aHUgV2FuZyAgPHdh
bmd4aWFuemh1QGNocm9taXVtLm9yZz4KKworICAgICAgICBFbnN1cmUgVGVzdFdlYktpdEFQSSB3
b3JrcyBvbiBtYWMsIHdpbiwgY2hyb21pdW0tbWFjIGFuZCBjaHJvbWl1bS1saW51eAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisK
IDIwMTEtMDktMjAgIEpheSBDaXZlbGxpICA8amNpdmVsbGlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFRoaXMgQ0wgbWFrZXMgaXQgcG9zc2libGUgdG8gY3JlYXRlIGEgYmxvYiBmcm9tIENocm9t
aXVtLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gOTU1OTEpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICAgICAnaW5jbHVkZXMnOiBbCiAgICAgICAgICcuLi8uLi9XZWJDb3JlL1dl
YkNvcmUuZ3lwaScsCiAgICAgICAgICcuLi8uLi8uLi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS5neXBpJywKKyAgICAgICAgJy4uLy4uLy4uL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS5neXBpJywKICAgICAgICAgJ1dlYktpdC5neXBpJywKICAgICAgICAgJ2Zl
YXR1cmVzLmd5cGknLAogICAgIF0sCkBAIC0xMTc4LDcgKzExNzksNyBAQAogICAgICAgICAgICAg
ICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikvd2Via2l0L3N1cHBvcnQvc2V0dXBfdGhp
cmRfcGFydHkuZ3lwOnRoaXJkX3BhcnR5X2hlYWRlcnMnLAogICAgICAgICAgICAgICAgICAgICBd
CiAgICAgICAgICAgICAgICAgfV0sCi0gICAgICAgICAgICAgICAgWydjb21wb25lbnQhPSJzaGFy
ZWRfbGlicmFyeSInLCB7CisgICAgICAgICAgICAgICAgWydpbnNpZGVfY2hyb21pdW1fYnVpbGQ9
PTAgb3IgY29tcG9uZW50IT0ic2hhcmVkX2xpYnJhcnkiJywgewogICAgICAgICAgICAgICAgICAg
ICAnZGVwZW5kZW5jaWVzJzogWwogICAgICAgICAgICAgICAgICAgICAgICAgJy4uLy4uL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6d2ViY29yZV90ZXN0X3N1cHBvcnQnLAogICAgICAg
ICAgICAgICAgICAgICBdLApAQCAtMTI2OSw2ICsxMjcwLDM5IEBACiAgICAgICAgICAgICAgICAg
fV0sCiAgICAgICAgICAgICBdLAogICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAn
dGFyZ2V0X25hbWUnOiAnVGVzdFdlYktpdEFQSScsCisgICAgICAgICAgICAndHlwZSc6ICdleGVj
dXRhYmxlJywKKyAgICAgICAgICAgICdkZXBlbmRlbmNpZXMnOiBbCisgICAgICAgICAgICAgICAg
J3dlYmtpdCcsCisgICAgICAgICAgICAgICAgJy4uLy4uL1dlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXA6d2ViY29yZScsCisgICAgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikv
YmFzZS9iYXNlLmd5cDp0ZXN0X3N1cHBvcnRfYmFzZScsCisgICAgICAgICAgICAgICAgJzwoY2hy
b21pdW1fc3JjX2RpcikvdGVzdGluZy9ndGVzdC5neXA6Z3Rlc3QnLAorICAgICAgICAgICAgICAg
ICc8KGNocm9taXVtX3NyY19kaXIpL3Rlc3RpbmcvZ21vY2suZ3lwOmdtb2NrJywKKyAgICAgICAg
ICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS93ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9y
dC5neXA6d2Via2l0X3N1cHBvcnQnLAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdpbmNs
dWRlX2RpcnMnOiBbCisgICAgICAgICAgICAgICAgJy4uLy4uLy4uL1Rvb2xzL1Rlc3RXZWJLaXRB
UEknLAorICAgICAgICAgICAgICAgICMgTmVlZGVkIGJ5IHRlc3RzL1J1bkFsbFRlc3RzLmNwcCwg
YXMgd2VsbCBhcyBDaHJvbWl1bUN1cnJlbnRUaW1lLmNwcCBhbmQKKyAgICAgICAgICAgICAgICAj
IENocm9taXVtVGhyZWFkaW5nLmNwcCBpbiBjaHJvbWl1bSBzaGFyZWQgbGlicmFyeSBjb25maWd1
cmF0aW9uLgorICAgICAgICAgICAgICAgICdwdWJsaWMnLAorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICdzb3VyY2VzJzogWworICAgICAgICAgICAgICAgICMgUmV1c2UgdGhlIHNhbWUgdGVz
dGluZyBkcml2ZXIgb2YgQ2hyb21pdW0ncyB3ZWJraXRfdW5pdF90ZXN0cy4KKyAgICAgICAgICAg
ICAgICAndGVzdHMvUnVuQWxsVGVzdHMuY3BwJywKKyAgICAgICAgICAgICAgICAnPEAoVGVzdFdl
YktpdEFQSV9maWxlcyknLAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdjb25kaXRpb25z
JzogWworICAgICAgICAgICAgICAgIFsnaW5zaWRlX2Nocm9taXVtX2J1aWxkPT0xIGFuZCBjb21w
b25lbnQ9PSJzaGFyZWRfbGlicmFyeSInLCB7CisgICAgICAgICAgICAgICAgICAgICdzb3VyY2Vz
JzogWworICAgICAgICAgICAgICAgICAgICAgICAgIyBUbyBzYXRpc2Z5IGxpbmtpbmcgb2YgV1RG
OjpjdXJyZW50VGltZSgpIGV0Yy4gaW4gc2hhcmVkIGxpYnJhcnkgY29uZmlndXJhdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgYXMgdGhlIHN5bWJvbHMgYXJlIG5vdCBleHBvcnRlZCBm
cm9tIHRoZSBETExzLgorICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy9DaHJvbWl1bUN1cnJl
bnRUaW1lLmNwcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnc3JjL0Nocm9taXVtVGhyZWFk
aW5nLmNwcCcsCisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgfV0sCisg
ICAgICAgICAgICBdLAorICAgICAgICB9LAogICAgIF0sICMgdGFyZ2V0cwogICAgICdjb25kaXRp
b25zJzogWwogICAgICAgICBbJ09TPT0id2luIicsIHsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1NTkxKQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMjAgIFhp
YW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVtLm9yZz4KKworICAgICAgICBFbnN1cmUg
VGVzdFdlYktpdEFQSSB3b3JrcyBvbiBtYWMsIHdpbiwgY2hyb21pdW0tbWFjIGFuZCBjaHJvbWl1
bS1saW51eAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjgyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKGRldGVybWluZUJhc2VQcm9kdWN0RGly
KTogYWRkIHN1cHBvcnQgZm9yIGNocm9taXVtLW1hYworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1JlZEJsYWNrVHJlZS5jcHA6CisKIDIwMTEtMDktMjAgIEVyaWMgU2VpZGVsICA8ZXJp
Y0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtOUldUXSBSRUdSRVNTSU9OOiBMb2NhbCBsb2FkZXIg
dGVzdHMgYXJlIGZhaWxpbmcgb24gbWFjaGluZXMgdGhhdCBsb3N0IC90bXAvTGF5b3V0VGVzdHMg
c3ltbGluawpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gOTU1OTEpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsMTMgQEAg
c3ViIGRldGVybWluZUJhc2VQcm9kdWN0RGlyCiAgICAgICAgICMgU2hhZG93IGJ1aWxkcyBhcmUg
bm90IHN1cHBvcnRlZCBvbiBTeW1iaWFuCiAgICAgICAgICRiYXNlUHJvZHVjdERpciA9ICRzb3Vy
Y2VEaXI7CiAgICAgfSBlbHNpZiAoaXNDaHJvbWl1bSgpKSB7Ci0gICAgICAgICRiYXNlUHJvZHVj
dERpciA9ICIkc291cmNlRGlyL291dCI7CisgICAgICAgIGlmIChpc0xpbnV4KCkgfHwgaXNDaHJv
bWl1bUFuZHJvaWQoKSkgeworICAgICAgICAgICAgJGJhc2VQcm9kdWN0RGlyID0gIiRzb3VyY2VE
aXIvb3V0IjsKKyAgICAgICAgfSBlbHNpZiAoaXNEYXJ3aW4oKSkgeworICAgICAgICAgICAgJGJh
c2VQcm9kdWN0RGlyID0gIiRzb3VyY2VEaXIvU291cmNlL1dlYktpdC9jaHJvbWl1bS94Y29kZWJ1
aWxkIjsKKyAgICAgICAgfSBlbHNpZiAoaXNXaW5kb3dzKCkgfHwgaXNDeWd3aW4oKSkgeworICAg
ICAgICAgICAgIyBGSVhNRTogc2V0IHRoZSBjb3JyZWN0IGJhc2VQcm9kdWN0RGlyIGZvciBjaHJv
bWl1bS13aW4uCisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIWRlZmluZWQoJGJhc2VQcm9k
dWN0RGlyKSkgeyAjIFBvcnQtc3Blc2lmaWMgY2hlY2tzIGZhaWxlZCwgdXNlIGRlZmF1bHQKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5neXBpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5neXBpCShyZXZpc2lvbiA5NTU5MSkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5neXBpCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw2ICszMiw3IEBACiAgICAgJ3ZhcmlhYmxlcyc6IHsKICAgICAgICAgJ1Rlc3RXZWJL
aXRBUElfZmlsZXMnOiBbCiAgICAgICAgICAgICAnVGVzdHMvV1RGL0NoZWNrZWRBcml0aG1ldGlj
T3BlcmF0aW9ucy5jcHAnLAorICAgICAgICAgICAgJ1Rlc3RzL1dURi9SZWRCbGFja1RyZWUuY3Bw
JywKICAgICAgICAgICAgICdUZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCcsCiAgICAgICAg
ICAgICAnVGVzdHMvV1RGL1ZlY3RvckJhc2ljLmNwcCcsCiAgICAgICAgICAgICAnVGVzdHMvV1RG
L1ZlY3RvclJldmVyc2UuY3BwJywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L01ldGFBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCShyZXZpc2lvbiA5NTU5MSkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw4ICsyNyw5IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL01ldGFBbGxvY2F0b3IuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9WZWN0
b3IuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWRCbGFja1RyZWUuY3BwCShy
ZXZpc2lvbiA5NTU5MSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZEJsYWNr
VHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVkQmxhY2tUcmVlLmg+Ci0j
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1JlZEJsYWNr
VHJlZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>