<?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>97483</bug_id>
          
          <creation_ts>2012-09-24 14:31:49 -0700</creation_ts>
          <short_desc>It&apos;s possible to clone consumable user gestures</short_desc>
          <delta_ts>2012-10-03 02:45:30 -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>WebCore Misc.</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>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdn</cc>
    
    <cc>cevans</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727009</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-09-24 14:31:49 -0700</bug_when>
    <thetext>Since DOMTimer copies the user gesture state (but does not track whether or not the user gesture is consumed), you can effectively fork it like this:

&lt;script&gt;
function foo() {
 setTimeout(function() { var c = window.open(&quot;about:blank&quot;); c.close(); }, 0);
 window.open(&quot;data:text/html,pop-under&quot;, &quot;&quot;, &quot;width=300,height=300&quot;);
}
&lt;/script&gt;
&lt;button onclick=&quot;foo()&quot;&gt;Click Me&lt;/button&gt;

A port supporting user gesture consumption should only create one window. Since the timeout is created before the first window.open call, however, two windows are created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732527</commentid>
    <comment_count>1</comment_count>
      <attachid>166662</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 04:29:38 -0700</bug_when>
    <thetext>Created attachment 166662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732588</commentid>
    <comment_count>2</comment_count>
      <attachid>166662</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-02 05:56:32 -0700</bug_when>
    <thetext>Comment on attachment 166662
Patch

Attachment 166662 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14114676

New failing tests:
platform/mac/editing/deleting/backward-delete.html
fast/events/popup-blocking-timers.html
svg/custom/use-instanceRoot-event-bubbling.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732621</commentid>
    <comment_count>3</comment_count>
      <attachid>166662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 06:47:32 -0700</bug_when>
    <thetext>Comment on attachment 166662
Patch

Attachment 166662 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14138159

New failing tests:
fast/events/popup-blocking-timers.html
svg/custom/use-instanceRoot-event-bubbling.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732628</commentid>
    <comment_count>4</comment_count>
      <attachid>166685</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 06:59:07 -0700</bug_when>
    <thetext>Created attachment 166685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732846</commentid>
    <comment_count>5</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-02 11:15:25 -0700</bug_when>
    <thetext>*** Bug 98060 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732852</commentid>
    <comment_count>6</comment_count>
      <attachid>166685</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-02 11:19:31 -0700</bug_when>
    <thetext>Comment on attachment 166685
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        is suppoed to forward the user gesture, take a reference to this token

suppoed -&gt; supposed

&gt; Source/WebCore/dom/UserGestureIndicator.cpp:37
&gt; +        return adoptRef(static_cast&lt;UserGestureIndicator::Token*&gt;(new GestureToken));

Is this static_cast needed?  I thought PassRefPtr was smart enough to know how to do the type conversion for you.

&gt; Source/WebCore/dom/UserGestureIndicator.cpp:42
&gt; +    void inc() { m_consumableGestures++; }

inc -&gt; increment?  Please use complete words in variable names.  Maybe addGesture() is a better name?

&gt; Source/WebCore/dom/UserGestureIndicator.cpp:43
&gt; +    bool consume()

consume -&gt; consumeGesture?

&gt; Source/WebCore/dom/UserGestureIndicator.cpp:50
&gt; +    bool isValid() const { return m_consumableGestures &gt; 0; }

isValid -&gt; hasGestures() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732854</commentid>
    <comment_count>7</comment_count>
      <attachid>166685</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-02 11:21:04 -0700</bug_when>
    <thetext>Comment on attachment 166685
Patch

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

&gt; Source/WebCore/dom/UserGestureIndicator.h:64
&gt; +    ProcessingUserGestureState m_state;
&gt; +    Token* m_previousToken;
&gt; +    RefPtr&lt;Token&gt; m_token;

It seems strange to need to add all this information to the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732858</commentid>
    <comment_count>8</comment_count>
      <attachid>166685</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-02 11:23:34 -0700</bug_when>
    <thetext>Comment on attachment 166685
Patch

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

&gt; Source/WebCore/page/DOMTimer.h:73
&gt; -        bool m_shouldForwardUserGesture;
&gt; +        RefPtr&lt;UserGestureIndicator::Token&gt; m_userGestureToken;

This part makes sense.  DOMTimer wants to forward the user gesture only if it wasn&apos;t consumed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732862</commentid>
    <comment_count>9</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-02 11:25:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 166685 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=166685&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/UserGestureIndicator.h:64
&gt; &gt; +    ProcessingUserGestureState m_state;
&gt; &gt; +    Token* m_previousToken;
&gt; &gt; +    RefPtr&lt;Token&gt; m_token;
&gt; 
&gt; It seems strange to need to add all this information to the stack.

hum, indeed m_state is not required.

The other two, however, are required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732872</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-02 11:33:44 -0700</bug_when>
    <thetext>This design seems more complicated than needed.

What question is DOMTimer really trying to answer?  It wants to know whether all the user gestures for its call stack where consumed before that stack unwound.  That means we only need one counter per call stack, not  stack of counters, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732992</commentid>
    <comment_count>11</comment_count>
      <attachid>166738</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 13:09:07 -0700</bug_when>
    <thetext>Created attachment 166738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732996</commentid>
    <comment_count>12</comment_count>
      <attachid>166739</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 13:10:20 -0700</bug_when>
    <thetext>Created attachment 166739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733000</commentid>
    <comment_count>13</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-10-02 13:11:47 -0700</bug_when>
    <thetext>I believe I addressed all your comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733056</commentid>
    <comment_count>14</comment_count>
      <attachid>166747</attachid>
    <who name="">jochen</who>
    <bug_when>2012-10-02 14:03:41 -0700</bug_when>
    <thetext>Created attachment 166747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733476</commentid>
    <comment_count>15</comment_count>
      <attachid>166747</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-03 02:21:58 -0700</bug_when>
    <thetext>Comment on attachment 166747
Patch

Looks great.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733496</commentid>
    <comment_count>16</comment_count>
      <attachid>166747</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 02:45:26 -0700</bug_when>
    <thetext>Comment on attachment 166747
Patch

Clearing flags on attachment: 166747

Committed r130267: &lt;http://trac.webkit.org/changeset/130267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733497</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 02:45:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166662</attachid>
            <date>2012-10-02 04:29:38 -0700</date>
            <delta_ts>2012-10-02 06:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97483-20121002132850.patch</filename>
            <type>text/plain</type>
            <size>12304</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUxNzU3Mzc2ZWE4Mjli
ZDc4NzMyMDA1NTEyZGEyOWI4Zjc3NGVkYi4uMzlhZDM2NTFhYmVmNTUzYzc4ZDdjMDE0MjllOTg0
NGFlZmVmOWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTAyICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc3VyZSB0
aGF0IHVzZXIgZ2VzdHVyZXMgY2FuJ3QgYmUgY29uc3VtZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhIHNpbXBsZSBjb3Vu
dGVyLCB1c2UgYSByZWYgY291bnRlZCB0b2tlbiB0byB0cmFjayBob3cgbWFueQorICAgICAgICB1
c2VyIGdlc3R1cmVzIGhhcHBlbmVkIGFuZCB3aGVyZSBjb25zdW1lZC4gV2hlbiBjcmVhdGluZyBh
IHRpbWVyIHRoYXQKKyAgICAgICAgaXMgc3VwcG9lZCB0byBmb3J3YXJkIHRoZSB1c2VyIGdlc3R1
cmUsIHRha2UgYSByZWZlcmVuY2UgdG8gdGhpcyB0b2tlbgorICAgICAgICBhbmQgcmVpbnN0YW50
aWF0ZSB0aGUgVXNlckdlc3R1cmVJbmRpY2F0b3Igd2l0aCB0aGF0IHRva2VuIHdoZW4gdGhlCisg
ICAgICAgIHRpbWVyIGlzIHRyaWdnZXJlZC4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLmh0bWwKKwor
ICAgICAgICAqIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUlu
ZGljYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6flVzZXJH
ZXN0dXJlSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9y
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJ
bmRpY2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSk6CisgICAgICAgICogZG9tL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmg6CisgICAgICAgIChUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2Vz
dHVyZUluZGljYXRvcjo6VG9rZW46On5Ub2tlbik6CisgICAgICAgIChVc2VyR2VzdHVyZUluZGlj
YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFRv
a2VuKToKKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVRpbWVyOjpET01UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6ZmlyZWQpOgor
ICAgICAgICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgKERPTVRpbWVyKToKKwogMjAxMi0x
MC0wMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZW1vdmUgYW5vbnltb3VzIG5hbWVzcGFjZSBmcm9tIFN0eWxlQnVpbGRlci5jcHAgZm9yIGJldHRl
ciBkZWJ1Z2dpbmcgZXhwZXJpZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Vz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUlu
ZGljYXRvci5jcHAKaW5kZXggZGUxMzIzNjU5Y2IzMWMzZDY1YTA4NjYyNjg4N2NmOGQxYWNiODE3
YS4uOGNlNjI0MWY1NWI2NjE3ZmIyYmZhMWQyNzM3NjU5YTIyNzgzODRmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCkBAIC0yOCw0MCArMjgsOTcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCituYW1lc3BhY2UgeworCitjbGFzcyBHZXN0dXJlVG9r
ZW4gOiBwdWJsaWMgVXNlckdlc3R1cmVJbmRpY2F0b3I6OlRva2VuIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4+IGNyZWF0ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8VXNlckdlc3R1cmVJbmRp
Y2F0b3I6OlRva2VuKj4obmV3IEdlc3R1cmVUb2tlbikpOworICAgIH0KKworICAgIHZpcnR1YWwg
fkdlc3R1cmVUb2tlbigpIHsgfQorCisgICAgdm9pZCBpbmMoKSB7IG1fY29uc3VtYWJsZUdlc3R1
cmVzKys7IH0KKyAgICBib29sIGNvbnN1bWUoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2NvbnN1
bWFibGVHZXN0dXJlcykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgbV9jb25z
dW1hYmxlR2VzdHVyZXMtLTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3VtYWJsZUdlc3R1cmVzID4gMDsgfQorCitw
cml2YXRlOgorICAgIEdlc3R1cmVUb2tlbigpCisgICAgICAgIDogbV9jb25zdW1hYmxlR2VzdHVy
ZXMoMCkKKyAgICB7CisgICAgfQorCisgICAgc2l6ZV90IG1fY29uc3VtYWJsZUdlc3R1cmVzOwor
fTsKKworfQorCiBzdGF0aWMgYm9vbCBpc0RlZmluaXRlKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0
YXRlIHN0YXRlKQogewogICAgIHJldHVybiBzdGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlIHx8IHN0YXRlID09IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmU7
CiB9CiAKIFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpz
X3N0YXRlID0gRGVmaW5pdGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZTsKLXNpemVfdCBVc2Vy
R2VzdHVyZUluZGljYXRvcjo6c19jb25zdW1hYmxlR2VzdHVyZXMgPSAwOworVXNlckdlc3R1cmVJ
bmRpY2F0b3I6OlRva2VuKiBVc2VyR2VzdHVyZUluZGljYXRvcjo6c19jdXJyZW50VG9rZW4gPSAw
OwogCiBVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRpY2F0b3IoUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlU3RhdGUgc3RhdGUpCiAgICAgOiBtX3ByZXZpb3VzU3RhdGUoc19zdGF0ZSkK
KyAgICAsIG1fc3RhdGUoc3RhdGUpCisgICAgLCBtX3ByZXZpb3VzVG9rZW4oc19jdXJyZW50VG9r
ZW4pCisgICAgLCBtX3Rva2VuKHNfY3VycmVudFRva2VuKQogewogICAgIC8vIFdlIG92ZXJ3cml0
ZSBzX3N0YXRlIG9ubHkgaWYgdGhlIGNhbGxlciBpcyBkZWZpbml0ZSBhYm91dCB0aGUgZ2VzdHVy
ZSBzdGF0ZS4KLSAgICBpZiAoaXNEZWZpbml0ZShzdGF0ZSkpCisgICAgaWYgKGlzRGVmaW5pdGUo
c3RhdGUpKSB7CisgICAgICAgIGlmIChzX3N0YXRlICE9IHN0YXRlKSB7CisgICAgICAgICAgICBt
X3Rva2VuID0gR2VzdHVyZVRva2VuOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHNfY3VycmVudFRv
a2VuID0gbV90b2tlbi5nZXQoKTsKKyAgICAgICAgfQogICAgICAgICBzX3N0YXRlID0gc3RhdGU7
CisgICAgfQorCisgICAgaWYgKHN0YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1
cmUpCisgICAgICAgIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KG1fdG9rZW4uZ2V0KCkpLT5p
bmMoKTsKKyAgICBBU1NFUlQoaXNEZWZpbml0ZShzX3N0YXRlKSk7Cit9CisKK1VzZXJHZXN0dXJl
SW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihQYXNzUmVmUHRyPFVzZXJHZXN0dXJlSW5k
aWNhdG9yOjpUb2tlbj4gdG9rZW4pCisgICAgOiBtX3ByZXZpb3VzU3RhdGUoc19zdGF0ZSkKKyAg
ICAsIG1fc3RhdGUoUG9zc2libHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpCisgICAgLCBtX3ByZXZp
b3VzVG9rZW4oc19jdXJyZW50VG9rZW4pCisgICAgLCBtX3Rva2VuKHNfY3VycmVudFRva2VuKQor
eworICAgIGlmICh0b2tlbiAmJiBzdGF0aWNfY2FzdDxHZXN0dXJlVG9rZW4qPih0b2tlbi5nZXQo
KSktPmlzVmFsaWQoKSkgeworICAgICAgICBzX3N0YXRlID0gbV9zdGF0ZSA9IERlZmluaXRlbHlQ
cm9jZXNzaW5nVXNlckdlc3R1cmU7CisgICAgICAgIG1fdG9rZW4gPSB0b2tlbjsKKyAgICB9CiAK
LSAgICBpZiAoc19zdGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKQotICAg
ICAgICBzX2NvbnN1bWFibGVHZXN0dXJlcysrOwogICAgIEFTU0VSVChpc0RlZmluaXRlKHNfc3Rh
dGUpKTsKIH0KIAogVXNlckdlc3R1cmVJbmRpY2F0b3I6On5Vc2VyR2VzdHVyZUluZGljYXRvcigp
CiB7Ci0gICAgaWYgKHNfY29uc3VtYWJsZUdlc3R1cmVzICYmIHNfc3RhdGUgPT0gRGVmaW5pdGVs
eVByb2Nlc3NpbmdVc2VyR2VzdHVyZSkKLSAgICAgICAgc19jb25zdW1hYmxlR2VzdHVyZXMtLTsK
ICAgICBzX3N0YXRlID0gbV9wcmV2aW91c1N0YXRlOworICAgIHNfY3VycmVudFRva2VuID0gbV9w
cmV2aW91c1Rva2VuOwogICAgIEFTU0VSVChpc0RlZmluaXRlKHNfc3RhdGUpKTsKIH0KIAorYm9v
bCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKK3sKKyAgICBy
ZXR1cm4gc19jdXJyZW50VG9rZW4gJiYgc3RhdGljX2Nhc3Q8R2VzdHVyZVRva2VuKj4oc19jdXJy
ZW50VG9rZW4pLT5pc1ZhbGlkKCkgJiYgc19zdGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlOworfQorCiBib29sIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjb25zdW1lVXNlckdl
c3R1cmUoKQogewotICAgIGlmICghc19jb25zdW1hYmxlR2VzdHVyZXMpCisgICAgaWYgKCFzX2N1
cnJlbnRUb2tlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHNfY29uc3VtYWJsZUdlc3R1
cmVzLS07Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVU
b2tlbio+KHNfY3VycmVudFRva2VuKS0+Y29uc3VtZSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDUwYWFiZmJlZDQ4ZGM3OWI4MTE2ZDhl
YjgzY2Q4NThlMWZmZDlhNDYuLmY4NzIyODc4MGQwMzZiYWY5MzVhNjM4NjE4MjM2ZTYzYjhiN2Q3
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCkBAIC0yNyw2
ICsyNyw4IEBACiAjZGVmaW5lIFVzZXJHZXN0dXJlSW5kaWNhdG9yX2gKIAogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDE2ICs0MSwyNyBA
QCBlbnVtIFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHsKIGNsYXNzIFVzZXJHZXN0dXJlSW5k
aWNhdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVc2VyR2VzdHVyZUluZGljYXRvcik7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgeyByZXR1
cm4gc19jb25zdW1hYmxlR2VzdHVyZXMgJiYgc19zdGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlOyB9CisgICAgY2xhc3MgVG9rZW4gOiBwdWJsaWMgUmVmQ291bnRlZDxUb2tl
bj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VG9rZW4oKSB7IH0KKyAgICB9Owor
CisgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiAgICAgc3RhdGljIGJv
b2wgY29uc3VtZVVzZXJHZXN0dXJlKCk7CisgICAgc3RhdGljIFRva2VuKiBjdXJyZW50VG9rZW4o
KSB7IHJldHVybiBzX2N1cnJlbnRUb2tlbjsgfQogCiAgICAgZXhwbGljaXQgVXNlckdlc3R1cmVJ
bmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUpOworICAgIGV4cGxpY2l0IFVzZXJH
ZXN0dXJlSW5kaWNhdG9yKFBhc3NSZWZQdHI8VG9rZW4+KTsKICAgICB+VXNlckdlc3R1cmVJbmRp
Y2F0b3IoKTsKIAorCiBwcml2YXRlOgogICAgIHN0YXRpYyBQcm9jZXNzaW5nVXNlckdlc3R1cmVT
dGF0ZSBzX3N0YXRlOwotICAgIHN0YXRpYyBzaXplX3Qgc19jb25zdW1hYmxlR2VzdHVyZXM7Cisg
ICAgc3RhdGljIFRva2VuKiBzX2N1cnJlbnRUb2tlbjsKICAgICBQcm9jZXNzaW5nVXNlckdlc3R1
cmVTdGF0ZSBtX3ByZXZpb3VzU3RhdGU7CisgICAgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUg
bV9zdGF0ZTsKKyAgICBUb2tlbiogbV9wcmV2aW91c1Rva2VuOworICAgIFJlZlB0cjxUb2tlbj4g
bV90b2tlbjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggZGFkNzZmNThk
ZmZjNjI2MDY0ZmIyMzcyOWE4NTFhMjUwM2M0OWZiMy4uYTgyNzhkMjk3YjgyMTM2YmE2YTYzNGU4
NTg1NmNjOWMxZDEyOWI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTMwLDcgKzMw
LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJT
Y2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0j
aW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtNjgsOCArNjcsOSBAQCBET01U
aW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0
cjxTY2hlZHVsZWRBY3Rpb24+CiAgICAgLCBtX25lc3RpbmdMZXZlbCh0aW1lck5lc3RpbmdMZXZl
bCArIDEpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAgLCBtX29yaWdpbmFsSW50ZXJ2YWwo
aW50ZXJ2YWwpCi0gICAgLCBtX3Nob3VsZEZvcndhcmRVc2VyR2VzdHVyZShzaG91bGRGb3J3YXJk
VXNlckdlc3R1cmUoaW50ZXJ2YWwsIG1fbmVzdGluZ0xldmVsKSkKIHsKKyAgICBpZiAoc2hvdWxk
Rm9yd2FyZFVzZXJHZXN0dXJlKGludGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCisgICAgICAgIG1f
dXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VG9rZW4oKTsK
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZFRpbWVvdXQobV90aW1lb3V0SWQsIHRo
aXMpOwogCiAgICAgZG91YmxlIGludGVydmFsTWlsbGlzZWNvbmRzID0gaW50ZXJ2YWxDbGFtcGVk
VG9NaW5pbXVtKGludGVydmFsLCBjb250ZXh0LT5taW5pbXVtVGltZXJJbnRlcnZhbCgpKTsKQEAg
LTExNiwxMCArMTE2LDggQEAgdm9pZCBET01UaW1lcjo6ZmlyZWQoKQogICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgdGlt
ZXJOZXN0aW5nTGV2ZWwgPSBtX25lc3RpbmdMZXZlbDsKICAgICBBU1NFUlQoIWNvbnRleHQtPmFj
dGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSk7Ci0gICAgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
Z2VzdHVyZUluZGljYXRvcihtX3Nob3VsZEZvcndhcmRVc2VyR2VzdHVyZSA/IERlZmluaXRlbHlQ
cm9jZXNzaW5nVXNlckdlc3R1cmUgOiBQb3NzaWJseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSk7Ci0g
ICAgCiAgICAgLy8gT25seSB0aGUgZmlyc3QgZXhlY3V0aW9uIG9mIGEgbXVsdGktc2hvdCB0aW1l
ciBzaG91bGQgZ2V0IGFuIGFmZmlybWF0aXZlIHVzZXIgZ2VzdHVyZSBpbmRpY2F0b3IuCi0gICAg
bV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUgPSBmYWxzZTsKKyAgICBVc2VyR2VzdHVyZUluZGlj
YXRvciBnZXN0dXJlSW5kaWNhdG9yKG1fdXNlckdlc3R1cmVUb2tlbi5yZWxlYXNlKCkpOwogCiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lcihjb250ZXh0LCBtX3RpbWVvdXRJZCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NVGltZXIuaAppbmRleCA0ZmJjOWFlYjM2YzcxMTFiZmUxZjVjNTUzNDFiZjg3MjY3MzU4
MTA0Li45MGI2NjU0ZjBkOGUxNTU2ZWY0MjI4YjA2MGNiMTM3MzE4MzAyN2Q1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01UaW1lci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVmaW5lIERPTVRpbWVyX2gKIAogI2lu
Y2x1ZGUgIlN1c3BlbmRhYmxlVGltZXIuaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCkBAIC02OSw3ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IG1f
bmVzdGluZ0xldmVsOwogICAgICAgICBPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBtX2FjdGlvbjsK
ICAgICAgICAgaW50IG1fb3JpZ2luYWxJbnRlcnZhbDsKLSAgICAgICAgYm9vbCBtX3Nob3VsZEZv
cndhcmRVc2VyR2VzdHVyZTsKKyAgICAgICAgUmVmUHRyPFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpU
b2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOwogICAgICAgICBzdGF0aWMgZG91YmxlIHNfbWluRGVm
YXVsdFRpbWVySW50ZXJ2YWw7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUzYTIyYmZlNGFhYmFkOWFjZWIz
ZWZiYTE4MDc3NGI3ZDJlZTQ1ZTcuLmQ4ZDBkOGQwZjQ3YTlmNGNjMjJmNTcyYjYyYWUyZjg3YTkz
ZmIzYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMC0wMiAgSm9jaGVuIEVpc2luZ2Vy
ICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCB1c2VyIGdl
c3R1cmVzIGNhbid0IGJlIGNvbnN1bWVkIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQ4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9w
dXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJl
LWJsb2NrZWQuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMDIgIEtlaXNoaSBIYXR0b3JpICA8a2Vp
c2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW9kaWZpY2F0aW9ucyBp
biBhIHNoYWRvdyB0cmVlIGRvbid0IHVwZGF0ZSB0aGUgRWxlbWVudHMgcGFuZWwuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3
YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3NjIwNGI5MmRlMzVkYTY3ZjA2NjI1OTk3MDc5M2ZmOWI4
OWMzOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBhIGZvcndhcmRlZCB1c2VyIGdlc3R1cmUgdGhhdCBp
cyBjb25zdW1lZCBiZWZvcmUgdGhlIHRpbWUgZmlyZXMgaXMgcmVzdXJyZWN0ZWQuCisKK0NsaWNr
IEhlcmUKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1
cmUtYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ODM5ZGI3YjRmY2QyM2IzM2U5YmZiM2Q2MTZj
ZmJmNWViYWNiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLmh0bWwKQEAg
LTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPHA+CisgICAgICAgICAgICBUZXN0IHRoYXQgYSBmb3J3YXJkZWQgdXNlciBnZXN0dXJlIHRo
YXQgaXMgY29uc3VtZWQgYmVmb3JlIHRoZQorICAgICAgICAgICAgdGltZSBmaXJlcyBpcyByZXN1
cnJlY3RlZC4KKyAgICAgICAgPC9wPgorICAgICAgICA8YnV0dG9uIGlkPSJidXR0b24iIG9uY2xp
Y2s9InBvcHVwKCkiPkNsaWNrIEhlcmU8L2J1dHRvbj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiB0aW1lcigp
IHsKKyAgICAgICAgICAgICAgICB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCAid2luZG93MiIp
OworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
ICAgICAgICBpZiAodGVzdFJ1bm5lci53aW5kb3dDb3VudCgpID09IHdpbmRvd0NvdW50ICsgMSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJUZXh0ID0gIkZBSUxFRCI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcG9wdXAoKSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aW1lciwgMCk7
CisgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgIndpbmRvdzEiKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93Q291bnQgPSB0ZXN0UnVubmVyLndpbmRvd0NvdW50KCk7CisKKyAgICAgICAgICAgICAgICB2
YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpOworCisgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZzZXRX
aWR0aCAvIDIsIGJ1dHRvbi5vZmZzZXRUb3AgKyBidXR0b24ub2Zmc2V0SGVpZ2h0IC8gMik7Cisg
ICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166685</attachid>
            <date>2012-10-02 06:59:07 -0700</date>
            <delta_ts>2012-10-02 13:09:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97483-20121002155819.patch</filename>
            <type>text/plain</type>
            <size>12364</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2EzZmYyMTU0ODA5NDA5
MjU0MzU2MzkwNWQzYmU1ZmQyNTk4ZjAwMS4uZjE1MTc4N2RlMjMwY2RlZDYwYzhlYTQwYTZjOGMy
YTdlZGM3YjBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDEyLTEwLTAyICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIE1ha2Ugc3VyZSB0
aGF0IHVzZXIgZ2VzdHVyZXMgY2FuJ3QgYmUgY29uc3VtZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhIHNpbXBsZSBjb3Vu
dGVyLCB1c2UgYSByZWYgY291bnRlZCB0b2tlbiB0byB0cmFjayBob3cgbWFueQorICAgICAgICB1
c2VyIGdlc3R1cmVzIGhhcHBlbmVkIGFuZCB3aGVyZSBjb25zdW1lZC4gV2hlbiBjcmVhdGluZyBh
IHRpbWVyIHRoYXQKKyAgICAgICAgaXMgc3VwcG9lZCB0byBmb3J3YXJkIHRoZSB1c2VyIGdlc3R1
cmUsIHRha2UgYSByZWZlcmVuY2UgdG8gdGhpcyB0b2tlbgorICAgICAgICBhbmQgcmVpbnN0YW50
aWF0ZSB0aGUgVXNlckdlc3R1cmVJbmRpY2F0b3Igd2l0aCB0aGF0IHRva2VuIHdoZW4gdGhlCisg
ICAgICAgIHRpbWVyIGlzIHRyaWdnZXJlZC4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLmh0bWwKKwor
ICAgICAgICAqIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUlu
ZGljYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6flVzZXJH
ZXN0dXJlSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9y
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJ
bmRpY2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSk6CisgICAgICAgICogZG9tL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmg6CisgICAgICAgIChUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2Vz
dHVyZUluZGljYXRvcjo6VG9rZW46On5Ub2tlbik6CisgICAgICAgIChVc2VyR2VzdHVyZUluZGlj
YXRvcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFRv
a2VuKToKKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVRpbWVyOjpET01UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6ZmlyZWQpOgor
ICAgICAgICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAgKERPTVRpbWVyKToKKworMjAxMi0x
MC0wMiAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBb
Y2hyb21pdW1dIEFTU0VSVCB0aGF0IHRoZSBlbWJlZGRlciBoYXMgc2V0IGEgZGVmYXVsdCBsb2Nh
bGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MDAx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4IGRl
MTMyMzY1OWNiMzFjM2Q2NWEwODY2MjY4ODdjZjhkMWFjYjgxN2EuLjI0N2MyMmUwODQ0ZWE2YTdj
YTI2OWJiMTZkOGViY2ViOGE3YjA1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9V
c2VyR2VzdHVyZUluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0
dXJlSW5kaWNhdG9yLmNwcApAQCAtMjgsNDAgKzI4LDk4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorbmFtZXNwYWNlIHsKKworY2xhc3MgR2VzdHVyZVRva2VuIDogcHVibGljIFVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpUb2tlbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNl
ckdlc3R1cmVJbmRpY2F0b3I6OlRva2VuPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKHN0YXRpY19jYXN0PFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpUb2tlbio+KG5ldyBH
ZXN0dXJlVG9rZW4pKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5HZXN0dXJlVG9rZW4oKSB7IH0K
KworICAgIHZvaWQgaW5jKCkgeyBtX2NvbnN1bWFibGVHZXN0dXJlcysrOyB9CisgICAgYm9vbCBj
b25zdW1lKCkKKyAgICB7CisgICAgICAgIGlmICghbV9jb25zdW1hYmxlR2VzdHVyZXMpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG1fY29uc3VtYWJsZUdlc3R1cmVzLS07Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnN1bWFibGVHZXN0dXJlcyA+IDA7IH0KKworcHJpdmF0ZToKKyAgICBHZXN0dXJl
VG9rZW4oKQorICAgICAgICA6IG1fY29uc3VtYWJsZUdlc3R1cmVzKDApCisgICAgeworICAgIH0K
KworICAgIHNpemVfdCBtX2NvbnN1bWFibGVHZXN0dXJlczsKK307CisKK30KKwogc3RhdGljIGJv
b2wgaXNEZWZpbml0ZShQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBzdGF0ZSkKIHsKICAgICBy
ZXR1cm4gc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSB8fCBzdGF0ZSA9
PSBEZWZpbml0ZWx5Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOwogfQogCiBQcm9jZXNzaW5nVXNl
ckdlc3R1cmVTdGF0ZSBVc2VyR2VzdHVyZUluZGljYXRvcjo6c19zdGF0ZSA9IERlZmluaXRlbHlO
b3RQcm9jZXNzaW5nVXNlckdlc3R1cmU7Ci1zaXplX3QgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnNf
Y29uc3VtYWJsZUdlc3R1cmVzID0gMDsKK1VzZXJHZXN0dXJlSW5kaWNhdG9yOjpUb2tlbiogVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnNfY3VycmVudFRva2VuID0gMDsKIAogVXNlckdlc3R1cmVJbmRp
Y2F0b3I6OlVzZXJHZXN0dXJlSW5kaWNhdG9yKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHN0
YXRlKQogICAgIDogbV9wcmV2aW91c1N0YXRlKHNfc3RhdGUpCisgICAgLCBtX3N0YXRlKHN0YXRl
KQorICAgICwgbV9wcmV2aW91c1Rva2VuKHNfY3VycmVudFRva2VuKQorICAgICwgbV90b2tlbihz
X2N1cnJlbnRUb2tlbikKIHsKICAgICAvLyBXZSBvdmVyd3JpdGUgc19zdGF0ZSBvbmx5IGlmIHRo
ZSBjYWxsZXIgaXMgZGVmaW5pdGUgYWJvdXQgdGhlIGdlc3R1cmUgc3RhdGUuCi0gICAgaWYgKGlz
RGVmaW5pdGUoc3RhdGUpKQorICAgIGlmIChpc0RlZmluaXRlKHN0YXRlKSkgeworICAgICAgICBp
ZiAoc19zdGF0ZSAhPSBzdGF0ZSkgeworICAgICAgICAgICAgbV90b2tlbiA9IEdlc3R1cmVUb2tl
bjo6Y3JlYXRlKCk7CisgICAgICAgICAgICBzX2N1cnJlbnRUb2tlbiA9IG1fdG9rZW4uZ2V0KCk7
CisgICAgICAgIH0KICAgICAgICAgc19zdGF0ZSA9IHN0YXRlOworICAgIH0KKworICAgIGlmIChz
dGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKQorICAgICAgICBzdGF0aWNf
Y2FzdDxHZXN0dXJlVG9rZW4qPihtX3Rva2VuLmdldCgpKS0+aW5jKCk7CisgICAgQVNTRVJUKGlz
RGVmaW5pdGUoc19zdGF0ZSkpOworfQorCitVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1
cmVJbmRpY2F0b3IoUGFzc1JlZlB0cjxVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4+IHRva2Vu
KQorICAgIDogbV9wcmV2aW91c1N0YXRlKHNfc3RhdGUpCisgICAgLCBtX3N0YXRlKFBvc3NpYmx5
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKQorICAgICwgbV9wcmV2aW91c1Rva2VuKHNfY3VycmVudFRv
a2VuKQorICAgICwgbV90b2tlbihzX2N1cnJlbnRUb2tlbikKK3sKKyAgICBpZiAodG9rZW4gJiYg
c3RhdGljX2Nhc3Q8R2VzdHVyZVRva2VuKj4odG9rZW4uZ2V0KCkpLT5pc1ZhbGlkKCkpIHsKKyAg
ICAgICAgc19zdGF0ZSA9IG1fc3RhdGUgPSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJl
OworICAgICAgICBtX3Rva2VuID0gdG9rZW47CisgICAgICAgIHNfY3VycmVudFRva2VuID0gbV90
b2tlbi5nZXQoKTsKKyAgICB9CiAKLSAgICBpZiAoc19zdGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKQotICAgICAgICBzX2NvbnN1bWFibGVHZXN0dXJlcysrOwogICAgIEFT
U0VSVChpc0RlZmluaXRlKHNfc3RhdGUpKTsKIH0KIAogVXNlckdlc3R1cmVJbmRpY2F0b3I6On5V
c2VyR2VzdHVyZUluZGljYXRvcigpCiB7Ci0gICAgaWYgKHNfY29uc3VtYWJsZUdlc3R1cmVzICYm
IHNfc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSkKLSAgICAgICAgc19j
b25zdW1hYmxlR2VzdHVyZXMtLTsKICAgICBzX3N0YXRlID0gbV9wcmV2aW91c1N0YXRlOworICAg
IHNfY3VycmVudFRva2VuID0gbV9wcmV2aW91c1Rva2VuOwogICAgIEFTU0VSVChpc0RlZmluaXRl
KHNfc3RhdGUpKTsKIH0KIAorYm9vbCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkKK3sKKyAgICByZXR1cm4gc19jdXJyZW50VG9rZW4gJiYgc3RhdGljX2Nhc3Q8
R2VzdHVyZVRva2VuKj4oc19jdXJyZW50VG9rZW4pLT5pc1ZhbGlkKCkgJiYgc19zdGF0ZSA9PSBE
ZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOworfQorCiBib29sIFVzZXJHZXN0dXJlSW5k
aWNhdG9yOjpjb25zdW1lVXNlckdlc3R1cmUoKQogewotICAgIGlmICghc19jb25zdW1hYmxlR2Vz
dHVyZXMpCisgICAgaWYgKCFzX2N1cnJlbnRUb2tlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHNfY29uc3VtYWJsZUdlc3R1cmVzLS07Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KHNfY3VycmVudFRva2VuKS0+Y29uc3VtZSgpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDUw
YWFiZmJlZDQ4ZGM3OWI4MTE2ZDhlYjgzY2Q4NThlMWZmZDlhNDYuLmY4NzIyODc4MGQwMzZiYWY5
MzVhNjM4NjE4MjM2ZTYzYjhiN2Q3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9V
c2VyR2VzdHVyZUluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVy
ZUluZGljYXRvci5oCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFVzZXJHZXN0dXJlSW5kaWNh
dG9yX2gKIAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTM5LDE2ICs0MSwyNyBAQCBlbnVtIFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHsK
IGNsYXNzIFVzZXJHZXN0dXJlSW5kaWNhdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShV
c2VyR2VzdHVyZUluZGljYXRvcik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkgeyByZXR1cm4gc19jb25zdW1hYmxlR2VzdHVyZXMgJiYgc19zdGF0ZSA9
PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOyB9CisgICAgY2xhc3MgVG9rZW4gOiBw
dWJsaWMgUmVmQ291bnRlZDxUb2tlbj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+
VG9rZW4oKSB7IH0KKyAgICB9OworCisgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCk7CiAgICAgc3RhdGljIGJvb2wgY29uc3VtZVVzZXJHZXN0dXJlKCk7CisgICAgc3RhdGlj
IFRva2VuKiBjdXJyZW50VG9rZW4oKSB7IHJldHVybiBzX2N1cnJlbnRUb2tlbjsgfQogCiAgICAg
ZXhwbGljaXQgVXNlckdlc3R1cmVJbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUp
OworICAgIGV4cGxpY2l0IFVzZXJHZXN0dXJlSW5kaWNhdG9yKFBhc3NSZWZQdHI8VG9rZW4+KTsK
ICAgICB+VXNlckdlc3R1cmVJbmRpY2F0b3IoKTsKIAorCiBwcml2YXRlOgogICAgIHN0YXRpYyBQ
cm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBzX3N0YXRlOwotICAgIHN0YXRpYyBzaXplX3Qgc19j
b25zdW1hYmxlR2VzdHVyZXM7CisgICAgc3RhdGljIFRva2VuKiBzX2N1cnJlbnRUb2tlbjsKICAg
ICBQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBtX3ByZXZpb3VzU3RhdGU7CisgICAgUHJvY2Vz
c2luZ1VzZXJHZXN0dXJlU3RhdGUgbV9zdGF0ZTsKKyAgICBUb2tlbiogbV9wcmV2aW91c1Rva2Vu
OworICAgIFJlZlB0cjxUb2tlbj4gbV90b2tlbjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAKaW5kZXggZGFkNzZmNThkZmZjNjI2MDY0ZmIyMzcyOWE4NTFhMjUwM2M0OWZiMy4uYTgy
NzhkMjk3YjgyMTM2YmE2YTYzNGU4NTg1NmNjOWMxZDEyOWI2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApA
QCAtNjgsOCArNjcsOSBAQCBET01UaW1lcjo6RE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc093blB0cjxTY2hlZHVsZWRBY3Rpb24+CiAgICAgLCBtX25lc3RpbmdM
ZXZlbCh0aW1lck5lc3RpbmdMZXZlbCArIDEpCiAgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAg
LCBtX29yaWdpbmFsSW50ZXJ2YWwoaW50ZXJ2YWwpCi0gICAgLCBtX3Nob3VsZEZvcndhcmRVc2Vy
R2VzdHVyZShzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2YWwsIG1fbmVzdGluZ0xldmVs
KSkKIHsKKyAgICBpZiAoc2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKGludGVydmFsLCBtX25lc3Rp
bmdMZXZlbCkpCisgICAgICAgIG1fdXNlckdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpjdXJyZW50VG9rZW4oKTsKICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZFRp
bWVvdXQobV90aW1lb3V0SWQsIHRoaXMpOwogCiAgICAgZG91YmxlIGludGVydmFsTWlsbGlzZWNv
bmRzID0gaW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKGludGVydmFsLCBjb250ZXh0LT5taW5pbXVt
VGltZXJJbnRlcnZhbCgpKTsKQEAgLTExNiwxMCArMTE2LDggQEAgdm9pZCBET01UaW1lcjo6Zmly
ZWQoKQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7CiAgICAgdGltZXJOZXN0aW5nTGV2ZWwgPSBtX25lc3RpbmdMZXZlbDsKICAg
ICBBU1NFUlQoIWNvbnRleHQtPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSk7Ci0gICAg
VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihtX3Nob3VsZEZvcndhcmRVc2Vy
R2VzdHVyZSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBQb3NzaWJseVByb2Nl
c3NpbmdVc2VyR2VzdHVyZSk7Ci0gICAgCiAgICAgLy8gT25seSB0aGUgZmlyc3QgZXhlY3V0aW9u
IG9mIGEgbXVsdGktc2hvdCB0aW1lciBzaG91bGQgZ2V0IGFuIGFmZmlybWF0aXZlIHVzZXIgZ2Vz
dHVyZSBpbmRpY2F0b3IuCi0gICAgbV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUgPSBmYWxzZTsK
KyAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKG1fdXNlckdlc3R1cmVU
b2tlbi5yZWxlYXNlKCkpOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNv
b2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZpcmVUaW1lcihjb250ZXh0LCBt
X3RpbWVvdXRJZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAppbmRleCA0ZmJjOWFlYjM2YzcxMTFi
ZmUxZjVjNTUzNDFiZjg3MjY3MzU4MTA0Li45MGI2NjU0ZjBkOGUxNTU2ZWY0MjI4YjA2MGNiMTM3
MzE4MzAyN2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVm
aW5lIERPTVRpbWVyX2gKIAogI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGltZXIuaCIKKyNpbmNsdWRl
ICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC02OSw3ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgaW50IG1fbmVzdGluZ0xldmVsOwogICAgICAgICBPd25QdHI8U2NoZWR1
bGVkQWN0aW9uPiBtX2FjdGlvbjsKICAgICAgICAgaW50IG1fb3JpZ2luYWxJbnRlcnZhbDsKLSAg
ICAgICAgYm9vbCBtX3Nob3VsZEZvcndhcmRVc2VyR2VzdHVyZTsKKyAgICAgICAgUmVmUHRyPFVz
ZXJHZXN0dXJlSW5kaWNhdG9yOjpUb2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOwogICAgICAgICBz
dGF0aWMgZG91YmxlIHNfbWluRGVmYXVsdFRpbWVySW50ZXJ2YWw7CiAgICAgfTsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDIxNTI2ZTczODIwMmUwM2JmOTRiYTZmYmIzYjRmZjhiMjlmODA0MWMuLmU0Y2I5YmZmMmMxYTg2
N2U2ZjFjMDRlZWMwMGM5OGNlYTMwYWFiZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0x
MC0wMiAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBN
YWtlIHN1cmUgdGhhdCB1c2VyIGdlc3R1cmVzIGNhbid0IGJlIGNvbnN1bWVkIHR3aWNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzQ4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3Bv
cHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMDIg
IE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgY2FsbCBzdGFj
a3MgdG8gQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY2hlY2tzIHdoZW4gcmVsZXZhbnQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1m
b3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3NjIwNGI5MmRlMzVkYTY3ZjA2NjI1OTk3MDc5M2Zm
OWI4OWMzOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBhIGZvcndhcmRlZCB1c2VyIGdlc3R1cmUgdGhh
dCBpcyBjb25zdW1lZCBiZWZvcmUgdGhlIHRpbWUgZmlyZXMgaXMgcmVzdXJyZWN0ZWQuCisKK0Ns
aWNrIEhlcmUKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdl
c3R1cmUtYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ODM5ZGI3YjRmY2QyM2IzM2U5YmZiM2Q2
MTZjZmJmNWViYWNiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLmh0bWwK
QEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAg
ICAgICAgPHA+CisgICAgICAgICAgICBUZXN0IHRoYXQgYSBmb3J3YXJkZWQgdXNlciBnZXN0dXJl
IHRoYXQgaXMgY29uc3VtZWQgYmVmb3JlIHRoZQorICAgICAgICAgICAgdGltZSBmaXJlcyBpcyBy
ZXN1cnJlY3RlZC4KKyAgICAgICAgPC9wPgorICAgICAgICA8YnV0dG9uIGlkPSJidXR0b24iIG9u
Y2xpY2s9InBvcHVwKCkiPkNsaWNrIEhlcmU8L2J1dHRvbj4KKyAgICAgICAgPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiB0aW1l
cigpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCAid2luZG93
MiIpOworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodGVzdFJ1bm5lci53aW5kb3dDb3VudCgpID09IHdpbmRvd0NvdW50ICsg
MSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJUZXh0ID0gIkZBSUxFRCI7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZnVuY3Rpb24gcG9wdXAoKSB7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aW1lciwg
MCk7CisgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgIndpbmRvdzEi
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAg
d2luZG93Q291bnQgPSB0ZXN0UnVubmVyLndpbmRvd0NvdW50KCk7CisKKyAgICAgICAgICAgICAg
ICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpOworCisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZz
ZXRXaWR0aCAvIDIsIGJ1dHRvbi5vZmZzZXRUb3AgKyBidXR0b24ub2Zmc2V0SGVpZ2h0IC8gMik7
CisgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166738</attachid>
            <date>2012-10-02 13:09:07 -0700</date>
            <delta_ts>2012-10-02 13:10:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97483-20121002220819.patch</filename>
            <type>text/plain</type>
            <size>12578</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJkY2RkMjM1NDZlMWQ4
YTIwZDY5NWFmNWFlMzZjMmJiZDVkNTZjYy4uYjBmNWMzZWI5MDkwNWE0ODJkNDdmYmM4NzMzZDE2
NGY3N2U1ZGRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTAyICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc3VyZSB0
aGF0IHVzZXIgZ2VzdHVyZXMgY2FuJ3QgYmUgY29uc3VtZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhIHNpbXBsZSBjb3Vu
dGVyLCB1c2UgYSByZWYgY291bnRlZCB0b2tlbiB0byB0cmFjayBob3cgbWFueQorICAgICAgICB1
c2VyIGdlc3R1cmVzIGhhcHBlbmVkIGFuZCB3aGVyZSBjb25zdW1lZC4gV2hlbiBjcmVhdGluZyBh
IHRpbWVyIHRoYXQKKyAgICAgICAgaXMgc3VwcG9zZWQgdG8gZm9yd2FyZCB0aGUgdXNlciBnZXN0
dXJlLCB0YWtlIGEgcmVmZXJlbmNlIHRvIHRoaXMgdG9rZW4KKyAgICAgICAgYW5kIHJlaW5zdGFu
dGlhdGUgdGhlIFVzZXJHZXN0dXJlSW5kaWNhdG9yIHdpdGggdGhhdCB0b2tlbiB3aGVuIHRoZQor
ICAgICAgICB0aW1lciBpcyB0cmlnZ2VyZWQuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sCisK
KyAgICAgICAgKiBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJ
bmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3I6On5Vc2Vy
R2VzdHVyZUluZGljYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRv
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpjb25zdW1lVXNlckdlc3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRUb2tlbik6CisgICAgICAgICogZG9tL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmg6CisgICAgICAgIChUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2Vz
dHVyZUluZGljYXRvcjo6VG9rZW46On5Ub2tlbik6CisgICAgICAgIChVc2VyR2VzdHVyZUluZGlj
YXRvcik6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01UaW1lcjo6RE9NVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKToK
KyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6CisgICAgICAgIChET01UaW1lcik6CisKIDIwMTIt
MTAtMDIgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMwMTAzIGFuZCByMTMwMTI1LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKaW5kZXggZGUxMzIzNjU5Y2IzMWMzZDY1YTA4NjYy
Njg4N2NmOGQxYWNiODE3YS4uZWFmNTRmZjQ1NjZmNTg1YzVjMDlkZmQ3NThjYTFjNDZhY2YzZTlm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCkBAIC0y
OCw0MCArMjgsMTA1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorbmFtZXNwYWNlIHsKKwor
Y2xhc3MgR2VzdHVyZVRva2VuIDogcHVibGljIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpUb2tlbiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlckdlc3R1cmVJbmRpY2F0b3I6OlRv
a2VuPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZVRva2VuKTsgfQorCisg
ICAgdmlydHVhbCB+R2VzdHVyZVRva2VuKCkgeyB9CisKKyAgICB2b2lkIGFkZEdlc3R1cmUoKSB7
IG1fY29uc3VtYWJsZUdlc3R1cmVzKys7IH0KKyAgICBib29sIGNvbnN1bWVHZXN0dXJlKCkKKyAg
ICB7CisgICAgICAgIGlmICghbV9jb25zdW1hYmxlR2VzdHVyZXMpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIG1fY29uc3VtYWJsZUdlc3R1cmVzLS07CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBib29sIGhhc0dlc3R1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9j
b25zdW1hYmxlR2VzdHVyZXMgPiAwOyB9CisKK3ByaXZhdGU6CisgICAgR2VzdHVyZVRva2VuKCkK
KyAgICAgICAgOiBtX2NvbnN1bWFibGVHZXN0dXJlcygwKQorICAgIHsKKyAgICB9CisKKyAgICBz
aXplX3QgbV9jb25zdW1hYmxlR2VzdHVyZXM7Cit9OworCit9CisKIHN0YXRpYyBib29sIGlzRGVm
aW5pdGUoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUgc3RhdGUpCiB7CiAgICAgcmV0dXJuIHN0
YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgfHwgc3RhdGUgPT0gRGVmaW5p
dGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZTsKIH0KIAogUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
U3RhdGUgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnNfc3RhdGUgPSBEZWZpbml0ZWx5Tm90UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlOwotc2l6ZV90IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpzX2NvbnN1bWFi
bGVHZXN0dXJlcyA9IDA7CitVc2VyR2VzdHVyZUluZGljYXRvciogVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnNfdG9wbW9zdEluZGljYXRvciA9IDA7CiAKIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2Vy
R2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBzdGF0ZSkKICAgICA6
IG1fcHJldmlvdXNTdGF0ZShzX3N0YXRlKQogewogICAgIC8vIFdlIG92ZXJ3cml0ZSBzX3N0YXRl
IG9ubHkgaWYgdGhlIGNhbGxlciBpcyBkZWZpbml0ZSBhYm91dCB0aGUgZ2VzdHVyZSBzdGF0ZS4K
LSAgICBpZiAoaXNEZWZpbml0ZShzdGF0ZSkpCisgICAgaWYgKGlzRGVmaW5pdGUoc3RhdGUpKSB7
CisgICAgICAgIGlmICghc190b3Btb3N0SW5kaWNhdG9yKSB7CisgICAgICAgICAgICBzX3RvcG1v
c3RJbmRpY2F0b3IgPSB0aGlzOworICAgICAgICAgICAgbV90b2tlbiA9IEdlc3R1cmVUb2tlbjo6
Y3JlYXRlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX3Rva2VuID0gc190b3Bt
b3N0SW5kaWNhdG9yLT5jdXJyZW50VG9rZW4oKTsKKyAgICAgICAgfQogICAgICAgICBzX3N0YXRl
ID0gc3RhdGU7CisgICAgfQorCisgICAgaWYgKHN0YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5n
VXNlckdlc3R1cmUpCisgICAgICAgIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KG1fdG9rZW4u
Z2V0KCkpLT5hZGRHZXN0dXJlKCk7CisgICAgQVNTRVJUKGlzRGVmaW5pdGUoc19zdGF0ZSkpOwor
fQorCitVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRpY2F0b3IoUGFzc1JlZlB0
cjxVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4+IHRva2VuKQorICAgIDogbV9wcmV2aW91c1N0
YXRlKHNfc3RhdGUpCit7CisgICAgaWYgKHRva2VuICYmIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tl
bio+KHRva2VuLmdldCgpKS0+aGFzR2VzdHVyZXMoKSkgeworICAgICAgICBpZiAoIXNfdG9wbW9z
dEluZGljYXRvcikgeworICAgICAgICAgICAgc190b3Btb3N0SW5kaWNhdG9yID0gdGhpczsKKyAg
ICAgICAgICAgIG1fdG9rZW4gPSBHZXN0dXJlVG9rZW46OmNyZWF0ZSgpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbV90b2tlbiA9IHNfdG9wbW9zdEluZGljYXRvci0+Y3VycmVudFRv
a2VuKCk7CisgICAgICAgIH0KKyAgICAgICAgc19zdGF0ZSA9IERlZmluaXRlbHlQcm9jZXNzaW5n
VXNlckdlc3R1cmU7CisgICAgICAgIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KG1fdG9rZW4u
Z2V0KCkpLT5hZGRHZXN0dXJlKCk7CisgICAgICAgIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+
KHRva2VuLmdldCgpKS0+Y29uc3VtZUdlc3R1cmUoKTsKKyAgICB9CiAKLSAgICBpZiAoc19zdGF0
ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKQotICAgICAgICBzX2NvbnN1bWFi
bGVHZXN0dXJlcysrOwogICAgIEFTU0VSVChpc0RlZmluaXRlKHNfc3RhdGUpKTsKIH0KIAogVXNl
ckdlc3R1cmVJbmRpY2F0b3I6On5Vc2VyR2VzdHVyZUluZGljYXRvcigpCiB7Ci0gICAgaWYgKHNf
Y29uc3VtYWJsZUdlc3R1cmVzICYmIHNfc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSkKLSAgICAgICAgc19jb25zdW1hYmxlR2VzdHVyZXMtLTsKICAgICBzX3N0YXRlID0g
bV9wcmV2aW91c1N0YXRlOworICAgIGlmIChzX3RvcG1vc3RJbmRpY2F0b3IgPT0gdGhpcykKKyAg
ICAgICAgc190b3Btb3N0SW5kaWNhdG9yID0gMDsKICAgICBBU1NFUlQoaXNEZWZpbml0ZShzX3N0
YXRlKSk7CiB9CiAKK2Jvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpCit7CisgICAgcmV0dXJuIHNfdG9wbW9zdEluZGljYXRvciAmJiBzdGF0aWNfY2FzdDxH
ZXN0dXJlVG9rZW4qPihzX3RvcG1vc3RJbmRpY2F0b3ItPmN1cnJlbnRUb2tlbigpKS0+aGFzR2Vz
dHVyZXMoKSAmJiBzX3N0YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmU7Cit9
CisKIGJvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSgpCiB7Ci0g
ICAgaWYgKCFzX2NvbnN1bWFibGVHZXN0dXJlcykKKyAgICBpZiAoIXNfdG9wbW9zdEluZGljYXRv
cikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHNfY29uc3VtYWJsZUdlc3R1cmVzLS07Ci0g
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KHNf
dG9wbW9zdEluZGljYXRvci0+Y3VycmVudFRva2VuKCkpLT5jb25zdW1lR2VzdHVyZSgpOworfQor
CitVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4qIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJy
ZW50VG9rZW4oKQoreworICAgIGlmICghc190b3Btb3N0SW5kaWNhdG9yKQorICAgICAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gc190b3Btb3N0SW5kaWNhdG9yLT5tX3Rva2VuLmdldCgpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDUwYWFi
ZmJlZDQ4ZGM3OWI4MTE2ZDhlYjgzY2Q4NThlMWZmZDlhNDYuLmI5ODBiZmEwNWE4MjA2NGI0NmU4
N2FiMTkyN2Y2NjE2OTIxY2I5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUlu
ZGljYXRvci5oCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFVzZXJHZXN0dXJlSW5kaWNhdG9y
X2gKIAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM5LDE2ICs0MSwyNSBAQCBlbnVtIFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHsKIGNs
YXNzIFVzZXJHZXN0dXJlSW5kaWNhdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVc2Vy
R2VzdHVyZUluZGljYXRvcik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkgeyByZXR1cm4gc19jb25zdW1hYmxlR2VzdHVyZXMgJiYgc19zdGF0ZSA9PSBE
ZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOyB9CisgICAgY2xhc3MgVG9rZW4gOiBwdWJs
aWMgUmVmQ291bnRlZDxUb2tlbj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VG9r
ZW4oKSB7IH0KKyAgICB9OworCisgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCk7CiAgICAgc3RhdGljIGJvb2wgY29uc3VtZVVzZXJHZXN0dXJlKCk7CisgICAgc3RhdGljIFRv
a2VuKiBjdXJyZW50VG9rZW4oKTsKIAogICAgIGV4cGxpY2l0IFVzZXJHZXN0dXJlSW5kaWNhdG9y
KFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlKTsKKyAgICBleHBsaWNpdCBVc2VyR2VzdHVyZUlu
ZGljYXRvcihQYXNzUmVmUHRyPFRva2VuPik7CiAgICAgflVzZXJHZXN0dXJlSW5kaWNhdG9yKCk7
CiAKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUgc19z
dGF0ZTsKLSAgICBzdGF0aWMgc2l6ZV90IHNfY29uc3VtYWJsZUdlc3R1cmVzOworICAgIHN0YXRp
YyBVc2VyR2VzdHVyZUluZGljYXRvciogc190b3Btb3N0SW5kaWNhdG9yOwogICAgIFByb2Nlc3Np
bmdVc2VyR2VzdHVyZVN0YXRlIG1fcHJldmlvdXNTdGF0ZTsKKyAgICBSZWZQdHI8VG9rZW4+IG1f
dG9rZW47CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IGRhZDc2ZjU4ZGZm
YzYyNjA2NGZiMjM3MjlhODUxYTI1MDNjNDlmYjMuLmE4Mjc4ZDI5N2I4MjEzNmJhNmE2MzRlODU4
NTZjYzljMWQxMjliNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zMCw3ICszMCw2
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2No
ZWR1bGVkQWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2lu
Y2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTY4LDggKzY3LDkgQEAgRE9NVGlt
ZXI6OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8
U2NoZWR1bGVkQWN0aW9uPgogICAgICwgbV9uZXN0aW5nTGV2ZWwodGltZXJOZXN0aW5nTGV2ZWwg
KyAxKQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV9vcmlnaW5hbEludGVydmFsKGlu
dGVydmFsKQotICAgICwgbV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoc2hvdWxkRm9yd2FyZFVz
ZXJHZXN0dXJlKGludGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCiB7CisgICAgaWYgKHNob3VsZEZv
cndhcmRVc2VyR2VzdHVyZShpbnRlcnZhbCwgbV9uZXN0aW5nTGV2ZWwpKQorICAgICAgICBtX3Vz
ZXJHZXN0dXJlVG9rZW4gPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFRva2VuKCk7CiAg
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRUaW1lb3V0KG1fdGltZW91dElkLCB0aGlz
KTsKIAogICAgIGRvdWJsZSBpbnRlcnZhbE1pbGxpc2Vjb25kcyA9IGludGVydmFsQ2xhbXBlZFRv
TWluaW11bShpbnRlcnZhbCwgY29udGV4dC0+bWluaW11bVRpbWVySW50ZXJ2YWwoKSk7CkBAIC0x
MTYsMTAgKzExNiw4IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIHRpbWVy
TmVzdGluZ0xldmVsID0gbV9uZXN0aW5nTGV2ZWw7CiAgICAgQVNTRVJUKCFjb250ZXh0LT5hY3Rp
dmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkpOwotICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdl
c3R1cmVJbmRpY2F0b3IobV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUgPyBEZWZpbml0ZWx5UHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlIDogUG9zc2libHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAg
IAogICAgIC8vIE9ubHkgdGhlIGZpcnN0IGV4ZWN1dGlvbiBvZiBhIG11bHRpLXNob3QgdGltZXIg
c2hvdWxkIGdldCBhbiBhZmZpcm1hdGl2ZSB1c2VyIGdlc3R1cmUgaW5kaWNhdG9yLgotICAgIG1f
c2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlID0gZmFsc2U7CisgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZ2VzdHVyZUluZGljYXRvcihtX3VzZXJHZXN0dXJlVG9rZW4ucmVsZWFzZSgpKTsKIAogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxGaXJlVGltZXIoY29udGV4dCwgbV90aW1lb3V0SWQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmgKaW5kZXggNGZiYzlhZWIzNmM3MTExYmZlMWY1YzU1MzQxYmY4NzI2NzM1ODEw
NC4uOTBiNjY1NGYwZDhlMTU1NmVmNDIyOGIwNjBjYjEzNzMxODMwMjdkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBET01UaW1lcl9oCiAKICNpbmNs
dWRlICJTdXNwZW5kYWJsZVRpbWVyLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IApAQCAtNjksNyArNzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX25l
c3RpbmdMZXZlbDsKICAgICAgICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gbV9hY3Rpb247CiAg
ICAgICAgIGludCBtX29yaWdpbmFsSW50ZXJ2YWw7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRGb3J3
YXJkVXNlckdlc3R1cmU7CisgICAgICAgIFJlZlB0cjxVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9r
ZW4+IG1fdXNlckdlc3R1cmVUb2tlbjsKICAgICAgICAgc3RhdGljIGRvdWJsZSBzX21pbkRlZmF1
bHRUaW1lckludGVydmFsOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhN2QwY2E5Y2YzZDVmM2YwMGM0ZGU2
MzhhZmVjNzQ1Yjk5ZDUxMGQ2Li5lNTU4ZmI0MzhmYmEwZmE0ZGQ4ZjFiNWI3NjU0MmE5ZmYxYzkz
NjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDIgIEpvY2hlbiBFaXNpbmdlciAg
PGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgdXNlciBnZXN0
dXJlcyBjYW4ndCBiZSBjb25zdW1lZCB0d2ljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVw
LWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1i
bG9ja2VkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTAyICBNYXJjZWxvIExpcmEgIDxtYXJjZWxv
LmxpcmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdIE1pc3NpbmcgZXhwZWN0ZWQgcmVz
dWx0cyBmb3Igcm91bmRlZCBkb3R0ZWQgYm9yZGVycyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1
cmUtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NzYyMDRiOTJkZTM1ZGE2N2YwNjYyNTk5NzA3OTNmZjliODljMzk1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMv
cG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACitUZXN0IHRoYXQgYSBmb3J3YXJkZWQgdXNlciBnZXN0dXJlIHRoYXQgaXMgY29uc3VtZWQg
YmVmb3JlIHRoZSB0aW1lIGZpcmVzIGlzIHJlc3VycmVjdGVkLgorCitDbGljayBIZXJlCitQQVNT
RUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NDgzOWRiN2I0ZmNkMjNiMzNlOWJmYjNkNjE2Y2ZiZjVlYmFjYjRm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sCkBAIC0wLDAgKzEsNDUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxwPgorICAg
ICAgICAgICAgVGVzdCB0aGF0IGEgZm9yd2FyZGVkIHVzZXIgZ2VzdHVyZSB0aGF0IGlzIGNvbnN1
bWVkIGJlZm9yZSB0aGUKKyAgICAgICAgICAgIHRpbWUgZmlyZXMgaXMgcmVzdXJyZWN0ZWQuCisg
ICAgICAgIDwvcD4KKyAgICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uIiBvbmNsaWNrPSJwb3B1cCgp
Ij5DbGljayBIZXJlPC9idXR0b24+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gdGltZXIoKSB7CisgICAgICAg
ICAgICAgICAgd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgIndpbmRvdzIiKTsKKyAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIud2luZG93Q291bnQoKSA9PSB3aW5kb3dDb3VudCArIDEpCisgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJG
QUlMRUQiOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHBv
cHVwKCkgeworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodGltZXIsIDApOworICAgICAgICAg
ICAgICAgIHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIsICJ3aW5kb3cxIik7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xv
c2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgICAgIHdpbmRvd0NvdW50ID0g
dGVzdFJ1bm5lci53aW5kb3dDb3VudCgpOworCisgICAgICAgICAgICAgICAgdmFyIGJ1dHRvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b24iKTsKKworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oYnV0dG9uLm9mZnNldExlZnQgKyBidXR0b24ub2Zmc2V0V2lkdGggLyAyLCBi
dXR0b24ub2Zmc2V0VG9wICsgYnV0dG9uLm9mZnNldEhlaWdodCAvIDIpOworICAgICAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166739</attachid>
            <date>2012-10-02 13:10:20 -0700</date>
            <delta_ts>2012-10-02 14:03:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97483-20121002220932.patch</filename>
            <type>text/plain</type>
            <size>12552</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJkY2RkMjM1NDZlMWQ4
YTIwZDY5NWFmNWFlMzZjMmJiZDVkNTZjYy4uYjBmNWMzZWI5MDkwNWE0ODJkNDdmYmM4NzMzZDE2
NGY3N2U1ZGRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTAyICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc3VyZSB0
aGF0IHVzZXIgZ2VzdHVyZXMgY2FuJ3QgYmUgY29uc3VtZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhIHNpbXBsZSBjb3Vu
dGVyLCB1c2UgYSByZWYgY291bnRlZCB0b2tlbiB0byB0cmFjayBob3cgbWFueQorICAgICAgICB1
c2VyIGdlc3R1cmVzIGhhcHBlbmVkIGFuZCB3aGVyZSBjb25zdW1lZC4gV2hlbiBjcmVhdGluZyBh
IHRpbWVyIHRoYXQKKyAgICAgICAgaXMgc3VwcG9zZWQgdG8gZm9yd2FyZCB0aGUgdXNlciBnZXN0
dXJlLCB0YWtlIGEgcmVmZXJlbmNlIHRvIHRoaXMgdG9rZW4KKyAgICAgICAgYW5kIHJlaW5zdGFu
dGlhdGUgdGhlIFVzZXJHZXN0dXJlSW5kaWNhdG9yIHdpdGggdGhhdCB0b2tlbiB3aGVuIHRoZQor
ICAgICAgICB0aW1lciBpcyB0cmlnZ2VyZWQuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sCisK
KyAgICAgICAgKiBkb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJ
bmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3I6On5Vc2Vy
R2VzdHVyZUluZGljYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRv
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpjb25zdW1lVXNlckdlc3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdl
c3R1cmVJbmRpY2F0b3I6OmN1cnJlbnRUb2tlbik6CisgICAgICAgICogZG9tL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmg6CisgICAgICAgIChUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpVc2VyR2Vz
dHVyZUluZGljYXRvcjo6VG9rZW46On5Ub2tlbik6CisgICAgICAgIChVc2VyR2VzdHVyZUluZGlj
YXRvcik6CisgICAgICAgICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01UaW1lcjo6RE9NVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKToK
KyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6CisgICAgICAgIChET01UaW1lcik6CisKIDIwMTIt
MTAtMDIgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMwMTAzIGFuZCByMTMwMTI1LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKaW5kZXggZGUxMzIzNjU5Y2IzMWMzZDY1YTA4NjYy
Njg4N2NmOGQxYWNiODE3YS4uMzE4NDMxYWM1MDFkYmIwZDJkNGU4NTA1ZTkzYzdlMjIzMmM4Njll
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCkBAIC0y
OCw0MCArMjgsMTAzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorbmFtZXNwYWNlIHsKKwor
Y2xhc3MgR2VzdHVyZVRva2VuIDogcHVibGljIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpUb2tlbiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VXNlckdlc3R1cmVJbmRpY2F0b3I6OlRv
a2VuPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgR2VzdHVyZVRva2VuKTsgfQorCisg
ICAgdmlydHVhbCB+R2VzdHVyZVRva2VuKCkgeyB9CisKKyAgICB2b2lkIGFkZEdlc3R1cmUoKSB7
IG1fY29uc3VtYWJsZUdlc3R1cmVzKys7IH0KKyAgICBib29sIGNvbnN1bWVHZXN0dXJlKCkKKyAg
ICB7CisgICAgICAgIGlmICghbV9jb25zdW1hYmxlR2VzdHVyZXMpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIG1fY29uc3VtYWJsZUdlc3R1cmVzLS07CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICBib29sIGhhc0dlc3R1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9j
b25zdW1hYmxlR2VzdHVyZXMgPiAwOyB9CisKK3ByaXZhdGU6CisgICAgR2VzdHVyZVRva2VuKCkK
KyAgICAgICAgOiBtX2NvbnN1bWFibGVHZXN0dXJlcygwKQorICAgIHsKKyAgICB9CisKKyAgICBz
aXplX3QgbV9jb25zdW1hYmxlR2VzdHVyZXM7Cit9OworCit9CisKIHN0YXRpYyBib29sIGlzRGVm
aW5pdGUoUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUgc3RhdGUpCiB7CiAgICAgcmV0dXJuIHN0
YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgfHwgc3RhdGUgPT0gRGVmaW5p
dGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZTsKIH0KIAogUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
U3RhdGUgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnNfc3RhdGUgPSBEZWZpbml0ZWx5Tm90UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlOwotc2l6ZV90IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpzX2NvbnN1bWFi
bGVHZXN0dXJlcyA9IDA7CitVc2VyR2VzdHVyZUluZGljYXRvciogVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnNfdG9wbW9zdEluZGljYXRvciA9IDA7CiAKIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2Vy
R2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBzdGF0ZSkKICAgICA6
IG1fcHJldmlvdXNTdGF0ZShzX3N0YXRlKQogewogICAgIC8vIFdlIG92ZXJ3cml0ZSBzX3N0YXRl
IG9ubHkgaWYgdGhlIGNhbGxlciBpcyBkZWZpbml0ZSBhYm91dCB0aGUgZ2VzdHVyZSBzdGF0ZS4K
LSAgICBpZiAoaXNEZWZpbml0ZShzdGF0ZSkpCisgICAgaWYgKGlzRGVmaW5pdGUoc3RhdGUpKSB7
CisgICAgICAgIGlmICghc190b3Btb3N0SW5kaWNhdG9yKSB7CisgICAgICAgICAgICBzX3RvcG1v
c3RJbmRpY2F0b3IgPSB0aGlzOworICAgICAgICAgICAgbV90b2tlbiA9IEdlc3R1cmVUb2tlbjo6
Y3JlYXRlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV90b2tlbiA9IHNfdG9wbW9z
dEluZGljYXRvci0+Y3VycmVudFRva2VuKCk7CiAgICAgICAgIHNfc3RhdGUgPSBzdGF0ZTsKKyAg
ICB9CisKKyAgICBpZiAoc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSkK
KyAgICAgICAgc3RhdGljX2Nhc3Q8R2VzdHVyZVRva2VuKj4obV90b2tlbi5nZXQoKSktPmFkZEdl
c3R1cmUoKTsKKyAgICBBU1NFUlQoaXNEZWZpbml0ZShzX3N0YXRlKSk7Cit9CisKK1VzZXJHZXN0
dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRvcihQYXNzUmVmUHRyPFVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpUb2tlbj4gdG9rZW4pCisgICAgOiBtX3ByZXZpb3VzU3RhdGUoc19zdGF0ZSkK
K3sKKyAgICBpZiAodG9rZW4gJiYgc3RhdGljX2Nhc3Q8R2VzdHVyZVRva2VuKj4odG9rZW4uZ2V0
KCkpLT5oYXNHZXN0dXJlcygpKSB7CisgICAgICAgIGlmICghc190b3Btb3N0SW5kaWNhdG9yKSB7
CisgICAgICAgICAgICBzX3RvcG1vc3RJbmRpY2F0b3IgPSB0aGlzOworICAgICAgICAgICAgbV90
b2tlbiA9IEdlc3R1cmVUb2tlbjo6Y3JlYXRlKCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgbV90b2tlbiA9IHNfdG9wbW9zdEluZGljYXRvci0+Y3VycmVudFRva2VuKCk7CisgICAgICAg
IHNfc3RhdGUgPSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOworICAgICAgICBzdGF0
aWNfY2FzdDxHZXN0dXJlVG9rZW4qPihtX3Rva2VuLmdldCgpKS0+YWRkR2VzdHVyZSgpOworICAg
ICAgICBzdGF0aWNfY2FzdDxHZXN0dXJlVG9rZW4qPih0b2tlbi5nZXQoKSktPmNvbnN1bWVHZXN0
dXJlKCk7CisgICAgfQogCi0gICAgaWYgKHNfc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdV
c2VyR2VzdHVyZSkKLSAgICAgICAgc19jb25zdW1hYmxlR2VzdHVyZXMrKzsKICAgICBBU1NFUlQo
aXNEZWZpbml0ZShzX3N0YXRlKSk7CiB9CiAKIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjp+VXNlckdl
c3R1cmVJbmRpY2F0b3IoKQogewotICAgIGlmIChzX2NvbnN1bWFibGVHZXN0dXJlcyAmJiBzX3N0
YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpCi0gICAgICAgIHNfY29uc3Vt
YWJsZUdlc3R1cmVzLS07CiAgICAgc19zdGF0ZSA9IG1fcHJldmlvdXNTdGF0ZTsKKyAgICBpZiAo
c190b3Btb3N0SW5kaWNhdG9yID09IHRoaXMpCisgICAgICAgIHNfdG9wbW9zdEluZGljYXRvciA9
IDA7CiAgICAgQVNTRVJUKGlzRGVmaW5pdGUoc19zdGF0ZSkpOwogfQogCitib29sIFVzZXJHZXN0
dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQoreworICAgIHJldHVybiBzX3Rv
cG1vc3RJbmRpY2F0b3IgJiYgc3RhdGljX2Nhc3Q8R2VzdHVyZVRva2VuKj4oc190b3Btb3N0SW5k
aWNhdG9yLT5jdXJyZW50VG9rZW4oKSktPmhhc0dlc3R1cmVzKCkgJiYgc19zdGF0ZSA9PSBEZWZp
bml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOworfQorCiBib29sIFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpjb25zdW1lVXNlckdlc3R1cmUoKQogewotICAgIGlmICghc19jb25zdW1hYmxlR2VzdHVy
ZXMpCisgICAgaWYgKCFzX3RvcG1vc3RJbmRpY2F0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBzX2NvbnN1bWFibGVHZXN0dXJlcy0tOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxHZXN0dXJlVG9rZW4qPihzX3RvcG1vc3RJbmRpY2F0b3ItPmN1cnJlbnRU
b2tlbigpKS0+Y29uc3VtZUdlc3R1cmUoKTsKK30KKworVXNlckdlc3R1cmVJbmRpY2F0b3I6OlRv
a2VuKiBVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFRva2VuKCkKK3sKKyAgICBpZiAoIXNf
dG9wbW9zdEluZGljYXRvcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHNfdG9wbW9z
dEluZGljYXRvci0+bV90b2tlbi5nZXQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaAppbmRleCA1MGFhYmZiZWQ0OGRjNzliODExNmQ4ZWI4M2NkODU4
ZTFmZmQ5YTQ2Li5iOTgwYmZhMDVhODIwNjRiNDZlODdhYjE5MjdmNjYxNjkyMWNiOTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaApAQCAtMjcsNiArMjcsOCBA
QAogI2RlZmluZSBVc2VyR2VzdHVyZUluZGljYXRvcl9oCiAKICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwxNiArNDEsMjUgQEAgZW51bSBQ
cm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSB7CiBjbGFzcyBVc2VyR2VzdHVyZUluZGljYXRvciB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVXNlckdlc3R1cmVJbmRpY2F0b3IpOwogcHVibGlj
OgotICAgIHN0YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIHsgcmV0dXJuIHNfY29u
c3VtYWJsZUdlc3R1cmVzICYmIHNfc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2Vz
dHVyZTsgfQorICAgIGNsYXNzIFRva2VuIDogcHVibGljIFJlZkNvdW50ZWQ8VG9rZW4+IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflRva2VuKCkgeyB9CisgICAgfTsKKworICAgIHN0
YXRpYyBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwogICAgIHN0YXRpYyBib29sIGNvbnN1
bWVVc2VyR2VzdHVyZSgpOworICAgIHN0YXRpYyBUb2tlbiogY3VycmVudFRva2VuKCk7CiAKICAg
ICBleHBsaWNpdCBVc2VyR2VzdHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0
ZSk7CisgICAgZXhwbGljaXQgVXNlckdlc3R1cmVJbmRpY2F0b3IoUGFzc1JlZlB0cjxUb2tlbj4p
OwogICAgIH5Vc2VyR2VzdHVyZUluZGljYXRvcigpOwogCisKIHByaXZhdGU6CiAgICAgc3RhdGlj
IFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHNfc3RhdGU7Ci0gICAgc3RhdGljIHNpemVfdCBz
X2NvbnN1bWFibGVHZXN0dXJlczsKKyAgICBzdGF0aWMgVXNlckdlc3R1cmVJbmRpY2F0b3IqIHNf
dG9wbW9zdEluZGljYXRvcjsKICAgICBQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZSBtX3ByZXZp
b3VzU3RhdGU7CisgICAgUmVmUHRyPFRva2VuPiBtX3Rva2VuOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVRpbWVyLmNwcAppbmRleCBkYWQ3NmY1OGRmZmM2MjYwNjRmYjIzNzI5YTg1MWEyNTAzYzQ5
ZmIzLi5hODI3OGQyOTdiODIxMzZiYTZhNjM0ZTg1ODU2Y2M5YzFkMTI5YjZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCkBAIC02OCw4ICs2Nyw5IEBAIERPTVRpbWVyOjpET01UaW1lcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4KICAgICAsIG1f
bmVzdGluZ0xldmVsKHRpbWVyTmVzdGluZ0xldmVsICsgMSkKICAgICAsIG1fYWN0aW9uKGFjdGlv
bikKICAgICAsIG1fb3JpZ2luYWxJbnRlcnZhbChpbnRlcnZhbCkKLSAgICAsIG1fc2hvdWxkRm9y
d2FyZFVzZXJHZXN0dXJlKHNob3VsZEZvcndhcmRVc2VyR2VzdHVyZShpbnRlcnZhbCwgbV9uZXN0
aW5nTGV2ZWwpKQogeworICAgIGlmIChzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2YWws
IG1fbmVzdGluZ0xldmVsKSkKKyAgICAgICAgbV91c2VyR2VzdHVyZVRva2VuID0gVXNlckdlc3R1
cmVJbmRpY2F0b3I6OmN1cnJlbnRUb2tlbigpOwogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+YWRkVGltZW91dChtX3RpbWVvdXRJZCwgdGhpcyk7CiAKICAgICBkb3VibGUgaW50ZXJ2YWxN
aWxsaXNlY29uZHMgPSBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oaW50ZXJ2YWwsIGNvbnRleHQt
Pm1pbmltdW1UaW1lckludGVydmFsKCkpOwpAQCAtMTE2LDEwICsxMTYsOCBAQCB2b2lkIERPTVRp
bWVyOjpmaXJlZCgpCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICB0aW1lck5lc3RpbmdMZXZlbCA9IG1fbmVzdGluZ0xl
dmVsOwogICAgIEFTU0VSVCghY29udGV4dC0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgp
KTsKLSAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKG1fc2hvdWxkRm9y
d2FyZFVzZXJHZXN0dXJlID8gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSA6IFBvc3Np
Ymx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKLSAgICAKICAgICAvLyBPbmx5IHRoZSBmaXJzdCBl
eGVjdXRpb24gb2YgYSBtdWx0aS1zaG90IHRpbWVyIHNob3VsZCBnZXQgYW4gYWZmaXJtYXRpdmUg
dXNlciBnZXN0dXJlIGluZGljYXRvci4KLSAgICBtX3Nob3VsZEZvcndhcmRVc2VyR2VzdHVyZSA9
IGZhbHNlOworICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IobV91c2Vy
R2VzdHVyZVRva2VuLnJlbGVhc2UoKSk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25D
b29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRmlyZVRpbWVyKGNv
bnRleHQsIG1fdGltZW91dElkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01UaW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmluZGV4IDRmYmM5YWVi
MzZjNzExMWJmZTFmNWM1NTM0MWJmODcyNjczNTgxMDQuLjkwYjY2NTRmMGQ4ZTE1NTZlZjQyMjhi
MDYwY2IxMzczMTgzMDI3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNkZWZpbmUgRE9NVGltZXJfaAogCiAjaW5jbHVkZSAiU3VzcGVuZGFibGVUaW1lci5oIgor
I2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTY5LDcgKzcwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CiAgICAgICAgIE93blB0
cjxTY2hlZHVsZWRBY3Rpb24+IG1fYWN0aW9uOwogICAgICAgICBpbnQgbV9vcmlnaW5hbEludGVy
dmFsOwotICAgICAgICBib29sIG1fc2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlOworICAgICAgICBS
ZWZQdHI8VXNlckdlc3R1cmVJbmRpY2F0b3I6OlRva2VuPiBtX3VzZXJHZXN0dXJlVG9rZW47CiAg
ICAgICAgIHN0YXRpYyBkb3VibGUgc19taW5EZWZhdWx0VGltZXJJbnRlcnZhbDsKICAgICB9Owog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYTdkMGNhOWNmM2Q1ZjNmMDBjNGRlNjM4YWZlYzc0NWI5OWQ1MTBkNi4uZTU1OGZi
NDM4ZmJhMGZhNGRkOGYxYjViNzY1NDJhOWZmMWM5MzYyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTEwLTAyICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIE1ha2Ugc3VyZSB0aGF0IHVzZXIgZ2VzdHVyZXMgY2FuJ3QgYmUgY29uc3VtZWQgdHdp
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDgz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2Vk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9l
dmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0xMC0wMiAgTWFyY2VsbyBMaXJhICA8bWFyY2Vsby5saXJhQG9wZW5ib3NzYS5vcmc+CiAKICAg
ICAgICAgW1F0XSBNaXNzaW5nIGV4cGVjdGVkIHJlc3VsdHMgZm9yIHJvdW5kZWQgZG90dGVkIGJv
cmRlcnMgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVk
LWdlc3R1cmUtYmxvY2tlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc2MjA0YjkyZGUzNWRh
NjdmMDY2MjU5OTcwNzkzZmY5Yjg5YzM5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJs
b2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGVzdCB0aGF0IGEgZm9yd2FyZGVk
IHVzZXIgZ2VzdHVyZSB0aGF0IGlzIGNvbnN1bWVkIGJlZm9yZSB0aGUgdGltZSBmaXJlcyBpcyBy
ZXN1cnJlY3RlZC4KKworQ2xpY2sgSGVyZQorUEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1i
bG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9w
b3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4MzlkYjdi
NGZjZDIzYjMzZTliZmIzZDYxNmNmYmY1ZWJhY2I0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0
dXJlLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAgICAgICAgIFRlc3QgdGhhdCBhIGZvcndh
cmRlZCB1c2VyIGdlc3R1cmUgdGhhdCBpcyBjb25zdW1lZCBiZWZvcmUgdGhlCisgICAgICAgICAg
ICB0aW1lIGZpcmVzIGlzIHJlc3VycmVjdGVkLgorICAgICAgICA8L3A+CisgICAgICAgIDxidXR0
b24gaWQ9ImJ1dHRvbiIgb25jbGljaz0icG9wdXAoKSI+Q2xpY2sgSGVyZTwvYnV0dG9uPgorICAg
ICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHRpbWVyKCkgeworICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKCJhYm91
dDpibGFuayIsICJ3aW5kb3cyIik7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLndpbmRvd0NvdW50KCkg
PT0gd2luZG93Q291bnQgKyAxKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEIjsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwb3B1cCgpIHsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KHRpbWVyLCAwKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cub3BlbigiYWJvdXQ6
YmxhbmsiLCAid2luZG93MSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQb3B1cEJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21w
bGV0ZSh0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICAgICAgICAgICAgICB3aW5kb3dDb3VudCA9IHRlc3RSdW5uZXIud2luZG93Q291bnQoKTsK
KworICAgICAgICAgICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YnV0dG9uIik7CisKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvbi5vZmZzZXRM
ZWZ0ICsgYnV0dG9uLm9mZnNldFdpZHRoIC8gMiwgYnV0dG9uLm9mZnNldFRvcCArIGJ1dHRvbi5v
ZmZzZXRIZWlnaHQgLyAyKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166747</attachid>
            <date>2012-10-02 14:03:41 -0700</date>
            <delta_ts>2012-10-03 02:45:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97483-20121002230253.patch</filename>
            <type>text/plain</type>
            <size>15275</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJkY2RkMjM1NDZlMWQ4
YTIwZDY5NWFmNWFlMzZjMmJiZDVkNTZjYy4uMzZjYWY1NzRlYzQxMGRiNWY5NDliODU5OTQzNzVj
Yzg5YTE3NmI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEwLTAyICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1ha2Ugc3VyZSB0
aGF0IHVzZXIgZ2VzdHVyZXMgY2FuJ3QgYmUgY29uc3VtZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NDgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBhIHNpbXBsZSBjb3Vu
dGVyLCB1c2UgYSByZWYgY291bnRlZCB0b2tlbiB0byB0cmFjayBob3cgbWFueQorICAgICAgICB1
c2VyIGdlc3R1cmVzIGhhcHBlbmVkIGFuZCB3aGVyZSBjb25zdW1lZC4gV2hlbiBjcmVhdGluZyBh
IHRpbWVyIHRoYXQKKyAgICAgICAgaXMgc3VwcG9zZWQgdG8gZm9yd2FyZCB0aGUgdXNlciBnZXN0
dXJlLCB0YWtlIGEgcmVmZXJlbmNlIHRvIHRoaXMgdG9rZW4KKyAgICAgICAgYW5kIHJlaW5zdGFu
dGlhdGUgdGhlIFVzZXJHZXN0dXJlSW5kaWNhdG9yIHdpdGggdGhhdCB0b2tlbiB3aGVuIHRoZQor
ICAgICAgICB0aW1lciBpcyB0cmlnZ2VyZWQuCisKKyAgICAgICAgVGVzdHM6IHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQuaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2Fy
ZGVkLWdlc3R1cmUuaHRtbAorCisgICAgICAgICogZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRp
Y2F0b3I6OlVzZXJHZXN0dXJlSW5kaWNhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0
dXJlSW5kaWNhdG9yOjp+VXNlckdlc3R1cmVJbmRpY2F0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
VXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyR2VzdHVyZUluZGljYXRvcjo6Y29uc3VtZVVzZXJHZXN0dXJlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VG9rZW4pOgorICAgICAg
ICAqIGRvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oOgorICAgICAgICAoVG9rZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3I6OlRva2VuOjp+VG9rZW4pOgorICAgICAg
ICAoVXNlckdlc3R1cmVJbmRpY2F0b3IpOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OkRPTVRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVRpbWVyOjpmaXJlZCk6CisgICAgICAgICogcGFnZS9ET01UaW1lci5oOgorICAgICAgICAo
RE9NVGltZXIpOgorCiAyMDEyLTEwLTAyICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMDEwMyBhbmQgcjEzMDEyNS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4IGRlMTMy
MzY1OWNiMzFjM2Q2NWEwODY2MjY4ODdjZjhkMWFjYjgxN2EuLmMwM2MzMWY4NTdjY2Y0M2U3ZjNk
YzU0ZTBjZmVmZmU5ZmQyMWY1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmNwcApAQCAtMjgsNDAgKzI4LDEwNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK25hbWVzcGFjZSB7CisKK2NsYXNzIEdlc3R1cmVUb2tlbiA6IHB1YmxpYyBVc2VyR2VzdHVy
ZUluZGljYXRvcjo6VG9rZW4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVzZXJH
ZXN0dXJlSW5kaWNhdG9yOjpUb2tlbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEdl
c3R1cmVUb2tlbik7IH0KKworICAgIHZpcnR1YWwgfkdlc3R1cmVUb2tlbigpIHsgfQorCisgICAg
dm9pZCBhZGRHZXN0dXJlKCkgeyBtX2NvbnN1bWFibGVHZXN0dXJlcysrOyB9CisgICAgYm9vbCBj
b25zdW1lR2VzdHVyZSgpCisgICAgeworICAgICAgICBpZiAoIW1fY29uc3VtYWJsZUdlc3R1cmVz
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBtX2NvbnN1bWFibGVHZXN0dXJl
cy0tOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgYm9vbCBoYXNHZXN0dXJlcygp
IGNvbnN0IHsgcmV0dXJuIG1fY29uc3VtYWJsZUdlc3R1cmVzID4gMDsgfQorCitwcml2YXRlOgor
ICAgIEdlc3R1cmVUb2tlbigpCisgICAgICAgIDogbV9jb25zdW1hYmxlR2VzdHVyZXMoMCkKKyAg
ICB7CisgICAgfQorCisgICAgc2l6ZV90IG1fY29uc3VtYWJsZUdlc3R1cmVzOworfTsKKworfQor
CiBzdGF0aWMgYm9vbCBpc0RlZmluaXRlKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHN0YXRl
KQogewogICAgIHJldHVybiBzdGF0ZSA9PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJl
IHx8IHN0YXRlID09IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmU7CiB9CiAKIFBy
b2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpzX3N0YXRlID0g
RGVmaW5pdGVseU5vdFByb2Nlc3NpbmdVc2VyR2VzdHVyZTsKLXNpemVfdCBVc2VyR2VzdHVyZUlu
ZGljYXRvcjo6c19jb25zdW1hYmxlR2VzdHVyZXMgPSAwOworVXNlckdlc3R1cmVJbmRpY2F0b3Iq
IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpzX3RvcG1vc3RJbmRpY2F0b3IgPSAwOwogCiBVc2VyR2Vz
dHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRpY2F0b3IoUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
U3RhdGUgc3RhdGUpCiAgICAgOiBtX3ByZXZpb3VzU3RhdGUoc19zdGF0ZSkKIHsKICAgICAvLyBX
ZSBvdmVyd3JpdGUgc19zdGF0ZSBvbmx5IGlmIHRoZSBjYWxsZXIgaXMgZGVmaW5pdGUgYWJvdXQg
dGhlIGdlc3R1cmUgc3RhdGUuCi0gICAgaWYgKGlzRGVmaW5pdGUoc3RhdGUpKQorICAgIGlmIChp
c0RlZmluaXRlKHN0YXRlKSkgeworICAgICAgICBpZiAoIXNfdG9wbW9zdEluZGljYXRvcikgewor
ICAgICAgICAgICAgc190b3Btb3N0SW5kaWNhdG9yID0gdGhpczsKKyAgICAgICAgICAgIG1fdG9r
ZW4gPSBHZXN0dXJlVG9rZW46OmNyZWF0ZSgpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IG1fdG9rZW4gPSBzX3RvcG1vc3RJbmRpY2F0b3ItPmN1cnJlbnRUb2tlbigpOwogICAgICAgICBz
X3N0YXRlID0gc3RhdGU7CisgICAgfQorCisgICAgaWYgKHN0YXRlID09IERlZmluaXRlbHlQcm9j
ZXNzaW5nVXNlckdlc3R1cmUpCisgICAgICAgIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KG1f
dG9rZW4uZ2V0KCkpLT5hZGRHZXN0dXJlKCk7CisgICAgQVNTRVJUKGlzRGVmaW5pdGUoc19zdGF0
ZSkpOworfQorCitVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRpY2F0b3IoUGFz
c1JlZlB0cjxVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4+IHRva2VuKQorICAgIDogbV9wcmV2
aW91c1N0YXRlKHNfc3RhdGUpCit7CisgICAgaWYgKHRva2VuICYmIHN0YXRpY19jYXN0PEdlc3R1
cmVUb2tlbio+KHRva2VuLmdldCgpKS0+aGFzR2VzdHVyZXMoKSkgeworICAgICAgICBpZiAoIXNf
dG9wbW9zdEluZGljYXRvcikgeworICAgICAgICAgICAgc190b3Btb3N0SW5kaWNhdG9yID0gdGhp
czsKKyAgICAgICAgICAgIG1fdG9rZW4gPSB0b2tlbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIG1fdG9rZW4gPSBzX3RvcG1vc3RJbmRpY2F0b3ItPmN1cnJlbnRUb2tlbigpOworICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8R2VzdHVyZVRva2VuKj4obV90b2tlbi5nZXQoKSktPmFkZEdl
c3R1cmUoKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KHRva2VuLmdl
dCgpKS0+Y29uc3VtZUdlc3R1cmUoKTsKKyAgICAgICAgfQorICAgICAgICBzX3N0YXRlID0gRGVm
aW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZTsKKyAgICB9CiAKLSAgICBpZiAoc19zdGF0ZSA9
PSBEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKQotICAgICAgICBzX2NvbnN1bWFibGVH
ZXN0dXJlcysrOwogICAgIEFTU0VSVChpc0RlZmluaXRlKHNfc3RhdGUpKTsKIH0KIAogVXNlckdl
c3R1cmVJbmRpY2F0b3I6On5Vc2VyR2VzdHVyZUluZGljYXRvcigpCiB7Ci0gICAgaWYgKHNfY29u
c3VtYWJsZUdlc3R1cmVzICYmIHNfc3RhdGUgPT0gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSkKLSAgICAgICAgc19jb25zdW1hYmxlR2VzdHVyZXMtLTsKICAgICBzX3N0YXRlID0gbV9w
cmV2aW91c1N0YXRlOworICAgIGlmIChzX3RvcG1vc3RJbmRpY2F0b3IgPT0gdGhpcykKKyAgICAg
ICAgc190b3Btb3N0SW5kaWNhdG9yID0gMDsKICAgICBBU1NFUlQoaXNEZWZpbml0ZShzX3N0YXRl
KSk7CiB9CiAKK2Jvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpCit7CisgICAgcmV0dXJuIHNfdG9wbW9zdEluZGljYXRvciAmJiBzdGF0aWNfY2FzdDxHZXN0
dXJlVG9rZW4qPihzX3RvcG1vc3RJbmRpY2F0b3ItPmN1cnJlbnRUb2tlbigpKS0+aGFzR2VzdHVy
ZXMoKSAmJiBzX3N0YXRlID09IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmU7Cit9CisK
IGJvb2wgVXNlckdlc3R1cmVJbmRpY2F0b3I6OmNvbnN1bWVVc2VyR2VzdHVyZSgpCiB7Ci0gICAg
aWYgKCFzX2NvbnN1bWFibGVHZXN0dXJlcykKKyAgICBpZiAoIXNfdG9wbW9zdEluZGljYXRvcikK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHNfY29uc3VtYWJsZUdlc3R1cmVzLS07Ci0gICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlc3R1cmVUb2tlbio+KHNfdG9w
bW9zdEluZGljYXRvci0+Y3VycmVudFRva2VuKCkpLT5jb25zdW1lR2VzdHVyZSgpOworfQorCitV
c2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4qIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50
VG9rZW4oKQoreworICAgIGlmICghc190b3Btb3N0SW5kaWNhdG9yKQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gc190b3Btb3N0SW5kaWNhdG9yLT5tX3Rva2VuLmdldCgpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5oCmluZGV4IDUwYWFiZmJl
ZDQ4ZGM3OWI4MTE2ZDhlYjgzY2Q4NThlMWZmZDlhNDYuLmI5ODBiZmEwNWE4MjA2NGI0NmU4N2Fi
MTkyN2Y2NjE2OTIxY2I5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2Vz
dHVyZUluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGlj
YXRvci5oCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFVzZXJHZXN0dXJlSW5kaWNhdG9yX2gK
IAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTM5LDE2ICs0MSwyNSBAQCBlbnVtIFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHsKIGNsYXNz
IFVzZXJHZXN0dXJlSW5kaWNhdG9yIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShVc2VyR2Vz
dHVyZUluZGljYXRvcik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkgeyByZXR1cm4gc19jb25zdW1hYmxlR2VzdHVyZXMgJiYgc19zdGF0ZSA9PSBEZWZp
bml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlOyB9CisgICAgY2xhc3MgVG9rZW4gOiBwdWJsaWMg
UmVmQ291bnRlZDxUb2tlbj4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VG9rZW4o
KSB7IH0KKyAgICB9OworCisgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7
CiAgICAgc3RhdGljIGJvb2wgY29uc3VtZVVzZXJHZXN0dXJlKCk7CisgICAgc3RhdGljIFRva2Vu
KiBjdXJyZW50VG9rZW4oKTsKIAogICAgIGV4cGxpY2l0IFVzZXJHZXN0dXJlSW5kaWNhdG9yKFBy
b2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlKTsKKyAgICBleHBsaWNpdCBVc2VyR2VzdHVyZUluZGlj
YXRvcihQYXNzUmVmUHRyPFRva2VuPik7CiAgICAgflVzZXJHZXN0dXJlSW5kaWNhdG9yKCk7CiAK
KwogcHJpdmF0ZToKICAgICBzdGF0aWMgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGUgc19zdGF0
ZTsKLSAgICBzdGF0aWMgc2l6ZV90IHNfY29uc3VtYWJsZUdlc3R1cmVzOworICAgIHN0YXRpYyBV
c2VyR2VzdHVyZUluZGljYXRvciogc190b3Btb3N0SW5kaWNhdG9yOwogICAgIFByb2Nlc3NpbmdV
c2VyR2VzdHVyZVN0YXRlIG1fcHJldmlvdXNTdGF0ZTsKKyAgICBSZWZQdHI8VG9rZW4+IG1fdG9r
ZW47CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IGRhZDc2ZjU4ZGZmYzYy
NjA2NGZiMjM3MjlhODUxYTI1MDNjNDlmYjMuLmE4Mjc4ZDI5N2I4MjEzNmJhNmE2MzRlODU4NTZj
YzljMWQxMjliNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiU2NoZWR1
bGVkQWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1
ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTY4LDggKzY3LDkgQEAgRE9NVGltZXI6
OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8U2No
ZWR1bGVkQWN0aW9uPgogICAgICwgbV9uZXN0aW5nTGV2ZWwodGltZXJOZXN0aW5nTGV2ZWwgKyAx
KQogICAgICwgbV9hY3Rpb24oYWN0aW9uKQogICAgICwgbV9vcmlnaW5hbEludGVydmFsKGludGVy
dmFsKQotICAgICwgbV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoc2hvdWxkRm9yd2FyZFVzZXJH
ZXN0dXJlKGludGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCiB7CisgICAgaWYgKHNob3VsZEZvcndh
cmRVc2VyR2VzdHVyZShpbnRlcnZhbCwgbV9uZXN0aW5nTGV2ZWwpKQorICAgICAgICBtX3VzZXJH
ZXN0dXJlVG9rZW4gPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVudFRva2VuKCk7CiAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRUaW1lb3V0KG1fdGltZW91dElkLCB0aGlzKTsK
IAogICAgIGRvdWJsZSBpbnRlcnZhbE1pbGxpc2Vjb25kcyA9IGludGVydmFsQ2xhbXBlZFRvTWlu
aW11bShpbnRlcnZhbCwgY29udGV4dC0+bWluaW11bVRpbWVySW50ZXJ2YWwoKSk7CkBAIC0xMTYs
MTAgKzExNiw4IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIHRpbWVyTmVz
dGluZ0xldmVsID0gbV9uZXN0aW5nTGV2ZWw7CiAgICAgQVNTRVJUKCFjb250ZXh0LT5hY3RpdmVE
T01PYmplY3RzQXJlU3VzcGVuZGVkKCkpOwotICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1
cmVJbmRpY2F0b3IobV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUgPyBEZWZpbml0ZWx5UHJvY2Vz
c2luZ1VzZXJHZXN0dXJlIDogUG9zc2libHlQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotICAgIAog
ICAgIC8vIE9ubHkgdGhlIGZpcnN0IGV4ZWN1dGlvbiBvZiBhIG11bHRpLXNob3QgdGltZXIgc2hv
dWxkIGdldCBhbiBhZmZpcm1hdGl2ZSB1c2VyIGdlc3R1cmUgaW5kaWNhdG9yLgotICAgIG1fc2hv
dWxkRm9yd2FyZFVzZXJHZXN0dXJlID0gZmFsc2U7CisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
Z2VzdHVyZUluZGljYXRvcihtX3VzZXJHZXN0dXJlVG9rZW4ucmVsZWFzZSgpKTsKIAogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxGaXJlVGltZXIoY29udGV4dCwgbV90aW1lb3V0SWQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVRpbWVyLmgKaW5kZXggNGZiYzlhZWIzNmM3MTExYmZlMWY1YzU1MzQxYmY4NzI2NzM1ODEwNC4u
OTBiNjY1NGYwZDhlMTU1NmVmNDIyOGIwNjBjYjEzNzMxODMwMjdkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBET01UaW1lcl9oCiAKICNpbmNsdWRl
ICJTdXNwZW5kYWJsZVRpbWVyLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIK
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApA
QCAtNjksNyArNzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBtX25lc3Rp
bmdMZXZlbDsKICAgICAgICAgT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gbV9hY3Rpb247CiAgICAg
ICAgIGludCBtX29yaWdpbmFsSW50ZXJ2YWw7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRGb3J3YXJk
VXNlckdlc3R1cmU7CisgICAgICAgIFJlZlB0cjxVc2VyR2VzdHVyZUluZGljYXRvcjo6VG9rZW4+
IG1fdXNlckdlc3R1cmVUb2tlbjsKICAgICAgICAgc3RhdGljIGRvdWJsZSBzX21pbkRlZmF1bHRU
aW1lckludGVydmFsOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhN2QwY2E5Y2YzZDVmM2YwMGM0ZGU2Mzhh
ZmVjNzQ1Yjk5ZDUxMGQ2Li4zZjM4YmRlMjAxOTJlNDA4MTIyNzdlOTZjOGQ1MjY0MTU3MmY3NjZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMDIgIEpvY2hlbiBFaXNpbmdlciAgPGpv
Y2hlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgdXNlciBnZXN0dXJl
cyBjYW4ndCBiZSBjb25zdW1lZCB0d2ljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTc0ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZv
cndhcmRlZC1nZXN0dXJlLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9j
a2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUuaHRt
bDogQWRkZWQuCisKIDIwMTItMTAtMDIgIE1hcmNlbG8gTGlyYSAgPG1hcmNlbG8ubGlyYUBvcGVu
Ym9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0gTWlzc2luZyBleHBlY3RlZCByZXN1bHRzIGZvciBy
b3VuZGVkIGRvdHRlZCBib3JkZXJzIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2Vk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU3NjIwNGI5MmRlMzVkYTY3ZjA2NjI1OTk3MDc5M2ZmOWI4OWMzOTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3
YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3Qg
dGhhdCBhIGZvcndhcmRlZCB1c2VyIGdlc3R1cmUgdGhhdCBpcyBjb25zdW1lZCBiZWZvcmUgdGhl
IHRpbWUgZmlyZXMgaXMgcmVzdXJyZWN0ZWQuCisKK0NsaWNrIEhlcmUKK1BBU1NFRApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9y
d2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUtYmxvY2tlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY0ODM5ZGI3YjRmY2QyM2IzM2U5YmZiM2Q2MTZjZmJmNWViYWNiNGYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1
cC1mb3J3YXJkZWQtZ2VzdHVyZS1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAgICAgICBU
ZXN0IHRoYXQgYSBmb3J3YXJkZWQgdXNlciBnZXN0dXJlIHRoYXQgaXMgY29uc3VtZWQgYmVmb3Jl
IHRoZQorICAgICAgICAgICAgdGltZSBmaXJlcyBpcyByZXN1cnJlY3RlZC4KKyAgICAgICAgPC9w
PgorICAgICAgICA8YnV0dG9uIGlkPSJidXR0b24iIG9uY2xpY2s9InBvcHVwKCkiPkNsaWNrIEhl
cmU8L2J1dHRvbj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiB0aW1lcigpIHsKKyAgICAgICAgICAgICAgICB3
aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCAid2luZG93MiIpOworICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci53aW5kb3dDb3VudCgpID09IHdpbmRvd0NvdW50ICsgMSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NF
RCI7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRCI7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcG9wdXAoKSB7Cisg
ICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aW1lciwgMCk7CisgICAgICAgICAgICAgICAgd2lu
ZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgIndpbmRvdzEiKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVu
V2luZG93cygpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0Vu
YWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmlu
Z1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICAgICAgd2luZG93Q291bnQgPSB0ZXN0UnVubmVy
LndpbmRvd0NvdW50KCk7CisKKyAgICAgICAgICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImJ1dHRvbiIpOworCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhidXR0b24ub2Zmc2V0TGVmdCArIGJ1dHRvbi5vZmZzZXRXaWR0aCAvIDIsIGJ1dHRvbi5vZmZz
ZXRUb3AgKyBidXR0b24ub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1mb3J3YXJkZWQtZ2VzdHVyZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9wb3B1cC1m
b3J3YXJkZWQtZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc5ZDg2NjVlNzc2NTUw
N2EzMjFlMTY0MzllMGMwMDU4NTI1ZDczMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1Rlc3QgdGhhdCBhIGZvcndhcmRlZCB1c2VyIGdl
c3R1cmUgY2FuIGJlIGNvbnN1bWVkIGJ5IGFueSB0aW1lb3V0LCBub3QganVzdCB0aGUgZmlyc3Qu
CisKK0NsaWNrIEhlcmUKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9ldmVudHMvcG9wdXAtZm9yd2FyZGVkLWdlc3R1cmUuaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0
dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE3ZGNlNjIyN2Y4MDdjNmQ5NjVmNGM4YWY1MDYwYjdjMjAy
YzE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZXZlbnRzL3BvcHVwLWZvcndhcmRlZC1nZXN0dXJlLmh0bWwKQEAgLTAsMCArMSw0NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAg
ICAgICBUZXN0IHRoYXQgYSBmb3J3YXJkZWQgdXNlciBnZXN0dXJlIGNhbiBiZSBjb25zdW1lZCBi
eSBhbnkgdGltZW91dCwKKyAgICAgICAgICAgIG5vdCBqdXN0IHRoZSBmaXJzdC4KKyAgICAgICAg
PC9wPgorICAgICAgICA8YnV0dG9uIGlkPSJidXR0b24iIG9uY2xpY2s9InBvcHVwKCkiPkNsaWNr
IEhlcmU8L2J1dHRvbj4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBmdW5jdGlvbiB0aW1lcjEoKSB7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBmdW5jdGlvbiB0aW1lcjIoKSB7CisgICAgICAgICAgICAgICAgdmFyIHdp
biA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIsICJ3aW5kb3ciKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXdpbikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcG9wdXAoKSB7CisgICAgICAgICAgICAgICAg
c2V0VGltZW91dCh0aW1lcjEsIDApOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQodGltZXIy
LCAxMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgICAg
ICAgICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b24iKTsKKwor
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oYnV0dG9uLm9mZnNldExlZnQgKyBidXR0b24u
b2Zmc2V0V2lkdGggLyAyLCBidXR0b24ub2Zmc2V0VG9wICsgYnV0dG9uLm9mZnNldEhlaWdodCAv
IDIpOworICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>