<?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>91459</bug_id>
          
          <creation_ts>2012-07-16 18:20:18 -0700</creation_ts>
          <short_desc>[Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController</short_desc>
          <delta_ts>2012-07-23 14:24:49 -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>New Bugs</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>
          <dependson>91516</dependson>
    
    <dependson>91518</dependson>
          <blocked>91308</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>inferno</cc>
    
    <cc>jochen</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670875</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-16 18:20:18 -0700</bug_when>
    <thetext>[Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670877</commentid>
    <comment_count>1</comment_count>
      <attachid>152673</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-16 18:22:33 -0700</bug_when>
    <thetext>Created attachment 152673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671097</commentid>
    <comment_count>2</comment_count>
      <attachid>152673</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 02:10:11 -0700</bug_when>
    <thetext>Comment on attachment 152673
Patch

Clearing flags on attachment: 152673

Committed r122828: &lt;http://trac.webkit.org/changeset/122828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671098</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 02:10:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671337</commentid>
    <comment_count>4</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-07-17 09:59:45 -0700</bug_when>
    <thetext>Adam, looks like ASAN DRT is broken...

./DumpRenderTree 2&gt;&amp;1 | /tmp/asan_symbolize.py | c++filt
ASAN:SIGSEGV
==23107== ERROR: AddressSanitizer crashed on unknown address 0x000000000000 (pc 0x00000050e512 sp 0x7fff7eb3b520 bp 0x7fff7eb3b650 T0)
AddressSanitizer can not provide additional info. ABORTING
    #0 0x50e512 in TestInterfaces::bindTo(WebKit::WebFrame*) ???:0
    #1 0x4cdb93 in TestShell::bindJSObjectsToWindow(WebKit::WebFrame*) ???:0
    #2 0x2478451 in WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*) ???:0
    #3 0x2453e5c in WebCore::FrameLoader::dispatchDidClearWindowObjectsInAllWorlds() ???:0
    #4 0x245333b in WebCore::FrameLoader::receivedFirstData() ???:0
    #5 0x2422ba8 in WebCore::DocumentLoader::commitData(char const*, unsigned long) ???:0
    #6 0x2422016 in WebCore::DocumentLoader::finishedLoading() ???:0
    #7 0x24980d8 in WebCore::MainResourceLoader::didFinishLoading(double) ???:0
    #8 0x2496cb8 in WebCore::MainResourceLoader::continueAfterContentPolicy(WebCore::PolicyAction, WebCore::ResourceResponse const&amp;) ???:0
    #9 0x2496f11 in WebCore::MainResourceLoader::continueAfterContentPolicy(WebCore::PolicyAction) ???:0
    #10 0x24a9ec7 in WebCore::PolicyChecker::continueAfterContentPolicy(WebCore::PolicyAction) ???:0
    #11 0x5e4c09 in WebKit::FrameLoaderClientImpl::dispatchDecidePolicyForResponse(void (WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::ResourceResponse const&amp;, WebCore::ResourceRequest const&amp;) ???:0
    #12 0x2497902 in WebCore::MainResourceLoader::didReceiveResponse(WebCore::ResourceResponse const&amp;) ???:0
    #13 0x2498c22 in WebCore::MainResourceLoader::handleEmptyLoad(WebCore::KURL const&amp;, bool) ???:0
    #14 0x24994fe in WebCore::MainResourceLoader::loadNow(WebCore::ResourceRequest&amp;) ???:0
    #15 0x2499e23 in WebCore::MainResourceLoader::load(WebCore::ResourceRequest const&amp;, WebCore::SubstituteData const&amp;) ???:0
    #16 0x242728c in WebCore::DocumentLoader::startLoadingMainResource() ???:0
    #17 0x2465e36 in WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) ???:0
    #18 0x24660ec in WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool) ???:0
    #19 0x24a6749 in WebCore::PolicyCallback::call(bool) ???:0
    #20 0x24a9471 in WebCore::PolicyChecker::continueAfterNavigationPolicy(WebCore::PolicyAction) ???:0
    #21 0x5e5ba7 in WebKit::FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction(void (WebCore::PolicyChecker::*)(WebCore::PolicyAction), WebCore::NavigationAction const&amp;, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;) ???:0
    #22 0x24a838b in WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, void (*)(void*, WebCore::ResourceRequest const&amp;, WTF::PassRefPtr&lt;WebCore::FormState&gt;, bool), void*) ???:0
    #23 0x2464663 in WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;) ???:0
    #24 0x245b3fb in WebCore::FrameLoader::load(WebCore::DocumentLoader*) ???:0
    #25 0x2463c8a in WebCore::FrameLoader::load(WebCore::ResourceRequest const&amp;, WebCore::SubstituteData const&amp;, bool) ???:0
    #26 0x246377e in WebCore::FrameLoader::load(WebCore::ResourceRequest const&amp;, bool) ???:0
    #27 0x4efb53 in WebViewHost::navigate(TestNavigationEntry const&amp;, bool) ???:0
    #28 0x4efd70 in non-virtual thunk to WebViewHost::navigate(TestNavigationEntry const&amp;, bool) ???:0
    #29 0x4c397c in TestNavigationController::navigateToPendingEntry(bool) ???:0
    #30 0x4ef21a in WebViewHost::loadURLForFrame(WebKit::WebURL const&amp;, WebKit::WebString const&amp;) ???:0
    #31 0x4ee2eb in WebViewHost::~WebViewHost() ???:0
    #32 0x4edf35 in WebViewHost::~WebViewHost() ???:0
    #33 0x4c7334 in TestShell::~TestShell() ???:0
    #34 0x466806 in main ???:0
    #35 0x7f2e88702c4d in ?? ??:0
Stats: 12M malloced (22M for red zones) by 79051 calls
Stats: 2M realloced by 4031 calls
Stats: 10M freed by 66113 calls
Stats: 0M really freed by 0 calls
Stats: 68M (17417 full pages) mmaped in 17 calls
  mmaps   by size class: 8:81915; 9:8191; 10:4095; 11:2047; 12:1024; 13:512; 14:256; 15:128; 16:64; 17:32; 18:32; 19:8;
  mallocs by size class: 8:74444; 9:1762; 10:1231; 11:768; 12:386; 13:148; 14:218; 15:64; 16:10; 17:2; 18:17; 19:1;
  frees   by size class: 8:62348; 9:1476; 10:953; 11:644; 12:290; 13:127; 14:195; 15:55; 16:5; 17:2; 18:17; 19:1;
  rfrees  by size class:
Stats: malloc large: 20 small slow: 263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671352</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 10:15:41 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 91516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671358</commentid>
    <comment_count>6</comment_count>
      <attachid>152673</attachid>
    <who name="">jochen</who>
    <bug_when>2012-07-17 10:22:14 -0700</bug_when>
    <thetext>Comment on attachment 152673
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestShell.cpp:182
&gt; +    m_testInterfaces.clear();

this appears to be the bug. We shouldn&apos;t delete TestInterfaces before the TestShell destructor has finished</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671401</commentid>
    <comment_count>7</comment_count>
      <attachid>152673</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 11:02:17 -0700</bug_when>
    <thetext>Comment on attachment 152673
Patch

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

&gt;&gt; Tools/DumpRenderTree/chromium/TestShell.cpp:182
&gt;&gt; +    m_testInterfaces.clear();
&gt; 
&gt; this appears to be the bug. We shouldn&apos;t delete TestInterfaces before the TestShell destructor has finished

Ok.  I guess we should just setWebView(0) rather than destructing the whole thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671445</commentid>
    <comment_count>8</comment_count>
      <attachid>152795</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 11:42:22 -0700</bug_when>
    <thetext>Created attachment 152795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674275</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-20 00:37:53 -0700</bug_when>
    <thetext>@rniwa: Would you be willing to review this updated patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674816</commentid>
    <comment_count>10</comment_count>
      <attachid>152795</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-20 12:04:58 -0700</bug_when>
    <thetext>Comment on attachment 152795
Patch

Alright. Let&apos;s hope this one sticks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674819</commentid>
    <comment_count>11</comment_count>
      <attachid>152795</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-20 12:06:33 -0700</bug_when>
    <thetext>Comment on attachment 152795
Patch

Rejecting attachment 152795 from commit-queue.

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

Last 500 characters of output:
/TestShell.cpp
Hunk #1 succeeded at 145 (offset -1 lines).
Hunk #2 succeeded at 171 (offset -2 lines).
Hunk #3 succeeded at 288 (offset -2 lines).
Hunk #4 succeeded at 716 (offset -7 lines).
patching file Tools/DumpRenderTree/chromium/TestShell.h
Hunk #2 succeeded at 92 (offset -2 lines).
Hunk #3 succeeded at 213 (offset -1 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Ryosuke Ni...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13317237</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675923</commentid>
    <comment_count>12</comment_count>
      <attachid>153845</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-23 12:56:08 -0700</bug_when>
    <thetext>Created attachment 153845
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675924</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-23 12:56:59 -0700</bug_when>
    <thetext>This patch got slightly uglier when merged.  We probably should make TestInterfaces into a proper API sooner rather than later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676008</commentid>
    <comment_count>14</comment_count>
      <attachid>153845</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 14:24:44 -0700</bug_when>
    <thetext>Comment on attachment 153845
Patch for landing

Clearing flags on attachment: 153845

Committed r123384: &lt;http://trac.webkit.org/changeset/123384&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676009</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 14:24:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152673</attachid>
            <date>2012-07-16 18:22:33 -0700</date>
            <delta_ts>2012-07-17 11:42:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91459-20120716182240.patch</filename>
            <type>text/plain</type>
            <size>8885</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNjU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTJjYTA4MmVlN2U3NTJlMzA0YjI2N2ZhMzM0MjAxMWE5
N2FjNDJmZi4uZDQ1YjQxZTM5YTExMGViODk1Mzc4OGI3NDEzZjY4Nzg4ODJiOTE2ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3
IEBACiAyMDEyLTA3LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAg
ICAgW0Nocm9taXVtXSBUZXN0SW50ZXJmYWNlcyBzaG91bGQgYmUgcmVzcG9uc2libGUgZm9yIG93
bmluZyBhbmQgYmluZGluZyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBhbmQgVGV4dElucHV0Q29u
dHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTE0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
YXRoZXIgdGhhbiBoYXZpbmcgVGVzdFNoZWxsIG93biBhbmQgYmluZCBlYWNoIG9mIHRoZXNlIEph
dmFTY3JpcHQgQVBJcworICAgICAgICBpbmRpdmlkdWFsbHksIFRlc3RTaGVsbCBzaG91bGQgZGVs
ZWdhdGUgdGhhdCB3b3JrIHRvIFRlc3RJbnRlcmZhY2VzLgorICAgICAgICBUaGlzIHBhdGNoIG1v
dmVzIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIGFuZCBUZXh0SW5wdXRDb250cm9sbGVyIHRvIGJl
CisgICAgICAgIHRoZSByZXNwb25zaWJpbGl0eSBvZiBUZXN0SW50ZXJmYWNlcy4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuY3Bw
OgorICAgICAgICAoVGVzdEludGVyZmFjZXM6OlRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFRl
c3RJbnRlcmZhY2VzOjp+VGVzdEludGVyZmFjZXMpOgorICAgICAgICAoVGVzdEludGVyZmFjZXM6
OnNldFdlYlZpZXcpOgorICAgICAgICAoVGVzdEludGVyZmFjZXM6OmJpbmRUbyk6CisgICAgICAg
IChUZXN0SW50ZXJmYWNlczo6cmVzZXRBbGwpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChUZXN0SW50ZXJmYWNlczo6YWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hlbGw6OmluaXRpYWxpemUpOgorICAgICAgICAo
VGVzdFNoZWxsOjpjcmVhdGVNYWluV2luZG93KToKKyAgICAgICAgKFRlc3RTaGVsbDo6flRlc3RT
aGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIpOgorICAgICAg
ICAoVGVzdFNoZWxsOjpiaW5kSlNPYmplY3RzVG9XaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsOjphY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgIChUZXN0U2hlbGwpOgorCisyMDEyLTA3LTE2ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKICAgICAgICAgW0Nocm9taXVtXSBNb3Zl
IFRleHRJbnB1dENvbnRyb2xsZXIgaW50byBUZXN0UnVubmVyLmEKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNDU3CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5j
cHAKaW5kZXggY2FlMzNkMzEzNmM4ODBlZWRlMTE5MjVlNmYyYzI3OGMxOTcxMzI1ZS4uNWE3ZWRi
M2ZjMDQ5OTRiMDk5YWMyNmNkZDhkNjc4MzY4ZjU0ZWNhNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5j
cHAKQEAgLTMxLDI3ICszMSw0NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRl
c3RJbnRlcmZhY2VzLmgiCiAKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkdhbWVwYWRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVGV4dElucHV0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogCiB1c2luZyBXZWJLaXQ6
OldlYkZyYW1lOwogdXNpbmcgV2ViS2l0OjpXZWJTdHJpbmc7Cit1c2luZyBXZWJLaXQ6OldlYlZp
ZXc7CiAKIFRlc3RJbnRlcmZhY2VzOjpUZXN0SW50ZXJmYWNlcygpCiB7CisgICAgbV9hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigp
KTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IEdhbWVwYWRDb250cm9s
bGVyKCkpOworICAgIG1fdGV4dElucHV0Q29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBUZXh0SW5w
dXRDb250cm9sbGVyKCkpOwogfQogCiBUZXN0SW50ZXJmYWNlczo6flRlc3RJbnRlcmZhY2VzKCkK
IHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5zZXRXZWJWaWV3KDApOworICAgIC8v
IG1fZ2FtZXBhZENvbnRyb2xsZXIgZG9lc24ndCBkZXBlbmQgb24gV2ViVmlldy4KKyAgICBtX3Rl
eHRJbnB1dENvbnRyb2xsZXItPnNldFdlYlZpZXcoMCk7CiB9CiAKK3ZvaWQgVGVzdEludGVyZmFj
ZXM6OnNldFdlYlZpZXcoV2ViVmlldyogd2ViVmlldykKK3sKKyAgICBtX2FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLT5zZXRXZWJWaWV3KHdlYlZpZXcpOworICAgIC8vIG1fZ2FtZXBhZENvbnRyb2xs
ZXIgZG9lc24ndCBkZXBlbmQgb24gV2ViVmlldy4KKyAgICBtX3RleHRJbnB1dENvbnRyb2xsZXIt
PnNldFdlYlZpZXcod2ViVmlldyk7Cit9CisKKwogdm9pZCBUZXN0SW50ZXJmYWNlczo6YmluZFRv
KFdlYkZyYW1lKiBmcmFtZSkKIHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5iaW5k
VG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlciIpKTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZy
YW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJnYW1lcGFkQ29udHJvbGxlciIpKTsKKyAgICBtX3Rl
eHRJbnB1dENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJv
bVVURjgoInRleHRJbnB1dENvbnRyb2xsZXIiKSk7CiB9CiAKIHZvaWQgVGVzdEludGVyZmFjZXM6
OnJlc2V0QWxsKCkKIHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5yZXNldCgpOwog
ICAgIG1fZ2FtZXBhZENvbnRyb2xsZXItPnJlc2V0KCk7CisgICAgLy8gbV90ZXh0SW5wdXRDb250
cm9sbGVyIGRvZXNuJ3QgaGF2ZSBhbnkgc3RhdGUgdG8gcmVzZXQuCiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2Vz
LmgKaW5kZXggZTI0MDRhZDZkZDg2ZGE3NWY5ZGRlMzRhMjc3NzBjMThhYzFjZDZmYy4uZjk2Njkz
YjFjZjRlNDM3NDNjNWJhNTUyNzI1ZDBjMjNiNmU5ZDk2MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuaApA
QCAtMzUsMjAgKzM1LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRnJhbWU7
CitjbGFzcyBXZWJWaWV3OwogfQogCitjbGFzcyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKIGNs
YXNzIEdhbWVwYWRDb250cm9sbGVyOworY2xhc3MgVGV4dElucHV0Q29udHJvbGxlcjsKIAogY2xh
c3MgVGVzdEludGVyZmFjZXMgewogcHVibGljOgogICAgIFRlc3RJbnRlcmZhY2VzKCk7CiAgICAg
flRlc3RJbnRlcmZhY2VzKCk7CiAKKyAgICB2b2lkIHNldFdlYlZpZXcoV2ViS2l0OjpXZWJWaWV3
Kik7CisKICAgICB2b2lkIGJpbmRUbyhXZWJLaXQ6OldlYkZyYW1lKik7CiAgICAgdm9pZCByZXNl
dEFsbCgpOwogCisgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCkgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5nZXQoKTsgfQorCiBw
cml2YXRlOgorICAgIE93blB0cjxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcj4gbV9hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjsKICAgICBPd25QdHI8R2FtZXBhZENvbnRyb2xsZXI+IG1fZ2FtZXBhZENv
bnRyb2xsZXI7CisgICAgT3duUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1fdGV4dElucHV0Q29u
dHJvbGxlcjsKIH07CiAKICNlbmRpZiAvLyBUZXN0SW50ZXJmYWNlc19oCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRleCAwYjY1ODk2NDlhMjk1ZjhjNWRl
ZDE4N2RlMDVhMTNiMzc5ZGJlZTBhLi42NDBiZmVlNDIyOGE3ZWMyZjAyMDkzNjI3NWJjOTFhYzQz
NGZjMDBkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
QEAgLTE0NiwxMSArMTQ2LDkgQEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogdm9pZCBUZXN0U2hl
bGw6OmluaXRpYWxpemUoKQogewogICAgIG1fd2ViUGVybWlzc2lvbnMgPSBhZG9wdFB0cihuZXcg
V2ViUGVybWlzc2lvbnModGhpcykpOwotICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgPSBh
ZG9wdFB0cihuZXcgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSk7CiAgICAgbV90ZXN0SW50ZXJm
YWNlcyA9IGFkb3B0UHRyKG5ldyBUZXN0SW50ZXJmYWNlcygpKTsKICAgICBtX2xheW91dFRlc3RD
b250cm9sbGVyID0gYWRvcHRQdHIobmV3IExheW91dFRlc3RDb250cm9sbGVyKHRoaXMpKTsKICAg
ICBtX2V2ZW50U2VuZGVyID0gYWRvcHRQdHIobmV3IEV2ZW50U2VuZGVyKHRoaXMpKTsKLSAgICBt
X3RleHRJbnB1dENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgVGV4dElucHV0Q29udHJvbGxlcigp
KTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQogICAgIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyID0gYWRvcHRQdHIobmV3IE5vdGlmaWNh
dGlvblByZXNlbnRlcih0aGlzKSk7CiAjZW5kaWYKQEAgLTE3NSwxNSArMTczLDEzIEBAIHZvaWQg
VGVzdFNoZWxsOjpjcmVhdGVNYWluV2luZG93KCkKICAgICBtX2RydERldlRvb2xzQWdlbnQgPSBh
ZG9wdFB0cihuZXcgRFJURGV2VG9vbHNBZ2VudCk7CiAgICAgbV93ZWJWaWV3SG9zdCA9IGFkb3B0
UHRyKGNyZWF0ZU5ld1dpbmRvdyhXZWJVUkwoKSwgbV9kcnREZXZUb29sc0FnZW50LmdldCgpKSk7
CiAgICAgbV93ZWJWaWV3ID0gbV93ZWJWaWV3SG9zdC0+d2ViVmlldygpOwotICAgIG1fYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXItPnNldFdlYlZpZXcobV93ZWJWaWV3KTsKLSAgICBtX3RleHRJbnB1
dENvbnRyb2xsZXItPnNldFdlYlZpZXcobV93ZWJWaWV3KTsKKyAgICBtX3Rlc3RJbnRlcmZhY2Vz
LT5zZXRXZWJWaWV3KG1fd2ViVmlldyk7CiAgICAgbV9kcnREZXZUb29sc0FnZW50LT5zZXRXZWJW
aWV3KG1fd2ViVmlldyk7CiB9CiAKIFRlc3RTaGVsbDo6flRlc3RTaGVsbCgpCiB7Ci0gICAgbV9h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+c2V0V2ViVmlldygwKTsKLSAgICBtX3RleHRJbnB1dENv
bnRyb2xsZXItPnNldFdlYlZpZXcoMCk7CisgICAgbV90ZXN0SW50ZXJmYWNlcy5jbGVhcigpOwog
ICAgIG1fZHJ0RGV2VG9vbHNBZ2VudC0+c2V0V2ViVmlldygwKTsKIH0KIApAQCAtMjk0LDcgKzI5
MCw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFRlc3RDb250cm9sbGVyKCkKIHsKICAgICByZXNl
dFdlYlNldHRpbmdzKCp3ZWJWaWV3KCkpOwogICAgIG1fd2ViUGVybWlzc2lvbnMtPnJlc2V0KCk7
Ci0gICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+cmVzZXQoKTsKICAgICBtX3Rlc3RJbnRl
cmZhY2VzLT5yZXNldEFsbCgpOwogICAgIG1fbGF5b3V0VGVzdENvbnRyb2xsZXItPnJlc2V0KCk7
CiAgICAgbV9ldmVudFNlbmRlci0+cmVzZXQoKTsKQEAgLTcyOCwxMiArNzIzLDEwIEBAIHZvaWQg
VGVzdFNoZWxsOjpkdW1wSW1hZ2UoU2tDYW52YXMqIGNhbnZhcykgY29uc3QKIHZvaWQgVGVzdFNo
ZWxsOjpiaW5kSlNPYmplY3RzVG9XaW5kb3coV2ViRnJhbWUqIGZyYW1lKQogewogICAgIFdlYlRl
c3RpbmdTdXBwb3J0OjppbmplY3RJbnRlcm5hbHNPYmplY3QoZnJhbWUpOwotICAgIG1fYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJv
bVVURjgoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyIikpOwogICAgIG1fdGVzdEludGVyZmFjZXMt
PmJpbmRUbyhmcmFtZSk7CiAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+YmluZFRvSmF2YXNj
cmlwdChmcmFtZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7
CiAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2Vi
U3RyaW5nOjpmcm9tVVRGOCgidGVzdFJ1bm5lciIpKTsKICAgICBtX2V2ZW50U2VuZGVyLT5iaW5k
VG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJldmVudFNlbmRlciIpKTsK
LSAgICBtX3RleHRJbnB1dENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0
cmluZzo6ZnJvbVVURjgoInRleHRJbnB1dENvbnRyb2xsZXIiKSk7CiB9CiAKIFdlYlZpZXdIb3N0
KiBUZXN0U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJsKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCAxMGQxZWQzNWEy
MjYwN2FmZWFlMjQyYTI5MzljNmZmNTc5YmU3MGE2Li5hZWUzMDY1NDQ3NmNjYjU2YzgzNGI1OGEy
MDE3NDllYmE2ODg0ZGFkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuaApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5o
IgogI2luY2x1ZGUgIlRlc3RFdmVudFByaW50ZXIuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNl
cy5oIgotI2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQcmVm
ZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlZpZXdIb3N0LmgiCiAjaW5jbHVkZSA8c3RyaW5nPgpA
QCAtOTUsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgV2ViVmlld0hvc3QqIHdlYlZpZXdIb3N0KCkg
Y29uc3QgeyByZXR1cm4gbV93ZWJWaWV3SG9zdC5nZXQoKTsgfQogICAgIExheW91dFRlc3RDb250
cm9sbGVyKiBsYXlvdXRUZXN0Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VGVz
dENvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKSBjb25z
dCB7IHJldHVybiBtX2V2ZW50U2VuZGVyLmdldCgpOyB9Ci0gICAgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIqIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5nZXQoKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMt
PmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCk7IH0KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
ICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLmdldCgpOyB9CiAjZW5kaWYKQEAgLTIx
NSwxMSArMjE0LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2ViUGVybWlzc2lvbnM+IG1fd2Vi
UGVybWlzc2lvbnM7CiAgICAgT3duUHRyPERSVERldlRvb2xzQWdlbnQ+IG1fZHJ0RGV2VG9vbHNB
Z2VudDsKICAgICBPd25QdHI8RFJURGV2VG9vbHNDbGllbnQ+IG1fZHJ0RGV2VG9vbHNDbGllbnQ7
Ci0gICAgT3duUHRyPEFjY2Vzc2liaWxpdHlDb250cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250
cm9sbGVyOwogICAgIE93blB0cjxUZXN0SW50ZXJmYWNlcz4gbV90ZXN0SW50ZXJmYWNlczsKICAg
ICBPd25QdHI8RXZlbnRTZW5kZXI+IG1fZXZlbnRTZW5kZXI7CiAgICAgT3duUHRyPExheW91dFRl
c3RDb250cm9sbGVyPiBtX2xheW91dFRlc3RDb250cm9sbGVyOwotICAgIE93blB0cjxUZXh0SW5w
dXRDb250cm9sbGVyPiBtX3RleHRJbnB1dENvbnRyb2xsZXI7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBPd25QdHI8Tm90aWZp
Y2F0aW9uUHJlc2VudGVyPiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152795</attachid>
            <date>2012-07-17 11:42:22 -0700</date>
            <delta_ts>2012-07-23 12:56:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91459-20120717114231.patch</filename>
            <type>text/plain</type>
            <size>8822</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODU3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTBkODRjZWZjY2YyN2UwMjgxZGQwZjY2OWYzZmY3NmIw
ODcxMjkxNy4uNjljNGIwOTU3NjM2NTllMzI4NDYzZWE1YzBhZjcyM2E1YzA0MmVkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEyLTA3LTE3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW0Nocm9taXVtXSBUZXN0SW50ZXJmYWNlcyBzaG91bGQgYmUgcmVzcG9uc2libGUgZm9yIG93
bmluZyBhbmQgYmluZGluZyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBhbmQgVGV4dElucHV0Q29u
dHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTE0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
YXRoZXIgdGhhbiBoYXZpbmcgVGVzdFNoZWxsIG93biBhbmQgYmluZCBlYWNoIG9mIHRoZXNlIEph
dmFTY3JpcHQgQVBJcworICAgICAgICBpbmRpdmlkdWFsbHksIFRlc3RTaGVsbCBzaG91bGQgZGVs
ZWdhdGUgdGhhdCB3b3JrIHRvIFRlc3RJbnRlcmZhY2VzLgorICAgICAgICBUaGlzIHBhdGNoIG1v
dmVzIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIGFuZCBUZXh0SW5wdXRDb250cm9sbGVyIHRvIGJl
CisgICAgICAgIHRoZSByZXNwb25zaWJpbGl0eSBvZiBUZXN0SW50ZXJmYWNlcy4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuY3Bw
OgorICAgICAgICAoVGVzdEludGVyZmFjZXM6OlRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFRl
c3RJbnRlcmZhY2VzOjp+VGVzdEludGVyZmFjZXMpOgorICAgICAgICAoVGVzdEludGVyZmFjZXM6
OnNldFdlYlZpZXcpOgorICAgICAgICAoVGVzdEludGVyZmFjZXM6OmJpbmRUbyk6CisgICAgICAg
IChUZXN0SW50ZXJmYWNlczo6cmVzZXRBbGwpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChUZXN0SW50ZXJmYWNlczo6YWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hlbGw6OmluaXRpYWxpemUpOgorICAgICAgICAo
VGVzdFNoZWxsOjpjcmVhdGVNYWluV2luZG93KToKKyAgICAgICAgKFRlc3RTaGVsbDo6flRlc3RT
aGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIpOgorICAgICAg
ICAoVGVzdFNoZWxsOjpiaW5kSlNPYmplY3RzVG9XaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsOjphY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgIChUZXN0U2hlbGwpOgorCiAyMDEyLTA3LTE3ICBY
aWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgcmVtb3Zl
IENocm9taXVtRHJpdmVyIGZyb20gTlJXVApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmNwcAppbmRleCA1Y2Zi
MmMyZjgxYTgzNGE4YmQ5ZmU5N2MxY2QyM2RlYjcwNmYxNDM3Li4wMzJiOTc5NzFkMmU0YTk4MTFh
NTdjODFhOGE0ODExNmZjYjY3YzQyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmNwcApAQCAtMzEsMjcg
KzMxLDQ3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEludGVyZmFjZXMu
aCIKIAorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiR2Ft
ZXBhZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJUZXh0SW5wdXRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAKIHVzaW5nIFdlYktpdDo6V2ViRnJhbWU7CiB1
c2luZyBXZWJLaXQ6OldlYlN0cmluZzsKK3VzaW5nIFdlYktpdDo6V2ViVmlldzsKIAogVGVzdElu
dGVyZmFjZXM6OlRlc3RJbnRlcmZhY2VzKCkKIHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9s
bGVyID0gYWRvcHRQdHIobmV3IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkpOwogICAgIG1fZ2Ft
ZXBhZENvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgR2FtZXBhZENvbnRyb2xsZXIoKSk7CisgICAg
bV90ZXh0SW5wdXRDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IFRleHRJbnB1dENvbnRyb2xsZXIo
KSk7CiB9CiAKIFRlc3RJbnRlcmZhY2VzOjp+VGVzdEludGVyZmFjZXMoKQogeworICAgIG1fYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNldFdlYlZpZXcoMCk7CisgICAgLy8gbV9nYW1lcGFkQ29u
dHJvbGxlciBkb2Vzbid0IGRlcGVuZCBvbiBXZWJWaWV3LgorICAgIG1fdGV4dElucHV0Q29udHJv
bGxlci0+c2V0V2ViVmlldygwKTsKIH0KIAordm9pZCBUZXN0SW50ZXJmYWNlczo6c2V0V2ViVmll
dyhXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnNl
dFdlYlZpZXcod2ViVmlldyk7CisgICAgLy8gbV9nYW1lcGFkQ29udHJvbGxlciBkb2Vzbid0IGRl
cGVuZCBvbiBXZWJWaWV3LgorICAgIG1fdGV4dElucHV0Q29udHJvbGxlci0+c2V0V2ViVmlldyh3
ZWJWaWV3KTsKK30KKworCiB2b2lkIFRlc3RJbnRlcmZhY2VzOjpiaW5kVG8oV2ViRnJhbWUqIGZy
YW1lKQogeworICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQo
ZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyIikpOwog
ICAgIG1fZ2FtZXBhZENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmlu
Zzo6ZnJvbVVURjgoImdhbWVwYWRDb250cm9sbGVyIikpOworICAgIG1fdGV4dElucHV0Q29udHJv
bGxlci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgidGV4dElu
cHV0Q29udHJvbGxlciIpKTsKIH0KIAogdm9pZCBUZXN0SW50ZXJmYWNlczo6cmVzZXRBbGwoKQog
eworICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXItPnJlc2V0KCk7CiAgICAgbV9nYW1lcGFk
Q29udHJvbGxlci0+cmVzZXQoKTsKKyAgICAvLyBtX3RleHRJbnB1dENvbnRyb2xsZXIgZG9lc24n
dCBoYXZlIGFueSBzdGF0ZSB0byByZXNldC4KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuaAppbmRleCBlMjQw
NGFkNmRkODZkYTc1ZjlkZGUzNGEyNzc3MGMxOGFjMWNkNmZjLi5mOTY2OTNiMWNmNGU0Mzc0M2M1
YmE1NTI3MjVkMGMyM2I2ZTlkOTYwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5oCkBAIC0zNSwyMCArMzUs
MjkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKK2NsYXNzIFdlYlZp
ZXc7CiB9CiAKK2NsYXNzIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOwogY2xhc3MgR2FtZXBhZENv
bnRyb2xsZXI7CitjbGFzcyBUZXh0SW5wdXRDb250cm9sbGVyOwogCiBjbGFzcyBUZXN0SW50ZXJm
YWNlcyB7CiBwdWJsaWM6CiAgICAgVGVzdEludGVyZmFjZXMoKTsKICAgICB+VGVzdEludGVyZmFj
ZXMoKTsKIAorICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6OldlYlZpZXcqKTsKKwogICAgIHZv
aWQgYmluZFRvKFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2b2lkIHJlc2V0QWxsKCk7CiAKKyAg
ICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSB7IHJl
dHVybiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmdldCgpOyB9CisKIHByaXZhdGU6CisgICAg
T3duUHRyPEFjY2Vzc2liaWxpdHlDb250cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
OwogICAgIE93blB0cjxHYW1lcGFkQ29udHJvbGxlcj4gbV9nYW1lcGFkQ29udHJvbGxlcjsKKyAg
ICBPd25QdHI8VGV4dElucHV0Q29udHJvbGxlcj4gbV90ZXh0SW5wdXRDb250cm9sbGVyOwogfTsK
IAogI2VuZGlmIC8vIFRlc3RJbnRlcmZhY2VzX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDBiNjU4OTY0OWEyOTVmOGM1ZGVkMTg3ZGUwNWExM2Iz
NzlkYmVlMGEuLjkwMGMxYTgxNDFlYzE1ODNhOTc5M2Y0OWQ5NjRmNzc0NDhjOWZlOTAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtMTQ2LDExICsx
NDYsOSBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbCgpCiB2b2lkIFRlc3RTaGVsbDo6aW5pdGlhbGl6
ZSgpCiB7CiAgICAgbV93ZWJQZXJtaXNzaW9ucyA9IGFkb3B0UHRyKG5ldyBXZWJQZXJtaXNzaW9u
cyh0aGlzKSk7Ci0gICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpKTsKICAgICBtX3Rlc3RJbnRlcmZhY2VzID0gYWRvcHRQ
dHIobmV3IFRlc3RJbnRlcmZhY2VzKCkpOwogICAgIG1fbGF5b3V0VGVzdENvbnRyb2xsZXIgPSBh
ZG9wdFB0cihuZXcgTGF5b3V0VGVzdENvbnRyb2xsZXIodGhpcykpOwogICAgIG1fZXZlbnRTZW5k
ZXIgPSBhZG9wdFB0cihuZXcgRXZlbnRTZW5kZXIodGhpcykpOwotICAgIG1fdGV4dElucHV0Q29u
dHJvbGxlciA9IGFkb3B0UHRyKG5ldyBUZXh0SW5wdXRDb250cm9sbGVyKCkpOwogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgbV9u
b3RpZmljYXRpb25QcmVzZW50ZXIgPSBhZG9wdFB0cihuZXcgTm90aWZpY2F0aW9uUHJlc2VudGVy
KHRoaXMpKTsKICNlbmRpZgpAQCAtMTc1LDE1ICsxNzMsMTMgQEAgdm9pZCBUZXN0U2hlbGw6OmNy
ZWF0ZU1haW5XaW5kb3coKQogICAgIG1fZHJ0RGV2VG9vbHNBZ2VudCA9IGFkb3B0UHRyKG5ldyBE
UlREZXZUb29sc0FnZW50KTsKICAgICBtX3dlYlZpZXdIb3N0ID0gYWRvcHRQdHIoY3JlYXRlTmV3
V2luZG93KFdlYlVSTCgpLCBtX2RydERldlRvb2xzQWdlbnQuZ2V0KCkpKTsKICAgICBtX3dlYlZp
ZXcgPSBtX3dlYlZpZXdIb3N0LT53ZWJWaWV3KCk7Ci0gICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci0+c2V0V2ViVmlldyhtX3dlYlZpZXcpOwotICAgIG1fdGV4dElucHV0Q29udHJvbGxlci0+
c2V0V2ViVmlldyhtX3dlYlZpZXcpOworICAgIG1fdGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXco
bV93ZWJWaWV3KTsKICAgICBtX2RydERldlRvb2xzQWdlbnQtPnNldFdlYlZpZXcobV93ZWJWaWV3
KTsKIH0KIAogVGVzdFNoZWxsOjp+VGVzdFNoZWxsKCkKIHsKLSAgICBtX2FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLT5zZXRXZWJWaWV3KDApOwotICAgIG1fdGV4dElucHV0Q29udHJvbGxlci0+c2V0
V2ViVmlldygwKTsKKyAgICBtX3Rlc3RJbnRlcmZhY2VzLT5zZXRXZWJWaWV3KDApOwogICAgIG1f
ZHJ0RGV2VG9vbHNBZ2VudC0+c2V0V2ViVmlldygwKTsKIH0KIApAQCAtMjk0LDcgKzI5MCw2IEBA
IHZvaWQgVGVzdFNoZWxsOjpyZXNldFRlc3RDb250cm9sbGVyKCkKIHsKICAgICByZXNldFdlYlNl
dHRpbmdzKCp3ZWJWaWV3KCkpOwogICAgIG1fd2ViUGVybWlzc2lvbnMtPnJlc2V0KCk7Ci0gICAg
bV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+cmVzZXQoKTsKICAgICBtX3Rlc3RJbnRlcmZhY2Vz
LT5yZXNldEFsbCgpOwogICAgIG1fbGF5b3V0VGVzdENvbnRyb2xsZXItPnJlc2V0KCk7CiAgICAg
bV9ldmVudFNlbmRlci0+cmVzZXQoKTsKQEAgLTcyOCwxMiArNzIzLDEwIEBAIHZvaWQgVGVzdFNo
ZWxsOjpkdW1wSW1hZ2UoU2tDYW52YXMqIGNhbnZhcykgY29uc3QKIHZvaWQgVGVzdFNoZWxsOjpi
aW5kSlNPYmplY3RzVG9XaW5kb3coV2ViRnJhbWUqIGZyYW1lKQogewogICAgIFdlYlRlc3RpbmdT
dXBwb3J0OjppbmplY3RJbnRlcm5hbHNPYmplY3QoZnJhbWUpOwotICAgIG1fYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgo
ImFjY2Vzc2liaWxpdHlDb250cm9sbGVyIikpOwogICAgIG1fdGVzdEludGVyZmFjZXMtPmJpbmRU
byhmcmFtZSk7CiAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+YmluZFRvSmF2YXNjcmlwdChm
cmFtZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7CiAgICAg
bV9sYXlvdXRUZXN0Q29udHJvbGxlci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2ViU3RyaW5n
Ojpmcm9tVVRGOCgidGVzdFJ1bm5lciIpKTsKICAgICBtX2V2ZW50U2VuZGVyLT5iaW5kVG9KYXZh
c2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJldmVudFNlbmRlciIpKTsKLSAgICBt
X3RleHRJbnB1dENvbnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6
ZnJvbVVURjgoInRleHRJbnB1dENvbnRyb2xsZXIiKSk7CiB9CiAKIFdlYlZpZXdIb3N0KiBUZXN0
U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJsKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCAxMGQxZWQzNWEyMjYwN2Fm
ZWFlMjQyYTI5MzljNmZmNTc5YmU3MGE2Li5hZWUzMDY1NDQ3NmNjYjU2YzgzNGI1OGEyMDE3NDll
YmE2ODg0ZGFkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApA
QCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2lu
Y2x1ZGUgIlRlc3RFdmVudFByaW50ZXIuaCIKICNpbmNsdWRlICJUZXN0SW50ZXJmYWNlcy5oIgot
I2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNl
cy5oIgogI2luY2x1ZGUgIldlYlZpZXdIb3N0LmgiCiAjaW5jbHVkZSA8c3RyaW5nPgpAQCAtOTUs
NyArOTQsNyBAQCBwdWJsaWM6CiAgICAgV2ViVmlld0hvc3QqIHdlYlZpZXdIb3N0KCkgY29uc3Qg
eyByZXR1cm4gbV93ZWJWaWV3SG9zdC5nZXQoKTsgfQogICAgIExheW91dFRlc3RDb250cm9sbGVy
KiBsYXlvdXRUZXN0Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VGVzdENvbnRy
b2xsZXIuZ2V0KCk7IH0KICAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKSBjb25zdCB7IHJl
dHVybiBtX2V2ZW50U2VuZGVyLmdldCgpOyB9Ci0gICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIq
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5nZXQoKTsgfQorICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKCk7IH0KICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBO
b3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLmdldCgpOyB9CiAjZW5kaWYKQEAgLTIxNSwxMSAr
MjE0LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2ViUGVybWlzc2lvbnM+IG1fd2ViUGVybWlz
c2lvbnM7CiAgICAgT3duUHRyPERSVERldlRvb2xzQWdlbnQ+IG1fZHJ0RGV2VG9vbHNBZ2VudDsK
ICAgICBPd25QdHI8RFJURGV2VG9vbHNDbGllbnQ+IG1fZHJ0RGV2VG9vbHNDbGllbnQ7Ci0gICAg
T3duUHRyPEFjY2Vzc2liaWxpdHlDb250cm9sbGVyPiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
OwogICAgIE93blB0cjxUZXN0SW50ZXJmYWNlcz4gbV90ZXN0SW50ZXJmYWNlczsKICAgICBPd25Q
dHI8RXZlbnRTZW5kZXI+IG1fZXZlbnRTZW5kZXI7CiAgICAgT3duUHRyPExheW91dFRlc3RDb250
cm9sbGVyPiBtX2xheW91dFRlc3RDb250cm9sbGVyOwotICAgIE93blB0cjxUZXh0SW5wdXRDb250
cm9sbGVyPiBtX3RleHRJbnB1dENvbnRyb2xsZXI7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
IHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBPd25QdHI8Tm90aWZpY2F0aW9u
UHJlc2VudGVyPiBtX25vdGlmaWNhdGlvblByZXNlbnRlcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153845</attachid>
            <date>2012-07-23 12:56:08 -0700</date>
            <delta_ts>2012-07-23 14:24:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-91459-20120723125600.patch</filename>
            <type>text/plain</type>
            <size>9610</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzU0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGUyNzFlNzY5NDVlOWYwYzQ4M2VjZmNhNjM1ZDBmOWFm
ZGU5MjljMy4uNzI2OWI2NGFkMjg3MGQyYzA1ZjhlZjA1MDg5MTlhZGRlZDRjYWI4ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEyLTA3LTIzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW0Nocm9taXVtXSBUZXN0SW50ZXJmYWNlcyBzaG91bGQgYmUgcmVzcG9uc2libGUgZm9yIG93
bmluZyBhbmQgYmluZGluZyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBhbmQgVGV4dElucHV0Q29u
dHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTE0NTkKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgUmF0
aGVyIHRoYW4gaGF2aW5nIFRlc3RTaGVsbCBvd24gYW5kIGJpbmQgZWFjaCBvZiB0aGVzZSBKYXZh
U2NyaXB0IEFQSXMKKyAgICAgICAgaW5kaXZpZHVhbGx5LCBUZXN0U2hlbGwgc2hvdWxkIGRlbGVn
YXRlIHRoYXQgd29yayB0byBUZXN0SW50ZXJmYWNlcy4KKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciBhbmQgVGV4dElucHV0Q29udHJvbGxlciB0byBiZQor
ICAgICAgICB0aGUgcmVzcG9uc2liaWxpdHkgb2YgVGVzdEludGVyZmFjZXMuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmNwcDoK
KyAgICAgICAgKFRlc3RJbnRlcmZhY2VzOjpUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgIChUZXN0
SW50ZXJmYWNlczo6flRlc3RJbnRlcmZhY2VzKToKKyAgICAgICAgKFRlc3RJbnRlcmZhY2VzOjpz
ZXRXZWJWaWV3KToKKyAgICAgICAgKFRlc3RJbnRlcmZhY2VzOjpiaW5kVG8pOgorICAgICAgICAo
VGVzdEludGVyZmFjZXM6OnJlc2V0QWxsKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmg6CisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAoVGVzdEludGVyZmFjZXMpOgorICAgICAgICAoVGVzdEludGVyZmFjZXM6OmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToKKyAgICAgICAgKFRl
c3RTaGVsbDo6Y3JlYXRlTWFpbldpbmRvdyk6CisgICAgICAgIChUZXN0U2hlbGw6On5UZXN0U2hl
bGwpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KFRlc3RTaGVsbDo6YmluZEpTT2JqZWN0c1RvV2luZG93KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbDo6YWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIpOgorICAgICAgICAoVGVzdFNoZWxsKToKKwogMjAxMi0wNy0yMyAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEyMzMzOS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5jcHAKaW5kZXggYzBk
NTMyYTA3ZjI3MjkxNWZiYmY4MzBiYTdkOTdjZmNiZmI3MzQyNi4uYjdjODVlZGZiOTRjYTU4YmUz
NTZkOTVmMWVkMWZhYjMzOTg2YjQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTMxLDQz
ICszMSw2NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RJbnRlcmZhY2Vz
LmgiCiAKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkdh
bWVwYWRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgogCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgog
CiB1c2luZyBXZWJLaXQ6OldlYkZyYW1lOwogdXNpbmcgV2ViS2l0OjpXZWJTdHJpbmc7Cit1c2lu
ZyBXZWJLaXQ6OldlYlZpZXc7CiAKIGNsYXNzIFRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbCB7CiBw
dWJsaWM6CiAgICAgSW50ZXJuYWwoKTsKICAgICB+SW50ZXJuYWwoKTsKIAorICAgIHZvaWQgc2V0
V2ViVmlldyhXZWJWaWV3KiB3ZWJWaWV3KTsKICAgICB2b2lkIGJpbmRUbyhXZWJGcmFtZSopOwog
ICAgIHZvaWQgcmVzZXRBbGwoKTsKIAorICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcigpIHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Z2V0KCk7IH0KKwogcHJpdmF0ZToKKyAgICBPd25QdHI8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI+
IG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgT3duUHRyPEdhbWVwYWRDb250cm9sbGVy
PiBtX2dhbWVwYWRDb250cm9sbGVyOworICAgIE93blB0cjxUZXh0SW5wdXRDb250cm9sbGVyPiBt
X3RleHRJbnB1dENvbnRyb2xsZXI7CiB9OwogCiBUZXN0SW50ZXJmYWNlczo6SW50ZXJuYWw6Oklu
dGVybmFsKCkKIHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyID0gYWRvcHRQdHIobmV3
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkpOwogICAgIG1fZ2FtZXBhZENvbnRyb2xsZXIgPSBh
ZG9wdFB0cihuZXcgR2FtZXBhZENvbnRyb2xsZXIoKSk7CisgICAgbV90ZXh0SW5wdXRDb250cm9s
bGVyID0gYWRvcHRQdHIobmV3IFRleHRJbnB1dENvbnRyb2xsZXIoKSk7CiB9CiAKIFRlc3RJbnRl
cmZhY2VzOjpJbnRlcm5hbDo6fkludGVybmFsKCkKIHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLT5zZXRXZWJWaWV3KDApOworICAgIC8vIG1fZ2FtZXBhZENvbnRyb2xsZXIgZG9lc24n
dCBkZXBlbmQgb24gV2ViVmlldy4KKyAgICBtX3RleHRJbnB1dENvbnRyb2xsZXItPnNldFdlYlZp
ZXcoMCk7Cit9CisKK3ZvaWQgVGVzdEludGVyZmFjZXM6OkludGVybmFsOjpzZXRXZWJWaWV3KFdl
YlZpZXcqIHdlYlZpZXcpCit7CisgICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+c2V0V2Vi
Vmlldyh3ZWJWaWV3KTsKKyAgICAvLyBtX2dhbWVwYWRDb250cm9sbGVyIGRvZXNuJ3QgZGVwZW5k
IG9uIFdlYlZpZXcuCisgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyLT5zZXRXZWJWaWV3KHdlYlZp
ZXcpOwogfQogCiB2b2lkIFRlc3RJbnRlcmZhY2VzOjpJbnRlcm5hbDo6YmluZFRvKFdlYkZyYW1l
KiBmcmFtZSkKIHsKKyAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5iaW5kVG9KYXZhc2Ny
aXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4KCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlciIp
KTsKICAgICBtX2dhbWVwYWRDb250cm9sbGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJT
dHJpbmc6OmZyb21VVEY4KCJnYW1lcGFkQ29udHJvbGxlciIpKTsKKyAgICBtX3RleHRJbnB1dENv
bnRyb2xsZXItPmJpbmRUb0phdmFzY3JpcHQoZnJhbWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoInRl
eHRJbnB1dENvbnRyb2xsZXIiKSk7CiB9CiAKIHZvaWQgVGVzdEludGVyZmFjZXM6OkludGVybmFs
OjpyZXNldEFsbCgpCiB7CisgICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlci0+cmVzZXQoKTsK
ICAgICBtX2dhbWVwYWRDb250cm9sbGVyLT5yZXNldCgpOworICAgIC8vIG1fdGV4dElucHV0Q29u
dHJvbGxlciBkb2Vzbid0IGhhdmUgYW55IHN0YXRlIHRvIHJlc2V0LgogfQogCiBUZXN0SW50ZXJm
YWNlczo6VGVzdEludGVyZmFjZXMoKQpAQCAtODAsNiArMTA0LDExIEBAIFRlc3RJbnRlcmZhY2Vz
Ojp+VGVzdEludGVyZmFjZXMoKQogICAgIGRlbGV0ZSBtX2ludGVybmFsOwogfQogCit2b2lkIFRl
c3RJbnRlcmZhY2VzOjpzZXRXZWJWaWV3KFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgbV9pbnRl
cm5hbC0+c2V0V2ViVmlldyh3ZWJWaWV3KTsKK30KKwogdm9pZCBUZXN0SW50ZXJmYWNlczo6Ymlu
ZFRvKFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBtX2ludGVybmFsLT5iaW5kVG8oZnJhbWUpOwpA
QCAtODksMyArMTE4LDggQEAgdm9pZCBUZXN0SW50ZXJmYWNlczo6cmVzZXRBbGwoKQogewogICAg
IG1faW50ZXJuYWwtPnJlc2V0QWxsKCk7CiB9CisKK0FjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBU
ZXN0SW50ZXJmYWNlczo6YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQoreworICAgIHJldHVybiBt
X2ludGVybmFsLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpOworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXN0SW50ZXJmYWNlcy5o
CmluZGV4IDE2ZWQ1YTY5ZTljYmE0ZjNmNGVhNmQxNzZjNDVmYTcxNzJkNTQwZDguLjMwNDQzNGZi
OTM1MjVhMmZlZjM1NDM1NjlkYzBjMzQ4MWQzNDU1NTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGVzdEludGVyZmFjZXMuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1Rlc3RJbnRlcmZhY2VzLmgKQEAg
LTMzLDE2ICszMywyMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkZyYW1lOwor
Y2xhc3MgV2ViVmlldzsKIH0KIAorY2xhc3MgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CisKIGNs
YXNzIFRlc3RJbnRlcmZhY2VzIHsKIHB1YmxpYzoKICAgICBUZXN0SW50ZXJmYWNlcygpOwogICAg
IH5UZXN0SW50ZXJmYWNlcygpOwogCisgICAgdm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmll
dyogd2ViVmlldyk7CiAgICAgdm9pZCBiaW5kVG8oV2ViS2l0OjpXZWJGcmFtZSopOwogICAgIHZv
aWQgcmVzZXRBbGwoKTsKIAorICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBhY2Nlc3NpYmls
aXR5Q29udHJvbGxlcigpOworCiBwcml2YXRlOgogICAgIGNsYXNzIEludGVybmFsOwogICAgIElu
dGVybmFsKiBtX2ludGVybmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKaW5kZXggYjQxNDJlYWNmMDczZTY0ODNkYTllZWE1YjIxOTc0ZDk3Yzg3ZjE1Yy4u
N2ViYjVhZTE2OWM1ODFjMzU4YTRjNTgwN2YwN2U3MjQwYjQ0YjQ3ZSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xNDUsMTEgKzE0NSw5IEBAIFRl
c3RTaGVsbDo6VGVzdFNoZWxsKCkKIHZvaWQgVGVzdFNoZWxsOjppbml0aWFsaXplKCkKIHsKICAg
ICBtX3dlYlBlcm1pc3Npb25zID0gYWRvcHRQdHIobmV3IFdlYlBlcm1pc3Npb25zKHRoaXMpKTsK
LSAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyID0gYWRvcHRQdHIobmV3IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKCkpOwogICAgIG1fdGVzdEludGVyZmFjZXMgPSBhZG9wdFB0cihuZXcgVGVz
dEludGVyZmFjZXMoKSk7CiAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlciA9IGFkb3B0UHRyKG5l
dyBMYXlvdXRUZXN0Q29udHJvbGxlcih0aGlzKSk7CiAgICAgbV9ldmVudFNlbmRlciA9IGFkb3B0
UHRyKG5ldyBFdmVudFNlbmRlcih0aGlzKSk7Ci0gICAgbV90ZXh0SW5wdXRDb250cm9sbGVyID0g
YWRvcHRQdHIobmV3IFRleHRJbnB1dENvbnRyb2xsZXIoKSk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBtX25vdGlmaWNhdGlv
blByZXNlbnRlciA9IGFkb3B0UHRyKG5ldyBOb3RpZmljYXRpb25QcmVzZW50ZXIodGhpcykpOwog
I2VuZGlmCkBAIC0xNzMsMTUgKzE3MSwxMyBAQCB2b2lkIFRlc3RTaGVsbDo6Y3JlYXRlTWFpbldp
bmRvdygpCiAgICAgbV9kcnREZXZUb29sc0FnZW50ID0gYWRvcHRQdHIobmV3IERSVERldlRvb2xz
QWdlbnQpOwogICAgIG1fd2ViVmlld0hvc3QgPSBhZG9wdFB0cihjcmVhdGVOZXdXaW5kb3coV2Vi
VVJMKCksIG1fZHJ0RGV2VG9vbHNBZ2VudC5nZXQoKSkpOwogICAgIG1fd2ViVmlldyA9IG1fd2Vi
Vmlld0hvc3QtPndlYlZpZXcoKTsKLSAgICBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVyLT5zZXRX
ZWJWaWV3KG1fd2ViVmlldyk7Ci0gICAgbV90ZXh0SW5wdXRDb250cm9sbGVyLT5zZXRXZWJWaWV3
KG1fd2ViVmlldyk7CisgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0V2ViVmlldyhtX3dlYlZpZXcp
OwogICAgIG1fZHJ0RGV2VG9vbHNBZ2VudC0+c2V0V2ViVmlldyhtX3dlYlZpZXcpOwogfQogCiBU
ZXN0U2hlbGw6On5UZXN0U2hlbGwoKQogewotICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIt
PnNldFdlYlZpZXcoMCk7Ci0gICAgbV90ZXh0SW5wdXRDb250cm9sbGVyLT5zZXRXZWJWaWV3KDAp
OworICAgIG1fdGVzdEludGVyZmFjZXMtPnNldFdlYlZpZXcoMCk7CiAgICAgbV9kcnREZXZUb29s
c0FnZW50LT5zZXRXZWJWaWV3KDApOwogfQogCkBAIC0yOTIsNyArMjg4LDYgQEAgdm9pZCBUZXN0
U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIoKQogewogICAgIHJlc2V0V2ViU2V0dGluZ3MoKndl
YlZpZXcoKSk7CiAgICAgbV93ZWJQZXJtaXNzaW9ucy0+cmVzZXQoKTsKLSAgICBtX2FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLT5yZXNldCgpOwogICAgIG1fdGVzdEludGVyZmFjZXMtPnJlc2V0QWxs
KCk7CiAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+cmVzZXQoKTsKICAgICBtX2V2ZW50U2Vu
ZGVyLT5yZXNldCgpOwpAQCAtNzIxLDEyICs3MTYsMTAgQEAgdm9pZCBUZXN0U2hlbGw6OmR1bXBJ
bWFnZShTa0NhbnZhcyogY2FudmFzKSBjb25zdAogdm9pZCBUZXN0U2hlbGw6OmJpbmRKU09iamVj
dHNUb1dpbmRvdyhXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgV2ViVGVzdGluZ1N1cHBvcnQ6Omlu
amVjdEludGVybmFsc09iamVjdChmcmFtZSk7Ci0gICAgbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgiYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIiKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+YmluZFRvKGZyYW1lKTsK
ICAgICBtX2xheW91dFRlc3RDb250cm9sbGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJT
dHJpbmc6OmZyb21VVEY4KCJsYXlvdXRUZXN0Q29udHJvbGxlciIpKTsKICAgICBtX2xheW91dFRl
c3RDb250cm9sbGVyLT5iaW5kVG9KYXZhc2NyaXB0KGZyYW1lLCBXZWJTdHJpbmc6OmZyb21VVEY4
KCJ0ZXN0UnVubmVyIikpOwogICAgIG1fZXZlbnRTZW5kZXItPmJpbmRUb0phdmFzY3JpcHQoZnJh
bWUsIFdlYlN0cmluZzo6ZnJvbVVURjgoImV2ZW50U2VuZGVyIikpOwotICAgIG1fdGV4dElucHV0
Q29udHJvbGxlci0+YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgV2ViU3RyaW5nOjpmcm9tVVRGOCgi
dGV4dElucHV0Q29udHJvbGxlciIpKTsKIH0KIAogV2ViVmlld0hvc3QqIFRlc3RTaGVsbDo6Y3Jl
YXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IDdlYTU3OTA1NjVhYjhmOWU1YjYxMDIwMjli
NTZlYjdkOGJmMjRiZGIuLjA3NzgxNjM2YmE3NTA3NTk1MmIyZmYzOGM0YzQ3M2RkNzZjNGNiNWMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCkBAIC0zOCw3ICsz
OCw2IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAiVGVz
dEV2ZW50UHJpbnRlci5oIgogI2luY2x1ZGUgIlRlc3RJbnRlcmZhY2VzLmgiCi0jaW5jbHVkZSAi
VGV4dElucHV0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5j
bHVkZSAiV2ViVmlld0hvc3QuaCIKICNpbmNsdWRlIDxzdHJpbmc+CkBAIC05Myw3ICs5Miw3IEBA
IHB1YmxpYzoKICAgICBXZWJWaWV3SG9zdCogd2ViVmlld0hvc3QoKSBjb25zdCB7IHJldHVybiBt
X3dlYlZpZXdIb3N0LmdldCgpOyB9CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGxheW91dFRl
c3RDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUZXN0Q29udHJvbGxlci5nZXQo
KTsgfQogICAgIEV2ZW50U2VuZGVyKiBldmVudFNlbmRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZXZl
bnRTZW5kZXIuZ2V0KCk7IH0KLSAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmdldCgpOyB9CisgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+YWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKTsgfQogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIE5vdGlmaWNhdGlv
blByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gbV9ub3Rp
ZmljYXRpb25QcmVzZW50ZXIuZ2V0KCk7IH0KICNlbmRpZgpAQCAtMjE0LDExICsyMTMsOSBAQCBw
cml2YXRlOgogICAgIE93blB0cjxXZWJQZXJtaXNzaW9ucz4gbV93ZWJQZXJtaXNzaW9uczsKICAg
ICBPd25QdHI8RFJURGV2VG9vbHNBZ2VudD4gbV9kcnREZXZUb29sc0FnZW50OwogICAgIE93blB0
cjxEUlREZXZUb29sc0NsaWVudD4gbV9kcnREZXZUb29sc0NsaWVudDsKLSAgICBPd25QdHI8QWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI+IG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7CiAgICAgT3du
UHRyPFRlc3RJbnRlcmZhY2VzPiBtX3Rlc3RJbnRlcmZhY2VzOwogICAgIE93blB0cjxFdmVudFNl
bmRlcj4gbV9ldmVudFNlbmRlcjsKICAgICBPd25QdHI8TGF5b3V0VGVzdENvbnRyb2xsZXI+IG1f
bGF5b3V0VGVzdENvbnRyb2xsZXI7Ci0gICAgT3duUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1f
dGV4dElucHV0Q29udHJvbGxlcjsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIE93blB0cjxOb3RpZmljYXRpb25QcmVzZW50ZXI+
IG1fbm90aWZpY2F0aW9uUHJlc2VudGVyOwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>