<?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>150778</bug_id>
          
          <creation_ts>2015-11-01 11:47:48 -0800</creation_ts>
          <short_desc>Add objC delegate callback for webProcessDidBecomeResponsive and webProcessDidBecomeUnresponsive.</short_desc>
          <delta_ts>2015-11-02 10:27:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jeffm</cc>
    
    <cc>mitz</cc>
    
    <cc>rmondello</cc>
    
    <cc>sam</cc>
    
    <cc>yongjun_zhang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1138338</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 11:47:48 -0800</bug_when>
    <thetext>It would be nice for a WebKit client to get notified if the web process becomes unresponsive or responsive. To that, we should consider to add delegate methods for webProcessDidBecomeResponsive and webProcessDidBecomeUnresponsive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138339</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 11:48:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/23288706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138343</commentid>
    <comment_count>2</comment_count>
      <attachid>264525</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 12:28:27 -0800</bug_when>
    <thetext>Created attachment 264525
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138344</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-01 12:30:54 -0800</bug_when>
    <thetext>Attachment 264525 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/NavigationState.h:104:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/NavigationState.h:105:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138347</commentid>
    <comment_count>4</comment_count>
      <attachid>264526</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 12:36:09 -0800</bug_when>
    <thetext>Created attachment 264526
Fix style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138349</commentid>
    <comment_count>5</comment_count>
      <attachid>264526</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-01 12:43:17 -0800</bug_when>
    <thetext>Comment on attachment 264526
Fix style issues.

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

&gt; Source/WebKit2/UIProcess/API/APINavigationClient.h:87
&gt;      // FIXME: This function should not be part of this client.
&gt;      virtual void processDidCrash(WebKit::WebPageProxy&amp;) { }
&gt; +    virtual void processDidBecomeResponsive(WebKit::WebPageProxy&amp;) { }
&gt; +    virtual void processDidBecomeUnresponsive(WebKit::WebPageProxy&amp;) { }

If the comment applies to all three of these, then please reword it so it says “These functions”.

Why can’t WebKit2 implement the delegate by implementing the existing loader client function? Why do we have to add this to the navigation client?

&gt; Source/WebKit2/UIProcess/Cocoa/NavigationState.h:105
&gt; +        virtual void processDidBecomeResponsive(WebKit::WebPageProxy&amp;) override;
&gt; +        virtual void processDidBecomeUnresponsive(WebKit::WebPageProxy&amp;) override;

Please, no WebKit:: prefix here for the argument types for these new functions (match the function just above).

&gt; Source/WebKit2/UIProcess/Cocoa/NavigationState.h:188
&gt; +        bool webViewWebProcessDidBecomeResponsive : 1;
&gt; +        bool webViewWebProcessDidBecomeUnresponsive : 1;

Not sure what order these booleans are in. It’s strange to have the new ones at the bottom after the QuickLook ones. Maybe we should keep these alphabetical instead of randomly ordered?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4863
&gt; -    m_loaderClient-&gt;processDidBecomeUnresponsive(*this);
&gt; +    if (m_navigationClient)
&gt; +        m_navigationClient-&gt;processDidBecomeUnresponsive(*this);
&gt; +    else
&gt; +        m_loaderClient-&gt;processDidBecomeUnresponsive(*this);

Skipping the loader client function just because we have a navigation client doesn’t seem logical. Seems we should call both.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4884
&gt; -    m_loaderClient-&gt;processDidBecomeResponsive(*this);
&gt; +    if (m_navigationClient)
&gt; +        m_navigationClient-&gt;processDidBecomeResponsive(*this);
&gt; +    else
&gt; +        m_loaderClient-&gt;processDidBecomeResponsive(*this);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138364</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 14:09:23 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 264526 [details]
&gt; Fix style issues.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264526&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/APINavigationClient.h:87
&gt; &gt;      // FIXME: This function should not be part of this client.
&gt; &gt;      virtual void processDidCrash(WebKit::WebPageProxy&amp;) { }
&gt; &gt; +    virtual void processDidBecomeResponsive(WebKit::WebPageProxy&amp;) { }
&gt; &gt; +    virtual void processDidBecomeUnresponsive(WebKit::WebPageProxy&amp;) { }
&gt; 
&gt; If the comment applies to all three of these, then please reword it so it
&gt; says “These functions”.

I will change.
&gt; 
&gt; Why can’t WebKit2 implement the delegate by implementing the existing loader
&gt; client function? Why do we have to add this to the navigation client?
&gt;

Looks like WebKit2 does have loader client delegate, but it is only implemented as the deprecated WKBrowsingContextLoadDelegatePrivate, which is where browsingContextControllerWebProcessDidCrash: stays. This patch follows the way how _webViewWebProcessDidCrash and webViewWebContentProcessDidTerminate: are implemented, and they are currently staying in the negation client (WKNavigationDelegate).
 
&gt; &gt; Source/WebKit2/UIProcess/Cocoa/NavigationState.h:105
&gt; &gt; +        virtual void processDidBecomeResponsive(WebKit::WebPageProxy&amp;) override;
&gt; &gt; +        virtual void processDidBecomeUnresponsive(WebKit::WebPageProxy&amp;) override;
&gt; 
&gt; Please, no WebKit:: prefix here for the argument types for these new
&gt; functions (match the function just above).

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Cocoa/NavigationState.h:188
&gt; &gt; +        bool webViewWebProcessDidBecomeResponsive : 1;
&gt; &gt; +        bool webViewWebProcessDidBecomeUnresponsive : 1;
&gt; 
&gt; Not sure what order these booleans are in. It’s strange to have the new ones
&gt; at the bottom after the QuickLook ones. Maybe we should keep these
&gt; alphabetical instead of randomly ordered?

Yeah, the ordering seems to random - they are not alphabetical. I will move these two bools next to webViewWebProcessDidCrash since they belong to the same category (webProcess related).
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4863
&gt; &gt; -    m_loaderClient-&gt;processDidBecomeUnresponsive(*this);
&gt; &gt; +    if (m_navigationClient)
&gt; &gt; +        m_navigationClient-&gt;processDidBecomeUnresponsive(*this);
&gt; &gt; +    else
&gt; &gt; +        m_loaderClient-&gt;processDidBecomeUnresponsive(*this);
&gt; 
&gt; Skipping the loader client function just because we have a navigation client
&gt; doesn’t seem logical. Seems we should call both.

Again, this is following the pattern of WebPageProxy::processDidCrash(). I agree it is odd to skip the loader client. Will file another bug.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:4884
&gt; &gt; -    m_loaderClient-&gt;processDidBecomeResponsive(*this);
&gt; &gt; +    if (m_navigationClient)
&gt; &gt; +        m_navigationClient-&gt;processDidBecomeResponsive(*this);
&gt; &gt; +    else
&gt; &gt; +        m_loaderClient-&gt;processDidBecomeResponsive(*this);
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138367</commentid>
    <comment_count>7</comment_count>
      <attachid>264530</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 14:18:07 -0800</bug_when>
    <thetext>Created attachment 264530
Address review comments for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138368</commentid>
    <comment_count>8</comment_count>
      <attachid>264531</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2015-11-01 14:20:38 -0800</bug_when>
    <thetext>Created attachment 264531
Address review comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138601</commentid>
    <comment_count>9</comment_count>
      <attachid>264531</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 10:27:31 -0800</bug_when>
    <thetext>Comment on attachment 264531
Address review comments before landing.

Clearing flags on attachment: 264531

Committed r191895: &lt;http://trac.webkit.org/changeset/191895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138602</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 10:27:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264525</attachid>
            <date>2015-11-01 12:28:27 -0800</date>
            <delta_ts>2015-11-01 12:36:09 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>responsive_callback.patch</filename>
            <type>text/plain</type>
            <size>11213</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDAwMTg1NzhmNzg1MDVlY2Q4YjAyZDZjMWNkYzA5YjAxYmNjN2VhY2UKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTm92IDEg
MDk6MzU6MDggMjAxNSAtMDgwMAoKICAgIEFkZCBvYmpDIGRlbGVnYXRlIGNhbGxiYWNrIGZvciB3
ZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBhbmQgd2ViUHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZS4KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3
NzgKICAgIAogICAgQWRkIG1ldGhvZHMgaW50byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUg
dG8gbm90aWZ5IFdlYktpdCBjbGllbnQgd2hlbiB3ZWIgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9u
c2l2ZQogICAgb3IgcmVzcG9uc2l2ZSwgd2hpY2ggaXMgcmVwb3J0ZWQgYnkgV2ViS2l0OjpSZXNw
b25zaXZlbmVzc1RpbWVyLgogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAg
IAogICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDogQWRkIHR3byBuZXcg
bWV0aG9kIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21lVW5y
ZXNwb25zaXZlCiAgICAgICAgdG8gTmF2aWdhdGlvbkNsaWVudDsgdGhleSBhcmUgY2FsbGVkIHdo
ZW4gV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyIHVwZGF0ZSBpdHMgY2xpZW50J3Mgc3RhdGUu
CiAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6
CiAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZl
KToKICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUu
aDogQWRkIHR3byBuZXcgZGVsZWdhdGUgbWV0aG9kIHRvIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZToKICAgICAgICBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBhbmQg
X3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOgogICAgKiBVSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLmg6IEFkZCBuZXcgb3ZlcnJpZGluZyBtZXRob2RzIHByb2Nl
c3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlLgog
ICAgICAgIEFsc28gYWRkIGEgYm9vbCBtZW1iZXIgZm9yIGVhY2ggbWV0aG9kIHRvIGluZGljYXRl
IGlmIHRoZSBkZWxlZ2F0ZSBoYXMgaW1wbGVtZW50IHRoZSByZWxhdGVkIG1ldGhvZC4KICAgICog
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKICAgIChXZWJLaXQ6Ok5hdmlnYXRp
b25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogVXBkYXRlIHRoZSBuZXcgYm9vbCBtZW1i
ZXJzIGJhc2VkIG9uIHRoZSBkZWxlZ2F0ZS4KICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpOiBTZW5kIHRoZSBk
ZWxlZ2F0ZSBtZXNzYWdlIHRvIG5hdmlnYXRpb25EZWxlZ2F0ZQogICAgICAgIGlmIF93ZWJWaWV3
V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6IGlzIGltcGxlbWVudGVkLgogICAgKFdlYktp
dDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5y
ZXNwb25zaXZlKTogRGl0dG8uCiAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgogICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKTogQ2Fs
bCBuYXZpZ2F0aW9uQ2xpZW50J3MgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSBpZiB0aGUg
cGFnZSBwcm94eQogICAgICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgogICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6ICBDYWxsIG5hdmlnYXRpb25D
bGllbnQncyBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBpZiB0aGUgcGFnZSBwcm94eQogICAg
ICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MDFlYmMyLi5mYjNmN2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTUtMTEtMDEgIFlvbmdqdW4gWmhhbmcg
IDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb2JqQyBkZWxlZ2F0ZSBj
YWxsYmFjayBmb3Igd2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHdlYlByb2Nlc3NE
aWRCZWNvbWVVbnJlc3BvbnNpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTA3NzgKKworICAgICAgICBBZGQgbWV0aG9kcyBpbnRvIFdLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZSB0byBub3RpZnkgV2ViS2l0IGNsaWVudCB3aGVuIHdlYiBwcm9j
ZXNzIGJlY29tZXMgdW5yZXNwb25zaXZlCisgICAgICAgIG9yIHJlc3BvbnNpdmUsIHdoaWNoIGlz
IHJlcG9ydGVkIGJ5IFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lci4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oOiBBZGQgdHdvIG5ldyBtZXRob2QgcHJvY2Vzc0RpZEJlY29tZVJlc3Bv
bnNpdmUgYW5kIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUKKyAgICAgICAgICAgIHRvIE5h
dmlnYXRpb25DbGllbnQ7IHRoZXkgYXJlIGNhbGxlZCB3aGVuIFdlYktpdDo6UmVzcG9uc2l2ZW5l
c3NUaW1lciB1cGRhdGUgaXRzIGNsaWVudCdzIHN0YXRlLgorICAgICAgICAoQVBJOjpOYXZpZ2F0
aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6CisgICAgICAgIChBUEk6Ok5h
dmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg6IEFkZCB0
d28gbmV3IGRlbGVnYXRlIG1ldGhvZCB0byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU6Cisg
ICAgICAgICAgICBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBhbmQgX3dl
YlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDogQWRkIG5ldyBvdmVycmlkaW5nIG1ldGhvZHMgcHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUu
CisgICAgICAgICAgICBBbHNvIGFkZCBhIGJvb2wgbWVtYmVyIGZvciBlYWNoIG1ldGhvZCB0byBp
bmRpY2F0ZSBpZiB0aGUgZGVsZWdhdGUgaGFzIGltcGxlbWVudCB0aGUgcmVsYXRlZCBtZXRob2Qu
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOiBVcGRhdGUg
dGhlIG5ldyBib29sIG1lbWJlcnMgYmFzZWQgb24gdGhlIGRlbGVnYXRlLgorICAgICAgICAoV2Vi
S2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVS
ZXNwb25zaXZlKTogU2VuZCB0aGUgZGVsZWdhdGUgbWVzc2FnZSB0byBuYXZpZ2F0aW9uRGVsZWdh
dGUKKyAgICAgICAgICAgIGlmIF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6
IGlzIGltcGxlbWVudGVkLgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmln
YXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKTogQ2FsbCBuYXZpZ2F0aW9uQ2xp
ZW50J3MgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSBpZiB0aGUgcGFnZSBwcm94eQorICAg
ICAgICAgICAgaGFzIG5hdmlnYXRpb25DbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpOiAgQ2FsbCBuYXZpZ2F0aW9uQ2xpZW50
J3MgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgaWYgdGhlIHBhZ2UgcHJveHkKKyAgICAgICAg
ICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgorCiAyMDE1LTExLTAxICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTkxODMxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25DbGllbnQuaAppbmRleCBjYWY0MDFkLi4xM2E1MWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtODMsNiArODMs
OCBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJl
IHBhcnQgb2YgdGhpcyBjbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVj
b21lUmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9
CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxEYXRhPiB3ZWJDcnlwdG9NYXN0ZXJLZXkoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmKSB7IHJldHVybiBudWxscHRyOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRl
UHJpdmF0ZS5oCmluZGV4IGJiZGI0ODUuLjNmZDk5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaApAQCAtNTEsNiArNTEsOCBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2U7CiAK
IC0gKHZvaWQpX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6KFdLV2ViVmlldyAqKXdlYlZpZXc7
CistICh2b2lkKV93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6KFdLV2ViVmll
dyAqKXdlYlZpZXc7CistICh2b2lkKV93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9u
c2l2ZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAoTlNEYXRhICopX3dlYkNyeXB0b01hc3Rl
cktleUZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCA2MTkxOTFhLi5lZjdh
NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29s
IGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViUGFnZVByb3h5JiwgV2Vi
UHJvdGVjdGlvblNwYWNlKikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5JiwgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eSopIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZENyYXNoKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJy
aWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkgb3ZlcnJpZGU7CisKICAgICAgICAgdmlydHVhbCBS
ZWZQdHI8QVBJOjpEYXRhPiB3ZWJDcnlwdG9NYXN0ZXJLZXkoV2ViUGFnZVByb3h5Jikgb3ZlcnJp
ZGU7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTE4MSw2ICsxODQsOCBAQCBwcml2YXRlOgog
ICAgICAgICBib29sIHdlYlZpZXdEaWRTdGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFp
bkZyYW1lIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRmluaXNoTG9hZEZvclF1aWNrTG9v
a0RvY3VtZW50SW5NYWluRnJhbWUgOiAxOwogI2VuZGlmCisgICAgICAgIGJvb2wgd2ViVmlld1dl
YlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2Vi
UHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSA6IDE7CiAgICAgfSBtX25hdmlnYXRpb25EZWxl
Z2F0ZU1ldGhvZHM7CiAKICAgICBXZWFrT2JqQ1B0cjxpZCA8V0tIaXN0b3J5RGVsZWdhdGVQcml2
YXRlPiA+IG1faGlzdG9yeURlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggZWNhMjQwYS4uYWY4YzdmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBA
IC0xNTAsNiArMTUwLDggQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxl
Z2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KV07CiAgICAgbV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2ggPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaDopXTsKKyAgICBtX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25z
aXZlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXZWJQ
cm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVV
bnJlc3BvbnNpdmU6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYkNyeXB0
b01hc3RlcktleUZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzopXTsKICAgICBtX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJlZ2luTmF2aWdhdGlvbkdlc3R1cmUgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luTmF2aWdhdGlv
bkdlc3R1cmU6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxs
RW5kTmF2aWdhdGlvbkdlc3R1cmVXaXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbSA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3V2lsbEVuZE5h
dmlnYXRpb25HZXN0dXJlOndpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJdGVtOildOwpA
QCAtNjgzLDYgKzY4NSwzMCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6cHJvY2Vzc0RpZENyYXNoKFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYQogICAgIFtzdGF0aWNf
Y2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRl
LmdldCgpKSBfd2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaDptX25hdmlnYXRpb25TdGF0ZS5tX3dl
YlZpZXddOwogfQogCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCit7Cisg
ICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpOworICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkgX3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21l
UmVzcG9uc2l2ZTptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXddOworfQorCit2b2lkIE5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0
YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29t
ZVVucmVzcG9uc2l2ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW3N0YXRp
Y19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdh
dGUuZ2V0KCkpIF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZTptX25hdmln
YXRpb25TdGF0ZS5tX3dlYlZpZXddOworfQorCiBSZWZQdHI8QVBJOjpEYXRhPiBOYXZpZ2F0aW9u
U3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndlYkNyeXB0b01hc3RlcktleShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYpCiB7CiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxl
Z2F0ZU1ldGhvZHMud2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDNiYjhjMy4uMmE3YmY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ4NTcsNyArNDg1Nywx
MCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgpCiAK
ICAgICB1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJkYWJsZVN0YXRlKCk7CiAKLSAgICBtX2xvYWRl
ckNsaWVudC0+cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgqdGhpcyk7CisgICAgaWYgKG1f
bmF2aWdhdGlvbkNsaWVudCkKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlk
QmVjb21lVW5yZXNwb25zaXZlKCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1fbG9hZGVyQ2xp
ZW50LT5wcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OmludGVyYWN0aW9uT2NjdXJyZWRXaGlsZVByb2Nlc3NVbnJlc3BvbnNpdmUoKQpA
QCAtNDg3NSw3ICs0ODc4LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21l
UmVzcG9uc2l2ZSgpCiAgICAgCiAgICAgdXBkYXRlQmFja2luZ1N0b3JlRGlzY2FyZGFibGVTdGF0
ZSgpOwogCi0gICAgbV9sb2FkZXJDbGllbnQtPnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCp0
aGlzKTsKKyAgICBpZiAobV9uYXZpZ2F0aW9uQ2xpZW50KQorICAgICAgICBtX25hdmlnYXRpb25D
bGllbnQtPnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCp0aGlzKTsKKyAgICBlbHNlCisgICAg
ICAgIG1fbG9hZGVyQ2xpZW50LT5wcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSgqdGhpcyk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264526</attachid>
            <date>2015-11-01 12:36:09 -0800</date>
            <delta_ts>2015-11-01 14:18:07 -0800</delta_ts>
            <desc>Fix style issues.</desc>
            <filename>responsive_check.patch</filename>
            <type>text/plain</type>
            <size>11203</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGNlOTkzMzRjNjNiZmY2MzdiNzEwMjU1MGY3NmI2YWMwY2RiZDQ4NDYKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTm92IDEg
MDk6MzU6MDggMjAxNSAtMDgwMAoKICAgIEFkZCBvYmpDIGRlbGVnYXRlIGNhbGxiYWNrIGZvciB3
ZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBhbmQgd2ViUHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZS4KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3
NzgKICAgIAogICAgQWRkIG1ldGhvZHMgaW50byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUg
dG8gbm90aWZ5IFdlYktpdCBjbGllbnQgd2hlbiB3ZWIgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9u
c2l2ZQogICAgb3IgcmVzcG9uc2l2ZSwgd2hpY2ggaXMgcmVwb3J0ZWQgYnkgV2ViS2l0OjpSZXNw
b25zaXZlbmVzc1RpbWVyLgogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAg
IAogICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDogQWRkIHR3byBuZXcg
bWV0aG9kIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21lVW5y
ZXNwb25zaXZlCiAgICAgICAgdG8gTmF2aWdhdGlvbkNsaWVudDsgdGhleSBhcmUgY2FsbGVkIHdo
ZW4gV2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyIHVwZGF0ZSBpdHMgY2xpZW50J3Mgc3RhdGUu
CiAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6
CiAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZl
KToKICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUu
aDogQWRkIHR3byBuZXcgZGVsZWdhdGUgbWV0aG9kIHRvIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZToKICAgICAgICBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBhbmQg
X3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOgogICAgKiBVSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLmg6IEFkZCBuZXcgb3ZlcnJpZGluZyBtZXRob2RzIHByb2Nl
c3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlLgog
ICAgICAgIEFsc28gYWRkIGEgYm9vbCBtZW1iZXIgZm9yIGVhY2ggbWV0aG9kIHRvIGluZGljYXRl
IGlmIHRoZSBkZWxlZ2F0ZSBoYXMgaW1wbGVtZW50IHRoZSByZWxhdGVkIG1ldGhvZC4KICAgICog
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKICAgIChXZWJLaXQ6Ok5hdmlnYXRp
b25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogVXBkYXRlIHRoZSBuZXcgYm9vbCBtZW1i
ZXJzIGJhc2VkIG9uIHRoZSBkZWxlZ2F0ZS4KICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpOiBTZW5kIHRoZSBk
ZWxlZ2F0ZSBtZXNzYWdlIHRvIG5hdmlnYXRpb25EZWxlZ2F0ZQogICAgICAgIGlmIF93ZWJWaWV3
V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6IGlzIGltcGxlbWVudGVkLgogICAgKFdlYktp
dDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5y
ZXNwb25zaXZlKTogRGl0dG8uCiAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgogICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKTogQ2Fs
bCBuYXZpZ2F0aW9uQ2xpZW50J3MgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSBpZiB0aGUg
cGFnZSBwcm94eQogICAgICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgogICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6ICBDYWxsIG5hdmlnYXRpb25D
bGllbnQncyBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBpZiB0aGUgcGFnZSBwcm94eQogICAg
ICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MDFlYmMyLi5mYjNmN2Ji
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTUtMTEtMDEgIFlvbmdqdW4gWmhhbmcg
IDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb2JqQyBkZWxlZ2F0ZSBj
YWxsYmFjayBmb3Igd2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHdlYlByb2Nlc3NE
aWRCZWNvbWVVbnJlc3BvbnNpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTA3NzgKKworICAgICAgICBBZGQgbWV0aG9kcyBpbnRvIFdLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZSB0byBub3RpZnkgV2ViS2l0IGNsaWVudCB3aGVuIHdlYiBwcm9j
ZXNzIGJlY29tZXMgdW5yZXNwb25zaXZlCisgICAgICAgIG9yIHJlc3BvbnNpdmUsIHdoaWNoIGlz
IHJlcG9ydGVkIGJ5IFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lci4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oOiBBZGQgdHdvIG5ldyBtZXRob2QgcHJvY2Vzc0RpZEJlY29tZVJlc3Bv
bnNpdmUgYW5kIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUKKyAgICAgICAgICAgIHRvIE5h
dmlnYXRpb25DbGllbnQ7IHRoZXkgYXJlIGNhbGxlZCB3aGVuIFdlYktpdDo6UmVzcG9uc2l2ZW5l
c3NUaW1lciB1cGRhdGUgaXRzIGNsaWVudCdzIHN0YXRlLgorICAgICAgICAoQVBJOjpOYXZpZ2F0
aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6CisgICAgICAgIChBUEk6Ok5h
dmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg6IEFkZCB0
d28gbmV3IGRlbGVnYXRlIG1ldGhvZCB0byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU6Cisg
ICAgICAgICAgICBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBhbmQgX3dl
YlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDogQWRkIG5ldyBvdmVycmlkaW5nIG1ldGhvZHMgcHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUu
CisgICAgICAgICAgICBBbHNvIGFkZCBhIGJvb2wgbWVtYmVyIGZvciBlYWNoIG1ldGhvZCB0byBp
bmRpY2F0ZSBpZiB0aGUgZGVsZWdhdGUgaGFzIGltcGxlbWVudCB0aGUgcmVsYXRlZCBtZXRob2Qu
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOiBVcGRhdGUg
dGhlIG5ldyBib29sIG1lbWJlcnMgYmFzZWQgb24gdGhlIGRlbGVnYXRlLgorICAgICAgICAoV2Vi
S2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVS
ZXNwb25zaXZlKTogU2VuZCB0aGUgZGVsZWdhdGUgbWVzc2FnZSB0byBuYXZpZ2F0aW9uRGVsZWdh
dGUKKyAgICAgICAgICAgIGlmIF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6
IGlzIGltcGxlbWVudGVkLgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmln
YXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKTogQ2FsbCBuYXZpZ2F0aW9uQ2xp
ZW50J3MgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSBpZiB0aGUgcGFnZSBwcm94eQorICAg
ICAgICAgICAgaGFzIG5hdmlnYXRpb25DbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpOiAgQ2FsbCBuYXZpZ2F0aW9uQ2xpZW50
J3MgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgaWYgdGhlIHBhZ2UgcHJveHkKKyAgICAgICAg
ICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgorCiAyMDE1LTExLTAxICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTkxODMxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25DbGllbnQuaAppbmRleCBjYWY0MDFkLi4xM2E1MWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtODMsNiArODMs
OCBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJl
IHBhcnQgb2YgdGhpcyBjbGllbnQuCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVj
b21lUmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9
CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxEYXRhPiB3ZWJDcnlwdG9NYXN0ZXJLZXkoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmKSB7IHJldHVybiBudWxscHRyOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRl
UHJpdmF0ZS5oCmluZGV4IGJiZGI0ODUuLjNmZDk5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGUuaApAQCAtNTEsNiArNTEsOCBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2U7CiAK
IC0gKHZvaWQpX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6KFdLV2ViVmlldyAqKXdlYlZpZXc7
CistICh2b2lkKV93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6KFdLV2ViVmll
dyAqKXdlYlZpZXc7CistICh2b2lkKV93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9u
c2l2ZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAoTlNEYXRhICopX3dlYkNyeXB0b01hc3Rl
cktleUZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCA2MTkxOTFhLi4wYWI2
YTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29s
IGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViUGFnZVByb3h5JiwgV2Vi
UHJvdGVjdGlvblNwYWNlKikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5JiwgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eSopIG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZENyYXNoKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoV2ViS2l0
OjpXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKwogICAgICAgICB2aXJ0dWFsIFJlZlB0cjxBUEk6
OkRhdGE+IHdlYkNyeXB0b01hc3RlcktleShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKIAogI2lm
IFVTRShRVUlDS19MT09LKQpAQCAtMTgxLDYgKzE4NCw4IEBAIHByaXZhdGU6CiAgICAgICAgIGJv
b2wgd2ViVmlld0RpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWUgOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdEaWRGaW5pc2hMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJ
bk1haW5GcmFtZSA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2ViUHJvY2Vzc0Rp
ZEJlY29tZVJlc3BvbnNpdmUgOiAxOworICAgICAgICBib29sIHdlYlZpZXdXZWJQcm9jZXNzRGlk
QmVjb21lVW5yZXNwb25zaXZlIDogMTsKICAgICB9IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
czsKIAogICAgIFdlYWtPYmpDUHRyPGlkIDxXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGU+ID4gbV9o
aXN0b3J5RGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQppbmRleCBlY2EyNDBhLi5hZjhjN2ZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTE1MCw2ICsx
NTAsOCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKGlkIDxX
S05hdmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdhdGUpCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1dlYlByb2Nlc3NEaWRDcmFzaCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoOildOworICAgIG1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRC
ZWNvbWVSZXNwb25zaXZlOildOworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2
ZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViQ3J5cHRvTWFzdGVyS2V5
Rm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJD
cnlwdG9NYXN0ZXJLZXlGb3JXZWJWaWV3OildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZSA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZTop
XTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFbmROYXZpZ2F0
aW9uR2VzdHVyZVdpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJdGVtID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdl
c3R1cmU6d2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KV07CkBAIC02ODMsNiAr
Njg1LDMwIEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNz
RGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhCiAgICAgW3N0YXRpY19jYXN0PGlkIDxX
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93
ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoOm1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlld107CiB9
CiAKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVj
b21lUmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBpZiAoIW1f
bmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmF2
aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUu
Z2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZl
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlld107Cit9CisKK3ZvaWQgTmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYktpdDo6
V2ViUGFnZVByb3h5JiBwYWdlKQoreworICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZp
Z2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25z
aXZlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1f
bmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOworICAgIGlmICghbmF2
aWdhdGlvbkRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbc3RhdGljX2Nhc3Q8aWQg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkg
X3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOm1fbmF2aWdhdGlvblN0YXRl
Lm1fd2ViVmlld107Cit9CisKIFJlZlB0cjxBUEk6OkRhdGE+IE5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6d2ViQ3J5cHRvTWFzdGVyS2V5KFdlYktpdDo6V2ViUGFnZVByb3h5JikK
IHsKICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJDcnlwdG9NYXN0ZXJLZXlGb3JXZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBkM2JiOGMzLi4yYTdiZjU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDg1Nyw3ICs0ODU3LDEwIEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKCkKIAogICAgIHVwZGF0
ZUJhY2tpbmdTdG9yZURpc2NhcmRhYmxlU3RhdGUoKTsKIAotICAgIG1fbG9hZGVyQ2xpZW50LT5w
cm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKCp0aGlzKTsKKyAgICBpZiAobV9uYXZpZ2F0aW9u
Q2xpZW50KQorICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPnByb2Nlc3NEaWRCZWNvbWVVbnJl
c3BvbnNpdmUoKnRoaXMpOworICAgIGVsc2UKKyAgICAgICAgbV9sb2FkZXJDbGllbnQtPnByb2Nl
c3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoKnRoaXMpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
aW50ZXJhY3Rpb25PY2N1cnJlZFdoaWxlUHJvY2Vzc1VucmVzcG9uc2l2ZSgpCkBAIC00ODc1LDcg
KzQ4NzgsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZl
KCkKICAgICAKICAgICB1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJkYWJsZVN0YXRlKCk7CiAKLSAg
ICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoKnRoaXMpOworICAg
IGlmIChtX25hdmlnYXRpb25DbGllbnQpCisgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cHJv
Y2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoKnRoaXMpOworICAgIGVsc2UKKyAgICAgICAgbV9sb2Fk
ZXJDbGllbnQtPnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCp0aGlzKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaCgpCg==
</data>
<flag name="review"
          id="289641"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264530</attachid>
            <date>2015-11-01 14:18:07 -0800</date>
            <delta_ts>2015-11-01 14:18:47 -0800</delta_ts>
            <desc>Address review comments for landing.</desc>
            <filename>unresponsive.patch</filename>
            <type>text/plain</type>
            <size>11594</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDdkMzAwMzIzNTg5ODE1NmFiZTY0NTViMDAyMjJhZWU1ODRhMzE4NWMKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTm92IDEg
MDk6MzU6MDggMjAxNSAtMDgwMAoKICAgIEFkZCBvYmpDIGRlbGVnYXRlIGNhbGxiYWNrIGZvciB3
ZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBhbmQgd2ViUHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZS4KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3
NzgKICAgIAogICAgQWRkIG1ldGhvZHMgaW50byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUg
dG8gbm90aWZ5IFdlYktpdCBjbGllbnQgd2hlbiB3ZWIgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9u
c2l2ZQogICAgb3IgcmVzcG9uc2l2ZSwgd2hpY2ggaXMgcmVwb3J0ZWQgYnkgV2ViS2l0OjpSZXNw
b25zaXZlbmVzc1RpbWVyLgogICAgCiAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KICAgIAog
ICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDogQWRkIHR3byBuZXcgbWV0
aG9kIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNw
b25zaXZlCiAgICAgICAgdG8gTmF2aWdhdGlvbkNsaWVudDsgdGhleSBhcmUgY2FsbGVkIHdoZW4g
V2ViS2l0OjpSZXNwb25zaXZlbmVzc1RpbWVyIHVwZGF0ZSBpdHMgY2xpZW50J3Mgc3RhdGUuCiAg
ICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6CiAg
ICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKToK
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDog
QWRkIHR3byBuZXcgZGVsZWdhdGUgbWV0aG9kIHRvIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZToKICAgICAgICBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBhbmQgX3dl
YlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOgogICAgKiBVSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLmg6IEFkZCBuZXcgb3ZlcnJpZGluZyBtZXRob2RzIHByb2Nlc3NE
aWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlLgogICAg
ICAgIEFsc28gYWRkIGEgYm9vbCBtZW1iZXIgZm9yIGVhY2ggbWV0aG9kIHRvIGluZGljYXRlIGlm
IHRoZSBkZWxlZ2F0ZSBoYXMgaW1wbGVtZW50IHRoZSByZWxhdGVkIG1ldGhvZC4KICAgICogVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25T
dGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogVXBkYXRlIHRoZSBuZXcgYm9vbCBtZW1iZXJz
IGJhc2VkIG9uIHRoZSBkZWxlZ2F0ZS4KICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpOiBTZW5kIHRoZSBkZWxl
Z2F0ZSBtZXNzYWdlIHRvIG5hdmlnYXRpb25EZWxlZ2F0ZQogICAgICAgIGlmIF93ZWJWaWV3V2Vi
UHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6IGlzIGltcGxlbWVudGVkLgogICAgKFdlYktpdDo6
TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNw
b25zaXZlKTogRGl0dG8uCiAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgogICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKTogQ2FsbCBu
YXZpZ2F0aW9uQ2xpZW50J3MgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSBpZiB0aGUgcGFn
ZSBwcm94eQogICAgICAgIGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgogICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6ICBDYWxsIG5hdmlnYXRpb25DbGll
bnQncyBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBpZiB0aGUgcGFnZSBwcm94eQogICAgICAg
IGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MDFlYmMyLi5mYjNmN2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTUtMTEtMDEgIFlvbmdqdW4gWmhhbmcgIDx5
b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb2JqQyBkZWxlZ2F0ZSBjYWxs
YmFjayBmb3Igd2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHdlYlByb2Nlc3NEaWRC
ZWNvbWVVbnJlc3BvbnNpdmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTA3NzgKKworICAgICAgICBBZGQgbWV0aG9kcyBpbnRvIFdLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZSB0byBub3RpZnkgV2ViS2l0IGNsaWVudCB3aGVuIHdlYiBwcm9jZXNz
IGJlY29tZXMgdW5yZXNwb25zaXZlCisgICAgICAgIG9yIHJlc3BvbnNpdmUsIHdoaWNoIGlzIHJl
cG9ydGVkIGJ5IFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NUaW1lci4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oOiBBZGQgdHdvIG5ldyBtZXRob2QgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNp
dmUgYW5kIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUKKyAgICAgICAgICAgIHRvIE5hdmln
YXRpb25DbGllbnQ7IHRoZXkgYXJlIGNhbGxlZCB3aGVuIFdlYktpdDo6UmVzcG9uc2l2ZW5lc3NU
aW1lciB1cGRhdGUgaXRzIGNsaWVudCdzIHN0YXRlLgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9u
Q2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6CisgICAgICAgIChBUEk6Ok5hdmln
YXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg6IEFkZCB0d28g
bmV3IGRlbGVnYXRlIG1ldGhvZCB0byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU6CisgICAg
ICAgICAgICBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBhbmQgX3dlYlZp
ZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDogQWRkIG5ldyBvdmVycmlkaW5nIG1ldGhvZHMgcHJvY2Vz
c0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUuCisg
ICAgICAgICAgICBBbHNvIGFkZCBhIGJvb2wgbWVtYmVyIGZvciBlYWNoIG1ldGhvZCB0byBpbmRp
Y2F0ZSBpZiB0aGUgZGVsZWdhdGUgaGFzIGltcGxlbWVudCB0aGUgcmVsYXRlZCBtZXRob2QuCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdl
YktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOiBVcGRhdGUgdGhl
IG5ldyBib29sIG1lbWJlcnMgYmFzZWQgb24gdGhlIGRlbGVnYXRlLgorICAgICAgICAoV2ViS2l0
OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVSZXNw
b25zaXZlKTogU2VuZCB0aGUgZGVsZWdhdGUgbWVzc2FnZSB0byBuYXZpZ2F0aW9uRGVsZWdhdGUK
KyAgICAgICAgICAgIGlmIF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6IGlz
IGltcGxlbWVudGVkLgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRp
b25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpOiBEaXR0by4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojpwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKTogQ2FsbCBuYXZpZ2F0aW9uQ2xpZW50
J3MgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSBpZiB0aGUgcGFnZSBwcm94eQorICAgICAg
ICAgICAgaGFzIG5hdmlnYXRpb25DbGllbnQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUpOiAgQ2FsbCBuYXZpZ2F0aW9uQ2xpZW50J3Mg
cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgaWYgdGhlIHBhZ2UgcHJveHkKKyAgICAgICAgICAg
IGhhcyBuYXZpZ2F0aW9uQ2xpZW50LgorCiAyMDE1LTExLTAxICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTkxODMxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZp
Z2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaAppbmRleCBjYWY0MDFkLi5mYjVhMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtODEsOCArODEsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJQcm90ZWN0aW9uU3Bh
Y2UqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkqKSB7IH0KIAotICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9u
IHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGlzIGNsaWVudC4KKyAgICAvLyBGSVhNRTogVGhlc2Ug
ZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRoaXMgY2xpZW50LgogICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCBSZWZQdHI8RGF0YT4gd2ViQ3J5
cHRvTWFzdGVyS2V5KFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyByZXR1cm4gbnVsbHB0cjsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBiYmRiNDg1Li4zZmQ5OWVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKQEAgLTUxLDYgKzUxLDggQEAgc3RhdGlj
IGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeUJlY29tZURvd25sb2EKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlICopY2hhbGxlbmdlOwogCiAtICh2b2lkKV93ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNo
OihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNv
bWVSZXNwb25zaXZlOihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld1dlYlBy
b2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAKIC0gKE5T
RGF0YSAqKV93ZWJDcnlwdG9NYXN0ZXJLZXlGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
LmgKaW5kZXggNjE5MTkxYS4uY2IwOGIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlKFdlYlBhZ2VQcm94eSYsIFdlYlByb3RlY3Rpb25TcGFjZSopIG92ZXJyaWRlOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYlBhZ2VQ
cm94eSYsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkqKSBvdmVycmlkZTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKFdlYlBhZ2VQcm94
eSYpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKwogICAgICAgICB2aXJ0dWFsIFJlZlB0
cjxBUEk6OkRhdGE+IHdlYkNyeXB0b01hc3RlcktleShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsK
IAogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtMTcxLDYgKzE3NCw4IEBAIHByaXZhdGU6CiAgICAg
ICAgIGJvb2wgd2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UgOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
OiAxOwogICAgICAgICBib29sIHdlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2ggOiAxOworICAgICAg
ICBib29sIHdlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSA6IDE7CisgICAgICAg
IGJvb2wgd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUgOiAxOwogICAgICAg
ICBib29sIHdlYkNyeXB0b01hc3RlcktleUZvcldlYlZpZXcgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdEaWRCZWdpbk5hdmlnYXRpb25HZXN0dXJlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3
V2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlV2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0gOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0KaW5kZXggZWNhMjQwYS4uYWY4YzdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0xNTAsNiArMTUwLDggQEAg
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0
aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3Q2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSA9IFtkZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2U6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQ
cm9jZXNzRGlkQ3Jhc2ggPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaDopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lUmVz
cG9uc2l2ZTopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYlBy
b2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmU6KV07CiAg
ICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYkNyeXB0b01hc3RlcktleUZvcldlYlZp
ZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViQ3J5cHRvTWFz
dGVyS2V5Rm9yV2ViVmlldzopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZEJlZ2luTmF2aWdhdGlvbkdlc3R1cmUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlld0RpZEJlZ2luTmF2aWdhdGlvbkdlc3R1cmU6KV07CiAgICAg
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdlc3R1
cmVXaXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbSA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3V2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOndp
dGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJdGVtOildOwpAQCAtNjgzLDYgKzY4NSwzMCBA
QCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZENyYXNo
KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYQogICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0
aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlld1dl
YlByb2Nlc3NEaWRDcmFzaDptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXddOwogfQogCit2b2lk
IE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29tZVJlc3Bv
bnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCit7CisgICAgaWYgKCFtX25hdmlnYXRp
b25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYlByb2Nlc3NEaWRC
ZWNvbWVSZXNwb25zaXZlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIG5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwor
ICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbc3Rh
dGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5hdmlnYXRpb25EZWxl
Z2F0ZS5nZXQoKSkgX3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTptX25hdmln
YXRpb25TdGF0ZS5tX3dlYlZpZXddOworfQorCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYgcGFnZSkKK3sKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRp
b25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIW5hdmlnYXRpb25E
ZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmln
YXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3
V2ViUHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZTptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZp
ZXddOworfQorCiBSZWZQdHI8QVBJOjpEYXRhPiBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6OndlYkNyeXB0b01hc3RlcktleShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpCiB7CiAgICAg
aWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViQ3J5
cHRvTWFzdGVyS2V5Rm9yV2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZDNiYjhjMy4uMmE3YmY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ4NTcsNyArNDg1NywxMCBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgpCiAKICAgICB1cGRhdGVCYWNraW5n
U3RvcmVEaXNjYXJkYWJsZVN0YXRlKCk7CiAKLSAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0Rp
ZEJlY29tZVVucmVzcG9uc2l2ZSgqdGhpcyk7CisgICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkK
KyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZl
KCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1fbG9hZGVyQ2xpZW50LT5wcm9jZXNzRGlkQmVj
b21lVW5yZXNwb25zaXZlKCp0aGlzKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmludGVyYWN0
aW9uT2NjdXJyZWRXaGlsZVByb2Nlc3NVbnJlc3BvbnNpdmUoKQpAQCAtNDg3NSw3ICs0ODc4LDEw
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSgpCiAgICAg
CiAgICAgdXBkYXRlQmFja2luZ1N0b3JlRGlzY2FyZGFibGVTdGF0ZSgpOwogCi0gICAgbV9sb2Fk
ZXJDbGllbnQtPnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCp0aGlzKTsKKyAgICBpZiAobV9u
YXZpZ2F0aW9uQ2xpZW50KQorICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPnByb2Nlc3NEaWRC
ZWNvbWVSZXNwb25zaXZlKCp0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIG1fbG9hZGVyQ2xpZW50
LT5wcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSgqdGhpcyk7CiB9CiAKIHZvaWQgV2ViUGFnZVBy
b3h5Ojpwcm9jZXNzRGlkQ3Jhc2goKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264531</attachid>
            <date>2015-11-01 14:20:38 -0800</date>
            <delta_ts>2015-11-02 10:27:31 -0800</delta_ts>
            <desc>Address review comments before landing.</desc>
            <filename>responsive_check.patch</filename>
            <type>text/plain</type>
            <size>9804</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGE0YThlOWY0ZTA4MjZhNTlhNzU3NjJmYmM2M2VkZjhjYjk1MzJlYTIKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBTdW4gTm92IDEg
MDk6MzU6MDggMjAxNSAtMDgwMAoKICAgIEFkZCBvYmpDIGRlbGVnYXRlIGNhbGxiYWNrIGZvciB3
ZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSBhbmQgd2ViUHJvY2Vzc0RpZEJlY29tZVVucmVz
cG9uc2l2ZS4KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3
NzgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNTAxZWJjMi4uODM4ZTQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMyIEBACisyMDE1LTExLTAxICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIG9iakMgZGVsZWdhdGUgY2FsbGJhY2sgZm9yIHdlYlByb2Nlc3NE
aWRCZWNvbWVSZXNwb25zaXZlIGFuZCB3ZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNzc4CisK
KyAgICAgICAgQWRkIG1ldGhvZHMgaW50byBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUgdG8g
bm90aWZ5IFdlYktpdCBjbGllbnQgd2hlbiB3ZWIgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9uc2l2
ZQorICAgICAgICBvciByZXNwb25zaXZlLCB3aGljaCBpcyByZXBvcnRlZCBieSBXZWJLaXQ6OlJl
c3BvbnNpdmVuZXNzVGltZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDogQWRkIHR3byBu
ZXcgbWV0aG9kIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCBwcm9jZXNzRGlkQmVjb21l
VW5yZXNwb25zaXZlCisgICAgICAgICAgICB0byBOYXZpZ2F0aW9uQ2xpZW50OyB0aGV5IGFyZSBj
YWxsZWQgd2hlbiBXZWJLaXQ6OlJlc3BvbnNpdmVuZXNzVGltZXIgdXBkYXRlIGl0cyBjbGllbnQn
cyBzdGF0ZS4KKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZEJlY29t
ZVJlc3BvbnNpdmUpOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlk
QmVjb21lVW5yZXNwb25zaXZlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOiBBZGQgdHdvIG5ldyBkZWxlZ2F0ZSBtZXRob2QgdG8g
V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlOgorICAgICAgICAgICAgX3dlYlZpZXdXZWJQcm9j
ZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTogYW5kIF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVVu
cmVzcG9uc2l2ZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
IEFkZCBuZXcgb3ZlcnJpZGluZyBtZXRob2RzIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIGFu
ZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlLgorICAgICAgICAgICAgQWxzbyBhZGQgYSBi
b29sIG1lbWJlciBmb3IgZWFjaCBtZXRob2QgdG8gaW5kaWNhdGUgaWYgdGhlIGRlbGVnYXRlIGhh
cyBpbXBsZW1lbnQgdGhlIHJlbGF0ZWQgbWV0aG9kLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogVXBkYXRlIHRoZSBuZXcgYm9vbCBtZW1iZXJzIGJhc2Vk
IG9uIHRoZSBkZWxlZ2F0ZS4KKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSk6IFNlbmQgdGhlIGRlbGVn
YXRlIG1lc3NhZ2UgdG8gbmF2aWdhdGlvbkRlbGVnYXRlCisgICAgICAgICAgICBpZiBfd2ViVmll
d1dlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlOiBpcyBpbXBsZW1lbnRlZC4KKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVj
b21lVW5yZXNwb25zaXZlKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZEJlY29tZVVu
cmVzcG9uc2l2ZSk6IENhbGwgbmF2aWdhdGlvbkNsaWVudCdzIHByb2Nlc3NEaWRCZWNvbWVVbnJl
c3BvbnNpdmUgaWYgdGhlIHBhZ2UgcHJveHkKKyAgICAgICAgICAgIGhhcyBuYXZpZ2F0aW9uQ2xp
ZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRCZWNvbWVSZXNw
b25zaXZlKTogIENhbGwgbmF2aWdhdGlvbkNsaWVudCdzIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25z
aXZlIGlmIHRoZSBwYWdlIHByb3h5CisgICAgICAgICAgICBoYXMgbmF2aWdhdGlvbkNsaWVudC4K
KwogMjAxNS0xMS0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MTgzMS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggY2FmNDAx
ZC4uZmI1YTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTgxLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViUHJvdGVjdGlvblNwYWNlKikgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Kikg
eyB9CiAKLSAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIHBhcnQgb2Yg
dGhpcyBjbGllbnQuCisgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUg
cGFydCBvZiB0aGlzIGNsaWVudC4KICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdl
YktpdDo6V2ViUGFnZVByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRCZWNv
bWVSZXNwb25zaXZlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0K
IAogICAgIHZpcnR1YWwgUmVmUHRyPERhdGE+IHdlYkNyeXB0b01hc3RlcktleShXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpIHsgcmV0dXJuIG51bGxwdHI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQ
cml2YXRlLmgKaW5kZXggYmJkYjQ4NS4uM2ZkOTllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRl
UHJpdmF0ZS5oCkBAIC01MSw2ICs1MSw4IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNw
b25zZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hCiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZTsKIAog
LSAodm9pZClfd2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaDooV0tXZWJWaWV3ICopd2ViVmlldzsK
Ky0gKHZvaWQpX3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZTooV0tXZWJWaWV3
ICopd2ViVmlldzsKKy0gKHZvaWQpX3dlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25z
aXZlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogCiAtIChOU0RhdGEgKilfd2ViQ3J5cHRvTWFzdGVy
S2V5Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCmluZGV4IDYxOTE5MWEuLmNiMDhi
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLmgKQEAgLTEwMSw2ICsxMDEsOSBAQCBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJQYWdlUHJveHkmLCBXZWJQ
cm90ZWN0aW9uU3BhY2UqKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlk
Q3Jhc2goV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoV2ViUGFnZVByb3h5Jikg
b3ZlcnJpZGU7CisKICAgICAgICAgdmlydHVhbCBSZWZQdHI8QVBJOjpEYXRhPiB3ZWJDcnlwdG9N
YXN0ZXJLZXkoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykK
QEAgLTE3MSw2ICsxNzQsOCBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdDYW5BdXRo
ZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3V2ViUHJvY2Vzc0RpZENyYXNoIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2ViUHJvY2Vz
c0RpZEJlY29tZVJlc3BvbnNpdmUgOiAxOworICAgICAgICBib29sIHdlYlZpZXdXZWJQcm9jZXNz
RGlkQmVjb21lVW5yZXNwb25zaXZlIDogMTsKICAgICAgICAgYm9vbCB3ZWJDcnlwdG9NYXN0ZXJL
ZXlGb3JXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQmVnaW5OYXZpZ2F0aW9u
R2VzdHVyZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVy
ZVdpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJdGVtIDogMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IGVjYTI0MGEu
LmFmOGM3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZp
Z2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbQpAQCAtMTUwLDYgKzE1MCw4IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpz
ZXROYXZpZ2F0aW9uRGVsZWdhdGUoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSkK
ICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOildOwog
ICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOildOwogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jh
c2g6KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQcm9jZXNz
RGlkQmVjb21lUmVzcG9uc2l2ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3V2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6KV07CisgICAgbV9uYXZp
Z2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lVW5yZXNwb25z
aXZlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXZWJQ
cm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJDcnlwdG9NYXN0ZXJLZXlGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYkNyeXB0b01hc3RlcktleUZvcldlYlZpZXc6KV07CiAg
ICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRCZWdpbk5hdmlnYXRpb25H
ZXN0dXJlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdE
aWRCZWdpbk5hdmlnYXRpb25HZXN0dXJlOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3V2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlV2l0aE5hdmlnYXRpb25Ub0JhY2tG
b3J3YXJkTGlzdEl0ZW0gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTp3aXRoTmF2aWdhdGlvblRvQmFja0Zvcndh
cmRMaXN0SXRlbTopXTsKQEAgLTY4Myw2ICs2ODUsMzAgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6
Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBhZ2VQcm94eSYg
cGEKICAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5h
dmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkgX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6bV9uYXZp
Z2F0aW9uU3RhdGUubV93ZWJWaWV3XTsKIH0KIAordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmln
YXRpb25DbGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiBwYWdlKQoreworICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25T
dGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIW5hdmlnYXRpb25EZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3V2Vi
UHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmU6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3XTsK
K30KKwordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRC
ZWNvbWVVbnJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCit7CisgICAgaWYg
KCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dl
YlByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4o
bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlld1dlYlByb2Nlc3NEaWRCZWNvbWVVbnJl
c3BvbnNpdmU6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3XTsKK30KKwogUmVmUHRyPEFQSTo6
RGF0YT4gTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojp3ZWJDcnlwdG9NYXN0ZXJL
ZXkoV2ViS2l0OjpXZWJQYWdlUHJveHkmKQogewogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUu
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYkNyeXB0b01hc3RlcktleUZvcldlYlZpZXcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGQzYmI4YzMu
LjJhN2JmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC00ODU3LDcgKzQ4NTcsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRCZWNvbWVV
bnJlc3BvbnNpdmUoKQogCiAgICAgdXBkYXRlQmFja2luZ1N0b3JlRGlzY2FyZGFibGVTdGF0ZSgp
OwogCi0gICAgbV9sb2FkZXJDbGllbnQtPnByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUoKnRo
aXMpOworICAgIGlmIChtX25hdmlnYXRpb25DbGllbnQpCisgICAgICAgIG1fbmF2aWdhdGlvbkNs
aWVudC0+cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgqdGhpcyk7CisgICAgZWxzZQorICAg
ICAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgqdGhpcyk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjppbnRlcmFjdGlvbk9jY3VycmVkV2hpbGVQcm9jZXNz
VW5yZXNwb25zaXZlKCkKQEAgLTQ4NzUsNyArNDg3OCwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoKQogICAgIAogICAgIHVwZGF0ZUJhY2tpbmdTdG9y
ZURpc2NhcmRhYmxlU3RhdGUoKTsKIAotICAgIG1fbG9hZGVyQ2xpZW50LT5wcm9jZXNzRGlkQmVj
b21lUmVzcG9uc2l2ZSgqdGhpcyk7CisgICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkKKyAgICAg
ICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSgqdGhpcyk7
CisgICAgZWxzZQorICAgICAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZEJlY29tZVJlc3Bv
bnNpdmUoKnRoaXMpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>