<?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>231985</bug_id>
          
          <creation_ts>2021-10-19 14:45:02 -0700</creation_ts>
          <short_desc>Do GraphicsContext and EventRegion clipping-related save/restore via RAII objects</short_desc>
          <delta_ts>2021-10-22 08:51:14 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806328</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-19 14:45:02 -0700</bug_when>
    <thetext>Do GrpahicsContext and EventRegion clipping-related save/restore via RAII objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806329</commentid>
    <comment_count>1</comment_count>
      <attachid>441802</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-19 14:47:07 -0700</bug_when>
    <thetext>Created attachment 441802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806493</commentid>
    <comment_count>2</comment_count>
      <attachid>441802</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-19 21:39:19 -0700</bug_when>
    <thetext>Comment on attachment 441802
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:3846
&gt; +        GraphicsContextStateSaver stateSaver(context, false);
&gt; +        EventRegionContextStateSaver eventRegionStateSaver(localPaintingInfo.eventRegionContext);

This seems bit error-prone. Maybe we should have another class (ClipStateSaver?) that owns both of these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807693</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-22 08:50:29 -0700</bug_when>
    <thetext>Committed r284684 (243404@main): &lt;https://commits.webkit.org/243404@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441802.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807694</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-22 08:51:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/84550921&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441802</attachid>
            <date>2021-10-19 14:47:07 -0700</date>
            <delta_ts>2021-10-22 08:50:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231985-20211019144706.patch</filename>
            <type>text/plain</type>
            <size>23884</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMjhiZjBhZDA2Zjc3
MjcyMWZjYzBjNmVhNmI5YmVkZjlhMjRlMy4uYzgxNzA0OTAwNTYzNDYwZmFkNmFhNWI2MmEyMmE2
MmEwOTUwY2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTE5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvIEdycGFoaWNz
Q29udGV4dCBhbmQgRXZlbnRSZWdpb24gY2xpcHBpbmctcmVsYXRlZCBzYXZlL3Jlc3RvcmUgdmlh
IFJBSUkgb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxOTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIGFsbCBidXQgb25lIG9mIHRoZSBiYXJlIGNvbnRleHQuc2F2ZSgpIGNhbGxz
IGluIFJlbmRlckxheWVyIGJ5IHBhc3NpbmcgYQorICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHRvIGNsaXBUb1JlY3QoKSBhbmQgc2V0dXBDbGlwUGF0aCgpLgorCisgICAgICAgIEFs
c28gcGFzcyBhIEV2ZW50UmVnaW9uQ29udGV4dFN0YXRlU2F2ZXIgZm9yIHRoZSBlcXVpdmFsZW50
IHNhdmUvcmVzdG9yZSBvbiBFdmVudFJlZ2lvbkNvbnRleHQuCisKKyAgICAgICAgVGhpcyBhbGxv
d3MgdXMgdG8gcmVtb3ZlIHJlc3RvcmVDbGlwKCkgZW50aXJlbHkuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvRXZlbnRSZWdpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UmVnaW9uQ29udGV4
dFN0YXRlU2F2ZXI6OkV2ZW50UmVnaW9uQ29udGV4dFN0YXRlU2F2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZlcjo6fkV2ZW50UmVnaW9uQ29udGV4dFN0
YXRlU2F2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZl
cjo6cHVzaENsaXApOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRSZWdpb25Db250ZXh0U3RhdGVT
YXZlcjo6Y29udGV4dCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjbGlwVG9SZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyV2l0aEVmZmVjdHMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldHVwQ2xpcFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmFwcGx5RmlsdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6cGFpbnRMYXllckNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpw
YWludFRyYW5zZm9ybWVkTGF5ZXJJbnRvRnJhZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpwYWludEJhY2tncm91bmRGb3JGcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzV2l0aFBoYXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludE91dGxpbmVGb3JGcmFnbWVu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TWFza0ZvckZyYWdtZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRDaGlsZENsaXBwaW5nTWFz
a0ZvckZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPdmVy
Zmxvd0NvbnRyb2xzRm9yRnJhZ21lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpyZXN0b3JlQ2xpcCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisKIDIwMjEtMTAtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVncmVzc2lvbihyMjg0MzM2KTogWyBpT1MgMTUgXSBzeXN0ZW0tcHJldmll
dy9iYWRnZS5odG1sIGlzIGltYWdlIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FdmVudFJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50
UmVnaW9uLmgKaW5kZXggNzI5OGI5YTU5Zjg1MzU3NDRlMzc2ZDkxOTYzMTllOGJlN2JiOTBmNS4u
OTk2ZTRiNWRiNjIyM2VhOTgwYjRlYTc2YzNmY2ZjYmU1YjllM2VjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V2ZW50UmVnaW9uLmgKQEAgLTU2LDYgKzU2LDM3IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPEludFJlY3Q+IG1fY2xpcFN0YWNrOwogfTsKIAorY2xhc3MgRXZlbnRSZWdpb25Db250
ZXh0U3RhdGVTYXZlciB7CitwdWJsaWM6CisgICAgRXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZl
cihFdmVudFJlZ2lvbkNvbnRleHQqIGNvbnRleHQpCisgICAgICAgIDogbV9jb250ZXh0KGNvbnRl
eHQpCisgICAgeworICAgIH0KKyAgICAKKyAgICB+RXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZl
cigpCisgICAgeworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBpZiAobV9wdXNoZWRDbGlwKQorICAgICAgICAgICAgbV9jb250ZXh0LT5wb3BD
bGlwKCk7CisgICAgfQorICAgIAorICAgIHZvaWQgcHVzaENsaXAoY29uc3QgSW50UmVjdCYgY2xp
cFJlY3QpCisgICAgeworICAgICAgICBBU1NFUlQoIW1fcHVzaGVkQ2xpcCk7CisgICAgICAgIGlm
IChtX2NvbnRleHQpCisgICAgICAgICAgICBtX2NvbnRleHQtPnB1c2hDbGlwKGNsaXBSZWN0KTsK
KyAgICAgICAgbV9wdXNoZWRDbGlwID0gdHJ1ZTsKKyAgICB9CisKKyAgICBFdmVudFJlZ2lvbkNv
bnRleHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KKworcHJpdmF0ZToK
KyAgICBFdmVudFJlZ2lvbkNvbnRleHQqIG1fY29udGV4dDsKKyAgICBib29sIG1fcHVzaGVkQ2xp
cCB7IGZhbHNlIH07Cit9OworCiBjbGFzcyBFdmVudFJlZ2lvbiB7CiBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgRXZlbnRSZWdpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IDExZTNhZWI0YjIwZTY2NzdiZTE1ZjBlYzZmMjQ3MGY3MWI0NGI5N2Iu
LjEyNzk4ZDY0YmIzZDg3OWYyZGZlMjZiZmY5MDcwODQ1ZWRhMmFjMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjkwNSwyMSArMjkwNSwxOSBAQCB2b2lk
IFJlbmRlckxheWVyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91
dFJlY3QmIGRhbWFnZVJlY3QsCiAgICAgICAgIHdpZGdldC0+c2V0T3ZlcmxhcFRlc3RSZXN1bHQo
ZmFsc2UpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpjbGlwVG9SZWN0KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgT3B0aW9u
U2V0PFBhaW50QmVoYXZpb3I+IHBhaW50QmVoYXZpb3IsIGNvbnN0IENsaXBSZWN0JiBjbGlwUmVj
dCwgQm9yZGVyUmFkaXVzQ2xpcHBpbmdSdWxlIHJ1bGUpCit2b2lkIFJlbmRlckxheWVyOjpjbGlw
VG9SZWN0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciYgc3RhdGVTYXZlciwgRXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZlciYgZXZlbnRSZWdpb25T
dGF0ZVNhdmVyLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYgcGFpbnRpbmdJbmZvLCBPcHRpb25T
ZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvciwgY29uc3QgQ2xpcFJlY3QmIGNsaXBSZWN0
LCBCb3JkZXJSYWRpdXNDbGlwcGluZ1J1bGUgcnVsZSkKIHsKICAgICBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvciA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwogICAg
IGJvb2wgbmVlZHNDbGlwcGluZyA9ICFjbGlwUmVjdC5pc0luZmluaXRlKCkgJiYgY2xpcFJlY3Qu
cmVjdCgpICE9IHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdDsKICAgICBpZiAobmVlZHNDbGlw
cGluZyB8fCBjbGlwUmVjdC5hZmZlY3RlZEJ5UmFkaXVzKCkpCi0gICAgICAgIGNvbnRleHQuc2F2
ZSgpOworICAgICAgICBzdGF0ZVNhdmVyLnNhdmUoKTsKIAogICAgIGlmIChuZWVkc0NsaXBwaW5n
KSB7CiAgICAgICAgIExheW91dFJlY3QgYWRqdXN0ZWRDbGlwUmVjdCA9IGNsaXBSZWN0LnJlY3Qo
KTsKICAgICAgICAgYWRqdXN0ZWRDbGlwUmVjdC5tb3ZlKHBhaW50aW5nSW5mby5zdWJwaXhlbE9m
ZnNldCk7CiAgICAgICAgIGF1dG8gc25hcHBlZENsaXBSZWN0ID0gc25hcFJlY3RUb0RldmljZVBp
eGVscyhhZGp1c3RlZENsaXBSZWN0LCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgICAgIGNvbnRl
eHQuY2xpcChzbmFwcGVkQ2xpcFJlY3QpOwotCi0gICAgICAgIGlmIChwYWludGluZ0luZm8uZXZl
bnRSZWdpb25Db250ZXh0KQotICAgICAgICAgICAgcGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29u
dGV4dC0+cHVzaENsaXAoZW5jbG9zaW5nSW50UmVjdChzbmFwcGVkQ2xpcFJlY3QpKTsKKyAgICAg
ICAgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLnB1c2hDbGlwKGVuY2xvc2luZ0ludFJlY3Qoc25hcHBl
ZENsaXBSZWN0KSk7CiAgICAgfQogCiAgICAgaWYgKGNsaXBSZWN0LmFmZmVjdGVkQnlSYWRpdXMo
KSkgewpAQCAtMjk0NiwxNiArMjk0NCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNsaXBUb1JlY3Qo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYKICAgICB9
CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnJlc3RvcmVDbGlwKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5nSW5mbywgY29uc3QgQ2xpcFJl
Y3QmIGNsaXBSZWN0KQotewotICAgIGJvb2wgbmVlZHNDbGlwcGluZyA9ICFjbGlwUmVjdC5pc0lu
ZmluaXRlKCkgJiYgY2xpcFJlY3QucmVjdCgpICE9IHBhaW50aW5nSW5mby5wYWludERpcnR5UmVj
dDsKLSAgICBpZiAobmVlZHNDbGlwcGluZyB8fCBjbGlwUmVjdC5hZmZlY3RlZEJ5UmFkaXVzKCkp
Ci0gICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwotCi0gICAgaWYgKG5lZWRzQ2xpcHBpbmcgJiYg
cGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCkKLSAgICAgICAgcGFpbnRpbmdJbmZvLmV2
ZW50UmVnaW9uQ29udGV4dC0+cG9wQ2xpcCgpOwotfQotCiBzdGF0aWMgdm9pZCBwZXJmb3JtT3Zl
cmxhcFRlc3RzKE92ZXJsYXBUZXN0UmVxdWVzdE1hcCYgb3ZlcmxhcFRlc3RSZXF1ZXN0cywgY29u
c3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyKQogewog
ICAgIGlmIChvdmVybGFwVGVzdFJlcXVlc3RzLmlzRW1wdHkoKSkKQEAgLTMwNzIsNiArMzA2MCw4
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJXaXRoRWZmZWN0cyhHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpCiAKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBw
YXJlbnQncyBjbGlwIHJlY3RzIGhhdmUgYmVlbiBjYWxjdWxhdGVkLgogICAgICAgICBDbGlwUmVj
dCBjbGlwUmVjdCA9IHBhaW50aW5nSW5mby5wYWludERpcnR5UmVjdDsKKyAgICAgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQsIGZhbHNlKTsKKyAgICAgICAg
RXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZlciBldmVudFJlZ2lvblN0YXRlU2F2ZXIocGFpbnRp
bmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCk7CiAgICAgICAgIGlmIChwYXJlbnQoKSkgewogICAg
ICAgICAgICAgQ2xpcFJlY3RzQ29udGV4dCBjbGlwUmVjdHNDb250ZXh0KHBhaW50aW5nSW5mby5y
b290TGF5ZXIsIChwYWludEZsYWdzICYgUGFpbnRMYXllckZsYWc6OlRlbXBvcmFyeUNsaXBSZWN0
cykgPyBUZW1wb3JhcnlDbGlwUmVjdHMgOiBQYWludGluZ0NsaXBSZWN0cywKICAgICAgICAgICAg
ICAgICBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwgKHBhaW50RmxhZ3MgJiBQYWludExheWVy
RmxhZzo6UGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzKSA/IElnbm9yZU92ZXJmbG93Q2xpcCA6IFJl
c3BlY3RPdmVyZmxvd0NsaXApOwpAQCAtMzA4MywxNSArMzA3MywxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjpwYWludExheWVyV2l0aEVmZmVjdHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBMYXllclBhaQogICAgICAgICAgICAgICAgIHBhaW50QmVoYXZpb3IuYWRkKFBhaW50QmVoYXZp
b3I6OkNvbXBvc2l0ZWRPdmVyZmxvd1Njcm9sbENvbnRlbnQpOwogCiAgICAgICAgICAgICAvLyBQ
dXNoIHRoZSBwYXJlbnQgY29vcmRpbmF0ZSBzcGFjZSdzIGNsaXAuCi0gICAgICAgICAgICBwYXJl
bnQoKS0+Y2xpcFRvUmVjdChjb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50QmVoYXZpb3IsIGNs
aXBSZWN0KTsKKyAgICAgICAgICAgIHBhcmVudCgpLT5jbGlwVG9SZWN0KGNvbnRleHQsIHN0YXRl
U2F2ZXIsIGV2ZW50UmVnaW9uU3RhdGVTYXZlciwgcGFpbnRpbmdJbmZvLCBwYWludEJlaGF2aW9y
LCBjbGlwUmVjdCk7CiAgICAgICAgIH0KIAogICAgICAgICBwYWludExheWVyQnlBcHBseWluZ1Ry
YW5zZm9ybShjb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwotCi0gICAgICAgIC8v
IFJlc3RvcmUgdGhlIGNsaXAuCi0gICAgICAgIGlmIChwYXJlbnQoKSkKLSAgICAgICAgICAgIHBh
cmVudCgpLT5yZXN0b3JlQ2xpcChjb250ZXh0LCBwYWludGluZ0luZm8sIGNsaXBSZWN0KTsKLQog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtMzE3MiwxNCArMzE1NywxNCBAQCBzdGQ6
OnBhaXI8UGF0aCwgV2luZFJ1bGU+IFJlbmRlckxheWVyOjpjb21wdXRlQ2xpcFBhdGgoY29uc3Qg
TGF5b3V0U2l6ZSYgb2Zmc2V0RgogICAgIHJldHVybiB7IFBhdGgoKSwgV2luZFJ1bGU6Ok5vblpl
cm8gfTsKIH0KIAotYm9vbCBSZW5kZXJMYXllcjo6c2V0dXBDbGlwUGF0aChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBwYWludGluZ0luZm8sIGNvbnN0
IExheW91dFNpemUmIG9mZnNldEZyb21Sb290KQordm9pZCBSZW5kZXJMYXllcjo6c2V0dXBDbGlw
UGF0aChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIm
IHN0YXRlU2F2ZXIsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBwYWludGluZ0luZm8sIGNvbnN0
IExheW91dFNpemUmIG9mZnNldEZyb21Sb290KQogewogICAgIGlmICghcmVuZGVyZXIoKS5oYXND
bGlwUGF0aCgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8IHBhaW50aW5nSW5mby5w
YWludERpcnR5UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gU1ZHIGVsZW1lbnRzIGdldCBjbGlwcGVkIGluIFNWRyBjb2RlLgog
ICAgIGlmIChpczxSZW5kZXJTVkdSb290PihyZW5kZXJlcigpKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGNsaXBwZWRDb250ZW50Qm91bmRzID0g
Y2FsY3VsYXRlTGF5ZXJCb3VuZHMocGFpbnRpbmdJbmZvLnJvb3RMYXllciwgb2Zmc2V0RnJvbVJv
b3QsIHsgVXNlTG9jYWxDbGlwUmVjdElmUG9zc2libGUgfSk7CiAKQEAgLTMxODksOSArMzE3NCw4
IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNldHVwQ2xpcFBhdGgoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mCiAgICAgaWYgKGlzPFNoYXBlQ2xpcFBhdGhPcGVy
YXRpb24+KCpzdHlsZS5jbGlwUGF0aCgpKSB8fCAoaXM8Qm94Q2xpcFBhdGhPcGVyYXRpb24+KCpz
dHlsZS5jbGlwUGF0aCgpKSAmJiBpczxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpKSkgewogICAgICAg
ICAvLyBjbGlwcGVkQ29udGVudEJvdW5kcyBpcyB1c2VkIGFzIHRoZSByZWZlcmVuY2UgYm94IGZv
ciBpbmxpbmVzLCB3aGljaCBpcyBhbHNvIHBvb3JseSBzcGVjaWZpZWQ6IGh0dHBzOi8vZ2l0aHVi
LmNvbS93M2MvY3Nzd2ctZHJhZnRzL2lzc3Vlcy82MzgzLgogICAgICAgICBhdXRvIFtwYXRoLCB3
aW5kUnVsZV0gPSBjb21wdXRlQ2xpcFBhdGgocGFpbnRpbmdPZmZzZXRGcm9tUm9vdCwgY2xpcHBl
ZENvbnRlbnRCb3VuZHMpOwotICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgc3RhdGVT
YXZlci5zYXZlKCk7CiAgICAgICAgIGNvbnRleHQuY2xpcFBhdGgocGF0aCwgd2luZFJ1bGUpOwot
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoaXM8UmVmZXJlbmNlQ2xpcFBh
dGhPcGVyYXRpb24+KHN0eWxlLmNsaXBQYXRoKCkpKSB7CkBAIC0zMjA2LDE2ICszMTkwLDEzIEBA
IGJvb2wgUmVuZGVyTGF5ZXI6OnNldHVwQ2xpcFBhdGgoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBMYXllclBhaW50aW5nSW5mCiAgICAgICAgICAgICBhdXRvIHNuYXBwZWRDbGlwcGlu
Z0JvdW5kcyA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoY2xpcHBlZENvbnRlbnRCb3VuZHMsIHJl
bmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICAgICAgICAgIHNu
YXBwZWRDbGlwcGluZ0JvdW5kcy5tb3ZlQnkoLW9mZnNldCk7CiAKLSAgICAgICAgICAgIGNvbnRl
eHQuc2F2ZSgpOworICAgICAgICAgICAgc3RhdGVTYXZlci5zYXZlKCk7CiAgICAgICAgICAgICBj
b250ZXh0LnRyYW5zbGF0ZShvZmZzZXQpOwogICAgICAgICAgICAgRmxvYXRSZWN0IGNsaXBQYXRo
UmVmZXJlbmNlQm94IHsgeyB9LCByZWZlcmVuY2VCb3guc2l6ZSgpIH07CiAgICAgICAgICAgICBj
bGlwcGVyUmVuZGVyZXItPmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoY29udGV4dCwgcmVuZGVyZXIo
KSwgY2xpcFBhdGhSZWZlcmVuY2VCb3gsIHNuYXBwZWRDbGlwcGluZ0JvdW5kcywgcmVuZGVyZXIo
KS5zdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CiAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0
ZSgtb2Zmc2V0KTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQot
Ci0gICAgcmV0dXJuIGZhbHNlOwogfQogCiBSZW5kZXJMYXllckZpbHRlcnMqIFJlbmRlckxheWVy
OjpmaWx0ZXJzRm9yUGFpbnRpbmcoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBPcHRpb25TZXQ8
UGFpbnRMYXllckZsYWc+IHBhaW50RmxhZ3MpIGNvbnN0CkBAIC0zMjY2LDkgKzMyNDcsMTIgQEAg
dm9pZCBSZW5kZXJMYXllcjo6YXBwbHlGaWx0ZXJzKEdyYXBoaWNzQ29udGV4dCYgb3JpZ2luYWxD
b250ZXh0LCBjb25zdCBMYXllclBhaW4KIHsKICAgICAvLyBGSVhNRTogSGFuZGxlIG1vcmUgdGhh
biBvbmUgZnJhZ21lbnQuCiAgICAgQ2xpcFJlY3QgYmFja2dyb3VuZFJlY3QgPSBsYXllckZyYWdt
ZW50cy5pc0VtcHR5KCkgPyBDbGlwUmVjdCgpIDogbGF5ZXJGcmFnbWVudHNbMF0uYmFja2dyb3Vu
ZFJlY3Q7Ci0gICAgY2xpcFRvUmVjdChvcmlnaW5hbENvbnRleHQsIHBhaW50aW5nSW5mbywgYmVo
YXZpb3IsIGJhY2tncm91bmRSZWN0KTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihvcmlnaW5hbENvbnRleHQsIGZhbHNlKTsKKyAgICBFdmVudFJlZ2lvbkNvbnRl
eHRTdGF0ZVNhdmVyIGV2ZW50UmVnaW9uU3RhdGVTYXZlcihwYWludGluZ0luZm8uZXZlbnRSZWdp
b25Db250ZXh0KTsKKworICAgIGNsaXBUb1JlY3Qob3JpZ2luYWxDb250ZXh0LCBzdGF0ZVNhdmVy
LCBldmVudFJlZ2lvblN0YXRlU2F2ZXIsIHBhaW50aW5nSW5mbywgYmVoYXZpb3IsIGJhY2tncm91
bmRSZWN0KTsKICAgICBtX2ZpbHRlcnMtPmFwcGx5RmlsdGVyRWZmZWN0KG9yaWdpbmFsQ29udGV4
dCk7Ci0gICAgcmVzdG9yZUNsaXAob3JpZ2luYWxDb250ZXh0LCBwYWludGluZ0luZm8sIGJhY2tn
cm91bmRSZWN0KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mIHBhaW50aW5n
SW5mbywgT3B0aW9uU2V0PFBhaW50TGF5ZXJGbGFnPiBwYWludEZsYWdzKQpAQCAtMzMyNyw5ICsz
MzExLDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGkKICAgICBpZiAocmVuZGVyZXIoKS5lbmNs
b3NpbmdGcmFnbWVudGVkRmxvdygpICYmIChyZW5kZXJlcigpLmhhc0NsaXBQYXRoKCkgfHwgZmls
dGVyc0ZvclBhaW50aW5nKGNvbnRleHQsIHBhaW50RmxhZ3MpKSkKICAgICAgICAgY29sdW1uQXdh
cmVPZmZzZXRGcm9tUm9vdCA9IHRvTGF5b3V0U2l6ZShjb252ZXJ0VG9MYXllckNvb3JkcyhwYWlu
dGluZ0luZm8ucm9vdExheWVyLCBMYXlvdXRQb2ludCgpLCBBZGp1c3RGb3JDb2x1bW5zKSk7CiAK
LSAgICBib29sIGhhc0NsaXBQYXRoID0gZmFsc2U7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKGNvbnRleHQsIGZhbHNlKTsKICAgICBpZiAoc2hvdWxkQXBwbHlDbGlw
UGF0aChwYWludGluZ0luZm8ucGFpbnRCZWhhdmlvciwgbG9jYWxQYWludEZsYWdzKSkKLSAgICAg
ICAgaGFzQ2xpcFBhdGggPSBzZXR1cENsaXBQYXRoKGNvbnRleHQsIHBhaW50aW5nSW5mbywgY29s
dW1uQXdhcmVPZmZzZXRGcm9tUm9vdCk7CisgICAgICAgIHNldHVwQ2xpcFBhdGgoY29udGV4dCwg
c3RhdGVTYXZlciwgcGFpbnRpbmdJbmZvLCBjb2x1bW5Bd2FyZU9mZnNldEZyb21Sb290KTsKIAog
ICAgIGJvb2wgc2VsZWN0aW9uQW5kQmFja2dyb3VuZHNPbmx5ID0gcGFpbnRpbmdJbmZvLnBhaW50
QmVoYXZpb3IuY29udGFpbnMoUGFpbnRCZWhhdmlvcjo6U2VsZWN0aW9uQW5kQmFja2dyb3VuZHNP
bmx5KTsKICAgICBib29sIHNlbGVjdGlvbk9ubHkgPSBwYWludGluZ0luZm8ucGFpbnRCZWhhdmlv
ci5jb250YWlucyhQYWludEJlaGF2aW9yOjpTZWxlY3Rpb25Pbmx5KTsKQEAgLTM0ODAsOSArMzQ2
NCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpCiAgICAgLy8gUmUtc2V0IHRoaXMgdG8gd2hh
dGV2ZXIgaXQgd2FzIGJlZm9yZSB3ZSBwYWludGVkIHRoZSBsYXllci4KICAgICBpZiAobmVlZFRv
QWRqdXN0U3VicGl4ZWxRdWFudGl6YXRpb24pCiAgICAgICAgIGNvbnRleHQuc2V0U2hvdWxkU3Vi
cGl4ZWxRdWFudGl6ZUZvbnRzKGRpZFF1YW50aXplRm9udHMpOwotCi0gICAgaWYgKGhhc0NsaXBQ
YXRoKQotICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRMYXllckJ5QXBwbHlpbmdUcmFuc2Zvcm0oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBMYXllclBhaW50aW5nSW5mbyYgcGFpbnRpbmdJbmZvLCBPcHRpb25TZXQ8UGFpbnRMYXll
ckZsYWc+IHBhaW50RmxhZ3MsIGNvbnN0IExheW91dFNpemUmIHRyYW5zbGF0aW9uT2Zmc2V0KQpA
QCAtMzczMyw5ICszNzE0LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50VHJhbnNmb3JtZWRM
YXllckludG9GcmFnbWVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjCiAgICAgICAgIGlm
IChwYWludEZsYWdzLmNvbnRhaW5zKFBhaW50TGF5ZXJGbGFnOjpQYWludGluZ092ZXJmbG93Q29u
dGVudHMpKQogICAgICAgICAgICAgcGFpbnRCZWhhdmlvci5hZGQoUGFpbnRCZWhhdmlvcjo6Q29t
cG9zaXRlZE92ZXJmbG93U2Nyb2xsQ29udGVudCk7CiAKLSAgICAgICAgcGFyZW50KCktPmNsaXBU
b1JlY3QoY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEJlaGF2aW9yLCBjbGlwUmVjdCk7Cisg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0LCBmYWxz
ZSk7CisgICAgICAgIEV2ZW50UmVnaW9uQ29udGV4dFN0YXRlU2F2ZXIgZXZlbnRSZWdpb25TdGF0
ZVNhdmVyKHBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQpOworCisgICAgICAgIHBhcmVu
dCgpLT5jbGlwVG9SZWN0KGNvbnRleHQsIHN0YXRlU2F2ZXIsIGV2ZW50UmVnaW9uU3RhdGVTYXZl
ciwgcGFpbnRpbmdJbmZvLCBwYWludEJlaGF2aW9yLCBjbGlwUmVjdCk7CiAgICAgICAgIHBhaW50
TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKGNvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFn
cywgZnJhZ21lbnQucGFnaW5hdGlvbk9mZnNldCk7Ci0gICAgICAgIHBhcmVudCgpLT5yZXN0b3Jl
Q2xpcChjb250ZXh0LCBwYWludGluZ0luZm8sIGNsaXBSZWN0KTsKICAgICB9CiB9CiAKQEAgLTM3
NTEsMTkgKzM3MzQsMTkgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRCYWNrZ3JvdW5kRm9yRnJh
Z21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZyYWdtZW4KICAgICAgICAgaWYgKGhh
dmVUcmFuc3BhcmVuY3kpCiAgICAgICAgICAgICBiZWdpblRyYW5zcGFyZW5jeUxheWVycyhjb250
ZXh0Rm9yVHJhbnNwYXJlbmN5TGF5ZXIsIGxvY2FsUGFpbnRpbmdJbmZvLCB0cmFuc3BhcmVuY3lQ
YWludERpcnR5UmVjdCk7CiAgICAgCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihjb250ZXh0LCBmYWxzZSk7CisgICAgICAgIEV2ZW50UmVnaW9uQ29udGV4dFN0
YXRlU2F2ZXIgZXZlbnRSZWdpb25TdGF0ZVNhdmVyKGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50UmVn
aW9uQ29udGV4dCk7CisKICAgICAgICAgaWYgKGxvY2FsUGFpbnRpbmdJbmZvLmNsaXBUb0RpcnR5
UmVjdCkgewogICAgICAgICAgICAgLy8gUGFpbnQgb3VyIGJhY2tncm91bmQgZmlyc3QsIGJlZm9y
ZSBwYWludGluZyBhbnkgY2hpbGQgbGF5ZXJzLgogICAgICAgICAgICAgLy8gRXN0YWJsaXNoIHRo
ZSBjbGlwIHVzZWQgdG8gcGFpbnQgb3VyIGJhY2tncm91bmQuCi0gICAgICAgICAgICBjbGlwVG9S
ZWN0KGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBwYWludEJlaGF2aW9yLCBmcmFnbWVudC5i
YWNrZ3JvdW5kUmVjdCwgRG9Ob3RJbmNsdWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIEJhY2tn
cm91bmQgcGFpbnRpbmcgd2lsbCBoYW5kbGUgY2xpcHBpbmcgdG8gc2VsZi4KKyAgICAgICAgICAg
IGNsaXBUb1JlY3QoY29udGV4dCwgc3RhdGVTYXZlciwgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBs
b2NhbFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3Qs
IERvTm90SW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOyAvLyBCYWNrZ3JvdW5kIHBhaW50aW5n
IHdpbGwgaGFuZGxlIGNsaXBwaW5nIHRvIHNlbGYuCiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIC8vIFBhaW50IHRoZSBiYWNrZ3JvdW5kLgogICAgICAgICAvLyBGSVhNRTogRXZlbnR1YWxs
eSB3ZSB3aWxsIGNvbGxlY3QgdGhlIHJlZ2lvbiBmcm9tIHRoZSBmcmFnbWVudCBpdHNlbGYgaW5z
dGVhZCBvZiBqdXN0IGZyb20gdGhlIHBhaW50IGluZm8uCiAgICAgICAgIFBhaW50SW5mbyBwYWlu
dEluZm8oY29udGV4dCwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVjdCgpLCBQYWludFBoYXNl
OjpCbG9ja0JhY2tncm91bmQsIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5k
ZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVu
ZGVyZXIoKSwgdGhpcyk7CiAgICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xh
eW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2Nh
dGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKLQotICAgICAgICBp
ZiAobG9jYWxQYWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0KQotICAgICAgICAgICAgcmVzdG9y
ZUNsaXAoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIGZyYWdtZW50LmJhY2tncm91bmRSZWN0
KTsKICAgICB9CiB9CiAKQEAgLTM4MDIsMTMgKzM3ODUsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiBsYXllckZy
YWdtZW4KICAgICBpZiAobG9jYWxQYWludGluZ0luZm8ucGFpbnRCZWhhdmlvciAmIFBhaW50QmVo
YXZpb3I6OkNvbXBvc2l0ZWRPdmVyZmxvd1Njcm9sbENvbnRlbnQpCiAgICAgICAgIGxvY2FsUGFp
bnRCZWhhdmlvci5hZGQoUGFpbnRCZWhhdmlvcjo6Q29tcG9zaXRlZE92ZXJmbG93U2Nyb2xsQ29u
dGVudCk7CiAKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4
dCwgZmFsc2UpOworICAgIEV2ZW50UmVnaW9uQ29udGV4dFN0YXRlU2F2ZXIgZXZlbnRSZWdpb25T
dGF0ZVNhdmVyKGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCk7CisKICAgICAv
LyBPcHRpbWl6ZSBjbGlwcGluZyBmb3IgdGhlIHNpbmdsZSBmcmFnbWVudCBjYXNlLgogICAgIGJv
b2wgc2hvdWxkQ2xpcCA9IGxvY2FsUGFpbnRpbmdJbmZvLmNsaXBUb0RpcnR5UmVjdCAmJiBsYXll
ckZyYWdtZW50cy5zaXplKCkgPT0gMSAmJiBsYXllckZyYWdtZW50c1swXS5zaG91bGRQYWludENv
bnRlbnQgJiYgIWxheWVyRnJhZ21lbnRzWzBdLmZvcmVncm91bmRSZWN0LmlzRW1wdHkoKTsKLSAg
ICBDbGlwUmVjdCBjbGlwcGVkUmVjdDsKLSAgICBpZiAoc2hvdWxkQ2xpcCkgewotICAgICAgICBj
bGlwcGVkUmVjdCA9IGxheWVyRnJhZ21lbnRzWzBdLmZvcmVncm91bmRSZWN0OwotICAgICAgICBj
bGlwVG9SZWN0KGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50QmVoYXZpb3Is
IGNsaXBwZWRSZWN0KTsKLSAgICB9CisgICAgaWYgKHNob3VsZENsaXApCisgICAgICAgIGNsaXBU
b1JlY3QoY29udGV4dCwgc3RhdGVTYXZlciwgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBsb2NhbFBh
aW50aW5nSW5mbywgbG9jYWxQYWludEJlaGF2aW9yLCBsYXllckZyYWdtZW50c1swXS5mb3JlZ3Jv
dW5kUmVjdCk7CiAgICAgCiAgICAgLy8gV2UgaGF2ZSB0byBsb29wIHRocm91Z2ggZXZlcnkgZnJh
Z21lbnQgbXVsdGlwbGUgdGltZXMsIHNpbmNlIHdlIGhhdmUgdG8gcmVwYWludCBpbiBlYWNoIHNw
ZWNpZmljIHBoYXNlIGluIG9yZGVyIGZvcgogICAgIC8vIGludGVybGVhdmluZyBvZiB0aGUgZnJh
Z21lbnRzIHRvIHdvcmsgcHJvcGVybHkuCkBAIC0zODI1LDkgKzM4MDgsNiBAQCB2b2lkIFJlbmRl
ckxheWVyOjpwYWludEZvcmVncm91bmRGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMm
IGxheWVyRnJhZ21lbgogICAgICAgICBwYWludEZvcmVncm91bmRGb3JGcmFnbWVudHNXaXRoUGhh
c2UoUGFpbnRQaGFzZTo6Rm9yZWdyb3VuZCwgbGF5ZXJGcmFnbWVudHMsIGNvbnRleHQsIGxvY2Fs
UGFpbnRpbmdJbmZvLCBsb2NhbFBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5k
ZXJlcik7CiAgICAgICAgIHBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQYWlu
dFBoYXNlOjpDaGlsZE91dGxpbmVzLCBsYXllckZyYWdtZW50cywgY29udGV4dCwgbG9jYWxQYWlu
dGluZ0luZm8sIGxvY2FsUGFpbnRCZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdEZvclJlbmRlcmVy
KTsKICAgICB9Ci0gICAgCi0gICAgaWYgKHNob3VsZENsaXApCi0gICAgICAgIHJlc3RvcmVDbGlw
KGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBjbGlwcGVkUmVjdCk7CiB9CiAKIHZvaWQgUmVu
ZGVyTGF5ZXI6OnBhaW50Rm9yZWdyb3VuZEZvckZyYWdtZW50c1dpdGhQaGFzZShQYWludFBoYXNl
IHBoYXNlLCBjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwKQEAgLTM4MzgsMTcgKzM4MTgsMTcgQEAgdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRGb3JlZ3JvdW5kRm9yRnJhZ21lbnRzV2l0aFBoYXNlKFBhaW50UGhhc2UgcGhhc2UsIGNv
bnN0IEwKICAgICBmb3IgKGNvbnN0IGF1dG8mIGZyYWdtZW50IDogbGF5ZXJGcmFnbWVudHMpIHsK
ICAgICAgICAgaWYgKCFmcmFnbWVudC5zaG91bGRQYWludENvbnRlbnQgfHwgZnJhZ21lbnQuZm9y
ZWdyb3VuZFJlY3QuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAor
CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0LCBm
YWxzZSk7CisgICAgICAgIEV2ZW50UmVnaW9uQ29udGV4dFN0YXRlU2F2ZXIgZXZlbnRSZWdpb25T
dGF0ZVNhdmVyKGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCk7CisKICAgICAg
ICAgaWYgKHNob3VsZENsaXApCi0gICAgICAgICAgICBjbGlwVG9SZWN0KGNvbnRleHQsIGxvY2Fs
UGFpbnRpbmdJbmZvLCBwYWludEJlaGF2aW9yLCBmcmFnbWVudC5mb3JlZ3JvdW5kUmVjdCk7Cisg
ICAgICAgICAgICBjbGlwVG9SZWN0KGNvbnRleHQsIHN0YXRlU2F2ZXIsIGV2ZW50UmVnaW9uU3Rh
dGVTYXZlciwgbG9jYWxQYWludGluZ0luZm8sIHBhaW50QmVoYXZpb3IsIGZyYWdtZW50LmZvcmVn
cm91bmRSZWN0KTsKICAgICAKICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBm
cmFnbWVudC5mb3JlZ3JvdW5kUmVjdC5yZWN0KCksIHBoYXNlLCBwYWludEJlaGF2aW9yLCBzdWJ0
cmVlUGFpbnRSb290Rm9yUmVuZGVyZXIsIG51bGxwdHIsIG51bGxwdHIsICZsb2NhbFBhaW50aW5n
SW5mby5yb290TGF5ZXItPnJlbmRlcmVyKCksIHRoaXMsIGxvY2FsUGFpbnRpbmdJbmZvLnJlcXVp
cmVTZWN1cml0eU9yaWdpbkFjY2Vzc0ZvcldpZGdldHMpOwogICAgICAgICBpZiAocGhhc2UgPT0g
UGFpbnRQaGFzZTo6Rm9yZWdyb3VuZCkKICAgICAgICAgICAgIHBhaW50SW5mby5vdmVybGFwVGVz
dFJlcXVlc3RzID0gbG9jYWxQYWludGluZ0luZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0czsKICAgICAg
ICAgcmVuZGVyZXIoKS5wYWludChwYWludEluZm8sIHRvTGF5b3V0UG9pbnQoZnJhZ21lbnQubGF5
ZXJCb3VuZHMubG9jYXRpb24oKSAtIHJlbmRlckJveExvY2F0aW9uKCkgKyBsb2NhbFBhaW50aW5n
SW5mby5zdWJwaXhlbE9mZnNldCkpOwotICAgICAgICAKLSAgICAgICAgaWYgKHNob3VsZENsaXAp
Ci0gICAgICAgICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgZnJh
Z21lbnQuZm9yZWdyb3VuZFJlY3QpOwogICAgIH0KIH0KIApAQCAtMzg2MSw5ICszODQxLDEyIEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3V0bGluZUZvckZyYWdtZW50cyhjb25zdCBMYXllckZy
YWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsCiAgICAgCiAgICAgICAgIC8vIFBhaW50IG91ciBvd24g
b3V0bGluZQogICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQsIGZyYWdtZW50LmJh
Y2tncm91bmRSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZTo6U2VsZk91dGxpbmUsIHBhaW50QmVoYXZp
b3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5kZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2Fs
UGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVuZGVyZXIoKSwgdGhpcyk7Ci0gICAgICAgIGNsaXBU
b1JlY3QoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIHBhaW50QmVoYXZpb3IsIGZyYWdtZW50
LmJhY2tncm91bmRSZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKKworICAg
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCwgZmFsc2Up
OworICAgICAgICBFdmVudFJlZ2lvbkNvbnRleHRTdGF0ZVNhdmVyIGV2ZW50UmVnaW9uU3RhdGVT
YXZlcihsb2NhbFBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQpOworCisgICAgICAgIGNs
aXBUb1JlY3QoY29udGV4dCwgc3RhdGVTYXZlciwgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBsb2Nh
bFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QsIERv
Tm90SW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOwogICAgICAgICByZW5kZXJlcigpLnBhaW50
KHBhaW50SW5mbywgdG9MYXlvdXRQb2ludChmcmFnbWVudC5sYXllckJvdW5kcy5sb2NhdGlvbigp
IC0gcmVuZGVyQm94TG9jYXRpb24oKSArIGxvY2FsUGFpbnRpbmdJbmZvLnN1YnBpeGVsT2Zmc2V0
KSk7Ci0gICAgICAgIHJlc3RvcmVDbGlwKGNvbnRleHQsIGxvY2FsUGFpbnRpbmdJbmZvLCBmcmFn
bWVudC5iYWNrZ3JvdW5kUmVjdCk7CiAgICAgfQogfQogCkBAIC0zODc0LDE2ICszODU3LDE2IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TWFza0ZvckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdt
ZW50cyYgbGF5ZXJGcmFnbWVudHMsIEdyCiAgICAgICAgIGlmICghZnJhZ21lbnQuc2hvdWxkUGFp
bnRDb250ZW50KQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQsIGZhbHNlKTsKKyAgICAgICAgRXZlbnRS
ZWdpb25Db250ZXh0U3RhdGVTYXZlciBldmVudFJlZ2lvblN0YXRlU2F2ZXIobG9jYWxQYWludGlu
Z0luZm8uZXZlbnRSZWdpb25Db250ZXh0KTsKKwogICAgICAgICBpZiAobG9jYWxQYWludGluZ0lu
Zm8uY2xpcFRvRGlydHlSZWN0KQotICAgICAgICAgICAgY2xpcFRvUmVjdChjb250ZXh0LCBsb2Nh
bFBhaW50aW5nSW5mbywgcGFpbnRCZWhhdmlvciwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QsIERv
Tm90SW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOyAvLyBNYXNrIHBhaW50aW5nIHdpbGwgaGFu
ZGxlIGNsaXBwaW5nIHRvIHNlbGYuCisgICAgICAgICAgICBjbGlwVG9SZWN0KGNvbnRleHQsIHN0
YXRlU2F2ZXIsIGV2ZW50UmVnaW9uU3RhdGVTYXZlciwgbG9jYWxQYWludGluZ0luZm8sIHBhaW50
QmVoYXZpb3IsIGZyYWdtZW50LmJhY2tncm91bmRSZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9y
ZGVyUmFkaXVzKTsgLy8gTWFzayBwYWludGluZyB3aWxsIGhhbmRsZSBjbGlwcGluZyB0byBzZWxm
LgogICAgICAgICAKICAgICAgICAgLy8gUGFpbnQgdGhlIG1hc2suCiAgICAgICAgIC8vIEZJWE1F
OiBFdmVudHVhbGx5IHdlIHdpbGwgY29sbGVjdCB0aGUgcmVnaW9uIGZyb20gdGhlIGZyYWdtZW50
IGl0c2VsZiBpbnN0ZWFkIG9mIGp1c3QgZnJvbSB0aGUgcGFpbnQgaW5mby4KICAgICAgICAgUGFp
bnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBmcmFnbWVudC5iYWNrZ3JvdW5kUmVjdC5yZWN0KCks
IFBhaW50UGhhc2U6Ok1hc2ssIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWludFJvb3RGb3JSZW5k
ZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZvLnJvb3RMYXllci0+cmVu
ZGVyZXIoKSwgdGhpcyk7CiAgICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFpbnRJbmZvLCB0b0xh
eW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2Nh
dGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsKLSAgICAgICAgCi0g
ICAgICAgIGlmIChsb2NhbFBhaW50aW5nSW5mby5jbGlwVG9EaXJ0eVJlY3QpCi0gICAgICAgICAg
ICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5mbywgZnJhZ21lbnQuYmFja2dy
b3VuZFJlY3QpOwogICAgIH0KIH0KIApAQCAtMzg5MywxNSArMzg3NiwxNSBAQCB2b2lkIFJlbmRl
ckxheWVyOjpwYWludENoaWxkQ2xpcHBpbmdNYXNrRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJh
Z21lbnRzJiBsYXllcgogICAgICAgICBpZiAoIWZyYWdtZW50LnNob3VsZFBhaW50Q29udGVudCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0LCBmYWxzZSk7CisgICAgICAgIEV2ZW50UmVnaW9uQ29udGV4
dFN0YXRlU2F2ZXIgZXZlbnRSZWdpb25TdGF0ZVNhdmVyKGxvY2FsUGFpbnRpbmdJbmZvLmV2ZW50
UmVnaW9uQ29udGV4dCk7CisKICAgICAgICAgaWYgKGxvY2FsUGFpbnRpbmdJbmZvLmNsaXBUb0Rp
cnR5UmVjdCkKLSAgICAgICAgICAgIGNsaXBUb1JlY3QoY29udGV4dCwgbG9jYWxQYWludGluZ0lu
Zm8sIHBhaW50QmVoYXZpb3IsIGZyYWdtZW50LmZvcmVncm91bmRSZWN0LCBJbmNsdWRlU2VsZkZv
ckJvcmRlclJhZGl1cyk7IC8vIENoaWxkIGNsaXBwaW5nIG1hc2sgcGFpbnRpbmcgd2lsbCBoYW5k
bGUgY2xpcHBpbmcgdG8gc2VsZi4KKyAgICAgICAgICAgIGNsaXBUb1JlY3QoY29udGV4dCwgc3Rh
dGVTYXZlciwgZXZlbnRSZWdpb25TdGF0ZVNhdmVyLCBsb2NhbFBhaW50aW5nSW5mbywgcGFpbnRC
ZWhhdmlvciwgZnJhZ21lbnQuZm9yZWdyb3VuZFJlY3QsIEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFk
aXVzKTsgLy8gQ2hpbGQgY2xpcHBpbmcgbWFzayBwYWludGluZyB3aWxsIGhhbmRsZSBjbGlwcGlu
ZyB0byBzZWxmLgogCiAgICAgICAgIC8vIFBhaW50IHRoZSBjbGlwcGVkIG1hc2suCiAgICAgICAg
IFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QucmVj
dCgpLCBQYWludFBoYXNlOjpDbGlwcGluZ01hc2ssIHBhaW50QmVoYXZpb3IsIHN1YnRyZWVQYWlu
dFJvb3RGb3JSZW5kZXJlciwgbnVsbHB0ciwgbnVsbHB0ciwgJmxvY2FsUGFpbnRpbmdJbmZvLnJv
b3RMYXllci0+cmVuZGVyZXIoKSwgdGhpcyk7CiAgICAgICAgIHJlbmRlcmVyKCkucGFpbnQocGFp
bnRJbmZvLCB0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSBy
ZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKTsK
LQotICAgICAgICBpZiAobG9jYWxQYWludGluZ0luZm8uY2xpcFRvRGlydHlSZWN0KQotICAgICAg
ICAgICAgcmVzdG9yZUNsaXAoY29udGV4dCwgbG9jYWxQYWludGluZ0luZm8sIGZyYWdtZW50LmZv
cmVncm91bmRSZWN0KTsKICAgICB9CiB9CiAKQEAgLTM5MTIsMTAgKzM4OTUsMTIgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6cGFpbnRPdmVyZmxvd0NvbnRyb2xzRm9yRnJhZ21lbnRzKGNvbnN0IExheWVy
RnJhZ21lbnRzJiBsYXllckYKICAgICBmb3IgKGNvbnN0IGF1dG8mIGZyYWdtZW50IDogbGF5ZXJG
cmFnbWVudHMpIHsKICAgICAgICAgaWYgKGZyYWdtZW50LmJhY2tncm91bmRSZWN0LmlzRW1wdHko
KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBjbGlwVG9SZWN0KGNvbnRleHQsIGxv
Y2FsUGFpbnRpbmdJbmZvLCB7IH0sIGZyYWdtZW50LmJhY2tncm91bmRSZWN0KTsKLSAgICAgICAg
bV9zY3JvbGxhYmxlQXJlYS0+cGFpbnRPdmVyZmxvd0NvbnRyb2xzKGNvbnRleHQsIHJvdW5kZWRJ
bnRQb2ludCh0b0xheW91dFBvaW50KGZyYWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSBy
ZW5kZXJCb3hMb2NhdGlvbigpICsgbG9jYWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKSwK
LSAgICAgICAgICAgIHNuYXBwZWRJbnRSZWN0KGZyYWdtZW50LmJhY2tncm91bmRSZWN0LnJlY3Qo
KSksIHRydWUpOwotICAgICAgICByZXN0b3JlQ2xpcChjb250ZXh0LCBsb2NhbFBhaW50aW5nSW5m
bywgZnJhZ21lbnQuYmFja2dyb3VuZFJlY3QpOworCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0LCBmYWxzZSk7CisgICAgICAgIEV2ZW50UmVnaW9u
Q29udGV4dFN0YXRlU2F2ZXIgZXZlbnRSZWdpb25TdGF0ZVNhdmVyKGxvY2FsUGFpbnRpbmdJbmZv
LmV2ZW50UmVnaW9uQ29udGV4dCk7CisKKyAgICAgICAgY2xpcFRvUmVjdChjb250ZXh0LCBzdGF0
ZVNhdmVyLCBldmVudFJlZ2lvblN0YXRlU2F2ZXIsIGxvY2FsUGFpbnRpbmdJbmZvLCB7IH0sIGZy
YWdtZW50LmJhY2tncm91bmRSZWN0KTsKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS0+cGFpbnRP
dmVyZmxvd0NvbnRyb2xzKGNvbnRleHQsIHJvdW5kZWRJbnRQb2ludCh0b0xheW91dFBvaW50KGZy
YWdtZW50LmxheWVyQm91bmRzLmxvY2F0aW9uKCkgLSByZW5kZXJCb3hMb2NhdGlvbigpICsgbG9j
YWxQYWludGluZ0luZm8uc3VicGl4ZWxPZmZzZXQpKSwgc25hcHBlZEludFJlY3QoZnJhZ21lbnQu
YmFja2dyb3VuZFJlY3QucmVjdCgpKSwgdHJ1ZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDU4YjdhMTZhN2E5Zjc4NTE2ZGI2MzhkOWRhNzA3
ZGM5YmYxMzJkYTUuLmViOTY3YjUzOWQwMmM2MGZiNDE1ZGQ4M2JmMjYzNzMzYWUxMTNjZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MzAsOCArOTMwLDcgQEAg
cHJpdmF0ZToKIAogICAgIExheW91dFJlY3QgY2xpcFJlY3RSZWxhdGl2ZVRvQW5jZXN0b3IoUmVu
ZGVyTGF5ZXIqIGFuY2VzdG9yLCBMYXlvdXRTaXplIG9mZnNldEZyb21BbmNlc3RvciwgY29uc3Qg
TGF5b3V0UmVjdCYgY29uc3RyYWluaW5nUmVjdCkgY29uc3Q7CiAKLSAgICB2b2lkIGNsaXBUb1Jl
Y3QoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBPcHRpb25TZXQ8
UGFpbnRCZWhhdmlvcj4sIGNvbnN0IENsaXBSZWN0JiwgQm9yZGVyUmFkaXVzQ2xpcHBpbmdSdWxl
ID0gSW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOwotICAgIHZvaWQgcmVzdG9yZUNsaXAoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBjb25zdCBDbGlwUmVjdCYp
OworICAgIHZvaWQgY2xpcFRvUmVjdChHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyJiwgRXZlbnRSZWdpb25Db250ZXh0U3RhdGVTYXZlciYsIGNvbnN0IExheWVyUGFp
bnRpbmdJbmZvJiwgT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+LCBjb25zdCBDbGlwUmVjdCYsIEJv
cmRlclJhZGl1c0NsaXBwaW5nUnVsZSA9IEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKIAog
ICAgIGJvb2wgc2hvdWxkUmVwYWludEFmdGVyTGF5b3V0KCkgY29uc3Q7CiAKQEAgLTk3MCw3ICs5
NjksNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjpwYWlyPFBhdGgsIFdpbmRSdWxlPiBjb21wdXRl
Q2xpcFBhdGgoY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3QsIGNvbnN0IExheW91dFJl
Y3QmIHJvb3RSZWxhdGl2ZUJvdW5kc0Zvck5vbkJveGVzKSBjb25zdDsKIAotICAgIGJvb2wgc2V0
dXBDbGlwUGF0aChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXllclBhaW50aW5nSW5mbyYsIGNv
bnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290KTsKKyAgICB2b2lkIHNldHVwQ2xpcFBhdGgo
R3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciYsIGNvbnN0IExheWVy
UGFpbnRpbmdJbmZvJiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3QpOwogCiAgICAg
dm9pZCBlbnN1cmVMYXllckZpbHRlcnMoKTsKICAgICB2b2lkIGNsZWFyTGF5ZXJGaWx0ZXJzKCk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>