<?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>53604</bug_id>
          
          <creation_ts>2011-02-02 10:29:57 -0800</creation_ts>
          <short_desc>A deleted object should never been bound again</short_desc>
          <delta_ts>2011-02-02 14:44:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>344043</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-02 10:29:57 -0800</bug_when>
    <thetext>Currently if a deleted object is called in bind* or useProgram, it will succeed.

Instead, we should always replace the deleted object with null before caching them in the WebGLRenderingContext.

Otherwise, certain functions might crash, for example, generateMipmaps().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344178</commentid>
    <comment_count>1</comment_count>
      <attachid>80959</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-02 13:25:23 -0800</bug_when>
    <thetext>Created attachment 80959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344182</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-02 13:26:13 -0800</bug_when>
    <thetext>Note that I will copy the changes in the test back to khronos once this is reviewed.

Also, this patch solves the crash in generateMipmap().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344203</commentid>
    <comment_count>3</comment_count>
      <attachid>80959</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-02 13:44:40 -0800</bug_when>
    <thetext>Comment on attachment 80959
Patch

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

Looks good overall. Couple of minor nits.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:549
&gt; +bool WebGLRenderingContext::checkToBeBoundObject(WebGLObject* object, bool* deleted)

Use bool&amp; for deleted to match WebKit style and avoid the need for the ASSERT. Also, I think &quot;checkObjectToBeBound&quot; would be more grammatically correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344225</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-02 13:59:23 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 80959 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80959&amp;action=review
&gt; 
&gt; Looks good overall. Couple of minor nits.
&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:549
&gt; &gt; +bool WebGLRenderingContext::checkToBeBoundObject(WebGLObject* object, bool* deleted)
&gt; 
&gt; Use bool&amp; for deleted to match WebKit style and avoid the need for the ASSERT. Also, I think &quot;checkObjectToBeBound&quot; would be more grammatically correct.

Will address these issues for the landing patch.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344242</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-02 14:14:11 -0800</bug_when>
    <thetext>Committed r77417: &lt;http://trac.webkit.org/changeset/77417&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344272</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-02 14:44:11 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/77417 might have broken Qt Windows 32-bit Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80959</attachid>
            <date>2011-02-02 13:25:23 -0800</date>
            <delta_ts>2011-02-02 13:44:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53604-20110202132522.patch</filename>
            <type>text/plain</type>
            <size>20302</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NDA1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDItMDIgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBIGRlbGV0ZWQgb2JqZWN0IHNob3VsZCBuZXZlciBiZWVuIGJvdW5kIGFn
YWluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYw
NAorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y2hlY2tUb0JlQm91bmRPYmpl
Y3QpOiBIZWxwZXIgZnVuY3Rpb24gdG8gYmluZCogYW5kIHVzZVByb2dyYW0uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJpbmRCdWZmZXIpOiBVc2UgY2hlY2tUb0Jl
Qm91bmRPYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmJp
bmRGcmFtZWJ1ZmZlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpiaW5kUmVuZGVyYnVmZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmJpbmRUZXh0dXJlKTogRGl0dG8sIGFsc28gY2hlY2sgdGhlIHRh
cmdldCBtYXRjaGluZy4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
ZGVsZXRlT2JqZWN0KTogSGVscGVyIGZ1bnRpb24gdG8gZGVsZXRlKi4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlQnVmZmVyKTogVXNlIGRlbGV0ZU9iamVj
dC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlRnJhbWVi
dWZmZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6
ZGVsZXRlUHJvZ3JhbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpkZWxldGVSZW5kZXJidWZmZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlU2hhZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVRleHR1cmUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dXNlUHJvZ3JhbSk6IFVzZSBjaGVj
a1RvQmVCb3VuZE9iamVjdC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMVGV4dHVyZTo6Z2V0VGFyZ2V0KTogQWNjZXNzb3IgdG8gY2FjaGVkIHRh
cmdldC4KKwogMjAxMS0wMi0wMiAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIEd0azMgYnVpbGRmaXggYWZ0ZXIgcjc3Mjg2LgpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCShyZXZpc2lvbiA3NzI2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0NiwyMCArNTQ2
LDM0IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpiaW5kQXR0cmliTG8KICAgICBjbGVh
bnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogfQogCitib29sIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Y2hlY2tUb0JlQm91bmRPYmplY3QoV2ViR0xPYmplY3QqIG9iamVjdCwgYm9vbCogZGVs
ZXRlZCkKK3sKKyAgICBBU1NFUlQoZGVsZXRlZCk7CisgICAgKmRlbGV0ZWQgPSBmYWxzZTsKKyAg
ICBpZiAoaXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG9i
amVjdCkgeworICAgICAgICBpZiAob2JqZWN0LT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgICAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9PUEVSQVRJT04pOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgICpkZWxldGVkID0gIW9iamVjdC0+b2JqZWN0KCk7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6YmluZEJ1ZmZlcihHQzNEZW51
bSB0YXJnZXQsIFdlYkdMQnVmZmVyKiBidWZmZXIsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgcmV0
dXJuOwotICAgIGlmIChidWZmZXIgJiYgYnVmZmVyLT5jb250ZXh0KCkgIT0gdGhpcykgewotICAg
ICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX09QRVJBVElPTik7CisgICAgYm9vbCBkZWxldGVkOworICAgIGlmICghY2hlY2tUb0JlQm91
bmRPYmplY3QoYnVmZmVyLCAmZGVsZXRlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9CisgICAg
aWYgKGRlbGV0ZWQpCisgICAgICAgIGJ1ZmZlciA9IDA7CiAgICAgaWYgKGJ1ZmZlciAmJiBidWZm
ZXItPmdldFRhcmdldCgpICYmIGJ1ZmZlci0+Z2V0VGFyZ2V0KCkgIT0gdGFyZ2V0KSB7CiAgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfT1BFUkFUSU9OKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQogICAgIGlmICh0YXJnZXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUikKICAgICAgICAgbV9ib3VuZEFycmF5
QnVmZmVyID0gYnVmZmVyOwogICAgIGVsc2UgaWYgKHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RUxFTUVOVF9BUlJBWV9CVUZGRVIpCkBAIC01NzgsMTIgKzU5MiwxMSBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6YmluZEJ1ZmZlcihHCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dDo6YmluZEZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgV2ViR0xGcmFtZWJ1ZmZlciogYnVm
ZmVyLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwotICAgIGlm
IChpc0NvbnRleHRMb3N0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoYnVmZmVyICYmIGJ1
ZmZlci0+Y29udGV4dCgpICE9IHRoaXMpIHsKLSAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOworICAgIGJvb2wg
ZGVsZXRlZDsKKyAgICBpZiAoIWNoZWNrVG9CZUJvdW5kT2JqZWN0KGJ1ZmZlciwgJmRlbGV0ZWQp
KQogICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmIChkZWxldGVkKQorICAgICAgICBidWZm
ZXIgPSAwOwogICAgIGlmICh0YXJnZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
KSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJldHVybjsKQEAgLTU5OCwxMiArNjExLDExIEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpiaW5kRnJhbWVidWYKIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpiaW5kUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgV2ViR0xSZW5k
ZXJidWZmZXIqIHJlbmRlckJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGVjKTsKLSAgICBpZiAoaXNDb250ZXh0TG9zdCgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKHJlbmRlckJ1ZmZlciAmJiByZW5kZXJCdWZmZXItPmNvbnRleHQoKSAhPSB0aGlzKSB7
Ci0gICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICBib29sIGRlbGV0ZWQ7CisgICAgaWYgKCFjaGVja1Rv
QmVCb3VuZE9iamVjdChyZW5kZXJCdWZmZXIsICZkZWxldGVkKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIH0KKyAgICBpZiAoZGVsZXRlZCkKKyAgICAgICAgcmVuZGVyQnVmZmVyID0gMDsKICAgICBp
ZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpIHsKICAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9F
TlVNKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjE4LDkgKzYzMCwxMiBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6YmluZFJlbmRlcmJ1CiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
YmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBXZWJHTFRleHR1cmUqIHRleHR1cmUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgaWYgKGlzQ29udGV4
dExvc3QoKSkKKyAgICBib29sIGRlbGV0ZWQ7CisgICAgaWYgKCFjaGVja1RvQmVCb3VuZE9iamVj
dCh0ZXh0dXJlLCAmZGVsZXRlZCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAodGV4dHVyZSAm
JiB0ZXh0dXJlLT5jb250ZXh0KCkgIT0gdGhpcykgeworICAgIGlmIChkZWxldGVkKQorICAgICAg
ICB0ZXh0dXJlID0gMDsKKyAgICBpZiAodGV4dHVyZSAmJiB0ZXh0dXJlLT5nZXRUYXJnZXQoKSAm
JiB0ZXh0dXJlLT5nZXRUYXJnZXQoKSAhPSB0YXJnZXQpIHsKICAgICAgICAgbV9jb250ZXh0LT5z
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTA0NywxMyArMTA2MiwyNyBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Y3VsbEZhY2UoR0MzCiAgICAgY2xlYW51cEFmdGVyR3JhcGhpY3ND
YWxsKGZhbHNlKTsKIH0KIAorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZU9iamVj
dChXZWJHTE9iamVjdCogb2JqZWN0KQoreworICAgIGlmIChpc0NvbnRleHRMb3N0KCkgfHwgIW9i
amVjdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChvYmplY3QtPmNvbnRleHQoKSAh
PSB0aGlzKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgICBpZiAob2JqZWN0LT5vYmplY3QoKSkKKyAgICAgICAgb2JqZWN0LT5kZWxldGVPYmpl
Y3QoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmRlbGV0ZUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogewotICAgIGlmIChpc0NvbnRleHRM
b3N0KCkgfHwgIWJ1ZmZlcikKKyAgICBpZiAoIWRlbGV0ZU9iamVjdChidWZmZXIpKQogICAgICAg
ICByZXR1cm47Ci0KLSAgICBidWZmZXItPmRlbGV0ZU9iamVjdCgpOwotCisgICAgaWYgKG1fYm91
bmRBcnJheUJ1ZmZlciA9PSBidWZmZXIpCisgICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IDA7
CisgICAgaWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gYnVmZmVyKQorICAgICAgICBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyID0gMDsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQo
KSkgewogICAgICAgICBWZXJ0ZXhBdHRyaWJTdGF0ZSYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0
YXRlWzBdOwogICAgICAgICBpZiAoYnVmZmVyID09IHN0YXRlLmJ1ZmZlckJpbmRpbmcpIHsKQEAg
LTEwNzEsNTQgKzExMDAsNDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZUJ1
ZmZlcgogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlRnJhbWVidWZmZXIoV2Vi
R0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSB8
fCAhZnJhbWVidWZmZXIpCisgICAgaWYgKCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5n
KSB7CiAgICAgICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nID0gMDsKICAgICAgICAgLy8gSGF2ZSB0
byBjYWxsIGJpbmRGcmFtZWJ1ZmZlciBoZXJlIHRvIGJpbmQgYmFjayB0byBpbnRlcm5hbCBmYm8u
CiAgICAgICAgIG1fY29udGV4dC0+YmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUiwgMCk7CiAgICAgfQotICAgIGZyYW1lYnVmZmVyLT5kZWxldGVPYmplY3QoKTsK
IH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVByb2dyYW0oV2ViR0xQcm9n
cmFtKiBwcm9ncmFtKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0KCkgfHwgIXByb2dyYW0pCi0g
ICAgICAgIHJldHVybjsKLSAgICBpZiAocHJvZ3JhbS0+Y29udGV4dCgpICE9IHRoaXMpIHsKLSAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9PUEVSQVRJT04pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmICghcHJvZ3Jh
bS0+b2JqZWN0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBwcm9ncmFtLT5kZWxldGVPYmplY3Qo
KTsKKyAgICBkZWxldGVPYmplY3QocHJvZ3JhbSk7CisgICAgLy8gV2UgZG9uJ3QgcmVzZXQgbV9j
dXJyZW50UHJvZ3JhbSB0byAwIGhlcmUgYmVjYXVzZSB0aGUgZGVsZXRpb24gb2YgdGhlCisgICAg
Ly8gY3VycmVudCBwcm9ncmFtIGlzIGRlbGF5ZWQuCiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpkZWxldGVSZW5kZXJidWZmZXIoV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlcmJ1ZmZl
cikKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdCgpIHx8ICFyZW5kZXJidWZmZXIpCisgICAgaWYg
KCFkZWxldGVPYmplY3QocmVuZGVyYnVmZmVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChy
ZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZmZXJCaW5kaW5nKQogICAgICAgICBtX3JlbmRlcmJ1
ZmZlckJpbmRpbmcgPSAwOwotICAgIHJlbmRlcmJ1ZmZlci0+ZGVsZXRlT2JqZWN0KCk7CiAgICAg
aWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQogICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+
cmVtb3ZlQXR0YWNobWVudChyZW5kZXJidWZmZXIpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6ZGVsZXRlU2hhZGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiB7Ci0gICAgaWYgKGlz
Q29udGV4dExvc3QoKSB8fCAhc2hhZGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzaGFkZXIt
PmRlbGV0ZU9iamVjdCgpOworICAgIGRlbGV0ZU9iamVjdChzaGFkZXIpOwogfQogCiB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVGV4dHVyZShXZWJHTFRleHR1cmUqIHRleHR1cmUp
CiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3QoKSB8fCAhdGV4dHVyZSkKKyAgICBpZiAoIWRlbGV0
ZU9iamVjdCh0ZXh0dXJlKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgdGV4dHVyZS0+ZGVsZXRl
T2JqZWN0KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3RleHR1cmVVbml0cy5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAodGV4dHVyZSA9PSBtX3RleHR1cmVVbml0c1tpXS5tX3Rl
eHR1cmUyREJpbmRpbmcpCisgICAgICAgICAgICBtX3RleHR1cmVVbml0c1tpXS5tX3RleHR1cmUy
REJpbmRpbmcgPSAwOworICAgICAgICBpZiAodGV4dHVyZSA9PSBtX3RleHR1cmVVbml0c1tpXS5t
X3RleHR1cmVDdWJlTWFwQmluZGluZykKKyAgICAgICAgICAgIG1fdGV4dHVyZVVuaXRzW2ldLm1f
dGV4dHVyZUN1YmVNYXBCaW5kaW5nID0gMDsKKyAgICB9CiAgICAgaWYgKG1fZnJhbWVidWZmZXJC
aW5kaW5nKQogICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+cmVtb3ZlQXR0YWNobWVudCh0
ZXh0dXJlKTsKIH0KQEAgLTM1MjIsMTMgKzM1NDQsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OnVuaWZvcm1NYXRyaQogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnVzZVByb2dy
YW0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBVTlVT
RURfUEFSQU0oZWMpOwotICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCisgICAgYm9vbCBkZWxldGVk
OworICAgIGlmICghY2hlY2tUb0JlQm91bmRPYmplY3QocHJvZ3JhbSwgJmRlbGV0ZWQpKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKHByb2dyYW0gJiYgcHJvZ3JhbS0+Y29udGV4dCgpICE9IHRo
aXMpIHsKLSAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlm
IChwcm9ncmFtICYmIHByb2dyYW0tPm9iamVjdCgpICYmICFwcm9ncmFtLT5nZXRMaW5rU3RhdHVz
KCkpIHsKKyAgICBpZiAoZGVsZXRlZCkKKyAgICAgICAgcHJvZ3JhbSA9IDA7CisgICAgaWYgKHBy
b2dyYW0gJiYgIXByb2dyYW0tPmdldExpbmtTdGF0dXMoKSkgewogICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7
CiAgICAgICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiAgICAgICAgIHJldHVy
bjsKQEAgLTM1MzgsNyArMzU1OSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp1c2VQ
cm9ncmFtKFcKICAgICAgICAgICAgIG1fY3VycmVudFByb2dyYW0tPm9uRGV0YWNoZWQoKTsKICAg
ICAgICAgbV9jdXJyZW50UHJvZ3JhbSA9IHByb2dyYW07CiAgICAgICAgIG1fY29udGV4dC0+dXNl
UHJvZ3JhbShvYmplY3RPclplcm8ocHJvZ3JhbSkpOwotICAgICAgICBpZiAocHJvZ3JhbSAmJiBw
cm9ncmFtLT5vYmplY3QoKSkKKyAgICAgICAgaWYgKHByb2dyYW0pCiAgICAgICAgICAgICBwcm9n
cmFtLT5vbkF0dGFjaGVkKCk7CiAgICAgfQogICAgIGNsZWFudXBBZnRlckdyYXBoaWNzQ2FsbChm
YWxzZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gNzcyNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNTc3LDYg
KzU3NywxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJmdkltcGwoR0MzRHVpbnQg
aW5kZXgsIEZsb2F0MzJBcnJheSosIEdDM0RzaXplaSBleHBlY3RlZFNpemUpOwogICAgIHZvaWQg
dmVydGV4QXR0cmliZnZJbXBsKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQqLCBHQzNEc2l6ZWkg
c2l6ZSwgR0MzRHNpemVpIGV4cGVjdGVkU2l6ZSk7CiAKKyAgICAvLyBIZWxwZXIgZnVuY3Rpb24g
Zm9yIGRlbGV0ZSogKGRlbGV0ZUJ1ZmZlciwgZGVsZXRlUHJvZ3JhbSwgZXRjKSBmdW5jdGlvbnMu
CisgICAgLy8gUmV0dXJuIGZhbHNlIGlmIGNhbGxlciBzaG91bGQgcmV0dXJuIHdpdGhvdXQgZnVy
dGhlciBwcm9jZXNzaW5nLgorICAgIGJvb2wgZGVsZXRlT2JqZWN0KFdlYkdMT2JqZWN0Kik7CisK
KyAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGJpbmQqIChiaW5kQnVmZmVyLCBiaW5kVGV4dHVy
ZSwgZXRjKSBhbmQgdXNlUHJvZ3JhbS4KKyAgICAvLyBJZiB0aGUgb2JqZWN0IGhhcyBhbHJlYWR5
IGJlZW4gZGVsZXRlZCwgc2V0IGRlbGV0ZWQgdG8gdHJ1ZSB1cG9uIHJldHVybi4KKyAgICAvLyBS
ZXR1cm4gZmFsc2UgaWYgY2FsbGVyIHNob3VsZCByZXR1cm4gd2l0aG91dCBmdXJ0aGVyIHByb2Nl
c3NpbmcuCisgICAgYm9vbCBjaGVja1RvQmVCb3VuZE9iamVjdChXZWJHTE9iamVjdCosIGJvb2wq
IGRlbGV0ZWQpOworCiAgICAgLy8gSGVscGVycyBmb3Igc2ltdWxhdGluZyB2ZXJ0ZXhBdHRyaWIw
CiAgICAgdm9pZCBpbml0VmVydGV4QXR0cmliMCgpOwogICAgIGJvb2wgc2ltdWxhdGVWZXJ0ZXhB
dHRyaWIwKEdDM0RzaXplaSBudW1WZXJ0ZXgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xUZXh0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xUZXh0dXJlLmgJKHJldmlzaW9uIDc3MjYxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UGFyYW1ldGVyaShHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCBwYXJhbSk7CiAgICAgdm9pZCBzZXRQYXJhbWV0ZXJmKEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxv
YXQgcGFyYW0pOwogCisgICAgR0MzRGVudW0gZ2V0VGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90
YXJnZXQ7IH0KKwogICAgIGludCBnZXRNaW5GaWx0ZXIoKSBjb25zdCB7IHJldHVybiBtX21pbkZp
bHRlcjsgfQogCiAgICAgdm9pZCBzZXRMZXZlbEluZm8oR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSB0eXBlKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NDA1KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMDItMDIgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGRlbGV0ZWQgb2JqZWN0IHNob3VsZCBu
ZXZlciBiZWVuIGJvdW5kIGFnYWluCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzYwNAorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvb2JqZWN0
LWRlbGV0aW9uLWJlaGF2aW91ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMv
d2ViZ2wvb2JqZWN0LWRlbGV0aW9uLWJlaGF2aW91ci5odG1sOiBBZGQgdGVzdCBjYXNlcyBmb3Ig
b2JqZWN0IGJpbmRpbmcgYW5kIGRlbGV0aW9uLgorCiAyMDExLTAyLTAyICBEaW1pdHJpIEdsYXpr
b3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkZWQgR1BVIGZhaWxzIGZy
b20gYm90cy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29iamVjdC1kZWxl
dGlvbi1iZWhhdmlvdXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL29iamVjdC1kZWxldGlvbi1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA3NzI3OSkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29iamVjdC1k
ZWxldGlvbi1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxOSAr
MjksNTkgQEAgUEFTUyBnbC5pc1NoYWRlcihmcmFnbWVudFNoYWRlcikgaXMgZmFscwogdGV4dHVy
ZSBkZWxldGlvbgogUEFTUyBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibykg
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1MgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSBpcyB0ZXgKIFBBU1MgZ2wuZnJhbWVidWZm
ZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhU
VVJFXzJELCB0ZXgsIDApIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1Jf
QVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpIGlzIHRl
eAogUEFTUyBnbC5kZWxldGVUZXh0dXJlKHRleCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
Ui4KIFBBU1MgZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpF
Q1RfTkFNRSkgaXMgbnVsbAogUEFTUyBnbC5pc1RleHR1cmUodGV4KSBpcyBmYWxzZQorUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSBpcyBudWxsCitQQVNTIGdsLmJp
bmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
Ui4KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlRFWFRVUkVfQklORElOR18yRCkgaXMgbnVsbAor
UEFTUyBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKSB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVS
RV9CSU5ESU5HX0NVQkVfTUFQKSBpcyB0ZXhDdWJlTWFwCitQQVNTIGdsLmRlbGV0ZVRleHR1cmUo
dGV4Q3ViZU1hcCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuaXNUZXh0
dXJlKHRleEN1YmVNYXApIGlzIGZhbHNlCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5URVhUVVJF
X0JJTkRJTkdfQ1VCRV9NQVApIGlzIG51bGwKK1BBU1MgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVS
RV9DVUJFX01BUCwgdGV4Q3ViZU1hcCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlRFWFRVUkVfQklORElOR19DVUJFX01BUCkgaXMgbnVsbAog
CiByZW5kZXJidWZmZXIgZGVsZXRpb24KIFBBU1MgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5E
RVJCVUZGRVIsIHJibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZ2V0
UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUl9CSU5ESU5HKSBpcyByYm8KIFBBU1MgZ2wuZnJhbWVi
dWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBn
bC5SRU5ERVJCVUZGRVIsIHJibykgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KIFBBU1Mg
Z2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5D
T0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSkg
aXMgcmJvCiBQQVNTIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihyYm8pIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IuCiBQQVNTIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfT0JKRUNUX05BTUUpIGlzIG51bGwKIFBBU1MgZ2wuaXNSZW5kZXJidWZmZXIocmJvKSBp
cyBmYWxzZQorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSX0JJTkRJTkcpIGlz
IG51bGwKK1BBU1MgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHJibykgd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFTkRF
UkJVRkZFUl9CSU5ESU5HKSBpcyBudWxsCisKK2J1ZmZlciBkZWxldGlvbgorUEFTUyBnbC5iaW5k
QnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SLgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIGJ1
ZmZlcgorUEFTUyBnbC5kZWxldGVCdWZmZXIoYnVmZmVyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SLgorUEFTUyBnbC5pc0J1ZmZlcihidWZmZXIpIGlzIGZhbHNlCitQQVNTIGdsLmdldFBh
cmFtZXRlcihnbC5BUlJBWV9CVUZGRVJfQklORElORykgaXMgbnVsbAorUEFTUyBnbC5iaW5kQnVm
ZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKSB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
LgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIG51bGwK
K1BBU1MgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgYnVmZmVyRWxlbWVu
dCkgd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuZ2V0UGFyYW1ldGVyKGds
LkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIGJ1ZmZlckVsZW1lbnQKK1BBU1MgZ2wu
ZGVsZXRlQnVmZmVyKGJ1ZmZlckVsZW1lbnQpIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Iu
CitQQVNTIGdsLmlzQnVmZmVyKGJ1ZmZlckVsZW1lbnQpIGlzIGZhbHNlCitQQVNTIGdsLmdldFBh
cmFtZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBudWxsCitQQVNTIGds
LmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGJ1ZmZlckVsZW1lbnQpIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IuCitQQVNTIGdsLmdldFBhcmFtZXRlcihnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBudWxsCisKK2ZyYW1lYnVmZmVyIGRlbGV0aW9uCitQ
QVNTIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SLgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVJfQklO
RElORykgaXMgZmJvCitQQVNTIGdsLmRlbGV0ZUZyYW1lYnVmZmVyKGZibykgd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUi4KK1BBU1MgZ2wuaXNGcmFtZWJ1ZmZlcihmYm8pIGlzIGZhbHNlCitQ
QVNTIGdsLmdldFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUl9CSU5ESU5HKSBpcyBudWxsCitQQVNT
IGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SLgorUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVJfQklORElO
RykgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vYmplY3QtZGVsZXRpb24t
YmVoYXZpb3VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvb2JqZWN0LWRlbGV0aW9uLWJlaGF2aW91ci5odG1sCShyZXZpc2lvbiA3NzI3OSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29iamVjdC1kZWxldGlvbi1iZWhhdmlvdXIuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBzaG91bGRHZW5lcmF0ZUdMRXJyb3Io
Z2wsIGdsLk5PX0VSUk9SLCAiCiAKIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7CiBzaG91
bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4KSIpOworc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJ
TkRJTkdfMkQpIiwgInRleCIpOwogc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJP
UiwgImdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRB
Q0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKSIpOwogc2hvdWxkQmUoImdsLmdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNI
TUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpIiwgInRleCIpOwog
c2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmRlbGV0ZVRleHR1cmUo
dGV4KSIpOwpAQCAtNjAsMTIgKzYxLDI1IEBAIHNob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICIKIC8vIGRldGFjaGluZyB0aGUgdGV4dHVlIGZyb20gZmJvIGZpcnN0LCB0aGVu
IGRlbGV0ZSB0aGUgdGV4dHVyZS4KIHNob3VsZEJlTnVsbCgiZ2wuZ2V0RnJhbWVidWZmZXJBdHRh
Y2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wu
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRSkiKTsKIHNob3VsZEJlRmFsc2UoImds
LmlzVGV4dHVyZSh0ZXgpIik7CitzaG91bGRCZU51bGwoImdsLmdldFBhcmFtZXRlcihnbC5URVhU
VVJFX0JJTkRJTkdfMkQpIik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9S
LCAiZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KSIpOworc2hvdWxkQmVOdWxsKCJn
bC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HXzJEKSIpOworCit2YXIgdGV4Q3ViZU1h
cCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9f
RVJST1IsICJnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFwKSIp
Oworc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5URVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAp
IiwgInRleEN1YmVNYXAiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1Is
ICJnbC5kZWxldGVUZXh0dXJlKHRleEN1YmVNYXApIik7CitzaG91bGRCZUZhbHNlKCJnbC5pc1Rl
eHR1cmUodGV4Q3ViZU1hcCkiKTsKK3Nob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlRF
WFRVUkVfQklORElOR19DVUJFX01BUCkiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wu
Tk9fRVJST1IsICJnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFX0NVQkVfTUFQLCB0ZXhDdWJlTWFw
KSIpOworc2hvdWxkQmVOdWxsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuVEVYVFVSRV9CSU5ESU5HX0NV
QkVfTUFQKSIpOwogCiBkZWJ1ZygiIik7CiBkZWJ1ZygicmVuZGVyYnVmZmVyIGRlbGV0aW9uIik7
CiAKIHZhciByYm8gPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKIHNob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZF
UiwgcmJvKSIpOworc2hvdWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVJfQklO
RElORykiLCAicmJvIik7CiBzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAi
Z2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFD
SE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIHJibykiKTsKIHNob3VsZEJlKCJnbC5nZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1F
TlQwLCBnbC5GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FKSIsICJyYm8iKTsKIHNo
b3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kZWxldGVSZW5kZXJidWZm
ZXIocmJvKSIpOwpAQCAtNzMsNiArODcsNDEgQEAgc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBn
bC5OT19FUlJPUiwgIgogLy8gZGV0YWNoaW5nIHRoZSByZW5kZXJidWZmZXIgZnJvbSBmYm8gZmly
c3QsIHRoZW4gZGVsZXRlIHRoZSByZW5kZXJidWZmZXIuCiBzaG91bGRCZU51bGwoImdsLmdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRU
QUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUpIik7CiBzaG91
bGRCZUZhbHNlKCJnbC5pc1JlbmRlcmJ1ZmZlcihyYm8pIik7CitzaG91bGRCZU51bGwoImdsLmdl
dFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVJfQklORElORykiKTsKK3Nob3VsZEdlbmVyYXRlR0xF
cnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZF
UiwgcmJvKSIpOworc2hvdWxkQmVOdWxsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
X0JJTkRJTkcpIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJidWZmZXIgZGVsZXRpb24iKTsKKwor
dmFyIGJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGds
LCBnbC5OT19FUlJPUiwgImdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBidWZmZXIpIik7
CitzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkFSUkFZX0JVRkZFUl9CSU5ESU5HKSIsICJi
dWZmZXIiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kZWxl
dGVCdWZmZXIoYnVmZmVyKSIpOworc2hvdWxkQmVGYWxzZSgiZ2wuaXNCdWZmZXIoYnVmZmVyKSIp
Oworc2hvdWxkQmVOdWxsKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkcp
Iik7CitzaG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEJ1ZmZl
cihnbC5BUlJBWV9CVUZGRVIsIGJ1ZmZlcikiKTsKK3Nob3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1l
dGVyKGdsLkFSUkFZX0JVRkZFUl9CSU5ESU5HKSIpOworCit2YXIgYnVmZmVyRWxlbWVudCA9IGds
LmNyZWF0ZUJ1ZmZlcigpOworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5OT19FUlJPUiwg
ImdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGJ1ZmZlckVsZW1lbnQpIik7
CitzaG91bGRCZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJ
TkcpIiwgImJ1ZmZlckVsZW1lbnQiKTsKK3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9f
RVJST1IsICJnbC5kZWxldGVCdWZmZXIoYnVmZmVyRWxlbWVudCkiKTsKK3Nob3VsZEJlRmFsc2Uo
ImdsLmlzQnVmZmVyKGJ1ZmZlckVsZW1lbnQpIik7CitzaG91bGRCZU51bGwoImdsLmdldFBhcmFt
ZXRlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSIpOworc2hvdWxkR2VuZXJhdGVH
TEVycm9yKGdsLCBnbC5OT19FUlJPUiwgImdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9C
VUZGRVIsIGJ1ZmZlckVsZW1lbnQpIik7CitzaG91bGRCZU51bGwoImdsLmdldFBhcmFtZXRlcihn
bC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSIpOworCitkZWJ1ZygiIik7CitkZWJ1Zygi
ZnJhbWVidWZmZXIgZGVsZXRpb24iKTsKKworc2hvdWxkR2VuZXJhdGVHTEVycm9yKGdsLCBnbC5O
T19FUlJPUiwgImdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKSIpOworc2hv
dWxkQmUoImdsLmdldFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUl9CSU5ESU5HKSIsICJmYm8iKTsK
K3Nob3VsZEdlbmVyYXRlR0xFcnJvcihnbCwgZ2wuTk9fRVJST1IsICJnbC5kZWxldGVGcmFtZWJ1
ZmZlcihmYm8pIik7CitzaG91bGRCZUZhbHNlKCJnbC5pc0ZyYW1lYnVmZmVyKGZibykiKTsKK3No
b3VsZEJlTnVsbCgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSX0JJTkRJTkcpIik7Citz
aG91bGRHZW5lcmF0ZUdMRXJyb3IoZ2wsIGdsLk5PX0VSUk9SLCAiZ2wuYmluZEZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBmYm8pIik7CitzaG91bGRCZU51bGwoImdsLmdldFBhcmFtZXRlcihn
bC5GUkFNRUJVRkZFUl9CSU5ESU5HKSIpOwogCiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwog
PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="72479"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>