<?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>114581</bug_id>
          
          <creation_ts>2013-04-14 07:01:51 -0700</creation_ts>
          <short_desc>Move CSSOM classes to using MutableStylePropertySet over StylePropertySet.</short_desc>
          <delta_ts>2013-04-14 08:19:00 -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>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>114568</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>875323</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 07:01:51 -0700</bug_when>
    <thetext>Move CSSOM classes to using MutableStylePropertySet over StylePropertySet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875325</commentid>
    <comment_count>1</comment_count>
      <attachid>197987</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 07:03:38 -0700</bug_when>
    <thetext>Created attachment 197987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875333</commentid>
    <comment_count>2</comment_count>
      <attachid>197990</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 07:24:24 -0700</bug_when>
    <thetext>Created attachment 197990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875335</commentid>
    <comment_count>3</comment_count>
      <attachid>197990</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-04-14 08:03:14 -0700</bug_when>
    <thetext>Comment on attachment 197990
Patch

Attachment 197990 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/146192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875340</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 08:19:00 -0700</bug_when>
    <thetext>Committed r148396: &lt;http://trac.webkit.org/changeset/148396&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197987</attachid>
            <date>2013-04-14 07:03:38 -0700</date>
            <delta_ts>2013-04-14 07:24:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114581.diff</filename>
            <type>text/plain</type>
            <size>29558</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZTk5ZGI0Li40NzE0ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzAg
QEAKIDIwMTMtMDQtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIE1vdmUgQ1NTT00gY2xhc3NlcyB0byB1c2luZyBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCBv
dmVyIFN0eWxlUHJvcGVydHlTZXQuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNDU4
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
ZCBlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkgYW5kIGVuc3VyZUlubGluZUNTU1N0eWxlRGVj
bGFyYXRpb24oKSBmcm9tIFN0eWxlUHJvcGVydHlTZXQKKyAgICAgICAgdG8gTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQuCisKKyAgICAgICAgU3R5bGVSdWxlICYgY28gbm93IHJldHVybiBhIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0KiBmcm9tIG11dGFibGVQcm9wZXJ0aWVzKCkgdG8gYWlkIHdpdGgu
Li4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIG5vdyBvbmx5IGRlYWxzIHdpdGggTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXRzLiBUaGlzIHdhcyBhbHJlYWR5IHRoZSBjYXNlCisgICAgICAg
IGluIHByYWN0aWNlLCB3ZSBqdXN0IGRpZG4ndCBoYXZlIGFueSBjb21waWxlLXRpbWUgZm9vdC1z
aG9vdGluZyBwcm90ZWN0aW9uLgorICAgICAgICBJbiBvdGhlciB3b3JkcywgaWYgdGhlcmUncyBh
IENTU09NIHdyYXBwZXIgZm9yIGEgZ2l2ZW4gU3R5bGVQcm9wZXJ0eVNldCwgaXQncyBndWFyYW50
ZWVkIHRvCisgICAgICAgIGJlIG11dGFibGUsIGFuZCB0aGUgcG9pbnRlciB0eXBlcyBub3cgcmVm
bGVjdCB0aGlzLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogY3NzL1By
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnJlYXR0YWNo
KToKKyAgICAgICAgKiBjc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OlByb3BlcnR5U2V0
Q1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbjo6SW5saW5lQ1NTU3R5bGVEZWNs
YXJhdGlvbik6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUlu
bGluZUNTU1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0
Lmg6CisgICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUnVsZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSdWxlUGFnZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
dWxlRm9udEZhY2U6Om11dGFibGVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UnVsZVZpZXdwb3J0OjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJ1bGVGaWx0ZXI6Om11dGFibGVQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxl
Lmg6CisgICAgICAgIChTdHlsZVJ1bGUpOgorICAgICAgICAoU3R5bGVSdWxlRm9udEZhY2UpOgor
ICAgICAgICAoU3R5bGVSdWxlUGFnZSk6CisgICAgICAgIChTdHlsZVJ1bGVWaWV3cG9ydCk6Cisg
ICAgICAgIChTdHlsZVJ1bGVGaWx0ZXIpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVLZXlmcmFtZTo6bXV0YWJsZVByb3Bl
cnRpZXMpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDoKKyAgICAgICAg
KFN0eWxlS2V5ZnJhbWUpOgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkF0dHI6OnN0eWxlKToKKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAoQXR0cik6
CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdGluZ1N0eWxlOjpyZW1vdmVTdHlsZUFkZGVkQnlOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVDb25mbGljdGluZ1dpdGhTdHlsZU9mTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OnRyaVN0YXRlT2ZTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KToKKyAg
ICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjpjb3B5VHlwaW5nU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXR0cmli
dXRlc1N0eWxlKToKKworMjAxMy0wNC0xNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CisKICAgICAgICAgTW92ZSBjcmVhdGUoKSBtZXRob2RzIGZyb20gU3R5bGVQcm9wZXJ0eVNl
dCB0byBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldC4KICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvMTE0NTc0PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDA0MjQ0YWIuLjkxMGEzZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MTgsNiArNzE4LDcgQEAgX19aTjdXZWJDb3JlMjNBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZTI2c3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW5FUEtOU18xNFNl
Y3VyaXQKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U1ZW1wdHlFdgogX19a
TjdXZWJDb3JlMjNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTIzc2V0QXV0aGVudGljYXRpb25DbGll
bnRFUE5TXzIwQXV0aGVudGljYXRpb25DbGllbnRFCiBfX1pON1dlYkNvcmUyM0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQzFFUktOU18xNVByb3RlY3Rpb25TcGFjZUVSS05TXzEwQ3JlZGVudGlhbEVq
UktOU18xNlJlc291cmNlUmVzcG9uc2VFUktOU18xM1Jlc291cmNlRXJyb3JFCitfX1pON1dlYkNv
cmUyM011dGFibGVTdHlsZVByb3BlcnR5U2V0MjVlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uRXYK
IF9fWk43V2ViQ29yZTIzY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXNFUE5TXzhEb2N1bWVudEVSS04z
V1RGNlZlY3RvcklQTlNfNE5vZGVFTG0wRU5TMl8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdX
ZWJDb3JlMjNkYXRhRm9yVVJMQ29tcG9uZW50VHlwZUVQNU5TVVJMbAogX19aTjdXZWJDb3JlMjNk
ZWNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCkBAIC0xMzk0LDYgKzEz
OTUsNyBAQCBfX1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTVpc1Bhc3N3b3JkRmllbGRF
dgogX19aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE4c2hvdWxkQXV0b2NvbXBsZXRlRXYK
IF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQ2aXNUZXh0RXYKIF9fWk5LN1dlYkNvcmUx
Nkljb25EYXRhYmFzZUJhc2UxMmRhdGFiYXNlUGF0aEV2CitfX1pOSzdXZWJDb3JlMTZTdHlsZVBy
b3BlcnR5U2V0MTFtdXRhYmxlQ29weUV2CiBfX1pOSzdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNl
MTNuc1VSTFJlc3BvbnNlRXYKIF9fWk5LN1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2UxNmNlcnRp
ZmljYXRlQ2hhaW5FdgogX19aTks3V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlvbjE3aXNDb250ZW50
RWRpdGFibGVFdgpAQCAtMTc4Nyw3ICsxNzg5LDYgQEAgX19aTjdXZWJDb3JlMTVTcGVlY2hTeW50
aGVzaXMyMnNldFBsYXRmb3JtU3ludGhlc2l6ZXJFTjNXVEYxMFBhc3NPd25QdHJJTlNfMjVQbGEK
ICNlbmRpZgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNf
MTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZG
b250UGxhdGZvcm1EYXRhQzJFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZG
b250V2lkdGhWYXJpYW50RQotX19aTjdXZWJDb3JlMTZTdHlsZVByb3BlcnR5U2V0MjVlbnN1cmVD
U1NTdHlsZURlY2xhcmF0aW9uRXYKIF9fWk43V2ViQ29yZTE2U3R5bGVQcm9wZXJ0eVNldEQyRXYK
IF9fWk43V2ViQ29yZTE2Y29sb3JGcm9tTlNDb2xvckVQN05TQ29sb3IKIF9fWk43V2ViQ29yZTE2
ZW5jbG9zaW5nSW50UmVjdEVSSzdfTlNSZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDZiNTA3NWIuLmY5YTY0
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0zMTIsNyArMzEyLDcgQEAgYm9vbCBQcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb246OmNzc1Byb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SUQKICAgICByZXR1cm4gbV9wcm9wZXJ0eVNldC0+cHJvcGVydHlNYXRjaGVzKHByb3BlcnR5SUQs
IHByb3BlcnR5VmFsdWUpOwogfQogICAgIAotU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbihTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNl
dCwgQ1NTUnVsZSogcGFyZW50UnVsZSkKK1N0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OlN0
eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHByb3Bl
cnR5U2V0LCBDU1NSdWxlKiBwYXJlbnRSdWxlKQogICAgIDogUHJvcGVydHlTZXRDU1NTdHlsZURl
Y2xhcmF0aW9uKHByb3BlcnR5U2V0KQogICAgICwgbV9yZWZDb3VudCgxKQogICAgICwgbV9wYXJl
bnRSdWxlKHBhcmVudFJ1bGUpIApAQCAtMzU4LDcgKzM1OCw3IEBAIENTU1N0eWxlU2hlZXQqIFN0
eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnBhcmVudFN0eWxlU2hlZXQoKSBjb25zdAogICAg
IHJldHVybiBtX3BhcmVudFJ1bGUgPyBtX3BhcmVudFJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA6
IDA7CiB9CiAKLXZvaWQgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6cmVhdHRhY2goU3R5
bGVQcm9wZXJ0eVNldCogcHJvcGVydHlTZXQpCit2b2lkIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFy
YXRpb246OnJlYXR0YWNoKE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCkKIHsK
ICAgICBBU1NFUlQocHJvcGVydHlTZXQpOwogICAgIG1fcHJvcGVydHlTZXQtPmRlcmVmKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9u
LmgKaW5kZXggZjg2Y2FkOC4uOGQ3Zjk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaApAQCAtMzYsMTMgKzM2LDEzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1J1bGU7CiBjbGFzcyBDU1NQcm9wZXJ0eTsKIGNs
YXNzIENTU1ZhbHVlOwotY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKK2NsYXNzIE11dGFibGVTdHls
ZVByb3BlcnR5U2V0OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3MgU3R5bGVkRWxl
bWVudDsKIAogY2xhc3MgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIENT
U1N0eWxlRGVjbGFyYXRpb24gewogcHVibGljOgotICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbihTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCkgOiBtX3Byb3BlcnR5U2V0KHBy
b3BlcnR5U2V0KSB7IH0KKyAgICBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24oTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0KSA6IG1fcHJvcGVydHlTZXQocHJvcGVydHlT
ZXQpIHsgfQogICAgIAogICAgIHZpcnR1YWwgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQYXJlbnRFbGVtZW50
KCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpAQCAtODAsMTQgKzgwLDE0IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbE11dGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBk
aWRNdXRhdGUoTXV0YXRpb25UeXBlKSB7IH0KIAotICAgIFN0eWxlUHJvcGVydHlTZXQqIG1fcHJv
cGVydHlTZXQ7CisgICAgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIG1fcHJvcGVydHlTZXQ7CiAg
ICAgT3duUHRyPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8Q1NTVmFsdWU+ID4gPiBtX2Nzc29t
Q1NTVmFsdWVDbG9uZXM7CiB9OwogCiBjbGFzcyBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9u
IDogcHVibGljIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbgogewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24+IGNyZWF0ZShT
dHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCwgQ1NTUnVsZSogcGFyZW50UnVsZSkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGUoTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0LCBDU1NSdWxlKiBwYXJlbnRSdWxlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZVJ1bGVDU1NTdHlsZURlY2xh
cmF0aW9uKHByb3BlcnR5U2V0LCBwYXJlbnRSdWxlKSk7CiAgICAgfQpAQCAtOTgsMTIgKzk4LDEy
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRlcmVmKCkgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHJlYXR0YWNoKFN0eWxlUHJvcGVy
dHlTZXQqKTsKKyAgICB2b2lkIHJlYXR0YWNoKE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRp
b24oU3R5bGVQcm9wZXJ0eVNldCosIENTU1J1bGUqKTsKKyAgICBTdHlsZVJ1bGVDU1NTdHlsZURl
Y2xhcmF0aW9uKE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiwgQ1NTUnVsZSopOwogCiAgICAgdmly
dHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgT1ZFUlJJREU7CiAK
QEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgogY2xhc3MgSW5saW5lQ1NTU3R5bGVEZWNsYXJh
dGlvbiA6IHB1YmxpYyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24KIHsKIHB1YmxpYzoK
LSAgICBJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5
U2V0LCBTdHlsZWRFbGVtZW50KiBwYXJlbnRFbGVtZW50KQorICAgIElubGluZUNTU1N0eWxlRGVj
bGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0LCBTdHlsZWRFbGVt
ZW50KiBwYXJlbnRFbGVtZW50KQogICAgICAgICA6IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJh
dGlvbihwcm9wZXJ0eVNldCkKICAgICAgICAgLCBtX3BhcmVudEVsZW1lbnQocGFyZW50RWxlbWVu
dCkgCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IGYz
NzcwMWMuLmQ0NzlkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAK
QEAgLTEyMzIsMzEgKzEyMzIsMjcgQEAgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBT
dHlsZVByb3BlcnR5U2V0Ojpjc3NTdHlsZURlY2xhcmF0aW9uKCkKICAgICByZXR1cm4gcHJvcGVy
dHlTZXRDU1NPTVdyYXBwZXJNYXAoKS5nZXQodGhpcyk7CiB9CiAKLUNTU1N0eWxlRGVjbGFyYXRp
b24qIFN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKQorQ1NTU3R5
bGVEZWNsYXJhdGlvbiogTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVj
bGFyYXRpb24oKQogewotICAgIEFTU0VSVChpc011dGFibGUoKSk7Ci0KICAgICBpZiAobV9vd25z
Q1NTT01XcmFwcGVyKSB7CiAgICAgICAgIEFTU0VSVCghc3RhdGljX2Nhc3Q8Q1NTU3R5bGVEZWNs
YXJhdGlvbio+KHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpKS0+cGFyZW50
UnVsZSgpKTsKICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eVNldENTU09NV3JhcHBlck1hcCgpLmdl
dCh0aGlzKS0+cGFyZW50RWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5U2V0Q1NT
T01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpOwogICAgIH0KICAgICBtX293bnNDU1NPTVdyYXBwZXIg
PSB0cnVlOwotICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiogY3Nzb21XcmFwcGVy
ID0gbmV3IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbihjb25zdF9jYXN0PFN0eWxlUHJv
cGVydHlTZXQqPih0aGlzKSk7CisgICAgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBj
c3NvbVdyYXBwZXIgPSBuZXcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKHRoaXMpOwog
ICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuYWRkKHRoaXMsIGFkb3B0UHRyKGNzc29t
V3JhcHBlcikpOwogICAgIHJldHVybiBjc3NvbVdyYXBwZXI7CiB9CiAKLUNTU1N0eWxlRGVjbGFy
YXRpb24qIFN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUlubGluZUNTU1N0eWxlRGVjbGFyYXRpb24o
Y29uc3QgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCkKK0NTU1N0eWxlRGVjbGFyYXRpb24q
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjplbnN1cmVJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9u
KGNvbnN0IFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQpCiB7Ci0gICAgQVNTRVJUKGlzTXV0
YWJsZSgpKTsKLQogICAgIGlmIChtX293bnNDU1NPTVdyYXBwZXIpIHsKICAgICAgICAgQVNTRVJU
KHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpLT5wYXJlbnRFbGVtZW50KCkg
PT0gcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVNldENTU09NV3JhcHBl
ck1hcCgpLmdldCh0aGlzKTsKICAgICB9CiAgICAgbV9vd25zQ1NTT01XcmFwcGVyID0gdHJ1ZTsK
LSAgICBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IG5ldyBJ
bmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0eVNldCo+KHRo
aXMpLCBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQqPihwYXJlbnRFbGVtZW50KSk7CisgICAgUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBjc3NvbVdyYXBwZXIgPSBuZXcgSW5saW5lQ1NT
U3R5bGVEZWNsYXJhdGlvbih0aGlzLCBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQqPihwYXJlbnRF
bGVtZW50KSk7CiAgICAgcHJvcGVydHlTZXRDU1NPTVdyYXBwZXJNYXAoKS5hZGQodGhpcywgYWRv
cHRQdHIoY3Nzb21XcmFwcGVyKSk7CiAgICAgcmV0dXJuIGNzc29tV3JhcHBlcjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IGJhMjAxNjEuLjI0MGRiMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtMTQ2LDggKzE0Niw2IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgYXNUZXh0KCkgY29uc3Q7CiAKICAgICBQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24qIGNzc1N0eWxlRGVjbGFyYXRpb24oKTsKLSAgICBDU1NTdHlsZURlY2xhcmF0
aW9uKiBlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCk7Ci0gICAgQ1NTU3R5bGVEZWNsYXJhdGlv
biogZW5zdXJlSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbihjb25zdCBTdHlsZWRFbGVtZW50KiBw
YXJlbnRFbGVtZW50KTsKIAogICAgIGJvb2wgaXNNdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9p
c011dGFibGU7IH0KICAgICBib29sIGhhc0NTU09NV3JhcHBlcigpIGNvbnN0IHsgcmV0dXJuIG1f
b3duc0NTU09NV3JhcHBlcjsgfQpAQCAtMjM2LDYgKzIzNCw5IEBAIHB1YmxpYzoKIAogICAgIE11
dGFibGVTdHlsZVByb3BlcnR5U2V0KGNvbnN0IFN0eWxlUHJvcGVydHlTZXQmKTsKIAorICAgIENT
U1N0eWxlRGVjbGFyYXRpb24qIGVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKKyAgICBDU1NT
dHlsZURlY2xhcmF0aW9uKiBlbnN1cmVJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0IFN0
eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQpOworCiAgICAgVmVjdG9yPENTU1Byb3BlcnR5LCA0
PiBtX3Byb3BlcnR5VmVjdG9yOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApp
bmRleCAwYWYwOTk5Li5hZGNkN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMzEz
LDExICszMTMsMTEgQEAgU3R5bGVSdWxlOjp+U3R5bGVSdWxlKCkKIHsKIH0KIAotU3R5bGVQcm9w
ZXJ0eVNldCogU3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcygpCitNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldCogU3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3By
b3BlcnRpZXMtPmlzTXV0YWJsZSgpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRp
ZXMtPm11dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMu
Z2V0KCkpOwogfQogCiB2b2lkIFN0eWxlUnVsZTo6c2V0UHJvcGVydGllcyhQYXNzUmVmUHRyPFN0
eWxlUHJvcGVydHlTZXQ+IHByb3BlcnRpZXMpCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCBTdHlsZVJ1
bGVQYWdlOjp+U3R5bGVSdWxlUGFnZSgpCiB7CiB9CiAKLVN0eWxlUHJvcGVydHlTZXQqIFN0eWxl
UnVsZVBhZ2U6Om11dGFibGVQcm9wZXJ0aWVzKCkKK011dGFibGVTdHlsZVByb3BlcnR5U2V0KiBT
dHlsZVJ1bGVQYWdlOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRp
ZXMtPmlzTXV0YWJsZSgpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11
dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMuZ2V0KCkp
OwogfQogCiB2b2lkIFN0eWxlUnVsZVBhZ2U6OnNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBwcm9wZXJ0aWVzKQpAQCAtMzc1LDExICszNzUsMTEgQEAgU3R5bGVSdWxl
Rm9udEZhY2U6On5TdHlsZVJ1bGVGb250RmFjZSgpCiB7CiB9CiAKLVN0eWxlUHJvcGVydHlTZXQq
IFN0eWxlUnVsZUZvbnRGYWNlOjptdXRhYmxlUHJvcGVydGllcygpCitNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldCogU3R5bGVSdWxlRm9udEZhY2U6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKICAgICBp
ZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCiAgICAgICAgIG1fcHJvcGVydGllcyA9IG1f
cHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKLSAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCo+KG1fcHJv
cGVydGllcy5nZXQoKSk7CiB9CiAKIHZvaWQgU3R5bGVSdWxlRm9udEZhY2U6OnNldFByb3BlcnRp
ZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwcm9wZXJ0aWVzKQpAQCAtNDk0LDExICs0
OTQsMTEgQEAgU3R5bGVSdWxlVmlld3BvcnQ6On5TdHlsZVJ1bGVWaWV3cG9ydCgpCiB7CiB9CiAK
LVN0eWxlUHJvcGVydHlTZXQqIFN0eWxlUnVsZVZpZXdwb3J0OjptdXRhYmxlUHJvcGVydGllcygp
CitNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlVmlld3BvcnQ6Om11dGFibGVQcm9w
ZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCiAgICAgICAg
IG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKLSAgICByZXR1cm4g
bV9wcm9wZXJ0aWVzLmdldCgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldCo+KG1fcHJvcGVydGllcy5nZXQoKSk7CiB9CiAKIHZvaWQgU3R5bGVSdWxlVmll
d3BvcnQ6OnNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwcm9wZXJ0
aWVzKQpAQCAtNTMxLDExICs1MzEsMTEgQEAgU3R5bGVSdWxlRmlsdGVyOjp+U3R5bGVSdWxlRmls
dGVyKCkKIHsKIH0KIAotU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlRmlsdGVyOjptdXRhYmxl
UHJvcGVydGllcygpCitNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlRmlsdGVyOjpt
dXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgp
KQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7Ci0g
ICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogCiB2b2lkIFN0
eWxlUnVsZUZpbHRlcjo6c2V0UHJvcGVydGllcyhQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+
IHByb3BlcnRpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKaW5kZXggMDllMWVmMS4uM2IxNGFhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAoQykgMTk5OS0y
MDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAoQykgMjAwMi0yMDAzIERpcmsgTXVl
bGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA2LCAyMDA4
LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwMiwgMjAwNiwgMjAwOCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1N0eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxl
U2hlZXQ7CitjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDsKIGNsYXNzIFN0eWxlUHJvcGVy
dHlTZXQ7CiAKIGNsYXNzIFN0eWxlUnVsZUJhc2UgOiBwdWJsaWMgV1RGOjpSZWZDb3VudGVkQmFz
ZSB7CkBAIC0xMjQsNyArMTI1LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgQ1NTU2VsZWN0b3JM
aXN0JiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yTGlzdDsgfQogICAg
IGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3By
b3BlcnRpZXMuZ2V0KCk7IH0KLSAgICBTdHlsZVByb3BlcnR5U2V0KiBtdXRhYmxlUHJvcGVydGll
cygpOworICAgIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBtdXRhYmxlUHJvcGVydGllcygpOwog
ICAgIAogICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENT
U1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxl
Y3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCB3cmFwcGVyQWRvcHRTZWxlY3Rvckxp
c3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHQoc2Vs
ZWN0b3JzKTsgfQpAQCAtMTUwLDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICB+U3R5bGVSdWxlRm9u
dEZhY2UoKTsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMoKSBjb25z
dCB7IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7IH0KLSAgICBTdHlsZVByb3BlcnR5U2V0KiBt
dXRhYmxlUHJvcGVydGllcygpOworICAgIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBtdXRhYmxl
UHJvcGVydGllcygpOwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQ
cm9wZXJ0eVNldD4pOwogCkBAIC0xNzMsNyArMTc0LDcgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
Q1NTU2VsZWN0b3IqIHNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvckxpc3QuZmly
c3QoKTsgfSAgICAKICAgICBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgpOyB9Ci0gICAgU3R5bGVQcm9wZXJ0eVNldCog
bXV0YWJsZVByb3BlcnRpZXMoKTsKKyAgICBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogbXV0YWJs
ZVByb3BlcnRpZXMoKTsKIAogICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0
b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCB3cmFwcGVyQWRv
cHRTZWxlY3Rvckxpc3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHQoc2VsZWN0b3JzKTsgfQpAQCAtMjkzLDcgKzI5NCw3IEBAIHB1YmxpYzoKICAgICB+
U3R5bGVSdWxlVmlld3BvcnQoKTsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3Bl
cnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7IH0KLSAgICBTdHlsZVBy
b3BlcnR5U2V0KiBtdXRhYmxlUHJvcGVydGllcygpOworICAgIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0KiBtdXRhYmxlUHJvcGVydGllcygpOwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0aWVzKFBhc3NS
ZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4pOwogCkBAIC0zMzksNyArMzQwLDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IFN0cmluZyYgZmlsdGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyTmFt
ZTsgfQogCiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcygpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsgfQotICAgIFN0eWxlUHJvcGVydHlTZXQqIG11dGFi
bGVQcm9wZXJ0aWVzKCk7CisgICAgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9w
ZXJ0aWVzKCk7CiAKICAgICB2b2lkIHNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0Pik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAKaW5kZXggZjQ0YzYzYS4uN2M3OWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5jcHAKQEAgLTQxLDExICs0MSwxMSBAQCBTdHlsZUtleWZyYW1lOjp+
U3R5bGVLZXlmcmFtZSgpCiB7CiB9CiAKLVN0eWxlUHJvcGVydHlTZXQqIFN0eWxlS2V5ZnJhbWU6
Om11dGFibGVQcm9wZXJ0aWVzKCkKK011dGFibGVTdHlsZVByb3BlcnR5U2V0KiBTdHlsZUtleWZy
YW1lOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0
YWJsZSgpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5
KCk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogICAg
IAogdm9pZCBTdHlsZUtleWZyYW1lOjpzZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQcm9w
ZXJ0eVNldD4gcHJvcGVydGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuaAppbmRleCBlNGM0MDk0Li45ZTIzZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5oCkBAIC0zMSw2ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CitjbGFzcyBNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldDsKIGNsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CiBjbGFzcyBTdHlsZVJ1bGVDU1NTdHls
ZURlY2xhcmF0aW9uOwogY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTsKQEAgLTUwLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0S2V5cyhWZWN0b3I8ZmxvYXQ+JiBrZXlzKSBjb25z
dCAgIHsgcGFyc2VLZXlTdHJpbmcobV9rZXksIGtleXMpOyB9CiAgICAgCiAgICAgY29uc3QgU3R5
bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllcy5n
ZXQoKTsgfQotICAgIFN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9wZXJ0aWVzKCk7CisgICAg
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9wZXJ0aWVzKCk7CiAgICAgdm9pZCBz
ZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4pOwogICAgIAogICAgIFN0
cmluZyBjc3NUZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggMDIzYjYxOS4uZDg0NDQ1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIENTU1N0eWxlRGVjbGFyYXRp
b24qIEF0dHI6OnN0eWxlKCkKICAgICBpZiAoIW1fZWxlbWVudCB8fCAhbV9lbGVtZW50LT5pc1N0
eWxlZEVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgbV9zdHlsZSA9IE11dGFibGVT
dHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKLSAgICBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50
Kj4obV9lbGVtZW50KS0+Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKHF1YWxp
ZmllZE5hbWUoKSwgdmFsdWUoKSwgc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQq
PihtX3N0eWxlLmdldCgpKSk7CisgICAgc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG1fZWxl
bWVudCktPmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShxdWFsaWZpZWROYW1l
KCksIHZhbHVlKCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIHJldHVybiBtX3N0eWxlLT5lbnN1cmVD
U1NTdHlsZURlY2xhcmF0aW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCmluZGV4IDhlNzYwYWEuLmU0ZDdk
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0F0dHIuaApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwotY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKK2Ns
YXNzIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OwogCiAvLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5k
IEVudGl0eVJlZmVyZW5jZSBjaGlsZHJlbgogLy8gdGhlcmVmb3JlIGl0IGhhcyB0byBiZSBhIGZ1
bGxibG93biBOb2RlLiBUaGUgcGxhbgpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAg
UXVhbGlmaWVkTmFtZSBtX25hbWU7CiAgICAgQXRvbWljU3RyaW5nIG1fc3RhbmRhbG9uZVZhbHVl
OwogCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fc3R5bGU7CisgICAgUmVmUHRyPE11
dGFibGVTdHlsZVByb3BlcnR5U2V0PiBtX3N0eWxlOwogICAgIHVuc2lnbmVkIG1faWdub3JlQ2hp
bGRyZW5DaGFuZ2VkIDogMzE7CiAgICAgYm9vbCBtX3NwZWNpZmllZCA6IDE7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDRjNGNlNTYuLmUzNjRhMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTU5Miw4ICs1OTIsOCBA
QCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVBZGRlZEJ5Tm9kZShOb2RlKiBub2RlKQog
ewogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cGFyZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHBhcmVudFN0eWxlID0gZWRpdGluZ1N0eWxl
RnJvbUNvbXB1dGVkU3R5bGUoQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUobm9k
ZS0+cGFyZW50Tm9kZSgpKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMpOwotICAgIFJlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBub2RlU3R5bGUgPSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlKSwgQWxsRWRpdGluZ1Byb3Bl
cnRpZXMpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gcGFyZW50U3R5bGUg
PSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OmNyZWF0ZShub2RlLT5wYXJlbnROb2RlKCkpLCBBbGxFZGl0aW5nUHJvcGVydGllcyk7Cisg
ICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBub2RlU3R5bGUgPSBlZGl0aW5nU3R5
bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShu
b2RlKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMpOwogICAgIG5vZGVTdHlsZS0+cmVtb3ZlRXF1aXZh
bGVudFByb3BlcnRpZXMocGFyZW50U3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSk7
CiAgICAgbV9tdXRhYmxlU3R5bGUtPnJlbW92ZUVxdWl2YWxlbnRQcm9wZXJ0aWVzKG5vZGVTdHls
ZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKTsKIH0KQEAgLTYwMyw4ICs2MDMsOCBAQCB2
b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVDb25mbGljdGluZ1dpdGhTdHlsZU9mTm9kZShO
b2RlKiBub2RlKQogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cGFyZW50Tm9kZSgpIHx8ICFtX211
dGFibGVTdHlsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlT
ZXQ+IHBhcmVudFN0eWxlID0gZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUobm9kZS0+cGFyZW50Tm9kZSgpKSwgQWxsRWRpdGlu
Z1Byb3BlcnRpZXMpOwotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBub2RlU3R5bGUgPSBl
ZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmNyZWF0ZShub2RlKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMpOworICAgIFJlZlB0cjxNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldD4gcGFyZW50U3R5bGUgPSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRT
dHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlLT5wYXJlbnROb2Rl
KCkpLCBBbGxFZGl0aW5nUHJvcGVydGllcyk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0PiBub2RlU3R5bGUgPSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMp
OwogICAgIG5vZGVTdHlsZS0+cmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMocGFyZW50U3R5bGUt
PmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSk7CiAKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNv
dW50ID0gbm9kZVN0eWxlLT5wcm9wZXJ0eUNvdW50KCk7CkBAIC02NDcsNyArNjQ3LDcgQEAgVHJp
U3RhdGUgRWRpdGluZ1N0eWxlOjp0cmlTdGF0ZU9mU3R5bGUoRWRpdGluZ1N0eWxlKiBzdHlsZSkg
Y29uc3QKIHsKICAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+bV9tdXRhYmxlU3R5bGUpCiAgICAg
ICAgIHJldHVybiBGYWxzZVRyaVN0YXRlOwotICAgIHJldHVybiB0cmlTdGF0ZU9mU3R5bGUoc3R5
bGUtPm1fbXV0YWJsZVN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIERvTm90SWdu
b3JlVGV4dE9ubHlQcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gdHJpU3RhdGVPZlN0eWxlKHN0YXRp
Y19wb2ludGVyX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KHN0eWxlLT5tX211dGFibGVT
dHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgRG9Ob3RJZ25vcmVUZXh0T25seVBy
b3BlcnRpZXMpOwogfQogCiBUcmlTdGF0ZSBFZGl0aW5nU3R5bGU6OnRyaVN0YXRlT2ZTdHlsZShD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZVRvQ29tcGFyZSwgU2hvdWxkSWdub3JlVGV4dE9ubHlQ
cm9wZXJ0aWVzIHNob3VsZElnbm9yZVRleHRPbmx5UHJvcGVydGllcykgY29uc3QKQEAgLTEwNzIs
NyArMTA3Miw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlKGNvbnN0IFN0eWxlUHJv
cGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eU92ZXJyaWRlCiAgICAgbV9mb250U2l6ZURlbHRh
ICs9IG9sZEZvbnRTaXplRGVsdGE7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVy
dHlTZXQ+IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwg
dW5zaWduZWQgcnVsZXNUb0luY2x1ZGUpCitzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldD4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSkKIHsKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwog
ICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0Y2hlZFJ1bGVzID0gZWxlbWVudC0+ZG9jdW1lbnQo
KS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBydWxlc1Rv
SW5jbHVkZSk7CkBAIC0xMTQxLDcgKzExNDEsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3Zl
U3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQsIE5vZGUqCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIDEuIFJlbW92ZSBzdHlsZSBmcm9tIG1hdGNoZWQgcnVs
ZXMgYmVjYXVzZSBzdHlsZSByZW1haW4gd2l0aG91dCByZXBlYXRpbmcgaXQgaW4gaW5saW5lIHN0
eWxlIGRlY2xhcmF0aW9uCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlRnJvbU1h
dGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgU3R5
bGVSZXNvbHZlcjo6QWxsQnV0RW1wdHlDU1NSdWxlcyk7CisgICAgUmVmUHRyPE11dGFibGVTdHls
ZVByb3BlcnR5U2V0PiBzdHlsZUZyb21NYXRjaGVkUnVsZXMgPSBzdHlsZUZyb21NYXRjaGVkUnVs
ZXNGb3JFbGVtZW50KGVsZW1lbnQsIFN0eWxlUmVzb2x2ZXI6OkFsbEJ1dEVtcHR5Q1NTUnVsZXMp
OwogICAgIGlmIChzdHlsZUZyb21NYXRjaGVkUnVsZXMgJiYgIXN0eWxlRnJvbU1hdGNoZWRSdWxl
cy0+aXNFbXB0eSgpKQogICAgICAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJ
bihtX211dGFibGVTdHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLT5lbnN1cmVDU1NT
dHlsZURlY2xhcmF0aW9uKCkpOwogCkBAIC0xMTUyLDcgKzExNTIsNyBAQCB2b2lkIEVkaXRpbmdT
dHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqIGVsZW1l
bnQsIE5vZGUqCiAgICAgICAgICAgICBjb21wdXRlZFN0eWxlLT5tX211dGFibGVTdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIENTU1ZhbHVlVHJhbnNwYXJlbnQp
OwogCiAgICAgICAgIHJlbW92ZVByb3BlcnRpZXNJblN0eWxlKGNvbXB1dGVkU3R5bGUtPm1fbXV0
YWJsZVN0eWxlLmdldCgpLCBzdHlsZUZyb21NYXRjaGVkUnVsZXMuZ2V0KCkpOwotICAgICAgICBt
X211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJbihtX211dGFibGVTdHlsZS5nZXQoKSwg
Y29tcHV0ZWRTdHlsZS0+bV9tdXRhYmxlU3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24o
KSk7CisgICAgICAgIG1fbXV0YWJsZVN0eWxlID0gZ2V0UHJvcGVydGllc05vdEluKG1fbXV0YWJs
ZVN0eWxlLmdldCgpLCBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0
Pihjb21wdXRlZFN0eWxlLT5tX211dGFibGVTdHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24oKSk7CiAgICAgfQogCiAgICAgLy8gMy4gSWYgdGhpcyBlbGVtZW50IGlzIGEgc3BhbiBhbmQg
aGFzIGRpc3BsYXk6IGlubGluZSBvciBmbG9hdDogbm9uZSwgcmVtb3ZlIHRoZW0gdW5sZXNzIHRo
ZXkgYXJlIG92ZXJyaWRlbiBieSBydWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggN2M5YzVlMi4uN2FlMzdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTE4OTUsNyArMTg5NSw3IEBAIHZvaWQgRHJhZ0Nh
cmV0Q29udHJvbGxlcjo6cGFpbnREcmFnQ2FyZXQoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0NvbnRl
eHQqIHAsIGNvbnN0CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBG
cmFtZVNlbGVjdGlvbjo6Y29weVR5cGluZ1N0eWxlKCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ+IEZyYW1lU2VsZWN0aW9uOjpjb3B5VHlwaW5nU3R5bGUoKSBjb25z
dAogewogICAgIGlmICghbV90eXBpbmdTdHlsZSB8fCAhbV90eXBpbmdTdHlsZS0+c3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
aW5kZXggYzM4ZTY0ZC4uZjU0MmQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaApAQCAtNDEsMTAgKzQxLDEwIEBAIGNsYXNzIENoYXJhY3RlckRhdGE7CiBjbGFzcyBG
cmFtZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKK2Ns
YXNzIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3Mg
UmVuZGVyVmlldzsKIGNsYXNzIFNldHRpbmdzOwotY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKIGNs
YXNzIFZpc2libGVQb3NpdGlvbjsKIAogZW51bSBFVXNlclRyaWdnZXJlZCB7IE5vdFVzZXJUcmln
Z2VyZWQgPSAwLCBVc2VyVHJpZ2dlcmVkID0gMSB9OwpAQCAtMjQyLDcgKzI0Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHBhaW50RHJhZ0NhcmV0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91
dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpIGNvbnN0OwogCiAgICAgRWRpdGlu
Z1N0eWxlKiB0eXBpbmdTdHlsZSgpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0
eVNldD4gY29weVR5cGluZ1N0eWxlKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldD4gY29weVR5cGluZ1N0eWxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUeXBp
bmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4pOwogICAgIHZvaWQgY2xlYXJUeXBpbmdT
dHlsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcAppbmRleCBhOGM5MzFlLi44MzUwNmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTExOTcsMTEgKzExOTcsMTUgQEAgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yQXR0cmlidXQKICAgICBpZiAoIWVsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGF0dHJpYnV0
ZVN0eWxlID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpLT5wcmVzZW50YXRp
b25BdHRyaWJ1dGVTdHlsZSgpOworICAgIC8vIEZJWE1FOiBVZ2xpbmVzcyBiZWxvdy4KKyAgICBT
dHlsZVByb3BlcnR5U2V0KiBhdHRyaWJ1dGVTdHlsZSA9IGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0
eVNldCo+KHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihlbGVtZW50KS0+cHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoKSk7CiAgICAgaWYgKCFhdHRyaWJ1dGVTdHlsZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yU3R5bGU+IGluc3BlY3RvclN0eWxlID0gSW5z
cGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0b3JDU1NJZCgpLCBjb25zdF9jYXN0PFN0eWxlUHJv
cGVydHlTZXQqPihhdHRyaWJ1dGVTdHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwg
MCk7CisgICAgQVNTRVJUKGF0dHJpYnV0ZVN0eWxlLT5pc011dGFibGUoKSk7CisgICAgTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVBdHRyaWJ1dGVTdHlsZSA9IHN0YXRpY19jYXN0PE11
dGFibGVTdHlsZVByb3BlcnR5U2V0Kj4oYXR0cmlidXRlU3R5bGUpOworCisgICAgUmVmUHRyPElu
c3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5z
cGVjdG9yQ1NTSWQoKSwgbXV0YWJsZUF0dHJpYnV0ZVN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xh
cmF0aW9uKCksIDApOwogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZS0+YnVpbGRPYmplY3RGb3JT
dHlsZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYWJjZjFiZS4uNjEwODA5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMjUx
LDggKzI1MSw5IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogeworICAgIFJlZlB0cjxNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldD4gbXV0YWJsZVN0eWxlID0gc3R5bGUtPmlzTXV0YWJsZSgpID8g
c3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihzdHlsZSkgOiBzdHlsZS0+bXV0
YWJsZUNvcHkoKTsKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndh
cmRlcl0gd2ViVmlldzptX3dlYlZpZXcKLSAgICAgICAgc2hvdWxkQXBwbHlTdHlsZTpraXQoc3R5
bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkgdG9FbGVtZW50c0luRE9NUmFuZ2U6a2l0
KHJhbmdlKV07CisgICAgICAgIHNob3VsZEFwcGx5U3R5bGU6a2l0KG11dGFibGVTdHlsZS0+ZW5z
dXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKSB0b0VsZW1lbnRzSW5ET01SYW5nZTpraXQocmFuZ2Up
XTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRl
KFJhbmdlKiByYW5nZSwgUmFuZ2UqIHJhbmdlVG9CZVJlcGxhY2VkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWUubW0KaW5kZXggMDZhNjU4NC4uY2RmMWQ3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC03NjgsNyArNzY4LDcgQEAgc3RhdGljIGlubGluZSBX
ZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAg
aWYgKCFfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIFJlZlB0
cjxTdHlsZVByb3BlcnR5U2V0PiB0eXBpbmdTdHlsZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNl
bGVjdGlvbigpLT5jb3B5VHlwaW5nU3R5bGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ+IHR5cGluZ1N0eWxlID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkt
PmNvcHlUeXBpbmdTdHlsZSgpOwogICAgIGlmICghdHlwaW5nU3R5bGUpCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgcmV0dXJuIGtpdCh0eXBpbmdTdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJh
dGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA5MDlkNzNmLi45MWI0NzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0xNjIsNyArMTYyLDggQEAgYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2UqIGZyb21SYW5nZSwgUmFu
Z2UqIHRvUmFuZ2UKICAgICAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxl
KFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCiB7Ci0gICAgYm9vbCByZXN1
bHQgPSBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkuc2hvdWxkQXBwbHlTdHls
ZShtX3BhZ2UsIHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIHJhbmdlKTsKKyAg
ICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IG11dGFibGVTdHlsZSA9IHN0eWxlLT5p
c011dGFibGUoKSA/IHN0YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kj4oc3R5bGUp
IDogc3R5bGUtPm11dGFibGVDb3B5KCk7CisgICAgYm9vbCByZXN1bHQgPSBtX3BhZ2UtPmluamVj
dGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkuc2hvdWxkQXBwbHlTdHlsZShtX3BhZ2UsIG11dGFibGVT
dHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCByYW5nZSk7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197990</attachid>
            <date>2013-04-14 07:24:24 -0700</date>
            <delta_ts>2013-04-14 08:09:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114581.diff</filename>
            <type>text/plain</type>
            <size>29558</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZTk5ZGI0Li40NzE0ZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzAg
QEAKIDIwMTMtMDQtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIE1vdmUgQ1NTT00gY2xhc3NlcyB0byB1c2luZyBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCBv
dmVyIFN0eWxlUHJvcGVydHlTZXQuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNDU4
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
ZCBlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCkgYW5kIGVuc3VyZUlubGluZUNTU1N0eWxlRGVj
bGFyYXRpb24oKSBmcm9tIFN0eWxlUHJvcGVydHlTZXQKKyAgICAgICAgdG8gTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQuCisKKyAgICAgICAgU3R5bGVSdWxlICYgY28gbm93IHJldHVybiBhIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0KiBmcm9tIG11dGFibGVQcm9wZXJ0aWVzKCkgdG8gYWlkIHdpdGgu
Li4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIG5vdyBvbmx5IGRlYWxzIHdpdGggTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXRzLiBUaGlzIHdhcyBhbHJlYWR5IHRoZSBjYXNlCisgICAgICAg
IGluIHByYWN0aWNlLCB3ZSBqdXN0IGRpZG4ndCBoYXZlIGFueSBjb21waWxlLXRpbWUgZm9vdC1z
aG9vdGluZyBwcm90ZWN0aW9uLgorICAgICAgICBJbiBvdGhlciB3b3JkcywgaWYgdGhlcmUncyBh
IENTU09NIHdyYXBwZXIgZm9yIGEgZ2l2ZW4gU3R5bGVQcm9wZXJ0eVNldCwgaXQncyBndWFyYW50
ZWVkIHRvCisgICAgICAgIGJlIG11dGFibGUsIGFuZCB0aGUgcG9pbnRlciB0eXBlcyBub3cgcmVm
bGVjdCB0aGlzLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogY3NzL1By
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnJlYXR0YWNo
KToKKyAgICAgICAgKiBjc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OlByb3BlcnR5U2V0
Q1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgIChQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbjo6SW5saW5lQ1NTU3R5bGVEZWNs
YXJhdGlvbik6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUlu
bGluZUNTU1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0
Lmg6CisgICAgICAgIChTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUnVsZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVSdWxlUGFnZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
dWxlRm9udEZhY2U6Om11dGFibGVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UnVsZVZpZXdwb3J0OjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJ1bGVGaWx0ZXI6Om11dGFibGVQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSdWxl
Lmg6CisgICAgICAgIChTdHlsZVJ1bGUpOgorICAgICAgICAoU3R5bGVSdWxlRm9udEZhY2UpOgor
ICAgICAgICAoU3R5bGVSdWxlUGFnZSk6CisgICAgICAgIChTdHlsZVJ1bGVWaWV3cG9ydCk6Cisg
ICAgICAgIChTdHlsZVJ1bGVGaWx0ZXIpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVLZXlmcmFtZTo6bXV0YWJsZVByb3Bl
cnRpZXMpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDoKKyAgICAgICAg
KFN0eWxlS2V5ZnJhbWUpOgorICAgICAgICAqIGRvbS9BdHRyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkF0dHI6OnN0eWxlKToKKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAgICAgICAoQXR0cik6
CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdGluZ1N0eWxlOjpyZW1vdmVTdHlsZUFkZGVkQnlOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVDb25mbGljdGluZ1dpdGhTdHlsZU9mTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OnRyaVN0YXRlT2ZTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpzdHlsZUZyb21NYXRjaGVkUnVsZXNGb3JFbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KToKKyAg
ICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lU2VsZWN0aW9uOjpjb3B5VHlwaW5nU3R5bGUpOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXR0cmli
dXRlc1N0eWxlKToKKworMjAxMy0wNC0xNCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CisKICAgICAgICAgTW92ZSBjcmVhdGUoKSBtZXRob2RzIGZyb20gU3R5bGVQcm9wZXJ0eVNl
dCB0byBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldC4KICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvMTE0NTc0PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDA0MjQ0YWIuLjkxMGEzZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC03MTgsNiArNzE4LDcgQEAgX19aTjdXZWJDb3JlMjNBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZTI2c3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW5FUEtOU18xNFNl
Y3VyaXQKIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U1ZW1wdHlFdgogX19a
TjdXZWJDb3JlMjNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTIzc2V0QXV0aGVudGljYXRpb25DbGll
bnRFUE5TXzIwQXV0aGVudGljYXRpb25DbGllbnRFCiBfX1pON1dlYkNvcmUyM0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQzFFUktOU18xNVByb3RlY3Rpb25TcGFjZUVSS05TXzEwQ3JlZGVudGlhbEVq
UktOU18xNlJlc291cmNlUmVzcG9uc2VFUktOU18xM1Jlc291cmNlRXJyb3JFCitfX1pON1dlYkNv
cmUyM011dGFibGVTdHlsZVByb3BlcnR5U2V0MjVlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uRXYK
IF9fWk43V2ViQ29yZTIzY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXNFUE5TXzhEb2N1bWVudEVSS04z
V1RGNlZlY3RvcklQTlNfNE5vZGVFTG0wRU5TMl8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdX
ZWJDb3JlMjNkYXRhRm9yVVJMQ29tcG9uZW50VHlwZUVQNU5TVVJMbAogX19aTjdXZWJDb3JlMjNk
ZWNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCkBAIC0xMzk0LDYgKzEz
OTUsNyBAQCBfX1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTVpc1Bhc3N3b3JkRmllbGRF
dgogX19aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE4c2hvdWxkQXV0b2NvbXBsZXRlRXYK
IF9fWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQ2aXNUZXh0RXYKIF9fWk5LN1dlYkNvcmUx
Nkljb25EYXRhYmFzZUJhc2UxMmRhdGFiYXNlUGF0aEV2CitfX1pOSzdXZWJDb3JlMTZTdHlsZVBy
b3BlcnR5U2V0MTFtdXRhYmxlQ29weUV2CiBfX1pOSzdXZWJDb3JlMTZSZXNvdXJjZVJlc3BvbnNl
MTNuc1VSTFJlc3BvbnNlRXYKIF9fWk5LN1dlYkNvcmUxNlJlc291cmNlUmVzcG9uc2UxNmNlcnRp
ZmljYXRlQ2hhaW5FdgogX19aTks3V2ViQ29yZTE2VmlzaWJsZVNlbGVjdGlvbjE3aXNDb250ZW50
RWRpdGFibGVFdgpAQCAtMTc4Nyw3ICsxNzg5LDYgQEAgX19aTjdXZWJDb3JlMTVTcGVlY2hTeW50
aGVzaXMyMnNldFBsYXRmb3JtU3ludGhlc2l6ZXJFTjNXVEYxMFBhc3NPd25QdHJJTlNfMjVQbGEK
ICNlbmRpZgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNf
MTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZG
b250UGxhdGZvcm1EYXRhQzJFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZG
b250V2lkdGhWYXJpYW50RQotX19aTjdXZWJDb3JlMTZTdHlsZVByb3BlcnR5U2V0MjVlbnN1cmVD
U1NTdHlsZURlY2xhcmF0aW9uRXYKIF9fWk43V2ViQ29yZTE2U3R5bGVQcm9wZXJ0eVNldEQyRXYK
IF9fWk43V2ViQ29yZTE2Y29sb3JGcm9tTlNDb2xvckVQN05TQ29sb3IKIF9fWk43V2ViQ29yZTE2
ZW5jbG9zaW5nSW50UmVjdEVSSzdfTlNSZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDZiNTA3NWIuLmY5YTY0
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCkBAIC0zMTIsNyArMzEyLDcgQEAgYm9vbCBQcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb246OmNzc1Byb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlEIHByb3BlcnR5
SUQKICAgICByZXR1cm4gbV9wcm9wZXJ0eVNldC0+cHJvcGVydHlNYXRjaGVzKHByb3BlcnR5SUQs
IHByb3BlcnR5VmFsdWUpOwogfQogICAgIAotU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
U3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbihTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNl
dCwgQ1NTUnVsZSogcGFyZW50UnVsZSkKK1N0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OlN0
eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHByb3Bl
cnR5U2V0LCBDU1NSdWxlKiBwYXJlbnRSdWxlKQogICAgIDogUHJvcGVydHlTZXRDU1NTdHlsZURl
Y2xhcmF0aW9uKHByb3BlcnR5U2V0KQogICAgICwgbV9yZWZDb3VudCgxKQogICAgICwgbV9wYXJl
bnRSdWxlKHBhcmVudFJ1bGUpIApAQCAtMzU4LDcgKzM1OCw3IEBAIENTU1N0eWxlU2hlZXQqIFN0
eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnBhcmVudFN0eWxlU2hlZXQoKSBjb25zdAogICAg
IHJldHVybiBtX3BhcmVudFJ1bGUgPyBtX3BhcmVudFJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA6
IDA7CiB9CiAKLXZvaWQgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6cmVhdHRhY2goU3R5
bGVQcm9wZXJ0eVNldCogcHJvcGVydHlTZXQpCit2b2lkIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFy
YXRpb246OnJlYXR0YWNoKE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCkKIHsK
ICAgICBBU1NFUlQocHJvcGVydHlTZXQpOwogICAgIG1fcHJvcGVydHlTZXQtPmRlcmVmKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9u
LmgKaW5kZXggZjg2Y2FkOC4uOGQ3Zjk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaApAQCAtMzYsMTMgKzM2LDEzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1J1bGU7CiBjbGFzcyBDU1NQcm9wZXJ0eTsKIGNs
YXNzIENTU1ZhbHVlOwotY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKK2NsYXNzIE11dGFibGVTdHls
ZVByb3BlcnR5U2V0OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogY2xhc3MgU3R5bGVkRWxl
bWVudDsKIAogY2xhc3MgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uIDogcHVibGljIENT
U1N0eWxlRGVjbGFyYXRpb24gewogcHVibGljOgotICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbihTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCkgOiBtX3Byb3BlcnR5U2V0KHBy
b3BlcnR5U2V0KSB7IH0KKyAgICBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24oTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0KSA6IG1fcHJvcGVydHlTZXQocHJvcGVydHlT
ZXQpIHsgfQogICAgIAogICAgIHZpcnR1YWwgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQYXJlbnRFbGVtZW50
KCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQpAQCAtODAsMTQgKzgwLDE0IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbE11dGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBk
aWRNdXRhdGUoTXV0YXRpb25UeXBlKSB7IH0KIAotICAgIFN0eWxlUHJvcGVydHlTZXQqIG1fcHJv
cGVydHlTZXQ7CisgICAgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIG1fcHJvcGVydHlTZXQ7CiAg
ICAgT3duUHRyPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8Q1NTVmFsdWU+ID4gPiBtX2Nzc29t
Q1NTVmFsdWVDbG9uZXM7CiB9OwogCiBjbGFzcyBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9u
IDogcHVibGljIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbgogewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb24+IGNyZWF0ZShT
dHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCwgQ1NTUnVsZSogcGFyZW50UnVsZSkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uPiBjcmVhdGUoTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0LCBDU1NSdWxlKiBwYXJlbnRSdWxlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZVJ1bGVDU1NTdHlsZURlY2xh
cmF0aW9uKHByb3BlcnR5U2V0LCBwYXJlbnRSdWxlKSk7CiAgICAgfQpAQCAtOTgsMTIgKzk4LDEy
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRlcmVmKCkgT1ZFUlJJREU7CiAKLSAgICB2b2lkIHJlYXR0YWNoKFN0eWxlUHJvcGVy
dHlTZXQqKTsKKyAgICB2b2lkIHJlYXR0YWNoKE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRp
b24oU3R5bGVQcm9wZXJ0eVNldCosIENTU1J1bGUqKTsKKyAgICBTdHlsZVJ1bGVDU1NTdHlsZURl
Y2xhcmF0aW9uKE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiwgQ1NTUnVsZSopOwogCiAgICAgdmly
dHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgT1ZFUlJJREU7CiAK
QEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgogY2xhc3MgSW5saW5lQ1NTU3R5bGVEZWNsYXJh
dGlvbiA6IHB1YmxpYyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24KIHsKIHB1YmxpYzoK
LSAgICBJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5
U2V0LCBTdHlsZWRFbGVtZW50KiBwYXJlbnRFbGVtZW50KQorICAgIElubGluZUNTU1N0eWxlRGVj
bGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0LCBTdHlsZWRFbGVt
ZW50KiBwYXJlbnRFbGVtZW50KQogICAgICAgICA6IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJh
dGlvbihwcm9wZXJ0eVNldCkKICAgICAgICAgLCBtX3BhcmVudEVsZW1lbnQocGFyZW50RWxlbWVu
dCkgCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IGYz
NzcwMWMuLmQ0NzlkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAK
QEAgLTEyMzIsMzEgKzEyMzIsMjcgQEAgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBT
dHlsZVByb3BlcnR5U2V0Ojpjc3NTdHlsZURlY2xhcmF0aW9uKCkKICAgICByZXR1cm4gcHJvcGVy
dHlTZXRDU1NPTVdyYXBwZXJNYXAoKS5nZXQodGhpcyk7CiB9CiAKLUNTU1N0eWxlRGVjbGFyYXRp
b24qIFN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKQorQ1NTU3R5
bGVEZWNsYXJhdGlvbiogTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUNTU1N0eWxlRGVj
bGFyYXRpb24oKQogewotICAgIEFTU0VSVChpc011dGFibGUoKSk7Ci0KICAgICBpZiAobV9vd25z
Q1NTT01XcmFwcGVyKSB7CiAgICAgICAgIEFTU0VSVCghc3RhdGljX2Nhc3Q8Q1NTU3R5bGVEZWNs
YXJhdGlvbio+KHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpKS0+cGFyZW50
UnVsZSgpKTsKICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eVNldENTU09NV3JhcHBlck1hcCgpLmdl
dCh0aGlzKS0+cGFyZW50RWxlbWVudCgpKTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5U2V0Q1NT
T01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpOwogICAgIH0KICAgICBtX293bnNDU1NPTVdyYXBwZXIg
PSB0cnVlOwotICAgIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiogY3Nzb21XcmFwcGVy
ID0gbmV3IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbihjb25zdF9jYXN0PFN0eWxlUHJv
cGVydHlTZXQqPih0aGlzKSk7CisgICAgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBj
c3NvbVdyYXBwZXIgPSBuZXcgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKHRoaXMpOwog
ICAgIHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuYWRkKHRoaXMsIGFkb3B0UHRyKGNzc29t
V3JhcHBlcikpOwogICAgIHJldHVybiBjc3NvbVdyYXBwZXI7CiB9CiAKLUNTU1N0eWxlRGVjbGFy
YXRpb24qIFN0eWxlUHJvcGVydHlTZXQ6OmVuc3VyZUlubGluZUNTU1N0eWxlRGVjbGFyYXRpb24o
Y29uc3QgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCkKK0NTU1N0eWxlRGVjbGFyYXRpb24q
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjplbnN1cmVJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9u
KGNvbnN0IFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQpCiB7Ci0gICAgQVNTRVJUKGlzTXV0
YWJsZSgpKTsKLQogICAgIGlmIChtX293bnNDU1NPTVdyYXBwZXIpIHsKICAgICAgICAgQVNTRVJU
KHByb3BlcnR5U2V0Q1NTT01XcmFwcGVyTWFwKCkuZ2V0KHRoaXMpLT5wYXJlbnRFbGVtZW50KCkg
PT0gcGFyZW50RWxlbWVudCk7CiAgICAgICAgIHJldHVybiBwcm9wZXJ0eVNldENTU09NV3JhcHBl
ck1hcCgpLmdldCh0aGlzKTsKICAgICB9CiAgICAgbV9vd25zQ1NTT01XcmFwcGVyID0gdHJ1ZTsK
LSAgICBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc29tV3JhcHBlciA9IG5ldyBJ
bmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0eVNldCo+KHRo
aXMpLCBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQqPihwYXJlbnRFbGVtZW50KSk7CisgICAgUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uKiBjc3NvbVdyYXBwZXIgPSBuZXcgSW5saW5lQ1NT
U3R5bGVEZWNsYXJhdGlvbih0aGlzLCBjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQqPihwYXJlbnRF
bGVtZW50KSk7CiAgICAgcHJvcGVydHlTZXRDU1NPTVdyYXBwZXJNYXAoKS5hZGQodGhpcywgYWRv
cHRQdHIoY3Nzb21XcmFwcGVyKSk7CiAgICAgcmV0dXJuIGNzc29tV3JhcHBlcjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IGJhMjAxNjEuLjI0MGRiMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtMTQ2LDggKzE0Niw2IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgYXNUZXh0KCkgY29uc3Q7CiAKICAgICBQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24qIGNzc1N0eWxlRGVjbGFyYXRpb24oKTsKLSAgICBDU1NTdHlsZURlY2xhcmF0
aW9uKiBlbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCk7Ci0gICAgQ1NTU3R5bGVEZWNsYXJhdGlv
biogZW5zdXJlSW5saW5lQ1NTU3R5bGVEZWNsYXJhdGlvbihjb25zdCBTdHlsZWRFbGVtZW50KiBw
YXJlbnRFbGVtZW50KTsKIAogICAgIGJvb2wgaXNNdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9p
c011dGFibGU7IH0KICAgICBib29sIGhhc0NTU09NV3JhcHBlcigpIGNvbnN0IHsgcmV0dXJuIG1f
b3duc0NTU09NV3JhcHBlcjsgfQpAQCAtMjM2LDYgKzIzNCw5IEBAIHB1YmxpYzoKIAogICAgIE11
dGFibGVTdHlsZVByb3BlcnR5U2V0KGNvbnN0IFN0eWxlUHJvcGVydHlTZXQmKTsKIAorICAgIENT
U1N0eWxlRGVjbGFyYXRpb24qIGVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKKyAgICBDU1NT
dHlsZURlY2xhcmF0aW9uKiBlbnN1cmVJbmxpbmVDU1NTdHlsZURlY2xhcmF0aW9uKGNvbnN0IFN0
eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQpOworCiAgICAgVmVjdG9yPENTU1Byb3BlcnR5LCA0
PiBtX3Byb3BlcnR5VmVjdG9yOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApp
bmRleCAwYWYwOTk5Li5hZGNkN2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMzEz
LDExICszMTMsMTEgQEAgU3R5bGVSdWxlOjp+U3R5bGVSdWxlKCkKIHsKIH0KIAotU3R5bGVQcm9w
ZXJ0eVNldCogU3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcygpCitNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldCogU3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3By
b3BlcnRpZXMtPmlzTXV0YWJsZSgpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRp
ZXMtPm11dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMu
Z2V0KCkpOwogfQogCiB2b2lkIFN0eWxlUnVsZTo6c2V0UHJvcGVydGllcyhQYXNzUmVmUHRyPFN0
eWxlUHJvcGVydHlTZXQ+IHByb3BlcnRpZXMpCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCBTdHlsZVJ1
bGVQYWdlOjp+U3R5bGVSdWxlUGFnZSgpCiB7CiB9CiAKLVN0eWxlUHJvcGVydHlTZXQqIFN0eWxl
UnVsZVBhZ2U6Om11dGFibGVQcm9wZXJ0aWVzKCkKK011dGFibGVTdHlsZVByb3BlcnR5U2V0KiBT
dHlsZVJ1bGVQYWdlOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRp
ZXMtPmlzTXV0YWJsZSgpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11
dGFibGVDb3B5KCk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMuZ2V0KCkp
OwogfQogCiB2b2lkIFN0eWxlUnVsZVBhZ2U6OnNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBwcm9wZXJ0aWVzKQpAQCAtMzc1LDExICszNzUsMTEgQEAgU3R5bGVSdWxl
Rm9udEZhY2U6On5TdHlsZVJ1bGVGb250RmFjZSgpCiB7CiB9CiAKLVN0eWxlUHJvcGVydHlTZXQq
IFN0eWxlUnVsZUZvbnRGYWNlOjptdXRhYmxlUHJvcGVydGllcygpCitNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldCogU3R5bGVSdWxlRm9udEZhY2U6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKICAgICBp
ZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCiAgICAgICAgIG1fcHJvcGVydGllcyA9IG1f
cHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKLSAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCo+KG1fcHJv
cGVydGllcy5nZXQoKSk7CiB9CiAKIHZvaWQgU3R5bGVSdWxlRm9udEZhY2U6OnNldFByb3BlcnRp
ZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwcm9wZXJ0aWVzKQpAQCAtNDk0LDExICs0
OTQsMTEgQEAgU3R5bGVSdWxlVmlld3BvcnQ6On5TdHlsZVJ1bGVWaWV3cG9ydCgpCiB7CiB9CiAK
LVN0eWxlUHJvcGVydHlTZXQqIFN0eWxlUnVsZVZpZXdwb3J0OjptdXRhYmxlUHJvcGVydGllcygp
CitNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlVmlld3BvcnQ6Om11dGFibGVQcm9w
ZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCiAgICAgICAg
IG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKLSAgICByZXR1cm4g
bV9wcm9wZXJ0aWVzLmdldCgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldCo+KG1fcHJvcGVydGllcy5nZXQoKSk7CiB9CiAKIHZvaWQgU3R5bGVSdWxlVmll
d3BvcnQ6OnNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBwcm9wZXJ0
aWVzKQpAQCAtNTMxLDExICs1MzEsMTEgQEAgU3R5bGVSdWxlRmlsdGVyOjp+U3R5bGVSdWxlRmls
dGVyKCkKIHsKIH0KIAotU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlRmlsdGVyOjptdXRhYmxl
UHJvcGVydGllcygpCitNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlRmlsdGVyOjpt
dXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgp
KQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7Ci0g
ICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogCiB2b2lkIFN0
eWxlUnVsZUZpbHRlcjo6c2V0UHJvcGVydGllcyhQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+
IHByb3BlcnRpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKaW5kZXggMDllMWVmMS4uM2IxNGFhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAoQykgMTk5OS0y
MDAzIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAoQykgMjAwMi0yMDAzIERpcmsgTXVl
bGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA2LCAyMDA4
LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwMiwgMjAwNiwgMjAwOCwgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1N0eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxl
U2hlZXQ7CitjbGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDsKIGNsYXNzIFN0eWxlUHJvcGVy
dHlTZXQ7CiAKIGNsYXNzIFN0eWxlUnVsZUJhc2UgOiBwdWJsaWMgV1RGOjpSZWZDb3VudGVkQmFz
ZSB7CkBAIC0xMjQsNyArMTI1LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgQ1NTU2VsZWN0b3JM
aXN0JiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdG9yTGlzdDsgfQogICAg
IGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3By
b3BlcnRpZXMuZ2V0KCk7IH0KLSAgICBTdHlsZVByb3BlcnR5U2V0KiBtdXRhYmxlUHJvcGVydGll
cygpOworICAgIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBtdXRhYmxlUHJvcGVydGllcygpOwog
ICAgIAogICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8T3duUHRyPENT
U1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHRTZWxl
Y3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCB3cmFwcGVyQWRvcHRTZWxlY3Rvckxp
c3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxpc3QuYWRvcHQoc2Vs
ZWN0b3JzKTsgfQpAQCAtMTUwLDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICB+U3R5bGVSdWxlRm9u
dEZhY2UoKTsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMoKSBjb25z
dCB7IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7IH0KLSAgICBTdHlsZVByb3BlcnR5U2V0KiBt
dXRhYmxlUHJvcGVydGllcygpOworICAgIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBtdXRhYmxl
UHJvcGVydGllcygpOwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQ
cm9wZXJ0eVNldD4pOwogCkBAIC0xNzMsNyArMTc0LDcgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
Q1NTU2VsZWN0b3IqIHNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvckxpc3QuZmly
c3QoKTsgfSAgICAKICAgICBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgpOyB9Ci0gICAgU3R5bGVQcm9wZXJ0eVNldCog
bXV0YWJsZVByb3BlcnRpZXMoKTsKKyAgICBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogbXV0YWJs
ZVByb3BlcnRpZXMoKTsKIAogICAgIHZvaWQgcGFyc2VyQWRvcHRTZWxlY3RvclZlY3RvcihWZWN0
b3I8T3duUHRyPENTU1BhcnNlclNlbGVjdG9yPiA+JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHRTZWxlY3RvclZlY3RvcihzZWxlY3RvcnMpOyB9CiAgICAgdm9pZCB3cmFwcGVyQWRv
cHRTZWxlY3Rvckxpc3QoQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3RvcnMpIHsgbV9zZWxlY3Rvckxp
c3QuYWRvcHQoc2VsZWN0b3JzKTsgfQpAQCAtMjkzLDcgKzI5NCw3IEBAIHB1YmxpYzoKICAgICB+
U3R5bGVSdWxlVmlld3BvcnQoKTsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3Bl
cnRpZXMoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7IH0KLSAgICBTdHlsZVBy
b3BlcnR5U2V0KiBtdXRhYmxlUHJvcGVydGllcygpOworICAgIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0KiBtdXRhYmxlUHJvcGVydGllcygpOwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0aWVzKFBhc3NS
ZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4pOwogCkBAIC0zMzksNyArMzQwLDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IFN0cmluZyYgZmlsdGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyTmFt
ZTsgfQogCiAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcygpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsgfQotICAgIFN0eWxlUHJvcGVydHlTZXQqIG11dGFi
bGVQcm9wZXJ0aWVzKCk7CisgICAgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9w
ZXJ0aWVzKCk7CiAKICAgICB2b2lkIHNldFByb3BlcnRpZXMoUGFzc1JlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0Pik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAKaW5kZXggZjQ0YzYzYS4uN2M3OWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5jcHAKQEAgLTQxLDExICs0MSwxMSBAQCBTdHlsZUtleWZyYW1lOjp+
U3R5bGVLZXlmcmFtZSgpCiB7CiB9CiAKLVN0eWxlUHJvcGVydHlTZXQqIFN0eWxlS2V5ZnJhbWU6
Om11dGFibGVQcm9wZXJ0aWVzKCkKK011dGFibGVTdHlsZVByb3BlcnR5U2V0KiBTdHlsZUtleWZy
YW1lOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0
YWJsZSgpKQogICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5
KCk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihtX3Byb3BlcnRpZXMuZ2V0KCkpOwogfQogICAg
IAogdm9pZCBTdHlsZUtleWZyYW1lOjpzZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQcm9w
ZXJ0eVNldD4gcHJvcGVydGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuaAppbmRleCBlNGM0MDk0Li45ZTIzZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5oCkBAIC0zMSw2ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CitjbGFzcyBNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldDsKIGNsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CiBjbGFzcyBTdHlsZVJ1bGVDU1NTdHls
ZURlY2xhcmF0aW9uOwogY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTsKQEAgLTUwLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZ2V0S2V5cyhWZWN0b3I8ZmxvYXQ+JiBrZXlzKSBjb25z
dCAgIHsgcGFyc2VLZXlTdHJpbmcobV9rZXksIGtleXMpOyB9CiAgICAgCiAgICAgY29uc3QgU3R5
bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllcy5n
ZXQoKTsgfQotICAgIFN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9wZXJ0aWVzKCk7CisgICAg
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVQcm9wZXJ0aWVzKCk7CiAgICAgdm9pZCBz
ZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4pOwogICAgIAogICAgIFN0
cmluZyBjc3NUZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAKaW5kZXggMDIzYjYxOS4uZDg0NDQ1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BdHRyLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIENTU1N0eWxlRGVjbGFyYXRp
b24qIEF0dHI6OnN0eWxlKCkKICAgICBpZiAoIW1fZWxlbWVudCB8fCAhbV9lbGVtZW50LT5pc1N0
eWxlZEVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgbV9zdHlsZSA9IE11dGFibGVT
dHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKLSAgICBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50
Kj4obV9lbGVtZW50KS0+Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKHF1YWxp
ZmllZE5hbWUoKSwgdmFsdWUoKSwgc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQq
PihtX3N0eWxlLmdldCgpKSk7CisgICAgc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG1fZWxl
bWVudCktPmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShxdWFsaWZpZWROYW1l
KCksIHZhbHVlKCksIG1fc3R5bGUuZ2V0KCkpOwogICAgIHJldHVybiBtX3N0eWxlLT5lbnN1cmVD
U1NTdHlsZURlY2xhcmF0aW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oCmluZGV4IDhlNzYwYWEuLmU0ZDdk
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0F0dHIuaApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwotY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKK2Ns
YXNzIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OwogCiAvLyBBdHRyIGNhbiBoYXZlIFRleHQgYW5k
IEVudGl0eVJlZmVyZW5jZSBjaGlsZHJlbgogLy8gdGhlcmVmb3JlIGl0IGhhcyB0byBiZSBhIGZ1
bGxibG93biBOb2RlLiBUaGUgcGxhbgpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAg
UXVhbGlmaWVkTmFtZSBtX25hbWU7CiAgICAgQXRvbWljU3RyaW5nIG1fc3RhbmRhbG9uZVZhbHVl
OwogCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fc3R5bGU7CisgICAgUmVmUHRyPE11
dGFibGVTdHlsZVByb3BlcnR5U2V0PiBtX3N0eWxlOwogICAgIHVuc2lnbmVkIG1faWdub3JlQ2hp
bGRyZW5DaGFuZ2VkIDogMzE7CiAgICAgYm9vbCBtX3NwZWNpZmllZCA6IDE7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDRjNGNlNTYuLmUzNjRhMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTU5Miw4ICs1OTIsOCBA
QCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVBZGRlZEJ5Tm9kZShOb2RlKiBub2RlKQog
ewogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cGFyZW50Tm9kZSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHBhcmVudFN0eWxlID0gZWRpdGluZ1N0eWxl
RnJvbUNvbXB1dGVkU3R5bGUoQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUobm9k
ZS0+cGFyZW50Tm9kZSgpKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMpOwotICAgIFJlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBub2RlU3R5bGUgPSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlKSwgQWxsRWRpdGluZ1Byb3Bl
cnRpZXMpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gcGFyZW50U3R5bGUg
PSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OmNyZWF0ZShub2RlLT5wYXJlbnROb2RlKCkpLCBBbGxFZGl0aW5nUHJvcGVydGllcyk7Cisg
ICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBub2RlU3R5bGUgPSBlZGl0aW5nU3R5
bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShu
b2RlKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMpOwogICAgIG5vZGVTdHlsZS0+cmVtb3ZlRXF1aXZh
bGVudFByb3BlcnRpZXMocGFyZW50U3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSk7
CiAgICAgbV9tdXRhYmxlU3R5bGUtPnJlbW92ZUVxdWl2YWxlbnRQcm9wZXJ0aWVzKG5vZGVTdHls
ZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKTsKIH0KQEAgLTYwMyw4ICs2MDMsOCBAQCB2
b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVDb25mbGljdGluZ1dpdGhTdHlsZU9mTm9kZShO
b2RlKiBub2RlKQogICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cGFyZW50Tm9kZSgpIHx8ICFtX211
dGFibGVTdHlsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlT
ZXQ+IHBhcmVudFN0eWxlID0gZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUobm9kZS0+cGFyZW50Tm9kZSgpKSwgQWxsRWRpdGlu
Z1Byb3BlcnRpZXMpOwotICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBub2RlU3R5bGUgPSBl
ZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmNyZWF0ZShub2RlKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMpOworICAgIFJlZlB0cjxNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldD4gcGFyZW50U3R5bGUgPSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRT
dHlsZShDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlLT5wYXJlbnROb2Rl
KCkpLCBBbGxFZGl0aW5nUHJvcGVydGllcyk7CisgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0PiBub2RlU3R5bGUgPSBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlKSwgQWxsRWRpdGluZ1Byb3BlcnRpZXMp
OwogICAgIG5vZGVTdHlsZS0+cmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMocGFyZW50U3R5bGUt
PmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSk7CiAKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNv
dW50ID0gbm9kZVN0eWxlLT5wcm9wZXJ0eUNvdW50KCk7CkBAIC02NDcsNyArNjQ3LDcgQEAgVHJp
U3RhdGUgRWRpdGluZ1N0eWxlOjp0cmlTdGF0ZU9mU3R5bGUoRWRpdGluZ1N0eWxlKiBzdHlsZSkg
Y29uc3QKIHsKICAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+bV9tdXRhYmxlU3R5bGUpCiAgICAg
ICAgIHJldHVybiBGYWxzZVRyaVN0YXRlOwotICAgIHJldHVybiB0cmlTdGF0ZU9mU3R5bGUoc3R5
bGUtPm1fbXV0YWJsZVN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIERvTm90SWdu
b3JlVGV4dE9ubHlQcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gdHJpU3RhdGVPZlN0eWxlKHN0YXRp
Y19wb2ludGVyX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KHN0eWxlLT5tX211dGFibGVT
dHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwgRG9Ob3RJZ25vcmVUZXh0T25seVBy
b3BlcnRpZXMpOwogfQogCiBUcmlTdGF0ZSBFZGl0aW5nU3R5bGU6OnRyaVN0YXRlT2ZTdHlsZShD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZVRvQ29tcGFyZSwgU2hvdWxkSWdub3JlVGV4dE9ubHlQ
cm9wZXJ0aWVzIHNob3VsZElnbm9yZVRleHRPbmx5UHJvcGVydGllcykgY29uc3QKQEAgLTEwNzIs
NyArMTA3Miw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlKGNvbnN0IFN0eWxlUHJv
cGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eU92ZXJyaWRlCiAgICAgbV9mb250U2l6ZURlbHRh
ICs9IG9sZEZvbnRTaXplRGVsdGE7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVy
dHlTZXQ+IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwg
dW5zaWduZWQgcnVsZXNUb0luY2x1ZGUpCitzdGF0aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldD4gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCB1bnNpZ25lZCBydWxlc1RvSW5jbHVkZSkKIHsKICAgICBSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IHN0eWxlID0gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwog
ICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gbWF0Y2hlZFJ1bGVzID0gZWxlbWVudC0+ZG9jdW1lbnQo
KS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBydWxlc1Rv
SW5jbHVkZSk7CkBAIC0xMTQxLDcgKzExNDEsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6cmVtb3Zl
U3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQsIE5vZGUqCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIDEuIFJlbW92ZSBzdHlsZSBmcm9tIG1hdGNoZWQgcnVs
ZXMgYmVjYXVzZSBzdHlsZSByZW1haW4gd2l0aG91dCByZXBlYXRpbmcgaXQgaW4gaW5saW5lIHN0
eWxlIGRlY2xhcmF0aW9uCi0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHN0eWxlRnJvbU1h
dGNoZWRSdWxlcyA9IHN0eWxlRnJvbU1hdGNoZWRSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgU3R5
bGVSZXNvbHZlcjo6QWxsQnV0RW1wdHlDU1NSdWxlcyk7CisgICAgUmVmUHRyPE11dGFibGVTdHls
ZVByb3BlcnR5U2V0PiBzdHlsZUZyb21NYXRjaGVkUnVsZXMgPSBzdHlsZUZyb21NYXRjaGVkUnVs
ZXNGb3JFbGVtZW50KGVsZW1lbnQsIFN0eWxlUmVzb2x2ZXI6OkFsbEJ1dEVtcHR5Q1NTUnVsZXMp
OwogICAgIGlmIChzdHlsZUZyb21NYXRjaGVkUnVsZXMgJiYgIXN0eWxlRnJvbU1hdGNoZWRSdWxl
cy0+aXNFbXB0eSgpKQogICAgICAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJ
bihtX211dGFibGVTdHlsZS5nZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLT5lbnN1cmVDU1NT
dHlsZURlY2xhcmF0aW9uKCkpOwogCkBAIC0xMTUyLDcgKzExNTIsNyBAQCB2b2lkIEVkaXRpbmdT
dHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQqIGVsZW1l
bnQsIE5vZGUqCiAgICAgICAgICAgICBjb21wdXRlZFN0eWxlLT5tX211dGFibGVTdHlsZS0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIENTU1ZhbHVlVHJhbnNwYXJlbnQp
OwogCiAgICAgICAgIHJlbW92ZVByb3BlcnRpZXNJblN0eWxlKGNvbXB1dGVkU3R5bGUtPm1fbXV0
YWJsZVN0eWxlLmdldCgpLCBzdHlsZUZyb21NYXRjaGVkUnVsZXMuZ2V0KCkpOwotICAgICAgICBt
X211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJbihtX211dGFibGVTdHlsZS5nZXQoKSwg
Y29tcHV0ZWRTdHlsZS0+bV9tdXRhYmxlU3R5bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24o
KSk7CisgICAgICAgIG1fbXV0YWJsZVN0eWxlID0gZ2V0UHJvcGVydGllc05vdEluKG1fbXV0YWJs
ZVN0eWxlLmdldCgpLCBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0
Pihjb21wdXRlZFN0eWxlLT5tX211dGFibGVTdHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRp
b24oKSk7CiAgICAgfQogCiAgICAgLy8gMy4gSWYgdGhpcyBlbGVtZW50IGlzIGEgc3BhbiBhbmQg
aGFzIGRpc3BsYXk6IGlubGluZSBvciBmbG9hdDogbm9uZSwgcmVtb3ZlIHRoZW0gdW5sZXNzIHRo
ZXkgYXJlIG92ZXJyaWRlbiBieSBydWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggN2M5YzVlMi4uN2FlMzdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTE4OTUsNyArMTg5NSw3IEBAIHZvaWQgRHJhZ0Nh
cmV0Q29udHJvbGxlcjo6cGFpbnREcmFnQ2FyZXQoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0NvbnRl
eHQqIHAsIGNvbnN0CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBG
cmFtZVNlbGVjdGlvbjo6Y29weVR5cGluZ1N0eWxlKCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ+IEZyYW1lU2VsZWN0aW9uOjpjb3B5VHlwaW5nU3R5bGUoKSBjb25z
dAogewogICAgIGlmICghbV90eXBpbmdTdHlsZSB8fCAhbV90eXBpbmdTdHlsZS0+c3R5bGUoKSkK
ICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmgK
aW5kZXggYzM4ZTY0ZC4uZjU0MmQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uaApAQCAtNDEsMTAgKzQxLDEwIEBAIGNsYXNzIENoYXJhY3RlckRhdGE7CiBjbGFzcyBG
cmFtZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKK2Ns
YXNzIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3Mg
UmVuZGVyVmlldzsKIGNsYXNzIFNldHRpbmdzOwotY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKIGNs
YXNzIFZpc2libGVQb3NpdGlvbjsKIAogZW51bSBFVXNlclRyaWdnZXJlZCB7IE5vdFVzZXJUcmln
Z2VyZWQgPSAwLCBVc2VyVHJpZ2dlcmVkID0gMSB9OwpAQCAtMjQyLDcgKzI0Miw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHBhaW50RHJhZ0NhcmV0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91
dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpIGNvbnN0OwogCiAgICAgRWRpdGlu
Z1N0eWxlKiB0eXBpbmdTdHlsZSgpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0
eVNldD4gY29weVR5cGluZ1N0eWxlKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldD4gY29weVR5cGluZ1N0eWxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUeXBp
bmdTdHlsZShQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4pOwogICAgIHZvaWQgY2xlYXJUeXBpbmdT
dHlsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcAppbmRleCBhOGM5MzFlLi44MzUwNmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTExOTcsMTEgKzExOTcsMTUgQEAgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yQXR0cmlidXQKICAgICBpZiAoIWVsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIGF0dHJpYnV0
ZVN0eWxlID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpLT5wcmVzZW50YXRp
b25BdHRyaWJ1dGVTdHlsZSgpOworICAgIC8vIEZJWE1FOiBVZ2xpbmVzcyBiZWxvdy4KKyAgICBT
dHlsZVByb3BlcnR5U2V0KiBhdHRyaWJ1dGVTdHlsZSA9IGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0
eVNldCo+KHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihlbGVtZW50KS0+cHJlc2VudGF0aW9u
QXR0cmlidXRlU3R5bGUoKSk7CiAgICAgaWYgKCFhdHRyaWJ1dGVTdHlsZSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yU3R5bGU+IGluc3BlY3RvclN0eWxlID0gSW5z
cGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0b3JDU1NJZCgpLCBjb25zdF9jYXN0PFN0eWxlUHJv
cGVydHlTZXQqPihhdHRyaWJ1dGVTdHlsZSktPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSwg
MCk7CisgICAgQVNTRVJUKGF0dHJpYnV0ZVN0eWxlLT5pc011dGFibGUoKSk7CisgICAgTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQqIG11dGFibGVBdHRyaWJ1dGVTdHlsZSA9IHN0YXRpY19jYXN0PE11
dGFibGVTdHlsZVByb3BlcnR5U2V0Kj4oYXR0cmlidXRlU3R5bGUpOworCisgICAgUmVmUHRyPElu
c3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5z
cGVjdG9yQ1NTSWQoKSwgbXV0YWJsZUF0dHJpYnV0ZVN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xh
cmF0aW9uKCksIDApOwogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZS0+YnVpbGRPYmplY3RGb3JT
dHlsZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KaW5kZXggYWJjZjFiZS4uNjEwODA5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtMjUx
LDggKzI1MSw5IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQogeworICAgIFJlZlB0cjxNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldD4gbXV0YWJsZVN0eWxlID0gc3R5bGUtPmlzTXV0YWJsZSgpID8g
c3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihzdHlsZSkgOiBzdHlsZS0+bXV0
YWJsZUNvcHkoKTsKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndh
cmRlcl0gd2ViVmlldzptX3dlYlZpZXcKLSAgICAgICAgc2hvdWxkQXBwbHlTdHlsZTpraXQoc3R5
bGUtPmVuc3VyZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkgdG9FbGVtZW50c0luRE9NUmFuZ2U6a2l0
KHJhbmdlKV07CisgICAgICAgIHNob3VsZEFwcGx5U3R5bGU6a2l0KG11dGFibGVTdHlsZS0+ZW5z
dXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKSB0b0VsZW1lbnRzSW5ET01SYW5nZTpraXQocmFuZ2Up
XTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRl
KFJhbmdlKiByYW5nZSwgUmFuZ2UqIHJhbmdlVG9CZVJlcGxhY2VkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWUubW0KaW5kZXggMDZhNjU4NC4uY2RmMWQ3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC03NjgsNyArNzY4LDcgQEAgc3RhdGljIGlubGluZSBX
ZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAg
aWYgKCFfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIFJlZlB0
cjxTdHlsZVByb3BlcnR5U2V0PiB0eXBpbmdTdHlsZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNl
bGVjdGlvbigpLT5jb3B5VHlwaW5nU3R5bGUoKTsKKyAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ+IHR5cGluZ1N0eWxlID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkt
PmNvcHlUeXBpbmdTdHlsZSgpOwogICAgIGlmICghdHlwaW5nU3R5bGUpCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgcmV0dXJuIGtpdCh0eXBpbmdTdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJh
dGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA5MDlkNzNmLi45MWI0NzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0xNjIsNyArMTYyLDggQEAgYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2UqIGZyb21SYW5nZSwgUmFu
Z2UqIHRvUmFuZ2UKICAgICAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxl
KFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCiB7Ci0gICAgYm9vbCByZXN1
bHQgPSBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkuc2hvdWxkQXBwbHlTdHls
ZShtX3BhZ2UsIHN0eWxlLT5lbnN1cmVDU1NTdHlsZURlY2xhcmF0aW9uKCksIHJhbmdlKTsKKyAg
ICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IG11dGFibGVTdHlsZSA9IHN0eWxlLT5p
c011dGFibGUoKSA/IHN0YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kj4oc3R5bGUp
IDogc3R5bGUtPm11dGFibGVDb3B5KCk7CisgICAgYm9vbCByZXN1bHQgPSBtX3BhZ2UtPmluamVj
dGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkuc2hvdWxkQXBwbHlTdHlsZShtX3BhZ2UsIG11dGFibGVT
dHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLCByYW5nZSk7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQo=
</data>
<flag name="review"
          id="219850"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="219851"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>