<?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>89842</bug_id>
          
          <creation_ts>2012-06-24 17:52:53 -0700</creation_ts>
          <short_desc>[EFL] Move codes related to theme setting from Widget to RenderTheme</short_desc>
          <delta_ts>2012-07-17 00:52:52 -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>WebKit EFL</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>
          
          <blocked>90788</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>cshu</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>656300</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-24 17:52:53 -0700</bug_when>
    <thetext>WebKit/Efl uses custom theme for Scrollbar, RenderTheme, Cursor.
However, Theme information itself is in WidgetEfl so it is accessed by calling recursive function.

Because theme can be managed by each page,
we&apos;d better to move it to RenderThemeEfl which page contains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656316</commentid>
    <comment_count>1</comment_count>
      <attachid>149222</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-24 18:45:12 -0700</bug_when>
    <thetext>Created attachment 149222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657150</commentid>
    <comment_count>2</comment_count>
      <attachid>149222</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-25 18:58:51 -0700</bug_when>
    <thetext>Comment on attachment 149222
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Because theme is managed by each page, this patch moves theme related codes

I don&apos;t understand below sentence.

*theme related codes*, Do you mean you move codes related to theme setting ?

&gt; Source/WebKit/efl/ChangeLog:8
&gt; +        Call RenderThemeEfl::setThemePath instaed of setting theme of FrameView.

s/instaed/instead/g

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:626
&gt; +        m_canvas = ecore_evas_buffer_new(1, 1);

Are you sure that ecore_evas_buffer_new never returns null ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659281</commentid>
    <comment_count>3</comment_count>
      <attachid>149892</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-28 00:10:48 -0700</bug_when>
    <thetext>Created attachment 149892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659283</commentid>
    <comment_count>4</comment_count>
      <attachid>149893</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-28 00:12:08 -0700</bug_when>
    <thetext>Created attachment 149893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659285</commentid>
    <comment_count>5</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-28 00:14:01 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 149222 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149222&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        Because theme is managed by each page, this patch moves theme related codes
&gt; 
&gt; I don&apos;t understand below sentence.
&gt; 
&gt; *theme related codes*, Do you mean you move codes related to theme setting ?
&gt; 
OK, I changed it like you mentioned.

&gt; &gt; Source/WebKit/efl/ChangeLog:8
&gt; &gt; +        Call RenderThemeEfl::setThemePath instaed of setting theme of FrameView.
&gt; 
&gt; s/instaed/instead/g
Fixed.

&gt; 
&gt; &gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:626
&gt; &gt; +        m_canvas = ecore_evas_buffer_new(1, 1);
&gt; 
&gt; Are you sure that ecore_evas_buffer_new never returns null ?
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659313</commentid>
    <comment_count>6</comment_count>
      <attachid>149893</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-28 01:18:31 -0700</bug_when>
    <thetext>Comment on attachment 149893
Patch

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

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:628
&gt; +            ASSERT(m_canvas);

What&apos;s the point of this ASSERT? You already know that m_canvas is NULL. Maybe you want ASSERT_NOT_REACHED(); ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659332</commentid>
    <comment_count>7</comment_count>
      <attachid>149903</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-28 01:43:57 -0700</bug_when>
    <thetext>Created attachment 149903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659334</commentid>
    <comment_count>8</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-06-28 01:44:33 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 149893 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149893&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:628
&gt; &gt; +            ASSERT(m_canvas);
&gt; 
&gt; What&apos;s the point of this ASSERT? You already know that m_canvas is NULL. Maybe you want ASSERT_NOT_REACHED(); ?

Make sense, I changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660067</commentid>
    <comment_count>9</comment_count>
      <attachid>149903</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-06-28 19:35:15 -0700</bug_when>
    <thetext>Comment on attachment 149903
Patch

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

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-460
&gt; -    else {
&gt; -        m_edje = edje_object_add(ecore_evas_get(m_canvas));
&gt; -        if (!m_edje)
&gt; -            EINA_LOG_ERR(&quot;Could not create base edje object.&quot;);
&gt; -        else if (!edje_object_file_set(m_edje, theme.utf8().data(), &quot;webkit/base&quot;)) {
&gt; -            Edje_Load_Error err = edje_object_load_error_get(m_edje);
&gt; -            const char* errmsg = edje_load_error_str(err);
&gt; -            EINA_LOG_ERR(&quot;Could not load &apos;webkit/base&apos; from theme %s: %s&quot;,
&gt; -                         theme.utf8().data(), errmsg);
&gt; -            evas_object_del(m_edje);
&gt; -            m_edje = 0;
&gt; -        } else {
&gt; -#define CONNECT(cc, func)                                               \
&gt; -            edje_object_signal_callback_add(m_edje, &quot;color_class,set&quot;,  \
&gt; -                                            &quot;webkit/&quot;cc, func, this)
&gt; -
&gt; -            CONNECT(&quot;selection/active&quot;,
&gt; -                    renderThemeEflColorClassSelectionActive);
&gt; -            CONNECT(&quot;selection/inactive&quot;,
&gt; -                    renderThemeEflColorClassSelectionInactive);
&gt; -            CONNECT(&quot;focus_ring&quot;, renderThemeEflColorClassFocusRing);

As much as getting rid of the useless else block makes sense, it&apos;s unrelated to the purpose of this patch.

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-664
&gt; -    if (page &amp;&amp; page-&gt;mainFrame() &amp;&amp; page-&gt;mainFrame()-&gt;view())
&gt; -        themeChanged();

Why is this not needed anymore?

&gt; Source/WebCore/platform/efl/ScrollbarEfl.cpp:101
&gt; -    if (!object) {
&gt; -        if (!view || !view-&gt;evas() || !view-&gt;evasObject())
&gt; -            return;
&gt; +    if (!view || !view-&gt;evas() || !view-&gt;evasObject())
&gt; +        return;
&gt;  
&gt; +    if (!object) {

Ditto.

&gt; Source/WebCore/platform/efl/ScrollbarEfl.cpp:-112
&gt; -    } else if (!view || !view-&gt;evas() || !view-&gt;evasObject()) {
&gt; -        evas_object_hide(object);
&gt; -        return;

Why is this not needed anymore?

&gt; Source/WebKit/CMakeLists.txt:19
&gt; +    &quot;${WEBCORE_DIR}/html/shadow&quot;

What&apos;s needed from here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661211</commentid>
    <comment_count>10</comment_count>
      <attachid>149903</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-01 18:02:16 -0700</bug_when>
    <thetext>Comment on attachment 149903
Patch

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

&gt;&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-460
&gt;&gt; -            CONNECT(&quot;focus_ring&quot;, renderThemeEflColorClassFocusRing);
&gt; 
&gt; As much as getting rid of the useless else block makes sense, it&apos;s unrelated to the purpose of this patch.

Yes, this is some refactoring and it&apos;s not related to this bug.

I will remain as it is.

&gt;&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-664
&gt;&gt; -        themeChanged();
&gt; 
&gt; Why is this not needed anymore?

In previous implementation,
RenderThemeEfl does not have theme path so that it should try to get path from root widget of view.
After this change,
RenderThemeEfl itself contains theme path so that it can control when theme is really changed.

Indeed, we can not set theme path before creating RenderThemeEfl 
because ewk_view, Page and RenderTheme is created sequentially before setting theme.

&gt;&gt; Source/WebCore/platform/efl/ScrollbarEfl.cpp:101
&gt;&gt; +    if (!object) {
&gt; 
&gt; Ditto.

This is not related to this bug.
I will remain as it is.

&gt;&gt; Source/WebCore/platform/efl/ScrollbarEfl.cpp:-112
&gt;&gt; -        return;
&gt; 
&gt; Why is this not needed anymore?

Ditto.

&gt;&gt; Source/WebKit/CMakeLists.txt:19
&gt;&gt; +    &quot;${WEBCORE_DIR}/html/shadow&quot;
&gt; 
&gt; What&apos;s needed from here?

RenderThemeEfl requires this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661212</commentid>
    <comment_count>11</comment_count>
      <attachid>150350</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-01 18:11:52 -0700</bug_when>
    <thetext>Created attachment 150350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663330</commentid>
    <comment_count>12</comment_count>
      <attachid>150350</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-04 23:26:29 -0700</bug_when>
    <thetext>Comment on attachment 150350
Patch

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

&gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-437
&gt; -    String theme = view ? view-&gt;edjeThemeRecursive() : &quot;&quot;;

I wonder whether m_themePath has initial value. It seems that existing implementation has an init path by default.
For example,
 =&gt;  /home/gyuyoung/webkit/WebKit/WebKitBuild/Release/WebKit/efl/DefaultTheme/default.edj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663364</commentid>
    <comment_count>13</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-05 00:24:30 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 150350 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150350&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-437
&gt; &gt; -    String theme = view ? view-&gt;edjeThemeRecursive() : &quot;&quot;;
&gt; 
&gt; I wonder whether m_themePath has initial value. It seems that existing implementation has an init path by default.
&gt; For example,
&gt;  =&gt;  /home/gyuyoung/webkit/WebKit/WebKitBuild/Release/WebKit/efl/DefaultTheme/default.edj

No, It does not have initial value.
It&apos;s same as current implementation.

If you tested EWebLauncher, EWebLauncher calle ewk_view_theme_set.
http://trac.webkit.org/browser/trunk/Tools/EWebLauncher/main.c#L675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663371</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-05 00:53:51 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 150350 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150350&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/efl/RenderThemeEfl.cpp:-437
&gt; &gt; &gt; -    String theme = view ? view-&gt;edjeThemeRecursive() : &quot;&quot;;
&gt; &gt; 
&gt; &gt; I wonder whether m_themePath has initial value. It seems that existing implementation has an init path by default.
&gt; &gt; For example,
&gt; &gt;  =&gt;  /home/gyuyoung/webkit/WebKit/WebKitBuild/Release/WebKit/efl/DefaultTheme/default.edj
&gt; 
&gt; No, It does not have initial value.
&gt; It&apos;s same as current implementation.
&gt; 
&gt; If you tested EWebLauncher, EWebLauncher calle ewk_view_theme_set.
&gt; http://trac.webkit.org/browser/trunk/Tools/EWebLauncher/main.c#L675

If so, looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663560</commentid>
    <comment_count>15</comment_count>
      <attachid>150350</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-07-05 07:59:44 -0700</bug_when>
    <thetext>Comment on attachment 150350
Patch

Looks good to me as well, provided there are no pixel test regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663758</commentid>
    <comment_count>16</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-05 15:45:48 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 150350 [details])
&gt; Looks good to me as well, provided there are no pixel test regressions.

In my local, I tried pixel tests of fast/forms with and without patch.
They return same pass rate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663993</commentid>
    <comment_count>17</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-07-06 03:55:25 -0700</bug_when>
    <thetext>Nice, much better results for WTR
&quot;29439 tests ran as expected, 833 didn&apos;t&quot; (Details: http://pastebin.com/cE9nH6qA)
when combining this one with bug 90107.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671021</commentid>
    <comment_count>18</comment_count>
      <attachid>152701</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-16 23:29:12 -0700</bug_when>
    <thetext>Created attachment 152701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671023</commentid>
    <comment_count>19</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-16 23:30:30 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Nice, much better results for WTR
&gt; &quot;29439 tests ran as expected, 833 didn&apos;t&quot; (Details: http://pastebin.com/cE9nH6qA)
&gt; when combining this one with bug 90107.

I updated because bug 90107 was landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671059</commentid>
    <comment_count>20</comment_count>
      <attachid>152701</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 00:52:45 -0700</bug_when>
    <thetext>Comment on attachment 152701
Patch

Clearing flags on attachment: 152701

Committed r122817: &lt;http://trac.webkit.org/changeset/122817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671060</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-17 00:52:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149222</attachid>
            <date>2012-06-24 18:45:12 -0700</date>
            <delta_ts>2012-06-28 00:10:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89842-20120625104509.patch</filename>
            <type>text/plain</type>
            <size>13478</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUwYTQzYTIyM2JiOTg2
OTE3MmMxZmRhOGM5NTdlZWZkZWY4ZjcxYS4uMWY5MTZmZTg4ZmRkOWVmNjJkYWJmNjc1MjM0NzFm
NDU0YTk3YzkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA2LTI0ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIHRo
ZW1lIHJlbGF0ZWQgY29kZXMgZnJvbSBXaWRnZXQgdG8gUmVuZGVyVGhlbWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5ODQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0L0VmbCB1c2VzIGN1c3Rv
bSB0aGVtZSBmb3IgU2Nyb2xsYmFyLCBSZW5kZXJUaGVtZSwgQ3Vyc29yLgorICAgICAgICBIb3dl
dmVyLCB0aGVtZSBpbmZvcm1hdGlvbiBpdHNlbGYgaXMgaW4gV2lkZ2V0RWZsIHNvIGl0IGlzIGFj
Y2Vzc2VkIGJ5CisgICAgICAgIGNhbGxpbmcgcmVjdXJzaXZlIGZ1bmN0aW9uLgorICAgICAgICBC
ZWNhdXNlIHRoZW1lIGlzIG1hbmFnZWQgYnkgZWFjaCBwYWdlLCB0aGlzIHBhdGNoIG1vdmVzIHRo
ZW1lIHJlbGF0ZWQgY29kZXMKKyAgICAgICAgZnJvbSBXaWRnZXRFZmwgdG8gUmVuZGVyVGhlbWVF
Zmwgd2hpY2ggaXMgY29udGFpbmVkIGJ5IHBhZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0g
bm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6Cisg
ICAgICAgIChXaWRnZXQpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6c2V0VGhlbWVQYXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpjcmVhdGVFZGplKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lRWZsOjp0aGVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVFZmw6OlJlbmRlclRoZW1lRWZsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKFJlbmRlclRoZW1lRWZsKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lRWZsOjp0aGVtZVBhdGgpOgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9TY3JvbGxiYXJFZmwuY3BwOgorICAgICAgICAoU2Nyb2xsYmFyRWZsOjpzZXRQYXJlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwOgorICAgICAgICAoV2lkZ2V0UHJp
dmF0ZSk6CisKIDIwMTItMDYtMjQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIE9wdGltaXplIFJlbmRlckdlb21ldHJ5TWFwIG1hcHBpbmdzIGdhdGhlcmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBjZGYyZWJjNGFhZjk1ZTRiNGIzODBiNjQwZTg0YTdkMDBiMTIzOGZiLi42Y2Jm
ODhmY2Q3Yjg5OWMxYzU5Yzc5MTEwNjk2YThlNzk2YTE4ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEyLTA2LTI0ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXSBNb3ZlIHRoZW1lIHJlbGF0ZWQgY29kZXMgZnJvbSBXaWRnZXQgdG8g
UmVuZGVyVGhlbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5ODQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIGh0bWwvc2hhZG93IHRvIFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTLgorCiAyMDEyLTA2LTIyICBKb3NodWEgTmV0dGVyZmllbGQgIDxqbmV0dGVyZmll
bGRAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gU2FuaXRpemUgR0xTTCBjb2RlIHVz
aW5nIEFOR0xFLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDIyNzNiYjM0Y2JiYmNmNzgzOTU1NDM2Nzg2
ZTYyMzY2NDExOGY0YzAuLjAwMjI2NTk3NjRkNGE5NjU5MTEwMmFkOThiNDY4OGNjNWRlYTcwYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNi0yNCAgUnl1YW4gQ2hv
aSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gTW92ZSB0aGVtZSBy
ZWxhdGVkIGNvZGVzIGZyb20gV2lkZ2V0IHRvIFJlbmRlclRoZW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTg0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgUmVuZGVyVGhlbWVFZmw6OnNldFRo
ZW1lUGF0aCBpbnN0YWVkIG9mIHNldHRpbmcgdGhlbWUgb2YgRnJhbWVWaWV3LgorCisgICAgICAg
ICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfdmlld19jcmVhdGVfZm9y
X3ZpZXcpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld190
aGVtZV9zZXQpOgorCiAyMDEyLTA2LTIzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIxMDU4Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCBmYmIwMDIwYzdiZDUxMmE5MGNjMzdiZTYzZTVi
OWI1YmJjY2RhYTY1Li4zNDViMzIxY2Y4ZjJkZTEyYzNlODJkZmMyYmFmZTQyMDZhYjFhNjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtMjIxLDEwICsyMjEsNiBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldEV2YXNPYmplY3QoRXZhc19PYmplY3QqKTsKICAgICBFdmFzX09iamVjdCog
ZXZhc09iamVjdCgpIGNvbnN0OwotCi0gICAgY29uc3QgU3RyaW5nIGVkamVUaGVtZSgpIGNvbnN0
OwotICAgIHZvaWQgc2V0RWRqZVRoZW1lKGNvbnN0IFN0cmluZyAmKTsKLSAgICBjb25zdCBTdHJp
bmcgZWRqZVRoZW1lUmVjdXJzaXZlKCkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5j
cHAKaW5kZXggN2QyN2I5NmQwYTQwMzhmYzRjYTM1YWZlNTZhNzJiMTMxYzEzNTg2Ny4uYjRiNTNm
NDIzODc3NjAzNGI3MjQ0ZWU4MTFlOTU4MjU5ZDU4OWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0yNyw5ICsyNyw2IEBACiAjaW5j
bHVkZSAiUmVuZGVyVGhlbWVFZmwuaCIKIAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIK
LSNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKQEAgLTQyMiw0NSAr
NDE5LDQyIEBAIHN0YXRpYyB2b2lkIHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc0ZvY3VzUmluZyh2
b2lkKiBkYXRhLCBFdmFzX09iamVjdCogb2JqZWN0LCBjCiAgICAgdGhhdC0+c2V0Rm9jdXNSaW5n
Q29sb3IoZnIsIGZnLCBmYiwgZmEpOwogfQogCi12b2lkIFJlbmRlclRoZW1lRWZsOjpjcmVhdGVD
YW52YXMoKQordm9pZCBSZW5kZXJUaGVtZUVmbDo6c2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYg
cGF0aCkKIHsKLSAgICBBU1NFUlQoIW1fY2FudmFzKTsKLSAgICBtX2NhbnZhcyA9IGVjb3JlX2V2
YXNfYnVmZmVyX25ldygxLCAxKTsKLSAgICBBU1NFUlQobV9jYW52YXMpOworICAgIGlmIChwYXRo
ID09IG1fdGhlbWVQYXRoKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RoZW1lUGF0aCA9IHBh
dGg7CisgICAgdGhlbWVDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmNyZWF0
ZUVkamUoKQogewogICAgIEFTU0VSVCghbV9lZGplKTsKLSAgICBGcmFtZSogZnJhbWUgPSBtX3Bh
Z2UgPyBtX3BhZ2UtPm1haW5GcmFtZSgpIDogMDsKLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFt
ZSA/IGZyYW1lLT52aWV3KCkgOiAwOwotICAgIFN0cmluZyB0aGVtZSA9IHZpZXcgPyB2aWV3LT5l
ZGplVGhlbWVSZWN1cnNpdmUoKSA6ICIiOwotICAgIGlmICh0aGVtZS5pc0VtcHR5KCkpCisgICAg
aWYgKG1fdGhlbWVQYXRoLmlzRW1wdHkoKSkgewogICAgICAgICBFSU5BX0xPR19FUlIoIk5vIHRo
ZW1lIGRlZmluZWQsIHVuYWJsZSB0byBzZXQgUmVuZGVyVGhlbWVFZmwuIik7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIG1fZWRqZSA9IGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChtX2NhbnZh
cykpOwotICAgICAgICBpZiAoIW1fZWRqZSkKLSAgICAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291
bGQgbm90IGNyZWF0ZSBiYXNlIGVkamUgb2JqZWN0LiIpOwotICAgICAgICBlbHNlIGlmICghZWRq
ZV9vYmplY3RfZmlsZV9zZXQobV9lZGplLCB0aGVtZS51dGY4KCkuZGF0YSgpLCAid2Via2l0L2Jh
c2UiKSkgewotICAgICAgICAgICAgRWRqZV9Mb2FkX0Vycm9yIGVyciA9IGVkamVfb2JqZWN0X2xv
YWRfZXJyb3JfZ2V0KG1fZWRqZSk7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBlcnJtc2cgPSBl
ZGplX2xvYWRfZXJyb3Jfc3RyKGVycik7Ci0gICAgICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxk
IG5vdCBsb2FkICd3ZWJraXQvYmFzZScgZnJvbSB0aGVtZSAlczogJXMiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoZW1lLnV0ZjgoKS5kYXRhKCksIGVycm1zZyk7Ci0gICAgICAgICAgICBl
dmFzX29iamVjdF9kZWwobV9lZGplKTsKLSAgICAgICAgICAgIG1fZWRqZSA9IDA7Ci0gICAgICAg
IH0gZWxzZSB7Ci0jZGVmaW5lIENPTk5FQ1QoY2MsIGZ1bmMpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBlZGplX29iamVjdF9zaWdu
YWxfY2FsbGJhY2tfYWRkKG1fZWRqZSwgImNvbG9yX2NsYXNzLHNldCIsICBcCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZWJraXQvImNjLCBmdW5jLCB0aGlz
KQotCi0gICAgICAgICAgICBDT05ORUNUKCJzZWxlY3Rpb24vYWN0aXZlIiwKLSAgICAgICAgICAg
ICAgICAgICAgcmVuZGVyVGhlbWVFZmxDb2xvckNsYXNzU2VsZWN0aW9uQWN0aXZlKTsKLSAgICAg
ICAgICAgIENPTk5FQ1QoInNlbGVjdGlvbi9pbmFjdGl2ZSIsCi0gICAgICAgICAgICAgICAgICAg
IHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc1NlbGVjdGlvbkluYWN0aXZlKTsKLSAgICAgICAgICAg
IENPTk5FQ1QoImZvY3VzX3JpbmciLCByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NGb2N1c1Jpbmcp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9lZGplID0gZWRqZV9vYmplY3RfYWRk
KGVjb3JlX2V2YXNfZ2V0KG1fY2FudmFzKSk7CisgICAgaWYgKCFtX2VkamUpCisgICAgICAgIEVJ
TkFfTE9HX0VSUigiQ291bGQgbm90IGNyZWF0ZSBiYXNlIGVkamUgb2JqZWN0LiIpOworICAgIGVs
c2UgaWYgKCFlZGplX29iamVjdF9maWxlX3NldChtX2VkamUsIG1fdGhlbWVQYXRoLnV0ZjgoKS5k
YXRhKCksICJ3ZWJraXQvYmFzZSIpKSB7CisgICAgICAgIEVkamVfTG9hZF9FcnJvciBlcnIgPSBl
ZGplX29iamVjdF9sb2FkX2Vycm9yX2dldChtX2VkamUpOworICAgICAgICBjb25zdCBjaGFyKiBl
cnJtc2cgPSBlZGplX2xvYWRfZXJyb3Jfc3RyKGVycik7CisgICAgICAgIEVJTkFfTE9HX0VSUigi
Q291bGQgbm90IGxvYWQgJ3dlYmtpdC9iYXNlJyBmcm9tIHRoZW1lICVzOiAlcyIsCisgICAgICAg
ICAgICAgICAgICAgICBtX3RoZW1lUGF0aC51dGY4KCkuZGF0YSgpLCBlcnJtc2cpOworICAgICAg
ICBldmFzX29iamVjdF9kZWwobV9lZGplKTsKKyAgICAgICAgbV9lZGplID0gMDsKKyAgICB9IGVs
c2UgeworI2RlZmluZSBDT05ORUNUKGNjLCBmdW5jKSBcCisgICAgZWRqZV9vYmplY3Rfc2lnbmFs
X2NhbGxiYWNrX2FkZChtX2VkamUsICJjb2xvcl9jbGFzcyxzZXQiLCAid2Via2l0LyJjYywgZnVu
YywgdGhpcykKKyAgICAgICAgQ09OTkVDVCgic2VsZWN0aW9uL2FjdGl2ZSIsIHJlbmRlclRoZW1l
RWZsQ29sb3JDbGFzc1NlbGVjdGlvbkFjdGl2ZSk7CisgICAgICAgIENPTk5FQ1QoInNlbGVjdGlv
bi9pbmFjdGl2ZSIsIHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc1NlbGVjdGlvbkluYWN0aXZlKTsK
KyAgICAgICAgQ09OTkVDVCgiZm9jdXNfcmluZyIsIHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc0Zv
Y3VzUmluZyk7CiAjdW5kZWYgQ09OTkVDVAotICAgICAgICB9CiAgICAgfQorCiAgICAgQVNTRVJU
KG1fZWRqZSk7CiB9CiAKQEAgLTYyOSw5ICs2MjMsOCBAQCB2b2lkIFJlbmRlclRoZW1lRWZsOjp0
aGVtZUNoYW5nZWQoKQogICAgIGNhY2hlVGhlbWVQYXJ0Rmx1c2goKTsKIAogICAgIGlmICghbV9j
YW52YXMpIHsKLSAgICAgICAgY3JlYXRlQ2FudmFzKCk7Ci0gICAgICAgIGlmICghbV9jYW52YXMp
Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY2FudmFzID0gZWNvcmVfZXZhc19idWZm
ZXJfbmV3KDEsIDEpOworICAgICAgICBBU1NFUlQobV9jYW52YXMpOwogICAgIH0KIAogICAgIGlm
ICghbV9lZGplKSB7CkBAIC02NjAsOCArNjUzLDYgQEAgUmVuZGVyVGhlbWVFZmw6OlJlbmRlclRo
ZW1lRWZsKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9lZGplKDApCiB7
Ci0gICAgaWYgKHBhZ2UgJiYgcGFnZS0+bWFpbkZyYW1lKCkgJiYgcGFnZS0+bWFpbkZyYW1lKCkt
PnZpZXcoKSkKLSAgICAgICAgdGhlbWVDaGFuZ2VkKCk7CiB9CiAKIFJlbmRlclRoZW1lRWZsOjp+
UmVuZGVyVGhlbWVFZmwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhl
bWVFZmwuaAppbmRleCBjMmU0N2QwY2MyNThjNzgyMDIyMTc2MDVhZWQ4ZjU1MjNlYzQ1ZmJjLi4x
YjNhODdlZmY0NDA2OGQ4YzIzOGJmYjVkMWZhNmRkMDYwYWRmNGEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMTk2LDExICsxOTYsMTIgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ3VycmVudFRpbWUoUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogI2VuZGlmCiAKKyAgICB2
b2lkIHNldFRoZW1lUGF0aChjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgdGhlbWVQYXRoKCkg
eyByZXR1cm4gbV90aGVtZVBhdGg7IH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgZmxvYXQgZGVm
YXVsdEZvbnRTaXplOwogCiBwcml2YXRlOgotICAgIHZvaWQgY3JlYXRlQ2FudmFzKCk7CiAgICAg
dm9pZCBjcmVhdGVFZGplKCk7CiAgICAgdm9pZCBhcHBseUVkamVDb2xvcnMoKTsKICAgICB2b2lk
IGFwcGx5UGFydERlc2NyaXB0aW9ucygpOwpAQCAtMjI1LDYgKzIyNiw4IEBAIHByaXZhdGU6CiAg
ICAgQ29sb3IgbV9tZWRpYVBhbmVsQ29sb3I7CiAgICAgQ29sb3IgbV9tZWRpYVNsaWRlckNvbG9y
OwogI2VuZGlmCisKKyAgICBTdHJpbmcgbV90aGVtZVBhdGg7CiAgICAgRWNvcmVfRXZhcyogbV9j
YW52YXM7CiAgICAgRXZhc19PYmplY3QqIG1fZWRqZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAppbmRleCA2NWRkNjhkNDZlZmY2ZDBiNzIxMGIyODgy
N2U0YTlhMmY3M2FlZDgwLi43MTQ3OGQ3ODkwOTg2N2FkZjRiODE0YTVmOTkyZDAxNDZmMDk5MDVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAt
MjMsMTMgKzIzLDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFy
RWZsLmgiCiAKLSNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogCkBAIC05NSwxMCArOTUsMTAgQEAgdm9pZCBT
Y3JvbGxiYXJFZmw6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2aWV3KQogCiAgICAgV2lkZ2V0Ojpz
ZXRQYXJlbnQodmlldyk7CiAKLSAgICBpZiAoIW9iamVjdCkgewotICAgICAgICBpZiAoIXZpZXcg
fHwgIXZpZXctPmV2YXMoKSB8fCAhdmlldy0+ZXZhc09iamVjdCgpKQotICAgICAgICAgICAgcmV0
dXJuOworICAgIGlmICghdmlldyB8fCAhdmlldy0+ZXZhcygpIHx8ICF2aWV3LT5ldmFzT2JqZWN0
KCkpCisgICAgICAgIHJldHVybjsKIAorICAgIGlmICghb2JqZWN0KSB7CiAgICAgICAgIG9iamVj
dCA9IGVkamVfb2JqZWN0X2FkZCh2aWV3LT5ldmFzKCkpOwogICAgICAgICBpZiAoIW9iamVjdCkg
ewogICAgICAgICAgICAgRUlOQV9MT0dfRVJSKCJDb3VsZCBub3QgY3JlYXRlIGVkamUgb2JqZWN0
IGZvciB2aWV3PSVwIChldmFzPSVwKSIsCkBAIC0xMDcsMTUgKzEwNywxOSBAQCB2b2lkIFNjcm9s
bGJhckVmbDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCiAgICAgICAgIH0KICAgICAgICAg
ZWRqZV9vYmplY3RfbWVzc2FnZV9oYW5kbGVyX3NldChvYmplY3QsIHNjcm9sbGJhckVmbEVkamVN
ZXNzYWdlLCB0aGlzKTsKICAgICAgICAgc2V0RXZhc09iamVjdChvYmplY3QpOwotICAgIH0gZWxz
ZSBpZiAoIXZpZXcgfHwgIXZpZXctPmV2YXMoKSB8fCAhdmlldy0+ZXZhc09iamVjdCgpKSB7Ci0g
ICAgICAgIGV2YXNfb2JqZWN0X2hpZGUob2JqZWN0KTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHZpZXcpLT5mcmFt
ZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2Ug
PSBmcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
Y29uc3QgY2hhciogZ3JvdXAgPSAob3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFy
KQogICAgICAgICA/ICJzY3JvbGxiYXIuaG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRpY2Fs
IjsKLSAgICBTdHJpbmcgdGhlbWUoZWRqZVRoZW1lUmVjdXJzaXZlKCkpOwotCisgICAgU3RyaW5n
IHRoZW1lID0gc3RhdGljX2Nhc3Q8UmVuZGVyVGhlbWVFZmwqPihwYWdlLT50aGVtZSgpKS0+dGhl
bWVQYXRoKCk7CiAgICAgaWYgKHRoZW1lLmlzRW1wdHkoKSkgewogICAgICAgICBFSU5BX0xPR19F
UlIoIkNvdWxkIG5vdCBsb2FkIHRoZW1lICclcyc6IG5vIHRoZW1lIHBhdGggc2V0LiIsIGdyb3Vw
KTsKICAgICAgICAgZXZhc19vYmplY3RfaGlkZShvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAppbmRleCAxMzhiZGZhMzAxN2Q1ZWViMjRlMDM1YmU5MzFk
ZGEwZDFkMGM5ZjNhLi44ZjhmMmU3YjdlNmU4NjAxN2U2MmRhOTlkM2RjZDkxMzQwZTM4MTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcApAQCAtNTEsNyArNTEs
NiBAQCBjbGFzcyBXaWRnZXRQcml2YXRlIHsKIHB1YmxpYzoKICAgICBFdmFzKiBtX2V2YXM7CiAg
ICAgRXZhc19PYmplY3QqIG1fZXZhc09iamVjdDsKLSAgICBTdHJpbmcgbV90aGVtZTsKIAogICAg
IFdpZGdldFByaXZhdGUoKQogICAgICAgICA6IG1fZXZhcygwKQpAQCAtMTQ1LDI5ICsxNDQsNiBA
QCB2b2lkIFdpZGdldDo6c2V0SXNTZWxlY3RlZChib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLWNvbnN0IFN0cmluZyBXaWRnZXQ6OmVkamVUaGVtZSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fZGF0YS0+bV90aGVtZTsKLX0KLQotdm9pZCBXaWRnZXQ6OnNldEVkamVUaGVtZShjb25z
dCBTdHJpbmcmIHRoZW1lUGF0aCkKLXsKLSAgICBpZiAobV9kYXRhLT5tX3RoZW1lID09IHRoZW1l
UGF0aCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9kYXRhLT5tX3RoZW1lID0gdGhlbWVQYXRo
OwotfQotCi1jb25zdCBTdHJpbmcgV2lkZ2V0OjplZGplVGhlbWVSZWN1cnNpdmUoKSBjb25zdAot
ewotICAgIGlmICghbV9kYXRhLT5tX3RoZW1lLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gbV9k
YXRhLT5tX3RoZW1lOwotICAgIGlmIChtX3BhcmVudCkKLSAgICAgICAgcmV0dXJuIG1fcGFyZW50
LT5lZGplVGhlbWVSZWN1cnNpdmUoKTsKLQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQogRXZh
cyogV2lkZ2V0OjpldmFzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kYXRhLT5tX2V2YXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dAppbmRleCAzN2FkMTk3MzI4ZTVjNjgyMTdhNjM2ODk4NWUzNzZkNTM4NWY4
YTlhLi5kMjVmYjgxMjc1MTI5MmRhNGE2NDQ2ZDQ0ZjUyNjM5NTE0ODcwODgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKQEAgLTE2LDYgKzE2LDcgQEAgU0VUKFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L2VkaXRpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2hpc3Rv
cnkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2h0bWwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L2h0bWwv
c2hhZG93IgogICAgICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L2xvYWRlciIKICAgICAiJHtXRUJDT1JFX0RJUn0vbG9hZGVyL2FwcGNhY2hlIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA2YmE5NDFkMzU2ZjViMzM3YjU0ZDI4MzFlOWM1
MzQ2YTJlNTFiNjNmLi5mYjU4ZjMzYWY0NjU2N2Q4YzNlZTBjZDhlY2JlZmRhYzViNGJjMTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMTY1NCw4ICsxNjU0LDYgQEAgdm9p
ZCBld2tfZnJhbWVfdmlld19jcmVhdGVfZm9yX3ZpZXcoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBF
dmFzX09iamVjdCogdmlldykKICAgICBpZiAoIXNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgY2hhciogdGhlbWUgPSBld2tfdmlld190aGVtZV9n
ZXQodmlldyk7Ci0gICAgc21hcnREYXRhLT5mcmFtZS0+dmlldygpLT5zZXRFZGplVGhlbWUodGhl
bWUpOwogICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+c2V0RXZhc09iamVjdChld2tGcmFt
ZSk7CiAKICAgICBld2tfZnJhbWVfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfc2V0KGV3a0ZyYW1l
LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBjNDU1NjljZTEwMTZl
ODM0YzI3MzdjMTQ0YTc4Mzc5YmUyNWVlOTQwLi5iYWQ5Zjk5YTYwM2Y5MjFjMTA4NjUzMmNkNDIx
YjRkMDNiNjRjZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTUyLDcgKzUy
LDcgQEAKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJQcm9ncmVzc1Ry
YWNrZXIuaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgotI2luY2x1ZGUgIlJlbmRlclRoZW1l
LmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVFZmwuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRs
ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgpAQCAt
MTM3MSwxMiArMTM3MSw4IEBAIHZvaWQgZXdrX3ZpZXdfdGhlbWVfc2V0KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBjb25zdCBjaGFyKiBwYXRoKQogICAgIGlmICghZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZwcml2LT5zZXR0aW5ncy50aGVtZSwgcGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPm1haW5GcmFtZS0+dmlldygpOwotICAg
IGlmICh2aWV3KSB7Ci0gICAgICAgIHZpZXctPnNldEVkamVUaGVtZShXVEY6OlN0cmluZyhwYXRo
KSk7Ci0gICAgICAgIHByaXYtPnBhZ2UtPnRoZW1lKCktPnRoZW1lQ2hhbmdlZCgpOwotICAgIH0K
LQorICAgIFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsKiB0aGVtZSA9IHN0YXRpY19jYXN0PFdlYkNv
cmU6OlJlbmRlclRoZW1lRWZsKj4ocHJpdi0+cGFnZS0+dGhlbWUoKSk7CisgICAgdGhlbWUtPnNl
dFRoZW1lUGF0aChwYXRoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3ZpZXdfdGhlbWVfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149892</attachid>
            <date>2012-06-28 00:10:48 -0700</date>
            <delta_ts>2012-06-28 00:12:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89842-20120628161046.patch</filename>
            <type>text/plain</type>
            <size>13536</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc3NjU2YzRmZjdhYjAx
NmU0NjY3MDEzNDI4ZDdmZjJhMDAyYzk3Ny4uMmM2MWE3MGE0NWU5MjM1MzNkODZhNjI3YzViOTFi
NTM5MTcyNDM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQvRWZs
IHVzZXMgY3VzdG9tIHRoZW1lIGZvciBTY3JvbGxiYXIsIFJlbmRlclRoZW1lIGFuZCBDdXJzb3Iu
CisgICAgICAgIEhvd2V2ZXIsIHRoZW1lIGluZm9ybWF0aW9uIGl0c2VsZiBpcyBpbiBXaWRnZXRF
Zmwgc28gaXQgaXMgYWNjZXNzZWQgYnkKKyAgICAgICAgY2FsbGluZyByZWN1cnNpdmUgZnVuY3Rp
b24uCisgICAgICAgIEJlY2F1c2UgdGhlbWUgaXMgbWFuYWdlZCBieSBlYWNoIHBhZ2UsIHRoaXMg
cGF0Y2ggbW92ZXMgY29kZXMgcmVsYXRlZCB0bworICAgICAgICB0aGVtZSBmcm9tIFdpZGdldEVm
bCB0byBSZW5kZXJUaGVtZUVmbCB3aGljaCBpcyBjb250YWluZWQgYnkgcGFnZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2lkZ2V0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVFZmw6OnNldFRoZW1lUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6
Y3JlYXRlRWRqZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpSZW5kZXJUaGVtZUVmbCk6
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgIChSZW5k
ZXJUaGVtZUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVQYXRo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcDoKKyAgICAgICAgKFNj
cm9sbGJhckVmbDo6c2V0UGFyZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZs
LmNwcDoKKyAgICAgICAgKFdpZGdldFByaXZhdGUpOgorCiAyMDEyLTA2LTI3ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQZXJmb3JtYW5jZTogT3B0aW1p
emUgRHJvbWFlby9kb20tcXVlcnkuaHRtbCBieSBjYWNoaW5nIE5vZGVSYXJlRGF0YSBvbiBEb2N1
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAxMjI2NTcxMWQzYjI5Y2NlMTk1YjJkMGIxNzE2NTJiZjRiMTNlNmJm
Li42ZWM5ZjUyYWUwZWM1MzExODNiNjg2MzAxMGM0MWQ3ZTE4N2U3MjdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDEyLTA2LTI4ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNvZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGlu
ZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgaHRtbC9zaGFkb3cgdG8g
V2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMuCisKIDIwMTItMDYtMjcgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMjEzOTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZDQ2ZDMxZDQ0ZjEwYWU0ZjU2MGQ1
NzQ3YzJmODAzOWI5NDc4YzcyOS4uNGE0NjAwODUzNmZiODMyNDk0YzM1MmU1MDgwMmQwOGJlMTZk
Y2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIFJlbmRl
clRoZW1lRWZsOjpzZXRUaGVtZVBhdGggaW5zdGFlZCBvZiBzZXR0aW5nIHRoZW1lIGluIEZyYW1l
Vmlldy4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1l
X3ZpZXdfY3JlYXRlX2Zvcl92aWV3KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoZXdrX3ZpZXdfdGhlbWVfc2V0KToKKwogMjAxMi0wNi0yNyAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEyMTM5OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdl
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggZmJiMDAyMGM3YmQ1
MTJhOTBjYzM3YmU2M2U1YjliNWJiY2NkYWE2NS4uMzQ1YjMyMWNmOGYyZGUxMmMzZTgyZGZjMmJh
ZmU0MjA2YWIxYTY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTIyMSwxMCArMjIx
LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRFdmFzT2JqZWN0KEV2YXNfT2JqZWN0Kik7CiAg
ICAgRXZhc19PYmplY3QqIGV2YXNPYmplY3QoKSBjb25zdDsKLQotICAgIGNvbnN0IFN0cmluZyBl
ZGplVGhlbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldEVkamVUaGVtZShjb25zdCBTdHJpbmcgJik7
Ci0gICAgY29uc3QgU3RyaW5nIGVkamVUaGVtZVJlY3Vyc2l2ZSgpIGNvbnN0OwogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDSFJPTUlVTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuY3BwCmluZGV4IDdkMjdiOTZkMGE0MDM4ZmM0Y2EzNWFmZTU2YTcyYjEz
MWMxMzU4NjcuLjI4NWQ1NzU0YjcxNzM3ODZmNzYyZWI5NTQ2NjQ2NzJlMmJjZTI3MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcApAQCAtMjcs
OSArMjcsNiBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAKICNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCkBAIC00MjIsNDUgKzQxOSw0MiBAQCBzdGF0aWMgdm9pZCByZW5kZXJUaGVtZUVmbENvbG9y
Q2xhc3NGb2N1c1Jpbmcodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIG9iamVjdCwgYwogICAgIHRo
YXQtPnNldEZvY3VzUmluZ0NvbG9yKGZyLCBmZywgZmIsIGZhKTsKIH0KIAotdm9pZCBSZW5kZXJU
aGVtZUVmbDo6Y3JlYXRlQ2FudmFzKCkKK3ZvaWQgUmVuZGVyVGhlbWVFZmw6OnNldFRoZW1lUGF0
aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgQVNTRVJUKCFtX2NhbnZhcyk7Ci0gICAgbV9j
YW52YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9uZXcoMSwgMSk7Ci0gICAgQVNTRVJUKG1fY2FudmFz
KTsKKyAgICBpZiAocGF0aCA9PSBtX3RoZW1lUGF0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV90aGVtZVBhdGggPSBwYXRoOworICAgIHRoZW1lQ2hhbmdlZCgpOwogfQogCiB2b2lkIFJlbmRl
clRoZW1lRWZsOjpjcmVhdGVFZGplKCkKIHsKICAgICBBU1NFUlQoIW1fZWRqZSk7Ci0gICAgRnJh
bWUqIGZyYW1lID0gbV9wYWdlID8gbV9wYWdlLT5tYWluRnJhbWUoKSA6IDA7Ci0gICAgRnJhbWVW
aWV3KiB2aWV3ID0gZnJhbWUgPyBmcmFtZS0+dmlldygpIDogMDsKLSAgICBTdHJpbmcgdGhlbWUg
PSB2aWV3ID8gdmlldy0+ZWRqZVRoZW1lUmVjdXJzaXZlKCkgOiAiIjsKLSAgICBpZiAodGhlbWUu
aXNFbXB0eSgpKQorICAgIGlmIChtX3RoZW1lUGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgRUlO
QV9MT0dfRVJSKCJObyB0aGVtZSBkZWZpbmVkLCB1bmFibGUgdG8gc2V0IFJlbmRlclRoZW1lRWZs
LiIpOwotICAgIGVsc2UgewotICAgICAgICBtX2VkamUgPSBlZGplX29iamVjdF9hZGQoZWNvcmVf
ZXZhc19nZXQobV9jYW52YXMpKTsKLSAgICAgICAgaWYgKCFtX2VkamUpCi0gICAgICAgICAgICBF
SU5BX0xPR19FUlIoIkNvdWxkIG5vdCBjcmVhdGUgYmFzZSBlZGplIG9iamVjdC4iKTsKLSAgICAg
ICAgZWxzZSBpZiAoIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1fZWRqZSwgdGhlbWUudXRmOCgpLmRh
dGEoKSwgIndlYmtpdC9iYXNlIikpIHsKLSAgICAgICAgICAgIEVkamVfTG9hZF9FcnJvciBlcnIg
PSBlZGplX29iamVjdF9sb2FkX2Vycm9yX2dldChtX2VkamUpOwotICAgICAgICAgICAgY29uc3Qg
Y2hhciogZXJybXNnID0gZWRqZV9sb2FkX2Vycm9yX3N0cihlcnIpOwotICAgICAgICAgICAgRUlO
QV9MT0dfRVJSKCJDb3VsZCBub3QgbG9hZCAnd2Via2l0L2Jhc2UnIGZyb20gdGhlbWUgJXM6ICVz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZS51dGY4KCkuZGF0YSgpLCBlcnJtc2cp
OwotICAgICAgICAgICAgZXZhc19vYmplY3RfZGVsKG1fZWRqZSk7Ci0gICAgICAgICAgICBtX2Vk
amUgPSAwOwotICAgICAgICB9IGVsc2UgewotI2RlZmluZSBDT05ORUNUKGNjLCBmdW5jKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAg
ZWRqZV9vYmplY3Rfc2lnbmFsX2NhbGxiYWNrX2FkZChtX2VkamUsICJjb2xvcl9jbGFzcyxzZXQi
LCAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Via2l0
LyJjYywgZnVuYywgdGhpcykKLQotICAgICAgICAgICAgQ09OTkVDVCgic2VsZWN0aW9uL2FjdGl2
ZSIsCi0gICAgICAgICAgICAgICAgICAgIHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc1NlbGVjdGlv
bkFjdGl2ZSk7Ci0gICAgICAgICAgICBDT05ORUNUKCJzZWxlY3Rpb24vaW5hY3RpdmUiLAotICAg
ICAgICAgICAgICAgICAgICByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxlY3Rpb25JbmFjdGl2
ZSk7Ci0gICAgICAgICAgICBDT05ORUNUKCJmb2N1c19yaW5nIiwgcmVuZGVyVGhlbWVFZmxDb2xv
ckNsYXNzRm9jdXNSaW5nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZWRqZSA9
IGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChtX2NhbnZhcykpOworICAgIGlmICghbV9l
ZGplKQorICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBjcmVhdGUgYmFzZSBlZGplIG9i
amVjdC4iKTsKKyAgICBlbHNlIGlmICghZWRqZV9vYmplY3RfZmlsZV9zZXQobV9lZGplLCBtX3Ro
ZW1lUGF0aC51dGY4KCkuZGF0YSgpLCAid2Via2l0L2Jhc2UiKSkgeworICAgICAgICBFZGplX0xv
YWRfRXJyb3IgZXJyID0gZWRqZV9vYmplY3RfbG9hZF9lcnJvcl9nZXQobV9lZGplKTsKKyAgICAg
ICAgY29uc3QgY2hhciogZXJybXNnID0gZWRqZV9sb2FkX2Vycm9yX3N0cihlcnIpOworICAgICAg
ICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBsb2FkICd3ZWJraXQvYmFzZScgZnJvbSB0aGVtZSAl
czogJXMiLAorICAgICAgICAgICAgICAgICAgICAgbV90aGVtZVBhdGgudXRmOCgpLmRhdGEoKSwg
ZXJybXNnKTsKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKG1fZWRqZSk7CisgICAgICAgIG1fZWRq
ZSA9IDA7CisgICAgfSBlbHNlIHsKKyNkZWZpbmUgQ09OTkVDVChjYywgZnVuYykgXAorICAgIGVk
amVfb2JqZWN0X3NpZ25hbF9jYWxsYmFja19hZGQobV9lZGplLCAiY29sb3JfY2xhc3Msc2V0Iiwg
IndlYmtpdC8iY2MsIGZ1bmMsIHRoaXMpCisgICAgICAgIENPTk5FQ1QoInNlbGVjdGlvbi9hY3Rp
dmUiLCByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxlY3Rpb25BY3RpdmUpOworICAgICAgICBD
T05ORUNUKCJzZWxlY3Rpb24vaW5hY3RpdmUiLCByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxl
Y3Rpb25JbmFjdGl2ZSk7CisgICAgICAgIENPTk5FQ1QoImZvY3VzX3JpbmciLCByZW5kZXJUaGVt
ZUVmbENvbG9yQ2xhc3NGb2N1c1JpbmcpOwogI3VuZGVmIENPTk5FQ1QKLSAgICAgICAgfQogICAg
IH0KKwogICAgIEFTU0VSVChtX2VkamUpOwogfQogCkBAIC02MjksOSArNjIzLDExIEBAIHZvaWQg
UmVuZGVyVGhlbWVFZmw6OnRoZW1lQ2hhbmdlZCgpCiAgICAgY2FjaGVUaGVtZVBhcnRGbHVzaCgp
OwogCiAgICAgaWYgKCFtX2NhbnZhcykgewotICAgICAgICBjcmVhdGVDYW52YXMoKTsKLSAgICAg
ICAgaWYgKCFtX2NhbnZhcykKKyAgICAgICAgbV9jYW52YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9u
ZXcoMSwgMSk7CisgICAgICAgIGlmICghbV9jYW52YXMpIHsKKyAgICAgICAgICAgIEFTU0VSVCht
X2NhbnZhcyk7CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoIW1fZWRqZSkgewpAQCAtNjYwLDggKzY1Niw2IEBAIFJlbmRlclRoZW1lRWZsOjpSZW5kZXJU
aGVtZUVmbChQYWdlKiBwYWdlKQogICAgICwgbV9jYW52YXMoMCkKICAgICAsIG1fZWRqZSgwKQog
ewotICAgIGlmIChwYWdlICYmIHBhZ2UtPm1haW5GcmFtZSgpICYmIHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpCi0gICAgICAgIHRoZW1lQ2hhbmdlZCgpOwogfQogCiBSZW5kZXJUaGVtZUVmbDo6
flJlbmRlclRoZW1lRWZsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmgKaW5kZXggYzJlNDdkMGNjMjU4Yzc4MjAyMjE3NjA1YWVkOGY1NTIzZWM0NWZiYy4u
MWIzYTg3ZWZmNDQwNjhkOGMyMzhiZmI1ZDFmYTZkZDA2MGFkZjRhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTE5NiwxMSArMTk2LDEyIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUN1cnJlbnRUaW1lKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRUaGVtZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRoZW1lUGF0aCgp
IHsgcmV0dXJuIG1fdGhlbWVQYXRoOyB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGZsb2F0IGRl
ZmF1bHRGb250U2l6ZTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZUNhbnZhcygpOwogICAg
IHZvaWQgY3JlYXRlRWRqZSgpOwogICAgIHZvaWQgYXBwbHlFZGplQ29sb3JzKCk7CiAgICAgdm9p
ZCBhcHBseVBhcnREZXNjcmlwdGlvbnMoKTsKQEAgLTIyNSw2ICsyMjYsOCBAQCBwcml2YXRlOgog
ICAgIENvbG9yIG1fbWVkaWFQYW5lbENvbG9yOwogICAgIENvbG9yIG1fbWVkaWFTbGlkZXJDb2xv
cjsKICNlbmRpZgorCisgICAgU3RyaW5nIG1fdGhlbWVQYXRoOwogICAgIEVjb3JlX0V2YXMqIG1f
Y2FudmFzOwogICAgIEV2YXNfT2JqZWN0KiBtX2VkamU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKaW5kZXggNjVkZDY4ZDQ2ZWZmNmQwYjcyMTBiMjg4
MjdlNGE5YTJmNzNhZWQ4MC4uNzE0NzhkNzg5MDk4NjdhZGY0YjgxNGE1Zjk5MmQwMTQ2ZjA5OTA1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKQEAg
LTIzLDEzICsyMywxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbGJh
ckVmbC5oIgogCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZUVmbC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRo
ZW1lLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIApAQCAtOTUsMTAgKzk1LDEwIEBAIHZvaWQg
U2Nyb2xsYmFyRWZsOjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogdmlldykKIAogICAgIFdpZGdldDo6
c2V0UGFyZW50KHZpZXcpOwogCi0gICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgaWYgKCF2aWV3
IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXctPmV2YXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICBpZiAoIXZpZXcgfHwgIXZpZXctPmV2YXMoKSB8fCAhdmlldy0+ZXZhc09iamVj
dCgpKQorICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBvYmpl
Y3QgPSBlZGplX29iamVjdF9hZGQodmlldy0+ZXZhcygpKTsKICAgICAgICAgaWYgKCFvYmplY3Qp
IHsKICAgICAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQgbm90IGNyZWF0ZSBlZGplIG9iamVj
dCBmb3Igdmlldz0lcCAoZXZhcz0lcCkiLApAQCAtMTA3LDE1ICsxMDcsMTkgQEAgdm9pZCBTY3Jv
bGxiYXJFZmw6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2aWV3KQogICAgICAgICB9CiAgICAgICAg
IGVkamVfb2JqZWN0X21lc3NhZ2VfaGFuZGxlcl9zZXQob2JqZWN0LCBzY3JvbGxiYXJFZmxFZGpl
TWVzc2FnZSwgdGhpcyk7CiAgICAgICAgIHNldEV2YXNPYmplY3Qob2JqZWN0KTsKLSAgICB9IGVs
c2UgaWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXctPmV2YXNPYmplY3QoKSkgewot
ICAgICAgICBldmFzX29iamVjdF9oaWRlKG9iamVjdCk7Ci0gICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih2aWV3KS0+ZnJh
bWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKwogICAg
IGNvbnN0IGNoYXIqIGdyb3VwID0gKG9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJh
cikKICAgICAgICAgPyAic2Nyb2xsYmFyLmhvcml6b250YWwiIDogInNjcm9sbGJhci52ZXJ0aWNh
bCI7Ci0gICAgU3RyaW5nIHRoZW1lKGVkamVUaGVtZVJlY3Vyc2l2ZSgpKTsKLQorICAgIFN0cmlu
ZyB0aGVtZSA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lRWZsKj4ocGFnZS0+dGhlbWUoKSktPnRo
ZW1lUGF0aCgpOwogICAgIGlmICh0aGVtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgRUlOQV9MT0df
RVJSKCJDb3VsZCBub3QgbG9hZCB0aGVtZSAnJXMnOiBubyB0aGVtZSBwYXRoIHNldC4iLCBncm91
cCk7CiAgICAgICAgIGV2YXNfb2JqZWN0X2hpZGUob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggMTM4YmRmYTMwMTdkNWVlYjI0ZTAzNWJlOTMx
ZGRhMGQxZDBjOWYzYS4uOGY4ZjJlN2I3ZTZlODYwMTdlNjJkYTk5ZDNkY2Q5MTM0MGUzODE2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTUxLDcgKzUx
LDYgQEAgY2xhc3MgV2lkZ2V0UHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAgRXZhcyogbV9ldmFzOwog
ICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7Ci0gICAgU3RyaW5nIG1fdGhlbWU7CiAKICAg
ICBXaWRnZXRQcml2YXRlKCkKICAgICAgICAgOiBtX2V2YXMoMCkKQEAgLTE0NSwyOSArMTQ0LDYg
QEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi1jb25zdCBTdHJpbmcgV2lkZ2V0OjplZGplVGhlbWUoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2RhdGEtPm1fdGhlbWU7Ci19Ci0KLXZvaWQgV2lkZ2V0OjpzZXRFZGplVGhlbWUoY29u
c3QgU3RyaW5nJiB0aGVtZVBhdGgpCi17Ci0gICAgaWYgKG1fZGF0YS0+bV90aGVtZSA9PSB0aGVt
ZVBhdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fZGF0YS0+bV90aGVtZSA9IHRoZW1lUGF0
aDsKLX0KLQotY29uc3QgU3RyaW5nIFdpZGdldDo6ZWRqZVRoZW1lUmVjdXJzaXZlKCkgY29uc3QK
LXsKLSAgICBpZiAoIW1fZGF0YS0+bV90aGVtZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIG1f
ZGF0YS0+bV90aGVtZTsKLSAgICBpZiAobV9wYXJlbnQpCi0gICAgICAgIHJldHVybiBtX3BhcmVu
dC0+ZWRqZVRoZW1lUmVjdXJzaXZlKCk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KIEV2
YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGF0YS0+bV9ldmFzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKaW5kZXggMzdhZDE5NzMyOGU1YzY4MjE3YTYzNjg5ODVlMzc2ZDUzODVm
OGE5YS4uZDI1ZmI4MTI3NTEyOTJkYTRhNjQ0NmQ0NGY1MjYzOTUxNDg3MDg4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBAIFNFVChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgogICAgICIke1dFQkNPUkVfRElSfS9oaXN0
b3J5IgogICAgICIke1dFQkNPUkVfRElSfS9odG1sIgorICAgICIke1dFQkNPUkVfRElSfS9odG1s
L3NoYWRvdyIKICAgICAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yIgogICAgICIke1dFQkNPUkVf
RElSfS9sb2FkZXIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlci9hcHBjYWNoZSIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggNjdhOWJjODJjNzY5YWZmNjg3NGEzZGIzNDdh
YzdiZDNmYjQ5NTZlZC4uNmE0YjFhM2YyNTk4NGQ1YzlmZTM5YWJiODhiM2E0NWVlZDNiZGI0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTE2NTQsOCArMTY1NCw2IEBAIHZv
aWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92aWV3KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
RXZhc19PYmplY3QqIHZpZXcpCiAgICAgaWYgKCFzbWFydERhdGEtPmZyYW1lLT52aWV3KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGNoYXIqIHRoZW1lID0gZXdrX3ZpZXdfdGhlbWVf
Z2V0KHZpZXcpOwotICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+c2V0RWRqZVRoZW1lKHRo
ZW1lKTsKICAgICBzbWFydERhdGEtPmZyYW1lLT52aWV3KCktPnNldEV2YXNPYmplY3QoZXdrRnJh
bWUpOwogCiAgICAgZXdrX2ZyYW1lX21peGVkX2NvbnRlbnRfZGlzcGxheWVkX3NldChld2tGcmFt
ZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggN2M4YjNkYmI0MTE1
Zjk0YzM3ZTc0MmI0YmZmMTdhYmIwYWY2MGZhMC4uM2IyNDhhNWE4YmYwMzdkYjlhYzI1MTExZWYx
MDBiNTkzMGEzN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC01Miw3ICs1
Miw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NU
cmFja2VyLmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgImNfaW5zdGFuY2UuaCIKQEAg
LTEzNzEsMTIgKzEzNzEsOCBAQCB2b2lkIGV3a192aWV3X3RoZW1lX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgY2hhciogcGF0aCkKICAgICBpZiAoIWVpbmFfc3RyaW5nc2hhcmVfcmVw
bGFjZSgmcHJpdi0+c2V0dGluZ3MudGhlbWUsIHBhdGgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5tYWluRnJhbWUtPnZpZXcoKTsKLSAg
ICBpZiAodmlldykgewotICAgICAgICB2aWV3LT5zZXRFZGplVGhlbWUoV1RGOjpTdHJpbmcocGF0
aCkpOwotICAgICAgICBwcml2LT5wYWdlLT50aGVtZSgpLT50aGVtZUNoYW5nZWQoKTsKLSAgICB9
Ci0KKyAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbCogdGhlbWUgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpSZW5kZXJUaGVtZUVmbCo+KHByaXYtPnBhZ2UtPnRoZW1lKCkpOworICAgIHRoZW1lLT5z
ZXRUaGVtZVBhdGgocGF0aCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a192aWV3X3RoZW1lX2dldChj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149893</attachid>
            <date>2012-06-28 00:12:08 -0700</date>
            <delta_ts>2012-06-28 01:43:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89842-20120628161207.patch</filename>
            <type>text/plain</type>
            <size>13536</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc3NjU2YzRmZjdhYjAx
NmU0NjY3MDEzNDI4ZDdmZjJhMDAyYzk3Ny4uMmM2MWE3MGE0NWU5MjM1MzNkODZhNjI3YzViOTFi
NTM5MTcyNDM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQvRWZs
IHVzZXMgY3VzdG9tIHRoZW1lIGZvciBTY3JvbGxiYXIsIFJlbmRlclRoZW1lIGFuZCBDdXJzb3Iu
CisgICAgICAgIEhvd2V2ZXIsIHRoZW1lIGluZm9ybWF0aW9uIGl0c2VsZiBpcyBpbiBXaWRnZXRF
Zmwgc28gaXQgaXMgYWNjZXNzZWQgYnkKKyAgICAgICAgY2FsbGluZyByZWN1cnNpdmUgZnVuY3Rp
b24uCisgICAgICAgIEJlY2F1c2UgdGhlbWUgaXMgbWFuYWdlZCBieSBlYWNoIHBhZ2UsIHRoaXMg
cGF0Y2ggbW92ZXMgY29kZXMgcmVsYXRlZCB0bworICAgICAgICB0aGVtZSBmcm9tIFdpZGdldEVm
bCB0byBSZW5kZXJUaGVtZUVmbCB3aGljaCBpcyBjb250YWluZWQgYnkgcGFnZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2lkZ2V0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVFZmw6OnNldFRoZW1lUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6
Y3JlYXRlRWRqZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpSZW5kZXJUaGVtZUVmbCk6
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgIChSZW5k
ZXJUaGVtZUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVQYXRo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcDoKKyAgICAgICAgKFNj
cm9sbGJhckVmbDo6c2V0UGFyZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZs
LmNwcDoKKyAgICAgICAgKFdpZGdldFByaXZhdGUpOgorCiAyMDEyLTA2LTI3ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBQZXJmb3JtYW5jZTogT3B0aW1p
emUgRHJvbWFlby9kb20tcXVlcnkuaHRtbCBieSBjYWNoaW5nIE5vZGVSYXJlRGF0YSBvbiBEb2N1
bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAxMjI2NTcxMWQzYjI5Y2NlMTk1YjJkMGIxNzE2NTJiZjRiMTNlNmJm
Li42ZWM5ZjUyYWUwZWM1MzExODNiNjg2MzAxMGM0MWQ3ZTE4N2U3MjdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDEyLTA2LTI4ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNvZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGlu
ZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgaHRtbC9zaGFkb3cgdG8g
V2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMuCisKIDIwMTItMDYtMjcgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMjEzOTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZDQ2ZDMxZDQ0ZjEwYWU0ZjU2MGQ1
NzQ3YzJmODAzOWI5NDc4YzcyOS4uMzBlNDg0ODEwNWI1ZmU1ZDYwM2I3ZmJhY2JhMDM5NDBhMDBj
NDE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA2LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIFJlbmRl
clRoZW1lRWZsOjpzZXRUaGVtZVBhdGggaW5zdGVhZCBvZiBzZXR0aW5nIHRoZW1lIGluIEZyYW1l
Vmlldy4KKworICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1l
X3ZpZXdfY3JlYXRlX2Zvcl92aWV3KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoZXdrX3ZpZXdfdGhlbWVfc2V0KToKKwogMjAxMi0wNi0yNyAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEyMTM5OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdl
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggZmJiMDAyMGM3YmQ1
MTJhOTBjYzM3YmU2M2U1YjliNWJiY2NkYWE2NS4uMzQ1YjMyMWNmOGYyZGUxMmMzZTgyZGZjMmJh
ZmU0MjA2YWIxYTY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTIyMSwxMCArMjIx
LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRFdmFzT2JqZWN0KEV2YXNfT2JqZWN0Kik7CiAg
ICAgRXZhc19PYmplY3QqIGV2YXNPYmplY3QoKSBjb25zdDsKLQotICAgIGNvbnN0IFN0cmluZyBl
ZGplVGhlbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldEVkamVUaGVtZShjb25zdCBTdHJpbmcgJik7
Ci0gICAgY29uc3QgU3RyaW5nIGVkamVUaGVtZVJlY3Vyc2l2ZSgpIGNvbnN0OwogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDSFJPTUlVTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
UmVuZGVyVGhlbWVFZmwuY3BwCmluZGV4IDdkMjdiOTZkMGE0MDM4ZmM0Y2EzNWFmZTU2YTcyYjEz
MWMxMzU4NjcuLjI4NWQ1NzU0YjcxNzM3ODZmNzYyZWI5NTQ2NjQ2NzJlMmJjZTI3MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcApAQCAtMjcs
OSArMjcsNiBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAKICNpbmNsdWRlICJDU1NW
YWx1ZUtleXdvcmRzLmgiCi0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCkBAIC00MjIsNDUgKzQxOSw0MiBAQCBzdGF0aWMgdm9pZCByZW5kZXJUaGVtZUVmbENvbG9y
Q2xhc3NGb2N1c1Jpbmcodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIG9iamVjdCwgYwogICAgIHRo
YXQtPnNldEZvY3VzUmluZ0NvbG9yKGZyLCBmZywgZmIsIGZhKTsKIH0KIAotdm9pZCBSZW5kZXJU
aGVtZUVmbDo6Y3JlYXRlQ2FudmFzKCkKK3ZvaWQgUmVuZGVyVGhlbWVFZmw6OnNldFRoZW1lUGF0
aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgQVNTRVJUKCFtX2NhbnZhcyk7Ci0gICAgbV9j
YW52YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9uZXcoMSwgMSk7Ci0gICAgQVNTRVJUKG1fY2FudmFz
KTsKKyAgICBpZiAocGF0aCA9PSBtX3RoZW1lUGF0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV90aGVtZVBhdGggPSBwYXRoOworICAgIHRoZW1lQ2hhbmdlZCgpOwogfQogCiB2b2lkIFJlbmRl
clRoZW1lRWZsOjpjcmVhdGVFZGplKCkKIHsKICAgICBBU1NFUlQoIW1fZWRqZSk7Ci0gICAgRnJh
bWUqIGZyYW1lID0gbV9wYWdlID8gbV9wYWdlLT5tYWluRnJhbWUoKSA6IDA7Ci0gICAgRnJhbWVW
aWV3KiB2aWV3ID0gZnJhbWUgPyBmcmFtZS0+dmlldygpIDogMDsKLSAgICBTdHJpbmcgdGhlbWUg
PSB2aWV3ID8gdmlldy0+ZWRqZVRoZW1lUmVjdXJzaXZlKCkgOiAiIjsKLSAgICBpZiAodGhlbWUu
aXNFbXB0eSgpKQorICAgIGlmIChtX3RoZW1lUGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgRUlO
QV9MT0dfRVJSKCJObyB0aGVtZSBkZWZpbmVkLCB1bmFibGUgdG8gc2V0IFJlbmRlclRoZW1lRWZs
LiIpOwotICAgIGVsc2UgewotICAgICAgICBtX2VkamUgPSBlZGplX29iamVjdF9hZGQoZWNvcmVf
ZXZhc19nZXQobV9jYW52YXMpKTsKLSAgICAgICAgaWYgKCFtX2VkamUpCi0gICAgICAgICAgICBF
SU5BX0xPR19FUlIoIkNvdWxkIG5vdCBjcmVhdGUgYmFzZSBlZGplIG9iamVjdC4iKTsKLSAgICAg
ICAgZWxzZSBpZiAoIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1fZWRqZSwgdGhlbWUudXRmOCgpLmRh
dGEoKSwgIndlYmtpdC9iYXNlIikpIHsKLSAgICAgICAgICAgIEVkamVfTG9hZF9FcnJvciBlcnIg
PSBlZGplX29iamVjdF9sb2FkX2Vycm9yX2dldChtX2VkamUpOwotICAgICAgICAgICAgY29uc3Qg
Y2hhciogZXJybXNnID0gZWRqZV9sb2FkX2Vycm9yX3N0cihlcnIpOwotICAgICAgICAgICAgRUlO
QV9MT0dfRVJSKCJDb3VsZCBub3QgbG9hZCAnd2Via2l0L2Jhc2UnIGZyb20gdGhlbWUgJXM6ICVz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZS51dGY4KCkuZGF0YSgpLCBlcnJtc2cp
OwotICAgICAgICAgICAgZXZhc19vYmplY3RfZGVsKG1fZWRqZSk7Ci0gICAgICAgICAgICBtX2Vk
amUgPSAwOwotICAgICAgICB9IGVsc2UgewotI2RlZmluZSBDT05ORUNUKGNjLCBmdW5jKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAg
ZWRqZV9vYmplY3Rfc2lnbmFsX2NhbGxiYWNrX2FkZChtX2VkamUsICJjb2xvcl9jbGFzcyxzZXQi
LCAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Via2l0
LyJjYywgZnVuYywgdGhpcykKLQotICAgICAgICAgICAgQ09OTkVDVCgic2VsZWN0aW9uL2FjdGl2
ZSIsCi0gICAgICAgICAgICAgICAgICAgIHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc1NlbGVjdGlv
bkFjdGl2ZSk7Ci0gICAgICAgICAgICBDT05ORUNUKCJzZWxlY3Rpb24vaW5hY3RpdmUiLAotICAg
ICAgICAgICAgICAgICAgICByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxlY3Rpb25JbmFjdGl2
ZSk7Ci0gICAgICAgICAgICBDT05ORUNUKCJmb2N1c19yaW5nIiwgcmVuZGVyVGhlbWVFZmxDb2xv
ckNsYXNzRm9jdXNSaW5nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZWRqZSA9
IGVkamVfb2JqZWN0X2FkZChlY29yZV9ldmFzX2dldChtX2NhbnZhcykpOworICAgIGlmICghbV9l
ZGplKQorICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBjcmVhdGUgYmFzZSBlZGplIG9i
amVjdC4iKTsKKyAgICBlbHNlIGlmICghZWRqZV9vYmplY3RfZmlsZV9zZXQobV9lZGplLCBtX3Ro
ZW1lUGF0aC51dGY4KCkuZGF0YSgpLCAid2Via2l0L2Jhc2UiKSkgeworICAgICAgICBFZGplX0xv
YWRfRXJyb3IgZXJyID0gZWRqZV9vYmplY3RfbG9hZF9lcnJvcl9nZXQobV9lZGplKTsKKyAgICAg
ICAgY29uc3QgY2hhciogZXJybXNnID0gZWRqZV9sb2FkX2Vycm9yX3N0cihlcnIpOworICAgICAg
ICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBsb2FkICd3ZWJraXQvYmFzZScgZnJvbSB0aGVtZSAl
czogJXMiLAorICAgICAgICAgICAgICAgICAgICAgbV90aGVtZVBhdGgudXRmOCgpLmRhdGEoKSwg
ZXJybXNnKTsKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKG1fZWRqZSk7CisgICAgICAgIG1fZWRq
ZSA9IDA7CisgICAgfSBlbHNlIHsKKyNkZWZpbmUgQ09OTkVDVChjYywgZnVuYykgXAorICAgIGVk
amVfb2JqZWN0X3NpZ25hbF9jYWxsYmFja19hZGQobV9lZGplLCAiY29sb3JfY2xhc3Msc2V0Iiwg
IndlYmtpdC8iY2MsIGZ1bmMsIHRoaXMpCisgICAgICAgIENPTk5FQ1QoInNlbGVjdGlvbi9hY3Rp
dmUiLCByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxlY3Rpb25BY3RpdmUpOworICAgICAgICBD
T05ORUNUKCJzZWxlY3Rpb24vaW5hY3RpdmUiLCByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxl
Y3Rpb25JbmFjdGl2ZSk7CisgICAgICAgIENPTk5FQ1QoImZvY3VzX3JpbmciLCByZW5kZXJUaGVt
ZUVmbENvbG9yQ2xhc3NGb2N1c1JpbmcpOwogI3VuZGVmIENPTk5FQ1QKLSAgICAgICAgfQogICAg
IH0KKwogICAgIEFTU0VSVChtX2VkamUpOwogfQogCkBAIC02MjksOSArNjIzLDExIEBAIHZvaWQg
UmVuZGVyVGhlbWVFZmw6OnRoZW1lQ2hhbmdlZCgpCiAgICAgY2FjaGVUaGVtZVBhcnRGbHVzaCgp
OwogCiAgICAgaWYgKCFtX2NhbnZhcykgewotICAgICAgICBjcmVhdGVDYW52YXMoKTsKLSAgICAg
ICAgaWYgKCFtX2NhbnZhcykKKyAgICAgICAgbV9jYW52YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9u
ZXcoMSwgMSk7CisgICAgICAgIGlmICghbV9jYW52YXMpIHsKKyAgICAgICAgICAgIEFTU0VSVCht
X2NhbnZhcyk7CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoIW1fZWRqZSkgewpAQCAtNjYwLDggKzY1Niw2IEBAIFJlbmRlclRoZW1lRWZsOjpSZW5kZXJU
aGVtZUVmbChQYWdlKiBwYWdlKQogICAgICwgbV9jYW52YXMoMCkKICAgICAsIG1fZWRqZSgwKQog
ewotICAgIGlmIChwYWdlICYmIHBhZ2UtPm1haW5GcmFtZSgpICYmIHBhZ2UtPm1haW5GcmFtZSgp
LT52aWV3KCkpCi0gICAgICAgIHRoZW1lQ2hhbmdlZCgpOwogfQogCiBSZW5kZXJUaGVtZUVmbDo6
flJlbmRlclRoZW1lRWZsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRo
ZW1lRWZsLmgKaW5kZXggYzJlNDdkMGNjMjU4Yzc4MjAyMjE3NjA1YWVkOGY1NTIzZWM0NWZiYy4u
MWIzYTg3ZWZmNDQwNjhkOGMyMzhiZmI1ZDFmYTZkZDA2MGFkZjRhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKQEAgLTE5NiwxMSArMTk2LDEyIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUN1cnJlbnRUaW1lKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRUaGVtZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRoZW1lUGF0aCgp
IHsgcmV0dXJuIG1fdGhlbWVQYXRoOyB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGZsb2F0IGRl
ZmF1bHRGb250U2l6ZTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNyZWF0ZUNhbnZhcygpOwogICAg
IHZvaWQgY3JlYXRlRWRqZSgpOwogICAgIHZvaWQgYXBwbHlFZGplQ29sb3JzKCk7CiAgICAgdm9p
ZCBhcHBseVBhcnREZXNjcmlwdGlvbnMoKTsKQEAgLTIyNSw2ICsyMjYsOCBAQCBwcml2YXRlOgog
ICAgIENvbG9yIG1fbWVkaWFQYW5lbENvbG9yOwogICAgIENvbG9yIG1fbWVkaWFTbGlkZXJDb2xv
cjsKICNlbmRpZgorCisgICAgU3RyaW5nIG1fdGhlbWVQYXRoOwogICAgIEVjb3JlX0V2YXMqIG1f
Y2FudmFzOwogICAgIEV2YXNfT2JqZWN0KiBtX2VkamU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKaW5kZXggNjVkZDY4ZDQ2ZWZmNmQwYjcyMTBiMjg4
MjdlNGE5YTJmNzNhZWQ4MC4uNzE0NzhkNzg5MDk4NjdhZGY0YjgxNGE1Zjk5MmQwMTQ2ZjA5OTA1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKQEAg
LTIzLDEzICsyMywxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbGJh
ckVmbC5oIgogCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZUVmbC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRo
ZW1lLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIApAQCAtOTUsMTAgKzk1LDEwIEBAIHZvaWQg
U2Nyb2xsYmFyRWZsOjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogdmlldykKIAogICAgIFdpZGdldDo6
c2V0UGFyZW50KHZpZXcpOwogCi0gICAgaWYgKCFvYmplY3QpIHsKLSAgICAgICAgaWYgKCF2aWV3
IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXctPmV2YXNPYmplY3QoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICBpZiAoIXZpZXcgfHwgIXZpZXctPmV2YXMoKSB8fCAhdmlldy0+ZXZhc09iamVj
dCgpKQorICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBvYmpl
Y3QgPSBlZGplX29iamVjdF9hZGQodmlldy0+ZXZhcygpKTsKICAgICAgICAgaWYgKCFvYmplY3Qp
IHsKICAgICAgICAgICAgIEVJTkFfTE9HX0VSUigiQ291bGQgbm90IGNyZWF0ZSBlZGplIG9iamVj
dCBmb3Igdmlldz0lcCAoZXZhcz0lcCkiLApAQCAtMTA3LDE1ICsxMDcsMTkgQEAgdm9pZCBTY3Jv
bGxiYXJFZmw6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2aWV3KQogICAgICAgICB9CiAgICAgICAg
IGVkamVfb2JqZWN0X21lc3NhZ2VfaGFuZGxlcl9zZXQob2JqZWN0LCBzY3JvbGxiYXJFZmxFZGpl
TWVzc2FnZSwgdGhpcyk7CiAgICAgICAgIHNldEV2YXNPYmplY3Qob2JqZWN0KTsKLSAgICB9IGVs
c2UgaWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzKCkgfHwgIXZpZXctPmV2YXNPYmplY3QoKSkgewot
ICAgICAgICBldmFzX29iamVjdF9oaWRlKG9iamVjdCk7Ci0gICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih2aWV3KS0+ZnJh
bWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdl
ID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKwogICAg
IGNvbnN0IGNoYXIqIGdyb3VwID0gKG9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJh
cikKICAgICAgICAgPyAic2Nyb2xsYmFyLmhvcml6b250YWwiIDogInNjcm9sbGJhci52ZXJ0aWNh
bCI7Ci0gICAgU3RyaW5nIHRoZW1lKGVkamVUaGVtZVJlY3Vyc2l2ZSgpKTsKLQorICAgIFN0cmlu
ZyB0aGVtZSA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lRWZsKj4ocGFnZS0+dGhlbWUoKSktPnRo
ZW1lUGF0aCgpOwogICAgIGlmICh0aGVtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgRUlOQV9MT0df
RVJSKCJDb3VsZCBub3QgbG9hZCB0aGVtZSAnJXMnOiBubyB0aGVtZSBwYXRoIHNldC4iLCBncm91
cCk7CiAgICAgICAgIGV2YXNfb2JqZWN0X2hpZGUob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggMTM4YmRmYTMwMTdkNWVlYjI0ZTAzNWJlOTMx
ZGRhMGQxZDBjOWYzYS4uOGY4ZjJlN2I3ZTZlODYwMTdlNjJkYTk5ZDNkY2Q5MTM0MGUzODE2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTUxLDcgKzUx
LDYgQEAgY2xhc3MgV2lkZ2V0UHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAgRXZhcyogbV9ldmFzOwog
ICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7Ci0gICAgU3RyaW5nIG1fdGhlbWU7CiAKICAg
ICBXaWRnZXRQcml2YXRlKCkKICAgICAgICAgOiBtX2V2YXMoMCkKQEAgLTE0NSwyOSArMTQ0LDYg
QEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi1jb25zdCBTdHJpbmcgV2lkZ2V0OjplZGplVGhlbWUoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2RhdGEtPm1fdGhlbWU7Ci19Ci0KLXZvaWQgV2lkZ2V0OjpzZXRFZGplVGhlbWUoY29u
c3QgU3RyaW5nJiB0aGVtZVBhdGgpCi17Ci0gICAgaWYgKG1fZGF0YS0+bV90aGVtZSA9PSB0aGVt
ZVBhdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fZGF0YS0+bV90aGVtZSA9IHRoZW1lUGF0
aDsKLX0KLQotY29uc3QgU3RyaW5nIFdpZGdldDo6ZWRqZVRoZW1lUmVjdXJzaXZlKCkgY29uc3QK
LXsKLSAgICBpZiAoIW1fZGF0YS0+bV90aGVtZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIG1f
ZGF0YS0+bV90aGVtZTsKLSAgICBpZiAobV9wYXJlbnQpCi0gICAgICAgIHJldHVybiBtX3BhcmVu
dC0+ZWRqZVRoZW1lUmVjdXJzaXZlKCk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KIEV2
YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGF0YS0+bV9ldmFzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKaW5kZXggMzdhZDE5NzMyOGU1YzY4MjE3YTYzNjg5ODVlMzc2ZDUzODVm
OGE5YS4uZDI1ZmI4MTI3NTEyOTJkYTRhNjQ0NmQ0NGY1MjYzOTUxNDg3MDg4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBAIFNFVChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgogICAgICIke1dFQkNPUkVfRElSfS9oaXN0
b3J5IgogICAgICIke1dFQkNPUkVfRElSfS9odG1sIgorICAgICIke1dFQkNPUkVfRElSfS9odG1s
L3NoYWRvdyIKICAgICAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yIgogICAgICIke1dFQkNPUkVf
RElSfS9sb2FkZXIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlci9hcHBjYWNoZSIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggNjdhOWJjODJjNzY5YWZmNjg3NGEzZGIzNDdh
YzdiZDNmYjQ5NTZlZC4uNmE0YjFhM2YyNTk4NGQ1YzlmZTM5YWJiODhiM2E0NWVlZDNiZGI0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTE2NTQsOCArMTY1NCw2IEBAIHZv
aWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92aWV3KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
RXZhc19PYmplY3QqIHZpZXcpCiAgICAgaWYgKCFzbWFydERhdGEtPmZyYW1lLT52aWV3KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGNoYXIqIHRoZW1lID0gZXdrX3ZpZXdfdGhlbWVf
Z2V0KHZpZXcpOwotICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+c2V0RWRqZVRoZW1lKHRo
ZW1lKTsKICAgICBzbWFydERhdGEtPmZyYW1lLT52aWV3KCktPnNldEV2YXNPYmplY3QoZXdrRnJh
bWUpOwogCiAgICAgZXdrX2ZyYW1lX21peGVkX2NvbnRlbnRfZGlzcGxheWVkX3NldChld2tGcmFt
ZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggN2M4YjNkYmI0MTE1
Zjk0YzM3ZTc0MmI0YmZmMTdhYmIwYWY2MGZhMC4uM2IyNDhhNWE4YmYwMzdkYjlhYzI1MTExZWYx
MDBiNTkzMGEzN2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC01Miw3ICs1
Miw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NU
cmFja2VyLmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgImNfaW5zdGFuY2UuaCIKQEAg
LTEzNzEsMTIgKzEzNzEsOCBAQCB2b2lkIGV3a192aWV3X3RoZW1lX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgY2hhciogcGF0aCkKICAgICBpZiAoIWVpbmFfc3RyaW5nc2hhcmVfcmVw
bGFjZSgmcHJpdi0+c2V0dGluZ3MudGhlbWUsIHBhdGgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5tYWluRnJhbWUtPnZpZXcoKTsKLSAg
ICBpZiAodmlldykgewotICAgICAgICB2aWV3LT5zZXRFZGplVGhlbWUoV1RGOjpTdHJpbmcocGF0
aCkpOwotICAgICAgICBwcml2LT5wYWdlLT50aGVtZSgpLT50aGVtZUNoYW5nZWQoKTsKLSAgICB9
Ci0KKyAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbCogdGhlbWUgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpSZW5kZXJUaGVtZUVmbCo+KHByaXYtPnBhZ2UtPnRoZW1lKCkpOworICAgIHRoZW1lLT5z
ZXRUaGVtZVBhdGgocGF0aCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a192aWV3X3RoZW1lX2dldChj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149903</attachid>
            <date>2012-06-28 01:43:57 -0700</date>
            <delta_ts>2012-07-01 18:11:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89842-20120628174356.patch</filename>
            <type>text/plain</type>
            <size>13529</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YwYmMzZWQxZmFlODA3
MWExZjAzZWJmZWY2OGFmNDFhNzhiMDYyNC4uMjI0YzJmYzkzZjMwZWQxODY0MThlODZkYzAxZWRi
OTQyYjkzMjI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTI4ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQvRWZs
IHVzZXMgY3VzdG9tIHRoZW1lIGZvciBTY3JvbGxiYXIsIFJlbmRlclRoZW1lIGFuZCBDdXJzb3Iu
CisgICAgICAgIEhvd2V2ZXIsIHRoZW1lIGluZm9ybWF0aW9uIGl0c2VsZiBpcyBpbiBXaWRnZXRF
Zmwgc28gaXQgaXMgYWNjZXNzZWQgYnkKKyAgICAgICAgY2FsbGluZyByZWN1cnNpdmUgZnVuY3Rp
b24uCisgICAgICAgIEJlY2F1c2UgdGhlbWUgaXMgbWFuYWdlZCBieSBlYWNoIHBhZ2UsIHRoaXMg
cGF0Y2ggbW92ZXMgY29kZXMgcmVsYXRlZCB0bworICAgICAgICB0aGVtZSBmcm9tIFdpZGdldEVm
bCB0byBSZW5kZXJUaGVtZUVmbCB3aGljaCBpcyBjb250YWluZWQgYnkgcGFnZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2lkZ2V0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVFZmw6OnNldFRoZW1lUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6
Y3JlYXRlRWRqZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpSZW5kZXJUaGVtZUVmbCk6
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgIChSZW5k
ZXJUaGVtZUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVQYXRo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcDoKKyAgICAgICAgKFNj
cm9sbGJhckVmbDo6c2V0UGFyZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZs
LmNwcDoKKyAgICAgICAgKFdpZGdldFByaXZhdGUpOgorCiAyMDEyLTA2LTI4ICBZb3NoaWZ1bWkg
SW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1BsYXRmb3JtXSBJbXBsZW1l
bnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMTIyNjU3MTFkM2IyOWNjZTE5NWIyZDBiMTcxNjUyYmY0YjEzZTZiZi4uNmVjOWY1MmFl
MGVjNTMxMTgzYjY4NjMwMTBjNDFkN2UxODdlNzI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMi0wNi0yOCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0VGTF0gTW92ZSBjb2RlcyByZWxhdGVkIHRvIHRoZW1lIHNldHRpbmcgZnJvbSBXaWRn
ZXQgdG8gUmVuZGVyVGhlbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg5ODQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIGh0bWwvc2hhZG93IHRvIFdlYktpdF9JTkNM
VURFX0RJUkVDVE9SSUVTLgorCiAyMDEyLTA2LTI3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIx
Mzk4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGQ0NmQzMWQ0NGYxMGFlNGY1NjBkNTc0N2MyZjgwMzli
OTQ3OGM3MjkuLjMwZTQ4NDgxMDViNWZlNWQ2MDNiN2ZiYWNiYTAzOTQwYTAwYzQxN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNi0yOCAgUnl1YW4gQ2hvaSAgPHJ5
dWFuLmNob2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gTW92ZSBjb2RlcyByZWxhdGVk
IHRvIHRoZW1lIHNldHRpbmcgZnJvbSBXaWRnZXQgdG8gUmVuZGVyVGhlbWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5ODQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCBSZW5kZXJUaGVtZUVmbDo6
c2V0VGhlbWVQYXRoIGluc3RlYWQgb2Ygc2V0dGluZyB0aGVtZSBpbiBGcmFtZVZpZXcuCisKKyAg
ICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV92aWV3X2NyZWF0
ZV9mb3Jfdmlldyk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192
aWV3X3RoZW1lX3NldCk6CisKIDIwMTItMDYtMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjEz
OTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IGZiYjAwMjBjN2JkNTEyYTkwY2MzN2Jl
NjNlNWI5YjViYmNjZGFhNjUuLjM0NWIzMjFjZjhmMmRlMTJjM2U4MmRmYzJiYWZlNDIwNmFiMWE2
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC0yMjEsMTAgKzIyMSw2IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0RXZhc09iamVjdChFdmFzX09iamVjdCopOwogICAgIEV2YXNfT2Jq
ZWN0KiBldmFzT2JqZWN0KCkgY29uc3Q7Ci0KLSAgICBjb25zdCBTdHJpbmcgZWRqZVRoZW1lKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRFZGplVGhlbWUoY29uc3QgU3RyaW5nICYpOwotICAgIGNvbnN0
IFN0cmluZyBlZGplVGhlbWVSZWN1cnNpdmUoKSBjb25zdDsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmNwcAppbmRleCA3ZDI3Yjk2ZDBhNDAzOGZjNGNhMzVhZmU1NmE3MmIxMzFjMTM1ODY3Li43
YjQ4MDQ1YWE2ZDkwZTI2NzNjNWQzOWU4MmJmNzFiNjdjOWEyZWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTI3LDkgKzI3LDYgQEAK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZUVmbC5oIgogCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtNDIy
LDQ1ICs0MTksNDIgQEAgc3RhdGljIHZvaWQgcmVuZGVyVGhlbWVFZmxDb2xvckNsYXNzRm9jdXNS
aW5nKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBvYmplY3QsIGMKICAgICB0aGF0LT5zZXRGb2N1
c1JpbmdDb2xvcihmciwgZmcsIGZiLCBmYSk7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVFZmw6OmNy
ZWF0ZUNhbnZhcygpCit2b2lkIFJlbmRlclRoZW1lRWZsOjpzZXRUaGVtZVBhdGgoY29uc3QgU3Ry
aW5nJiBwYXRoKQogewotICAgIEFTU0VSVCghbV9jYW52YXMpOwotICAgIG1fY2FudmFzID0gZWNv
cmVfZXZhc19idWZmZXJfbmV3KDEsIDEpOwotICAgIEFTU0VSVChtX2NhbnZhcyk7CisgICAgaWYg
KHBhdGggPT0gbV90aGVtZVBhdGgpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdGhlbWVQYXRo
ID0gcGF0aDsKKyAgICB0aGVtZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBSZW5kZXJUaGVtZUVmbDo6
Y3JlYXRlRWRqZSgpCiB7CiAgICAgQVNTRVJUKCFtX2VkamUpOwotICAgIEZyYW1lKiBmcmFtZSA9
IG1fcGFnZSA/IG1fcGFnZS0+bWFpbkZyYW1lKCkgOiAwOwotICAgIEZyYW1lVmlldyogdmlldyA9
IGZyYW1lID8gZnJhbWUtPnZpZXcoKSA6IDA7Ci0gICAgU3RyaW5nIHRoZW1lID0gdmlldyA/IHZp
ZXctPmVkamVUaGVtZVJlY3Vyc2l2ZSgpIDogIiI7Ci0gICAgaWYgKHRoZW1lLmlzRW1wdHkoKSkK
KyAgICBpZiAobV90aGVtZVBhdGguaXNFbXB0eSgpKSB7CiAgICAgICAgIEVJTkFfTE9HX0VSUigi
Tm8gdGhlbWUgZGVmaW5lZCwgdW5hYmxlIHRvIHNldCBSZW5kZXJUaGVtZUVmbC4iKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgbV9lZGplID0gZWRqZV9vYmplY3RfYWRkKGVjb3JlX2V2YXNfZ2V0KG1f
Y2FudmFzKSk7Ci0gICAgICAgIGlmICghbV9lZGplKQotICAgICAgICAgICAgRUlOQV9MT0dfRVJS
KCJDb3VsZCBub3QgY3JlYXRlIGJhc2UgZWRqZSBvYmplY3QuIik7Ci0gICAgICAgIGVsc2UgaWYg
KCFlZGplX29iamVjdF9maWxlX3NldChtX2VkamUsIHRoZW1lLnV0ZjgoKS5kYXRhKCksICJ3ZWJr
aXQvYmFzZSIpKSB7Ci0gICAgICAgICAgICBFZGplX0xvYWRfRXJyb3IgZXJyID0gZWRqZV9vYmpl
Y3RfbG9hZF9lcnJvcl9nZXQobV9lZGplKTsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVycm1z
ZyA9IGVkamVfbG9hZF9lcnJvcl9zdHIoZXJyKTsKLSAgICAgICAgICAgIEVJTkFfTE9HX0VSUigi
Q291bGQgbm90IGxvYWQgJ3dlYmtpdC9iYXNlJyBmcm9tIHRoZW1lICVzOiAlcyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgdGhlbWUudXRmOCgpLmRhdGEoKSwgZXJybXNnKTsKLSAgICAgICAg
ICAgIGV2YXNfb2JqZWN0X2RlbChtX2VkamUpOwotICAgICAgICAgICAgbV9lZGplID0gMDsKLSAg
ICAgICAgfSBlbHNlIHsKLSNkZWZpbmUgQ09OTkVDVChjYywgZnVuYykgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGVkamVfb2JqZWN0
X3NpZ25hbF9jYWxsYmFja19hZGQobV9lZGplLCAiY29sb3JfY2xhc3Msc2V0IiwgIFwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndlYmtpdC8iY2MsIGZ1bmMs
IHRoaXMpCi0KLSAgICAgICAgICAgIENPTk5FQ1QoInNlbGVjdGlvbi9hY3RpdmUiLAotICAgICAg
ICAgICAgICAgICAgICByZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NTZWxlY3Rpb25BY3RpdmUpOwot
ICAgICAgICAgICAgQ09OTkVDVCgic2VsZWN0aW9uL2luYWN0aXZlIiwKLSAgICAgICAgICAgICAg
ICAgICAgcmVuZGVyVGhlbWVFZmxDb2xvckNsYXNzU2VsZWN0aW9uSW5hY3RpdmUpOwotICAgICAg
ICAgICAgQ09OTkVDVCgiZm9jdXNfcmluZyIsIHJlbmRlclRoZW1lRWZsQ29sb3JDbGFzc0ZvY3Vz
UmluZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2VkamUgPSBlZGplX29iamVj
dF9hZGQoZWNvcmVfZXZhc19nZXQobV9jYW52YXMpKTsKKyAgICBpZiAoIW1fZWRqZSkKKyAgICAg
ICAgRUlOQV9MT0dfRVJSKCJDb3VsZCBub3QgY3JlYXRlIGJhc2UgZWRqZSBvYmplY3QuIik7Cisg
ICAgZWxzZSBpZiAoIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1fZWRqZSwgbV90aGVtZVBhdGgudXRm
OCgpLmRhdGEoKSwgIndlYmtpdC9iYXNlIikpIHsKKyAgICAgICAgRWRqZV9Mb2FkX0Vycm9yIGVy
ciA9IGVkamVfb2JqZWN0X2xvYWRfZXJyb3JfZ2V0KG1fZWRqZSk7CisgICAgICAgIGNvbnN0IGNo
YXIqIGVycm1zZyA9IGVkamVfbG9hZF9lcnJvcl9zdHIoZXJyKTsKKyAgICAgICAgRUlOQV9MT0df
RVJSKCJDb3VsZCBub3QgbG9hZCAnd2Via2l0L2Jhc2UnIGZyb20gdGhlbWUgJXM6ICVzIiwKKyAg
ICAgICAgICAgICAgICAgICAgIG1fdGhlbWVQYXRoLnV0ZjgoKS5kYXRhKCksIGVycm1zZyk7Cisg
ICAgICAgIGV2YXNfb2JqZWN0X2RlbChtX2VkamUpOworICAgICAgICBtX2VkamUgPSAwOworICAg
IH0gZWxzZSB7CisjZGVmaW5lIENPTk5FQ1QoY2MsIGZ1bmMpIFwKKyAgICBlZGplX29iamVjdF9z
aWduYWxfY2FsbGJhY2tfYWRkKG1fZWRqZSwgImNvbG9yX2NsYXNzLHNldCIsICJ3ZWJraXQvImNj
LCBmdW5jLCB0aGlzKQorICAgICAgICBDT05ORUNUKCJzZWxlY3Rpb24vYWN0aXZlIiwgcmVuZGVy
VGhlbWVFZmxDb2xvckNsYXNzU2VsZWN0aW9uQWN0aXZlKTsKKyAgICAgICAgQ09OTkVDVCgic2Vs
ZWN0aW9uL2luYWN0aXZlIiwgcmVuZGVyVGhlbWVFZmxDb2xvckNsYXNzU2VsZWN0aW9uSW5hY3Rp
dmUpOworICAgICAgICBDT05ORUNUKCJmb2N1c19yaW5nIiwgcmVuZGVyVGhlbWVFZmxDb2xvckNs
YXNzRm9jdXNSaW5nKTsKICN1bmRlZiBDT05ORUNUCi0gICAgICAgIH0KICAgICB9CisKICAgICBB
U1NFUlQobV9lZGplKTsKIH0KIApAQCAtNjI5LDkgKzYyMywxMSBAQCB2b2lkIFJlbmRlclRoZW1l
RWZsOjp0aGVtZUNoYW5nZWQoKQogICAgIGNhY2hlVGhlbWVQYXJ0Rmx1c2goKTsKIAogICAgIGlm
ICghbV9jYW52YXMpIHsKLSAgICAgICAgY3JlYXRlQ2FudmFzKCk7Ci0gICAgICAgIGlmICghbV9j
YW52YXMpCisgICAgICAgIG1fY2FudmFzID0gZWNvcmVfZXZhc19idWZmZXJfbmV3KDEsIDEpOwor
ICAgICAgICBpZiAoIW1fY2FudmFzKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmICghbV9l
ZGplKSB7CkBAIC02NjAsOCArNjU2LDYgQEAgUmVuZGVyVGhlbWVFZmw6OlJlbmRlclRoZW1lRWZs
KFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9lZGplKDApCiB7Ci0gICAg
aWYgKHBhZ2UgJiYgcGFnZS0+bWFpbkZyYW1lKCkgJiYgcGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSkKLSAgICAgICAgdGhlbWVDaGFuZ2VkKCk7CiB9CiAKIFJlbmRlclRoZW1lRWZsOjp+UmVuZGVy
VGhlbWVFZmwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRl
clRoZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwu
aAppbmRleCBjMmU0N2QwY2MyNThjNzgyMDIyMTc2MDVhZWQ4ZjU1MjNlYzQ1ZmJjLi4xYjNhODdl
ZmY0NDA2OGQ4YzIzOGJmYjVkMWZhNmRkMDYwYWRmNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMTk2LDExICsxOTYsMTIgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ3VycmVudFRpbWUoUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHNl
dFRoZW1lUGF0aChjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgdGhlbWVQYXRoKCkgeyByZXR1
cm4gbV90aGVtZVBhdGg7IH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgZmxvYXQgZGVmYXVsdEZv
bnRTaXplOwogCiBwcml2YXRlOgotICAgIHZvaWQgY3JlYXRlQ2FudmFzKCk7CiAgICAgdm9pZCBj
cmVhdGVFZGplKCk7CiAgICAgdm9pZCBhcHBseUVkamVDb2xvcnMoKTsKICAgICB2b2lkIGFwcGx5
UGFydERlc2NyaXB0aW9ucygpOwpAQCAtMjI1LDYgKzIyNiw4IEBAIHByaXZhdGU6CiAgICAgQ29s
b3IgbV9tZWRpYVBhbmVsQ29sb3I7CiAgICAgQ29sb3IgbV9tZWRpYVNsaWRlckNvbG9yOwogI2Vu
ZGlmCisKKyAgICBTdHJpbmcgbV90aGVtZVBhdGg7CiAgICAgRWNvcmVfRXZhcyogbV9jYW52YXM7
CiAgICAgRXZhc19PYmplY3QqIG1fZWRqZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvU2Nyb2xsYmFyRWZsLmNwcAppbmRleCA2NWRkNjhkNDZlZmY2ZDBiNzIxMGIyODgyN2U0YTlh
MmY3M2FlZDgwLi43MTQ3OGQ3ODkwOTg2N2FkZjRiODE0YTVmOTkyZDAxNDZmMDk5MDVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAtMjMsMTMg
KzIzLDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyRWZsLmgi
CiAKLSNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
Ikhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogCkBAIC05NSwxMCArOTUsMTAgQEAgdm9pZCBTY3JvbGxi
YXJFZmw6OnNldFBhcmVudChTY3JvbGxWaWV3KiB2aWV3KQogCiAgICAgV2lkZ2V0OjpzZXRQYXJl
bnQodmlldyk7CiAKLSAgICBpZiAoIW9iamVjdCkgewotICAgICAgICBpZiAoIXZpZXcgfHwgIXZp
ZXctPmV2YXMoKSB8fCAhdmlldy0+ZXZhc09iamVjdCgpKQotICAgICAgICAgICAgcmV0dXJuOwor
ICAgIGlmICghdmlldyB8fCAhdmlldy0+ZXZhcygpIHx8ICF2aWV3LT5ldmFzT2JqZWN0KCkpCisg
ICAgICAgIHJldHVybjsKIAorICAgIGlmICghb2JqZWN0KSB7CiAgICAgICAgIG9iamVjdCA9IGVk
amVfb2JqZWN0X2FkZCh2aWV3LT5ldmFzKCkpOwogICAgICAgICBpZiAoIW9iamVjdCkgewogICAg
ICAgICAgICAgRUlOQV9MT0dfRVJSKCJDb3VsZCBub3QgY3JlYXRlIGVkamUgb2JqZWN0IGZvciB2
aWV3PSVwIChldmFzPSVwKSIsCkBAIC0xMDcsMTUgKzEwNywxOSBAQCB2b2lkIFNjcm9sbGJhckVm
bDo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpCiAgICAgICAgIH0KICAgICAgICAgZWRqZV9v
YmplY3RfbWVzc2FnZV9oYW5kbGVyX3NldChvYmplY3QsIHNjcm9sbGJhckVmbEVkamVNZXNzYWdl
LCB0aGlzKTsKICAgICAgICAgc2V0RXZhc09iamVjdChvYmplY3QpOwotICAgIH0gZWxzZSBpZiAo
IXZpZXcgfHwgIXZpZXctPmV2YXMoKSB8fCAhdmlldy0+ZXZhc09iamVjdCgpKSB7Ci0gICAgICAg
IGV2YXNfb2JqZWN0X2hpZGUob2JqZWN0KTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHZpZXcpLT5mcmFtZSgpOwor
ICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY29uc3Qg
Y2hhciogZ3JvdXAgPSAob3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQogICAg
ICAgICA/ICJzY3JvbGxiYXIuaG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRpY2FsIjsKLSAg
ICBTdHJpbmcgdGhlbWUoZWRqZVRoZW1lUmVjdXJzaXZlKCkpOwotCisgICAgU3RyaW5nIHRoZW1l
ID0gc3RhdGljX2Nhc3Q8UmVuZGVyVGhlbWVFZmwqPihwYWdlLT50aGVtZSgpKS0+dGhlbWVQYXRo
KCk7CiAgICAgaWYgKHRoZW1lLmlzRW1wdHkoKSkgewogICAgICAgICBFSU5BX0xPR19FUlIoIkNv
dWxkIG5vdCBsb2FkIHRoZW1lICclcyc6IG5vIHRoZW1lIHBhdGggc2V0LiIsIGdyb3VwKTsKICAg
ICAgICAgZXZhc19vYmplY3RfaGlkZShvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvV2lkZ2V0RWZsLmNwcAppbmRleCAxMzhiZGZhMzAxN2Q1ZWViMjRlMDM1YmU5MzFkZGEwZDFk
MGM5ZjNhLi44ZjhmMmU3YjdlNmU4NjAxN2U2MmRhOTlkM2RjZDkxMzQwZTM4MTYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcApAQCAtNTEsNyArNTEsNiBAQCBj
bGFzcyBXaWRnZXRQcml2YXRlIHsKIHB1YmxpYzoKICAgICBFdmFzKiBtX2V2YXM7CiAgICAgRXZh
c19PYmplY3QqIG1fZXZhc09iamVjdDsKLSAgICBTdHJpbmcgbV90aGVtZTsKIAogICAgIFdpZGdl
dFByaXZhdGUoKQogICAgICAgICA6IG1fZXZhcygwKQpAQCAtMTQ1LDI5ICsxNDQsNiBAQCB2b2lk
IFdpZGdldDo6c2V0SXNTZWxlY3RlZChib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LWNvbnN0IFN0cmluZyBXaWRnZXQ6OmVkamVUaGVtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
ZGF0YS0+bV90aGVtZTsKLX0KLQotdm9pZCBXaWRnZXQ6OnNldEVkamVUaGVtZShjb25zdCBTdHJp
bmcmIHRoZW1lUGF0aCkKLXsKLSAgICBpZiAobV9kYXRhLT5tX3RoZW1lID09IHRoZW1lUGF0aCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9kYXRhLT5tX3RoZW1lID0gdGhlbWVQYXRoOwotfQot
Ci1jb25zdCBTdHJpbmcgV2lkZ2V0OjplZGplVGhlbWVSZWN1cnNpdmUoKSBjb25zdAotewotICAg
IGlmICghbV9kYXRhLT5tX3RoZW1lLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gbV9kYXRhLT5t
X3RoZW1lOwotICAgIGlmIChtX3BhcmVudCkKLSAgICAgICAgcmV0dXJuIG1fcGFyZW50LT5lZGpl
VGhlbWVSZWN1cnNpdmUoKTsKLQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQogRXZhcyogV2lk
Z2V0OjpldmFzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kYXRhLT5tX2V2YXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dAppbmRleCAzN2FkMTk3MzI4ZTVjNjgyMTdhNjM2ODk4NWUzNzZkNTM4NWY4YTlhLi5k
MjVmYjgxMjc1MTI5MmRhNGE2NDQ2ZDQ0ZjUyNjM5NTE0ODcwODgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKQEAgLTE2LDYgKzE2LDcgQEAgU0VUKFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L2VkaXRpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2hpc3RvcnkiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L2h0bWwiCisgICAgIiR7V0VCQ09SRV9ESVJ9L2h0bWwvc2hhZG93
IgogICAgICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xv
YWRlciIKICAgICAiJHtXRUJDT1JFX0RJUn0vbG9hZGVyL2FwcGNhY2hlIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2ZyYW1lLmNwcAppbmRleCA2N2E5YmM4MmM3NjlhZmY2ODc0YTNkYjM0N2FjN2JkM2Zi
NDk1NmVkLi42YTRiMWEzZjI1OTg0ZDVjOWZlMzlhYmI4OGIzYTQ1ZWVkM2JkYjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMTY1NCw4ICsxNjU0LDYgQEAgdm9pZCBld2tf
ZnJhbWVfdmlld19jcmVhdGVfZm9yX3ZpZXcoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBFdmFzX09i
amVjdCogdmlldykKICAgICBpZiAoIXNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY29uc3QgY2hhciogdGhlbWUgPSBld2tfdmlld190aGVtZV9nZXQodmll
dyk7Ci0gICAgc21hcnREYXRhLT5mcmFtZS0+dmlldygpLT5zZXRFZGplVGhlbWUodGhlbWUpOwog
ICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+c2V0RXZhc09iamVjdChld2tGcmFtZSk7CiAK
ICAgICBld2tfZnJhbWVfbWl4ZWRfY29udGVudF9kaXNwbGF5ZWRfc2V0KGV3a0ZyYW1lLCBmYWxz
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA3YzhiM2RiYjQxMTVmOTRjMzdl
NzQyYjRiZmYxN2FiYjBhZjYwZmEwLi4zYjI0OGE1YThiZjAzN2RiOWFjMjUxMTFlZjEwMGI1OTMw
YTM3YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTUyLDcgKzUyLDcgQEAK
ICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisj
aW5jbHVkZSAiUmVuZGVyVGhlbWVFZmwuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiY19pbnN0YW5jZS5oIgpAQCAtMTM3MSwx
MiArMTM3MSw4IEBAIHZvaWQgZXdrX3ZpZXdfdGhlbWVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBjb25zdCBjaGFyKiBwYXRoKQogICAgIGlmICghZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZw
cml2LT5zZXR0aW5ncy50aGVtZSwgcGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNv
cmU6OkZyYW1lVmlldyogdmlldyA9IHByaXYtPm1haW5GcmFtZS0+dmlldygpOwotICAgIGlmICh2
aWV3KSB7Ci0gICAgICAgIHZpZXctPnNldEVkamVUaGVtZShXVEY6OlN0cmluZyhwYXRoKSk7Ci0g
ICAgICAgIHByaXYtPnBhZ2UtPnRoZW1lKCktPnRoZW1lQ2hhbmdlZCgpOwotICAgIH0KLQorICAg
IFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsKiB0aGVtZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlJl
bmRlclRoZW1lRWZsKj4ocHJpdi0+cGFnZS0+dGhlbWUoKSk7CisgICAgdGhlbWUtPnNldFRoZW1l
UGF0aChwYXRoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3ZpZXdfdGhlbWVfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150350</attachid>
            <date>2012-07-01 18:11:52 -0700</date>
            <delta_ts>2012-07-16 23:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89842-20120702101150.patch</filename>
            <type>text/plain</type>
            <size>11148</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM5ZDA1YWU5YmQ2NDNh
MTYzZGQ5MmZiZDMyNzlmMTM4ZGRjMzE3ZC4uNDBhZDljNWVlNDk4Njg0MDQxZDViMjk4ODEyYWY4
NTJhNTI3NzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA3LTAxICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQvRWZs
IHVzZXMgY3VzdG9tIHRoZW1lIGZvciBTY3JvbGxiYXIsIFJlbmRlclRoZW1lIGFuZCBDdXJzb3Iu
CisgICAgICAgIEhvd2V2ZXIsIHRoZW1lIGluZm9ybWF0aW9uIGl0c2VsZiBpcyBpbiBXaWRnZXRF
Zmwgc28gaXQgaXMgYWNjZXNzZWQgYnkKKyAgICAgICAgY2FsbGluZyByZWN1cnNpdmUgZnVuY3Rp
b24uCisgICAgICAgIEJlY2F1c2UgdGhlbWUgaXMgbWFuYWdlZCBieSBlYWNoIHBhZ2UsIHRoaXMg
cGF0Y2ggbW92ZXMgY29kZXMgcmVsYXRlZCB0bworICAgICAgICB0aGVtZSBmcm9tIFdpZGdldEVm
bCB0byBSZW5kZXJUaGVtZUVmbCB3aGljaCBpcyBjb250YWluZWQgYnkgcGFnZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAoV2lkZ2V0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVFZmw6OnNldFRoZW1lUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6
Y3JlYXRlRWRqZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZsOjpSZW5kZXJUaGVtZUVmbCk6
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgIChSZW5k
ZXJUaGVtZUVmbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6dGhlbWVQYXRo
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcDoKKyAgICAgICAgKFNj
cm9sbGJhckVmbDo6c2V0UGFyZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZs
LmNwcDoKKyAgICAgICAgKFdpZGdldFByaXZhdGUpOgorCiAyMDEyLTA3LTAxICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzExNzg1NzQz
PiBbbWFjXSBOb24tQk1QIGNoYXJhY3RlcnMgaW4gdmVydGljYWwgdGV4dCBhcHBlYXIgYXMgbWlz
c2luZyBnbHlwaHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjczZGE2YmViODc3MWJmZDQ2MzU3NzQxZWQ3NzUxOTYz
MDMwYjgxMi4uNjRiOGUzNGFiMmU0Nzk5YTRkYzc4OGYxMDA0NDAyYjQ3MjZlOWIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wNy0wMSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gTW92ZSBjb2RlcyByZWxhdGVkIHRvIHRoZW1l
IHNldHRpbmcgZnJvbSBXaWRnZXQgdG8gUmVuZGVyVGhlbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5ODQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIGh0bWwvc2hh
ZG93IHRvIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTLgorCiAyMDEyLTA2LTI5ICBLcnp5c3p0
b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEFkZCBzdXBw
b3J0IGZvciBVbml0IFRlc3RzLCBiYXNlZCBvbiB0aGUgZ3Rlc3QgbGlicmFyeS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwppbmRleCAxZGJmZGFkOWY1NWYxMjhiMDBjZWEyNzhkNjExODkwNzJmYWRkMzU1Li42NGY4
ZTZhMGY5MDllNTRmZjAxMGI1ZWRhMzVhZTBjY2E5Y2VkNDY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDctMDEgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1
bmcuY29tPgorCisgICAgICAgIFtFRkxdIE1vdmUgY29kZXMgcmVsYXRlZCB0byB0aGVtZSBzZXR0
aW5nIGZyb20gV2lkZ2V0IHRvIFJlbmRlclRoZW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTg0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENhbGwgUmVuZGVyVGhlbWVFZmw6OnNldFRoZW1lUGF0aCBp
bnN0ZWFkIG9mIHNldHRpbmcgdGhlbWUgaW4gRnJhbWVWaWV3LgorCisgICAgICAgICogZXdrL2V3
a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfdmlld19jcmVhdGVfZm9yX3ZpZXcpOgor
ICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld190aGVtZV9zZXQp
OgorCiAyMDEyLTA2LTI5ICBLcnp5c3p0b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPiwg
VG9tYXN6IE1vcmF3c2tpIDx0Lm1vcmF3c2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
IEltcGxlbWVudGF0aW9uIG9mIHRlc3RpbmcgZnJhbWV3b3JrIGFuZCB1bml0IHRlc3RzIGZvciBX
ZWJLaXQtRUZMIHBvcnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IGZiYjAwMjBjN2Jk
NTEyYTkwY2MzN2JlNjNlNWI5YjViYmNjZGFhNjUuLjM0NWIzMjFjZjhmMmRlMTJjM2U4MmRmYzJi
YWZlNDIwNmFiMWE2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC0yMjEsMTAgKzIy
MSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RXZhc09iamVjdChFdmFzX09iamVjdCopOwog
ICAgIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KCkgY29uc3Q7Ci0KLSAgICBjb25zdCBTdHJpbmcg
ZWRqZVRoZW1lKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRFZGplVGhlbWUoY29uc3QgU3RyaW5nICYp
OwotICAgIGNvbnN0IFN0cmluZyBlZGplVGhlbWVSZWN1cnNpdmUoKSBjb25zdDsKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCA3ZDI3Yjk2ZDBhNDAzOGZjNGNhMzVhZmU1NmE3MmIx
MzFjMTM1ODY3Li5mYzY0OGRkYThjNjMxYWM4ODJmNTY3ZDZhYWFiZTc4NDIxNjhlNjhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTI3
LDkgKzI3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZUVmbC5oIgogCiAjaW5jbHVkZSAiQ1NT
VmFsdWVLZXl3b3Jkcy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJGcmFt
ZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgpAQCAtNDIyLDYgKzQxOSwxNSBAQCBzdGF0aWMgdm9pZCByZW5kZXJUaGVtZUVmbENvbG9y
Q2xhc3NGb2N1c1Jpbmcodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIG9iamVjdCwgYwogICAgIHRo
YXQtPnNldEZvY3VzUmluZ0NvbG9yKGZyLCBmZywgZmIsIGZhKTsKIH0KIAordm9pZCBSZW5kZXJU
aGVtZUVmbDo6c2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBpZiAocGF0
aCA9PSBtX3RoZW1lUGF0aCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90aGVtZVBhdGggPSBw
YXRoOworICAgIHRoZW1lQ2hhbmdlZCgpOworfQorCiB2b2lkIFJlbmRlclRoZW1lRWZsOjpjcmVh
dGVDYW52YXMoKQogewogICAgIEFTU0VSVCghbV9jYW52YXMpOwpAQCAtNDMyLDIwICs0MzgsMTcg
QEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6Y3JlYXRlQ2FudmFzKCkKIHZvaWQgUmVuZGVyVGhlbWVF
Zmw6OmNyZWF0ZUVkamUoKQogewogICAgIEFTU0VSVCghbV9lZGplKTsKLSAgICBGcmFtZSogZnJh
bWUgPSBtX3BhZ2UgPyBtX3BhZ2UtPm1haW5GcmFtZSgpIDogMDsKLSAgICBGcmFtZVZpZXcqIHZp
ZXcgPSBmcmFtZSA/IGZyYW1lLT52aWV3KCkgOiAwOwotICAgIFN0cmluZyB0aGVtZSA9IHZpZXcg
PyB2aWV3LT5lZGplVGhlbWVSZWN1cnNpdmUoKSA6ICIiOwotICAgIGlmICh0aGVtZS5pc0VtcHR5
KCkpCisgICAgaWYgKG1fdGhlbWVQYXRoLmlzRW1wdHkoKSkKICAgICAgICAgRUlOQV9MT0dfRVJS
KCJObyB0aGVtZSBkZWZpbmVkLCB1bmFibGUgdG8gc2V0IFJlbmRlclRoZW1lRWZsLiIpOwogICAg
IGVsc2UgewogICAgICAgICBtX2VkamUgPSBlZGplX29iamVjdF9hZGQoZWNvcmVfZXZhc19nZXQo
bV9jYW52YXMpKTsKICAgICAgICAgaWYgKCFtX2VkamUpCiAgICAgICAgICAgICBFSU5BX0xPR19F
UlIoIkNvdWxkIG5vdCBjcmVhdGUgYmFzZSBlZGplIG9iamVjdC4iKTsKLSAgICAgICAgZWxzZSBp
ZiAoIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1fZWRqZSwgdGhlbWUudXRmOCgpLmRhdGEoKSwgIndl
YmtpdC9iYXNlIikpIHsKKyAgICAgICAgZWxzZSBpZiAoIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1f
ZWRqZSwgbV90aGVtZVBhdGgudXRmOCgpLmRhdGEoKSwgIndlYmtpdC9iYXNlIikpIHsKICAgICAg
ICAgICAgIEVkamVfTG9hZF9FcnJvciBlcnIgPSBlZGplX29iamVjdF9sb2FkX2Vycm9yX2dldCht
X2VkamUpOwogICAgICAgICAgICAgY29uc3QgY2hhciogZXJybXNnID0gZWRqZV9sb2FkX2Vycm9y
X3N0cihlcnIpOwogICAgICAgICAgICAgRUlOQV9MT0dfRVJSKCJDb3VsZCBub3QgbG9hZCAnd2Vi
a2l0L2Jhc2UnIGZyb20gdGhlbWUgJXM6ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0
aGVtZS51dGY4KCkuZGF0YSgpLCBlcnJtc2cpOworICAgICAgICAgICAgICAgICAgICAgICAgIG1f
dGhlbWVQYXRoLnV0ZjgoKS5kYXRhKCksIGVycm1zZyk7CiAgICAgICAgICAgICBldmFzX29iamVj
dF9kZWwobV9lZGplKTsKICAgICAgICAgICAgIG1fZWRqZSA9IDA7CiAgICAgICAgIH0gZWxzZSB7
CkBAIC02NjAsOCArNjYzLDYgQEAgUmVuZGVyVGhlbWVFZmw6OlJlbmRlclRoZW1lRWZsKFBhZ2Uq
IHBhZ2UpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9lZGplKDApCiB7Ci0gICAgaWYgKHBh
Z2UgJiYgcGFnZS0+bWFpbkZyYW1lKCkgJiYgcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSkKLSAg
ICAgICAgdGhlbWVDaGFuZ2VkKCk7CiB9CiAKIFJlbmRlclRoZW1lRWZsOjp+UmVuZGVyVGhlbWVF
ZmwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAppbmRl
eCBjMmU0N2QwY2MyNThjNzgyMDIyMTc2MDVhZWQ4ZjU1MjNlYzQ1ZmJjLi5iYmNiNGUzMTQzZTI1
MDkxNDRmNDNkMjIzYTZiYzUyOTc2MzE3MWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMTk2LDYgKzE5Niw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUN1cnJlbnRUaW1lKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCisgICAgdm9pZCBzZXRUaGVtZVBh
dGgoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRoZW1lUGF0aCgpIHsgcmV0dXJuIG1fdGhl
bWVQYXRoOyB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGZsb2F0IGRlZmF1bHRGb250U2l6ZTsK
IApAQCAtMjI1LDYgKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgQ29sb3IgbV9tZWRpYVBhbmVsQ29s
b3I7CiAgICAgQ29sb3IgbV9tZWRpYVNsaWRlckNvbG9yOwogI2VuZGlmCisKKyAgICBTdHJpbmcg
bV90aGVtZVBhdGg7CiAgICAgRWNvcmVfRXZhcyogbV9jYW52YXM7CiAgICAgRXZhc19PYmplY3Qq
IG1fZWRqZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9s
bGJhckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNw
cAppbmRleCA2NWRkNjhkNDZlZmY2ZDBiNzIxMGIyODgyN2U0YTlhMmY3M2FlZDgwLi5jZTdmN2Jm
NGI5ZGZkOTQ3YWQ5NGVmZjdkN2VhZDFhZWU2ZDRlNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAtMjMsMTMgKzIzLDEzIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyRWZsLmgiCiAKLSNpbmNsdWRlICJDaHJv
bWVDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlbmRlclRo
ZW1lRWZsLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogCkBAIC0xMTIsOSArMTEyLDE3IEBAIHZvaWQgU2Nyb2xsYmFyRWZsOjpzZXRQYXJlbnQo
U2Nyb2xsVmlldyogdmlldykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIEZyYW1lKiBm
cmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHZpZXcpLT5mcmFtZSgpOworICAgIGlmICgh
ZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY29uc3QgY2hhciogZ3Jv
dXAgPSAob3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQogICAgICAgICA/ICJz
Y3JvbGxiYXIuaG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRpY2FsIjsKLSAgICBTdHJpbmcg
dGhlbWUoZWRqZVRoZW1lUmVjdXJzaXZlKCkpOworICAgIFN0cmluZyB0aGVtZSA9IHN0YXRpY19j
YXN0PFJlbmRlclRoZW1lRWZsKj4ocGFnZS0+dGhlbWUoKSktPnRoZW1lUGF0aCgpOwogCiAgICAg
aWYgKHRoZW1lLmlzRW1wdHkoKSkgewogICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBs
b2FkIHRoZW1lICclcyc6IG5vIHRoZW1lIHBhdGggc2V0LiIsIGdyb3VwKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggMTM4YmRmYTMwMTdkNWVlYjI0ZTAz
NWJlOTMxZGRhMGQxZDBjOWYzYS4uOGY4ZjJlN2I3ZTZlODYwMTdlNjJkYTk5ZDNkY2Q5MTM0MGUz
ODE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKQEAgLTUx
LDcgKzUxLDYgQEAgY2xhc3MgV2lkZ2V0UHJpdmF0ZSB7CiBwdWJsaWM6CiAgICAgRXZhcyogbV9l
dmFzOwogICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7Ci0gICAgU3RyaW5nIG1fdGhlbWU7
CiAKICAgICBXaWRnZXRQcml2YXRlKCkKICAgICAgICAgOiBtX2V2YXMoMCkKQEAgLTE0NSwyOSAr
MTQ0LDYgQEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi1jb25zdCBTdHJpbmcgV2lkZ2V0OjplZGplVGhlbWUoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2RhdGEtPm1fdGhlbWU7Ci19Ci0KLXZvaWQgV2lkZ2V0OjpzZXRFZGplVGhl
bWUoY29uc3QgU3RyaW5nJiB0aGVtZVBhdGgpCi17Ci0gICAgaWYgKG1fZGF0YS0+bV90aGVtZSA9
PSB0aGVtZVBhdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fZGF0YS0+bV90aGVtZSA9IHRo
ZW1lUGF0aDsKLX0KLQotY29uc3QgU3RyaW5nIFdpZGdldDo6ZWRqZVRoZW1lUmVjdXJzaXZlKCkg
Y29uc3QKLXsKLSAgICBpZiAoIW1fZGF0YS0+bV90aGVtZS5pc051bGwoKSkKLSAgICAgICAgcmV0
dXJuIG1fZGF0YS0+bV90aGVtZTsKLSAgICBpZiAobV9wYXJlbnQpCi0gICAgICAgIHJldHVybiBt
X3BhcmVudC0+ZWRqZVRoZW1lUmVjdXJzaXZlKCk7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19
Ci0KIEV2YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZGF0YS0+bV9l
dmFzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMzdhZDE5NzMyOGU1YzY4MjE3YTYzNjg5ODVlMzc2
ZDUzODVmOGE5YS4uZDI1ZmI4MTI3NTEyOTJkYTRhNjQ0NmQ0NGY1MjYzOTUxNDg3MDg4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBAIFNFVChXZWJLaXRfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgogICAgICIke1dFQkNPUkVfRElS
fS9oaXN0b3J5IgogICAgICIke1dFQkNPUkVfRElSfS9odG1sIgorICAgICIke1dFQkNPUkVfRElS
fS9odG1sL3NoYWRvdyIKICAgICAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yIgogICAgICIke1dF
QkNPUkVfRElSfS9sb2FkZXIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlci9hcHBjYWNoZSIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggNjdhOWJjODJjNzY5YWZmNjg3NGEz
ZGIzNDdhYzdiZDNmYjQ5NTZlZC4uNmE0YjFhM2YyNTk4NGQ1YzlmZTM5YWJiODhiM2E0NWVlZDNi
ZGI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTE2NTQsOCArMTY1NCw2
IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92aWV3KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSwgRXZhc19PYmplY3QqIHZpZXcpCiAgICAgaWYgKCFzbWFydERhdGEtPmZyYW1lLT52aWV3
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGNoYXIqIHRoZW1lID0gZXdrX3ZpZXdf
dGhlbWVfZ2V0KHZpZXcpOwotICAgIHNtYXJ0RGF0YS0+ZnJhbWUtPnZpZXcoKS0+c2V0RWRqZVRo
ZW1lKHRoZW1lKTsKICAgICBzbWFydERhdGEtPmZyYW1lLT52aWV3KCktPnNldEV2YXNPYmplY3Qo
ZXdrRnJhbWUpOwogCiAgICAgZXdrX2ZyYW1lX21peGVkX2NvbnRlbnRfZGlzcGxheWVkX3NldChl
d2tGcmFtZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNWY5NGEz
YzA0MzM4YmY5NGYxY2M2MmVhY2NkNzU2MTM2MzRjZTlhMi4uOGVhMTk3ODMxN2IyMmQzM2E1M2Qx
ZWJiOTViYWZjNTQxNzk3ZWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC01
Miw3ICs1Miw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUHJv
Z3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgImNfaW5zdGFuY2Uu
aCIKQEAgLTEzNzEsMTIgKzEzNzEsOCBAQCB2b2lkIGV3a192aWV3X3RoZW1lX3NldChFdmFzX09i
amVjdCogZXdrVmlldywgY29uc3QgY2hhciogcGF0aCkKICAgICBpZiAoIWVpbmFfc3RyaW5nc2hh
cmVfcmVwbGFjZSgmcHJpdi0+c2V0dGluZ3MudGhlbWUsIHBhdGgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2LT5tYWluRnJhbWUtPnZpZXco
KTsKLSAgICBpZiAodmlldykgewotICAgICAgICB2aWV3LT5zZXRFZGplVGhlbWUoV1RGOjpTdHJp
bmcocGF0aCkpOwotICAgICAgICBwcml2LT5wYWdlLT50aGVtZSgpLT50aGVtZUNoYW5nZWQoKTsK
LSAgICB9Ci0KKyAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbCogdGhlbWUgPSBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbCo+KHByaXYtPnBhZ2UtPnRoZW1lKCkpOworICAgIHRo
ZW1lLT5zZXRUaGVtZVBhdGgocGF0aCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a192aWV3X3RoZW1l
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152701</attachid>
            <date>2012-07-16 23:29:12 -0700</date>
            <delta_ts>2012-07-17 00:52:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89842-20120717152912.patch</filename>
            <type>text/plain</type>
            <size>13666</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0Y2FkMjM1MzU4ZTJk
N2E3MmY2NzA2MWYwZDhiNjIwYWMwMmQxMi4uYmQ4OWFhMDM1ZjlmMGZjYzgyMTIxMDI1ODg0OThk
YWI2OTk4ZWZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA3LTE2ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBNb3ZlIGNv
ZGVzIHJlbGF0ZWQgdG8gdGhlbWUgc2V0dGluZyBmcm9tIFdpZGdldCB0byBSZW5kZXJUaGVtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4NDIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQvRWZs
IHVzZXMgY3VzdG9tIHRoZW1lIGZvciBTY3JvbGxiYXIsIFJlbmRlclRoZW1lIGFuZCBDdXJzb3Iu
CisgICAgICAgIEhvd2V2ZXIsIHRoZW1lIGluZm9ybWF0aW9uIGl0c2VsZiBpcyBpbiBXaWRnZXRF
Zmwgc28gaXQgaXMgYWNjZXNzZWQgYnkKKyAgICAgICAgY2FsbGluZyByZWN1cnNpdmUgZnVuY3Rp
b24uCisgICAgICAgIEJlY2F1c2UgdGhlbWUgaXMgbWFuYWdlZCBieSBlYWNoIHBhZ2UsIHRoaXMg
cGF0Y2ggbW92ZXMgY29kZXMgcmVsYXRlZCB0bworICAgICAgICB0aGVtZSBmcm9tIFdpZGdldEVm
bCB0byBSZW5kZXJUaGVtZUVmbCB3aGljaCBpcyBjb250YWluZWQgYnkgcGFnZS4KKworICAgICAg
ICAqIHBsYXRmb3JtL1dpZGdldC5oOiBSZW1vdmVkIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRoZW1l
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6c2V0VGhlbWVQYXRoKTogQWRkZWQgdG8gc2V0IHRoZW1l
IHBhdGguCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbDo6Y3JlYXRlRWRqZSk6IFVw
ZGF0ZWQgbWV0aG9kIHRvIHVzZSBSZW5kZXJUaGVtZUVmbCdzIHRoZW1lLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVFZmw6OlJlbmRlclRoZW1lRWZsKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lRWZs
Ojp0aGVtZVBhdGgpOiBBZGRlZCB0byBnZXQgdGhlbWUgcGF0aAorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9TY3JvbGxiYXJFZmwuY3BwOiBVcGRhdGVkIG1ldGhvZCB0byB1c2UgUmVuZGVyVGhlbWVF
ZmwncyB0aGVtZS4KKyAgICAgICAgKFNjcm9sbGJhckVmbDo6c2V0UGFyZW50KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvV2lkZ2V0RWZsLmNwcDogUmVtb3ZlZCBjb2RlcyByZWxhdGVkIHRoZW1l
LgorICAgICAgICAoV2lkZ2V0UHJpdmF0ZSk6CisKIDIwMTItMDctMTYgIFBldGUgV2lsbGlhbXNv
biAgPHBldGV3aWxAZ29vZ2xlLmNvbT4KIAogICAgICAgICBDaGFuZ2VkIHRoZSBiZWhhdmlvciBv
ZiBpY29uVVJMcyB0byBhbHdheXMgcmVjYWxjdWxhdGUgdGhlIGxpc3QuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlm
NGU3ZThhYWRhZjcxZTdmMGM4MzBlNjQ5Y2NkZmYxODgwMjNhYzkuLjdlYmUzY2JkYWM3ZTZjYmU3
MWUxOGFiZmMxZmEyMjU0OGU4NDA1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTIt
MDctMTYgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtF
RkxdIE1vdmUgY29kZXMgcmVsYXRlZCB0byB0aGVtZSBzZXR0aW5nIGZyb20gV2lkZ2V0IHRvIFJl
bmRlclRoZW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04OTg0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGh0bWwvc2hhZG93IHRvIFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTLgorCiAyMDEyLTA3LTE2ICBKb3NodWEgTmV0dGVyZmllbGQgIDxqbmV0dGVyZmll
bGRAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gV2ViR0wgQ29kZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDg1OGMzMmYxODczMTBkZjYxZGJjN2Y2YTM3MGZiMzY1NGY3Y2Ni
NTEuLjUxYjZjNzZlZTA2OTI3ZjY5ZDcyZDEzMDMwYzA0MjhhZWY4MTdlMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0xNiAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNo
b2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gTW92ZSBjb2RlcyByZWxhdGVkIHRvIHRo
ZW1lIHNldHRpbmcgZnJvbSBXaWRnZXQgdG8gUmVuZGVyVGhlbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5ODQyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAg
ICAgKGV3a19mcmFtZV92aWV3X2NyZWF0ZV9mb3Jfdmlldyk6IFJlbW92ZWQgY29kZXMgd2hpY2gg
c2V0IHRoZW1lIGluIEZyYW1lVmlldy4KKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoZXdrX3ZpZXdfdGhlbWVfc2V0KTogQ2FsbGVkIFJlbmRlclRoZW1lRWZsOjpzZXRUaGVt
ZVBhdGggaW5zdGVhZCBvZiBzZXR0aW5nIHRoZW1lIGluIEZyYW1lVmlldy4KKwogMjAxMi0wNy0x
NiAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1v
dmUgc2V0Q29udHJvbGxlciBmcm9tIEJhdHRlcnlDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4Y2NlOGU1
ODQyZmM5YmQyOTIwZTVhZmY3ZmI4YzJkMDI4MjFlZTA0Li42ZmY5NGU4ZDA1OGVjZTRiMTM4NWVh
ZTFhM2QzNjZiYmNiYmM3NGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDct
MTYgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IE1vdmUgY29kZXMgcmVsYXRlZCB0byB0aGVtZSBzZXR0aW5nIGZyb20gV2lkZ2V0IHRvIFJlbmRl
clRoZW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTg0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6IEFkZGVkIGh0bWwvc2hhZG93IHRvIFdlYktpdF9JTkNMVURFX0RJUkVD
VE9SSUVTLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFRoZW1lUGF0aCk6IENhbGxlZCBSZW5kZXJU
aGVtZUVmbDo6c2V0VGhlbWVQYXRoIGluc3RlYWQgb2Ygc2V0dGluZyB0aGVtZSBpbiBGcmFtZVZp
ZXcuCisKIDIwMTItMDctMTYgIFBldGUgV2lsbGlhbXNvbiAgPHBldGV3aWxAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBFeHBvcnQgdGhlIGljb25VUkwgbGlzdCB0byBtYWtlIGl0IGF2YWlsYWJsZSB0
byB0aGUgSW50ZXJuYWxzIGNsYXNzIGZvciB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5o
CmluZGV4IGZiYjAwMjBjN2JkNTEyYTkwY2MzN2JlNjNlNWI5YjViYmNjZGFhNjUuLjM0NWIzMjFj
ZjhmMmRlMTJjM2U4MmRmYzJiYWZlNDIwNmFiMWE2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdl
dC5oCkBAIC0yMjEsMTAgKzIyMSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RXZhc09iamVj
dChFdmFzX09iamVjdCopOwogICAgIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KCkgY29uc3Q7Ci0K
LSAgICBjb25zdCBTdHJpbmcgZWRqZVRoZW1lKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRFZGplVGhl
bWUoY29uc3QgU3RyaW5nICYpOwotICAgIGNvbnN0IFN0cmluZyBlZGplVGhlbWVSZWN1cnNpdmUo
KSBjb25zdDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCA0NjJlZTk0NmU5MWM5
NWY4NmU0ZTMxYTI3OGFlOWVhYjIzZGM5YmQwLi5lZDNkNjkyNjg3NDRkZWI3OWMyYmUxYzY5ZDBk
MDI3NDgwNzA4MGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJU
aGVtZUVmbC5jcHAKQEAgLTI3LDkgKzI3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZUVmbC5o
IgogCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW0u
aCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtNDIyLDYgKzQxOSwxNSBAQCBzdGF0aWMgdm9pZCBy
ZW5kZXJUaGVtZUVmbENvbG9yQ2xhc3NGb2N1c1Jpbmcodm9pZCogZGF0YSwgRXZhc19PYmplY3Qq
IG9iamVjdCwgYwogICAgIHRoYXQtPnNldEZvY3VzUmluZ0NvbG9yKGZyLCBmZywgZmIsIGZhKTsK
IH0KIAordm9pZCBSZW5kZXJUaGVtZUVmbDo6c2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYgcGF0
aCkKK3sKKyAgICBpZiAocGF0aCA9PSBtX3RoZW1lUGF0aCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV90aGVtZVBhdGggPSBwYXRoOworICAgIHRoZW1lQ2hhbmdlZCgpOworfQorCiB2b2lkIFJl
bmRlclRoZW1lRWZsOjpjcmVhdGVDYW52YXMoKQogewogICAgIEFTU0VSVCghbV9jYW52YXMpOwpA
QCAtNDMyLDIwICs0MzgsMTcgQEAgdm9pZCBSZW5kZXJUaGVtZUVmbDo6Y3JlYXRlQ2FudmFzKCkK
IHZvaWQgUmVuZGVyVGhlbWVFZmw6OmNyZWF0ZUVkamUoKQogewogICAgIEFTU0VSVCghbV9lZGpl
KTsKLSAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UgPyBtX3BhZ2UtPm1haW5GcmFtZSgpIDogMDsK
LSAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZSA/IGZyYW1lLT52aWV3KCkgOiAwOwotICAgIFN0
cmluZyB0aGVtZSA9IHZpZXcgPyB2aWV3LT5lZGplVGhlbWVSZWN1cnNpdmUoKSA6ICIiOwotICAg
IGlmICh0aGVtZS5pc0VtcHR5KCkpCisgICAgaWYgKG1fdGhlbWVQYXRoLmlzRW1wdHkoKSkKICAg
ICAgICAgRUlOQV9MT0dfRVJSKCJObyB0aGVtZSBkZWZpbmVkLCB1bmFibGUgdG8gc2V0IFJlbmRl
clRoZW1lRWZsLiIpOwogICAgIGVsc2UgewogICAgICAgICBtX2VkamUgPSBlZGplX29iamVjdF9h
ZGQoZWNvcmVfZXZhc19nZXQobV9jYW52YXMpKTsKICAgICAgICAgaWYgKCFtX2VkamUpCiAgICAg
ICAgICAgICBFSU5BX0xPR19FUlIoIkNvdWxkIG5vdCBjcmVhdGUgYmFzZSBlZGplIG9iamVjdC4i
KTsKLSAgICAgICAgZWxzZSBpZiAoIWVkamVfb2JqZWN0X2ZpbGVfc2V0KG1fZWRqZSwgdGhlbWUu
dXRmOCgpLmRhdGEoKSwgIndlYmtpdC9iYXNlIikpIHsKKyAgICAgICAgZWxzZSBpZiAoIWVkamVf
b2JqZWN0X2ZpbGVfc2V0KG1fZWRqZSwgbV90aGVtZVBhdGgudXRmOCgpLmRhdGEoKSwgIndlYmtp
dC9iYXNlIikpIHsKICAgICAgICAgICAgIEVkamVfTG9hZF9FcnJvciBlcnIgPSBlZGplX29iamVj
dF9sb2FkX2Vycm9yX2dldChtX2VkamUpOwogICAgICAgICAgICAgY29uc3QgY2hhciogZXJybXNn
ID0gZWRqZV9sb2FkX2Vycm9yX3N0cihlcnIpOwogICAgICAgICAgICAgRUlOQV9MT0dfRVJSKCJD
b3VsZCBub3QgbG9hZCAnd2Via2l0L2Jhc2UnIGZyb20gdGhlbWUgJXM6ICVzIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGVtZS51dGY4KCkuZGF0YSgpLCBlcnJtc2cpOworICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fdGhlbWVQYXRoLnV0ZjgoKS5kYXRhKCksIGVycm1zZyk7CiAgICAg
ICAgICAgICBldmFzX29iamVjdF9kZWwobV9lZGplKTsKICAgICAgICAgICAgIG1fZWRqZSA9IDA7
CiAgICAgICAgIH0gZWxzZSB7CkBAIC02NjAsOCArNjYzLDYgQEAgUmVuZGVyVGhlbWVFZmw6OlJl
bmRlclRoZW1lRWZsKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2NhbnZhcygwKQogICAgICwgbV9lZGpl
KDApCiB7Ci0gICAgaWYgKHBhZ2UgJiYgcGFnZS0+bWFpbkZyYW1lKCkgJiYgcGFnZS0+bWFpbkZy
YW1lKCktPnZpZXcoKSkKLSAgICAgICAgdGhlbWVDaGFuZ2VkKCk7CiB9CiAKIFJlbmRlclRoZW1l
RWZsOjp+UmVuZGVyVGhlbWVFZmwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1JlbmRlclRoZW1lRWZsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVu
ZGVyVGhlbWVFZmwuaAppbmRleCBjMmU0N2QwY2MyNThjNzgyMDIyMTc2MDVhZWQ4ZjU1MjNlYzQ1
ZmJjLi5iYmNiNGUzMTQzZTI1MDkxNDRmNDNkMjIzYTZiYzUyOTc2MzE3MWY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaApAQCAtMTk2LDYgKzE5Niw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUN1cnJlbnRUaW1lKFJlbmRl
ck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCisg
ICAgdm9pZCBzZXRUaGVtZVBhdGgoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRoZW1lUGF0
aCgpIHsgcmV0dXJuIG1fdGhlbWVQYXRoOyB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGZsb2F0
IGRlZmF1bHRGb250U2l6ZTsKIApAQCAtMjI1LDYgKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgQ29s
b3IgbV9tZWRpYVBhbmVsQ29sb3I7CiAgICAgQ29sb3IgbV9tZWRpYVNsaWRlckNvbG9yOwogI2Vu
ZGlmCisKKyAgICBTdHJpbmcgbV90aGVtZVBhdGg7CiAgICAgRWNvcmVfRXZhcyogbV9jYW52YXM7
CiAgICAgRXZhc19PYmplY3QqIG1fZWRqZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvU2Nyb2xsYmFyRWZsLmNwcAppbmRleCA2NWRkNjhkNDZlZmY2ZDBiNzIxMGIyODgyN2U0YTlh
MmY3M2FlZDgwLi5jZTdmN2JmNGI5ZGZkOTQ3YWQ5NGVmZjdkN2VhZDFhZWU2ZDRlNjQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAtMjMsMTMg
KzIzLDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyRWZsLmgi
CiAKLSNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
Ikhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogCkBAIC0xMTIsOSArMTEyLDE3IEBAIHZvaWQgU2Nyb2xs
YmFyRWZsOjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogdmlldykKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAorICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHZpZXcpLT5m
cmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBh
Z2UgPSBmcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgY29uc3QgY2hhciogZ3JvdXAgPSAob3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xs
YmFyKQogICAgICAgICA/ICJzY3JvbGxiYXIuaG9yaXpvbnRhbCIgOiAic2Nyb2xsYmFyLnZlcnRp
Y2FsIjsKLSAgICBTdHJpbmcgdGhlbWUoZWRqZVRoZW1lUmVjdXJzaXZlKCkpOworICAgIFN0cmlu
ZyB0aGVtZSA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lRWZsKj4ocGFnZS0+dGhlbWUoKSktPnRo
ZW1lUGF0aCgpOwogCiAgICAgaWYgKHRoZW1lLmlzRW1wdHkoKSkgewogICAgICAgICBFSU5BX0xP
R19FUlIoIkNvdWxkIG5vdCBsb2FkIHRoZW1lICclcyc6IG5vIHRoZW1lIHBhdGggc2V0LiIsIGdy
b3VwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9XaWRnZXRFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dpZGdldEVmbC5jcHAKaW5kZXggMTM4
YmRmYTMwMTdkNWVlYjI0ZTAzNWJlOTMxZGRhMGQxZDBjOWYzYS4uOGY4ZjJlN2I3ZTZlODYwMTdl
NjJkYTk5ZDNkY2Q5MTM0MGUzODE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL1dpZGdldEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1dp
ZGdldEVmbC5jcHAKQEAgLTUxLDcgKzUxLDYgQEAgY2xhc3MgV2lkZ2V0UHJpdmF0ZSB7CiBwdWJs
aWM6CiAgICAgRXZhcyogbV9ldmFzOwogICAgIEV2YXNfT2JqZWN0KiBtX2V2YXNPYmplY3Q7Ci0g
ICAgU3RyaW5nIG1fdGhlbWU7CiAKICAgICBXaWRnZXRQcml2YXRlKCkKICAgICAgICAgOiBtX2V2
YXMoMCkKQEAgLTE0NSwyOSArMTQ0LDYgQEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9v
bCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1jb25zdCBTdHJpbmcgV2lkZ2V0OjplZGpl
VGhlbWUoKSBjb25zdAotewotICAgIHJldHVybiBtX2RhdGEtPm1fdGhlbWU7Ci19Ci0KLXZvaWQg
V2lkZ2V0OjpzZXRFZGplVGhlbWUoY29uc3QgU3RyaW5nJiB0aGVtZVBhdGgpCi17Ci0gICAgaWYg
KG1fZGF0YS0+bV90aGVtZSA9PSB0aGVtZVBhdGgpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
ZGF0YS0+bV90aGVtZSA9IHRoZW1lUGF0aDsKLX0KLQotY29uc3QgU3RyaW5nIFdpZGdldDo6ZWRq
ZVRoZW1lUmVjdXJzaXZlKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZGF0YS0+bV90aGVtZS5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIG1fZGF0YS0+bV90aGVtZTsKLSAgICBpZiAobV9wYXJlbnQp
Ci0gICAgICAgIHJldHVybiBtX3BhcmVudC0+ZWRqZVRoZW1lUmVjdXJzaXZlKCk7Ci0KLSAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci19Ci0KIEV2YXMqIFdpZGdldDo6ZXZhcygpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fZGF0YS0+bV9ldmFzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggMzdhZDE5NzMyOGU1
YzY4MjE3YTYzNjg5ODVlMzc2ZDUzODVmOGE5YS4uZDI1ZmI4MTI3NTEyOTJkYTRhNjQ0NmQ0NGY1
MjYzOTUxNDg3MDg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBAIFNFVChX
ZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgog
ICAgICIke1dFQkNPUkVfRElSfS9oaXN0b3J5IgogICAgICIke1dFQkNPUkVfRElSfS9odG1sIgor
ICAgICIke1dFQkNPUkVfRElSfS9odG1sL3NoYWRvdyIKICAgICAiJHtXRUJDT1JFX0RJUn0vaW5z
cGVjdG9yIgogICAgICIke1dFQkNPUkVfRElSfS9sb2FkZXIiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L2xvYWRlci9hcHBjYWNoZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
ZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggNjdh
OWJjODJjNzY5YWZmNjg3NGEzZGIzNDdhYzdiZDNmYjQ5NTZlZC4uNmE0YjFhM2YyNTk4NGQ1Yzlm
ZTM5YWJiODhiM2E0NWVlZDNiZGI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAK
QEAgLTE2NTQsOCArMTY1NCw2IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfY3JlYXRlX2Zvcl92aWV3
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXZhc19PYmplY3QqIHZpZXcpCiAgICAgaWYgKCFzbWFy
dERhdGEtPmZyYW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGNoYXIq
IHRoZW1lID0gZXdrX3ZpZXdfdGhlbWVfZ2V0KHZpZXcpOwotICAgIHNtYXJ0RGF0YS0+ZnJhbWUt
PnZpZXcoKS0+c2V0RWRqZVRoZW1lKHRoZW1lKTsKICAgICBzbWFydERhdGEtPmZyYW1lLT52aWV3
KCktPnNldEV2YXNPYmplY3QoZXdrRnJhbWUpOwogCiAgICAgZXdrX2ZyYW1lX21peGVkX2NvbnRl
bnRfZGlzcGxheWVkX3NldChld2tGcmFtZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKaW5kZXggOWIyNTVlODFlM2IzYzM1NmQyYzViNGE3M2ZiODBlMmI5NDNlZGVlYy4uZGVh
NzU2ZWNlZDg2NDYzMDhiMzg4NjY4OTI3YTJmMTdhN2Y5MzU3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCkBAIC01Myw3ICs1Myw3IEBACiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50
LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8u
aCIKLSNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lRWZsLmgi
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgImNfaW5zdGFuY2UuaCIKQEAgLTEzNzYsMTIgKzEzNzYsOCBAQCB2b2lkIGV3a192aWV3
X3RoZW1lX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogcGF0aCkKICAgICBp
ZiAoIWVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmcHJpdi0+c2V0dGluZ3MudGhlbWUsIHBhdGgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBwcml2
LT5tYWluRnJhbWUtPnZpZXcoKTsKLSAgICBpZiAodmlldykgewotICAgICAgICB2aWV3LT5zZXRF
ZGplVGhlbWUoV1RGOjpTdHJpbmcocGF0aCkpOwotICAgICAgICBwcml2LT5wYWdlLT50aGVtZSgp
LT50aGVtZUNoYW5nZWQoKTsKLSAgICB9Ci0KKyAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbCog
dGhlbWUgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSZW5kZXJUaGVtZUVmbCo+KHByaXYtPnBhZ2Ut
PnRoZW1lKCkpOworICAgIHRoZW1lLT5zZXRUaGVtZVBhdGgocGF0aCk7CiB9CiAKIGNvbnN0IGNo
YXIqIGV3a192aWV3X3RoZW1lX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQKaW5kZXggMWRhOWE2YWM4NTcyY2RlYWQ0NGFjYmVmOWE2ODY3MTM0NGMzNzY5
MS4uYzhkMWMzNWZjMDM0ZTkzODhjZGU3NmFmNjI5OGZjNjY2YWExMjQzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VM
aXN0cy50eHQKQEAgLTU1LDYgKzU1LDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgogICAgICIke1dFQkNPUkVfRElSfS9oaXN0
b3J5IgogICAgICIke1dFQkNPUkVfRElSfS9odG1sIgorICAgICIke1dFQkNPUkVfRElSfS9odG1s
L3NoYWRvdyIKICAgICAiJHtXRUJDT1JFX0RJUn0vaHRtbC90cmFjayIKICAgICAiJHtXRUJDT1JF
X0RJUn0vaW5zcGVjdG9yIgogICAgICIke1dFQkNPUkVfRElSfS9sb2FkZXIiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcAppbmRl
eCA2YzFlYzhiYTJmNzdmMTRhMWU2ZDU0ZDgyMjQwMDMyZDk5NGE5YzI2Li5mYTU3MDM1OGFlMjc5
ZjkyYjQzZDE1ZDA2MWI0NzMzNzgyOGNlNmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1l
RWZsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTEwOCwxNSArMTA4LDggQEAgY29uc3QgY2hhciogV2ViUGFnZTo6aW50ZXJw
cmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQgV2ViUGFnZTo6
c2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYgdGhlbWVQYXRoKQogewotICAgIEZyYW1lKiBtYWlu
RnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwotICAgIGlmICghbWFpbkZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBXZWJDb3JlOjpGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWUtPnZp
ZXcoKTsKLSAgICBpZiAodmlldykgewotICAgICAgICB2aWV3LT5zZXRFZGplVGhlbWUodGhlbWVQ
YXRoKTsKLSAgICAgICAgbV9wYWdlLT50aGVtZSgpLT50aGVtZUNoYW5nZWQoKTsKLSAgICB9Cisg
ICAgV2ViQ29yZTo6UmVuZGVyVGhlbWVFZmwqIHRoZW1lID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
UmVuZGVyVGhlbWVFZmwqPihtX3BhZ2UtPnRoZW1lKCkpOworICAgIHRoZW1lLT5zZXRUaGVtZVBh
dGgodGhlbWVQYXRoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>