<?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>217794</bug_id>
          
          <creation_ts>2020-10-15 16:24:24 -0700</creation_ts>
          <short_desc>Move AudioContext-specific logic out of BaseAudioContext</short_desc>
          <delta_ts>2020-10-15 20:14:01 -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>Web Audio</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>
          
          <blocked>212611</blocked>
    
    <blocked>217803</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698352</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-15 16:24:24 -0700</bug_when>
    <thetext>Move AudioContext-specific logic out of BaseAudioContext and to the AudioContext class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698354</commentid>
    <comment_count>1</comment_count>
      <attachid>411507</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-15 16:27:10 -0700</bug_when>
    <thetext>Created attachment 411507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698378</commentid>
    <comment_count>2</comment_count>
      <attachid>411507</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-10-15 16:52:38 -0700</bug_when>
    <thetext>Comment on attachment 411507
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698401</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-15 17:34:35 -0700</bug_when>
    <thetext>Committed r268565: &lt;https://trac.webkit.org/changeset/268565&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411507.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698402</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-15 17:35:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/70359447&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411507</attachid>
            <date>2020-10-15 16:27:10 -0700</date>
            <delta_ts>2020-10-15 17:34:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217794-20201015162707.patch</filename>
            <type>text/plain</type>
            <size>19337</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTEyNTVhZmFlNDI1NWEw
ODQ0YTA2ODI1OGQ2MjcyYmI2MzEwODZkZi4uOTM0ZmNlNjY4NGU4MzgxNjdlYzgzMTg1OGIyOGFi
NDQwMDg3MTYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBBdWRpb0NvbnRleHQt
c3BlY2lmaWMgbG9naWMgb3V0IG9mIEJhc2VBdWRpb0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzc5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgQXVkaW9Db250ZXh0LXNwZWNpZmlj
IGxvZ2ljIG91dCBvZiBCYXNlQXVkaW9Db250ZXh0IGFuZCBpbnRvIHRoZQorICAgICAgICBBdWRp
b0NvbnRleHQgY2xhc3MuIFRoaXMgcmVxdWlyZWQgaGF2aW5nIFdlYktpdEF1ZGlvQ29udGV4dCBz
dWJjbGFzcworICAgICAgICBBdWRpb0NvbnRleHQgaW5zdGVhZCBvZiBCYXNlQXVkaW9Db250ZXh0
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gV2ViLWZhY2luZyBiZWhhdmlvciBjaGFuZ2Uu
CisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0NvbnRleHQ6OnN1c3BlbmRSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9Db250ZXh0OjpyZXN1bWVSZW5kZXJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250
ZXh0Ojpub2RlV2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250
ZXh0OjpzdGFydFJlbmRlcmluZyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6Omxh
enlJbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6d2lsbFBhdXNl
UGxheWJhY2spOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFsaXplKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0Nv
bnRleHQ6Om5vZGVXaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVk
aW9Db250ZXh0OjptZWRpYVNlc3Npb24gY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9XZWJLaXRBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0QXVk
aW9Db250ZXh0OjpXZWJLaXRBdWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vV2ViS2l0QXVkaW9Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRBdWRpb0Nv
bnRleHQ6Omxpc3RlbmVyKToKKwogMjAyMC0xMC0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2ltcGxpZnkgbG9naWMgZm9yIGNhY2hpbmcgRkZU
U2V0dXBzIGluIEZGVEZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggMWQ1MmZkZWZjMmNmNTM4OWE5NmMyYTViM2Y3N2VjNzk5
M2VhNmI0Yy4uZDk0MjgyOWYzMjlmM2I5MGM5NjBhMWZlNjU4MDBiN2JlZTYzYWMxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAt
MzAsOCArMzAsOCBAQAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlv
VGltZXN0YW1wLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC05OSw2ICs5OSwxMiBAQCBBdWRpb0NvbnRleHQ6
OkF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEF1ZGlvQ29udGV4dE9wdGlv
bnMmIGNvbnRleAogewogfQogCisvLyBPbmx5IG5lZWRlZCBmb3IgV2ViS2l0T2ZmbGluZUF1ZGlv
Q29udGV4dC4KK0F1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCwg
dW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRh
cmdldCkKKyAgICA6IEJhc2VBdWRpb0NvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMs
IFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKK3sKK30KKwogZG91YmxlIEF1ZGlvQ29udGV4dDo6YmFz
ZUxhdGVuY3koKQogewogICAgIGxhenlJbml0aWFsaXplKCk7CkBAIC0xNTMsNiArMTU5LDEyNSBA
QCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUqIEF1ZGlvQ29udGV4dDo6ZGVzdGluYXRpb24o
KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUqPihC
YXNlQXVkaW9Db250ZXh0OjpkZXN0aW5hdGlvbigpKTsKIH0KIAordm9pZCBBdWRpb0NvbnRleHQ6
OnN1c3BlbmRSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpIHx8IGlzU3RvcHBlZCgpKSB7CisgICAgICAgIHBy
b21pc2UucmVqZWN0KEludmFsaWRTdGF0ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpDbG9zZWQgfHwgc3RhdGUoKSA9PSBTdGF0ZTo6
SW50ZXJydXB0ZWQgfHwgIWRlc3RpbmF0aW9uTm9kZSgpKSB7CisgICAgICAgIHByb21pc2UucmVq
ZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhZGRSZWFjdGlvbihTdGF0ZTo6
U3VzcGVuZGVkLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX3dhc1N1c3BlbmRlZEJ5U2NyaXB0
ID0gdHJ1ZTsKKworICAgIGlmICghd2lsbFBhdXNlUGxheWJhY2soKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbGF6eUluaXRpYWxpemUoKTsKKworICAgIGRlc3RpbmF0aW9uTm9kZSgpLT5zdXNw
ZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgc2V0
U3RhdGUoU3RhdGU6OlN1c3BlbmRlZCk7CisgICAgfSk7Cit9CisKK3ZvaWQgQXVkaW9Db250ZXh0
OjpyZXN1bWVSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sK
KyAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpIHx8IGlzU3RvcHBlZCgpKSB7CisgICAgICAgIHBy
b21pc2UucmVqZWN0KEludmFsaWRTdGF0ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpDbG9zZWQgfHwgIWRlc3RpbmF0aW9uTm9kZSgp
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhZGRSZWFjdGlvbihTdGF0ZTo6UnVubmluZywgV1RGTW92ZShwcm9taXNlKSk7CisgICAg
bV93YXNTdXNwZW5kZWRCeVNjcmlwdCA9IGZhbHNlOworCisgICAgaWYgKCF3aWxsQmVnaW5QbGF5
YmFjaygpKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXp5SW5pdGlhbGl6ZSgpOworCisgICAg
ZGVzdGluYXRpb25Ob2RlKCktPnJlc3VtZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSB7CisgICAgICAgIHNldFN0YXRlKFN0YXRlOjpSdW5uaW5nKTsKKyAgICB9KTsKK30K
Kwordm9pZCBBdWRpb0NvbnRleHQ6Om5vZGVXaWxsQmVnaW5QbGF5YmFjaygpCit7CisgICAgLy8g
Q2FsbGVkIGJ5IHNjaGVkdWxlZCBBdWRpb05vZGVzIHdoZW4gY2xpZW50cyBzY2hlZHVsZSB0aGVp
ciBzdGFydCB0aW1lcy4KKyAgICAvLyBQcmlvciB0byB0aGUgaW50cm9kdWN0aW9uIG9mIHN1c3Bl
bmQoKSwgcmVzdW1lKCksIGFuZCBzdG9wKCksIHN0YXJ0aW5nCisgICAgLy8gYSBzY2hlZHVsZWQg
QXVkaW9Ob2RlIHdvdWxkIHJlbW92ZSB0aGUgdXNlci1nZXN0dXJlIHJlc3RyaWN0aW9uLCBpZiBw
cmVzZW50LAorICAgIC8vIGFuZCB3b3VsZCB0aHVzIHVubXV0ZSB0aGUgY29udGV4dC4gTm93IHRo
YXQgQXVkaW9Db250ZXh0IHN0YXlzIGluIHRoZQorICAgIC8vICJzdXNwZW5kZWQiIHN0YXRlIGlm
IGEgdXNlci1nZXN0dXJlIHJlc3RyaWN0aW9uIGlzIHByZXNlbnQsIHN0YXJ0aW5nIGEKKyAgICAv
LyBzY2hlZHVsZSBBdWRpb05vZGUgc2hvdWxkIHNldCB0aGUgc3RhdGUgdG8gInJ1bm5pbmciLCBi
dXQgb25seSBpZiB0aGUKKyAgICAvLyB1c2VyLWdlc3R1cmUgcmVzdHJpY3Rpb24gaXMgc2V0Lgor
ICAgIGlmICh1c2VyR2VzdHVyZVJlcXVpcmVkRm9yQXVkaW9TdGFydCgpKQorICAgICAgICBzdGFy
dFJlbmRlcmluZygpOworfQorCit2b2lkIEF1ZGlvQ29udGV4dDo6c3RhcnRSZW5kZXJpbmcoKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisgICAgaWYgKGlzU3RvcHBlZCgpIHx8
ICF3aWxsQmVnaW5QbGF5YmFjaygpIHx8IG1fd2FzU3VzcGVuZGVkQnlTY3JpcHQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1ha2VQZW5kaW5nQWN0aXZpdHkoKTsKKworICAgIHNldFN0YXRlKFN0
YXRlOjpSdW5uaW5nKTsKKworICAgIGxhenlJbml0aWFsaXplKCk7CisgICAgZGVzdGluYXRpb24o
KS0+c3RhcnRSZW5kZXJpbmcoKTsKK30KKwordm9pZCBBdWRpb0NvbnRleHQ6OmxhenlJbml0aWFs
aXplKCkKK3sKKyAgICBpZiAoaXNJbml0aWFsaXplZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBCYXNlQXVkaW9Db250ZXh0OjpsYXp5SW5pdGlhbGl6ZSgpOworICAgIGlmIChpc0luaXRpYWxp
emVkKCkpIHsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uTm9kZSgpICYmIHN0YXRlKCkgIT0gU3Rh
dGU6OlJ1bm5pbmcpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgc3RhcnRzIHRoZSBhdWRpbyB0aHJl
YWQuIFRoZSBkZXN0aW5hdGlvbiBub2RlJ3MgcHJvdmlkZUlucHV0KCkgbWV0aG9kIHdpbGwgbm93
IGJlIGNhbGxlZCByZXBlYXRlZGx5IHRvIHJlbmRlciBhdWRpby4KKyAgICAgICAgICAgIC8vIEVh
Y2ggdGltZSBwcm92aWRlSW5wdXQoKSBpcyBjYWxsZWQsIGEgcG9ydGlvbiBvZiB0aGUgYXVkaW8g
c3RyZWFtIGlzIHJlbmRlcmVkLiBMZXQncyBjYWxsIHRoaXMgdGltZSBwZXJpb2QgYSAicmVuZGVy
IHF1YW50dW0iLgorICAgICAgICAgICAgLy8gTk9URTogZm9yIG5vdyBkZWZhdWx0IEF1ZGlvQ29u
dGV4dCBkb2VzIG5vdCBuZWVkIGFuIGV4cGxpY2l0IHN0YXJ0UmVuZGVyaW5nKCkgY2FsbCBmcm9t
IEphdmFTY3JpcHQuCisgICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byBjb25zaWRlciByZXF1
aXJpbmcgaXQgZm9yIHN5bW1ldHJ5IHdpdGggT2ZmbGluZUF1ZGlvQ29udGV4dC4KKyAgICAgICAg
ICAgIHN0YXJ0UmVuZGVyaW5nKCk7CisgICAgICAgICAgICArK3NfaGFyZHdhcmVDb250ZXh0Q291
bnQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgQXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQ
bGF5YmFjaygpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICh1c2VyR2Vz
dHVyZVJlcXVpcmVkRm9yQXVkaW9TdGFydCgpKSB7CisgICAgICAgIGlmICghZG9jdW1lbnQtPnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQmFzZUF1ZGlvQ29udGV4dDo6UmVx
dWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKKyAgICB9CisKKyAgICBp
ZiAocGFnZUNvbnNlbnRSZXF1aXJlZEZvckF1ZGlvU3RhcnQoKSkgeworICAgICAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmNhblN0
YXJ0TWVkaWEoKSkgeworICAgICAgICAgICAgZG9jdW1lbnQtPmFkZE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcigqdGhpcyk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAg
ICAgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihCYXNlQXVkaW9Db250ZXh0OjpSZXF1aXJlUGFn
ZUNvbnNlbnRGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb24pOworICAgIH0KKworICAgIHJldHVybiBt
ZWRpYVNlc3Npb24oKS0+Y2xpZW50V2lsbFBhdXNlUGxheWJhY2soKTsKK30KKwogI2lmIEVOQUJM
RShWSURFTykKIAogRXhjZXB0aW9uT3I8UmVmPE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZT4+
IEF1ZGlvQ29udGV4dDo6Y3JlYXRlTWVkaWFFbGVtZW50U291cmNlKEhUTUxNZWRpYUVsZW1lbnQm
IG1lZGlhRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5oCmluZGV4IDY3OWNjYWQyOTAyODVlNzkyZmM5NDJmNDI1MDhlMTI3MjY2ZmUxMmIu
LmY5YzEzODc1MzAwM2FiZDcxNjI2M2Q0NTRhMDUzNTE4ZDMzMmQ4ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtMjcsMTEgKzI3LDEx
IEBACiAKICNpbmNsdWRlICJBdWRpb0NvbnRleHRPcHRpb25zLmgiCiAjaW5jbHVkZSAiQmFzZUF1
ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZTsKIAogc3RydWN0IEF1ZGlvVGltZXN0YW1wOwogCkBAIC01Nyw4
ICs1NywyNCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGU+PiBjcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uKCk7CiAjZW5kaWYK
IAorICAgIHZvaWQgc3VzcGVuZFJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CisgICAgdm9pZCByZXN1bWVSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwor
CisgICAgdm9pZCBub2RlV2lsbEJlZ2luUGxheWJhY2soKSBmaW5hbDsKKyAgICB2b2lkIGxhenlJ
bml0aWFsaXplKCkgZmluYWw7CisKKyAgICB2b2lkIHN0YXJ0UmVuZGVyaW5nKCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBleHBsaWNpdCBBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBjb25zdCBBdWRpb0Nv
bnRleHRPcHRpb25zJiA9IHsgfSk7CisgICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFubmVscywgUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIHJlbmRlclRhcmdldCk7
CisKIHByaXZhdGU6Ci0gICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgY29uc3QgQXVkaW9Db250
ZXh0T3B0aW9ucyYpOworICAgIGJvb2wgd2lsbFBhdXNlUGxheWJhY2soKTsKKworICAgIC8vIFtb
c3VzcGVuZGVkIGJ5IHVzZXJdXSBmbGFnIGluIHRoZSBzcGVjaWZpY2F0aW9uOgorICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdWRpby8jZG9tLWF1ZGlvY29udGV4dC1zdXNwZW5kZWQt
YnktdXNlci1zbG90CisgICAgYm9vbCBtX3dhc1N1c3BlbmRlZEJ5U2NyaXB0IHsgZmFsc2UgfTsK
IH07CiAKIH0gLy8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5kZXggMWQ5YWY2NjZmYTJlODY5MGNmZGY2MDlj
NDJhNDYzZWU2MDliMjU2OS4uMWZkYzYxOTAxZjU2Y2FjNjM5YjE3ODhiZGQyMTU5N2Y4Y2UwNTAy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuY3BwCkBAIC0yMjMsMTkgKzIyMyw5IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6
bGF6eUluaXRpYWxpemUoKQogICAgIGlmIChtX2lzQXVkaW9UaHJlYWRGaW5pc2hlZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZGVzdGluYXRpb25Ob2RlKSB7CisgICAgaWYgKG1fZGVz
dGluYXRpb25Ob2RlKQogICAgICAgICBtX2Rlc3RpbmF0aW9uTm9kZS0+aW5pdGlhbGl6ZSgpOwog
Ci0gICAgICAgIGlmICghaXNPZmZsaW5lQ29udGV4dCgpICYmIHN0YXRlKCkgIT0gU3RhdGU6OlJ1
bm5pbmcpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgc3RhcnRzIHRoZSBhdWRpbyB0aHJlYWQuIFRo
ZSBkZXN0aW5hdGlvbiBub2RlJ3MgcHJvdmlkZUlucHV0KCkgbWV0aG9kIHdpbGwgbm93IGJlIGNh
bGxlZCByZXBlYXRlZGx5IHRvIHJlbmRlciBhdWRpby4KLSAgICAgICAgICAgIC8vIEVhY2ggdGlt
ZSBwcm92aWRlSW5wdXQoKSBpcyBjYWxsZWQsIGEgcG9ydGlvbiBvZiB0aGUgYXVkaW8gc3RyZWFt
IGlzIHJlbmRlcmVkLiBMZXQncyBjYWxsIHRoaXMgdGltZSBwZXJpb2QgYSAicmVuZGVyIHF1YW50
dW0iLgotICAgICAgICAgICAgLy8gTk9URTogZm9yIG5vdyBkZWZhdWx0IEF1ZGlvQ29udGV4dCBk
b2VzIG5vdCBuZWVkIGFuIGV4cGxpY2l0IHN0YXJ0UmVuZGVyaW5nKCkgY2FsbCBmcm9tIEphdmFT
Y3JpcHQuCi0gICAgICAgICAgICAvLyBXZSBtYXkgd2FudCB0byBjb25zaWRlciByZXF1aXJpbmcg
aXQgZm9yIHN5bW1ldHJ5IHdpdGggT2ZmbGluZUF1ZGlvQ29udGV4dC4KLSAgICAgICAgICAgIHN0
YXJ0UmVuZGVyaW5nKCk7Ci0gICAgICAgICAgICArK3NfaGFyZHdhcmVDb250ZXh0Q291bnQ7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KICAgICBtX2lzSW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCkBAIC0x
MDAzLDE5ICs5OTMsNiBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBCYXNlQXVkaW9Db250ZXh0
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKICAgICByZXR1cm4gQWN0aXZlRE9NT2Jq
ZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiB9CiAKLXZvaWQgQmFzZUF1ZGlvQ29udGV4
dDo6bm9kZVdpbGxCZWdpblBsYXliYWNrKCkKLXsKLSAgICAvLyBDYWxsZWQgYnkgc2NoZWR1bGVk
IEF1ZGlvTm9kZXMgd2hlbiBjbGllbnRzIHNjaGVkdWxlIHRoZWlyIHN0YXJ0IHRpbWVzLgotICAg
IC8vIFByaW9yIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2Ygc3VzcGVuZCgpLCByZXN1bWUoKSwgYW5k
IHN0b3AoKSwgc3RhcnRpbmcKLSAgICAvLyBhIHNjaGVkdWxlZCBBdWRpb05vZGUgd291bGQgcmVt
b3ZlIHRoZSB1c2VyLWdlc3R1cmUgcmVzdHJpY3Rpb24sIGlmIHByZXNlbnQsCi0gICAgLy8gYW5k
IHdvdWxkIHRodXMgdW5tdXRlIHRoZSBjb250ZXh0LiBOb3cgdGhhdCBBdWRpb0NvbnRleHQgc3Rh
eXMgaW4gdGhlCi0gICAgLy8gInN1c3BlbmRlZCIgc3RhdGUgaWYgYSB1c2VyLWdlc3R1cmUgcmVz
dHJpY3Rpb24gaXMgcHJlc2VudCwgc3RhcnRpbmcgYQotICAgIC8vIHNjaGVkdWxlIEF1ZGlvTm9k
ZSBzaG91bGQgc2V0IHRoZSBzdGF0ZSB0byAicnVubmluZyIsIGJ1dCBvbmx5IGlmIHRoZQotICAg
IC8vIHVzZXItZ2VzdHVyZSByZXN0cmljdGlvbiBpcyBzZXQuCi0gICAgaWYgKHVzZXJHZXN0dXJl
UmVxdWlyZWRGb3JBdWRpb1N0YXJ0KCkpCi0gICAgICAgIHN0YXJ0UmVuZGVyaW5nKCk7Ci19Ci0K
IHN0YXRpYyBib29sIHNob3VsZERvY3VtZW50QWxsb3dXZWJBdWRpb1RvQXV0b1BsYXkoY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmIChkb2N1bWVudC5wcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpIHx8IGRvY3VtZW50LmlzQ2FwdHVyaW5nKCkpCkBAIC0xMDUzLDQ0ICsx
MDMwLDYgQEAgYm9vbCBCYXNlQXVkaW9Db250ZXh0Ojp3aWxsQmVnaW5QbGF5YmFjaygpCiAgICAg
cmV0dXJuIHdpbGxCZWdpbjsKIH0KIAotYm9vbCBCYXNlQXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQ
bGF5YmFjaygpCi17Ci0gICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwotICAg
IGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICh1c2VyR2Vz
dHVyZVJlcXVpcmVkRm9yQXVkaW9TdGFydCgpKSB7Ci0gICAgICAgIGlmICghZG9jdW1lbnQtPnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQmFzZUF1ZGlvQ29udGV4dDo6UmVx
dWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKLSAgICB9Ci0KLSAgICBp
ZiAocGFnZUNvbnNlbnRSZXF1aXJlZEZvckF1ZGlvU3RhcnQoKSkgewotICAgICAgICBhdXRvKiBw
YWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKLSAgICAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmNhblN0
YXJ0TWVkaWEoKSkgewotICAgICAgICAgICAgZG9jdW1lbnQtPmFkZE1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcigqdGhpcyk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihCYXNlQXVkaW9Db250ZXh0OjpSZXF1aXJlUGFn
ZUNvbnNlbnRGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb24pOwotICAgIH0KLSAgICAKLSAgICByZXR1
cm4gbV9tZWRpYVNlc3Npb24tPmNsaWVudFdpbGxQYXVzZVBsYXliYWNrKCk7Ci19Ci0KLXZvaWQg
QmFzZUF1ZGlvQ29udGV4dDo6c3RhcnRSZW5kZXJpbmcoKQotewotICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUik7Ci0gICAgaWYgKG1faXNTdG9wU2NoZWR1bGVkIHx8ICF3aWxsQmVnaW5QbGF5
YmFjaygpIHx8IG1fd2FzU3VzcGVuZGVkQnlTY3JpcHQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1ha2VQZW5kaW5nQWN0aXZpdHkoKTsKLQotICAgIHNldFN0YXRlKFN0YXRlOjpSdW5uaW5nKTsK
LQotICAgIGxhenlJbml0aWFsaXplKCk7Ci0gICAgZGVzdGluYXRpb24oKS0+c3RhcnRSZW5kZXJp
bmcoKTsKLX0KLQogdm9pZCBCYXNlQXVkaW9Db250ZXh0OjptZWRpYUNhblN0YXJ0KERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGRvY3VtZW50LCAmZG9jdW1lbnQgPT0g
dGhpcy0+ZG9jdW1lbnQoKSk7CkBAIC0xMTIyLDYgKzEwNjEsNyBAQCB2b2lkIEJhc2VBdWRpb0Nv
bnRleHQ6OmlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCkKICAgICB9KTsKIH0KIAorLy8gRklYTUU6
IE1vdmUgdG8gT2ZmbGluZUF1ZGlvQ29udGV4dCBvbmNlIFdlYktpdE9mZmxpbmVBdWRpb0NvbnRl
eHQgZ2V0cyByZW1vdmVkLgogdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpmaW5pc2hlZFJlbmRlcmlu
Zyhib29sIGRpZFJlbmRlcmluZykKIHsKICAgICBBU1NFUlQoaXNPZmZsaW5lQ29udGV4dCgpKTsK
QEAgLTExNzgsNjEgKzExMTgsMTEgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpkZWNyZW1lbnRB
Y3RpdmVTb3VyY2VDb3VudCgpCiAgICAgLS1tX2FjdGl2ZVNvdXJjZUNvdW50OwogfQogCi12b2lk
IEJhc2VBdWRpb0NvbnRleHQ6OnN1c3BlbmRSZW5kZXJpbmcoRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKLXsKLSAgICBpZiAoaXNPZmZsaW5lQ29udGV4dCgpIHx8IG1faXNTdG9w
U2NoZWR1bGVkKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEludmFsaWRTdGF0ZUVycm9yKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpDbG9z
ZWQgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJydXB0ZWQgfHwgIW1fZGVzdGluYXRpb25Ob2Rl
KSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBhZGRSZWFjdGlvbihTdGF0ZTo6U3VzcGVuZGVkLCBXVEZNb3ZlKHByb21pc2UpKTsKLSAg
ICBtX3dhc1N1c3BlbmRlZEJ5U2NyaXB0ID0gdHJ1ZTsKLQotICAgIGlmICghd2lsbFBhdXNlUGxh
eWJhY2soKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbGF6eUluaXRpYWxpemUoKTsKLQotICAg
IG1fZGVzdGluYXRpb25Ob2RlLT5zdXNwZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldIHsKLSAgICAgICAgc2V0U3RhdGUoU3RhdGU6OlN1c3BlbmRlZCk7Ci0gICAgfSk7
Ci19Ci0KIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6ZGlkU3VzcGVuZFJlbmRlcmluZyhzaXplX3Qp
CiB7CiAgICAgc2V0U3RhdGUoU3RhdGU6OlN1c3BlbmRlZCk7CiB9CiAKLXZvaWQgQmFzZUF1ZGlv
Q29udGV4dDo6cmVzdW1lUmVuZGVyaW5nKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UpCi17Ci0gICAgaWYgKGlzT2ZmbGluZUNvbnRleHQoKSB8fCBtX2lzU3RvcFNjaGVkdWxlZCkg
ewotICAgICAgICBwcm9taXNlLnJlamVjdChJbnZhbGlkU3RhdGVFcnJvcik7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q2xvc2VkIHx8ICFtX2Rl
c3RpbmF0aW9uTm9kZSkgewotICAgICAgICBwcm9taXNlLnJlamVjdCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgYWRkUmVhY3Rpb24oU3RhdGU6OlJ1bm5pbmcsIFdURk1vdmUocHJv
bWlzZSkpOwotICAgIG1fd2FzU3VzcGVuZGVkQnlTY3JpcHQgPSBmYWxzZTsKLQotICAgIGlmICgh
d2lsbEJlZ2luUGxheWJhY2soKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbGF6eUluaXRpYWxp
emUoKTsKLQotICAgIG1fZGVzdGluYXRpb25Ob2RlLT5yZXN1bWUoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBzZXRTdGF0ZShTdGF0ZTo6UnVubmluZyk7
Ci0gICAgfSk7Ci19Ci0KIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6c3VzcGVuZFBsYXliYWNrKCkK
IHsKICAgICBpZiAoIW1fZGVzdGluYXRpb25Ob2RlIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkNsb3Nl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlv
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250
ZXh0LmgKaW5kZXggOWFiNzY5N2NlYWUxNDQwZDhhYTk1MmYwNjMyZmU4ZTkxNThkYTM1YS4uNjVm
YzhmOTAwZjIxNjlmY2I1NjA1MmZlMzZjMzRiOTEyODQ3YTE1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmgKQEAgLTE0NCw5ICsx
NDQsNiBAQCBwdWJsaWM6CiAKICAgICBBdWRpb0xpc3RlbmVyJiBsaXN0ZW5lcigpOwogCi0gICAg
dm9pZCBzdXNwZW5kUmVuZGVyaW5nKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKLSAgICB2
b2lkIHJlc3VtZVJlbmRlcmluZyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7Ci0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkU3VzcGVuZFJlbmRlcmluZyhzaXplX3QgZnJhbWUpOwogCiAgICAgQXVk
aW9CdWZmZXIqIHJlbmRlclRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVGFyZ2V0Lmdl
dCgpOyB9CkBAIC0yNTgsNyArMjU1LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2b2lkIHN0YXJ0UmVuZGVyaW5nKCk7CiAgICAgdm9p
ZCBmaW5pc2hlZFJlbmRlcmluZyhib29sIGRpZFJlbmRlcmluZyk7CiAKICAgICBzdGF0aWMgdW5z
aWduZWQgc19oYXJkd2FyZUNvbnRleHRDb3VudDsKQEAgLTI3Niw3ICsyNzIsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKCk7CiAKLSAgICB2b2lkIG5vZGVX
aWxsQmVnaW5QbGF5YmFjaygpOworICAgIHZpcnR1YWwgdm9pZCBub2RlV2lsbEJlZ2luUGxheWJh
Y2soKSB7IH0KIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYg
bG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sb2dnZXIuZ2V0KCk7IH0KQEAgLTMxNyw3
ICszMTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWZOb2RlKEF1ZGlvTm9kZSYpOwogICAgIHZv
aWQgZGVyZWZOb2RlKEF1ZGlvTm9kZSYpOwogCi0gICAgdm9pZCBsYXp5SW5pdGlhbGl6ZSgpOwor
ICAgIHZpcnR1YWwgdm9pZCBsYXp5SW5pdGlhbGl6ZSgpOwogCiAgICAgc3RhdGljIGJvb2wgaXNT
dXBwb3J0ZWRTYW1wbGVSYXRlKGZsb2F0IHNhbXBsZVJhdGUpOwogCkBAIC0zNTAsMTQgKzM0Niwx
MyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoT2ZmbGluZVJlbmRl
cmluZyhFeGNlcHRpb25PcjxSZWY8QXVkaW9CdWZmZXI+PiYmKSB7IH0KIAotcHJpdmF0ZToKLSAg
ICB2b2lkIGNvbnN0cnVjdENvbW1vbigpOwotCi0gICAgYm9vbCB3aWxsUGF1c2VQbGF5YmFjaygp
OwotCiAgICAgYm9vbCB1c2VyR2VzdHVyZVJlcXVpcmVkRm9yQXVkaW9TdGFydCgpIGNvbnN0IHsg
cmV0dXJuICFpc09mZmxpbmVDb250ZXh0KCkgJiYgbV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNl
ckdlc3R1cmVGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb247IH0KICAgICBib29sIHBhZ2VDb25zZW50
UmVxdWlyZWRGb3JBdWRpb1N0YXJ0KCkgY29uc3QgeyByZXR1cm4gIWlzT2ZmbGluZUNvbnRleHQo
KSAmJiBtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVQYWdlQ29uc2VudEZvckF1ZGlvU3RhcnRSZXN0
cmljdGlvbjsgfQogCisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIG1lZGlhU2Vzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fbWVkaWFTZXNzaW9uLmdldCgpOyB9Citwcml2YXRlOgorICAgIHZvaWQg
Y29uc3RydWN0Q29tbW9uKCk7CisKICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICB2b2lkIHNjaGVk
dWxlTm9kZURlbGV0aW9uKCk7CkBAIC00NzYsMTAgKzQ3MSw2IEBAIHByaXZhdGU6CiAKICAgICBI
YXNoTWFwPFN0cmluZywgVmVjdG9yPEF1ZGlvUGFyYW1EZXNjcmlwdG9yPj4gbV9wYXJhbWV0ZXJE
ZXNjcmlwdG9yTWFwOwogCi0gICAgLy8gW1tzdXNwZW5kZWQgYnkgdXNlcl1dIGZsYWcgaW4gdGhl
IHNwZWNpZmljYXRpb246Ci0gICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1ZGlvLyNk
b20tYXVkaW9jb250ZXh0LXN1c3BlbmRlZC1ieS11c2VyLXNsb3QKLSAgICBib29sIG1fd2FzU3Vz
cGVuZGVkQnlTY3JpcHQgeyBmYWxzZSB9OwotCiAgICAgLy8gVGhlc2UgYXJlIGNhY2hlZCBwZXIg
YXVkaW8gY29udGV4dCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhleSBjYW5ub3QgYmUKICAg
ICAvLyBzdGF0aWMgYmVjYXVzZSB0aGV5IHJlbHkgb24gdGhlIHNhbXBsZSByYXRlLgogICAgIFJl
ZlB0cjxQZXJpb2RpY1dhdmU+IG1fY2FjaGVkUGVyaW9kaWNXYXZlU2luZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5oCmluZGV4IDdkNjVlMjVlYjU1NDFhOTc3NmQ1MDA2ZTE3MmQyMDA1YjQzZGU4
ZjQuLmM4ZTkyNjc5MGJlYzA2ZDIxMzg0OGExNjhiZmRmODMxZTMwODMxODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
ZnJhbWVzUGVyQnVmZmVyKCkgY29uc3Q7CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQogICAgIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHN0YXJ0UmVuZGVyaW5nKCkgZmluYWw7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4p
OwogICAgIHZvaWQgY3JlYXRlRGVzdGluYXRpb24oKTsKQEAgLTU2LDcgKzU4LDYgQEAgcHJpdmF0
ZToKICAgICBib29sIHJlcXVpcmVzVGFpbFByb2Nlc3NpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgdm9pZCBlbmFibGVJbnB1dChjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQpIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0YXJ0UmVuZGVyaW5nKCkgZmlu
YWw7CiAgICAgdm9pZCByZXN1bWUoRnVuY3Rpb248dm9pZCAoKT4mJikgZmluYWw7CiAgICAgdm9p
ZCBzdXNwZW5kKEZ1bmN0aW9uPHZvaWQgKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2xvc2UoRnVu
Y3Rpb248dm9pZCAoKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvQ29udGV4dC5jcHAKaW5kZXggZjcyNmE3ODJjMjUyYTg4
YWJlMjgyMTg4YmNlYWRhMWQ0NmZjNTVmOS4uZWNmMDVjNGIzNTY3N2U2MWI2NjIzZmExOWUyZmNl
NTUwM2EwMWI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9X
ZWJLaXRBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcApAQCAtNzksMTMgKzc5LDEzIEBAIEV4Y2VwdGlvbk9y
PFJlZjxXZWJLaXRBdWRpb0NvbnRleHQ+PiBXZWJLaXRBdWRpb0NvbnRleHQ6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lCiAKIC8vIENvbnN0cnVjdG9yIGZvciByZW5kZXJpbmcgdG8gdGhlIGF1ZGlv
IGhhcmR3YXJlLgogV2ViS2l0QXVkaW9Db250ZXh0OjpXZWJLaXRBdWRpb0NvbnRleHQoRG9jdW1l
bnQmIGRvY3VtZW50KQotICAgIDogQmFzZUF1ZGlvQ29udGV4dChkb2N1bWVudCkKKyAgICA6IEF1
ZGlvQ29udGV4dChkb2N1bWVudCkKIHsKIH0KIAogLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUg
KG5vbi1yZWFsdGltZSkgcmVuZGVyaW5nLgogV2ViS2l0QXVkaW9Db250ZXh0OjpXZWJLaXRBdWRp
b0NvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8QXVkaW9CdWZmZXI+JiYgcmVuZGVyVGFy
Z2V0KQotICAgIDogQmFzZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0LT5udW1i
ZXJPZkNoYW5uZWxzKCksIFdURk1vdmUocmVuZGVyVGFyZ2V0KSkKKyAgICA6IEF1ZGlvQ29udGV4
dChkb2N1bWVudCwgcmVuZGVyVGFyZ2V0LT5udW1iZXJPZkNoYW5uZWxzKCksIFdURk1vdmUocmVu
ZGVyVGFyZ2V0KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XZWJLaXRBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmgKaW5kZXggOTg4MGM0ZTA4ZmYwN2I2NDNiYjgxYjI5
MDk5YTE2ZmYxN2IwMmQ5MS4uMzZjMWM5MTVjZjBlZjJkNjk0MmM5MWY4YTI5OGNkMjk0YWU1N2Vi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XZWJLaXRBdWRp
b0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1
ZGlvQ29udGV4dC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSAiQmFzZUF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYktpdEF1ZGlvTGlzdGVuZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYs
OCArNDYsNyBAQCBjbGFzcyBXZWJLaXRPc2NpbGxhdG9yTm9kZTsKIC8vIEF1ZGlvQ29udGV4dCBp
cyB0aGUgY29ybmVyc3RvbmUgb2YgdGhlIHdlYiBhdWRpbyBBUEkgYW5kIGFsbCBBdWRpb05vZGVz
IGFyZSBjcmVhdGVkIGZyb20gaXQuCiAvLyBGb3IgdGhyZWFkIHNhZmV0eSBiZXR3ZWVuIHRoZSBh
dWRpbyB0aHJlYWQgYW5kIHRoZSBtYWluIHRocmVhZCwgaXQgaGFzIGEgcmVuZGVyaW5nIGdyYXBo
IGxvY2tpbmcgbWVjaGFuaXNtLgogCi1jbGFzcyBXZWJLaXRBdWRpb0NvbnRleHQKLSAgICA6IHB1
YmxpYyBCYXNlQXVkaW9Db250ZXh0CitjbGFzcyBXZWJLaXRBdWRpb0NvbnRleHQgOiBwdWJsaWMg
QXVkaW9Db250ZXh0CiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJLaXRBdWRpb0Nv
bnRleHQpOwogcHVibGljOgpAQCAtNTYsNyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNs
b3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAotICAgIFdlYktpdEF1ZGlvTGlzdGVu
ZXImIGxpc3RlbmVyKCkgeyByZXR1cm4gZG93bmNhc3Q8V2ViS2l0QXVkaW9MaXN0ZW5lcj4oQmFz
ZUF1ZGlvQ29udGV4dDo6bGlzdGVuZXIoKSk7IH0KKyAgICBXZWJLaXRBdWRpb0xpc3RlbmVyJiBs
aXN0ZW5lcigpIHsgcmV0dXJuIGRvd25jYXN0PFdlYktpdEF1ZGlvTGlzdGVuZXI+KEF1ZGlvQ29u
dGV4dDo6bGlzdGVuZXIoKSk7IH0KIAogICAgIC8vIFRoZSBBdWRpb05vZGUgY3JlYXRlIG1ldGhv
ZHMgYXJlIGNhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQgKGZyb20gSmF2YVNjcmlwdCkuCiAjaWYg
RU5BQkxFKFZJREVPKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>