<?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>130059</bug_id>
          
          <creation_ts>2014-03-10 18:12:44 -0700</creation_ts>
          <short_desc>Refactor Vibration algorithm to use only one timer.</short_desc>
          <delta_ts>2014-03-13 20:51:53 -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 name="Jinwoo Jeong">jw00.jeong</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>8179.jeong</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jinwoo7.song</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>989147</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-10 18:12:44 -0700</bug_when>
    <thetext>Currently Vibration has used two timers,
But they does not work in same time.
And in Vibration, there are some difference between algorithm defined in specification and implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989158</commentid>
    <comment_count>1</comment_count>
      <attachid>226363</attachid>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-10 18:34:16 -0700</bug_when>
    <thetext>Created attachment 226363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989179</commentid>
    <comment_count>2</comment_count>
      <attachid>226363</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2014-03-10 19:29:59 -0700</bug_when>
    <thetext>Comment on attachment 226363
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Refactor Vibration algorithm to use only 1 timer.

nit: s/1/one

&gt; Source/WebCore/ChangeLog:8
&gt; +        Currently Vibration has used 2 timer,

Writing suggestion: &apos;Currently Vibration is using two timers,&apos;

&gt; Source/WebCore/ChangeLog:13
&gt; +        Indeed this patch applies the algorithm and restrictions defined on specification.

Writing suggestion: &apos;Also, this patch implement the missing part of the algorithm, which check the maximum length of the vibration pattern and the maximum duration of the vibration.

&gt; Source/WebCore/Modules/vibration/Vibration.cpp:32
&gt; +const unsigned MaxVibrationDuration = 10000;

Where these magic values come from?

&gt; Source/WebCore/Modules/vibration/Vibration.cpp:87
&gt;          return true;

These lines can be removed as it is already checked.

&gt; Source/WebCore/Modules/vibration/Vibration.cpp:110
&gt; +        m_state = Idle;

You may return here.

&gt; Source/WebCore/Modules/vibration/Vibration.cpp:111
&gt; +    else {

Why don&apos;t you use switch-case statement here?

&gt; Source/WebCore/Modules/vibration/Vibration.h:-45
&gt; -    // FIXME : Add suspendVibration() and resumeVibration() to the page visibility feature, when the document.hidden attribute is changed.

It&apos;s okay to remove these unused methods but It would be better to comment &apos;FIXME&apos; for implementing page visibility feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989281</commentid>
    <comment_count>3</comment_count>
      <attachid>226363</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-11 00:32:33 -0700</bug_when>
    <thetext>Comment on attachment 226363
Patch

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

&gt; Source/WebCore/Modules/vibration/Vibration.cpp:72
&gt; +    for (size_t i = 0; i &lt; length; ++i) {
&gt; +        if (sanitized[i] &gt; MaxVibrationDuration)
&gt; +            sanitized[i] = MaxVibrationDuration;
&gt; +    }

I suggest writing it like this:

    for (auto&amp; duration : sanitized)
        duration = std::min(duration, MaxVibrationDuration);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989292</commentid>
    <comment_count>4</comment_count>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-11 01:28:40 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/Modules/vibration/Vibration.cpp:32
&gt; &gt; +const unsigned MaxVibrationDuration = 10000;
&gt; 
&gt; Where these magic values come from?
I referred to blink.

And others is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989297</commentid>
    <comment_count>5</comment_count>
      <attachid>226397</attachid>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-11 01:49:17 -0700</bug_when>
    <thetext>Created attachment 226397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989541</commentid>
    <comment_count>6</comment_count>
      <attachid>226476</attachid>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-11 22:54:52 -0700</bug_when>
    <thetext>Created attachment 226476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989542</commentid>
    <comment_count>7</comment_count>
      <attachid>226477</attachid>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-11 23:03:43 -0700</bug_when>
    <thetext>Created attachment 226477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990066</commentid>
    <comment_count>8</comment_count>
      <attachid>226477</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-13 10:56:27 -0700</bug_when>
    <thetext>Comment on attachment 226477
Patch

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

&gt; Source/WebCore/Modules/vibration/Vibration.cpp:72
&gt; +    // Pre-exsiting instance need to be canceled when vibrate() is called.

Typo: &quot;exsiting&quot;.

&gt; Source/WebCore/Modules/vibration/Vibration.h:43
&gt; +    // FIXME : When visibilitychange event is dispatched, if a vibration is working, it should be canceled.

No space before the &quot;:&quot; in &quot;FIXME:&quot;.

I don’t understand the meaning of the phrase “a vibration is working”.

&gt; Source/WebCore/Modules/vibration/Vibration.h:58
&gt; +    enum class State {
&gt; +        Idle,
&gt; +        Vibrating,
&gt; +        Waiting
&gt; +    };

I’d suggest putting this on a single line instead of 5 lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990228</commentid>
    <comment_count>9</comment_count>
      <attachid>226636</attachid>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-13 18:24:33 -0700</bug_when>
    <thetext>Created attachment 226636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990229</commentid>
    <comment_count>10</comment_count>
      <attachid>226637</attachid>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-13 18:28:57 -0700</bug_when>
    <thetext>Created attachment 226637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990232</commentid>
    <comment_count>11</comment_count>
    <who name="Jinwoo Jeong">jw00.jeong</who>
    <bug_when>2014-03-13 18:37:52 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 226477 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226477&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/vibration/Vibration.cpp:72
&gt; &gt; +    // Pre-exsiting instance need to be canceled when vibrate() is called.
&gt; 
&gt; Typo: &quot;exsiting&quot;.
&gt; 
&gt; &gt; Source/WebCore/Modules/vibration/Vibration.h:43
&gt; &gt; +    // FIXME : When visibilitychange event is dispatched, if a vibration is working, it should be canceled.
&gt; 
&gt; No space before the &quot;:&quot; in &quot;FIXME:&quot;.
&gt; 
&gt; I don’t understand the meaning of the phrase “a vibration is working”.
&gt; 
&gt; &gt; Source/WebCore/Modules/vibration/Vibration.h:58
&gt; &gt; +    enum class State {
&gt; &gt; +        Idle,
&gt; &gt; +        Vibrating,
&gt; &gt; +        Waiting
&gt; &gt; +    };
&gt; 
&gt; I’d suggest putting this on a single line instead of 5 lines.


Applied Darin&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990265</commentid>
    <comment_count>12</comment_count>
      <attachid>226637</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-13 19:50:25 -0700</bug_when>
    <thetext>Comment on attachment 226637
Patch

Clearing flags on attachment: 226637

Committed r165598: &lt;http://trac.webkit.org/changeset/165598&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990266</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-13 19:50:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990277</commentid>
    <comment_count>14</comment_count>
    <who name="8179.jeong@gmail.com">8179.jeong</who>
    <bug_when>2014-03-13 20:51:53 -0700</bug_when>
    <thetext>*** Bug 129598 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226363</attachid>
            <date>2014-03-10 18:34:16 -0700</date>
            <delta_ts>2014-03-11 01:49:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130059-20140311103418.patch</filename>
            <type>text/plain</type>
            <size>10789</size>
            <attacher name="Jinwoo Jeong">jw00.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhOWMxY2UyNzI3N2E3
NWY5MDRkN2EwOGJmNzRhYzI5ZTgwMjM2Ni4uOWEyMDUzZWEwZTJlNDM1YmNkZmE1MzE2OWZkMzNj
ZmU3MmRmMzdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTEwICBKaW53
b28gSmVvbmcgIDxqdzAwLmplb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFZp
YnJhdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9ubHkgMSB0aW1lci4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDA1OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSBWaWJyYXRpb24gaGFzIHVz
ZWQgMiB0aW1lciwKKyAgICAgICAgb25lIGlzIHRvIHN0YXJ0IGEgdmlicmF0aW9uIGFuZCBhbm90
aGVyIGlzIHRvIGNoZWNrIHRlcm1pbmF0aW9uIG9mIGEgdmlicmF0aW9uLgorICAgICAgICBCdXQg
dGhleSBkbyBub3Qgd29yayBpbiBzYW1lIHRpbWUsIGlmIG9uZSBvZiB0aGVtIGlzIGZpcmVkLCB0
aGVuIGFub3Rob3Igd2lsbCBzdGFydC4KKyAgICAgICAgVGh1cyB0aGlzIHBhdGNoIHJlbW92ZXMg
b25lIG9mIHRoZW0sIGFuZCBtYW5hZ2VzIHZpYnJhdGlvbiBzdGF0ZXMgYnkgZW51bWVyYXRpb24u
CisKKyAgICAgICAgSW5kZWVkIHRoaXMgcGF0Y2ggYXBwbGllcyB0aGUgYWxnb3JpdGhtIGFuZCBy
ZXN0cmljdGlvbnMgZGVmaW5lZCBvbiBzcGVjaWZpY2F0aW9uLgorICAgICAgICBJbiByZXN0cmlj
dGlvbnMsIHRoZXJlIGFyZSBNYXhWaWJyYXRpb25QYXR0ZXJuTGVuZ3RoIGFuZCBNYXhWaWJyYXRp
b25EdXJhdGlvbi4KKworICAgICAgICBMYXN0bHksIHRoaXMgcGF0Y2ggcmVtb3ZlcyB1bnVzZWQg
bWV0aG9kcyBmcm9tIFZpYnJhdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvdmlicmF0aW9uL1Zp
YnJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaWJyYXRpb246OlZpYnJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWJyYXRpb246OnZpYnJhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
VmlicmF0aW9uOjpjYW5jZWxWaWJyYXRpb24pOgorICAgICAgICBSZW1vdmVkIHN0b3BWaWJyYXRp
b24oKSBhbmQgaXRzIGNvbnRlbnRzIG1vdmVkIHRvIGNhbmNlbFZpYnJhdGlvbigpLgorICAgICAg
ICAoV2ViQ29yZTo6VmlicmF0aW9uOjp0aW1lckZpcmVkKTogQ29tYmluZWQgdGltZXJTdGFydEZp
cmVkKCkgYW5kIHRpbWVyU3RvcEZpcmVkKCkuCisgICAgICAgIFJlbW92ZWQgc3VzcGVuZFZpYnJh
dGlvbigpIGFuZCByZXN1bWVWaWJyYXRpb24oKSwgd2hpY2ggaXMgbmV2ZXIgY2FsbGVkIHNpbmNl
IHIuCisgICAgICAgICogTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmg6IEFkZGVkIG5ldyBl
bnVtZXJ0YWlvbiB0byBzcGVjaWZ5IHN0YXRlcyBvZiBWaWJyYXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpWaWJyYXRpb246OmlzVmlicmF0aW5nKToKKwogMjAxNC0wMy0xMCAgTWFyaW8gU2FuY2hl
eiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBz
dXBwb3J0IGZvciBHZW9jbHVlMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQ3ZTYzYmUwNDQ4ZGI4ZjhhMWQ1NjMx
MTI5MzcyNmFmZmI3Mzg2NmUuLjYwMzVlYmE5ZjE4NmFmNmZhYmIzNGVmZGFhNDg3NDllYzA3NWRh
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wMy0xMCAgSmlud29vIEplb25n
ICA8ancwMC5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBSZWZhY3RvciBWaWJyYXRpb24g
YWxnb3JpdGhtIHRvIHVzZSBvbmx5IDEgdGltZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB2aWJyYXRpb24gdW5pdCB0
ZXN0IHJlZ3Jlc3Npb24gYWZ0ZXIgcjE2MTI1Ny4KKyAgICAgICAgSXQgY29uc2lzdHMgb2YgdHdv
IHNob3J0IHRlcm0gcmVxdWVzdHMgdG8gY2hlY2sKKyAgICAgICAgdGhhdCBWaWJyYXRpb24gY291
bGQgd29yayBwcm9wZXJseSBieSBzZXF1ZW50aWFsIHJlcXVlc3RzLgorCisgICAgICAgIEluZGVl
ZCB0aGlzIHBhdGNoIHRpZ2h0ZW5zIGNvbmRpdGlvbiBvZiBleGlzdGluZyB0ZXN0cy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcDoKKyAgICAg
ICAgKFRFU1RfRik6CisKIDIwMTQtMDMtMTAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IHRocmVlIGxlYWtzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmNwcAppbmRleCBiYTQ3ZTE0NTc5YTEwMzhjNTBl
MDVhMTYyNGRlZGQ1MjQxMzdlY2Y3Li5hMTUzNzRiMDI2ZmY4M2YyNjZmZjM0ZDk3NzQ1MjJkZmY3
ZGJhMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlv
bi5jcHAKQEAgLTI2LDExICsyNiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIE1h
eGltdW0gbnVtYmVyIG9mIGVudHJpZXMgaW4gYSB2aWJyYXRpb24gcGF0dGVybi4KK2NvbnN0IHVu
c2lnbmVkIE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGggPSA5OTsKKy8vIE1heGltdW0gZHVyYXRp
b24gb2YgYSB2aWJyYXRpb24gaW4gMTAgc2Vjb25kcy4KK2NvbnN0IHVuc2lnbmVkIE1heFZpYnJh
dGlvbkR1cmF0aW9uID0gMTAwMDA7CisKIFZpYnJhdGlvbjo6VmlicmF0aW9uKFZpYnJhdGlvbkNs
aWVudCogY2xpZW50KQogICAgIDogbV92aWJyYXRpb25DbGllbnQoY2xpZW50KQotICAgICwgbV90
aW1lclN0YXJ0KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RhcnRGaXJlZCkKLSAgICAsIG1fdGlt
ZXJTdG9wKHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RvcEZpcmVkKQotICAgICwgbV9pc1ZpYnJh
dGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlZpYnJhdGlvbjo6dGltZXJGaXJlZCkK
KyAgICAsIG1fc3RhdGUoSWRsZSkKIHsKIH0KIApAQCAtNDYsNzkgKzUwLDczIEBAIFBhc3NPd25Q
dHI8VmlicmF0aW9uPiBWaWJyYXRpb246OmNyZWF0ZShWaWJyYXRpb25DbGllbnQqIGNsaWVudCkK
IAogYm9vbCBWaWJyYXRpb246OnZpYnJhdGUoY29uc3QgVmlicmF0aW9uUGF0dGVybiYgcGF0dGVy
bikKIHsKLSAgICBzaXplX3QgbGVuZ3RoID0gcGF0dGVybi5zaXplKCk7CisgICAgVmlicmF0aW9u
UGF0dGVybiYgc2FuaXRpemVkID0gY29uc3RfY2FzdDxWaWJyYXRpb25QYXR0ZXJuJj4ocGF0dGVy
bik7CisgICAgc2l6ZV90IGxlbmd0aCA9IHNhbml0aXplZC5zaXplKCk7CisKKyAgICAvLyBJZiB0
aGUgcGF0dGVybiBpcyB0b28gbG9uZyB0aGVuIHRydW5jYXRlIGl0LgorICAgIGlmIChsZW5ndGgg
PiBNYXhWaWJyYXRpb25QYXR0ZXJuTGVuZ3RoKSB7CisgICAgICAgIHNhbml0aXplZC5zaHJpbmso
TWF4VmlicmF0aW9uUGF0dGVybkxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IE1heFZpYnJhdGlv
blBhdHRlcm5MZW5ndGg7CisgICAgfQorCisgICAgLy8gSWYgdGhlIGxlbmd0aCBvZiBwYXR0ZXJu
IGlzIGV2ZW4gYW5kIGlzIG5vdCB6ZXJvLCB0aGVuIHJlbW92ZSB0aGUgbGFzdCBlbnRyeSBpbiBw
YXR0ZXJuLgorICAgIGlmIChsZW5ndGggJiYgIShsZW5ndGggJSAyKSkgeworICAgICAgICBzYW5p
dGl6ZWQucmVtb3ZlTGFzdCgpOworICAgICAgICBsZW5ndGgtLTsKKyAgICB9CiAKLSAgICBtX3Bh
dHRlcm4gPSBwYXR0ZXJuOwotICAgIGlmIChsZW5ndGggJiYgIShsZW5ndGggJSAyKSkKLSAgICAg
ICAgbV9wYXR0ZXJuLnJlbW92ZUxhc3QoKTsKKyAgICAvLyBJZiBhbnkgcGF0dGVybiBlbnRyeSBp
cyB0b28gbG9uZyB0aGVuIHRydW5jYXRlIGl0LgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHNhbml0aXplZFtpXSA+IE1heFZpYnJhdGlvbkR1
cmF0aW9uKQorICAgICAgICAgICAgc2FuaXRpemVkW2ldID0gTWF4VmlicmF0aW9uRHVyYXRpb247
CisgICAgfQogCi0gICAgLy8gUHJlLWV4c2l0aW5nIGluc3RhbmNlIG5lZWQgdG8gYmUgY2FuY2Vs
ZWQgd2hlbiB2aWJyYXRpb24gaXMgY2FsbGVkLgotICAgIC8vIEFuZCBpZiB0aW1lIGlzIDAsIHZp
YnJhdGlvbiBoYXZlIHRvIGJlIGNhbmNlbGVkIGFsc28uCi0gICAgaWYgKG1faXNWaWJyYXRpbmcg
fHwgKG1fcGF0dGVybi5zaXplKCkgPT0gMSAmJiAhbV9wYXR0ZXJuWzBdKSkKKyAgICAvLyBQcmUt
ZXhzaXRpbmcgaW5zdGFuY2UgbmVlZCB0byBiZSBjYW5jZWxlZCB3aGVuIHZpYnJhdGUoKSBpcyBj
YWxsZWQuCisgICAgaWYgKGlzVmlicmF0aW5nKCkpCiAgICAgICAgIGNhbmNlbFZpYnJhdGlvbigp
OwogCisgICAgLy8gSWYgcGF0dGVybiBpcyBhbiBlbXB0eSBsaXN0LCB0aGVuIHJldHVybiB0cnVl
IGFuZCB0ZXJtaW5hdGUgdGhlc2Ugc3RlcHMuCisgICAgaWYgKCFsZW5ndGggfHwgKGxlbmd0aCA9
PSAxICYmICFzYW5pdGl6ZWRbMF0pKSB7CisgICAgICAgIGNhbmNlbFZpYnJhdGlvbigpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtX3BhdHRlcm4gPSBzYW5pdGl6ZWQ7CisK
ICAgICBpZiAoIW1fcGF0dGVybi5zaXplKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAg
bV90aW1lclN0YXJ0LnN0YXJ0T25lU2hvdCgwKTsKLSAgICBtX2lzVmlicmF0aW5nID0gdHJ1ZTsK
KyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9p
ZCBWaWJyYXRpb246OmNhbmNlbFZpYnJhdGlvbigpCiB7CiAgICAgbV9wYXR0ZXJuLmNsZWFyKCk7
Ci0gICAgaWYgKG1faXNWaWJyYXRpbmcpCi0gICAgICAgIHN0b3BWaWJyYXRpb24oKTsKLX0KLQot
dm9pZCBWaWJyYXRpb246OnN1c3BlbmRWaWJyYXRpb24oKQotewotICAgIGlmICghbV9pc1ZpYnJh
dGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYXR0ZXJuLmluc2VydCgwLCBtX3RpbWVy
U3RvcC5uZXh0RmlyZUludGVydmFsKCkpOwotICAgIHN0b3BWaWJyYXRpb24oKTsKLX0KLQotdm9p
ZCBWaWJyYXRpb246OnJlc3VtZVZpYnJhdGlvbigpCi17Ci0gICAgbV90aW1lclN0YXJ0LnN0YXJ0
T25lU2hvdCgwKTsKLSAgICBtX2lzVmlicmF0aW5nID0gdHJ1ZTsKLX0KLQotdm9pZCBWaWJyYXRp
b246OnN0b3BWaWJyYXRpb24oKQotewotICAgIG1fdGltZXJTdGFydC5zdG9wKCk7Ci0gICAgbV90
aW1lclN0b3Auc3RvcCgpOwotICAgIG1fdmlicmF0aW9uQ2xpZW50LT5jYW5jZWxWaWJyYXRpb24o
KTsKLSAgICBtX2lzVmlicmF0aW5nID0gZmFsc2U7Ci19Ci0KLXZvaWQgVmlicmF0aW9uOjp0aW1l
clN0YXJ0RmlyZWQoVGltZXI8VmlicmF0aW9uPiogdGltZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNF
RCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXJTdGFydCk7Ci0KLSAgICBtX3RpbWVyU3RhcnQuc3Rv
cCgpOwotCi0gICAgaWYgKCFtX3BhdHRlcm4uaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1fdmlicmF0
aW9uQ2xpZW50LT52aWJyYXRlKG1fcGF0dGVyblswXSk7Ci0gICAgICAgIG1fdGltZXJTdG9wLnN0
YXJ0T25lU2hvdChtX3BhdHRlcm5bMF0gLyAxMDAwLjApOwotICAgICAgICBtX3BhdHRlcm4ucmVt
b3ZlKDApOworICAgIGlmIChpc1ZpYnJhdGluZygpKSB7CisgICAgICAgIG1fdGltZXIuc3RvcCgp
OworICAgICAgICBtX3N0YXRlID0gSWRsZTsKKyAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPmNh
bmNlbFZpYnJhdGlvbigpOwogICAgIH0KIH0KIAotdm9pZCBWaWJyYXRpb246OnRpbWVyU3RvcEZp
cmVkKFRpbWVyPFZpYnJhdGlvbj4qIHRpbWVyKQordm9pZCBWaWJyYXRpb246OnRpbWVyRmlyZWQo
VGltZXI8VmlicmF0aW9uPiogdGltZXIpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGlt
ZXIgPT0gJm1fdGltZXJTdG9wKTsKLQotICAgIG1fdGltZXJTdG9wLnN0b3AoKTsKLQotICAgIGlm
ICghbV9wYXR0ZXJuLmlzRW1wdHkoKSkgewotICAgICAgICBtX3RpbWVyU3RhcnQuc3RhcnRPbmVT
aG90KG1fcGF0dGVyblswXSAvIDEwMDAuMCk7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGlt
ZXIgPT0gJm1fdGltZXIpOworCisgICAgbV90aW1lci5zdG9wKCk7CisKKyAgICBpZiAobV9wYXR0
ZXJuLmlzRW1wdHkoKSkKKyAgICAgICAgbV9zdGF0ZSA9IElkbGU7CisgICAgZWxzZSB7CisgICAg
ICAgIGlmIChtX3N0YXRlID09IFZpYnJhdGluZykKKyAgICAgICAgICAgIG1fc3RhdGUgPSBXYWl0
aW5nOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fc3RhdGUgPSBWaWJyYXRpbmc7Cisg
ICAgICAgICAgICBtX3ZpYnJhdGlvbkNsaWVudC0+dmlicmF0ZShtX3BhdHRlcm5bMF0pOworICAg
ICAgICB9CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KG1fcGF0dGVyblswXSAvIDEwMDAu
MCk7CiAgICAgICAgIG1fcGF0dGVybi5yZW1vdmUoMCk7Ci0gICAgICAgIGlmIChtX3BhdHRlcm4u
aXNFbXB0eSgpKQotICAgICAgICAgICAgbV9pc1ZpYnJhdGluZyA9IGZhbHNlOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uaAppbmRleCBl
NTQwODNhNzliNzI0YjlkZjYwMjViODc4MmQwODM1NWNmYTA1NzZhLi42OTBkMGZjNzg2NDQxZjRm
MGQyZDhkZGUyMzk2Mzk2NDcwYzI2Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Zp
YnJhdGlvbi9WaWJyYXRpb24uaApAQCAtMzIsNiArMzIsMTEgQEAgY2xhc3MgVmlicmF0aW9uQ2xp
ZW50OwogCiBjbGFzcyBWaWJyYXRpb24gOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CiBwdWJs
aWM6CisgICAgZW51bSBTdGF0ZSB7CisgICAgICAgIElkbGUgPSAwLAorICAgICAgICBWaWJyYXRp
bmcgPSAxLAorICAgICAgICBXYWl0aW5nID0gMgorICAgIH07CiAgICAgdHlwZWRlZiBWZWN0b3I8
dW5zaWduZWQ+IFZpYnJhdGlvblBhdHRlcm47CiAKICAgICBleHBsaWNpdCBWaWJyYXRpb24oVmli
cmF0aW9uQ2xpZW50Kik7CkBAIC00MiwyNCArNDcsMTcgQEAgcHVibGljOgogICAgIGJvb2wgdmli
cmF0ZShjb25zdCBWaWJyYXRpb25QYXR0ZXJuJik7CiAgICAgdm9pZCBjYW5jZWxWaWJyYXRpb24o
KTsKIAotICAgIC8vIEZJWE1FIDogQWRkIHN1c3BlbmRWaWJyYXRpb24oKSBhbmQgcmVzdW1lVmli
cmF0aW9uKCkgdG8gdGhlIHBhZ2UgdmlzaWJpbGl0eSBmZWF0dXJlLCB3aGVuIHRoZSBkb2N1bWVu
dC5oaWRkZW4gYXR0cmlidXRlIGlzIGNoYW5nZWQuCi0gICAgdm9pZCBzdXNwZW5kVmlicmF0aW9u
KCk7Ci0gICAgdm9pZCByZXN1bWVWaWJyYXRpb24oKTsKLSAgICB2b2lkIHRpbWVyU3RhcnRGaXJl
ZChUaW1lcjxWaWJyYXRpb24+Kik7Ci0gICAgdm9pZCB0aW1lclN0b3BGaXJlZChUaW1lcjxWaWJy
YXRpb24+Kik7CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFZpYnJhdGlvbj4qKTsKIAogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogICAgIHN0YXRpYyBWaWJyYXRp
b24qIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0aW9uKj4oU3Vw
cGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KIAotICAgIGJv
b2wgaXNWaWJyYXRpbmcoKSB7IHJldHVybiBtX2lzVmlicmF0aW5nOyB9CisgICAgYm9vbCBpc1Zp
YnJhdGluZygpIHsgcmV0dXJuIG1fc3RhdGUgIT0gSWRsZTsgfQogCiBwcml2YXRlOgotICAgIHZv
aWQgc3RvcFZpYnJhdGlvbigpOwotCiAgICAgVmlicmF0aW9uQ2xpZW50KiBtX3ZpYnJhdGlvbkNs
aWVudDsKLSAgICBUaW1lcjxWaWJyYXRpb24+IG1fdGltZXJTdGFydDsKLSAgICBUaW1lcjxWaWJy
YXRpb24+IG1fdGltZXJTdG9wOwotICAgIGJvb2wgbV9pc1ZpYnJhdGluZzsKKyAgICBUaW1lcjxW
aWJyYXRpb24+IG1fdGltZXI7CisgICAgU3RhdGUgbV9zdGF0ZTsKICAgICBWaWJyYXRpb25QYXR0
ZXJuIG1fcGF0dGVybjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAppbmRleCBiZGZkNzgxOTk1NDEz
YWE4NjlkMzVjODVjMzQ4NTQ3MTVkMzE2Zjk0Li4yZGM1NjViZWM4MGYyZjc0MjY3YmZlOGU1Mzc0
YzMwNTE1NmU1MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCkBAIC05MjgsMjMgKzkyOCwzNCBAQCBU
RVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfY29udGV4dF92aWJyYXRpb25fY2xpZW50X2NhbGxiYWNr
c19zZXQpCiAgICAgLy8gVmlicmF0ZSBmb3IgNSBzZWNvbmRzLgogICAgIGxvYWRWaWJyYXRpb25I
VE1MU3RyaW5nKHdlYlZpZXcoKSwgIjUwMDAiLCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShk
YXRhLnRlc3RGaW5pc2hlZCk7Ci0gICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlVmlicmF0
ZSk7CisgICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiAhZGF0YS5kaWRS
ZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKIAogICAgIC8vIENhbmNlbCBhbnkgZXhpc3Rpbmcgdmli
cmF0aW9ucy4KICAgICBsb2FkVmlicmF0aW9uSFRNTFN0cmluZyh3ZWJWaWV3KCksICIwIiwgJmRh
dGEpOwogICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOwotICAgIEFTU0VSVF9U
UlVFKGRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CisgICAgQVNTRVJUX1RSVUUoIWRh
dGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsK
IAogICAgIC8vIFRoaXMgY2FzZSB0aGUgcGF0dGVybiB3aWxsIGNhdXNlIHRoZSBkZXZpY2UgdG8g
dmlicmF0ZSBmb3IgMjAwIG1zLCBiZSBzdGlsbCBmb3IgMTAwIG1zLCBhbmQgdGhlbiB2aWJyYXRl
IGZvciA1MDAwIG1zLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXcoKSwgIlsy
MDAsIDEwMCwgNTAwMF0iLCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5p
c2hlZCk7CiAgICAgQVNTRVJUX0VRKDIsIGRhdGEudmlicmF0ZUNhbGxlZENvdW50KTsKLSAgICBB
U1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRlKTsKKyAgICBBU1NFUlRfVFJVRShkYXRh
LmRpZFJlY2VpdmVWaWJyYXRlICYmICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOwog
CiAgICAgLy8gQ2FuY2VsIG91dHN0YW5kaW5nIHZpYnJhdGlvbiBwYXR0ZXJuLgogICAgIGxvYWRW
aWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXcoKSwgIlswXSIsICZkYXRhKTsKICAgICB3YWl0VW50
aWxUcnVlKGRhdGEudGVzdEZpbmlzaGVkKTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2Vp
dmVDYW5jZWxWaWJyYXRpb24pOworICAgIEFTU0VSVF9UUlVFKCFkYXRhLmRpZFJlY2VpdmVWaWJy
YXRlICYmIGRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CisKKyAgICAvLyBDaGVjayB0
aGF0IHZpYnJhdGlvbiB3b3JrcyBwcm9wZXJseSBieSBjb250aW51b3VzIHJlcXVlc3QuCisgICAg
ZGF0YS5leHBlY3RlZFZpYnJhdGlvblRpbWUgPSA1OworICAgIGxvYWRWaWJyYXRpb25IVE1MU3Ry
aW5nKHdlYlZpZXcoKSwgIjUiLCAmZGF0YSk7CisgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RG
aW5pc2hlZCk7CisgICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiAhZGF0
YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKworICAgIGxvYWRWaWJyYXRpb25IVE1MU3Ry
aW5nKHdlYlZpZXcoKSwgIjUiLCAmZGF0YSk7CisgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RG
aW5pc2hlZCk7CisgICAgQVNTRVJUX0VRKDEsIGRhdGEudmlicmF0ZUNhbGxlZENvdW50KTsKKyAg
ICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRlICYmICFkYXRhLmRpZFJlY2VpdmVD
YW5jZWxWaWJyYXRpb24pOwogCiAgICAgLy8gU3RvcCBsaXN0ZW5pbmcgZm9yIHZpYnJhdGlvbiBl
dmVudHMsIGJ5IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIHdpdGggbnVsbCBmb3IgdGhlIGNhbGxiYWNr
cy4KICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19kZWwod2ViVmlldygpLCAidmlicmF0
ZSIsIG9uVmlicmF0ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226397</attachid>
            <date>2014-03-11 01:49:17 -0700</date>
            <delta_ts>2014-03-11 22:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130059-20140311174920.patch</filename>
            <type>text/plain</type>
            <size>11003</size>
            <attacher name="Jinwoo Jeong">jw00.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhOWMxY2UyNzI3N2E3
NWY5MDRkN2EwOGJmNzRhYzI5ZTgwMjM2Ni4uYjM3NDZlODkwMmU3OTUyZWViYzk2ZDJiZDY4NmJl
N2QzZDU1MTEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTEwICBKaW53
b28gSmVvbmcgIDxqdzAwLmplb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFZp
YnJhdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9ubHkgb25lIHRpbWVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IFZpYnJhdGlvbiBpcyB1
c2luZyB0d28gdGltZXJzLAorICAgICAgICBvbmUgaXMgdG8gc3RhcnQgYSB2aWJyYXRpb24gYW5k
IGFub3RoZXIgaXMgdG8gY2hlY2sgdGVybWluYXRpb24gb2YgYSB2aWJyYXRpb24uCisgICAgICAg
IEJ1dCB0aGV5IGRvIG5vdCB3b3JrIGluIHNhbWUgdGltZSwgaWYgb25lIG9mIHRoZW0gaXMgZmly
ZWQsIHRoZW4gYW5vdGhvciB3aWxsIHN0YXJ0LgorICAgICAgICBUaHVzIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBvbmUgb2YgdGhlbSwgYW5kIG1hbmFnZXMgdmlicmF0aW9uIHN0YXRlcyBieSBlbnVtZXJh
dGlvbi4KKworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIGltcGxlbWVudCB0aGUgbWlzc2luZyBw
YXJ0IG9mIHRoZSBhbGdvcml0aG0sCisgICAgICAgIHdoaWNoIGNoZWNrIHRoZSBtYXhpbXVtIGxl
bmd0aCBvZiB0aGUgdmlicmF0aW9uIHBhdHRlcm4gYW5kIHRoZSBtYXhpbXVtIGR1cmF0aW9uIG9m
IHRoZSB2aWJyYXRpb24uCisKKyAgICAgICAgTGFzdGx5LCB0aGlzIHBhdGNoIHJlbW92ZXMgdW51
c2VkIG1ldGhvZHMgZnJvbSBWaWJyYXRpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlv
bi9WaWJyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjpWaWJyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjp2aWJyYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpYnJhdGlvbjo6Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgUmVtb3ZlZCBzdG9wVmli
cmF0aW9uKCkgYW5kIGl0cyBjb250ZW50cyBtb3ZlZCB0byBjYW5jZWxWaWJyYXRpb24oKS4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6dGltZXJGaXJlZCk6IENvbWJpbmVkIHRpbWVyU3Rh
cnRGaXJlZCgpIGFuZCB0aW1lclN0b3BGaXJlZCgpLgorICAgICAgICBSZW1vdmVkIHN1c3BlbmRW
aWJyYXRpb24oKSBhbmQgcmVzdW1lVmlicmF0aW9uKCksIHdoaWNoIGlzIG5ldmVyIGNhbGxlZCBz
aW5jZSByLgorICAgICAgICAqIE1vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5oOiBBZGRlZCBu
ZXcgZW51bWVydGFpb24gdG8gc3BlY2lmeSBzdGF0ZXMgb2YgVmlicmF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6VmlicmF0aW9uOjppc1ZpYnJhdGluZyk6CisKIDIwMTQtMDMtMTAgIE1hcmlvIFNh
bmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBB
ZGQgc3VwcG9ydCBmb3IgR2VvY2x1ZTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkN2U2M2JlMDQ0OGRiOGY4YTFk
NTYzMTEyOTM3MjZhZmZiNzM4NjZlLi4yNzFkMDgyM2E4NWFlMGM3N2YyOTNkM2Q0MmNiYjI1YjM4
YWE0MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDMtMTAgIEppbndvbyBK
ZW9uZyAgPGp3MDAuamVvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgVmlicmF0
aW9uIGFsZ29yaXRobSB0byB1c2Ugb25seSBvbmUgdGltZXIuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAwNTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB2aWJyYXRpb24g
dW5pdCB0ZXN0IHJlZ3Jlc3Npb24gYWZ0ZXIgcjE2MTI1Ny4KKyAgICAgICAgSXQgY29uc2lzdHMg
b2YgdHdvIHNob3J0IHRlcm0gcmVxdWVzdHMgdG8gY2hlY2sKKyAgICAgICAgdGhhdCBWaWJyYXRp
b24gY291bGQgd29yayBwcm9wZXJseSBieSBzZXF1ZW50aWFsIHJlcXVlc3RzLgorCisgICAgICAg
IEluZGVlZCB0aGlzIHBhdGNoIHRpZ2h0ZW5zIGNvbmRpdGlvbiBvZiBleGlzdGluZyB0ZXN0cy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcDoK
KyAgICAgICAgKFRFU1RfRik6CisKIDIwMTQtMDMtMTAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRocmVlIGxlYWtzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmNwcAppbmRleCBiYTQ3ZTE0NTc5YTEw
MzhjNTBlMDVhMTYyNGRlZGQ1MjQxMzdlY2Y3Li5jY2ZlMzMyNjg1ZGYyNTQ5NWM0ZWJhZDZhZTY5
NjMyMDA5ZTIyZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlv
bi9WaWJyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1Zp
YnJhdGlvbi5jcHAKQEAgLTI2LDExICsyNiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
Ky8vIE1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgaW4gYSB2aWJyYXRpb24gcGF0dGVybi4KK2Nv
bnN0IHVuc2lnbmVkIE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGggPSA5OTsKKy8vIE1heGltdW0g
ZHVyYXRpb24gb2YgYSB2aWJyYXRpb24gaW4gMTAgc2Vjb25kcy4KK2NvbnN0IHVuc2lnbmVkIE1h
eFZpYnJhdGlvbkR1cmF0aW9uID0gMTAwMDA7CisKIFZpYnJhdGlvbjo6VmlicmF0aW9uKFZpYnJh
dGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV92aWJyYXRpb25DbGllbnQoY2xpZW50KQotICAg
ICwgbV90aW1lclN0YXJ0KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RhcnRGaXJlZCkKLSAgICAs
IG1fdGltZXJTdG9wKHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RvcEZpcmVkKQotICAgICwgbV9p
c1ZpYnJhdGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlZpYnJhdGlvbjo6dGltZXJG
aXJlZCkKKyAgICAsIG1fc3RhdGUoSWRsZSkKIHsKIH0KIApAQCAtNDYsODAgKzUwLDc0IEBAIFBh
c3NPd25QdHI8VmlicmF0aW9uPiBWaWJyYXRpb246OmNyZWF0ZShWaWJyYXRpb25DbGllbnQqIGNs
aWVudCkKIAogYm9vbCBWaWJyYXRpb246OnZpYnJhdGUoY29uc3QgVmlicmF0aW9uUGF0dGVybiYg
cGF0dGVybikKIHsKLSAgICBzaXplX3QgbGVuZ3RoID0gcGF0dGVybi5zaXplKCk7CisgICAgVmli
cmF0aW9uUGF0dGVybiYgc2FuaXRpemVkID0gY29uc3RfY2FzdDxWaWJyYXRpb25QYXR0ZXJuJj4o
cGF0dGVybik7CisgICAgc2l6ZV90IGxlbmd0aCA9IHNhbml0aXplZC5zaXplKCk7CisKKyAgICAv
LyBJZiB0aGUgcGF0dGVybiBpcyB0b28gbG9uZyB0aGVuIHRydW5jYXRlIGl0LgorICAgIGlmIChs
ZW5ndGggPiBNYXhWaWJyYXRpb25QYXR0ZXJuTGVuZ3RoKSB7CisgICAgICAgIHNhbml0aXplZC5z
aHJpbmsoTWF4VmlicmF0aW9uUGF0dGVybkxlbmd0aCk7CisgICAgICAgIGxlbmd0aCA9IE1heFZp
YnJhdGlvblBhdHRlcm5MZW5ndGg7CisgICAgfQogCi0gICAgbV9wYXR0ZXJuID0gcGF0dGVybjsK
LSAgICBpZiAobGVuZ3RoICYmICEobGVuZ3RoICUgMikpCi0gICAgICAgIG1fcGF0dGVybi5yZW1v
dmVMYXN0KCk7CisgICAgLy8gSWYgdGhlIGxlbmd0aCBvZiBwYXR0ZXJuIGlzIGV2ZW4gYW5kIGlz
IG5vdCB6ZXJvLCB0aGVuIHJlbW92ZSB0aGUgbGFzdCBlbnRyeSBpbiBwYXR0ZXJuLgorICAgIGlm
IChsZW5ndGggJiYgIShsZW5ndGggJSAyKSkgeworICAgICAgICBzYW5pdGl6ZWQucmVtb3ZlTGFz
dCgpOworICAgICAgICBsZW5ndGgtLTsKKyAgICB9CiAKLSAgICAvLyBQcmUtZXhzaXRpbmcgaW5z
dGFuY2UgbmVlZCB0byBiZSBjYW5jZWxlZCB3aGVuIHZpYnJhdGlvbiBpcyBjYWxsZWQuCi0gICAg
Ly8gQW5kIGlmIHRpbWUgaXMgMCwgdmlicmF0aW9uIGhhdmUgdG8gYmUgY2FuY2VsZWQgYWxzby4K
LSAgICBpZiAobV9pc1ZpYnJhdGluZyB8fCAobV9wYXR0ZXJuLnNpemUoKSA9PSAxICYmICFtX3Bh
dHRlcm5bMF0pKQorICAgIC8vIElmIGFueSBwYXR0ZXJuIGVudHJ5IGlzIHRvbyBsb25nIHRoZW4g
dHJ1bmNhdGUgaXQuCisgICAgZm9yIChhdXRvJiBkdXJhdGlvbiA6IHNhbml0aXplZCkKKyAgICAg
ICAgZHVyYXRpb24gPSBzdGQ6Om1pbihkdXJhdGlvbiwgTWF4VmlicmF0aW9uRHVyYXRpb24pOwor
CisgICAgLy8gUHJlLWV4c2l0aW5nIGluc3RhbmNlIG5lZWQgdG8gYmUgY2FuY2VsZWQgd2hlbiB2
aWJyYXRlKCkgaXMgY2FsbGVkLgorICAgIGlmIChpc1ZpYnJhdGluZygpKQogICAgICAgICBjYW5j
ZWxWaWJyYXRpb24oKTsKIAotICAgIGlmICghbV9wYXR0ZXJuLnNpemUoKSkKKyAgICAvLyBJZiBw
YXR0ZXJuIGlzIGFuIGVtcHR5IGxpc3QsIHRoZW4gcmV0dXJuIHRydWUgYW5kIHRlcm1pbmF0ZSB0
aGVzZSBzdGVwcy4KKyAgICBpZiAoIWxlbmd0aCB8fCAobGVuZ3RoID09IDEgJiYgIXNhbml0aXpl
ZFswXSkpIHsKKyAgICAgICAgY2FuY2VsVmlicmF0aW9uKCk7CiAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KIAotICAgIG1fdGltZXJTdGFydC5zdGFydE9uZVNob3QoMCk7Ci0gICAgbV9pc1Zp
YnJhdGluZyA9IHRydWU7CisgICAgbV9wYXR0ZXJuID0gc2FuaXRpemVkOworCisgICAgbV90aW1l
ci5zdGFydE9uZVNob3QoMCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgVmlicmF0aW9u
OjpjYW5jZWxWaWJyYXRpb24oKQogewogICAgIG1fcGF0dGVybi5jbGVhcigpOwotICAgIGlmICht
X2lzVmlicmF0aW5nKQotICAgICAgICBzdG9wVmlicmF0aW9uKCk7Ci19Ci0KLXZvaWQgVmlicmF0
aW9uOjpzdXNwZW5kVmlicmF0aW9uKCkKLXsKLSAgICBpZiAoIW1faXNWaWJyYXRpbmcpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fcGF0dGVybi5pbnNlcnQoMCwgbV90aW1lclN0b3AubmV4dEZp
cmVJbnRlcnZhbCgpKTsKLSAgICBzdG9wVmlicmF0aW9uKCk7Ci19Ci0KLXZvaWQgVmlicmF0aW9u
OjpyZXN1bWVWaWJyYXRpb24oKQotewotICAgIG1fdGltZXJTdGFydC5zdGFydE9uZVNob3QoMCk7
Ci0gICAgbV9pc1ZpYnJhdGluZyA9IHRydWU7Ci19Ci0KLXZvaWQgVmlicmF0aW9uOjpzdG9wVmli
cmF0aW9uKCkKLXsKLSAgICBtX3RpbWVyU3RhcnQuc3RvcCgpOwotICAgIG1fdGltZXJTdG9wLnN0
b3AoKTsKLSAgICBtX3ZpYnJhdGlvbkNsaWVudC0+Y2FuY2VsVmlicmF0aW9uKCk7Ci0gICAgbV9p
c1ZpYnJhdGluZyA9IGZhbHNlOworICAgIGlmIChpc1ZpYnJhdGluZygpKSB7CisgICAgICAgIG1f
dGltZXIuc3RvcCgpOworICAgICAgICBtX3N0YXRlID0gSWRsZTsKKyAgICAgICAgbV92aWJyYXRp
b25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbigpOworICAgIH0KIH0KIAotdm9pZCBWaWJyYXRpb246
OnRpbWVyU3RhcnRGaXJlZChUaW1lcjxWaWJyYXRpb24+KiB0aW1lcikKK3ZvaWQgVmlicmF0aW9u
Ojp0aW1lckZpcmVkKFRpbWVyPFZpYnJhdGlvbj4qIHRpbWVyKQogewotICAgIEFTU0VSVF9VTlVT
RUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyU3RhcnQpOworICAgIEFTU0VSVF9VTlVTRUQodGlt
ZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKIAotICAgIG1fdGltZXJTdGFydC5zdG9wKCk7CisgICAg
bV90aW1lci5zdG9wKCk7CiAKLSAgICBpZiAoIW1fcGF0dGVybi5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgbV92aWJyYXRpb25DbGllbnQtPnZpYnJhdGUobV9wYXR0ZXJuWzBdKTsKLSAgICAgICAgbV90
aW1lclN0b3Auc3RhcnRPbmVTaG90KG1fcGF0dGVyblswXSAvIDEwMDAuMCk7Ci0gICAgICAgIG1f
cGF0dGVybi5yZW1vdmUoMCk7CisgICAgaWYgKG1fcGF0dGVybi5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgbV9zdGF0ZSA9IElkbGU7CisgICAgICAgIHJldHVybjsKICAgICB9Ci19Ci0KLXZvaWQgVmli
cmF0aW9uOjp0aW1lclN0b3BGaXJlZChUaW1lcjxWaWJyYXRpb24+KiB0aW1lcikKLXsKLSAgICBB
U1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lclN0b3ApOwotCi0gICAgbV90aW1l
clN0b3Auc3RvcCgpOwogCi0gICAgaWYgKCFtX3BhdHRlcm4uaXNFbXB0eSgpKSB7Ci0gICAgICAg
IG1fdGltZXJTdGFydC5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4wKTsKLSAgICAg
ICAgbV9wYXR0ZXJuLnJlbW92ZSgwKTsKLSAgICAgICAgaWYgKG1fcGF0dGVybi5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICBtX2lzVmlicmF0aW5nID0gZmFsc2U7CisgICAgc3dpdGNoIChtX3N0YXRl
KSB7CisgICAgY2FzZSBWaWJyYXRpbmc6CisgICAgICAgIG1fc3RhdGUgPSBXYWl0aW5nOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdhaXRpbmc6CisgICAgY2FzZSBJZGxlOgorICAgICAgICBt
X3N0YXRlID0gVmlicmF0aW5nOworICAgICAgICBtX3ZpYnJhdGlvbkNsaWVudC0+dmlicmF0ZSht
X3BhdHRlcm5bMF0pOworICAgICAgICBicmVhazsKICAgICB9CisgICAgbV90aW1lci5zdGFydE9u
ZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4wKTsKKyAgICBtX3BhdHRlcm4ucmVtb3ZlKDApOwog
fQogCiBjb25zdCBjaGFyKiBWaWJyYXRpb246OnN1cHBsZW1lbnROYW1lKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmgKaW5kZXggZTU0MDgzYTc5YjcyNGI5
ZGY2MDI1Yjg3ODJkMDgzNTVjZmEwNTc2YS4uOWJiZWNiNDg3NGEyNzJiYmIwYzU1OGE1ZWVmZGI5
NzY0OTJlZGM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24v
VmlicmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0
aW9uLmgKQEAgLTMyLDYgKzMyLDExIEBAIGNsYXNzIFZpYnJhdGlvbkNsaWVudDsKIAogY2xhc3Mg
VmlicmF0aW9uIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4gewogcHVibGljOgorICAgIGVudW0g
U3RhdGUgeworICAgICAgICBJZGxlID0gMCwKKyAgICAgICAgVmlicmF0aW5nID0gMSwKKyAgICAg
ICAgV2FpdGluZyA9IDIKKyAgICB9OwogICAgIHR5cGVkZWYgVmVjdG9yPHVuc2lnbmVkPiBWaWJy
YXRpb25QYXR0ZXJuOwogCiAgICAgZXhwbGljaXQgVmlicmF0aW9uKFZpYnJhdGlvbkNsaWVudCop
OwpAQCAtNDAsMjYgKzQ1LDIwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxWaWJy
YXRpb24+IGNyZWF0ZShWaWJyYXRpb25DbGllbnQqKTsKIAogICAgIGJvb2wgdmlicmF0ZShjb25z
dCBWaWJyYXRpb25QYXR0ZXJuJik7CisgICAgLy8gRklYTUUgOiBXaGVuIHZpc2liaWxpdHljaGFu
Z2UgZXZlbnQgaXMgZGlzcGF0Y2hlZCwgaWYgYSB2aWJyYXRpb24gaXMgd29ya2luZywgaXQgc2hv
dWxkIGJlIGNhbmNlbGVkLgogICAgIHZvaWQgY2FuY2VsVmlicmF0aW9uKCk7CiAKLSAgICAvLyBG
SVhNRSA6IEFkZCBzdXNwZW5kVmlicmF0aW9uKCkgYW5kIHJlc3VtZVZpYnJhdGlvbigpIHRvIHRo
ZSBwYWdlIHZpc2liaWxpdHkgZmVhdHVyZSwgd2hlbiB0aGUgZG9jdW1lbnQuaGlkZGVuIGF0dHJp
YnV0ZSBpcyBjaGFuZ2VkLgotICAgIHZvaWQgc3VzcGVuZFZpYnJhdGlvbigpOwotICAgIHZvaWQg
cmVzdW1lVmlicmF0aW9uKCk7Ci0gICAgdm9pZCB0aW1lclN0YXJ0RmlyZWQoVGltZXI8VmlicmF0
aW9uPiopOwotICAgIHZvaWQgdGltZXJTdG9wRmlyZWQoVGltZXI8VmlicmF0aW9uPiopOworICAg
IHZvaWQgdGltZXJGaXJlZChUaW1lcjxWaWJyYXRpb24+Kik7CiAKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogc3VwcGxlbWVudE5hbWUoKTsKICAgICBzdGF0aWMgVmlicmF0aW9uKiBmcm9tKFBhZ2Uq
IHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFZpYnJhdGlvbio+KFN1cHBsZW1lbnQ8UGFnZT46
OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CiAKLSAgICBib29sIGlzVmlicmF0aW5n
KCkgeyByZXR1cm4gbV9pc1ZpYnJhdGluZzsgfQorICAgIGJvb2wgaXNWaWJyYXRpbmcoKSB7IHJl
dHVybiBtX3N0YXRlICE9IElkbGU7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHN0b3BWaWJyYXRp
b24oKTsKLQogICAgIFZpYnJhdGlvbkNsaWVudCogbV92aWJyYXRpb25DbGllbnQ7Ci0gICAgVGlt
ZXI8VmlicmF0aW9uPiBtX3RpbWVyU3RhcnQ7Ci0gICAgVGltZXI8VmlicmF0aW9uPiBtX3RpbWVy
U3RvcDsKLSAgICBib29sIG1faXNWaWJyYXRpbmc7CisgICAgVGltZXI8VmlicmF0aW9uPiBtX3Rp
bWVyOworICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgVmlicmF0aW9uUGF0dGVybiBtX3BhdHRlcm47
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0
cy90ZXN0X2V3azJfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90
ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKaW5kZXggYmRmZDc4MTk5NTQxM2FhODY5ZDM1Yzg1YzM0
ODU0NzE1ZDMxNmY5NC4uMmRjNTY1YmVjODBmMmY3NDI2N2JmZThlNTM3NGMzMDUxNTZlNTFlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl92aWV3LmNwcApAQCAtOTI4LDIzICs5MjgsMzQgQEAgVEVTVF9GKEVXSzJWaWV3
VGVzdCwgZXdrX2NvbnRleHRfdmlicmF0aW9uX2NsaWVudF9jYWxsYmFja3Nfc2V0KQogICAgIC8v
IFZpYnJhdGUgZm9yIDUgc2Vjb25kcy4KICAgICBsb2FkVmlicmF0aW9uSFRNTFN0cmluZyh3ZWJW
aWV3KCksICI1MDAwIiwgJmRhdGEpOwogICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNo
ZWQpOwotICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUpOworICAgIEFTU0VS
VF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZp
YnJhdGlvbik7CiAKICAgICAvLyBDYW5jZWwgYW55IGV4aXN0aW5nIHZpYnJhdGlvbnMuCiAgICAg
bG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiMCIsICZkYXRhKTsKICAgICB3YWl0
VW50aWxUcnVlKGRhdGEudGVzdEZpbmlzaGVkKTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJl
Y2VpdmVDYW5jZWxWaWJyYXRpb24pOworICAgIEFTU0VSVF9UUlVFKCFkYXRhLmRpZFJlY2VpdmVW
aWJyYXRlICYmIGRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CiAKICAgICAvLyBUaGlz
IGNhc2UgdGhlIHBhdHRlcm4gd2lsbCBjYXVzZSB0aGUgZGV2aWNlIHRvIHZpYnJhdGUgZm9yIDIw
MCBtcywgYmUgc3RpbGwgZm9yIDEwMCBtcywgYW5kIHRoZW4gdmlicmF0ZSBmb3IgNTAwMCBtcy4K
ICAgICBsb2FkVmlicmF0aW9uSFRNTFN0cmluZyh3ZWJWaWV3KCksICJbMjAwLCAxMDAsIDUwMDBd
IiwgJmRhdGEpOwogICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOwogICAgIEFT
U0VSVF9FUSgyLCBkYXRhLnZpYnJhdGVDYWxsZWRDb3VudCk7Ci0gICAgQVNTRVJUX1RSVUUoZGF0
YS5kaWRSZWNlaXZlVmlicmF0ZSk7CisgICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlVmli
cmF0ZSAmJiAhZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKIAogICAgIC8vIENhbmNl
bCBvdXRzdGFuZGluZyB2aWJyYXRpb24gcGF0dGVybi4KICAgICBsb2FkVmlicmF0aW9uSFRNTFN0
cmluZyh3ZWJWaWV3KCksICJbMF0iLCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRl
c3RGaW5pc2hlZCk7Ci0gICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0
aW9uKTsKKyAgICBBU1NFUlRfVFJVRSghZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiBkYXRhLmRp
ZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOworCisgICAgLy8gQ2hlY2sgdGhhdCB2aWJyYXRpb24g
d29ya3MgcHJvcGVybHkgYnkgY29udGludW91cyByZXF1ZXN0LgorICAgIGRhdGEuZXhwZWN0ZWRW
aWJyYXRpb25UaW1lID0gNTsKKyAgICBsb2FkVmlicmF0aW9uSFRNTFN0cmluZyh3ZWJWaWV3KCks
ICI1IiwgJmRhdGEpOworICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOworICAg
IEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEuZGlkUmVjZWl2ZUNh
bmNlbFZpYnJhdGlvbik7CisKKyAgICBsb2FkVmlicmF0aW9uSFRNTFN0cmluZyh3ZWJWaWV3KCks
ICI1IiwgJmRhdGEpOworICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOworICAg
IEFTU0VSVF9FUSgxLCBkYXRhLnZpYnJhdGVDYWxsZWRDb3VudCk7CisgICAgQVNTRVJUX1RSVUUo
ZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiAhZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9u
KTsKIAogICAgIC8vIFN0b3AgbGlzdGVuaW5nIGZvciB2aWJyYXRpb24gZXZlbnRzLCBieSBjYWxs
aW5nIHRoZSBmdW5jdGlvbiB3aXRoIG51bGwgZm9yIHRoZSBjYWxsYmFja3MuCiAgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKHdlYlZpZXcoKSwgInZpYnJhdGUiLCBvblZpYnJhdGUp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226476</attachid>
            <date>2014-03-11 22:54:52 -0700</date>
            <delta_ts>2014-03-11 23:02:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130059-20140312145428.patch</filename>
            <type>text/plain</type>
            <size>10942</size>
            <attacher name="Jinwoo Jeong">jw00.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThjMmZlZmExNmM1YzJi
YjhlOGFmMTEzZTc5OTM5OTJkMDc5N2M1OS4uYTY5YTZhYzAxNTdjZmE2MzNiYzBjY2JjYTRmNjEz
NDMzZjRjM2RiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTEwICBKaW53
b28gSmVvbmcgIDxqdzAwLmplb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFZp
YnJhdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9ubHkgb25lIHRpbWVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IFZpYnJhdGlvbiBpcyB1
c2luZyB0d28gdGltZXJzLAorICAgICAgICBvbmUgaXMgdG8gc3RhcnQgYSB2aWJyYXRpb24gYW5k
IGFub3RoZXIgaXMgdG8gY2hlY2sgdGVybWluYXRpb24gb2YgYSB2aWJyYXRpb24uCisgICAgICAg
IEJ1dCB0aGV5IGRvIG5vdCB3b3JrIGluIHNhbWUgdGltZSwgaWYgb25lIG9mIHRoZW0gaXMgZmly
ZWQsIHRoZW4gYW5vdGhvciB3aWxsIHN0YXJ0LgorICAgICAgICBUaHVzIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBvbmUgb2YgdGhlbSwgYW5kIG1hbmFnZXMgdmlicmF0aW9uIHN0YXRlcyBieSBlbnVtZXJh
dGlvbi4KKworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIGltcGxlbWVudCB0aGUgbWlzc2luZyBw
YXJ0IG9mIHRoZSBhbGdvcml0aG0sCisgICAgICAgIHdoaWNoIGNoZWNrIHRoZSBtYXhpbXVtIGxl
bmd0aCBvZiB0aGUgdmlicmF0aW9uIHBhdHRlcm4gYW5kIHRoZSBtYXhpbXVtIGR1cmF0aW9uIG9m
IHRoZSB2aWJyYXRpb24uCisKKyAgICAgICAgTGFzdGx5LCB0aGlzIHBhdGNoIHJlbW92ZXMgdW51
c2VkIG1ldGhvZHMgZnJvbSBWaWJyYXRpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlv
bi9WaWJyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjpWaWJyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjp2aWJyYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpYnJhdGlvbjo6Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgUmVtb3ZlZCBzdG9wVmli
cmF0aW9uKCkgYW5kIGl0cyBjb250ZW50cyBtb3ZlZCB0byBjYW5jZWxWaWJyYXRpb24oKS4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6dGltZXJGaXJlZCk6IENvbWJpbmVkIHRpbWVyU3Rh
cnRGaXJlZCgpIGFuZCB0aW1lclN0b3BGaXJlZCgpLgorICAgICAgICBSZW1vdmVkIHN1c3BlbmRW
aWJyYXRpb24oKSBhbmQgcmVzdW1lVmlicmF0aW9uKCksIHdoaWNoIGlzIG5ldmVyIGNhbGxlZCBz
aW5jZSByLgorICAgICAgICAqIE1vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5oOiBBZGRlZCBu
ZXcgZW51bWVydGFpb24gdG8gc3BlY2lmeSBzdGF0ZXMgb2YgVmlicmF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6VmlicmF0aW9uOjppc1ZpYnJhdGluZyk6CisKIDIwMTQtMDMtMTEgIFJ5dWFuIENo
b2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGZyb20gQmF0dGVyeUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMmVjYjNiODNlZjQ4NDg0
N2VlZTZjYWVkMDQ3MGQ4MDk1YjI0YWFiLi44ZjFkNzgyZjhlYjBhYjk3ZmY3OTBiMjIyMGJjMjJh
Zjk4YzRhYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDMtMTAgIEppbndv
byBKZW9uZyAgPGp3MDAuamVvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgVmli
cmF0aW9uIGFsZ29yaXRobSB0byB1c2Ugb25seSBvbmUgdGltZXIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAwNTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB2aWJyYXRp
b24gdW5pdCB0ZXN0IHJlZ3Jlc3Npb24gYWZ0ZXIgcjE2MTI1Ny4KKyAgICAgICAgSXQgY29uc2lz
dHMgb2YgdHdvIHNob3J0IHRlcm0gcmVxdWVzdHMgdG8gY2hlY2sKKyAgICAgICAgdGhhdCBWaWJy
YXRpb24gY291bGQgd29yayBwcm9wZXJseSBieSBzZXF1ZW50aWFsIHJlcXVlc3RzLgorCisgICAg
ICAgIEluZGVlZCB0aGlzIHBhdGNoIHRpZ2h0ZW5zIGNvbmRpdGlvbiBvZiBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNw
cDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTQtMDMtMTEgIEphZSBIeXVuIFBhcmsgIDxqYWVw
YXJrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dUS11bQ01ha2VdIEFkZCBIQVJGQlVaWl9JTkNM
VURFX0RJUlMgdG8gV2ViS2l0IGFuZCBXZWJLaXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy92aWJyYXRpb24vVmlicmF0aW9uLmNwcAppbmRleCBiYTQ3ZTE0NTc5YTEwMzhjNTBlMDVhMTYy
NGRlZGQ1MjQxMzdlY2Y3Li4wNmM1N2YyM2I3ZjdiN2E1NzhiMjNiNzYzMDg0ZmY4N2I2MTdhMDRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5jcHAK
QEAgLTI2LDExICsyNiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIE1heGltdW0g
bnVtYmVyIG9mIGVudHJpZXMgaW4gYSB2aWJyYXRpb24gcGF0dGVybi4KK2NvbnN0IHVuc2lnbmVk
IE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGggPSA5OTsKKy8vIE1heGltdW0gZHVyYXRpb24gb2Yg
YSB2aWJyYXRpb24gaW4gMTAgc2Vjb25kcy4KK2NvbnN0IHVuc2lnbmVkIE1heFZpYnJhdGlvbkR1
cmF0aW9uID0gMTAwMDA7CisKIFZpYnJhdGlvbjo6VmlicmF0aW9uKFZpYnJhdGlvbkNsaWVudCog
Y2xpZW50KQogICAgIDogbV92aWJyYXRpb25DbGllbnQoY2xpZW50KQotICAgICwgbV90aW1lclN0
YXJ0KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RhcnRGaXJlZCkKLSAgICAsIG1fdGltZXJTdG9w
KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RvcEZpcmVkKQotICAgICwgbV9pc1ZpYnJhdGluZyhm
YWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlZpYnJhdGlvbjo6dGltZXJGaXJlZCkKKyAgICAs
IG1fc3RhdGUoU3RhdGU6OklkbGUpCiB7CiB9CiAKQEAgLTQ2LDgwICs1MCw3NCBAQCBQYXNzT3du
UHRyPFZpYnJhdGlvbj4gVmlicmF0aW9uOjpjcmVhdGUoVmlicmF0aW9uQ2xpZW50KiBjbGllbnQp
CiAKIGJvb2wgVmlicmF0aW9uOjp2aWJyYXRlKGNvbnN0IFZpYnJhdGlvblBhdHRlcm4mIHBhdHRl
cm4pCiB7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHBhdHRlcm4uc2l6ZSgpOworICAgIFZpYnJhdGlv
blBhdHRlcm4mIHNhbml0aXplZCA9IGNvbnN0X2Nhc3Q8VmlicmF0aW9uUGF0dGVybiY+KHBhdHRl
cm4pOworICAgIHNpemVfdCBsZW5ndGggPSBzYW5pdGl6ZWQuc2l6ZSgpOworCisgICAgLy8gSWYg
dGhlIHBhdHRlcm4gaXMgdG9vIGxvbmcgdGhlbiB0cnVuY2F0ZSBpdC4KKyAgICBpZiAobGVuZ3Ro
ID4gTWF4VmlicmF0aW9uUGF0dGVybkxlbmd0aCkgeworICAgICAgICBzYW5pdGl6ZWQuc2hyaW5r
KE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGgpOworICAgICAgICBsZW5ndGggPSBNYXhWaWJyYXRp
b25QYXR0ZXJuTGVuZ3RoOworICAgIH0KIAotICAgIG1fcGF0dGVybiA9IHBhdHRlcm47Ci0gICAg
aWYgKGxlbmd0aCAmJiAhKGxlbmd0aCAlIDIpKQotICAgICAgICBtX3BhdHRlcm4ucmVtb3ZlTGFz
dCgpOworICAgIC8vIElmIHRoZSBsZW5ndGggb2YgcGF0dGVybiBpcyBldmVuIGFuZCBpcyBub3Qg
emVybywgdGhlbiByZW1vdmUgdGhlIGxhc3QgZW50cnkgaW4gcGF0dGVybi4KKyAgICBpZiAobGVu
Z3RoICYmICEobGVuZ3RoICUgMikpIHsKKyAgICAgICAgc2FuaXRpemVkLnJlbW92ZUxhc3QoKTsK
KyAgICAgICAgbGVuZ3RoLS07CisgICAgfQogCi0gICAgLy8gUHJlLWV4c2l0aW5nIGluc3RhbmNl
IG5lZWQgdG8gYmUgY2FuY2VsZWQgd2hlbiB2aWJyYXRpb24gaXMgY2FsbGVkLgotICAgIC8vIEFu
ZCBpZiB0aW1lIGlzIDAsIHZpYnJhdGlvbiBoYXZlIHRvIGJlIGNhbmNlbGVkIGFsc28uCi0gICAg
aWYgKG1faXNWaWJyYXRpbmcgfHwgKG1fcGF0dGVybi5zaXplKCkgPT0gMSAmJiAhbV9wYXR0ZXJu
WzBdKSkKKyAgICAvLyBJZiBhbnkgcGF0dGVybiBlbnRyeSBpcyB0b28gbG9uZyB0aGVuIHRydW5j
YXRlIGl0LgorICAgIGZvciAoYXV0byYgZHVyYXRpb24gOiBzYW5pdGl6ZWQpCisgICAgICAgIGR1
cmF0aW9uID0gc3RkOjptaW4oZHVyYXRpb24sIE1heFZpYnJhdGlvbkR1cmF0aW9uKTsKKworICAg
IC8vIFByZS1leHNpdGluZyBpbnN0YW5jZSBuZWVkIHRvIGJlIGNhbmNlbGVkIHdoZW4gdmlicmF0
ZSgpIGlzIGNhbGxlZC4KKyAgICBpZiAoaXNWaWJyYXRpbmcoKSkKICAgICAgICAgY2FuY2VsVmli
cmF0aW9uKCk7CiAKLSAgICBpZiAoIW1fcGF0dGVybi5zaXplKCkpCisgICAgLy8gSWYgcGF0dGVy
biBpcyBhbiBlbXB0eSBsaXN0LCB0aGVuIHJldHVybiB0cnVlIGFuZCB0ZXJtaW5hdGUgdGhlc2Ug
c3RlcHMuCisgICAgaWYgKCFsZW5ndGggfHwgKGxlbmd0aCA9PSAxICYmICFzYW5pdGl6ZWRbMF0p
KSB7CisgICAgICAgIGNhbmNlbFZpYnJhdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CiAKLSAgICBtX3RpbWVyU3RhcnQuc3RhcnRPbmVTaG90KDApOwotICAgIG1faXNWaWJyYXRp
bmcgPSB0cnVlOworICAgIG1fcGF0dGVybiA9IHNhbml0aXplZDsKKworICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KDApOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFZpYnJhdGlvbjo6Y2Fu
Y2VsVmlicmF0aW9uKCkKIHsKICAgICBtX3BhdHRlcm4uY2xlYXIoKTsKLSAgICBpZiAobV9pc1Zp
YnJhdGluZykKLSAgICAgICAgc3RvcFZpYnJhdGlvbigpOwotfQotCi12b2lkIFZpYnJhdGlvbjo6
c3VzcGVuZFZpYnJhdGlvbigpCi17Ci0gICAgaWYgKCFtX2lzVmlicmF0aW5nKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3BhdHRlcm4uaW5zZXJ0KDAsIG1fdGltZXJTdG9wLm5leHRGaXJlSW50
ZXJ2YWwoKSk7Ci0gICAgc3RvcFZpYnJhdGlvbigpOwotfQotCi12b2lkIFZpYnJhdGlvbjo6cmVz
dW1lVmlicmF0aW9uKCkKLXsKLSAgICBtX3RpbWVyU3RhcnQuc3RhcnRPbmVTaG90KDApOwotICAg
IG1faXNWaWJyYXRpbmcgPSB0cnVlOwotfQotCi12b2lkIFZpYnJhdGlvbjo6c3RvcFZpYnJhdGlv
bigpCi17Ci0gICAgbV90aW1lclN0YXJ0LnN0b3AoKTsKLSAgICBtX3RpbWVyU3RvcC5zdG9wKCk7
Ci0gICAgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbigpOwotICAgIG1faXNWaWJy
YXRpbmcgPSBmYWxzZTsKKyAgICBpZiAoaXNWaWJyYXRpbmcoKSkgeworICAgICAgICBtX3RpbWVy
LnN0b3AoKTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpJZGxlOworICAgICAgICBtX3ZpYnJh
dGlvbkNsaWVudC0+Y2FuY2VsVmlicmF0aW9uKCk7CisgICAgfQogfQogCi12b2lkIFZpYnJhdGlv
bjo6dGltZXJTdGFydEZpcmVkKFRpbWVyPFZpYnJhdGlvbj4qIHRpbWVyKQordm9pZCBWaWJyYXRp
b246OnRpbWVyRmlyZWQoVGltZXI8VmlicmF0aW9uPiogdGltZXIpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXJTdGFydCk7CisgICAgQVNTRVJUX1VOVVNFRCh0
aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwogCi0gICAgbV90aW1lclN0YXJ0LnN0b3AoKTsKKyAg
ICBtX3RpbWVyLnN0b3AoKTsKIAotICAgIGlmICghbV9wYXR0ZXJuLmlzRW1wdHkoKSkgewotICAg
ICAgICBtX3ZpYnJhdGlvbkNsaWVudC0+dmlicmF0ZShtX3BhdHRlcm5bMF0pOwotICAgICAgICBt
X3RpbWVyU3RvcC5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4wKTsKLSAgICAgICAg
bV9wYXR0ZXJuLnJlbW92ZSgwKTsKKyAgICBpZiAobV9wYXR0ZXJuLmlzRW1wdHkoKSkgeworICAg
ICAgICBtX3N0YXRlID0gU3RhdGU6OklkbGU7CisgICAgICAgIHJldHVybjsKICAgICB9Ci19Ci0K
LXZvaWQgVmlicmF0aW9uOjp0aW1lclN0b3BGaXJlZChUaW1lcjxWaWJyYXRpb24+KiB0aW1lcikK
LXsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lclN0b3ApOwotCi0g
ICAgbV90aW1lclN0b3Auc3RvcCgpOwogCi0gICAgaWYgKCFtX3BhdHRlcm4uaXNFbXB0eSgpKSB7
Ci0gICAgICAgIG1fdGltZXJTdGFydC5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4w
KTsKLSAgICAgICAgbV9wYXR0ZXJuLnJlbW92ZSgwKTsKLSAgICAgICAgaWYgKG1fcGF0dGVybi5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBtX2lzVmlicmF0aW5nID0gZmFsc2U7CisgICAgc3dpdGNo
IChtX3N0YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6VmlicmF0aW5nOgorICAgICAgICBtX3N0YXRl
ID0gU3RhdGU6OldhaXRpbmc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RhdGU6OldhaXRp
bmc6CisgICAgY2FzZSBTdGF0ZTo6SWRsZToKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpWaWJy
YXRpbmc7CisgICAgICAgIG1fdmlicmF0aW9uQ2xpZW50LT52aWJyYXRlKG1fcGF0dGVyblswXSk7
CisgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChtX3BhdHRl
cm5bMF0gLyAxMDAwLjApOworICAgIG1fcGF0dGVybi5yZW1vdmUoMCk7CiB9CiAKIGNvbnN0IGNo
YXIqIFZpYnJhdGlvbjo6c3VwcGxlbWVudE5hbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3ZpYnJhdGlvbi9WaWJyYXRpb24uaAppbmRleCBlNTQwODNhNzliNzI0YjlkZjYwMjViODc4MmQw
ODM1NWNmYTA1NzZhLi5mZDE3M2QzODkzMzE1Y2I2MTJiZTRkYzEwMmI2MDI3ZTBjNTBjNjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uaApAQCAtNDAs
MjYgKzQwLDI2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxWaWJyYXRpb24+IGNy
ZWF0ZShWaWJyYXRpb25DbGllbnQqKTsKIAogICAgIGJvb2wgdmlicmF0ZShjb25zdCBWaWJyYXRp
b25QYXR0ZXJuJik7CisgICAgLy8gRklYTUUgOiBXaGVuIHZpc2liaWxpdHljaGFuZ2UgZXZlbnQg
aXMgZGlzcGF0Y2hlZCwgaWYgYSB2aWJyYXRpb24gaXMgd29ya2luZywgaXQgc2hvdWxkIGJlIGNh
bmNlbGVkLgogICAgIHZvaWQgY2FuY2VsVmlicmF0aW9uKCk7CiAKLSAgICAvLyBGSVhNRSA6IEFk
ZCBzdXNwZW5kVmlicmF0aW9uKCkgYW5kIHJlc3VtZVZpYnJhdGlvbigpIHRvIHRoZSBwYWdlIHZp
c2liaWxpdHkgZmVhdHVyZSwgd2hlbiB0aGUgZG9jdW1lbnQuaGlkZGVuIGF0dHJpYnV0ZSBpcyBj
aGFuZ2VkLgotICAgIHZvaWQgc3VzcGVuZFZpYnJhdGlvbigpOwotICAgIHZvaWQgcmVzdW1lVmli
cmF0aW9uKCk7Ci0gICAgdm9pZCB0aW1lclN0YXJ0RmlyZWQoVGltZXI8VmlicmF0aW9uPiopOwot
ICAgIHZvaWQgdGltZXJTdG9wRmlyZWQoVGltZXI8VmlicmF0aW9uPiopOworICAgIHZvaWQgdGlt
ZXJGaXJlZChUaW1lcjxWaWJyYXRpb24+Kik7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3Vw
cGxlbWVudE5hbWUoKTsKICAgICBzdGF0aWMgVmlicmF0aW9uKiBmcm9tKFBhZ2UqIHBhZ2UpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFZpYnJhdGlvbio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFn
ZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CiAKLSAgICBib29sIGlzVmlicmF0aW5nKCkgeyByZXR1
cm4gbV9pc1ZpYnJhdGluZzsgfQorICAgIGJvb2wgaXNWaWJyYXRpbmcoKSB7IHJldHVybiBtX3N0
YXRlICE9IFN0YXRlOjpJZGxlOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBzdG9wVmlicmF0aW9u
KCk7CisgICAgZW51bSBjbGFzcyBTdGF0ZSA6IHVuc2lnbmVkIGNoYXIgeworICAgICAgICBJZGxl
ID0gMCwKKyAgICAgICAgVmlicmF0aW5nID0gMSwKKyAgICAgICAgV2FpdGluZyA9IDIKKyAgICB9
OwogCiAgICAgVmlicmF0aW9uQ2xpZW50KiBtX3ZpYnJhdGlvbkNsaWVudDsKLSAgICBUaW1lcjxW
aWJyYXRpb24+IG1fdGltZXJTdGFydDsKLSAgICBUaW1lcjxWaWJyYXRpb24+IG1fdGltZXJTdG9w
OwotICAgIGJvb2wgbV9pc1ZpYnJhdGluZzsKKyAgICBUaW1lcjxWaWJyYXRpb24+IG1fdGltZXI7
CisgICAgU3RhdGUgbV9zdGF0ZTsKICAgICBWaWJyYXRpb25QYXR0ZXJuIG1fcGF0dGVybjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rl
c3RfZXdrMl92aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl92aWV3LmNwcAppbmRleCBiZGZkNzgxOTk1NDEzYWE4NjlkMzVjODVjMzQ4NTQ3
MTVkMzE2Zjk0Li4yZGM1NjViZWM4MGYyZjc0MjY3YmZlOGU1Mzc0YzMwNTE1NmU1MWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJf
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVz
dF9ld2syX3ZpZXcuY3BwCkBAIC05MjgsMjMgKzkyOCwzNCBAQCBURVNUX0YoRVdLMlZpZXdUZXN0
LCBld2tfY29udGV4dF92aWJyYXRpb25fY2xpZW50X2NhbGxiYWNrc19zZXQpCiAgICAgLy8gVmli
cmF0ZSBmb3IgNSBzZWNvbmRzLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXco
KSwgIjUwMDAiLCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7
Ci0gICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSk7CisgICAgQVNTRVJUX1RS
VUUoZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiAhZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0
aW9uKTsKIAogICAgIC8vIENhbmNlbCBhbnkgZXhpc3RpbmcgdmlicmF0aW9ucy4KICAgICBsb2Fk
VmlicmF0aW9uSFRNTFN0cmluZyh3ZWJWaWV3KCksICIwIiwgJmRhdGEpOwogICAgIHdhaXRVbnRp
bFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOwotICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2
ZUNhbmNlbFZpYnJhdGlvbik7CisgICAgQVNTRVJUX1RSVUUoIWRhdGEuZGlkUmVjZWl2ZVZpYnJh
dGUgJiYgZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKIAogICAgIC8vIFRoaXMgY2Fz
ZSB0aGUgcGF0dGVybiB3aWxsIGNhdXNlIHRoZSBkZXZpY2UgdG8gdmlicmF0ZSBmb3IgMjAwIG1z
LCBiZSBzdGlsbCBmb3IgMTAwIG1zLCBhbmQgdGhlbiB2aWJyYXRlIGZvciA1MDAwIG1zLgogICAg
IGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXcoKSwgIlsyMDAsIDEwMCwgNTAwMF0iLCAm
ZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7CiAgICAgQVNTRVJU
X0VRKDIsIGRhdGEudmlicmF0ZUNhbGxlZENvdW50KTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRp
ZFJlY2VpdmVWaWJyYXRlKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRl
ICYmICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOwogCiAgICAgLy8gQ2FuY2VsIG91
dHN0YW5kaW5nIHZpYnJhdGlvbiBwYXR0ZXJuLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5n
KHdlYlZpZXcoKSwgIlswXSIsICZkYXRhKTsKICAgICB3YWl0VW50aWxUcnVlKGRhdGEudGVzdEZp
bmlzaGVkKTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24p
OworICAgIEFTU0VSVF9UUlVFKCFkYXRhLmRpZFJlY2VpdmVWaWJyYXRlICYmIGRhdGEuZGlkUmVj
ZWl2ZUNhbmNlbFZpYnJhdGlvbik7CisKKyAgICAvLyBDaGVjayB0aGF0IHZpYnJhdGlvbiB3b3Jr
cyBwcm9wZXJseSBieSBjb250aW51b3VzIHJlcXVlc3QuCisgICAgZGF0YS5leHBlY3RlZFZpYnJh
dGlvblRpbWUgPSA1OworICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXcoKSwgIjUi
LCAmZGF0YSk7CisgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7CisgICAgQVNT
RVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiAhZGF0YS5kaWRSZWNlaXZlQ2FuY2Vs
VmlicmF0aW9uKTsKKworICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXcoKSwgIjUi
LCAmZGF0YSk7CisgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7CisgICAgQVNT
RVJUX0VRKDEsIGRhdGEudmlicmF0ZUNhbGxlZENvdW50KTsKKyAgICBBU1NFUlRfVFJVRShkYXRh
LmRpZFJlY2VpdmVWaWJyYXRlICYmICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOwog
CiAgICAgLy8gU3RvcCBsaXN0ZW5pbmcgZm9yIHZpYnJhdGlvbiBldmVudHMsIGJ5IGNhbGxpbmcg
dGhlIGZ1bmN0aW9uIHdpdGggbnVsbCBmb3IgdGhlIGNhbGxiYWNrcy4KICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19kZWwod2ViVmlldygpLCAidmlicmF0ZSIsIG9uVmlicmF0ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226477</attachid>
            <date>2014-03-11 23:03:43 -0700</date>
            <delta_ts>2014-03-13 18:24:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130059-20140312150324.patch</filename>
            <type>text/plain</type>
            <size>10914</size>
            <attacher name="Jinwoo Jeong">jw00.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThjMmZlZmExNmM1YzJi
YjhlOGFmMTEzZTc5OTM5OTJkMDc5N2M1OS4uYTY5YTZhYzAxNTdjZmE2MzNiYzBjY2JjYTRmNjEz
NDMzZjRjM2RiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTEwICBKaW53
b28gSmVvbmcgIDxqdzAwLmplb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFZp
YnJhdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9ubHkgb25lIHRpbWVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IFZpYnJhdGlvbiBpcyB1
c2luZyB0d28gdGltZXJzLAorICAgICAgICBvbmUgaXMgdG8gc3RhcnQgYSB2aWJyYXRpb24gYW5k
IGFub3RoZXIgaXMgdG8gY2hlY2sgdGVybWluYXRpb24gb2YgYSB2aWJyYXRpb24uCisgICAgICAg
IEJ1dCB0aGV5IGRvIG5vdCB3b3JrIGluIHNhbWUgdGltZSwgaWYgb25lIG9mIHRoZW0gaXMgZmly
ZWQsIHRoZW4gYW5vdGhvciB3aWxsIHN0YXJ0LgorICAgICAgICBUaHVzIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBvbmUgb2YgdGhlbSwgYW5kIG1hbmFnZXMgdmlicmF0aW9uIHN0YXRlcyBieSBlbnVtZXJh
dGlvbi4KKworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIGltcGxlbWVudCB0aGUgbWlzc2luZyBw
YXJ0IG9mIHRoZSBhbGdvcml0aG0sCisgICAgICAgIHdoaWNoIGNoZWNrIHRoZSBtYXhpbXVtIGxl
bmd0aCBvZiB0aGUgdmlicmF0aW9uIHBhdHRlcm4gYW5kIHRoZSBtYXhpbXVtIGR1cmF0aW9uIG9m
IHRoZSB2aWJyYXRpb24uCisKKyAgICAgICAgTGFzdGx5LCB0aGlzIHBhdGNoIHJlbW92ZXMgdW51
c2VkIG1ldGhvZHMgZnJvbSBWaWJyYXRpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlv
bi9WaWJyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjpWaWJyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjp2aWJyYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpYnJhdGlvbjo6Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgUmVtb3ZlZCBzdG9wVmli
cmF0aW9uKCkgYW5kIGl0cyBjb250ZW50cyBtb3ZlZCB0byBjYW5jZWxWaWJyYXRpb24oKS4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6dGltZXJGaXJlZCk6IENvbWJpbmVkIHRpbWVyU3Rh
cnRGaXJlZCgpIGFuZCB0aW1lclN0b3BGaXJlZCgpLgorICAgICAgICBSZW1vdmVkIHN1c3BlbmRW
aWJyYXRpb24oKSBhbmQgcmVzdW1lVmlicmF0aW9uKCksIHdoaWNoIGlzIG5ldmVyIGNhbGxlZCBz
aW5jZSByLgorICAgICAgICAqIE1vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5oOiBBZGRlZCBu
ZXcgZW51bWVydGFpb24gdG8gc3BlY2lmeSBzdGF0ZXMgb2YgVmlicmF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6VmlicmF0aW9uOjppc1ZpYnJhdGluZyk6CisKIDIwMTQtMDMtMTEgIFJ5dWFuIENo
b2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgbWV0
aG9kIGZyb20gQmF0dGVyeUNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMmVjYjNiODNlZjQ4NDg0
N2VlZTZjYWVkMDQ3MGQ4MDk1YjI0YWFiLi44ZjFkNzgyZjhlYjBhYjk3ZmY3OTBiMjIyMGJjMjJh
Zjk4YzRhYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDMtMTAgIEppbndv
byBKZW9uZyAgPGp3MDAuamVvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgVmli
cmF0aW9uIGFsZ29yaXRobSB0byB1c2Ugb25seSBvbmUgdGltZXIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAwNTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSB2aWJyYXRp
b24gdW5pdCB0ZXN0IHJlZ3Jlc3Npb24gYWZ0ZXIgcjE2MTI1Ny4KKyAgICAgICAgSXQgY29uc2lz
dHMgb2YgdHdvIHNob3J0IHRlcm0gcmVxdWVzdHMgdG8gY2hlY2sKKyAgICAgICAgdGhhdCBWaWJy
YXRpb24gY291bGQgd29yayBwcm9wZXJseSBieSBzZXF1ZW50aWFsIHJlcXVlc3RzLgorCisgICAg
ICAgIEluZGVlZCB0aGlzIHBhdGNoIHRpZ2h0ZW5zIGNvbmRpdGlvbiBvZiBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNw
cDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTQtMDMtMTEgIEphZSBIeXVuIFBhcmsgIDxqYWVw
YXJrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dUS11bQ01ha2VdIEFkZCBIQVJGQlVaWl9JTkNM
VURFX0RJUlMgdG8gV2ViS2l0IGFuZCBXZWJLaXQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy92aWJyYXRpb24vVmlicmF0aW9uLmNwcAppbmRleCBiYTQ3ZTE0NTc5YTEwMzhjNTBlMDVhMTYy
NGRlZGQ1MjQxMzdlY2Y3Li4wNmM1N2YyM2I3ZjdiN2E1NzhiMjNiNzYzMDg0ZmY4N2I2MTdhMDRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5jcHAK
QEAgLTI2LDExICsyNiwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIE1heGltdW0g
bnVtYmVyIG9mIGVudHJpZXMgaW4gYSB2aWJyYXRpb24gcGF0dGVybi4KK2NvbnN0IHVuc2lnbmVk
IE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGggPSA5OTsKKy8vIE1heGltdW0gZHVyYXRpb24gb2Yg
YSB2aWJyYXRpb24gaW4gMTAgc2Vjb25kcy4KK2NvbnN0IHVuc2lnbmVkIE1heFZpYnJhdGlvbkR1
cmF0aW9uID0gMTAwMDA7CisKIFZpYnJhdGlvbjo6VmlicmF0aW9uKFZpYnJhdGlvbkNsaWVudCog
Y2xpZW50KQogICAgIDogbV92aWJyYXRpb25DbGllbnQoY2xpZW50KQotICAgICwgbV90aW1lclN0
YXJ0KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RhcnRGaXJlZCkKLSAgICAsIG1fdGltZXJTdG9w
KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RvcEZpcmVkKQotICAgICwgbV9pc1ZpYnJhdGluZyhm
YWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlZpYnJhdGlvbjo6dGltZXJGaXJlZCkKKyAgICAs
IG1fc3RhdGUoU3RhdGU6OklkbGUpCiB7CiB9CiAKQEAgLTQ2LDgwICs1MCw3NCBAQCBQYXNzT3du
UHRyPFZpYnJhdGlvbj4gVmlicmF0aW9uOjpjcmVhdGUoVmlicmF0aW9uQ2xpZW50KiBjbGllbnQp
CiAKIGJvb2wgVmlicmF0aW9uOjp2aWJyYXRlKGNvbnN0IFZpYnJhdGlvblBhdHRlcm4mIHBhdHRl
cm4pCiB7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHBhdHRlcm4uc2l6ZSgpOworICAgIFZpYnJhdGlv
blBhdHRlcm4mIHNhbml0aXplZCA9IGNvbnN0X2Nhc3Q8VmlicmF0aW9uUGF0dGVybiY+KHBhdHRl
cm4pOworICAgIHNpemVfdCBsZW5ndGggPSBzYW5pdGl6ZWQuc2l6ZSgpOworCisgICAgLy8gSWYg
dGhlIHBhdHRlcm4gaXMgdG9vIGxvbmcgdGhlbiB0cnVuY2F0ZSBpdC4KKyAgICBpZiAobGVuZ3Ro
ID4gTWF4VmlicmF0aW9uUGF0dGVybkxlbmd0aCkgeworICAgICAgICBzYW5pdGl6ZWQuc2hyaW5r
KE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGgpOworICAgICAgICBsZW5ndGggPSBNYXhWaWJyYXRp
b25QYXR0ZXJuTGVuZ3RoOworICAgIH0KIAotICAgIG1fcGF0dGVybiA9IHBhdHRlcm47Ci0gICAg
aWYgKGxlbmd0aCAmJiAhKGxlbmd0aCAlIDIpKQotICAgICAgICBtX3BhdHRlcm4ucmVtb3ZlTGFz
dCgpOworICAgIC8vIElmIHRoZSBsZW5ndGggb2YgcGF0dGVybiBpcyBldmVuIGFuZCBpcyBub3Qg
emVybywgdGhlbiByZW1vdmUgdGhlIGxhc3QgZW50cnkgaW4gcGF0dGVybi4KKyAgICBpZiAobGVu
Z3RoICYmICEobGVuZ3RoICUgMikpIHsKKyAgICAgICAgc2FuaXRpemVkLnJlbW92ZUxhc3QoKTsK
KyAgICAgICAgbGVuZ3RoLS07CisgICAgfQogCi0gICAgLy8gUHJlLWV4c2l0aW5nIGluc3RhbmNl
IG5lZWQgdG8gYmUgY2FuY2VsZWQgd2hlbiB2aWJyYXRpb24gaXMgY2FsbGVkLgotICAgIC8vIEFu
ZCBpZiB0aW1lIGlzIDAsIHZpYnJhdGlvbiBoYXZlIHRvIGJlIGNhbmNlbGVkIGFsc28uCi0gICAg
aWYgKG1faXNWaWJyYXRpbmcgfHwgKG1fcGF0dGVybi5zaXplKCkgPT0gMSAmJiAhbV9wYXR0ZXJu
WzBdKSkKKyAgICAvLyBJZiBhbnkgcGF0dGVybiBlbnRyeSBpcyB0b28gbG9uZyB0aGVuIHRydW5j
YXRlIGl0LgorICAgIGZvciAoYXV0byYgZHVyYXRpb24gOiBzYW5pdGl6ZWQpCisgICAgICAgIGR1
cmF0aW9uID0gc3RkOjptaW4oZHVyYXRpb24sIE1heFZpYnJhdGlvbkR1cmF0aW9uKTsKKworICAg
IC8vIFByZS1leHNpdGluZyBpbnN0YW5jZSBuZWVkIHRvIGJlIGNhbmNlbGVkIHdoZW4gdmlicmF0
ZSgpIGlzIGNhbGxlZC4KKyAgICBpZiAoaXNWaWJyYXRpbmcoKSkKICAgICAgICAgY2FuY2VsVmli
cmF0aW9uKCk7CiAKLSAgICBpZiAoIW1fcGF0dGVybi5zaXplKCkpCisgICAgLy8gSWYgcGF0dGVy
biBpcyBhbiBlbXB0eSBsaXN0LCB0aGVuIHJldHVybiB0cnVlIGFuZCB0ZXJtaW5hdGUgdGhlc2Ug
c3RlcHMuCisgICAgaWYgKCFsZW5ndGggfHwgKGxlbmd0aCA9PSAxICYmICFzYW5pdGl6ZWRbMF0p
KSB7CisgICAgICAgIGNhbmNlbFZpYnJhdGlvbigpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CiAKLSAgICBtX3RpbWVyU3RhcnQuc3RhcnRPbmVTaG90KDApOwotICAgIG1faXNWaWJyYXRp
bmcgPSB0cnVlOworICAgIG1fcGF0dGVybiA9IHNhbml0aXplZDsKKworICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KDApOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFZpYnJhdGlvbjo6Y2Fu
Y2VsVmlicmF0aW9uKCkKIHsKICAgICBtX3BhdHRlcm4uY2xlYXIoKTsKLSAgICBpZiAobV9pc1Zp
YnJhdGluZykKLSAgICAgICAgc3RvcFZpYnJhdGlvbigpOwotfQotCi12b2lkIFZpYnJhdGlvbjo6
c3VzcGVuZFZpYnJhdGlvbigpCi17Ci0gICAgaWYgKCFtX2lzVmlicmF0aW5nKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3BhdHRlcm4uaW5zZXJ0KDAsIG1fdGltZXJTdG9wLm5leHRGaXJlSW50
ZXJ2YWwoKSk7Ci0gICAgc3RvcFZpYnJhdGlvbigpOwotfQotCi12b2lkIFZpYnJhdGlvbjo6cmVz
dW1lVmlicmF0aW9uKCkKLXsKLSAgICBtX3RpbWVyU3RhcnQuc3RhcnRPbmVTaG90KDApOwotICAg
IG1faXNWaWJyYXRpbmcgPSB0cnVlOwotfQotCi12b2lkIFZpYnJhdGlvbjo6c3RvcFZpYnJhdGlv
bigpCi17Ci0gICAgbV90aW1lclN0YXJ0LnN0b3AoKTsKLSAgICBtX3RpbWVyU3RvcC5zdG9wKCk7
Ci0gICAgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbigpOwotICAgIG1faXNWaWJy
YXRpbmcgPSBmYWxzZTsKKyAgICBpZiAoaXNWaWJyYXRpbmcoKSkgeworICAgICAgICBtX3RpbWVy
LnN0b3AoKTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpJZGxlOworICAgICAgICBtX3ZpYnJh
dGlvbkNsaWVudC0+Y2FuY2VsVmlicmF0aW9uKCk7CisgICAgfQogfQogCi12b2lkIFZpYnJhdGlv
bjo6dGltZXJTdGFydEZpcmVkKFRpbWVyPFZpYnJhdGlvbj4qIHRpbWVyKQordm9pZCBWaWJyYXRp
b246OnRpbWVyRmlyZWQoVGltZXI8VmlicmF0aW9uPiogdGltZXIpCiB7Ci0gICAgQVNTRVJUX1VO
VVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXJTdGFydCk7CisgICAgQVNTRVJUX1VOVVNFRCh0
aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwogCi0gICAgbV90aW1lclN0YXJ0LnN0b3AoKTsKKyAg
ICBtX3RpbWVyLnN0b3AoKTsKIAotICAgIGlmICghbV9wYXR0ZXJuLmlzRW1wdHkoKSkgewotICAg
ICAgICBtX3ZpYnJhdGlvbkNsaWVudC0+dmlicmF0ZShtX3BhdHRlcm5bMF0pOwotICAgICAgICBt
X3RpbWVyU3RvcC5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4wKTsKLSAgICAgICAg
bV9wYXR0ZXJuLnJlbW92ZSgwKTsKKyAgICBpZiAobV9wYXR0ZXJuLmlzRW1wdHkoKSkgeworICAg
ICAgICBtX3N0YXRlID0gU3RhdGU6OklkbGU7CisgICAgICAgIHJldHVybjsKICAgICB9Ci19Ci0K
LXZvaWQgVmlicmF0aW9uOjp0aW1lclN0b3BGaXJlZChUaW1lcjxWaWJyYXRpb24+KiB0aW1lcikK
LXsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lclN0b3ApOwotCi0g
ICAgbV90aW1lclN0b3Auc3RvcCgpOwogCi0gICAgaWYgKCFtX3BhdHRlcm4uaXNFbXB0eSgpKSB7
Ci0gICAgICAgIG1fdGltZXJTdGFydC5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4w
KTsKLSAgICAgICAgbV9wYXR0ZXJuLnJlbW92ZSgwKTsKLSAgICAgICAgaWYgKG1fcGF0dGVybi5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBtX2lzVmlicmF0aW5nID0gZmFsc2U7CisgICAgc3dpdGNo
IChtX3N0YXRlKSB7CisgICAgY2FzZSBTdGF0ZTo6VmlicmF0aW5nOgorICAgICAgICBtX3N0YXRl
ID0gU3RhdGU6OldhaXRpbmc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RhdGU6OldhaXRp
bmc6CisgICAgY2FzZSBTdGF0ZTo6SWRsZToKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpWaWJy
YXRpbmc7CisgICAgICAgIG1fdmlicmF0aW9uQ2xpZW50LT52aWJyYXRlKG1fcGF0dGVyblswXSk7
CisgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChtX3BhdHRl
cm5bMF0gLyAxMDAwLjApOworICAgIG1fcGF0dGVybi5yZW1vdmUoMCk7CiB9CiAKIGNvbnN0IGNo
YXIqIFZpYnJhdGlvbjo6c3VwcGxlbWVudE5hbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3ZpYnJhdGlvbi9WaWJyYXRpb24uaAppbmRleCBlNTQwODNhNzliNzI0YjlkZjYwMjViODc4MmQw
ODM1NWNmYTA1NzZhLi4yMjAxNmY3ZTM3ODdkOWRmNjcwYzk1ZmYyZTU3NjNhNjhhMzYwYjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uaApAQCAtNDAs
MjYgKzQwLDI2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxWaWJyYXRpb24+IGNy
ZWF0ZShWaWJyYXRpb25DbGllbnQqKTsKIAogICAgIGJvb2wgdmlicmF0ZShjb25zdCBWaWJyYXRp
b25QYXR0ZXJuJik7CisgICAgLy8gRklYTUUgOiBXaGVuIHZpc2liaWxpdHljaGFuZ2UgZXZlbnQg
aXMgZGlzcGF0Y2hlZCwgaWYgYSB2aWJyYXRpb24gaXMgd29ya2luZywgaXQgc2hvdWxkIGJlIGNh
bmNlbGVkLgogICAgIHZvaWQgY2FuY2VsVmlicmF0aW9uKCk7CiAKLSAgICAvLyBGSVhNRSA6IEFk
ZCBzdXNwZW5kVmlicmF0aW9uKCkgYW5kIHJlc3VtZVZpYnJhdGlvbigpIHRvIHRoZSBwYWdlIHZp
c2liaWxpdHkgZmVhdHVyZSwgd2hlbiB0aGUgZG9jdW1lbnQuaGlkZGVuIGF0dHJpYnV0ZSBpcyBj
aGFuZ2VkLgotICAgIHZvaWQgc3VzcGVuZFZpYnJhdGlvbigpOwotICAgIHZvaWQgcmVzdW1lVmli
cmF0aW9uKCk7Ci0gICAgdm9pZCB0aW1lclN0YXJ0RmlyZWQoVGltZXI8VmlicmF0aW9uPiopOwot
ICAgIHZvaWQgdGltZXJTdG9wRmlyZWQoVGltZXI8VmlicmF0aW9uPiopOworICAgIHZvaWQgdGlt
ZXJGaXJlZChUaW1lcjxWaWJyYXRpb24+Kik7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3Vw
cGxlbWVudE5hbWUoKTsKICAgICBzdGF0aWMgVmlicmF0aW9uKiBmcm9tKFBhZ2UqIHBhZ2UpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PFZpYnJhdGlvbio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFn
ZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CiAKLSAgICBib29sIGlzVmlicmF0aW5nKCkgeyByZXR1
cm4gbV9pc1ZpYnJhdGluZzsgfQorICAgIGJvb2wgaXNWaWJyYXRpbmcoKSB7IHJldHVybiBtX3N0
YXRlICE9IFN0YXRlOjpJZGxlOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBzdG9wVmlicmF0aW9u
KCk7CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIElkbGUsCisgICAgICAgIFZpYnJh
dGluZywKKyAgICAgICAgV2FpdGluZworICAgIH07CiAKICAgICBWaWJyYXRpb25DbGllbnQqIG1f
dmlicmF0aW9uQ2xpZW50OwotICAgIFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lclN0YXJ0OwotICAg
IFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lclN0b3A7Ci0gICAgYm9vbCBtX2lzVmlicmF0aW5nOwor
ICAgIFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lcjsKKyAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFZp
YnJhdGlvblBhdHRlcm4gbV9wYXR0ZXJuOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCmluZGV4IGJk
ZmQ3ODE5OTU0MTNhYTg2OWQzNWM4NWMzNDg1NDcxNWQzMTZmOTQuLjJkYzU2NWJlYzgwZjJmNzQy
NjdiZmU4ZTUzNzRjMzA1MTU2ZTUxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKQEAgLTkyOCwyMyAr
OTI4LDM0IEBAIFRFU1RfRihFV0syVmlld1Rlc3QsIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGll
bnRfY2FsbGJhY2tzX3NldCkKICAgICAvLyBWaWJyYXRlIGZvciA1IHNlY29uZHMuCiAgICAgbG9h
ZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNTAwMCIsICZkYXRhKTsKICAgICB3YWl0
VW50aWxUcnVlKGRhdGEudGVzdEZpbmlzaGVkKTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJl
Y2VpdmVWaWJyYXRlKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRlICYm
ICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOwogCiAgICAgLy8gQ2FuY2VsIGFueSBl
eGlzdGluZyB2aWJyYXRpb25zLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXco
KSwgIjAiLCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7Ci0g
ICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKyAgICBBU1NF
UlRfVFJVRSghZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiBkYXRhLmRpZFJlY2VpdmVDYW5jZWxW
aWJyYXRpb24pOwogCiAgICAgLy8gVGhpcyBjYXNlIHRoZSBwYXR0ZXJuIHdpbGwgY2F1c2UgdGhl
IGRldmljZSB0byB2aWJyYXRlIGZvciAyMDAgbXMsIGJlIHN0aWxsIGZvciAxMDAgbXMsIGFuZCB0
aGVuIHZpYnJhdGUgZm9yIDUwMDAgbXMuCiAgICAgbG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2Vi
VmlldygpLCAiWzIwMCwgMTAwLCA1MDAwXSIsICZkYXRhKTsKICAgICB3YWl0VW50aWxUcnVlKGRh
dGEudGVzdEZpbmlzaGVkKTsKICAgICBBU1NFUlRfRVEoMiwgZGF0YS52aWJyYXRlQ2FsbGVkQ291
bnQpOwotICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUpOworICAgIEFTU0VS
VF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZp
YnJhdGlvbik7CiAKICAgICAvLyBDYW5jZWwgb3V0c3RhbmRpbmcgdmlicmF0aW9uIHBhdHRlcm4u
CiAgICAgbG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiWzBdIiwgJmRhdGEpOwog
ICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOwotICAgIEFTU0VSVF9UUlVFKGRh
dGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CisgICAgQVNTRVJUX1RSVUUoIWRhdGEuZGlk
UmVjZWl2ZVZpYnJhdGUgJiYgZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKworICAg
IC8vIENoZWNrIHRoYXQgdmlicmF0aW9uIHdvcmtzIHByb3Blcmx5IGJ5IGNvbnRpbnVvdXMgcmVx
dWVzdC4KKyAgICBkYXRhLmV4cGVjdGVkVmlicmF0aW9uVGltZSA9IDU7CisgICAgbG9hZFZpYnJh
dGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNSIsICZkYXRhKTsKKyAgICB3YWl0VW50aWxUcnVl
KGRhdGEudGVzdEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJy
YXRlICYmICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOworCisgICAgbG9hZFZpYnJh
dGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNSIsICZkYXRhKTsKKyAgICB3YWl0VW50aWxUcnVl
KGRhdGEudGVzdEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfRVEoMSwgZGF0YS52aWJyYXRlQ2FsbGVk
Q291bnQpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEu
ZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CiAKICAgICAvLyBTdG9wIGxpc3RlbmluZyBmb3Ig
dmlicmF0aW9uIGV2ZW50cywgYnkgY2FsbGluZyB0aGUgZnVuY3Rpb24gd2l0aCBudWxsIGZvciB0
aGUgY2FsbGJhY2tzLgogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbCh3ZWJWaWV3
KCksICJ2aWJyYXRlIiwgb25WaWJyYXRlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226636</attachid>
            <date>2014-03-13 18:24:33 -0700</date>
            <delta_ts>2014-03-13 18:28:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130059-20140314102416.patch</filename>
            <type>text/plain</type>
            <size>10914</size>
            <attacher name="Jinwoo Jeong">jw00.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIxZmYyZWIzMjA0N2Zj
MGQ3MTMzZWQ4YTdiYjNmODNiYTA4MGU2OS4uMmVhNmIwYjE1NmM3Y2RjMDcyMTYwYjk2MjA0YTVm
MDEyNjM3YzAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTEzICBKaW53
b28gSmVvbmcgIDxqdzAwLmplb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFZp
YnJhdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9ubHkgb25lIHRpbWVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5IFZpYnJhdGlvbiBpcyB1
c2luZyB0d28gdGltZXJzLAorICAgICAgICBvbmUgaXMgdG8gc3RhcnQgYSB2aWJyYXRpb24gYW5k
IGFub3RoZXIgaXMgdG8gY2hlY2sgdGVybWluYXRpb24gb2YgYSB2aWJyYXRpb24uCisgICAgICAg
IEJ1dCB0aGV5IGRvIG5vdCB3b3JrIGluIHNhbWUgdGltZSwgaWYgb25lIG9mIHRoZW0gaXMgZmly
ZWQsIHRoZW4gYW5vdGhvciB3aWxsIHN0YXJ0LgorICAgICAgICBUaHVzIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBvbmUgb2YgdGhlbSwgYW5kIG1hbmFnZXMgdmlicmF0aW9uIHN0YXRlcyBieSBlbnVtZXJh
dGlvbi4KKworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIGltcGxlbWVudCB0aGUgbWlzc2luZyBw
YXJ0IG9mIHRoZSBhbGdvcml0aG0sCisgICAgICAgIHdoaWNoIGNoZWNrIHRoZSBtYXhpbXVtIGxl
bmd0aCBvZiB0aGUgdmlicmF0aW9uIHBhdHRlcm4gYW5kIHRoZSBtYXhpbXVtIGR1cmF0aW9uIG9m
IHRoZSB2aWJyYXRpb24uCisKKyAgICAgICAgTGFzdGx5LCB0aGlzIHBhdGNoIHJlbW92ZXMgdW51
c2VkIG1ldGhvZHMgZnJvbSBWaWJyYXRpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlv
bi9WaWJyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjpWaWJyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjp2aWJyYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlZpYnJhdGlvbjo6Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgUmVtb3ZlZCBzdG9wVmli
cmF0aW9uKCkgYW5kIGl0cyBjb250ZW50cyBtb3ZlZCB0byBjYW5jZWxWaWJyYXRpb24oKS4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6dGltZXJGaXJlZCk6IENvbWJpbmVkIHRpbWVyU3Rh
cnRGaXJlZCgpIGFuZCB0aW1lclN0b3BGaXJlZCgpLgorICAgICAgICBSZW1vdmVkIHN1c3BlbmRW
aWJyYXRpb24oKSBhbmQgcmVzdW1lVmlicmF0aW9uKCksIHdoaWNoIGlzIG5ldmVyIGNhbGxlZCBz
aW5jZSByLgorICAgICAgICAqIE1vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5oOiBBZGRlZCBu
ZXcgZW51bWVydGFpb24gdG8gc3BlY2lmeSBzdGF0ZXMgb2YgVmlicmF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6VmlicmF0aW9uOjppc1ZpYnJhdGluZyk6CisKIDIwMTQtMDMtMTMgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdmUgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBjYTQ0MDI1NTg3YTlhYjRhNjVjYmVhMzc2ODc4YjFjMjE2NTY4YTVlLi42M2Nm
M2JlYmJhNGUyODkwZDY0OGNjZjMwNTgzZGE4YmY0NGE3YWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTQtMDMtMTAgIEppbndvbyBKZW9uZyAgPGp3MDAuamVvbmdAc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgUmVmYWN0b3IgVmlicmF0aW9uIGFsZ29yaXRobSB0byB1c2Ugb25seSBv
bmUgdGltZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzAwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGFkZHMgYSB2aWJyYXRpb24gdW5pdCB0ZXN0IHJlZ3Jlc3Npb24gYWZ0ZXIg
cjE2MTI1Ny4KKyAgICAgICAgSXQgY29uc2lzdHMgb2YgdHdvIHNob3J0IHRlcm0gcmVxdWVzdHMg
dG8gY2hlY2sKKyAgICAgICAgdGhhdCBWaWJyYXRpb24gY291bGQgd29yayBwcm9wZXJseSBieSBz
ZXF1ZW50aWFsIHJlcXVlc3RzLgorCisgICAgICAgIEluZGVlZCB0aGlzIHBhdGNoIHRpZ2h0ZW5z
IGNvbmRpdGlvbiBvZiBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTQt
MDMtMTMgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VGhlIHZpZXdwb3J0IGNvZGUgc2hvdWxkIG5vdCBkZXBlbmQgb24gV2ViS2l0U3lzdGVtSW50ZXJm
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmNwcApp
bmRleCBiYTQ3ZTE0NTc5YTEwMzhjNTBlMDVhMTYyNGRlZGQ1MjQxMzdlY2Y3Li42NTBiMDRiNDEy
YTg2Y2ViMzk3OWE0YjAwMGExMDQ3OTNkMTBiZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5jcHAKQEAgLTI2LDExICsyNiwxNSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKy8vIE1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgaW4gYSB2aWJy
YXRpb24gcGF0dGVybi4KK2NvbnN0IHVuc2lnbmVkIE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGgg
PSA5OTsKKy8vIE1heGltdW0gZHVyYXRpb24gb2YgYSB2aWJyYXRpb24gaW4gMTAgc2Vjb25kcy4K
K2NvbnN0IHVuc2lnbmVkIE1heFZpYnJhdGlvbkR1cmF0aW9uID0gMTAwMDA7CisKIFZpYnJhdGlv
bjo6VmlicmF0aW9uKFZpYnJhdGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV92aWJyYXRpb25D
bGllbnQoY2xpZW50KQotICAgICwgbV90aW1lclN0YXJ0KHRoaXMsICZWaWJyYXRpb246OnRpbWVy
U3RhcnRGaXJlZCkKLSAgICAsIG1fdGltZXJTdG9wKHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3Rv
cEZpcmVkKQotICAgICwgbV9pc1ZpYnJhdGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywg
JlZpYnJhdGlvbjo6dGltZXJGaXJlZCkKKyAgICAsIG1fc3RhdGUoU3RhdGU6OklkbGUpCiB7CiB9
CiAKQEAgLTQ2LDgwICs1MCw3NCBAQCBQYXNzT3duUHRyPFZpYnJhdGlvbj4gVmlicmF0aW9uOjpj
cmVhdGUoVmlicmF0aW9uQ2xpZW50KiBjbGllbnQpCiAKIGJvb2wgVmlicmF0aW9uOjp2aWJyYXRl
KGNvbnN0IFZpYnJhdGlvblBhdHRlcm4mIHBhdHRlcm4pCiB7Ci0gICAgc2l6ZV90IGxlbmd0aCA9
IHBhdHRlcm4uc2l6ZSgpOworICAgIFZpYnJhdGlvblBhdHRlcm4mIHNhbml0aXplZCA9IGNvbnN0
X2Nhc3Q8VmlicmF0aW9uUGF0dGVybiY+KHBhdHRlcm4pOworICAgIHNpemVfdCBsZW5ndGggPSBz
YW5pdGl6ZWQuc2l6ZSgpOworCisgICAgLy8gSWYgdGhlIHBhdHRlcm4gaXMgdG9vIGxvbmcgdGhl
biB0cnVuY2F0ZSBpdC4KKyAgICBpZiAobGVuZ3RoID4gTWF4VmlicmF0aW9uUGF0dGVybkxlbmd0
aCkgeworICAgICAgICBzYW5pdGl6ZWQuc2hyaW5rKE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGgp
OworICAgICAgICBsZW5ndGggPSBNYXhWaWJyYXRpb25QYXR0ZXJuTGVuZ3RoOworICAgIH0KIAot
ICAgIG1fcGF0dGVybiA9IHBhdHRlcm47Ci0gICAgaWYgKGxlbmd0aCAmJiAhKGxlbmd0aCAlIDIp
KQotICAgICAgICBtX3BhdHRlcm4ucmVtb3ZlTGFzdCgpOworICAgIC8vIElmIHRoZSBsZW5ndGgg
b2YgcGF0dGVybiBpcyBldmVuIGFuZCBpcyBub3QgemVybywgdGhlbiByZW1vdmUgdGhlIGxhc3Qg
ZW50cnkgaW4gcGF0dGVybi4KKyAgICBpZiAobGVuZ3RoICYmICEobGVuZ3RoICUgMikpIHsKKyAg
ICAgICAgc2FuaXRpemVkLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgbGVuZ3RoLS07CisgICAgfQog
Ci0gICAgLy8gUHJlLWV4c2l0aW5nIGluc3RhbmNlIG5lZWQgdG8gYmUgY2FuY2VsZWQgd2hlbiB2
aWJyYXRpb24gaXMgY2FsbGVkLgotICAgIC8vIEFuZCBpZiB0aW1lIGlzIDAsIHZpYnJhdGlvbiBo
YXZlIHRvIGJlIGNhbmNlbGVkIGFsc28uCi0gICAgaWYgKG1faXNWaWJyYXRpbmcgfHwgKG1fcGF0
dGVybi5zaXplKCkgPT0gMSAmJiAhbV9wYXR0ZXJuWzBdKSkKKyAgICAvLyBJZiBhbnkgcGF0dGVy
biBlbnRyeSBpcyB0b28gbG9uZyB0aGVuIHRydW5jYXRlIGl0LgorICAgIGZvciAoYXV0byYgZHVy
YXRpb24gOiBzYW5pdGl6ZWQpCisgICAgICAgIGR1cmF0aW9uID0gc3RkOjptaW4oZHVyYXRpb24s
IE1heFZpYnJhdGlvbkR1cmF0aW9uKTsKKworICAgIC8vIFByZS1leGlzaXRpbmcgaW5zdGFuY2Ug
bmVlZCB0byBiZSBjYW5jZWxlZCB3aGVuIHZpYnJhdGUoKSBpcyBjYWxsZWQuCisgICAgaWYgKGlz
VmlicmF0aW5nKCkpCiAgICAgICAgIGNhbmNlbFZpYnJhdGlvbigpOwogCi0gICAgaWYgKCFtX3Bh
dHRlcm4uc2l6ZSgpKQorICAgIC8vIElmIHBhdHRlcm4gaXMgYW4gZW1wdHkgbGlzdCwgdGhlbiBy
ZXR1cm4gdHJ1ZSBhbmQgdGVybWluYXRlIHRoZXNlIHN0ZXBzLgorICAgIGlmICghbGVuZ3RoIHx8
IChsZW5ndGggPT0gMSAmJiAhc2FuaXRpemVkWzBdKSkgeworICAgICAgICBjYW5jZWxWaWJyYXRp
b24oKTsKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCi0gICAgbV90aW1lclN0YXJ0LnN0
YXJ0T25lU2hvdCgwKTsKLSAgICBtX2lzVmlicmF0aW5nID0gdHJ1ZTsKKyAgICBtX3BhdHRlcm4g
PSBzYW5pdGl6ZWQ7CisKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBWaWJyYXRpb246OmNhbmNlbFZpYnJhdGlvbigpCiB7CiAgICAgbV9w
YXR0ZXJuLmNsZWFyKCk7Ci0gICAgaWYgKG1faXNWaWJyYXRpbmcpCi0gICAgICAgIHN0b3BWaWJy
YXRpb24oKTsKLX0KLQotdm9pZCBWaWJyYXRpb246OnN1c3BlbmRWaWJyYXRpb24oKQotewotICAg
IGlmICghbV9pc1ZpYnJhdGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYXR0ZXJuLmlu
c2VydCgwLCBtX3RpbWVyU3RvcC5uZXh0RmlyZUludGVydmFsKCkpOwotICAgIHN0b3BWaWJyYXRp
b24oKTsKLX0KLQotdm9pZCBWaWJyYXRpb246OnJlc3VtZVZpYnJhdGlvbigpCi17Ci0gICAgbV90
aW1lclN0YXJ0LnN0YXJ0T25lU2hvdCgwKTsKLSAgICBtX2lzVmlicmF0aW5nID0gdHJ1ZTsKLX0K
LQotdm9pZCBWaWJyYXRpb246OnN0b3BWaWJyYXRpb24oKQotewotICAgIG1fdGltZXJTdGFydC5z
dG9wKCk7Ci0gICAgbV90aW1lclN0b3Auc3RvcCgpOwotICAgIG1fdmlicmF0aW9uQ2xpZW50LT5j
YW5jZWxWaWJyYXRpb24oKTsKLSAgICBtX2lzVmlicmF0aW5nID0gZmFsc2U7CisgICAgaWYgKGlz
VmlicmF0aW5nKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisgICAgICAgIG1fc3RhdGUg
PSBTdGF0ZTo6SWRsZTsKKyAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlv
bigpOworICAgIH0KIH0KIAotdm9pZCBWaWJyYXRpb246OnRpbWVyU3RhcnRGaXJlZChUaW1lcjxW
aWJyYXRpb24+KiB0aW1lcikKK3ZvaWQgVmlicmF0aW9uOjp0aW1lckZpcmVkKFRpbWVyPFZpYnJh
dGlvbj4qIHRpbWVyKQogewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3Rp
bWVyU3RhcnQpOworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsK
IAotICAgIG1fdGltZXJTdGFydC5zdG9wKCk7CisgICAgbV90aW1lci5zdG9wKCk7CiAKLSAgICBp
ZiAoIW1fcGF0dGVybi5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPnZp
YnJhdGUobV9wYXR0ZXJuWzBdKTsKLSAgICAgICAgbV90aW1lclN0b3Auc3RhcnRPbmVTaG90KG1f
cGF0dGVyblswXSAvIDEwMDAuMCk7Ci0gICAgICAgIG1fcGF0dGVybi5yZW1vdmUoMCk7CisgICAg
aWYgKG1fcGF0dGVybi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpJZGxl
OworICAgICAgICByZXR1cm47CiAgICAgfQotfQotCi12b2lkIFZpYnJhdGlvbjo6dGltZXJTdG9w
RmlyZWQoVGltZXI8VmlicmF0aW9uPiogdGltZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1l
ciwgdGltZXIgPT0gJm1fdGltZXJTdG9wKTsKLQotICAgIG1fdGltZXJTdG9wLnN0b3AoKTsKIAot
ICAgIGlmICghbV9wYXR0ZXJuLmlzRW1wdHkoKSkgewotICAgICAgICBtX3RpbWVyU3RhcnQuc3Rh
cnRPbmVTaG90KG1fcGF0dGVyblswXSAvIDEwMDAuMCk7Ci0gICAgICAgIG1fcGF0dGVybi5yZW1v
dmUoMCk7Ci0gICAgICAgIGlmIChtX3BhdHRlcm4uaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9p
c1ZpYnJhdGluZyA9IGZhbHNlOworICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAgIGNhc2UgU3Rh
dGU6OlZpYnJhdGluZzoKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpXYWl0aW5nOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN0YXRlOjpXYWl0aW5nOgorICAgIGNhc2UgU3RhdGU6OklkbGU6
CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6VmlicmF0aW5nOworICAgICAgICBtX3ZpYnJhdGlv
bkNsaWVudC0+dmlicmF0ZShtX3BhdHRlcm5bMF0pOworICAgICAgICBicmVhazsKICAgICB9Cisg
ICAgbV90aW1lci5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4wKTsKKyAgICBtX3Bh
dHRlcm4ucmVtb3ZlKDApOwogfQogCiBjb25zdCBjaGFyKiBWaWJyYXRpb246OnN1cHBsZW1lbnRO
YW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmgKaW5k
ZXggZTU0MDgzYTc5YjcyNGI5ZGY2MDI1Yjg3ODJkMDgzNTVjZmEwNTc2YS4uZWVmNTJmZjAxYmU2
MzVmNzY2YjU3NTk0M2JjM2MxY2U4NWJjNDg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy92aWJyYXRpb24vVmlicmF0aW9uLmgKQEAgLTQwLDI2ICs0MCwyMiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NPd25QdHI8VmlicmF0aW9uPiBjcmVhdGUoVmlicmF0aW9uQ2xpZW50Kik7CiAK
ICAgICBib29sIHZpYnJhdGUoY29uc3QgVmlicmF0aW9uUGF0dGVybiYpOworICAgIC8vIEZJWE1F
OiBXaGVuIGEgdmlzaWJpbGl0eWNoYW5nZSBldmVudCBpcyBkaXNwYXRjaGVkIHdoaWxlIHZpYnJh
dGluZywgdGhlIHZpYnJhdGlvbiBzaG91bGQgYmUgY2FuY2VsZWQuCiAgICAgdm9pZCBjYW5jZWxW
aWJyYXRpb24oKTsKIAotICAgIC8vIEZJWE1FIDogQWRkIHN1c3BlbmRWaWJyYXRpb24oKSBhbmQg
cmVzdW1lVmlicmF0aW9uKCkgdG8gdGhlIHBhZ2UgdmlzaWJpbGl0eSBmZWF0dXJlLCB3aGVuIHRo
ZSBkb2N1bWVudC5oaWRkZW4gYXR0cmlidXRlIGlzIGNoYW5nZWQuCi0gICAgdm9pZCBzdXNwZW5k
VmlicmF0aW9uKCk7Ci0gICAgdm9pZCByZXN1bWVWaWJyYXRpb24oKTsKLSAgICB2b2lkIHRpbWVy
U3RhcnRGaXJlZChUaW1lcjxWaWJyYXRpb24+Kik7Ci0gICAgdm9pZCB0aW1lclN0b3BGaXJlZChU
aW1lcjxWaWJyYXRpb24+Kik7CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFZpYnJhdGlvbj4q
KTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogICAgIHN0YXRp
YyBWaWJyYXRpb24qIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0
aW9uKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0K
IAotICAgIGJvb2wgaXNWaWJyYXRpbmcoKSB7IHJldHVybiBtX2lzVmlicmF0aW5nOyB9CisgICAg
Ym9vbCBpc1ZpYnJhdGluZygpIHsgcmV0dXJuIG1fc3RhdGUgIT0gU3RhdGU6OklkbGU7IH0KIAog
cHJpdmF0ZToKLSAgICB2b2lkIHN0b3BWaWJyYXRpb24oKTsKKyAgICBlbnVtIGNsYXNzIFN0YXRl
IHsgSWRsZSwgVmlicmF0aW5nLCBXYWl0aW5nIH07CiAKICAgICBWaWJyYXRpb25DbGllbnQqIG1f
dmlicmF0aW9uQ2xpZW50OwotICAgIFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lclN0YXJ0OwotICAg
IFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lclN0b3A7Ci0gICAgYm9vbCBtX2lzVmlicmF0aW5nOwor
ICAgIFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lcjsKKyAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFZp
YnJhdGlvblBhdHRlcm4gbV9wYXR0ZXJuOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCmluZGV4IGJk
ZmQ3ODE5OTU0MTNhYTg2OWQzNWM4NWMzNDg1NDcxNWQzMTZmOTQuLjJkYzU2NWJlYzgwZjJmNzQy
NjdiZmU4ZTUzNzRjMzA1MTU2ZTUxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKQEAgLTkyOCwyMyAr
OTI4LDM0IEBAIFRFU1RfRihFV0syVmlld1Rlc3QsIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGll
bnRfY2FsbGJhY2tzX3NldCkKICAgICAvLyBWaWJyYXRlIGZvciA1IHNlY29uZHMuCiAgICAgbG9h
ZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNTAwMCIsICZkYXRhKTsKICAgICB3YWl0
VW50aWxUcnVlKGRhdGEudGVzdEZpbmlzaGVkKTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJl
Y2VpdmVWaWJyYXRlKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRlICYm
ICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOwogCiAgICAgLy8gQ2FuY2VsIGFueSBl
eGlzdGluZyB2aWJyYXRpb25zLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXco
KSwgIjAiLCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7Ci0g
ICAgQVNTRVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKyAgICBBU1NF
UlRfVFJVRSghZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiBkYXRhLmRpZFJlY2VpdmVDYW5jZWxW
aWJyYXRpb24pOwogCiAgICAgLy8gVGhpcyBjYXNlIHRoZSBwYXR0ZXJuIHdpbGwgY2F1c2UgdGhl
IGRldmljZSB0byB2aWJyYXRlIGZvciAyMDAgbXMsIGJlIHN0aWxsIGZvciAxMDAgbXMsIGFuZCB0
aGVuIHZpYnJhdGUgZm9yIDUwMDAgbXMuCiAgICAgbG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2Vi
VmlldygpLCAiWzIwMCwgMTAwLCA1MDAwXSIsICZkYXRhKTsKICAgICB3YWl0VW50aWxUcnVlKGRh
dGEudGVzdEZpbmlzaGVkKTsKICAgICBBU1NFUlRfRVEoMiwgZGF0YS52aWJyYXRlQ2FsbGVkQ291
bnQpOwotICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUpOworICAgIEFTU0VS
VF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZp
YnJhdGlvbik7CiAKICAgICAvLyBDYW5jZWwgb3V0c3RhbmRpbmcgdmlicmF0aW9uIHBhdHRlcm4u
CiAgICAgbG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiWzBdIiwgJmRhdGEpOwog
ICAgIHdhaXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOwotICAgIEFTU0VSVF9UUlVFKGRh
dGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CisgICAgQVNTRVJUX1RSVUUoIWRhdGEuZGlk
UmVjZWl2ZVZpYnJhdGUgJiYgZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKworICAg
IC8vIENoZWNrIHRoYXQgdmlicmF0aW9uIHdvcmtzIHByb3Blcmx5IGJ5IGNvbnRpbnVvdXMgcmVx
dWVzdC4KKyAgICBkYXRhLmV4cGVjdGVkVmlicmF0aW9uVGltZSA9IDU7CisgICAgbG9hZFZpYnJh
dGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNSIsICZkYXRhKTsKKyAgICB3YWl0VW50aWxUcnVl
KGRhdGEudGVzdEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJy
YXRlICYmICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOworCisgICAgbG9hZFZpYnJh
dGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNSIsICZkYXRhKTsKKyAgICB3YWl0VW50aWxUcnVl
KGRhdGEudGVzdEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfRVEoMSwgZGF0YS52aWJyYXRlQ2FsbGVk
Q291bnQpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEu
ZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CiAKICAgICAvLyBTdG9wIGxpc3RlbmluZyBmb3Ig
dmlicmF0aW9uIGV2ZW50cywgYnkgY2FsbGluZyB0aGUgZnVuY3Rpb24gd2l0aCBudWxsIGZvciB0
aGUgY2FsbGJhY2tzLgogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbCh3ZWJWaWV3
KCksICJ2aWJyYXRlIiwgb25WaWJyYXRlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226637</attachid>
            <date>2014-03-13 18:28:57 -0700</date>
            <delta_ts>2014-03-13 19:50:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130059-20140314102841.patch</filename>
            <type>text/plain</type>
            <size>10908</size>
            <attacher name="Jinwoo Jeong">jw00.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIxZmYyZWIzMjA0N2Zj
MGQ3MTMzZWQ4YTdiYjNmODNiYTA4MGU2OS4uNGI5ODQxZTYzYjkyMjg4OGI1ZTk3Yjc1OTQ0YmZh
MzMwZWM0YjcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAzLTEzICBKaW53
b28gSmVvbmcgIDxqdzAwLmplb25nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJlZmFjdG9yIFZp
YnJhdGlvbiBhbGdvcml0aG0gdG8gdXNlIG9ubHkgb25lIHRpbWVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ3VycmVudGx5IFZpYnJhdGlvbiBpcyB1c2lu
ZyB0d28gdGltZXJzLAorICAgICAgICBvbmUgaXMgdG8gc3RhcnQgYSB2aWJyYXRpb24gYW5kIGFu
b3RoZXIgaXMgdG8gY2hlY2sgdGVybWluYXRpb24gb2YgYSB2aWJyYXRpb24uCisgICAgICAgIEJ1
dCB0aGV5IGRvIG5vdCB3b3JrIGluIHNhbWUgdGltZSwgaWYgb25lIG9mIHRoZW0gaXMgZmlyZWQs
IHRoZW4gYW5vdGhvciB3aWxsIHN0YXJ0LgorICAgICAgICBUaHVzIHRoaXMgcGF0Y2ggcmVtb3Zl
cyBvbmUgb2YgdGhlbSwgYW5kIG1hbmFnZXMgdmlicmF0aW9uIHN0YXRlcyBieSBlbnVtZXJhdGlv
bi4KKworICAgICAgICBBbHNvLCB0aGlzIHBhdGNoIGltcGxlbWVudCB0aGUgbWlzc2luZyBwYXJ0
IG9mIHRoZSBhbGdvcml0aG0sCisgICAgICAgIHdoaWNoIGNoZWNrIHRoZSBtYXhpbXVtIGxlbmd0
aCBvZiB0aGUgdmlicmF0aW9uIHBhdHRlcm4gYW5kIHRoZSBtYXhpbXVtIGR1cmF0aW9uIG9mIHRo
ZSB2aWJyYXRpb24uCisKKyAgICAgICAgTGFzdGx5LCB0aGlzIHBhdGNoIHJlbW92ZXMgdW51c2Vk
IG1ldGhvZHMgZnJvbSBWaWJyYXRpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlvbi9W
aWJyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjpWaWJyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6VmlicmF0aW9uOjp2aWJyYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlZpYnJhdGlvbjo6Y2FuY2VsVmlicmF0aW9uKToKKyAgICAgICAgUmVtb3ZlZCBzdG9wVmlicmF0
aW9uKCkgYW5kIGl0cyBjb250ZW50cyBtb3ZlZCB0byBjYW5jZWxWaWJyYXRpb24oKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlZpYnJhdGlvbjo6dGltZXJGaXJlZCk6IENvbWJpbmVkIHRpbWVyU3RhcnRG
aXJlZCgpIGFuZCB0aW1lclN0b3BGaXJlZCgpLgorICAgICAgICBSZW1vdmVkIHN1c3BlbmRWaWJy
YXRpb24oKSBhbmQgcmVzdW1lVmlicmF0aW9uKCksIHdoaWNoIGlzIG5ldmVyIGNhbGxlZCBzaW5j
ZSByLgorICAgICAgICAqIE1vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5oOiBBZGRlZCBuZXcg
ZW51bWVydGFpb24gdG8gc3BlY2lmeSBzdGF0ZXMgb2YgVmlicmF0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6VmlicmF0aW9uOjppc1ZpYnJhdGluZyk6CisKIDIwMTQtMDMtMTMgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1v
dmUgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBjYTQ0MDI1NTg3YTlhYjRhNjVjYmVhMzc2ODc4YjFjMjE2NTY4YTVlLi41YTc3YTZm
MzJhMjQzZWViMmM4ZDc2NWJmZWY1MWY5ODI0NzgxZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTQtMDMtMTAgIEppbndvbyBKZW9uZyAgPGp3MDAuamVvbmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgUmVmYWN0b3IgVmlicmF0aW9uIGFsZ29yaXRobSB0byB1c2Ugb25seSBvbmUg
dGltZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzAwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgYSB2aWJyYXRpb24gdW5pdCB0ZXN0IHJlZ3Jlc3Npb24gYWZ0ZXIgcjE2MTI1
Ny4KKyAgICAgICAgSXQgY29uc2lzdHMgb2YgdHdvIHNob3J0IHRlcm0gcmVxdWVzdHMgdG8gY2hl
Y2sKKyAgICAgICAgdGhhdCBWaWJyYXRpb24gY291bGQgd29yayBwcm9wZXJseSBieSBzZXF1ZW50
aWFsIHJlcXVlc3RzLgorCisgICAgICAgIEluZGVlZCB0aGlzIHBhdGNoIHRpZ2h0ZW5zIGNvbmRp
dGlvbiBvZiBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl92aWV3LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTQtMDMtMTMg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHZp
ZXdwb3J0IGNvZGUgc2hvdWxkIG5vdCBkZXBlbmQgb24gV2ViS2l0U3lzdGVtSW50ZXJmYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmNwcAppbmRleCBi
YTQ3ZTE0NTc5YTEwMzhjNTBlMDVhMTYyNGRlZGQ1MjQxMzdlY2Y3Li42NTBiMDRiNDEyYTg2Y2Vi
Mzk3OWE0YjAwMGExMDQ3OTNkMTBiZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3ZpYnJhdGlvbi9WaWJyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
dmlicmF0aW9uL1ZpYnJhdGlvbi5jcHAKQEAgLTI2LDExICsyNiwxNSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKKy8vIE1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgaW4gYSB2aWJyYXRpb24g
cGF0dGVybi4KK2NvbnN0IHVuc2lnbmVkIE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGggPSA5OTsK
Ky8vIE1heGltdW0gZHVyYXRpb24gb2YgYSB2aWJyYXRpb24gaW4gMTAgc2Vjb25kcy4KK2NvbnN0
IHVuc2lnbmVkIE1heFZpYnJhdGlvbkR1cmF0aW9uID0gMTAwMDA7CisKIFZpYnJhdGlvbjo6Vmli
cmF0aW9uKFZpYnJhdGlvbkNsaWVudCogY2xpZW50KQogICAgIDogbV92aWJyYXRpb25DbGllbnQo
Y2xpZW50KQotICAgICwgbV90aW1lclN0YXJ0KHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RhcnRG
aXJlZCkKLSAgICAsIG1fdGltZXJTdG9wKHRoaXMsICZWaWJyYXRpb246OnRpbWVyU3RvcEZpcmVk
KQotICAgICwgbV9pc1ZpYnJhdGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJlZpYnJh
dGlvbjo6dGltZXJGaXJlZCkKKyAgICAsIG1fc3RhdGUoU3RhdGU6OklkbGUpCiB7CiB9CiAKQEAg
LTQ2LDgwICs1MCw3NCBAQCBQYXNzT3duUHRyPFZpYnJhdGlvbj4gVmlicmF0aW9uOjpjcmVhdGUo
VmlicmF0aW9uQ2xpZW50KiBjbGllbnQpCiAKIGJvb2wgVmlicmF0aW9uOjp2aWJyYXRlKGNvbnN0
IFZpYnJhdGlvblBhdHRlcm4mIHBhdHRlcm4pCiB7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHBhdHRl
cm4uc2l6ZSgpOworICAgIFZpYnJhdGlvblBhdHRlcm4mIHNhbml0aXplZCA9IGNvbnN0X2Nhc3Q8
VmlicmF0aW9uUGF0dGVybiY+KHBhdHRlcm4pOworICAgIHNpemVfdCBsZW5ndGggPSBzYW5pdGl6
ZWQuc2l6ZSgpOworCisgICAgLy8gSWYgdGhlIHBhdHRlcm4gaXMgdG9vIGxvbmcgdGhlbiB0cnVu
Y2F0ZSBpdC4KKyAgICBpZiAobGVuZ3RoID4gTWF4VmlicmF0aW9uUGF0dGVybkxlbmd0aCkgewor
ICAgICAgICBzYW5pdGl6ZWQuc2hyaW5rKE1heFZpYnJhdGlvblBhdHRlcm5MZW5ndGgpOworICAg
ICAgICBsZW5ndGggPSBNYXhWaWJyYXRpb25QYXR0ZXJuTGVuZ3RoOworICAgIH0KIAotICAgIG1f
cGF0dGVybiA9IHBhdHRlcm47Ci0gICAgaWYgKGxlbmd0aCAmJiAhKGxlbmd0aCAlIDIpKQotICAg
ICAgICBtX3BhdHRlcm4ucmVtb3ZlTGFzdCgpOworICAgIC8vIElmIHRoZSBsZW5ndGggb2YgcGF0
dGVybiBpcyBldmVuIGFuZCBpcyBub3QgemVybywgdGhlbiByZW1vdmUgdGhlIGxhc3QgZW50cnkg
aW4gcGF0dGVybi4KKyAgICBpZiAobGVuZ3RoICYmICEobGVuZ3RoICUgMikpIHsKKyAgICAgICAg
c2FuaXRpemVkLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgbGVuZ3RoLS07CisgICAgfQogCi0gICAg
Ly8gUHJlLWV4c2l0aW5nIGluc3RhbmNlIG5lZWQgdG8gYmUgY2FuY2VsZWQgd2hlbiB2aWJyYXRp
b24gaXMgY2FsbGVkLgotICAgIC8vIEFuZCBpZiB0aW1lIGlzIDAsIHZpYnJhdGlvbiBoYXZlIHRv
IGJlIGNhbmNlbGVkIGFsc28uCi0gICAgaWYgKG1faXNWaWJyYXRpbmcgfHwgKG1fcGF0dGVybi5z
aXplKCkgPT0gMSAmJiAhbV9wYXR0ZXJuWzBdKSkKKyAgICAvLyBJZiBhbnkgcGF0dGVybiBlbnRy
eSBpcyB0b28gbG9uZyB0aGVuIHRydW5jYXRlIGl0LgorICAgIGZvciAoYXV0byYgZHVyYXRpb24g
OiBzYW5pdGl6ZWQpCisgICAgICAgIGR1cmF0aW9uID0gc3RkOjptaW4oZHVyYXRpb24sIE1heFZp
YnJhdGlvbkR1cmF0aW9uKTsKKworICAgIC8vIFByZS1leGlzaXRpbmcgaW5zdGFuY2UgbmVlZCB0
byBiZSBjYW5jZWxlZCB3aGVuIHZpYnJhdGUoKSBpcyBjYWxsZWQuCisgICAgaWYgKGlzVmlicmF0
aW5nKCkpCiAgICAgICAgIGNhbmNlbFZpYnJhdGlvbigpOwogCi0gICAgaWYgKCFtX3BhdHRlcm4u
c2l6ZSgpKQorICAgIC8vIElmIHBhdHRlcm4gaXMgYW4gZW1wdHkgbGlzdCwgdGhlbiByZXR1cm4g
dHJ1ZSBhbmQgdGVybWluYXRlIHRoZXNlIHN0ZXBzLgorICAgIGlmICghbGVuZ3RoIHx8IChsZW5n
dGggPT0gMSAmJiAhc2FuaXRpemVkWzBdKSkgeworICAgICAgICBjYW5jZWxWaWJyYXRpb24oKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCi0gICAgbV90aW1lclN0YXJ0LnN0YXJ0T25l
U2hvdCgwKTsKLSAgICBtX2lzVmlicmF0aW5nID0gdHJ1ZTsKKyAgICBtX3BhdHRlcm4gPSBzYW5p
dGl6ZWQ7CisKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogdm9pZCBWaWJyYXRpb246OmNhbmNlbFZpYnJhdGlvbigpCiB7CiAgICAgbV9wYXR0ZXJu
LmNsZWFyKCk7Ci0gICAgaWYgKG1faXNWaWJyYXRpbmcpCi0gICAgICAgIHN0b3BWaWJyYXRpb24o
KTsKLX0KLQotdm9pZCBWaWJyYXRpb246OnN1c3BlbmRWaWJyYXRpb24oKQotewotICAgIGlmICgh
bV9pc1ZpYnJhdGluZykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wYXR0ZXJuLmluc2VydCgw
LCBtX3RpbWVyU3RvcC5uZXh0RmlyZUludGVydmFsKCkpOwotICAgIHN0b3BWaWJyYXRpb24oKTsK
LX0KLQotdm9pZCBWaWJyYXRpb246OnJlc3VtZVZpYnJhdGlvbigpCi17Ci0gICAgbV90aW1lclN0
YXJ0LnN0YXJ0T25lU2hvdCgwKTsKLSAgICBtX2lzVmlicmF0aW5nID0gdHJ1ZTsKLX0KLQotdm9p
ZCBWaWJyYXRpb246OnN0b3BWaWJyYXRpb24oKQotewotICAgIG1fdGltZXJTdGFydC5zdG9wKCk7
Ci0gICAgbV90aW1lclN0b3Auc3RvcCgpOwotICAgIG1fdmlicmF0aW9uQ2xpZW50LT5jYW5jZWxW
aWJyYXRpb24oKTsKLSAgICBtX2lzVmlicmF0aW5nID0gZmFsc2U7CisgICAgaWYgKGlzVmlicmF0
aW5nKCkpIHsKKyAgICAgICAgbV90aW1lci5zdG9wKCk7CisgICAgICAgIG1fc3RhdGUgPSBTdGF0
ZTo6SWRsZTsKKyAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPmNhbmNlbFZpYnJhdGlvbigpOwor
ICAgIH0KIH0KIAotdm9pZCBWaWJyYXRpb246OnRpbWVyU3RhcnRGaXJlZChUaW1lcjxWaWJyYXRp
b24+KiB0aW1lcikKK3ZvaWQgVmlicmF0aW9uOjp0aW1lckZpcmVkKFRpbWVyPFZpYnJhdGlvbj4q
IHRpbWVyKQogewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyU3Rh
cnQpOworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKIAotICAg
IG1fdGltZXJTdGFydC5zdG9wKCk7CisgICAgbV90aW1lci5zdG9wKCk7CiAKLSAgICBpZiAoIW1f
cGF0dGVybi5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV92aWJyYXRpb25DbGllbnQtPnZpYnJhdGUo
bV9wYXR0ZXJuWzBdKTsKLSAgICAgICAgbV90aW1lclN0b3Auc3RhcnRPbmVTaG90KG1fcGF0dGVy
blswXSAvIDEwMDAuMCk7Ci0gICAgICAgIG1fcGF0dGVybi5yZW1vdmUoMCk7CisgICAgaWYgKG1f
cGF0dGVybi5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpJZGxlOworICAg
ICAgICByZXR1cm47CiAgICAgfQotfQotCi12b2lkIFZpYnJhdGlvbjo6dGltZXJTdG9wRmlyZWQo
VGltZXI8VmlicmF0aW9uPiogdGltZXIpCi17Ci0gICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGlt
ZXIgPT0gJm1fdGltZXJTdG9wKTsKLQotICAgIG1fdGltZXJTdG9wLnN0b3AoKTsKIAotICAgIGlm
ICghbV9wYXR0ZXJuLmlzRW1wdHkoKSkgewotICAgICAgICBtX3RpbWVyU3RhcnQuc3RhcnRPbmVT
aG90KG1fcGF0dGVyblswXSAvIDEwMDAuMCk7Ci0gICAgICAgIG1fcGF0dGVybi5yZW1vdmUoMCk7
Ci0gICAgICAgIGlmIChtX3BhdHRlcm4uaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9pc1ZpYnJh
dGluZyA9IGZhbHNlOworICAgIHN3aXRjaCAobV9zdGF0ZSkgeworICAgIGNhc2UgU3RhdGU6OlZp
YnJhdGluZzoKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpXYWl0aW5nOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFN0YXRlOjpXYWl0aW5nOgorICAgIGNhc2UgU3RhdGU6OklkbGU6CisgICAg
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6VmlicmF0aW5nOworICAgICAgICBtX3ZpYnJhdGlvbkNsaWVu
dC0+dmlicmF0ZShtX3BhdHRlcm5bMF0pOworICAgICAgICBicmVhazsKICAgICB9CisgICAgbV90
aW1lci5zdGFydE9uZVNob3QobV9wYXR0ZXJuWzBdIC8gMTAwMC4wKTsKKyAgICBtX3BhdHRlcm4u
cmVtb3ZlKDApOwogfQogCiBjb25zdCBjaGFyKiBWaWJyYXRpb246OnN1cHBsZW1lbnROYW1lKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL1ZpYnJhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vVmlicmF0aW9uLmgKaW5kZXggZTU0
MDgzYTc5YjcyNGI5ZGY2MDI1Yjg3ODJkMDgzNTVjZmEwNTc2YS4uZWVmNTJmZjAxYmU2MzVmNzY2
YjU3NTk0M2JjM2MxY2U4NWJjNDg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy92aWJyYXRpb24vVmlicmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJy
YXRpb24vVmlicmF0aW9uLmgKQEAgLTQwLDI2ICs0MCwyMiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8VmlicmF0aW9uPiBjcmVhdGUoVmlicmF0aW9uQ2xpZW50Kik7CiAKICAgICBi
b29sIHZpYnJhdGUoY29uc3QgVmlicmF0aW9uUGF0dGVybiYpOworICAgIC8vIEZJWE1FOiBXaGVu
IGEgdmlzaWJpbGl0eWNoYW5nZSBldmVudCBpcyBkaXNwYXRjaGVkIHdoaWxlIHZpYnJhdGluZywg
dGhlIHZpYnJhdGlvbiBzaG91bGQgYmUgY2FuY2VsZWQuCiAgICAgdm9pZCBjYW5jZWxWaWJyYXRp
b24oKTsKIAotICAgIC8vIEZJWE1FIDogQWRkIHN1c3BlbmRWaWJyYXRpb24oKSBhbmQgcmVzdW1l
VmlicmF0aW9uKCkgdG8gdGhlIHBhZ2UgdmlzaWJpbGl0eSBmZWF0dXJlLCB3aGVuIHRoZSBkb2N1
bWVudC5oaWRkZW4gYXR0cmlidXRlIGlzIGNoYW5nZWQuCi0gICAgdm9pZCBzdXNwZW5kVmlicmF0
aW9uKCk7Ci0gICAgdm9pZCByZXN1bWVWaWJyYXRpb24oKTsKLSAgICB2b2lkIHRpbWVyU3RhcnRG
aXJlZChUaW1lcjxWaWJyYXRpb24+Kik7Ci0gICAgdm9pZCB0aW1lclN0b3BGaXJlZChUaW1lcjxW
aWJyYXRpb24+Kik7CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFZpYnJhdGlvbj4qKTsKIAog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogICAgIHN0YXRpYyBWaWJy
YXRpb24qIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VmlicmF0aW9uKj4o
U3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KIAotICAg
IGJvb2wgaXNWaWJyYXRpbmcoKSB7IHJldHVybiBtX2lzVmlicmF0aW5nOyB9CisgICAgYm9vbCBp
c1ZpYnJhdGluZygpIHsgcmV0dXJuIG1fc3RhdGUgIT0gU3RhdGU6OklkbGU7IH0KIAogcHJpdmF0
ZToKLSAgICB2b2lkIHN0b3BWaWJyYXRpb24oKTsKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsgSWRs
ZSwgVmlicmF0aW5nLCBXYWl0aW5nIH07CiAKICAgICBWaWJyYXRpb25DbGllbnQqIG1fdmlicmF0
aW9uQ2xpZW50OwotICAgIFRpbWVyPFZpYnJhdGlvbj4gbV90aW1lclN0YXJ0OwotICAgIFRpbWVy
PFZpYnJhdGlvbj4gbV90aW1lclN0b3A7Ci0gICAgYm9vbCBtX2lzVmlicmF0aW5nOworICAgIFRp
bWVyPFZpYnJhdGlvbj4gbV90aW1lcjsKKyAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFZpYnJhdGlv
blBhdHRlcm4gbV9wYXR0ZXJuOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCmluZGV4IGJkZmQ3ODE5
OTU0MTNhYTg2OWQzNWM4NWMzNDg1NDcxNWQzMTZmOTQuLjJkYzU2NWJlYzgwZjJmNzQyNjdiZmU4
ZTUzNzRjMzA1MTU2ZTUxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKQEAgLTkyOCwyMyArOTI4LDM0
IEBAIFRFU1RfRihFV0syVmlld1Rlc3QsIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2Fs
bGJhY2tzX3NldCkKICAgICAvLyBWaWJyYXRlIGZvciA1IHNlY29uZHMuCiAgICAgbG9hZFZpYnJh
dGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiNTAwMCIsICZkYXRhKTsKICAgICB3YWl0VW50aWxU
cnVlKGRhdGEudGVzdEZpbmlzaGVkKTsKLSAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVW
aWJyYXRlKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRlICYmICFkYXRh
LmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOwogCiAgICAgLy8gQ2FuY2VsIGFueSBleGlzdGlu
ZyB2aWJyYXRpb25zLgogICAgIGxvYWRWaWJyYXRpb25IVE1MU3RyaW5nKHdlYlZpZXcoKSwgIjAi
LCAmZGF0YSk7CiAgICAgd2FpdFVudGlsVHJ1ZShkYXRhLnRlc3RGaW5pc2hlZCk7Ci0gICAgQVNT
RVJUX1RSVUUoZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKyAgICBBU1NFUlRfVFJV
RSghZGF0YS5kaWRSZWNlaXZlVmlicmF0ZSAmJiBkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRp
b24pOwogCiAgICAgLy8gVGhpcyBjYXNlIHRoZSBwYXR0ZXJuIHdpbGwgY2F1c2UgdGhlIGRldmlj
ZSB0byB2aWJyYXRlIGZvciAyMDAgbXMsIGJlIHN0aWxsIGZvciAxMDAgbXMsIGFuZCB0aGVuIHZp
YnJhdGUgZm9yIDUwMDAgbXMuCiAgICAgbG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygp
LCAiWzIwMCwgMTAwLCA1MDAwXSIsICZkYXRhKTsKICAgICB3YWl0VW50aWxUcnVlKGRhdGEudGVz
dEZpbmlzaGVkKTsKICAgICBBU1NFUlRfRVEoMiwgZGF0YS52aWJyYXRlQ2FsbGVkQ291bnQpOwot
ICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUpOworICAgIEFTU0VSVF9UUlVF
KGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEuZGlkUmVjZWl2ZUNhbmNlbFZpYnJhdGlv
bik7CiAKICAgICAvLyBDYW5jZWwgb3V0c3RhbmRpbmcgdmlicmF0aW9uIHBhdHRlcm4uCiAgICAg
bG9hZFZpYnJhdGlvbkhUTUxTdHJpbmcod2ViVmlldygpLCAiWzBdIiwgJmRhdGEpOwogICAgIHdh
aXRVbnRpbFRydWUoZGF0YS50ZXN0RmluaXNoZWQpOwotICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlk
UmVjZWl2ZUNhbmNlbFZpYnJhdGlvbik7CisgICAgQVNTRVJUX1RSVUUoIWRhdGEuZGlkUmVjZWl2
ZVZpYnJhdGUgJiYgZGF0YS5kaWRSZWNlaXZlQ2FuY2VsVmlicmF0aW9uKTsKKworICAgIC8vIENo
ZWNrIHRoYXQgdmlicmF0aW9uIHdvcmtzIHByb3Blcmx5IGJ5IGNvbnRpbnVvdXMgcmVxdWVzdC4K
KyAgICBkYXRhLmV4cGVjdGVkVmlicmF0aW9uVGltZSA9IDU7CisgICAgbG9hZFZpYnJhdGlvbkhU
TUxTdHJpbmcod2ViVmlldygpLCAiNSIsICZkYXRhKTsKKyAgICB3YWl0VW50aWxUcnVlKGRhdGEu
dGVzdEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmRpZFJlY2VpdmVWaWJyYXRlICYm
ICFkYXRhLmRpZFJlY2VpdmVDYW5jZWxWaWJyYXRpb24pOworCisgICAgbG9hZFZpYnJhdGlvbkhU
TUxTdHJpbmcod2ViVmlldygpLCAiNSIsICZkYXRhKTsKKyAgICB3YWl0VW50aWxUcnVlKGRhdGEu
dGVzdEZpbmlzaGVkKTsKKyAgICBBU1NFUlRfRVEoMSwgZGF0YS52aWJyYXRlQ2FsbGVkQ291bnQp
OworICAgIEFTU0VSVF9UUlVFKGRhdGEuZGlkUmVjZWl2ZVZpYnJhdGUgJiYgIWRhdGEuZGlkUmVj
ZWl2ZUNhbmNlbFZpYnJhdGlvbik7CiAKICAgICAvLyBTdG9wIGxpc3RlbmluZyBmb3IgdmlicmF0
aW9uIGV2ZW50cywgYnkgY2FsbGluZyB0aGUgZnVuY3Rpb24gd2l0aCBudWxsIGZvciB0aGUgY2Fs
bGJhY2tzLgogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbCh3ZWJWaWV3KCksICJ2
aWJyYXRlIiwgb25WaWJyYXRlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>