<?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>95544</bug_id>
          
          <creation_ts>2012-08-31 02:52:14 -0700</creation_ts>
          <short_desc>[EFL] Refactoring the DumpRenderTreeSupportEfl</short_desc>
          <delta_ts>2012-09-01 21:31:32 -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>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>709431</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-08-31 02:52:14 -0700</bug_when>
    <thetext>There are lots of repeated codes to get and validate the WebCore::Frame and WebCore::Page.
They can be replaced with simple macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710142</commentid>
    <comment_count>1</comment_count>
      <attachid>161813</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-08-31 20:30:02 -0700</bug_when>
    <thetext>Created attachment 161813
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710268</commentid>
    <comment_count>2</comment_count>
      <attachid>161813</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-01 10:56:08 -0700</bug_when>
    <thetext>Comment on attachment 161813
patch

Makes sense to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710310</commentid>
    <comment_count>3</comment_count>
      <attachid>161813</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-01 21:31:29 -0700</bug_when>
    <thetext>Comment on attachment 161813
patch

Clearing flags on attachment: 161813

Committed r127385: &lt;http://trac.webkit.org/changeset/127385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710311</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-01 21:31:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161813</attachid>
            <date>2012-08-31 20:30:02 -0700</date>
            <delta_ts>2012-09-01 21:31:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>DRT.patch</filename>
            <type>text/plain</type>
            <size>23492</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBlNWZjOWUyLi43OGI3NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMTItMDgtMzEgIEppbndvbyBTb25nICA8amlud29vNy5zb25nQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIFJlZmFjdG9yaW5nIHRoZSBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk1NTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlcmUgYXJlIGxvdHMgb2YgcmVwZWF0ZWQgY29kZXMgZm9yIGdldHRpbmcgdGhlIFdlYkNv
cmU6OkZyYW1lIAorICAgICAgICBhbmQgV2ViQ29yZTo6UGFnZS4gVG8gcmVkdWNlIHRoZXNlIGR1
cGxpY2F0aW9ucywgc2ltcGxlIG1hY3JvcworICAgICAgICBhcmUgYWRkZWQuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBqdXN0IHJlZmFjdG9yaW5nLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KToKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y2xlYXJGcmFtZU5hbWUpOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpjbGVhck9wZW5lcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZCk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZyYW1lQ2hpbGRyZW4pOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmcmFtZVBhcmVudCk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OmxheW91dEZyYW1lKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6bnVtYmVyT2ZQYWdlcyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKToKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6cGFnZVByb3BlcnR5KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6cGF1c2VBbmltYXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpwYXVzZVRyYW5zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
OjpwZW5kaW5nVW5sb2FkRXZlbnRDb3VudCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnJlbmRlclRyZWVEdW1wKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6cmVzcG9uc2VNaW1lVHlwZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNlbGVjdGlvblJlY3RhbmdsZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnN1aXRhYmxlRFJURnJhbWVOYW1lKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKToKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YWRkVXNlclNjcmlwdCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyVXNlclNjcmlwdHMpOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjphZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKToKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZmluZFN0cmluZyk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnNldENTU0dyaWRMYXlvdXRFbmFibGVkKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpldmFsdWF0ZUlu
V2ViSW5zcGVjdG9yKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZXZhbHVh
dGVTY3JpcHRJbklzb2xhdGVkV29ybGQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpnbG9iYWxDb250ZXh0UmVmRm9yRnJhbWUpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWdu
aWZpY2F0aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9y
QW5kVXNlclN0eWxlc0VuYWJsZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
OjpzZXRDb21wb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6Omhh
c0NvbXBvc2l0aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y29tcG9z
aXRpb25SYW5nZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNvbmZpcm1D
b21wb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZpcnN0UmVj
dEZvckNoYXJhY3RlclJhbmdlKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2VsZWN0ZWRSYW5nZSk6CisKIDIwMTItMDgtMzEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3Rv
cGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgcHJvcGVyIHN1cHBvcnQg
Zm9yIG5hdmlnYXRvci5vbkxpbmUgYW5kIGFzc29jaWF0ZWQgZXZlbnRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcAppbmRleCA4YTllZjliLi45YTUzZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5jcHAKQEAgLTYxLDEyICs2MSwxOSBAQAogI2luY2x1ZGUgPHdvcmtlcnMvV29ya2VyVGhyZWFk
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAorI2RlZmluZSBEUlRfU1VQUE9SVF9GUkFN
RV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgLi4uKSBcCisgICAgV2ViQ29yZTo6RnJh
bWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsgIFwKKyAgICBpZiAo
IWZyYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICByZXR1cm4gX19WQV9BUkdTX187CisKKyNkZWZpbmUgRFJUX1NVUFBSVF9QQUdFX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSwgLi4uKSBcCisgICAgV2ViQ29yZTo6UGFnZSogcGFn
ZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOyAgXAorICAgIGlmICghcGFnZSkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJu
IF9fVkFfQVJHU19fOworICAgIAogdW5zaWduZWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjph
Y3RpdmVBbmltYXRpb25zQ291bnQoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewotICAg
IFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7
Ci0KLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsKKyAgICBEUlRfU1VQUE9SVF9G
UkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgMCk7CiAKICAgICBXZWJDb3JlOjpB
bmltYXRpb25Db250cm9sbGVyKiBhbmltYXRpb25Db250cm9sbGVyID0gZnJhbWUtPmFuaW1hdGlv
bigpOwogCkBAIC03OCwzMiArODUsMjggQEAgdW5zaWduZWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjphY3RpdmVBbmltYXRpb25zQ291bnQoY29uc3QgRXZhc19PYmplY3QqIGV3a0YKIAogYm9v
bCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyhFdmFz
X09iamVjdCogZXdrRnJhbWUpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJp
dmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1l
LCBmcmFtZSwgZmFsc2UpOwogCiAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+c2hvdWxkQ2xv
c2UoKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmNsZWFyRnJhbWVOYW1l
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKLSAgICBpZiAoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
ID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKSkKLSAgICAgICAgZnJhbWUtPnRyZWUo
KS0+Y2xlYXJOYW1lKCk7CisgICAgRFJUX1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tG
cmFtZSwgZnJhbWUpOworCisgICAgZnJhbWUtPnRyZWUoKS0+Y2xlYXJOYW1lKCk7CiB9CiAKIHZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjbGVhck9wZW5lcihFdmFzX09iamVjdCogZXdr
RnJhbWUpCiB7Ci0gICAgaWYgKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNv
cmVGcmFtZShld2tGcmFtZSkpCi0gICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+c2V0T3BlbmVyKDAp
OworICAgIERSVF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIGZyYW1lKTsK
KworICAgIGZyYW1lLT5sb2FkZXIoKS0+c2V0T3BlbmVyKDApOwogfQogCiBib29sIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6ZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElk
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgU3RyaW5nJiBlbGVtZW50SWQpCiB7
Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0Zy
YW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBEUlRf
U1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgZmFsc2UpOwogCiAg
ICAgV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CiAgICAg
QVNTRVJUKGRvY3VtZW50KTsKQEAgLTExOCwxMCArMTIxLDcgQEAgYm9vbCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25z
dCBFdmEKIAogRWluYV9MaXN0KiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZyYW1lQ2hpbGRy
ZW4oY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewotICAgIFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7Ci0KLSAgICBpZiAoIWZyYW1l
KQotICAgICAgICByZXR1cm4gMDsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJO
KGV3a0ZyYW1lLCBmcmFtZSwgMCk7CiAKICAgICBFaW5hX0xpc3QqIGNoaWxkRnJhbWVzID0gMDsK
IApAQCAtMTQwLDY0ICsxNDAsNDUgQEAgRWluYV9MaXN0KiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OmZyYW1lQ2hpbGRyZW4oY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogCiBXZWJDb3Jl
OjpGcmFtZSogRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmcmFtZVBhcmVudChjb25zdCBFdmFz
X09iamVjdCogZXdrRnJhbWUpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJp
dmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiAwOworICAgIERSVF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIGZy
YW1lLCAwKTsKIAogICAgIHJldHVybiBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKIH0KIAogdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmxheW91dEZyYW1lKEV2YXNfT2JqZWN0KiBld2tG
cmFtZSkKIHsKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRlOjpjb3JlRnJh
bWUoZXdrRnJhbWUpOwotCi0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
V2ViQ29yZTo6RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIERSVF9T
VVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIGZyYW1lKTsKIAotICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgIGlmICghZnJhbWUtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZnJhbWVWaWV3LT5sYXlvdXQoKTsKKyAgICBmcmFtZS0+dmlldygpLT5sYXlvdXQoKTsKIH0K
IAogaW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6bnVtYmVyT2ZQYWdlcyhjb25zdCBFdmFz
X09iamVjdCogZXdrRnJhbWUsIGZsb2F0IHBhZ2VXaWR0aCwgZmxvYXQgcGFnZUhlaWdodCkKIHsK
LSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRlOjpjb3JlRnJhbWUoZXdrRnJh
bWUpOwotCi0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgRFJUX1NVUFBP
UlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIDApOwogCiAgICAgcmV0dXJu
IFdlYkNvcmU6OlByaW50Q29udGV4dDo6bnVtYmVyT2ZQYWdlcyhmcmFtZSwgV2ViQ29yZTo6Rmxv
YXRTaXplKHBhZ2VXaWR0aCwgcGFnZUhlaWdodCkpOwogfQogCiBTdHJpbmcgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhjb25zdCBFdmFzX09iamVj
dCogZXdrRnJhbWUsIGludCBwYWdlTnVtYmVyLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBt
YXJnaW5Ub3AsIGludCBtYXJnaW5SaWdodCwgaW50IG1hcmdpbkJvdHRvbSwgaW50IG1hcmdpbkxl
ZnQpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1l
KGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgU3Ry
aW5nKCkpOwogCiAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50Q29udGV4dDo6cGFnZVNpemVBbmRN
YXJnaW5zSW5QaXhlbHMoZnJhbWUsIHBhZ2VOdW1iZXIsIHdpZHRoLCBoZWlnaHQsIG1hcmdpblRv
cCwgbWFyZ2luUmlnaHQsIG1hcmdpbkJvdHRvbSwgbWFyZ2luTGVmdCk7CiB9CiAKIFN0cmluZyBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnBhZ2VQcm9wZXJ0eShjb25zdCBFdmFzX09iamVjdCog
ZXdrRnJhbWUsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgaW50IHBhZ2VOdW1iZXIpCiB7Ci0g
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tG
cmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgU3RyaW5n
KCkpOwogCi0gICAgcmV0dXJuIFdlYkNvcmU6OlByaW50Q29udGV4dDo6cGFnZVByb3BlcnR5KGNv
cmVGcmFtZSwgcHJvcGVydHlOYW1lLCBwYWdlTnVtYmVyKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
UHJpbnRDb250ZXh0OjpwYWdlUHJvcGVydHkoZnJhbWUsIHByb3BlcnR5TmFtZSwgcGFnZU51bWJl
cik7CiB9CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpwYXVzZUFuaW1hdGlvbihF
dmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIGVsZW1l
bnRJZCwgZG91YmxlIHRpbWUpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJp
dmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1l
LCBmcmFtZSwgZmFsc2UpOwogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCA9IGZyYW1l
LT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwogCkBAIC0yMDksMTAgKzE5
MCw3IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpwYXVzZUFuaW1hdGlvbihFdmFz
X09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIqCiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpwYXVzZVRyYW5zaXRpb24oRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFy
KiBuYW1lLCBjb25zdCBjaGFyKiBlbGVtZW50SWQsIGRvdWJsZSB0aW1lKQogewotICAgIFdlYkNv
cmU6OkZyYW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSk7Ci0KLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRFJUX1NVUFBPUlRfRlJB
TUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJhbWUsIGZhbHNlKTsKIAogICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGVsZW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZWxl
bWVudElkKTsKIApAQCAtMjI0LDE4ICsyMDIsMTQgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnBhdXNlVHJhbnNpdGlvbihFdmFzX09iamVjdCogZXdrRnJhbWUsIGNvbnN0IGNoYXIK
IAogdW5zaWduZWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpwZW5kaW5nVW5sb2FkRXZlbnRD
b3VudChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7Ci0gICAgaWYgKFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVGcmFtZShld2tGcmFtZSkpCi0gICAgICAgIHJl
dHVybiBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnBlbmRpbmdVbmxvYWRFdmVudExp
c3RlbmVycygpOworICAgIERSVF9TVVBQT1JUX0ZSQU1FX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUs
IGZyYW1lLCAwKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBmcmFtZS0+ZG9jdW1lbnQo
KS0+ZG9tV2luZG93KCktPnBlbmRpbmdVbmxvYWRFdmVudExpc3RlbmVycygpOwogfQogCiBTdHJp
bmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpyZW5kZXJUcmVlRHVtcChFdmFzX09iamVjdCog
ZXdrRnJhbWUpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29y
ZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFt
ZSwgU3RyaW5nKCkpOwogCiAgICAgV2ViQ29yZTo6RnJhbWVWaWV3ICpmcmFtZVZpZXcgPSBmcmFt
ZS0+dmlldygpOwogCkBAIC0yNDcsMTAgKzIyMSw3IEBAIFN0cmluZyBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnJlbmRlclRyZWVEdW1wKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIAogU3RyaW5n
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6cmVzcG9uc2VNaW1lVHlwZShjb25zdCBFdmFzX09i
amVjdCogZXdrRnJhbWUpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0
ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1l
LCBmcmFtZSwgU3RyaW5nKCkpOwogCiAgICAgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIgKmRvY3Vt
ZW50TG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwogCkBAIC0yNjIs
MTAgKzIzMyw3IEBAIFN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnJlc3BvbnNlTWlt
ZVR5cGUoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogCiBXZWJDb3JlOjpJbnRSZWN0IER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2VsZWN0aW9uUmVjdGFuZ2xlKGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSkKIHsKLSAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBFV0tQcml2YXRl
Ojpjb3JlRnJhbWUoZXdrRnJhbWUpOwotCi0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkludFJlY3QoKTsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJO
KGV3a0ZyYW1lLCBmcmFtZSwgV2ViQ29yZTo6SW50UmVjdCgpKTsKIAogICAgIHJldHVybiBlbmNs
b3NpbmdJbnRSZWN0KGZyYW1lLT5zZWxlY3Rpb24oKS0+Ym91bmRzKCkpOwogfQpAQCAtMjczLDEw
ICsyNDEsNyBAQCBXZWJDb3JlOjpJbnRSZWN0IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2Vs
ZWN0aW9uUmVjdGFuZ2xlKGNvbnN0IEV2YXNfT2JqZWN0KgogLy8gQ29tcGFyZSB3aXRoICJXZWJL
aXQvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0ZyYW1lTG9hZERlbGVnYXRlLm1tCiBTdHJpbmcg
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZyYW1lTmFtZShjb25zdCBFdmFz
X09iamVjdCogZXdrRnJhbWUpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJp
dmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0Zy
YW1lLCBmcmFtZSwgU3RyaW5nKCkpOwogCiAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFtZShld2tf
ZnJhbWVfbmFtZV9nZXQoZXdrRnJhbWUpKTsKIApAQCAtMzIxLDI4ICsyODYsMjEgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEF1dG9maWxsZWQoSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTVmFsdWVSZWYgbm8KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldERl
ZmVyc0xvYWRpbmcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZGVmZXJzKQogewotICAgIFdl
YkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3KTsKLQotICAg
IGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwogCiAgICAgcGFnZS0+c2V0RGVmZXJzTG9hZGluZyhkZWZl
cnMpOwogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TG9hZHNTaXRlSWNv
bnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wg
bG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2VzKQogewotICAgIFdl
YkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3KTsKLSAgICBp
ZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBwYWdlKTsKIAogICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldExvYWRzU2l0
ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKGxvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdQcmVmZXJlbmNlcyk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjphZGRVc2VyU2NyaXB0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBhbGxGcmFtZXMpCiB7Ci0gICAg
V2ViQ29yZTo6UGFnZSogcGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwotICAg
IGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwogCiAgICAgcGFnZS0+Z3JvdXAoKS5hZGRVc2VyU2NyaXB0
VG9Xb3JsZChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQoKSwgc291cmNlQ29kZSwgV2Vi
Q29yZTo6S1VSTCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVs
bHB0ciwgbnVsbHB0ciwgcnVuQXRTdGFydCA/IFdlYkNvcmU6OkluamVjdEF0RG9jdW1lbnRTdGFy
dCA6IFdlYkNvcmU6OkluamVjdEF0RG9jdW1lbnRFbmQsCkBAIC0zNTEsNzEgKzMwOSw1NiBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6YWRkVXNlclNjcmlwdChjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldywgY29uc3QgUwogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
Y2xlYXJVc2VyU2NyaXB0cyhjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBXZWJD
b3JlOjpQYWdlKiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0gICAgaWYg
KCFwYWdlKQotICAgICAgICByZXR1cm47CisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgcGFnZSk7CiAKICAgICBwYWdlLT5ncm91cCgpLnJlbW92ZVVzZXJTY3JpcHRz
RnJvbVdvcmxkKFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsKIH0KIAogdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGJvb2wgYWxsRnJhbWVzKQog
ewotICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3
KTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKKyAgICBEUlRfU1VQUFJUX1BBR0Vf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKIAogICAgIHBhZ2UtPmdyb3VwKCkuYWRkVXNl
clN0eWxlU2hlZXRUb1dvcmxkKFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBzb3Vy
Y2VDb2RlLCBXZWJDb3JlOjpLVVJMKCksIG51bGxwdHIsIG51bGxwdHIsIGFsbEZyYW1lcyA/IFdl
YkNvcmU6OkluamVjdEluQWxsRnJhbWVzIDogV2ViQ29yZTo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkp
OwogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y2xlYXJVc2VyU3R5bGVTaGVl
dHMoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgV2ViQ29yZTo6UGFnZSogcGFn
ZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuOworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBh
Z2UpOwogCiAgICAgcGFnZS0+Z3JvdXAoKS5yZW1vdmVVc2VyU3R5bGVTaGVldHNGcm9tV29ybGQo
V2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwogfQogCiB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2YWx1ZSkKIHsKLSAgICBX
ZWJDb3JlOjpQYWdlKiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0gICAg
aWYgKCFwYWdlKQotICAgICAgICByZXR1cm47CisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9S
RVRVUk4oZXdrVmlldywgcGFnZSk7CiAKICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9j
dXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmV4ZWN1dGUodmFsdWUp
OwogfQogCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZmluZFN0cmluZyhjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldywgY29uc3QgU3RyaW5nJiB0ZXh0LCBXZWJDb3JlOjpGaW5kT3B0
aW9ucyBvcHRpb25zKQogewotICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpj
b3JlUGFnZShld2tWaWV3KTsKLQotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UsIGZhbHNl
KTsKIAogICAgIHJldHVybiBwYWdlLT5maW5kU3RyaW5nKHRleHQsIG9wdGlvbnMpOwogfQogCiB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKIHsKLSAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwotICAgIGlmIChj
b3JlUGFnZSkKLSAgICAgICAgY29yZVBhZ2UtPnNldHRpbmdzKCktPnNldENTU0dyaWRMYXlvdXRF
bmFibGVkKGVuYWJsZWQpOworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1Zp
ZXcsIHBhZ2UpOworCisgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0Q1NTR3JpZExheW91dEVuYWJs
ZWQoZW5hYmxlZCk7CiB9CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjppc0NvbW1h
bmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKQog
ewotICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShld2tWaWV3
KTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBEUlRfU1VQUFJU
X1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlLCBmYWxzZSk7CiAKICAgICByZXR1cm4g
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+
Y29tbWFuZChuYW1lKS5pc0VuYWJsZWQoKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCBlbmFibGVkKQogewotICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpj
b3JlUGFnZShld2tWaWV3KTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKKyAgICBE
UlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKIAogICAgIFdlYkNv
cmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwogICAgIGlmICghZWRpdG9y
Q2xpZW50KQpAQCAtNDI2LDkgKzM2OSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsCiAKIHZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCiB7Ci0gICAgV2ViQ29y
ZTo6UGFnZSogcGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwotICAgIGlmICgh
cGFnZSkKLSAgICAgICAgcmV0dXJuOworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHBhZ2UpOwogCiAgICAgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKiBlZGl0b3JD
bGllbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqPihwYWdlLT5lZGl0
b3JDbGllbnQoKSk7CiAgICAgaWYgKCFlZGl0b3JDbGllbnQpCkBAIC01MDgsOSArNDQ5LDcgQEAg
Ym9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmlzVGFyZ2V0SXRlbShjb25zdCBFd2tfSGlz
dG9yeV9JdGVtKiBld2tIaXN0b3J5SXQKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpl
dmFsdWF0ZUluV2ViSW5zcGVjdG9yKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBsb25nIGNh
bGxJZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47CisgICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgcGFnZSk7CiAKICAgICBpZiAocGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpKQogICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQoY2FsbElkLCBzY3JpcHQpOwpAQCAtNTE5LDEyICs0NTgsMTAgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmV2
YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
aW50IHdvcmxkSUQsIEpTT2JqZWN0UmVmIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBzY3Jp
cHQpCiB7Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IEVXS1ByaXZhdGU6OmNvcmVG
cmFtZShld2tGcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybjsKKyAg
ICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSk7CiAKICAg
ICAvLyBDb21tZW50IGZyb20gbWFjOiBTdGFydCBvZmYgd2l0aCBzb21lIGd1ZXNzIGF0IGEgZnJh
bWUgYW5kIGEgZ2xvYmFsIG9iamVjdCwgd2UnbGwgdHJ5IHRvIGRvIGJldHRlci4uLiEKLSAgICBX
ZWJDb3JlOjpKU0RPTVdpbmRvdyogYW55V29ybGRHbG9iYWxPYmplY3QgPSBjb3JlRnJhbWUtPnNj
cmlwdCgpLT5nbG9iYWxPYmplY3QoV2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwor
ICAgIFdlYkNvcmU6OkpTRE9NV2luZG93KiBhbnlXb3JsZEdsb2JhbE9iamVjdCA9IGZyYW1lLT5z
Y3JpcHQoKS0+Z2xvYmFsT2JqZWN0KFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpKTsK
IAogICAgIC8vIENvbW1lbnQgZnJvbSBtYWM6IFRoZSBnbG9iYWwgb2JqZWN0IGlzIHByb2JhYmx5
IGEgc2hlbGwgb2JqZWN0PyAtIGlmIHNvLCB3ZSBrbm93IGhvdyB0byB1c2UgdGhpcyEKICAgICBK
U0M6OkpTT2JqZWN0KiBnbG9iYWxPYmplY3RPYmogPSB0b0pTKGdsb2JhbE9iamVjdCk7CkBAIC01
NjIsMTEgKzQ5OSw5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpldmFsdWF0ZVNj
cmlwdEluSXNvbGF0ZWRXb3JsZChjb25zdCBFdmFzX09iamVjdCoKIAogSlNHbG9iYWxDb250ZXh0
UmVmIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Z2xvYmFsQ29udGV4dFJlZkZvckZyYW1lKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKLSAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZy
YW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFt
ZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgRFJUX1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVS
Tihld2tGcmFtZSwgZnJhbWUsIDApOwogCi0gICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNvcmVGcmFt
ZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQo
KSktPmdsb2JhbEV4ZWMoKSk7CisgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGZyYW1lLT5zY3JpcHQo
KS0+Z2xvYmFsT2JqZWN0KFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpKS0+Z2xvYmFs
RXhlYygpKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldE1vY2tTY3Jv
bGxiYXJzRW5hYmxlZChib29sIGVuYWJsZSkKQEAgLTU5MywxNiArNTI4LDE2IEBAIFN0cmluZyBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6Om1hcmtlclRleHRGb3JMaXN0SXRlbShKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNWCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRJbnRl
cmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBl
bmFibGVkKQogewotICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29y
ZVBhZ2UoZXdrVmlldyk7Ci0gICAgaWYgKGNvcmVQYWdlKQotICAgICAgICBjb3JlUGFnZS0+c2V0
dGluZ3MoKS0+c2V0SW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQoZW5hYmxlZCk7Cisg
ICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBw
YWdlLT5zZXR0aW5ncygpLT5zZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZChlbmFi
bGVkKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25N
ZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBpbnQgdmFsdWUp
CiB7Ci0gICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShl
d2tWaWV3KTsKLSAgICBpZiAoY29yZVBhZ2UpCi0gICAgICAgIGNvcmVQYWdlLT5zZXR0aW5ncygp
LT5zZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbih2YWx1ZSk7CisgICAgRFJU
X1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBwYWdlLT5z
ZXR0aW5ncygpLT5zZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbih2YWx1ZSk7
CiB9CiAKIEpTVmFsdWVSZWYgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpjb21wdXRlZFN0eWxl
SW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFs
dWUpCkBAIC02MjMsMTEgKzU1OCw5IEBAIEpTVmFsdWVSZWYgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0CiAKIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChF
dmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQogewotICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0gICAgaWYgKCFjb3Jl
UGFnZSkKLSAgICAgICAgcmV0dXJuOworICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHBhZ2UpOwogCi0gICAgY29yZVBhZ2UtPnNldHRpbmdzKCktPnNldEF1dGhvckFu
ZFVzZXJTdHlsZXNFbmFibGVkKGVuYWJsZWQpOworICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldEF1
dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCiB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wgZW5hYmxlZCkKQEAgLTY3
Myw4ICs2MDYsOSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6ZGVsaXZlcldlYklu
dGVudChFdmFzX09iamVjdCogZXdrRnJhbWUsIEpTU3RyaW5nUgogCiB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0Q29tcG9zaXRpb24oRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0
IGNoYXIqIHRleHQsIGludCBzdGFydCwgaW50IGxlbmd0aCkKIHsKLSAgICBXZWJDb3JlOjpQYWdl
KiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdrVmlldyk7Ci0gICAgaWYgKCFwYWdlIHx8
ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKSB8fCAhcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZv
Y3VzZWRPck1haW5GcmFtZSgpKQorICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHBhZ2UpOworCisgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKSB8fCAhcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBXZWJDb3JlOjpFZGl0b3IqIGVkaXRvciA9IHBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCk7CkBAIC02ODksOCArNjIzLDkgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldENvbXBvc2l0aW9uKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKgogCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
aGFzQ29tcG9zaXRpb24oY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgY29uc3Qg
V2ViQ29yZTo6UGFnZSogcGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwotICAg
IGlmICghcGFnZSB8fCAhcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkgfHwgIXBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKSkKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBwYWdlLCBmYWxzZSk7CisKKyAgICBpZiAoIXBhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpIHx8ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZy
YW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OkVkaXRv
ciogZWRpdG9yID0gcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgp
LT5lZGl0b3IoKTsKQEAgLTcwNCw4ICs2MzksOSBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6Y29tcG9zaXRpb25SYW5nZShFdmFzX09iamVjdCogZXdrVmlldywgaW50KiBzdGFydAog
ewogICAgICpzdGFydCA9ICpsZW5ndGggPSAwOwogCi0gICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9
IEVXS1ByaXZhdGU6OmNvcmVQYWdlKGV3a1ZpZXcpOwotICAgIGlmICghcGFnZSB8fCAhcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCkgfHwgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKSkKKyAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBw
YWdlLCBmYWxzZSk7CisKKyAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpIHx8ICFwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFdlYkNvcmU6OkVkaXRvciogZWRpdG9yID0gcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKTsKQEAgLTcxOSw4ICs2NTUs
OSBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Y29tcG9zaXRpb25SYW5nZShFdmFz
X09iamVjdCogZXdrVmlldywgaW50KiBzdGFydAogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6Y29uZmlybUNvbXBvc2l0aW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFy
KiB0ZXh0KQogewotICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFn
ZShld2tWaWV3KTsKLSAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpIHx8
ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCkpCisgICAgRFJU
X1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7CisKKyAgICBpZiAoIXBh
Z2UtPmZvY3VzQ29udHJvbGxlcigpIHx8ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNl
ZE9yTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdlYkNvcmU6OkVkaXRvciog
ZWRpdG9yID0gcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5l
ZGl0b3IoKTsKQEAgLTc0MSw4ICs2NzgsOSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6Y29uZmlybUNvbXBvc2l0aW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaAogCiBX
ZWJDb3JlOjpJbnRSZWN0IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2UoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGludCBsb2NhdGlvbiwgaW50IGxlbmd0
aCkKIHsKLSAgICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UoZXdr
Vmlldyk7Ci0gICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKSB8fCAhcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpIHx8ICFwYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpKQorICAgIERSVF9T
VVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UsIFdlYkNvcmU6OkludFJlY3Qo
KSk7CisKKyAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpIHx8ICFwYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCkgfHwgIXBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCkpCiAgICAgICAgIHJldHVybiBXZWJD
b3JlOjpJbnRSZWN0KCk7CiAKICAgICBpZiAoKGxvY2F0aW9uICsgbGVuZ3RoIDwgbG9jYXRpb24p
ICYmIChsb2NhdGlvbiArIGxlbmd0aCkpCkBAIC03NjMsOCArNzAxLDkgQEAgYm9vbCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnNlbGVjdGVkUmFuZ2UoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGlu
dCogc3RhcnQsIGkKICAgICBpZiAoIShzdGFydCAmJiBsZW5ndGgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2Uo
ZXdrVmlldyk7Ci0gICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKSB8fCAh
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpKQorICAgIERSVF9T
VVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UsIGZhbHNlKTsKKworICAgIGlm
ICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkgfHwgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5m
b2N1c2VkT3JNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lID0gcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5G
cmFtZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>