<?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>204729</bug_id>
          
          <creation_ts>2019-12-01 09:29:32 -0800</creation_ts>
          <short_desc>Add a Calc log channel, and support type traits for calc-related classes</short_desc>
          <delta_ts>2019-12-01 15:53:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>204730</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594426</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 09:29:32 -0800</bug_when>
    <thetext>Add a Calc log channel, and support type traits for calc-related classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594427</commentid>
    <comment_count>1</comment_count>
      <attachid>384575</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 09:30:29 -0800</bug_when>
    <thetext>Created attachment 384575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594455</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 15:52:15 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/252970/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594457</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-01 15:53:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57546787&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384575</attachid>
            <date>2019-12-01 09:30:29 -0800</date>
            <delta_ts>2019-12-01 10:34:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204729-20191201093028.patch</filename>
            <type>text/plain</type>
            <size>20768</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhhZTgxY2Y2NDMyYTBj
ZWViNWUxMjE5YzFkMjk5NTc5ZGZmNzYzMC4uNTdmNmI1MjgwZGIxMGMxYzE4MDI0Y2M4YTQzNjcy
YmQ1YWRiNDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTEyLTAxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIENhbGMg
bG9nIGNoYW5uZWwsIGFuZCBzdXBwb3J0IHR5cGUgdHJhaXRzIGZvciBjYWxjLXJlbGF0ZWQgY2xh
c3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
NzI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHR5cGUgdHJhaXRzIHN1cHBvcnQgZm9yIENhbGN1bGF0aW9uVmFsdWUgYW5kIENTU0NhbGN1bGF0
aW9uVmFsdWUgY2xhc3Nlcy4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIENhbGMgbG9nZ2luZyBj
aGFubmVsIGFuZCBkdW1wIHBvc3QtcGFyc2luZyB2YWx1ZXMsIGFuZCBpbiBzb21lIGVycm9yIGNh
c2VzLnMKKworICAgICAgICAqIGNzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAoV2ViQ29yZTo6cHJldHR5UHJpbnROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OnByZXR0eVByaW50Tm9kZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0NhbGNPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3Bl
cmF0aW9uOjpjcmVhdGVNaW5Pck1heCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjT3BlcmF0
aW9uOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9uTm9k
ZVBhcnNlcjo6cGFyc2VDYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNTUyk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmR1bXAgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUpOgorICAgICAgICAqIGNzcy9DU1NDYWxjdWxhdGlvblZh
bHVlLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWxjRXhwcmVzc2lvbk51bWJlcjo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWxjRXhwcmVzc2lvbk9wZXJhdGlvbjo6b3BlcmF0b3I9PSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWxjRXhwcmVzc2lvbkxlbmd0aDo6b3BlcmF0b3I9PSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoOjpDYWxjRXhw
cmVzc2lvbkJsZW5kTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbGNFeHByZXNzaW9uQmxl
bmRMZW5ndGg6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL0NhbGN1bGF0
aW9uVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvQ2FsY0V4cHJlc3Npb25OdW1iZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9DYWxjRXhwcmVzc2lvbkxlbmd0aCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aCk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorCiAyMDE5LTExLTI3ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBHZW5lcmF0ZSBm
ZXdlciBJbmxpbmVJdGVtcyB3aGVuIG5ldyBsaW5lcyBhcmUgbm90IHByZXNlcnZlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCmluZGV4IDEwZGE1OThjYzAxN2Rh
NjVjYmQ3MWI1NzQ5MjZkODkyYjRkYTUwYzYuLmJkOTVkODJhMTlmMTk1N2ViNjkxOTk4YmEzM2Zk
MjhmYTdiOTJiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlv
blZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5j
cHAKQEAgLTM1LDIzICszNSwzMyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUg
IkNTU1BhcnNlclRva2VuUmFuZ2UuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZU1hcHBp
bmdzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIK
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIHN0YXRpYyBjb25z
dCBpbnQgbWF4RXhwcmVzc2lvbkRlcHRoID0gMTAwOwogCi1lbnVtIFBhcnNlU3RhdGUgewotICAg
IE9LLAotICAgIFRvb0RlZXAsCi0gICAgTm9Nb3JlVG9rZW5zCi19OworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ1NTQ2FsY1ByaW1pdGl2ZVZhbHVlOworY2xhc3MgQ1NTQ2FsY09wZXJhdGlv
bjsKK30KKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NDQUxDRVhQUkVTU0lPTl9OT0RFKENT
U0NhbGNQcmltaXRpdmVWYWx1ZSwgdHlwZSgpID09IFdlYkNvcmU6OkNTU0NhbGNFeHByZXNzaW9u
Tm9kZTo6VHlwZTo6Q3NzQ2FsY1ByaW1pdGl2ZVZhbHVlKQorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DU1NDQUxDRVhQUkVTU0lPTl9OT0RFKENTU0NhbGNPcGVyYXRpb24sIHR5cGUoKSA9PSBXZWJD
b3JlOjpDU1NDYWxjRXhwcmVzc2lvbk5vZGU6OlR5cGU6OkNzc0NhbGNPcGVyYXRpb24pCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
IGNyZWF0ZUNTUyhjb25zdCBDYWxjRXhwcmVzc2lvbk5vZGUmLCBjb25zdCBSZW5kZXJTdHlsZSYp
Owogc3RhdGljIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IGNyZWF0ZUNTUyhjb25zdCBM
ZW5ndGgmLCBjb25zdCBSZW5kZXJTdHlsZSYpOwogCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlJiBub2RlKQor
eworICAgIG5vZGUuZHVtcCh0cyk7CisgICAgcmV0dXJuIHRzOworfQorCiBzdGF0aWMgQ2FsY3Vs
YXRpb25DYXRlZ29yeSBjYWxjVW5pdENhdGVnb3J5KENTU1VuaXRUeXBlIHR5cGUpCiB7CiAgICAg
c3dpdGNoICh0eXBlKSB7CkBAIC0xNTEsNiArMTYxLDIxIEBAIHN0YXRpYyBib29sIGhhc0RvdWJs
ZVZhbHVlKENTU1VuaXRUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgIUxP
R19ESVNBQkxFRAorc3RhdGljIFN0cmluZyBwcmV0dHlQcmludE5vZGUoY29uc3QgQ1NTQ2FsY0V4
cHJlc3Npb25Ob2RlJiBub2RlKQoreworICAgIFRleHRTdHJlYW0gbXVsdGlsaW5lU3RyZWFtOwor
ICAgIG11bHRpbGluZVN0cmVhbSA8PCBub2RlOworICAgIHJldHVybiBtdWx0aWxpbmVTdHJlYW0u
cmVsZWFzZSgpOworfQorCitzdGF0aWMgU3RyaW5nIHByZXR0eVByaW50Tm9kZXMoY29uc3QgVmVj
dG9yPFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+PiYgbm9kZXMpCit7CisgICAgVGV4dFN0cmVh
bSBtdWx0aWxpbmVTdHJlYW07CisgICAgbXVsdGlsaW5lU3RyZWFtIDw8IG5vZGVzOworICAgIHJl
dHVybiBtdWx0aWxpbmVTdHJlYW0ucmVsZWFzZSgpOworfQorI2VuZGlmCiAKIGNsYXNzIENTU0Nh
bGNQcmltaXRpdmVWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NDYWxjRXhwcmVzc2lvbk5vZGUgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTkzLDYgKzIxOCw4IEBAIHByaXZhdGU6
CiAgICAgICAgIHJldHVybiBtX3ZhbHVlLT5jc3NUZXh0KCk7CiAgICAgfQogCisgICAgdm9pZCBk
dW1wKFRleHRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBD
U1NDYWxjUHJpbWl0aXZlVmFsdWUoUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiYmIHZhbHVlLCBib29s
IGlzSW50ZWdlcikKICAgICAgICAgOiBDU1NDYWxjRXhwcmVzc2lvbk5vZGUoY2FsY1VuaXRDYXRl
Z29yeSh2YWx1ZS0+cHJpbWl0aXZlVHlwZSgpKSwgaXNJbnRlZ2VyKQpAQCAtMjc0LDggKzMwMSwx
MCBAQCBib29sIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0NhbGNFeHBy
ZXNzaW9uTm9kZSYgb3RoZXIpIGNvbnN0CiAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZShtX3Zh
bHVlLCBzdGF0aWNfY2FzdDxjb25zdCBDU1NDYWxjUHJpbWl0aXZlVmFsdWUmPihvdGhlcikubV92
YWx1ZSk7CiB9CiAKLQotCit2b2lkIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6ZHVtcChUZXh0U3Ry
ZWFtJiB0cykgY29uc3QKK3sKKyAgICB0cyA8PCAidmFsdWUgIiA8PCBtX3ZhbHVlLT5jdXN0b21D
U1NUZXh0KCk7Cit9CiAKIAogc3RhdGljIGNvbnN0IENhbGN1bGF0aW9uQ2F0ZWdvcnkgYWRkU3Vi
dHJhY3RSZXN1bHRbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFu
Z2xlKV1bc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlKV0g
PSB7CkBAIC00MTUsNiArNDQ0LDggQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBjdXN0b21DU1NU
ZXh0KCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYpIGNvbnN0IGZp
bmFsOworCiAgICAgc3RhdGljIENTU0NhbGNFeHByZXNzaW9uTm9kZSogZ2V0TnVtYmVyU2lkZShD
U1NDYWxjRXhwcmVzc2lvbk5vZGUmIGxlZnRTaWRlLCBDU1NDYWxjRXhwcmVzc2lvbk5vZGUmIHJp
Z2h0U2lkZSkKICAgICB7CiAgICAgICAgIGlmIChsZWZ0U2lkZS5jYXRlZ29yeSgpID09IENhbGN1
bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcikKQEAgLTQ0NSw4ICs0NzYsMTAgQEAgUmVmUHRyPENTU0Nh
bGNPcGVyYXRpb24+IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZShDYWxjT3BlcmF0b3Igb3AsIFJl
ZlB0cjxDU1NDYWwKICAgICBBU1NFUlQocmlnaHRTaWRlLT5jYXRlZ29yeSgpIDwgQ2FsY3VsYXRp
b25DYXRlZ29yeTo6T3RoZXIpOwogCiAgICAgYXV0byBuZXdDYXRlZ29yeSA9IGRldGVybWluZUNh
dGVnb3J5KCpsZWZ0U2lkZSwgKnJpZ2h0U2lkZSwgb3ApOwotICAgIGlmIChuZXdDYXRlZ29yeSA9
PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpPdGhlcikKKyAgICBpZiAobmV3Q2F0ZWdvcnkgPT0gQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKENhbGMs
IHN0cmVhbSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBDU1NDYWxjT3BlcmF0aW9uICIgPDwgb3AgPDwg
IiBub2RlIGJlY2F1c2UgdW5hYmxlIHRvIGRldGVybWluZSBjYXRlZ29yeSBmcm9tICIgPDwgcHJl
dHR5UHJpbnROb2RlKCpsZWZ0U2lkZSkgPDwgIiBhbmQgIiA8PCAqcmlnaHRTaWRlKTsKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1ND
YWxjT3BlcmF0aW9uKG5ld0NhdGVnb3J5LCBvcCwgbGVmdFNpZGUucmVsZWFzZU5vbk51bGwoKSwg
cmlnaHRTaWRlLnJlbGVhc2VOb25OdWxsKCkpKTsKIH0KQEAgLTQ2MSw4ICs0OTQsMTAgQEAgUmVm
UHRyPENTU0NhbGNPcGVyYXRpb24+IENTU0NhbGNPcGVyYXRpb246OmNyZWF0ZU1pbk9yTWF4KENh
bGNPcGVyYXRvciBvcCwgVmVjdG8KIAogICAgICAgICBBU1NFUlQodmFsdWVDYXRlZ29yeSA8IENh
bGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyKTsKICAgICAgICAgaWYgKCFjYXRlZ29yeSkgewotICAg
ICAgICAgICAgaWYgKHZhbHVlQ2F0ZWdvcnkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXIp
CisgICAgICAgICAgICBpZiAodmFsdWVDYXRlZ29yeSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpP
dGhlcikgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0gPDwg
IkZhaWxlZCB0byBjcmVhdGUgQ1NTQ2FsY09wZXJhdGlvbiAiIDw8IG9wIDw8ICIgbm9kZSBiZWNh
dXNlIHVuYWJsZSB0byBkZXRlcm1pbmUgY2F0ZWdvcnkgZnJvbSAiIDw8IHByZXR0eVByaW50Tm9k
ZXModmFsdWVzKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBjYXRlZ29yeSA9IHZhbHVlQ2F0ZWdvcnk7CiAgICAgICAgIH0KIApA
QCAtNjY4LDYgKzcwMywxNiBAQCBTdHJpbmcgQ1NTQ2FsY09wZXJhdGlvbjo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgcmV0dXJuIGJ1aWxkQ3NzVGV4dChjc3NUZXh0cywgbV9vcGVyYXRvcik7
CiB9CiAKK3ZvaWQgQ1NTQ2FsY09wZXJhdGlvbjo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QK
K3sKKyAgICB0cyA8PCAiY2FsYyBvcGVyYXRpb24gIiA8PCBtX29wZXJhdG9yIDw8ICIgY2F0ZWdv
cnkgIiA8PCBjYXRlZ29yeSgpOworCisgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBzY29wZSh0
cyk7CisgICAgdHMgPDwgbV9jaGlsZHJlbi5zaXplKCkgPDwgIiBjaGlsZHJlbiI7CisgICAgZm9y
IChhdXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4pCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibm9k
ZSIsIGNoaWxkKTsKK30KKwogYm9vbCBDU1NDYWxjT3BlcmF0aW9uOjplcXVhbHMoY29uc3QgQ1NT
Q2FsY0V4cHJlc3Npb25Ob2RlJiBleHApIGNvbnN0CiB7CiAgICAgaWYgKHR5cGUoKSAhPSBleHAu
dHlwZSgpKQpAQCAtNzY2LDYgKzgxMSw5IEBAIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+
IENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxjKENTU1BhcnNlclRvCiAgICAg
ICAgIG9rID0gcGFyc2VNaW5NYXhFeHByZXNzaW9uKHRva2VucywgZnVuY3Rpb24sIDAsICZyZXN1
bHQpOwogICAgIGlmICghb2sgfHwgIXRva2Vucy5hdEVuZCgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0gPDwgIkNTU0NhbGNFeHBy
ZXNzaW9uTm9kZVBhcnNlcjo6cGFyc2VDYWxjICIgPDwgcHJldHR5UHJpbnROb2RlKCpyZXN1bHQu
dmFsdWUpKTsKKwogICAgIHJldHVybiByZXN1bHQudmFsdWU7CiB9CiAKQEAgLTc4NSw2ICs4MzMs
MTIgQEAgYm9vbCBDU1NDYWxjRXhwcmVzc2lvbk5vZGVQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgdG9rZW5zLCBWYWx1ZSoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorZW51
bSBQYXJzZVN0YXRlIHsKKyAgICBPSywKKyAgICBUb29EZWVwLAorICAgIE5vTW9yZVRva2Vucwor
fTsKKwogc3RhdGljIFBhcnNlU3RhdGUgY2hlY2tEZXB0aEFuZEluZGV4KGludCogZGVwdGgsIENT
U1BhcnNlclRva2VuUmFuZ2UgdG9rZW5zKQogewogICAgICgqZGVwdGgpKys7CkBAIC05MjMsMTMg
Kzk3NywxMyBAQCBzdGF0aWMgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gY3JlYXRlQ1NT
KGNvbnN0IENhbGNFeHByZXNzaW9uTm9kZSYgbm9kZSwgYwogewogICAgIHN3aXRjaCAobm9kZS50
eXBlKCkpIHsKICAgICBjYXNlIENhbGNFeHByZXNzaW9uTm9kZVR5cGU6Ok51bWJlcjogewotICAg
ICAgICBmbG9hdCB2YWx1ZSA9IHRvQ2FsY0V4cHJlc3Npb25OdW1iZXIobm9kZSkudmFsdWUoKTsK
KyAgICAgICAgZmxvYXQgdmFsdWUgPSBkb3duY2FzdDxDYWxjRXhwcmVzc2lvbk51bWJlcj4obm9k
ZSkudmFsdWUoKTsKICAgICAgICAgcmV0dXJuIENTU0NhbGNQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVS
KSwgdmFsdWUgPT0gc3RkOjp0cnVuYyh2YWx1ZSkpOwogICAgIH0KICAgICBjYXNlIENhbGNFeHBy
ZXNzaW9uTm9kZVR5cGU6Okxlbmd0aDoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUNTUyh0b0NhbGNF
eHByZXNzaW9uTGVuZ3RoKG5vZGUpLmxlbmd0aCgpLCBzdHlsZSk7CisgICAgICAgIHJldHVybiBj
cmVhdGVDU1MoZG93bmNhc3Q8Q2FsY0V4cHJlc3Npb25MZW5ndGg+KG5vZGUpLmxlbmd0aCgpLCBz
dHlsZSk7CiAgICAgY2FzZSBDYWxjRXhwcmVzc2lvbk5vZGVUeXBlOjpPcGVyYXRpb246IHsKLSAg
ICAgICAgYXV0byYgb3BlcmF0aW9uTm9kZSA9IHRvQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24obm9k
ZSk7CisgICAgICAgIGF1dG8mIG9wZXJhdGlvbk5vZGUgPSBkb3duY2FzdDxDYWxjRXhwcmVzc2lv
bk9wZXJhdGlvbj4obm9kZSk7CiAgICAgICAgIGF1dG8mIG9wZXJhdGlvbkNoaWxkcmVuID0gb3Bl
cmF0aW9uTm9kZS5jaGlsZHJlbigpOwogICAgICAgICBDYWxjT3BlcmF0b3Igb3AgPSBvcGVyYXRp
b25Ob2RlLmdldE9wZXJhdG9yKCk7CiAgICAgICAgIGlmIChvcCA9PSBDYWxjT3BlcmF0b3I6Ok1p
biB8fCBvcCA9PSBDYWxjT3BlcmF0b3I6Ok1heCkgewpAQCAtOTUxLDcgKzEwMDUsNyBAQCBzdGF0
aWMgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gY3JlYXRlQ1NTKGNvbnN0IENhbGNFeHBy
ZXNzaW9uTm9kZSYgbm9kZSwgYwogICAgIH0KICAgICBjYXNlIENhbGNFeHByZXNzaW9uTm9kZVR5
cGU6OkJsZW5kTGVuZ3RoOiB7CiAgICAgICAgIC8vIEZJWE1FOiAoaHR0cDovL3dlYmtpdC5vcmcv
Yi8xMjIwMzYpIENyZWF0ZSBhIENTU0NhbGNFeHByZXNzaW9uTm9kZSBlcXVpdmFsZW50IG9mIENh
bGNFeHByZXNzaW9uQmxlbmRMZW5ndGguCi0gICAgICAgIGF1dG8mIGJsZW5kID0gdG9DYWxjRXhw
cmVzc2lvbkJsZW5kTGVuZ3RoKG5vZGUpOworICAgICAgICBhdXRvJiBibGVuZCA9IGRvd25jYXN0
PENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGg+KG5vZGUpOwogICAgICAgICBmbG9hdCBwcm9ncmVz
cyA9IGJsZW5kLnByb2dyZXNzKCk7CiAgICAgICAgIHJldHVybiBDU1NDYWxjT3BlcmF0aW9uOjpj
cmVhdGUoQ2FsY09wZXJhdG9yOjpBZGQsIGNyZWF0ZUJsZW5kSGFsZihibGVuZC5mcm9tKCksIHN0
eWxlLCAxIC0gcHJvZ3Jlc3MpLCBjcmVhdGVCbGVuZEhhbGYoYmxlbmQudG8oKSwgc3R5bGUsIHBy
b2dyZXNzKSk7CiAgICAgfQpAQCAtMTAxMSwxMyArMTA2NSwzMCBAQCBkb3VibGUgQ1NTQ2FsY1Zh
bHVlOjpjb21wdXRlTGVuZ3RoUHgoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYgY29u
dmVyc2lvbgogICAgIHJldHVybiBjbGFtcFRvUGVybWl0dGVkUmFuZ2UobV9leHByZXNzaW9uLT5j
b21wdXRlTGVuZ3RoUHgoY29udmVyc2lvbkRhdGEpKTsKIH0KIAordm9pZCBDU1NDYWxjVmFsdWU6
OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0Cit7CisgICAgdHMgPDwgaW5kZW50IDw8ICIoIiA8
PCAiQ1NTQ2FsY1ZhbHVlIjsKKworICAgIFRleHRTdHJlYW0gbXVsdGlsaW5lU3RyZWFtOworICAg
IG11bHRpbGluZVN0cmVhbS5zZXRJbmRlbnQodHMuaW5kZW50KCkgKyAyKTsKKworICAgIG11bHRp
bGluZVN0cmVhbS5kdW1wUHJvcGVydHkoInNob3VsZCBjbGFtcCBub24tbmVnYXRpdmUiLCBtX3No
b3VsZENsYW1wVG9Ob25OZWdhdGl2ZSk7CisgICAgbXVsdGlsaW5lU3RyZWFtLmR1bXBQcm9wZXJ0
eSgiZXhwcmVzc2lvbiIsIG1fZXhwcmVzc2lvbi5nZXQoKSk7CisKKyAgICB0cyA8PCBtdWx0aWxp
bmVTdHJlYW0ucmVsZWFzZSgpOworICAgIHRzIDw8ICIpXG4iOworfQorCiBSZWZQdHI8Q1NTQ2Fs
Y1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NWYWx1ZUlEIGZ1bmN0aW9uLCBjb25zdCBD
U1NQYXJzZXJUb2tlblJhbmdlJiB0b2tlbnMsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgZGVzdGluYXRp
b25DYXRlZ29yeSwgVmFsdWVSYW5nZSByYW5nZSkKIHsKICAgICBDU1NDYWxjRXhwcmVzc2lvbk5v
ZGVQYXJzZXIgcGFyc2VyKGRlc3RpbmF0aW9uQ2F0ZWdvcnkpOwogICAgIGF1dG8gZXhwcmVzc2lv
biA9IHBhcnNlci5wYXJzZUNhbGModG9rZW5zLCBmdW5jdGlvbik7CiAgICAgaWYgKCFleHByZXNz
aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENT
U0NhbGNWYWx1ZShleHByZXNzaW9uLnJlbGVhc2VOb25OdWxsKCksIHJhbmdlICE9IFZhbHVlUmFu
Z2VBbGwpKTsKKworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYobmV3IENTU0NhbGNWYWx1ZShl
eHByZXNzaW9uLnJlbGVhc2VOb25OdWxsKCksIHJhbmdlICE9IFZhbHVlUmFuZ2VBbGwpKTsKKyAg
ICBMT0dfV0lUSF9TVFJFQU0oQ2FsYywgc3RyZWFtIDw8ICJDU1NDYWxjVmFsdWU6OmNyZWF0ZSBm
cm9tIHRva2VuczogIiA8PCAqcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogICAgIAog
UmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoY29uc3QgQ2FsY3VsYXRp
b25WYWx1ZSYgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKQEAgLTEwMjUsNyArMTA5
NiwzMiBAQCBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShjb25zdCBD
YWxjdWxhdGlvblZhbHVlJiB2YWx1ZSwgY29uc3QgUgogICAgIGF1dG8gZXhwcmVzc2lvbiA9IGNy
ZWF0ZUNTUyh2YWx1ZS5leHByZXNzaW9uKCksIHN0eWxlKTsKICAgICBpZiAoIWV4cHJlc3Npb24p
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ2Fs
Y1ZhbHVlKGV4cHJlc3Npb24ucmVsZWFzZU5vbk51bGwoKSwgdmFsdWUuc2hvdWxkQ2xhbXBUb05v
bk5lZ2F0aXZlKCkpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKG5ldyBDU1NDYWxjVmFs
dWUoZXhwcmVzc2lvbi5yZWxlYXNlTm9uTnVsbCgpLCB2YWx1ZS5zaG91bGRDbGFtcFRvTm9uTmVn
YXRpdmUoKSkpOworICAgIExPR19XSVRIX1NUUkVBTShDYWxjLCBzdHJlYW0gPDwgIkNTU0NhbGNW
YWx1ZTo6Y3JlYXRlIGZyb20gQ2FsY3VsYXRpb25WYWx1ZTogIiA8PCAqcmVzdWx0KTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhdGVnb3J5KQoreworICAgIHN3aXRjaCAoY2F0ZWdvcnkp
IHsKKyAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcjogdHMgPDwgIm51bWJlciI7
IGJyZWFrOworICAgIGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoOiB0cyA8PCAibGVu
Z3RoIjsgYnJlYWs7CisgICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OiB0cyA8
PCAicGVyY2VudCI7IGJyZWFrOworICAgIGNhc2UgQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2Vu
dE51bWJlcjogdHMgPDwgInBlcmNlbnQtbnVtYmVyIjsgYnJlYWs7CisgICAgY2FzZSBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpQZXJjZW50TGVuZ3RoOiB0cyA8PCAicGVyY2VudC1sZW5ndGgiOyBicmVh
azsKKyAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlOiB0cyA8PCAiYW5nbGUiOyBi
cmVhazsKKyAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlRpbWU6IHRzIDw8ICJ0aW1lIjsg
YnJlYWs7CisgICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpGcmVxdWVuY3k6IHRzIDw8ICJm
cmVxdWVuY3kiOyBicmVhazsKKyAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok90aGVyOiB0
cyA8PCAib3RoZXIiOyBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IENTU0NhbGNWYWx1ZSYgdmFs
dWUpCit7CisgICAgdmFsdWUuZHVtcCh0cyk7CisgICAgcmV0dXJuIHRzOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3Vs
YXRpb25WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaApp
bmRleCAxZTk3YzNiYTk5Nzk5YmRkNjAzMDhkOTVjZjQ1YmM4YjVlODk5OWZhLi41Mjg3YmQ4ZDcy
NjNlZjUyMzg2ZmY0OWEwZDI3YThlNjVlNGEyNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
YWxjdWxhdGlvblZhbHVlLmgKQEAgLTM0LDEyICszNCwxNyBAQAogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZhbHVlLmgiCiAKK25hbWVzcGFjZSBX
VEYgeworY2xhc3MgVGV4dFN0cmVhbTsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDU1NQYXJzZXJUb2tlblJhbmdlOwogY2xhc3MgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTsK
IGNsYXNzIFJlbmRlclN0eWxlOwogCisvLyBGSVhNRTogVW5pZnkgd2l0aCBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdENhdGVnb3J5LgogZW51bSBjbGFzcyBDYWxjdWxhdGlvbkNhdGVnb3J5IDogdWlu
dDhfdCB7CiAgICAgTnVtYmVyID0gMCwKICAgICBMZW5ndGgsCkBAIC03NSw2ICs4MCw4IEBAIHB1
YmxpYzoKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4g
bV9jYXRlZ29yeTsgfQogICAgIGJvb2wgaXNJbnRlZ2VyKCkgY29uc3QgeyByZXR1cm4gbV9pc0lu
dGVnZXI7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBkdW1wKFRleHRTdHJlYW0mKSBjb25zdCA9IDA7
CisKIHByb3RlY3RlZDoKICAgICBDU1NDYWxjRXhwcmVzc2lvbk5vZGUoQ2FsY3VsYXRpb25DYXRl
Z29yeSBjYXRlZ29yeSwgYm9vbCBpc0ludGVnZXIpCiAgICAgICAgIDogbV9jYXRlZ29yeShjYXRl
Z29yeSkKQEAgLTEwOSw2ICsxMTYsMTAgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGN1c3RvbUNT
U1RleHQoKSBjb25zdDsKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NDYWxjVmFsdWUmKSBjb25z
dDsKKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc0NhbGNGdW5jdGlvbihDU1NWYWx1ZUlEKTsKKwor
ICAgIHZvaWQgZHVtcChUZXh0U3RyZWFtJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgQ1NTQ2Fs
Y1ZhbHVlKFJlZjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+JiYsIGJvb2wgc2hvdWxkQ2xhbXBUb05v
bk5lZ2F0aXZlKTsKQEAgLTE0Nyw2ICsxNTgsMTQgQEAgaW5saW5lIHZvaWQgQ1NTQ2FsY1ZhbHVl
Ojpjb2xsZWN0RGlyZWN0Um9vdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoSGFzaFNldDxDU1MK
ICAgICBtX2V4cHJlc3Npb24tPmNvbGxlY3REaXJlY3RSb290Q29tcHV0YXRpb25hbERlcGVuZGVu
Y2llcyh2YWx1ZXMpOwogfQogCitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0
U3RyZWFtJiwgQ2FsY3VsYXRpb25DYXRlZ29yeSk7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgQ1NTQ2FsY1ZhbHVlJik7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DU1NfVkFMVUUoQ1NTQ2FsY1Zh
bHVlLCBpc0NhbGNWYWx1ZSgpKQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NT
Q0FMQ0VYUFJFU1NJT05fTk9ERShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBz
dGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlJiBu
b2RlKSB7IHJldHVybiBub2RlLnByZWRpY2F0ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwCmlu
ZGV4IDY3ZTkyYjBmODA2OTM4ZDdiMzVjYmNkYjg4ZTAxNmM5NzhlYTY1ZjAuLmI1ZDA4YWExMDhl
NjJjNGUxYTlkOTFlODhiY2YzNjE2OWEwNmQwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQ2FsY0V4cHJl
c3Npb25OdW1iZXI6OmR1bXAoVGV4dFN0cmVhbSYgdHMpIGNvbnN0CiAKIGJvb2wgQ2FsY0V4cHJl
c3Npb25OdW1iZXI6Om9wZXJhdG9yPT0oY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJiBvdGhlcikg
Y29uc3QKIHsKLSAgICByZXR1cm4gb3RoZXIudHlwZSgpID09IENhbGNFeHByZXNzaW9uTm9kZVR5
cGU6Ok51bWJlciAmJiAqdGhpcyA9PSB0b0NhbGNFeHByZXNzaW9uTnVtYmVyKG90aGVyKTsKKyAg
ICByZXR1cm4gaXM8Q2FsY0V4cHJlc3Npb25OdW1iZXI+KG90aGVyKSAmJiAqdGhpcyA9PSBkb3du
Y2FzdDxDYWxjRXhwcmVzc2lvbk51bWJlcj4ob3RoZXIpOwogfQogCiBmbG9hdCBDYWxjdWxhdGlv
blZhbHVlOjpldmFsdWF0ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3QKQEAgLTEyMCw3ICsxMjAsNyBA
QCBmbG9hdCBDYWxjRXhwcmVzc2lvbk9wZXJhdGlvbjo6ZXZhbHVhdGUoZmxvYXQgbWF4VmFsdWUp
IGNvbnN0CiAKIGJvb2wgQ2FsY0V4cHJlc3Npb25PcGVyYXRpb246Om9wZXJhdG9yPT0oY29uc3Qg
Q2FsY0V4cHJlc3Npb25Ob2RlJiBvdGhlcikgY29uc3QKIHsKLSAgICByZXR1cm4gb3RoZXIudHlw
ZSgpID09IENhbGNFeHByZXNzaW9uTm9kZVR5cGU6Ok9wZXJhdGlvbiAmJiAqdGhpcyA9PSB0b0Nh
bGNFeHByZXNzaW9uT3BlcmF0aW9uKG90aGVyKTsKKyAgICByZXR1cm4gaXM8Q2FsY0V4cHJlc3Np
b25PcGVyYXRpb24+KG90aGVyKSAmJiAqdGhpcyA9PSBkb3duY2FzdDxDYWxjRXhwcmVzc2lvbk9w
ZXJhdGlvbj4ob3RoZXIpOwogfQogCiBib29sIG9wZXJhdG9yPT0oY29uc3QgQ2FsY0V4cHJlc3Np
b25PcGVyYXRpb24mIGEsIGNvbnN0IENhbGNFeHByZXNzaW9uT3BlcmF0aW9uJiBiKQpAQCAtMTU5
LDcgKzE1OSw3IEBAIGZsb2F0IENhbGNFeHByZXNzaW9uTGVuZ3RoOjpldmFsdWF0ZShmbG9hdCBt
YXhWYWx1ZSkgY29uc3QKIAogYm9vbCBDYWxjRXhwcmVzc2lvbkxlbmd0aDo6b3BlcmF0b3I9PShj
b25zdCBDYWxjRXhwcmVzc2lvbk5vZGUmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBvdGhl
ci50eXBlKCkgPT0gQ2FsY0V4cHJlc3Npb25Ob2RlVHlwZTo6TGVuZ3RoICYmICp0aGlzID09IHRv
Q2FsY0V4cHJlc3Npb25MZW5ndGgob3RoZXIpOworICAgIHJldHVybiBpczxDYWxjRXhwcmVzc2lv
bkxlbmd0aD4ob3RoZXIpICYmICp0aGlzID09IGRvd25jYXN0PENhbGNFeHByZXNzaW9uTGVuZ3Ro
PihvdGhlcik7CiB9CiAKIHZvaWQgQ2FsY0V4cHJlc3Npb25MZW5ndGg6OmR1bXAoVGV4dFN0cmVh
bSYgdHMpIGNvbnN0CkBAIC0xNzYsOSArMTc2LDkgQEAgQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0
aDo6Q2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aChMZW5ndGggZnJvbSwgTGVuZ3RoIHRvLCBmbG8K
ICAgICAvLyBGbGF0dGVuIG5lc3Rpbmcgb2YgQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aCBhcyBh
IHNwZWN1bGF0aXZlIGZpeCBmb3IgcmRhcjovL3Byb2JsZW0vMzA1MzMwMDUuCiAgICAgLy8gQ2Fs
Y0V4cHJlc3Npb25CbGVuZExlbmd0aCBpcyBvbmx5IHVzZWQgYXMgYSByZXN1bHQgb2YgYW5pbWF0
aW9uIGFuZCB0aGV5IGRvbid0IG5lc3QgaW4gbm9ybWFsIGNhc2VzLgogICAgIGlmIChtX2Zyb20u
aXNDYWxjdWxhdGVkKCkgJiYgbV9mcm9tLmNhbGN1bGF0aW9uVmFsdWUoKS5leHByZXNzaW9uKCku
dHlwZSgpID09IENhbGNFeHByZXNzaW9uTm9kZVR5cGU6OkJsZW5kTGVuZ3RoKQotICAgICAgICBt
X2Zyb20gPSB0b0NhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGgobV9mcm9tLmNhbGN1bGF0aW9uVmFs
dWUoKS5leHByZXNzaW9uKCkpLmZyb20oKTsKKyAgICAgICAgbV9mcm9tID0gZG93bmNhc3Q8Q2Fs
Y0V4cHJlc3Npb25CbGVuZExlbmd0aD4obV9mcm9tLmNhbGN1bGF0aW9uVmFsdWUoKS5leHByZXNz
aW9uKCkpLmZyb20oKTsKICAgICBpZiAobV90by5pc0NhbGN1bGF0ZWQoKSAmJiBtX3RvLmNhbGN1
bGF0aW9uVmFsdWUoKS5leHByZXNzaW9uKCkudHlwZSgpID09IENhbGNFeHByZXNzaW9uTm9kZVR5
cGU6OkJsZW5kTGVuZ3RoKQotICAgICAgICBtX3RvID0gdG9DYWxjRXhwcmVzc2lvbkJsZW5kTGVu
Z3RoKG1fdG8uY2FsY3VsYXRpb25WYWx1ZSgpLmV4cHJlc3Npb24oKSkudG8oKTsKKyAgICAgICAg
bV90byA9IGRvd25jYXN0PENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGg+KG1fdG8uY2FsY3VsYXRp
b25WYWx1ZSgpLmV4cHJlc3Npb24oKSkudG8oKTsKIH0KIAogZmxvYXQgQ2FsY0V4cHJlc3Npb25C
bGVuZExlbmd0aDo6ZXZhbHVhdGUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0CkBAIC0xODgsNyArMTg4
LDcgQEAgZmxvYXQgQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aDo6ZXZhbHVhdGUoZmxvYXQgbWF4
VmFsdWUpIGNvbnN0CiAKIGJvb2wgQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aDo6b3BlcmF0b3I9
PShjb25zdCBDYWxjRXhwcmVzc2lvbk5vZGUmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBv
dGhlci50eXBlKCkgPT0gQ2FsY0V4cHJlc3Npb25Ob2RlVHlwZTo6QmxlbmRMZW5ndGggJiYgKnRo
aXMgPT0gdG9DYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoKG90aGVyKTsKKyAgICByZXR1cm4gaXM8
Q2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aD4ob3RoZXIpICYmICp0aGlzID09IGRvd25jYXN0PENh
bGNFeHByZXNzaW9uQmxlbmRMZW5ndGg+KG90aGVyKTsKIH0KIAogdm9pZCBDYWxjRXhwcmVzc2lv
bkJsZW5kTGVuZ3RoOjpkdW1wKFRleHRTdHJlYW0mIHRzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oCmluZGV4IDYxNmNiMTNlMDM2ZGViOTZlOGJlZjlj
YWE3OTI5ZTUwMTBkZmU5YjAuLjllMDc1ZDljYjgyY2M4NDE3NWI5NDQ4MzRmMTc1NWE0OTU2ODg0
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmgKQEAgLTE4
MSwxMiArMTgxLDYgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDYWxjRXhwcmVzc2lv
bk51bWJlciYgYSwgY29uc3QgQ2FsY0V4cHJlc3Npb25OdW1iZXIKICAgICByZXR1cm4gYS52YWx1
ZSgpID09IGIudmFsdWUoKTsKIH0KIAotaW5saW5lIGNvbnN0IENhbGNFeHByZXNzaW9uTnVtYmVy
JiB0b0NhbGNFeHByZXNzaW9uTnVtYmVyKGNvbnN0IENhbGNFeHByZXNzaW9uTm9kZSYgdmFsdWUp
Ci17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04odmFsdWUudHlwZSgpID09
IENhbGNFeHByZXNzaW9uTm9kZVR5cGU6Ok51bWJlcik7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IENhbGNFeHByZXNzaW9uTnVtYmVyJj4odmFsdWUpOwotfQotCiBpbmxpbmUgQ2FsY0V4
cHJlc3Npb25MZW5ndGg6OkNhbGNFeHByZXNzaW9uTGVuZ3RoKExlbmd0aCBsZW5ndGgpCiAgICAg
OiBDYWxjRXhwcmVzc2lvbk5vZGUoQ2FsY0V4cHJlc3Npb25Ob2RlVHlwZTo6TGVuZ3RoKQogICAg
ICwgbV9sZW5ndGgobGVuZ3RoKQpAQCAtMTk4LDEyICsxOTIsNiBAQCBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IENhbGNFeHByZXNzaW9uTGVuZ3RoJiBhLCBjb25zdCBDYWxjRXhwcmVzc2lv
bkxlbmd0aAogICAgIHJldHVybiBhLmxlbmd0aCgpID09IGIubGVuZ3RoKCk7CiB9CiAKLWlubGlu
ZSBjb25zdCBDYWxjRXhwcmVzc2lvbkxlbmd0aCYgdG9DYWxjRXhwcmVzc2lvbkxlbmd0aChjb25z
dCBDYWxjRXhwcmVzc2lvbk5vZGUmIHZhbHVlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKHZhbHVlLnR5cGUoKSA9PSBDYWxjRXhwcmVzc2lvbk5vZGVUeXBlOjpMZW5n
dGgpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDYWxjRXhwcmVzc2lvbkxlbmd0aCY+
KHZhbHVlKTsKLX0KLQogaW5saW5lIENhbGNFeHByZXNzaW9uT3BlcmF0aW9uOjpDYWxjRXhwcmVz
c2lvbk9wZXJhdGlvbihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENhbGNFeHByZXNzaW9uTm9kZT4+
JiYgY2hpbGRyZW4sIENhbGNPcGVyYXRvciBvcCkKICAgICA6IENhbGNFeHByZXNzaW9uTm9kZShD
YWxjRXhwcmVzc2lvbk5vZGVUeXBlOjpPcGVyYXRpb24pCiAgICAgLCBtX2NoaWxkcmVuKFdURk1v
dmUoY2hpbGRyZW4pKQpAQCAtMjEzLDI1ICsyMDEsMjMgQEAgaW5saW5lIENhbGNFeHByZXNzaW9u
T3BlcmF0aW9uOjpDYWxjRXhwcmVzc2lvbk9wZXJhdGlvbihWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PEMKIAogYm9vbCBvcGVyYXRvcj09KGNvbnN0IENhbGNFeHByZXNzaW9uT3BlcmF0aW9uJiwgY29u
c3QgQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24mKTsKIAotaW5saW5lIGNvbnN0IENhbGNFeHByZXNz
aW9uT3BlcmF0aW9uJiB0b0NhbGNFeHByZXNzaW9uT3BlcmF0aW9uKGNvbnN0IENhbGNFeHByZXNz
aW9uTm9kZSYgdmFsdWUpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
dmFsdWUudHlwZSgpID09IENhbGNFeHByZXNzaW9uTm9kZVR5cGU6Ok9wZXJhdGlvbik7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENhbGNFeHByZXNzaW9uT3BlcmF0aW9uJj4odmFsdWUp
OwotfQotCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENhbGNFeHByZXNzaW9uQmxlbmRM
ZW5ndGgmIGEsIGNvbnN0IENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGgmIGIpCiB7CiAgICAgcmV0
dXJuIGEucHJvZ3Jlc3MoKSA9PSBiLnByb2dyZXNzKCkgJiYgYS5mcm9tKCkgPT0gYi5mcm9tKCkg
JiYgYS50bygpID09IGIudG8oKTsKIH0KIAotaW5saW5lIGNvbnN0IENhbGNFeHByZXNzaW9uQmxl
bmRMZW5ndGgmIHRvQ2FsY0V4cHJlc3Npb25CbGVuZExlbmd0aChjb25zdCBDYWxjRXhwcmVzc2lv
bk5vZGUmIHZhbHVlKQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHZh
bHVlLnR5cGUoKSA9PSBDYWxjRXhwcmVzc2lvbk5vZGVUeXBlOjpCbGVuZExlbmd0aCk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGgmPih2YWx1
ZSk7Ci19Ci0KIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBj
b25zdCBDYWxjdWxhdGlvblZhbHVlJik7CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RG
OjpUZXh0U3RyZWFtJiwgY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJik7CiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ2FsY09wZXJhdG9yKTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FMQ0VY
UFJFU1NJT05fTk9ERShUb1ZhbHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAorU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpUb1ZhbHVlVHlwZU5hbWUpIFwKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Q2FsY0V4cHJlc3Npb25Ob2RlJiBub2RlKSB7IHJl
dHVybiBub2RlLnByZWRpY2F0ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FMQ0VYUFJFU1NJT05fTk9ERShDYWxjRXhwcmVzc2lv
bk51bWJlciwgdHlwZSgpID09IFdlYkNvcmU6OkNhbGNFeHByZXNzaW9uTm9kZVR5cGU6Ok51bWJl
cikKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FMQ0VYUFJFU1NJT05fTk9ERShDYWxjRXhwcmVz
c2lvbkxlbmd0aCwgdHlwZSgpID09IFdlYkNvcmU6OkNhbGNFeHByZXNzaW9uTm9kZVR5cGU6Okxl
bmd0aCkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FMQ0VYUFJFU1NJT05fTk9ERShDYWxjRXhw
cmVzc2lvbk9wZXJhdGlvbiwgdHlwZSgpID09IFdlYkNvcmU6OkNhbGNFeHByZXNzaW9uTm9kZVR5
cGU6Ok9wZXJhdGlvbikKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FMQ0VYUFJFU1NJT05fTk9E
RShDYWxjRXhwcmVzc2lvbkJsZW5kTGVuZ3RoLCB0eXBlKCkgPT0gV2ViQ29yZTo6Q2FsY0V4cHJl
c3Npb25Ob2RlVHlwZTo6QmxlbmRMZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5k
ZXggMmNjNzc3N2NjOGE1YzE0ZmU0YWRjNzI4ZWE1YWIyYzlkNDMwYWZjZC4uOWYyOWUyYWU0MGI3
ZjJkNDk3MjIxYTI1ZDJiNGRlYTcyOWRmMjcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShBcHBsZVBheSkg
XAogICAgIE0oQXJjaGl2ZXMpIFwKICAgICBNKEJhY2tGb3J3YXJkQ2FjaGUpIFwKKyAgICBNKENh
bGMpIFwKICAgICBNKENsaXBSZWN0cykgXAogICAgIE0oQ29tcG9zaXRpbmcpIFwKICAgICBNKENv
bXBvc2l0aW5nT3ZlcmxhcCkgXAo=
</data>
<flag name="review"
          id="400370"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>