<?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>227217</bug_id>
          
          <creation_ts>2021-06-21 08:49:12 -0700</creation_ts>
          <short_desc>Add helpers to create Spans from CFDataRef and NSData</short_desc>
          <delta_ts>2021-06-28 08:35:18 -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>New Bugs</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771295</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-21 08:49:12 -0700</bug_when>
    <thetext>Add helpers to create Spans from CFDataRef and NSData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771299</commentid>
    <comment_count>1</comment_count>
      <attachid>431865</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-21 08:51:35 -0700</bug_when>
    <thetext>Created attachment 431865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771514</commentid>
    <comment_count>2</comment_count>
      <attachid>431925</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-21 16:23:53 -0700</bug_when>
    <thetext>Created attachment 431925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772902</commentid>
    <comment_count>3</comment_count>
      <attachid>432340</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-26 17:47:11 -0700</bug_when>
    <thetext>Created attachment 432340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772903</commentid>
    <comment_count>4</comment_count>
      <attachid>432341</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-26 17:47:49 -0700</bug_when>
    <thetext>Created attachment 432341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773078</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-28 08:34:38 -0700</bug_when>
    <thetext>Committed r279339 (239207@main): &lt;https://commits.webkit.org/239207@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432341.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773079</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-28 08:35:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/79865297&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431865</attachid>
            <date>2021-06-21 08:51:35 -0700</date>
            <delta_ts>2021-06-21 16:22:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227217-20210621085134.patch</filename>
            <type>text/plain</type>
            <size>19024</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzkwNjYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTIxICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaGVscGVycyB0byBjcmVhdGUgU3BhbnMgZnJvbSBD
RkRhdGFSZWYgYW5kIE5TRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3MjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG92ZXJsb2FkcyBvZiBhc0J5dGVzKCkgZm9yIENGRGF0YVJlZiBhbmQg
TlNEYXRhLiBUaGlzIGlzIGdvaW5nIHRvCisgICAgICAgIGJlIGEgY29tbW9uIGVub3VnaCBwYXR0
ZXJuIHRvIHdhcnJlbnQgdGhlc2UgaGVscGVycy4KKworICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIHd0Zi9jZi9TcGFuQ0YuaDogQWRkZWQuCisgICAgICAgIChXVEY6OmFz
Qnl0ZXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9TcGFuQ29jb2EuaDogQWRkZWQuCisgICAgICAg
IChXVEY6OmFzQnl0ZXMpOgorCiAyMDIxLTA2LTIxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjc5
MDYyCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDI3OTA2NikKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTY5Miw2ICs2OTIsOCBAQAogCQlBRDg5QjZCOTFFNjQxNTBGMDA5
MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURCIC8qIE1l
bW9yeUZvb3RwcmludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlG
b290cHJpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUxRTM5RjEw
NjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludENvY29hLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkMzRkVCNUQyNjdGQ0QzNDAwNTQwMDZBIC8qIFNwYW5DRi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFuQ0YuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkMzRkVCNUUyNjdGQ0Q0NjAwNTQwMDZBIC8qIFNwYW5Db2NvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFuQ29jb2EuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzBDN0YyNjZEMzAzNDAwMEQyMzBDIC8qIFNwYW4uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3Bhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkJDRkMz
RTFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTg0MCw2ICs4NDIsNyBAQAogCQkJCUMyQkNGQzQxMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5n
dWFnZUNGLmNwcCAqLywKIAkJCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENG
LmNwcCAqLywKIAkJCQlBM0VFNUMzQjIxRkZBQzdDMDBGQUJENjEgLyogU2NoZWR1bGVQYWlyQ0Yu
Y3BwICovLAorCQkJCUJDM0ZFQjVEMjY3RkNEMzQwMDU0MDA2QSAvKiBTcGFuQ0YuaCAqLywKIAkJ
CQkxQUZERTY0NzE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNhc3RzQ0YuaCAqLywKIAkJCQk1QzFG
MDU5NDIxNjQzN0IzMDAzOTMwMkMgLyogVVJMQ0YuY3BwICovLAogCQkJKTsKQEAgLTE1ODEsNiAr
MTU4NCw3IEBACiAJCQkJMUNBODVDQTgyNDFCMEIyNjAwNzFDMkY1IC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0NvY29hLmNwcCAqLywKIAkJCQkxQ0E4NUNBNzI0MUIwQjExMDA3MUMyRjUgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaCAqLywKIAkJCQlBMzBENDEyQzFGMERFMEJB
MDBCNzE5NTQgLyogU29mdExpbmtpbmcuaCAqLywKKwkJCQlCQzNGRUI1RTI2N0ZDRDQ2MDA1NDAw
NkEgLyogU3BhbkNvY29hLmggKi8sCiAJCQkJRUI2MUVEQzYyNDA5Q0NDMDAwMUVGRTM2IC8qIFN5
c3RlbVRyYWNpbmdDb2NvYS5jcHAgKi8sCiAJCQkJNUNDMEVFODYyMTYyQkMyMjAwQTFBODQyIC8q
IFVSTENvY29hLm1tICovLAogCQkJCTkzMjQxNjU3MjQzQkMyRTUwMDMyRkFBRSAvKiBWZWN0b3JD
b2NvYS5oICovLApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1GVFcuY21ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1GVFcuY21ha2UJKHJldmlzaW9uIDI3OTA2
NikKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRlRXLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw2ICszNyw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiBpZiAoVVNFX0NGKQogICAg
IGxpc3QoQVBQRU5EIFdURl9QVUJMSUNfSEVBREVSUwogICAgICAgICBjZi9DRlVSTEV4dHJhcy5o
CisgICAgICAgIGNmL1NwYW5DRi5oCiAgICAgICAgIGNmL1R5cGVDYXN0c0NGLmgKIAogICAgICAg
ICB0ZXh0L2NmL1N0cmluZ0NvbmNhdGVuYXRlQ0YuaApJbmRleDogU291cmNlL1dURi93dGYvUGxh
dGZvcm1NYWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMu
Y21ha2UJKHJldmlzaW9uIDI3OTA2NikKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNt
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBAIGxpc3QoQVBQRU5EIFdURl9QVUJM
SUNfSEVBREVSUwogICAgIFdlYWtPYmpDUHRyLmgKIAogICAgIGNmL0NGVVJMRXh0cmFzLmgKKyAg
ICBjZi9TcGFuQ0YuaAogICAgIGNmL1R5cGVDYXN0c0NGLmgKIAogICAgIGNvY29hL0NyYXNoUmVw
b3J0ZXIuaApAQCAtMTgsNiArMTksNyBAQCBsaXN0KEFQUEVORCBXVEZfUFVCTElDX0hFQURFUlMK
ICAgICBjb2NvYS9OU1VSTEV4dHJhcy5oCiAgICAgY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzQ29jb2EuaAogICAgIGNvY29hL1NvZnRMaW5raW5nLmgKKyAgICBjb2NvYS9TcGFuQ29jb2Eu
aAogICAgIGNvY29hL1ZlY3RvckNvY29hLmgKIAogICAgIGRhcndpbi9XZWFrTGlua2luZy5oCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMjc5MDY2KQorKysgU291cmNl
L1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogaWYgKFVTRV9DRikKICAgICBsaXN0KEFQUEVO
RCBXVEZfUFVCTElDX0hFQURFUlMKICAgICAgICAgY2YvQ0ZVUkxFeHRyYXMuaAorICAgICAgICBj
Zi9TcGFuQ0YuaAogICAgICAgICBjZi9UeXBlQ2FzdHNDRi5oCiAKICAgICAgICAgdGV4dC9jZi9T
dHJpbmdDb25jYXRlbmF0ZUNGLmgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NmL1NwYW5DRi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NmL1NwYW5DRi5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XVEYvd3RmL2NmL1NwYW5DRi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9u
L0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9TcGFuLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitpbmxpbmUgU3Bhbjxjb25zdCBzdGQ6
OmJ5dGU+IGFzQnl0ZXMoQ0ZEYXRhUmVmIGRhdGEpCit7CisgICAgcmV0dXJuIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBzdGQ6OmJ5dGUqPihDRkRhdGFHZXRCeXRlUHRyKGRhdGEpKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgoZGF0YSkpIH07Cit9CisKK2lubGluZSBTcGFu
PGNvbnN0IHN0ZDo6Ynl0ZT4gYXNCeXRlcyhSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhKQorewor
ICAgIHJldHVybiBhc0J5dGVzKGRhdGEuZ2V0KCkpOworfQorCit9CisKK3VzaW5nIFdURjo6YXNC
eXRlczsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
U3Bhbi5oPgorCituYW1lc3BhY2UgV1RGIHsKKworaW5saW5lIFNwYW48Y29uc3Qgc3RkOjpieXRl
PiBhc0J5dGVzKE5TRGF0YSAqZGF0YSkKK3sKKyAgICByZXR1cm4geyByZWludGVycHJldF9jYXN0
PGNvbnN0IHN0ZDo6Ynl0ZSo+KGRhdGEuYnl0ZXMpLCBkYXRhLmxlbmd0aCB9OworfQorCitpbmxp
bmUgU3Bhbjxjb25zdCBzdGQ6OmJ5dGU+IGFzQnl0ZXMoUmV0YWluUHRyPE5TRGF0YT4gZGF0YSkK
K3sKKyAgICByZXR1cm4gYXNCeXRlcyhkYXRhLmdldCgpKTsKK30KKworfQorCit1c2luZyBXVEY6
OmFzQnl0ZXM7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzkwNjYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0yMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGhlbHBlcnMgdG8gY3JlYXRlIFNwYW5zIGZyb20gQ0ZEYXRh
UmVmIGFuZCBOU0RhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvU3BhbkNGLmNwcDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvU3BhbkNvY29h
Lm1tOiBBZGRlZC4KKyAgICAgICAgQWRkIHRlc3RzIGZvciBuZXcgYXNCeXRlcygpIG92ZXJsb2Fk
cy4gCisKIDIwMjEtMDYtMTkgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc4Njk5LgpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3ODg3NCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC05NzYsNiArOTc2LDggQEAKIAkJQkMyMkQzMTkxNERDNjhCOTAwRkZCMUREIC8qIFVzZXJNZXNz
YWdlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzIyRDMxNzE0REM2OEI4MDBGRkIxREQgLyogVXNlck1lc3NhZ2VfQnVuZGxlLmNwcCAq
LzsgfTsKIAkJQkMyNDZEOUMxMzJGMUZGMDAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVu
ZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MjQ2RDk3MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi87
IH07CiAJCUJDMkQwMDY0MTJBQTA0Q0UwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMy
RDAwNEExMkE5RkVCMzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLzsgfTsKKwkJ
QkMzRkVCNjEyNjdGQ0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNGRUI2MDI2N0ZDREIwMDA1NDAwNkEgLyog
U3BhbkNGLmNwcCAqLzsgfTsKKwkJQkMzRkVCNjQyNjdGQ0Y3NDAwNTQwMDZBIC8qIFNwYW5Db2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0ZF
QjYzMjY3RkNGNzQwMDU0MDA2QSAvKiBTcGFuQ29jb2EubW0gKi87IH07CiAJCUJDNTc1QTk3MTI2
RTc0RjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzU5NDYxMjZFNzM1MTAwNkYwRjEyIC8q
IEluamVjdGVkQnVuZGxlTWFpbi5jcHAgKi87IH07CiAJCUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzVBQTAxMjZFNzY1NzAwNkYwRjEyIC8qIEluamVj
dGVkQnVuZGxlQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUJDNTc1QUIwMTI2RTgzQzgwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU3NUFBRjEyNkU4M0M4MDA2RjBGMTIgLyogSW5q
ZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwICovOyB9OwpAQCAtMjcyOSw2ICsyNzMxLDggQEAK
IAkJQkMyRDAwNEExMkE5RkVCMzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dC5odG1sOyBm
aWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gImZpbGUtd2l0aC1hbmNob3IuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0M0QzcwMTQ1NzVCNkEwMDI1RkI2MiAvKiBXS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW07IHBhdGgg
PSBXZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQzRDN0QxNDU4N0FBNjAwMjVGQjYyIC8qIFdLQnJv
d3NpbmdDb250ZXh0R3JvdXBUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tCcm93c2luZ0NvbnRleHRHcm91cFRlc3QubW07IHBhdGggPSBXZWJLaXRPYmpD
L1dLQnJvd3NpbmdDb250ZXh0R3JvdXBUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzNGRUI2MDI2N0ZDREIwMDA1NDAwNkEgLyogU3BhbkNGLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwYW5DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDM0ZFQjYz
MjY3RkNGNzQwMDU0MDA2QSAvKiBTcGFuQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBT
cGFuQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTVGNUY4MTRBRDc4
RUUwMDQ4NEJFMSAvKiBWZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzU5NDYx
MjZFNzM1MTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1haW4uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzU3NTk4MDEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRC
dW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZTsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQ4MzIsNiArNDgzNiw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLywKIAkJ
CQlDMDk5MUM1MDE0M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAgKi8sCisJ
CQkJQkMzRkVCNjAyNjdGQ0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5MjYsNiArNDkzMSw3
IEBACiAJCUUzQzIxQTc4MjFCMjVDODIwMDNCMzFBMyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkMzRkVCNjMyNjdGQ0Y3NDAwNTQwMDZB
IC8qIFNwYW5Db2NvYS5tbSAqLywKIAkJCQlFM0MyMUE3QjIxQjI1Q0EyMDAzQjMxQTMgLyogVVJM
RXh0cmFzLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTU3MzksNiArNTc0NSw4
IEBACiAJCQkJNTEwQTkxRjgyNEQzNjIyMTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFFQjEyNjQyNENBNkI2NjAwMENCMDMwIC8qIFNvbnlEdWFsU2hv
Y2s0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNw
YWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0ZFQjYxMjY3RkNEQjAw
MDU0MDA2QSAvKiBTcGFuQ0YuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMzRkVCNjQyNjdGQ0Y3
NDAwNTQwMDZBIC8qIFNwYW5Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzNDI1ODlDMjU1
QjYwOUIwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4M0JDNUFDMDIwRTZDMERGMDBGNTg3OUYgLyogU3RhcnRMb2FkSW5EaWRGYWls
UHJvdmlzaW9uYWxMb2FkLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9jZi9TcGFuQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL2NmL1NwYW5DRi5jcHAJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvU3BhbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0
Zi9jZi9TcGFuQ0YuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURlNw
YW5DRiwgRW1wdHkpCit7CisgICAgYXV0byBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUobnVs
bHB0ciwgbnVsbHB0ciwgMCkpOworCisgICAgeworICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVz
KGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5zaXplKCksIDB1KTsKKyAgICAg
ICAgRVhQRUNUX0VRKHNwYW4uZGF0YSgpLCBudWxscHRyKTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLnNp
emUoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIpOworICAg
IH0KK30KKworVEVTVChXVEZTcGFuQ0YsIEJ5dGVzKQoreworICAgIGNvbnN0IHVpbnQ4X3QgaW5w
dXRbNF0gPSB7IDEsIDIsIDMsIDQgfTsKKyAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNy
ZWF0ZShudWxscHRyLCBpbnB1dCwgNCkpOworCisgICAgeworICAgICAgICBhdXRvIHNwYW4gPSBh
c0J5dGVzKGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5zaXplKCksIDR1KTsK
KyAgICAgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNwYW4u
ZGF0YSgpKSwgaW5wdXQpOworICAgIH0KKworICAgIHsKKyAgICAgICAgYXV0byBzcGFuID0gYXNC
eXRlcyhkYXRhKTsKKyAgICAgICAgRVhQRUNUX0VRKHNwYW4uc2l6ZSgpLCA0dSk7CisgICAgICAg
IEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzcGFuLmRhdGEoKSks
IGlucHV0KTsKKyAgICB9Cit9CisKK30KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL2NvY29hL1NwYW5Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9jb2NvYS9TcGFuQ29jb2EubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvU3BhbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSA8d3RmL2NvY29hL1NwYW5Db2NvYS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K1RFU1QoV1RGU3BhbkNvY29hLCBFbXB0eSkKK3sKKyAgICBhdXRvIGRhdGEgPSBhZG9wdE5TKFtb
TlNEYXRhIGFsbG9jXSBpbml0XSk7CisKKyAgICB7CisgICAgICAgIGF1dG8gc3BhbiA9IGFzQnl0
ZXMoZGF0YS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLnNpemUoKSwgMHUpOworICAg
ICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAgICAgICAgRVhQRUNUX0VRKHNwYW4u
c2l6ZSgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLmRhdGEoKSwgbnVsbHB0cik7Cisg
ICAgfQorfQorCitURVNUKFdURlNwYW5Db2NvYSwgQnl0ZXMpCit7CisgICAgY29uc3QgdWludDhf
dCBpbnB1dFs0XSA9IHsgMSwgMiwgMywgNCB9OworICAgIGF1dG8gZGF0YSA9IGFkb3B0TlMoW1tO
U0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6aW5wdXQgbGVuZ3RoOjRdKTsKKworICAgIHsKKyAg
ICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhLmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0VR
KHNwYW4uc2l6ZSgpLCA0dSk7CisgICAgICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihzcGFuLmRhdGEoKSksIGlucHV0KTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLnNp
emUoKSwgNHUpOworICAgICAgICBFWFBFQ1RfRVEocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4oc3Bhbi5kYXRhKCkpLCBpbnB1dCk7CisgICAgfQorfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431925</attachid>
            <date>2021-06-21 16:23:53 -0700</date>
            <delta_ts>2021-06-26 17:47:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227217-20210621162353.patch</filename>
            <type>text/plain</type>
            <size>19042</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzkwNjYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTIxICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaGVscGVycyB0byBjcmVhdGUgU3BhbnMgZnJvbSBD
RkRhdGFSZWYgYW5kIE5TRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3MjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG92ZXJsb2FkcyBvZiBhc0J5dGVzKCkgZm9yIENGRGF0YVJlZiBhbmQg
TlNEYXRhLiBUaGlzIGlzIGdvaW5nIHRvCisgICAgICAgIGJlIGEgY29tbW9uIGVub3VnaCBwYXR0
ZXJuIHRvIHdhcnJlbnQgdGhlc2UgaGVscGVycy4KKworICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIHd0Zi9jZi9TcGFuQ0YuaDogQWRkZWQuCisgICAgICAgIChXVEY6OmFz
Qnl0ZXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9TcGFuQ29jb2EuaDogQWRkZWQuCisgICAgICAg
IChXVEY6OmFzQnl0ZXMpOgorCiAyMDIxLTA2LTIxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjc5
MDYyCkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDI3OTA2NikKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTY5Miw2ICs2OTIsOCBAQAogCQlBRDg5QjZCOTFFNjQxNTBGMDA5
MDcwN0YgLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURCIC8qIE1l
bW9yeUZvb3RwcmludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlG
b290cHJpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUxRTM5RjEw
NjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludENvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludENvY29hLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkMzRkVCNUQyNjdGQ0QzNDAwNTQwMDZBIC8qIFNwYW5DRi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFuQ0YuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkMzRkVCNUUyNjdGQ0Q0NjAwNTQwMDZBIC8qIFNwYW5Db2NvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFuQ29jb2EuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNBMzBDN0YyNjZEMzAzNDAwMEQyMzBDIC8qIFNwYW4uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3Bhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkJDRkMz
RTFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGFuZ3VhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTg0MCw2ICs4NDIsNyBAQAogCQkJCUMyQkNGQzQxMUY2MUQ2MTYwMEM5MjIyQyAvKiBMYW5n
dWFnZUNGLmNwcCAqLywKIAkJCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENG
LmNwcCAqLywKIAkJCQlBM0VFNUMzQjIxRkZBQzdDMDBGQUJENjEgLyogU2NoZWR1bGVQYWlyQ0Yu
Y3BwICovLAorCQkJCUJDM0ZFQjVEMjY3RkNEMzQwMDU0MDA2QSAvKiBTcGFuQ0YuaCAqLywKIAkJ
CQkxQUZERTY0NzE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNhc3RzQ0YuaCAqLywKIAkJCQk1QzFG
MDU5NDIxNjQzN0IzMDAzOTMwMkMgLyogVVJMQ0YuY3BwICovLAogCQkJKTsKQEAgLTE1ODEsNiAr
MTU4NCw3IEBACiAJCQkJMUNBODVDQTgyNDFCMEIyNjAwNzFDMkY1IC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0NvY29hLmNwcCAqLywKIAkJCQkxQ0E4NUNBNzI0MUIwQjExMDA3MUMyRjUgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaCAqLywKIAkJCQlBMzBENDEyQzFGMERFMEJB
MDBCNzE5NTQgLyogU29mdExpbmtpbmcuaCAqLywKKwkJCQlCQzNGRUI1RTI2N0ZDRDQ2MDA1NDAw
NkEgLyogU3BhbkNvY29hLmggKi8sCiAJCQkJRUI2MUVEQzYyNDA5Q0NDMDAwMUVGRTM2IC8qIFN5
c3RlbVRyYWNpbmdDb2NvYS5jcHAgKi8sCiAJCQkJNUNDMEVFODYyMTYyQkMyMjAwQTFBODQyIC8q
IFVSTENvY29hLm1tICovLAogCQkJCTkzMjQxNjU3MjQzQkMyRTUwMDMyRkFBRSAvKiBWZWN0b3JD
b2NvYS5oICovLApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1GVFcuY21ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1GVFcuY21ha2UJKHJldmlzaW9uIDI3OTA2
NikKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRlRXLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw2ICszNyw3IEBAIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiBpZiAoVVNFX0NGKQogICAg
IGxpc3QoQVBQRU5EIFdURl9QVUJMSUNfSEVBREVSUwogICAgICAgICBjZi9DRlVSTEV4dHJhcy5o
CisgICAgICAgIGNmL1NwYW5DRi5oCiAgICAgICAgIGNmL1R5cGVDYXN0c0NGLmgKIAogICAgICAg
ICB0ZXh0L2NmL1N0cmluZ0NvbmNhdGVuYXRlQ0YuaApJbmRleDogU291cmNlL1dURi93dGYvUGxh
dGZvcm1NYWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1NYWMu
Y21ha2UJKHJldmlzaW9uIDI3OTA2NikKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTWFjLmNt
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBAIGxpc3QoQVBQRU5EIFdURl9QVUJM
SUNfSEVBREVSUwogICAgIFdlYWtPYmpDUHRyLmgKIAogICAgIGNmL0NGVVJMRXh0cmFzLmgKKyAg
ICBjZi9TcGFuQ0YuaAogICAgIGNmL1R5cGVDYXN0c0NGLmgKIAogICAgIGNvY29hL0NyYXNoUmVw
b3J0ZXIuaApAQCAtMTgsNiArMTksNyBAQCBsaXN0KEFQUEVORCBXVEZfUFVCTElDX0hFQURFUlMK
ICAgICBjb2NvYS9OU1VSTEV4dHJhcy5oCiAgICAgY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzQ29jb2EuaAogICAgIGNvY29hL1NvZnRMaW5raW5nLmgKKyAgICBjb2NvYS9TcGFuQ29jb2Eu
aAogICAgIGNvY29hL1ZlY3RvckNvY29hLmgKIAogICAgIGRhcndpbi9XZWFrTGlua2luZy5oCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQkocmV2aXNpb24gMjc5MDY2KQorKysgU291cmNl
L1dURi93dGYvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwogaWYgKFVTRV9DRikKICAgICBsaXN0KEFQUEVO
RCBXVEZfUFVCTElDX0hFQURFUlMKICAgICAgICAgY2YvQ0ZVUkxFeHRyYXMuaAorICAgICAgICBj
Zi9TcGFuQ0YuaAogICAgICAgICBjZi9UeXBlQ2FzdHNDRi5oCiAKICAgICAgICAgdGV4dC9jZi9T
dHJpbmdDb25jYXRlbmF0ZUNGLmgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NmL1NwYW5DRi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NmL1NwYW5DRi5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XVEYvd3RmL2NmL1NwYW5DRi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9u
L0NvcmVGb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9TcGFuLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitpbmxpbmUgU3Bhbjxjb25zdCBzdGQ6
OmJ5dGU+IGFzQnl0ZXMoQ0ZEYXRhUmVmIGRhdGEpCit7CisgICAgcmV0dXJuIHsgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBzdGQ6OmJ5dGUqPihDRkRhdGFHZXRCeXRlUHRyKGRhdGEpKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgoZGF0YSkpIH07Cit9CisKK2lubGluZSBTcGFu
PGNvbnN0IHN0ZDo6Ynl0ZT4gYXNCeXRlcyhSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhKQorewor
ICAgIHJldHVybiBhc0J5dGVzKGRhdGEuZ2V0KCkpOworfQorCit9CisKK3VzaW5nIFdURjo6YXNC
eXRlczsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
U3Bhbi5oPgorCituYW1lc3BhY2UgV1RGIHsKKworaW5saW5lIFNwYW48Y29uc3Qgc3RkOjpieXRl
PiBhc0J5dGVzKE5TRGF0YSAqZGF0YSkKK3sKKyAgICByZXR1cm4geyByZWludGVycHJldF9jYXN0
PGNvbnN0IHN0ZDo6Ynl0ZSo+KGRhdGEuYnl0ZXMpLCBkYXRhLmxlbmd0aCB9OworfQorCitpbmxp
bmUgU3Bhbjxjb25zdCBzdGQ6OmJ5dGU+IGFzQnl0ZXMoUmV0YWluUHRyPE5TRGF0YT4gZGF0YSkK
K3sKKyAgICByZXR1cm4gYXNCeXRlcyhkYXRhLmdldCgpKTsKK30KKworfQorCit1c2luZyBXVEY6
OmFzQnl0ZXM7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzkwNjYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0yMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGhlbHBlcnMgdG8gY3JlYXRlIFNwYW5zIGZyb20gQ0ZEYXRh
UmVmIGFuZCBOU0RhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvU3BhbkNGLmNwcDog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvU3BhbkNvY29h
Lm1tOiBBZGRlZC4KKyAgICAgICAgQWRkIHRlc3RzIGZvciBuZXcgYXNCeXRlcygpIG92ZXJsb2Fk
cy4gCisKIDIwMjEtMDYtMTkgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc4Njk5LgpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3ODg3NCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC05NzYsNiArOTc2LDggQEAKIAkJQkMyMkQzMTkxNERDNjhCOTAwRkZCMUREIC8qIFVzZXJNZXNz
YWdlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzIyRDMxNzE0REM2OEI4MDBGRkIxREQgLyogVXNlck1lc3NhZ2VfQnVuZGxlLmNwcCAq
LzsgfTsKIAkJQkMyNDZEOUMxMzJGMUZGMDAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVu
ZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MjQ2RDk3MTMyRjFGRTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi87
IH07CiAJCUJDMkQwMDY0MTJBQTA0Q0UwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMy
RDAwNEExMkE5RkVCMzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLzsgfTsKKwkJ
QkMzRkVCNjEyNjdGQ0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNGRUI2MDI2N0ZDREIwMDA1NDAwNkEgLyog
U3BhbkNGLmNwcCAqLzsgfTsKKwkJQkMzRkVCNjQyNjdGQ0Y3NDAwNTQwMDZBIC8qIFNwYW5Db2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0ZF
QjYzMjY3RkNGNzQwMDU0MDA2QSAvKiBTcGFuQ29jb2EubW0gKi87IH07CiAJCUJDNTc1QTk3MTI2
RTc0RjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzU5NDYxMjZFNzM1MTAwNkYwRjEyIC8q
IEluamVjdGVkQnVuZGxlTWFpbi5jcHAgKi87IH07CiAJCUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzVBQTAxMjZFNzY1NzAwNkYwRjEyIC8qIEluamVj
dGVkQnVuZGxlQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUJDNTc1QUIwMTI2RTgzQzgwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU3NUFBRjEyNkU4M0M4MDA2RjBGMTIgLyogSW5q
ZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwICovOyB9OwpAQCAtMjcyOSw2ICsyNzMxLDggQEAK
IAkJQkMyRDAwNEExMkE5RkVCMzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dC5odG1sOyBm
aWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gImZpbGUtd2l0aC1hbmNob3IuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDM0M0QzcwMTQ1NzVCNkEwMDI1RkI2MiAvKiBXS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW07IHBhdGgg
PSBXZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQzRDN0QxNDU4N0FBNjAwMjVGQjYyIC8qIFdLQnJv
d3NpbmdDb250ZXh0R3JvdXBUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tCcm93c2luZ0NvbnRleHRHcm91cFRlc3QubW07IHBhdGggPSBXZWJLaXRPYmpD
L1dLQnJvd3NpbmdDb250ZXh0R3JvdXBUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzNGRUI2MDI2N0ZDREIwMDA1NDAwNkEgLyogU3BhbkNGLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwYW5DRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDM0ZFQjYz
MjY3RkNGNzQwMDU0MDA2QSAvKiBTcGFuQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBT
cGFuQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTVGNUY4MTRBRDc4
RUUwMDQ4NEJFMSAvKiBWZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzU5NDYx
MjZFNzM1MTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1haW4uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzU3NTk4MDEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRC
dW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZTsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTQ4MzIsNiArNDgzNiw3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLywKIAkJ
CQlDMDk5MUM1MDE0M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAgKi8sCisJ
CQkJQkMzRkVCNjAyNjdGQ0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IGNmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5MjYsNiArNDkzMSw3
IEBACiAJCUUzQzIxQTc4MjFCMjVDODIwMDNCMzFBMyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQkMzRkVCNjMyNjdGQ0Y3NDAwNTQwMDZB
IC8qIFNwYW5Db2NvYS5tbSAqLywKIAkJCQlFM0MyMUE3QjIxQjI1Q0EyMDAzQjMxQTMgLyogVVJM
RXh0cmFzLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTU3MzksNiArNTc0NSw4
IEBACiAJCQkJNTEwQTkxRjgyNEQzNjIyMTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFFQjEyNjQyNENBNkI2NjAwMENCMDMwIC8qIFNvbnlEdWFsU2hv
Y2s0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNw
YWNlYmFyU2Nyb2xsaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0ZFQjYxMjY3RkNEQjAw
MDU0MDA2QSAvKiBTcGFuQ0YuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMzRkVCNjQyNjdGQ0Y3
NDAwNTQwMDZBIC8qIFNwYW5Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzNDI1ODlDMjU1
QjYwOUIwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTU3RjRBQUEwMjA4RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4M0JDNUFDMDIwRTZDMERGMDBGNTg3OUYgLyogU3RhcnRMb2FkSW5EaWRGYWls
UHJvdmlzaW9uYWxMb2FkLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9jZi9TcGFuQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL2NmL1NwYW5DRi5jcHAJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvU3BhbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0
Zi9jZi9TcGFuQ0YuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURlNw
YW5DRiwgRW1wdHkpCit7CisgICAgYXV0byBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUobnVs
bHB0ciwgbnVsbHB0ciwgMCkpOworCisgICAgeworICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVz
KGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5zaXplKCksIDB1KTsKKyAgICAg
ICAgRVhQRUNUX0VRKHNwYW4uZGF0YSgpLCBudWxscHRyKTsKKyAgICB9CisKKyAgICB7CisgICAg
ICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLnNp
emUoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIpOworICAg
IH0KK30KKworVEVTVChXVEZTcGFuQ0YsIEJ5dGVzKQoreworICAgIHVpbnQ4X3QgaW5wdXRbNF0g
PSB7IDEsIDIsIDMsIDQgfTsKKyAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdp
dGhCeXRlc05vQ29weShudWxscHRyLCBpbnB1dCwgNCwgbnVsbHB0cikpOworCisgICAgeworICAg
ICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1RfRVEo
c3Bhbi5zaXplKCksIDR1KTsKKyAgICAgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgdWludDhfdCo+KHNwYW4uZGF0YSgpKSwgaW5wdXQpOworICAgIH0KKworICAgIHsKKyAgICAg
ICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAgICAgICAgRVhQRUNUX0VRKHNwYW4uc2l6
ZSgpLCA0dSk7CisgICAgICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPihzcGFuLmRhdGEoKSksIGlucHV0KTsKKyAgICB9Cit9CisKK30KSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1NwYW5Db2NvYS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9TcGFuQ29jb2EubW0JKG5vbmV4aXN0
ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvU3BhbkNvY29hLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSA8d3RmL2NvY29hL1NwYW5Db2NvYS5oPgorCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGU3BhbkNvY29hLCBFbXB0eSkKK3sKKyAgICBhdXRv
IGRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0XSk7CisKKyAgICB7CisgICAgICAg
IGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFu
LnNpemUoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIpOwor
ICAgIH0KKworICAgIHsKKyAgICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAgICAg
ICAgRVhQRUNUX0VRKHNwYW4uc2l6ZSgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLmRh
dGEoKSwgbnVsbHB0cik7CisgICAgfQorfQorCitURVNUKFdURlNwYW5Db2NvYSwgQnl0ZXMpCit7
CisgICAgdWludDhfdCBpbnB1dFs0XSA9IHsgMSwgMiwgMywgNCB9OworICAgIGF1dG8gZGF0YSA9
IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6aW5wdXQgbGVuZ3Ro
OjRdKTsKKworICAgIHsKKyAgICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhLmdldCgpKTsK
KyAgICAgICAgRVhQRUNUX0VRKHNwYW4uc2l6ZSgpLCA0dSk7CisgICAgICAgIEVYUEVDVF9FUShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzcGFuLmRhdGEoKSksIGlucHV0KTsKKyAg
ICB9CisKKyAgICB7CisgICAgICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YSk7CisgICAgICAg
IEVYUEVDVF9FUShzcGFuLnNpemUoKSwgNHUpOworICAgICAgICBFWFBFQ1RfRVEocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc3Bhbi5kYXRhKCkpLCBpbnB1dCk7CisgICAgfQorfQor
Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432340</attachid>
            <date>2021-06-26 17:47:11 -0700</date>
            <delta_ts>2021-06-26 17:47:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227217-20210626174711.patch</filename>
            <type>text/plain</type>
            <size>19140</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTIxICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaGVscGVycyB0byBjcmVhdGUgU3BhbnMgZnJvbSBD
RkRhdGFSZWYgYW5kIE5TRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3MjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG92ZXJsb2FkcyBvZiBhc0J5dGVzKCkgZm9yIENGRGF0YVJlZiBhbmQg
TlNEYXRhLiBUaGlzIGlzIGdvaW5nIHRvCisgICAgICAgIGJlIGEgY29tbW9uIGVub3VnaCBwYXR0
ZXJuIHRvIHdhcnJlbnQgdGhlc2UgaGVscGVycy4KKworICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIHd0Zi9jZi9TcGFuQ0YuaDogQWRkZWQuCisgICAgICAgIChXVEY6OmFz
Qnl0ZXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9TcGFuQ29jb2EuaDogQWRkZWQuCisgICAgICAg
IChXVEY6OmFzQnl0ZXMpOgorCiAyMDIxLTA2LTI1ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFNldCBJbWFnZUJpdG1hcCBleHBlcmltZW50YWwgZmVhdHVy
ZSBmbGFnIHRvIHRydWUKSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjkyLDYgKzY5Miw4IEBACiAJCUFEODlCNkI5
MUU2NDE1MEYwMDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NDFFMzlGMTA2MDA2
ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lbW9yeUZvb3RwcmludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYy
Q0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNGRUI1RDI2N0ZDRDM0MDA1NDAwNkEgLyog
U3BhbkNGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYW5DRi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNGRUI1RTI2N0ZDRDQ2MDA1NDAwNkEgLyogU3Bh
bkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYW5Db2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0EzMEM3RjI2NkQzMDM0MDAwRDIzMEMgLyog
U3Bhbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMyQkNGQzNGMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODQwLDYgKzg0Miw3IEBACiAJCQkJQzJCQ0ZDNDExRjYxRDYxNjAwQzky
MjJDIC8qIExhbmd1YWdlQ0YuY3BwICovLAogCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAv
KiBSdW5Mb29wQ0YuY3BwICovLAogCQkJCUEzRUU1QzNCMjFGRkFDN0MwMEZBQkQ2MSAvKiBTY2hl
ZHVsZVBhaXJDRi5jcHAgKi8sCisJCQkJQkMzRkVCNUQyNjdGQ0QzNDAwNTQwMDZBIC8qIFNwYW5D
Ri5oICovLAogCQkJCTFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHNDRi5oICov
LAogCQkJCTVDMUYwNTk0MjE2NDM3QjMwMDM5MzAyQyAvKiBVUkxDRi5jcHAgKi8sCiAJCQkpOwpA
QCAtMTU4MSw2ICsxNTg0LDcgQEAKIAkJCQkxQ0E4NUNBODI0MUIwQjI2MDA3MUMyRjUgLyogUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwICovLAogCQkJCTFDQTg1Q0E3MjQxQjBCMTEw
MDcxQzJGNSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oICovLAogCQkJCUEzMEQ0
MTJDMUYwREUwQkEwMEI3MTk1NCAvKiBTb2Z0TGlua2luZy5oICovLAorCQkJCUJDM0ZFQjVFMjY3
RkNENDYwMDU0MDA2QSAvKiBTcGFuQ29jb2EuaCAqLywKIAkJCQlFQjYxRURDNjI0MDlDQ0MwMDAx
RUZFMzYgLyogU3lzdGVtVHJhY2luZ0NvY29hLmNwcCAqLywKIAkJCQk1Q0MwRUU4NjIxNjJCQzIy
MDBBMUE4NDIgLyogVVJMQ29jb2EubW0gKi8sCiAJCQkJOTMyNDE2NTcyNDNCQzJFNTAwMzJGQUFF
IC8qIFZlY3RvckNvY29hLmggKi8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUZUVy5j
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUZUVy5jbWFrZQkocmV2
aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1GVFcuY21ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKIGlmIChV
U0VfQ0YpCiAgICAgbGlzdChBUFBFTkQgV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgICAgIGNmL0NG
VVJMRXh0cmFzLmgKKyAgICAgICAgY2YvU3BhbkNGLmgKICAgICAgICAgY2YvVHlwZUNhc3RzQ0Yu
aAogCiAgICAgICAgIHRleHQvY2YvU3RyaW5nQ29uY2F0ZW5hdGVDRi5oCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm1NYWMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAgbGlzdChBUFBF
TkQgV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgV2Vha09iakNQdHIuaAogCiAgICAgY2YvQ0ZVUkxF
eHRyYXMuaAorICAgIGNmL1NwYW5DRi5oCiAgICAgY2YvVHlwZUNhc3RzQ0YuaAogCiAgICAgY29j
b2EvQ3Jhc2hSZXBvcnRlci5oCkBAIC0xOCw2ICsxOSw3IEBAIGxpc3QoQVBQRU5EIFdURl9QVUJM
SUNfSEVBREVSUwogICAgIGNvY29hL05TVVJMRXh0cmFzLmgKICAgICBjb2NvYS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3NDb2NvYS5oCiAgICAgY29jb2EvU29mdExpbmtpbmcuaAorICAgIGNvY29h
L1NwYW5Db2NvYS5oCiAgICAgY29jb2EvVmVjdG9yQ29jb2EuaAogCiAgICAgZGFyd2luL1dlYWtM
aW5raW5nLmgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAyNzkzMDUp
CisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsNyBAQCBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCiBpZiAoVVNFX0NGKQogICAg
IGxpc3QoQVBQRU5EIFdURl9QVUJMSUNfSEVBREVSUwogICAgICAgICBjZi9DRlVSTEV4dHJhcy5o
CisgICAgICAgIGNmL1NwYW5DRi5oCiAgICAgICAgIGNmL1R5cGVDYXN0c0NGLmgKIAogICAgICAg
ICB0ZXh0L2NmL1N0cmluZ0NvbmNhdGVuYXRlQ0YuaApJbmRleDogU291cmNlL1dURi93dGYvY2Yv
U3BhbkNGLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY2YvU3BhbkNGLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dURi93dGYvY2YvU3BhbkNGLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29y
ZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1NwYW4uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2lubGluZSBTcGFu
PGNvbnN0IHN0ZDo6Ynl0ZT4gYXNCeXRlcyhDRkRhdGFSZWYgZGF0YSkKK3sKKyAgICByZXR1cm4g
eyByZWludGVycHJldF9jYXN0PGNvbnN0IHN0ZDo6Ynl0ZSo+KENGRGF0YUdldEJ5dGVQdHIoZGF0
YSkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdldExlbmd0aChkYXRhKSkgfTsKK30KKwor
aW5saW5lIFNwYW48Y29uc3Qgc3RkOjpieXRlPiBhc0J5dGVzKGNvbnN0IFJldGFpblB0cjxDRkRh
dGFSZWY+JiBkYXRhKQoreworICAgIHJldHVybiBhc0J5dGVzKGRhdGEuZ2V0KCkpOworfQorCit9
CisKK3VzaW5nIFdURjo6YXNCeXRlczsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5D
b2NvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgorCituYW1lc3BhY2UgV1RGIHsKKworaW5saW5lIFNw
YW48Y29uc3Qgc3RkOjpieXRlPiBhc0J5dGVzKE5TRGF0YSAqZGF0YSkKK3sKKyAgICByZXR1cm4g
eyByZWludGVycHJldF9jYXN0PGNvbnN0IHN0ZDo6Ynl0ZSo+KGRhdGEuYnl0ZXMpLCBkYXRhLmxl
bmd0aCB9OworfQorCitpbmxpbmUgU3Bhbjxjb25zdCBzdGQ6OmJ5dGU+IGFzQnl0ZXMoY29uc3Qg
UmV0YWluUHRyPE5TRGF0YT4mIGRhdGEpCit7CisgICAgcmV0dXJuIGFzQnl0ZXMoZGF0YS5nZXQo
KSk7Cit9CisKK30KKwordXNpbmcgV1RGOjphc0J5dGVzOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5MzA1KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjEg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBoZWxwZXJzIHRv
IGNyZWF0ZSBTcGFucyBmcm9tIENGRGF0YVJlZiBhbmQgTlNEYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL2NmL1NwYW5DRi5jcHA6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL2NvY29hL1NwYW5Db2NvYS5tbTogQWRkZWQuCisgICAgICAgIEFkZCB0ZXN0cyBm
b3IgbmV3IGFzQnl0ZXMoKSBvdmVybG9hZHMuIAorCiAyMDIxLTA2LTI1ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSAtW05TU3RyaW5n
IF93ZWJfd2lkdGhXaXRoRm9udDpdIHJldHVybnMgMApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDI3OTMwNSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05NzksNiArOTc5
LDggQEAKIAkJQkMyMkQzMTkxNERDNjhCOTAwRkZCMUREIC8qIFVzZXJNZXNzYWdlX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIyRDMx
NzE0REM2OEI4MDBGRkIxREQgLyogVXNlck1lc3NhZ2VfQnVuZGxlLmNwcCAqLzsgfTsKIAkJQkMy
NDZEOUMxMzJGMUZGMDAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjQ2RDk3MTMyRjFG
RTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi87IH07CiAJCUJDMkQw
MDY0MTJBQTA0Q0UwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAwNEExMkE5RkVC
MzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLzsgfTsKKwkJQkMzRkVCNjEyNjdG
Q0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzNGRUI2MDI2N0ZDREIwMDA1NDAwNkEgLyogU3BhbkNGLmNwcCAq
LzsgfTsKKwkJQkMzRkVCNjQyNjdGQ0Y3NDAwNTQwMDZBIC8qIFNwYW5Db2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0ZFQjYzMjY3RkNGNzQw
MDU0MDA2QSAvKiBTcGFuQ29jb2EubW0gKi87IH07CiAJCUJDNTc1QTk3MTI2RTc0RjEwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1NzU5NDYxMjZFNzM1MTAwNkYwRjEyIC8qIEluamVjdGVkQnVu
ZGxlTWFpbi5jcHAgKi87IH07CiAJCUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYxMiAvKiBJbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1NzVBQTAxMjZFNzY1NzAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUJDNTc1QUIwMTI2RTgzQzgwMDZGMEYxMiAvKiBJbmplY3Rl
ZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzU3NUFBRjEyNkU4M0M4MDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVC
YXNpY19CdW5kbGUuY3BwICovOyB9OwpAQCAtMjczNSw2ICsyNzM3LDggQEAKIAkJQkMyRDAwNEEx
MkE5RkVCMzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dC5odG1sOyBmaWxlRW5jb2Rpbmcg
PSA0OyBwYXRoID0gImZpbGUtd2l0aC1hbmNob3IuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDM0M0QzcwMTQ1NzVCNkEwMDI1RkI2MiAvKiBXS0Jyb3dzaW5nQ29udGV4dExv
YWREZWxlZ2F0ZVRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW07IHBhdGggPSBXZWJLaXRPYmpD
L1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMzQzRDN0QxNDU4N0FBNjAwMjVGQjYyIC8qIFdLQnJvd3NpbmdDb250ZXh0
R3JvdXBUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tC
cm93c2luZ0NvbnRleHRHcm91cFRlc3QubW07IHBhdGggPSBXZWJLaXRPYmpDL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXBUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNGRUI2
MDI2N0ZDREIwMDA1NDAwNkEgLyogU3BhbkNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYW5D
Ri5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDM0ZFQjYzMjY3RkNGNzQwMDU0
MDA2QSAvKiBTcGFuQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTcGFuQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTVGNUY4MTRBRDc4RUUwMDQ4NEJFMSAv
KiBWZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmVjdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzU5NDYxMjZFNzM1MTAwNkYw
RjEyIC8qIEluamVjdGVkQnVuZGxlTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1haW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzU3NTk4MDEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2Vi
S2l0QVBJLmJ1bmRsZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gSW5qZWN0
ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKQEAgLTQ4NTAsNiArNDg1NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQzAy
OUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLywKIAkJCQlDMDk5MUM1MDE0
M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAgKi8sCisJCQkJQkMzRkVCNjAy
NjdGQ0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNmOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5NDQsNiArNDk0OSw3IEBACiAJCUUzQzIx
QTc4MjFCMjVDODIwMDNCMzFBMyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJQkMzRkVCNjMyNjdGQ0Y3NDAwNTQwMDZBIC8qIFNwYW5Db2Nv
YS5tbSAqLywKIAkJCQlFM0MyMUE3QjIxQjI1Q0EyMDAzQjMxQTMgLyogVVJMRXh0cmFzLm1tICov
LAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTU3NTcsNiArNTc2Myw4IEBACiAJCQkJNTEw
QTkxRjgyNEQzNjIyMTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFFQjEyNjQyNENBNkI2NjAwMENCMDMwIC8qIFNvbnlEdWFsU2hvY2s0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNwYWNlYmFyU2Nyb2xs
aW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0ZFQjYxMjY3RkNEQjAwMDU0MDA2QSAvKiBT
cGFuQ0YuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMzRkVCNjQyNjdGQ0Y3NDAwNTQwMDZBIC8q
IFNwYW5Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzNDI1ODlDMjU1QjYwOUIwMDU5RUVE
RCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3RjRBQUEwMjA4
RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
M0JDNUFDMDIwRTZDMERGMDBGNTg3OUYgLyogU3RhcnRMb2FkSW5EaWRGYWlsUHJvdmlzaW9uYWxM
b2FkLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9jZi9TcGFuQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL2NmL1NwYW5DRi5jcHAJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvY2YvU3BhbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9jZi9TcGFuQ0Yu
aD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURlNwYW5DRiwgRW1wdHkp
Cit7CisgICAgYXV0byBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUobnVsbHB0ciwgbnVsbHB0
ciwgMCkpOworCisgICAgeworICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEuZ2V0KCkp
OworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5zaXplKCksIDB1KTsKKyAgICAgICAgRVhQRUNUX0VR
KHNwYW4uZGF0YSgpLCBudWxscHRyKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGF1dG8gc3Bh
biA9IGFzQnl0ZXMoZGF0YSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLnNpemUoKSwgMHUpOwor
ICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIpOworICAgIH0KK30KKworVEVT
VChXVEZTcGFuQ0YsIEJ5dGVzKQoreworICAgIGNvbnN0IHVpbnQ4X3QgaW5wdXRbNF0gPSB7IDEs
IDIsIDMsIDQgfTsKKyAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRl
c05vQ29weShudWxscHRyLCBpbnB1dCwgNCwga0NGQWxsb2NhdG9yTnVsbCkpOworCisgICAgewor
ICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEoc3Bhbi5zaXplKCksIDR1KTsKKyAgICAgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHNwYW4uZGF0YSgpKSwgaW5wdXQpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAgICAgICAgRVhQRUNUX0VRKHNwYW4u
c2l6ZSgpLCA0dSk7CisgICAgICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihzcGFuLmRhdGEoKSksIGlucHV0KTsKKyAgICB9Cit9CisKK30KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1NwYW5Db2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9TcGFuQ29jb2EubW0JKG5vbmV4
aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvU3BhbkNvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8d3RmL2NvY29hL1NwYW5Db2NvYS5oPgorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGU3BhbkNvY29hLCBFbXB0eSkKK3sKKyAgICBh
dXRvIGRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0XSk7CisKKyAgICB7CisgICAg
ICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShz
cGFuLnNpemUoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIp
OworICAgIH0KKworICAgIHsKKyAgICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAg
ICAgICAgRVhQRUNUX0VRKHNwYW4uc2l6ZSgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFu
LmRhdGEoKSwgbnVsbHB0cik7CisgICAgfQorfQorCitURVNUKFdURlNwYW5Db2NvYSwgQnl0ZXMp
Cit7CisgICAgdWludDhfdCBpbnB1dFs0XSA9IHsgMSwgMiwgMywgNCB9OworICAgIGF1dG8gZGF0
YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6aW5wdXQgbGVu
Z3RoOjQgZGVhbGxvY2F0b3I6Xih2b2lkICosIE5TVUludGVnZXIpIHsgfV0pOworCisgICAgewor
ICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEoc3Bhbi5zaXplKCksIDR1KTsKKyAgICAgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHNwYW4uZGF0YSgpKSwgaW5wdXQpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAgICAgICAgRVhQRUNUX0VRKHNwYW4u
c2l6ZSgpLCA0dSk7CisgICAgICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihzcGFuLmRhdGEoKSksIGlucHV0KTsKKyAgICB9Cit9CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432341</attachid>
            <date>2021-06-26 17:47:49 -0700</date>
            <delta_ts>2021-06-28 08:34:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227217-20210626174749.patch</filename>
            <type>text/plain</type>
            <size>19139</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTIxICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaGVscGVycyB0byBjcmVhdGUgU3BhbnMgZnJvbSBD
RkRhdGFSZWYgYW5kIE5TRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3MjE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG92ZXJsb2FkcyBvZiBhc0J5dGVzKCkgZm9yIENGRGF0YVJlZiBhbmQg
TlNEYXRhLiBUaGlzIGlzIGdvaW5nIHRvCisgICAgICAgIGJlIGEgY29tbW9uIGVub3VnaCBwYXR0
ZXJuIHRvIHdhcnJlbnQgdGhlc2UgaGVscGVycy4KKworICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybUZUVy5jbWFrZToKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogd3RmL1BsYXRmb3JtV2luLmNt
YWtlOgorICAgICAgICAqIHd0Zi9jZi9TcGFuQ0YuaDogQWRkZWQuCisgICAgICAgIChXVEY6OmFz
Qnl0ZXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9TcGFuQ29jb2EuaDogQWRkZWQuCisgICAgICAg
IChXVEY6OmFzQnl0ZXMpOgorCiAyMDIxLTA2LTI1ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFNldCBJbWFnZUJpdG1hcCBleHBlcmltZW50YWwgZmVhdHVy
ZSBmbGFnIHRvIHRydWUKSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjkyLDYgKzY5Miw4IEBACiAJCUFEODlCNkI5
MUU2NDE1MEYwMDkwNzA3RiAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeVByZXNzdXJlSGFuZGxlckNv
Y29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NDFFMzlGMTA2MDA2
ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lbW9yeUZvb3RwcmludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYy
Q0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50Q29jb2EuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNGRUI1RDI2N0ZDRDM0MDA1NDAwNkEgLyog
U3BhbkNGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYW5DRi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNGRUI1RTI2N0ZDRDQ2MDA1NDAwNkEgLyogU3Bh
bkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwYW5Db2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0EzMEM3RjI2NkQzMDM0MDAwRDIzMEMgLyog
U3Bhbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTcGFuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUMyQkNGQzNFMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUMyQkNGQzNGMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYW5ndWFnZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODQwLDYgKzg0Miw3IEBACiAJCQkJQzJCQ0ZDNDExRjYxRDYxNjAwQzky
MjJDIC8qIExhbmd1YWdlQ0YuY3BwICovLAogCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAv
KiBSdW5Mb29wQ0YuY3BwICovLAogCQkJCUEzRUU1QzNCMjFGRkFDN0MwMEZBQkQ2MSAvKiBTY2hl
ZHVsZVBhaXJDRi5jcHAgKi8sCisJCQkJQkMzRkVCNUQyNjdGQ0QzNDAwNTQwMDZBIC8qIFNwYW5D
Ri5oICovLAogCQkJCTFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHNDRi5oICov
LAogCQkJCTVDMUYwNTk0MjE2NDM3QjMwMDM5MzAyQyAvKiBVUkxDRi5jcHAgKi8sCiAJCQkpOwpA
QCAtMTU4MSw2ICsxNTg0LDcgQEAKIAkJCQkxQ0E4NUNBODI0MUIwQjI2MDA3MUMyRjUgLyogUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwICovLAogCQkJCTFDQTg1Q0E3MjQxQjBCMTEw
MDcxQzJGNSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oICovLAogCQkJCUEzMEQ0
MTJDMUYwREUwQkEwMEI3MTk1NCAvKiBTb2Z0TGlua2luZy5oICovLAorCQkJCUJDM0ZFQjVFMjY3
RkNENDYwMDU0MDA2QSAvKiBTcGFuQ29jb2EuaCAqLywKIAkJCQlFQjYxRURDNjI0MDlDQ0MwMDAx
RUZFMzYgLyogU3lzdGVtVHJhY2luZ0NvY29hLmNwcCAqLywKIAkJCQk1Q0MwRUU4NjIxNjJCQzIy
MDBBMUE4NDIgLyogVVJMQ29jb2EubW0gKi8sCiAJCQkJOTMyNDE2NTcyNDNCQzJFNTAwMzJGQUFF
IC8qIFZlY3RvckNvY29hLmggKi8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUZUVy5j
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUZUVy5jbWFrZQkocmV2
aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm1GVFcuY21ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKIGlmIChV
U0VfQ0YpCiAgICAgbGlzdChBUFBFTkQgV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgICAgIGNmL0NG
VVJMRXh0cmFzLmgKKyAgICAgICAgY2YvU3BhbkNGLmgKICAgICAgICAgY2YvVHlwZUNhc3RzQ0Yu
aAogCiAgICAgICAgIHRleHQvY2YvU3RyaW5nQ29uY2F0ZW5hdGVDRi5oCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm1NYWMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAgbGlzdChBUFBF
TkQgV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgV2Vha09iakNQdHIuaAogCiAgICAgY2YvQ0ZVUkxF
eHRyYXMuaAorICAgIGNmL1NwYW5DRi5oCiAgICAgY2YvVHlwZUNhc3RzQ0YuaAogCiAgICAgY29j
b2EvQ3Jhc2hSZXBvcnRlci5oCkBAIC0xOCw2ICsxOSw3IEBAIGxpc3QoQVBQRU5EIFdURl9QVUJM
SUNfSEVBREVSUwogICAgIGNvY29hL05TVVJMRXh0cmFzLmgKICAgICBjb2NvYS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3NDb2NvYS5oCiAgICAgY29jb2EvU29mdExpbmtpbmcuaAorICAgIGNvY29h
L1NwYW5Db2NvYS5oCiAgICAgY29jb2EvVmVjdG9yQ29jb2EuaAogCiAgICAgZGFyd2luL1dlYWtM
aW5raW5nLmgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAyNzkzMDUp
CisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsNyBAQCBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCiBpZiAoVVNFX0NGKQogICAg
IGxpc3QoQVBQRU5EIFdURl9QVUJMSUNfSEVBREVSUwogICAgICAgICBjZi9DRlVSTEV4dHJhcy5o
CisgICAgICAgIGNmL1NwYW5DRi5oCiAgICAgICAgIGNmL1R5cGVDYXN0c0NGLmgKIAogICAgICAg
ICB0ZXh0L2NmL1N0cmluZ0NvbmNhdGVuYXRlQ0YuaApJbmRleDogU291cmNlL1dURi93dGYvY2Yv
U3BhbkNGLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY2YvU3BhbkNGLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dURi93dGYvY2YvU3BhbkNGLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29y
ZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1NwYW4uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2lubGluZSBTcGFu
PGNvbnN0IHN0ZDo6Ynl0ZT4gYXNCeXRlcyhDRkRhdGFSZWYgZGF0YSkKK3sKKyAgICByZXR1cm4g
eyByZWludGVycHJldF9jYXN0PGNvbnN0IHN0ZDo6Ynl0ZSo+KENGRGF0YUdldEJ5dGVQdHIoZGF0
YSkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdldExlbmd0aChkYXRhKSkgfTsKK30KKwor
aW5saW5lIFNwYW48Y29uc3Qgc3RkOjpieXRlPiBhc0J5dGVzKGNvbnN0IFJldGFpblB0cjxDRkRh
dGFSZWY+JiBkYXRhKQoreworICAgIHJldHVybiBhc0J5dGVzKGRhdGEuZ2V0KCkpOworfQorCit9
CisKK3VzaW5nIFdURjo6YXNCeXRlczsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5D
b2NvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XVEYvd3RmL2NvY29hL1NwYW5Db2NvYS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvU3Bhbi5oPgorCituYW1lc3BhY2UgV1RGIHsKKworaW5saW5lIFNw
YW48Y29uc3Qgc3RkOjpieXRlPiBhc0J5dGVzKE5TRGF0YSAqZGF0YSkKK3sKKyAgICByZXR1cm4g
eyByZWludGVycHJldF9jYXN0PGNvbnN0IHN0ZDo6Ynl0ZSo+KGRhdGEuYnl0ZXMpLCBkYXRhLmxl
bmd0aCB9OworfQorCitpbmxpbmUgU3Bhbjxjb25zdCBzdGQ6OmJ5dGU+IGFzQnl0ZXMoY29uc3Qg
UmV0YWluUHRyPE5TRGF0YT4mIGRhdGEpCit7CisgICAgcmV0dXJuIGFzQnl0ZXMoZGF0YS5nZXQo
KSk7Cit9CisKK30KKwordXNpbmcgV1RGOjphc0J5dGVzOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5MzA1KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDYtMjEg
IFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBoZWxwZXJzIHRv
IGNyZWF0ZSBTcGFucyBmcm9tIENGRGF0YVJlZiBhbmQgTlNEYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMTcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL2NmL1NwYW5DRi5jcHA6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL2NvY29hL1NwYW5Db2NvYS5tbTogQWRkZWQuCisgICAgICAgIEFkZCB0ZXN0cyBm
b3IgbmV3IGFzQnl0ZXMoKSBvdmVybG9hZHMuIAorCiAyMDIxLTA2LTI1ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSAtW05TU3RyaW5n
IF93ZWJfd2lkdGhXaXRoRm9udDpdIHJldHVybnMgMApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDI3OTMwNSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05NzksNiArOTc5
LDggQEAKIAkJQkMyMkQzMTkxNERDNjhCOTAwRkZCMUREIC8qIFVzZXJNZXNzYWdlX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIyRDMx
NzE0REM2OEI4MDBGRkIxREQgLyogVXNlck1lc3NhZ2VfQnVuZGxlLmNwcCAqLzsgfTsKIAkJQkMy
NDZEOUMxMzJGMUZGMDAwQjU2RDdDIC8qIENhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjQ2RDk3MTMyRjFG
RTEwMEI1NkQ3QyAvKiBDYW5IYW5kbGVSZXF1ZXN0X0J1bmRsZS5jcHAgKi87IH07CiAJCUJDMkQw
MDY0MTJBQTA0Q0UwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAwNEExMkE5RkVC
MzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLzsgfTsKKwkJQkMzRkVCNjEyNjdG
Q0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzNGRUI2MDI2N0ZDREIwMDA1NDAwNkEgLyogU3BhbkNGLmNwcCAq
LzsgfTsKKwkJQkMzRkVCNjQyNjdGQ0Y3NDAwNTQwMDZBIC8qIFNwYW5Db2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0ZFQjYzMjY3RkNGNzQw
MDU0MDA2QSAvKiBTcGFuQ29jb2EubW0gKi87IH07CiAJCUJDNTc1QTk3MTI2RTc0RjEwMDZGMEYx
MiAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM1NzU5NDYxMjZFNzM1MTAwNkYwRjEyIC8qIEluamVjdGVkQnVu
ZGxlTWFpbi5jcHAgKi87IH07CiAJCUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYxMiAvKiBJbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1NzVBQTAxMjZFNzY1NzAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQ29u
dHJvbGxlci5jcHAgKi87IH07CiAJCUJDNTc1QUIwMTI2RTgzQzgwMDZGMEYxMiAvKiBJbmplY3Rl
ZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzU3NUFBRjEyNkU4M0M4MDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVC
YXNpY19CdW5kbGUuY3BwICovOyB9OwpAQCAtMjczNSw2ICsyNzM3LDggQEAKIAkJQkMyRDAwNEEx
MkE5RkVCMzAwRTczMkEzIC8qIGZpbGUtd2l0aC1hbmNob3IuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gdGV4dC5odG1sOyBmaWxlRW5jb2Rpbmcg
PSA0OyBwYXRoID0gImZpbGUtd2l0aC1hbmNob3IuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDM0M0QzcwMTQ1NzVCNkEwMDI1RkI2MiAvKiBXS0Jyb3dzaW5nQ29udGV4dExv
YWREZWxlZ2F0ZVRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW07IHBhdGggPSBXZWJLaXRPYmpD
L1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMzQzRDN0QxNDU4N0FBNjAwMjVGQjYyIC8qIFdLQnJvd3NpbmdDb250ZXh0
R3JvdXBUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tC
cm93c2luZ0NvbnRleHRHcm91cFRlc3QubW07IHBhdGggPSBXZWJLaXRPYmpDL1dLQnJvd3NpbmdD
b250ZXh0R3JvdXBUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNGRUI2
MDI2N0ZDREIwMDA1NDAwNkEgLyogU3BhbkNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYW5D
Ri5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDM0ZFQjYzMjY3RkNGNzQwMDU0
MDA2QSAvKiBTcGFuQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTcGFuQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTVGNUY4MTRBRDc4RUUwMDQ4NEJFMSAv
KiBWZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmVjdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzU5NDYxMjZFNzM1MTAwNkYw
RjEyIC8qIEluamVjdGVkQnVuZGxlTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1haW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzU3NTk4MDEyNkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVUZXN0V2Vi
S2l0QVBJLmJ1bmRsZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gd3JhcHBlci5jZmJ1bmRsZTsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gSW5qZWN0
ZWRCdW5kbGVUZXN0V2ViS2l0QVBJLmJ1bmRsZTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKQEAgLTQ4NTAsNiArNDg1NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQzAy
OUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLywKIAkJCQlDMDk5MUM1MDE0
M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAgKi8sCisJCQkJQkMzRkVCNjAy
NjdGQ0RCMDAwNTQwMDZBIC8qIFNwYW5DRi5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNmOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5NDQsNiArNDk0OSw3IEBACiAJCUUzQzIx
QTc4MjFCMjVDODIwMDNCMzFBMyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJQkMzRkVCNjMyNjdGQ0Y3NDAwNTQwMDZBIC8qIFNwYW5Db2Nv
YS5tbSAqLywKIAkJCQlFM0MyMUE3QjIxQjI1Q0EyMDAzQjMxQTMgLyogVVJMRXh0cmFzLm1tICov
LAogCQkJKTsKIAkJCXBhdGggPSBjb2NvYTsKQEAgLTU3NTcsNiArNTc2Myw4IEBACiAJCQkJNTEw
QTkxRjgyNEQzNjIyMTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFFQjEyNjQyNENBNkI2NjAwMENCMDMwIC8qIFNvbnlEdWFsU2hvY2s0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMTUxQTQxMUFFNjAwNDQ3QzRDIC8qIFNwYWNlYmFyU2Nyb2xs
aW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDM0ZFQjYxMjY3RkNEQjAwMDU0MDA2QSAvKiBT
cGFuQ0YuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMzRkVCNjQyNjdGQ0Y3NDAwNTQwMDZBIC8q
IFNwYW5Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzNDI1ODlDMjU1QjYwOUIwMDU5RUVE
RCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3RjRBQUEwMjA4
RkFFRjAwMEE2OEU5RSAvKiBTU0xLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
M0JDNUFDMDIwRTZDMERGMDBGNTg3OUYgLyogU3RhcnRMb2FkSW5EaWRGYWlsUHJvdmlzaW9uYWxM
b2FkLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9jZi9TcGFuQ0YuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL2NmL1NwYW5DRi5jcHAJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvY2YvU3BhbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9jZi9TcGFuQ0Yu
aD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURlNwYW5DRiwgRW1wdHkp
Cit7CisgICAgYXV0byBkYXRhID0gYWRvcHRDRihDRkRhdGFDcmVhdGUobnVsbHB0ciwgbnVsbHB0
ciwgMCkpOworCisgICAgeworICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEuZ2V0KCkp
OworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5zaXplKCksIDB1KTsKKyAgICAgICAgRVhQRUNUX0VR
KHNwYW4uZGF0YSgpLCBudWxscHRyKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGF1dG8gc3Bh
biA9IGFzQnl0ZXMoZGF0YSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFuLnNpemUoKSwgMHUpOwor
ICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIpOworICAgIH0KK30KKworVEVT
VChXVEZTcGFuQ0YsIEJ5dGVzKQoreworICAgIGNvbnN0IHVpbnQ4X3QgaW5wdXRbNF0gPSB7IDEs
IDIsIDMsIDQgfTsKKyAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRl
c05vQ29weShudWxscHRyLCBpbnB1dCwgNCwga0NGQWxsb2NhdG9yTnVsbCkpOworCisgICAgewor
ICAgICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEuZ2V0KCkpOworICAgICAgICBFWFBFQ1Rf
RVEoc3Bhbi5zaXplKCksIDR1KTsKKyAgICAgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHNwYW4uZGF0YSgpKSwgaW5wdXQpOworICAgIH0KKworICAgIHsKKyAg
ICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAgICAgICAgRVhQRUNUX0VRKHNwYW4u
c2l6ZSgpLCA0dSk7CisgICAgICAgIEVYUEVDVF9FUShyZWludGVycHJldF9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihzcGFuLmRhdGEoKSksIGlucHV0KTsKKyAgICB9Cit9CisKK30KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NvY29hL1NwYW5Db2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jb2NvYS9TcGFuQ29jb2EubW0JKG5vbmV4
aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY29jb2EvU3BhbkNvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8d3RmL2NvY29hL1NwYW5Db2NvYS5oPgorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV1RGU3BhbkNvY29hLCBFbXB0eSkKK3sKKyAgICBh
dXRvIGRhdGEgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0XSk7CisKKyAgICB7CisgICAg
ICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9FUShz
cGFuLnNpemUoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5kYXRhKCksIG51bGxwdHIp
OworICAgIH0KKworICAgIHsKKyAgICAgICAgYXV0byBzcGFuID0gYXNCeXRlcyhkYXRhKTsKKyAg
ICAgICAgRVhQRUNUX0VRKHNwYW4uc2l6ZSgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShzcGFu
LmRhdGEoKSwgbnVsbHB0cik7CisgICAgfQorfQorCitURVNUKFdURlNwYW5Db2NvYSwgQnl0ZXMp
Cit7CisgICAgdWludDhfdCBpbnB1dFs0XSA9IHsgMSwgMiwgMywgNCB9OworICAgIGF1dG8gZGF0
YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6aW5wdXQgbGVu
Z3RoOjQgZGVhbGxvY2F0b3I6Xih2b2lkKiwgTlNVSW50ZWdlcikgeyB9XSk7CisKKyAgICB7Cisg
ICAgICAgIGF1dG8gc3BhbiA9IGFzQnl0ZXMoZGF0YS5nZXQoKSk7CisgICAgICAgIEVYUEVDVF9F
UShzcGFuLnNpemUoKSwgNHUpOworICAgICAgICBFWFBFQ1RfRVEocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oc3Bhbi5kYXRhKCkpLCBpbnB1dCk7CisgICAgfQorCisgICAgeworICAg
ICAgICBhdXRvIHNwYW4gPSBhc0J5dGVzKGRhdGEpOworICAgICAgICBFWFBFQ1RfRVEoc3Bhbi5z
aXplKCksIDR1KTsKKyAgICAgICAgRVhQRUNUX0VRKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KHNwYW4uZGF0YSgpKSwgaW5wdXQpOworICAgIH0KK30KKworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>