<?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>135640</bug_id>
          
          <creation_ts>2014-08-05 22:54:08 -0700</creation_ts>
          <short_desc>[EFL] Add API to set application name for the user agent</short_desc>
          <delta_ts>2014-08-13 06:18:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1027097</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-05 22:54:08 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027099</commentid>
    <comment_count>1</comment_count>
      <attachid>236082</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-05 23:01:46 -0700</bug_when>
    <thetext>Created attachment 236082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027450</commentid>
    <comment_count>2</comment_count>
      <attachid>236082</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2014-08-07 01:51:59 -0700</bug_when>
    <thetext>Comment on attachment 236082
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:727
&gt; + * @return @c eina_stringshare containing the current user agent, or

Does it return application name only or whole user agent string (containing the application name if it was previously set?)

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:739
&gt; + * Since browser war, most browsers contain extra compoents such as &apos;Mozilla/5.0&apos; in the user agent string.

I am wondering if this sentence introduces anything interesting to the user.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:741
&gt; + * Using this API,

Nit: As a result of the usage this API,...

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:742
&gt; + * the user agent string will consist of the common components which system provides and @a application_name.

system -&gt; web engine ?

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp:1078
&gt; +    ASSERT_TRUE(ewk_view_user_agent_set(webView(), customUserAgent));
&gt; +    ASSERT_STREQ(customUserAgent, ewk_view_user_agent_get(webView()));

What does it actually test? We have a separate ewk_view_user_agent test to verify such behavior. Or maybe we should check what ewk_view_application_name_for_user_agent_get(webView()) returns after setting user agent?

&gt; Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp:71
&gt; +    if (!applicationNameForUserAgent)
&gt; +        return standardUserAgentString;
&gt; +
&gt; +    return standardUserAgentString + &apos; &apos; + applicationNameForUserAgent;

Nit: return applicationNameForUserAgent.isEmpty() ? standardUserAgentString : standardUserAgentString + &apos; &apos; + applicationNameForUserAgent;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027713</commentid>
    <comment_count>3</comment_count>
      <attachid>236246</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-07 17:35:10 -0700</bug_when>
    <thetext>Created attachment 236246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027716</commentid>
    <comment_count>4</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-07 17:42:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 236082 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236082&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:727
&gt; &gt; + * @return @c eina_stringshare containing the current user agent, or
&gt; 
&gt; Does it return application name only or whole user agent string (containing the application name if it was previously set?)
&gt; 
My mistake, fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:739
&gt; &gt; + * Since browser war, most browsers contain extra compoents such as &apos;Mozilla/5.0&apos; in the user agent string.
&gt; 
&gt; I am wondering if this sentence introduces anything interesting to the user.
&gt; 
Removed.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:741
&gt; &gt; + * Using this API,
&gt; 
&gt; Nit: As a result of the usage this API,...
&gt; 
I changed as other way.

&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:742
&gt; &gt; + * the user agent string will consist of the common components which system provides and @a application_name.
&gt; 
&gt; system -&gt; web engine ?
Done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp:1078
&gt; &gt; +    ASSERT_TRUE(ewk_view_user_agent_set(webView(), customUserAgent));
&gt; &gt; +    ASSERT_STREQ(customUserAgent, ewk_view_user_agent_get(webView()));
&gt; 
&gt; What does it actually test? We have a separate ewk_view_user_agent test to verify such behavior. Or maybe we should check what ewk_view_application_name_for_user_agent_get(webView()) returns after setting user agent?
I want to test custom user agent has high priority.
But you mentioned, it looks not good.
I changed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp:71
&gt; &gt; +    if (!applicationNameForUserAgent)
&gt; &gt; +        return standardUserAgentString;
&gt; &gt; +
&gt; &gt; +    return standardUserAgentString + &apos; &apos; + applicationNameForUserAgent;
&gt; 
&gt; Nit: return applicationNameForUserAgent.isEmpty() ? standardUserAgentString : standardUserAgentString + &apos; &apos; + applicationNameForUserAgent;

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028745</commentid>
    <comment_count>5</comment_count>
      <attachid>236246</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2014-08-13 00:56:47 -0700</bug_when>
    <thetext>Comment on attachment 236246
Patch

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

&gt; Source/WebKit2/ChangeLog:10
&gt; +        It&apos;s usefull for application to set only application information without knowledge

Typo: useful

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:743
&gt; + * If custom user agent it not set by ewk_view_user_agent_set(),

Typo: it -&gt; is

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:748
&gt; + * @param o view to set the user agent

to set application name for the user agent

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:749
&gt; + * @param application_name the application_name to set or @c NULL to restore the default one

would be nice to specify what will be restored (the common user agent string without the application name?)

&gt; Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp:1077
&gt; +    ASSERT_STREQ(customUserAgent, ewk_view_user_agent_get(webView()));

Can we add additional check showing that ewk_view_user_agent_get(webView()) doesn&apos;t contain an application name (if the custom user agent was set) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028749</commentid>
    <comment_count>6</comment_count>
      <attachid>236505</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-13 01:49:11 -0700</bug_when>
    <thetext>Created attachment 236505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028750</commentid>
    <comment_count>7</comment_count>
      <attachid>236505</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2014-08-13 01:57:25 -0700</bug_when>
    <thetext>Comment on attachment 236505
Patch

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

LGTM.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:743
&gt; + * If custom user agent it not set by ewk_view_user_agent_set(),

it - is

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:749
&gt; + * @param application_name the application_name to set or @c NULL to remove application_name in the common user agent string.

in -&gt; from</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028755</commentid>
    <comment_count>8</comment_count>
      <attachid>236505</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-08-13 02:54:35 -0700</bug_when>
    <thetext>Comment on attachment 236505
Patch

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

LGTM too.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:715
&gt; + * @note If you just want to add your application name in ther user agent,

typo : ther -&gt; the or their ?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.h:741
&gt; + * where the origin server selects suitable content or operating parameters for the response (wikipedia).

IMHO, &quot;(wikipedia)&quot; looks redundant comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028782</commentid>
    <comment_count>9</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2014-08-13 06:18:56 -0700</bug_when>
    <thetext>Committed r172520: &lt;http://trac.webkit.org/changeset/172520&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236082</attachid>
            <date>2014-08-05 23:01:46 -0700</date>
            <delta_ts>2014-08-07 17:35:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135640-20140806150133.patch</filename>
            <type>text/plain</type>
            <size>11316</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYWVmOGY4MTE0YTBmYTkw
ODM3MTJjYTY3NmE3MTNkY2YzYTFmMmU0Yy4uZjVjYzZjOWIxMmJjYWNmMjk2ZWJjNjJkNjRhMjhh
MDhiNjdiZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA4LTA1ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgQVBJ
IHRvIHNldCBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgdXNlciBhZ2VudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NjQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19hcHBsaWNhdGlvbl9u
YW1lX2Zvcl91c2VyX2FnZW50X3NldCB0byBtYWtlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHJpbmcK
KyAgICAgICAgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIHdoaWNoIGFwcGxpY2F0aW9uIHBhc3Nlcy4K
KyAgICAgICAgSXQncyB1c2VmdWxsIGZvciBhcHBsaWNhdGlvbiB0byBzZXQgb25seSBhcHBsaWNh
dGlvbiBpbmZvcm1hdGlvbiB3aXRob3V0IGtub3dsZWRnZQorICAgICAgICBvZiBsZWdhY3kgdXNl
ciBhZ2VudCBjb21wb25lbnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKEV3a1ZpZXc6OnNl
dEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlldy5oOgorICAgICAgICAoRXdrVmlldzo6YXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAg
IChld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X3NldCk6CisgICAgICAg
IChld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X2dldCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6CisgICAgICAgIChURVNUX0YpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6CisKIDIwMTQtMDgtMDUgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE2
NDMzNyk6IFBhZ2VzIGFyZSBzb21ldGltZXMgY3V0IG9mZi9vcmllbnRlZCBpbmNvcnJlY3RseSBh
ZnRlciB1c2luZyBXS1RodW1ibmFpbFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlldy5jcHAKaW5kZXggNTBkMzRlZGMzOGZhOWIyNGMwZTFlOWVkMmM3OGQwNDJi
MTc3YjQ5Ni4uN2ViZjgyMGQ4OTJkZjY0MzNlOThjZmZkYmZhOTA5Yjc1ZTVkOTE3MCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKQEAgLTI4Miw2ICsy
ODIsNyBAQCBFd2tWaWV3OjpFd2tWaWV3KFdLVmlld1JlZiB2aWV3LCBFdmFzX09iamVjdCogZXZh
c09iamVjdCkKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KHN0ZDo6bWFrZV91bmlxdWU8RXdrQmFj
a0ZvcndhcmRMaXN0PihXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3Qod2tQYWdlKCkpKSkKICAgICAs
IG1fdXNlQ3VzdG9tQ3Vyc29yKGZhbHNlKQogICAgICwgbV91c2VyQWdlbnQoV0tFaW5hU2hhcmVk
U3RyaW5nKEFkb3B0V0ssIFdLUGFnZUNvcHlVc2VyQWdlbnQod2tQYWdlKCkpKSkKKyAgICAsIG1f
YXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBX
S1BhZ2VDb3B5QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KHdrUGFnZSgpKSkpCiAgICAgLCBt
X21vdXNlRXZlbnRzRW5hYmxlZChmYWxzZSkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
ICwgbV90b3VjaEV2ZW50c0VuYWJsZWQoZmFsc2UpCkBAIC03MTIsNiArNzEzLDIwIEBAIHZvaWQg
RXdrVmlldzo6c2V0VXNlckFnZW50KGNvbnN0IGNoYXIqIHVzZXJBZ2VudCkKICAgICBtX3VzZXJB
Z2VudCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1BhZ2VDb3B5VXNlckFnZW50KHdr
UGFnZSgpKSk7CiB9CiAKK3ZvaWQgRXdrVmlldzo6c2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50KGNvbnN0IGNoYXIqIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkKK3sKKyAgICBpZiAo
bV9hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgPT0gYXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dCA9IGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsKKworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB3a0FwcGxpY2F0aW9uTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KSk7CisgICAgV0tQYWdlU2V0QXBw
bGljYXRpb25OYW1lRm9yVXNlckFnZW50KHdrUGFnZSgpLCB3a0FwcGxpY2F0aW9uTmFtZS5nZXQo
KSk7CisKKyAgICAvLyBXS1BhZ2VTZXRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgYWxzbyBj
aGFuZ2VzIHVzZXIgYWdlbnQuCisgICAgbV91c2VyQWdlbnQgPSBXS0VpbmFTaGFyZWRTdHJpbmco
QWRvcHRXSywgV0tQYWdlQ29weVVzZXJBZ2VudCh3a1BhZ2UoKSkpOworfQorCiB2b2lkIEV3a1Zp
ZXc6OnNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKG1fbW91
c2VFdmVudHNFbmFibGVkID09IGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmgKaW5kZXggMWM0ODJjZmFmOGFjOTY5ZTlmMGFjNWJiNDJkZmUwNjRjYWJm
N2Q2Zi4uYTA3YjM1MzQxYzBiZmI2MDk3YjJhZWZlYzA1ODc2NDE2OTIxYzhmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMTE3LDYgKzExNyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoY29uc3QgY2hhciog
Y3VzdG9tRW5jb2RpbmcpOwogICAgIGNvbnN0IGNoYXIqIHVzZXJBZ2VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fdXNlckFnZW50OyB9CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgY2hhciogdXNl
ckFnZW50KTsKKyAgICBjb25zdCBjaGFyKiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKSBj
b25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsgfQorICAgIHZvaWQg
c2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KGNvbnN0IGNoYXIqIGFwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudCk7CiAKICAgICBib29sIG1vdXNlRXZlbnRzRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fbW91c2VFdmVudHNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRNb3VzZUV2ZW50c0Vu
YWJsZWQoYm9vbCBlbmFibGVkKTsKQEAgLTI3NCw2ICsyNzYsNyBAQCBwcml2YXRlOgogICAgIFdL
RWluYVNoYXJlZFN0cmluZyBtX3RoZW1lOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX2N1c3Rv
bUVuY29kaW5nOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX3VzZXJBZ2VudDsKKyAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQ7CiAgICAgYm9vbCBt
X21vdXNlRXZlbnRzRW5hYmxlZDsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wg
bV90b3VjaEV2ZW50c0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAKaW5kZXggNjNhZDA2MjI4MmI0MjAxNDQwNWNkN2U3ZjgzNGRiMmI0OTNl
ODdiMi4uZDQzYjZkYmZhODJlYTY4NjQ3NmJiNzVmOTlkNjc5MWQ2Y2VlYTQ1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMzYzLDYgKzM2
MywyMSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfdXNlcl9hZ2VudF9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IGNoYXIqIHVzZXJBZ2VudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRWlu
YV9Cb29sIGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfc2V0KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiBhcHBsaWNhdGlvbk5hbWUpCit7CisgICAgRVdL
X1ZJRVdfSU1QTF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIGltcGwsIGZhbHNlKTsKKworICAgIGlt
cGwtPnNldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudChhcHBsaWNhdGlvbk5hbWUpOworICAg
IHJldHVybiB0cnVlOworfQorCitjb25zdCBjaGFyKiBld2tfdmlld19hcHBsaWNhdGlvbl9uYW1l
X2Zvcl91c2VyX2FnZW50X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBF
V0tfVklFV19JTVBMX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgMCk7CisKKyAgICByZXR1
cm4gaW1wbC0+YXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KCk7Cit9CisKIGlubGluZSBXS0Zp
bmRPcHRpb25zIHRvV0tGaW5kT3B0aW9ucyhFd2tfRmluZF9PcHRpb25zIG9wdGlvbnMpCiB7CiAg
ICAgdW5zaWduZWQgd2tGaW5kT3B0aW9ucyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuaAppbmRleCA5NzYxMzNjODJkNDJiODdhMzA2Y2E2OGExNDIwNmYy
MDg0YjQ4NmMxLi5lZGUzYmY3NmEwNmZlZGE3OTE3NWEwN2I4ZjMyM2Y1OWY1NzhmODUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKQEAgLTY5Nyw4ICs2
OTcsOSBAQCBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19jdXN0b21fZW5jb2Rpbmdfc2V0KEV2YXNf
T2JqZWN0ICpvLCBjb25zdCBjaGFyICplbmNvZGluZwogICoKICAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0IHRvIGdldCB0aGUgY3VycmVudCB1c2VyIGFnZW50CiAgKgotICogQHJldHVybiBAYyBlaW5h
X3N0cmluZ3NoYXJlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgdXNlciBhZ2VudCwgb3IKLSAqICAg
ICAgICAgQGMgZGVmYXVsdCB1c2VyIGFnZW50IGlmIGl0J3Mgbm90IHNldAorICogQHJldHVybiBA
YyBlaW5hX3N0cmluZ3NoYXJlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgdXNlciBhZ2VudCwgb3Ig
QGMgZGVmYXVsdCB1c2VyIGFnZW50CisgKgorICogQHNlZSBld2tfdmlld191c2VyX2FnZW50X3Nl
dCgpCiAgKi8KIEVBUEkgY29uc3QgY2hhciAqZXdrX3ZpZXdfdXNlcl9hZ2VudF9nZXQoY29uc3Qg
RXZhc19PYmplY3QgKm8pOwogCkBAIC03MDgsMTEgKzcwOSw1NiBAQCBFQVBJIGNvbnN0IGNoYXIg
KmV3a192aWV3X3VzZXJfYWdlbnRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqIEBwYXJh
bSBvIHZpZXcgdG8gc2V0IHRoZSB1c2VyIGFnZW50CiAgKiBAcGFyYW0gdXNlcl9hZ2VudCB0aGUg
dXNlciBhZ2VudCBzdHJpbmcgdG8gc2V0IG9yIEBjIE5VTEwgdG8gcmVzdG9yZSB0aGUgZGVmYXVs
dCBvbmUKICAqCisgKiBAbm90ZSBJZiB5b3UganVzdCB3YW50IHRvIGFkZCB5b3VyIGFwcGxpY2F0
aW9uIG5hbWUgaW4gdGhlciB1c2VyIGFnZW50LAorICogICAgICAgdXNlIGV3a192aWV3X2FwcGxp
Y2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfc2V0KCkuCisgKgogICogQHJldHVybiBAYyBFSU5B
X1RSVUUgb24gc3VjY2VzcyBAYyBFSU5BX0ZBTFNFIG90aGVyd2lzZQorICoKKyAqIEBzZWUgZXdr
X3ZpZXdfYXBwbGljYXRpb25fbmFtZV9mb3JfdXNlcl9hZ2VudF9nZXQoKQorICogQHNlZSBld2tf
dmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X3NldCgpCiAgKi8KIEVBUEkgRWlu
YV9Cb29sIGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KEV2YXNfT2JqZWN0ICpvLCBjb25zdCBjaGFy
ICp1c2VyX2FnZW50KTsKIAogLyoqCisgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBuYW1lIGZvciB0
aGUgdXNlciBhZ2VudCBzdHJpbmcuCisgKgorICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZ2V0
IHRoZSBjdXJyZW50IHVzZXIgYWdlbnQKKyAqCisgKiBAcmV0dXJuIEBjIGVpbmFfc3RyaW5nc2hh
cmUgY29udGFpbmluZyB0aGUgY3VycmVudCB1c2VyIGFnZW50LCBvcgorICogICAgICAgICBAYyBk
ZWZhdWx0IHVzZXIgYWdlbnQgaWYgaXQncyBub3Qgc2V0CisgKgorICogQHNlZSBld2tfdmlld19h
cHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X3NldCgpCisgKi8KK0VBUEkgY29uc3QgY2hh
ciAqZXdrX3ZpZXdfYXBwbGljYXRpb25fbmFtZV9mb3JfdXNlcl9hZ2VudF9nZXQoY29uc3QgRXZh
c19PYmplY3QgKm8pOworCisvKioKKyAqIFNldHMgdGhlIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHRo
ZSB1c2VyIGFnZW50IHN0cmluZy4KKyAqCisgKiBJbiBIVFRQLCB0aGUgdXNlciBhZ2VudCBzdHJp
bmcgaXMgdXNlZCBmb3IgY29udGVudCBuZWdvdGlhdGlvbiwKKyAqIHdoZXJlIHRoZSBvcmlnaW4g
c2VydmVyIHNlbGVjdHMgc3VpdGFibGUgY29udGVudCBvciBvcGVyYXRpbmcgcGFyYW1ldGVycyBm
b3IgdGhlIHJlc3BvbnNlICh3aWtpcGVkaWEpLgorICogU2luY2UgYnJvd3NlciB3YXIsIG1vc3Qg
YnJvd3NlcnMgY29udGFpbiBleHRyYSBjb21wb2VudHMgc3VjaCBhcyAnTW96aWxsYS81LjAnIGlu
IHRoZSB1c2VyIGFnZW50IHN0cmluZy4KKyAqCisgKiBVc2luZyB0aGlzIEFQSSwKKyAqIHRoZSB1
c2VyIGFnZW50IHN0cmluZyB3aWxsIGNvbnNpc3Qgb2YgdGhlIGNvbW1vbiBjb21wb25lbnRzIHdo
aWNoIHN5c3RlbSBwcm92aWRlcyBhbmQgQGEgYXBwbGljYXRpb25fbmFtZS4KKyAqCisgKiBJZiB5
b3Ugd2FudCB0byBjaGFuZ2UgdGhlIHdob2xlIHVzZXIgYWdlbnQgc3RyaW5nLCBwbGVhc2UgdXNl
IGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KCkuCisgKiBJZiBjdXN0b20gdXNlciBhZ2VudCBpcyBz
ZXQgYnkgZXdrX3ZpZXdfdXNlcl9hZ2VudF9zZXQoKSwgQGEgYXBwbGljYXRpb25fbmFtZSBpcyBp
Z25vcmVkIHVudGlsIHVzZXIgYWdlbnQgaXMgcmVzdG9yZWQuCisgKgorICogQHBhcmFtIG8gdmll
dyB0byBzZXQgdGhlIHVzZXIgYWdlbnQKKyAqIEBwYXJhbSBhcHBsaWNhdGlvbl9uYW1lIHRoZSBh
cHBsaWNhdGlvbl9uYW1lIHRvIHNldCBvciBAYyBOVUxMIHRvIHJlc3RvcmUgdGhlIGRlZmF1bHQg
b25lCisgKgorICogQG5vdGUgQmVsb3cgaXMgdGhlIGV4YW1wbGUgb2YgZGVmYXVsdCB1c2VyIGFn
ZW50IHN0cmluZy4KKyAqCisgKiAgICAgICBNb3ppbGxhLzUuMCAoWDExOyBMaW51eDsgVW5rbm93
bikgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzguMCBTYWZh
cmkvNjAxLjEgQGEgYXBwbGljYXRpb25fbmFtZQorICoKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVF
IG9uIHN1Y2Nlc3MgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKKyAqCisgKiBAc2VlIGV3a192aWV3
X3VzZXJfYWdlbnRfc2V0KCkKKyAqIEBzZWUgZXdrX3ZpZXdfdXNlcl9hZ2VudF9nZXQoKQorICov
CitFQVBJIEVpbmFfQm9vbCBld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50
X3NldChFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAqYXBwbGljYXRpb25fbmFtZSk7CisKKy8q
KgogICogU2VhcmNoZXMgYW5kIGhpZ2h0bGlnaHRzIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGRv
Y3VtZW50LgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRvIGZpbmQgdGV4dApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3Zp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2sy
X3ZpZXcuY3BwCmluZGV4IDk2NmUwODgwMmM2ODE5MGNlMzczZDM5NGM4ZjlmOWVlYzNiZWEzN2Qu
LmIwNjY2YzQ5ZjVjYTRhMTg5M2E0ZWY5YzNjNWNlMDYzYjEzNGY2M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfdmll
dy5jcHAKQEAgLTEwNjUsNiArMTA2NSwxOSBAQCBURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmll
d191c2VyX2FnZW50KQogICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGRlZmF1bHRVc2VyQWdlbnQp
OwogfQogCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zv
cl91c2VyX2FnZW50KQoreworICAgIGNvbnN0IGNoYXIgY3VzdG9tVXNlckFnZW50W10gPSAiRm9v
IjsKKyAgICBjb25zdCBjaGFyIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudFtdID0gIkJhciI7
CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2Fn
ZW50X3NldCh3ZWJWaWV3KCksIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkpOworICAgIEFT
U0VSVF9TVFJFUShhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQsIGV3a192aWV3X2FwcGxpY2F0
aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfZ2V0KHdlYlZpZXcoKSkpOworICAgIEFTU0VSVF9UUlVF
KHN0cnN0cihld2tfdmlld191c2VyX2FnZW50X2dldCh3ZWJWaWV3KCkpLCBhcHBsaWNhdGlvbk5h
bWVGb3JVc2VyQWdlbnQpKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X3VzZXJfYWdlbnRf
c2V0KHdlYlZpZXcoKSwgY3VzdG9tVXNlckFnZW50KSk7CisgICAgQVNTRVJUX1NUUkVRKGN1c3Rv
bVVzZXJBZ2VudCwgZXdrX3ZpZXdfdXNlcl9hZ2VudF9nZXQod2ViVmlldygpKSk7Cit9CisKIHN0
YXRpYyB2b2lkIHNjcmlwdEV4ZWN1dGVDYWxsYmFjayhFdmFzX09iamVjdCosIGNvbnN0IGNoYXIq
IHJldHVyblZhbHVlLCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICBFaW5hX1N0cmJ1ZiogYnVmZmVy
ID0gc3RhdGljX2Nhc3Q8RWluYV9TdHJidWYqPih1c2VyRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKaW5kZXggNDkxZDVkYmVlYzcz
YWIxN2M4Njg1NTNhNGU0N2IxMjhhY2I0NmY1MC4uMzFlZGIyYTk1ZjE1MDNjZmZmMTVhODExZDkx
NTk3MjBkOTAwMDZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJQYWdlUHJveHlFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
UGFnZVByb3h5RWZsLmNwcApAQCAtNDIsMTcgKzQyLDE5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
bGF0Zm9ybUluaXRpYWxpemUoKQogewogfQogCi1TdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFy
ZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIC8qYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50Ki8p
CitTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFw
cGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkKIHsKLSAgICBXVEY6OlN0cmluZyBwbGF0Zm9ybTsK
LSAgICBXVEY6OlN0cmluZyB2ZXJzaW9uOwotICAgIFdURjo6U3RyaW5nIG9zVmVyc2lvbjsKKyAg
ICBTdHJpbmcgcGxhdGZvcm07CisgICAgU3RyaW5nIHZlcnNpb247CisgICAgU3RyaW5nIG9zVmVy
c2lvbjsKKyAgICBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRTdHJpbmc7CiAKICNpZiBQTEFURk9S
TShYMTEpCiAgICAgcGxhdGZvcm0gPSAiWDExIjsKICNlbHNlCiAgICAgcGxhdGZvcm0gPSAiVW5r
bm93biI7CiAjZW5kaWYKKwogICAgIHZlcnNpb24gPSBTdHJpbmc6Om51bWJlcihXRUJLSVRfTUFK
T1JfVkVSU0lPTikgKyAnLicgKyBTdHJpbmc6Om51bWJlcihXRUJLSVRfTUlOT1JfVkVSU0lPTikg
KyAnKyc7CiAgICAgc3RydWN0IHV0c25hbWUgbmFtZTsKICAgICBpZiAodW5hbWUoJm5hbWUpICE9
IC0xKQpAQCAtNjAsOCArNjIsMTMgQEAgU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2Vy
QWdlbnQoY29uc3QgU3RyaW5nJiAvKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2UKICAgICBlbHNl
CiAgICAgICAgIG9zVmVyc2lvbiA9ICJVbmtub3duIjsKIAotICAgIHJldHVybiAiTW96aWxsYS81
LjAgKCIgKyBwbGF0Zm9ybSArICI7ICIgKyBvc1ZlcnNpb24gKyAiKSBBcHBsZVdlYktpdC8iICsg
dmVyc2lvbgorICAgIHN0YW5kYXJkVXNlckFnZW50U3RyaW5nID0gIk1vemlsbGEvNS4wICgiICsg
cGxhdGZvcm0gKyAiOyAiICsgb3NWZXJzaW9uICsgIikgQXBwbGVXZWJLaXQvIiArIHZlcnNpb24K
ICAgICAgICAgKyAiIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJpLyIgKyB2
ZXJzaW9uOworCisgICAgaWYgKCFhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCisgICAgICAg
IHJldHVybiBzdGFuZGFyZFVzZXJBZ2VudFN0cmluZzsKKworICAgIHJldHVybiBzdGFuZGFyZFVz
ZXJBZ2VudFN0cmluZyArICcgJyArIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdU
Rjo6U3RyaW5nPiYgLypjb21tYW5kc0xpc3QqLykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236246</attachid>
            <date>2014-08-07 17:35:10 -0700</date>
            <delta_ts>2014-08-13 01:49:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135640-20140808093457.patch</filename>
            <type>text/plain</type>
            <size>11161</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjJkYjhkNzIwN2I2ZTNl
OGJmNmJlMGFlOTIxMjFlOGM2NTEyMGFlOS4uMWQyNjFkMWIyNWRiNzQxNmY3YTFjZGUwN2ZjZjUz
ODlmYTJjY2M2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA4LTA3ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgQVBJ
IHRvIHNldCBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgdXNlciBhZ2VudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NjQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19hcHBsaWNhdGlvbl9u
YW1lX2Zvcl91c2VyX2FnZW50X3NldCB0byBtYWtlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHJpbmcK
KyAgICAgICAgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIHdoaWNoIGFwcGxpY2F0aW9uIHBhc3Nlcy4K
KyAgICAgICAgSXQncyB1c2VmdWxsIGZvciBhcHBsaWNhdGlvbiB0byBzZXQgb25seSBhcHBsaWNh
dGlvbiBpbmZvcm1hdGlvbiB3aXRob3V0IGtub3dsZWRnZQorICAgICAgICBvZiBsZWdhY3kgdXNl
ciBhZ2VudCBjb21wb25lbnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKyAgICAgICAgKEV3a1ZpZXc6OnNl
dEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlldy5oOgorICAgICAgICAoRXdrVmlldzo6YXBwbGljYXRpb25OYW1lRm9yVXNlckFn
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAg
IChld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X3NldCk6CisgICAgICAg
IChld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X2dldCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHA6CisgICAgICAgIChURVNUX0YpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6CisKIDIwMTQtMDgtMDcgIFRpbW90aHkg
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIHNldEN1c3RvbVN3
aXBlVmlld3MgaW5zaWRlIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCBjbGllbnQgY2FsbGJhY2sg
aXMgaWdub3JlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cAppbmRleCA1MGQzNGVkYzM4ZmE5YjI0YzBlMWU5ZWQyYzc4ZDA0MmIxNzdiNDk2Li43ZWJmODIw
ZDg5MmRmNjQzM2U5OGNmZmRiZmE5MDliNzVlNWQ5MTcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtMjgyLDYgKzI4Miw3IEBAIEV3a1ZpZXc6
OkV3a1ZpZXcoV0tWaWV3UmVmIHZpZXcsIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAgICwg
bV9iYWNrRm9yd2FyZExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxFd2tCYWNrRm9yd2FyZExpc3Q+KFdL
UGFnZUdldEJhY2tGb3J3YXJkTGlzdCh3a1BhZ2UoKSkpKQogICAgICwgbV91c2VDdXN0b21DdXJz
b3IoZmFsc2UpCiAgICAgLCBtX3VzZXJBZ2VudChXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywg
V0tQYWdlQ29weVVzZXJBZ2VudCh3a1BhZ2UoKSkpKQorICAgICwgbV9hcHBsaWNhdGlvbk5hbWVG
b3JVc2VyQWdlbnQoV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLUGFnZUNvcHlBcHBsaWNh
dGlvbk5hbWVGb3JVc2VyQWdlbnQod2tQYWdlKCkpKSkKICAgICAsIG1fbW91c2VFdmVudHNFbmFi
bGVkKGZhbHNlKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgLCBtX3RvdWNoRXZlbnRz
RW5hYmxlZChmYWxzZSkKQEAgLTcxMiw2ICs3MTMsMjAgQEAgdm9pZCBFd2tWaWV3OjpzZXRVc2Vy
QWdlbnQoY29uc3QgY2hhciogdXNlckFnZW50KQogICAgIG1fdXNlckFnZW50ID0gV0tFaW5hU2hh
cmVkU3RyaW5nKEFkb3B0V0ssIFdLUGFnZUNvcHlVc2VyQWdlbnQod2tQYWdlKCkpKTsKIH0KIAor
dm9pZCBFd2tWaWV3OjpzZXRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoY29uc3QgY2hhciog
YXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQoreworICAgIGlmIChtX2FwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudCA9PSBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50ID0gYXBwbGljYXRpb25O
YW1lRm9yVXNlckFnZW50OworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrQXBwbGlj
YXRpb25OYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhhcHBsaWNh
dGlvbk5hbWVGb3JVc2VyQWdlbnQpKTsKKyAgICBXS1BhZ2VTZXRBcHBsaWNhdGlvbk5hbWVGb3JV
c2VyQWdlbnQod2tQYWdlKCksIHdrQXBwbGljYXRpb25OYW1lLmdldCgpKTsKKworICAgIC8vIFdL
UGFnZVNldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCBhbHNvIGNoYW5nZXMgdXNlciBhZ2Vu
dC4KKyAgICBtX3VzZXJBZ2VudCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1BhZ2VD
b3B5VXNlckFnZW50KHdrUGFnZSgpKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6c2V0TW91c2VFdmVu
dHNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9tb3VzZUV2ZW50c0VuYWJsZWQg
PT0gZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApp
bmRleCAxYzQ4MmNmYWY4YWM5NjllOWYwYWM1YmI0MmRmZTA2NGNhYmY3ZDZmLi5hMDdiMzUzNDFj
MGJmYjYwOTdiMmFlZmVjMDU4NzY0MTY5MjFjOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBjdXN0b21FbmNvZGluZyk7
CiAgICAgY29uc3QgY2hhciogdXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV91c2VyQWdlbnQ7
IH0KICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBjaGFyKiB1c2VyQWdlbnQpOworICAgIGNv
bnN0IGNoYXIqIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
YXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OyB9CisgICAgdm9pZCBzZXRBcHBsaWNhdGlvbk5h
bWVGb3JVc2VyQWdlbnQoY29uc3QgY2hhciogYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KTsK
IAogICAgIGJvb2wgbW91c2VFdmVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZUV2
ZW50c0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVuYWJs
ZWQpOwpAQCAtMjc0LDYgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5n
IG1fdGhlbWU7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fY3VzdG9tRW5jb2Rpbmc7CiAgICAg
V0tFaW5hU2hhcmVkU3RyaW5nIG1fdXNlckFnZW50OworICAgIFdLRWluYVNoYXJlZFN0cmluZyBt
X2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsKICAgICBib29sIG1fbW91c2VFdmVudHNFbmFi
bGVkOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBtX3RvdWNoRXZlbnRzRW5h
YmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApp
bmRleCA2M2FkMDYyMjgyYjQyMDE0NDA1Y2Q3ZTdmODM0ZGIyYjQ5M2U4N2IyLi40NTkzYTA1N2U5
YzNlMmJlNWY0YjAzYmI5ZWM1Zjg0NTgwN2ZmYjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zNjMsNiArMzYzLDIxIEBAIEVpbmFfQm9v
bCBld2tfdmlld191c2VyX2FnZW50X3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hh
ciogdXNlckFnZW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitFaW5hX0Jvb2wgZXdrX3ZpZXdf
YXBwbGljYXRpb25fbmFtZV9mb3JfdXNlcl9hZ2VudF9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGNvbnN0IGNoYXIqIGFwcGxpY2F0aW9uTmFtZSkKK3sKKyAgICBFV0tfVklFV19JTVBMX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFsc2UpOworCisgICAgaW1wbC0+c2V0QXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50KGFwcGxpY2F0aW9uTmFtZSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2NvbnN0IGNoYXIqIGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX0lNUExfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBudWxscHRyKTsKKworICAgIHJldHVybiBpbXBsLT5h
cHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKTsKK30KKwogaW5saW5lIFdLRmluZE9wdGlvbnMg
dG9XS0ZpbmRPcHRpb25zKEV3a19GaW5kX09wdGlvbnMgb3B0aW9ucykKIHsKICAgICB1bnNpZ25l
ZCB3a0ZpbmRPcHRpb25zID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5oCmluZGV4IDBiNzZlMzg1ODUzNGEwZTkyMzYxZWQxMDBiMjliNzI5YzhjNTkzNjEu
LjBmMjdlYjM3NmFmNDhjNmE0NDMwNTdlYzNlM2I0OTcwNGM1YmY4ZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaApAQCAtNzAwLDggKzcwMCw5IEBAIEVB
UEkgRWluYV9Cb29sIGV3a192aWV3X2N1c3RvbV9lbmNvZGluZ19zZXQoRXZhc19PYmplY3QgKm8s
IGNvbnN0IGNoYXIgKmVuY29kaW5nCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8gZ2V0
IHRoZSBjdXJyZW50IHVzZXIgYWdlbnQKICAqCi0gKiBAcmV0dXJuIEBjIGVpbmFfc3RyaW5nc2hh
cmUgY29udGFpbmluZyB0aGUgY3VycmVudCB1c2VyIGFnZW50LCBvcgotICogICAgICAgICBAYyBk
ZWZhdWx0IHVzZXIgYWdlbnQgaWYgaXQncyBub3Qgc2V0CisgKiBAcmV0dXJuIEBjIGVpbmFfc3Ry
aW5nc2hhcmUgY29udGFpbmluZyB0aGUgY3VycmVudCB1c2VyIGFnZW50LCBvciBAYyBkZWZhdWx0
IHVzZXIgYWdlbnQKKyAqCisgKiBAc2VlIGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KCkKICAqLwog
RUFQSSBjb25zdCBjaGFyICpld2tfdmlld191c2VyX2FnZW50X2dldChjb25zdCBFdmFzX09iamVj
dCAqbyk7CiAKQEAgLTcxMSwxMSArNzEyLDU0IEBAIEVBUEkgY29uc3QgY2hhciAqZXdrX3ZpZXdf
dXNlcl9hZ2VudF9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICogQHBhcmFtIG8gdmlldyB0
byBzZXQgdGhlIHVzZXIgYWdlbnQKICAqIEBwYXJhbSB1c2VyX2FnZW50IHRoZSB1c2VyIGFnZW50
IHN0cmluZyB0byBzZXQgb3IgQGMgTlVMTCB0byByZXN0b3JlIHRoZSBkZWZhdWx0IG9uZQogICoK
KyAqIEBub3RlIElmIHlvdSBqdXN0IHdhbnQgdG8gYWRkIHlvdXIgYXBwbGljYXRpb24gbmFtZSBp
biB0aGVyIHVzZXIgYWdlbnQsCisgKiAgICAgICB1c2UgZXdrX3ZpZXdfYXBwbGljYXRpb25fbmFt
ZV9mb3JfdXNlcl9hZ2VudF9zZXQoKS4KKyAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBz
dWNjZXNzIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCisgKgorICogQHNlZSBld2tfdmlld19hcHBs
aWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X2dldCgpCisgKiBAc2VlIGV3a192aWV3X2FwcGxp
Y2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfc2V0KCkKICAqLwogRUFQSSBFaW5hX0Jvb2wgZXdr
X3ZpZXdfdXNlcl9hZ2VudF9zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIgKnVzZXJfYWdl
bnQpOwogCiAvKioKKyAqIEdldHMgdGhlIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHRoZSB1c2VyIGFn
ZW50IHN0cmluZy4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBnZXQgdGhlIGN1cnJl
bnQgYXBwbGljYXRpb24gbmFtZQorICoKKyAqIEByZXR1cm4gQGMgZWluYV9zdHJpbmdzaGFyZSBj
b250YWluaW5nIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG5hbWUKKyAqICAgICAgICAgQGMgTlVM
TCBvdGhlcndpc2UKKyAqCisgKiBAc2VlIGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9yX3Vz
ZXJfYWdlbnRfc2V0KCkKKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfdmlld19hcHBsaWNhdGlv
bl9uYW1lX2Zvcl91c2VyX2FnZW50X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8qKgor
ICogU2V0cyB0aGUgYXBwbGljYXRpb24gbmFtZSBmb3IgdGhlIHVzZXIgYWdlbnQgc3RyaW5nLgor
ICoKKyAqIEluIEhUVFAsIHRoZSB1c2VyIGFnZW50IHN0cmluZyBpcyB1c2VkIGZvciBjb250ZW50
IG5lZ290aWF0aW9uLAorICogd2hlcmUgdGhlIG9yaWdpbiBzZXJ2ZXIgc2VsZWN0cyBzdWl0YWJs
ZSBjb250ZW50IG9yIG9wZXJhdGluZyBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzcG9uc2UgKHdpa2lw
ZWRpYSkuCisgKgorICogSWYgY3VzdG9tIHVzZXIgYWdlbnQgaXQgbm90IHNldCBieSBld2tfdmll
d191c2VyX2FnZW50X3NldCgpLAorICogdGhlIHVzZXIgYWdlbnQgc3RyaW5nIHdpbGwgY29uc2lz
dCBvZiB0aGUgY29tbW9uIGNvbXBvbmVudHMgd2hpY2ggd2ViIGVuZ2luZSBwcm92aWRlcyBhbmQg
QGEgYXBwbGljYXRpb25fbmFtZS4KKyAqCisgKiBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIHdo
b2xlIHVzZXIgYWdlbnQgc3RyaW5nLCBwbGVhc2UgdXNlIGV3a192aWV3X3VzZXJfYWdlbnRfc2V0
KCkuCisgKgorICogQHBhcmFtIG8gdmlldyB0byBzZXQgdGhlIHVzZXIgYWdlbnQKKyAqIEBwYXJh
bSBhcHBsaWNhdGlvbl9uYW1lIHRoZSBhcHBsaWNhdGlvbl9uYW1lIHRvIHNldCBvciBAYyBOVUxM
IHRvIHJlc3RvcmUgdGhlIGRlZmF1bHQgb25lCisgKgorICogQG5vdGUgQmVsb3cgaXMgdGhlIGV4
YW1wbGUgb2YgZGVmYXVsdCB1c2VyIGFnZW50IHN0cmluZy4KKyAqCisgKiAgICAgICBNb3ppbGxh
LzUuMCAoWDExOyBMaW51eDsgVW5rbm93bikgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtl
IEdlY2tvKSBWZXJzaW9uLzguMCBTYWZhcmkvNjAxLjEgQGEgYXBwbGljYXRpb25fbmFtZQorICoK
KyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MgQGMgRUlOQV9GQUxTRSBvdGhlcndp
c2UKKyAqCisgKiBAc2VlIGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KCkKKyAqIEBzZWUgZXdrX3Zp
ZXdfdXNlcl9hZ2VudF9nZXQoKQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfdmlld19hcHBsaWNh
dGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X3NldChFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAq
YXBwbGljYXRpb25fbmFtZSk7CisKKy8qKgogICogU2VhcmNoZXMgYW5kIGhpZ2h0bGlnaHRzIHRo
ZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGRvY3VtZW50LgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0IHRvIGZpbmQgdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCmluZGV4IDk2NmUwODgwMmM2ODE5MGNl
MzczZDM5NGM4ZjlmOWVlYzNiZWEzN2QuLjczM2I4MTI1YjRkMGYxYzYwM2IyNWFlYzY3ZDE0OGEx
YWQ0MmJjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl92aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKQEAgLTEwNjUsNiArMTA2NSwyMSBAQCBURVNU
X0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld191c2VyX2FnZW50KQogICAgIGVpbmFfc3RyaW5nc2hh
cmVfZGVsKGRlZmF1bHRVc2VyQWdlbnQpOwogfQogCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tf
dmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50KQoreworICAgIGNvbnN0IGNoYXIg
Y3VzdG9tVXNlckFnZW50W10gPSAiRm9vIjsKKyAgICBjb25zdCBjaGFyIGFwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudFtdID0gIkJhciI7CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmlld191c2Vy
X2FnZW50X3NldCh3ZWJWaWV3KCksIGN1c3RvbVVzZXJBZ2VudCkpOworCisgICAgQVNTRVJUX1RS
VUUoZXdrX3ZpZXdfYXBwbGljYXRpb25fbmFtZV9mb3JfdXNlcl9hZ2VudF9zZXQod2ViVmlldygp
LCBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpKTsKKyAgICBBU1NFUlRfU1RSRVEoYXBwbGlj
YXRpb25OYW1lRm9yVXNlckFnZW50LCBld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2Vy
X2FnZW50X2dldCh3ZWJWaWV3KCkpKTsKKyAgICBBU1NFUlRfU1RSRVEoY3VzdG9tVXNlckFnZW50
LCBld2tfdmlld191c2VyX2FnZW50X2dldCh3ZWJWaWV3KCkpKTsKKworICAgIEFTU0VSVF9UUlVF
KGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KHdlYlZpZXcoKSwgbnVsbHB0cikpOworICAgIEFTU0VS
VF9UUlVFKHN0cnN0cihld2tfdmlld191c2VyX2FnZW50X2dldCh3ZWJWaWV3KCkpLCBhcHBsaWNh
dGlvbk5hbWVGb3JVc2VyQWdlbnQpKTsKK30KKwogc3RhdGljIHZvaWQgc2NyaXB0RXhlY3V0ZUNh
bGxiYWNrKEV2YXNfT2JqZWN0KiwgY29uc3QgY2hhciogcmV0dXJuVmFsdWUsIHZvaWQqIHVzZXJE
YXRhKQogewogICAgIEVpbmFfU3RyYnVmKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxFaW5hX1N0cmJ1
Zio+KHVzZXJEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViUGFnZVByb3h5RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUGFn
ZVByb3h5RWZsLmNwcAppbmRleCA0OTFkNWRiZWVjNzNhYjE3Yzg2ODU1M2E0ZTQ3YjEyOGFjYjQ2
ZjUwLi4wMmU1MjlmYTJkZjljYjgwM2ZjYzNmYTM3ZDVlNTUyY2JkYzYwMzVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCkBAIC00Miwx
NyArNDIsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiB9
CiAKLVN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYg
LyphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQqLykKK1N0cmluZyBXZWJQYWdlUHJveHk6OnN0
YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
KQogewotICAgIFdURjo6U3RyaW5nIHBsYXRmb3JtOwotICAgIFdURjo6U3RyaW5nIHZlcnNpb247
Ci0gICAgV1RGOjpTdHJpbmcgb3NWZXJzaW9uOworICAgIFN0cmluZyBwbGF0Zm9ybTsKKyAgICBT
dHJpbmcgdmVyc2lvbjsKKyAgICBTdHJpbmcgb3NWZXJzaW9uOworICAgIFN0cmluZyBzdGFuZGFy
ZFVzZXJBZ2VudFN0cmluZzsKIAogI2lmIFBMQVRGT1JNKFgxMSkKICAgICBwbGF0Zm9ybSA9ICJY
MTEiOwogI2Vsc2UKICAgICBwbGF0Zm9ybSA9ICJVbmtub3duIjsKICNlbmRpZgorCiAgICAgdmVy
c2lvbiA9IFN0cmluZzo6bnVtYmVyKFdFQktJVF9NQUpPUl9WRVJTSU9OKSArICcuJyArIFN0cmlu
Zzo6bnVtYmVyKFdFQktJVF9NSU5PUl9WRVJTSU9OKSArICcrJzsKICAgICBzdHJ1Y3QgdXRzbmFt
ZSBuYW1lOwogICAgIGlmICh1bmFtZSgmbmFtZSkgIT0gLTEpCkBAIC02MCw4ICs2MiwxMCBAQCBT
dHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIC8qYXBw
bGljYXRpb25OYW1lRm9yVXNlckFnZQogICAgIGVsc2UKICAgICAgICAgb3NWZXJzaW9uID0gIlVu
a25vd24iOwogCi0gICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoIiArIHBsYXRmb3JtICsgIjsgIiAr
IG9zVmVyc2lvbiArICIpIEFwcGxlV2ViS2l0LyIgKyB2ZXJzaW9uCisgICAgc3RhbmRhcmRVc2Vy
QWdlbnRTdHJpbmcgPSAiTW96aWxsYS81LjAgKCIgKyBwbGF0Zm9ybSArICI7ICIgKyBvc1ZlcnNp
b24gKyAiKSBBcHBsZVdlYktpdC8iICsgdmVyc2lvbgogICAgICAgICArICIgKEtIVE1MLCBsaWtl
IEdlY2tvKSBWZXJzaW9uLzUuMCBTYWZhcmkvIiArIHZlcnNpb247CisKKyAgICByZXR1cm4gYXBw
bGljYXRpb25OYW1lRm9yVXNlckFnZW50LmlzRW1wdHkoKSA/IHN0YW5kYXJkVXNlckFnZW50U3Ry
aW5nIDogc3RhbmRhcmRVc2VyQWdlbnRTdHJpbmcgKyAnICcgKyBhcHBsaWNhdGlvbk5hbWVGb3JV
c2VyQWdlbnQ7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRFZGl0b3JDb21tYW5kc0Zvcktl
eUV2ZW50KFZlY3RvcjxXVEY6OlN0cmluZz4mIC8qY29tbWFuZHNMaXN0Ki8pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236505</attachid>
            <date>2014-08-13 01:49:11 -0700</date>
            <delta_ts>2014-08-13 02:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135640-20140813174859.patch</filename>
            <type>text/plain</type>
            <size>11310</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI4MDZhOTc0M2MyZWY2
YmIyZGE4YmIyOGRmOTFkNjRhN2MwOGY1Yi4uNGRmMGIxOWQwNTM1NzY1MmNkYTgwZjMyM2UxMzcw
YWI2MjU3ZWZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTA4LTEzICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgQVBJ
IHRvIHNldCBhcHBsaWNhdGlvbiBuYW1lIGZvciB0aGUgdXNlciBhZ2VudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NjQwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGV3a19hcHBsaWNhdGlvbl9u
YW1lX2Zvcl91c2VyX2FnZW50X3NldCB0byBtYWtlIGRlZmF1bHQgdXNlciBhZ2VudCBzdHJpbmcK
KyAgICAgICAgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIHdoaWNoIGFwcGxpY2F0aW9uIHBhc3Nlcy4K
KyAgICAgICAgSXQncyB1c2VmdWwgZm9yIGFwcGxpY2F0aW9uIHRvIHNldCBvbmx5IGFwcGxpY2F0
aW9uIGluZm9ybWF0aW9uIHdpdGhvdXQga25vd2xlZGdlCisgICAgICAgIG9mIGxlZ2FjeSB1c2Vy
IGFnZW50IGNvbXBvbmVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcpOgorICAgICAgICAoRXdrVmlldzo6c2V0
QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3Lmg6CisgICAgICAgIChFd2tWaWV3OjphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdl
bnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfc2V0KToKKyAgICAgICAg
KGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfZ2V0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL3Rlc3RzL3Rlc3RfZXdrMl92aWV3LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAg
ICogVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KToKKwogMjAxNC0wOC0xMiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNQUtFXSBXZWJQ
cm9jZXNzIHNob3VsZG4ndCBuZWVkIHRvIGV4cGxpY2l0bHkgbGluayB0byBKYXZhU2NyaXB0Q29y
ZSBhbmQgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcAppbmRleCBiMGM0NDg5MzA0Y2U1MzBjMDkxMWZkZDRjNWJiODMyODhmYWVjYjI2Li5iODFl
ZDFlMWZlMzk4ZDM3NTA1N2YzYzFjYjdjNDQ1ODBhNGM4YjRhIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtMjgyLDYgKzI4Miw3IEBAIEV3a1Zp
ZXc6OkV3a1ZpZXcoV0tWaWV3UmVmIHZpZXcsIEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAg
ICwgbV9iYWNrRm9yd2FyZExpc3Qoc3RkOjptYWtlX3VuaXF1ZTxFd2tCYWNrRm9yd2FyZExpc3Q+
KFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdCh3a1BhZ2UoKSkpKQogICAgICwgbV91c2VDdXN0b21D
dXJzb3IoZmFsc2UpCiAgICAgLCBtX3VzZXJBZ2VudChXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRX
SywgV0tQYWdlQ29weVVzZXJBZ2VudCh3a1BhZ2UoKSkpKQorICAgICwgbV9hcHBsaWNhdGlvbk5h
bWVGb3JVc2VyQWdlbnQoV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLUGFnZUNvcHlBcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQod2tQYWdlKCkpKSkKICAgICAsIG1fbW91c2VFdmVudHNF
bmFibGVkKGZhbHNlKQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgLCBtX3RvdWNoRXZl
bnRzRW5hYmxlZChmYWxzZSkKQEAgLTcxMiw2ICs3MTMsMjAgQEAgdm9pZCBFd2tWaWV3OjpzZXRV
c2VyQWdlbnQoY29uc3QgY2hhciogdXNlckFnZW50KQogICAgIG1fdXNlckFnZW50ID0gV0tFaW5h
U2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLUGFnZUNvcHlVc2VyQWdlbnQod2tQYWdlKCkpKTsKIH0K
IAordm9pZCBFd2tWaWV3OjpzZXRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoY29uc3QgY2hh
ciogYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQoreworICAgIGlmIChtX2FwcGxpY2F0aW9u
TmFtZUZvclVzZXJBZ2VudCA9PSBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50ID0gYXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50OworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrQXBw
bGljYXRpb25OYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhhcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpKTsKKyAgICBXS1BhZ2VTZXRBcHBsaWNhdGlvbk5hbWVG
b3JVc2VyQWdlbnQod2tQYWdlKCksIHdrQXBwbGljYXRpb25OYW1lLmdldCgpKTsKKworICAgIC8v
IFdLUGFnZVNldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCBhbHNvIGNoYW5nZXMgdXNlciBh
Z2VudC4KKyAgICBtX3VzZXJBZ2VudCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS1Bh
Z2VDb3B5VXNlckFnZW50KHdrUGFnZSgpKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6c2V0TW91c2VF
dmVudHNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAobV9tb3VzZUV2ZW50c0VuYWJs
ZWQgPT0gZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
aAppbmRleCAxYzQ4MmNmYWY4YWM5NjllOWYwYWM1YmI0MmRmZTA2NGNhYmY3ZDZmLi5hMDdiMzUz
NDFjMGJmYjYwOTdiMmFlZmVjMDU4NzY0MTY5MjFjOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShjb25zdCBjaGFyKiBjdXN0b21FbmNvZGlu
Zyk7CiAgICAgY29uc3QgY2hhciogdXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV91c2VyQWdl
bnQ7IH0KICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBjaGFyKiB1c2VyQWdlbnQpOworICAg
IGNvbnN0IGNoYXIqIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OyB9CisgICAgdm9pZCBzZXRBcHBsaWNhdGlv
bk5hbWVGb3JVc2VyQWdlbnQoY29uc3QgY2hhciogYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
KTsKIAogICAgIGJvb2wgbW91c2VFdmVudHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tb3Vz
ZUV2ZW50c0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlRXZlbnRzRW5hYmxlZChib29sIGVu
YWJsZWQpOwpAQCAtMjc0LDYgKzI3Niw3IEBAIHByaXZhdGU6CiAgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIG1fdGhlbWU7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fY3VzdG9tRW5jb2Rpbmc7CiAg
ICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1fdXNlckFnZW50OworICAgIFdLRWluYVNoYXJlZFN0cmlu
ZyBtX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsKICAgICBib29sIG1fbW91c2VFdmVudHNF
bmFibGVkOwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgYm9vbCBtX3RvdWNoRXZlbnRz
RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cAppbmRleCA5YWQwMDNmZWNmNGZkMzk3MjVkYzIwMmM3NzBiMTM3MTQzZGE3MGVlLi45YTYxOGY2
YjM1YmIxZmI0YTY1NzMxMWU2NmQzNGQ2ZTUxZGJmYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0zNjgsNiArMzY4LDIxIEBAIEVpbmFf
Qm9vbCBld2tfdmlld191c2VyX2FnZW50X3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3Qg
Y2hhciogdXNlckFnZW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitFaW5hX0Jvb2wgZXdrX3Zp
ZXdfYXBwbGljYXRpb25fbmFtZV9mb3JfdXNlcl9hZ2VudF9zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGNvbnN0IGNoYXIqIGFwcGxpY2F0aW9uTmFtZSkKK3sKKyAgICBFV0tfVklFV19JTVBMX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgaW1wbCwgZmFsc2UpOworCisgICAgaW1wbC0+c2V0QXBwbGlj
YXRpb25OYW1lRm9yVXNlckFnZW50KGFwcGxpY2F0aW9uTmFtZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2NvbnN0IGNoYXIqIGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9yX3VzZXJfYWdl
bnRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX0lNUExf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBpbXBsLCBudWxscHRyKTsKKworICAgIHJldHVybiBpbXBs
LT5hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoKTsKK30KKwogaW5saW5lIFdLRmluZE9wdGlv
bnMgdG9XS0ZpbmRPcHRpb25zKEV3a19GaW5kX09wdGlvbnMgb3B0aW9ucykKIHsKICAgICB1bnNp
Z25lZCB3a0ZpbmRPcHRpb25zID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oCmluZGV4IDBiNzZlMzg1ODUzNGEwZTkyMzYxZWQxMDBiMjliNzI5YzhjNTkz
NjEuLmIzYmY4Mjg3OThjODUzZmQxYTgwMGZhNDg3M2IzOGQ3YzE1OGJiMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaApAQCAtNzAwLDggKzcwMCw5IEBA
IEVBUEkgRWluYV9Cb29sIGV3a192aWV3X2N1c3RvbV9lbmNvZGluZ19zZXQoRXZhc19PYmplY3Qg
Km8sIGNvbnN0IGNoYXIgKmVuY29kaW5nCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8g
Z2V0IHRoZSBjdXJyZW50IHVzZXIgYWdlbnQKICAqCi0gKiBAcmV0dXJuIEBjIGVpbmFfc3RyaW5n
c2hhcmUgY29udGFpbmluZyB0aGUgY3VycmVudCB1c2VyIGFnZW50LCBvcgotICogICAgICAgICBA
YyBkZWZhdWx0IHVzZXIgYWdlbnQgaWYgaXQncyBub3Qgc2V0CisgKiBAcmV0dXJuIEBjIGVpbmFf
c3RyaW5nc2hhcmUgY29udGFpbmluZyB0aGUgY3VycmVudCB1c2VyIGFnZW50LCBvciBAYyBkZWZh
dWx0IHVzZXIgYWdlbnQKKyAqCisgKiBAc2VlIGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KCkKICAq
LwogRUFQSSBjb25zdCBjaGFyICpld2tfdmlld191c2VyX2FnZW50X2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiAKQEAgLTcxMSwxMSArNzEyLDU0IEBAIEVBUEkgY29uc3QgY2hhciAqZXdrX3Zp
ZXdfdXNlcl9hZ2VudF9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICogQHBhcmFtIG8gdmll
dyB0byBzZXQgdGhlIHVzZXIgYWdlbnQKICAqIEBwYXJhbSB1c2VyX2FnZW50IHRoZSB1c2VyIGFn
ZW50IHN0cmluZyB0byBzZXQgb3IgQGMgTlVMTCB0byByZXN0b3JlIHRoZSBkZWZhdWx0IG9uZQog
ICoKKyAqIEBub3RlIElmIHlvdSBqdXN0IHdhbnQgdG8gYWRkIHlvdXIgYXBwbGljYXRpb24gbmFt
ZSBpbiB0aGVyIHVzZXIgYWdlbnQsCisgKiAgICAgICB1c2UgZXdrX3ZpZXdfYXBwbGljYXRpb25f
bmFtZV9mb3JfdXNlcl9hZ2VudF9zZXQoKS4KKyAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBv
biBzdWNjZXNzIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCisgKgorICogQHNlZSBld2tfdmlld19h
cHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X2dldCgpCisgKiBAc2VlIGV3a192aWV3X2Fw
cGxpY2F0aW9uX25hbWVfZm9yX3VzZXJfYWdlbnRfc2V0KCkKICAqLwogRUFQSSBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfdXNlcl9hZ2VudF9zZXQoRXZhc19PYmplY3QgKm8sIGNvbnN0IGNoYXIgKnVzZXJf
YWdlbnQpOwogCiAvKioKKyAqIEdldHMgdGhlIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHRoZSB1c2Vy
IGFnZW50IHN0cmluZy4KKyAqCisgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBnZXQgdGhlIGN1
cnJlbnQgYXBwbGljYXRpb24gbmFtZQorICoKKyAqIEByZXR1cm4gQGMgZWluYV9zdHJpbmdzaGFy
ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG5hbWUKKyAqICAgICAgICAgQGMg
TlVMTCBvdGhlcndpc2UKKyAqCisgKiBAc2VlIGV3a192aWV3X2FwcGxpY2F0aW9uX25hbWVfZm9y
X3VzZXJfYWdlbnRfc2V0KCkKKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfdmlld19hcHBsaWNh
dGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKKy8q
KgorICogU2V0cyB0aGUgYXBwbGljYXRpb24gbmFtZSBmb3IgdGhlIHVzZXIgYWdlbnQgc3RyaW5n
LgorICoKKyAqIEluIEhUVFAsIHRoZSB1c2VyIGFnZW50IHN0cmluZyBpcyB1c2VkIGZvciBjb250
ZW50IG5lZ290aWF0aW9uLAorICogd2hlcmUgdGhlIG9yaWdpbiBzZXJ2ZXIgc2VsZWN0cyBzdWl0
YWJsZSBjb250ZW50IG9yIG9wZXJhdGluZyBwYXJhbWV0ZXJzIGZvciB0aGUgcmVzcG9uc2UgKHdp
a2lwZWRpYSkuCisgKgorICogSWYgY3VzdG9tIHVzZXIgYWdlbnQgaXQgbm90IHNldCBieSBld2tf
dmlld191c2VyX2FnZW50X3NldCgpLAorICogdGhlIHVzZXIgYWdlbnQgc3RyaW5nIHdpbGwgY29u
c2lzdCBvZiB0aGUgY29tbW9uIGNvbXBvbmVudHMgd2hpY2ggd2ViIGVuZ2luZSBwcm92aWRlcyBh
bmQgQGEgYXBwbGljYXRpb25fbmFtZS4KKyAqCisgKiBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhl
IHdob2xlIHVzZXIgYWdlbnQgc3RyaW5nLCBwbGVhc2UgdXNlIGV3a192aWV3X3VzZXJfYWdlbnRf
c2V0KCkuCisgKgorICogQHBhcmFtIG8gdmlldyB0byBzZXQgYXBwbGljYXRpb24gbmFtZSBmb3Ig
dGhlIHVzZXIgYWdlbnQKKyAqIEBwYXJhbSBhcHBsaWNhdGlvbl9uYW1lIHRoZSBhcHBsaWNhdGlv
bl9uYW1lIHRvIHNldCBvciBAYyBOVUxMIHRvIHJlbW92ZSBhcHBsaWNhdGlvbl9uYW1lIGluIHRo
ZSBjb21tb24gdXNlciBhZ2VudCBzdHJpbmcuCisgKgorICogQG5vdGUgQmVsb3cgaXMgdGhlIGV4
YW1wbGUgb2YgZGVmYXVsdCB1c2VyIGFnZW50IHN0cmluZy4KKyAqCisgKiAgICAgICBNb3ppbGxh
LzUuMCAoWDExOyBMaW51eDsgVW5rbm93bikgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtl
IEdlY2tvKSBWZXJzaW9uLzguMCBTYWZhcmkvNjAxLjEgQGEgYXBwbGljYXRpb25fbmFtZQorICoK
KyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MgQGMgRUlOQV9GQUxTRSBvdGhlcndp
c2UKKyAqCisgKiBAc2VlIGV3a192aWV3X3VzZXJfYWdlbnRfc2V0KCkKKyAqIEBzZWUgZXdrX3Zp
ZXdfdXNlcl9hZ2VudF9nZXQoKQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfdmlld19hcHBsaWNh
dGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50X3NldChFdmFzX09iamVjdCAqbywgY29uc3QgY2hhciAq
YXBwbGljYXRpb25fbmFtZSk7CisKKy8qKgogICogU2VhcmNoZXMgYW5kIGhpZ2h0bGlnaHRzIHRo
ZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGRvY3VtZW50LgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2Jq
ZWN0IHRvIGZpbmQgdGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3ZpZXcuY3BwCmluZGV4IDk2NmUwODgwMmM2ODE5MGNl
MzczZDM5NGM4ZjlmOWVlYzNiZWEzN2QuLmJlMzRiMjMzYjc2M2I5ZDhkNmVhZDRjODI4OWM4Njk3
MjZhNmMyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rl
c3RzL3Rlc3RfZXdrMl92aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC90ZXN0cy90ZXN0X2V3azJfdmlldy5jcHAKQEAgLTEwNjUsNiArMTA2NSwyMiBAQCBURVNU
X0YoRVdLMlZpZXdUZXN0LCBld2tfdmlld191c2VyX2FnZW50KQogICAgIGVpbmFfc3RyaW5nc2hh
cmVfZGVsKGRlZmF1bHRVc2VyQWdlbnQpOwogfQogCitURVNUX0YoRVdLMlZpZXdUZXN0LCBld2tf
dmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2VyX2FnZW50KQoreworICAgIGNvbnN0IGNoYXIg
Y3VzdG9tVXNlckFnZW50W10gPSAiRm9vIjsKKyAgICBjb25zdCBjaGFyIGFwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudFtdID0gIkJhciI7CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmlld191c2Vy
X2FnZW50X3NldCh3ZWJWaWV3KCksIGN1c3RvbVVzZXJBZ2VudCkpOworCisgICAgQVNTRVJUX1RS
VUUoZXdrX3ZpZXdfYXBwbGljYXRpb25fbmFtZV9mb3JfdXNlcl9hZ2VudF9zZXQod2ViVmlldygp
LCBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpKTsKKyAgICBBU1NFUlRfU1RSRVEoYXBwbGlj
YXRpb25OYW1lRm9yVXNlckFnZW50LCBld2tfdmlld19hcHBsaWNhdGlvbl9uYW1lX2Zvcl91c2Vy
X2FnZW50X2dldCh3ZWJWaWV3KCkpKTsKKyAgICBBU1NFUlRfU1RSRVEoY3VzdG9tVXNlckFnZW50
LCBld2tfdmlld191c2VyX2FnZW50X2dldCh3ZWJWaWV3KCkpKTsKKyAgICBBU1NFUlRfRkFMU0Uo
c3Ryc3RyKGV3a192aWV3X3VzZXJfYWdlbnRfZ2V0KHdlYlZpZXcoKSksIGFwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudCkpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfdXNlcl9hZ2VudF9z
ZXQod2ViVmlldygpLCBudWxscHRyKSk7CisgICAgQVNTRVJUX1RSVUUoc3Ryc3RyKGV3a192aWV3
X3VzZXJfYWdlbnRfZ2V0KHdlYlZpZXcoKSksIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkp
OworfQorCiBzdGF0aWMgdm9pZCBzY3JpcHRFeGVjdXRlQ2FsbGJhY2soRXZhc19PYmplY3QqLCBj
b25zdCBjaGFyKiByZXR1cm5WYWx1ZSwgdm9pZCogdXNlckRhdGEpCiB7CiAgICAgRWluYV9TdHJi
dWYqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PEVpbmFfU3RyYnVmKj4odXNlckRhdGEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQYWdlUHJveHlFZmwuY3BwCmluZGV4IDQ5
MWQ1ZGJlZWM3M2FiMTdjODY4NTUzYTRlNDdiMTI4YWNiNDZmNTAuLjAyZTUyOWZhMmRmOWNiODAz
ZmNjM2ZhMzdkNWU1NTJjYmRjNjAzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlBhZ2VQcm94eUVmbC5jcHAKQEAgLTQyLDE3ICs0MiwxOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KIAotU3RyaW5nIFdlYlBhZ2VQcm94
eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiAvKmFwcGxpY2F0aW9uTmFtZUZvclVz
ZXJBZ2VudCovKQorU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3Qg
U3RyaW5nJiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCiB7Ci0gICAgV1RGOjpTdHJpbmcg
cGxhdGZvcm07Ci0gICAgV1RGOjpTdHJpbmcgdmVyc2lvbjsKLSAgICBXVEY6OlN0cmluZyBvc1Zl
cnNpb247CisgICAgU3RyaW5nIHBsYXRmb3JtOworICAgIFN0cmluZyB2ZXJzaW9uOworICAgIFN0
cmluZyBvc1ZlcnNpb247CisgICAgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50U3RyaW5nOwogCiAj
aWYgUExBVEZPUk0oWDExKQogICAgIHBsYXRmb3JtID0gIlgxMSI7CiAjZWxzZQogICAgIHBsYXRm
b3JtID0gIlVua25vd24iOwogI2VuZGlmCisKICAgICB2ZXJzaW9uID0gU3RyaW5nOjpudW1iZXIo
V0VCS0lUX01BSk9SX1ZFUlNJT04pICsgJy4nICsgU3RyaW5nOjpudW1iZXIoV0VCS0lUX01JTk9S
X1ZFUlNJT04pICsgJysnOwogICAgIHN0cnVjdCB1dHNuYW1lIG5hbWU7CiAgICAgaWYgKHVuYW1l
KCZuYW1lKSAhPSAtMSkKQEAgLTYwLDggKzYyLDEwIEBAIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0
YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgLyphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdl
CiAgICAgZWxzZQogICAgICAgICBvc1ZlcnNpb24gPSAiVW5rbm93biI7CiAKLSAgICByZXR1cm4g
Ik1vemlsbGEvNS4wICgiICsgcGxhdGZvcm0gKyAiOyAiICsgb3NWZXJzaW9uICsgIikgQXBwbGVX
ZWJLaXQvIiArIHZlcnNpb24KKyAgICBzdGFuZGFyZFVzZXJBZ2VudFN0cmluZyA9ICJNb3ppbGxh
LzUuMCAoIiArIHBsYXRmb3JtICsgIjsgIiArIG9zVmVyc2lvbiArICIpIEFwcGxlV2ViS2l0LyIg
KyB2ZXJzaW9uCiAgICAgICAgICsgIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNh
ZmFyaS8iICsgdmVyc2lvbjsKKworICAgIHJldHVybiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdl
bnQuaXNFbXB0eSgpID8gc3RhbmRhcmRVc2VyQWdlbnRTdHJpbmcgOiBzdGFuZGFyZFVzZXJBZ2Vu
dFN0cmluZyArICcgJyArIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OmdldEVkaXRvckNvbW1hbmRzRm9yS2V5RXZlbnQoVmVjdG9yPFdURjo6U3Ry
aW5nPiYgLypjb21tYW5kc0xpc3QqLykK
</data>
<flag name="review"
          id="261132"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>