<?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>114569</bug_id>
          
          <creation_ts>2013-04-13 10:17:11 -0700</creation_ts>
          <short_desc>Rename/tweak some StylePropertySet/CSSStyleDeclaration copying functions.</short_desc>
          <delta_ts>2013-04-13 13:02:07 -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>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>875190</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 10:17:11 -0700</bug_when>
    <thetext>Rename/tweak some StylePropertySet/CSSStyleDeclaration copying functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875191</commentid>
    <comment_count>1</comment_count>
      <attachid>197948</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 10:18:05 -0700</bug_when>
    <thetext>Created attachment 197948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875193</commentid>
    <comment_count>2</comment_count>
      <attachid>197948</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-13 10:23:44 -0700</bug_when>
    <thetext>Comment on attachment 197948
Patch

Attachment 197948 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/149183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875196</commentid>
    <comment_count>3</comment_count>
      <attachid>197950</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 10:35:34 -0700</bug_when>
    <thetext>Created attachment 197950
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875200</commentid>
    <comment_count>4</comment_count>
      <attachid>197950</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-13 10:40:21 -0700</bug_when>
    <thetext>Comment on attachment 197950
Patch v2

Attachment 197950 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/102223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875216</commentid>
    <comment_count>5</comment_count>
      <attachid>197952</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 12:40:17 -0700</bug_when>
    <thetext>Created attachment 197952
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875219</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-13 13:02:07 -0700</bug_when>
    <thetext>Committed r148365: &lt;http://trac.webkit.org/changeset/148365&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197948</attachid>
            <date>2013-04-13 10:18:05 -0700</date>
            <delta_ts>2013-04-13 10:26:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114569.diff</filename>
            <type>text/plain</type>
            <size>21630</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTkyOWJlLi45Y2FhNDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjcg
QEAKIDIwMTMtMDQtMTMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIFJlbmFtZS90d2VhayBzb21lIFN0eWxlUHJvcGVydHlTZXQvQ1NTU3R5bGVEZWNsYXJhdGlv
biBjb3B5aW5nIGZ1bmN0aW9ucy4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE0NTY5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gU3R5
bGVQcm9wZXJ0eVNldDo6Y29weSgpIC0+IG11dGFibGVDb3B5KCkKKworICAgICAgICAgICAgVGhp
cyBmdW5jdGlvbiBub3cgcmV0dXJucyBhIE11dGFibGVTdHlsZVByb3BlcnR5U2V0LCBhbmQgdGhp
cyBpcyBhbHNvIHJlZmxlY3RlZCBpbiB0aGUgbmFtZS4KKworICAgICAgICAtIENTU1N0eWxlRGVj
bGFyYXRpb246OmNvcHkoKSAtPiBjb3B5UHJvcGVydGllcygpCisKKyAgICAgICAgICAgIFJlbmFt
ZWQgdG8gcmVmbGVjdCB0aGF0IGl0J3MgdGhlIHByb3BlcnRpZXMgYmVpbmcgY29waWVkLCBub3Qg
dGhlIENTU1N0eWxlRGVjbGFyYXRpb24uCisKKyAgICAgICAgLSBTdHlsZVByb3BlcnR5U2V0Ojpj
b3B5UHJvcGVydGllc0luU2V0KCkKKyAgICAgICAgLSBDU1NTdHlsZURlY2xhcmF0aW9uOjpjb3B5
UHJvcGVydGllc0luU2V0KCkKKworICAgICAgICAgICAgVGhlc2UgZnVuY3Rpb25zIG5vdyByZXR1
cm4gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXRzLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldCk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAg
ICAgICAoQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0Q1NT
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvUHJvcGVydHlT
ZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6bXV0YWJsZUNvcHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Y29weVByb3BlcnRpZXNJblNldCk6
CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuaDoKKyAgICAgICAgKFN0eWxlUHJvcGVy
dHlTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVSdWxlOjpTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlOjptdXRh
YmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVQYWdlOjpTdHlsZVJ1
bGVQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVBhZ2U6Om11dGFibGVQcm9wZXJ0
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUZvbnRGYWNlOjpTdHlsZVJ1bGVGb250
RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGb250RmFjZTo6bXV0YWJsZVByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlRmlsdGVyOjpTdHlsZVJ1bGVGaWx0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlRmlsdGVyOjptdXRhYmxlUHJvcGVydGll
cyk6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZUtleWZyYW1lOjptdXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgICogZG9t
L0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pcXVlRWxlbWVudERhdGE6OlVuaXF1
ZUVsZW1lbnREYXRhKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjplbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUpOgorICAg
ICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29weVN0eWxlT3JDcmVhdGVFbXB0eSk6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29weUVkaXRpbmdQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6RWRpdGluZ1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRpbmdTdHlsZTo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OmNv
cHkpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmdldFByb3BlcnRpZXNOb3RJbik6CisgICAgICAgICogZWRpdGluZy9GcmFt
ZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6Y29weVR5
cGluZ1N0eWxlKToKKworMjAxMy0wNC0xMyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CisKICAgICAgICAgUmVtb3ZlIHVudXNlZCBtZXRob2QgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
bWFrZU11dGFibGUoKS4KICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE0NTY3PgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IGUwZmNiMTYuLjMyZmE5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yOTI4LDcgKzI5MjgsNyBAQCBib29s
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3NzUHJvcGVydHlNYXRjaGVzKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJRCwgYwogICAgIHJldHVybiB2YWx1ZSAmJiBwcm9wZXJ0eVZhbHVlICYm
IHZhbHVlLT5lcXVhbHMoKnByb3BlcnR5VmFsdWUpOwogfQogCi1QYXNzUmVmUHRyPFN0eWxlUHJv
cGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weSgpIGNvbnN0CitQYXNz
UmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29w
eVByb3BlcnRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5UHJvcGVydGllc0luU2V0KGNv
bXB1dGVkUHJvcGVydGllcywgbnVtQ29tcHV0ZWRQcm9wZXJ0aWVzKTsKIH0KQEAgLTI5ODEsNyAr
Mjk4MSw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb246OmdldENTU1Byb3BlcnR5VmFsdWVzRm9yR3JpCiAgICAgcmV0dXJuIGxpc3QucmVsZWFz
ZSgpOwogfQogCi1QYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQs
IHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldChjb25z
dCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKIHsKICAgICBWZWN0
b3I8Q1NTUHJvcGVydHksIDI1Nj4gbGlzdDsKICAgICBsaXN0LnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkobGVuZ3RoKTsKQEAgLTI5OTAsNyArMjk5MCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0
eVNldD4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5UHJvcGVydGllc0luU2V0KGNv
CiAgICAgICAgIGlmICh2YWx1ZSkKICAgICAgICAgICAgIGxpc3QuYXBwZW5kKENTU1Byb3BlcnR5
KHNldFtpXSwgdmFsdWUucmVsZWFzZSgpLCBmYWxzZSkpOwogICAgIH0KLSAgICByZXR1cm4gU3R5
bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KFN0eWxlUHJv
cGVydHlTZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpKTsKIH0KIAogdm9pZCBD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMDczNzUyMy4uMjM3Y2U0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaApA
QCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NQcmltaXRpdmVW
YWx1ZTsKIGNsYXNzIENTU1ZhbHVlTGlzdDsKIGNsYXNzIENvbG9yOworY2xhc3MgTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3Mg
UmVuZGVyU3R5bGU7CkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBib29sIGdldFByb3BlcnR5UHJp
b3JpdHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5
bGVQcm9wZXJ0eVNldD4gY29weSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllcygpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUlELCBFVXBk
YXRlTGF5b3V0KSBjb25zdDsKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRGb250U2l6ZUNT
U1ZhbHVlUHJlZmVycmluZ0tleXdvcmQoKSBjb25zdDsKQEAgLTcwLDcgKzcxLDcgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFNWR1Byb3BlcnR5Q1NTVmFsdWUoQ1NTUHJv
cGVydHlJRCwgRVVwZGF0ZUxheW91dCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIFBhc3NSZWZQdHI8
U3R5bGVQcm9wZXJ0eVNldD4gY29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlE
KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldD4gY29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlEKiBz
ZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAppbmRleCBjYzk5OGFiLi44YzMzZWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTY0LDcgKzY0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbChDU1NQ
cm9wZXJ0eUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5SW50ZXJuYWwoQ1NT
UHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIEV4Y2VwdGlv
bkNvZGUmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4g
Y29weSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNl
dD4gY29weVByb3BlcnRpZXMoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgY3NzUHJv
cGVydHlNYXRjaGVzKENTU1Byb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlKikgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWExODhkOS4uZTY0NGRkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTMwMiw5ICszMDIsOSBAQCBTdHlsZVNoZWV0Q29udGVudHMqIFByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbjo6Y29udGV4dFN0eWxlU2hlZXQoKSBjb25zdAogICAgIHJldHVybiBjc3NTdHls
ZVNoZWV0ID8gY3NzU3R5bGVTaGVldC0+Y29udGVudHMoKSA6IDA7CiB9CiAKLVBhc3NSZWZQdHI8
U3R5bGVQcm9wZXJ0eVNldD4gUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpjb3B5KCkg
Y29uc3QKK1Bhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gUHJvcGVydHlTZXRDU1NTdHlsZURl
Y2xhcmF0aW9uOjpjb3B5UHJvcGVydGllcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJvcGVy
dHlTZXQtPmNvcHkoKTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0eVNldC0+bXV0YWJsZUNvcHkoKTsK
IH0KIAogYm9vbCBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmNzc1Byb3BlcnR5TWF0
Y2hlcyhDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlKiBwcm9wZXJ0eVZh
bHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NT
U3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oCmluZGV4IDMxMmI1YWQuLmIxNGMxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTcxLDcg
KzcxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHlJbnRlcm5hbChD
U1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgRXhjZXB0
aW9uQ29kZSYpIE9WRVJSSURFOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjc3NQcm9wZXJ0eU1h
dGNoZXMoQ1NTUHJvcGVydHlJRCwgY29uc3QgQ1NTVmFsdWUqKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gY29weSgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVy
dGllcygpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgQ1NTVmFsdWUqIGNsb25lQW5kQ2FjaGVGb3JD
U1NPTShDU1NWYWx1ZSopOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydHlTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQu
Y3BwCmluZGV4IDQ2MGEzN2YuLmYzNGZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9w
ZXJ0eVNldC5jcHAKQEAgLTEyMDcsMTIgKzEyMDcsMTIgQEAgdm9pZCBTdHlsZVByb3BlcnR5U2V0
OjpyZW1vdmVFcXVpdmFsZW50UHJvcGVydGllcyhjb25zdCBDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHkKICAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydGllc1RvUmVtb3ZlW2ldKTsKIH0KIAot
UGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBTdHlsZVByb3BlcnR5U2V0Ojpjb3B5KCkgY29u
c3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6
Om11dGFibGVDb3B5KCkgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE11dGFibGVT
dHlsZVByb3BlcnR5U2V0KCp0aGlzKSk7CiB9CiAKLVBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNl
dD4gU3R5bGVQcm9wZXJ0eVNldDo6Y29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0
eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3Qg
Q1NTUHJvcGVydHlJRCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgVmVjdG9y
PENTU1Byb3BlcnR5LCAyNTY+IGxpc3Q7CiAgICAgbGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KGxlbmd0aCk7CkBAIC0xMjIxLDcgKzEyMjEsNyBAQCBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlT
ZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcAog
ICAgICAgICBpZiAodmFsdWUpCiAgICAgICAgICAgICBsaXN0LmFwcGVuZChDU1NQcm9wZXJ0eShz
ZXRbaV0sIHZhbHVlLnJlbGVhc2UoKSwgZmFsc2UpKTsKICAgICB9Ci0gICAgcmV0dXJuIFN0eWxl
UHJvcGVydHlTZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOworICAgIHJldHVy
biBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0PihTdHlsZVByb3Bl
cnR5U2V0OjpjcmVhdGUobGlzdC5kYXRhKCksIGxpc3Quc2l6ZSgpKSk7CiB9CiAKIFByb3BlcnR5
U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiogU3R5bGVQcm9wZXJ0eVNldDo6Y3NzU3R5bGVEZWNsYXJh
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaAppbmRleCA4MDJjMzFkLi4w
NmY4ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKQEAgLTEzNywxMyAr
MTM3LDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkU3VicmVzb3VyY2VTdHlsZVVSTHMoTGlz
dEhhc2hTZXQ8S1VSTD4mLCBTdHlsZVNoZWV0Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KSBj
b25zdDsKIAotICAgIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gY29weSgpIGNvbnN0Owor
ICAgIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IG11dGFibGVDb3B5KCkgY29u
c3Q7CiAgICAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBpbW11dGFibGVDb3B5SWZOZWVk
ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMoY29uc3Qg
U3R5bGVQcm9wZXJ0eVNldCopOwogICAgIHZvaWQgcmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMo
Y29uc3QgQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogCi0gICAgUGFzc1JlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBjb3B5UHJvcGVydGllc0luU2V0KGNvbnN0IENTU1Byb3BlcnR5SUQqIHNldCwgdW5z
aWduZWQgbGVuZ3RoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5
U2V0PiBjb3B5UHJvcGVydGllc0luU2V0KGNvbnN0IENTU1Byb3BlcnR5SUQqIHNldCwgdW5zaWdu
ZWQgbGVuZ3RoKSBjb25zdDsKICAgICAKICAgICBTdHJpbmcgYXNUZXh0KCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5jcHAKaW5kZXggZTAwNDZjMS4uZGUxZDRkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZS5jcHAKQEAgLTMwNCw3ICszMDQsNyBAQCBTdHlsZVJ1bGU6OlN0eWxlUnVsZShp
bnQgc291cmNlTGluZSkKIAogU3R5bGVSdWxlOjpTdHlsZVJ1bGUoY29uc3QgU3R5bGVSdWxlJiBv
KQogICAgIDogU3R5bGVSdWxlQmFzZShvKQotICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0
aWVzLT5jb3B5KCkpCisgICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPm11dGFibGVD
b3B5KCkpCiAgICAgLCBtX3NlbGVjdG9yTGlzdChvLm1fc2VsZWN0b3JMaXN0KQogewogfQpAQCAt
MzE2LDcgKzMxNiw3IEBAIFN0eWxlUnVsZTo6flN0eWxlUnVsZSgpCiBTdHlsZVByb3BlcnR5U2V0
KiBTdHlsZVJ1bGU6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGll
cy0+aXNNdXRhYmxlKCkpCi0gICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+Y29w
eSgpOworICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7
CiAgICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKIH0KIApAQCAtMzMyLDcgKzMzMiw3IEBA
IFN0eWxlUnVsZVBhZ2U6OlN0eWxlUnVsZVBhZ2UoKQogCiBTdHlsZVJ1bGVQYWdlOjpTdHlsZVJ1
bGVQYWdlKGNvbnN0IFN0eWxlUnVsZVBhZ2UmIG8pCiAgICAgOiBTdHlsZVJ1bGVCYXNlKG8pCi0g
ICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPmNvcHkoKSkKKyAgICAsIG1fcHJvcGVy
dGllcyhvLm1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKSkKICAgICAsIG1fc2VsZWN0b3JMaXN0
KG8ubV9zZWxlY3Rvckxpc3QpCiB7CiB9CkBAIC0zNDQsNyArMzQ0LDcgQEAgU3R5bGVSdWxlUGFn
ZTo6flN0eWxlUnVsZVBhZ2UoKQogU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlUGFnZTo6bXV0
YWJsZVByb3BlcnRpZXMoKQogewogICAgIGlmICghbV9wcm9wZXJ0aWVzLT5pc011dGFibGUoKSkK
LSAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5jb3B5KCk7CisgICAgICAgIG1f
cHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4gbV9w
cm9wZXJ0aWVzLmdldCgpOwogfQogCkBAIC0zNjcsNyArMzY3LDcgQEAgU3R5bGVSdWxlRm9udEZh
Y2U6OlN0eWxlUnVsZUZvbnRGYWNlKCkKIAogU3R5bGVSdWxlRm9udEZhY2U6OlN0eWxlUnVsZUZv
bnRGYWNlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlJiBvKQogICAgIDogU3R5bGVSdWxlQmFzZShv
KQotICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0aWVzLT5jb3B5KCkpCisgICAgLCBtX3By
b3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCkpCiB7CiB9CiAKQEAgLTM3OCw3
ICszNzgsNyBAQCBTdHlsZVJ1bGVGb250RmFjZTo6flN0eWxlUnVsZUZvbnRGYWNlKCkKIFN0eWxl
UHJvcGVydHlTZXQqIFN0eWxlUnVsZUZvbnRGYWNlOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAg
ICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgpKQotICAgICAgICBtX3Byb3BlcnRpZXMg
PSBtX3Byb3BlcnRpZXMtPmNvcHkoKTsKKyAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0
aWVzLT5tdXRhYmxlQ29weSgpOwogICAgIHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7CiB9CiAK
QEAgLTUyMyw3ICs1MjMsNyBAQCBTdHlsZVJ1bGVGaWx0ZXI6OlN0eWxlUnVsZUZpbHRlcihjb25z
dCBTdHJpbmcmIGZpbHRlck5hbWUpCiBTdHlsZVJ1bGVGaWx0ZXI6OlN0eWxlUnVsZUZpbHRlcihj
b25zdCBTdHlsZVJ1bGVGaWx0ZXImIG8pCiAgICAgOiBTdHlsZVJ1bGVCYXNlKG8pCiAgICAgLCBt
X2ZpbHRlck5hbWUoby5tX2ZpbHRlck5hbWUpCi0gICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3Bl
cnRpZXMtPmNvcHkoKSkKKyAgICAsIG1fcHJvcGVydGllcyhvLm1fcHJvcGVydGllcy0+bXV0YWJs
ZUNvcHkoKSkKIHsKIH0KIApAQCAtNTM0LDcgKzUzNCw3IEBAIFN0eWxlUnVsZUZpbHRlcjo6flN0
eWxlUnVsZUZpbHRlcigpCiBTdHlsZVByb3BlcnR5U2V0KiBTdHlsZVJ1bGVGaWx0ZXI6Om11dGFi
bGVQcm9wZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCi0g
ICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+Y29weSgpOworICAgICAgICBtX3By
b3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7CiAgICAgcmV0dXJuIG1fcHJv
cGVydGllcy5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmNwcAppbmRleCBmNTg0NzRmLi5mNDRjNjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcApAQCAtNDQsNyArNDQsNyBAQCBTdHlsZUtleWZy
YW1lOjp+U3R5bGVLZXlmcmFtZSgpCiBTdHlsZVByb3BlcnR5U2V0KiBTdHlsZUtleWZyYW1lOjpt
dXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgp
KQotICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPmNvcHkoKTsKKyAgICAgICAg
bV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgpOwogICAgIHJldHVybiBt
X3Byb3BlcnRpZXMuZ2V0KCk7CiB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggYjg5
NTQwMi4uMGY5ZmViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMzA0Miw3ICszMDQyLDcg
QEAgVW5pcXVlRWxlbWVudERhdGE6OlVuaXF1ZUVsZW1lbnREYXRhKGNvbnN0IFVuaXF1ZUVsZW1l
bnREYXRhJiBvdGhlcikKICAgICAsIG1fcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUob3RoZXIu
bV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSkKICAgICAsIG1fYXR0cmlidXRlVmVjdG9yKG90
aGVyLm1fYXR0cmlidXRlVmVjdG9yKQogewotICAgIG1faW5saW5lU3R5bGUgPSBvdGhlci5tX2lu
bGluZVN0eWxlID8gb3RoZXIubV9pbmxpbmVTdHlsZS0+Y29weSgpIDogMDsKKyAgICBtX2lubGlu
ZVN0eWxlID0gb3RoZXIubV9pbmxpbmVTdHlsZSA/IG90aGVyLm1faW5saW5lU3R5bGUtPm11dGFi
bGVDb3B5KCkgOiAwOwogfQogCiBVbmlxdWVFbGVtZW50RGF0YTo6VW5pcXVlRWxlbWVudERhdGEo
Y29uc3QgU2hhcmVhYmxlRWxlbWVudERhdGEmIG90aGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwCmluZGV4IDkzYWUzM2QuLjg2MzdlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCog
U3R5bGVkRWxlbWVudDo6ZW5zdXJlTXV0YWJsZUlubGluZVN0eWxlKCkKICAgICBpZiAoIWlubGlu
ZVN0eWxlKQogICAgICAgICBpbmxpbmVTdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShz
dHJpY3RUb0NTU1BhcnNlck1vZGUoaXNIVE1MRWxlbWVudCgpICYmICFkb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSkpOwogICAgIGVsc2UgaWYgKCFpbmxpbmVTdHlsZS0+aXNNdXRhYmxlKCkpCi0g
ICAgICAgIGlubGluZVN0eWxlID0gaW5saW5lU3R5bGUtPmNvcHkoKTsKKyAgICAgICAgaW5saW5l
U3R5bGUgPSBpbmxpbmVTdHlsZS0+bXV0YWJsZUNvcHkoKTsKICAgICBBU1NFUlQoaW5saW5lU3R5
bGUtPmlzTXV0YWJsZSgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQqPihpbmxpbmVTdHlsZS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IDYyZjM2NjIuLjYxOTVkY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCkBAIC0zMDAsNyArMzAw
LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gY29weVN0eWxlT3JDcmVh
dGVFbXB0eShjb25zdCBTdHlsZVByb3BlcnR5U2UKIHsKICAgICBpZiAoIXN0eWxlKQogICAgICAg
ICByZXR1cm4gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIHN0eWxlLT5j
b3B5KCk7CisgICAgcmV0dXJuIHN0eWxlLT5tdXRhYmxlQ29weSgpOwogfQogCiB2b2lkIEFwcGx5
U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKEVkaXRpbmdTdHlsZSog
c3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKaW5kZXggMzEwOWRh
Mi4uNjEyZWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcApAQCAt
ODUsNyArODUsNyBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBlZGl0aW5nUHJvcGVydGll
c1tdID0gewogZW51bSBFZGl0aW5nUHJvcGVydGllc1R5cGUgeyBPbmx5SW5oZXJpdGFibGVFZGl0
aW5nUHJvcGVydGllcywgQWxsRWRpdGluZ1Byb3BlcnRpZXMgfTsKIAogdGVtcGxhdGUgPGNsYXNz
IFN0eWxlRGVjbGFyYXRpb25UeXBlPgotc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNl
dD4gY29weUVkaXRpbmdQcm9wZXJ0aWVzKFN0eWxlRGVjbGFyYXRpb25UeXBlKiBzdHlsZSwgRWRp
dGluZ1Byb3BlcnRpZXNUeXBlIHR5cGUgPSBPbmx5SW5oZXJpdGFibGVFZGl0aW5nUHJvcGVydGll
cykKK3N0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBjb3B5RWRpdGlu
Z1Byb3BlcnRpZXMoU3R5bGVEZWNsYXJhdGlvblR5cGUqIHN0eWxlLCBFZGl0aW5nUHJvcGVydGll
c1R5cGUgdHlwZSA9IE9ubHlJbmhlcml0YWJsZUVkaXRpbmdQcm9wZXJ0aWVzKQogewogICAgIGlm
ICh0eXBlID09IEFsbEVkaXRpbmdQcm9wZXJ0aWVzKQogICAgICAgICByZXR1cm4gc3R5bGUtPmNv
cHlQcm9wZXJ0aWVzSW5TZXQoZWRpdGluZ1Byb3BlcnRpZXMsIFdURl9BUlJBWV9MRU5HVEgoZWRp
dGluZ1Byb3BlcnRpZXMpKTsKQEAgLTMxNiw3ICszMTYsNyBAQCBFZGl0aW5nU3R5bGU6OkVkaXRp
bmdTdHlsZShjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIFByb3BlcnRpZXNUb0luY2x1ZGUgcHJv
cGVydAogfQogCiBFZGl0aW5nU3R5bGU6OkVkaXRpbmdTdHlsZShjb25zdCBTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZSkKLSAgICA6IG1fbXV0YWJsZVN0eWxlKHN0eWxlID8gc3R5bGUtPmNvcHkoKSA6
IDApCisgICAgOiBtX211dGFibGVTdHlsZShzdHlsZSA/IHN0eWxlLT5tdXRhYmxlQ29weSgpIDog
MCkKICAgICAsIG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUoZmFsc2UpCiAgICAgLCBt
X2ZvbnRTaXplRGVsdGEoTm9Gb250RGVsdGEpCiB7CkBAIC0zMjQsNyArMzI0LDcgQEAgRWRpdGlu
Z1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCiB9CiAK
IEVkaXRpbmdTdHlsZTo6RWRpdGluZ1N0eWxlKGNvbnN0IENTU1N0eWxlRGVjbGFyYXRpb24qIHN0
eWxlKQotICAgIDogbV9tdXRhYmxlU3R5bGUoc3R5bGUgPyBzdHlsZS0+Y29weSgpIDogMCkKKyAg
ICA6IG1fbXV0YWJsZVN0eWxlKHN0eWxlID8gc3R5bGUtPmNvcHlQcm9wZXJ0aWVzKCkgOiAwKQog
ICAgICwgbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZShmYWxzZSkKICAgICAsIG1fZm9u
dFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsKQEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lkIEVkaXRp
bmdTdHlsZTo6aW5pdChOb2RlKiBub2RlLCBQcm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnRpZXNU
b0luY2x1ZGUpCiAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAKICAgICBSZWZQ
dHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBjb21wdXRlZFN0eWxlQXRQb3NpdGlvbiA9
IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKG5vZGUpOwotICAgIG1fbXV0YWJs
ZVN0eWxlID0gcHJvcGVydGllc1RvSW5jbHVkZSA9PSBBbGxQcm9wZXJ0aWVzICYmIGNvbXB1dGVk
U3R5bGVBdFBvc2l0aW9uID8gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24tPmNvcHkoKSA6IGVkaXRp
bmdTdHlsZUZyb21Db21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uKTsKKyAgICBt
X211dGFibGVTdHlsZSA9IHByb3BlcnRpZXNUb0luY2x1ZGUgPT0gQWxsUHJvcGVydGllcyAmJiBj
b21wdXRlZFN0eWxlQXRQb3NpdGlvbiA/IGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uLT5jb3B5UHJv
cGVydGllcygpIDogZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoY29tcHV0ZWRTdHlsZUF0
UG9zaXRpb24pOwogCiAgICAgaWYgKHByb3BlcnRpZXNUb0luY2x1ZGUgPT0gRWRpdGluZ1Byb3Bl
cnRpZXNJbkVmZmVjdCkgewogICAgICAgICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGJh
Y2tncm91bmRDb2xvckluRWZmZWN0KG5vZGUpKQpAQCAtNTQ4LDcgKzU0OCw3IEBAIFBhc3NSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBFZGl0aW5nU3R5bGU6OmNvcHkoKSBjb25zdAogewogICAgIFJlZlB0
cjxFZGl0aW5nU3R5bGU+IGNvcHkgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZSgpOwogICAgIGlmICht
X211dGFibGVTdHlsZSkKLSAgICAgICAgY29weS0+bV9tdXRhYmxlU3R5bGUgPSBtX211dGFibGVT
dHlsZS0+Y29weSgpOworICAgICAgICBjb3B5LT5tX211dGFibGVTdHlsZSA9IG1fbXV0YWJsZVN0
eWxlLT5tdXRhYmxlQ29weSgpOwogICAgIGNvcHktPm1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9u
dFNpemUgPSBtX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplOwogICAgIGNvcHktPm1fZm9u
dFNpemVEZWx0YSA9IG1fZm9udFNpemVEZWx0YTsKICAgICByZXR1cm4gY29weTsKQEAgLTEwNDUs
NyArMTA0NSw3IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlKGNvbnN0IFN0eWxlUHJv
cGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eU92ZXJyaWRlCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmICghbV9tdXRhYmxlU3R5bGUpIHsKLSAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBzdHls
ZS0+Y29weSgpOworICAgICAgICBtX211dGFibGVTdHlsZSA9IHN0eWxlLT5tdXRhYmxlQ29weSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNDk5LDcgKzE0OTksNyBAQCBQYXNzUmVm
UHRyPFN0eWxlUHJvcGVydHlTZXQ+IGdldFByb3BlcnRpZXNOb3RJbihTdHlsZVByb3BlcnR5U2V0
KiBzdHlsZVdpdGhSZWR1bgogewogICAgIEFTU0VSVChzdHlsZVdpdGhSZWR1bmRhbnRQcm9wZXJ0
aWVzKTsKICAgICBBU1NFUlQoYmFzZVN0eWxlKTsKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNl
dD4gcmVzdWx0ID0gc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVydGllcy0+Y29weSgpOworICAgIFJl
ZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gcmVzdWx0ID0gc3R5bGVXaXRoUmVkdW5kYW50
UHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKIAogICAgIHJlc3VsdC0+cmVtb3ZlRXF1aXZhbGVu
dFByb3BlcnRpZXMoYmFzZVN0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcAppbmRleCAwZmM4MmRlLi43YzljNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMTg5OSw3ICsxODk5LDcgQEAgUGFzc1JlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBGcmFtZVNlbGVjdGlvbjo6Y29weVR5cGluZ1N0eWxlKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fdHlwaW5nU3R5bGUgfHwgIW1fdHlwaW5nU3R5bGUtPnN0eWxlKCkpCiAg
ICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBtX3R5cGluZ1N0eWxlLT5zdHlsZSgpLT5jb3B5
KCk7CisgICAgcmV0dXJuIG1fdHlwaW5nU3R5bGUtPnN0eWxlKCktPm11dGFibGVDb3B5KCk7CiB9
CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNob3VsZERlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQppbmRleCBkNzdiNjA1Li4wNWJkNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KQEAgLTc3OCw3ICs3NzgsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3Vy
Y2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICBpZiAoIV9wcml2YXRl
LT5jb3JlRnJhbWUgfHwgIXN0eWxlKQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZG4ndCBoYXZlIHRvIGNyZWF0ZSBhIGNvcHkgaGVyZS4KLSAgICBfcHJpdmF0ZS0+Y29y
ZUZyYW1lLT5lZGl0b3IoKS0+Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKGNvcmUoc3R5bGUpLT5j
b3B5KCkuZ2V0KCksIHVuZG9BY3Rpb24pOworICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmVkaXRv
cigpLT5jb21wdXRlQW5kU2V0VHlwaW5nU3R5bGUoY29yZShzdHlsZSktPmNvcHlQcm9wZXJ0aWVz
KCkuZ2V0KCksIHVuZG9BY3Rpb24pOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDk0NjJhNjkuLjA3Zjk3
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNDM0OCw3
ICs0MzQ4LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJv
YXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKIHsKICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoW3NlbGYgX2ZyYW1lXSkpIHsKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBo
YXZlIHRvIG1ha2UgYSBjb3B5IGhlcmUuIFdlIHdhbnQgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9u
IHRvIHdvcmsgZGlyZWN0bHkgd2l0aCBTdHlsZVByb3BlcnR5U2V0IGV2ZW50dWFsbHkuCi0gICAg
ICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGVUb1NlbGVjdGlvbihjb3JlKHN0eWxl
KS0+Y29weSgpLmdldCgpLCB1bmRvQWN0aW9uKTsKKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3Io
KS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9uKGNvcmUoc3R5bGUpLT5jb3B5UHJvcGVydGllcygpLmdl
dCgpLCB1bmRvQWN0aW9uKTsKICAgICB9CiB9CiAKQEAgLTQ2NTAsNyArNDY1MCw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBj
b3JlRnJhbWUpCiAgICAgaWYgKFtbd2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSB3
ZWJWaWV3OndlYlZpZXcgc2hvdWxkQXBwbHlTdHlsZTpzdHlsZSB0b0VsZW1lbnRzSW5ET01SYW5n
ZTpyYW5nZV0pIHsKICAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9m
cmFtZV0pKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhdmUgdG8gbWFr
ZSBhIGNvcHkgaGVyZS4KLSAgICAgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5
bGUoY29yZShzdHlsZSktPmNvcHkoKS5nZXQoKSwgW3NlbGYgX3VuZG9BY3Rpb25Gcm9tQ29sb3JQ
YW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0pOworICAgICAgICAgICAgY29yZUZyYW1lLT5lZGl0
b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKS0+Y29weVByb3BlcnRpZXMoKS5nZXQoKSwgW3Nl
bGYgX3VuZG9BY3Rpb25Gcm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0pOwogICAg
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZjQ5
M2M1YS4uZjhlMDJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNTY2
Miw3ICs1NjYyLDcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21K
U1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGoKICAgICBGcmFtZSogY29yZUZy
YW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRv
IG1ha2UgYSBjb3B5IGhlcmUuCiAgICAgaWYgKGNvcmVGcmFtZSkKLSAgICAgICAgY29yZUZyYW1l
LT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKS0+Y29weSgpLmdldCgpKTsKKyAgICAg
ICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxlKS0+Y29weVByb3Bl
cnRpZXMoKS5nZXQoKSk7CiB9CiAKIEBlbmQK
</data>
<flag name="commit-queue"
          id="219809"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197950</attachid>
            <date>2013-04-13 10:35:34 -0700</date>
            <delta_ts>2013-04-13 12:40:17 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-114569-v2.diff</filename>
            <type>text/plain</type>
            <size>23278</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTkyOWJlLi4yZDhlYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzEg
QEAKIDIwMTMtMDQtMTMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIFJlbmFtZS90d2VhayBzb21lIFN0eWxlUHJvcGVydHlTZXQvQ1NTU3R5bGVEZWNsYXJhdGlv
biBjb3B5aW5nIGZ1bmN0aW9ucy4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE0NTY5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gU3R5
bGVQcm9wZXJ0eVNldDo6Y29weSgpIC0+IG11dGFibGVDb3B5KCkKKworICAgICAgICAgICAgVGhp
cyBmdW5jdGlvbiBub3cgcmV0dXJucyBhIE11dGFibGVTdHlsZVByb3BlcnR5U2V0LCBhbmQgdGhp
cyBpcyBhbHNvIHJlZmxlY3RlZCBpbiB0aGUgbmFtZS4KKworICAgICAgICAtIENTU1N0eWxlRGVj
bGFyYXRpb246OmNvcHkoKSAtPiBjb3B5UHJvcGVydGllcygpCisKKyAgICAgICAgICAgIFJlbmFt
ZWQgdG8gcmVmbGVjdCB0aGF0IGl0J3MgdGhlIHByb3BlcnRpZXMgYmVpbmcgY29waWVkLCBub3Qg
dGhlIENTU1N0eWxlRGVjbGFyYXRpb24uCisgICAgICAgICAgICBUaGV5IGFsc28gbm93IHJldHVy
biBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldHMuCisKKyAgICAgICAgLSBTdHlsZVByb3BlcnR5U2V0
Ojpjb3B5UHJvcGVydGllc0luU2V0KCkKKyAgICAgICAgLSBDU1NTdHlsZURlY2xhcmF0aW9uOjpj
b3B5UHJvcGVydGllc0luU2V0KCkKKworICAgICAgICAgICAgVGhlc2UgZnVuY3Rpb25zIG5vdyBy
ZXR1cm4gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXRzLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldCk6CisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgor
ICAgICAgICAoQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENT
U1N0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6bXV0YWJsZUNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Y29weVByb3BlcnRpZXNJblNl
dCk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuaDoKKyAgICAgICAgKFN0eWxlUHJv
cGVydHlTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSdWxlOjpTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlOjpt
dXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVQYWdlOjpTdHls
ZVJ1bGVQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVBhZ2U6Om11dGFibGVQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUZvbnRGYWNlOjpTdHlsZVJ1bGVG
b250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGb250RmFjZTo6bXV0YWJsZVBy
b3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlVmlld3BvcnQ6OlN0eWxlUnVs
ZVZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVZpZXdwb3J0OjptdXRhYmxl
UHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGaWx0ZXI6OlN0eWxlUnVs
ZUZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGaWx0ZXI6Om11dGFibGVQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlS2V5ZnJhbWU6Om11dGFibGVQcm9wZXJ0aWVzKToKKyAgICAgICAg
KiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlxdWVFbGVtZW50RGF0YTo6
VW5pcXVlRWxlbWVudERhdGEpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSk6
CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjb3B5U3R5bGVPckNyZWF0ZUVtcHR5KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5RWRpdGluZ1Byb3BlcnRpZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6ZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdGluZ1N0eWxlOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Y29w
eSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Z2V0UHJvcGVydGllc05vdEluKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpjb3B5VHlw
aW5nU3R5bGUpOgorCisyMDEzLTA0LTEzICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNv
bT4KKwogICAgICAgICBSZW1vdmUgdW51c2VkIG1ldGhvZCBDU1NTdHlsZURlY2xhcmF0aW9uOjpt
YWtlTXV0YWJsZSgpLgogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTQ1Njc+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
aW5kZXggZTBmY2IxNi4uMmI3MWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI5MjgsNyArMjkyOCw3IEBAIGJvb2wg
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjc3NQcm9wZXJ0eU1hdGNoZXMoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlELCBjCiAgICAgcmV0dXJuIHZhbHVlICYmIHByb3BlcnR5VmFsdWUgJiYg
dmFsdWUtPmVxdWFscygqcHJvcGVydHlWYWx1ZSk7CiB9CiAKLVBhc3NSZWZQdHI8U3R5bGVQcm9w
ZXJ0eVNldD4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5KCkgY29uc3QKK1Bhc3NS
ZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bjo6Y29weVByb3BlcnRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5UHJvcGVydGllc0lu
U2V0KGNvbXB1dGVkUHJvcGVydGllcywgbnVtQ29tcHV0ZWRQcm9wZXJ0aWVzKTsKIH0KQEAgLTI5
ODEsNyArMjk4MSw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5VmFsdWVzRm9yR3JpCiAgICAgcmV0dXJuIGxpc3Qu
cmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlE
KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNl
dChjb25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKIHsKICAg
ICBWZWN0b3I8Q1NTUHJvcGVydHksIDI1Nj4gbGlzdDsKICAgICBsaXN0LnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkobGVuZ3RoKTsKQEAgLTI5OTAsNyArMjk5MCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVQ
cm9wZXJ0eVNldD4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5UHJvcGVydGllc0lu
U2V0KGNvCiAgICAgICAgIGlmICh2YWx1ZSkKICAgICAgICAgICAgIGxpc3QuYXBwZW5kKENTU1By
b3BlcnR5KHNldFtpXSwgdmFsdWUucmVsZWFzZSgpLCBmYWxzZSkpOwogICAgIH0KLSAgICByZXR1
cm4gU3R5bGVQcm9wZXJ0eVNldDo6Y3JlYXRlKGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KFN0
eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpKTsKIH0KIAog
dm9pZCBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMDczNzUyMy4uMGYyYWU1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NQcmlt
aXRpdmVWYWx1ZTsKIGNsYXNzIENTU1ZhbHVlTGlzdDsKIGNsYXNzIENvbG9yOworY2xhc3MgTXV0
YWJsZVN0eWxlUHJvcGVydHlTZXQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0Owog
Y2xhc3MgUmVuZGVyU3R5bGU7CkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcg
Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBib29sIGdldFByb3Bl
cnR5UHJpb3JpdHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8U3R5bGVQcm9wZXJ0eVNldD4gY29weSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gY29weVByb3BlcnRpZXMoKSBjb25zdCBPVkVSUklE
RTsKIAogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJv
cGVydHlJRCwgRVVwZGF0ZUxheW91dCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Z2V0Rm9udFNpemVDU1NWYWx1ZVByZWZlcnJpbmdLZXl3b3JkKCkgY29uc3Q7CkBAIC03MCw3ICs3
MSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRTVkdQcm9wZXJ0eUNT
U1ZhbHVlKENTU1Byb3BlcnR5SUQsIEVVcGRhdGVMYXlvdXQpIGNvbnN0OwogI2VuZGlmCiAKLSAg
ICBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3Qg
Q1NTUHJvcGVydHlJRCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OworICAgIFBhc3NSZWZQ
dHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NT
UHJvcGVydHlJRCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggY2M5OThhYi4u
MWY5MzMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC0z
MSw2ICszMSw3IEBAIGNsYXNzIENTU1Byb3BlcnR5OwogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENT
U1N0eWxlU2hlZXQ7CiBjbGFzcyBDU1NWYWx1ZTsKK2NsYXNzIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0OwogY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiAKQEAg
LTY0LDcgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5VmFs
dWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFByb3Bl
cnR5SW50ZXJuYWwoQ1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBv
cnRhbnQsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5
bGVQcm9wZXJ0eVNldD4gY29weSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzKCkgY29uc3QgPSAwOwogCiAg
ICAgdmlydHVhbCBib29sIGNzc1Byb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlELCBjb25zdCBD
U1NWYWx1ZSopIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0
eWxlU2hlZXQoKSBjb25zdCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDVhMTg4ZDkuLjZi
NTA3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0zMDIsOSArMzAyLDkgQEAgU3R5bGVTaGVldENvbnRlbnRz
KiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmNvbnRleHRTdHlsZVNoZWV0KCkgY29u
c3QKICAgICByZXR1cm4gY3NzU3R5bGVTaGVldCA/IGNzc1N0eWxlU2hlZXQtPmNvbnRlbnRzKCkg
OiAwOwogfQogCi1QYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IFByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6Y29weSgpIGNvbnN0CitQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0PiBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcm9wZXJ0eVNldC0+Y29weSgpOworICAgIHJldHVybiBt
X3Byb3BlcnR5U2V0LT5tdXRhYmxlQ29weSgpOwogfQogCiBib29sIFByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbjo6Y3NzUHJvcGVydHlNYXRjaGVzKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCwgY29uc3QgQ1NTVmFsdWUqIHByb3BlcnR5VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMzEyYjVh
ZC4uZjg2Y2FkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NT
U3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENT
U1N0eWxlRGVjbGFyYXRpb24uaApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRQcm9wZXJ0eUludGVybmFsKENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYg
dmFsdWUsIGJvb2wgaW1wb3J0YW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CiAgICAgCiAg
ICAgdmlydHVhbCBib29sIGNzc1Byb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlELCBjb25zdCBD
U1NWYWx1ZSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHlsZVBy
b3BlcnR5U2V0PiBjb3B5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllcygpIGNvbnN0IE9WRVJSSURF
OwogCiAgICAgQ1NTVmFsdWUqIGNsb25lQW5kQ2FjaGVGb3JDU1NPTShDU1NWYWx1ZSopOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDQ2MGEzN2YuLmYz
NGZmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAgLTEyMDcs
MTIgKzEyMDcsMTIgQEAgdm9pZCBTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVFcXVpdmFsZW50UHJv
cGVydGllcyhjb25zdCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHkKICAgICAgICAgcmVtb3ZlUHJv
cGVydHkocHJvcGVydGllc1RvUmVtb3ZlW2ldKTsKIH0KIAotUGFzc1JlZlB0cjxTdHlsZVByb3Bl
cnR5U2V0PiBTdHlsZVByb3BlcnR5U2V0Ojpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6Om11dGFibGVDb3B5KCkgY29uc3QK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE11dGFibGVTdHlsZVByb3BlcnR5U2V0KCp0aGlz
KSk7CiB9CiAKLVBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gU3R5bGVQcm9wZXJ0eVNldDo6
Y29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxl
bmd0aCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJv
cGVydHlTZXQ6OmNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJRCogc2V0LCB1
bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgVmVjdG9yPENTU1Byb3BlcnR5LCAyNTY+IGxp
c3Q7CiAgICAgbGlzdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CkBAIC0xMjIxLDcg
KzEyMjEsNyBAQCBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6
OmNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcAogICAgICAgICBpZiAodmFsdWUpCiAg
ICAgICAgICAgICBsaXN0LmFwcGVuZChDU1NQcm9wZXJ0eShzZXRbaV0sIHZhbHVlLnJlbGVhc2Uo
KSwgZmFsc2UpKTsKICAgICB9Ci0gICAgcmV0dXJuIFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShs
aXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOworICAgIHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0
PE11dGFibGVTdHlsZVByb3BlcnR5U2V0PihTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUobGlzdC5k
YXRhKCksIGxpc3Quc2l6ZSgpKSk7CiB9CiAKIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
biogU3R5bGVQcm9wZXJ0eVNldDo6Y3NzU3R5bGVEZWNsYXJhdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydHlTZXQuaAppbmRleCA4MDJjMzFkLi4wNmY4ZTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKQEAgLTEzNywxMyArMTM3LDEzIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYWRkU3VicmVzb3VyY2VTdHlsZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mLCBTdHls
ZVNoZWV0Q29udGVudHMqIGNvbnRleHRTdHlsZVNoZWV0KSBjb25zdDsKIAotICAgIFBhc3NSZWZQ
dHI8U3R5bGVQcm9wZXJ0eVNldD4gY29weSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8TXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ+IG11dGFibGVDb3B5KCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBpbW11dGFibGVDb3B5SWZOZWVkZWQoKSBjb25zdDsKIAogICAgIHZv
aWQgcmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCopOwog
ICAgIHZvaWQgcmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMoY29uc3QgQ1NTU3R5bGVEZWNsYXJh
dGlvbiopOwogCi0gICAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGll
c0luU2V0KGNvbnN0IENTU1Byb3BlcnR5SUQqIHNldCwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsK
KyAgICBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllc0lu
U2V0KGNvbnN0IENTU1Byb3BlcnR5SUQqIHNldCwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKICAg
ICAKICAgICBTdHJpbmcgYXNUZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAK
aW5kZXggZTAwNDZjMS4uMGFmMDk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTMw
NCw3ICszMDQsNyBAQCBTdHlsZVJ1bGU6OlN0eWxlUnVsZShpbnQgc291cmNlTGluZSkKIAogU3R5
bGVSdWxlOjpTdHlsZVJ1bGUoY29uc3QgU3R5bGVSdWxlJiBvKQogICAgIDogU3R5bGVSdWxlQmFz
ZShvKQotICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0aWVzLT5jb3B5KCkpCisgICAgLCBt
X3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCkpCiAgICAgLCBtX3NlbGVj
dG9yTGlzdChvLm1fc2VsZWN0b3JMaXN0KQogewogfQpAQCAtMzE2LDcgKzMxNiw3IEBAIFN0eWxl
UnVsZTo6flN0eWxlUnVsZSgpCiBTdHlsZVByb3BlcnR5U2V0KiBTdHlsZVJ1bGU6Om11dGFibGVQ
cm9wZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCi0gICAg
ICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+Y29weSgpOworICAgICAgICBtX3Byb3Bl
cnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7CiAgICAgcmV0dXJuIG1fcHJvcGVy
dGllcy5nZXQoKTsKIH0KIApAQCAtMzMyLDcgKzMzMiw3IEBAIFN0eWxlUnVsZVBhZ2U6OlN0eWxl
UnVsZVBhZ2UoKQogCiBTdHlsZVJ1bGVQYWdlOjpTdHlsZVJ1bGVQYWdlKGNvbnN0IFN0eWxlUnVs
ZVBhZ2UmIG8pCiAgICAgOiBTdHlsZVJ1bGVCYXNlKG8pCi0gICAgLCBtX3Byb3BlcnRpZXMoby5t
X3Byb3BlcnRpZXMtPmNvcHkoKSkKKyAgICAsIG1fcHJvcGVydGllcyhvLm1fcHJvcGVydGllcy0+
bXV0YWJsZUNvcHkoKSkKICAgICAsIG1fc2VsZWN0b3JMaXN0KG8ubV9zZWxlY3Rvckxpc3QpCiB7
CiB9CkBAIC0zNDQsNyArMzQ0LDcgQEAgU3R5bGVSdWxlUGFnZTo6flN0eWxlUnVsZVBhZ2UoKQog
U3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlUGFnZTo6bXV0YWJsZVByb3BlcnRpZXMoKQogewog
ICAgIGlmICghbV9wcm9wZXJ0aWVzLT5pc011dGFibGUoKSkKLSAgICAgICAgbV9wcm9wZXJ0aWVz
ID0gbV9wcm9wZXJ0aWVzLT5jb3B5KCk7CisgICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVy
dGllcy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgpOwogfQog
CkBAIC0zNjcsNyArMzY3LDcgQEAgU3R5bGVSdWxlRm9udEZhY2U6OlN0eWxlUnVsZUZvbnRGYWNl
KCkKIAogU3R5bGVSdWxlRm9udEZhY2U6OlN0eWxlUnVsZUZvbnRGYWNlKGNvbnN0IFN0eWxlUnVs
ZUZvbnRGYWNlJiBvKQogICAgIDogU3R5bGVSdWxlQmFzZShvKQotICAgICwgbV9wcm9wZXJ0aWVz
KG8ubV9wcm9wZXJ0aWVzLT5jb3B5KCkpCisgICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRp
ZXMtPm11dGFibGVDb3B5KCkpCiB7CiB9CiAKQEAgLTM3OCw3ICszNzgsNyBAQCBTdHlsZVJ1bGVG
b250RmFjZTo6flN0eWxlUnVsZUZvbnRGYWNlKCkKIFN0eWxlUHJvcGVydHlTZXQqIFN0eWxlUnVs
ZUZvbnRGYWNlOjptdXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMt
PmlzTXV0YWJsZSgpKQotICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPmNvcHko
KTsKKyAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgpOwog
ICAgIHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7CiB9CiAKQEAgLTQ4Niw3ICs0ODYsNyBAQCBT
dHlsZVJ1bGVWaWV3cG9ydDo6U3R5bGVSdWxlVmlld3BvcnQoKQogCiBTdHlsZVJ1bGVWaWV3cG9y
dDo6U3R5bGVSdWxlVmlld3BvcnQoY29uc3QgU3R5bGVSdWxlVmlld3BvcnQmIG8pCiAgICAgOiBT
dHlsZVJ1bGVCYXNlKG8pCi0gICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPmNvcHko
KSkKKyAgICAsIG1fcHJvcGVydGllcyhvLm1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKSkKIHsK
IH0KIApAQCAtNDk3LDcgKzQ5Nyw3IEBAIFN0eWxlUnVsZVZpZXdwb3J0Ojp+U3R5bGVSdWxlVmll
d3BvcnQoKQogU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlVmlld3BvcnQ6Om11dGFibGVQcm9w
ZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCi0gICAgICAg
IG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+Y29weSgpOworICAgICAgICBtX3Byb3BlcnRp
ZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7CiAgICAgcmV0dXJuIG1fcHJvcGVydGll
cy5nZXQoKTsKIH0KIApAQCAtNTIzLDcgKzUyMyw3IEBAIFN0eWxlUnVsZUZpbHRlcjo6U3R5bGVS
dWxlRmlsdGVyKGNvbnN0IFN0cmluZyYgZmlsdGVyTmFtZSkKIFN0eWxlUnVsZUZpbHRlcjo6U3R5
bGVSdWxlRmlsdGVyKGNvbnN0IFN0eWxlUnVsZUZpbHRlciYgbykKICAgICA6IFN0eWxlUnVsZUJh
c2UobykKICAgICAsIG1fZmlsdGVyTmFtZShvLm1fZmlsdGVyTmFtZSkKLSAgICAsIG1fcHJvcGVy
dGllcyhvLm1fcHJvcGVydGllcy0+Y29weSgpKQorICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9w
ZXJ0aWVzLT5tdXRhYmxlQ29weSgpKQogewogfQogCkBAIC01MzQsNyArNTM0LDcgQEAgU3R5bGVS
dWxlRmlsdGVyOjp+U3R5bGVSdWxlRmlsdGVyKCkKIFN0eWxlUHJvcGVydHlTZXQqIFN0eWxlUnVs
ZUZpbHRlcjo6bXV0YWJsZVByb3BlcnRpZXMoKQogewogICAgIGlmICghbV9wcm9wZXJ0aWVzLT5p
c011dGFibGUoKSkKLSAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5jb3B5KCk7
CisgICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKICAg
ICByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCmluZGV4IGY1ODQ3NGYuLmY0NGM2M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIFN0eWxlS2V5ZnJhbWU6On5TdHlsZUtleWZyYW1lKCkKIFN0eWxlUHJvcGVydHlTZXQqIFN0
eWxlS2V5ZnJhbWU6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsKICAgICBpZiAoIW1fcHJvcGVydGll
cy0+aXNNdXRhYmxlKCkpCi0gICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+Y29w
eSgpOworICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCk7
CiAgICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCBiODk1NDAyLi4wZjlmZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0z
MDQyLDcgKzMwNDIsNyBAQCBVbmlxdWVFbGVtZW50RGF0YTo6VW5pcXVlRWxlbWVudERhdGEoY29u
c3QgVW5pcXVlRWxlbWVudERhdGEmIG90aGVyKQogICAgICwgbV9wcmVzZW50YXRpb25BdHRyaWJ1
dGVTdHlsZShvdGhlci5tX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKQogICAgICwgbV9hdHRy
aWJ1dGVWZWN0b3Iob3RoZXIubV9hdHRyaWJ1dGVWZWN0b3IpCiB7Ci0gICAgbV9pbmxpbmVTdHls
ZSA9IG90aGVyLm1faW5saW5lU3R5bGUgPyBvdGhlci5tX2lubGluZVN0eWxlLT5jb3B5KCkgOiAw
OworICAgIG1faW5saW5lU3R5bGUgPSBvdGhlci5tX2lubGluZVN0eWxlID8gb3RoZXIubV9pbmxp
bmVTdHlsZS0+bXV0YWJsZUNvcHkoKSA6IDA7CiB9CiAKIFVuaXF1ZUVsZW1lbnREYXRhOjpVbmlx
dWVFbGVtZW50RGF0YShjb25zdCBTaGFyZWFibGVFbGVtZW50RGF0YSYgb3RoZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKaW5kZXggOTNhZTMzZC4uODYzN2UxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIE11dGFibGVTdHls
ZVByb3BlcnR5U2V0KiBTdHlsZWRFbGVtZW50OjplbnN1cmVNdXRhYmxlSW5saW5lU3R5bGUoKQog
ICAgIGlmICghaW5saW5lU3R5bGUpCiAgICAgICAgIGlubGluZVN0eWxlID0gU3R5bGVQcm9wZXJ0
eVNldDo6Y3JlYXRlKHN0cmljdFRvQ1NTUGFyc2VyTW9kZShpc0hUTUxFbGVtZW50KCkgJiYgIWRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpKSk7CiAgICAgZWxzZSBpZiAoIWlubGluZVN0eWxlLT5p
c011dGFibGUoKSkKLSAgICAgICAgaW5saW5lU3R5bGUgPSBpbmxpbmVTdHlsZS0+Y29weSgpOwor
ICAgICAgICBpbmxpbmVTdHlsZSA9IGlubGluZVN0eWxlLT5tdXRhYmxlQ29weSgpOwogICAgIEFT
U0VSVChpbmxpbmVTdHlsZS0+aXNNdXRhYmxlKCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxN
dXRhYmxlU3R5bGVQcm9wZXJ0eVNldCo+KGlubGluZVN0eWxlLmdldCgpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggNjJmMzY2Mi4uNjE5
NWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAK
QEAgLTMwMCw3ICszMDAsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBj
b3B5U3R5bGVPckNyZWF0ZUVtcHR5KGNvbnN0IFN0eWxlUHJvcGVydHlTZQogewogICAgIGlmICgh
c3R5bGUpCiAgICAgICAgIHJldHVybiBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKLSAgICBy
ZXR1cm4gc3R5bGUtPmNvcHkoKTsKKyAgICByZXR1cm4gc3R5bGUtPm11dGFibGVDb3B5KCk7CiB9
CiAKIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2Uo
RWRpdGluZ1N0eWxlKiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZ1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNw
cAppbmRleCAzMTA5ZGEyLi4zM2JmMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmdTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5n
U3R5bGUuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBjb25zdCBDU1NQcm9wZXJ0eUlEIGVk
aXRpbmdQcm9wZXJ0aWVzW10gPSB7CiBlbnVtIEVkaXRpbmdQcm9wZXJ0aWVzVHlwZSB7IE9ubHlJ
bmhlcml0YWJsZUVkaXRpbmdQcm9wZXJ0aWVzLCBBbGxFZGl0aW5nUHJvcGVydGllcyB9OwogCiB0
ZW1wbGF0ZSA8Y2xhc3MgU3R5bGVEZWNsYXJhdGlvblR5cGU+Ci1zdGF0aWMgUGFzc1JlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBjb3B5RWRpdGluZ1Byb3BlcnRpZXMoU3R5bGVEZWNsYXJhdGlvblR5
cGUqIHN0eWxlLCBFZGl0aW5nUHJvcGVydGllc1R5cGUgdHlwZSA9IE9ubHlJbmhlcml0YWJsZUVk
aXRpbmdQcm9wZXJ0aWVzKQorc3RhdGljIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQ+IGNvcHlFZGl0aW5nUHJvcGVydGllcyhTdHlsZURlY2xhcmF0aW9uVHlwZSogc3R5bGUsIEVk
aXRpbmdQcm9wZXJ0aWVzVHlwZSB0eXBlID0gT25seUluaGVyaXRhYmxlRWRpdGluZ1Byb3BlcnRp
ZXMpCiB7CiAgICAgaWYgKHR5cGUgPT0gQWxsRWRpdGluZ1Byb3BlcnRpZXMpCiAgICAgICAgIHJl
dHVybiBzdHlsZS0+Y29weVByb3BlcnRpZXNJblNldChlZGl0aW5nUHJvcGVydGllcywgV1RGX0FS
UkFZX0xFTkdUSChlZGl0aW5nUHJvcGVydGllcykpOwpAQCAtMTAxLDEwICsxMDEsMTAgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzRWRpdGluZ1Byb3BlcnR5KGludCBpZCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGVkaXRpbmdTdHls
ZUZyb21Db21wdXRlZFN0eWxlKFBhc3NSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
PiBzdHlsZSwgRWRpdGluZ1Byb3BlcnRpZXNUeXBlIHR5cGUgPSBPbmx5SW5oZXJpdGFibGVFZGl0
aW5nUHJvcGVydGllcykKK3N0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0
PiBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShQYXNzUmVmUHRyPENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbj4gc3R5bGUsIEVkaXRpbmdQcm9wZXJ0aWVzVHlwZSB0eXBlID0gT25seUlu
aGVyaXRhYmxlRWRpdGluZ1Byb3BlcnRpZXMpCiB7CiAgICAgaWYgKCFzdHlsZSkKLSAgICAgICAg
cmV0dXJuIFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOworICAgICAgICByZXR1cm4gc3RhdGlj
X3BvaW50ZXJfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4oU3R5bGVQcm9wZXJ0eVNldDo6
Y3JlYXRlKCkpOwogICAgIHJldHVybiBjb3B5RWRpdGluZ1Byb3BlcnRpZXMoc3R5bGUuZ2V0KCks
IHR5cGUpOwogfQogCkBAIC0zMTYsNyArMzE2LDcgQEAgRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5
bGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBQcm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnQK
IH0KIAogRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCog
c3R5bGUpCi0gICAgOiBtX211dGFibGVTdHlsZShzdHlsZSA/IHN0eWxlLT5jb3B5KCkgOiAwKQor
ICAgIDogbV9tdXRhYmxlU3R5bGUoc3R5bGUgPyBzdHlsZS0+bXV0YWJsZUNvcHkoKSA6IDApCiAg
ICAgLCBtX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXplKGZhbHNlKQogICAgICwgbV9mb250
U2l6ZURlbHRhKE5vRm9udERlbHRhKQogewpAQCAtMzI0LDcgKzMyNCw3IEBAIEVkaXRpbmdTdHls
ZTo6RWRpdGluZ1N0eWxlKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQogfQogCiBFZGl0
aW5nU3R5bGU6OkVkaXRpbmdTdHlsZShjb25zdCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkK
LSAgICA6IG1fbXV0YWJsZVN0eWxlKHN0eWxlID8gc3R5bGUtPmNvcHkoKSA6IDApCisgICAgOiBt
X211dGFibGVTdHlsZShzdHlsZSA/IHN0eWxlLT5jb3B5UHJvcGVydGllcygpIDogMCkKICAgICAs
IG1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUoZmFsc2UpCiAgICAgLCBtX2ZvbnRTaXpl
RGVsdGEoTm9Gb250RGVsdGEpCiB7CkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBFZGl0aW5nU3R5
bGU6OmluaXQoTm9kZSogbm9kZSwgUHJvcGVydGllc1RvSW5jbHVkZSBwcm9wZXJ0aWVzVG9JbmNs
dWRlKQogICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogCiAgICAgUmVmUHRyPENT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24gPSBDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShub2RlKTsKLSAgICBtX211dGFibGVTdHls
ZSA9IHByb3BlcnRpZXNUb0luY2x1ZGUgPT0gQWxsUHJvcGVydGllcyAmJiBjb21wdXRlZFN0eWxl
QXRQb3NpdGlvbiA/IGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uLT5jb3B5KCkgOiBlZGl0aW5nU3R5
bGVGcm9tQ29tcHV0ZWRTdHlsZShjb21wdXRlZFN0eWxlQXRQb3NpdGlvbik7CisgICAgbV9tdXRh
YmxlU3R5bGUgPSBwcm9wZXJ0aWVzVG9JbmNsdWRlID09IEFsbFByb3BlcnRpZXMgJiYgY29tcHV0
ZWRTdHlsZUF0UG9zaXRpb24gPyBjb21wdXRlZFN0eWxlQXRQb3NpdGlvbi0+Y29weVByb3BlcnRp
ZXMoKSA6IGVkaXRpbmdTdHlsZUZyb21Db21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGVBdFBvc2l0
aW9uKTsKIAogICAgIGlmIChwcm9wZXJ0aWVzVG9JbmNsdWRlID09IEVkaXRpbmdQcm9wZXJ0aWVz
SW5FZmZlY3QpIHsKICAgICAgICAgaWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBiYWNrZ3Jv
dW5kQ29sb3JJbkVmZmVjdChub2RlKSkKQEAgLTU0OCw3ICs1NDgsNyBAQCBQYXNzUmVmUHRyPEVk
aXRpbmdTdHlsZT4gRWRpdGluZ1N0eWxlOjpjb3B5KCkgY29uc3QKIHsKICAgICBSZWZQdHI8RWRp
dGluZ1N0eWxlPiBjb3B5ID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoKTsKICAgICBpZiAobV9tdXRh
YmxlU3R5bGUpCi0gICAgICAgIGNvcHktPm1fbXV0YWJsZVN0eWxlID0gbV9tdXRhYmxlU3R5bGUt
PmNvcHkoKTsKKyAgICAgICAgY29weS0+bV9tdXRhYmxlU3R5bGUgPSBtX211dGFibGVTdHlsZS0+
bXV0YWJsZUNvcHkoKTsKICAgICBjb3B5LT5tX3Nob3VsZFVzZUZpeGVkRGVmYXVsdEZvbnRTaXpl
ID0gbV9zaG91bGRVc2VGaXhlZERlZmF1bHRGb250U2l6ZTsKICAgICBjb3B5LT5tX2ZvbnRTaXpl
RGVsdGEgPSBtX2ZvbnRTaXplRGVsdGE7CiAgICAgcmV0dXJuIGNvcHk7CkBAIC0xMDQ1LDcgKzEw
NDUsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VTdHlsZShjb25zdCBTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZSwgQ1NTUHJvcGVydHlPdmVycmlkZQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoIW1fbXV0YWJsZVN0eWxlKSB7Ci0gICAgICAgIG1fbXV0YWJsZVN0eWxlID0gc3R5bGUtPmNv
cHkoKTsKKyAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBzdHlsZS0+bXV0YWJsZUNvcHkoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgUGFzc1JlZlB0cjxT
dHlsZVByb3BlcnR5U2V0PiBnZXRQcm9wZXJ0aWVzTm90SW4oU3R5bGVQcm9wZXJ0eVNldCogc3R5
bGVXaXRoUmVkdW4KIHsKICAgICBBU1NFUlQoc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVydGllcyk7
CiAgICAgQVNTRVJUKGJhc2VTdHlsZSk7Ci0gICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHJl
c3VsdCA9IHN0eWxlV2l0aFJlZHVuZGFudFByb3BlcnRpZXMtPmNvcHkoKTsKKyAgICBSZWZQdHI8
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IHJlc3VsdCA9IHN0eWxlV2l0aFJlZHVuZGFudFByb3Bl
cnRpZXMtPm11dGFibGVDb3B5KCk7CiAKICAgICByZXN1bHQtPnJlbW92ZUVxdWl2YWxlbnRQcm9w
ZXJ0aWVzKGJhc2VTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKaW5kZXggMGZjODJkZS4uN2M5YzVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9G
cmFtZVNlbGVjdGlvbi5jcHAKQEAgLTE4OTksNyArMTg5OSw3IEBAIFBhc3NSZWZQdHI8U3R5bGVQ
cm9wZXJ0eVNldD4gRnJhbWVTZWxlY3Rpb246OmNvcHlUeXBpbmdTdHlsZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3R5cGluZ1N0eWxlIHx8ICFtX3R5cGluZ1N0eWxlLT5zdHlsZSgpKQogICAgICAg
ICByZXR1cm4gMDsKLSAgICByZXR1cm4gbV90eXBpbmdTdHlsZS0+c3R5bGUoKS0+Y29weSgpOwor
ICAgIHJldHVybiBtX3R5cGluZ1N0eWxlLT5zdHlsZSgpLT5tdXRhYmxlQ29weSgpOwogfQogCiBi
b29sIEZyYW1lU2VsZWN0aW9uOjpzaG91bGREZWxldGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgc2VsZWN0aW9uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KaW5kZXggZDc3YjYwNS4uMDViZDU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCkBAIC03NzgsNyArNzc4LDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpk
YXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgaWYgKCFfcHJpdmF0ZS0+Y29y
ZUZyYW1lIHx8ICFzdHlsZSkKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGRuJ3QgaGF2ZSB0byBjcmVhdGUgYSBjb3B5IGhlcmUuCi0gICAgX3ByaXZhdGUtPmNvcmVGcmFt
ZS0+ZWRpdG9yKCktPmNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShjb3JlKHN0eWxlKS0+Y29weSgp
LmdldCgpLCB1bmRvQWN0aW9uKTsKKyAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5lZGl0b3IoKS0+
Y29tcHV0ZUFuZFNldFR5cGluZ1N0eWxlKGNvcmUoc3R5bGUpLT5jb3B5UHJvcGVydGllcygpLmdl
dCgpLCB1bmRvQWN0aW9uKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCA5NDYyYTY5Li4wN2Y5NzQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTQzNDgsNyArNDM0
OCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2
ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3Jl
KFtzZWxmIF9mcmFtZV0pKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGF2ZSB0
byBtYWtlIGEgY29weSBoZXJlLiBXZSB3YW50IGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiB0byB3
b3JrIGRpcmVjdGx5IHdpdGggU3R5bGVQcm9wZXJ0eVNldCBldmVudHVhbGx5LgotICAgICAgICBj
b3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlVG9TZWxlY3Rpb24oY29yZShzdHlsZSktPmNv
cHkoKS5nZXQoKSwgdW5kb0FjdGlvbik7CisgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFw
cGx5U3R5bGVUb1NlbGVjdGlvbihjb3JlKHN0eWxlKS0+Y29weVByb3BlcnRpZXMoKS5nZXQoKSwg
dW5kb0FjdGlvbik7CiAgICAgfQogfQogCkBAIC00NjUwLDcgKzQ2NTAsNyBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZy
YW1lKQogICAgIGlmIChbW3dlYlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmll
dzp3ZWJWaWV3IHNob3VsZEFwcGx5U3R5bGU6c3R5bGUgdG9FbGVtZW50c0luRE9NUmFuZ2U6cmFu
Z2VdKSB7CiAgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVd
KSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIG1ha2UgYSBj
b3B5IGhlcmUuCi0gICAgICAgICAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hcHBseVN0eWxlKGNv
cmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIFtzZWxmIF91bmRvQWN0aW9uRnJvbUNvbG9yUGFuZWxX
aXRoU2VsZWN0b3I6c2VsZWN0b3JdKTsKKyAgICAgICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCkt
PmFwcGx5U3R5bGUoY29yZShzdHlsZSktPmNvcHlQcm9wZXJ0aWVzKCkuZ2V0KCksIFtzZWxmIF91
bmRvQWN0aW9uRnJvbUNvbG9yUGFuZWxXaXRoU2VsZWN0b3I6c2VsZWN0b3JdKTsKICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGY0OTNjNWEu
LmY4ZTAyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTU2NjIsNyAr
NTY2Miw3IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBqCiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUod2ViRnJhbWUpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGF2ZSB0byBtYWtl
IGEgY29weSBoZXJlLgogICAgIGlmIChjb3JlRnJhbWUpCi0gICAgICAgIGNvcmVGcmFtZS0+ZWRp
dG9yKCktPmFwcGx5U3R5bGUoY29yZShzdHlsZSktPmNvcHkoKS5nZXQoKSk7CisgICAgICAgIGNv
cmVGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoY29yZShzdHlsZSktPmNvcHlQcm9wZXJ0aWVz
KCkuZ2V0KCkpOwogfQogCiBAZW5kCg==
</data>
<flag name="commit-queue"
          id="219812"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197952</attachid>
            <date>2013-04-13 12:40:17 -0700</date>
            <delta_ts>2013-04-13 12:57:09 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-114569-v3.diff</filename>
            <type>text/plain</type>
            <size>23883</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTkyOWJlLi43NWEwODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzMg
QEAKIDIwMTMtMDQtMTMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIFJlbmFtZS90d2VhayBzb21lIFN0eWxlUHJvcGVydHlTZXQvQ1NTU3R5bGVEZWNsYXJhdGlv
biBjb3B5aW5nIGZ1bmN0aW9ucy4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE0NTY5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gU3R5
bGVQcm9wZXJ0eVNldDo6Y29weSgpIC0+IG11dGFibGVDb3B5KCkKKworICAgICAgICAgICAgVGhp
cyBmdW5jdGlvbiBub3cgcmV0dXJucyBhIE11dGFibGVTdHlsZVByb3BlcnR5U2V0LCBhbmQgdGhp
cyBpcyBhbHNvIHJlZmxlY3RlZCBpbiB0aGUgbmFtZS4KKworICAgICAgICAtIENTU1N0eWxlRGVj
bGFyYXRpb246OmNvcHkoKSAtPiBjb3B5UHJvcGVydGllcygpCisKKyAgICAgICAgICAgIFJlbmFt
ZWQgdG8gcmVmbGVjdCB0aGF0IGl0J3MgdGhlIHByb3BlcnRpZXMgYmVpbmcgY29waWVkLCBub3Qg
dGhlIENTU1N0eWxlRGVjbGFyYXRpb24uCisgICAgICAgICAgICBUaGV5IGFsc28gbm93IHJldHVy
biBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldHMuCisKKyAgICAgICAgLSBTdHlsZVByb3BlcnR5U2V0
Ojpjb3B5UHJvcGVydGllc0luU2V0KCkKKyAgICAgICAgLSBDU1NTdHlsZURlY2xhcmF0aW9uOjpj
b3B5UHJvcGVydGllc0luU2V0KCkKKworICAgICAgICAgICAgVGhlc2UgZnVuY3Rpb25zIG5vdyBy
ZXR1cm4gTXV0YWJsZVN0eWxlUHJvcGVydHlTZXRzLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldCk6CisgICAgICAgICog
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oOgor
ICAgICAgICAoQ1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENT
U1N0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6bXV0YWJsZUNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6Y29weVByb3BlcnRpZXNJblNl
dCk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuaDoKKyAgICAgICAgKFN0eWxlUHJv
cGVydHlTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSdWxlOjpTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlOjpt
dXRhYmxlUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVQYWdlOjpTdHls
ZVJ1bGVQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVBhZ2U6Om11dGFibGVQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUZvbnRGYWNlOjpTdHlsZVJ1bGVG
b250RmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGb250RmFjZTo6bXV0YWJsZVBy
b3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlVmlld3BvcnQ6OlN0eWxlUnVs
ZVZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZVZpZXdwb3J0OjptdXRhYmxl
UHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGaWx0ZXI6OlN0eWxlUnVs
ZUZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGaWx0ZXI6Om11dGFibGVQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKiBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6YWRkVmlld3BvcnRSdWxlKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlS2V5ZnJhbWU6Om11dGFibGVQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBkb20vRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlxdWVFbGVtZW50RGF0YTo6VW5pcXVlRWxlbWVu
dERhdGEpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlZEVsZW1lbnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSk6CisgICAgICAgICog
ZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb3B5U3R5
bGVPckNyZWF0ZUVtcHR5KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb3B5RWRpdGluZ1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxl
Ojppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6Y29weSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6Om1lcmdlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0UHJvcGVydGllc05vdEluKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpjb3B5VHlwaW5nU3R5bGUpOgor
CisyMDEzLTA0LTEzICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKwogICAgICAg
ICBSZW1vdmUgdW51c2VkIG1ldGhvZCBDU1NTdHlsZURlY2xhcmF0aW9uOjptYWtlTXV0YWJsZSgp
LgogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTQ1Njc+CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZTBmY2Ix
Ni4uMmI3MWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI5MjgsNyArMjkyOCw3IEBAIGJvb2wgQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpjc3NQcm9wZXJ0eU1hdGNoZXMoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBjCiAgICAgcmV0dXJuIHZhbHVlICYmIHByb3BlcnR5VmFsdWUgJiYgdmFsdWUtPmVxdWFs
cygqcHJvcGVydHlWYWx1ZSk7CiB9CiAKLVBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3Bl
cnRpZXMoKSBjb25zdAogewogICAgIHJldHVybiBjb3B5UHJvcGVydGllc0luU2V0KGNvbXB1dGVk
UHJvcGVydGllcywgbnVtQ29tcHV0ZWRQcm9wZXJ0aWVzKTsKIH0KQEAgLTI5ODEsNyArMjk4MSw3
IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldENTU1Byb3BlcnR5VmFsdWVzRm9yR3JpCiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwog
fQogCi1QYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Y29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2ln
bmVkIGxlbmd0aCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IENT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29weVByb3BlcnRpZXNJblNldChjb25zdCBDU1NQ
cm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKIHsKICAgICBWZWN0b3I8Q1NT
UHJvcGVydHksIDI1Nj4gbGlzdDsKICAgICBsaXN0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobGVu
Z3RoKTsKQEAgLTI5OTAsNyArMjk5MCw3IEBAIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4g
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5UHJvcGVydGllc0luU2V0KGNvCiAgICAg
ICAgIGlmICh2YWx1ZSkKICAgICAgICAgICAgIGxpc3QuYXBwZW5kKENTU1Byb3BlcnR5KHNldFtp
XSwgdmFsdWUucmVsZWFzZSgpLCBmYWxzZSkpOwogICAgIH0KLSAgICByZXR1cm4gU3R5bGVQcm9w
ZXJ0eVNldDo6Y3JlYXRlKGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19wb2ludGVyX2Nhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+KFN0eWxlUHJvcGVydHlT
ZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpKTsKIH0KIAogdm9pZCBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb246OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMDczNzUyMy4uMGYyYWU1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaApAQCAtMzEs
NiArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsK
IGNsYXNzIENTU1ZhbHVlTGlzdDsKIGNsYXNzIENvbG9yOworY2xhc3MgTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVy
U3R5bGU7CkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZ2V0UHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKICAgICBib29sIGdldFByb3BlcnR5UHJpb3JpdHko
Q1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5bGVQcm9w
ZXJ0eVNldD4gY29weSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldD4gY29weVByb3BlcnRpZXMoKSBjb25zdCBPVkVSUklERTsKIAogICAgIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlJRCwgRVVw
ZGF0ZUxheW91dCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0Rm9udFNpemVD
U1NWYWx1ZVByZWZlcnJpbmdLZXl3b3JkKCkgY29uc3Q7CkBAIC03MCw3ICs3MSw3IEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRTVkdQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnR5SUQsIEVVcGRhdGVMYXlvdXQpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBQYXNzUmVmUHRy
PFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJ
RCogc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8TXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJRCog
c2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggY2M5OThhYi4uMWY5MzMxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBA
IGNsYXNzIENTU1Byb3BlcnR5OwogY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7
CiBjbGFzcyBDU1NWYWx1ZTsKK2NsYXNzIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OwogY2xhc3Mg
U3R5bGVQcm9wZXJ0eVNldDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiAKQEAgLTY0LDcgKzY1LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbChD
U1NQcm9wZXJ0eUlEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5SW50ZXJuYWwo
Q1NTUHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNl
dD4gY29weSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ+IGNvcHlQcm9wZXJ0aWVzKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBi
b29sIGNzc1Byb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NWYWx1ZSopIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBj
b25zdCB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDVhMTg4ZDkuLjZiNTA3NWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC0zMDIsOSArMzAyLDkgQEAgU3R5bGVTaGVldENvbnRlbnRzKiBQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb246OmNvbnRleHRTdHlsZVNoZWV0KCkgY29uc3QKICAgICByZXR1
cm4gY3NzU3R5bGVTaGVldCA/IGNzc1N0eWxlU2hlZXQtPmNvbnRlbnRzKCkgOiAwOwogfQogCi1Q
YXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
bjo6Y29weSgpIGNvbnN0CitQYXNzUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBQcm9w
ZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9wcm9wZXJ0eVNldC0+Y29weSgpOworICAgIHJldHVybiBtX3Byb3BlcnR5U2V0
LT5tdXRhYmxlQ29weSgpOwogfQogCiBib29sIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
bjo6Y3NzUHJvcGVydHlNYXRjaGVzKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgQ1NT
VmFsdWUqIHByb3BlcnR5VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMzEyYjVhZC4uZjg2Y2FkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb24uaApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
cm9wZXJ0eUludGVybmFsKENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wg
aW1wb3J0YW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCBi
b29sIGNzc1Byb3BlcnR5TWF0Y2hlcyhDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NWYWx1ZSopIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBj
b3B5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPE11dGFibGVTdHls
ZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllcygpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgQ1NT
VmFsdWUqIGNsb25lQW5kQ2FjaGVGb3JDU1NPTShDU1NWYWx1ZSopOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDQ2MGEzN2YuLmYzNGZmMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAgLTEyMDcsMTIgKzEyMDcsMTIg
QEAgdm9pZCBTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVFcXVpdmFsZW50UHJvcGVydGllcyhjb25z
dCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHkKICAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVy
dGllc1RvUmVtb3ZlW2ldKTsKIH0KIAotUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBTdHls
ZVByb3BlcnR5U2V0Ojpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6Om11dGFibGVDb3B5KCkgY29uc3QKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE11dGFibGVTdHlsZVByb3BlcnR5U2V0KCp0aGlzKSk7CiB9CiAKLVBh
c3NSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gU3R5bGVQcm9wZXJ0eVNldDo6Y29weVByb3BlcnRp
ZXNJblNldChjb25zdCBDU1NQcm9wZXJ0eUlEKiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QK
K1Bhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNv
cHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJRCogc2V0LCB1bnNpZ25lZCBsZW5n
dGgpIGNvbnN0CiB7CiAgICAgVmVjdG9yPENTU1Byb3BlcnR5LCAyNTY+IGxpc3Q7CiAgICAgbGlz
dC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CkBAIC0xMjIxLDcgKzEyMjEsNyBAQCBQ
YXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmNvcHlQcm9wZXJ0
aWVzSW5TZXQoY29uc3QgQ1NTUHJvcAogICAgICAgICBpZiAodmFsdWUpCiAgICAgICAgICAgICBs
aXN0LmFwcGVuZChDU1NQcm9wZXJ0eShzZXRbaV0sIHZhbHVlLnJlbGVhc2UoKSwgZmFsc2UpKTsK
ICAgICB9Ci0gICAgcmV0dXJuIFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZShsaXN0LmRhdGEoKSwg
bGlzdC5zaXplKCkpOworICAgIHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVTdHls
ZVByb3BlcnR5U2V0PihTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUobGlzdC5kYXRhKCksIGxpc3Qu
c2l6ZSgpKSk7CiB9CiAKIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbiogU3R5bGVQcm9w
ZXJ0eVNldDo6Y3NzU3R5bGVEZWNsYXJhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuaAppbmRleCA4MDJjMzFkLi4wNmY4ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnR5U2V0LmgKQEAgLTEzNywxMyArMTM3LDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
U3VicmVzb3VyY2VTdHlsZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mLCBTdHlsZVNoZWV0Q29udGVu
dHMqIGNvbnRleHRTdHlsZVNoZWV0KSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8U3R5bGVQcm9w
ZXJ0eVNldD4gY29weSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ+IG11dGFibGVDb3B5KCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5
U2V0PiBpbW11dGFibGVDb3B5SWZOZWVkZWQoKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlRXF1
aXZhbGVudFByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNldCopOwogICAgIHZvaWQgcmVt
b3ZlRXF1aXZhbGVudFByb3BlcnRpZXMoY29uc3QgQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogCi0g
ICAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllc0luU2V0KGNvbnN0
IENTU1Byb3BlcnR5SUQqIHNldCwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPE11dGFibGVTdHlsZVByb3BlcnR5U2V0PiBjb3B5UHJvcGVydGllc0luU2V0KGNvbnN0IENT
U1Byb3BlcnR5SUQqIHNldCwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKICAgICAKICAgICBTdHJp
bmcgYXNUZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKaW5kZXggZTAwNDZj
MS4uMGFmMDk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTMwNCw3ICszMDQsNyBA
QCBTdHlsZVJ1bGU6OlN0eWxlUnVsZShpbnQgc291cmNlTGluZSkKIAogU3R5bGVSdWxlOjpTdHls
ZVJ1bGUoY29uc3QgU3R5bGVSdWxlJiBvKQogICAgIDogU3R5bGVSdWxlQmFzZShvKQotICAgICwg
bV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0aWVzLT5jb3B5KCkpCisgICAgLCBtX3Byb3BlcnRpZXMo
by5tX3Byb3BlcnRpZXMtPm11dGFibGVDb3B5KCkpCiAgICAgLCBtX3NlbGVjdG9yTGlzdChvLm1f
c2VsZWN0b3JMaXN0KQogewogfQpAQCAtMzE2LDcgKzMxNiw3IEBAIFN0eWxlUnVsZTo6flN0eWxl
UnVsZSgpCiBTdHlsZVByb3BlcnR5U2V0KiBTdHlsZVJ1bGU6Om11dGFibGVQcm9wZXJ0aWVzKCkK
IHsKICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCi0gICAgICAgIG1fcHJvcGVy
dGllcyA9IG1fcHJvcGVydGllcy0+Y29weSgpOworICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3By
b3BlcnRpZXMtPm11dGFibGVDb3B5KCk7CiAgICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsK
IH0KIApAQCAtMzMyLDcgKzMzMiw3IEBAIFN0eWxlUnVsZVBhZ2U6OlN0eWxlUnVsZVBhZ2UoKQog
CiBTdHlsZVJ1bGVQYWdlOjpTdHlsZVJ1bGVQYWdlKGNvbnN0IFN0eWxlUnVsZVBhZ2UmIG8pCiAg
ICAgOiBTdHlsZVJ1bGVCYXNlKG8pCi0gICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMt
PmNvcHkoKSkKKyAgICAsIG1fcHJvcGVydGllcyhvLm1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHko
KSkKICAgICAsIG1fc2VsZWN0b3JMaXN0KG8ubV9zZWxlY3Rvckxpc3QpCiB7CiB9CkBAIC0zNDQs
NyArMzQ0LDcgQEAgU3R5bGVSdWxlUGFnZTo6flN0eWxlUnVsZVBhZ2UoKQogU3R5bGVQcm9wZXJ0
eVNldCogU3R5bGVSdWxlUGFnZTo6bXV0YWJsZVByb3BlcnRpZXMoKQogewogICAgIGlmICghbV9w
cm9wZXJ0aWVzLT5pc011dGFibGUoKSkKLSAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0
aWVzLT5jb3B5KCk7CisgICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJs
ZUNvcHkoKTsKICAgICByZXR1cm4gbV9wcm9wZXJ0aWVzLmdldCgpOwogfQogCkBAIC0zNjcsNyAr
MzY3LDcgQEAgU3R5bGVSdWxlRm9udEZhY2U6OlN0eWxlUnVsZUZvbnRGYWNlKCkKIAogU3R5bGVS
dWxlRm9udEZhY2U6OlN0eWxlUnVsZUZvbnRGYWNlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlJiBv
KQogICAgIDogU3R5bGVSdWxlQmFzZShvKQotICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0
aWVzLT5jb3B5KCkpCisgICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPm11dGFibGVD
b3B5KCkpCiB7CiB9CiAKQEAgLTM3OCw3ICszNzgsNyBAQCBTdHlsZVJ1bGVGb250RmFjZTo6flN0
eWxlUnVsZUZvbnRGYWNlKCkKIFN0eWxlUHJvcGVydHlTZXQqIFN0eWxlUnVsZUZvbnRGYWNlOjpt
dXRhYmxlUHJvcGVydGllcygpCiB7CiAgICAgaWYgKCFtX3Byb3BlcnRpZXMtPmlzTXV0YWJsZSgp
KQotICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3BlcnRpZXMtPmNvcHkoKTsKKyAgICAgICAg
bV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgpOwogICAgIHJldHVybiBt
X3Byb3BlcnRpZXMuZ2V0KCk7CiB9CiAKQEAgLTQ4Niw3ICs0ODYsNyBAQCBTdHlsZVJ1bGVWaWV3
cG9ydDo6U3R5bGVSdWxlVmlld3BvcnQoKQogCiBTdHlsZVJ1bGVWaWV3cG9ydDo6U3R5bGVSdWxl
Vmlld3BvcnQoY29uc3QgU3R5bGVSdWxlVmlld3BvcnQmIG8pCiAgICAgOiBTdHlsZVJ1bGVCYXNl
KG8pCi0gICAgLCBtX3Byb3BlcnRpZXMoby5tX3Byb3BlcnRpZXMtPmNvcHkoKSkKKyAgICAsIG1f
cHJvcGVydGllcyhvLm1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKSkKIHsKIH0KIApAQCAtNDk3
LDcgKzQ5Nyw3IEBAIFN0eWxlUnVsZVZpZXdwb3J0Ojp+U3R5bGVSdWxlVmlld3BvcnQoKQogU3R5
bGVQcm9wZXJ0eVNldCogU3R5bGVSdWxlVmlld3BvcnQ6Om11dGFibGVQcm9wZXJ0aWVzKCkKIHsK
ICAgICBpZiAoIW1fcHJvcGVydGllcy0+aXNNdXRhYmxlKCkpCi0gICAgICAgIG1fcHJvcGVydGll
cyA9IG1fcHJvcGVydGllcy0+Y29weSgpOworICAgICAgICBtX3Byb3BlcnRpZXMgPSBtX3Byb3Bl
cnRpZXMtPm11dGFibGVDb3B5KCk7CiAgICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKIH0K
IApAQCAtNTIzLDcgKzUyMyw3IEBAIFN0eWxlUnVsZUZpbHRlcjo6U3R5bGVSdWxlRmlsdGVyKGNv
bnN0IFN0cmluZyYgZmlsdGVyTmFtZSkKIFN0eWxlUnVsZUZpbHRlcjo6U3R5bGVSdWxlRmlsdGVy
KGNvbnN0IFN0eWxlUnVsZUZpbHRlciYgbykKICAgICA6IFN0eWxlUnVsZUJhc2UobykKICAgICAs
IG1fZmlsdGVyTmFtZShvLm1fZmlsdGVyTmFtZSkKLSAgICAsIG1fcHJvcGVydGllcyhvLm1fcHJv
cGVydGllcy0+Y29weSgpKQorICAgICwgbV9wcm9wZXJ0aWVzKG8ubV9wcm9wZXJ0aWVzLT5tdXRh
YmxlQ29weSgpKQogewogfQogCkBAIC01MzQsNyArNTM0LDcgQEAgU3R5bGVSdWxlRmlsdGVyOjp+
U3R5bGVSdWxlRmlsdGVyKCkKIFN0eWxlUHJvcGVydHlTZXQqIFN0eWxlUnVsZUZpbHRlcjo6bXV0
YWJsZVByb3BlcnRpZXMoKQogewogICAgIGlmICghbV9wcm9wZXJ0aWVzLT5pc011dGFibGUoKSkK
LSAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5jb3B5KCk7CisgICAgICAgIG1f
cHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4gbV9w
cm9wZXJ0aWVzLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVmll
d3BvcnRTdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxl
UmVzb2x2ZXIuY3BwCmluZGV4IDIwNTkyYWEuLmY1YmY0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgVmll
d3BvcnRTdHlsZVJlc29sdmVyOjphZGRWaWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3BvcnQqIHZp
ZXdwb3J0UnVsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3Byb3BlcnR5U2V0KSB7
Ci0gICAgICAgIG1fcHJvcGVydHlTZXQgPSBwcm9wZXJ0eVNldC0+Y29weSgpOworICAgICAgICBt
X3Byb3BlcnR5U2V0ID0gcHJvcGVydHlTZXQtPm11dGFibGVDb3B5KCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAKaW5kZXggZjU4NDc0Zi4uZjQ0YzYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgU3R5bGVLZXlmcmFtZTo6flN0
eWxlS2V5ZnJhbWUoKQogU3R5bGVQcm9wZXJ0eVNldCogU3R5bGVLZXlmcmFtZTo6bXV0YWJsZVBy
b3BlcnRpZXMoKQogewogICAgIGlmICghbV9wcm9wZXJ0aWVzLT5pc011dGFibGUoKSkKLSAgICAg
ICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5jb3B5KCk7CisgICAgICAgIG1fcHJvcGVy
dGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4gbV9wcm9wZXJ0
aWVzLmdldCgpOwogfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI4OTU0MDIuLjBm
OWZlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMwNDIsNyArMzA0Miw3IEBAIFVuaXF1
ZUVsZW1lbnREYXRhOjpVbmlxdWVFbGVtZW50RGF0YShjb25zdCBVbmlxdWVFbGVtZW50RGF0YSYg
b3RoZXIpCiAgICAgLCBtX3ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKG90aGVyLm1fcHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUpCiAgICAgLCBtX2F0dHJpYnV0ZVZlY3RvcihvdGhlci5tX2F0
dHJpYnV0ZVZlY3RvcikKIHsKLSAgICBtX2lubGluZVN0eWxlID0gb3RoZXIubV9pbmxpbmVTdHls
ZSA/IG90aGVyLm1faW5saW5lU3R5bGUtPmNvcHkoKSA6IDA7CisgICAgbV9pbmxpbmVTdHlsZSA9
IG90aGVyLm1faW5saW5lU3R5bGUgPyBvdGhlci5tX2lubGluZVN0eWxlLT5tdXRhYmxlQ29weSgp
IDogMDsKIH0KIAogVW5pcXVlRWxlbWVudERhdGE6OlVuaXF1ZUVsZW1lbnREYXRhKGNvbnN0IFNo
YXJlYWJsZUVsZW1lbnREYXRhJiBvdGhlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNw
cAppbmRleCA5M2FlMzNkLi44NjM3ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIFN0eWxlZEVs
ZW1lbnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpCiAgICAgaWYgKCFpbmxpbmVTdHlsZSkK
ICAgICAgICAgaW5saW5lU3R5bGUgPSBTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoc3RyaWN0VG9D
U1NQYXJzZXJNb2RlKGlzSFRNTEVsZW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+aW5RdWlya3NNb2Rl
KCkpKTsKICAgICBlbHNlIGlmICghaW5saW5lU3R5bGUtPmlzTXV0YWJsZSgpKQotICAgICAgICBp
bmxpbmVTdHlsZSA9IGlubGluZVN0eWxlLT5jb3B5KCk7CisgICAgICAgIGlubGluZVN0eWxlID0g
aW5saW5lU3R5bGUtPm11dGFibGVDb3B5KCk7CiAgICAgQVNTRVJUKGlubGluZVN0eWxlLT5pc011
dGFibGUoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0
Kj4oaW5saW5lU3R5bGUuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAppbmRleCA2MmYzNjYyLi42MTk1ZGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMzAwLDcgKzMwMCw3IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlTdHlsZU9yQ3JlYXRlRW1wdHko
Y29uc3QgU3R5bGVQcm9wZXJ0eVNlCiB7CiAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJu
IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwotICAgIHJldHVybiBzdHlsZS0+Y29weSgpOwor
ICAgIHJldHVybiBzdHlsZS0+bXV0YWJsZUNvcHkoKTsKIH0KIAogdm9pZCBBcHBseVN0eWxlQ29t
bWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqIHN0eWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCmluZGV4IDMxMDlkYTIuLjMzYmYy
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKQEAgLTg1LDcgKzg1
LDcgQEAgc3RhdGljIGNvbnN0IENTU1Byb3BlcnR5SUQgZWRpdGluZ1Byb3BlcnRpZXNbXSA9IHsK
IGVudW0gRWRpdGluZ1Byb3BlcnRpZXNUeXBlIHsgT25seUluaGVyaXRhYmxlRWRpdGluZ1Byb3Bl
cnRpZXMsIEFsbEVkaXRpbmdQcm9wZXJ0aWVzIH07CiAKIHRlbXBsYXRlIDxjbGFzcyBTdHlsZURl
Y2xhcmF0aW9uVHlwZT4KLXN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGNvcHlF
ZGl0aW5nUHJvcGVydGllcyhTdHlsZURlY2xhcmF0aW9uVHlwZSogc3R5bGUsIEVkaXRpbmdQcm9w
ZXJ0aWVzVHlwZSB0eXBlID0gT25seUluaGVyaXRhYmxlRWRpdGluZ1Byb3BlcnRpZXMpCitzdGF0
aWMgUGFzc1JlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldD4gY29weUVkaXRpbmdQcm9wZXJ0
aWVzKFN0eWxlRGVjbGFyYXRpb25UeXBlKiBzdHlsZSwgRWRpdGluZ1Byb3BlcnRpZXNUeXBlIHR5
cGUgPSBPbmx5SW5oZXJpdGFibGVFZGl0aW5nUHJvcGVydGllcykKIHsKICAgICBpZiAodHlwZSA9
PSBBbGxFZGl0aW5nUHJvcGVydGllcykKICAgICAgICAgcmV0dXJuIHN0eWxlLT5jb3B5UHJvcGVy
dGllc0luU2V0KGVkaXRpbmdQcm9wZXJ0aWVzLCBXVEZfQVJSQVlfTEVOR1RIKGVkaXRpbmdQcm9w
ZXJ0aWVzKSk7CkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNFZGl0
aW5nUHJvcGVydHkoaW50IGlkKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIFBhc3NS
ZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gZWRpdGluZ1N0eWxlRnJvbUNvbXB1dGVkU3R5bGUoUGFz
c1JlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IHN0eWxlLCBFZGl0aW5nUHJvcGVy
dGllc1R5cGUgdHlwZSA9IE9ubHlJbmhlcml0YWJsZUVkaXRpbmdQcm9wZXJ0aWVzKQorc3RhdGlj
IFBhc3NSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IGVkaXRpbmdTdHlsZUZyb21Db21w
dXRlZFN0eWxlKFBhc3NSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSwg
RWRpdGluZ1Byb3BlcnRpZXNUeXBlIHR5cGUgPSBPbmx5SW5oZXJpdGFibGVFZGl0aW5nUHJvcGVy
dGllcykKIHsKICAgICBpZiAoIXN0eWxlKQotICAgICAgICByZXR1cm4gU3R5bGVQcm9wZXJ0eVNl
dDo6Y3JlYXRlKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0PE11dGFibGVT
dHlsZVByb3BlcnR5U2V0PihTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSk7CiAgICAgcmV0dXJu
IGNvcHlFZGl0aW5nUHJvcGVydGllcyhzdHlsZS5nZXQoKSwgdHlwZSk7CiB9CiAKQEAgLTMxNiw3
ICszMTYsNyBAQCBFZGl0aW5nU3R5bGU6OkVkaXRpbmdTdHlsZShjb25zdCBQb3NpdGlvbiYgcG9z
aXRpb24sIFByb3BlcnRpZXNUb0luY2x1ZGUgcHJvcGVydAogfQogCiBFZGl0aW5nU3R5bGU6OkVk
aXRpbmdTdHlsZShjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKLSAgICA6IG1fbXV0YWJs
ZVN0eWxlKHN0eWxlID8gc3R5bGUtPmNvcHkoKSA6IDApCisgICAgOiBtX211dGFibGVTdHlsZShz
dHlsZSA/IHN0eWxlLT5tdXRhYmxlQ29weSgpIDogMCkKICAgICAsIG1fc2hvdWxkVXNlRml4ZWRE
ZWZhdWx0Rm9udFNpemUoZmFsc2UpCiAgICAgLCBtX2ZvbnRTaXplRGVsdGEoTm9Gb250RGVsdGEp
CiB7CkBAIC0zMjQsNyArMzI0LDcgQEAgRWRpdGluZ1N0eWxlOjpFZGl0aW5nU3R5bGUoY29uc3Qg
U3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCiB9CiAKIEVkaXRpbmdTdHlsZTo6RWRpdGluZ1N0eWxl
KGNvbnN0IENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQotICAgIDogbV9tdXRhYmxlU3R5bGUo
c3R5bGUgPyBzdHlsZS0+Y29weSgpIDogMCkKKyAgICA6IG1fbXV0YWJsZVN0eWxlKHN0eWxlID8g
c3R5bGUtPmNvcHlQcm9wZXJ0aWVzKCkgOiAwKQogICAgICwgbV9zaG91bGRVc2VGaXhlZERlZmF1
bHRGb250U2l6ZShmYWxzZSkKICAgICAsIG1fZm9udFNpemVEZWx0YShOb0ZvbnREZWx0YSkKIHsK
QEAgLTQxOCw3ICs0MTgsNyBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6aW5pdChOb2RlKiBub2RlLCBQ
cm9wZXJ0aWVzVG9JbmNsdWRlIHByb3BlcnRpZXNUb0luY2x1ZGUpCiAgICAgICAgIG5vZGUgPSBu
b2RlLT5wYXJlbnROb2RlKCk7CiAKICAgICBSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uPiBjb21wdXRlZFN0eWxlQXRQb3NpdGlvbiA9IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bjo6Y3JlYXRlKG5vZGUpOwotICAgIG1fbXV0YWJsZVN0eWxlID0gcHJvcGVydGllc1RvSW5jbHVk
ZSA9PSBBbGxQcm9wZXJ0aWVzICYmIGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uID8gY29tcHV0ZWRT
dHlsZUF0UG9zaXRpb24tPmNvcHkoKSA6IGVkaXRpbmdTdHlsZUZyb21Db21wdXRlZFN0eWxlKGNv
bXB1dGVkU3R5bGVBdFBvc2l0aW9uKTsKKyAgICBtX211dGFibGVTdHlsZSA9IHByb3BlcnRpZXNU
b0luY2x1ZGUgPT0gQWxsUHJvcGVydGllcyAmJiBjb21wdXRlZFN0eWxlQXRQb3NpdGlvbiA/IGNv
bXB1dGVkU3R5bGVBdFBvc2l0aW9uLT5jb3B5UHJvcGVydGllcygpIDogZWRpdGluZ1N0eWxlRnJv
bUNvbXB1dGVkU3R5bGUoY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24pOwogCiAgICAgaWYgKHByb3Bl
cnRpZXNUb0luY2x1ZGUgPT0gRWRpdGluZ1Byb3BlcnRpZXNJbkVmZmVjdCkgewogICAgICAgICBp
ZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGJhY2tncm91bmRDb2xvckluRWZmZWN0KG5vZGUp
KQpAQCAtNTQ4LDcgKzU0OCw3IEBAIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBFZGl0aW5nU3R5
bGU6OmNvcHkoKSBjb25zdAogewogICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IGNvcHkgPSBFZGl0
aW5nU3R5bGU6OmNyZWF0ZSgpOwogICAgIGlmIChtX211dGFibGVTdHlsZSkKLSAgICAgICAgY29w
eS0+bV9tdXRhYmxlU3R5bGUgPSBtX211dGFibGVTdHlsZS0+Y29weSgpOworICAgICAgICBjb3B5
LT5tX211dGFibGVTdHlsZSA9IG1fbXV0YWJsZVN0eWxlLT5tdXRhYmxlQ29weSgpOwogICAgIGNv
cHktPm1fc2hvdWxkVXNlRml4ZWREZWZhdWx0Rm9udFNpemUgPSBtX3Nob3VsZFVzZUZpeGVkRGVm
YXVsdEZvbnRTaXplOwogICAgIGNvcHktPm1fZm9udFNpemVEZWx0YSA9IG1fZm9udFNpemVEZWx0
YTsKICAgICByZXR1cm4gY29weTsKQEAgLTEwNDUsNyArMTA0NSw3IEBAIHZvaWQgRWRpdGluZ1N0
eWxlOjptZXJnZVN0eWxlKGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0
eU92ZXJyaWRlCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9tdXRhYmxlU3R5bGUpIHsK
LSAgICAgICAgbV9tdXRhYmxlU3R5bGUgPSBzdHlsZS0+Y29weSgpOworICAgICAgICBtX211dGFi
bGVTdHlsZSA9IHN0eWxlLT5tdXRhYmxlQ29weSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBQYXNzUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IGdldFBy
b3BlcnRpZXNOb3RJbihTdHlsZVByb3BlcnR5U2V0KiBzdHlsZVdpdGhSZWR1bgogewogICAgIEFT
U0VSVChzdHlsZVdpdGhSZWR1bmRhbnRQcm9wZXJ0aWVzKTsKICAgICBBU1NFUlQoYmFzZVN0eWxl
KTsKLSAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4gcmVzdWx0ID0gc3R5bGVXaXRoUmVkdW5k
YW50UHJvcGVydGllcy0+Y29weSgpOworICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dD4gcmVzdWx0ID0gc3R5bGVXaXRoUmVkdW5kYW50UHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsK
IAogICAgIHJlc3VsdC0+cmVtb3ZlRXF1aXZhbGVudFByb3BlcnRpZXMoYmFzZVN0eWxlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCAwZmM4MmRlLi43
YzljNWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAt
MTg5OSw3ICsxODk5LDcgQEAgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBGcmFtZVNlbGVj
dGlvbjo6Y29weVR5cGluZ1N0eWxlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fdHlwaW5nU3R5bGUg
fHwgIW1fdHlwaW5nU3R5bGUtPnN0eWxlKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVy
biBtX3R5cGluZ1N0eWxlLT5zdHlsZSgpLT5jb3B5KCk7CisgICAgcmV0dXJuIG1fdHlwaW5nU3R5
bGUtPnN0eWxlKCktPm11dGFibGVDb3B5KCk7CiB9CiAKIGJvb2wgRnJhbWVTZWxlY3Rpb246OnNo
b3VsZERlbGV0ZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBkNzdiNjA1Li4wNWJk
NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTc3OCw3ICs3Nzgs
NyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlcikKICAgICBpZiAoIV9wcml2YXRlLT5jb3JlRnJhbWUgfHwgIXN0eWxlKQogICAg
ICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIGNyZWF0ZSBh
IGNvcHkgaGVyZS4KLSAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5lZGl0b3IoKS0+Y29tcHV0ZUFu
ZFNldFR5cGluZ1N0eWxlKGNvcmUoc3R5bGUpLT5jb3B5KCkuZ2V0KCksIHVuZG9BY3Rpb24pOwor
ICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmVkaXRvcigpLT5jb21wdXRlQW5kU2V0VHlwaW5nU3R5
bGUoY29yZShzdHlsZSktPmNvcHlQcm9wZXJ0aWVzKCkuZ2V0KCksIHVuZG9BY3Rpb24pOwogfQog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCmluZGV4IDk0NjJhNjkuLjA3Zjk3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNDM0OCw3ICs0MzQ4LDcgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkK
IHsKICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpIHsKICAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGhlcmUuIFdl
IHdhbnQgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIHRvIHdvcmsgZGlyZWN0bHkgd2l0aCBTdHls
ZVByb3BlcnR5U2V0IGV2ZW50dWFsbHkuCi0gICAgICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFw
cGx5U3R5bGVUb1NlbGVjdGlvbihjb3JlKHN0eWxlKS0+Y29weSgpLmdldCgpLCB1bmRvQWN0aW9u
KTsKKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZVRvU2VsZWN0aW9uKGNv
cmUoc3R5bGUpLT5jb3B5UHJvcGVydGllcygpLmdldCgpLCB1bmRvQWN0aW9uKTsKICAgICB9CiB9
CiAKQEAgLTQ2NTAsNyArNDY1MCw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiAgICAgaWYgKFtbd2ViVmll
dyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcgc2hvdWxkQXBwbHlT
dHlsZTpzdHlsZSB0b0VsZW1lbnRzSW5ET01SYW5nZTpyYW5nZV0pIHsKICAgICAgICAgaWYgKEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtzZWxmIF9mcmFtZV0pKSB7CiAgICAgICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkbid0IGhhdmUgdG8gbWFrZSBhIGNvcHkgaGVyZS4KLSAgICAgICAgICAg
IGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFwcGx5U3R5bGUoY29yZShzdHlsZSktPmNvcHkoKS5nZXQo
KSwgW3NlbGYgX3VuZG9BY3Rpb25Gcm9tQ29sb3JQYW5lbFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0p
OworICAgICAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3JlKHN0eWxl
KS0+Y29weVByb3BlcnRpZXMoKS5nZXQoKSwgW3NlbGYgX3VuZG9BY3Rpb25Gcm9tQ29sb3JQYW5l
bFdpdGhTZWxlY3RvcjpzZWxlY3Rvcl0pOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZjQ5M2M1YS4uZjhlMDJkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNTY2Miw3ICs1NjYyLDcgQEAgc3RhdGljIE5TQXBw
bGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlND
OjpKU1ZhbHVlIGoKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXZlIHRvIG1ha2UgYSBjb3B5IGhlcmUuCiAgICAgaWYg
KGNvcmVGcmFtZSkKLSAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBwbHlTdHlsZShjb3Jl
KHN0eWxlKS0+Y29weSgpLmdldCgpKTsKKyAgICAgICAgY29yZUZyYW1lLT5lZGl0b3IoKS0+YXBw
bHlTdHlsZShjb3JlKHN0eWxlKS0+Y29weVByb3BlcnRpZXMoKS5nZXQoKSk7CiB9CiAKIEBlbmQK
</data>
<flag name="review"
          id="219814"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>