<?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>219583</bug_id>
          
          <creation_ts>2020-12-06 11:37:30 -0800</creation_ts>
          <short_desc>[LFC Display] Keep track of the painted bounds of StackingItems</short_desc>
          <delta_ts>2020-12-07 08:15:18 -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>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>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>1712342</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-06 11:37:30 -0800</bug_when>
    <thetext>[LFC Display] Keep track of the painted bounds of StackingItems</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712345</commentid>
    <comment_count>1</comment_count>
      <attachid>415520</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-06 11:43:40 -0800</bug_when>
    <thetext>Created attachment 415520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712347</commentid>
    <comment_count>2</comment_count>
      <attachid>415521</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-06 11:59:59 -0800</bug_when>
    <thetext>Created attachment 415521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712456</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-07 08:14:32 -0800</bug_when>
    <thetext>Committed r270504: &lt;https://trac.webkit.org/changeset/270504&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415521.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712457</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-07 08:15:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/72047681&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415520</attachid>
            <date>2020-12-06 11:43:40 -0800</date>
            <delta_ts>2020-12-06 12:01:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219583-20201206114340.patch</filename>
            <type>text/plain</type>
            <size>18412</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ2ZTkyMGZlMzA0NmY1
MzU4MGVjZmIzNjYxMDJkMjNjZmVkNGU5NS4uYTA5NWRmMWU5MWIyZjA1ZmVkMWYzNTVkNTRhYjk5
ZDhmMDFjYWU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTEyLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gS2VlcCB0cmFjayBvZiB0aGUgcGFpbnRlZCBib3VuZHMgb2YgU3RhY2tpbmdJdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NTgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlzcGxheTo6U3Rh
Y2tpbmdJdGVtcyB3aWxsIG5lZWQgdG8ga25vdyB0aGVpciBwYWludGVkIGJvdW5kcyBmb3IgdmFy
aW91cyByZWFzb25zIGxpa2UKKyAgICAgICAgdHJhbnNwYXJlbmN5IGxheWVyIGV4dGVudCwgY29t
cG9zaXRlZCBsYXllciBib3VuZHMsIHJlcGFpbnQgZXRjLiBXZSBjYW4gY29tcHV0ZSB0aGlzIGNo
ZWFwbHkKKyAgICAgICAgYXQgdHJlZSBidWlsZGluZyB0aW1lLiBJbiBmYWN0LCB0d28gYm91bmRz
IGFyZSB1c2VmdWw6IGZpcnN0LCB0aGUgYm91bmRzIG9mIHRoZSBpbi1mbG93CisgICAgICAgIGNv
bnRlbnQgb2YgdGhhdCBzdGFja2luZyBpdGVtLCBhbmQgc2Vjb25kIHRoZSBib3VuZHMgb2YgdGhh
dCBzdGFja2luZyBpdGVtIGFuZCBhbGwgaXRzCisgICAgICAgIHN0YWNraW5nIGRlc2NlbmRhbnRz
LgorCisgICAgICAgIFdlIGRvbid0IGhhdmUgYSBnb29kIHdheSB0byBrbm93IHRoZSBwYWludGVk
IGV4dGVudCBvZiBhIERpc3BsYXk6OkJveCB5ZXQsIHNvIGp1c3QgdXNlIGl0cworICAgICAgICBi
b3VuZHMgYXMgYSBwcm94eS4gQm94TW9kZWxCb3ggZXh0ZW5kcyB0aGlzIGJ5IGxvb2tpbmcgYXQg
Ym94LXNoYWRvdyBzdHlsZS4KKworICAgICAgICBXaGlsZSBidWlsZGluZyB0aGUgZGlzcGxheSB0
cmVlLCBrZWVwIHRyYWNrIG9mIHR3byBleHRlbnRzIHJlY3RhbmdsZXM6CisgICAgICAgICAgLSBj
dXJyZW50U3RhY2tpbmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQgc3RhcnRzIHdpdGggdGhlIGJv
dW5kcyBvZiB0aGUgc3RhY2sgaXRlbSdzIGJveCwKKyAgICAgICAgYW5kIGlzIHVuaW9uZWQgd2l0
aCB0aGUgYm91bmRzIG9mIGFsbCB0aGUgaW4tZmxvdyBjb250ZW50IGZvciB0aGF0IHN0YWNraW5n
IGl0ZW0gYXMgd2UKKyAgICAgICAgYnVpbGQgdGhlIHRyZWUgZG93bndhcmRzLgorICAgICAgICAg
IC0gY3VycmVudFN0YWNraW5nSXRlbVBhaW50aW5nRXh0ZW50IHN0YXJ0cyBlbXB0eSwgYW5kIGFj
Y3VtdWxhdGVzIHRoZSB1bmlvbiBvZiBhbGwKKyAgICAgICAgdGhlIGRlc2NlbmRhbnQgc3RhY2tp
bmcgaXRlbXMnIHBhaW50aW5nIGV4dGVudCBpbiBwb3N0LW9yZGVyIHRyYXZlcnNhbCBhcyB3ZSBw
b3AKKyAgICAgICAgc3RhY2tpbmcgaXRlbXMgb2ZmIHRoZSBjdXJyZW50U3RhdGUgc3RhY2suCisK
KyAgICAgICAgKiBkaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCdWlsZGluZ1N0YXRlOjppbkZsb3dDb250YWluaW5nQmxvY2tCb3ggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmJ1aWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpwdXNoU3RhdGVGb3JCb3hEZXNj
ZW5kYW50cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpUcmVlQnVpbGRlcjo6cG9wU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmFjY291bnRGb3JC
b3hQYWludGluZ0V4dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpUcmVlQnVpbGRl
cjo6Y3VycmVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVy
Ojpwb3NpdGlvbmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1
aWxkZXI6Omluc2VydEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVC
dWlsZGVyOjpidWlsZElubGluZURpc3BsYXlUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXk6Om91dHB1dFN0YWNraW5nVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpUcmVl
QnVpbGRlcjo6Y3VycmVudFN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpwb3NpdGlvbmluZ0NvbnRleHQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmg6CisgICAgICAgICogZGlz
cGxheS9jc3MvRGlzcGxheUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojph
YnNvbHV0ZVBhaW50aW5nRXh0ZW50IGNvbnN0KToKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNw
bGF5Qm94TW9kZWxCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94TW9kZWxC
b3g6OmFic29sdXRlUGFpbnRpbmdFeHRlbnQgY29uc3QpOgorICAgICAgICAqIGRpc3BsYXkvY3Nz
L0Rpc3BsYXlCb3hNb2RlbEJveC5oOgorICAgICAgICAqIGRpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQ
YWludGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OmFwcGx5RWZmZWN0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpDU1NQYWludGVyOjpwYWludEF0b21pY2FsbHlQYWlu
dGVkQm94KToKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5U3RhY2tpbmdJdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpTdGFja2luZ0l0ZW06OnBhaW50ZWRDb250ZW50Qm91
bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlN0YWNraW5nSXRlbTo6cGFp
bnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpTdGFja2luZ0l0ZW06OnNldFBhaW50ZWRDb250ZW50Qm91bmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlN0YWNraW5nSXRlbTo6c2V0UGFpbnRlZEJvdW5kc0lu
Y2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyk6CisKIDIwMjAtMTItMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQyBEaXNwbGF5XSBNb3ZlIGJvcmRl
ciByYWRpaSB0byBCb3hSYXJlR2VvbWV0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rp
c3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlz
cGxheVRyZWVCdWlsZGVyLmNwcAppbmRleCBmNDgwNTA2Zjk2OWIwYmMxYmYxN2UzZjIxMDU5MWEx
MDljMGQ1YmUyLi43NTY3YjcxOWFjOTg4MGRiNjgxMjBjODU2ZmQ0MGQ4NTJkNDAwNTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCkBAIC05OCw4
ICs5OCwxNCBAQCBwcml2YXRlOgogfTsKIAogc3RydWN0IEJ1aWxkaW5nU3RhdGUgeworICAgIGNv
bnN0IENvbnRhaW5lckJveCYgaW5GbG93Q29udGFpbmluZ0Jsb2NrQm94KCkgY29uc3QgeyByZXR1
cm4gcG9zaXRpb25pbmdDb250ZXh0LmluRmxvd0NvbnRhaW5pbmdCbG9ja0NvbnRleHQoKS5ib3g7
IH0KKwogICAgIFBvc2l0aW9uaW5nQ29udGV4dCBwb3NpdGlvbmluZ0NvbnRleHQ7CisgICAgU3Rh
Y2tpbmdJdGVtJiBjdXJyZW50U3RhY2tpbmdJdGVtOwogICAgIFN0YWNraW5nSXRlbSYgY3VycmVu
dFN0YWNraW5nQ29udGV4dEl0ZW07CisKKyAgICBBYnNvbHV0ZUZsb2F0UmVjdCBjdXJyZW50U3Rh
Y2tpbmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQ7CisgICAgQWJzb2x1dGVGbG9hdFJlY3QgY3Vy
cmVudFN0YWNraW5nSXRlbVBhaW50aW5nRXh0ZW50OwogfTsKIAogVHJlZUJ1aWxkZXI6OlRyZWVC
dWlsZGVyKGZsb2F0IHBpeGVsU25hcHBpbmdGYWN0b3IpCkBAIC0xMzEsNyArMTM3LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFRyZWU+IFRyZWVCdWlsZGVyOjpidWlsZChjb25zdCBMYXlvdXQ6OkxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSkKIAogICAgIGlmIChyb290TGF5b3V0Qm94LmZpcnN0Q2hpbGQo
KSkgewogICAgICAgICBhdXRvJiByb290Q29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFpbmVy
Qm94Pihyb290U3RhY2tpbmdJdGVtLT5ib3goKSk7Ci0gICAgICAgIG1fc3RhdGVTdGFjay0+YXBw
ZW5kKHsgcm9vdENvbnRhaW5lckJveCwgKnJvb3RTdGFja2luZ0l0ZW0gfSk7CisgICAgICAgIG1f
c3RhdGVTdGFjay0+YXBwZW5kKHsgcm9vdENvbnRhaW5lckJveCwgKnJvb3RTdGFja2luZ0l0ZW0s
ICpyb290U3RhY2tpbmdJdGVtIH0pOwogICAgICAgICByZWN1cnNpdmVCdWlsZERpc3BsYXlUcmVl
KGxheW91dFN0YXRlLCAqcm9vdExheW91dEJveC5maXJzdENoaWxkKCksIGluc2VydGlvblBvc2l0
aW9uKTsKICAgICB9CiAKQEAgLTE0NCwyNyArMTUwLDg5IEBAIHN0ZDo6dW5pcXVlX3B0cjxUcmVl
PiBUcmVlQnVpbGRlcjo6YnVpbGQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUpCiB2b2lkIFRyZWVCdWlsZGVyOjpwdXNoU3RhdGVGb3JCb3hEZXNjZW5kYW50cyhjb25zdCBM
YXlvdXQ6OkNvbnRhaW5lckJveCYgbGF5b3V0Q29udGFpbmVyQm94LCBjb25zdCBMYXlvdXQ6OkJv
eEdlb21ldHJ5JiBsYXlvdXRHZW9tZXRyeSwgY29uc3QgQ29udGFpbmVyQm94JiBkaXNwbGF5Qm94
LCBTdGFja2luZ0l0ZW0qIGJveFN0YWNraW5nSXRlbSkKIHsKICAgICBhdXRvJiBwb3NpdGlvbmlu
Z0NvbnRleHQgPSBtX3N0YXRlU3RhY2stPmxhc3QoKS5wb3NpdGlvbmluZ0NvbnRleHQ7Ci0gICAg
YXV0byYgY3VycmVudFN0YWNraW5nQ29udGV4dEl0ZW0gPSAoYm94U3RhY2tpbmdJdGVtICYmIGJv
eFN0YWNraW5nSXRlbS0+aXNTdGFja2luZ0NvbnRleHQoKSkgPyAqYm94U3RhY2tpbmdJdGVtIDog
bV9zdGF0ZVN0YWNrLT5sYXN0KCkuY3VycmVudFN0YWNraW5nQ29udGV4dEl0ZW07CiAKLSAgICBt
X3N0YXRlU3RhY2stPmFwcGVuZCh7IHBvc2l0aW9uaW5nQ29udGV4dC5jb250ZXh0Rm9yRGVzY2Vu
ZGFudHMobGF5b3V0Q29udGFpbmVyQm94LCBsYXlvdXRHZW9tZXRyeSwgZGlzcGxheUJveCksIGN1
cnJlbnRTdGFja2luZ0NvbnRleHRJdGVtIH0pOworICAgIGF1dG8gY3VycmVudFN0YWNraW5nSXRl
bSA9IFsmXSgpIC0+IFN0YWNraW5nSXRlbSYgeworICAgICAgICBpZiAoYm94U3RhY2tpbmdJdGVt
KQorICAgICAgICAgICAgcmV0dXJuICpib3hTdGFja2luZ0l0ZW07CisKKyAgICAgICAgcmV0dXJu
IG1fc3RhdGVTdGFjay0+bGFzdCgpLmN1cnJlbnRTdGFja2luZ0l0ZW07CisgICAgfTsKKworICAg
IGF1dG8gY3VycmVudFN0YWNraW5nQ29udGV4dEl0ZW0gPSBbJl0oKSAtPiBTdGFja2luZ0l0ZW0m
IHsKKyAgICAgICAgaWYgKGJveFN0YWNraW5nSXRlbSAmJiBib3hTdGFja2luZ0l0ZW0tPmlzU3Rh
Y2tpbmdDb250ZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gKmJveFN0YWNraW5nSXRlbTsKKyAg
ICAgICAgCisgICAgICAgIHJldHVybiBtX3N0YXRlU3RhY2stPmxhc3QoKS5jdXJyZW50U3RhY2tp
bmdDb250ZXh0SXRlbTsKKyAgICB9OworCisgICAgbV9zdGF0ZVN0YWNrLT5hcHBlbmQoeworICAg
ICAgICBwb3NpdGlvbmluZ0NvbnRleHQuY29udGV4dEZvckRlc2NlbmRhbnRzKGxheW91dENvbnRh
aW5lckJveCwgbGF5b3V0R2VvbWV0cnksIGRpc3BsYXlCb3gpLAorICAgICAgICBjdXJyZW50U3Rh
Y2tpbmdJdGVtKCksCisgICAgICAgIGN1cnJlbnRTdGFja2luZ0NvbnRleHRJdGVtKCksCisgICAg
ICAgIHsgfSwKKyAgICAgICAgeyB9CisgICAgfSk7CiB9CiAKIHZvaWQgVHJlZUJ1aWxkZXI6OnBv
cFN0YXRlKGNvbnN0IENvbnRhaW5lckJveCYgY3VycmVudEJveCkKIHsKKyAgICBBU1NFUlQobV9z
dGF0ZVN0YWNrLT5zaXplKCkgPiAxKTsKICAgICBhdXRvJiBjdXJyZW50U3RhdGUgPSBtX3N0YXRl
U3RhY2stPmxhc3QoKTsKLSAgICBpZiAoJmN1cnJlbnRTdGF0ZS5jdXJyZW50U3RhY2tpbmdDb250
ZXh0SXRlbS5ib3goKSA9PSAmY3VycmVudEJveCkKKyAgICBhdXRvJiBwcmV2aW91c1N0YXRlID0g
bV9zdGF0ZVN0YWNrLT5hdChtX3N0YXRlU3RhY2stPnNpemUoKSAtIDIpOworCisgICAgYm9vbCBl
bmRpbmdTdGFja2luZ0l0ZW0gPSAmY3VycmVudFN0YXRlLmN1cnJlbnRTdGFja2luZ0l0ZW0uYm94
KCkgPT0gJmN1cnJlbnRCb3g7CisgICAgYm9vbCBlbmRpbmdTdGFja2luZ0NvbnRleHRJdGVtID0g
JmN1cnJlbnRTdGF0ZS5jdXJyZW50U3RhY2tpbmdDb250ZXh0SXRlbS5ib3goKSA9PSAmY3VycmVu
dEJveDsKKworICAgIC8vIFdlJ3ZlIGFjY3VtdWxhdGVkIGludG8gY3VycmVudFN0YWNraW5nSXRl
bVBhaW50ZWRDb250ZW50RXh0ZW50IHdoaWxlIGJ1aWxkaW5nIGRlc2NlbmRhbnQgYm94ZXMuCisg
ICAgYXV0byBwYWludGVkQ29udGVudEV4dGVudCA9IGN1cnJlbnRTdGF0ZS5jdXJyZW50U3RhY2tp
bmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQ7CisKKyAgICAvLyBPZnRlbiwgYnV0IG5vdCBhbHdh
eXMsIGNvbnRhaW5pbmdCbG9ja0JveCB3aWxsIGJlIGN1cnJlbnRCb3guIElmIGl0IGhhcyBvdmVy
ZmxvdyBjbGlwcGluZywgY2xpcCB0aGUgcmVjdCBmcm9tIGRlc2NlbmRhbnRzLgorICAgIGF1dG8m
IGNvbnRhaW5pbmdCbG9ja0JveCA9IGN1cnJlbnRTdGF0ZS5pbkZsb3dDb250YWluaW5nQmxvY2tC
b3goKTsKKyAgICBpZiAoY29udGFpbmluZ0Jsb2NrQm94LnN0eWxlKCkuaGFzQ2xpcHBlZE92ZXJm
bG93KCkpIHsKKyAgICAgICAgYXV0byBjbGlwUmVjdCA9IGNvbnRhaW5pbmdCbG9ja0JveC5hYnNv
bHV0ZVBhZGRpbmdCb3hSZWN0KCk7CisgICAgICAgIHBhaW50ZWRDb250ZW50RXh0ZW50LmludGVy
c2VjdChjbGlwUmVjdCk7CisgICAgfQorCisgICAgLy8gTm93IHVuaW9uIHdpdGggdGhpcyBib3gn
cyBleHRlbnQgKHdoaWNoIGlzIG91dHNpZGUgdGhlIGNsaXApLgorICAgIGF1dG8gYm94UGFpbnRp
bmdFeHRlbnQgPSB1bmlvblJlY3QocGFpbnRlZENvbnRlbnRFeHRlbnQsIGN1cnJlbnRCb3guYWJz
b2x1dGVQYWludGluZ0V4dGVudCgpKTsKKworICAgIGlmIChlbmRpbmdTdGFja2luZ0l0ZW0pIHsK
KyAgICAgICAgY3VycmVudFN0YXRlLmN1cnJlbnRTdGFja2luZ0l0ZW0uc2V0UGFpbnRlZENvbnRl
bnRCb3VuZHMoYm94UGFpbnRpbmdFeHRlbnQpOworICAgICAgICAKKyAgICAgICAgLy8gTm93IGFj
Y3VtdWxhdGUgdGhpcyBpdGVtJ3MgZXh0ZW50IChwb3NzaWJseSBjbGlwcGVkKSBpbnRvIHRoYXQg
b2YgaXRzIHBhcmVudCBpdGVtLgorICAgICAgICBhdXRvIGRlc2NlbmRhbnRJdGVtc1BhaW50aW5n
RXh0ZW50ID0gY3VycmVudFN0YXRlLmN1cnJlbnRTdGFja2luZ0l0ZW1QYWludGluZ0V4dGVudDsK
KworICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrQm94LnN0eWxlKCkuaGFzQ2xpcHBlZE92ZXJm
bG93KCkpIHsKKyAgICAgICAgICAgIGF1dG8gY2xpcFJlY3QgPSBjb250YWluaW5nQmxvY2tCb3gu
YWJzb2x1dGVQYWRkaW5nQm94UmVjdCgpOworICAgICAgICAgICAgZGVzY2VuZGFudEl0ZW1zUGFp
bnRpbmdFeHRlbnQuaW50ZXJzZWN0KGNsaXBSZWN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGF1
dG8gaXRlbVBhaW50aW5nRXh0ZW50ID0gdW5pb25SZWN0KGRlc2NlbmRhbnRJdGVtc1BhaW50aW5n
RXh0ZW50LCBjdXJyZW50Qm94LmFic29sdXRlUGFpbnRpbmdFeHRlbnQoKSk7CisgICAgICAgIGN1
cnJlbnRTdGF0ZS5jdXJyZW50U3RhY2tpbmdJdGVtLnNldFBhaW50ZWRCb3VuZHNJbmNsdWRpbmdE
ZXNjZW5kYW50SXRlbXMoaXRlbVBhaW50aW5nRXh0ZW50KTsKKworICAgICAgICBwcmV2aW91c1N0
YXRlLmN1cnJlbnRTdGFja2luZ0l0ZW1QYWludGluZ0V4dGVudC51bml0ZShpdGVtUGFpbnRpbmdF
eHRlbnQpOworICAgIH0gZWxzZQorICAgICAgICBwcmV2aW91c1N0YXRlLmN1cnJlbnRTdGFja2lu
Z0l0ZW1QYWludGVkQ29udGVudEV4dGVudC51bml0ZShib3hQYWludGluZ0V4dGVudCk7CisKKyAg
ICBpZiAoZW5kaW5nU3RhY2tpbmdDb250ZXh0SXRlbSkKICAgICAgICAgY3VycmVudFN0YXRlLmN1
cnJlbnRTdGFja2luZ0NvbnRleHRJdGVtLnNvcnRMaXN0cygpOwogCiAgICAgbV9zdGF0ZVN0YWNr
LT5yZW1vdmVMYXN0KCk7CiB9CiAKLWNvbnN0IEJ1aWxkaW5nU3RhdGUmIFRyZWVCdWlsZGVyOjpj
dXJyZW50U3RhdGUoKSBjb25zdAordm9pZCBUcmVlQnVpbGRlcjo6YWNjb3VudEZvckJveFBhaW50
aW5nRXh0ZW50KGNvbnN0IEJveCYgYm94KQoreworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGFjY291
bnQgZm9yIHRyYW5zZm9ybXMuCisgICAgY3VycmVudFN0YXRlKCkuY3VycmVudFN0YWNraW5nSXRl
bVBhaW50ZWRDb250ZW50RXh0ZW50LnVuaXRlKGJveC5hYnNvbHV0ZVBhaW50aW5nRXh0ZW50KCkp
OworfQorCitCdWlsZGluZ1N0YXRlJiBUcmVlQnVpbGRlcjo6Y3VycmVudFN0YXRlKCkKIHsKICAg
ICBBU1NFUlQobV9zdGF0ZVN0YWNrICYmIG1fc3RhdGVTdGFjay0+c2l6ZSgpKTsKICAgICByZXR1
cm4gbV9zdGF0ZVN0YWNrLT5sYXN0KCk7CiB9CiAKLWNvbnN0IFBvc2l0aW9uaW5nQ29udGV4dCYg
VHJlZUJ1aWxkZXI6OnBvc2l0aW9uaW5nQ29udGV4dCgpIGNvbnN0Citjb25zdCBQb3NpdGlvbmlu
Z0NvbnRleHQmIFRyZWVCdWlsZGVyOjpwb3NpdGlvbmluZ0NvbnRleHQoKQogewogICAgIHJldHVy
biBjdXJyZW50U3RhdGUoKS5wb3NpdGlvbmluZ0NvbnRleHQ7CiB9CkBAIC0xODcsNiArMjU1LDkg
QEAgU3RhY2tpbmdJdGVtKiBUcmVlQnVpbGRlcjo6aW5zZXJ0SW50b1RyZWUoc3RkOjp1bmlxdWVf
cHRyPEJveD4mJiBib3gsIEluc2VydGlvblAKICAgICAgICAgYXV0byBib3hNb2RlbEJveCA9IHN0
ZDo6dW5pcXVlX3B0cjxCb3hNb2RlbEJveD4geyBkb3duY2FzdDxCb3hNb2RlbEJveD4oYm94LnJl
bGVhc2UoKSkgfTsKICAgICAgICAgYXV0byBzdGFja2luZ0l0ZW0gPSBtYWtlVW5pcXVlPFN0YWNr
aW5nSXRlbT4oV1RGTW92ZShib3hNb2RlbEJveCkpOwogCisgICAgICAgIC8vIFRoaXMgcGFpbnRl
ZCBib3VuZHMgd2lsbCBnZXQgZXh0ZW5kZWQgYXMgd2UgdHJhdmVyc2UgYm94IGRlc2NlbmRhbnRz
LgorICAgICAgICBzdGFja2luZ0l0ZW0tPnNldFBhaW50ZWRDb250ZW50Qm91bmRzKHN0YWNraW5n
SXRlbS0+Ym94KCkuYWJzb2x1dGVQYWludGluZ0V4dGVudCgpKTsKKwogICAgICAgICBhdXRvKiBz
dGFja2luZ0l0ZW1QdHIgPSBzdGFja2luZ0l0ZW0uZ2V0KCk7CiAgICAgICAgIGN1cnJlbnRTdGF0
ZSgpLmN1cnJlbnRTdGFja2luZ0NvbnRleHRJdGVtLmFkZENoaWxkU3RhY2tpbmdJdGVtKFdURk1v
dmUoc3RhY2tpbmdJdGVtKSk7CiAgICAgICAgIHJldHVybiBzdGFja2luZ0l0ZW1QdHI7CkBAIC0y
MDQsNiArMjc1LDcgQEAgdm9pZCBUcmVlQnVpbGRlcjo6YnVpbGRJbmxpbmVEaXNwbGF5VHJlZShj
b25zdCBMYXlvdXQ6OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwKICAgICAgICAgaWYgKHJ1bi50
ZXh0KCkpIHsKICAgICAgICAgICAgIGF1dG8mIGxpbmVHZW9tZXRyeSA9IGlubGluZUZvcm1hdHRp
bmdTdGF0ZS5saW5lcygpLmF0KHJ1bi5saW5lSW5kZXgoKSk7CiAgICAgICAgICAgICBhdXRvIHRl
eHRCb3ggPSBtX2JveEZhY3RvcnkuZGlzcGxheUJveEZvclRleHRSdW4ocnVuLCBsaW5lR2VvbWV0
cnksIHBvc2l0aW9uaW5nQ29udGV4dCgpLmluRmxvd0NvbnRhaW5pbmdCbG9ja0NvbnRleHQoKSk7
CisgICAgICAgICAgICBhY2NvdW50Rm9yQm94UGFpbnRpbmdFeHRlbnQoKnRleHRCb3gpOwogICAg
ICAgICAgICAgaW5zZXJ0KFdURk1vdmUodGV4dEJveCksIGluc2VydGlvblBvc2l0aW9uKTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC0yMTksNiArMjkxLDcgQEAgdm9pZCBU
cmVlQnVpbGRlcjo6YnVpbGRJbmxpbmVEaXNwbGF5VHJlZShjb25zdCBMYXlvdXQ6OkxheW91dFN0
YXRlJiBsYXlvdXRTdGF0ZSwKIAogICAgICAgICBhdXRvIGdlb21ldHJ5ID0gbGF5b3V0U3RhdGUu
Z2VvbWV0cnlGb3JCb3gocnVuLmxheW91dEJveCgpKTsKICAgICAgICAgYXV0byBkaXNwbGF5Qm94
ID0gbV9ib3hGYWN0b3J5LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gocnVuLmxheW91dEJveCgpLCBn
ZW9tZXRyeSwgcG9zaXRpb25pbmdDb250ZXh0KCkuaW5GbG93Q29udGFpbmluZ0Jsb2NrQ29udGV4
dCgpKTsKKyAgICAgICAgYWNjb3VudEZvckJveFBhaW50aW5nRXh0ZW50KCpkaXNwbGF5Qm94KTsK
ICAgICAgICAgaW5zZXJ0SW50b1RyZWUoV1RGTW92ZShkaXNwbGF5Qm94KSwgaW5zZXJ0aW9uUG9z
aXRpb24pOwogICAgIH0KIH0KQEAgLTMxMiw2ICszODUsNyBAQCBzdGF0aWMgdm9pZCBvdXRwdXRT
dGFja2luZ1RyZWUoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0
IFN0YQogewogICAgIHN0cmVhbS53cml0ZUluZGVudCgpOwogICAgIHN0cmVhbSA8PCBwcmVmaXg7
CisgICAgc3RyZWFtIDw8ICJib3VuZHMgIiA8PCBzdGFja2luZ0l0ZW0ucGFpbnRlZENvbnRlbnRC
b3VuZHMoKSA8PCAiICI7CiAKICAgICBUZXh0U3RyZWFtOjpJbmRlbnRTY29wZSBpbmRlbnQoc3Ry
ZWFtKTsKICAgICBvdXRwdXREaXNwbGF5VHJlZShzdHJlYW0sIHN0YWNraW5nSXRlbS5ib3goKSwg
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1
aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmgKaW5k
ZXggNTM5N2Y2ZGJjMmYxYjMyNWUyYTc4YWI2YzFlZDdjZDY2NjY2ZjU5Yy4uNWZlODE3OGQ0NWU2
NjFiYzBhZGJlNzhlNWM4MTVjYWI0MjJiYzU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5
L0Rpc3BsYXlUcmVlQnVpbGRlci5oCkBAIC03MywxMSArNzMsMTMgQEAgcHJpdmF0ZToKICAgICBT
dGFja2luZ0l0ZW0qIGluc2VydEludG9UcmVlKHN0ZDo6dW5pcXVlX3B0cjxCb3g+JiYsIEluc2Vy
dGlvblBvc2l0aW9uJik7CiAgICAgdm9pZCBpbnNlcnQoc3RkOjp1bmlxdWVfcHRyPEJveD4mJiwg
SW5zZXJ0aW9uUG9zaXRpb24mKSBjb25zdDsKIAorICAgIHZvaWQgYWNjb3VudEZvckJveFBhaW50
aW5nRXh0ZW50KGNvbnN0IEJveCYpOworCiAgICAgdm9pZCBwdXNoU3RhdGVGb3JCb3hEZXNjZW5k
YW50cyhjb25zdCBMYXlvdXQ6OkNvbnRhaW5lckJveCYsIGNvbnN0IExheW91dDo6Qm94R2VvbWV0
cnkmLCBjb25zdCBDb250YWluZXJCb3gmLCBTdGFja2luZ0l0ZW0qKTsKICAgICB2b2lkIHBvcFN0
YXRlKGNvbnN0IENvbnRhaW5lckJveCYgY3VycmVudEJveCk7CiAgICAgCi0gICAgY29uc3QgQnVp
bGRpbmdTdGF0ZSYgY3VycmVudFN0YXRlKCkgY29uc3Q7Ci0gICAgY29uc3QgUG9zaXRpb25pbmdD
b250ZXh0JiBwb3NpdGlvbmluZ0NvbnRleHQoKSBjb25zdDsKKyAgICBCdWlsZGluZ1N0YXRlJiBj
dXJyZW50U3RhdGUoKTsKKyAgICBjb25zdCBQb3NpdGlvbmluZ0NvbnRleHQmIHBvc2l0aW9uaW5n
Q29udGV4dCgpOwogCiAgICAgQm94RmFjdG9yeSBtX2JveEZhY3Rvcnk7CiAgICAgUm9vdEJhY2tn
cm91bmRQcm9wYWdhdGlvbiBtX3Jvb3RCYWNrZ3JvdW5kUHJvcGdhdGlvbiB7IFJvb3RCYWNrZ3Jv
dW5kUHJvcGFnYXRpb246Ok5vbmUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3Bs
YXkvY3NzL0Rpc3BsYXlCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlC
b3guaAppbmRleCA0ODk4N2YwYThjNjY0MTFmZGI5NTU3MWE5Yjk4ZWE3OTAwNmJhNjUyLi4zNmYz
ZTRlNzMyZGE0MGQ2OWZjNWJiZDMxYTY3YTBkNzU5NjQ1MjRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZGlz
cGxheS9jc3MvRGlzcGxheUJveC5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKIAogICAgIEFi
c29sdXRlRmxvYXRSZWN0IGFic29sdXRlQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1
dGVCb3hSZWN0OyB9CiAKKyAgICB2aXJ0dWFsIEFic29sdXRlRmxvYXRSZWN0IGFic29sdXRlUGFp
bnRpbmdFeHRlbnQoKSBjb25zdCB7IHJldHVybiBtX2Fic29sdXRlQm94UmVjdDsgfQorCiAgICAg
Ym9vbCBpc0JveE1vZGVsQm94KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncy5jb250YWlucyhGbGFn
czo6Qm94TW9kZWxCb3gpOyB9CiAgICAgYm9vbCBpc0NvbnRhaW5lckJveCgpIGNvbnN0IHsgcmV0
dXJuIG1fZmxhZ3MuY29udGFpbnMoRmxhZ3M6OkNvbnRhaW5lckJveCk7IH0KICAgICBib29sIGlz
SW1hZ2VCb3goKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzLmNvbnRhaW5zKEZsYWdzOjpJbWFnZUJv
eCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hN
b2RlbEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94TW9kZWxC
b3guY3BwCmluZGV4IDNkNDg3NmMxOTQ2MDI0YmJhMzVmYWI2YjhkNjRmZDRmMWFhZjg0N2IuLmFj
MDE3MGM3NDFhZTYzNjA4MDY4ODRiODgxNDZiOTk2ZjIyOTNjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hNb2RlbEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveE1vZGVsQm94LmNwcApAQCAtMTE2LDYgKzEx
NiwxNiBAQCBSZWZQdHI8Qm94Q2xpcD4gQm94TW9kZWxCb3g6OmNsaXBGb3JEZXNjZW5kYW50cygp
IGNvbnN0CiAgICAgcmV0dXJuIGNsaXA7CiB9CiAKK0Fic29sdXRlRmxvYXRSZWN0IEJveE1vZGVs
Qm94OjphYnNvbHV0ZVBhaW50aW5nRXh0ZW50KCkgY29uc3QKK3sKKyAgICBhdXRvIHBhaW50aW5n
RXh0ZW50ID0gYWJzb2x1dGVCb3JkZXJCb3hSZWN0KCk7CisKKyAgICBpZiAoYXV0byogc2hhZG93
ID0gc3R5bGUoKS5ib3hTaGFkb3coKSkKKyAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hh
ZG93KHBhaW50aW5nRXh0ZW50LCAwKTsKKworICAgIHJldHVybiBwYWludGluZ0V4dGVudDsKK30K
KwogU3RyaW5nIEJveE1vZGVsQm94OjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBU
ZXh0U3RyZWFtIHN0cmVhbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3Nz
L0Rpc3BsYXlCb3hNb2RlbEJveC5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxh
eUJveE1vZGVsQm94LmgKaW5kZXggOWU2NmJkNGUwMGQ3ZDNlNjk3ZDEzYzQxYWYyZjM3NzM4MDRh
N2JlNi4uN2JmMjhmMzI1MzE0MzZmY2MxODEwYjc2M2IxNmQzNzdlNjY4YjIzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveE1vZGVsQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveE1vZGVsQm94LmgKQEAgLTQ5LDYg
KzQ5LDggQEAgcHVibGljOgogICAgIEFic29sdXRlRmxvYXRSZWN0IGFic29sdXRlUGFkZGluZ0Jv
eFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3BhZGRpbmdCb3hSZWN0OyB9CiAgICAgQWJzb2x1dGVG
bG9hdFJlY3QgYWJzb2x1dGVDb250ZW50Qm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVu
dEJveFJlY3Q7IH0KIAorICAgIEFic29sdXRlRmxvYXRSZWN0IGFic29sdXRlUGFpbnRpbmdFeHRl
bnQoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIGNvbnN0IEJveERlY29yYXRpb25EYXRhKiBib3hE
ZWNvcmF0aW9uRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYm94RGVjb3JhdGlvbkRhdGEuZ2V0KCk7
IH0KICAgICBjb25zdCBCb3hSYXJlR2VvbWV0cnkqIHJhcmVHZW9tZXRyeSgpIGNvbnN0IHsgcmV0
dXJuIG1fYm94UmFyZUdlb21ldHJ5LmdldCgpOyB9CiAKQEAgLTU5LDcgKzYxLDcgQEAgcHVibGlj
OgogICAgIEZsb2F0Um91bmRlZFJlY3QgYm9yZGVyUm91bmRlZFJlY3QoKSBjb25zdDsKICAgICBG
bG9hdFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyUm91bmRlZFJlY3QoKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdDsKKyAgICBTdHJpbmcgZGVidWdE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBCb3hGYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlz
cGxheUNTU1BhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUNT
U1BhaW50ZXIuY3BwCmluZGV4IDY3YjE3ZTYxM2M0ZjE0NDM5MTE5NTllZmFhMzI3ZTM2OTgwMTVk
OGIuLjcxZWFlYmZkZWU2MzRmMWRlZmJmODhiMjE5YmJkMjM5YzQxNTlhM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQYWludGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Q1NTUGFpbnRlci5jcHAKQEAgLTQwLDYg
KzQwLDggQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKIAorI2RlZmluZSBTSE9XX0lURU1fRVhURU5UUyAwCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5IHsKIApAQCAtNjcsMTAgKzY5LDEwIEBAIHN0YXRpYyB2
b2lkIGFwcGx5QW5jZXN0b3JDbGlwKGNvbnN0IEJveE1vZGVsQm94JiBib3gsIFBhaW50aW5nQ29u
dGV4dCYgcGFpbnRpbmdDCiAgICAgICAgIHBhaW50aW5nQ29udGV4dC5jb250ZXh0LmNsaXBSb3Vu
ZGVkUmVjdChyb3VuZGVkUmVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGx5RWZmZWN0cyhjb25z
dCBCb3gmIGJveCwgUGFpbnRpbmdDb250ZXh0JiwgVHJhbnNwYXJlbmN5TGF5ZXJTY29wZSYgdHJh
bnNwYXJlbmN5U2NvcGUpCitzdGF0aWMgdm9pZCBhcHBseUVmZmVjdHMoY29uc3QgU3RhY2tpbmdJ
dGVtJiBzdGFja2luZ0l0ZW0sIGNvbnN0IEJveCYgYm94LCBQYWludGluZ0NvbnRleHQmIHBhaW50
aW5nQ29udGV4dCwgVHJhbnNwYXJlbmN5TGF5ZXJTY29wZSYgdHJhbnNwYXJlbmN5U2NvcGUpCiB7
CiAgICAgaWYgKGJveC5zdHlsZSgpLm9wYWNpdHkoKSA8IDEpIHsKLSAgICAgICAgLy8gRklYTUU6
IENvbXB1dGUgYW5kIHNldCBhIGNsaXAgdG8gYXZvaWQgY3JlYXRpbmcgbGFyZ2UgdHJhbnNwYXJl
bmN5IGxheWVycy4KKyAgICAgICAgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQuY2xpcChzdGFja2lu
Z0l0ZW0ucGFpbnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcygpKTsKICAgICAgICAg
dHJhbnNwYXJlbmN5U2NvcGUuYmVnaW5MYXllcihib3guc3R5bGUoKS5vcGFjaXR5KCkpOwogICAg
IH0KIH0KQEAgLTEzNSw3ICsxMzcsNyBAQCB2b2lkIENTU1BhaW50ZXI6OnBhaW50QXRvbWljYWxs
eVBhaW50ZWRCb3goY29uc3QgU3RhY2tpbmdJdGVtJiBzdGFja2luZ0l0ZW0sIFBhaQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKICAgICAgICAgYXV0byYgYm94TW9kZWxCb3gg
PSBkb3duY2FzdDxCb3hNb2RlbEJveD4oYm94KTsKLSAgICAgICAgcmV0dXJuIGJveE1vZGVsQm94
Lmhhc0FuY2VzdG9yQ2xpcCgpIHx8IGJveE1vZGVsQm94LnN0eWxlKCkuaGFzVHJhbnNmb3JtKCk7
CisgICAgICAgIHJldHVybiBib3hNb2RlbEJveC5oYXNBbmNlc3RvckNsaXAoKSB8fCBib3hNb2Rl
bEJveC5zdHlsZSgpLmhhc1RyYW5zZm9ybSgpIHx8IGJveE1vZGVsQm94LnN0eWxlKCkub3BhY2l0
eSgpIDwgMTsKICAgICB9OwogCiAgICAgYXV0byBzdGF0ZVNhdmVyID0gR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciB7IHBhaW50aW5nQ29udGV4dC5jb250ZXh0LCBuZWVkVG9TYXZlU3RhdGUoYm94
KSB9OwpAQCAtMTU3LDcgKzE1OSwxNSBAQCB2b2lkIENTU1BhaW50ZXI6OnBhaW50QXRvbWljYWxs
eVBhaW50ZWRCb3goY29uc3QgU3RhY2tpbmdJdGVtJiBzdGFja2luZ0l0ZW0sIFBhaQogICAgIH0K
IAogICAgIGF1dG8gdHJhbnNwYXJlbmN5U2NvcGUgPSBUcmFuc3BhcmVuY3lMYXllclNjb3BlIHsg
cGFpbnRpbmdDb250ZXh0LmNvbnRleHQsIDEsIGZhbHNlIH07Ci0gICAgYXBwbHlFZmZlY3RzKGJv
eCwgcGFpbnRpbmdDb250ZXh0LCB0cmFuc3BhcmVuY3lTY29wZSk7CisgICAgYXBwbHlFZmZlY3Rz
KHN0YWNraW5nSXRlbSwgYm94LCBwYWludGluZ0NvbnRleHQsIHRyYW5zcGFyZW5jeVNjb3BlKTsK
KworI2lmIFNIT1dfSVRFTV9FWFRFTlRTCisgICAgeworICAgICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHNhdmVyKHBhaW50aW5nQ29udGV4dC5jb250ZXh0KTsKKyAgICAgICAgcGFpbnRp
bmdDb250ZXh0LmNvbnRleHQuc2V0U3Ryb2tlQ29sb3IoQ29sb3I6OmdyYXkpOworICAgICAgICBw
YWludGluZ0NvbnRleHQuY29udGV4dC5zdHJva2VSZWN0KHN0YWNraW5nSXRlbS5wYWludGVkQm91
bmRzSW5jbHVkaW5nRGVzY2VuZGFudEl0ZW1zKCksIDEpOworICAgIH0KKyNlbmRpZgogCiAgICAg
Qm94UGFpbnRlcjo6cGFpbnRCb3goYm94LCBwYWludGluZ0NvbnRleHQsIGRpcnR5UmVjdCk7CiAg
ICAgaWYgKCFpczxDb250YWluZXJCb3g+KGJveCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kaXNwbGF5L2Nzcy9EaXNwbGF5U3RhY2tpbmdJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9kaXNw
bGF5L2Nzcy9EaXNwbGF5U3RhY2tpbmdJdGVtLmgKaW5kZXggZjhiMTFiNzcwNWVmMjJkZDVlYTBk
NGFmODNmODg0MDdkODQ0NjAwNC4uYWZkNzkxZWFiYzk1NGFhZjgyZGI5ZDk4OTAxNTg0MDdlMDg4
OTNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVN0YWNr
aW5nSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlTdGFja2lu
Z0l0ZW0uaApAQCAtNTMsMTUgKzUzLDI2IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIGlzU3Rh
Y2tpbmdDb250ZXh0KCkgY29uc3Q7CiAKKyAgICAvLyBCb3VuZHMgZm9yIHRoZSBwYWludGVkIGNv
bnRlbnQgb2YgdGhpcyBzdGFja2luZyBpdGVtIChleGNsdWRpbmcgZGVzY2VuZGFudCBpdGVtcyks
IG5vdCB0YWtpbmcgY2xpcHMgZnJvbSBhbmNlc3RvcnMgaW50byBhY2NvdW50LgorICAgIEFic29s
dXRlRmxvYXRSZWN0IHBhaW50ZWRDb250ZW50Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9wYWlu
dGVkQ29udGVudEJvdW5kczsgfQorICAgIC8vIEJvdW5kcyBmb3IgdGhlIHBhaW50ZWQgY29udGVu
dCBvZiB0aGlzIHN0YWNraW5nIGl0ZW0gYW5kIGRlc2NlbmRhbnQgc3RhY2tpbmcgaXRlbXMuCisg
ICAgQWJzb2x1dGVGbG9hdFJlY3QgcGFpbnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVt
cygpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVt
czsgfQorCiAgICAgY29uc3QgU3RhY2tpbmdJdGVtTGlzdCYgbmVnYXRpdmVaT3JkZXJMaXN0KCkg
Y29uc3QgeyByZXR1cm4gbV9uZWdhdGl2ZVpPcmRlckxpc3Q7IH0KICAgICBjb25zdCBTdGFja2lu
Z0l0ZW1MaXN0JiBwb3NpdGl2ZVpPcmRlckxpc3QoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aXZl
Wk9yZGVyTGlzdDsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgc29ydExpc3RzKCk7CiAKKyAgICB2
b2lkIHNldFBhaW50ZWRDb250ZW50Qm91bmRzKGNvbnN0IEFic29sdXRlRmxvYXRSZWN0JiBib3Vu
ZHMpIHsgbV9wYWludGVkQ29udGVudEJvdW5kcyA9IGJvdW5kczsgfQorICAgIHZvaWQgc2V0UGFp
bnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyhjb25zdCBBYnNvbHV0ZUZsb2F0UmVj
dCYgYm91bmRzKSB7IG1fcGFpbnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyA9IGJv
dW5kczsgfQorCiAgICAgc3RkOjp1bmlxdWVfcHRyPEJveE1vZGVsQm94PiBtX2JveDsKICAgICBT
dGFja2luZ0l0ZW1MaXN0IG1fbmVnYXRpdmVaT3JkZXJMaXN0OwogICAgIFN0YWNraW5nSXRlbUxp
c3QgbV9wb3NpdGl2ZVpPcmRlckxpc3Q7CisgICAgCisgICAgQWJzb2x1dGVGbG9hdFJlY3QgbV9w
YWludGVkQ29udGVudEJvdW5kczsKKyAgICBBYnNvbHV0ZUZsb2F0UmVjdCBtX3BhaW50ZWRCb3Vu
ZHNJbmNsdWRpbmdEZXNjZW5kYW50SXRlbXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBEaXNwbGF5
Cg==
</data>
<flag name="commit-queue"
          id="432761"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415521</attachid>
            <date>2020-12-06 11:59:59 -0800</date>
            <delta_ts>2020-12-07 08:14:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219583-20201206115958.patch</filename>
            <type>text/plain</type>
            <size>18426</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ2ZTkyMGZlMzA0NmY1
MzU4MGVjZmIzNjYxMDJkMjNjZmVkNGU5NS4uYTA5NWRmMWU5MWIyZjA1ZmVkMWYzNTVkNTRhYjk5
ZDhmMDFjYWU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTEyLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gS2VlcCB0cmFjayBvZiB0aGUgcGFpbnRlZCBib3VuZHMgb2YgU3RhY2tpbmdJdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NTgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlzcGxheTo6U3Rh
Y2tpbmdJdGVtcyB3aWxsIG5lZWQgdG8ga25vdyB0aGVpciBwYWludGVkIGJvdW5kcyBmb3IgdmFy
aW91cyByZWFzb25zIGxpa2UKKyAgICAgICAgdHJhbnNwYXJlbmN5IGxheWVyIGV4dGVudCwgY29t
cG9zaXRlZCBsYXllciBib3VuZHMsIHJlcGFpbnQgZXRjLiBXZSBjYW4gY29tcHV0ZSB0aGlzIGNo
ZWFwbHkKKyAgICAgICAgYXQgdHJlZSBidWlsZGluZyB0aW1lLiBJbiBmYWN0LCB0d28gYm91bmRz
IGFyZSB1c2VmdWw6IGZpcnN0LCB0aGUgYm91bmRzIG9mIHRoZSBpbi1mbG93CisgICAgICAgIGNv
bnRlbnQgb2YgdGhhdCBzdGFja2luZyBpdGVtLCBhbmQgc2Vjb25kIHRoZSBib3VuZHMgb2YgdGhh
dCBzdGFja2luZyBpdGVtIGFuZCBhbGwgaXRzCisgICAgICAgIHN0YWNraW5nIGRlc2NlbmRhbnRz
LgorCisgICAgICAgIFdlIGRvbid0IGhhdmUgYSBnb29kIHdheSB0byBrbm93IHRoZSBwYWludGVk
IGV4dGVudCBvZiBhIERpc3BsYXk6OkJveCB5ZXQsIHNvIGp1c3QgdXNlIGl0cworICAgICAgICBi
b3VuZHMgYXMgYSBwcm94eS4gQm94TW9kZWxCb3ggZXh0ZW5kcyB0aGlzIGJ5IGxvb2tpbmcgYXQg
Ym94LXNoYWRvdyBzdHlsZS4KKworICAgICAgICBXaGlsZSBidWlsZGluZyB0aGUgZGlzcGxheSB0
cmVlLCBrZWVwIHRyYWNrIG9mIHR3byBleHRlbnRzIHJlY3RhbmdsZXM6CisgICAgICAgICAgLSBj
dXJyZW50U3RhY2tpbmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQgc3RhcnRzIHdpdGggdGhlIGJv
dW5kcyBvZiB0aGUgc3RhY2sgaXRlbSdzIGJveCwKKyAgICAgICAgYW5kIGlzIHVuaW9uZWQgd2l0
aCB0aGUgYm91bmRzIG9mIGFsbCB0aGUgaW4tZmxvdyBjb250ZW50IGZvciB0aGF0IHN0YWNraW5n
IGl0ZW0gYXMgd2UKKyAgICAgICAgYnVpbGQgdGhlIHRyZWUgZG93bndhcmRzLgorICAgICAgICAg
IC0gY3VycmVudFN0YWNraW5nSXRlbVBhaW50aW5nRXh0ZW50IHN0YXJ0cyBlbXB0eSwgYW5kIGFj
Y3VtdWxhdGVzIHRoZSB1bmlvbiBvZiBhbGwKKyAgICAgICAgdGhlIGRlc2NlbmRhbnQgc3RhY2tp
bmcgaXRlbXMnIHBhaW50aW5nIGV4dGVudCBpbiBwb3N0LW9yZGVyIHRyYXZlcnNhbCBhcyB3ZSBw
b3AKKyAgICAgICAgc3RhY2tpbmcgaXRlbXMgb2ZmIHRoZSBjdXJyZW50U3RhdGUgc3RhY2suCisK
KyAgICAgICAgKiBkaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpCdWlsZGluZ1N0YXRlOjppbkZsb3dDb250YWluaW5nQmxvY2tCb3ggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmJ1aWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpwdXNoU3RhdGVGb3JCb3hEZXNj
ZW5kYW50cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpUcmVlQnVpbGRlcjo6cG9wU3Rh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1aWxkZXI6OmFjY291bnRGb3JC
b3hQYWludGluZ0V4dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpUcmVlQnVpbGRl
cjo6Y3VycmVudFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVCdWlsZGVy
Ojpwb3NpdGlvbmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6VHJlZUJ1
aWxkZXI6Omluc2VydEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlRyZWVC
dWlsZGVyOjpidWlsZElubGluZURpc3BsYXlUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXk6Om91dHB1dFN0YWNraW5nVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpUcmVl
QnVpbGRlcjo6Y3VycmVudFN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXk6OlRyZWVCdWlsZGVyOjpwb3NpdGlvbmluZ0NvbnRleHQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGRpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmg6CisgICAgICAgICogZGlz
cGxheS9jc3MvRGlzcGxheUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94Ojph
YnNvbHV0ZVBhaW50aW5nRXh0ZW50IGNvbnN0KToKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNw
bGF5Qm94TW9kZWxCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6Qm94TW9kZWxC
b3g6OmFic29sdXRlUGFpbnRpbmdFeHRlbnQgY29uc3QpOgorICAgICAgICAqIGRpc3BsYXkvY3Nz
L0Rpc3BsYXlCb3hNb2RlbEJveC5oOgorICAgICAgICAqIGRpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQ
YWludGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OmFwcGx5RWZmZWN0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpDU1NQYWludGVyOjpwYWludEF0b21pY2FsbHlQYWlu
dGVkQm94KToKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNwbGF5U3RhY2tpbmdJdGVtLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpTdGFja2luZ0l0ZW06OnBhaW50ZWRDb250ZW50Qm91
bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlN0YWNraW5nSXRlbTo6cGFp
bnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5OjpTdGFja2luZ0l0ZW06OnNldFBhaW50ZWRDb250ZW50Qm91bmRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlN0YWNraW5nSXRlbTo6c2V0UGFpbnRlZEJvdW5kc0lu
Y2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyk6CisKIDIwMjAtMTItMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQyBEaXNwbGF5XSBNb3ZlIGJvcmRl
ciByYWRpaSB0byBCb3hSYXJlR2VvbWV0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rp
c3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlz
cGxheVRyZWVCdWlsZGVyLmNwcAppbmRleCBmNDgwNTA2Zjk2OWIwYmMxYmYxN2UzZjIxMDU5MWEx
MDljMGQ1YmUyLi4zNGFhMjlmNzI1OWJkODRmNjM4NzFmNDRjYTNjMWExMzEwZWM3ZDdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJlZUJ1aWxkZXIuY3BwCkBAIC05OCw4
ICs5OCwxNCBAQCBwcml2YXRlOgogfTsKIAogc3RydWN0IEJ1aWxkaW5nU3RhdGUgeworICAgIGNv
bnN0IENvbnRhaW5lckJveCYgaW5GbG93Q29udGFpbmluZ0Jsb2NrQm94KCkgY29uc3QgeyByZXR1
cm4gcG9zaXRpb25pbmdDb250ZXh0LmluRmxvd0NvbnRhaW5pbmdCbG9ja0NvbnRleHQoKS5ib3g7
IH0KKwogICAgIFBvc2l0aW9uaW5nQ29udGV4dCBwb3NpdGlvbmluZ0NvbnRleHQ7CisgICAgU3Rh
Y2tpbmdJdGVtJiBjdXJyZW50U3RhY2tpbmdJdGVtOwogICAgIFN0YWNraW5nSXRlbSYgY3VycmVu
dFN0YWNraW5nQ29udGV4dEl0ZW07CisKKyAgICBBYnNvbHV0ZUZsb2F0UmVjdCBjdXJyZW50U3Rh
Y2tpbmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQ7CisgICAgQWJzb2x1dGVGbG9hdFJlY3QgY3Vy
cmVudFN0YWNraW5nSXRlbVBhaW50aW5nRXh0ZW50OwogfTsKIAogVHJlZUJ1aWxkZXI6OlRyZWVC
dWlsZGVyKGZsb2F0IHBpeGVsU25hcHBpbmdGYWN0b3IpCkBAIC0xMzEsNyArMTM3LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFRyZWU+IFRyZWVCdWlsZGVyOjpidWlsZChjb25zdCBMYXlvdXQ6OkxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSkKIAogICAgIGlmIChyb290TGF5b3V0Qm94LmZpcnN0Q2hpbGQo
KSkgewogICAgICAgICBhdXRvJiByb290Q29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFpbmVy
Qm94Pihyb290U3RhY2tpbmdJdGVtLT5ib3goKSk7Ci0gICAgICAgIG1fc3RhdGVTdGFjay0+YXBw
ZW5kKHsgcm9vdENvbnRhaW5lckJveCwgKnJvb3RTdGFja2luZ0l0ZW0gfSk7CisgICAgICAgIG1f
c3RhdGVTdGFjay0+YXBwZW5kKHsgeyByb290Q29udGFpbmVyQm94IH0sICpyb290U3RhY2tpbmdJ
dGVtLCAqcm9vdFN0YWNraW5nSXRlbSwgeyB9LCB7IH0gfSk7CiAgICAgICAgIHJlY3Vyc2l2ZUJ1
aWxkRGlzcGxheVRyZWUobGF5b3V0U3RhdGUsICpyb290TGF5b3V0Qm94LmZpcnN0Q2hpbGQoKSwg
aW5zZXJ0aW9uUG9zaXRpb24pOwogICAgIH0KIApAQCAtMTQ0LDI3ICsxNTAsODkgQEAgc3RkOjp1
bmlxdWVfcHRyPFRyZWU+IFRyZWVCdWlsZGVyOjpidWlsZChjb25zdCBMYXlvdXQ6OkxheW91dFN0
YXRlJiBsYXlvdXRTdGF0ZSkKIHZvaWQgVHJlZUJ1aWxkZXI6OnB1c2hTdGF0ZUZvckJveERlc2Nl
bmRhbnRzKGNvbnN0IExheW91dDo6Q29udGFpbmVyQm94JiBsYXlvdXRDb250YWluZXJCb3gsIGNv
bnN0IExheW91dDo6Qm94R2VvbWV0cnkmIGxheW91dEdlb21ldHJ5LCBjb25zdCBDb250YWluZXJC
b3gmIGRpc3BsYXlCb3gsIFN0YWNraW5nSXRlbSogYm94U3RhY2tpbmdJdGVtKQogewogICAgIGF1
dG8mIHBvc2l0aW9uaW5nQ29udGV4dCA9IG1fc3RhdGVTdGFjay0+bGFzdCgpLnBvc2l0aW9uaW5n
Q29udGV4dDsKLSAgICBhdXRvJiBjdXJyZW50U3RhY2tpbmdDb250ZXh0SXRlbSA9IChib3hTdGFj
a2luZ0l0ZW0gJiYgYm94U3RhY2tpbmdJdGVtLT5pc1N0YWNraW5nQ29udGV4dCgpKSA/ICpib3hT
dGFja2luZ0l0ZW0gOiBtX3N0YXRlU3RhY2stPmxhc3QoKS5jdXJyZW50U3RhY2tpbmdDb250ZXh0
SXRlbTsKIAotICAgIG1fc3RhdGVTdGFjay0+YXBwZW5kKHsgcG9zaXRpb25pbmdDb250ZXh0LmNv
bnRleHRGb3JEZXNjZW5kYW50cyhsYXlvdXRDb250YWluZXJCb3gsIGxheW91dEdlb21ldHJ5LCBk
aXNwbGF5Qm94KSwgY3VycmVudFN0YWNraW5nQ29udGV4dEl0ZW0gfSk7CisgICAgYXV0byBjdXJy
ZW50U3RhY2tpbmdJdGVtID0gWyZdKCkgLT4gU3RhY2tpbmdJdGVtJiB7CisgICAgICAgIGlmIChi
b3hTdGFja2luZ0l0ZW0pCisgICAgICAgICAgICByZXR1cm4gKmJveFN0YWNraW5nSXRlbTsKKwor
ICAgICAgICByZXR1cm4gbV9zdGF0ZVN0YWNrLT5sYXN0KCkuY3VycmVudFN0YWNraW5nSXRlbTsK
KyAgICB9OworCisgICAgYXV0byBjdXJyZW50U3RhY2tpbmdDb250ZXh0SXRlbSA9IFsmXSgpIC0+
IFN0YWNraW5nSXRlbSYgeworICAgICAgICBpZiAoYm94U3RhY2tpbmdJdGVtICYmIGJveFN0YWNr
aW5nSXRlbS0+aXNTdGFja2luZ0NvbnRleHQoKSkKKyAgICAgICAgICAgIHJldHVybiAqYm94U3Rh
Y2tpbmdJdGVtOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1fc3RhdGVTdGFjay0+bGFzdCgp
LmN1cnJlbnRTdGFja2luZ0NvbnRleHRJdGVtOworICAgIH07CisKKyAgICBtX3N0YXRlU3RhY2st
PmFwcGVuZCh7CisgICAgICAgIHBvc2l0aW9uaW5nQ29udGV4dC5jb250ZXh0Rm9yRGVzY2VuZGFu
dHMobGF5b3V0Q29udGFpbmVyQm94LCBsYXlvdXRHZW9tZXRyeSwgZGlzcGxheUJveCksCisgICAg
ICAgIGN1cnJlbnRTdGFja2luZ0l0ZW0oKSwKKyAgICAgICAgY3VycmVudFN0YWNraW5nQ29udGV4
dEl0ZW0oKSwKKyAgICAgICAgeyB9LAorICAgICAgICB7IH0KKyAgICB9KTsKIH0KIAogdm9pZCBU
cmVlQnVpbGRlcjo6cG9wU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBjdXJyZW50Qm94KQogewor
ICAgIEFTU0VSVChtX3N0YXRlU3RhY2stPnNpemUoKSA+IDEpOwogICAgIGF1dG8mIGN1cnJlbnRT
dGF0ZSA9IG1fc3RhdGVTdGFjay0+bGFzdCgpOwotICAgIGlmICgmY3VycmVudFN0YXRlLmN1cnJl
bnRTdGFja2luZ0NvbnRleHRJdGVtLmJveCgpID09ICZjdXJyZW50Qm94KQorICAgIGF1dG8mIHBy
ZXZpb3VzU3RhdGUgPSBtX3N0YXRlU3RhY2stPmF0KG1fc3RhdGVTdGFjay0+c2l6ZSgpIC0gMik7
CisKKyAgICBib29sIGVuZGluZ1N0YWNraW5nSXRlbSA9ICZjdXJyZW50U3RhdGUuY3VycmVudFN0
YWNraW5nSXRlbS5ib3goKSA9PSAmY3VycmVudEJveDsKKyAgICBib29sIGVuZGluZ1N0YWNraW5n
Q29udGV4dEl0ZW0gPSAmY3VycmVudFN0YXRlLmN1cnJlbnRTdGFja2luZ0NvbnRleHRJdGVtLmJv
eCgpID09ICZjdXJyZW50Qm94OworCisgICAgLy8gV2UndmUgYWNjdW11bGF0ZWQgaW50byBjdXJy
ZW50U3RhY2tpbmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQgd2hpbGUgYnVpbGRpbmcgZGVzY2Vu
ZGFudCBib3hlcy4KKyAgICBhdXRvIHBhaW50ZWRDb250ZW50RXh0ZW50ID0gY3VycmVudFN0YXRl
LmN1cnJlbnRTdGFja2luZ0l0ZW1QYWludGVkQ29udGVudEV4dGVudDsKKworICAgIC8vIE9mdGVu
LCBidXQgbm90IGFsd2F5cywgY29udGFpbmluZ0Jsb2NrQm94IHdpbGwgYmUgY3VycmVudEJveC4g
SWYgaXQgaGFzIG92ZXJmbG93IGNsaXBwaW5nLCBjbGlwIHRoZSByZWN0IGZyb20gZGVzY2VuZGFu
dHMuCisgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrQm94ID0gY3VycmVudFN0YXRlLmluRmxvd0Nv
bnRhaW5pbmdCbG9ja0JveCgpOworICAgIGlmIChjb250YWluaW5nQmxvY2tCb3guc3R5bGUoKS5o
YXNDbGlwcGVkT3ZlcmZsb3coKSkgeworICAgICAgICBhdXRvIGNsaXBSZWN0ID0gY29udGFpbmlu
Z0Jsb2NrQm94LmFic29sdXRlUGFkZGluZ0JveFJlY3QoKTsKKyAgICAgICAgcGFpbnRlZENvbnRl
bnRFeHRlbnQuaW50ZXJzZWN0KGNsaXBSZWN0KTsKKyAgICB9CisKKyAgICAvLyBOb3cgdW5pb24g
d2l0aCB0aGlzIGJveCdzIGV4dGVudCAod2hpY2ggaXMgb3V0c2lkZSB0aGUgY2xpcCkuCisgICAg
YXV0byBib3hQYWludGluZ0V4dGVudCA9IHVuaW9uUmVjdChwYWludGVkQ29udGVudEV4dGVudCwg
Y3VycmVudEJveC5hYnNvbHV0ZVBhaW50aW5nRXh0ZW50KCkpOworCisgICAgaWYgKGVuZGluZ1N0
YWNraW5nSXRlbSkgeworICAgICAgICBjdXJyZW50U3RhdGUuY3VycmVudFN0YWNraW5nSXRlbS5z
ZXRQYWludGVkQ29udGVudEJvdW5kcyhib3hQYWludGluZ0V4dGVudCk7CisgICAgICAgIAorICAg
ICAgICAvLyBOb3cgYWNjdW11bGF0ZSB0aGlzIGl0ZW0ncyBleHRlbnQgKHBvc3NpYmx5IGNsaXBw
ZWQpIGludG8gdGhhdCBvZiBpdHMgcGFyZW50IGl0ZW0uCisgICAgICAgIGF1dG8gZGVzY2VuZGFu
dEl0ZW1zUGFpbnRpbmdFeHRlbnQgPSBjdXJyZW50U3RhdGUuY3VycmVudFN0YWNraW5nSXRlbVBh
aW50aW5nRXh0ZW50OworCisgICAgICAgIGlmIChjb250YWluaW5nQmxvY2tCb3guc3R5bGUoKS5o
YXNDbGlwcGVkT3ZlcmZsb3coKSkgeworICAgICAgICAgICAgYXV0byBjbGlwUmVjdCA9IGNvbnRh
aW5pbmdCbG9ja0JveC5hYnNvbHV0ZVBhZGRpbmdCb3hSZWN0KCk7CisgICAgICAgICAgICBkZXNj
ZW5kYW50SXRlbXNQYWludGluZ0V4dGVudC5pbnRlcnNlY3QoY2xpcFJlY3QpOworICAgICAgICB9
CisKKyAgICAgICAgYXV0byBpdGVtUGFpbnRpbmdFeHRlbnQgPSB1bmlvblJlY3QoZGVzY2VuZGFu
dEl0ZW1zUGFpbnRpbmdFeHRlbnQsIGN1cnJlbnRCb3guYWJzb2x1dGVQYWludGluZ0V4dGVudCgp
KTsKKyAgICAgICAgY3VycmVudFN0YXRlLmN1cnJlbnRTdGFja2luZ0l0ZW0uc2V0UGFpbnRlZEJv
dW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtcyhpdGVtUGFpbnRpbmdFeHRlbnQpOworCisgICAg
ICAgIHByZXZpb3VzU3RhdGUuY3VycmVudFN0YWNraW5nSXRlbVBhaW50aW5nRXh0ZW50LnVuaXRl
KGl0ZW1QYWludGluZ0V4dGVudCk7CisgICAgfSBlbHNlCisgICAgICAgIHByZXZpb3VzU3RhdGUu
Y3VycmVudFN0YWNraW5nSXRlbVBhaW50ZWRDb250ZW50RXh0ZW50LnVuaXRlKGJveFBhaW50aW5n
RXh0ZW50KTsKKworICAgIGlmIChlbmRpbmdTdGFja2luZ0NvbnRleHRJdGVtKQogICAgICAgICBj
dXJyZW50U3RhdGUuY3VycmVudFN0YWNraW5nQ29udGV4dEl0ZW0uc29ydExpc3RzKCk7CiAKICAg
ICBtX3N0YXRlU3RhY2stPnJlbW92ZUxhc3QoKTsKIH0KIAotY29uc3QgQnVpbGRpbmdTdGF0ZSYg
VHJlZUJ1aWxkZXI6OmN1cnJlbnRTdGF0ZSgpIGNvbnN0Cit2b2lkIFRyZWVCdWlsZGVyOjphY2Nv
dW50Rm9yQm94UGFpbnRpbmdFeHRlbnQoY29uc3QgQm94JiBib3gpCit7CisgICAgLy8gRklYTUU6
IE5lZWQgdG8gYWNjb3VudCBmb3IgdHJhbnNmb3Jtcy4KKyAgICBjdXJyZW50U3RhdGUoKS5jdXJy
ZW50U3RhY2tpbmdJdGVtUGFpbnRlZENvbnRlbnRFeHRlbnQudW5pdGUoYm94LmFic29sdXRlUGFp
bnRpbmdFeHRlbnQoKSk7Cit9CisKK0J1aWxkaW5nU3RhdGUmIFRyZWVCdWlsZGVyOjpjdXJyZW50
U3RhdGUoKQogewogICAgIEFTU0VSVChtX3N0YXRlU3RhY2sgJiYgbV9zdGF0ZVN0YWNrLT5zaXpl
KCkpOwogICAgIHJldHVybiBtX3N0YXRlU3RhY2stPmxhc3QoKTsKIH0KIAotY29uc3QgUG9zaXRp
b25pbmdDb250ZXh0JiBUcmVlQnVpbGRlcjo6cG9zaXRpb25pbmdDb250ZXh0KCkgY29uc3QKK2Nv
bnN0IFBvc2l0aW9uaW5nQ29udGV4dCYgVHJlZUJ1aWxkZXI6OnBvc2l0aW9uaW5nQ29udGV4dCgp
CiB7CiAgICAgcmV0dXJuIGN1cnJlbnRTdGF0ZSgpLnBvc2l0aW9uaW5nQ29udGV4dDsKIH0KQEAg
LTE4Nyw2ICsyNTUsOSBAQCBTdGFja2luZ0l0ZW0qIFRyZWVCdWlsZGVyOjppbnNlcnRJbnRvVHJl
ZShzdGQ6OnVuaXF1ZV9wdHI8Qm94PiYmIGJveCwgSW5zZXJ0aW9uUAogICAgICAgICBhdXRvIGJv
eE1vZGVsQm94ID0gc3RkOjp1bmlxdWVfcHRyPEJveE1vZGVsQm94PiB7IGRvd25jYXN0PEJveE1v
ZGVsQm94Pihib3gucmVsZWFzZSgpKSB9OwogICAgICAgICBhdXRvIHN0YWNraW5nSXRlbSA9IG1h
a2VVbmlxdWU8U3RhY2tpbmdJdGVtPihXVEZNb3ZlKGJveE1vZGVsQm94KSk7CiAKKyAgICAgICAg
Ly8gVGhpcyBwYWludGVkIGJvdW5kcyB3aWxsIGdldCBleHRlbmRlZCBhcyB3ZSB0cmF2ZXJzZSBi
b3ggZGVzY2VuZGFudHMuCisgICAgICAgIHN0YWNraW5nSXRlbS0+c2V0UGFpbnRlZENvbnRlbnRC
b3VuZHMoc3RhY2tpbmdJdGVtLT5ib3goKS5hYnNvbHV0ZVBhaW50aW5nRXh0ZW50KCkpOworCiAg
ICAgICAgIGF1dG8qIHN0YWNraW5nSXRlbVB0ciA9IHN0YWNraW5nSXRlbS5nZXQoKTsKICAgICAg
ICAgY3VycmVudFN0YXRlKCkuY3VycmVudFN0YWNraW5nQ29udGV4dEl0ZW0uYWRkQ2hpbGRTdGFj
a2luZ0l0ZW0oV1RGTW92ZShzdGFja2luZ0l0ZW0pKTsKICAgICAgICAgcmV0dXJuIHN0YWNraW5n
SXRlbVB0cjsKQEAgLTIwNCw2ICsyNzUsNyBAQCB2b2lkIFRyZWVCdWlsZGVyOjpidWlsZElubGlu
ZURpc3BsYXlUcmVlKGNvbnN0IExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLAogICAg
ICAgICBpZiAocnVuLnRleHQoKSkgewogICAgICAgICAgICAgYXV0byYgbGluZUdlb21ldHJ5ID0g
aW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKCkuYXQocnVuLmxpbmVJbmRleCgpKTsKICAgICAg
ICAgICAgIGF1dG8gdGV4dEJveCA9IG1fYm94RmFjdG9yeS5kaXNwbGF5Qm94Rm9yVGV4dFJ1bihy
dW4sIGxpbmVHZW9tZXRyeSwgcG9zaXRpb25pbmdDb250ZXh0KCkuaW5GbG93Q29udGFpbmluZ0Js
b2NrQ29udGV4dCgpKTsKKyAgICAgICAgICAgIGFjY291bnRGb3JCb3hQYWludGluZ0V4dGVudCgq
dGV4dEJveCk7CiAgICAgICAgICAgICBpbnNlcnQoV1RGTW92ZSh0ZXh0Qm94KSwgaW5zZXJ0aW9u
UG9zaXRpb24pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTIxOSw2ICsy
OTEsNyBAQCB2b2lkIFRyZWVCdWlsZGVyOjpidWlsZElubGluZURpc3BsYXlUcmVlKGNvbnN0IExh
eW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLAogCiAgICAgICAgIGF1dG8gZ2VvbWV0cnkg
PSBsYXlvdXRTdGF0ZS5nZW9tZXRyeUZvckJveChydW4ubGF5b3V0Qm94KCkpOwogICAgICAgICBh
dXRvIGRpc3BsYXlCb3ggPSBtX2JveEZhY3RvcnkuZGlzcGxheUJveEZvckxheW91dEJveChydW4u
bGF5b3V0Qm94KCksIGdlb21ldHJ5LCBwb3NpdGlvbmluZ0NvbnRleHQoKS5pbkZsb3dDb250YWlu
aW5nQmxvY2tDb250ZXh0KCkpOworICAgICAgICBhY2NvdW50Rm9yQm94UGFpbnRpbmdFeHRlbnQo
KmRpc3BsYXlCb3gpOwogICAgICAgICBpbnNlcnRJbnRvVHJlZShXVEZNb3ZlKGRpc3BsYXlCb3gp
LCBpbnNlcnRpb25Qb3NpdGlvbik7CiAgICAgfQogfQpAQCAtMzEyLDYgKzM4NSw3IEBAIHN0YXRp
YyB2b2lkIG91dHB1dFN0YWNraW5nVHJlZShUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IGNoYXIq
IHByZWZpeCwgY29uc3QgU3RhCiB7CiAgICAgc3RyZWFtLndyaXRlSW5kZW50KCk7CiAgICAgc3Ry
ZWFtIDw8IHByZWZpeDsKKyAgICBzdHJlYW0gPDwgImJvdW5kcyAiIDw8IHN0YWNraW5nSXRlbS5w
YWludGVkQ29udGVudEJvdW5kcygpIDw8ICIgIjsKIAogICAgIFRleHRTdHJlYW06OkluZGVudFNj
b3BlIGluZGVudChzdHJlYW0pOwogICAgIG91dHB1dERpc3BsYXlUcmVlKHN0cmVhbSwgc3RhY2tp
bmdJdGVtLmJveCgpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5
L0Rpc3BsYXlUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5VHJl
ZUJ1aWxkZXIuaAppbmRleCA1Mzk3ZjZkYmMyZjFiMzI1ZTJhNzhhYjZjMWVkN2NkNjY2NjZmNTlj
Li41ZmU4MTc4ZDQ1ZTY2MWJjMGFkYmU3OGU1YzgxNWNhYjQyMmJjNTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Rpc3BsYXkvRGlzcGxheVRyZWVCdWlsZGVyLmgKQEAgLTczLDExICs3MywxMyBAQCBw
cml2YXRlOgogICAgIFN0YWNraW5nSXRlbSogaW5zZXJ0SW50b1RyZWUoc3RkOjp1bmlxdWVfcHRy
PEJveD4mJiwgSW5zZXJ0aW9uUG9zaXRpb24mKTsKICAgICB2b2lkIGluc2VydChzdGQ6OnVuaXF1
ZV9wdHI8Qm94PiYmLCBJbnNlcnRpb25Qb3NpdGlvbiYpIGNvbnN0OwogCisgICAgdm9pZCBhY2Nv
dW50Rm9yQm94UGFpbnRpbmdFeHRlbnQoY29uc3QgQm94Jik7CisKICAgICB2b2lkIHB1c2hTdGF0
ZUZvckJveERlc2NlbmRhbnRzKGNvbnN0IExheW91dDo6Q29udGFpbmVyQm94JiwgY29uc3QgTGF5
b3V0OjpCb3hHZW9tZXRyeSYsIGNvbnN0IENvbnRhaW5lckJveCYsIFN0YWNraW5nSXRlbSopOwog
ICAgIHZvaWQgcG9wU3RhdGUoY29uc3QgQ29udGFpbmVyQm94JiBjdXJyZW50Qm94KTsKICAgICAK
LSAgICBjb25zdCBCdWlsZGluZ1N0YXRlJiBjdXJyZW50U3RhdGUoKSBjb25zdDsKLSAgICBjb25z
dCBQb3NpdGlvbmluZ0NvbnRleHQmIHBvc2l0aW9uaW5nQ29udGV4dCgpIGNvbnN0OworICAgIEJ1
aWxkaW5nU3RhdGUmIGN1cnJlbnRTdGF0ZSgpOworICAgIGNvbnN0IFBvc2l0aW9uaW5nQ29udGV4
dCYgcG9zaXRpb25pbmdDb250ZXh0KCk7CiAKICAgICBCb3hGYWN0b3J5IG1fYm94RmFjdG9yeTsK
ICAgICBSb290QmFja2dyb3VuZFByb3BhZ2F0aW9uIG1fcm9vdEJhY2tncm91bmRQcm9wZ2F0aW9u
IHsgUm9vdEJhY2tncm91bmRQcm9wYWdhdGlvbjo6Tm9uZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveC5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxh
eS9jc3MvRGlzcGxheUJveC5oCmluZGV4IDQ4OTg3ZjBhOGM2NjQxMWZkYjk1NTcxYTliOThlYTc5
MDA2YmE2NTIuLjM2ZjNlNGU3MzJkYTQwZDY5ZmM1YmJkMzFhNjdhMGQ3NTk2NDUyNGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94LmgKQEAgLTU2LDYgKzU2LDggQEAgcHVi
bGljOgogCiAgICAgQWJzb2x1dGVGbG9hdFJlY3QgYWJzb2x1dGVCb3hSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9hYnNvbHV0ZUJveFJlY3Q7IH0KIAorICAgIHZpcnR1YWwgQWJzb2x1dGVGbG9hdFJl
Y3QgYWJzb2x1dGVQYWludGluZ0V4dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVCb3hS
ZWN0OyB9CisKICAgICBib29sIGlzQm94TW9kZWxCb3goKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
LmNvbnRhaW5zKEZsYWdzOjpCb3hNb2RlbEJveCk7IH0KICAgICBib29sIGlzQ29udGFpbmVyQm94
KCkgY29uc3QgeyByZXR1cm4gbV9mbGFncy5jb250YWlucyhGbGFnczo6Q29udGFpbmVyQm94KTsg
fQogICAgIGJvb2wgaXNJbWFnZUJveCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MuY29udGFpbnMo
RmxhZ3M6OkltYWdlQm94KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9j
c3MvRGlzcGxheUJveE1vZGVsQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rp
c3BsYXlCb3hNb2RlbEJveC5jcHAKaW5kZXggM2Q0ODc2YzE5NDYwMjRiYmEzNWZhYjZiOGQ2NGZk
NGYxYWFmODQ3Yi4uYWMwMTcwYzc0MWFlNjM2MDgwNjg4NGI4ODE0NmI5OTZmMjI5M2NiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveE1vZGVsQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94TW9kZWxCb3guY3Bw
CkBAIC0xMTYsNiArMTE2LDE2IEBAIFJlZlB0cjxCb3hDbGlwPiBCb3hNb2RlbEJveDo6Y2xpcEZv
ckRlc2NlbmRhbnRzKCkgY29uc3QKICAgICByZXR1cm4gY2xpcDsKIH0KIAorQWJzb2x1dGVGbG9h
dFJlY3QgQm94TW9kZWxCb3g6OmFic29sdXRlUGFpbnRpbmdFeHRlbnQoKSBjb25zdAoreworICAg
IGF1dG8gcGFpbnRpbmdFeHRlbnQgPSBhYnNvbHV0ZUJvcmRlckJveFJlY3QoKTsKKworICAgIGlm
IChhdXRvKiBzaGFkb3cgPSBzdHlsZSgpLmJveFNoYWRvdygpKQorICAgICAgICBzaGFkb3ctPmFk
anVzdFJlY3RGb3JTaGFkb3cocGFpbnRpbmdFeHRlbnQsIDApOworCisgICAgcmV0dXJuIHBhaW50
aW5nRXh0ZW50OworfQorCiBTdHJpbmcgQm94TW9kZWxCb3g6OmRlYnVnRGVzY3JpcHRpb24oKSBj
b25zdAogewogICAgIFRleHRTdHJlYW0gc3RyZWFtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZGlzcGxheS9jc3MvRGlzcGxheUJveE1vZGVsQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9kaXNw
bGF5L2Nzcy9EaXNwbGF5Qm94TW9kZWxCb3guaAppbmRleCA5ZTY2YmQ0ZTAwZDdkM2U2OTdkMTNj
NDFhZjJmMzc3MzgwNGE3YmU2Li43YmYyOGYzMjUzMTQzNmZjYzE4MTBiNzYzYjE2ZDM3N2U2Njhi
MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94TW9k
ZWxCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94TW9kZWxC
b3guaApAQCAtNDksNiArNDksOCBAQCBwdWJsaWM6CiAgICAgQWJzb2x1dGVGbG9hdFJlY3QgYWJz
b2x1dGVQYWRkaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFkZGluZ0JveFJlY3Q7IH0K
ICAgICBBYnNvbHV0ZUZsb2F0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3hSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50Qm94UmVjdDsgfQogCisgICAgQWJzb2x1dGVGbG9hdFJlY3QgYWJzb2x1
dGVQYWludGluZ0V4dGVudCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgY29uc3QgQm94RGVjb3Jh
dGlvbkRhdGEqIGJveERlY29yYXRpb25EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9ib3hEZWNvcmF0
aW9uRGF0YS5nZXQoKTsgfQogICAgIGNvbnN0IEJveFJhcmVHZW9tZXRyeSogcmFyZUdlb21ldHJ5
KCkgY29uc3QgeyByZXR1cm4gbV9ib3hSYXJlR2VvbWV0cnkuZ2V0KCk7IH0KIApAQCAtNTksNyAr
NjEsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRSb3VuZGVkUmVjdCBib3JkZXJSb3VuZGVkUmVjdCgp
IGNvbnN0OwogICAgIEZsb2F0Um91bmRlZFJlY3QgaW5uZXJCb3JkZXJSb3VuZGVkUmVjdCgpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0OworICAg
IFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIEJveEZhY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
aXNwbGF5L2Nzcy9EaXNwbGF5Q1NTUGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5
L2Nzcy9EaXNwbGF5Q1NTUGFpbnRlci5jcHAKaW5kZXggNjdiMTdlNjEzYzRmMTQ0MzkxMTk1OWVm
YWEzMjdlMzY5ODAxNWQ4Yi4uNzFlYWViZmRlZTYzNGYxZGVmYmY4OGIyMTliYmQyMzljNDE1OWEz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUNTU1BhaW50
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQYWludGVy
LmNwcApAQCAtNDAsNiArNDAsOCBAQAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJU
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCisjZGVmaW5lIFNIT1dfSVRFTV9FWFRFTlRTIDAKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXkgewogCkBAIC02NywxMCArNjks
MTAgQEAgc3RhdGljIHZvaWQgYXBwbHlBbmNlc3RvckNsaXAoY29uc3QgQm94TW9kZWxCb3gmIGJv
eCwgUGFpbnRpbmdDb250ZXh0JiBwYWludGluZ0MKICAgICAgICAgcGFpbnRpbmdDb250ZXh0LmNv
bnRleHQuY2xpcFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsKIH0KIAotc3RhdGljIHZvaWQgYXBw
bHlFZmZlY3RzKGNvbnN0IEJveCYgYm94LCBQYWludGluZ0NvbnRleHQmLCBUcmFuc3BhcmVuY3lM
YXllclNjb3BlJiB0cmFuc3BhcmVuY3lTY29wZSkKK3N0YXRpYyB2b2lkIGFwcGx5RWZmZWN0cyhj
b25zdCBTdGFja2luZ0l0ZW0mIHN0YWNraW5nSXRlbSwgY29uc3QgQm94JiBib3gsIFBhaW50aW5n
Q29udGV4dCYgcGFpbnRpbmdDb250ZXh0LCBUcmFuc3BhcmVuY3lMYXllclNjb3BlJiB0cmFuc3Bh
cmVuY3lTY29wZSkKIHsKICAgICBpZiAoYm94LnN0eWxlKCkub3BhY2l0eSgpIDwgMSkgewotICAg
ICAgICAvLyBGSVhNRTogQ29tcHV0ZSBhbmQgc2V0IGEgY2xpcCB0byBhdm9pZCBjcmVhdGluZyBs
YXJnZSB0cmFuc3BhcmVuY3kgbGF5ZXJzLgorICAgICAgICBwYWludGluZ0NvbnRleHQuY29udGV4
dC5jbGlwKHN0YWNraW5nSXRlbS5wYWludGVkQm91bmRzSW5jbHVkaW5nRGVzY2VuZGFudEl0ZW1z
KCkpOwogICAgICAgICB0cmFuc3BhcmVuY3lTY29wZS5iZWdpbkxheWVyKGJveC5zdHlsZSgpLm9w
YWNpdHkoKSk7CiAgICAgfQogfQpAQCAtMTM1LDcgKzEzNyw3IEBAIHZvaWQgQ1NTUGFpbnRlcjo6
cGFpbnRBdG9taWNhbGx5UGFpbnRlZEJveChjb25zdCBTdGFja2luZ0l0ZW0mIHN0YWNraW5nSXRl
bSwgUGFpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgICAgICBhdXRv
JiBib3hNb2RlbEJveCA9IGRvd25jYXN0PEJveE1vZGVsQm94Pihib3gpOwotICAgICAgICByZXR1
cm4gYm94TW9kZWxCb3guaGFzQW5jZXN0b3JDbGlwKCkgfHwgYm94TW9kZWxCb3guc3R5bGUoKS5o
YXNUcmFuc2Zvcm0oKTsKKyAgICAgICAgcmV0dXJuIGJveE1vZGVsQm94Lmhhc0FuY2VzdG9yQ2xp
cCgpIHx8IGJveE1vZGVsQm94LnN0eWxlKCkuaGFzVHJhbnNmb3JtKCkgfHwgYm94TW9kZWxCb3gu
c3R5bGUoKS5vcGFjaXR5KCkgPCAxOwogICAgIH07CiAKICAgICBhdXRvIHN0YXRlU2F2ZXIgPSBH
cmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHsgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQsIG5lZWRU
b1NhdmVTdGF0ZShib3gpIH07CkBAIC0xNTcsNyArMTU5LDE1IEBAIHZvaWQgQ1NTUGFpbnRlcjo6
cGFpbnRBdG9taWNhbGx5UGFpbnRlZEJveChjb25zdCBTdGFja2luZ0l0ZW0mIHN0YWNraW5nSXRl
bSwgUGFpCiAgICAgfQogCiAgICAgYXV0byB0cmFuc3BhcmVuY3lTY29wZSA9IFRyYW5zcGFyZW5j
eUxheWVyU2NvcGUgeyBwYWludGluZ0NvbnRleHQuY29udGV4dCwgMSwgZmFsc2UgfTsKLSAgICBh
cHBseUVmZmVjdHMoYm94LCBwYWludGluZ0NvbnRleHQsIHRyYW5zcGFyZW5jeVNjb3BlKTsKKyAg
ICBhcHBseUVmZmVjdHMoc3RhY2tpbmdJdGVtLCBib3gsIHBhaW50aW5nQ29udGV4dCwgdHJhbnNw
YXJlbmN5U2NvcGUpOworCisjaWYgU0hPV19JVEVNX0VYVEVOVFMKKyAgICB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZXIocGFpbnRpbmdDb250ZXh0LmNvbnRleHQpOwor
ICAgICAgICBwYWludGluZ0NvbnRleHQuY29udGV4dC5zZXRTdHJva2VDb2xvcihDb2xvcjo6Z3Jh
eSk7CisgICAgICAgIHBhaW50aW5nQ29udGV4dC5jb250ZXh0LnN0cm9rZVJlY3Qoc3RhY2tpbmdJ
dGVtLnBhaW50ZWRCb3VuZHNJbmNsdWRpbmdEZXNjZW5kYW50SXRlbXMoKSwgMSk7CisgICAgfQor
I2VuZGlmCiAKICAgICBCb3hQYWludGVyOjpwYWludEJveChib3gsIHBhaW50aW5nQ29udGV4dCwg
ZGlydHlSZWN0KTsKICAgICBpZiAoIWlzPENvbnRhaW5lckJveD4oYm94KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlTdGFja2luZ0l0ZW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlTdGFja2luZ0l0ZW0uaAppbmRleCBmOGIxMWI3
NzA1ZWYyMmRkNWVhMGQ0YWY4M2Y4ODQwN2Q4NDQ2MDA0Li5hZmQ3OTFlYWJjOTU0YWFmODJkYjlk
OTg5MDE1ODQwN2UwODg5M2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nz
cy9EaXNwbGF5U3RhY2tpbmdJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3Mv
RGlzcGxheVN0YWNraW5nSXRlbS5oCkBAIC01MywxNSArNTMsMjYgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgaXNTdGFja2luZ0NvbnRleHQoKSBjb25zdDsKIAorICAgIC8vIEJvdW5kcyBmb3Ig
dGhlIHBhaW50ZWQgY29udGVudCBvZiB0aGlzIHN0YWNraW5nIGl0ZW0gKGV4Y2x1ZGluZyBkZXNj
ZW5kYW50IGl0ZW1zKSwgbm90IHRha2luZyBjbGlwcyBmcm9tIGFuY2VzdG9ycyBpbnRvIGFjY291
bnQuCisgICAgQWJzb2x1dGVGbG9hdFJlY3QgcGFpbnRlZENvbnRlbnRCb3VuZHMoKSBjb25zdCB7
IHJldHVybiBtX3BhaW50ZWRDb250ZW50Qm91bmRzOyB9CisgICAgLy8gQm91bmRzIGZvciB0aGUg
cGFpbnRlZCBjb250ZW50IG9mIHRoaXMgc3RhY2tpbmcgaXRlbSBhbmQgZGVzY2VuZGFudCBzdGFj
a2luZyBpdGVtcy4KKyAgICBBYnNvbHV0ZUZsb2F0UmVjdCBwYWludGVkQm91bmRzSW5jbHVkaW5n
RGVzY2VuZGFudEl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9wYWludGVkQm91bmRzSW5jbHVkaW5n
RGVzY2VuZGFudEl0ZW1zOyB9CisKICAgICBjb25zdCBTdGFja2luZ0l0ZW1MaXN0JiBuZWdhdGl2
ZVpPcmRlckxpc3QoKSBjb25zdCB7IHJldHVybiBtX25lZ2F0aXZlWk9yZGVyTGlzdDsgfQogICAg
IGNvbnN0IFN0YWNraW5nSXRlbUxpc3QmIHBvc2l0aXZlWk9yZGVyTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcG9zaXRpdmVaT3JkZXJMaXN0OyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzb3J0TGlz
dHMoKTsKIAorICAgIHZvaWQgc2V0UGFpbnRlZENvbnRlbnRCb3VuZHMoY29uc3QgQWJzb2x1dGVG
bG9hdFJlY3QmIGJvdW5kcykgeyBtX3BhaW50ZWRDb250ZW50Qm91bmRzID0gYm91bmRzOyB9Cisg
ICAgdm9pZCBzZXRQYWludGVkQm91bmRzSW5jbHVkaW5nRGVzY2VuZGFudEl0ZW1zKGNvbnN0IEFi
c29sdXRlRmxvYXRSZWN0JiBib3VuZHMpIHsgbV9wYWludGVkQm91bmRzSW5jbHVkaW5nRGVzY2Vu
ZGFudEl0ZW1zID0gYm91bmRzOyB9CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Qm94TW9kZWxCb3g+
IG1fYm94OwogICAgIFN0YWNraW5nSXRlbUxpc3QgbV9uZWdhdGl2ZVpPcmRlckxpc3Q7CiAgICAg
U3RhY2tpbmdJdGVtTGlzdCBtX3Bvc2l0aXZlWk9yZGVyTGlzdDsKKyAgICAKKyAgICBBYnNvbHV0
ZUZsb2F0UmVjdCBtX3BhaW50ZWRDb250ZW50Qm91bmRzOworICAgIEFic29sdXRlRmxvYXRSZWN0
IG1fcGFpbnRlZEJvdW5kc0luY2x1ZGluZ0Rlc2NlbmRhbnRJdGVtczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIERpc3BsYXkK
</data>

          </attachment>
      

    </bug>

</bugzilla>