<?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>95685</bug_id>
          
          <creation_ts>2012-09-03 06:42:08 -0700</creation_ts>
          <short_desc>Move AllowShadowContent flag to HitTestRequest</short_desc>
          <delta_ts>2012-09-03 07:41:22 -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>Layout and Rendering</component>
          <version>420+</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>
          
          <blocked>95204</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>eric</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710607</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-03 06:42:08 -0700</bug_when>
    <thetext>The HitTestResult class currently has a flag that control whether shadow-content should be allowed in the result, but since it is not really part of the result but a parameter to the hit-test itself it doesn&apos;t really belong in the HitTestResult class. All other flags controlling the hit-test are stored in HitTestRequest, and I propose moving it there. 

This is a part of the work to also include a flag that controls if child-frame content is allowed. See bug #95204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710615</commentid>
    <comment_count>1</comment_count>
      <attachid>161919</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-03 06:54:29 -0700</bug_when>
    <thetext>Created attachment 161919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710631</commentid>
    <comment_count>2</comment_count>
      <attachid>161919</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-03 07:15:04 -0700</bug_when>
    <thetext>Comment on attachment 161919
Patch

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

r=me

please fix the method name before landing, and maybe strip out the supposedly unrelated change?

&gt; Source/WebCore/rendering/HitTestRequest.h:56
&gt; +    bool allowShadowContent() const { return m_requestType &amp; AllowShadowContent; }

I think it should be allowsShadowContent

&gt; Source/WebCore/rendering/HitTestResult.cpp:107
&gt; -    , m_region(region)
&gt; +    , m_region(region ? region : other.m_region)

unrelated

&gt; Source/WebCore/rendering/HitTestResult.h:58
&gt; -    HitTestLocation(const HitTestLocation&amp;, const LayoutSize&amp; offset, RenderRegion*);
&gt; +    HitTestLocation(const HitTestLocation&amp;, const LayoutSize&amp; offset, RenderRegion* = 0);

unrelated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710637</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-03 07:27:04 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 161919 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161919&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; please fix the method name before landing, and maybe strip out the supposedly unrelated change?
&gt; 
I will. You are right that the two changes were incorrectly included in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710647</commentid>
    <comment_count>4</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-03 07:41:22 -0700</bug_when>
    <thetext>Committed r127421: &lt;http://trac.webkit.org/changeset/127421&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161919</attachid>
            <date>2012-09-03 06:54:29 -0700</date>
            <delta_ts>2012-09-03 07:15:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95685-20120903155403.patch</filename>
            <type>text/plain</type>
            <size>27997</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE3Njg3OWNmOGQ1Nzg4
NjgxNmI5NTIxYTMzNzAzYjg4NTBjYmMxMC4uM2E3YmY1ZTYzMmNkNjc2NGExZmY1MjY4MTBhYTcx
ZmJiNDE3YzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA5LTAzICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIE1v
dmUgQWxsb3dTaGFkb3dDb250ZW50IGZsYWcgdG8gSGl0VGVzdFJlcXVlc3QgCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTY4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIHRoZSBmbGFnIGFuZCB1
cGRhdGVzIHRoZSBpbnRlcmZhY2UgZm9yIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNl
ZFRlc3RSZXN1bHQgc28gdGhhdAorICAgICAgICBpdCBjYW4gcmVhZCB0aGUgZmxhZyBmcm9tIEhp
dFRlc3RSZXF1ZXN0IGluc3RlYWQgb2YgZnJvbSBIaXRUZXN0UmVzdWx0LgorCisgICAgICAgIE5v
IGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LiBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3Qp
OgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9I
aXRUZXN0UmVxdWVzdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6Okhp
dFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQpOgorICAgICAgICAqIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgIChIaXRUZXN0TG9jYXRpb24pOgorICAg
ICAgICAoSGl0VGVzdFJlc3VsdCk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bm9kZUF0UG9pbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZVRleHRCb3g6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6bm9kZUF0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6bm9kZUF0UG9pbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6aGl0VGVzdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0
TGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0Ojpub2RlQXRQb2ludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZWdpb246Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6Om5vZGVBdFBvaW50KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHUm9vdDo6bm9kZUF0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94Ojpu
b2RlQXRQb2ludCk6CisKIDIwMTItMDgtMzEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiBjb250ZXh0IGV4
ZWN1dGlvbiBpZCBmYWxsYmFjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDMwMzA0ZGFk
ZDgwODExYzU0Y2MxNGJmZDFiNjZmZjNlMDYwYjE1NmMuLjEzZDBhZTIwOTg2NTM4MGE0NzUyZGE0
YTFlNTBkY2NkYTYyMThjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTQwNiw2ICsx
NDA2LDggQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QoaW50
IGNlbnRlclgsIGludCBjZW50ZXJZLCB1bnNpZ25lZAogICAgICAgICB0eXBlIHw9IEhpdFRlc3RS
ZXF1ZXN0OjpJZ25vcmVDbGlwcGluZzsKICAgICBlbHNlIGlmICghZnJhbWVWaWV3LT52aXNpYmxl
Q29udGVudFJlY3QoKS5pbnRlcnNlY3RzKEhpdFRlc3RSZXN1bHQ6OnJlY3RGb3JQb2ludChwb2lu
dCwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZykp
KQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoYWxsb3dTaGFkb3dDb250ZW50KQorICAgICAg
ICB0eXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd1NoYWRvd0NvbnRlbnQ7CiAKICAgICBIaXRU
ZXN0UmVxdWVzdCByZXF1ZXN0KHR5cGUpOwogCkBAIC0xNDE2LDggKzE0MTgsNyBAQCBQYXNzUmVm
UHRyPE5vZGVMaXN0PiBEb2N1bWVudDo6bm9kZXNGcm9tUmVjdChpbnQgY2VudGVyWCwgaW50IGNl
bnRlclksIHVuc2lnbmVkCiAgICAgICAgIHJldHVybiBoYW5kbGVaZXJvUGFkZGluZyhyZXF1ZXN0
LCByZXN1bHQpOwogICAgIH0KIAotICAgIGVudW0gU2hhZG93Q29udGVudEZpbHRlclBvbGljeSBz
aGFkb3dDb250ZW50RmlsdGVyUG9saWN5ID0gYWxsb3dTaGFkb3dDb250ZW50ID8gQWxsb3dTaGFk
b3dDb250ZW50IDogRG9Ob3RBbGxvd1NoYWRvd0NvbnRlbnQ7Ci0gICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQocG9pbnQsIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVm
dFBhZGRpbmcsIHNoYWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kpOworICAgIEhpdFRlc3RSZXN1bHQg
cmVzdWx0KHBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxl
ZnRQYWRkaW5nKTsKICAgICByZW5kZXJWaWV3KCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsK
IAogICAgIHJldHVybiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3Q6OmFkb3B0KHJlc3VsdC5yZWN0QmFz
ZWRUZXN0UmVzdWx0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGRj
NmNmYTg3NTJkMjdmZDFkNzRmMGJjMjM4ZTBlMzJkM2Y5Yzk5OTcuLmRkZGIxZTBjMTg1OWNhZGEy
ZGM5YWU4NmJkMDcxZWIyZWIwOWRlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTEwNDEsMTMgKzEwNDEsMTQgQEAgRHJhZ1NvdXJjZUFjdGlvbiBFdmVudEhhbmRsZXI6
OnVwZGF0ZURyYWdTb3VyY2VBY3Rpb25zQWxsb3dlZCgpIGNvbnN0CiAgICAgCiBIaXRUZXN0UmVz
dWx0IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQm
IHBvaW50LCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBpZ25vcmVDbGlwcGluZywgSGl0
VGVzdFNjcm9sbGJhcnMgdGVzdFNjcm9sbGJhcnMsIEhpdFRlc3RSZXF1ZXN0OjpIaXRUZXN0UmVx
dWVzdFR5cGUgaGl0VHlwZSwgY29uc3QgTGF5b3V0U2l6ZSYgcGFkZGluZykKIHsKLSAgICBlbnVt
IFNoYWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kgc2hhZG93Q29udGVudEZpbHRlclBvbGljeSA9IGFs
bG93U2hhZG93Q29udGVudCA/IEFsbG93U2hhZG93Q29udGVudCA6IERvTm90QWxsb3dTaGFkb3dD
b250ZW50OwotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHBvaW50LCBwYWRkaW5nLmhlaWdodCgp
LCBwYWRkaW5nLndpZHRoKCksIHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcud2lkdGgoKSwgc2hh
ZG93Q29udGVudEZpbHRlclBvbGljeSk7CisgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQocG9pbnQs
IHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcud2lkdGgoKSwgcGFkZGluZy5oZWlnaHQoKSwgcGFk
ZGluZy53aWR0aCgpKTsKIAogICAgIGlmICghbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgaWYgKGlnbm9yZUNsaXBwaW5nKQogICAgICAgICBo
aXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZzsKKyAgICBpZiAoYWxsb3dT
aGFkb3dDb250ZW50KQorICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd1No
YWRvd0NvbnRlbnQ7CiAgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QoSGl0
VGVzdFJlcXVlc3QoaGl0VHlwZSksIHJlc3VsdCk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewpAQCAt
MTA2NCw3ICsxMDY1LDcgQEAgSGl0VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1
bHRBdFBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgYm9vbAogICAgICAgICBGcmFtZVZp
ZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpOwogICAgICAgICBMYXlv
dXRQb2ludCB3aWRnZXRQb2ludChyZXN1bHQubG9jYWxQb2ludCgpLngoKSArIHZpZXctPnNjcm9s
bFgoKSAtIHJlbmRlcldpZGdldC0+Ym9yZGVyTGVmdCgpIC0gcmVuZGVyV2lkZ2V0LT5wYWRkaW5n
TGVmdCgpLCAKICAgICAgICAgICAgIHJlc3VsdC5sb2NhbFBvaW50KCkueSgpICsgdmlldy0+c2Ny
b2xsWSgpIC0gcmVuZGVyV2lkZ2V0LT5ib3JkZXJUb3AoKSAtIHJlbmRlcldpZGdldC0+cGFkZGlu
Z1RvcCgpKTsKLSAgICAgICAgSGl0VGVzdFJlc3VsdCB3aWRnZXRIaXRUZXN0UmVzdWx0KHdpZGdl
dFBvaW50LCBwYWRkaW5nLmhlaWdodCgpLCBwYWRkaW5nLndpZHRoKCksIHBhZGRpbmcuaGVpZ2h0
KCksIHBhZGRpbmcud2lkdGgoKSwgc2hhZG93Q29udGVudEZpbHRlclBvbGljeSk7CisgICAgICAg
IEhpdFRlc3RSZXN1bHQgd2lkZ2V0SGl0VGVzdFJlc3VsdCh3aWRnZXRQb2ludCwgcGFkZGluZy5o
ZWlnaHQoKSwgcGFkZGluZy53aWR0aCgpLCBwYWRkaW5nLmhlaWdodCgpLCBwYWRkaW5nLndpZHRo
KCkpOwogICAgICAgICBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QoSGl0VGVzdFJl
cXVlc3QoaGl0VHlwZSksIHdpZGdldEhpdFRlc3RSZXN1bHQpOwogICAgICAgICByZXN1bHQgPSB3
aWRnZXRIaXRUZXN0UmVzdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVx
dWVzdC5oCmluZGV4IGU2YTUyMzFiYmZjODY1YjE3OTkyMmFiNzNlYTlmOTJjNmMyNDhkZmIuLjFi
YTIwZDRkMDFkY2YxYzhmZjFlZWYwOTA5NzU4M2YyMzM1OWNlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oCkBAIC0zNCw3ICszNCw4IEBAIHB1YmxpYzoKICAg
ICAgICAgUmVsZWFzZSA9IDEgPDwgNCwKICAgICAgICAgSWdub3JlQ2xpcHBpbmcgPSAxIDw8IDUs
CiAgICAgICAgIFNWR0NsaXBDb250ZW50ID0gMSA8PCA2LAotICAgICAgICBUb3VjaEV2ZW50ID0g
MSA8PCA3CisgICAgICAgIFRvdWNoRXZlbnQgPSAxIDw8IDcsCisgICAgICAgIEFsbG93U2hhZG93
Q29udGVudCA9IDEgPDwgOAogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIEhpdFRlc3RS
ZXF1ZXN0VHlwZTsKQEAgLTUyLDYgKzUzLDcgQEAgcHVibGljOgogICAgIGJvb2wgc3ZnQ2xpcENv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgU1ZHQ2xpcENvbnRlbnQ7IH0K
ICAgICBib29sIHRvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgVG91
Y2hFdmVudDsgfQogICAgIGJvb2wgbW91c2VFdmVudCgpIGNvbnN0IHsgcmV0dXJuICF0b3VjaEV2
ZW50KCk7IH0KKyAgICBib29sIGFsbG93U2hhZG93Q29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVxdWVzdFR5cGUgJiBBbGxvd1NoYWRvd0NvbnRlbnQ7IH0KIAogICAgIC8vIENvbnZlbmllbmNl
IGZ1bmN0aW9ucwogICAgIGJvb2wgdG91Y2hNb3ZlKCkgY29uc3QgeyByZXR1cm4gbW92ZSgpICYm
IHRvdWNoRXZlbnQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
Y3BwCmluZGV4IGY3ODIyNjNhZTYxMDExZmFiNGQ4MThkZTQ0YzYxNDcwMTQ2ZjQxMmIuLmU4ODFh
ZTA1MDc2ZDZjYTdhM2NjMzM0MmRkZDRjNjk4MzM1NDZlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBIaXRUZXN0TG9j
YXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mIG90aGVyLCBjb25z
dCBMYXlvdXRTaXplJgogICAgICwgbV9ib3VuZGluZ0JveChvdGhlci5tX2JvdW5kaW5nQm94KQog
ICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KG90aGVyLm1fdHJhbnNmb3JtZWRQb2ludCkKICAgICAs
IG1fdHJhbnNmb3JtZWRSZWN0KG90aGVyLm1fdHJhbnNmb3JtZWRSZWN0KQotICAgICwgbV9yZWdp
b24ocmVnaW9uKQorICAgICwgbV9yZWdpb24ocmVnaW9uID8gcmVnaW9uIDogb3RoZXIubV9yZWdp
b24pCiAgICAgLCBtX2lzUmVjdEJhc2VkKG90aGVyLm1faXNSZWN0QmFzZWQpCiAgICAgLCBtX2lz
UmVjdGlsaW5lYXIob3RoZXIubV9pc1JlY3RpbGluZWFyKQogewpAQCAtMTk0LDI3ICsxOTQsMjMg
QEAgSW50UmVjdCBIaXRUZXN0TG9jYXRpb246OnJlY3RGb3JQb2ludChjb25zdCBMYXlvdXRQb2lu
dCYgcG9pbnQsIHVuc2lnbmVkIHRvcFBhZGQKIAogSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3Vs
dCgpIDogSGl0VGVzdExvY2F0aW9uKCkKICAgICAsIG1faXNPdmVyV2lkZ2V0KGZhbHNlKQotICAg
ICwgbV9zaGFkb3dDb250ZW50RmlsdGVyUG9saWN5KERvTm90QWxsb3dTaGFkb3dDb250ZW50KQog
ewogfQogCiBIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFBvaW50JiBw
b2ludCkgOiBIaXRUZXN0TG9jYXRpb24ocG9pbnQpCiAgICAgLCBtX2lzT3ZlcldpZGdldChmYWxz
ZSkKLSAgICAsIG1fc2hhZG93Q29udGVudEZpbHRlclBvbGljeShEb05vdEFsbG93U2hhZG93Q29u
dGVudCkKIHsKIH0KIAotSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQ
b2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFk
ZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcsIFNoYWRv
d0NvbnRlbnRGaWx0ZXJQb2xpY3kgYWxsb3dTaGFkb3dDb250ZW50KQorSGl0VGVzdFJlc3VsdDo6
SGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRv
cFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywg
dW5zaWduZWQgbGVmdFBhZGRpbmcpCiAgICAgOiBIaXRUZXN0TG9jYXRpb24oY2VudGVyUG9pbnQs
IHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcpCiAg
ICAgLCBtX2lzT3ZlcldpZGdldChmYWxzZSkKLSAgICAsIG1fc2hhZG93Q29udGVudEZpbHRlclBv
bGljeShhbGxvd1NoYWRvd0NvbnRlbnQpCiB7CiB9CiAKLUhpdFRlc3RSZXN1bHQ6OkhpdFRlc3RS
ZXN1bHQoY29uc3QgSGl0VGVzdExvY2F0aW9uJiBvdGhlciwgU2hhZG93Q29udGVudEZpbHRlclBv
bGljeSBhbGxvd1NoYWRvd0NvbnRlbnQpCitIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgb3RoZXIpCiAgICAgOiBIaXRUZXN0TG9jYXRpb24ob3RoZXIp
CiAgICAgLCBtX2lzT3ZlcldpZGdldChmYWxzZSkKLSAgICAsIG1fc2hhZG93Q29udGVudEZpbHRl
clBvbGljeShhbGxvd1NoYWRvd0NvbnRlbnQpCiB7CiB9CiAKQEAgLTIyNiw3ICsyMjIsNiBAQCBI
aXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQmIG90aGVyKQog
ICAgICwgbV9pbm5lclVSTEVsZW1lbnQob3RoZXIuVVJMRWxlbWVudCgpKQogICAgICwgbV9zY3Jv
bGxiYXIob3RoZXIuc2Nyb2xsYmFyKCkpCiAgICAgLCBtX2lzT3ZlcldpZGdldChvdGhlci5pc092
ZXJXaWRnZXQoKSkKLSAgICAsIG1fc2hhZG93Q29udGVudEZpbHRlclBvbGljeShvdGhlci5zaGFk
b3dDb250ZW50RmlsdGVyUG9saWN5KCkpCiB7CiAgICAgLy8gT25seSBjb3B5IHRoZSBOb2RlU2V0
IGluIGNhc2Ugb2YgcmVjdCBoaXQgdGVzdC4KICAgICBtX3JlY3RCYXNlZFRlc3RSZXN1bHQgPSBh
ZG9wdFB0cihvdGhlci5tX3JlY3RCYXNlZFRlc3RSZXN1bHQgPyBuZXcgTm9kZVNldCgqb3RoZXIu
bV9yZWN0QmFzZWRUZXN0UmVzdWx0KSA6IDApOwpAQCAtMjQ4LDcgKzI0Myw2IEBAIEhpdFRlc3RS
ZXN1bHQmIEhpdFRlc3RSZXN1bHQ6Om9wZXJhdG9yPShjb25zdCBIaXRUZXN0UmVzdWx0JiBvdGhl
cikKIAogICAgIC8vIE9ubHkgY29weSB0aGUgTm9kZVNldCBpbiBjYXNlIG9mIHJlY3QgaGl0IHRl
c3QuCiAgICAgbV9yZWN0QmFzZWRUZXN0UmVzdWx0ID0gYWRvcHRQdHIob3RoZXIubV9yZWN0QmFz
ZWRUZXN0UmVzdWx0ID8gbmV3IE5vZGVTZXQoKm90aGVyLm1fcmVjdEJhc2VkVGVzdFJlc3VsdCkg
OiAwKTsKLSAgICBtX3NoYWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kgID0gb3RoZXIuc2hhZG93Q29u
dGVudEZpbHRlclBvbGljeSgpOwogCiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAtNjc0LDcgKzY2
OCw3IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6aXNDb250ZW50RWRpdGFibGUoKSBjb25zdAogICAg
IHJldHVybiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CiB9CiAK
LWJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBu
b2RlLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFJlY3QmIHJlY3QpCitib29sIEhpdFRlc3RSZXN1bHQ6OmFkZE5vZGVUb1JlY3RCYXNlZFRl
c3RSZXN1bHQoTm9kZSogbm9kZSwgY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYg
cmVjdCkKIHsKICAgICAvLyBJZiBpdCBpcyBub3QgYSByZWN0LWJhc2VkIGhpdCB0ZXN0LCB0aGlz
IG1ldGhvZCBoYXMgdG8gYmUgbm8tb3AuCiAgICAgLy8gUmV0dXJuIGZhbHNlLCBzbyB0aGUgaGl0
IHRlc3Qgc3RvcHMuCkBAIC02ODUsNyArNjc5LDcgQEAgYm9vbCBIaXRUZXN0UmVzdWx0OjphZGRO
b2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqIG5vZGUsIGNvbnN0IEhpdFRlc3RMb2NhdGkK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1fc2hhZG93
Q29udGVudEZpbHRlclBvbGljeSA9PSBEb05vdEFsbG93U2hhZG93Q29udGVudCkKKyAgICBpZiAo
IXJlcXVlc3QuYWxsb3dTaGFkb3dDb250ZW50KCkpCiAgICAgICAgIG5vZGUgPSBub2RlLT5zaGFk
b3dBbmNlc3Rvck5vZGUoKTsKIAogICAgIG11dGFibGVSZWN0QmFzZWRUZXN0UmVzdWx0KCkuYWRk
KG5vZGUpOwpAQCAtNzA5LDcgKzcwMyw3IEBAIGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRv
UmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBIaXRUZXN0TG9jYXRpCiAgICAg
cmV0dXJuICFyZWdpb25GaWxsZWQ7CiB9CiAKLWJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRv
UmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxv
Y2F0aW9uSW5Db250YWluZXIsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK2Jvb2wgSGl0VGVzdFJl
c3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBub2RlLCBjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29u
dGFpbmVyLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgLy8gSWYgaXQgaXMgbm90IGEg
cmVjdC1iYXNlZCBoaXQgdGVzdCwgdGhpcyBtZXRob2QgaGFzIHRvIGJlIG5vLW9wLgogICAgIC8v
IFJldHVybiBmYWxzZSwgc28gdGhlIGhpdCB0ZXN0IHN0b3BzLgpAQCAtNzIwLDcgKzcxNCw3IEBA
IGJvb2wgSGl0VGVzdFJlc3VsdDo6YWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChOb2RlKiBu
b2RlLCBjb25zdCBIaXRUZXN0TG9jYXRpCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGlmIChtX3NoYWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kgPT0gRG9Ob3RBbGxv
d1NoYWRvd0NvbnRlbnQpCisgICAgaWYgKCFyZXF1ZXN0LmFsbG93U2hhZG93Q29udGVudCgpKQog
ICAgICAgICBub2RlID0gbm9kZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7CiAKICAgICBtdXRhYmxl
UmVjdEJhc2VkVGVzdFJlc3VsdCgpLmFkZChub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5oCmluZGV4IGExNGUxZDhmYzc5NjMyMjhkMjA4YmYzMGE1NGYxZTFiNTYw
ZmUxMDYuLmJhYzk2YTJiMWY5MmE2NTU1OGNmZWIzNzFiMGEyYTJmN2JhNTMzN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtNDUsOCArNDUsNiBAQCBjbGFz
cyBOb2RlOwogY2xhc3MgUmVuZGVyUmVnaW9uOwogY2xhc3MgU2Nyb2xsYmFyOwogCi1lbnVtIFNo
YWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kgeyBEb05vdEFsbG93U2hhZG93Q29udGVudCwgQWxsb3dT
aGFkb3dDb250ZW50IH07Ci0KIGNsYXNzIEhpdFRlc3RMb2NhdGlvbiB7CiBwdWJsaWM6CiAKQEAg
LTU3LDcgKzU1LDcgQEAgcHVibGljOgogICAgIC8vIFBhc3Mgbm9uLXplcm8gcGFkZGluZyB2YWx1
ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFzZWQgaGl0IHRlc3QuCiAgICAgSGl0VGVzdExvY2F0aW9u
KGNvbnN0IExheW91dFBvaW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5z
aWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0
UGFkZGluZyk7CiAgICAgLy8gTWFrZSBhIGNvcHkgdGhlIEhpdFRlc3RMb2NhdGlvbiBpbiBhIG5l
dyByZWdpb24gYnkgYXBwbHlpbmcgZ2l2ZW4gb2Zmc2V0IHRvIGludGVybmFsIHBvaW50IGFuZCBh
cmVhLgotICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBM
YXlvdXRTaXplJiBvZmZzZXQsIFJlbmRlclJlZ2lvbiopOworICAgIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQsIFJlbmRlclJl
Z2lvbiogPSAwKTsKICAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJik7
CiAgICAgfkhpdFRlc3RMb2NhdGlvbigpOwogICAgIEhpdFRlc3RMb2NhdGlvbiYgb3BlcmF0b3I9
KGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYpOwpAQCAtMTA5LDggKzEwNyw4IEBAIHB1YmxpYzoKICAg
ICBIaXRUZXN0UmVzdWx0KCk7CiAgICAgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2ludCYp
OwogICAgIC8vIFBhc3Mgbm9uLW5lZ2F0aXZlIHBhZGRpbmcgdmFsdWVzIHRvIHBlcmZvcm0gYSBy
ZWN0LWJhc2VkIGhpdCB0ZXN0LgotICAgIEhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQm
IGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcs
IHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLCBTaGFkb3dDb250
ZW50RmlsdGVyUG9saWN5KTsKLSAgICBIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYsIFNoYWRvd0NvbnRlbnRGaWx0ZXJQb2xpY3kpOworICAgIEhpdFRlc3RSZXN1bHQoY29uc3Qg
TGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCBy
aWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5n
KTsKKyAgICBIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYpOwogICAgIEhpdFRl
c3RSZXN1bHQoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogICAgIH5IaXRUZXN0UmVzdWx0KCk7CiAg
ICAgSGl0VGVzdFJlc3VsdCYgb3BlcmF0b3I9KGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKQEAgLTEy
NSw3ICsxMjMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUb05vblNoYWRvd0FuY2VzdG9yKCk7
CiAKICAgICBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGhpdFRlc3RMb2NhdGlvbigpIGNvbnN0IHsg
cmV0dXJuICp0aGlzOyB9Ci0gICAgU2hhZG93Q29udGVudEZpbHRlclBvbGljeSBzaGFkb3dDb250
ZW50RmlsdGVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9zaGFkb3dDb250ZW50RmlsdGVyUG9s
aWN5OyB9CiAKICAgICB2b2lkIHNldElubmVyTm9kZShOb2RlKik7CiAgICAgdm9pZCBzZXRJbm5l
ck5vblNoYXJlZE5vZGUoTm9kZSopOwpAQCAtMTY2LDggKzE2Myw4IEBAIHB1YmxpYzoKIAogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiBpdCBpcyByZWN0LWJhc2VkIGhpdCB0ZXN0IGFuZCBuZWVkcyB0
byBjb250aW51ZSB1bnRpbCB0aGUgcmVjdCBpcyBmdWxseQogICAgIC8vIGVuY2xvc2VkIGJ5IHRo
ZSBib3VuZGFyaWVzIG9mIGEgbm9kZS4KLSAgICBib29sIGFkZE5vZGVUb1JlY3RCYXNlZFRlc3RS
ZXN1bHQoTm9kZSosIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UmVjdCYgPSBMYXlvdXRSZWN0KCkpOwotICAgIGJvb2wgYWRkTm9kZVRvUmVj
dEJhc2VkVGVzdFJlc3VsdChOb2RlKiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBGbG9hdFJlY3QmKTsKKyAgICBib29sIGFkZE5vZGVUb1JlY3RCYXNl
ZFRlc3RSZXN1bHQoTm9kZSosIGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiA9IExheW91dFJlY3Qo
KSk7CisgICAgYm9vbCBhZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KE5vZGUqLCBjb25zdCBI
aXRUZXN0UmVxdWVzdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgcG9pbnRJbkNvbnRhaW5lciwg
Y29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdm9pZCBhcHBlbmQoY29uc3QgSGl0VGVzdFJlc3VsdCYp
OwogCiAgICAgLy8gSWYgbV9yZWN0QmFzZWRUZXN0UmVzdWx0IGlzIDAgdGhlbiBzZXQgaXQgdG8g
YSBuZXcgTm9kZVNldC4gUmV0dXJuICptX3JlY3RCYXNlZFRlc3RSZXN1bHQuIExhenkgYWxsb2Nh
dGlvbiBtYWtlcwpAQCAtMTk0LDggKzE5MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNjcm9s
bGJhcj4gbV9zY3JvbGxiYXI7CiAgICAgYm9vbCBtX2lzT3ZlcldpZGdldDsgLy8gUmV0dXJucyB0
cnVlIGlmIHdlIGFyZSBvdmVyIGEgd2lkZ2V0IChhbmQgbm90IGluIHRoZSBib3JkZXIvcGFkZGlu
ZyBhcmVhIG9mIGEgUmVuZGVyV2lkZ2V0IGZvciBleGFtcGxlKS4KIAotICAgIFNoYWRvd0NvbnRl
bnRGaWx0ZXJQb2xpY3kgbV9zaGFkb3dDb250ZW50RmlsdGVyUG9saWN5OwotCiAgICAgbXV0YWJs
ZSBPd25QdHI8Tm9kZVNldD4gbV9yZWN0QmFzZWRUZXN0UmVzdWx0OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCmluZGV4IDc3NTUwOTE2N2I5MjFlM2I0
ZjM4NTNmNjNlM2IyZDJjY2I5Y2NkOWEuLjlhZDBmY2ZhMTJjODMzYjBhMWQzYzc3NGM5Zjg3NTQz
Zjc1ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAK
QEAgLTEwMTMsNyArMTAxMyw3IEBAIGJvb2wgSW5saW5lRmxvd0JveDo6bm9kZUF0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlCiAKICAgICBpZiAo
dmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGxvY2F0aW9uSW5Db250YWluZXIuaW50ZXJzZWN0cyhy
ZWN0KSkgewogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwg
ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2F0aW9uSW5Db250YWluZXIucG9pbnQoKSAtIHRvTGF5b3V0
U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkpKTsgLy8gRG9uJ3QgYWRkIGluIG1feCBvciBtX3kgaGVy
ZSwgd2Ugd2FudCBjb29yZHMgaW4gdGhlIGNvbnRhaW5pbmcgYmxvY2sncyBzcGFjZS4KLSAgICAg
ICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChyZW5kZXJlcigpLT5u
b2RlKCksIGxvY2F0aW9uSW5Db250YWluZXIsIHJlY3QpKQorICAgICAgICBpZiAoIXJlc3VsdC5h
ZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KHJlbmRlcmVyKCktPm5vZGUoKSwgcmVxdWVzdCwg
bG9jYXRpb25JbkNvbnRhaW5lciwgcmVjdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCA5
MmQwNWEzODIxYTJmZmU5ZTgwZDMzNTk3ZTUyNDdkNGY4ZWU4YmU0Li41YmMzYjc2NTI1YzFmMDRi
NzNmN2E2Mzc1NWQ2MDM1NjE5NGZmYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCkBAIC0zNDksNyArMzQ5LDcgQEAgYm9vbCBJbmxpbmVUZXh0Qm94Ojpp
c0xpbmVCcmVhaygpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlcmVyKCktPmlzQlIoKSB8fCAocmVu
ZGVyZXIoKS0+c3R5bGUoKS0+cHJlc2VydmVOZXdsaW5lKCkgJiYgbGVuKCkgPT0gMSAmJiAoKnRl
eHRSZW5kZXJlcigpLT50ZXh0KCkpW3N0YXJ0KCldID09ICdcbicpOwogfQogCi1ib29sIElubGlu
ZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNv
bnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgTGF5b3V0VW5pdCAvKiBsaW5lVG9w
ICovLCBMYXlvdXRVbml0IC8qbGluZUJvdHRvbSovKQorYm9vbCBJbmxpbmVUZXh0Qm94Ojpub2Rl
QXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVz
dWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgTGF5b3V0VW5pdCAvKiBsaW5lVG9wICovLCBM
YXlvdXRVbml0IC8qbGluZUJvdHRvbSovKQogewogICAgIGlmIChpc0xpbmVCcmVhaygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0zNTksNyArMzU5LDcgQEAgYm9vbCBJbmxpbmVUZXh0Qm94
Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgY28KICAgICBGbG9hdFJlY3QgcmVjdChib3hPcmlnaW4sIHNpemUoKSk7CiAgICAgaWYgKG1f
dHJ1bmNhdGlvbiAhPSBjRnVsbFRydW5jYXRpb24gJiYgdmlzaWJsZVRvSGl0VGVzdGluZygpICYm
IGxvY2F0aW9uSW5Db250YWluZXIuaW50ZXJzZWN0cyhyZWN0KSkgewogICAgICAgICByZW5kZXJl
cigpLT51cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgZmxpcEZvcldyaXRpbmdNb2RlKGxvY2F0
aW9uSW5Db250YWluZXIucG9pbnQoKSAtIHRvTGF5b3V0U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkp
KTsKLSAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChyZW5k
ZXJlcigpLT5ub2RlKCksIGxvY2F0aW9uSW5Db250YWluZXIsIHJlY3QpKQorICAgICAgICBpZiAo
IXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KHJlbmRlcmVyKCktPm5vZGUoKSwg
cmVxdWVzdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgcmVjdCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKaW5kZXggOTA5MDBkMDQ3ZjU3NzUwYmU1MTU4OWM5NWFjNTM1NDgxNmU1
ZTEwYy4uYzk2ZDE1NDVmNWRjNGUwYWVlMmEzZTc4NmMyNTUxYThlY2Q0YWI0YyAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC00NzA0LDcgKzQ3MDQsNyBAQCBi
b29sIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdQogICAgIGlmICgoaGl0VGVzdEFjdGlvbiA9PSBIaXRUZXN0
QmxvY2tCYWNrZ3JvdW5kIHx8IGhpdFRlc3RBY3Rpb24gPT0gSGl0VGVzdENoaWxkQmxvY2tCYWNr
Z3JvdW5kKSAmJiBpc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wocmVzdWx0LCBsb2NhdGlvbkluQ29u
dGFpbmVyLnBvaW50KCksIGFkanVzdGVkTG9jYXRpb24pKSB7CiAgICAgICAgIHVwZGF0ZUhpdFRl
c3RSZXN1bHQocmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLnBvaW50KCkgLSBsb2NhbE9mZnNl
dCk7CiAgICAgICAgIC8vIEZJWE1FOiBpc1BvaW50SW5PdmVyZmxvd0NvbnRyb2woKSBkb2Vzbid0
IGhhbmRsZSByZWN0LWJhc2VkIHRlc3RzIHlldC4KLSAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9k
ZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChub2RlKCksIGxvY2F0aW9uSW5Db250YWluZXIpKQorICAg
ICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KG5vZGUoKSwgcmVx
dWVzdCwgbG9jYXRpb25JbkNvbnRhaW5lcikpCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApAQCAtNDczNyw3ICs0NzM3LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQo
Y29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3UKICAgICAg
ICAgTGF5b3V0UmVjdCBib3VuZHNSZWN0KGFkanVzdGVkTG9jYXRpb24sIHNpemUoKSk7CiAgICAg
ICAgIGlmICh2aXNpYmxlVG9IaXRUZXN0aW5nKCkgJiYgbG9jYXRpb25JbkNvbnRhaW5lci5pbnRl
cnNlY3RzKGJvdW5kc1JlY3QpKSB7CiAgICAgICAgICAgICB1cGRhdGVIaXRUZXN0UmVzdWx0KHJl
c3VsdCwgZmxpcEZvcldyaXRpbmdNb2RlKGxvY2F0aW9uSW5Db250YWluZXIucG9pbnQoKSAtIGxv
Y2FsT2Zmc2V0KSk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRU
ZXN0UmVzdWx0KG5vZGUoKSwgbG9jYXRpb25JbkNvbnRhaW5lciwgYm91bmRzUmVjdCkpCisgICAg
ICAgICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KG5vZGUoKSwg
cmVxdWVzdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYm91bmRzUmVjdCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCmluZGV4IDM4ZGNmMmYyYjI3ZTkxODhmYzRkYWQ2ODIwOTY4YTk1YmY1MTgx
Y2UuLjEyZmZmOGVkZjRhYjA3OTY3MzUxMGUyOTMyZGZhNjg3ZjVhYWZmNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC03NTYsNyArNzU2LDcgQEAgYm9vbCBSZW5k
ZXJCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQKICAgICBib3VuZHNSZWN0Lm1vdmVCeShhZGp1c3RlZExvY2F0aW9uKTsK
ICAgICBpZiAodmlzaWJsZVRvSGl0VGVzdGluZygpICYmIGFjdGlvbiA9PSBIaXRUZXN0Rm9yZWdy
b3VuZCAmJiBsb2NhdGlvbkluQ29udGFpbmVyLmludGVyc2VjdHMoYm91bmRzUmVjdCkpIHsKICAg
ICAgICAgdXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIGxvY2F0aW9uSW5Db250YWluZXIucG9p
bnQoKSAtIHRvTGF5b3V0U2l6ZShhZGp1c3RlZExvY2F0aW9uKSk7Ci0gICAgICAgIGlmICghcmVz
dWx0LmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQobm9kZSgpLCBsb2NhdGlvbkluQ29udGFp
bmVyLCBib3VuZHNSZWN0KSkKKyAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2Vk
VGVzdFJlc3VsdChub2RlKCksIHJlcXVlc3QsIGxvY2F0aW9uSW5Db250YWluZXIsIGJvdW5kc1Jl
Y3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA3MzE4MzdlMTE3YzUwYTYzYTI3MmYyMGNiN2Zm
YjkzMTJiYzFiZGU5Li4xOTUzZjUzMzFlMTU4OTRkM2Q1MjA2ZDk2YzgyNzc3OTgwMTFiYjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTUwMSw3ICs1MDEs
NyBAQCBIVE1MTWFwRWxlbWVudCogUmVuZGVySW1hZ2U6OmltYWdlTWFwKCkgY29uc3QKIAogYm9v
bCBSZW5kZXJJbWFnZTo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbklu
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RB
Y3Rpb24gaGl0VGVzdEFjdGlvbikKIHsKLSAgICBIaXRUZXN0UmVzdWx0IHRlbXBSZXN1bHQocmVz
dWx0LmhpdFRlc3RMb2NhdGlvbigpLCByZXN1bHQuc2hhZG93Q29udGVudEZpbHRlclBvbGljeSgp
KTsKKyAgICBIaXRUZXN0UmVzdWx0IHRlbXBSZXN1bHQocmVzdWx0LmhpdFRlc3RMb2NhdGlvbigp
KTsKICAgICBib29sIGluc2lkZSA9IFJlbmRlclJlcGxhY2VkOjpub2RlQXRQb2ludChyZXF1ZXN0
LCB0ZW1wUmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0
VGVzdEFjdGlvbik7CiAKICAgICBpZiAodGVtcFJlc3VsdC5pbm5lck5vZGUoKSAmJiBub2RlKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDBkNDYxZGIz
ZGI0MjNiNDcyZGRmNTJlYWRkNmEyODNjOGQ1NDMyNjkuLjQxN2Q3OTU5NWExMmQxNWE4N2IyMjg5
Yjc4OThmYjllNDMzNWNlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtMzY5Nyw3ICszNjk3LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRU
ZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnQKICAgICAv
LyBOZXh0IHdlIHdhbnQgdG8gc2VlIGlmIHRoZSBtb3VzZSBwb3MgaXMgaW5zaWRlIHRoZSBjaGls
ZCBSZW5kZXJPYmplY3RzIG9mIHRoZSBsYXllci4KICAgICBpZiAoZmdSZWN0LmludGVyc2VjdHMo
aGl0VGVzdExvY2F0aW9uKSAmJiBpc1NlbGZQYWludGluZ0xheWVyKCkpIHsKICAgICAgICAgLy8g
SGl0IHRlc3Qgd2l0aCBhIHRlbXBvcmFyeSBIaXRUZXN0UmVzdWx0LCBiZWNhdXNlIHdlIG9ubHkg
d2FudCB0byBjb21taXQgdG8gJ3Jlc3VsdCcgaWYgd2Uga25vdyB3ZSdyZSBmcm9udG1vc3QuCi0g
ICAgICAgIEhpdFRlc3RSZXN1bHQgdGVtcFJlc3VsdChyZXN1bHQuaGl0VGVzdExvY2F0aW9uKCks
IHJlc3VsdC5zaGFkb3dDb250ZW50RmlsdGVyUG9saWN5KCkpOworICAgICAgICBIaXRUZXN0UmVz
dWx0IHRlbXBSZXN1bHQocmVzdWx0LmhpdFRlc3RMb2NhdGlvbigpKTsKICAgICAgICAgaWYgKGhp
dFRlc3RDb250ZW50cyhyZXF1ZXN0LCB0ZW1wUmVzdWx0LCBsYXllckJvdW5kcywgaGl0VGVzdExv
Y2F0aW9uLCBIaXRUZXN0RGVzY2VuZGFudHMpCiAgICAgICAgICAgICAmJiBpc0hpdENhbmRpZGF0
ZSh0aGlzLCBmYWxzZSwgek9mZnNldEZvckNvbnRlbnRzUHRyLCB1bmZsYXR0ZW5lZFRyYW5zZm9y
bVN0YXRlLmdldCgpKSkgewogICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1JlY3RCYXNlZFRlc3Qo
KSkKQEAgLTM3MjYsNyArMzcyNiw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVz
dExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250CiAgICAgICAg
IHJldHVybiBjYW5kaWRhdGVMYXllcjsKIAogICAgIGlmIChiZ1JlY3QuaW50ZXJzZWN0cyhoaXRU
ZXN0TG9jYXRpb24pICYmIGlzU2VsZlBhaW50aW5nTGF5ZXIoKSkgewotICAgICAgICBIaXRUZXN0
UmVzdWx0IHRlbXBSZXN1bHQocmVzdWx0LmhpdFRlc3RMb2NhdGlvbigpLCByZXN1bHQuc2hhZG93
Q29udGVudEZpbHRlclBvbGljeSgpKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCB0ZW1wUmVzdWx0
KHJlc3VsdC5oaXRUZXN0TG9jYXRpb24oKSk7CiAgICAgICAgIGlmIChoaXRUZXN0Q29udGVudHMo
cmVxdWVzdCwgdGVtcFJlc3VsdCwgbGF5ZXJCb3VuZHMsIGhpdFRlc3RMb2NhdGlvbiwgSGl0VGVz
dFNlbGYpCiAgICAgICAgICAgICAmJiBpc0hpdENhbmRpZGF0ZSh0aGlzLCBmYWxzZSwgek9mZnNl
dEZvckNvbnRlbnRzUHRyLCB1bmZsYXR0ZW5lZFRyYW5zZm9ybVN0YXRlLmdldCgpKSkgewogICAg
ICAgICAgICAgaWYgKHJlc3VsdC5pc1JlY3RCYXNlZFRlc3QoKSkKQEAgLTM3ODMsNyArMzc4Myw3
IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExpc3QoVmVjdG9yPFJlbmRlckxh
eWVyKj4qIGxpc3QsIFJlbmRlckxheWVyKiByCiAgICAgZm9yIChpbnQgaSA9IGxpc3QtPnNpemUo
KSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIFJlbmRlckxheWVyKiBjaGlsZExheWVyID0g
bGlzdC0+YXQoaSk7CiAgICAgICAgIFJlbmRlckxheWVyKiBoaXRMYXllciA9IDA7Ci0gICAgICAg
IEhpdFRlc3RSZXN1bHQgdGVtcFJlc3VsdChyZXN1bHQuaGl0VGVzdExvY2F0aW9uKCksIHJlc3Vs
dC5zaGFkb3dDb250ZW50RmlsdGVyUG9saWN5KCkpOworICAgICAgICBIaXRUZXN0UmVzdWx0IHRl
bXBSZXN1bHQocmVzdWx0LmhpdFRlc3RMb2NhdGlvbigpKTsKICAgICAgICAgaWYgKGNoaWxkTGF5
ZXItPmlzUGFnaW5hdGVkKCkpCiAgICAgICAgICAgICBoaXRMYXllciA9IGhpdFRlc3RQYWdpbmF0
ZWRDaGlsZExheWVyKGNoaWxkTGF5ZXIsIHJvb3RMYXllciwgcmVxdWVzdCwgdGVtcFJlc3VsdCwg
aGl0VGVzdFJlY3QsIGhpdFRlc3RMb2NhdGlvbiwgdHJhbnNmb3JtU3RhdGUsIHpPZmZzZXRGb3JE
ZXNjZW5kYW50cyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IDc1NTgwZDU0YzgwM2FhMGU2MzZkNDJj
N2VjY2IyZTIzNTMyYWU2ZjEuLjM2OTAxMTk4MDdmYjUwZTgxZjM0Zjg5MDNlMmFlNjgxYzhkNGUx
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVt
blNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
U2V0LmNwcApAQCAtMzE4LDcgKzMxOCw3IEBAIGJvb2wgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6Om5v
ZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzCiAgICAg
fQogICAgIAogICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBsb2NhdGlvbkluQ29udGFp
bmVyLnBvaW50KCkgLSB0b0xheW91dFNpemUoYWRqdXN0ZWRMb2NhdGlvbikpOwotICAgIHJldHVy
biAhcmVzdWx0LmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQobm9kZSgpLCBsb2NhdGlvbklu
Q29udGFpbmVyLCBib3VuZHNSZWN0KTsKKyAgICByZXR1cm4gIXJlc3VsdC5hZGROb2RlVG9SZWN0
QmFzZWRUZXN0UmVzdWx0KG5vZGUoKSwgcmVxdWVzdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYm91
bmRzUmVjdCk7CiB9CiAKIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnJlcGFpbnRGbG93VGhy
ZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IDkz
NGUwZjllN2ZmZjQyNGE0NDFkZGRlMmEwZjg4ZjE4ZTk1NDQ0ZTAuLjgwYzg0OGJmNDM1YjBjZGU4
ZTVkY2Y5MDNkZjM5OTI0ZjUwN2JiYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZWdpb24uY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgYm9vbCBSZW5kZXJSZWdpb246Om5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXMK
ICAgICAgICAgaWYgKG1fZmxvd1RocmVhZCAmJiBtX2Zsb3dUaHJlYWQtPmhpdFRlc3RGbG93VGhy
ZWFkUG9ydGlvbkluUmVnaW9uKHRoaXMsIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBmbG93VGhy
ZWFkUG9ydGlvbk92ZXJmbG93UmVjdCgpLCByZXF1ZXN0LCByZXN1bHQsIGxvY2F0aW9uSW5Db250
YWluZXIsIExheW91dFBvaW50KGFkanVzdGVkTG9jYXRpb24ueCgpICsgYm9yZGVyTGVmdCgpICsg
cGFkZGluZ0xlZnQoKSwgYWRqdXN0ZWRMb2NhdGlvbi55KCkgKyBib3JkZXJUb3AoKSArIHBhZGRp
bmdUb3AoKSkpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIHVwZGF0ZUhpdFRl
c3RSZXN1bHQocmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLnBvaW50KCkgLSB0b0xheW91dFNp
emUoYWRqdXN0ZWRMb2NhdGlvbikpOwotICAgICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0
QmFzZWRUZXN0UmVzdWx0KGdlbmVyYXRpbmdOb2RlKCksIGxvY2F0aW9uSW5Db250YWluZXIsIGJv
dW5kc1JlY3QpKQorICAgICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVz
dWx0KGdlbmVyYXRpbmdOb2RlKCksIHJlcXVlc3QsIGxvY2F0aW9uSW5Db250YWluZXIsIGJvdW5k
c1JlY3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAppbmRleCBlMmUwMWQ1YjBlYzY5ODA0NWJjYWVmM2Nl
NGM3NzkzMzU0YmEyNzE0Li5jZDgzZTNmOGYwMzYzNmExNGU2NDVjMTAyZGY4MDgwYWU2YjJlYWEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKQEAgLTEyOTIsNyAr
MTI5Miw3IEBAIGJvb2wgUmVuZGVyVGFibGU6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1CiAgICAgTGF5b3V0UmVjdCBib3VuZHNS
ZWN0KGFkanVzdGVkTG9jYXRpb24sIHNpemUoKSk7CiAgICAgaWYgKHZpc2libGVUb0hpdFRlc3Rp
bmcoKSAmJiAoYWN0aW9uID09IEhpdFRlc3RCbG9ja0JhY2tncm91bmQgfHwgYWN0aW9uID09IEhp
dFRlc3RDaGlsZEJsb2NrQmFja2dyb3VuZCkgJiYgbG9jYXRpb25JbkNvbnRhaW5lci5pbnRlcnNl
Y3RzKGJvdW5kc1JlY3QpKSB7CiAgICAgICAgIHVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBm
bGlwRm9yV3JpdGluZ01vZGUobG9jYXRpb25JbkNvbnRhaW5lci5wb2ludCgpIC0gdG9MYXlvdXRT
aXplKGFkanVzdGVkTG9jYXRpb24pKSk7Ci0gICAgICAgIGlmICghcmVzdWx0LmFkZE5vZGVUb1Jl
Y3RCYXNlZFRlc3RSZXN1bHQobm9kZSgpLCBsb2NhdGlvbkluQ29udGFpbmVyLCBib3VuZHNSZWN0
KSkKKyAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChub2Rl
KCksIHJlcXVlc3QsIGxvY2F0aW9uSW5Db250YWluZXIsIGJvdW5kc1JlY3QpKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCBjOGQyNmY4NDIyOTA4Y2Y5NGE0YTQyN2NiOTM2OWI2
MWViOTNhNzMyLi5mNzExNWQ5MjY1YmI5YjFmNTI2MTFiOTdhYmQ0ZjgyYWQ3YWNiNGRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTQy
OSw3ICs0MjksNyBAQCBib29sIFJlbmRlclNWR1Jvb3Q6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQogICAgICAgICAgICAgLy8gRklY
TUU6IG5vZGVBdEZsb2F0UG9pbnQoKSBkb2Vzbid0IGhhbmRsZSByZWN0LWJhc2VkIGhpdCB0ZXN0
cyB5ZXQuCiAgICAgICAgICAgICBpZiAoY2hpbGQtPm5vZGVBdEZsb2F0UG9pbnQocmVxdWVzdCwg
cmVzdWx0LCBsb2NhbFBvaW50LCBoaXRUZXN0QWN0aW9uKSkgewogICAgICAgICAgICAgICAgIHVw
ZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBwb2ludEluQm9yZGVyQm94KTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXJlc3VsdC5hZGROb2RlVG9SZWN0QmFzZWRUZXN0UmVzdWx0KGNoaWxkLT5ub2Rl
KCksIGxvY2F0aW9uSW5Db250YWluZXIpKQorICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmFk
ZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1bHQoY2hpbGQtPm5vZGUoKSwgcmVxdWVzdCwgbG9jYXRp
b25JbkNvbnRhaW5lcikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC00NDQsNyArNDQ0LDcgQEAgYm9vbCBSZW5kZXJTVkdSb290
Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3Vs
dCYgcmUKICAgICAgICAgTGF5b3V0UmVjdCBib3VuZHNSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0ICsg
bG9jYXRpb24oKSwgc2l6ZSgpKTsKICAgICAgICAgaWYgKGxvY2F0aW9uSW5Db250YWluZXIuaW50
ZXJzZWN0cyhib3VuZHNSZWN0KSkgewogICAgICAgICAgICAgdXBkYXRlSGl0VGVzdFJlc3VsdChy
ZXN1bHQsIHBvaW50SW5Cb3JkZXJCb3gpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9k
ZVRvUmVjdEJhc2VkVGVzdFJlc3VsdChub2RlKCksIGxvY2F0aW9uSW5Db250YWluZXIsIGJvdW5k
c1JlY3QpKQorICAgICAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2VkVGVzdFJl
c3VsdChub2RlKCksIHJlcXVlc3QsIGxvY2F0aW9uSW5Db250YWluZXIsIGJvdW5kc1JlY3QpKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKaW5kZXggNWFj
ZjQ3ZTkxNDdmYjdhYzUxYTRkNDI5ZDc3YzQyNjBlNmQ1NmEwMC4uNzg2NGQ0ZWU4YTJkMDEwNzk1
ZTA0MDcwODYwZDU3Yjg2ZDgzZDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCkBAIC03MTYsNyArNzE2LDcgQEAgYm9vbCBTVkdJ
bmxpbmVUZXh0Qm94Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwg
SGl0VGVzdFJlc3VsdCYKICAgICAgICAgICAgIEZsb2F0UmVjdCByZWN0KGJveE9yaWdpbiwgc2l6
ZSgpKTsKICAgICAgICAgICAgIGlmIChsb2NhdGlvbkluQ29udGFpbmVyLmludGVyc2VjdHMocmVj
dCkpIHsKICAgICAgICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVIaXRUZXN0UmVzdWx0KHJl
c3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lci5wb2ludCgpIC0gdG9MYXlvdXRTaXplKGFjY3VtdWxh
dGVkT2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJh
c2VkVGVzdFJlc3VsdChyZW5kZXJlcigpLT5ub2RlKCksIGxvY2F0aW9uSW5Db250YWluZXIsIHJl
Y3QpKQorICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RS
ZXN1bHQocmVuZGVyZXIoKS0+bm9kZSgpLCByZXF1ZXN0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBy
ZWN0KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgfQog
ICAgICAgICB9Cg==
</data>
<flag name="review"
          id="172856"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
    <flag name="commit-queue"
          id="172862"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
      

    </bug>

</bugzilla>