<?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>157447</bug_id>
          
          <creation_ts>2016-05-06 21:54:58 -0700</creation_ts>
          <short_desc>Rename HitTestRequest DisallowShadowContent to DisallowUserAgentShadowContent</short_desc>
          <delta_ts>2016-05-06 23:03:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>joepeck</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190900</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-06 21:54:58 -0700</bug_when>
    <thetext>* SUMMARY
Rename HitTestRequest DisallowShadowContent to DisallowUserAgentShadowContent.

See diagnosis in patch on bug 157446. HitTesting is intended to reach nodes inside Web Components shadow content. This property on the HitTestRequest is intended to avoid hit testing in UserAgent shadow content. Lets rename the enum value, and cascading methods for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190901</commentid>
    <comment_count>1</comment_count>
      <attachid>278317</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-06 21:56:08 -0700</bug_when>
    <thetext>Created attachment 278317
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190902</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-06 21:57:08 -0700</bug_when>
    <thetext>cq- there is one instance in WebKitAdditions that I&apos;ll want to change at the same time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190903</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-06 21:57:40 -0700</bug_when>
    <thetext>And this probably won&apos;t apply until bug 157446 lands anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190904</commentid>
    <comment_count>4</comment_count>
      <attachid>278317</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-06 22:10:37 -0700</bug_when>
    <thetext>Comment on attachment 278317
[PATCH] Proposed Fix

r=me assuming you add some change log description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190926</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-06 23:03:56 -0700</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/200540&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278317</attachid>
            <date>2016-05-06 21:56:08 -0700</date>
            <delta_ts>2016-05-06 22:10:37 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>webcore-change.patch</filename>
            <type>text/plain</type>
            <size>33101</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNjIxMjI3Li4wNWRlZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTMg
QEAKIDIwMTYtMDUtMDYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAor
ICAgICAgICBSZW5hbWUgSGl0VGVzdFJlcXVlc3QgRGlzYWxsb3dTaGFkb3dDb250ZW50IHRvIERp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNNYWluQ29udGVudCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudE1heVN0YXJ0RHJh
Zyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1v
dXNlRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRB
dFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVz
c0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEb3Vi
bGVDbGlja0V2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VNb3Zl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZUZvcmNlRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmlzSW5zaWRlU2Nyb2xsYmFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVudElmRW5hYmxlZCk6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVGb2N1c0NhbmRpZGF0ZUlmTmVlZGVkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkhpdFRlc3RSZXF1ZXN0OjpIaXRUZXN0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRU
ZXN0UmVxdWVzdDo6ZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6ZGlzYWxsb3dzU2hhZG93Q29udGVudCk6IERlbGV0ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6c2V0VG9Ob25Vc2VyQWdlbnRTaGFkb3dBbmNlc3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjphZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OnNldFRvTm9uU2hhZG93QW5jZXN0
b3IpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojppc1JlcGxhY2VtZW50T2JzY3VyZWQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNv
dXJjZUNsaXBwZXI6OmhpdFRlc3RDbGlwQ29udGVudCk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KToK
KworMjAxNi0wNS0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3QgRWxlbWVudCBhbmQgRWxlbWVudCBTZWxlY3Rp
b24gc2VhcmNoaW5nIHNob3VsZCB3b3JrIHdpdGggU2hhZG93IERPTSBOb2RlcwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDQ2CiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNDY4ODQ0Nz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwCmluZGV4IGQzNzBkYWYuLjAwYjhhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtNTMwLDcgKzUzMCw3IEBAIHN0YXRpYyBi
b29sIGlzTWFpbkNvbnRlbnQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICBJ
bnRSZWN0IHJlY3RSZWxhdGl2ZVRvVmlldyA9IGVsZW1lbnQuY2xpZW50UmVjdCgpOwogICAgIFNj
cm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uID0gbWFpbkZyYW1lLnZpZXcoKS0+ZG9jdW1lbnRT
Y3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luKCk7CiAgICAgSW50UmVjdCByZWN0UmVs
YXRpdmVUb1RvcERvY3VtZW50KHJlY3RSZWxhdGl2ZVRvVmlldy5sb2NhdGlvbigpICsgc2Nyb2xs
UG9zaXRpb24sIHJlY3RSZWxhdGl2ZVRvVmlldy5zaXplKCkpOwotICAgIEhpdFRlc3RSZXF1ZXN0
IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2
ZSB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50IHwgSGl0VGVzdFJlcXVl
c3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVu
dCk7CisgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkg
fCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFt
ZUNvbnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBIaXRUZXN0UmVxdWVz
dDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKICAgICBIaXRUZXN0UmVzdWx0IHJl
c3VsdChyZWN0UmVsYXRpdmVUb1RvcERvY3VtZW50LmNlbnRlcigpKTsKIAogICAgIC8vIEVsZW1l
bnRzIHdoaWNoIGFyZSBvYnNjdXJlZCBieSBvdGhlciBlbGVtZW50cyBjYW5ub3QgYmUgbWFpbiBj
b250ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGM3NzNlMDAuLjVi
ZTliNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTg4MCw3ICs4ODAs
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRNYXlTdGFydERyYWcoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdXBk
YXRlRHJhZ1NvdXJjZUFjdGlvbnNBbGxvd2VkKCk7Ci0gICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVz
dChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFk
b3dDb250ZW50KTsKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpS
ZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQp
OwogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMoZXZlbnQu
cG9zaXRpb24oKSkpOwogICAgIHJlbmRlclZpZXctPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsK
ICAgICBEcmFnU3RhdGUgc3RhdGU7CkBAIC04OTYsNyArODk2LDcgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZygpCiAgICAgaWYgKCFyZW5kZXJWaWV3KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1
ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6
TW92ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgIEhpdFRl
c3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVl
c3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpNb3ZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2Fs
bG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQodmll
dy0+d2luZG93VG9Db250ZW50cyhtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24pKTsKICAgICByZW5k
ZXJWaWV3LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAgICAgdXBkYXRlU2VsZWN0aW9uRm9y
TW91c2VEcmFnKHJlc3VsdCk7CkBAIC0xMTQzLDggKzExNDMsOCBAQCBIaXRUZXN0UmVzdWx0IEV2
ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50
LCBIaXRUZQogICAgIGlmICghcmVxdWVzdC5yZWFkT25seSgpKQogICAgICAgICBtX2ZyYW1lLmRv
Y3VtZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVyRWxl
bWVudCgpKTsKIAotICAgIGlmIChyZXF1ZXN0LmRpc2FsbG93c1NoYWRvd0NvbnRlbnQoKSkKLSAg
ICAgICAgcmVzdWx0LnNldFRvTm9uU2hhZG93QW5jZXN0b3IoKTsKKyAgICBpZiAocmVxdWVzdC5k
aXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250ZW50KCkpCisgICAgICAgIHJlc3VsdC5zZXRUb05v
blVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAt
MTYzNiw3ICsxNjM2LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVu
dChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtTW91c2UKICAgICB9CiAgICAgbV9t
b3VzZURvd25XYXNJblN1YmZyYW1lID0gZmFsc2U7CiAKLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1
ZXN0KEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFk
b3dDb250ZW50KTsKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpB
Y3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsK
ICAgICAvLyBTYXZlIHRoZSBkb2N1bWVudCBwb2ludCB3ZSBnZW5lcmF0ZSBpbiBjYXNlIHRoZSB3
aW5kb3cgY29vcmRpbmF0ZSBpcyBpbnZhbGlkYXRlZCBieSB3aGF0IGhhcHBlbnMKICAgICAvLyB3
aGVuIHdlIGRpc3BhdGNoIHRoZSBldmVudC4KICAgICBMYXlvdXRQb2ludCBkb2N1bWVudFBvaW50
ID0gZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KG1fZnJhbWUsIHBsYXRmb3JtTW91c2VFdmVu
dC5wb3NpdGlvbigpKTsKQEAgLTE3NDQsNyArMTc0NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVNb3VzZURvdWJsZUNsaWNrRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0
Zm9yCiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBzZXRMYXN0S25vd25Nb3VzZVBv
c2l0aW9uKHBsYXRmb3JtTW91c2VFdmVudCk7CiAKLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0
KEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dD
b250ZW50KTsKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpBY3Rp
dmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKICAg
ICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1vdXNlRXZlbnQgPSBwcmVwYXJlTW91c2VF
dmVudChyZXF1ZXN0LCBwbGF0Zm9ybU1vdXNlRXZlbnQpOwogICAgIEZyYW1lKiBzdWJmcmFtZSA9
IHN1YmZyYW1lRm9ySGl0VGVzdFJlc3VsdChtb3VzZUV2ZW50KTsKICAgICBpZiAobV9ldmVudEhh
bmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQpCkBAIC0xODE0LDcgKzE4
MTQsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIGV2ZW50KQogICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fZnJhbWUudmll
dygpKQogICAgICAgICBmcmFtZVZpZXctPm1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhKCk7ICAKIAot
ICAgIGhvdmVyZWROb2RlLnNldFRvTm9uU2hhZG93QW5jZXN0b3IoKTsKKyAgICBob3ZlcmVkTm9k
ZS5zZXRUb05vblVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAgICAgcGFnZS0+Y2hyb21lKCku
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoaG92ZXJlZE5vZGUsIGV2ZW50Lm1vZGlmaWVyRmxhZ3Mo
KSk7CiAgICAgcGFnZS0+Y2hyb21lKCkuc2V0VG9vbFRpcChob3ZlcmVkTm9kZSk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKQEAgLTE4NjQsNyArMTg2NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtTW91c2VF
CiAgICAgICAgIHJldHVybiBtX2xhc3RTY3JvbGxiYXJVbmRlck1vdXNlLT5tb3VzZU1vdmVkKHBs
YXRmb3JtTW91c2VFdmVudCk7CiAjZW5kaWYKIAotICAgIEhpdFRlc3RSZXF1ZXN0OjpIaXRUZXN0
UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3ZlIHwgSGl0VGVzdFJlcXVl
c3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0ZyYW1lU2Ny
b2xsYmFyczsKKyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUg
PSBIaXRUZXN0UmVxdWVzdDo6TW92ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2Vu
dFNoYWRvd0NvbnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dGcmFtZVNjcm9sbGJhcnM7CiAg
ICAgaWYgKG1fbW91c2VQcmVzc2VkKQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0
OjpBY3RpdmU7CiAgICAgZWxzZSBpZiAob25seVVwZGF0ZVNjcm9sbGJhcnMpIHsKQEAgLTE5OTgs
NyArMTk5OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtTW91CiAgICAgICAgIHJldHVybiAhZGlz
cGF0Y2hNb3VzZUV2ZW50KGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQsIG1fbGFzdEVsZW1lbnRV
bmRlck1vdXNlLmdldCgpLCBjYW5jZWxhYmxlLCBtX2NsaWNrQ291bnQsIHBsYXRmb3JtTW91c2VF
dmVudCwgc2V0VW5kZXIpOwogICAgIH0KIAotICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0
VGVzdFJlcXVlc3Q6OlJlbGVhc2UgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250
ZW50KTsKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWxlYXNl
IHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtb3VzZUV2ZW50ID0gcHJlcGFyZU1vdXNlRXZl
bnQocmVxdWVzdCwgcGxhdGZvcm1Nb3VzZUV2ZW50KTsKICAgICBGcmFtZSogc3ViZnJhbWUgPSBt
X2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudC5nZXQoKSA/IHN1YmZyYW1lRm9yVGFyZ2V0Tm9k
ZShtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudC5nZXQoKSkgOiBzdWJmcmFtZUZvckhpdFRl
c3RSZXN1bHQobW91c2VFdmVudCk7CiAgICAgaWYgKG1fZXZlbnRIYW5kbGVyV2lsbFJlc2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNFbGVtZW50KQpAQCAtMjAzNSw3ICsyMDM1LDcgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlRm9yY2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2ZW50KQogCiAgICAgc2V0TGFzdEtub3duTW91c2VQb3NpdGlvbihldmVudCk7CiAKLSAgICBI
aXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVz
dDo6RGlzYWxsb3dTaGFkb3dDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKKyAgICBI
aXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVz
dDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2
ZTsKIAogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoaGl0VHlwZSk7CiAgICAgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyBtb3VzZUV2ZW50ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVz
dCwgZXZlbnQpOwpAQCAtMjE5Myw3ICsyMTkzLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0
ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YK
ICAgICBpZiAoIW1fZnJhbWUudmlldygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBI
aXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RS
ZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNl
ckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBt
b3VzZUV2ZW50ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgZXZlbnQpOwogCiAgICAgUmVm
UHRyPEVsZW1lbnQ+IG5ld1RhcmdldDsKQEAgLTI1MjIsNyArMjUyMiw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IE5vZGUqIHRhcmdlCiBib29sIEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29uc3Qg
SW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogewogICAgIGlmIChSZW5kZXJWaWV3KiByZW5k
ZXJWaWV3ID0gbV9mcmFtZS5jb250ZW50UmVuZGVyZXIoKSkgewotICAgICAgICBIaXRUZXN0UmVx
dWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpE
aXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhp
dFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2Vu
dFNoYWRvd0NvbnRlbnQpOwogICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh3aW5kb3dQb2lu
dCk7CiAgICAgICAgIHJlbmRlclZpZXctPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdC5zY3JvbGxiYXIoKTsKQEAgLTI3NDAsNyArMjc0MCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmIGV2ZW50KQogICAgIG1fbW91c2VQcmVzc2VkID0gZmFsc2U7CiAgICAgYm9vbCBzd2FsbG93
RXZlbnQ7CiAgICAgTGF5b3V0UG9pbnQgdmlld3BvcnRQb3MgPSB2aWV3LT53aW5kb3dUb0NvbnRl
bnRzKGV2ZW50LnBvc2l0aW9uKCkpOwotICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVz
dFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQp
OworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhp
dFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQpOwogICAgIE1vdXNl
RXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgbW91c2VFdmVudCA9IGRvYy0+cHJlcGFyZU1vdXNlRXZl
bnQocmVxdWVzdCwgdmlld3BvcnRQb3MsIGV2ZW50KTsKIAogICAgIC8vIERvIG5vdCBzaG93IGNv
bnRleHQgbWVudXMgd2hlbiBjbGlja2luZyBvbiBzY3JvbGxiYXJzLgpAQCAtMjgyMCw3ICsyODIw
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KCkKICAg
ICAvLyBVc2UgdGhlIGZvY3VzZWQgbm9kZSBhcyB0aGUgdGFyZ2V0IGZvciBob3ZlciBhbmQgYWN0
aXZlLgogICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHBvc2l0aW9uKTsKICAgICByZXN1bHQuc2V0
SW5uZXJOb2RlKHRhcmdldE5vZGUpOwotICAgIGRvYy0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShI
aXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29u
dGVudCwgcmVzdWx0LmlubmVyRWxlbWVudCgpKTsKKyAgICBkb2MtPnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnQsIHJlc3VsdC5pbm5lckVsZW1lbnQoKSk7CiAKICAgICAvLyBU
aGUgY29udGV4dG1lbnUgZXZlbnQgaXMgYSBtb3VzZSBldmVudCBldmVuIHdoZW4gaW52b2tlZCB1
c2luZyB0aGUga2V5Ym9hcmQuCiAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3Igd2ViIGNvbXBh
dGliaWxpdHkuCkBAIC0yOTM3LDcgKzI5MzcsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJU
aW1lckZpcmVkKCkKIAogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gbV9mcmFtZS5j
b250ZW50UmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFt
ZS52aWV3KCkpIHsKLSAgICAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJl
cXVlc3Q6Ok1vdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKKyAg
ICAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6Ok1vdmUgfCBI
aXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKICAgICAgICAg
ICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uKSk7CiAgICAgICAgICAgICByZW5kZXJWaWV3LT5oaXRUZXN0KHJlcXVl
c3QsIHJlc3VsdCk7CiAgICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZUhvdmVy
QWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVyRWxlbWVudCgpKTsKQEAgLTMzMTYsNyAr
MzMxNiw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmcmVlRGF0YVRyYW5zZmVyKCkKIHZvaWQgRXZl
bnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2
ZW50LCBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKIHsKICAgICAvLyBTZW5kIGEgaGl0IHRlc3Qg
cmVxdWVzdCBzbyB0aGF0IFJlbmRlckxheWVyIGdldHMgYSBjaGFuY2UgdG8gdXBkYXRlIHRoZSA6
aG92ZXIgYW5kIDphY3RpdmUgcHNldWRvY2xhc3Nlcy4KLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1
ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWxlYXNlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hh
ZG93Q29udGVudCk7CisgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6
UmVsZWFzZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQp
OwogICAgIHByZXBhcmVNb3VzZUV2ZW50KHJlcXVlc3QsIGV2ZW50KTsKIAogICAgIGlmIChkcmFn
U3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMpIHsKQEAg
LTMzNjksNyArMzM2OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBDaGVja0RyCiAgICAgICAgIGRyYWdT
dGF0ZSgpLnNob3VsZERpc3BhdGNoRXZlbnRzID0gKHVwZGF0ZURyYWdTb3VyY2VBY3Rpb25zQWxs
b3dlZCgpICYgRHJhZ1NvdXJjZUFjdGlvbkRIVE1MKTsKIAogICAgICAgICAvLyB0cnkgdG8gZmlu
ZCBhbiBlbGVtZW50IHRoYXQgd2FudHMgdG8gYmUgZHJhZ2dlZAotICAgICAgICBIaXRUZXN0UmVx
dWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpE
aXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhp
dFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2Vu
dFNoYWRvd0NvbnRlbnQpOwogICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93
blBvcyk7CiAgICAgICAgIG1fZnJhbWUuY29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QocmVxdWVz
dCwgcmVzdWx0KTsKICAgICAgICAgaWYgKG1fZnJhbWUucGFnZSgpKQpAQCAtMzk2NCw3ICszOTY0
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoU3ludGhldGljVG91Y2hFdmVudElmRW5h
YmxlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQKICAgICBpZiAoZXZlbnRUeXBlICE9IFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQgJiYgZXZlbnRUeXBlICE9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZCAmJiBldmVudFR5cGUgIT0gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0
UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7
CisgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtb3VzZUV2ZW50ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVx
dWVzdCwgcGxhdGZvcm1Nb3VzZUV2ZW50KTsKICAgICBpZiAobW91c2VFdmVudC5zY3JvbGxiYXIo
KSB8fCBzdWJmcmFtZUZvckhpdFRlc3RSZXN1bHQobW91c2VFdmVudCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGU5MTdhMTIuLjcwZTQ4
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMTUxLDcgKzE1MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChjb25z
dCBGbG9hdFF1YWQmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RSZXN1bHQgaGl0VGVz
dFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmLAotICAgICAgICBIaXRUZXN0UmVxdWVz
dDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkg
fCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93
Q29udGVudCwKKyAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRU
eXBlID0gSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8
IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQsCiAgICAgICAg
IGNvbnN0IExheW91dFNpemUmIHBhZGRpbmcgPSBMYXlvdXRTaXplKCkpOwogCiAgICAgYm9vbCBt
b3VzZVByZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJlc3NlZDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGJjMTA0M2IuLmRlYWQzZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTgxNiw3ICs4MTYsNyBAQCBz
dGF0aWMgdm9pZCB1cGRhdGVGb2N1c0NhbmRpZGF0ZUlmTmVlZGVkKEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbiwgY29uc3QgRm9jdXNDYQogICAgICAgICAvLyBJZiAyIG5vZGVzIGFyZSBpbnRlcnNl
Y3RpbmcsIGRvIGhpdCB0ZXN0IHRvIGZpbmQgd2hpY2ggbm9kZSBpbiBvbiB0b3AuCiAgICAgICAg
IExheW91dFVuaXQgeCA9IGludGVyc2VjdGlvblJlY3QueCgpICsgaW50ZXJzZWN0aW9uUmVjdC53
aWR0aCgpIC8gMjsKICAgICAgICAgTGF5b3V0VW5pdCB5ID0gaW50ZXJzZWN0aW9uUmVjdC55KCkg
KyBpbnRlcnNlY3Rpb25SZWN0LmhlaWdodCgpIC8gMjsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQgPSBjYW5kaWRhdGUudmlzaWJsZU5vZGUtPmRvY3VtZW50KCkucGFnZSgpLT5tYWluRnJh
bWUoKS5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChJbnRQb2ludCh4LCB5KSwg
SGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRl
c3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRv
d0NvbnRlbnQpOworICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGNhbmRpZGF0ZS52aXNp
YmxlTm9kZS0+ZG9jdW1lbnQoKS5wYWdlKCktPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhp
dFRlc3RSZXN1bHRBdFBvaW50KEludFBvaW50KHgsIHkpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9u
bHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBw
aW5nIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAg
ICAgICAgIGlmIChjYW5kaWRhdGUudmlzaWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5v
ZGUoKSkpIHsKICAgICAgICAgICAgIGNsb3Nlc3QgPSBjYW5kaWRhdGU7CiAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVl
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oCmluZGV4IGEz
NjkwNGIuLjYzMmNlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVz
dC5oCkBAIC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKICAgICAgICAgSWdub3JlQ2xpcHBpbmcgPSAx
IDw8IDUsCiAgICAgICAgIFNWR0NsaXBDb250ZW50ID0gMSA8PCA2LAogICAgICAgICBUb3VjaEV2
ZW50ID0gMSA8PCA3LAotICAgICAgICBEaXNhbGxvd1NoYWRvd0NvbnRlbnQgPSAxIDw8IDgsCisg
ICAgICAgIERpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCA9IDEgPDwgOCwKICAgICAgICAg
QWxsb3dGcmFtZVNjcm9sbGJhcnMgPSAxIDw8IDksCiAgICAgICAgIEFsbG93Q2hpbGRGcmFtZUNv
bnRlbnQgPSAxIDw8IDEwLAogICAgICAgICBDaGlsZEZyYW1lSGl0VGVzdCA9IDEgPDwgMTEsCkBA
IC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgSGl0VGVzdFJl
cXVlc3RUeXBlOwogCi0gICAgSGl0VGVzdFJlcXVlc3QoSGl0VGVzdFJlcXVlc3RUeXBlIHJlcXVl
c3RUeXBlID0gUmVhZE9ubHkgfCBBY3RpdmUgfCBEaXNhbGxvd1NoYWRvd0NvbnRlbnQpCisgICAg
SGl0VGVzdFJlcXVlc3QoSGl0VGVzdFJlcXVlc3RUeXBlIHJlcXVlc3RUeXBlID0gUmVhZE9ubHkg
fCBBY3RpdmUgfCBEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQpCiAgICAgICAgIDogbV9y
ZXF1ZXN0VHlwZShyZXF1ZXN0VHlwZSkKICAgICB7CiAgICAgfQpAQCAtNTcsNyArNTcsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzdmdDbGlwQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVz
dFR5cGUgJiBTVkdDbGlwQ29udGVudDsgfQogICAgIGJvb2wgdG91Y2hFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBUb3VjaEV2ZW50OyB9CiAgICAgYm9vbCBtb3VzZUV2ZW50
KCkgY29uc3QgeyByZXR1cm4gIXRvdWNoRXZlbnQoKTsgfQotICAgIGJvb2wgZGlzYWxsb3dzU2hh
ZG93Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBEaXNhbGxvd1NoYWRv
d0NvbnRlbnQ7IH0KKyAgICBib29sIGRpc2FsbG93c1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgRGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250
ZW50OyB9CiAgICAgYm9vbCBhbGxvd3NGcmFtZVNjcm9sbGJhcnMoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3RUeXBlICYgQWxsb3dGcmFtZVNjcm9sbGJhcnM7IH0KICAgICBib29sIGFsbG93c0No
aWxkRnJhbWVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0VHlwZSAmIEFsbG93Q2hp
bGRGcmFtZUNvbnRlbnQ7IH0KICAgICBib29sIGlzQ2hpbGRGcmFtZUhpdFRlc3QoKSBjb25zdCB7
IHJldHVybiBtX3JlcXVlc3RUeXBlICYgQ2hpbGRGcmFtZUhpdFRlc3Q7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCBmNjIzNzI2Li42YjRiNmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBAIC0xMzIsNyAr
MTMyLDcgQEAgc3RhdGljIE5vZGUqIG1vdmVPdXRPZlVzZXJBZ2VudFNoYWRvd1RyZWUoTm9kZSYg
bm9kZSkKICAgICByZXR1cm4gJm5vZGU7CiB9CiAKLXZvaWQgSGl0VGVzdFJlc3VsdDo6c2V0VG9O
b25TaGFkb3dBbmNlc3RvcigpCit2b2lkIEhpdFRlc3RSZXN1bHQ6OnNldFRvTm9uVXNlckFnZW50
U2hhZG93QW5jZXN0b3IoKQogewogICAgIGlmIChOb2RlKiBub2RlID0gaW5uZXJOb2RlKCkpIHsK
ICAgICAgICAgbm9kZSA9IG1vdmVPdXRPZlVzZXJBZ2VudFNoYWRvd1RyZWUoKm5vZGUpOwpAQCAt
NjY4LDcgKzY2OCw3IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVz
dFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBIaXRUZXN0UmVxdWVzCiAgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChyZXF1ZXN0LmRpc2FsbG93c1NoYWRvd0Nv
bnRlbnQoKSkKKyAgICBpZiAocmVxdWVzdC5kaXNhbGxvd3NVc2VyQWdlbnRTaGFkb3dDb250ZW50
KCkpCiAgICAgICAgIG5vZGUgPSBub2RlLT5kb2N1bWVudCgpLmFuY2VzdG9ySW5UaGlzU2NvcGUo
bm9kZSk7CiAKICAgICBtdXRhYmxlUmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFkZChub2RlKTsKQEAg
LTY4OCw3ICs2ODgsNyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRl
c3RSZXN1bHQoTm9kZSogbm9kZSwgY29uc3QgSGl0VGVzdFJlcXVlcwogICAgIGlmICghbm9kZSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAocmVxdWVzdC5kaXNhbGxvd3NTaGFkb3dD
b250ZW50KCkpCisgICAgaWYgKHJlcXVlc3QuZGlzYWxsb3dzVXNlckFnZW50U2hhZG93Q29udGVu
dCgpKQogICAgICAgICBub2RlID0gbm9kZS0+ZG9jdW1lbnQoKS5hbmNlc3RvckluVGhpc1Njb3Bl
KG5vZGUpOwogCiAgICAgbXV0YWJsZVJlY3RCYXNlZFRlc3RSZXN1bHQoKS5hZGQobm9kZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAppbmRleCBmYjA4Mzg4Li44YmQz
NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTgyLDcg
KzgyLDcgQEAgcHVibGljOgogICAgIGNvbnN0IExheW91dFBvaW50JiBsb2NhbFBvaW50KCkgY29u
c3QgeyByZXR1cm4gbV9sb2NhbFBvaW50OyB9CiAgICAgdm9pZCBzZXRMb2NhbFBvaW50KGNvbnN0
IExheW91dFBvaW50JiBwKSB7IG1fbG9jYWxQb2ludCA9IHA7IH0KIAotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0VG9Ob25TaGFkb3dBbmNlc3RvcigpOworICAgIHZvaWQgc2V0VG9Ob25Vc2Vy
QWdlbnRTaGFkb3dBbmNlc3RvcigpOwogCiAgICAgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBoaXRU
ZXN0TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RMb2NhdGlvbjsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRl
eCBjOWQyY2VhLi40ZTFhYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTQyNCw3ICs0MjQsNyBAQCBib29sIFJlbmRlckVt
YmVkZGVkT2JqZWN0Ojppc1JlcGxhY2VtZW50T2JzY3VyZWQoKSBjb25zdAogCiAgICAgSW50UmVj
dCByb290Vmlld1JlY3QgPSB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydFRvUm9vdFZpZXcoc25h
cHBlZEludFJlY3QocmVjdCkpOwogICAgIAotICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0
VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RS
ZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0Nv
bnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCk7CisgICAgSGl0
VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJl
cXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpB
bGxvd0NoaWxkRnJhbWVDb250ZW50KTsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdDsKICAgICBI
aXRUZXN0TG9jYXRpb24gbG9jYXRpb247CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCA4MjU3ZDU3Li41YTZkNGM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTcwNDksNyArNzA0OSw3IEBAIFJlbmRlckxheWVy
KiBSZW5kZXJMYXllcjo6aGl0VGVzdEZsb3dUaHJlYWRJZlJlZ2lvbkZvckZyYWdtZW50cyhjb25z
dCBMYXllckZyYWdtCiAgICAgICAgIExheW91dFNpemUgaGl0VGVzdE9mZnNldCA9IHBvcnRpb25M
b2NhdGlvbiAtIChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigpICsgcmVnaW9uQ29udGVu
dEJveC5sb2NhdGlvbigpKSArIHJlZ2lvbi5mcmFnbWVudENvbnRhaW5lcigpLnNjcm9sbGVkQ29u
dGVudE9mZnNldCgpOwogCiAgICAgICAgIC8vIEFsd2F5cyBpZ25vcmUgY2xpcHBpbmcsIHNpbmNl
IHRoZSBSZW5kZXJGbG93VGhyZWFkIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIGJvdW5kcyBv
ZiB0aGUgRnJhbWVWaWV3LgotICAgICAgICBIaXRUZXN0UmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVl
c3QudHlwZSgpIHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVl
c3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7CisgICAgICAgIEhpdFRlc3RSZXF1ZXN0IG5ld1Jl
cXVlc3QocmVxdWVzdC50eXBlKCkgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBI
aXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50KTsKIAogICAgICAg
ICAvLyBNYWtlIGEgbmV3IHRlbXBvcmFyeSBIaXRUZXN0TG9jYXRpb24gaW4gdGhlIG5ldyByZWdp
b24uCiAgICAgICAgIEhpdFRlc3RMb2NhdGlvbiBuZXdIaXRUZXN0TG9jYXRpb24oaGl0VGVzdExv
Y2F0aW9uLCBoaXRUZXN0T2Zmc2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAppbmRleCAwMTE2YjAxLi40
YWFkY2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmhpdFRlc3RDbGlwQ29udGVudChjb25zdCBGbG9hdFJlY3Qm
IG9iamVjdEJvdW5kaW4KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBJbnRQb2ludCBo
aXRQb2ludDsKICAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQoaGl0UG9pbnQpOwotICAgICAg
ICBpZiAocmVuZGVyZXItPm5vZGVBdEZsb2F0UG9pbnQoSGl0VGVzdFJlcXVlc3QoSGl0VGVzdFJl
cXVlc3Q6OlNWR0NsaXBDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29u
dGVudCksIHJlc3VsdCwgcG9pbnQsIEhpdFRlc3RGb3JlZ3JvdW5kKSkKKyAgICAgICAgaWYgKHJl
bmRlcmVyLT5ub2RlQXRGbG9hdFBvaW50KEhpdFRlc3RSZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpT
VkdDbGlwQ29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0Nv
bnRlbnQpLCByZXN1bHQsIHBvaW50LCBIaXRUZXN0Rm9yZWdyb3VuZCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCBhNGNlN2UwLi4zMjQzODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC0xNDM5LDcgKzE0MzksNyBAQCBSZWZQdHI8Tm9kZUxpc3Q+IEludGVybmFsczo6bm9kZXNGcm9t
UmVjdChEb2N1bWVudCYgZG9jdW1lbnQsIGludCBjZW50ZXJYLCBpbnQgYwogICAgIGlmIChpZ25v
cmVDbGlwcGluZykKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xp
cHBpbmc7CiAgICAgaWYgKCFhbGxvd1NoYWRvd0NvbnRlbnQpCi0gICAgICAgIGhpdFR5cGUgfD0g
SGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudDsKKyAgICAgICAgaGl0VHlwZSB8
PSBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50OwogICAgIGlm
IChhbGxvd0NoaWxkRnJhbWVDb250ZW50KQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1
ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZmQxMGQ1
Yy4uYzc0ZTJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1LTA2
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IEhpdFRlc3RSZXF1ZXN0IERpc2FsbG93U2hhZG93Q29udGVudCB0byBEaXNhbGxvd1VzZXJBZ2Vu
dFNoYWRvd0NvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NzQ0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgZWxlbWVu
dEF0UG9pbnQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgZWxlbWVudEF0UG9pbnQ6YWxsb3dTaGFkb3dDb250ZW50Ol0pOgorCiAy
MDE2LTA1LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgd29ya2Fyb3VuZCBmb3IgQXBwbGUgSW50ZXJuYWwgYm90cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYTcyYTBhMy4uZTAxZjI2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yMzYwLDcgKzIzNjAsNyBAQCBzdGF0aWMgV2ViRnJh
bWVMb2FkVHlwZSB0b1dlYkZyYW1lTG9hZFR5cGUoRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBl
KQogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiBbW1tXZWJFbGVtZW50
RGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhIaXRUZXN0UmVzdWx0OmNvcmVGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQoSW50UG9pbnQocG9pbnQpLCBIaXRUZXN0UmVx
dWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6
Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCld
IGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkgYWxsb2Nd
IGluaXRXaXRoSGl0VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RS
ZXN1bHRBdFBvaW50KEludFBvaW50KHBvaW50KSwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwg
SGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8
IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQpXSBhdXRvcmVs
ZWFzZV07CiB9CiAKIC0gKE5TVVJMICopX3VucmVhY2hhYmxlVVJMCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCBiMzVhNzJkLi4yODY4MzJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTc1MzAsNyArNzUzMCw3IEBAIHN0
YXRpYyBDR0ltYWdlUmVmIHNlbGVjdGlvbkltYWdlKEZyYW1lKiBmcmFtZSwgYm9vbCBmb3JjZUJs
YWNrVGV4dCkKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICBI
aXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVz
dDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlCi0gICAgICAgIHwgKGFsbG93ID8g
MCA6IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgICAgICB8IChh
bGxvdyA/IDAgOiBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
KTsKICAgICByZXR1cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoSGl0
VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50
KEludFBvaW50KHBvaW50KSwgaGl0VHlwZSldIGF1dG9yZWxlYXNlXTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDIwN2MwMWMuLjJhNmY3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxNi0wNS0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBIaXRUZXN0UmVxdWVzdCBEaXNhbGxvd1NoYWRvd0NvbnRlbnQgdG8g
RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
Z2VzdHVyZU5vdGlmeSk6CisKIDIwMTYtMDUtMDQgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIEFYOiBBUklBICdyZWdpb24nIHJvbGUgaXMgbm93IGEgbGFu
ZG1hcms7IEhUTUwgJ3NlY3Rpb24nIGVsZW1lbnQgc2hvdWxkIGJlIGEgbGFuZG1hcmsgb25seSBp
ZiBuYW1lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5ODIxYmIzLi5hOGQxZDhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcApAQCAtMTczOSw3ICsxNzM5LDcgQEAgYm9vbCBXZWJWaWV3OjpnZXN0dXJl
Tm90aWZ5KFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiAgICAgSW50UG9pbnQgbG9naWNh
bEdlc3R1cmVCZWdpblBvaW50KGdlc3R1cmVCZWdpblBvaW50KTsKICAgICBsb2dpY2FsR2VzdHVy
ZUJlZ2luUG9pbnQuc2NhbGUoaW52ZXJzZVNjYWxlRmFjdG9yLCBpbnZlcnNlU2NhbGVGYWN0b3Ip
OwogCi0gICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkg
fCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKKyAgICBIaXRUZXN0UmVx
dWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpE
aXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQpOwogICAgIGZvciAoRnJhbWUqIGNoaWxkRnJh
bWUgPSAmbV9wYWdlLT5tYWluRnJhbWUoKTsgY2hpbGRGcmFtZTsgY2hpbGRGcmFtZSA9IEV2ZW50
SGFuZGxlcjo6c3ViZnJhbWVGb3JUYXJnZXROb2RlKG1fZ2VzdHVyZVRhcmdldE5vZGUuZ2V0KCkp
KSB7CiAgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gY2hpbGRGcmFtZS0+dmlldygpOwog
ICAgICAgICBpZiAoIWZyYW1lVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3YzU2NTRhLi4yMzQwODJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDUtMDYgIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgSGl0VGVzdFJlcXVlc3QgRGlz
YWxsb3dTaGFkb3dDb250ZW50IHRvIERpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDQ3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJQYWdlQ29vcmRpbmF0ZWRHcmFwaGljcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmRab29tYWJsZUFyZWFGb3JQb2ludCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWU6OmhpdFRlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNu
YXBzaG90dGVkUGx1Z0luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJhbmdlRm9yV2ViU2VsZWN0aW9u
QXRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJhbmdlRm9yQmxvY2tBdFBv
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbik6
CisKIDIwMTYtMDUtMDUgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Q3JlYXRlIGEgZmVuY2UgaW4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0xheWVyRnJhbWUoKSB0byBwYXNzIHRvIHRoZSB3ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViUGFn
ZUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViUGFnZUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmlu
ZGV4IDM0NTY0OGIuLmJlNmI5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlBhZ2VDb29yZGluYXRlZEdyYXBoaWNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9XZWJQYWdlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAg
dm9pZCBXZWJQYWdlOjpmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBv
aW50LCBjb25zdCBJbnRTaXplJiBhcmUKIHsKICAgICBVTlVTRURfUEFSQU0oYXJlYSk7CiAgICAg
RnJhbWUqIG1haW5mcmFtZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKTsKLSAgICBIaXRUZXN0
UmVzdWx0IHJlc3VsdCA9IG1haW5mcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0
UG9pbnQobWFpbmZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMocG9pbnQpLCBIaXRUZXN0
UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVl
c3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVu
dCk7CisgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBtYWluZnJhbWUtPmV2ZW50SGFuZGxlcigp
LmhpdFRlc3RSZXN1bHRBdFBvaW50KG1haW5mcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRz
KHBvaW50KSwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2
ZSB8IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNh
bGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQpOwogCiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC5p
bm5lck5vZGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKaW5kZXggZGIyMmYxZS4uZmYyMzhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC02MDAsNyArNjAwLDcgQEAgUGFzc1Jl
ZlB0cjxJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ+IFdlYkZyYW1lOjpoaXRUZXN0KGNvbnN0
IEludFBvaW50IHBvaW50KQogICAgIGlmICghbV9jb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6Y3JlYXRlKG1fY29y
ZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChwb2ludCwgSGl0VGVz
dFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1
ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRl
bnQpKTsKKyAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUobV9j
b3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KHBvaW50LCBIaXRU
ZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJl
cXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50
U2hhZG93Q29udGVudCkpOwogfQogCiBib29sIFdlYkZyYW1lOjpnZXREb2N1bWVudEJhY2tncm91
bmRDb2xvcihkb3VibGUqIHJlZCwgZG91YmxlKiBncmVlbiwgZG91YmxlKiBibHVlLCBkb3VibGUq
IGFscGhhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGRkMGM3ZGMuLjNmOGExN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ5OTEsNyArNDk5MSw3IEBAIHZvaWQgV2ViUGFnZTo6
ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luKCkKICAgICBJbnRSZWN0IHNlYXJjaFJl
Y3QgPSBJbnRSZWN0KEludFBvaW50KCksIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+
Y29udGVudHNTaXplKCkpOwogICAgIHNlYXJjaFJlY3QuaW50ZXJzZWN0KEludFJlY3QoSW50UG9p
bnQoKSwgSW50U2l6ZShwcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5TZWFyY2hMaW1pdCwgcHJpbWFy
eVNuYXBzaG90dGVkUGx1Z0luU2VhcmNoTGltaXQpKSk7CiAKLSAgICBIaXRUZXN0UmVxdWVzdCBy
ZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUg
fCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCB8IEhpdFRlc3RSZXF1ZXN0
OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQp
OworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwg
SGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVD
b250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0VGVzdFJlcXVlc3Q6
OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAKICAgICBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50KiBjYW5kaWRhdGVQbHVnSW4gPSBudWxscHRyOwogICAgIHVuc2lnbmVkIGNhbmRpZGF0
ZVBsdWdJbkFyZWEgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDU0ZGQ4MzguLmM3YjFhMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAg
LTg4MSw3ICs4ODEsNyBAQCBzdGF0aWMgSW50UmVjdCBzZWxlY3Rpb25Cb3hGb3JSYW5nZShXZWJD
b3JlOjpSYW5nZSogcmFuZ2UpCiAKIFBhc3NSZWZQdHI8UmFuZ2U+IFdlYlBhZ2U6OnJhbmdlRm9y
V2ViU2VsZWN0aW9uQXRQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgcG9zaXRpb24sIFNlbGVjdGlvbkZsYWdzJiBmbGFncykKIHsKLSAgICBIaXRU
ZXN0UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0
VGVzdFJlc3VsdEF0UG9pbnQoKHBvaW50KSwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0
VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRl
bnQgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCk7CisgICAgSGl0VGVz
dFJlc3VsdCByZXN1bHQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhpdFRl
c3RSZXN1bHRBdFBvaW50KChwb2ludCksIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRl
c3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFk
b3dDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQpOwogCiAg
ICAgTm9kZSogY3VycmVudE5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgUmVmUHRyPFJh
bmdlPiByYW5nZTsKQEAgLTk0Niw3ICs5NDYsNyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBXZWJQYWdl
OjpyYW5nZUZvcldlYlNlbGVjdGlvbkF0UG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBvaW50LAog
CiBQYXNzUmVmUHRyPFJhbmdlPiBXZWJQYWdlOjpyYW5nZUZvckJsb2NrQXRQb2ludChjb25zdCBJ
bnRQb2ludCYgcG9pbnQpCiB7Ci0gICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBtX3BhZ2UtPm1h
aW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KChwb2ludCksIEhp
dFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0
UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNs
aXBwaW5nKTsKKyAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCku
ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQoKHBvaW50KSwgSGl0VGVzdFJlcXVl
c3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpE
aXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xp
cHBpbmcpOwogCiAgICAgTm9kZSogY3VycmVudE5vZGUgPSByZXN1bHQuaW5uZXJOb2RlKCk7CiAg
ICAgUmVmUHRyPFJhbmdlPiByYW5nZTsKQEAgLTIyODMsNyArMjI4Myw3IEBAIHZvaWQgV2ViUGFn
ZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRQb2ludCYgcG9pbnQsIEludGVyYWN0
aW9uSW5mb3JtYXRpCiAgICAgfQogCiAgICAgaWYgKCFlbGVtZW50SXNMaW5rT3JJbWFnZSkgewot
ICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRI
YW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQoKHBvaW50KSwgSGl0VGVzdFJlcXVlc3Q6OlJl
YWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxv
d1NoYWRvd0NvbnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCk7
CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludCgocG9pbnQpLCBIaXRUZXN0UmVxdWVzdDo6
UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2Fs
bG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJh
bWVDb250ZW50KTsKICAgICAgICAgaGl0Tm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsKICAgICAg
ICAgLy8gSGl0IHRlc3QgY291bGQgcmV0dXJuIEhUTUxIdG1sRWxlbWVudCB0aGF0IGhhcyBubyBy
ZW5kZXJlciwgaWYgdGhlIGJvZHkgaXMgc21hbGxlciB0aGFuIHRoZSBkb2N1bWVudC4KICAgICAg
ICAgaWYgKGhpdE5vZGUgJiYgaGl0Tm9kZS0+cmVuZGVyZXIoKSkgewo=
</data>
<flag name="review"
          id="302430"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="302431"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>