<?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>83865</bug_id>
          
          <creation_ts>2012-04-13 00:11:55 -0700</creation_ts>
          <short_desc>[EFL] Add Web Inspector to WebKit-EFL</short_desc>
          <delta_ts>2012-07-06 00:17:45 -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>PC</rep_platform>
          <op_sys>Linux</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>87935</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Seokju Kwon">seokju.kwon</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>leandro</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>601872</commentid>
    <comment_count>0</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-04-13 00:11:55 -0700</bug_when>
    <thetext>Add EFL port implementation for Web Inspector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601879</commentid>
    <comment_count>1</comment_count>
      <attachid>137052</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-04-13 00:32:52 -0700</bug_when>
    <thetext>Created attachment 137052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606144</commentid>
    <comment_count>2</comment_count>
      <attachid>137052</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2012-04-19 16:37:49 -0700</bug_when>
    <thetext>Comment on attachment 137052
Patch

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

It&apos;s a good start, but there are some issues to take care first.

&gt; Source/WebKit/ChangeLog:6
&gt; +        [EFL] Add Web Inspector to WebKit-EFL
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=83865
&gt; +
&gt; +        Add EFL port implementation for Web Inspector

Please try to be more descriptive in the changelog entries.

&gt; Source/WebKit/PlatformEfl.cmake:291
&gt; +    FILE(COPY ${WEB_INSPECTOR_DATA} DESTINATION ${WEB_INSPECTOR_DIR})
&gt; +    FILE(COPY ${WEB_INSPECTOR_UGLIFYJS_DATA} DESTINATION ${WEB_INSPECTOR_UGLIFYJS_DIR})
&gt; +    FILE(COPY ${WEB_INSPECTOR_IMAGES_DATA} DESTINATION ${WEB_INSPECTOR_IMAGES_DIR})

This will be executed only during the build process; unless I&apos;m mistaken, the inspector won&apos;t work properly unless these are actually installed.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:34
&gt; +    InspectorFrontendClientEfl* inspectorFrontendClient = (InspectorFrontendClientEfl*)userData;

C++-style cast.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:36
&gt; +        inspectorFrontendClient-&gt;destroyInspectorWindow(true);

I&apos;m not sure what &apos;true&apos; means here; consider using an enum.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:41
&gt; +public:
&gt; +    virtual ~InspectorFrontendSettingsEfl() { }

No need to implement this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607530</commentid>
    <comment_count>3</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-04-23 00:59:03 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 137052 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137052&amp;action=review
&gt; 
&gt; It&apos;s a good start, but there are some issues to take care first.
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:6
&gt; &gt; +        [EFL] Add Web Inspector to WebKit-EFL
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=83865
&gt; &gt; +
&gt; &gt; +        Add EFL port implementation for Web Inspector
&gt; 
&gt; Please try to be more descriptive in the changelog entries.
&gt; 
I will add additional comments in changelog entries.

&gt; &gt; Source/WebKit/PlatformEfl.cmake:291
&gt; &gt; +    FILE(COPY ${WEB_INSPECTOR_DATA} DESTINATION ${WEB_INSPECTOR_DIR})
&gt; &gt; +    FILE(COPY ${WEB_INSPECTOR_UGLIFYJS_DATA} DESTINATION ${WEB_INSPECTOR_UGLIFYJS_DIR})
&gt; &gt; +    FILE(COPY ${WEB_INSPECTOR_IMAGES_DATA} DESTINATION ${WEB_INSPECTOR_IMAGES_DIR})
&gt; 
&gt; This will be executed only during the build process; unless I&apos;m mistaken, the inspector won&apos;t work properly unless these are actually installed.
&gt; 
You&apos;re right. I will chanage it for these are actually installed.

&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:34
&gt; &gt; +    InspectorFrontendClientEfl* inspectorFrontendClient = (InspectorFrontendClientEfl*)userData;
&gt; 
&gt; C++-style cast.
&gt;
Ok, I will fix it.

&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:36
&gt; &gt; +        inspectorFrontendClient-&gt;destroyInspectorWindow(true);
&gt; 
&gt; I&apos;m not sure what &apos;true&apos; means here; consider using an enum.

The argument of destoryInspectorWindow(bool notifyInspectorController) decides whether to notify inspectorController when destorying window. Other ports(Qt, GTK) are also using it like this.

&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:41
&gt; &gt; +public:
&gt; &gt; +    virtual ~InspectorFrontendSettingsEfl() { }
&gt; 
&gt; No need to implement this.

Sure, I will remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607533</commentid>
    <comment_count>4</comment_count>
      <attachid>138304</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-04-23 01:02:23 -0700</bug_when>
    <thetext>Created attachment 138304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625207</commentid>
    <comment_count>5</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-05-16 02:59:57 -0700</bug_when>
    <thetext>acidx: Could you please review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631209</commentid>
    <comment_count>6</comment_count>
      <attachid>138304</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-22 22:10:42 -0700</bug_when>
    <thetext>Comment on attachment 138304
Patch

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

I wonder how many test cases are covered by this patch.

&gt; Source/WebKit/ChangeLog:7
&gt; +        - Add a stub implementation of InspectorClientEfl

Generally, WebKit tends not to use - in ChangeLog.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:96
&gt; +    InspectorController* controller = ewk_view_core_page_get(m_inspectorView)-&gt;inspectorController();

ewk_view_core_page_get() was removed. Use EWKPrivate::corePage()

&gt; Source/WebKit/efl/ewk/ewk_view.h:2446
&gt; +EAPI void ewk_view_web_inspector_show(Evas_Object *o);

It looks it is good to add const keyword as below,

const Evas_Object *o

&gt; Source/WebKit/efl/ewk/ewk_view.h:2453
&gt; +EAPI void ewk_view_web_inspector_close(Evas_Object *o);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631485</commentid>
    <comment_count>7</comment_count>
      <attachid>143527</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-05-23 04:14:30 -0700</bug_when>
    <thetext>Created attachment 143527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631491</commentid>
    <comment_count>8</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-05-23 04:19:57 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 138304 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138304&amp;action=review
&gt; 
&gt; I wonder how many test cases are covered by this patch.
&gt; 
I have added web inspector to EWebLauncher with this patch.
And I am working on DRT related to Inspector in WebKit-EFL with this patch now.

This patch is too old. Others have been fixed.
&gt; &gt; Source/WebKit/ChangeLog:7
&gt; &gt; +        - Add a stub implementation of InspectorClientEfl
&gt; 
&gt; Generally, WebKit tends not to use - in ChangeLog.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:96
&gt; &gt; +    InspectorController* controller = ewk_view_core_page_get(m_inspectorView)-&gt;inspectorController();
&gt; 
&gt; ewk_view_core_page_get() was removed. Use EWKPrivate::corePage()
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.h:2446
&gt; &gt; +EAPI void ewk_view_web_inspector_show(Evas_Object *o);
&gt; 
&gt; It looks it is good to add const keyword as below,
&gt; 
&gt; const Evas_Object *o
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.h:2453
&gt; &gt; +EAPI void ewk_view_web_inspector_close(Evas_Object *o);
&gt; 
&gt; ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636672</commentid>
    <comment_count>9</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-05-29 18:19:49 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 138304 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138304&amp;action=review
&gt; 
&gt; I wonder how many test cases are covered by this patch.

I have done below test cases with this patch. As you know, It is the first step.
LayoutTests/inspector : 261/280 tests passed (93.2%)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>636689</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-29 18:32:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 138304 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138304&amp;action=review
&gt; &gt; 
&gt; &gt; I wonder how many test cases are covered by this patch.
&gt; 
&gt; I have done below test cases with this patch. As you know, It is the first step.
&gt; LayoutTests/inspector : 261/280 tests passed (93.2%)

Wow, good news !!. Could you file a bug for this tests supported by this patch ? And also, link it to this bug. I will review it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638060</commentid>
    <comment_count>11</comment_count>
      <attachid>143527</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-31 00:35:51 -0700</bug_when>
    <thetext>Comment on attachment 143527
Patch

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

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:27
&gt; +#include &quot;ewk_private.h&quot;

Remove unneeded include.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:56
&gt; +InspectorClientEfl::InspectorClientEfl(Evas_Object* view)

I wonder whether view is webview. 157 line have used inspectorView for parameter name. Don&apos;t you need more clear name?

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:129
&gt; +#if ENABLE(INSPECTOR)

By the way, should we use ENABLE(INSPECTOR) macro in each function? I think we can do InspectorClientEfl.cpp isn&apos;t included in CMake file When ENABLE_INSPECTOR feature is disabled. If so, we don&apos;t need to use ENABLE(INSPECTOR) macro per a function.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:146
&gt; +    String inspectorFilesPath = &quot;file://&quot;WEB_INSPECTOR_INSTALL_DIR&quot;/inspector.html&quot;;

Use string utility function to combine multiple strings. For example, makeString().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638124</commentid>
    <comment_count>12</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-05-31 01:58:58 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 143527 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=143527&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:27
&gt; &gt; +#include &quot;ewk_private.h&quot;
&gt; 
&gt; Remove unneeded include.
I will remove it.

&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:56
&gt; &gt; +InspectorClientEfl::InspectorClientEfl(Evas_Object* view)
&gt; 
&gt; I wonder whether view is webview. 157 line have used inspectorView for parameter name. Don&apos;t you need more clear name?
You&apos;re right. webView is better than view. I will fix it.

&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:129
&gt; &gt; +#if ENABLE(INSPECTOR)
&gt; 
&gt; By the way, should we use ENABLE(INSPECTOR) macro in each function? I think we can do InspectorClientEfl.cpp isn&apos;t included in CMake file When ENABLE_INSPECTOR feature is disabled. If so, we don&apos;t need to use ENABLE(INSPECTOR) macro per a function.
InspectorClientEfl can be created regardless of ENABLE_INSPECTOR feature in _ewk_view_priv_new function. I can remove some macro only to prevent build break minimally, (for example WEB_INSPECTOR_DIR, InspectorController) if you want it. 
 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:146
&gt; &gt; +    String inspectorFilesPath = &quot;file://&quot;WEB_INSPECTOR_INSTALL_DIR&quot;/inspector.html&quot;;
&gt; 
&gt; Use string utility function to combine multiple strings. For example, makeString().
Oh thanks, I will use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638134</commentid>
    <comment_count>13</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-05-31 02:06:46 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 138304 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138304&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; I wonder how many test cases are covered by this patch.
&gt; &gt; 
&gt; &gt; I have done below test cases with this patch. As you know, It is the first step.
&gt; &gt; LayoutTests/inspector : 261/280 tests passed (93.2%)
&gt; 
&gt; Wow, good news !!. Could you file a bug for this tests supported by this patch ? And also, link it to this bug. I will review it.


I have made a bug : [EFL][DRT] Add support for Web Inspector in WebKit-EFL DRT (https://bugs.webkit.org/show_bug.cgi?id=87935)

Test result on 2012/05/30
LayoutTests/inspector : 261/280 tests passed (93.2%) 
LayoutTests/http/test/inspector : 61/82 test passed (74.4%)
LayoutTests/http/test/inspector-enabled : 10/10 tests passed (100%)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638232</commentid>
    <comment_count>14</comment_count>
      <attachid>145050</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-05-31 04:38:56 -0700</bug_when>
    <thetext>Created attachment 145050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651067</commentid>
    <comment_count>15</comment_count>
      <attachid>145050</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-17 17:31:57 -0700</bug_when>
    <thetext>Comment on attachment 145050
Patch

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

I think this patch is much better than before. Submit modified patch again.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:84
&gt; +    evas_object_smart_callback_call(m_inspectedView, &quot;inspector,view,create&quot;, &amp;inspectorView);

It looks m_inspectedView is webview. If so, you have to mention description of this signal to ewk_view.h

http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.h#L35

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:167
&gt; +    evas_object_smart_callback_del(m_inspectorView, &quot;inspector,view,destroy&quot;, notifyWebInspectorDestroy);

ditto.

&gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:225
&gt; +    evas_object_smart_callback_call(m_inspectedView, &quot;inspector,view,close&quot;, m_inspectorView);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653116</commentid>
    <comment_count>16</comment_count>
      <attachid>148490</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-06-19 20:02:23 -0700</bug_when>
    <thetext>Created attachment 148490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653274</commentid>
    <comment_count>17</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-06-20 00:55:35 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 145050 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145050&amp;action=review
&gt; 
&gt; I think this patch is much better than before. Submit modified patch again.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:84
&gt; &gt; +    evas_object_smart_callback_call(m_inspectedView, &quot;inspector,view,create&quot;, &amp;inspectorView);
&gt; 
&gt; It looks m_inspectedView is webview. If so, you have to mention description of this signal to ewk_view.h
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.h#L35
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:167
&gt; &gt; +    evas_object_smart_callback_del(m_inspectorView, &quot;inspector,view,destroy&quot;, notifyWebInspectorDestroy);
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp:225
&gt; &gt; +    evas_object_smart_callback_call(m_inspectedView, &quot;inspector,view,close&quot;, m_inspectorView);
&gt; 
&gt; ditto.

I have done what you said. Thank you for reviewing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654165</commentid>
    <comment_count>18</comment_count>
      <attachid>148490</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-20 19:20:45 -0700</bug_when>
    <thetext>Comment on attachment 148490
Patch

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

&gt; Source/WebKit/efl/ewk/ewk_view.h:2643
&gt; + * &quot;inspector,view,create&quot; and &quot;inspector,view,close&quot;

No, you have to move this signal description to signal description list as I already said.

http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.h#L35</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654188</commentid>
    <comment_count>19</comment_count>
      <attachid>148718</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-06-20 20:14:42 -0700</bug_when>
    <thetext>Created attachment 148718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654192</commentid>
    <comment_count>20</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-06-20 20:29:56 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 148490 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148490&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.h:2643
&gt; &gt; + * &quot;inspector,view,create&quot; and &quot;inspector,view,close&quot;
&gt; 
&gt; No, you have to move this signal description to signal description list as I already said.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.h#L35

Oops, I am sorry that I have missed it(In reply to comment #18)
&gt; (From update of attachment 148490 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148490&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.h:2643
&gt; &gt; + * &quot;inspector,view,create&quot; and &quot;inspector,view,close&quot;
&gt; 
&gt; No, you have to move this signal description to signal description list as I already said.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebKit/efl/ewk/ewk_view.h#L35

Oops, I missed it. Another patch has been uploaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660137</commentid>
    <comment_count>21</comment_count>
      <attachid>150085</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-06-28 22:13:52 -0700</bug_when>
    <thetext>Created attachment 150085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661248</commentid>
    <comment_count>22</comment_count>
      <attachid>150085</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-01 21:50:05 -0700</bug_when>
    <thetext>Comment on attachment 150085
Patch

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

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:44
&gt; +#include &quot;InspectorController.h&quot;

Hmm, I don&apos;t know why style checker didn&apos;t find this style error. Adhere alphabetic order.

&gt; Source/WebKit/efl/ewk/ewk_view.h:2686
&gt; +EAPI void ewk_view_web_inspector_view_set(Evas_Object* o, Evas_Object* obj);

If possible, I think we need to use more meaningful parameter name. Is it better to use inspector_view ?

In addition, move * to variable side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661261</commentid>
    <comment_count>23</comment_count>
      <attachid>150085</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-01 22:46:21 -0700</bug_when>
    <thetext>Comment on attachment 150085
Patch

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

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.cpp:44
&gt;&gt; +#include &quot;InspectorController.h&quot;
&gt; 
&gt; Hmm, I don&apos;t know why style checker didn&apos;t find this style error. Adhere alphabetic order.

Oops. I&apos;m sorry. this is correct now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661277</commentid>
    <comment_count>24</comment_count>
      <attachid>150363</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-07-01 23:42:44 -0700</bug_when>
    <thetext>Created attachment 150363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661281</commentid>
    <comment_count>25</comment_count>
      <attachid>150364</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-07-01 23:53:37 -0700</bug_when>
    <thetext>Created attachment 150364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663205</commentid>
    <comment_count>26</comment_count>
      <attachid>150364</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-04 17:58:34 -0700</bug_when>
    <thetext>Comment on attachment 150364
Patch

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

Need to rebase.

&gt; Source/WebKit/efl/ewk/ewk_view.h:109
&gt; + *  - &quot;inspector,view,create&quot;, void: request to create the new view for web inspector.

Adhere alphabetical order.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663453</commentid>
    <comment_count>27</comment_count>
      <attachid>150913</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-07-05 03:22:10 -0700</bug_when>
    <thetext>Created attachment 150913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663455</commentid>
    <comment_count>28</comment_count>
      <attachid>150913</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-05 03:24:42 -0700</bug_when>
    <thetext>Comment on attachment 150913
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663870</commentid>
    <comment_count>29</comment_count>
      <attachid>150913</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-05 21:31:04 -0700</bug_when>
    <thetext>Comment on attachment 150913
Patch

This looks sane to me. There is a lot of detail in the plumbing implementation, but if you followed the Qt or Gtk code, you should be fine. Please test following scenarios of closing the inspector prior to landing:
1) via closing inspector view
2) via clicking inspector&apos;s close button
3) make sure that inspector closes upon inspected view close.

You should be able to re-open inspector for these cases. Also, make sure things are working for multiple tabs and inspected page reloads. I think it is safe to land this as a first cut and follow up with the bugfixes as problems arise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663881</commentid>
    <comment_count>30</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-07-05 21:53:23 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 150913 [details])
&gt; This looks sane to me. There is a lot of detail in the plumbing implementation, but if you followed the Qt or Gtk code, you should be fine. Please test following scenarios of closing the inspector prior to landing:
&gt; 1) via closing inspector view
&gt; 2) via clicking inspector&apos;s close button
&gt; 3) make sure that inspector closes upon inspected view close.
&gt; 
&gt; You should be able to re-open inspector for these cases. Also, make sure things are working for multiple tabs and inspected page reloads. I think it is safe to land this as a first cut and follow up with the bugfixes as problems arise.

I have already tested your scenarios with EWebLauncher browser and Dumprendertree.
Also I will upload some patches for using web inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663899</commentid>
    <comment_count>31</comment_count>
      <attachid>151021</attachid>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-07-05 23:20:23 -0700</bug_when>
    <thetext>Created attachment 151021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663914</commentid>
    <comment_count>32</comment_count>
      <attachid>151021</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-06 00:17:39 -0700</bug_when>
    <thetext>Comment on attachment 151021
Patch

Clearing flags on attachment: 151021

Committed r121947: &lt;http://trac.webkit.org/changeset/121947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663915</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-06 00:17:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137052</attachid>
            <date>2012-04-13 00:32:52 -0700</date>
            <delta_ts>2012-04-23 01:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120413163251.patch</filename>
            <type>text/plain</type>
            <size>16132</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU2YzFiZTNiMTcxMzEzNTQz
N2U2ZjY3YTVmMzRmNTRmYzc1NTIxMTIuLjBjYzI0MWRlYjQ5ZjQ2MThhYTFmMGNkMzNkOTgyZTdi
NTFhMjMzM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDQtMTMgIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBBZGQgRUZMIHBvcnQgaW1wbGVtZW50YXRp
b24gZm9yIFdlYiBJbnNwZWN0b3IKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA0LTEwICBQYXRyaWNr
IEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDTWFrZV0gRW5hYmxl
IFVTRV9GT0xERVJTIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMDM5ZWFlYjIxMmRjNjBh
MjA5Mjg2YWExMWY4ZWJmNTdhNzM0YmViNi4uMGRmMmFkNGQ3MjA5MTY5MWNjZDQ3ZjdjNDUxMWNl
MGNiZjA0YTU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA0LTEz
ICBTZW9ranUgS3dvbiAgPHNlb2tqdS5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IEFkZCBXZWIgSW5zcGVjdG9yIHRvIFdlYktpdC1FRkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzODY1CisKKyAgICAgICAgQWRkIEVGTCBwb3J0IGlt
cGxlbWVudGF0aW9uIGZvciBXZWIgSW5zcGVjdG9yCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlXZWJJ
bnNwZWN0b3JEZXN0cm95KToKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6fkluc3Bl
Y3RvckZyb250ZW5kU2V0dGluZ3NFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50RWZsOjpJbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6Y2xvc2VJbnNwZWN0b3JGcm9udGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6OmJyaW5nRnJvbnRlbmRU
b0Zyb250KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6cmVs
ZWFzZUZyb250ZW5kUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENs
aWVudEVmbDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6bG9jYWxpemVk
U3RyaW5nc1VSTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVm
bDo6aGlkZGVuUGFuZWxzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xp
ZW50RWZsOjpicmluZ1RvRnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmw6OmNsb3NlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRVUkxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjphdHRhY2hXaW5kb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRldGFjaFdpbmRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6c2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRl
c3Ryb3lJbnNwZWN0b3JXaW5kb3cpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNwZWN0b3JDbGll
bnRFZmwpOgorICAgICAgICAoSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRpc2Nvbm5lY3RJbnNwZWN0b3JD
bGllbnQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6CisgICAgICAgIChl
d2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAgICAgICAoZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDQtMTEgIFN1
ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF0gTGF5b3V0VGVzdENvbnRyb2xsZXIgbmVlZHMgaW1wbGVtZW50YXRpb24g
b2YgcGFnZVByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNt
YWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA1NGU3ZDkxZDlmODMy
Zjg3OGY0ZjVhOTQ3NGZmNGMyN2Y2OGEzYTU2Li5lZTgzZGUyZjRiYTU4Y2U5ZDk1YjQ0Y2U2NWQ2
MmIxMzBhYTY0NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI2MywzICsyNjMsMzAg
QEAgSU5TVEFMTChGSUxFUyAke0VXZWJLaXRfSEVBREVSU30KIAogSU5TVEFMTChGSUxFUyAke1dl
YktpdF9USEVNRX0KICAgICAgICAgREVTVElOQVRJT04gJHtEQVRBX0lOU1RBTExfRElSfS90aGVt
ZXMpCisKK0lGIChFTkFCTEVfSU5TUEVDVE9SKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX0RJUiAk
e0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC9lZmwvd2ViaW5zcGVjdG9yKQorICAgIFNFVChXRUJf
SU5TUEVDVE9SX1VHTElGWUpTX0RJUiAke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC9lZmwvd2Vi
aW5zcGVjdG9yL1VnbGlmeUpTKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX0lNQUdFU19ESVIgJHtD
TUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3BlY3Rvci9JbWFnZXMpCisKKyAgICBB
RERfREVGSU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0RJUj0iJHtXRUJfSU5TUEVDVE9SX0RJUn0i
KQorCisgICAgRklMRShNQUtFX0RJUkVDVE9SWSAke1dFQl9JTlNQRUNUT1JfRElSfQorICAgICAg
ICAgICAgICAgICAgICAgICAgJHtXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RJUn0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICR7V0VCX0lOU1BFQ1RPUl9JTUFHRVNfRElSfSkKKworICAgIEZJTEUo
R0xPQiBXRUJfSU5TUEVDVE9SX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1l
bmQvKi5qcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVfRElS
fS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouY3NzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1lbmQvKi5odG1sIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yQmFja2VuZFN0dWIuanMiKQor
CisgICAgRklMRShHTE9CIFdFQl9JTlNQRUNUT1JfVUdMSUZZSlNfREFUQSAiJHtXRUJDT1JFX0RJ
Un0vaW5zcGVjdG9yL2Zyb250LWVuZC9VZ2xpZnlKUy8qLmpzIikKKworICAgIEZJTEUoR0xPQiBX
RUJfSU5TUEVDVE9SX0lNQUdFU19EQVRBICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0ltYWdlcy8qLnBuZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvKi5naWYiKQorCisg
ICAgRklMRShDT1BZICR7V0VCX0lOU1BFQ1RPUl9EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQ
RUNUT1JfRElSfSkKKyAgICBGSUxFKENPUFkgJHtXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RBVEF9
IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9VR0xJRllKU19ESVJ9KQorICAgIEZJTEUoQ09Q
WSAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RP
Ul9JTUFHRVNfRElSfSkKK0VORElGICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAppbmRleCA3ZTI5NzU4YmRkMTE3
MTk0YjUyODRlZTVjZGI5NDc5ODE3MDhmODk1Li5hOTNmYmVlNDY3NDJiOWFlZmYwZjVkMzkzMWU5
YWUyZmEyOWY5N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKQEAgLTIxLDMxICsyMSw5OCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudEVmbC5oIgogCisjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cisj
aW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9p
ZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCit7Cisg
ICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50ID0g
KEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKil1c2VyRGF0YTsKKyAgICBpZiAoaW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQpCisgICAgICAgIGluc3BlY3RvckZyb250ZW5kQ2xpZW50LT5kZXN0cm95
SW5zcGVjdG9yV2luZG93KHRydWUpOworfQorCitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFNldHRp
bmdzRWZsIDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsKCkgeyB9
CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5n
JiBuYW1lKQorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIH0KK307CisjZW5kaWYKKworSW5zcGVjdG9yQ2xpZW50RWZsOjpJbnNw
ZWN0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqIHZpZXcpCisgICAgOiBtX2luc3BlY3RlZFZpZXco
dmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldygwKQorICAgICwgbV9mcm9udGVuZENsaWVudCgw
KQoreworfQorCitJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwoKQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKG1fZnJvbnRlbmRDbGllbnQpIHsKKyAgICAg
ICAgbV9mcm9udGVuZENsaWVudC0+ZGlzY29ubmVjdEluc3BlY3RvckNsaWVudCgpOworICAgICAg
ICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsKKyAgICB9CisjZW5kaWYKK30KKwogdm9pZCBJbnNwZWN0
b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7CisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKyAgICBjbG9zZUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAgZGVsZXRlIHRoaXM7CisjZW5k
aWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6Om9wZW5JbnNwZWN0b3JGcm9udGVuZChJ
bnNwZWN0b3JDb250cm9sbGVyKikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworI2lmIEVOQUJM
RShJTlNQRUNUT1IpCisgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSAwOworICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0ZWRWaWV3LCAiaW5zcGVjdG9y
LHZpZXcsY3JlYXRlIiwgJmluc3BlY3RvclZpZXcpOworICAgIGlmICghaW5zcGVjdG9yVmlldykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gaW5zcGVjdG9yVmlldzsK
KworICAgIFN0cmluZyBpbnNwZWN0b3JVcmkgPSAiZmlsZTovLyJXRUJfSU5TUEVDVE9SX0RJUiIv
aW5zcGVjdG9yLmh0bWwiOworICAgIGV3a192aWV3X3VyaV9zZXQobV9pbnNwZWN0b3JWaWV3LCBp
bnNwZWN0b3JVcmkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmw+IGZyb250ZW5kQ2xpZW50ID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckZyb250
ZW5kQ2xpZW50RWZsKG1faW5zcGVjdGVkVmlldywgbV9pbnNwZWN0b3JWaWV3LCB0aGlzKSk7Cisg
ICAgbV9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50LmdldCgpOworCisgICAgSW5zcGVj
dG9yQ29udHJvbGxlciogY29udHJvbGxlciA9IGV3a192aWV3X2NvcmVfcGFnZV9nZXQobV9pbnNw
ZWN0b3JWaWV3KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIGNvbnRyb2xsZXItPnNldElu
c3BlY3RvckZyb250ZW5kQ2xpZW50KGZyb250ZW5kQ2xpZW50LnJlbGVhc2UoKSk7CisjZW5kaWYK
IH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAo
bV9mcm9udGVuZENsaWVudCkKKyAgICAgICAgbV9mcm9udGVuZENsaWVudC0+ZGVzdHJveUluc3Bl
Y3RvcldpbmRvdyhmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6
OmJyaW5nRnJvbnRlbmRUb0Zyb250KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisgICAgbV9mcm9udGVuZENsaWVudC0+YnJpbmdUb0Zyb250KCk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmhpZ2hsaWdodCgpCkBAIC01OCwy
MSArMTI1LDkzIEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWRlSGlnaGxpZ2h0KCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cG9wdWxh
dGVTZXR0aW5nKGNvbnN0IFN0cmluZyYsIFN0cmluZyopCitib29sIEluc3BlY3RvckNsaWVudEVm
bDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgIFBhZ2UqIGZyb250ZW5kUGFnZSA9IGV3a192aWV3X2NvcmVf
cGFnZV9nZXQobV9pbnNwZWN0b3JWaWV3KTsKKyAgICByZXR1cm4gZG9EaXNwYXRjaE1lc3NhZ2VP
bkZyb250ZW5kUGFnZShmcm9udGVuZFBhZ2UsIG1lc3NhZ2UpOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OnJlbGVhc2VGcm9u
dGVuZFBhZ2UoKQoreworICAgIG1faW5zcGVjdG9yVmlldyA9IDA7CisgICAgbV9mcm9udGVuZENs
aWVudCA9IDA7Cit9CisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiBpbnNwZWN0
ZWRWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG9yVmlldywgSW5zcGVjdG9yQ2xpZW50RWZsKiBp
bnNwZWN0b3JDbGllbnQpCisgICAgOiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKGV3a192
aWV3X2NvcmVfcGFnZV9nZXQoaW5zcGVjdGVkVmlldyktPmluc3BlY3RvckNvbnRyb2xsZXIoKSwg
ZXdrX3ZpZXdfY29yZV9wYWdlX2dldChpbnNwZWN0b3JWaWV3KSwgYWRvcHRQdHIobmV3IEluc3Bl
Y3RvckZyb250ZW5kU2V0dGluZ3NFZmwoKSkpCisgICAgLCBtX2luc3BlY3RlZFZpZXcoaW5zcGVj
dGVkVmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldyhpbnNwZWN0b3JWaWV3KQorICAgICwgbV9p
bnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZChtX2luc3BlY3RvclZpZXcsICJpbnNwZWN0b3IsdmlldyxkZXN0cm95Iiwg
bm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSwgdGhpcyk7Cit9CisKK0luc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjp+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKQoreworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbChtX2luc3BlY3RvclZpZXcsICJpbnNwZWN0b3Isdmlldyxk
ZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk7CisKKyAgICBpZiAobV9pbnNwZWN0
b3JDbGllbnQpIHsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBh
Z2UoKTsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSAwOworICAgIH0KK30KKworU3RyaW5n
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDbGllbnRFZmw6OnN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KQorU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5lbHMoKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1ib29sIElu
c3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpicmluZ1RvRnJvbnQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmNs
b3NlV2luZG93KCkKK3sKKyAgICBkZXN0cm95SW5zcGVjdG9yV2luZG93KHRydWUpOworfQorCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0
IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRhY2hXaW5kb3coKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25l
ZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29u
dHJvbGxlcikKK3sKKyAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKKyAgICAgICAg
ZXdrX3ZpZXdfY29yZV9wYWdlX2dldChtX2luc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPmRpc2Nvbm5lY3RGcm9udGVuZCgpOworCisgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50
KQorICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOworCisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNw
ZWN0b3IsdmlldyxjbG9zZSIsIG1faW5zcGVjdG9yVmlldyk7Cit9CisjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVm
bC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIzNThlMWZmNjliMS4uZDc0MTRl
YzBkYWNhY2NiZDJmNTU4NGYzMWFkNWYyZjA0ZmYxOTA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgKQEAgLTIsNyAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRl
Y25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBz
eXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxOSBAQAogI2RlZmluZSBJbnNwZWN0
b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIEluc3BlY3RvckNsaWVu
dEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQgeworY2xhc3MgSW5zcGVjdG9y
Q2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6CisgICAgSW5zcGVj
dG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfkluc3BlY3RvckNsaWVudEVmbCgpOwor
CiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2
b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKik7CkBAIC00OSwx
MCArNTUsNDIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHBvcHVsYXRl
U2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1ZSk7Ci0gICAgdmlydHVhbCB2
b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7
Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYp
OworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisKK3ByaXZhdGU6CisgICAgRXZh
c19PYmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNwZWN0b3JW
aWV3OworICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBtX2Zyb250ZW5kQ2xpZW50Owor
fTsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbCB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwoRXZhc19PYmplY3QqLCBFdmFzX09iamVjdCosIEluc3BlY3RvckNsaWVudEVmbCopOwor
ICAgIH5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCgpOworCisgICAgdmlydHVhbCBTdHJpbmcg
bG9jYWxpemVkU3RyaW5nc1VSTCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGhpZGRlblBhbmVscygp
OworCisgICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29u
c3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCk7CisgICAgdmly
dHVhbCB2b2lkIGRldGFjaFdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVk
V2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKKworICAgIHZvaWQgZGlzY29ubmVjdEluc3BlY3RvckNs
aWVudCgpIHsgbV9pbnNwZWN0b3JDbGllbnQgPSAwOyB9CisgICAgdm9pZCBkZXN0cm95SW5zcGVj
dG9yV2luZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7CisKK3ByaXZhdGU6Cisg
ICAgRXZhc19PYmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNw
ZWN0b3JWaWV3OworICAgIEluc3BlY3RvckNsaWVudEVmbCogbV9pbnNwZWN0b3JDbGllbnQ7CisK
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDJkNDJhMzJmMTI4Mzg2
MGZiYWNjZWY3YmFlYjk4NjFmYjUzMmY4YTguLjY5NWJhNmUyMDViZmM1MzIxMzJlZTI4ZjE1MmIy
Y2Y0ZjlhNzdmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02MTksNyArNjIwLDcgQEAgc3RhdGlj
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMu
ZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNl
bGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVu
dEVmbDsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50RWZsOworICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBX
ZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKIAogICAgIHByaXYt
PnBhZ2UgPSBhZG9wdFB0cihuZXcgV2ViQ29yZTo6UGFnZShwYWdlQ2xpZW50cykpOwogCkBAIC0z
OTQwLDYgKzM5NDEsMjYgQEAgdm9pZCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBTb3VwU2Vzc2lvbiogc2Vzc2lvbikKICAgICBwcml2LT5zb3VwU2Vzc2lv
biA9IHNlc3Npb247CiB9CiAKK3ZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9zaG93KEV2YXNf
T2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisgICAgcHJpdi0+cGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5zaG93KCk7CisjZW5kaWYKK30KKwordm9pZCBld2tfdmlld193ZWJf
aW5zcGVjdG9yX2Nsb3NlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEp
OworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisg
ICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5jbG9zZSgpOworI2VuZGlmCit9
CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3a192aWV3X2FjY2Vs
ZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2
YXNfTmF0aXZlX1N1cmZhY2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGZhMzgyYTkyYzE5MjliNjg1
NGNlNGQ2ZDgxYzViNDVhZTViNzkwNGEuLjk5ZGYxY2FmYzdmM2EzYzE5MDViMTVmZThhMjAzZTAz
YWQyZTczYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0yMzY3LDYgKzIzNjcsMjAg
QEAgRUFQSSBTb3VwU2Vzc2lvbiogZXdrX3ZpZXdfc291cF9zZXNzaW9uX2dldChjb25zdCBFdmFz
X09iamVjdCAqbyk7CiAgKi8KIEVBUEkgdm9pZCBld2tfdmlld19zb3VwX3Nlc3Npb25fc2V0KEV2
YXNfT2JqZWN0ICpvLCBTb3VwU2Vzc2lvbiAqc2Vzc2lvbik7CiAKKy8qKgorICogU2hvdyB0aGUg
d2ViIGluc3BlY3RvciB2aWV3IHRvIGRlYnVnIGEgd2ViIHBhZ2UuCisgKgorICogQHBhcmFtIG8g
VGhlIHZpZXcgdG8gc2hvdyB0aGUgd2ViIGluc3BlY3Rvci4KKyAqLworRUFQSSB2b2lkIGV3a192
aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQ2xvc2Ug
dGhlIHdlYiBpbnNwZWN0b3IgdmlldworICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNsb3Nl
IHRoZSB3ZWIgaW5zcGVjdG9yLgorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rv
cl9jbG9zZShFdmFzX09iamVjdCAqbyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138304</attachid>
            <date>2012-04-23 01:02:23 -0700</date>
            <delta_ts>2012-05-23 04:14:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120423170222.patch</filename>
            <type>text/plain</type>
            <size>17323</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYzNTBiODIyZTVhMWZkYTQx
OTljMzM3MTgzMmZkOTVkZTRmYmI0Y2MuLjFkYjJiNzE2MjQ5NTA0YzRkZjg1YjM5YWJhZGM4ZDU0
YzIzNGUzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDQtMjMgIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBm
b3IgV2ViIEluc3BlY3RvcgorICAgICAgICAtIEFkZCBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2Yg
SW5zcGVjdG9yQ2xpZW50RWZsCisgICAgICAgIC0gQmFzaWNhbGx5IGltcGxlbWVudCBJbnNwZWN0
b3JDbGllbnRFZmwgdG8gdXNlIHRoZSB3ZWIgaW5zcGVjdG9yIGluIFdlYktpdC1FRkwgd2l0aCBu
ZXcgRVdLIEFQSXMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA0LTIwICBNaWtlIExhdHRhbnppbyAg
PG1sYXR0YW56aW9AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRXhwb3NlIFdlYlZp
ZXdwb3J0QXJndW1lbnRzIHRvIFdlYlBhZ2VDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA2MmIy
NjVmMjM0MjM2MmRlZDVlN2I1ODRlYmIzYTg5MmVhYjYzNTgwLi43YTA3ZjJkOGM5ZDk0YTBjODJj
ZWZhMTEyZjMxZWRhYWNhNzkyZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAK
KzIwMTItMDQtMjMgIFNlb2tqdSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW0VGTF0gQWRkIFdlYiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBFRkwg
cG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3RvcgorICAgICAgICAtIEFkZCBhIHN0
dWIgaW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsCisgICAgICAgIC0gQmFzaWNh
bGx5IGltcGxlbWVudCBJbnNwZWN0b3JDbGllbnRFZmwgdG8gdXNlIHRoZSB3ZWIgaW5zcGVjdG9y
IGluIFdlYktpdC1FRkwgd2l0aCBuZXcgRVdLIEFQSXMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeVdl
Ykluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0Vm
bCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsOjpnZXRQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZs
OjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6Oklu
c3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6
On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50
RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xp
ZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRvRnJvbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxlYXNlRnJvbnRlbmRQYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRmlsZXNQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENs
aWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5lbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9u
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6Y2xvc2VX
aW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omlu
c3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRv
dyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3RvckNsaWVudCk6CisgICAgICAgICog
ZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAg
ICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKyAgICAgICAgKGV3a192aWV3X3dlYl9pbnNwZWN0
b3Jfc2hvdyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKToKKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0yMCAgVGhpYWdvIE1hcmNvcyBQLiBTYW50
b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgU2VjdXJp
dHkgT3JpZ2luIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggYzc3YThiNTg4MWQ1ZmRi
OTdhOGQ5YzA5NDI0OGU4ZTA0YzcxNjFjOS4uYTg5MjUwYjRjMjViYzdhODRkNjRmZWY1ZmM1YzA5
ZWI2Y2FhNzRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yNjUsMyArMjY1LDM2IEBA
IElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAKIElOU1RBTEwoRklMRVMgJHtXZWJL
aXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFUQV9JTlNUQUxMX0RJUn0vdGhlbWVz
KQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBGSUxFKEdMT0IgV0VCX0lOU1BFQ1RPUl9E
QVRBICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouanMiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL2Zyb250LWVu
ZC8qLmNzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVfRElS
fS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouaHRtbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0luc3BlY3RvckJhY2tlbmRTdHViLmpzIikKKworICAgIEZJTEUoR0xPQiBXRUJf
SU5TUEVDVE9SX1VHTElGWUpTX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1l
bmQvVWdsaWZ5SlMvKi5qcyIpCisKKyAgICBGSUxFKEdMT0IgV0VCX0lOU1BFQ1RPUl9JTUFHRVNf
REFUQSAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvKi5wbmciCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L2lu
c3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzLyouZ2lmIikKKworICAgIFNFVChXRUJfSU5TUEVDVE9S
X0RJUiAke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC9lZmwvd2ViaW5zcGVjdG9yKQorICAgIFNF
VChXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RJUiAke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC9l
Zmwvd2ViaW5zcGVjdG9yL1VnbGlmeUpTKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX0lNQUdFU19E
SVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3BlY3Rvci9JbWFnZXMpCisK
KyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0RJUj0iJHtXRUJfSU5TUEVDVE9S
X0RJUn0iKQorCisgICAgRklMRShDT1BZICR7V0VCX0lOU1BFQ1RPUl9EQVRBfSBERVNUSU5BVElP
TiAke1dFQl9JTlNQRUNUT1JfRElSfSkKKyAgICBGSUxFKENPUFkgJHtXRUJfSU5TUEVDVE9SX1VH
TElGWUpTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9VR0xJRllKU19ESVJ9KQor
ICAgIEZJTEUoQ09QWSAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEF9IERFU1RJTkFUSU9OICR7
V0VCX0lOU1BFQ1RPUl9JTUFHRVNfRElSfSkKKworICAgIFNFVChXRUJfSU5TUEVDVE9SX0lOU1RB
TExfRElSICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5z
cGVjdG9yKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX0lOU1RBTExfVUdMSUZZSlNfRElSICR7Q01B
S0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5zcGVjdG9yL1VnbGlm
eUpTKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX0lOU1RBTExfSU1BR0VTX0RJUiAke0NNQUtFX0lO
U1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmluc3BlY3Rvci9JbWFnZXMpCisK
KyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0lOU1RBTExfRElSPSIke1dFQl9J
TlNQRUNUT1JfSU5TVEFMTF9ESVJ9IikKKworICAgIElOU1RBTEwoRklMRVMgJHtXRUJfSU5TUEVD
VE9SX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUn0pCisgICAg
SU5TVEFMTChGSUxFUyAke1dFQl9JTlNQRUNUT1JfVUdMSUZZSlNfREFUQX0gREVTVElOQVRJT04g
JHtXRUJfSU5TUEVDVE9SX0lOU1RBTExfVUdMSUZZSlNfRElSfSkKKyAgICBJTlNUQUxMKEZJTEVT
ICR7V0VCX0lOU1BFQ1RPUl9JTUFHRVNfREFUQX0gREVTVElOQVRJT04gJHtXRUJfSU5TUEVDVE9S
X0lOU1RBTExfSU1BR0VTX0RJUn0pCitFTkRJRiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5kZXggN2UyOTc1
OGJkZDExNzE5NGI1Mjg0ZWU1Y2RiOTQ3OTgxNzA4Zjg5NS4uMDhjZGMzYTM1NGFkZDkyNzc4MDJm
ODU5YjJlNDI2NmFjNTU4MmVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yMSwzMSArMjEsOTYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKIAor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCitzdGF0aWMgdm9pZCBu
b3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2Vi
dmlldywgdm9pZCogZXZlbnRJbmZvKQoreworICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCA9IHN0YXRpY19jYXN0PEluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsKj4odXNlckRhdGEpOworICAgIGlmIChpbnNwZWN0b3JGcm9udGVuZENsaWVudCkK
KyAgICAgICAgaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3co
dHJ1ZSk7Cit9CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwgOiBwdWJsaWMg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6U2V0dGluZ3MgeworcHVibGljOgorICAgIHZp
cnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICB7CisgICAg
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9Cit9
OworI2VuZGlmCisKK0luc3BlY3RvckNsaWVudEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiB2aWV3KQorICAgIDogbV9pbnNwZWN0ZWRWaWV3KHZpZXcpCisgICAgLCBtX2luc3Bl
Y3RvclZpZXcoMCkKKyAgICAsIG1fZnJvbnRlbmRDbGllbnQoMCkKK3sKK30KKworSW5zcGVjdG9y
Q2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKCkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorICAgIGlmIChtX2Zyb250ZW5kQ2xpZW50KSB7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQt
PmRpc2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQoKTsKKyAgICAgICAgbV9mcm9udGVuZENsaWVudCA9
IDA7CisgICAgfQorI2VuZGlmCit9CisKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0
b3JEZXN0cm95ZWQoKQogeworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgY2xvc2VJbnNwZWN0
b3JGcm9udGVuZCgpOwogICAgIGRlbGV0ZSB0aGlzOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVj
dG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29udHJvbGxlciop
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEV2
YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gMDsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKG1faW5zcGVjdGVkVmlldywgImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsICZpbnNw
ZWN0b3JWaWV3KTsKKyAgICBpZiAoIWluc3BlY3RvclZpZXcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1faW5zcGVjdG9yVmlldyA9IGluc3BlY3RvclZpZXc7CisKKyAgICBTdHJpbmcgaW5zcGVj
dG9yVXJpID0gaW5zcGVjdG9yRmlsZXNQYXRoKCk7CisgICAgZXdrX3ZpZXdfdXJpX3NldChtX2lu
c3BlY3RvclZpZXcsIGluc3BlY3RvclVyaS51dGY4KCkuZGF0YSgpKTsKKworICAgIE93blB0cjxJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbD4gZnJvbnRlbmRDbGllbnQgPSBhZG9wdFB0cihuZXcg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwobV9pbnNwZWN0ZWRWaWV3LCBtX2luc3BlY3RvclZp
ZXcsIHRoaXMpKTsKKyAgICBtX2Zyb250ZW5kQ2xpZW50ID0gZnJvbnRlbmRDbGllbnQuZ2V0KCk7
CisKKyAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyID0gZXdrX3ZpZXdfY29yZV9w
YWdlX2dldChtX2luc3BlY3RvclZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7CisgICAgY29u
dHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoZnJvbnRlbmRDbGllbnQucmVsZWFz
ZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6Y2xvc2VJbnNwZWN0
b3JGcm9udGVuZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorICAgIGlmIChtX2Zyb250ZW5kQ2xpZW50KQorICAgICAgICBtX2Zyb250ZW5kQ2xpZW50
LT5kZXN0cm95SW5zcGVjdG9yV2luZG93KGZhbHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIEluc3Bl
Y3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRvRnJvbnQoKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5icmlu
Z1RvRnJvbnQoKTsKKyNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlnaGxp
Z2h0KCkKQEAgLTU4LDIxICsxMjMsMTA2IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWRl
SGlnaGxpZ2h0KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEluc3BlY3RvckNs
aWVudEVmbDo6cG9wdWxhdGVTZXR0aW5nKGNvbnN0IFN0cmluZyYsIFN0cmluZyopCitib29sIElu
c3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIFBhZ2UqIGZyb250ZW5kUGFnZSA9
IGV3a192aWV3X2NvcmVfcGFnZV9nZXQobV9pbnNwZWN0b3JWaWV3KTsKKyAgICByZXR1cm4gZG9E
aXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZShmcm9udGVuZFBhZ2UsIG1lc3NhZ2UpOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBJbnNwZWN0b3JDbGllbnRF
Zmw6OnJlbGVhc2VGcm9udGVuZFBhZ2UoKQoreworICAgIG1faW5zcGVjdG9yVmlldyA9IDA7Cisg
ICAgbV9mcm9udGVuZENsaWVudCA9IDA7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDbGllbnRFZmw6
Omluc3BlY3RvckZpbGVzUGF0aCgpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBTdHJp
bmcgaW5zcGVjdG9yRmlsZXNQYXRoID0gImZpbGU6Ly8iV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJ
UiIvaW5zcGVjdG9yLmh0bWwiOworICAgIGlmIChhY2Nlc3MoaW5zcGVjdG9yRmlsZXNQYXRoLnV0
ZjgoKS5kYXRhKCksIFJfT0spKSAvLyBPbiBzdWNjZXNzLCB6ZXJvIGlzIHJldHVybmVkCisgICAg
ICAgIGluc3BlY3RvckZpbGVzUGF0aCA9ICJmaWxlOi8vIldFQl9JTlNQRUNUT1JfRElSIi9pbnNw
ZWN0b3IuaHRtbCI7CisKKyAgICByZXR1cm4gaW5zcGVjdG9yRmlsZXNQYXRoOworI2Vsc2UKKyAg
ICByZXR1cm4gU3RyaW5nKCk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCitJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoRXZh
c19PYmplY3QqIGluc3BlY3RlZFZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3LCBJbnNw
ZWN0b3JDbGllbnRFZmwqIGluc3BlY3RvckNsaWVudCkKKyAgICA6IEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwoZXdrX3ZpZXdfY29yZV9wYWdlX2dldChpbnNwZWN0ZWRWaWV3KS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLCBld2tfdmlld19jb3JlX3BhZ2VfZ2V0KGluc3BlY3RvclZpZXcpLCBh
ZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCgpKSkKKyAgICAsIG1faW5z
cGVjdGVkVmlldyhpbnNwZWN0ZWRWaWV3KQorICAgICwgbV9pbnNwZWN0b3JWaWV3KGluc3BlY3Rv
clZpZXcpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCit7CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1faW5zcGVjdG9yVmlldywgImluc3BlY3Rv
cix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95LCB0aGlzKTsKK30KKwor
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCgp
Cit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1faW5zcGVjdG9yVmlldywg
Imluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KTsKKwor
ICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgeworICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+
cmVsZWFzZUZyb250ZW5kUGFnZSgpOworICAgICAgICBtX2luc3BlY3RvckNsaWVudCA9IDA7Cisg
ICAgfQorfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmxvY2FsaXplZFN0
cmluZ3NVUkwoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmhpZGRlblBhbmVscygp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNldHRpbmcoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9udCgp
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDbGllbnRFZmw6
OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKQordm9pZCBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3coKQoreworICAgIGRlc3Ryb3lJbnNwZWN0b3JXaW5k
b3codHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3Rl
ZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0
YWNoV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsOjpkZXRhY2hXaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldEF0dGFjaGVkV2lu
ZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9vbCBu
b3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQoreworICAgIGlmIChub3RpZnlJbnNwZWN0b3JDb250
cm9sbGVyKQorICAgICAgICBld2tfdmlld19jb3JlX3BhZ2VfZ2V0KG1faW5zcGVjdGVkVmlldykt
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlzY29ubmVjdEZyb250ZW5kKCk7CisKKyAgICBpZiAo
bV9pbnNwZWN0b3JDbGllbnQpCisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJv
bnRlbmRQYWdlKCk7CisKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1faW5z
cGVjdGVkVmlldywgImluc3BlY3Rvcix2aWV3LGNsb3NlIiwgbV9pbnNwZWN0b3JWaWV3KTsKK30K
KyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRFZmwuaAppbmRleCBmOTJlOTRkZGE4MTNjNWI3MjllMDc5ZjNmNjcxYjM1
OGUxZmY2OWIxLi5iNmEwNzhlNzI1ODdjOTMzZDVlM2E1MjYwN2FhMTJhYWE0ZDczNTE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRF
ZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRFZmwuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0
aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJv
RlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1
bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMTMgKzMzLDE5IEBA
CiAjZGVmaW5lIEluc3BlY3RvckNsaWVudEVmbF9oCiAKICNpbmNsdWRlICJJbnNwZWN0b3JDbGll
bnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgiCisjaW5jbHVk
ZSA8RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOwogY2xhc3MgUGFnZTsKIAotY2xh
c3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckNsaWVudCB7
CitjbGFzcyBJbnNwZWN0b3JDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50IHsKIHB1
YmxpYzoKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqKTsKKyAgICB+SW5zcGVj
dG9yQ2xpZW50RWZsKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVzdHJveWVkKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgb3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRy
b2xsZXIqKTsKQEAgLTQ5LDEwICs1NSw0MyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhp
Z2hsaWdodCgpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCk7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcG9wdWxhdGVTZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcqIHZhbHVl
KTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcmVTZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKLQogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRl
bmQoY29uc3QgU3RyaW5nJik7CisKKyAgICB2b2lkIHJlbGVhc2VGcm9udGVuZFBhZ2UoKTsKKyAg
ICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRoKCk7CisKK3ByaXZhdGU6CisgICAgRXZhc19PYmpl
Y3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNwZWN0b3JWaWV3Owor
ICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBtX2Zyb250ZW5kQ2xpZW50OworfTsKKwor
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbCB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwo
RXZhc19PYmplY3QqLCBFdmFzX09iamVjdCosIEluc3BlY3RvckNsaWVudEVmbCopOworICAgIH5J
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCgpOworCisgICAgdmlydHVhbCBTdHJpbmcgbG9jYWxp
emVkU3RyaW5nc1VSTCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGhpZGRlblBhbmVscygpOworCisg
ICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdp
bmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3Ry
aW5nJik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCk7CisgICAgdmlydHVhbCB2
b2lkIGRldGFjaFdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93
SGVpZ2h0KHVuc2lnbmVkKTsKKworICAgIHZvaWQgZGlzY29ubmVjdEluc3BlY3RvckNsaWVudCgp
IHsgbV9pbnNwZWN0b3JDbGllbnQgPSAwOyB9CisgICAgdm9pZCBkZXN0cm95SW5zcGVjdG9yV2lu
ZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7CisKK3ByaXZhdGU6CisgICAgRXZh
c19PYmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNwZWN0b3JW
aWV3OworICAgIEluc3BlY3RvckNsaWVudEVmbCogbV9pbnNwZWN0b3JDbGllbnQ7CisKIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IGY3ZjkzZDk1MDY4MWM5MDZiMTg5
MWU0NWVmNmYwZWNjYTJkZmZhYWUuLjI5MjA0N2E5MTdmNDNkYzBhODlhZGNiNjllY2UzY2RiOTY5
ZjFiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC02MzEsNyArNjMyLDcgQEAgc3RhdGljIEV3a19W
aWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSkKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9y
Q2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwog
ICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsK
LSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9y
Q2xpZW50RWZsOworICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKIAogICAgIHByaXYtPnBhZ2Ug
PSBhZG9wdFB0cihuZXcgV2ViQ29yZTo6UGFnZShwYWdlQ2xpZW50cykpOwogCkBAIC00MDY4LDYg
KzQwNjksMjYgQEAgdm9pZCBld2tfdmlld19zZXR0aW5nX2VuYWJsZV94c3NfYXVkaXRvcl9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEVpbmFfQm9vbCBlbmEKICAgICB9CiB9CiAKK3ZvaWQgZXdr
X3ZpZXdfd2ViX2luc3BlY3Rvcl9zaG93KEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBz
bWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHBy
aXYpOworCisgICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zaG93KCk7Cisj
ZW5kaWYKK30KKwordm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKEV2YXNfT2JqZWN0
KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisgICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5jbG9zZSgpOworI2VuZGlmCit9CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiBib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nX29iamVjdF9j
cmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfTmF0aXZlX1N1cmZhY2UqIG5hdGl2ZVN1
cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCmluZGV4IGYyZjBiZTE5OGM2ZGMyMzI4OWIyZDBkZTM0MDZkMzJkMzk1M2FlYWYuLmU2
NDc3NDkyZDZlOWZmNDAwOWI2NmVhZDJhYzRjMTVjMmY1NzEzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5oCkBAIC0yNDM4LDYgKzI0MzgsMjAgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ19lbmFibGVfeHNzX2F1ZGl0b3JfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAq
LwogRUFQSSB2b2lkIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX3hzc19hdWRpdG9yX3NldChFdmFz
X09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJsZSk7CiAKKy8qKgorICogU2hvdyB0aGUgd2ViIGlu
c3BlY3RvciB2aWV3IHRvIGRlYnVnIGEgd2ViIHBhZ2UuCisgKgorICogQHBhcmFtIG8gVGhlIHZp
ZXcgdG8gc2hvdyB0aGUgd2ViIGluc3BlY3Rvci4KKyAqLworRUFQSSB2b2lkIGV3a192aWV3X3dl
Yl9pbnNwZWN0b3Jfc2hvdyhFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQ2xvc2UgdGhlIHdl
YiBpbnNwZWN0b3IgdmlldworICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNsb3NlIHRoZSB3
ZWIgaW5zcGVjdG9yLgorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9z
ZShFdmFzX09iamVjdCAqbyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143527</attachid>
            <date>2012-05-23 04:14:30 -0700</date>
            <delta_ts>2012-05-31 04:38:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120523201429.patch</filename>
            <type>text/plain</type>
            <size>17366</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0OWFkZjUxYTNjOThhNzJi
YTA4MWY0ZWQwZjI4ZDhjNmQ1MDg2MDkuLjNkZjkwNmFmMjIwZTEyZTI2ZjBjZGNlN2QzYzYyZWQw
OTg4NTY3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMjMgIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgQWRkIGEgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBJbnNwZWN0b3JDbGllbnRFZmwu
CisgICAgICAgIEJhc2ljYWxseSBpbXBsZW1lbnQgSW5zcGVjdG9yQ2xpZW50RWZsIHRvIHVzZSB0
aGUgd2ViIGluc3BlY3RvciBpbiBXZWJLaXQtRUZMIHdpdGggbmV3IEVXSyBBUElzLgorCisgICAg
ICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMDUtMjIgIERvbmd3b28gSW0gIDxkdy5p
bUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBJbXBsZW1lbnRzIHRoZSByZWdpc3RlclBy
b3RvY29sSGFuZGxlciBtZXRob2QgYW5kIG9wdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAyOTI1
YTAwZWNmMzhlZDc4NWQ5YzJlM2FhMjQ3MDMwMzIzYTM5NDU4Li4xNzc3N2FiZGYzMGU2N2Y2M2Ix
YzAyYmNjMWQ0YTZmMjEzYjE1NTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAK
KzIwMTItMDUtMjMgIFNlb2tqdSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisgICAg
ICAgIFtFRkxdIEFkZCBXZWIgSW5zcGVjdG9yIHRvIFdlYktpdC1FRkwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzODY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQgaW1wbGVtZW50YXRpb24g
Zm9yIFdlYiBJbnNwZWN0b3IuCisgICAgICAgIEFkZCBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2Yg
SW5zcGVjdG9yQ2xpZW50RWZsLgorICAgICAgICBCYXNpY2FsbHkgaW1wbGVtZW50IEluc3BlY3Rv
ckNsaWVudEVmbCB0byB1c2UgdGhlIHdlYiBpbnNwZWN0b3IgaW4gV2ViS2l0LUVGTCB3aXRoIG5l
dyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeVdlYklu
c3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsOjpnZXRQcm9w
ZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsOjpz
ZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6Okluc3Bl
Y3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6On5J
bnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZs
OjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50
RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRvRnJvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxlYXNlRnJvbnRlbmRQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRmlsZXNQYXRoKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5lbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9udCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6Y2xvc2VXaW5k
b3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omluc3Bl
Y3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3RvckNsaWVudCk6CisgICAgICAgICogZXdr
L2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6CisgICAgICAgIChl
d2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAgICAgICAoZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDUtMjMgIENo
cmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBb
RUZMXSBFRkwncyBEUlQgZG9lcyBub3QgcHJpbnQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhF
cnJvciBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMmVlODMwZDc5ZjE5MjI2
OWJkY2MwNDdmYmViZDJmYTEzYWMyMmQ3NC4uZmRhMmMxMTkyOTdkOWI2YzMwNTI5M2YzNGY0NWNj
MThkYzdhYzA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yODYsMyArMjg2LDM2IEBA
IElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAKIElOU1RBTEwoRklMRVMgJHtXZWJL
aXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFUQV9JTlNUQUxMX0RJUn0vdGhlbWVz
KQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBGSUxFKEdMT0IgV0VCX0lOU1BFQ1RPUl9E
QVRBICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouanMiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9yL2Zyb250LWVu
ZC8qLmNzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVfRElS
fS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouaHRtbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyIpCisKKyAgICBGSUxFKEdMT0Ig
V0VCX0lOU1BFQ1RPUl9VR0xJRllKU19EQVRBICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1VnbGlmeUpTLyouanMiKQorCisgICAgRklMRShHTE9CIFdFQl9JTlNQRUNUT1JfSU1B
R0VTX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzLyoucG5n
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVfRElS
fS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy8qLmdpZiIpCisKKyAgICBTRVQoV0VCX0lOU1BF
Q1RPUl9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3BlY3RvcikKKyAg
ICBTRVQoV0VCX0lOU1BFQ1RPUl9VR0xJRllKU19ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJL
aXQvZWZsL3dlYmluc3BlY3Rvci9VZ2xpZnlKUykKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9JTUFH
RVNfRElSICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0L2VmbC93ZWJpbnNwZWN0b3IvSW1hZ2Vz
KQorCisgICAgQUREX0RFRklOSVRJT05TKC1EV0VCX0lOU1BFQ1RPUl9ESVI9IiR7V0VCX0lOU1BF
Q1RPUl9ESVJ9IikKKworICAgIEZJTEUoQ09QWSAke1dFQl9JTlNQRUNUT1JfREFUQX0gREVTVElO
QVRJT04gJHtXRUJfSU5TUEVDVE9SX0RJUn0pCisgICAgRklMRShDT1BZICR7V0VCX0lOU1BFQ1RP
Ul9VR0xJRllKU19EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQRUNUT1JfVUdMSUZZSlNfRElS
fSkKKyAgICBGSUxFKENPUFkgJHtXRUJfSU5TUEVDVE9SX0lNQUdFU19EQVRBfSBERVNUSU5BVElP
TiAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RJUn0pCisKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9J
TlNUQUxMX0RJUiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dl
Ymluc3BlY3RvcikKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX1VHTElGWUpTX0RJUiAk
e0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmluc3BlY3Rvci9V
Z2xpZnlKUykKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0lNQUdFU19ESVIgJHtDTUFL
RV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElSfS93ZWJpbnNwZWN0b3IvSW1hZ2Vz
KQorCisgICAgQUREX0RFRklOSVRJT05TKC1EV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUj0iJHtX
RUJfSU5TUEVDVE9SX0lOU1RBTExfRElSfSIpCisKKyAgICBJTlNUQUxMKEZJTEVTICR7V0VCX0lO
U1BFQ1RPUl9EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVJ9KQor
ICAgIElOU1RBTEwoRklMRVMgJHtXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RBVEF9IERFU1RJTkFU
SU9OICR7V0VCX0lOU1BFQ1RPUl9JTlNUQUxMX1VHTElGWUpTX0RJUn0pCisgICAgSU5TVEFMTChG
SUxFUyAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BF
Q1RPUl9JTlNUQUxMX0lNQUdFU19ESVJ9KQorRU5ESUYgKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IDdl
Mjk3NThiZGQxMTcxOTRiNTI4NGVlNWNkYjk0Nzk4MTcwOGY4OTUuLmI5ZjZhYzg0MWY1OWQxMDIw
YTdlZDg5ZDZkMzI3MWY3OTI4ZmUyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtMjEsMzEgKzIxLDk3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgi
CiAKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a192aWV3X3By
aXZhdGUuaCIKKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ry
b3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8p
Cit7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xp
ZW50ID0gc3RhdGljX2Nhc3Q8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7
CisgICAgaWYgKGluc3BlY3RvckZyb250ZW5kQ2xpZW50KQorICAgICAgICBpbnNwZWN0b3JGcm9u
dGVuZENsaWVudC0+ZGVzdHJveUluc3BlY3RvcldpbmRvdyh0cnVlKTsKK30KKworY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpTZXR0aW5ncyB7CitwdWJsaWM6CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVy
dHkoY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgewor
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KK307CisjZW5kaWYKKworSW5zcGVjdG9y
Q2xpZW50RWZsOjpJbnNwZWN0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqIHZpZXcpCisgICAgOiBt
X2luc3BlY3RlZFZpZXcodmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldygwKQorICAgICwgbV9m
cm9udGVuZENsaWVudCgwKQoreworfQorCitJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JD
bGllbnRFZmwoKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKG1fZnJvbnRlbmRD
bGllbnQpIHsKKyAgICAgICAgbV9mcm9udGVuZENsaWVudC0+ZGlzY29ubmVjdEluc3BlY3RvckNs
aWVudCgpOworICAgICAgICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsKKyAgICB9CisjZW5kaWYKK30K
Kwogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7CisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKyAgICBjbG9zZUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAgZGVs
ZXRlIHRoaXM7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6Om9wZW5JbnNw
ZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKikKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZp
ZXcgPSAwOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0ZWRW
aWV3LCAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiwgJmluc3BlY3RvclZpZXcpOworICAgIGlmICgh
aW5zcGVjdG9yVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0g
aW5zcGVjdG9yVmlldzsKKworICAgIFN0cmluZyBpbnNwZWN0b3JVcmkgPSBpbnNwZWN0b3JGaWxl
c1BhdGgoKTsKKyAgICBld2tfdmlld191cmlfc2V0KG1faW5zcGVjdG9yVmlldywgaW5zcGVjdG9y
VXJpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsPiBmcm9udGVuZENsaWVudCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbChtX2luc3BlY3RlZFZpZXcsIG1faW5zcGVjdG9yVmlldywgdGhpcykpOworICAgIG1fZnJv
bnRlbmRDbGllbnQgPSBmcm9udGVuZENsaWVudC5nZXQoKTsKKworICAgIEluc3BlY3RvckNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RvclZpZXcp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCk7CisgICAgY29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQoZnJvbnRlbmRDbGllbnQucmVsZWFzZSgpKTsKKyNlbmRpZgogfQogCiB2b2lk
IEluc3BlY3RvckNsaWVudEVmbDo6Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChtX2Zyb250ZW5k
Q2xpZW50KQorICAgICAgICBtX2Zyb250ZW5kQ2xpZW50LT5kZXN0cm95SW5zcGVjdG9yV2luZG93
KGZhbHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9u
dGVuZFRvRnJvbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKElOU1BF
Q1RPUikKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5icmluZ1RvRnJvbnQoKTsKKyNlbmRpZgogfQog
CiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlnaGxpZ2h0KCkKQEAgLTU4LDIxICsxMjQsMTA2
IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWRlSGlnaGxpZ2h0KCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cG9wdWxhdGVTZXR0aW5n
KGNvbnN0IFN0cmluZyYsIFN0cmluZyopCitib29sIEluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgIFBhZ2UqIGZyb250ZW5kUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1f
aW5zcGVjdG9yVmlldyk7CisgICAgcmV0dXJuIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9udGVuZFBh
Z2UoZnJvbnRlbmRQYWdlLCBtZXNzYWdlKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxlYXNlRnJvbnRlbmRQYWdlKCkK
K3sKKyAgICBtX2luc3BlY3RvclZpZXcgPSAwOworICAgIG1fZnJvbnRlbmRDbGllbnQgPSAwOwor
fQorCitTdHJpbmcgSW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JGaWxlc1BhdGgoKQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgU3RyaW5nIGluc3BlY3RvckZpbGVzUGF0aCA9ICJm
aWxlOi8vIldFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVIiL2luc3BlY3Rvci5odG1sIjsKKyAgICBp
ZiAoYWNjZXNzKGluc3BlY3RvckZpbGVzUGF0aC51dGY4KCkuZGF0YSgpLCBSX09LKSkgLy8gT24g
c3VjY2VzcywgemVybyBpcyByZXR1cm5lZAorICAgICAgICBpbnNwZWN0b3JGaWxlc1BhdGggPSAi
ZmlsZTovLyJXRUJfSU5TUEVDVE9SX0RJUiIvaW5zcGVjdG9yLmh0bWwiOworCisgICAgcmV0dXJu
IGluc3BlY3RvckZpbGVzUGF0aDsKKyNlbHNlCisgICAgcmV0dXJuIFN0cmluZygpOworI2VuZGlm
Cit9CisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiBpbnNwZWN0ZWRWaWV3LCBF
dmFzX09iamVjdCogaW5zcGVjdG9yVmlldywgSW5zcGVjdG9yQ2xpZW50RWZsKiBpbnNwZWN0b3JD
bGllbnQpCisgICAgOiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsKEVXS1ByaXZhdGU6OmNv
cmVQYWdlKGluc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCksIEVXS1ByaXZhdGU6
OmNvcmVQYWdlKGluc3BlY3RvclZpZXcpLCBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRT
ZXR0aW5nc0VmbCgpKSkKKyAgICAsIG1faW5zcGVjdGVkVmlldyhpbnNwZWN0ZWRWaWV3KQorICAg
ICwgbV9pbnNwZWN0b3JWaWV3KGluc3BlY3RvclZpZXcpCisgICAgLCBtX2luc3BlY3RvckNsaWVu
dChpbnNwZWN0b3JDbGllbnQpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KG1faW5zcGVjdG9yVmlldywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNw
ZWN0b3JEZXN0cm95LCB0aGlzKTsKK30KKworSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5J
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCgpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfZGVsKG1faW5zcGVjdG9yVmlldywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3Rp
ZnlXZWJJbnNwZWN0b3JEZXN0cm95KTsKKworICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgewor
ICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOworICAgICAg
ICBtX2luc3BlY3RvckNsaWVudCA9IDA7CisgICAgfQorfQorCitTdHJpbmcgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmw6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmw6OmhpZGRlblBhbmVscygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNl
dHRpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9udCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotYm9vbCBJbnNwZWN0b3JDbGllbnRFZmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBT
dHJpbmcmKQordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3coKQor
eworICAgIGRlc3Ryb3lJbnNwZWN0b3JXaW5kb3codHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRhY2hXaW5k
b3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmw6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRl
c3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9vbCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQorewor
ICAgIGlmIChub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQorICAgICAgICBFV0tQcml2YXRlOjpj
b3JlUGFnZShtX2luc3BlY3RlZFZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2Nvbm5l
Y3RGcm9udGVuZCgpOworCisgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50KQorICAgICAgICBtX2lu
c3BlY3RvckNsaWVudC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOworCisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfY2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjbG9z
ZSIsIG1faW5zcGVjdG9yVmlldyk7Cit9CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0
ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIzNThlMWZmNjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNh
NTI2MDdhYTEyYWFhNGQ3MzUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMzLDEzICszMywxOSBAQAogI2RlZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAog
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5oIgorI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIEluc3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBX
ZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQgeworY2xhc3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVi
bGljIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2
YXNfT2JqZWN0Kik7CisgICAgfkluc3BlY3RvckNsaWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2
b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0
b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlk
ZUhpZ2hsaWdodCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBT
dHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGlu
Zyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFs
IGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCBy
ZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisgICAgU3RyaW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOwor
Citwcml2YXRlOgorICAgIEV2YXNfT2JqZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19P
YmplY3QqIG1faW5zcGVjdG9yVmlldzsKKyAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCog
bV9mcm9udGVuZENsaWVudDsKK307CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
IDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwgeworcHVibGljOgorICAgIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNw
ZWN0b3JDbGllbnRFZmwqKTsKKyAgICB+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKwor
ICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZFN0cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBoaWRkZW5QYW5lbHMoKTsKKworICAgIHZpcnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNw
ZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIGF0dGFj
aFdpbmRvdygpOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1
YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRp
c2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQoKSB7IG1faW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAg
IHZvaWQgZGVzdHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xs
ZXIpOworCitwcml2YXRlOgorICAgIEV2YXNfT2JqZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAg
RXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1f
aW5zcGVjdG9yQ2xpZW50OworCiB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApp
bmRleCA1NDI5YTNlYzQyM2YzNzJjMzcwN2M0ZDA5NGY2ODg4N2YzNzA2ZDQ2Li5mODNjMjE0YjUw
NDYyY2NkOGY1NDIzNjE2OGNhZTc4Mjc2MGUzYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNzIx
LDcgKzcyMiw3IEBAIHN0YXRpYyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2
X25ldyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAgICAgcGFnZUNsaWVudHMuY2hy
b21lQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYp
OwogICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpFZGl0b3JDbGll
bnRFZmwoc21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3
IFdlYkNvcmU6OkRyYWdDbGllbnRFZmw7Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50
ID0gbmV3IFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDsKKyAgICBwYWdlQ2xpZW50cy5pbnNw
ZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+
c2VsZik7CiAKICAgICBwcml2LT5wYWdlID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFn
ZUNsaWVudHMpKTsKIApAQCAtNDM0OSw2ICs0MzUwLDI2IEBAIHZvaWQgZXdrX3ZpZXdfc2V0dGlu
Z19zaG91bGRfZGlzcGxheV90ZXh0X2Rlc2NyaXB0aW9uc19zZXQoRXZhc19PYmplY3QgKmV3a1Zp
ZXcsCiAjZW5kaWYKIH0KIAordm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBFV0tf
VklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBwcml2LT5wYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPnNob3coKTsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3
X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwg
cHJpdik7CisKKyAgICBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmNsb3NlKCk7
CisjZW5kaWYKK30KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgZXdr
X3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCog
ZXdrVmlldywgRXZhc19OYXRpdmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggYjhiMGFi
NjhiOTQzNGM4ZDBlMTQ3MWYwZGYxNTk1ZWE4ODhjMDdkYi4uMWQ3Y2JkZGNiM2FjOTBjZjUxODE2
NmRkNTA1MTJlMjZlZTBhNzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTI3MDYs
NiArMjcwNiwyMCBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRp
b19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFi
bGUpOwogCisvKioKKyAqIFNob3cgdGhlIHdlYiBpbnNwZWN0b3IgdmlldyB0byBkZWJ1ZyBhIHdl
YiBwYWdlLgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHNob3cgdGhlIHdlYiBpbnNwZWN0
b3IuCisgKi8KK0VBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZh
c19PYmplY3QgKm8pOworCisvKioKKyAqIENsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yIHZpZXcKKyAq
CisgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2ViIGluc3BlY3Rvci4KKyAqLwor
RUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZhc19PYmplY3Qg
Km8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145050</attachid>
            <date>2012-05-31 04:38:56 -0700</date>
            <delta_ts>2012-06-19 20:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120531203902.patch</filename>
            <type>text/plain</type>
            <size>17287</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwMjQ5ODRlZTFkMDUzNTVi
ZDRjMDlmZTNjNjE5MDFlMTI5MzA5MGEuLjdlZjM3M2JjODBkN2YwOTVlMGE5YWM0MzdkN2ViYmUw
NGQ1NjA5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMzEgIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA1LTMwICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lr
QHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFkZCBhbiBBY2NlbGVyYXRlZCBDb21w
b3NpdGluZyBsYXllciBmb3IgV2ViIEluc3BlY3RvciBET00gaGlnaGxpZ2h0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IDBkYTY4MzRkZDgzYzIxOWZiMWUzYjcyNjU3NTU4ZjcyNGIxZWNjYWEuLjcyNGUz
ZjEyZDA4MTgyYzA2MWY4NjJhN2ZiMmZiYzUwZTE1MmMxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw1MSBAQAorMjAxMi0wNS0zMSAgU2Vva2p1IEt3b24gIDxzZW9ranUua3dvbkBzYW1z
dW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgV2ViIEluc3BlY3RvciB0byBXZWJLaXQtRUZM
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzg2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVGTCBwb3J0
IGltcGxlbWVudGF0aW9uIGZvciBXZWIgSW5zcGVjdG9yCisgICAgICAgIEFkZCBhIHN0dWIgaW1w
bGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsLgorICAgICAgICBCYXNpY2FsbHkgaW1w
bGVtZW50IEluc3BlY3RvckNsaWVudEVmbCB0byB1c2UgdGhlIHdlYiBpbnNwZWN0b3IgaW4gV2Vi
S2l0LUVGTCB3aXRoIG5ldyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVjdG9yRnJvbnRl
bmRTZXR0aW5nc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFNldHRp
bmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
bGllbnRFZmw6Okluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRvRnJvbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxlYXNlRnJvbnRl
bmRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9y
RmlsZXNQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdz
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRk
ZW5QYW5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6
OmJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGVzdHJveUlu
c3BlY3RvcldpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNsaWVudEVmbCk6
CisgICAgICAgIChJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3RvckNsaWVudCk6
CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25l
dyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAgICAgICAoZXdr
X3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisK
IDIwMTItMDUtMzAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXSBFRkwncyBEUlQgc2hvdWxkIHByaW50IHRoZSBudW1iZXIgb2Yg
TWVzc2FnZVBvcnRzIGZvciBuZXcgZWFjaCBuZXcgaW50ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCBhNjMwYmFjYzU5MzNjOWM4ZTdlMjE3YmU0ODUzYjg0ZGVkMjE0ODIxLi40ZjFhYjk3
ODMyZTQ1ZDU3ZTNiNGYyMzFkYWQ5ZDRlOWI1YWE3ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTI4NSwzICsyODUsMzYgQEAgSU5TVEFMTChGSUxFUyAke0VXZWJLaXRfSEVBREVSU30K
IAogSU5TVEFMTChGSUxFUyAke1dlYktpdF9USEVNRX0KICAgICAgICAgREVTVElOQVRJT04gJHtE
QVRBX0lOU1RBTExfRElSfS90aGVtZXMpCisKK0lGIChFTkFCTEVfSU5TUEVDVE9SKQorICAgIEZJ
TEUoR0xPQiBXRUJfSU5TUEVDVE9SX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9u
dC1lbmQvKi5qcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVf
RElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouY3NzIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1lbmQvKi5odG1sIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L0VuZ2xpc2gubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yQmFja2VuZENvbW1hbmRz
LmpzIikKKworICAgIEZJTEUoR0xPQiBXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RBVEEgIiR7V0VC
Q09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1lbmQvVWdsaWZ5SlMvKi5qcyIpCisKKyAgICBGSUxF
KEdMT0IgV0VCX0lOU1BFQ1RPUl9JTUFHRVNfREFUQSAiJHtXRUJDT1JFX0RJUn0vaW5zcGVjdG9y
L2Zyb250LWVuZC9JbWFnZXMvKi5wbmciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VzLyouZ2lm
IikKKworICAgIFNFVChXRUJfSU5TUEVDVE9SX0RJUiAke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktp
dC9lZmwvd2ViaW5zcGVjdG9yKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RJUiAk
e0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC9lZmwvd2ViaW5zcGVjdG9yL1VnbGlmeUpTKQorICAg
IFNFVChXRUJfSU5TUEVDVE9SX0lNQUdFU19ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQv
ZWZsL3dlYmluc3BlY3Rvci9JbWFnZXMpCisKKyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5T
UEVDVE9SX0RJUj0iJHtXRUJfSU5TUEVDVE9SX0RJUn0iKQorCisgICAgRklMRShDT1BZICR7V0VC
X0lOU1BFQ1RPUl9EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQRUNUT1JfRElSfSkKKyAgICBG
SUxFKENPUFkgJHtXRUJfSU5TUEVDVE9SX1VHTElGWUpTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VC
X0lOU1BFQ1RPUl9VR0xJRllKU19ESVJ9KQorICAgIEZJTEUoQ09QWSAke1dFQl9JTlNQRUNUT1Jf
SU1BR0VTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9JTUFHRVNfRElSfSkKKwor
ICAgIFNFVChXRUJfSU5TUEVDVE9SX0lOU1RBTExfRElSICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9
LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5zcGVjdG9yKQorICAgIFNFVChXRUJfSU5TUEVDVE9S
X0lOU1RBTExfVUdMSUZZSlNfRElSICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNU
QUxMX0RJUn0vd2ViaW5zcGVjdG9yL1VnbGlmeUpTKQorICAgIFNFVChXRUJfSU5TUEVDVE9SX0lO
U1RBTExfSU1BR0VTX0RJUiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9E
SVJ9L3dlYmluc3BlY3Rvci9JbWFnZXMpCisKKyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5T
UEVDVE9SX0lOU1RBTExfRElSPSIke1dFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVJ9IikKKworICAg
IElOU1RBTEwoRklMRVMgJHtXRUJfSU5TUEVDVE9SX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lO
U1BFQ1RPUl9JTlNUQUxMX0RJUn0pCisgICAgSU5TVEFMTChGSUxFUyAke1dFQl9JTlNQRUNUT1Jf
VUdMSUZZSlNfREFUQX0gREVTVElOQVRJT04gJHtXRUJfSU5TUEVDVE9SX0lOU1RBTExfVUdMSUZZ
SlNfRElSfSkKKyAgICBJTlNUQUxMKEZJTEVTICR7V0VCX0lOU1BFQ1RPUl9JTUFHRVNfREFUQX0g
REVTVElOQVRJT04gJHtXRUJfSU5TUEVDVE9SX0lOU1RBTExfSU1BR0VTX0RJUn0pCitFTkRJRiAo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEVmbC5jcHAKaW5kZXggN2UyOTc1OGJkZDExNzE5NGI1Mjg0ZWU1Y2RiOTQ3OTgxNzA4
Zjg5NS4uZjlkOGNiYmQ3YWE5ZTRiNzg4MmJiYzY0MzUwYjZjYzllMzI1OGJmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRF
ZmwuY3BwCkBAIC0yMSwzMSArMjEsOTYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKIAorI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworI2luY2x1ZGUgImV3a192aWV3X3ByaXZh
dGUuaCIKKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3ko
dm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCit7
CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50
ID0gc3RhdGljX2Nhc3Q8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7Cisg
ICAgaWYgKGluc3BlY3RvckZyb250ZW5kQ2xpZW50KQorICAgICAgICBpbnNwZWN0b3JGcm9udGVu
ZENsaWVudC0+ZGVzdHJveUluc3BlY3RvcldpbmRvdyh0cnVlKTsKK30KKworY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbCA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpTZXR0aW5ncyB7CitwdWJsaWM6CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHko
Y29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9w
ZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIH0KK307CisjZW5kaWYKKworSW5zcGVjdG9yQ2xp
ZW50RWZsOjpJbnNwZWN0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqIHdlYlZpZXcpCisgICAgOiBt
X2luc3BlY3RlZFZpZXcod2ViVmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldygwKQorICAgICwg
bV9mcm9udGVuZENsaWVudCgwKQoreworfQorCitJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0
b3JDbGllbnRFZmwoKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKG1fZnJvbnRl
bmRDbGllbnQpIHsKKyAgICAgICAgbV9mcm9udGVuZENsaWVudC0+ZGlzY29ubmVjdEluc3BlY3Rv
ckNsaWVudCgpOworICAgICAgICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsKKyAgICB9CisjZW5kaWYK
K30KKwogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7Cisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBjbG9zZUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAg
ZGVsZXRlIHRoaXM7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6Om9wZW5J
bnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVyKikKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRXZhc19PYmplY3QqIGluc3BlY3Rv
clZpZXcgPSAwOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0
ZWRWaWV3LCAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiwgJmluc3BlY3RvclZpZXcpOworICAgIGlm
ICghaW5zcGVjdG9yVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3
ID0gaW5zcGVjdG9yVmlldzsKKworICAgIFN0cmluZyBpbnNwZWN0b3JVcmkgPSBpbnNwZWN0b3JG
aWxlc1BhdGgoKTsKKyAgICBld2tfdmlld191cmlfc2V0KG1faW5zcGVjdG9yVmlldywgaW5zcGVj
dG9yVXJpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50RWZsPiBmcm9udGVuZENsaWVudCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENs
aWVudEVmbChtX2luc3BlY3RlZFZpZXcsIG1faW5zcGVjdG9yVmlldywgdGhpcykpOworICAgIG1f
ZnJvbnRlbmRDbGllbnQgPSBmcm9udGVuZENsaWVudC5nZXQoKTsKKworICAgIEluc3BlY3RvckNv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RvclZp
ZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7CisgICAgY29udHJvbGxlci0+c2V0SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQoZnJvbnRlbmRDbGllbnQucmVsZWFzZSgpKTsKKyNlbmRpZgogfQogCiB2
b2lkIEluc3BlY3RvckNsaWVudEVmbDo6Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpCiB7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChtX2Zyb250
ZW5kQ2xpZW50KQorICAgICAgICBtX2Zyb250ZW5kQ2xpZW50LT5kZXN0cm95SW5zcGVjdG9yV2lu
ZG93KGZhbHNlKTsKKyNlbmRpZgogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdG
cm9udGVuZFRvRnJvbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBtX2Zyb250ZW5kQ2xpZW50LT5icmluZ1RvRnJvbnQoKTsKKyNlbmRpZgog
fQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlnaGxpZ2h0KCkKQEAgLTU4LDIxICsxMjMs
MTA2IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWRlSGlnaGxpZ2h0KCkKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cG9wdWxhdGVTZXR0
aW5nKGNvbnN0IFN0cmluZyYsIFN0cmluZyopCitib29sIEluc3BlY3RvckNsaWVudEVmbDo6c2Vu
ZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIFBhZ2UqIGZyb250ZW5kUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdl
KG1faW5zcGVjdG9yVmlldyk7CisgICAgcmV0dXJuIGRvRGlzcGF0Y2hNZXNzYWdlT25Gcm9udGVu
ZFBhZ2UoZnJvbnRlbmRQYWdlLCBtZXNzYWdlKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCit9CisKK3ZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxlYXNlRnJvbnRlbmRQYWdl
KCkKK3sKKyAgICBtX2luc3BlY3RvclZpZXcgPSAwOworICAgIG1fZnJvbnRlbmRDbGllbnQgPSAw
OworfQorCitTdHJpbmcgSW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JGaWxlc1BhdGgoKQor
eworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgU3RyaW5nIGluc3BlY3RvckZpbGVzUGF0aCA9
IG1ha2VTdHJpbmcoImZpbGU6Ly8iLCBXRUJfSU5TUEVDVE9SX0lOU1RBTExfRElSLCAiL2luc3Bl
Y3Rvci5odG1sIik7CisgICAgaWYgKGFjY2VzcyhpbnNwZWN0b3JGaWxlc1BhdGgudXRmOCgpLmRh
dGEoKSwgUl9PSykpIC8vIE9uIHN1Y2Nlc3MsIHplcm8gaXMgcmV0dXJuZWQKKyAgICAgICAgaW5z
cGVjdG9yRmlsZXNQYXRoID0gbWFrZVN0cmluZygiZmlsZTovLyIsIFdFQl9JTlNQRUNUT1JfRElS
LCAiL2luc3BlY3Rvci5odG1sIik7CisKKyAgICByZXR1cm4gaW5zcGVjdG9yRmlsZXNQYXRoOwor
I2Vsc2UKKyAgICByZXR1cm4gU3RyaW5nKCk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCitJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwoRXZhc19PYmplY3QqIGluc3BlY3RlZFZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JW
aWV3LCBJbnNwZWN0b3JDbGllbnRFZmwqIGluc3BlY3RvckNsaWVudCkKKyAgICA6IEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwoRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoaW5zcGVjdGVkVmlldykt
Pmluc3BlY3RvckNvbnRyb2xsZXIoKSwgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoaW5zcGVjdG9yVmll
dyksIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsKCkpKQorICAgICwg
bV9pbnNwZWN0ZWRWaWV3KGluc3BlY3RlZFZpZXcpCisgICAgLCBtX2luc3BlY3RvclZpZXcoaW5z
cGVjdG9yVmlldykKKyAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGluc3BlY3RvckNsaWVudCkKK3sK
KyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobV9pbnNwZWN0b3JWaWV3LCAiaW5z
cGVjdG9yLHZpZXcsZGVzdHJveSIsIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3ksIHRoaXMpOwor
fQorCitJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsKCkKK3sKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19kZWwobV9pbnNwZWN0b3JW
aWV3LCAiaW5zcGVjdG9yLHZpZXcsZGVzdHJveSIsIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kp
OworCisgICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50KSB7CisgICAgICAgIG1faW5zcGVjdG9yQ2xp
ZW50LT5yZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50ID0g
MDsKKyAgICB9Cit9CisKK1N0cmluZyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6bG9jYWxp
emVkU3RyaW5nc1VSTCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6aGlkZGVuUGFu
ZWxzKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OnN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKQordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YnJpbmdUb0Zy
b250KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIEluc3BlY3RvckNsaWVu
dEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpCit2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsOjpjbG9zZVdpbmRvdygpCit7CisgICAgZGVzdHJveUluc3BlY3Rv
cldpbmRvdyh0cnVlKTsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6aW5z
cGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
OjphdHRhY2hXaW5kb3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRldGFjaFdpbmRvdygpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6c2V0QXR0YWNo
ZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyhi
b29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpCit7CisgICAgaWYgKG5vdGlmeUluc3BlY3Rv
ckNvbnRyb2xsZXIpCisgICAgICAgIEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1faW5zcGVjdGVkVmll
dyktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlzY29ubmVjdEZyb250ZW5kKCk7CisKKyAgICBp
ZiAobV9pbnNwZWN0b3JDbGllbnQpCisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNl
RnJvbnRlbmRQYWdlKCk7CisKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1f
aW5zcGVjdGVkVmlldywgImluc3BlY3Rvcix2aWV3LGNsb3NlIiwgbV9pbnNwZWN0b3JWaWV3KTsK
K30KKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JDbGllbnRFZmwuaAppbmRleCBmOTJlOTRkZGE4MTNjNWI3MjllMDc5ZjNmNjcx
YjM1OGUxZmY2OWIxLi5iNmEwNzhlNzI1ODdjOTMzZDVlM2E1MjYwN2FhMTJhYWE0ZDczNTE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRFZmwuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJ
bnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAg
UHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMTMgKzMzLDE5
IEBACiAjZGVmaW5lIEluc3BlY3RvckNsaWVudEVmbF9oCiAKICNpbmNsdWRlICJJbnNwZWN0b3JD
bGllbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgiCisjaW5j
bHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOwogY2xhc3MgUGFnZTsKIAot
Y2xhc3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckNsaWVu
dCB7CitjbGFzcyBJbnNwZWN0b3JDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50IHsK
IHB1YmxpYzoKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqKTsKKyAgICB+SW5z
cGVjdG9yQ2xpZW50RWZsKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVzdHJveWVk
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgb3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNv
bnRyb2xsZXIqKTsKQEAgLTQ5LDEwICs1NSw0MyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGhpZ2hsaWdodCgpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcG9wdWxhdGVTZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcqIHZh
bHVlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcmVTZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKLQogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJv
bnRlbmQoY29uc3QgU3RyaW5nJik7CisKKyAgICB2b2lkIHJlbGVhc2VGcm9udGVuZFBhZ2UoKTsK
KyAgICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRoKCk7CisKK3ByaXZhdGU6CisgICAgRXZhc19P
YmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNwZWN0b3JWaWV3
OworICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBtX2Zyb250ZW5kQ2xpZW50OworfTsK
KworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbCB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRF
ZmwoRXZhc19PYmplY3QqLCBFdmFzX09iamVjdCosIEluc3BlY3RvckNsaWVudEVmbCopOworICAg
IH5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCgpOworCisgICAgdmlydHVhbCBTdHJpbmcgbG9j
YWxpemVkU3RyaW5nc1VSTCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGhpZGRlblBhbmVscygpOwor
CisgICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpOworICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZVdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3Qg
U3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCk7CisgICAgdmlydHVh
bCB2b2lkIGRldGFjaFdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2lu
ZG93SGVpZ2h0KHVuc2lnbmVkKTsKKworICAgIHZvaWQgZGlzY29ubmVjdEluc3BlY3RvckNsaWVu
dCgpIHsgbV9pbnNwZWN0b3JDbGllbnQgPSAwOyB9CisgICAgdm9pZCBkZXN0cm95SW5zcGVjdG9y
V2luZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7CisKK3ByaXZhdGU6CisgICAg
RXZhc19PYmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNwZWN0
b3JWaWV3OworICAgIEluc3BlY3RvckNsaWVudEVmbCogbV9pbnNwZWN0b3JDbGllbnQ7CisKIH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDFlYzVmOTc2NzljZThmZTY4
Y2RlY2VjZDc2ZjI3M2E2YmNiY2JkZjAuLmE1MzM0NWI4NzFjMjM1NjcwMDAzZGE4OTZkOTkzNTFk
MDg0ODg5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDEsNiArNDEsNyBA
QAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC03MjIsNyArNzIzLDcgQEAgc3RhdGljIEV3
a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSkKICAgICBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRp
dG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYp
OwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVm
bDsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50RWZsOworICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJD
b3JlOjpJbnNwZWN0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKIAogICAgIHByaXYtPnBh
Z2UgPSBhZG9wdFB0cihuZXcgV2ViQ29yZTo6UGFnZShwYWdlQ2xpZW50cykpOwogCkBAIC00MzYz
LDYgKzQzNjQsMjYgQEAgdm9pZCBld2tfdmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRf
ZGVzY3JpcHRpb25zX3NldChFdmFzX09iamVjdCAqZXdrVmlldywKICNlbmRpZgogfQogCit2b2lk
IGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
K3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2KTsKKworICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+
c2hvdygpOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tf
VklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYtPnBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2xvc2UoKTsKKyNlbmRpZgorfQorCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBld2tfdmlld19hY2NlbGVyYXRlZF9jb21w
b3NpdGluZ19vYmplY3RfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX05hdGl2ZV9T
dXJmYWNlKiBuYXRpdmVTdXJmYWNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBjYzY1MDM4MTIxNWUxYmQxOGZjYWNkMDM4OWUz
Zjk0MWI5ZDdlYmQ1Li4yOWI1YTI2MjViMTI3ZjkyODBhNTVlYzM2Y2ZjZDkzZWRhZWQ0NWU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMjcyMCw2ICsyNzIwLDIwIEBAIEVBUEkgRWlu
YV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX2dldChjb25zdCBFdmFzX09iamVj
dCAqbyk7CiAgKi8KIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlv
X3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJsZSk7CiAKKy8qKgorICogU2hvdyB0
aGUgd2ViIGluc3BlY3RvciB2aWV3IHRvIGRlYnVnIGEgd2ViIHBhZ2UuCisgKgorICogQHBhcmFt
IG8gVGhlIHZpZXcgdG8gc2hvdyB0aGUgd2ViIGluc3BlY3Rvci4KKyAqLworRUFQSSB2b2lkIGV3
a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgor
ICogQ2xvc2UgdGhlIHdlYiBpbnNwZWN0b3IgdmlldworICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3
IHRvIGNsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yLgorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVjdCAqbyk7CisKICNpZmRlZiBfX2NwbHVz
cGx1cwogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148490</attachid>
            <date>2012-06-19 20:02:23 -0700</date>
            <delta_ts>2012-06-20 20:14:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120620120223.patch</filename>
            <type>text/plain</type>
            <size>17913</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjODM4ODU2NzEzYmJlMjFi
ZWVhYmYwYzg1NzRmZTEzMjA2NmMzOTIuLmE0YTgxOGExMWQ2MTMzZWUwZmM1MmU2MjQwOWRkYjQ2
OGIyNjUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMTggIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA2LTEzICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9y
Y2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgTUVESUFfU1RS
RUFNIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1MmUxMGYwZmQ1ZDZmZDQ5YzUxMWY4
OWIzZmM2ZDcyYWVhMDI5NzA5Li5jOTNlNGQxYzc5NGZiNjlmZTJhZjVhNmZmNGNhMzNjZTBlNThm
ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMDYtMTggIFNlb2tq
dSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdl
YiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rv
ci4KKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsIGFuZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbAorICAgICAgICBmb3IgdXNpbmcgdGhlIFdlYiBJbnNwZWN0
b3IgaW4gV2ViS2l0LUVGTCB3aXRoIG5ldyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZFNldHRpbmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnRFZmw6Okluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxl
YXNlRnJvbnRlbmRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6
aW5zcGVjdG9yRmlsZXNQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6
ZWRTdHJpbmdzVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpoaWRkZW5QYW5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNs
aWVudEVmbCk6CisgICAgICAgIChJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3Rv
ckNsaWVudCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19wcml2X25ldyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAg
ICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192
aWV3Lmg6CisKIDIwMTItMDYtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBk
b2VzIG5vdCBzdXBwb3J0IHRpdGxlVGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMmRlZjg2OTg3YjJiN2NjYTE5YTQ3ZDhiNzVjNjdjZDE1NWRiYzUxOS4uMGFjNTU3OTZi
ZWMzNGJiZjg1ZmViZTA5NWFhMDRhNTVlMjhiZDlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0yODYsMyArMjg2LDM2IEBAIElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAK
IElOU1RBTEwoRklMRVMgJHtXZWJLaXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFU
QV9JTlNUQUxMX0RJUn0vdGhlbWVzKQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBGSUxF
KEdMT0IgV0VCX0lOU1BFQ1RPUl9EQVRBICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQt
ZW5kLyouanMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtXRUJDT1JFX0RJ
Un0vaW5zcGVjdG9yL2Zyb250LWVuZC8qLmNzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouaHRtbCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5q
cyIpCisKKyAgICBGSUxFKEdMT0IgV0VCX0lOU1BFQ1RPUl9VR0xJRllKU19EQVRBICIke1dFQkNP
UkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VnbGlmeUpTLyouanMiKQorCisgICAgRklMRShH
TE9CIFdFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9m
cm9udC1lbmQvSW1hZ2VzLyoucG5nIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy8qLmdpZiIp
CisKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQv
ZWZsL3dlYmluc3BlY3RvcikKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9VR0xJRllKU19ESVIgJHtD
TUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3BlY3Rvci9VZ2xpZnlKUykKKyAgICBT
RVQoV0VCX0lOU1BFQ1RPUl9JTUFHRVNfRElSICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0L2Vm
bC93ZWJpbnNwZWN0b3IvSW1hZ2VzKQorCisgICAgQUREX0RFRklOSVRJT05TKC1EV0VCX0lOU1BF
Q1RPUl9ESVI9IiR7V0VCX0lOU1BFQ1RPUl9ESVJ9IikKKworICAgIEZJTEUoQ09QWSAke1dFQl9J
TlNQRUNUT1JfREFUQX0gREVTVElOQVRJT04gJHtXRUJfSU5TUEVDVE9SX0RJUn0pCisgICAgRklM
RShDT1BZICR7V0VCX0lOU1BFQ1RPUl9VR0xJRllKU19EQVRBfSBERVNUSU5BVElPTiAke1dFQl9J
TlNQRUNUT1JfVUdMSUZZSlNfRElSfSkKKyAgICBGSUxFKENPUFkgJHtXRUJfSU5TUEVDVE9SX0lN
QUdFU19EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RJUn0pCisKKyAg
ICBTRVQoV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8k
e0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmluc3BlY3RvcikKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9J
TlNUQUxMX1VHTElGWUpTX0RJUiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFM
TF9ESVJ9L3dlYmluc3BlY3Rvci9VZ2xpZnlKUykKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9JTlNU
QUxMX0lNQUdFU19ESVIgJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElS
fS93ZWJpbnNwZWN0b3IvSW1hZ2VzKQorCisgICAgQUREX0RFRklOSVRJT05TKC1EV0VCX0lOU1BF
Q1RPUl9JTlNUQUxMX0RJUj0iJHtXRUJfSU5TUEVDVE9SX0lOU1RBTExfRElSfSIpCisKKyAgICBJ
TlNUQUxMKEZJTEVTICR7V0VCX0lOU1BFQ1RPUl9EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQ
RUNUT1JfSU5TVEFMTF9ESVJ9KQorICAgIElOU1RBTEwoRklMRVMgJHtXRUJfSU5TUEVDVE9SX1VH
TElGWUpTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9JTlNUQUxMX1VHTElGWUpT
X0RJUn0pCisgICAgSU5TVEFMTChGSUxFUyAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEF9IERF
U1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0lNQUdFU19ESVJ9KQorRU5ESUYgKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRFZmwuY3BwCmluZGV4IDdlMjk3NThiZGQxMTcxOTRiNTI4NGVlNWNkYjk0Nzk4MTcwOGY4
OTUuLmY5ZDhjYmJkN2FhOWU0Yjc4ODJiYmM2NDM1MGI2Y2M5ZTMyNThiZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmNwcApAQCAtMjEsMzEgKzIxLDk2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ2xpZW50RWZsLmgiCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlICJld2tfdmlld19wcml2YXRl
LmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVO
QUJMRShJTlNQRUNUT1IpCitzdGF0aWMgdm9pZCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZv
aWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRJbmZvKQorewor
ICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCA9
IHN0YXRpY19jYXN0PEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKj4odXNlckRhdGEpOworICAg
IGlmIChpbnNwZWN0b3JGcm9udGVuZENsaWVudCkKKyAgICAgICAgaW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3codHJ1ZSk7Cit9CisKK2NsYXNzIEluc3BlY3Rv
ckZyb250ZW5kU2V0dGluZ3NFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6U2V0dGluZ3MgeworcHVibGljOgorICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNv
bnN0IFN0cmluZyYgbmFtZSkKKyAgICB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVy
dHkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9Cit9OworI2VuZGlmCisKK0luc3BlY3RvckNsaWVu
dEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiB3ZWJWaWV3KQorICAgIDogbV9p
bnNwZWN0ZWRWaWV3KHdlYlZpZXcpCisgICAgLCBtX2luc3BlY3RvclZpZXcoMCkKKyAgICAsIG1f
ZnJvbnRlbmRDbGllbnQoMCkKK3sKK30KKworSW5zcGVjdG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9y
Q2xpZW50RWZsKCkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChtX2Zyb250ZW5k
Q2xpZW50KSB7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc2Nvbm5lY3RJbnNwZWN0b3JD
bGllbnQoKTsKKyAgICAgICAgbV9mcm9udGVuZENsaWVudCA9IDA7CisgICAgfQorI2VuZGlmCit9
CisKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQoKQogeworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisgICAgY2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIGRl
bGV0ZSB0aGlzOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5z
cGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29udHJvbGxlciopCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JW
aWV3ID0gMDsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1faW5zcGVjdGVk
VmlldywgImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsICZpbnNwZWN0b3JWaWV3KTsKKyAgICBpZiAo
IWluc3BlY3RvclZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5zcGVjdG9yVmlldyA9
IGluc3BlY3RvclZpZXc7CisKKyAgICBTdHJpbmcgaW5zcGVjdG9yVXJpID0gaW5zcGVjdG9yRmls
ZXNQYXRoKCk7CisgICAgZXdrX3ZpZXdfdXJpX3NldChtX2luc3BlY3RvclZpZXcsIGluc3BlY3Rv
clVyaS51dGY4KCkuZGF0YSgpKTsKKworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbD4gZnJvbnRlbmRDbGllbnQgPSBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwobV9pbnNwZWN0ZWRWaWV3LCBtX2luc3BlY3RvclZpZXcsIHRoaXMpKTsKKyAgICBtX2Zy
b250ZW5kQ2xpZW50ID0gZnJvbnRlbmRDbGllbnQuZ2V0KCk7CisKKyAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBjb250cm9sbGVyID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0b3JWaWV3
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIGNvbnRyb2xsZXItPnNldEluc3BlY3RvckZy
b250ZW5kQ2xpZW50KGZyb250ZW5kQ2xpZW50LnJlbGVhc2UoKSk7CisjZW5kaWYKIH0KIAogdm9p
ZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAobV9mcm9udGVu
ZENsaWVudCkKKyAgICAgICAgbV9mcm9udGVuZENsaWVudC0+ZGVzdHJveUluc3BlY3RvcldpbmRv
dyhmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmJyaW5nRnJv
bnRlbmRUb0Zyb250KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisgICAgbV9mcm9udGVuZENsaWVudC0+YnJpbmdUb0Zyb250KCk7CisjZW5kaWYKIH0K
IAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmhpZ2hsaWdodCgpCkBAIC01OCwyMSArMTIzLDEw
NiBAQCB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlkZUhpZ2hsaWdodCgpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OnBvcHVsYXRlU2V0dGlu
Zyhjb25zdCBTdHJpbmcmLCBTdHJpbmcqKQorYm9vbCBJbnNwZWN0b3JDbGllbnRFZmw6OnNlbmRN
ZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBQYWdlKiBmcm9udGVuZFBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZSht
X2luc3BlY3RvclZpZXcpOworICAgIHJldHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQ
YWdlKGZyb250ZW5kUGFnZSwgbWVzc2FnZSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorfQorCit2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cmVsZWFzZUZyb250ZW5kUGFnZSgp
Cit7CisgICAgbV9pbnNwZWN0b3JWaWV3ID0gMDsKKyAgICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsK
K30KKworU3RyaW5nIEluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRmlsZXNQYXRoKCkKK3sK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIFN0cmluZyBpbnNwZWN0b3JGaWxlc1BhdGggPSBt
YWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUiwgIi9pbnNwZWN0
b3IuaHRtbCIpOworICAgIGlmIChhY2Nlc3MoaW5zcGVjdG9yRmlsZXNQYXRoLnV0ZjgoKS5kYXRh
KCksIFJfT0spKSAvLyBPbiBzdWNjZXNzLCB6ZXJvIGlzIHJldHVybmVkCisgICAgICAgIGluc3Bl
Y3RvckZpbGVzUGF0aCA9IG1ha2VTdHJpbmcoImZpbGU6Ly8iLCBXRUJfSU5TUEVDVE9SX0RJUiwg
Ii9pbnNwZWN0b3IuaHRtbCIpOworCisgICAgcmV0dXJuIGluc3BlY3RvckZpbGVzUGF0aDsKKyNl
bHNlCisgICAgcmV0dXJuIFN0cmluZygpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsKEV2YXNfT2JqZWN0KiBpbnNwZWN0ZWRWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG9yVmll
dywgSW5zcGVjdG9yQ2xpZW50RWZsKiBpbnNwZWN0b3JDbGllbnQpCisgICAgOiBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsKEVXS1ByaXZhdGU6OmNvcmVQYWdlKGluc3BlY3RlZFZpZXcpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCksIEVXS1ByaXZhdGU6OmNvcmVQYWdlKGluc3BlY3RvclZpZXcp
LCBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCgpKSkKKyAgICAsIG1f
aW5zcGVjdGVkVmlldyhpbnNwZWN0ZWRWaWV3KQorICAgICwgbV9pbnNwZWN0b3JWaWV3KGluc3Bl
Y3RvclZpZXcpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCit7Cisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1faW5zcGVjdG9yVmlldywgImluc3Bl
Y3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95LCB0aGlzKTsKK30K
KworSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVm
bCgpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1faW5zcGVjdG9yVmll
dywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KTsK
KworICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgeworICAgICAgICBtX2luc3BlY3RvckNsaWVu
dC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOworICAgICAgICBtX2luc3BlY3RvckNsaWVudCA9IDA7
CisgICAgfQorfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmxvY2FsaXpl
ZFN0cmluZ3NVUkwoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmhpZGRlblBhbmVs
cygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNldHRpbmcoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9u
dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDbGllbnRF
Zmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKQordm9pZCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3coKQoreworICAgIGRlc3Ryb3lJbnNwZWN0b3JX
aW5kb3codHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omluc3Bl
Y3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
YXR0YWNoV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRhY2hXaW5kb3coKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldEF0dGFjaGVk
V2luZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9v
bCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQoreworICAgIGlmIChub3RpZnlJbnNwZWN0b3JD
b250cm9sbGVyKQorICAgICAgICBFV0tQcml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RlZFZpZXcp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2Nvbm5lY3RGcm9udGVuZCgpOworCisgICAgaWYg
KG1faW5zcGVjdG9yQ2xpZW50KQorICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZy
b250ZW5kUGFnZSgpOworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX2lu
c3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjbG9zZSIsIG1faW5zcGVjdG9yVmlldyk7Cit9
CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIz
NThlMWZmNjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNhNTI2MDdhYTEyYWFhNGQ3MzUxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5z
dGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxOSBA
QAogI2RlZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2luY2x1
ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNs
YXNzIEluc3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQg
eworY2xhc3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBw
dWJsaWM6CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfkluc3Bl
Y3RvckNsaWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250
cm9sbGVyKik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBo
aWdobGlnaHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAgdmly
dHVhbCB2b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7Cisg
ICAgU3RyaW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOworCitwcml2YXRlOgorICAgIEV2YXNfT2Jq
ZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsK
KyAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogbV9mcm9udGVuZENsaWVudDsKK307CisK
K2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KEV2YXNfT2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNwZWN0b3JDbGllbnRFZmwqKTsKKyAgICB+
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2Fs
aXplZFN0cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoaWRkZW5QYW5lbHMoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VX
aW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygpOworICAgIHZpcnR1YWwg
dm9pZCBkZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQo
KSB7IG1faW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAgIHZvaWQgZGVzdHJveUluc3BlY3Rvcldp
bmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpOworCitwcml2YXRlOgorICAgIEV2
YXNfT2JqZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9y
VmlldzsKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1faW5zcGVjdG9yQ2xpZW50OworCiB9Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0MDNkYWIxMWY5MTQwNTdiYzcz
ZGM3NGRkYmJhYjI0MTQ0ZmUwYWE0Li5iY2QwMzJkYjJhODY3YTlmNjQ5MWQ4MTFhZTg3NTc1MDUw
MWM0OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNzMwLDcgKzczMSw3IEBAIHN0YXRpYyBFd2tf
Vmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEpCiAgICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmVkaXRv
ckNsaWVudCA9IG5ldyBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsK
ICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkRyYWdDbGllbnRFZmw7
Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6Okluc3BlY3Rv
ckNsaWVudEVmbDsKKyAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29y
ZTo6SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAKICAgICBwcml2LT5wYWdl
ID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFnZUNsaWVudHMpKTsKIApAQCAtNDM0Miw2
ICs0MzQzLDI2IEBAIHZvaWQgZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxheV90ZXh0X2Rl
c2NyaXB0aW9uc19zZXQoRXZhc19PYmplY3QgKmV3a1ZpZXcsCiAjZW5kaWYKIH0KIAordm9pZCBl
d2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7
CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdik7CisKKyAgICBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNo
b3coKTsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBwcml2LT5wYWdl
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmNsb3NlKCk7CisjZW5kaWYKK30KKwogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9z
aXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19OYXRpdmVfU3Vy
ZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggMTNkMmNkMjA0YTI1MGY4NDQyYzhjMjc2NjZlYWU5
NjcwZWE1YzUxMS4uOTkzNjA0MDJjNjE0ZmJmZmU5NzFmYzA2MjA3Mzk4MDBhY2FlNmQ4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTI2MzYsNiArMjYzNiwzMiBAQCBFQVBJIEVpbmFf
Qm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3Qg
Km8pOwogICovCiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19z
ZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFibGUpOwogCisvKioKKyAqIFNob3cgdGhl
IHdlYiBpbnNwZWN0b3IgdG8gZGVidWcgYSB3ZWIgcGFnZS4KKyAqCisgKiBUaGUgZm9sbG93aW5n
IHNpZ25hbHMgYXJlIGVtaWl0ZWQuCisgKiAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiBhbmQgImlu
c3BlY3Rvcix2aWV3LGNsb3NlIgorICogVGhlIGZpcnN0IG9uZSB3aWxsIGJlIGNhbGxlZCB0byBy
ZXF1ZXN0IHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yIG9uIHZpZXcgd2hpY2ggd2lsbCBiZSBp
bnNwZWN0ZWQuCisgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBjcmVhdGUgdGhlIHZpZXcgZm9yIHdl
YiBpbnNwZWN0b3IgYW5kIHJldHVybiB0aGUgcG9pbnRlciBvZiB0aGUgdmlldyB3aXRoIHRoaXJk
IGFyZ3VtZW50LgorICogVGhlIHNlY29uZCBvbmUgd2lsbCBiZSBjYWxsZWQgdG8gY2xvc2UgdGhl
IHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24gdmlldyBoYXZpbmcgdGhlIHdlYiBpbnNwZWN0b3Ig
YWZ0ZXIgZGlzY29ubmVjdGluZyBmcm9udGVuZAorICogVGhpcyBjYWxsYmFjayBzaG91bGQgcmVt
b3ZlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIFdoZW4gdGhlIHZpZXcgaGF2
aW5nIHRoZSB3ZWIgaW5zcGVjdG9yIGlzIHJlbW92ZWQsCisgKiBwbGVhc2UgZW1pdCB0aGUgImlu
c3BlY3Rvcix2aWV3LGRlc3Ryb3kiIHNpZ25hbCBvbiB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgor
ICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHNob3cgdGhlIHdlYiBpbnNwZWN0b3IuCisgKi8K
K0VBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3Qg
Km8pOworCisvKioKKyAqIENsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yIHZpZXcKKyAqCisgKiBAcGFy
YW0gbyBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2ViIGluc3BlY3Rvci4KKyAqCisgKiBAc2VlIGV3
a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdygpCisgKi8KK0VBUEkgdm9pZCBld2tfdmlld193ZWJf
aW5zcGVjdG9yX2Nsb3NlKGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148718</attachid>
            <date>2012-06-20 20:14:42 -0700</date>
            <delta_ts>2012-06-28 22:13:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120621121443.patch</filename>
            <type>text/plain</type>
            <size>18389</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjODM4ODU2NzEzYmJlMjFi
ZWVhYmYwYzg1NzRmZTEzMjA2NmMzOTIuLmE0YTgxOGExMWQ2MTMzZWUwZmM1MmU2MjQwOWRkYjQ2
OGIyNjUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMTggIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA2LTEzICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9y
Y2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgTUVESUFfU1RS
RUFNIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1MmUxMGYwZmQ1ZDZmZDQ5YzUxMWY4
OWIzZmM2ZDcyYWVhMDI5NzA5Li5jOTNlNGQxYzc5NGZiNjlmZTJhZjVhNmZmNGNhMzNjZTBlNThm
ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMDYtMTggIFNlb2tq
dSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdl
YiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rv
ci4KKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsIGFuZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbAorICAgICAgICBmb3IgdXNpbmcgdGhlIFdlYiBJbnNwZWN0
b3IgaW4gV2ViS2l0LUVGTCB3aXRoIG5ldyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZFNldHRpbmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnRFZmw6Okluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxl
YXNlRnJvbnRlbmRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6
aW5zcGVjdG9yRmlsZXNQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6
ZWRTdHJpbmdzVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpoaWRkZW5QYW5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNs
aWVudEVmbCk6CisgICAgICAgIChJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3Rv
ckNsaWVudCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19wcml2X25ldyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAg
ICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192
aWV3Lmg6CisKIDIwMTItMDYtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBk
b2VzIG5vdCBzdXBwb3J0IHRpdGxlVGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMmRlZjg2OTg3YjJiN2NjYTE5YTQ3ZDhiNzVjNjdjZDE1NWRiYzUxOS4uMGFjNTU3OTZi
ZWMzNGJiZjg1ZmViZTA5NWFhMDRhNTVlMjhiZDlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0yODYsMyArMjg2LDM2IEBAIElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAK
IElOU1RBTEwoRklMRVMgJHtXZWJLaXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFU
QV9JTlNUQUxMX0RJUn0vdGhlbWVzKQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBGSUxF
KEdMT0IgV0VCX0lOU1BFQ1RPUl9EQVRBICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQt
ZW5kLyouanMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHtXRUJDT1JFX0RJ
Un0vaW5zcGVjdG9yL2Zyb250LWVuZC8qLmNzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kLyouaHRtbCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
JHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5q
cyIpCisKKyAgICBGSUxFKEdMT0IgV0VCX0lOU1BFQ1RPUl9VR0xJRllKU19EQVRBICIke1dFQkNP
UkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VnbGlmeUpTLyouanMiKQorCisgICAgRklMRShH
TE9CIFdFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEEgIiR7V0VCQ09SRV9ESVJ9L2luc3BlY3Rvci9m
cm9udC1lbmQvSW1hZ2VzLyoucG5nIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy8qLmdpZiIp
CisKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQv
ZWZsL3dlYmluc3BlY3RvcikKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9VR0xJRllKU19ESVIgJHtD
TUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3BlY3Rvci9VZ2xpZnlKUykKKyAgICBT
RVQoV0VCX0lOU1BFQ1RPUl9JTUFHRVNfRElSICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0L2Vm
bC93ZWJpbnNwZWN0b3IvSW1hZ2VzKQorCisgICAgQUREX0RFRklOSVRJT05TKC1EV0VCX0lOU1BF
Q1RPUl9ESVI9IiR7V0VCX0lOU1BFQ1RPUl9ESVJ9IikKKworICAgIEZJTEUoQ09QWSAke1dFQl9J
TlNQRUNUT1JfREFUQX0gREVTVElOQVRJT04gJHtXRUJfSU5TUEVDVE9SX0RJUn0pCisgICAgRklM
RShDT1BZICR7V0VCX0lOU1BFQ1RPUl9VR0xJRllKU19EQVRBfSBERVNUSU5BVElPTiAke1dFQl9J
TlNQRUNUT1JfVUdMSUZZSlNfRElSfSkKKyAgICBGSUxFKENPUFkgJHtXRUJfSU5TUEVDVE9SX0lN
QUdFU19EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RJUn0pCisKKyAg
ICBTRVQoV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8k
e0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmluc3BlY3RvcikKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9J
TlNUQUxMX1VHTElGWUpTX0RJUiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFM
TF9ESVJ9L3dlYmluc3BlY3Rvci9VZ2xpZnlKUykKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9JTlNU
QUxMX0lNQUdFU19ESVIgJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vJHtEQVRBX0lOU1RBTExfRElS
fS93ZWJpbnNwZWN0b3IvSW1hZ2VzKQorCisgICAgQUREX0RFRklOSVRJT05TKC1EV0VCX0lOU1BF
Q1RPUl9JTlNUQUxMX0RJUj0iJHtXRUJfSU5TUEVDVE9SX0lOU1RBTExfRElSfSIpCisKKyAgICBJ
TlNUQUxMKEZJTEVTICR7V0VCX0lOU1BFQ1RPUl9EQVRBfSBERVNUSU5BVElPTiAke1dFQl9JTlNQ
RUNUT1JfSU5TVEFMTF9ESVJ9KQorICAgIElOU1RBTEwoRklMRVMgJHtXRUJfSU5TUEVDVE9SX1VH
TElGWUpTX0RBVEF9IERFU1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9JTlNUQUxMX1VHTElGWUpT
X0RJUn0pCisgICAgSU5TVEFMTChGSUxFUyAke1dFQl9JTlNQRUNUT1JfSU1BR0VTX0RBVEF9IERF
U1RJTkFUSU9OICR7V0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0lNQUdFU19ESVJ9KQorRU5ESUYgKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRFZmwuY3BwCmluZGV4IDdlMjk3NThiZGQxMTcxOTRiNTI4NGVlNWNkYjk0Nzk4MTcwOGY4
OTUuLmY5ZDhjYmJkN2FhOWU0Yjc4ODJiYmM2NDM1MGI2Y2M5ZTMyNThiZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmNwcApAQCAtMjEsMzEgKzIxLDk2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ2xpZW50RWZsLmgiCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlICJld2tfdmlld19wcml2YXRl
LmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVO
QUJMRShJTlNQRUNUT1IpCitzdGF0aWMgdm9pZCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KHZv
aWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRJbmZvKQorewor
ICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCA9
IHN0YXRpY19jYXN0PEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKj4odXNlckRhdGEpOworICAg
IGlmIChpbnNwZWN0b3JGcm9udGVuZENsaWVudCkKKyAgICAgICAgaW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3codHJ1ZSk7Cit9CisKK2NsYXNzIEluc3BlY3Rv
ckZyb250ZW5kU2V0dGluZ3NFZmwgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6U2V0dGluZ3MgeworcHVibGljOgorICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5KGNv
bnN0IFN0cmluZyYgbmFtZSkKKyAgICB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVy
dHkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB9Cit9OworI2VuZGlmCisKK0luc3BlY3RvckNsaWVu
dEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiB3ZWJWaWV3KQorICAgIDogbV9p
bnNwZWN0ZWRWaWV3KHdlYlZpZXcpCisgICAgLCBtX2luc3BlY3RvclZpZXcoMCkKKyAgICAsIG1f
ZnJvbnRlbmRDbGllbnQoMCkKK3sKK30KKworSW5zcGVjdG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9y
Q2xpZW50RWZsKCkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChtX2Zyb250ZW5k
Q2xpZW50KSB7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc2Nvbm5lY3RJbnNwZWN0b3JD
bGllbnQoKTsKKyAgICAgICAgbV9mcm9udGVuZENsaWVudCA9IDA7CisgICAgfQorI2VuZGlmCit9
CisKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQoKQogeworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisgICAgY2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIGRl
bGV0ZSB0aGlzOworI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5z
cGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29udHJvbGxlciopCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JW
aWV3ID0gMDsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1faW5zcGVjdGVk
VmlldywgImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsICZpbnNwZWN0b3JWaWV3KTsKKyAgICBpZiAo
IWluc3BlY3RvclZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5zcGVjdG9yVmlldyA9
IGluc3BlY3RvclZpZXc7CisKKyAgICBTdHJpbmcgaW5zcGVjdG9yVXJpID0gaW5zcGVjdG9yRmls
ZXNQYXRoKCk7CisgICAgZXdrX3ZpZXdfdXJpX3NldChtX2luc3BlY3RvclZpZXcsIGluc3BlY3Rv
clVyaS51dGY4KCkuZGF0YSgpKTsKKworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbD4gZnJvbnRlbmRDbGllbnQgPSBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwobV9pbnNwZWN0ZWRWaWV3LCBtX2luc3BlY3RvclZpZXcsIHRoaXMpKTsKKyAgICBtX2Zy
b250ZW5kQ2xpZW50ID0gZnJvbnRlbmRDbGllbnQuZ2V0KCk7CisKKyAgICBJbnNwZWN0b3JDb250
cm9sbGVyKiBjb250cm9sbGVyID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0b3JWaWV3
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpOworICAgIGNvbnRyb2xsZXItPnNldEluc3BlY3RvckZy
b250ZW5kQ2xpZW50KGZyb250ZW5kQ2xpZW50LnJlbGVhc2UoKSk7CisjZW5kaWYKIH0KIAogdm9p
ZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAobV9mcm9udGVu
ZENsaWVudCkKKyAgICAgICAgbV9mcm9udGVuZENsaWVudC0+ZGVzdHJveUluc3BlY3RvcldpbmRv
dyhmYWxzZSk7CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmJyaW5nRnJv
bnRlbmRUb0Zyb250KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisgICAgbV9mcm9udGVuZENsaWVudC0+YnJpbmdUb0Zyb250KCk7CisjZW5kaWYKIH0K
IAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmhpZ2hsaWdodCgpCkBAIC01OCwyMSArMTIzLDEw
NiBAQCB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlkZUhpZ2hsaWdodCgpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OnBvcHVsYXRlU2V0dGlu
Zyhjb25zdCBTdHJpbmcmLCBTdHJpbmcqKQorYm9vbCBJbnNwZWN0b3JDbGllbnRFZmw6OnNlbmRN
ZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBQYWdlKiBmcm9udGVuZFBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZSht
X2luc3BlY3RvclZpZXcpOworICAgIHJldHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQ
YWdlKGZyb250ZW5kUGFnZSwgbWVzc2FnZSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorfQorCit2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cmVsZWFzZUZyb250ZW5kUGFnZSgp
Cit7CisgICAgbV9pbnNwZWN0b3JWaWV3ID0gMDsKKyAgICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsK
K30KKworU3RyaW5nIEluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRmlsZXNQYXRoKCkKK3sK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIFN0cmluZyBpbnNwZWN0b3JGaWxlc1BhdGggPSBt
YWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUiwgIi9pbnNwZWN0
b3IuaHRtbCIpOworICAgIGlmIChhY2Nlc3MoaW5zcGVjdG9yRmlsZXNQYXRoLnV0ZjgoKS5kYXRh
KCksIFJfT0spKSAvLyBPbiBzdWNjZXNzLCB6ZXJvIGlzIHJldHVybmVkCisgICAgICAgIGluc3Bl
Y3RvckZpbGVzUGF0aCA9IG1ha2VTdHJpbmcoImZpbGU6Ly8iLCBXRUJfSU5TUEVDVE9SX0RJUiwg
Ii9pbnNwZWN0b3IuaHRtbCIpOworCisgICAgcmV0dXJuIGluc3BlY3RvckZpbGVzUGF0aDsKKyNl
bHNlCisgICAgcmV0dXJuIFN0cmluZygpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsKEV2YXNfT2JqZWN0KiBpbnNwZWN0ZWRWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG9yVmll
dywgSW5zcGVjdG9yQ2xpZW50RWZsKiBpbnNwZWN0b3JDbGllbnQpCisgICAgOiBJbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsKEVXS1ByaXZhdGU6OmNvcmVQYWdlKGluc3BlY3RlZFZpZXcpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCksIEVXS1ByaXZhdGU6OmNvcmVQYWdlKGluc3BlY3RvclZpZXcp
LCBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCgpKSkKKyAgICAsIG1f
aW5zcGVjdGVkVmlldyhpbnNwZWN0ZWRWaWV3KQorICAgICwgbV9pbnNwZWN0b3JWaWV3KGluc3Bl
Y3RvclZpZXcpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCit7Cisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1faW5zcGVjdG9yVmlldywgImluc3Bl
Y3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95LCB0aGlzKTsKK30K
KworSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVm
bCgpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1faW5zcGVjdG9yVmll
dywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95KTsK
KworICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgeworICAgICAgICBtX2luc3BlY3RvckNsaWVu
dC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOworICAgICAgICBtX2luc3BlY3RvckNsaWVudCA9IDA7
CisgICAgfQorfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmxvY2FsaXpl
ZFN0cmluZ3NVUkwoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmhpZGRlblBhbmVs
cygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNldHRpbmcoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9u
dCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotYm9vbCBJbnNwZWN0b3JDbGllbnRF
Zmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKQordm9pZCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3coKQoreworICAgIGRlc3Ryb3lJbnNwZWN0b3JX
aW5kb3codHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omluc3Bl
Y3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
YXR0YWNoV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRhY2hXaW5kb3coKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldEF0dGFjaGVk
V2luZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9v
bCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQoreworICAgIGlmIChub3RpZnlJbnNwZWN0b3JD
b250cm9sbGVyKQorICAgICAgICBFV0tQcml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RlZFZpZXcp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2Nvbm5lY3RGcm9udGVuZCgpOworCisgICAgaWYg
KG1faW5zcGVjdG9yQ2xpZW50KQorICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFzZUZy
b250ZW5kUGFnZSgpOworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX2lu
c3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjbG9zZSIsIG1faW5zcGVjdG9yVmlldyk7Cit9
CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIz
NThlMWZmNjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNhNTI2MDdhYTEyYWFhNGQ3MzUxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5z
dGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFBy
b0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxOSBA
QAogI2RlZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2luY2x1
ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNs
YXNzIEluc3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQg
eworY2xhc3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBw
dWJsaWM6CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfkluc3Bl
Y3RvckNsaWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250
cm9sbGVyKik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBo
aWdobGlnaHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAgdmly
dHVhbCB2b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7Cisg
ICAgU3RyaW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOworCitwcml2YXRlOgorICAgIEV2YXNfT2Jq
ZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsK
KyAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogbV9mcm9udGVuZENsaWVudDsKK307CisK
K2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KEV2YXNfT2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNwZWN0b3JDbGllbnRFZmwqKTsKKyAgICB+
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2Fs
aXplZFN0cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoaWRkZW5QYW5lbHMoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VX
aW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0
cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygpOworICAgIHZpcnR1YWwg
dm9pZCBkZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQo
KSB7IG1faW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAgIHZvaWQgZGVzdHJveUluc3BlY3Rvcldp
bmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpOworCitwcml2YXRlOgorICAgIEV2
YXNfT2JqZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9y
VmlldzsKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1faW5zcGVjdG9yQ2xpZW50OworCiB9Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0MDNkYWIxMWY5MTQwNTdiYzcz
ZGM3NGRkYmJhYjI0MTQ0ZmUwYWE0Li5iY2QwMzJkYjJhODY3YTlmNjQ5MWQ4MTFhZTg3NTc1MDUw
MWM0OTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtNzMwLDcgKzczMSw3IEBAIHN0YXRpYyBFd2tf
Vmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEpCiAgICAgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNvcmU6
OkNocm9tZUNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmVkaXRv
ckNsaWVudCA9IG5ldyBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsK
ICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkRyYWdDbGllbnRFZmw7
Ci0gICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6Okluc3BlY3Rv
ckNsaWVudEVmbDsKKyAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29y
ZTo6SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAKICAgICBwcml2LT5wYWdl
ID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFnZUNsaWVudHMpKTsKIApAQCAtNDM0Miw2
ICs0MzQzLDI2IEBAIHZvaWQgZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxheV90ZXh0X2Rl
c2NyaXB0aW9uc19zZXQoRXZhc19PYmplY3QgKmV3a1ZpZXcsCiAjZW5kaWYKIH0KIAordm9pZCBl
d2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7
CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdik7CisKKyAgICBwcml2LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNo
b3coKTsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CisKKyAgICBwcml2LT5wYWdl
LT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmNsb3NlKCk7CisjZW5kaWYKK30KKwogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0ZWRfY29tcG9z
aXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19OYXRpdmVfU3Vy
ZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggMTNkMmNkMjA0YTI1MGY4NDQyYzhjMjc2NjZlYWU5
NjcwZWE1YzUxMS4uOGMwZTI3ODJmMTg0Njg2NWYzMjAwNzJlZWY5NDlkZWU3YTk0M2RiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTEwNiw2ICsxMDYsOCBAQAogICogIC0gInZpZXcs
cmVzaXplZCIsIHZvaWQ6IHZpZXcgb2JqZWN0J3Mgc2l6ZSB3YXMgY2hhbmdlZC4KICAqICAtICJ2
aWV3cG9ydCxjaGFuZ2VkIiwgdm9pZDogcmVwb3J0cyB0aGF0IHZpZXdwb3J0IHdhcyBjaGFuZ2Vk
LgogICogIC0gInpvb20sYW5pbWF0ZWQsZW5kIiwgdm9pZDogcmVxdWVzdGVkIGFuaW1hdGVkIHpv
b20gaXMgZmluaXNoZWQuCisgKiAgLSAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiwgRXZhc19PYmpl
Y3QqKjogcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgdmlldyBmb3Igd2ViIGluc3BlY3RvciBhbmQg
cmV0dXJuIHRoZSBwb2ludGVyIG9mIGl0IGFzIGFuIGFyZ3VtZW50LgorICogIC0gImluc3BlY3Rv
cix2aWV3LGNsb3NlIiwgRXZhc19PYmplY3QqOiByZXF1ZXN0IHRvIGNsb3NlIHRoZSB2aWV3IGZv
ciB3ZWIgaW5zcGVjdG9yLgogICovCiAKICNpZm5kZWYgZXdrX3ZpZXdfaApAQCAtMjYzNiw2ICsy
NjM4LDMyIEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAgKi8KIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3
X3NldHRpbmdfd2ViX2F1ZGlvX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJsZSk7
CiAKKy8qKgorICogU2hvdyB0aGUgd2ViIGluc3BlY3RvciB0byBkZWJ1ZyBhIHdlYiBwYWdlLgor
ICoKKyAqIFRoZSBmb2xsb3dpbmcgc2lnbmFscyBhcmUgZW1paXRlZC4KKyAqICJpbnNwZWN0b3Is
dmlldyxjcmVhdGUiIGFuZCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiCisgKiBUaGUgZmlyc3Qgb25l
IHdpbGwgYmUgY2FsbGVkIHRvIHJlcXVlc3QgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24g
dmlldyB3aGljaCB3aWxsIGJlIGluc3BlY3RlZC4KKyAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIGNy
ZWF0ZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3RvciBhbmQgcmV0dXJuIHRoZSBwb2ludGVyIG9m
IHRoZSB2aWV3IHdpdGggdGhpcmQgYXJndW1lbnQuCisgKiBUaGUgc2Vjb25kIG9uZSB3aWxsIGJl
IGNhbGxlZCB0byBjbG9zZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3RvciBvbiB2aWV3IGhhdmlu
ZyB0aGUgd2ViIGluc3BlY3RvciBhZnRlciBkaXNjb25uZWN0aW5nIGZyb250ZW5kCisgKiBUaGlz
IGNhbGxiYWNrIHNob3VsZCByZW1vdmUgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3IuCisgKgor
ICogV2hlbiB0aGUgdmlldyBoYXZpbmcgdGhlIHdlYiBpbnNwZWN0b3IgaXMgcmVtb3ZlZCwKKyAq
IHBsZWFzZSBlbWl0IHRoZSAiaW5zcGVjdG9yLHZpZXcsZGVzdHJveSIgc2lnbmFsIG9uIHZpZXcg
Zm9yIHdlYiBpbnNwZWN0b3IuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdG8gc2hvdyB0aGUg
d2ViIGluc3BlY3Rvci4KKyAqLworRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hv
dyhjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogQ2xvc2UgdGhlIHdlYiBpbnNwZWN0
b3IgdmlldworICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNsb3NlIHRoZSB3ZWIgaW5zcGVj
dG9yLgorICoKKyAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9zaG93KCkKKyAqLworRUFQ
SSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZhc19PYmplY3QgKm8p
OworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150085</attachid>
            <date>2012-06-28 22:13:52 -0700</date>
            <delta_ts>2012-07-01 23:42:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120629141402.patch</filename>
            <type>text/plain</type>
            <size>18446</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjODM4ODU2NzEzYmJlMjFi
ZWVhYmYwYzg1NzRmZTEzMjA2NmMzOTIuLmE0YTgxOGExMWQ2MTMzZWUwZmM1MmU2MjQwOWRkYjQ2
OGIyNjUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMTggIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA2LTEzICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9y
Y2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgTUVESUFfU1RS
RUFNIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1MmUxMGYwZmQ1ZDZmZDQ5YzUxMWY4
OWIzZmM2ZDcyYWVhMDI5NzA5Li5jOTNlNGQxYzc5NGZiNjlmZTJhZjVhNmZmNGNhMzNjZTBlNThm
ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMDYtMTggIFNlb2tq
dSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdl
YiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rv
ci4KKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsIGFuZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbAorICAgICAgICBmb3IgdXNpbmcgdGhlIFdlYiBJbnNwZWN0
b3IgaW4gV2ViS2l0LUVGTCB3aXRoIG5ldyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZFNldHRpbmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnRFZmw6Okluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxl
YXNlRnJvbnRlbmRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6
aW5zcGVjdG9yRmlsZXNQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6
ZWRTdHJpbmdzVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpoaWRkZW5QYW5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNs
aWVudEVmbCk6CisgICAgICAgIChJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3Rv
ckNsaWVudCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19wcml2X25ldyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAg
ICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192
aWV3Lmg6CisKIDIwMTItMDYtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBk
b2VzIG5vdCBzdXBwb3J0IHRpdGxlVGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMmRlZjg2OTg3YjJiN2NjYTE5YTQ3ZDhiNzVjNjdjZDE1NWRiYzUxOS4uNzc5M2JlZjcz
M2JkZGVhNTZkOTQ1NWJhYjZmNmQ4YzU4OTkxZmY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0yODYsMyArMjg2LDE3IEBAIElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAK
IElOU1RBTEwoRklMRVMgJHtXZWJLaXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFU
QV9JTlNUQUxMX0RJUn0vdGhlbWVzKQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBTRVQo
V0VCX0lOU1BFQ1RPUl9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3Bl
Y3RvcikKKyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0RJUj0iJHtXRUJfSU5T
UEVDVE9SX0RJUn0iKQorICAgIEFERF9ERUZJTklUSU9OUygtRFdFQl9JTlNQRUNUT1JfSU5TVEFM
TF9ESVI9IiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5z
cGVjdG9yIikKKyAgICBBRERfQ1VTVE9NX1RBUkdFVCgKKyAgICAgICAgd2ViLWluc3BlY3Rvci1y
ZXNvdXJjZXMgQUxMCisgICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5X2Rp
cmVjdG9yeSAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kICR7V0VCX0lOU1BFQ1RP
Ul9ESVJ9CisgICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5ICR7V0VCQ09S
RV9ESVJ9L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyAke1dFQl9JTlNQRUNUT1Jf
RElSfQorICAgICAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUUgY29weSAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7V0VCX0lO
U1BFQ1RPUl9ESVJ9L0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICBERVBFTkRT
ICR7V2ViQ29yZV9MSUJSQVJZX05BTUV9CisgICAgKQorICAgIElOU1RBTEwoRElSRUNUT1JZICR7
V0VCX0lOU1BFQ1RPUl9ESVJ9IERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7
REFUQV9JTlNUQUxMX0RJUn0gUkVHRVggIi5banN8aHRtbHxjc3N8Z2lmfHBuZ10kIikKK0VORElG
ICgpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5kZXggN2UyOTc1
OGJkZDExNzE5NGI1Mjg0ZWU1Y2RiOTQ3OTgxNzA4Zjg5NS4uYTBmMWFhY2ZjZWU2NDllYjZiNzA1
YzExYWFlZTJjY2E1MDViOThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yMSwzMSArMjEsODYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKIAor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5o
IgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyB2
b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0
KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50ID0gc3RhdGljX2Nhc3Q8SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7CisgICAgaWYgKGluc3BlY3RvckZyb250ZW5kQ2xp
ZW50KQorICAgICAgICBpbnNwZWN0b3JGcm9udGVuZENsaWVudC0+ZGVzdHJveUluc3BlY3Rvcldp
bmRvdyh0cnVlKTsKK30KKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCA6IHB1
YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncyB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHsK
KyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IH0KK307CisKK0luc3BlY3RvckNsaWVudEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2Jq
ZWN0KiB3ZWJWaWV3KQorICAgIDogbV9pbnNwZWN0ZWRWaWV3KHdlYlZpZXcpCisgICAgLCBtX2lu
c3BlY3RvclZpZXcoMCkKKyAgICAsIG1fZnJvbnRlbmRDbGllbnQoMCkKK3sKK30KKworSW5zcGVj
dG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKCkKK3sKKyAgICBpZiAobV9mcm9udGVu
ZENsaWVudCkgeworICAgICAgICBtX2Zyb250ZW5kQ2xpZW50LT5kaXNjb25uZWN0SW5zcGVjdG9y
Q2xpZW50KCk7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQgPSAwOworICAgIH0KK30KKwogdm9p
ZCBJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7CisgICAgY2xvc2VJ
bnNwZWN0b3JGcm9udGVuZCgpOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIEluc3BlY3Rv
ckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRyb2xsZXIqKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCAwKTsKKworICAg
IEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X2dldChtX2luc3BlY3RlZFZpZXcpOworICAgIGlmICghaW5zcGVjdG9yVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gaW5zcGVjdG9yVmlldzsKKworICAgIFN0
cmluZyBpbnNwZWN0b3JVcmkgPSBpbnNwZWN0b3JGaWxlc1BhdGgoKTsKKyAgICBld2tfdmlld191
cmlfc2V0KG1faW5zcGVjdG9yVmlldywgaW5zcGVjdG9yVXJpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsPiBmcm9udGVuZENsaWVudCA9IGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChtX2luc3BlY3RlZFZpZXcsIG1f
aW5zcGVjdG9yVmlldywgdGhpcykpOworICAgIG1fZnJvbnRlbmRDbGllbnQgPSBmcm9udGVuZENs
aWVudC5nZXQoKTsKKworICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBFV0tQ
cml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RvclZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7
CisgICAgY29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoZnJvbnRlbmRDbGll
bnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVj
dG9yRnJvbnRlbmQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKG1fZnJvbnRl
bmRDbGllbnQpCisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5k
b3coZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9mcm9udGVuZENsaWVudC0+
YnJpbmdUb0Zyb250KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWdobGlnaHQo
KQpAQCAtNTgsMjEgKzExMyw5OCBAQCB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlkZUhpZ2hs
aWdodCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGllbnRF
Zmw6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBTdHJpbmcqKQorYm9vbCBJbnNwZWN0
b3JDbGllbnRFZmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Cit7CisgICAgUGFnZSogZnJvbnRlbmRQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNw
ZWN0b3JWaWV3KTsKKyAgICByZXR1cm4gZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZShm
cm9udGVuZFBhZ2UsIG1lc3NhZ2UpOworfQorCit2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cmVs
ZWFzZUZyb250ZW5kUGFnZSgpCit7CisgICAgbV9pbnNwZWN0b3JWaWV3ID0gMDsKKyAgICBtX2Zy
b250ZW5kQ2xpZW50ID0gMDsKK30KKworU3RyaW5nIEluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVj
dG9yRmlsZXNQYXRoKCkKK3sKKyAgICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRoID0gbWFrZVN0
cmluZygiZmlsZTovLyIsIFdFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVIsICIvaW5zcGVjdG9yLmh0
bWwiKTsKKyAgICBpZiAoYWNjZXNzKGluc3BlY3RvckZpbGVzUGF0aC51dGY4KCkuZGF0YSgpLCBS
X09LKSkgLy8gT24gc3VjY2VzcywgemVybyBpcyByZXR1cm5lZAorICAgICAgICBpbnNwZWN0b3JG
aWxlc1BhdGggPSBtYWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9ESVIsICIvaW5z
cGVjdG9yLmh0bWwiKTsKKworICAgIHJldHVybiBpbnNwZWN0b3JGaWxlc1BhdGg7Cit9CisKK0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChFdmFz
X09iamVjdCogaW5zcGVjdGVkVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcsIEluc3Bl
Y3RvckNsaWVudEVmbCogaW5zcGVjdG9yQ2xpZW50KQorICAgIDogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbChFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0ZWRWaWV3KS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLCBFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0b3JWaWV3KSwgYWRvcHRQ
dHIobmV3IEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwoKSkpCisgICAgLCBtX2luc3BlY3Rl
ZFZpZXcoaW5zcGVjdGVkVmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldyhpbnNwZWN0b3JWaWV3
KQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KQoreworICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtX2luc3BlY3RvclZpZXcsICJpbnNwZWN0b3Isdmll
dyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSwgdGhpcyk7Cit9CisKK0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjp+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKQorewor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbChtX2luc3BlY3RvclZpZXcsICJpbnNw
ZWN0b3IsdmlldyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk7CisKKyAgICBp
ZiAobV9pbnNwZWN0b3JDbGllbnQpIHsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVh
c2VGcm9udGVuZFBhZ2UoKTsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSAwOworICAgIH0K
K30KKworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdz
VVJMKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5lbHMoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpicmluZ1RvRnJvbnQoKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNldHRpbmcoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRF
Zmw6OmNsb3NlV2luZG93KCkKK3sKKyAgICBkZXN0cm95SW5zcGVjdG9yV2luZG93KHRydWUpOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KCkKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi1ib29sIEluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYpCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRh
Y2hXaW5kb3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5
SW5zcGVjdG9yQ29udHJvbGxlcikKK3sKKyAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxl
cikKKyAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKworICAgIGlmIChtX2luc3Bl
Y3RvckNsaWVudCkKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBh
Z2UoKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0ZWRW
aWV3LCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBtX2luc3BlY3RvclZpZXcpOworfQogCiB9Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIzNThlMWZm
NjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNhNTI2MDdhYTEyYWFhNGQ3MzUxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lP
TiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxOSBAQAogI2Rl
ZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50Lmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2luY2x1ZGUgPEV2
YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIElu
c3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQgeworY2xh
c3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6
CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfkluc3BlY3RvckNs
aWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVy
Kik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWdobGln
aHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAgdmlydHVhbCB2
b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1ZSk7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpOworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisgICAgU3Ry
aW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOworCitwcml2YXRlOgorICAgIEV2YXNfT2JqZWN0KiBt
X2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsKKyAgICBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogbV9mcm9udGVuZENsaWVudDsKK307CisKK2NsYXNz
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNwZWN0b3JDbGllbnRFZmwqKTsKKyAgICB+SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZFN0
cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoaWRkZW5QYW5lbHMoKTsKKworICAgIHZp
cnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3co
KTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygpOworICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdo
dCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQoKSB7IG1f
aW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAgIHZvaWQgZGVzdHJveUluc3BlY3RvcldpbmRvdyhi
b29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpOworCitwcml2YXRlOgorICAgIEV2YXNfT2Jq
ZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsK
KyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1faW5zcGVjdG9yQ2xpZW50OworCiB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0MDNkYWIxMWY5MTQwNTdiYzczZGM3NGRk
YmJhYjI0MTQ0ZmUwYWE0Li4xNzRiYWQ4ZjhkNTMwNDk3NjYyN2U0NTE2MGFjYWYzYjIxOGU1MjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtMzQ0LDYgKzM0NSw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhIHsKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247CiAgICAgY29uc3Qg
Y2hhciogY3Vyc29yR3JvdXA7CiAgICAgRXZhc19PYmplY3QqIGN1cnNvck9iamVjdDsKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3OworI2VuZGlm
CiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwogI2VuZGlmCkBA
IC03MzAsOCArNzM0LDkgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3
X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwYWdlQ2xpZW50
cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+
c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRv
ckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQg
PSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JD
bGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOwotCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisjZW5kaWYKICAgICBwcml2LT5w
YWdlID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFnZUNsaWVudHMpKTsKIAogI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkBAIC00MzQyLDYgKzQzNDcsNDggQEAgdm9pZCBld2tf
dmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3NldChFdmFzX09i
amVjdCAqZXdrVmlldywKICNlbmRpZgogfQogCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
c2hvdyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKworICAgIHBy
aXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2hvdygpOworI2VuZGlmCit9CisKK3Zv
aWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+Y2xvc2UoKTsKKyNlbmRpZgorfQorCitFdmFzX09iamVjdCogZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
LCAwKTsKKworICAgIHJldHVybiBwcml2LT5pbnNwZWN0b3JWaWV3OworI2Vsc2UKKyAgICByZXR1
cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3KQoreworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHNtYXJ0RGF0
YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYt
Pmluc3BlY3RvclZpZXcgPSBpbnNwZWN0b3JWaWV3OworI2VuZGlmCit9CisKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfTmF0aXZlX1N1cmZh
Y2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDEzZDJjZDIwNGEyNTBmODQ0MmM4YzI3NjY2ZWFlOTY3
MGVhNWM1MTEuLjNkZjhjOGVlNWE0NjA5ZmI3ZmJkMjNiY2Y5Y2U3ZTEzM2U2MDgyMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMDYsNiArMTA2LDggQEAKICAqICAtICJ2aWV3LHJl
c2l6ZWQiLCB2b2lkOiB2aWV3IG9iamVjdCdzIHNpemUgd2FzIGNoYW5nZWQuCiAgKiAgLSAidmll
d3BvcnQsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMgdGhhdCB2aWV3cG9ydCB3YXMgY2hhbmdlZC4K
ICAqICAtICJ6b29tLGFuaW1hdGVkLGVuZCIsIHZvaWQ6IHJlcXVlc3RlZCBhbmltYXRlZCB6b29t
IGlzIGZpbmlzaGVkLgorICogIC0gImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsIHZvaWQ6IHJlcXVl
c3QgdG8gY3JlYXRlIHRoZSBuZXcgdmlldyBmb3Igd2ViIGluc3BlY3Rvci4KKyAqICAtICJpbnNw
ZWN0b3IsdmlldyxjbG9zZSIsIEV2YXNfT2JqZWN0KjogcmVxdWVzdCB0byBjbG9zZSB0aGUgdmll
dyBmb3Igd2ViIGluc3BlY3Rvci4KICAqLwogCiAjaWZuZGVmIGV3a192aWV3X2gKQEAgLTI2MzYs
NiArMjYzOCw1MyBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRp
b19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFi
bGUpOwogCisvKioKKyAqIFNob3cgdGhlIHdlYiBpbnNwZWN0b3IgdG8gZGVidWcgYSB3ZWIgcGFn
ZS4KKyAqCisgKiBUaGUgZm9sbG93aW5nIHNpZ25hbHMgYXJlIGVtaWl0ZWQuCisgKiAiaW5zcGVj
dG9yLHZpZXcsY3JlYXRlIiBhbmQgImluc3BlY3Rvcix2aWV3LGNsb3NlIgorICogVGhlIGZpcnN0
IG9uZSB3aWxsIGJlIGNhbGxlZCB0byByZXF1ZXN0IHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9y
IG9uIHZpZXcgdGhhdCB3aWxsIGJlIGluc3BlY3RlZC4KKyAqIFRoaXMgY2FsbGJhY2sgc2hvdWxk
IGNyZWF0ZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3RvciBhbmQgc2V0IHRoZSB2aWV3IHdpdGgg
ZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpLgorICogVGhlIHNlY29uZCBvbmUgd2ls
bCBiZSBjYWxsZWQgdG8gY2xvc2UgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24gdmlldyBo
YXZpbmcgdGhlIHdlYiBpbnNwZWN0b3IgYWZ0ZXIgZGlzY29ubmVjdGluZyBmcm9udGVuZAorICog
VGhpcyBjYWxsYmFjayBzaG91bGQgcmVtb3ZlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgor
ICoKKyAqIFdoZW4gdGhlIHZpZXcgaGF2aW5nIHRoZSB3ZWIgaW5zcGVjdG9yIGlzIHJlbW92ZWQs
CisgKiBwbGVhc2UgZW1pdCB0aGUgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiIHNpZ25hbCBvbiB2
aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHNob3cg
dGhlIHdlYiBpbnNwZWN0b3IuCisgKgorICogQHNlZSBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Ns
b3NlKCkKKyAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpCisgKi8KK0VB
UEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QgKm8p
OworCisvKioKKyAqIENsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yIHZpZXcKKyAqCisgKiBAcGFyYW0g
byBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2ViIGluc3BlY3Rvci4KKyAqCisgKiBAc2VlIGV3a192
aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdygpCisgKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
dmlld19nZXQoKQorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShj
b25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogR2V0IHRoZSB2aWV3IG9mIHdlYiBpbnNw
ZWN0b3IuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBpcyBpbnNwZWN0ZWQuCisgKgor
ICogQHJldHVybiB2aWV3IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZmFpbHVyZQorICov
CitFQVBJIEV2YXNfT2JqZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0KiBvKTsKKworLyoqCisgKiBTZXQgdGhlIHZpZXcgb2Ygd2ViIGluc3BlY3Rv
ci4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0aGF0IGlzIGluc3BlY3RlZC4KKyAqIEBwYXJh
bSBvYmogVGhlIHZpZXcgb2Ygd2ViIGluc3BlY3Rvci4KKyAqLworRUFQSSB2b2lkIGV3a192aWV3
X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoRXZhc19PYmplY3QqIG8sIEV2YXNfT2JqZWN0KiBvYmop
OworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150363</attachid>
            <date>2012-07-01 23:42:44 -0700</date>
            <delta_ts>2012-07-01 23:53:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120702154257.patch</filename>
            <type>text/plain</type>
            <size>18468</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjODM4ODU2NzEzYmJlMjFi
ZWVhYmYwYzg1NzRmZTEzMjA2NmMzOTIuLmE0YTgxOGExMWQ2MTMzZWUwZmM1MmU2MjQwOWRkYjQ2
OGIyNjUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMTggIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA2LTEzICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9y
Y2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgTUVESUFfU1RS
RUFNIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1MmUxMGYwZmQ1ZDZmZDQ5YzUxMWY4
OWIzZmM2ZDcyYWVhMDI5NzA5Li5jOTNlNGQxYzc5NGZiNjlmZTJhZjVhNmZmNGNhMzNjZTBlNThm
ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMDYtMTggIFNlb2tq
dSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdl
YiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rv
ci4KKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsIGFuZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbAorICAgICAgICBmb3IgdXNpbmcgdGhlIFdlYiBJbnNwZWN0
b3IgaW4gV2ViS2l0LUVGTCB3aXRoIG5ldyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZFNldHRpbmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnRFZmw6Okluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxl
YXNlRnJvbnRlbmRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6
aW5zcGVjdG9yRmlsZXNQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6
ZWRTdHJpbmdzVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpoaWRkZW5QYW5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNs
aWVudEVmbCk6CisgICAgICAgIChJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3Rv
ckNsaWVudCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19wcml2X25ldyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAg
ICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192
aWV3Lmg6CisKIDIwMTItMDYtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBk
b2VzIG5vdCBzdXBwb3J0IHRpdGxlVGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMmRlZjg2OTg3YjJiN2NjYTE5YTQ3ZDhiNzVjNjdjZDE1NWRiYzUxOS4uNzc5M2JlZjcz
M2JkZGVhNTZkOTQ1NWJhYjZmNmQ4YzU4OTkxZmY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0yODYsMyArMjg2LDE3IEBAIElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAK
IElOU1RBTEwoRklMRVMgJHtXZWJLaXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFU
QV9JTlNUQUxMX0RJUn0vdGhlbWVzKQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBTRVQo
V0VCX0lOU1BFQ1RPUl9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3Bl
Y3RvcikKKyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0RJUj0iJHtXRUJfSU5T
UEVDVE9SX0RJUn0iKQorICAgIEFERF9ERUZJTklUSU9OUygtRFdFQl9JTlNQRUNUT1JfSU5TVEFM
TF9ESVI9IiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5z
cGVjdG9yIikKKyAgICBBRERfQ1VTVE9NX1RBUkdFVCgKKyAgICAgICAgd2ViLWluc3BlY3Rvci1y
ZXNvdXJjZXMgQUxMCisgICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5X2Rp
cmVjdG9yeSAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kICR7V0VCX0lOU1BFQ1RP
Ul9ESVJ9CisgICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5ICR7V0VCQ09S
RV9ESVJ9L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyAke1dFQl9JTlNQRUNUT1Jf
RElSfQorICAgICAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUUgY29weSAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7V0VCX0lO
U1BFQ1RPUl9ESVJ9L0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICBERVBFTkRT
ICR7V2ViQ29yZV9MSUJSQVJZX05BTUV9CisgICAgKQorICAgIElOU1RBTEwoRElSRUNUT1JZICR7
V0VCX0lOU1BFQ1RPUl9ESVJ9IERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7
REFUQV9JTlNUQUxMX0RJUn0gUkVHRVggIi5banN8aHRtbHxjc3N8Z2lmfHBuZ10kIikKK0VORElG
ICgpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5kZXggN2UyOTc1
OGJkZDExNzE5NGI1Mjg0ZWU1Y2RiOTQ3OTgxNzA4Zjg5NS4uYTBmMWFhY2ZjZWU2NDllYjZiNzA1
YzExYWFlZTJjY2E1MDViOThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yMSwzMSArMjEsODYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKIAor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5o
IgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyB2
b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0
KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50ID0gc3RhdGljX2Nhc3Q8SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7CisgICAgaWYgKGluc3BlY3RvckZyb250ZW5kQ2xp
ZW50KQorICAgICAgICBpbnNwZWN0b3JGcm9udGVuZENsaWVudC0+ZGVzdHJveUluc3BlY3Rvcldp
bmRvdyh0cnVlKTsKK30KKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCA6IHB1
YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncyB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHsK
KyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IH0KK307CisKK0luc3BlY3RvckNsaWVudEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2Jq
ZWN0KiB3ZWJWaWV3KQorICAgIDogbV9pbnNwZWN0ZWRWaWV3KHdlYlZpZXcpCisgICAgLCBtX2lu
c3BlY3RvclZpZXcoMCkKKyAgICAsIG1fZnJvbnRlbmRDbGllbnQoMCkKK3sKK30KKworSW5zcGVj
dG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKCkKK3sKKyAgICBpZiAobV9mcm9udGVu
ZENsaWVudCkgeworICAgICAgICBtX2Zyb250ZW5kQ2xpZW50LT5kaXNjb25uZWN0SW5zcGVjdG9y
Q2xpZW50KCk7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQgPSAwOworICAgIH0KK30KKwogdm9p
ZCBJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7CisgICAgY2xvc2VJ
bnNwZWN0b3JGcm9udGVuZCgpOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIEluc3BlY3Rv
ckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRyb2xsZXIqKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCAwKTsKKworICAg
IEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X2dldChtX2luc3BlY3RlZFZpZXcpOworICAgIGlmICghaW5zcGVjdG9yVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gaW5zcGVjdG9yVmlldzsKKworICAgIFN0
cmluZyBpbnNwZWN0b3JVcmkgPSBpbnNwZWN0b3JGaWxlc1BhdGgoKTsKKyAgICBld2tfdmlld191
cmlfc2V0KG1faW5zcGVjdG9yVmlldywgaW5zcGVjdG9yVXJpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsPiBmcm9udGVuZENsaWVudCA9IGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChtX2luc3BlY3RlZFZpZXcsIG1f
aW5zcGVjdG9yVmlldywgdGhpcykpOworICAgIG1fZnJvbnRlbmRDbGllbnQgPSBmcm9udGVuZENs
aWVudC5nZXQoKTsKKworICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBFV0tQ
cml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RvclZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7
CisgICAgY29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoZnJvbnRlbmRDbGll
bnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVj
dG9yRnJvbnRlbmQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKG1fZnJvbnRl
bmRDbGllbnQpCisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5k
b3coZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9mcm9udGVuZENsaWVudC0+
YnJpbmdUb0Zyb250KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWdobGlnaHQo
KQpAQCAtNTgsMjEgKzExMyw5OCBAQCB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlkZUhpZ2hs
aWdodCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGllbnRF
Zmw6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBTdHJpbmcqKQorYm9vbCBJbnNwZWN0
b3JDbGllbnRFZmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Cit7CisgICAgUGFnZSogZnJvbnRlbmRQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNw
ZWN0b3JWaWV3KTsKKyAgICByZXR1cm4gZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZShm
cm9udGVuZFBhZ2UsIG1lc3NhZ2UpOworfQorCit2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cmVs
ZWFzZUZyb250ZW5kUGFnZSgpCit7CisgICAgbV9pbnNwZWN0b3JWaWV3ID0gMDsKKyAgICBtX2Zy
b250ZW5kQ2xpZW50ID0gMDsKK30KKworU3RyaW5nIEluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVj
dG9yRmlsZXNQYXRoKCkKK3sKKyAgICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRoID0gbWFrZVN0
cmluZygiZmlsZTovLyIsIFdFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVIsICIvaW5zcGVjdG9yLmh0
bWwiKTsKKyAgICBpZiAoYWNjZXNzKGluc3BlY3RvckZpbGVzUGF0aC51dGY4KCkuZGF0YSgpLCBS
X09LKSkgLy8gT24gc3VjY2VzcywgemVybyBpcyByZXR1cm5lZAorICAgICAgICBpbnNwZWN0b3JG
aWxlc1BhdGggPSBtYWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9ESVIsICIvaW5z
cGVjdG9yLmh0bWwiKTsKKworICAgIHJldHVybiBpbnNwZWN0b3JGaWxlc1BhdGg7Cit9CisKK0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChFdmFz
X09iamVjdCogaW5zcGVjdGVkVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcsIEluc3Bl
Y3RvckNsaWVudEVmbCogaW5zcGVjdG9yQ2xpZW50KQorICAgIDogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbChFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0ZWRWaWV3KS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLCBFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0b3JWaWV3KSwgYWRvcHRQ
dHIobmV3IEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwoKSkpCisgICAgLCBtX2luc3BlY3Rl
ZFZpZXcoaW5zcGVjdGVkVmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldyhpbnNwZWN0b3JWaWV3
KQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KQoreworICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtX2luc3BlY3RvclZpZXcsICJpbnNwZWN0b3Isdmll
dyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSwgdGhpcyk7Cit9CisKK0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjp+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKQorewor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbChtX2luc3BlY3RvclZpZXcsICJpbnNw
ZWN0b3IsdmlldyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk7CisKKyAgICBp
ZiAobV9pbnNwZWN0b3JDbGllbnQpIHsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVh
c2VGcm9udGVuZFBhZ2UoKTsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSAwOworICAgIH0K
K30KKworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdz
VVJMKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5lbHMoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpicmluZ1RvRnJvbnQoKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNldHRpbmcoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRF
Zmw6OmNsb3NlV2luZG93KCkKK3sKKyAgICBkZXN0cm95SW5zcGVjdG9yV2luZG93KHRydWUpOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KCkKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi1ib29sIEluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYpCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRh
Y2hXaW5kb3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5
SW5zcGVjdG9yQ29udHJvbGxlcikKK3sKKyAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxl
cikKKyAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKworICAgIGlmIChtX2luc3Bl
Y3RvckNsaWVudCkKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBh
Z2UoKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0ZWRW
aWV3LCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBtX2luc3BlY3RvclZpZXcpOworfQogCiB9Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIzNThlMWZm
NjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNhNTI2MDdhYTEyYWFhNGQ3MzUxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lP
TiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxOSBAQAogI2Rl
ZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50Lmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2luY2x1ZGUgPEV2
YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIElu
c3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQgeworY2xh
c3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6
CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfkluc3BlY3RvckNs
aWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVy
Kik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWdobGln
aHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAgdmlydHVhbCB2
b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1ZSk7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpOworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisgICAgU3Ry
aW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOworCitwcml2YXRlOgorICAgIEV2YXNfT2JqZWN0KiBt
X2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsKKyAgICBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogbV9mcm9udGVuZENsaWVudDsKK307CisKK2NsYXNz
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNwZWN0b3JDbGllbnRFZmwqKTsKKyAgICB+SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZFN0
cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoaWRkZW5QYW5lbHMoKTsKKworICAgIHZp
cnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3co
KTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygpOworICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdo
dCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQoKSB7IG1f
aW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAgIHZvaWQgZGVzdHJveUluc3BlY3RvcldpbmRvdyhi
b29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpOworCitwcml2YXRlOgorICAgIEV2YXNfT2Jq
ZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsK
KyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1faW5zcGVjdG9yQ2xpZW50OworCiB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0MDNkYWIxMWY5MTQwNTdiYzczZGM3NGRk
YmJhYjI0MTQ0ZmUwYWE0Li5hOWRjZWQwYzE1YWZjYTk4ODIzMGUwMGEzYWI5NGNmMTFlODgyZDNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtMzQ0LDYgKzM0NSw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhIHsKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247CiAgICAgY29uc3Qg
Y2hhciogY3Vyc29yR3JvdXA7CiAgICAgRXZhc19PYmplY3QqIGN1cnNvck9iamVjdDsKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3OworI2VuZGlm
CiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwogI2VuZGlmCkBA
IC03MzAsOCArNzM0LDkgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3
X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwYWdlQ2xpZW50
cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+
c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRv
ckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQg
PSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JD
bGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOwotCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisjZW5kaWYKICAgICBwcml2LT5w
YWdlID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFnZUNsaWVudHMpKTsKIAogI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkBAIC00MzQyLDYgKzQzNDcsNDggQEAgdm9pZCBld2tf
dmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3NldChFdmFzX09i
amVjdCAqZXdrVmlldywKICNlbmRpZgogfQogCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
c2hvdyhjb25zdCBFdmFzX09iamVjdCAqZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKworICAgIHBy
aXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2hvdygpOworI2VuZGlmCit9CisKK3Zv
aWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVjdCAqZXdrVmll
dykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+Y2xvc2UoKTsKKyNlbmRpZgorfQorCitFdmFzX09iamVjdCogZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCAqZXdrVmlldykKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
LCAwKTsKKworICAgIHJldHVybiBwcml2LT5pbnNwZWN0b3JWaWV3OworI2Vsc2UKKyAgICByZXR1
cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQo
RXZhc19PYmplY3QgKmV3a1ZpZXcsIEV2YXNfT2JqZWN0ICppbnNwZWN0b3JWaWV3KQoreworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHNtYXJ0RGF0
YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYt
Pmluc3BlY3RvclZpZXcgPSBpbnNwZWN0b3JWaWV3OworI2VuZGlmCit9CisKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfTmF0aXZlX1N1cmZh
Y2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDEzZDJjZDIwNGEyNTBmODQ0MmM4YzI3NjY2ZWFlOTY3
MGVhNWM1MTEuLjUyMGYxNWRiOTNkMzU1YTY4YTUyZjk2YzhiODI2ZTFhMDIwYWQ4YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMDYsNiArMTA2LDggQEAKICAqICAtICJ2aWV3LHJl
c2l6ZWQiLCB2b2lkOiB2aWV3IG9iamVjdCdzIHNpemUgd2FzIGNoYW5nZWQuCiAgKiAgLSAidmll
d3BvcnQsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMgdGhhdCB2aWV3cG9ydCB3YXMgY2hhbmdlZC4K
ICAqICAtICJ6b29tLGFuaW1hdGVkLGVuZCIsIHZvaWQ6IHJlcXVlc3RlZCBhbmltYXRlZCB6b29t
IGlzIGZpbmlzaGVkLgorICogIC0gImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsIHZvaWQ6IHJlcXVl
c3QgdG8gY3JlYXRlIHRoZSBuZXcgdmlldyBmb3Igd2ViIGluc3BlY3Rvci4KKyAqICAtICJpbnNw
ZWN0b3IsdmlldyxjbG9zZSIsIEV2YXNfT2JqZWN0KjogcmVxdWVzdCB0byBjbG9zZSB0aGUgdmll
dyBmb3Igd2ViIGluc3BlY3Rvci4KICAqLwogCiAjaWZuZGVmIGV3a192aWV3X2gKQEAgLTI2MzYs
NiArMjYzOCw1MyBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRp
b19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFi
bGUpOwogCisvKioKKyAqIFNob3cgdGhlIHdlYiBpbnNwZWN0b3IgdG8gZGVidWcgYSB3ZWIgcGFn
ZS4KKyAqCisgKiBUaGUgZm9sbG93aW5nIHNpZ25hbHMgYXJlIGVtaWl0ZWQuCisgKiAiaW5zcGVj
dG9yLHZpZXcsY3JlYXRlIiBhbmQgImluc3BlY3Rvcix2aWV3LGNsb3NlIgorICogVGhlIGZpcnN0
IG9uZSB3aWxsIGJlIGNhbGxlZCB0byByZXF1ZXN0IHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9y
IG9uIHZpZXcgdGhhdCB3aWxsIGJlIGluc3BlY3RlZC4KKyAqIFRoaXMgY2FsbGJhY2sgc2hvdWxk
IGNyZWF0ZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3RvciBhbmQgc2V0IHRoZSB2aWV3IHdpdGgg
ZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpLgorICogVGhlIHNlY29uZCBvbmUgd2ls
bCBiZSBjYWxsZWQgdG8gY2xvc2UgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24gdmlldyBo
YXZpbmcgdGhlIHdlYiBpbnNwZWN0b3IgYWZ0ZXIgZGlzY29ubmVjdGluZyBmcm9udGVuZAorICog
VGhpcyBjYWxsYmFjayBzaG91bGQgcmVtb3ZlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgor
ICoKKyAqIFdoZW4gdGhlIHZpZXcgaGF2aW5nIHRoZSB3ZWIgaW5zcGVjdG9yIGlzIHJlbW92ZWQs
CisgKiBwbGVhc2UgZW1pdCB0aGUgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiIHNpZ25hbCBvbiB2
aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHNob3cg
dGhlIHdlYiBpbnNwZWN0b3IuCisgKgorICogQHNlZSBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Ns
b3NlKCkKKyAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpCisgKi8KK0VB
UEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QgKm8p
OworCisvKioKKyAqIENsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yIHZpZXcKKyAqCisgKiBAcGFyYW0g
byBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2ViIGluc3BlY3Rvci4KKyAqCisgKiBAc2VlIGV3a192
aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdygpCisgKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
dmlld19nZXQoKQorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShj
b25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogR2V0IHRoZSB2aWV3IG9mIHdlYiBpbnNw
ZWN0b3IuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBpcyBpbnNwZWN0ZWQuCisgKgor
ICogQHJldHVybiB2aWV3IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZmFpbHVyZQorICov
CitFQVBJIEV2YXNfT2JqZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCisgKiBTZXQgdGhlIHZpZXcgb2Ygd2ViIGluc3BlY3Rv
ci4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0aGF0IGlzIGluc3BlY3RlZC4KKyAqIEBwYXJh
bSBpbnNwZWN0b3JfdmlldyBUaGUgdmlldyBvZiB3ZWIgaW5zcGVjdG9yLgorICovCitFQVBJIHZv
aWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldChFdmFzX09iamVjdCAqbywgRXZhc19P
YmplY3QgKmluc3BlY3Rvcl92aWV3KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150364</attachid>
            <date>2012-07-01 23:53:37 -0700</date>
            <delta_ts>2012-07-05 03:22:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120702155350.patch</filename>
            <type>text/plain</type>
            <size>18468</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjODM4ODU2NzEzYmJlMjFi
ZWVhYmYwYzg1NzRmZTEzMjA2NmMzOTIuLmE0YTgxOGExMWQ2MTMzZWUwZmM1MmU2MjQwOWRkYjQ2
OGIyNjUyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMTggIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA2LTEzICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9y
Y2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgTUVESUFfU1RS
RUFNIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA1MmUxMGYwZmQ1ZDZmZDQ5YzUxMWY4
OWIzZmM2ZDcyYWVhMDI5NzA5Li5jOTNlNGQxYzc5NGZiNjlmZTJhZjVhNmZmNGNhMzNjZTBlNThm
ZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMDYtMTggIFNlb2tq
dSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdl
YiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rv
ci4KKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xpZW50RWZsIGFuZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbAorICAgICAgICBmb3IgdXNpbmcgdGhlIFdlYiBJbnNwZWN0
b3IgaW4gV2ViS2l0LUVGTCB3aXRoIG5ldyBFV0sgQVBJcy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoSW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZFNldHRpbmdzRWZsOjpnZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JGcm9udGVuZFNldHRpbmdzRWZsOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDbGllbnRFZmw6Okluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjppbnNwZWN0b3JEZXN0cm95ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpjbG9zZUluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpyZWxl
YXNlRnJvbnRlbmRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6
aW5zcGVjdG9yRmlsZXNQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZs
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6
ZWRTdHJpbmdzVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpoaWRkZW5QYW5lbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3RlZFVSTENoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmF0dGFjaFdpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGV0YWNoV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluc3BlY3RvckNs
aWVudEVmbCk6CisgICAgICAgIChJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6ZGlzY29ubmVjdEluc3BlY3Rv
ckNsaWVudCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmll
d19wcml2X25ldyk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAg
ICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgICogZXdrL2V3a192
aWV3Lmg6CisKIDIwMTItMDYtMTUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBk
b2VzIG5vdCBzdXBwb3J0IHRpdGxlVGV4dERpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMmRlZjg2OTg3YjJiN2NjYTE5YTQ3ZDhiNzVjNjdjZDE1NWRiYzUxOS4uNzc5M2JlZjcz
M2JkZGVhNTZkOTQ1NWJhYjZmNmQ4YzU4OTkxZmY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0yODYsMyArMjg2LDE3IEBAIElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAK
IElOU1RBTEwoRklMRVMgJHtXZWJLaXRfVEhFTUV9CiAgICAgICAgIERFU1RJTkFUSU9OICR7REFU
QV9JTlNUQUxMX0RJUn0vdGhlbWVzKQorCitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBTRVQo
V0VCX0lOU1BFQ1RPUl9ESVIgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3Bl
Y3RvcikKKyAgICBBRERfREVGSU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0RJUj0iJHtXRUJfSU5T
UEVDVE9SX0RJUn0iKQorICAgIEFERF9ERUZJTklUSU9OUygtRFdFQl9JTlNQRUNUT1JfSU5TVEFM
TF9ESVI9IiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5z
cGVjdG9yIikKKyAgICBBRERfQ1VTVE9NX1RBUkdFVCgKKyAgICAgICAgd2ViLWluc3BlY3Rvci1y
ZXNvdXJjZXMgQUxMCisgICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5X2Rp
cmVjdG9yeSAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvZnJvbnQtZW5kICR7V0VCX0lOU1BFQ1RP
Ul9ESVJ9CisgICAgICAgIENPTU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5ICR7V0VCQ09S
RV9ESVJ9L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyAke1dFQl9JTlNQRUNUT1Jf
RElSfQorICAgICAgICBDT01NQU5EICR7Q01BS0VfQ09NTUFORH0gLUUgY29weSAke0RFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUn0vSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7V0VCX0lO
U1BFQ1RPUl9ESVJ9L0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICBERVBFTkRT
ICR7V2ViQ29yZV9MSUJSQVJZX05BTUV9CisgICAgKQorICAgIElOU1RBTEwoRElSRUNUT1JZICR7
V0VCX0lOU1BFQ1RPUl9ESVJ9IERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7
REFUQV9JTlNUQUxMX0RJUn0gUkVHRVggIi5banN8aHRtbHxjc3N8Z2lmfHBuZ10kIikKK0VORElG
ICgpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5kZXggN2UyOTc1
OGJkZDExNzE5NGI1Mjg0ZWU1Y2RiOTQ3OTgxNzA4Zjg5NS4uYTBmMWFhY2ZjZWU2NDllYjZiNzA1
YzExYWFlZTJjY2E1MDViOThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yMSwzMSArMjEsODYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKIAor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5o
IgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyB2
b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0
KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50ID0gc3RhdGljX2Nhc3Q8SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7CisgICAgaWYgKGluc3BlY3RvckZyb250ZW5kQ2xp
ZW50KQorICAgICAgICBpbnNwZWN0b3JGcm9udGVuZENsaWVudC0+ZGVzdHJveUluc3BlY3Rvcldp
bmRvdyh0cnVlKTsKK30KKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCA6IHB1
YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncyB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHsK
KyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IH0KK307CisKK0luc3BlY3RvckNsaWVudEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2Jq
ZWN0KiB3ZWJWaWV3KQorICAgIDogbV9pbnNwZWN0ZWRWaWV3KHdlYlZpZXcpCisgICAgLCBtX2lu
c3BlY3RvclZpZXcoMCkKKyAgICAsIG1fZnJvbnRlbmRDbGllbnQoMCkKK3sKK30KKworSW5zcGVj
dG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKCkKK3sKKyAgICBpZiAobV9mcm9udGVu
ZENsaWVudCkgeworICAgICAgICBtX2Zyb250ZW5kQ2xpZW50LT5kaXNjb25uZWN0SW5zcGVjdG9y
Q2xpZW50KCk7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQgPSAwOworICAgIH0KK30KKwogdm9p
ZCBJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7CisgICAgY2xvc2VJ
bnNwZWN0b3JGcm9udGVuZCgpOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lkIEluc3BlY3Rv
ckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRyb2xsZXIqKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCAwKTsKKworICAg
IEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X2dldChtX2luc3BlY3RlZFZpZXcpOworICAgIGlmICghaW5zcGVjdG9yVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gaW5zcGVjdG9yVmlldzsKKworICAgIFN0
cmluZyBpbnNwZWN0b3JVcmkgPSBpbnNwZWN0b3JGaWxlc1BhdGgoKTsKKyAgICBld2tfdmlld191
cmlfc2V0KG1faW5zcGVjdG9yVmlldywgaW5zcGVjdG9yVXJpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsPiBmcm9udGVuZENsaWVudCA9IGFk
b3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChtX2luc3BlY3RlZFZpZXcsIG1f
aW5zcGVjdG9yVmlldywgdGhpcykpOworICAgIG1fZnJvbnRlbmRDbGllbnQgPSBmcm9udGVuZENs
aWVudC5nZXQoKTsKKworICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBFV0tQ
cml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RvclZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCk7
CisgICAgY29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoZnJvbnRlbmRDbGll
bnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVj
dG9yRnJvbnRlbmQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKG1fZnJvbnRl
bmRDbGllbnQpCisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5k
b3coZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdGcm9udGVuZFRv
RnJvbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9mcm9udGVuZENsaWVudC0+
YnJpbmdUb0Zyb250KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpoaWdobGlnaHQo
KQpAQCAtNTgsMjEgKzExMyw5OCBAQCB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aGlkZUhpZ2hs
aWdodCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGllbnRF
Zmw6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBTdHJpbmcqKQorYm9vbCBJbnNwZWN0
b3JDbGllbnRFZmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Cit7CisgICAgUGFnZSogZnJvbnRlbmRQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNw
ZWN0b3JWaWV3KTsKKyAgICByZXR1cm4gZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZShm
cm9udGVuZFBhZ2UsIG1lc3NhZ2UpOworfQorCit2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6cmVs
ZWFzZUZyb250ZW5kUGFnZSgpCit7CisgICAgbV9pbnNwZWN0b3JWaWV3ID0gMDsKKyAgICBtX2Zy
b250ZW5kQ2xpZW50ID0gMDsKK30KKworU3RyaW5nIEluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVj
dG9yRmlsZXNQYXRoKCkKK3sKKyAgICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRoID0gbWFrZVN0
cmluZygiZmlsZTovLyIsIFdFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVIsICIvaW5zcGVjdG9yLmh0
bWwiKTsKKyAgICBpZiAoYWNjZXNzKGluc3BlY3RvckZpbGVzUGF0aC51dGY4KCkuZGF0YSgpLCBS
X09LKSkgLy8gT24gc3VjY2VzcywgemVybyBpcyByZXR1cm5lZAorICAgICAgICBpbnNwZWN0b3JG
aWxlc1BhdGggPSBtYWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9ESVIsICIvaW5z
cGVjdG9yLmh0bWwiKTsKKworICAgIHJldHVybiBpbnNwZWN0b3JGaWxlc1BhdGg7Cit9CisKK0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChFdmFz
X09iamVjdCogaW5zcGVjdGVkVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcsIEluc3Bl
Y3RvckNsaWVudEVmbCogaW5zcGVjdG9yQ2xpZW50KQorICAgIDogSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbChFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0ZWRWaWV3KS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLCBFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0b3JWaWV3KSwgYWRvcHRQ
dHIobmV3IEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwoKSkpCisgICAgLCBtX2luc3BlY3Rl
ZFZpZXcoaW5zcGVjdGVkVmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldyhpbnNwZWN0b3JWaWV3
KQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KQoreworICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtX2luc3BlY3RvclZpZXcsICJpbnNwZWN0b3Isdmll
dyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSwgdGhpcyk7Cit9CisKK0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjp+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKQorewor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbChtX2luc3BlY3RvclZpZXcsICJpbnNw
ZWN0b3IsdmlldyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk7CisKKyAgICBp
ZiAobV9pbnNwZWN0b3JDbGllbnQpIHsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVh
c2VGcm9udGVuZFBhZ2UoKTsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSAwOworICAgIH0K
K30KKworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6ZWRTdHJpbmdz
VVJMKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5lbHMoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpicmluZ1RvRnJvbnQoKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNldHRpbmcoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRF
Zmw6OmNsb3NlV2luZG93KCkKK3sKKyAgICBkZXN0cm95SW5zcGVjdG9yV2luZG93KHRydWUpOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KCkKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi1ib29sIEluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYpCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRh
Y2hXaW5kb3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5
SW5zcGVjdG9yQ29udHJvbGxlcikKK3sKKyAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxl
cikKKyAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3KS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKworICAgIGlmIChtX2luc3Bl
Y3RvckNsaWVudCkKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBh
Z2UoKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0ZWRW
aWV3LCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBtX2luc3BlY3RvclZpZXcpOworfQogCiB9Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3MWIzNThlMWZm
NjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNhNTI2MDdhYTEyYWFhNGQ3MzUxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZs
LmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRv
IE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lP
TiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywxOSBAQAogI2Rl
ZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50Lmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2luY2x1ZGUgPEV2
YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIElu
c3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnQgeworY2xh
c3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7CiBwdWJsaWM6
CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfkluc3BlY3RvckNs
aWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JDb250cm9sbGVy
Kik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBoaWdobGln
aHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAgdmlydHVhbCB2
b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2YWx1ZSk7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpOworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisgICAgU3Ry
aW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOworCitwcml2YXRlOgorICAgIEV2YXNfT2JqZWN0KiBt
X2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsKKyAgICBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogbV9mcm9udGVuZENsaWVudDsKK307CisKK2NsYXNz
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNwZWN0b3JDbGllbnRFZmwqKTsKKyAgICB+SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZFN0
cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoaWRkZW5QYW5lbHMoKTsKKworICAgIHZp
cnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3co
KTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYp
OworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygpOworICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdo
dCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0b3JDbGllbnQoKSB7IG1f
aW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAgIHZvaWQgZGVzdHJveUluc3BlY3RvcldpbmRvdyhi
b29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpOworCitwcml2YXRlOgorICAgIEV2YXNfT2Jq
ZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmlldzsK
KyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1faW5zcGVjdG9yQ2xpZW50OworCiB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA0MDNkYWIxMWY5MTQwNTdiYzczZGM3NGRk
YmJhYjI0MTQ0ZmUwYWE0Li4xNzRiYWQ4ZjhkNTMwNDk3NjYyN2U0NTE2MGFjYWYzYjIxOGU1MjE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtMzQ0LDYgKzM0NSw5IEBAIHN0cnVjdCBfRXdrX1ZpZXdf
UHJpdmF0ZV9EYXRhIHsKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247CiAgICAgY29uc3Qg
Y2hhciogY3Vyc29yR3JvdXA7CiAgICAgRXZhc19PYmplY3QqIGN1cnNvck9iamVjdDsKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3OworI2VuZGlm
CiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwogI2VuZGlmCkBA
IC03MzAsOCArNzM0LDkgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3
X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBwYWdlQ2xpZW50
cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNtYXJ0RGF0YS0+
c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNvcmU6OkVkaXRv
ckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQg
PSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsKLSAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JD
bGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOwotCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6
SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisjZW5kaWYKICAgICBwcml2LT5w
YWdlID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFnZUNsaWVudHMpKTsKIAogI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkBAIC00MzQyLDYgKzQzNDcsNDggQEAgdm9pZCBld2tf
dmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3NldChFdmFzX09i
amVjdCAqZXdrVmlldywKICNlbmRpZgogfQogCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
c2hvdyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKworICAgIHBy
aXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2hvdygpOworI2VuZGlmCit9CisKK3Zv
aWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS0+Y2xvc2UoKTsKKyNlbmRpZgorfQorCitFdmFzX09iamVjdCogZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
LCAwKTsKKworICAgIHJldHVybiBwcml2LT5pbnNwZWN0b3JWaWV3OworI2Vsc2UKKyAgICByZXR1
cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3KQoreworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHNtYXJ0RGF0
YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYt
Pmluc3BlY3RvclZpZXcgPSBpbnNwZWN0b3JWaWV3OworI2VuZGlmCit9CisKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfTmF0aXZlX1N1cmZh
Y2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDEzZDJjZDIwNGEyNTBmODQ0MmM4YzI3NjY2ZWFlOTY3
MGVhNWM1MTEuLjUyMGYxNWRiOTNkMzU1YTY4YTUyZjk2YzhiODI2ZTFhMDIwYWQ4YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMDYsNiArMTA2LDggQEAKICAqICAtICJ2aWV3LHJl
c2l6ZWQiLCB2b2lkOiB2aWV3IG9iamVjdCdzIHNpemUgd2FzIGNoYW5nZWQuCiAgKiAgLSAidmll
d3BvcnQsY2hhbmdlZCIsIHZvaWQ6IHJlcG9ydHMgdGhhdCB2aWV3cG9ydCB3YXMgY2hhbmdlZC4K
ICAqICAtICJ6b29tLGFuaW1hdGVkLGVuZCIsIHZvaWQ6IHJlcXVlc3RlZCBhbmltYXRlZCB6b29t
IGlzIGZpbmlzaGVkLgorICogIC0gImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsIHZvaWQ6IHJlcXVl
c3QgdG8gY3JlYXRlIHRoZSBuZXcgdmlldyBmb3Igd2ViIGluc3BlY3Rvci4KKyAqICAtICJpbnNw
ZWN0b3IsdmlldyxjbG9zZSIsIEV2YXNfT2JqZWN0KjogcmVxdWVzdCB0byBjbG9zZSB0aGUgdmll
dyBmb3Igd2ViIGluc3BlY3Rvci4KICAqLwogCiAjaWZuZGVmIGV3a192aWV3X2gKQEAgLTI2MzYs
NiArMjYzOCw1MyBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRp
b19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFi
bGUpOwogCisvKioKKyAqIFNob3cgdGhlIHdlYiBpbnNwZWN0b3IgdG8gZGVidWcgYSB3ZWIgcGFn
ZS4KKyAqCisgKiBUaGUgZm9sbG93aW5nIHNpZ25hbHMgYXJlIGVtaWl0ZWQuCisgKiAiaW5zcGVj
dG9yLHZpZXcsY3JlYXRlIiBhbmQgImluc3BlY3Rvcix2aWV3LGNsb3NlIgorICogVGhlIGZpcnN0
IG9uZSB3aWxsIGJlIGNhbGxlZCB0byByZXF1ZXN0IHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9y
IG9uIHZpZXcgdGhhdCB3aWxsIGJlIGluc3BlY3RlZC4KKyAqIFRoaXMgY2FsbGJhY2sgc2hvdWxk
IGNyZWF0ZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3RvciBhbmQgc2V0IHRoZSB2aWV3IHdpdGgg
ZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpLgorICogVGhlIHNlY29uZCBvbmUgd2ls
bCBiZSBjYWxsZWQgdG8gY2xvc2UgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24gdmlldyBo
YXZpbmcgdGhlIHdlYiBpbnNwZWN0b3IgYWZ0ZXIgZGlzY29ubmVjdGluZyBmcm9udGVuZAorICog
VGhpcyBjYWxsYmFjayBzaG91bGQgcmVtb3ZlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgor
ICoKKyAqIFdoZW4gdGhlIHZpZXcgaGF2aW5nIHRoZSB3ZWIgaW5zcGVjdG9yIGlzIHJlbW92ZWQs
CisgKiBwbGVhc2UgZW1pdCB0aGUgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiIHNpZ25hbCBvbiB2
aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIHNob3cg
dGhlIHdlYiBpbnNwZWN0b3IuCisgKgorICogQHNlZSBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Ns
b3NlKCkKKyAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpCisgKi8KK0VB
UEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QgKm8p
OworCisvKioKKyAqIENsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yIHZpZXcKKyAqCisgKiBAcGFyYW0g
byBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2ViIGluc3BlY3Rvci4KKyAqCisgKiBAc2VlIGV3a192
aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdygpCisgKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
dmlld19nZXQoKQorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShj
b25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogR2V0IHRoZSB2aWV3IG9mIHdlYiBpbnNw
ZWN0b3IuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBpcyBpbnNwZWN0ZWQuCisgKgor
ICogQHJldHVybiB2aWV3IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZmFpbHVyZQorICov
CitFQVBJIEV2YXNfT2JqZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCisgKiBTZXQgdGhlIHZpZXcgb2Ygd2ViIGluc3BlY3Rv
ci4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0aGF0IGlzIGluc3BlY3RlZC4KKyAqIEBwYXJh
bSBpbnNwZWN0b3JfdmlldyBUaGUgdmlldyBvZiB3ZWIgaW5zcGVjdG9yLgorICovCitFQVBJIHZv
aWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldChFdmFzX09iamVjdCAqbywgRXZhc19P
YmplY3QgKmluc3BlY3Rvcl92aWV3KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150913</attachid>
            <date>2012-07-05 03:22:10 -0700</date>
            <delta_ts>2012-07-05 23:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120705192209.patch</filename>
            <type>text/plain</type>
            <size>19053</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5Nzk4YzA0NDNkMjA1MDZi
Mjg4MDE1YTE0YTM0ODZmMjY1ZjBiMmIuLmRlNzdkOThmYzM0MDJhMTk5MDI1NDZjZjVjYTFlZGE3
NWE2M2IwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDctMDQgIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFRkwgcG9ydCBpbXBsZW1lbnRhdGlvbiBmb3IgV2ViIEluc3BlY3Rvci4K
KyAgICAgICAgUHJlcGFyZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcy4KKworICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTA3LTAyICBYaWFvYm8gV2FuZyAgPHhid2FuZ0B0b3Jj
aG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVzZSBQVUJMSUNfQlVJTEQg
dG8gZW5hYmxlL2Rpc2FibGUgRFJUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggN2RjOWEyMjg2NGZjYjQ3
NjExOTM3YzU2MWQ0MWViYThiM2NmNjc2Yy4uNDcwY2YyYzU1ZTFhYTc3OGE0YTg2MTUzMThmNDBj
ZGJmMGUzNTBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA3LTA0
ICBTZW9ranUgS3dvbiAgPHNlb2tqdS5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxd
IEFkZCBXZWIgSW5zcGVjdG9yIHRvIFdlYktpdC1FRkwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzODY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQgaW1wbGVtZW50YXRpb24gZm9yIFdlYiBJ
bnNwZWN0b3IuCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIEluc3BlY3RvckNsaWVudEVmbCBh
bmQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwKKyAgICAgICAgZm9yIHVzaW5nIHRoZSBXZWIg
SW5zcGVjdG9yIGluIFdlYktpdC1FRkwgd2l0aCBuZXcgRVdLIEFQSXMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6Z2V0UHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbDo6c2V0UHJvcGVydHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpJbnNwZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRGVzdHJveWVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6Y2xvc2VJbnNwZWN0b3JG
cm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6OmJyaW5nRnJv
bnRlbmRUb0Zyb250KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6c2Vu
ZE1lc3NhZ2VUb0Zyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVm
bDo6cmVsZWFzZUZyb250ZW5kUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGll
bnRFZmw6Omluc3BlY3RvckZpbGVzUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENs
aWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6
bG9jYWxpemVkU3RyaW5nc1VSTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZENsaWVudEVmbDo6aGlkZGVuUGFuZWxzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50RWZsOjpicmluZ1RvRnJvbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRFZmw6OmNsb3NlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRVUkxDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjphdHRhY2hXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRldGFjaFdpbmRvdyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6c2V0QXR0YWNo
ZWRXaW5kb3dIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmw6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3cpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnNw
ZWN0b3JDbGllbnRFZmwpOgorICAgICAgICAoSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRpc2Nvbm5lY3RJ
bnNwZWN0b3JDbGllbnQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChf
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X25ldyk6Cisg
ICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cpOgorICAgICAgICAoZXdrX3ZpZXdf
d2ViX2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3Zp
ZXdfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQpOgorICAg
ICAgICAqIGV3ay9ld2tfdmlldy5oOgorCiAyMDEyLTA3LTAyICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBkbyBhbnkgbG9nZ2luZyBpbml0
aWFsaXphdGlvbiB3aGVuIGxvZ2dpbmcgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDE5ZmQzNmJhMjY3MTdlZDBkODk1MjI5NmE1ZTZlYTEyZTRmZThhZGUuLmQ4MzhkYWJj
OWVlMmI2NGUxYzdlNDYyYTNhNTJjZmM0MjViMzJlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtMzcyLDMgKzM3MiwyMyBAQCBGT1JFQUNIKHRlc3ROYW1lICR7RVdLVW5pdFRlc3RzX0JJ
TkFSSUVTfSkKICAgICBBRERfVEFSR0VUX1BST1BFUlRJRVMoJHt0ZXN0TmFtZX0gTElOS19GTEFH
UyAiJHtFV0tVbml0VGVzdHNfTElOS19GTEFHU30iKQogICAgIFNFVF9UQVJHRVRfUFJPUEVSVElF
Uygke3Rlc3ROYW1lfSBQUk9QRVJUSUVTIEZPTERFUiAiV2ViS2l0IikKIEVOREZPUkVBQ0goKQor
CitJRiAoRU5BQkxFX0lOU1BFQ1RPUikKKyAgICBTRVQoV0VCX0lOU1BFQ1RPUl9ESVIgJHtDTUFL
RV9CSU5BUllfRElSfS9XZWJLaXQvZWZsL3dlYmluc3BlY3RvcikKKyAgICBBRERfREVGSU5JVElP
TlMoLURXRUJfSU5TUEVDVE9SX0RJUj0iJHtXRUJfSU5TUEVDVE9SX0RJUn0iKQorICAgIEFERF9E
RUZJTklUSU9OUygtRFdFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVI9IiR7Q01BS0VfSU5TVEFMTF9Q
UkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJUn0vd2ViaW5zcGVjdG9yIikKKyAgICBBRERfQ1VTVE9N
X1RBUkdFVCgKKyAgICAgICAgd2ViLWluc3BlY3Rvci1yZXNvdXJjZXMgQUxMCisgICAgICAgIENP
TU1BTkQgJHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5X2RpcmVjdG9yeSAke1dFQkNPUkVfRElSfS9p
bnNwZWN0b3IvZnJvbnQtZW5kICR7V0VCX0lOU1BFQ1RPUl9ESVJ9CisgICAgICAgIENPTU1BTkQg
JHtDTUFLRV9DT01NQU5EfSAtRSBjb3B5ICR7V0VCQ09SRV9ESVJ9L0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyAke1dFQl9JTlNQRUNUT1JfRElSfQorICAgICAgICBDT01NQU5EICR7
Q01BS0VfQ09NTUFORH0gLUUgY29weSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW5z
cGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7V0VCX0lOU1BFQ1RPUl9ESVJ9L0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcworICAgICAgICBERVBFTkRTICR7V2ViQ29yZV9MSUJSQVJZX05BTUV9
CisgICAgKQorICAgIElOU1RBTEwoRElSRUNUT1JZICR7V0VCX0lOU1BFQ1RPUl9ESVJ9CisgICAg
ICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7REFUQV9JTlNUQUxMX0RJ
Un0KKyAgICAgICAgRklMRVNfTUFUQ0hJTkcgUEFUVEVSTiAiKi5qcyIKKyAgICAgICAgICAgICAg
ICAgICAgICAgUEFUVEVSTiAiKi5odG1sIgorICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJO
ICIqLmNzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTiAiKi5naWYiCisgICAgICAg
ICAgICAgICAgICAgICAgIFBBVFRFUk4gIioucG5nIikKK0VORElGICgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcApp
bmRleCA3ZTI5NzU4YmRkMTE3MTk0YjUyODRlZTVjZGI5NDc5ODE3MDhmODk1Li5hMGYxYWFjZmNl
ZTY0OWViNmI3MDVjMTFhYWVlMmNjYTUwNWI5OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKQEAgLTIxLDMx
ICsyMSw4NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVu
dEVmbC5oIgogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlICJld2tfdmll
d19wcml2YXRlLmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorc3RhdGljIHZvaWQgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSh2b2lkKiB1c2VyRGF0YSwg
RXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBJbnNwZWN0b3JG
cm9udGVuZENsaWVudEVmbCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgPSBzdGF0aWNfY2FzdDxJ
bnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCo+KHVzZXJEYXRhKTsKKyAgICBpZiAoaW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQpCisgICAgICAgIGluc3BlY3RvckZyb250ZW5kQ2xpZW50LT5kZXN0cm95
SW5zcGVjdG9yV2luZG93KHRydWUpOworfQorCitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFNldHRp
bmdzRWZsIDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OlNldHRpbmdzIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5h
bWUpCisgICAgeworICAgICAgICBub3RJbXBsZW1lbnRlZCgpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgfQorfTsKKworSW5zcGVjdG9yQ2xpZW50RWZsOjpJbnNwZWN0b3JDbGllbnRF
ZmwoRXZhc19PYmplY3QqIHdlYlZpZXcpCisgICAgOiBtX2luc3BlY3RlZFZpZXcod2ViVmlldykK
KyAgICAsIG1faW5zcGVjdG9yVmlldygwKQorICAgICwgbV9mcm9udGVuZENsaWVudCgwKQorewor
fQorCitJbnNwZWN0b3JDbGllbnRFZmw6On5JbnNwZWN0b3JDbGllbnRFZmwoKQoreworICAgIGlm
IChtX2Zyb250ZW5kQ2xpZW50KSB7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc2Nvbm5l
Y3RJbnNwZWN0b3JDbGllbnQoKTsKKyAgICAgICAgbV9mcm9udGVuZENsaWVudCA9IDA7CisgICAg
fQorfQorCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6aW5zcGVjdG9yRGVzdHJveWVkKCkKIHsK
KyAgICBjbG9zZUluc3BlY3RvckZyb250ZW5kKCk7CiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29u
dHJvbGxlciopCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19jYWxsKG1faW5zcGVjdGVkVmlldywgImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIs
IDApOworCisgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBld2tfdmlld193ZWJfaW5z
cGVjdG9yX3ZpZXdfZ2V0KG1faW5zcGVjdGVkVmlldyk7CisgICAgaWYgKCFpbnNwZWN0b3JWaWV3
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2luc3BlY3RvclZpZXcgPSBpbnNwZWN0b3JWaWV3
OworCisgICAgU3RyaW5nIGluc3BlY3RvclVyaSA9IGluc3BlY3RvckZpbGVzUGF0aCgpOworICAg
IGV3a192aWV3X3VyaV9zZXQobV9pbnNwZWN0b3JWaWV3LCBpbnNwZWN0b3JVcmkudXRmOCgpLmRh
dGEoKSk7CisKKyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw+IGZyb250ZW5k
Q2xpZW50ID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKG1faW5zcGVj
dGVkVmlldywgbV9pbnNwZWN0b3JWaWV3LCB0aGlzKSk7CisgICAgbV9mcm9udGVuZENsaWVudCA9
IGZyb250ZW5kQ2xpZW50LmdldCgpOworCisgICAgSW5zcGVjdG9yQ29udHJvbGxlciogY29udHJv
bGxlciA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1faW5zcGVjdG9yVmlldyktPmluc3BlY3RvckNv
bnRyb2xsZXIoKTsKKyAgICBjb250cm9sbGVyLT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChm
cm9udGVuZENsaWVudC5yZWxlYXNlKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6
Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBp
ZiAobV9mcm9udGVuZENsaWVudCkKKyAgICAgICAgbV9mcm9udGVuZENsaWVudC0+ZGVzdHJveUlu
c3BlY3RvcldpbmRvdyhmYWxzZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpicmlu
Z0Zyb250ZW5kVG9Gcm9udCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX2Zyb250
ZW5kQ2xpZW50LT5icmluZ1RvRnJvbnQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6
OmhpZ2hsaWdodCgpCkBAIC01OCwyMSArMTEzLDk4IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZs
OjpoaWRlSGlnaGxpZ2h0KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEluc3Bl
Y3RvckNsaWVudEVmbDo6cG9wdWxhdGVTZXR0aW5nKGNvbnN0IFN0cmluZyYsIFN0cmluZyopCiti
b29sIEluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKK3sKKyAgICBQYWdlKiBmcm9udGVuZFBhZ2UgPSBFV0tQcml2YXRlOjpjb3Jl
UGFnZShtX2luc3BlY3RvclZpZXcpOworICAgIHJldHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJv
bnRlbmRQYWdlKGZyb250ZW5kUGFnZSwgbWVzc2FnZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2xp
ZW50RWZsOjpyZWxlYXNlRnJvbnRlbmRQYWdlKCkKK3sKKyAgICBtX2luc3BlY3RvclZpZXcgPSAw
OworICAgIG1fZnJvbnRlbmRDbGllbnQgPSAwOworfQorCitTdHJpbmcgSW5zcGVjdG9yQ2xpZW50
RWZsOjppbnNwZWN0b3JGaWxlc1BhdGgoKQoreworICAgIFN0cmluZyBpbnNwZWN0b3JGaWxlc1Bh
dGggPSBtYWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9JTlNUQUxMX0RJUiwgIi9p
bnNwZWN0b3IuaHRtbCIpOworICAgIGlmIChhY2Nlc3MoaW5zcGVjdG9yRmlsZXNQYXRoLnV0Zjgo
KS5kYXRhKCksIFJfT0spKSAvLyBPbiBzdWNjZXNzLCB6ZXJvIGlzIHJldHVybmVkCisgICAgICAg
IGluc3BlY3RvckZpbGVzUGF0aCA9IG1ha2VTdHJpbmcoImZpbGU6Ly8iLCBXRUJfSU5TUEVDVE9S
X0RJUiwgIi9pbnNwZWN0b3IuaHRtbCIpOworCisgICAgcmV0dXJuIGluc3BlY3RvckZpbGVzUGF0
aDsKK30KKworSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Okluc3BlY3RvckZyb250ZW5kQ2xp
ZW50RWZsKEV2YXNfT2JqZWN0KiBpbnNwZWN0ZWRWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG9y
VmlldywgSW5zcGVjdG9yQ2xpZW50RWZsKiBpbnNwZWN0b3JDbGllbnQpCisgICAgOiBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsKEVXS1ByaXZhdGU6OmNvcmVQYWdlKGluc3BlY3RlZFZpZXcp
LT5pbnNwZWN0b3JDb250cm9sbGVyKCksIEVXS1ByaXZhdGU6OmNvcmVQYWdlKGluc3BlY3RvclZp
ZXcpLCBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5nc0VmbCgpKSkKKyAgICAs
IG1faW5zcGVjdGVkVmlldyhpbnNwZWN0ZWRWaWV3KQorICAgICwgbV9pbnNwZWN0b3JWaWV3KGlu
c3BlY3RvclZpZXcpCisgICAgLCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCit7
CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1faW5zcGVjdG9yVmlldywgImlu
c3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95LCB0aGlzKTsK
K30KKworSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbCgpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1faW5zcGVjdG9y
VmlldywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0cm95
KTsKKworICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkgeworICAgICAgICBtX2luc3BlY3RvckNs
aWVudC0+cmVsZWFzZUZyb250ZW5kUGFnZSgpOworICAgICAgICBtX2luc3BlY3RvckNsaWVudCA9
IDA7CisgICAgfQorfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmxvY2Fs
aXplZFN0cmluZ3NVUkwoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmhpZGRlblBh
bmVscygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmJyaW5nVG9Gcm9udCgpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OnN0b3Jl
U2V0dGluZyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQordm9pZCBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6Y2xvc2VXaW5kb3coKQoreworICAgIGRlc3Ryb3lJbnNwZWN0b3JXaW5k
b3codHJ1ZSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omluc3BlY3Rl
ZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjphdHRhY2hXaW5kb3coKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yQ2xpZW50RWZsOjpzZW5kTWVz
c2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmw6OmRldGFjaFdpbmRvdygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gZmFsc2U7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldEF0dGFj
aGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3co
Ym9vbCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQoreworICAgIGlmIChub3RpZnlJbnNwZWN0
b3JDb250cm9sbGVyKQorICAgICAgICBFV0tQcml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RlZFZp
ZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2Nvbm5lY3RGcm9udGVuZCgpOworCisgICAg
aWYgKG1faW5zcGVjdG9yQ2xpZW50KQorICAgICAgICBtX2luc3BlY3RvckNsaWVudC0+cmVsZWFz
ZUZyb250ZW5kUGFnZSgpOworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbCht
X2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjbG9zZSIsIG1faW5zcGVjdG9yVmlldyk7
Cit9CiAKIH0KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuaAppbmRleCBmOTJlOTRkZGE4MTNjNWI3MjllMDc5ZjNm
NjcxYjM1OGUxZmY2OWIxLi5iNmEwNzhlNzI1ODdjOTMzZDVlM2E1MjYwN2FhMTJhYWE0ZDczNTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRFZmwuaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBs
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQg
LSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQogICogQ29weXJpZ2h0IChDKSAyMDA5LTIw
MTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMTMgKzMz
LDE5IEBACiAjZGVmaW5lIEluc3BlY3RvckNsaWVudEVmbF9oCiAKICNpbmNsdWRlICJJbnNwZWN0
b3JDbGllbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgiCisj
aW5jbHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOwogY2xhc3MgUGFnZTsK
IAotY2xhc3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckNs
aWVudCB7CitjbGFzcyBJbnNwZWN0b3JDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50
IHsKIHB1YmxpYzoKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqKTsKKyAgICB+
SW5zcGVjdG9yQ2xpZW50RWZsKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVzdHJv
eWVkKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgb3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3Rv
ckNvbnRyb2xsZXIqKTsKQEAgLTQ5LDEwICs1NSw0MyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGhpZ2hsaWdodCgpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVTZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcq
IHZhbHVlKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcmVTZXR0aW5nKGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLQogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRv
RnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisKKyAgICB2b2lkIHJlbGVhc2VGcm9udGVuZFBhZ2Uo
KTsKKyAgICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRoKCk7CisKK3ByaXZhdGU6CisgICAgRXZh
c19PYmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNwZWN0b3JW
aWV3OworICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKiBtX2Zyb250ZW5kQ2xpZW50Owor
fTsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwgOiBwdWJsaWMgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbCB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwoRXZhc19PYmplY3QqLCBFdmFzX09iamVjdCosIEluc3BlY3RvckNsaWVudEVmbCopOwor
ICAgIH5JbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCgpOworCisgICAgdmlydHVhbCBTdHJpbmcg
bG9jYWxpemVkU3RyaW5nc1VSTCgpOworICAgIHZpcnR1YWwgU3RyaW5nIGhpZGRlblBhbmVscygp
OworCisgICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpOworICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29u
c3QgU3RyaW5nJik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCk7CisgICAgdmly
dHVhbCB2b2lkIGRldGFjaFdpbmRvdygpOworCisgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVk
V2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKKworICAgIHZvaWQgZGlzY29ubmVjdEluc3BlY3RvckNs
aWVudCgpIHsgbV9pbnNwZWN0b3JDbGllbnQgPSAwOyB9CisgICAgdm9pZCBkZXN0cm95SW5zcGVj
dG9yV2luZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7CisKK3ByaXZhdGU6Cisg
ICAgRXZhc19PYmplY3QqIG1faW5zcGVjdGVkVmlldzsKKyAgICBFdmFzX09iamVjdCogbV9pbnNw
ZWN0b3JWaWV3OworICAgIEluc3BlY3RvckNsaWVudEVmbCogbV9pbnNwZWN0b3JDbGllbnQ7CisK
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDVmOTRhM2MwNDMzOGJm
OTRmMWNjNjJlYWNjZDc1NjEzNjM0Y2U5YTIuLmE5ODc2OWEzZjhlMTgyMjVhN2Q5NzVkOTJlOTFl
YmZkZTc5M2FiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCkBAIC0zNDQsNiArMzQ1LDkgQEAgc3RydWN0
IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbjsK
ICAgICBjb25zdCBjaGFyKiBjdXJzb3JHcm91cDsKICAgICBFdmFzX09iamVjdCogY3Vyc29yT2Jq
ZWN0OworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZp
ZXc7CisjZW5kaWYKICNpZmRlZiBIQVZFX0VDT1JFX1gKICAgICBib29sIGlzVXNpbmdFY29yZVg7
CiAjZW5kaWYKQEAgLTczMCw4ICs3MzQsOSBAQCBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KiBfZXdrX3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogICAg
IHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmwo
c21hcnREYXRhLT5zZWxmKTsKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMu
ZHJhZ0NsaWVudCA9IG5ldyBXZWJDb3JlOjpEcmFnQ2xpZW50RWZsOwotICAgIHBhZ2VDbGllbnRz
Lmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw7Ci0KKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5l
dyBXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKTsKKyNlbmRpZgog
ICAgIHByaXYtPnBhZ2UgPSBhZG9wdFB0cihuZXcgV2ViQ29yZTo6UGFnZShwYWdlQ2xpZW50cykp
OwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKQEAgLTQzNjIsNiArNDM2Nyw0OCBA
QCB2b2lkIGV3a192aWV3X3NldHRpbmdfc2hvdWxkX2Rpc3BsYXlfdGV4dF9kZXNjcmlwdGlvbnNf
c2V0KEV2YXNfT2JqZWN0ICpld2tWaWV3LAogI2VuZGlmCiB9CiAKK3ZvaWQgZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl9zaG93KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJM
RShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFy
dERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYp
OworCisgICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zaG93KCk7CisjZW5k
aWYKK30KKwordm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYpOworCisgICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLT5jbG9zZSgpOworI2VuZGlmCit9CisKK0V2YXNfT2JqZWN0KiBld2tfdmll
d193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYsIDApOworCisgICAgcmV0dXJuIHByaXYtPmluc3BlY3RvclZpZXc7CisjZWxz
ZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rv
cl92aWV3X3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvclZp
ZXcpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmll
dywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOwor
CisgICAgcHJpdi0+aW5zcGVjdG9yVmlldyA9IGluc3BlY3RvclZpZXc7CisjZW5kaWYKK30KKwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGJvb2wgZXdrX3ZpZXdfYWNjZWxlcmF0
ZWRfY29tcG9zaXRpbmdfb2JqZWN0X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19O
YXRpdmVfU3VyZmFjZSogbmF0aXZlU3VyZmFjZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVj
dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggZjY0NWY3MjIzMmZkYzM1NGMzODZi
ZjA0ODk0NDI5NTFhNGY3ZDkxYS4uZDVmZWIzNmIzMzk5YzdlNGNhYWZhNTA2Y2Y2ZTMyN2JkN2Q0
ZGFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTQ2LDYgKzQ2LDggQEAKICAqICAt
ICJpY29uLHJlY2VpdmVkIiwgdm9pZDogbWFpbiBmcmFtZSByZWNlaXZlZCBhbiBpY29uLgogICog
IC0gImlucHV0bWV0aG9kLGNoYW5nZWQiLCBFaW5hX0Jvb2w6IHJlcG9ydHMgdGhhdCBpbnB1dCBt
ZXRob2Qgd2FzIGNoYW5nZWQgYW5kCiAgKiAgICBpdCBnaXZlcyBhIGJvb2xlYW4gdmFsdWUgd2hl
dGhlciBpdCdzIGVuYWJsZWQgb3Igbm90IGFzIGFuIGFyZ3VtZW50LgorICogIC0gImluc3BlY3Rv
cix2aWV3LGNsb3NlIiwgRXZhc19PYmplY3QqOiByZXF1ZXN0IHRvIGNsb3NlIHRoZSB2aWV3IGZv
ciB3ZWIgaW5zcGVjdG9yLgorICogIC0gImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsIHZvaWQ6IHJl
cXVlc3QgdG8gY3JlYXRlIHRoZSBuZXcgdmlldyBmb3Igd2ViIGluc3BlY3Rvci4KICAqICAtICJq
cyx3aW5kb3dvYmplY3QsY2xlYXIiLCB2b2lkOiBSZXBvcnQgdGhhdCB0aGUgSlMgd2luZG93IG9i
amVjdCBoYXMgYmVlbiBjbGVhcmVkLgogICogIC0gImxpbmssaG92ZXIsaW4iLCBjb25zdCBjaGFy
ICpsaW5rWzJdOiByZXBvcnRzIG1vdXNlIGlzIG92ZXIgYSBsaW5rLgogICogICAgSXQgZ2l2ZXMg
dGhlIHVybCBpbiBsaW5rWzBdIGFuZCBsaW5rJ3MgdGl0bGUgaW4gbGlua1sxXSBhcyBhbiBhcmd1
bWVudC4KQEAgLTI2NDQsNiArMjY0Niw1MyBAQCBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19z
ZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICovCiBFQVBJIEVp
bmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQoRXZhc19PYmplY3QgKm8s
IEVpbmFfQm9vbCBlbmFibGUpOwogCisvKioKKyAqIFNob3cgdGhlIHdlYiBpbnNwZWN0b3IgdG8g
ZGVidWcgYSB3ZWIgcGFnZS4KKyAqCisgKiBUaGUgZm9sbG93aW5nIHNpZ25hbHMgYXJlIGVtaWl0
ZWQuCisgKiAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiBhbmQgImluc3BlY3Rvcix2aWV3LGNsb3Nl
IgorICogVGhlIGZpcnN0IG9uZSB3aWxsIGJlIGNhbGxlZCB0byByZXF1ZXN0IHRoZSB2aWV3IGZv
ciB3ZWIgaW5zcGVjdG9yIG9uIHZpZXcgdGhhdCB3aWxsIGJlIGluc3BlY3RlZC4KKyAqIFRoaXMg
Y2FsbGJhY2sgc2hvdWxkIGNyZWF0ZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3RvciBhbmQgc2V0
IHRoZSB2aWV3IHdpdGggZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldCgpLgorICogVGhl
IHNlY29uZCBvbmUgd2lsbCBiZSBjYWxsZWQgdG8gY2xvc2UgdGhlIHZpZXcgZm9yIHdlYiBpbnNw
ZWN0b3Igb24gdmlldyBoYXZpbmcgdGhlIHdlYiBpbnNwZWN0b3IgYWZ0ZXIgZGlzY29ubmVjdGlu
ZyBmcm9udGVuZAorICogVGhpcyBjYWxsYmFjayBzaG91bGQgcmVtb3ZlIHRoZSB2aWV3IGZvciB3
ZWIgaW5zcGVjdG9yLgorICoKKyAqIFdoZW4gdGhlIHZpZXcgaGF2aW5nIHRoZSB3ZWIgaW5zcGVj
dG9yIGlzIHJlbW92ZWQsCisgKiBwbGVhc2UgZW1pdCB0aGUgImluc3BlY3Rvcix2aWV3LGRlc3Ry
b3kiIHNpZ25hbCBvbiB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIEBwYXJhbSBvIFRo
ZSB2aWV3IHRvIHNob3cgdGhlIHdlYiBpbnNwZWN0b3IuCisgKgorICogQHNlZSBld2tfdmlld193
ZWJfaW5zcGVjdG9yX2Nsb3NlKCkKKyAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X3NldCgpCisgKi8KK0VBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3Qg
RXZhc19PYmplY3QgKm8pOworCisvKioKKyAqIENsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yIHZpZXcK
KyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2ViIGluc3BlY3Rvci4KKyAq
CisgKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdygpCisgKiBAc2VlIGV3a192aWV3
X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoKQorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2lu
c3BlY3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogR2V0IHRoZSB2
aWV3IG9mIHdlYiBpbnNwZWN0b3IuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBpcyBp
bnNwZWN0ZWQuCisgKgorICogQHJldHVybiB2aWV3IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIDAg
b24gZmFpbHVyZQorICovCitFQVBJIEV2YXNfT2JqZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9y
X3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKKworLyoqCisgKiBTZXQgdGhlIHZpZXcg
b2Ygd2ViIGluc3BlY3Rvci4KKyAqCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0aGF0IGlzIGluc3Bl
Y3RlZC4KKyAqIEBwYXJhbSBpbnNwZWN0b3JfdmlldyBUaGUgdmlldyBvZiB3ZWIgaW5zcGVjdG9y
LgorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldChFdmFzX09i
amVjdCAqbywgRXZhc19PYmplY3QgKmluc3BlY3Rvcl92aWV3KTsKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151021</attachid>
            <date>2012-07-05 23:20:23 -0700</date>
            <delta_ts>2012-07-06 00:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83865-20120706152024.patch</filename>
            <type>text/plain</type>
            <size>19051</size>
            <attacher name="Seokju Kwon">seokju.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5Nzk4YzA0NDNkMjA1MDZi
Mjg4MDE1YTE0YTM0ODZmMjY1ZjBiMmIuLmU4ZTE1NDgwNjQ3NTZmNWY0ZWYxOWRmZDlhY2I0YzQy
YWRlYmZlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDctMDQgIFNlb2tqdSBL
d29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIFdlYiBJ
bnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFu
LgorCisgICAgICAgIEVGTCBwb3J0IGltcGxlbWVudGF0aW9uIGZvciBXZWIgSW5zcGVjdG9yLgor
ICAgICAgICBQcmVwYXJlIFdlYiBJbnNwZWN0b3IgcmVzb3VyY2VzLgorCisgICAgICAgICogUGxh
dGZvcm1FZmwuY21ha2U6CisKIDIwMTItMDctMDIgIFhpYW9ibyBXYW5nICA8eGJ3YW5nQHRvcmNo
bW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXNlIFBVQkxJQ19CVUlMRCB0
byBlbmFibGUvZGlzYWJsZSBEUlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA3ZGM5YTIyODY0ZmNiNDc2
MTE5MzdjNTYxZDQxZWJhOGIzY2Y2NzZjLi5hMGViNDhlMDAyYTdlNTI1MjE5NWM2YTA2NzlhYzg0
OWVmNDcwNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTItMDctMDQg
IFNlb2tqdSBLd29uICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0g
QWRkIFdlYiBJbnNwZWN0b3IgdG8gV2ViS2l0LUVGTAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM4NjUKKworICAgICAgICBSZXZpZXdlZCBieSBQYXZl
bCBGZWxkbWFuLgorCisgICAgICAgIEVGTCBwb3J0IGltcGxlbWVudGF0aW9uIGZvciBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBJbnNwZWN0b3JDbGllbnRFZmwgYW5k
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsCisgICAgICAgIGZvciB1c2luZyB0aGUgV2ViIElu
c3BlY3RvciBpbiBXZWJLaXQtRUZMIHdpdGggbmV3IEVXSyBBUElzLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5v
dGlmeVdlYkluc3BlY3RvckRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJ
bnNwZWN0b3JGcm9udGVuZFNldHRpbmdzRWZsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kU2V0dGluZ3NFZmw6OmdldFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmw6OnNldFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNsaWVudEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6fkluc3BlY3RvckNsaWVudEVmbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6OmNsb3NlSW5zcGVjdG9yRnJv
bnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOjpicmluZ0Zyb250
ZW5kVG9Gcm9udCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6OnNlbmRN
ZXNzYWdlVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRFZmw6
OnJlbGVhc2VGcm9udGVuZFBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50
RWZsOjppbnNwZWN0b3JGaWxlc1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmw6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjp+SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Omxv
Y2FsaXplZFN0cmluZ3NVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRFZmw6OmhpZGRlblBhbmVscyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6YnJpbmdUb0Zyb250KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50RWZsOjpjbG9zZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbDo6aW5zcGVjdGVkVVJMQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXRhY2hXaW5kb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6OnNldEF0dGFjaGVk
V2luZG93SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVj
dG9yQ2xpZW50RWZsKToKKyAgICAgICAgKEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkaXNjb25uZWN0SW5z
cGVjdG9yQ2xpZW50KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3
a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChfZXdrX3ZpZXdfcHJpdl9uZXcpOgorICAg
ICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9zaG93KToKKyAgICAgICAgKGV3a192aWV3X3dl
Yl9pbnNwZWN0b3JfY2xvc2UpOgorICAgICAgICAoZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X2dldCk6CisgICAgICAgIChld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KToKKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNy0wMiAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZG8gYW55IGxvZ2dpbmcgaW5pdGlh
bGl6YXRpb24gd2hlbiBsb2dnaW5nIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpp
bmRleCAxOWZkMzZiYTI2NzE3ZWQwZDg5NTIyOTZhNWU2ZWExMmU0ZmU4YWRlLi5kODM4ZGFiYzll
ZTJiNjRlMWM3ZTQ2MmEzYTUyY2ZjNDI1YjMyZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTM3MiwzICszNzIsMjMgQEAgRk9SRUFDSCh0ZXN0TmFtZSAke0VXS1VuaXRUZXN0c19CSU5B
UklFU30pCiAgICAgQUREX1RBUkdFVF9QUk9QRVJUSUVTKCR7dGVzdE5hbWV9IExJTktfRkxBR1Mg
IiR7RVdLVW5pdFRlc3RzX0xJTktfRkxBR1N9IikKICAgICBTRVRfVEFSR0VUX1BST1BFUlRJRVMo
JHt0ZXN0TmFtZX0gUFJPUEVSVElFUyBGT0xERVIgIldlYktpdCIpCiBFTkRGT1JFQUNIKCkKKwor
SUYgKEVOQUJMRV9JTlNQRUNUT1IpCisgICAgU0VUKFdFQl9JTlNQRUNUT1JfRElSICR7Q01BS0Vf
QklOQVJZX0RJUn0vV2ViS2l0L2VmbC93ZWJpbnNwZWN0b3IpCisgICAgQUREX0RFRklOSVRJT05T
KC1EV0VCX0lOU1BFQ1RPUl9ESVI9IiR7V0VCX0lOU1BFQ1RPUl9ESVJ9IikKKyAgICBBRERfREVG
SU5JVElPTlMoLURXRUJfSU5TUEVDVE9SX0lOU1RBTExfRElSPSIke0NNQUtFX0lOU1RBTExfUFJF
RklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9L3dlYmluc3BlY3RvciIpCisgICAgQUREX0NVU1RPTV9U
QVJHRVQoCisgICAgICAgIHdlYi1pbnNwZWN0b3ItcmVzb3VyY2VzIEFMTAorICAgICAgICBDT01N
QU5EICR7Q01BS0VfQ09NTUFORH0gLUUgY29weV9kaXJlY3RvcnkgJHtXRUJDT1JFX0RJUn0vaW5z
cGVjdG9yL2Zyb250LWVuZCAke1dFQl9JTlNQRUNUT1JfRElSfQorICAgICAgICBDT01NQU5EICR7
Q01BS0VfQ09NTUFORH0gLUUgY29weSAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMgJHtXRUJfSU5TUEVDVE9SX0RJUn0KKyAgICAgICAgQ09NTUFORCAke0NN
QUtFX0NPTU1BTkR9IC1FIGNvcHkgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0luc3Bl
Y3RvckJhY2tlbmRDb21tYW5kcy5qcyAke1dFQl9JTlNQRUNUT1JfRElSfS9JbnNwZWN0b3JCYWNr
ZW5kQ29tbWFuZHMuanMKKyAgICAgICAgREVQRU5EUyAke1dlYkNvcmVfTElCUkFSWV9OQU1FfQor
ICAgICkKKyAgICBJTlNUQUxMKERJUkVDVE9SWSAke1dFQl9JTlNQRUNUT1JfRElSfQorICAgICAg
ICBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0RBVEFfSU5TVEFMTF9ESVJ9
CisgICAgICAgIEZJTEVTX01BVENISU5HIFBBVFRFUk4gIiouanMiCisgICAgICAgICAgICAgICAg
ICAgICAgIFBBVFRFUk4gIiouaHRtbCIKKyAgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTiAi
Ki5jc3MiCisgICAgICAgICAgICAgICAgICAgICAgIFBBVFRFUk4gIiouZ2lmIgorICAgICAgICAg
ICAgICAgICAgICAgICBQQVRURVJOICIqLnBuZyIpCitFTkRJRiAoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5k
ZXggN2UyOTc1OGJkZDExNzE5NGI1Mjg0ZWU1Y2RiOTQ3OTgxNzA4Zjg5NS4uYTBmMWFhY2ZjZWU2
NDllYjZiNzA1YzExYWFlZTJjY2E1MDViOThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC0yMSwzMSAr
MjEsODYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRF
ZmwuaCIKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisjaW5jbHVkZSAiZXdrX3ZpZXdf
cHJpdmF0ZS5oIgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K3N0YXRpYyB2b2lkIG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2
YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRFZmwqIGluc3BlY3RvckZyb250ZW5kQ2xpZW50ID0gc3RhdGljX2Nhc3Q8SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRFZmwqPih1c2VyRGF0YSk7CisgICAgaWYgKGluc3BlY3RvckZy
b250ZW5kQ2xpZW50KQorICAgICAgICBpbnNwZWN0b3JGcm9udGVuZENsaWVudC0+ZGVzdHJveUlu
c3BlY3RvcldpbmRvdyh0cnVlKTsKK30KKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRTZXR0aW5n
c0VmbCA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpTZXR0aW5ncyB7Citw
dWJsaWM6CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1l
KQorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIH0KK307CisKK0luc3BlY3RvckNsaWVudEVmbDo6SW5zcGVjdG9yQ2xpZW50RWZs
KEV2YXNfT2JqZWN0KiB3ZWJWaWV3KQorICAgIDogbV9pbnNwZWN0ZWRWaWV3KHdlYlZpZXcpCisg
ICAgLCBtX2luc3BlY3RvclZpZXcoMCkKKyAgICAsIG1fZnJvbnRlbmRDbGllbnQoMCkKK3sKK30K
KworSW5zcGVjdG9yQ2xpZW50RWZsOjp+SW5zcGVjdG9yQ2xpZW50RWZsKCkKK3sKKyAgICBpZiAo
bV9mcm9udGVuZENsaWVudCkgeworICAgICAgICBtX2Zyb250ZW5kQ2xpZW50LT5kaXNjb25uZWN0
SW5zcGVjdG9yQ2xpZW50KCk7CisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQgPSAwOworICAgIH0K
K30KKwogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6Omluc3BlY3RvckRlc3Ryb3llZCgpCiB7Cisg
ICAgY2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCiB2b2lk
IEluc3BlY3RvckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRy
b2xsZXIqKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCAw
KTsKKworICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl92aWV3X2dldChtX2luc3BlY3RlZFZpZXcpOworICAgIGlmICghaW5zcGVjdG9yVmlldykK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gaW5zcGVjdG9yVmlldzsK
KworICAgIFN0cmluZyBpbnNwZWN0b3JVcmkgPSBpbnNwZWN0b3JGaWxlc1BhdGgoKTsKKyAgICBl
d2tfdmlld191cmlfc2V0KG1faW5zcGVjdG9yVmlldywgaW5zcGVjdG9yVXJpLnV0ZjgoKS5kYXRh
KCkpOworCisgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsPiBmcm9udGVuZENs
aWVudCA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbChtX2luc3BlY3Rl
ZFZpZXcsIG1faW5zcGVjdG9yVmlldywgdGhpcykpOworICAgIG1fZnJvbnRlbmRDbGllbnQgPSBm
cm9udGVuZENsaWVudC5nZXQoKTsKKworICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX2luc3BlY3RvclZpZXcpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCk7CisgICAgY29udHJvbGxlci0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoZnJv
bnRlbmRDbGllbnQucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDbGllbnRFZmw6OmNs
b3NlSW5zcGVjdG9yRnJvbnRlbmQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYg
KG1fZnJvbnRlbmRDbGllbnQpCisgICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNw
ZWN0b3JXaW5kb3coZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6YnJpbmdG
cm9udGVuZFRvRnJvbnQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9mcm9udGVu
ZENsaWVudC0+YnJpbmdUb0Zyb250KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpo
aWdobGlnaHQoKQpAQCAtNTgsMjEgKzExMyw5OCBAQCB2b2lkIEluc3BlY3RvckNsaWVudEVmbDo6
aGlkZUhpZ2hsaWdodCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JDbGllbnRFZmw6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmLCBTdHJpbmcqKQorYm9v
bCBJbnNwZWN0b3JDbGllbnRFZmw6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCit7CisgICAgUGFnZSogZnJvbnRlbmRQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBh
Z2UobV9pbnNwZWN0b3JWaWV3KTsKKyAgICByZXR1cm4gZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250
ZW5kUGFnZShmcm9udGVuZFBhZ2UsIG1lc3NhZ2UpOworfQorCit2b2lkIEluc3BlY3RvckNsaWVu
dEVmbDo6cmVsZWFzZUZyb250ZW5kUGFnZSgpCit7CisgICAgbV9pbnNwZWN0b3JWaWV3ID0gMDsK
KyAgICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsKK30KKworU3RyaW5nIEluc3BlY3RvckNsaWVudEVm
bDo6aW5zcGVjdG9yRmlsZXNQYXRoKCkKK3sKKyAgICBTdHJpbmcgaW5zcGVjdG9yRmlsZXNQYXRo
ID0gbWFrZVN0cmluZygiZmlsZTovLyIsIFdFQl9JTlNQRUNUT1JfSU5TVEFMTF9ESVIsICIvaW5z
cGVjdG9yLmh0bWwiKTsKKyAgICBpZiAoYWNjZXNzKGluc3BlY3RvckZpbGVzUGF0aC51dGY4KCku
ZGF0YSgpLCBSX09LKSkgLy8gT24gc3VjY2VzcywgemVybyBpcyByZXR1cm5lZAorICAgICAgICBp
bnNwZWN0b3JGaWxlc1BhdGggPSBtYWtlU3RyaW5nKCJmaWxlOi8vIiwgV0VCX0lOU1BFQ1RPUl9E
SVIsICIvaW5zcGVjdG9yLmh0bWwiKTsKKworICAgIHJldHVybiBpbnNwZWN0b3JGaWxlc1BhdGg7
Cit9CisKK0luc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbChFdmFzX09iamVjdCogaW5zcGVjdGVkVmlldywgRXZhc19PYmplY3QqIGluc3BlY3RvclZp
ZXcsIEluc3BlY3RvckNsaWVudEVmbCogaW5zcGVjdG9yQ2xpZW50KQorICAgIDogSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbChFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0ZWRWaWV3KS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLCBFV0tQcml2YXRlOjpjb3JlUGFnZShpbnNwZWN0b3JWaWV3
KSwgYWRvcHRQdHIobmV3IEluc3BlY3RvckZyb250ZW5kU2V0dGluZ3NFZmwoKSkpCisgICAgLCBt
X2luc3BlY3RlZFZpZXcoaW5zcGVjdGVkVmlldykKKyAgICAsIG1faW5zcGVjdG9yVmlldyhpbnNw
ZWN0b3JWaWV3KQorICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xpZW50KQorewor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtX2luc3BlY3RvclZpZXcsICJpbnNw
ZWN0b3IsdmlldyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSwgdGhpcyk7Cit9
CisKK0luc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjp+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRF
ZmwoKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2RlbChtX2luc3BlY3RvclZp
ZXcsICJpbnNwZWN0b3IsdmlldyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSk7
CisKKyAgICBpZiAobV9pbnNwZWN0b3JDbGllbnQpIHsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGll
bnQtPnJlbGVhc2VGcm9udGVuZFBhZ2UoKTsKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSAw
OworICAgIH0KK30KKworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpsb2NhbGl6
ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpoaWRkZW5QYW5l
bHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
Cit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpicmluZ1RvRnJvbnQoKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xpZW50RWZsOjpzdG9yZVNl
dHRpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRFZmw6OmNsb3NlV2luZG93KCkKK3sKKyAgICBkZXN0cm95SW5zcGVjdG9yV2luZG93
KHRydWUpOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjppbnNwZWN0ZWRV
UkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDo6YXR0YWNoV2luZG93KCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIEluc3BlY3RvckNsaWVudEVmbDo6c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsOjpkZXRhY2hXaW5kb3coKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpzZXRBdHRhY2hl
ZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJv
b2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKK3sKKyAgICBpZiAobm90aWZ5SW5zcGVjdG9y
Q29udHJvbGxlcikKKyAgICAgICAgRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV9pbnNwZWN0ZWRWaWV3
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKworICAgIGlm
IChtX2luc3BlY3RvckNsaWVudCkKKyAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VG
cm9udGVuZFBhZ2UoKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9p
bnNwZWN0ZWRWaWV3LCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBtX2luc3BlY3RvclZpZXcpOwor
fQogCiB9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgKaW5kZXggZjkyZTk0ZGRhODEzYzViNzI5ZTA3OWYzZjY3
MWIzNThlMWZmNjliMS4uYjZhMDc4ZTcyNTg3YzkzM2Q1ZTNhNTI2MDdhYTEyYWFhNGQ3MzUxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50RWZsLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0g
SW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEw
IFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDEzICszMywx
OSBAQAogI2RlZmluZSBJbnNwZWN0b3JDbGllbnRFZmxfaAogCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgorI2lu
Y2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbDsKIGNsYXNzIFBhZ2U7CiAK
LWNsYXNzIEluc3BlY3RvckNsaWVudEVmbCA6IHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JDbGll
bnQgeworY2xhc3MgSW5zcGVjdG9yQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckNsaWVudCB7
CiBwdWJsaWM6CisgICAgSW5zcGVjdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CisgICAgfklu
c3BlY3RvckNsaWVudEVmbCgpOworCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3ll
ZCgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChJbnNwZWN0b3JD
b250cm9sbGVyKik7CkBAIC00OSwxMCArNTUsNDMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBoaWdobGlnaHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpOwogCi0gICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nKiB2
YWx1ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3JlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zy
b250ZW5kKGNvbnN0IFN0cmluZyYpOworCisgICAgdm9pZCByZWxlYXNlRnJvbnRlbmRQYWdlKCk7
CisgICAgU3RyaW5nIGluc3BlY3RvckZpbGVzUGF0aCgpOworCitwcml2YXRlOgorICAgIEV2YXNf
T2JqZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmll
dzsKKyAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogbV9mcm9udGVuZENsaWVudDsKK307
CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsIDogcHVibGljIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RWZsKEV2YXNfT2JqZWN0KiwgRXZhc19PYmplY3QqLCBJbnNwZWN0b3JDbGllbnRFZmwqKTsKKyAg
ICB+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmwoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIGxv
Y2FsaXplZFN0cmluZ3NVUkwoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoaWRkZW5QYW5lbHMoKTsK
KworICAgIHZpcnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0
IFN0cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygpOworICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2hXaW5kb3coKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdp
bmRvd0hlaWdodCh1bnNpZ25lZCk7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0b3JDbGll
bnQoKSB7IG1faW5zcGVjdG9yQ2xpZW50ID0gMDsgfQorICAgIHZvaWQgZGVzdHJveUluc3BlY3Rv
cldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2xsZXIpOworCitwcml2YXRlOgorICAg
IEV2YXNfT2JqZWN0KiBtX2luc3BlY3RlZFZpZXc7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVj
dG9yVmlldzsKKyAgICBJbnNwZWN0b3JDbGllbnRFZmwqIG1faW5zcGVjdG9yQ2xpZW50OworCiB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA1Zjk0YTNjMDQzMzhiZjk0
ZjFjYzYyZWFjY2Q3NTYxMzYzNGNlOWEyLi5hOTg3NjlhM2Y4ZTE4MjI1YTdkOTc1ZDkyZTkxZWJm
ZGU3OTNhYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQxLDYgKzQxLDcg
QEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgpAQCAtMzQ0LDYgKzM0NSw5IEBAIHN0cnVjdCBf
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb247CiAg
ICAgY29uc3QgY2hhciogY3Vyc29yR3JvdXA7CiAgICAgRXZhc19PYmplY3QqIGN1cnNvck9iamVj
dDsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3
OworI2VuZGlmCiAjaWZkZWYgSEFWRV9FQ09SRV9YCiAgICAgYm9vbCBpc1VzaW5nRWNvcmVYOwog
I2VuZGlmCkBAIC03MzAsOCArNzM0LDkgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
X2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBw
YWdlQ2xpZW50cy5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsKHNt
YXJ0RGF0YS0+c2VsZik7CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkNv
cmU6OkVkaXRvckNsaWVudEVmbChzbWFydERhdGEtPnNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRy
YWdDbGllbnQgPSBuZXcgV2ViQ29yZTo6RHJhZ0NsaWVudEVmbDsKLSAgICBwYWdlQ2xpZW50cy5p
bnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsOwotCisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKyAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcg
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZsKHNtYXJ0RGF0YS0+c2VsZik7CisjZW5kaWYKICAg
ICBwcml2LT5wYWdlID0gYWRvcHRQdHIobmV3IFdlYkNvcmU6OlBhZ2UocGFnZUNsaWVudHMpKTsK
IAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkBAIC00MzYyLDYgKzQzNjcsNDggQEAg
dm9pZCBld2tfdmlld19zZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3Nl
dChFdmFzX09iamVjdCAqZXdrVmlldywKICNlbmRpZgogfQogCit2b2lkIGV3a192aWV3X3dlYl9p
bnNwZWN0b3Jfc2hvdyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsK
KworICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2hvdygpOworI2VuZGlm
Cit9CisKK3ZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVj
dCogZXdrVmlldykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKKworICAgIHByaXYtPnBhZ2UtPmluc3BlY3RvckNv
bnRyb2xsZXIoKS0+Y2xvc2UoKTsKKyNlbmRpZgorfQorCitFdmFzX09iamVjdCogZXdrX3ZpZXdf
d2ViX2luc3BlY3Rvcl92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgc21hcnREYXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnRE
YXRhLCBwcml2LCAwKTsKKworICAgIHJldHVybiBwcml2LT5pbnNwZWN0b3JWaWV3OworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
dmlld19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3
KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcs
IHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsKKwor
ICAgIHByaXYtPmluc3BlY3RvclZpZXcgPSBpbnNwZWN0b3JWaWV3OworI2VuZGlmCit9CisKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBib29sIGV3a192aWV3X2FjY2VsZXJhdGVk
X2NvbXBvc2l0aW5nX29iamVjdF9jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfTmF0
aXZlX1N1cmZhY2UqIG5hdGl2ZVN1cmZhY2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3Qp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGY2NDVmNzIyMzJmZGMzNTRjMzg2YmYw
NDg5NDQyOTUxYTRmN2Q5MWEuLmQ1ZmViMzZiMzM5OWM3ZTRjYWFmYTUwNmNmNmUzMjdiZDdkNGRh
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC00Niw2ICs0Niw4IEBACiAgKiAgLSAi
aWNvbixyZWNlaXZlZCIsIHZvaWQ6IG1haW4gZnJhbWUgcmVjZWl2ZWQgYW4gaWNvbi4KICAqICAt
ICJpbnB1dG1ldGhvZCxjaGFuZ2VkIiwgRWluYV9Cb29sOiByZXBvcnRzIHRoYXQgaW5wdXQgbWV0
aG9kIHdhcyBjaGFuZ2VkIGFuZAogICogICAgaXQgZ2l2ZXMgYSBib29sZWFuIHZhbHVlIHdoZXRo
ZXIgaXQncyBlbmFibGVkIG9yIG5vdCBhcyBhbiBhcmd1bWVudC4KKyAqICAtICJpbnNwZWN0b3Is
dmlldyxjbG9zZSIsIEV2YXNfT2JqZWN0KjogcmVxdWVzdCB0byBjbG9zZSB0aGUgdmlldyBmb3Ig
d2ViIGluc3BlY3Rvci4KKyAqICAtICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCB2b2lkOiByZXF1
ZXN0IHRvIGNyZWF0ZSB0aGUgbmV3IHZpZXcgZm9yIHdlYiBpbnNwZWN0b3IuCiAgKiAgLSAianMs
d2luZG93b2JqZWN0LGNsZWFyIiwgdm9pZDogUmVwb3J0IHRoYXQgdGhlIEpTIHdpbmRvdyBvYmpl
Y3QgaGFzIGJlZW4gY2xlYXJlZC4KICAqICAtICJsaW5rLGhvdmVyLGluIiwgY29uc3QgY2hhciAq
bGlua1syXTogcmVwb3J0cyBtb3VzZSBpcyBvdmVyIGEgbGluay4KICAqICAgIEl0IGdpdmVzIHRo
ZSB1cmwgaW4gbGlua1swXSBhbmQgbGluaydzIHRpdGxlIGluIGxpbmtbMV0gYXMgYW4gYXJndW1l
bnQuCkBAIC0yNjQ0LDYgKzI2NDYsNTMgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0
dGluZ193ZWJfYXVkaW9fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFaW5h
X0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0ICpvLCBF
aW5hX0Jvb2wgZW5hYmxlKTsKIAorLyoqCisgKiBTaG93IHRoZSB3ZWIgaW5zcGVjdG9yIHRvIGRl
YnVnIGEgd2ViIHBhZ2UuCisgKgorICogVGhlIGZvbGxvd2luZyBzaWduYWxzIGFyZSBlbWlpdGVk
LgorICogImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIgYW5kICJpbnNwZWN0b3IsdmlldyxjbG9zZSIK
KyAqIFRoZSBmaXJzdCBvbmUgd2lsbCBiZSBjYWxsZWQgdG8gcmVxdWVzdCB0aGUgdmlldyBmb3Ig
d2ViIGluc3BlY3RvciBvbiB2aWV3IHRoYXQgd2lsbCBiZSBpbnNwZWN0ZWQuCisgKiBUaGlzIGNh
bGxiYWNrIHNob3VsZCBjcmVhdGUgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3IgYW5kIHNldCB0
aGUgdmlldyB3aXRoIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoKS4KKyAqIFRoZSBz
ZWNvbmQgb25lIHdpbGwgYmUgY2FsbGVkIHRvIGNsb3NlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVj
dG9yIG9uIHZpZXcgaGF2aW5nIHRoZSB3ZWIgaW5zcGVjdG9yIGFmdGVyIGRpc2Nvbm5lY3Rpbmcg
ZnJvbnRlbmQKKyAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIHJlbW92ZSB0aGUgdmlldyBmb3Igd2Vi
IGluc3BlY3Rvci4KKyAqCisgKiBXaGVuIHRoZSB2aWV3IGhhdmluZyB0aGUgd2ViIGluc3BlY3Rv
ciBpcyByZW1vdmVkLAorICogcGxlYXNlIGVtaXQgdGhlICJpbnNwZWN0b3IsdmlldyxkZXN0cm95
IiBzaWduYWwgb24gdmlldyBmb3Igd2ViIGluc3BlY3Rvci4KKyAqCisgKiBAcGFyYW0gbyBUaGUg
dmlldyB0byBzaG93IHRoZSB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIEBzZWUgZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl9jbG9zZSgpCisgKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19z
ZXQoKQorICovCitFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9zaG93KGNvbnN0IEV2
YXNfT2JqZWN0ICpvKTsKKworLyoqCisgKiBDbG9zZSB0aGUgd2ViIGluc3BlY3RvciB2aWV3Cisg
KgorICogQHBhcmFtIG8gVGhlIHZpZXcgdG8gY2xvc2UgdGhlIHdlYiBpbnNwZWN0b3IuCisgKgor
ICogQHNlZSBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coKQorICogQHNlZSBld2tfdmlld193
ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KCkKKyAqLworRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNw
ZWN0b3JfY2xvc2UoY29uc3QgRXZhc19PYmplY3QgKm8pOworCisvKioKKyAqIEdldCB0aGUgdmll
dyBvZiB3ZWIgaW5zcGVjdG9yLgorICoKKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRoYXQgaXMgaW5z
cGVjdGVkLgorICoKKyAqIEByZXR1cm4gdmlldyBvYmplY3Qgb24gc3VjY2VzcyBvciBAYyAwIG9u
IGZhaWx1cmUKKyAqLworRUFQSSBFdmFzX09iamVjdCogZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92
aWV3X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgorICogU2V0IHRoZSB2aWV3IG9m
IHdlYiBpbnNwZWN0b3IuCisgKgorICogQHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBpcyBpbnNwZWN0
ZWQuCisgKiBAcGFyYW0gaW5zcGVjdG9yX3ZpZXcgVGhlIHZpZXcgb2Ygd2ViIGluc3BlY3Rvci4K
KyAqLworRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoRXZhc19PYmpl
Y3QgKm8sIEV2YXNfT2JqZWN0ICppbnNwZWN0b3Jfdmlldyk7CisKICNpZmRlZiBfX2NwbHVzcGx1
cwogfQogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>