<?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>128728</bug_id>
          
          <creation_ts>2014-02-13 00:42:33 -0800</creation_ts>
          <short_desc>Do not attempt to synchronize attributes when no Simple Selector could match an animatable attribute</short_desc>
          <delta_ts>2014-02-14 12:53:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>980188</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-13 00:42:33 -0800</bug_when>
    <thetext>Do not attempt to synchronize attributes when no Simple Selector could match an animatable attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980189</commentid>
    <comment_count>1</comment_count>
      <attachid>224052</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-13 00:50:02 -0800</bug_when>
    <thetext>Created attachment 224052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980680</commentid>
    <comment_count>2</comment_count>
      <attachid>224052</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-14 00:24:41 -0800</bug_when>
    <thetext>Comment on attachment 224052
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=224052&amp;action=review

r=me.

This patch makes me wonder: Would it be better to skip special codegen for reifying the &quot;style&quot; attribute, and just make it drop to C++ slow path? No sane content will use a [style=&quot;foo&quot;] selector anyway.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:974
&gt; +    for (unsigned i = 0; i &lt; fragment.attributes.size(); ++i) {

range for!

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:976
&gt; +        const CSSSelector* attributeSelector = fragment.attributes[i];
&gt; +        const QualifiedName&amp; selectorAttributeName = attributeSelector-&gt;attribute();

I wish SelectorFragment&apos;s would hand out const CSSSelector&amp; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980681</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-14 00:30:08 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch makes me wonder: Would it be better to skip special codegen for reifying the &quot;style&quot; attribute, and just make it drop to C++ slow path? No sane content will use a [style=&quot;foo&quot;] selector anyway.

I did not bother implementing anything fast, generateSynchronizeStyleAttribute() is just a dumb function call: http://trac.webkit.org/browser/trunk/Source/WebCore/cssjit/SelectorCompiler.cpp#L954 :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980684</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-14 00:42:21 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; This patch makes me wonder: Would it be better to skip special codegen for reifying the &quot;style&quot; attribute, and just make it drop to C++ slow path? No sane content will use a [style=&quot;foo&quot;] selector anyway.
&gt; 
&gt; I did not bother implementing anything fast, generateSynchronizeStyleAttribute() is just a dumb function call: http://trac.webkit.org/browser/trunk/Source/WebCore/cssjit/SelectorCompiler.cpp#L954 :)

Ah, that looks cool.

I was typing up a comment about how a fragment that can match both style and some SVG animatable attribute could combine the two bit checks into a single mask check, but that&apos;s just weird and not worth the complexity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980919</commentid>
    <comment_count>5</comment_count>
      <attachid>224052</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-14 12:53:16 -0800</bug_when>
    <thetext>Comment on attachment 224052
Patch

Clearing flags on attachment: 224052

Committed r164123: &lt;http://trac.webkit.org/changeset/164123&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980920</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-02-14 12:53:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224052</attachid>
            <date>2014-02-13 00:50:02 -0800</date>
            <delta_ts>2014-02-14 12:53:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128728-20140213005002.patch</filename>
            <type>text/plain</type>
            <size>23724</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM3NDJhNTU4YmRmMDkw
OTU4NmQ1NmJhMGRmMjFlZDZmY2QyZDQ3My4uZDQxMGE0ZTkzNzQyYTc5OWJmZWJkMDA2NGU3MTRj
NGFlMzVhN2QzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE0LTAyLTEzICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEbyBub3QgYXR0
ZW1wdCB0byBzeW5jaHJvbml6ZSBhdHRyaWJ1dGVzIHdoZW4gbm8gU2ltcGxlIFNlbGVjdG9yIGNv
dWxkIG1hdGNoIGFuIGFuaW1hdGFibGUgYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg3MjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBtb3N0IGNhc2VzLCB3ZSBkb24ndCBldmVuIG5l
ZWQgdG8gdGVzdCBmb3IgdGhlIGZsYWcgYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzTm90RGlydHkuCisg
ICAgICAgIElmIHRoZSBzZWxlY3RvciBmaWx0ZXIgY291bGQgbmV2ZXIgbWF0Y2ggYW4gYW5pbWF0
YWJsZSBhdHRyaWJ1dGUsIHRoZXJlIGlzIG5vIHBvaW50IGluIHRlc3RpbmcgZm9yIG9uZS4KKwor
ICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OmNhbk1hdGNoU3R5bGVBdHRyaWJ1dGUpOgorICAgICAgICBTa2lw
IHRoZSBzZWNvbmQgdGVzdCB3aGVuIHRoZSBsb2NhbCBuYW1lIGlzIGVxdWFsIHRvIGNhbm9uaWNh
bExvY2FsTmFtZS4gVGhhdCBpcyB0aGUgY29tbW9uIGNhc2UuCisKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OmNhbk1hdGNoQW5pbWF0YWJsZVNWR0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6Omdl
bmVyYXRlRWxlbWVudEF0dHJpYnV0ZXNNYXRjaGluZyk6CisKKyAgICAgICAgKiBzdmcvU1ZHRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRRdWFsaWZpZWROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmFuaW1hdGFibGVBdHRyaWJ1dGVGb3JOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmlzQW5pbWF0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdFbGVtZW50OjpmaWx0ZXJPdXRBbmltYXRhYmxlQXR0cmlidXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmZpbHRlck91dEFuaW1h
dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAg
ICAgIE1vdmUgdGhlIGxpc3Qgb2YgYW5pbWF0YWJsZSBhdHRyaWJ1dGUgdG8gYSBzdGF0aWMgZnVu
Y3Rpb24gYXZhaWxhYmxlIGluIFJlbGVhc2UuCisgICAgICAgIFNlbGVjdG9yIG1hdGNoaW5nIGlz
IGEgbG90IG1vcmUgZmxleGlibGUgdGhhbiBub3JtYWwgbmFtZSBtYXRjaGluZy4gU2luY2UgdGhl
IGxvY2FsIG5hbWUgbXVzdAorICAgICAgICBhbHdheXMgbWF0Y2gsIGl0IGlzIHVzZWQgYXMgYSBr
ZXkgdG8gZ2V0IHRoZSBmdWxsIFF1YWxpZmllZE5hbWUgdG8gY29tcGFyZSB0byB0aGUgc2VsZWN0
b3IuCisKKyAgICAgICAgU2VwYXJhdGluZyB0aGUgbGlzdCBvZiBhbmltYXRhYmxlIGF0dHJpYnV0
ZXMgYmV0d2VlbiBTZWxlY3RvcnMgYW5kIFNWR0VsZW1lbnQ6OmlzQW5pbWF0YWJsZUF0dHJpYnV0
ZQorICAgICAgICB3b3VsZCBiZSBlcnJvciBwcm9uZS4gSW5zdGVhZCwgU1ZHRWxlbWVudDo6aXNB
bmltYXRhYmxlQXR0cmlidXRlKCkgaXMgbW9kaWZpZWQgdG8gdXNlCisgICAgICAgIFNWR0VsZW1l
bnQ6OmFuaW1hdGFibGVBdHRyaWJ1dGVGb3JOYW1lIHNvIHRoYXQgdGhlIHR3byBuZXZlciBnZXQg
b3V0IG9mIHN5bmMuCisKKyAgICAgICAgU2luY2UgU1ZHU2NyaXB0RWxlbWVudCBoYXMgb25lIGFk
ZGl0aW9uYWwgcmVzdHJpY3Rpb24gdG8gaXNBbmltYXRhYmxlQXR0cmlidXRlKCksIHRoZSBmdW5j
dGlvbgorICAgICAgICBmaWx0ZXJPdXRBbmltYXRhYmxlQXR0cmlidXRlKCkgaXMgYWRkZWQgdG8g
cmVtb3ZlIGEgcXVhbGlmaWVkIG5hbWUgZnJvbSB0aGUgY29tcGxldGUgbGlzdCBvZiBhbmltYXRh
YmxlIGF0dHJpYnV0ZXMuCisgICAgICAgIFRoaXMgZW5zdXJlIFNWR0VsZW1lbnQ6OmFuaW1hdGFi
bGVBdHRyaWJ1dGVGb3JOYW1lKCkgYWx3YXlzIGhhcyB0aGUgY29tcGxldGUgbGlzdCwgYW5kIHN1
YmNsYXNzZXMgb2YgU1ZHRWxlbWVudAorICAgICAgICBjYW4gb25seSByZW1vdmUgUXVhbGlmaWVk
TmFtZXMsIG5vdCBhZGQgdGhlbS4KKwogMjAxNC0wMi0xMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBjcmFzaCB3aGVuIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBkZXNlcmlhbGl6YXRpb24gZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmNwcAppbmRleCBjNzY1YTg0OWYxMWNiYzkxYmY0Y2M0NDk0MzQyYjFkYTE1
MThjZTg2Li5hYTE1YTk3OWM4NzUwNmVhZmY5YmFlYjhmMjUyNjY1MDQ5N2JiMDJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC05NDMsOCArOTQzLDEy
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjYW5NYXRjaFN0eWxlQXR0cmlidXRlKGNvbnN0IFNlbGVj
dG9yRnJhZ21lbnQmIGZyYWdtZW50KQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcmFn
bWVudC5hdHRyaWJ1dGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9y
KiBhdHRyaWJ1dGVTZWxlY3RvciA9IGZyYWdtZW50LmF0dHJpYnV0ZXNbaV07CiAgICAgICAgIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGVTZWxlY3Rvci0+YXR0
cmlidXRlKCk7Ci0gICAgICAgIGlmIChBdHRyaWJ1dGU6Om5hbWVNYXRjaGVzRmlsdGVyKEhUTUxO
YW1lczo6c3R5bGVBdHRyLCBhdHRyaWJ1dGVOYW1lLnByZWZpeCgpLCBhdHRyaWJ1dGVOYW1lLmxv
Y2FsTmFtZSgpLCBhdHRyaWJ1dGVOYW1lLm5hbWVzcGFjZVVSSSgpKQotICAgICAgICAgICAgfHwg
QXR0cmlidXRlOjpuYW1lTWF0Y2hlc0ZpbHRlcihIVE1MTmFtZXM6OnN0eWxlQXR0ciwgYXR0cmli
dXRlTmFtZS5wcmVmaXgoKSwgYXR0cmlidXRlU2VsZWN0b3ItPmF0dHJpYnV0ZUNhbm9uaWNhbExv
Y2FsTmFtZSgpLCBhdHRyaWJ1dGVOYW1lLm5hbWVzcGFjZVVSSSgpKSkgeworICAgICAgICBpZiAo
QXR0cmlidXRlOjpuYW1lTWF0Y2hlc0ZpbHRlcihIVE1MTmFtZXM6OnN0eWxlQXR0ciwgYXR0cmli
dXRlTmFtZS5wcmVmaXgoKSwgYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSwgYXR0cmlidXRlTmFt
ZS5uYW1lc3BhY2VVUkkoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGNhbm9uaWNhbExvY2FsTmFtZSA9IGF0dHJpYnV0ZVNlbGVjdG9y
LT5hdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWUoKTsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZU5h
bWUubG9jYWxOYW1lKCkgIT0gY2Fub25pY2FsTG9jYWxOYW1lCisgICAgICAgICAgICAmJiBBdHRy
aWJ1dGU6Om5hbWVNYXRjaGVzRmlsdGVyKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBhdHRyaWJ1dGVO
YW1lLnByZWZpeCgpLCBhdHRyaWJ1dGVTZWxlY3Rvci0+YXR0cmlidXRlQ2Fub25pY2FsTG9jYWxO
YW1lKCksIGF0dHJpYnV0ZU5hbWUubmFtZXNwYWNlVVJJKCkpKSB7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTk2NSw2ICs5NjksMjYgQEAgdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU3luY2hyb25pemVTdHlsZUF0dHJpYnV0ZShBc3Nl
bWJsZXI6OlJlZ2lzdGUKICAgICBzdHlsZUF0dHJpYnV0ZU5vdERpcnR5LmxpbmsoJm1fYXNzZW1i
bGVyKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGNhbk1hdGNoQW5pbWF0YWJsZVNWR0F0dHJp
YnV0ZShjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkKK3sKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZnJhZ21lbnQuYXR0cmlidXRlcy5zaXplKCk7ICsraSkgeworICAgICAg
ICBjb25zdCBDU1NTZWxlY3RvciogYXR0cmlidXRlU2VsZWN0b3IgPSBmcmFnbWVudC5hdHRyaWJ1
dGVzW2ldOworICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBzZWxlY3RvckF0dHJpYnV0ZU5h
bWUgPSBhdHRyaWJ1dGVTZWxlY3Rvci0+YXR0cmlidXRlKCk7CisKKyAgICAgICAgY29uc3QgUXVh
bGlmaWVkTmFtZSYgY2FuZGlkYXRlRm9yTG9jYWxOYW1lID0gU1ZHRWxlbWVudDo6YW5pbWF0YWJs
ZUF0dHJpYnV0ZUZvck5hbWUoc2VsZWN0b3JBdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKTsKKyAg
ICAgICAgaWYgKEF0dHJpYnV0ZTo6bmFtZU1hdGNoZXNGaWx0ZXIoY2FuZGlkYXRlRm9yTG9jYWxO
YW1lLCBzZWxlY3RvckF0dHJpYnV0ZU5hbWUucHJlZml4KCksIHNlbGVjdG9yQXR0cmlidXRlTmFt
ZS5sb2NhbE5hbWUoKSwgc2VsZWN0b3JBdHRyaWJ1dGVOYW1lLm5hbWVzcGFjZVVSSSgpKSkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY2Fu
b25pY2FsTG9jYWxOYW1lID0gYXR0cmlidXRlU2VsZWN0b3ItPmF0dHJpYnV0ZUNhbm9uaWNhbExv
Y2FsTmFtZSgpOworICAgICAgICBpZiAoc2VsZWN0b3JBdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgp
ICE9IGNhbm9uaWNhbExvY2FsTmFtZSkgeworICAgICAgICAgICAgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgY2FuZGlkYXRlRm9yQ2Fub25pY2FsTG9jYWxOYW1lID0gU1ZHRWxlbWVudDo6YW5pbWF0YWJs
ZUF0dHJpYnV0ZUZvck5hbWUoc2VsZWN0b3JBdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKTsKKyAg
ICAgICAgICAgIGlmIChBdHRyaWJ1dGU6Om5hbWVNYXRjaGVzRmlsdGVyKGNhbmRpZGF0ZUZvckNh
bm9uaWNhbExvY2FsTmFtZSwgc2VsZWN0b3JBdHRyaWJ1dGVOYW1lLnByZWZpeCgpLCBzZWxlY3Rv
ckF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCksIHNlbGVjdG9yQXR0cmlidXRlTmFtZS5uYW1lc3Bh
Y2VVUkkoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2Vu
ZXJhdGVTeW5jaHJvbml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmlidXRlKEFzc2VtYmxlcjo6UmVnaXN0
ZXJJRCBlbGVtZW50RGF0YUFycmF5U2l6ZUFuZEZsYWdzKQogewogICAgIC8vIFNWRyBhdHRyaWJ1
dGVzIGNhbiBiZSB1cGRhdGVkIGxhemlseSBkZXBlbmRpbmcgb24gdGhlIGZsYWcgQW5pbWF0ZWRT
VkdBdHRyaWJ1dGVzQXJlRGlydHkuIFdlIG5lZWQgdG8gY2hlY2sKQEAgLTk5MSw5ICsxMDE1LDgg
QEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudEF0dHJpYnV0ZXNN
YXRjaGluZyhBc3NlbWJsZXI6Okp1bXBMaXMKICAgICBpZiAoY2FuTWF0Y2hTdHlsZUF0dHJpYnV0
ZShmcmFnbWVudCkpCiAgICAgICAgIGdlbmVyYXRlU3luY2hyb25pemVTdHlsZUF0dHJpYnV0ZShl
bGVtZW50RGF0YUFycmF5U2l6ZUFuZEZsYWdzKTsKIAotICAgIC8vIEZJWE1FOiBTeXN0ZW1hdGlj
YWxseSBnZW5lcmF0aW5nIHRoZSBmdW5jdGlvbiBjYWxsIGZvciBhbmltYXRhYmxlIFNWRyBhdHRy
aWJ1dGVzIGNhdXNlcyBhIHJ1bnRpbWUgcGVuYWx0bHkuIFdlIHNob3VsZCBpbnN0ZWFkCi0gICAg
Ly8gZmlsdGVyIGZyb20gdGhlIGxpc3Qgb2YgU1ZHRWxlbWVudDo6aXNBbmltYXRhYmxlQXR0cmli
dXRlIGF0IHJ1bnRpbWUgd2hlbiBjb21waWxpbmcuCi0gICAgZ2VuZXJhdGVTeW5jaHJvbml6ZUFs
bEFuaW1hdGVkU1ZHQXR0cmlidXRlKGVsZW1lbnREYXRhQXJyYXlTaXplQW5kRmxhZ3MpOworICAg
IGlmIChjYW5NYXRjaEFuaW1hdGFibGVTVkdBdHRyaWJ1dGUoZnJhZ21lbnQpKQorICAgICAgICBn
ZW5lcmF0ZVN5bmNocm9uaXplQWxsQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoZWxlbWVudERhdGFBcnJh
eVNpemVBbmRGbGFncyk7CiAKICAgICAvLyBBdHRyaWJ1dGVzIGNhbiBiZSBzdG9yZWQgZWl0aGVy
IGluIGEgc2VwYXJhdGUgdmVjdG9yIGZvciBVbmlxdWVFbGVtZW50RGF0YSwgb3IgYWZ0ZXIgdGhl
IGVsZW1lbnREYXRhIGl0c2VsZgogICAgIC8vIGZvciBTaGFyZWFibGVFbGVtZW50RGF0YS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBkYzc1MmJkOGVlNDMyZGViNzkxOTk1Njk1MjEx
ZmY0YjI4ZDk5NWI1Li4zZTkyOWMyNDhjMDBmZWJjMTk4ZDFkYjQzMjMxNmY0YTgyMDY0N2E5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC04MTQsMTEwICs4MTQsMTI3IEBAIFJlbmRl
clN0eWxlKiBTVkdFbGVtZW50Ojpjb21wdXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0VsZW1lbnRT
cGVjaWZpZXIpCiAgICAgcmV0dXJuIG1fc3ZnUmFyZURhdGEtPm92ZXJyaWRlQ29tcHV0ZWRTdHls
ZSh0aGlzLCBwYXJlbnRTdHlsZSk7CiB9CiAKLSNpZm5kZWYgTkRFQlVHCi1ib29sIFNWR0VsZW1l
bnQ6OmlzQW5pbWF0YWJsZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25z
dAorc3RhdGljIHZvaWQgYWRkUXVhbGlmaWVkTmFtZShIYXNoTWFwPEF0b21pY1N0cmluZywgUXVh
bGlmaWVkTmFtZT4mIG1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxRdWFsaWZpZWROYW1lPj4gbmV2ZXJEZXN0cm95ZWRB
bmltYXRhYmxlQXR0cmlidXRlczsKLSAgICBIYXNoU2V0PFF1YWxpZmllZE5hbWU+JiBhbmltYXRh
YmxlQXR0cmlidXRlcyA9IG5ldmVyRGVzdHJveWVkQW5pbWF0YWJsZUF0dHJpYnV0ZXM7CisgICAg
SGFzaE1hcDxBdG9taWNTdHJpbmcsIFF1YWxpZmllZE5hbWU+OjpBZGRSZXN1bHQgYWRkUmVzdWx0
ID0gbWFwLmFkZChuYW1lLmxvY2FsTmFtZSgpLCBuYW1lKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFk
ZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworfQorCitRdWFsaWZpZWROYW1lIFNWR0Vs
ZW1lbnQ6OmFuaW1hdGFibGVBdHRyaWJ1dGVGb3JOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbG9j
YWxOYW1lKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPEF0b21pY1N0cmlu
ZywgUXVhbGlmaWVkTmFtZT4+IG5ldmVyRGVzdHJveWVkQW5pbWF0YWJsZUF0dHJpYnV0ZXM7Cisg
ICAgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFF1YWxpZmllZE5hbWU+JiBhbmltYXRhYmxlQXR0cmli
dXRlcyA9IG5ldmVyRGVzdHJveWVkQW5pbWF0YWJsZUF0dHJpYnV0ZXM7CiAKICAgICBpZiAoYW5p
bWF0YWJsZUF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1
dGVzLmFkZChIVE1MTmFtZXM6OmNsYXNzQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6YW1wbGl0dWRlQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6YXppbXV0aEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmJhc2VGcmVxdWVuY3lBdHRyKTsKLSAgICAgICAgYW5pbWF0
YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpiaWFzQXR0cik7Ci0gICAgICAgIGFuaW1hdGFi
bGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Y2xpcFBhdGhVbml0c0F0dHIpOwotICAgICAgICBh
bmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmN4QXR0cik7Ci0gICAgICAgIGFuaW1h
dGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Y3lBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJs
ZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkaWZmdXNlQ29uc3RhbnRBdHRyKTsKLSAgICAgICAg
YW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkaXZpc29yQXR0cik7Ci0gICAgICAg
IGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHhBdHRyKTsKLSAgICAgICAgYW5p
bWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkeUF0dHIpOwotICAgICAgICBhbmltYXRh
YmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmVkZ2VNb2RlQXR0cik7Ci0gICAgICAgIGFuaW1h
dGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZWxldmF0aW9uQXR0cik7Ci0gICAgICAgIGFu
aW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZXhwb25lbnRBdHRyKTsKLSAgICAgICAg
YW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Zmls
dGVyUmVzQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
ZmlsdGVyVW5pdHNBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpmeEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmZ5QXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Z3Jh
ZGllbnRUcmFuc2Zvcm1BdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpncmFkaWVudFVuaXRzQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6aW4yQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6aW5BdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjppbnRlcmNlcHRBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjprMUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OmsyQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6azNBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpr
NEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omtlcm5l
bE1hdHJpeEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
Omtlcm5lbFVuaXRMZW5ndGhBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpsZW5ndGhBZGp1c3RBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0
ZXMuYWRkKFNWR05hbWVzOjpsaW1pdGluZ0NvbmVBbmdsZUF0dHIpOwotICAgICAgICBhbmltYXRh
YmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om1hcmtlckhlaWdodEF0dHIpOwotICAgICAgICBh
bmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om1hcmtlclVuaXRzQXR0cik7Ci0gICAg
ICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWFya2VyV2lkdGhBdHRyKTsK
LSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjptYXNrQ29udGVudFVu
aXRzQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWFz
a1VuaXRzQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
bWV0aG9kQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
bW9kZUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om51
bU9jdGF2ZXNBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpvZmZzZXRBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpvcGVyYXRvckF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6Om9yZGVyQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6b3JpZW50QXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6cGF0aExlbmd0aEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnBhdHRlcm5Db250ZW50VW5pdHNBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjpwYXR0ZXJuVHJhbnNmb3JtQXR0cik7Ci0gICAgICAgIGFuaW1h
dGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cGF0dGVyblVuaXRzQXR0cik7Ci0gICAgICAg
IGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cG9pbnRzQXRYQXR0cik7Ci0gICAg
ICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cG9pbnRzQXRZQXR0cik7Ci0g
ICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cG9pbnRzQXRaQXR0cik7
Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cHJlc2VydmVBbHBo
YUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnByZXNl
cnZlQXNwZWN0UmF0aW9BdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpwcmltaXRpdmVVbml0c0F0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnJhZGl1c0F0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnJBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpyZWZYQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6cmVmWUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnJlc3VsdEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnJvdGF0ZUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnJ4QXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6cnlBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpz
Y2FsZUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNl
ZWRBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzbG9w
ZUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNwYWNp
bmdBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzcGVj
dWxhckNvbnN0YW50QXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnNwcmVhZE1ldGhvZEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0cik7Ci0gICAgICAgIGFuaW1hdGFi
bGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c3RkRGV2aWF0aW9uQXR0cik7Ci0gICAgICAgIGFu
aW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c3RpdGNoVGlsZXNBdHRyKTsKLSAgICAg
ICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyKTsK
LSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0YWJsZVZhbHVlc0F0
dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRhcmdldEF0
dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRhcmdldFhB
dHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0YXJnZXRZ
QXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dHJhbnNm
b3JtQXR0cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dHlw
ZUF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnZhbHVl
c0F0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnZpZXdC
b3hBdHRyKTsKLSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0
aEF0dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OngxQXR0
cik7Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eDJBdHRyKTsK
LSAgICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0cik7Ci0gICAg
ICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eENoYW5uZWxTZWxlY3RvckF0
dHIpOwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnkxQXR0cik7
Ci0gICAgICAgIGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eTJBdHRyKTsKLSAg
ICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5QXR0cik7Ci0gICAgICAg
IGFuaW1hdGFibGVBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eUNoYW5uZWxTZWxlY3RvckF0dHIp
OwotICAgICAgICBhbmltYXRhYmxlQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnpBdHRyKTsKLSAg
ICAgICAgYW5pbWF0YWJsZUF0dHJpYnV0ZXMuYWRkKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKKyAg
ICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgSFRNTE5hbWVzOjpj
bGFzc0F0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVz
LCBTVkdOYW1lczo6YW1wbGl0dWRlQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5p
bWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjphemltdXRoQXR0cik7CisgICAgICAgIGFkZFF1
YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpiYXNlRnJlcXVlbmN5
QXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNW
R05hbWVzOjpiaWFzQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0
dHJpYnV0ZXMsIFNWR05hbWVzOjpjbGlwUGF0aFVuaXRzQXR0cik7CisgICAgICAgIGFkZFF1YWxp
ZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpjeEF0dHIpOworICAgICAg
ICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6Y3lBdHRy
KTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFt
ZXM6OmRpZmZ1c2VDb25zdGFudEF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1h
dGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6ZGl2aXNvckF0dHIpOworICAgICAgICBhZGRRdWFs
aWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6ZHhBdHRyKTsKKyAgICAg
ICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OmR5QXR0
cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05h
bWVzOjplZGdlTW9kZUF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVB
dHRyaWJ1dGVzLCBTVkdOYW1lczo6ZWxldmF0aW9uQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmll
ZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpleHBvbmVudEF0dHIpOworICAg
ICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6ZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFu
aW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6ZmlsdGVyUmVzQXR0cik7CisgICAgICAgIGFk
ZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpmaWx0ZXJVbml0
c0F0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBT
VkdOYW1lczo6ZnhBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0
cmlidXRlcywgU1ZHTmFtZXM6OmZ5QXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5p
bWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpncmFkaWVudFRyYW5zZm9ybUF0dHIpOworICAg
ICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6Z3Jh
ZGllbnRVbml0c0F0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRy
aWJ1dGVzLCBTVkdOYW1lczo6aGVpZ2h0QXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUo
YW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjppbjJBdHRyKTsKKyAgICAgICAgYWRkUXVh
bGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OmluQXR0cik7CisgICAg
ICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjppbnRl
cmNlcHRBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRl
cywgU1ZHTmFtZXM6OmsxQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJs
ZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjprMkF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1l
KGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6azNBdHRyKTsKKyAgICAgICAgYWRkUXVh
bGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6Oms0QXR0cik7CisgICAg
ICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjprZXJu
ZWxNYXRyaXhBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmli
dXRlcywgU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlm
aWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6Omxlbmd0aEFkanVzdEF0dHIp
OworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1l
czo6bGltaXRpbmdDb25lQW5nbGVBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmlt
YXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6Om1hcmtlckhlaWdodEF0dHIpOworICAgICAgICBh
ZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6bWFya2VyVW5p
dHNBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywg
U1ZHTmFtZXM6Om1hcmtlcldpZHRoQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5p
bWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjptYXNrQ29udGVudFVuaXRzQXR0cik7CisgICAg
ICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjptYXNr
VW5pdHNBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRl
cywgU1ZHTmFtZXM6Om1ldGhvZEF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1h
dGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6bW9kZUF0dHIpOworICAgICAgICBhZGRRdWFsaWZp
ZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6bnVtT2N0YXZlc0F0dHIpOwor
ICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6
b2Zmc2V0QXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0
ZXMsIFNWR05hbWVzOjpvcGVyYXRvckF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFu
aW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6b3JkZXJBdHRyKTsKKyAgICAgICAgYWRkUXVh
bGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6Om9yaWVudEF0dHIpOwor
ICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6
cGF0aExlbmd0aEF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRy
aWJ1dGVzLCBTVkdOYW1lczo6cGF0dGVybkNvbnRlbnRVbml0c0F0dHIpOworICAgICAgICBhZGRR
dWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6cGF0dGVyblRyYW5z
Zm9ybUF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVz
LCBTVkdOYW1lczo6cGF0dGVyblVuaXRzQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUo
YW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpwb2ludHNBdFhBdHRyKTsKKyAgICAgICAg
YWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnBvaW50c0F0
WUF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBT
VkdOYW1lczo6cG9pbnRzQXRaQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0
YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0cik7CisgICAgICAgIGFk
ZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpwcmVzZXJ2ZUFz
cGVjdFJhdGlvQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJp
YnV0ZXMsIFNWR05hbWVzOjpwcmltaXRpdmVVbml0c0F0dHIpOworICAgICAgICBhZGRRdWFsaWZp
ZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6cmFkaXVzQXR0cik7CisgICAg
ICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpyQXR0
cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05h
bWVzOjpyZWZYQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJp
YnV0ZXMsIFNWR05hbWVzOjpyZWZZQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5p
bWF0YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjpyZXN1bHRBdHRyKTsKKyAgICAgICAgYWRkUXVh
bGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnJvdGF0ZUF0dHIpOwor
ICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6
cnhBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywg
U1ZHTmFtZXM6OnJ5QXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0
dHJpYnV0ZXMsIFNWR05hbWVzOjpzY2FsZUF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1l
KGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6c2VlZEF0dHIpOworICAgICAgICBhZGRR
dWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6c2xvcGVBdHRyKTsK
KyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6
OnNwYWNpbmdBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmli
dXRlcywgU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlm
aWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnNwZWN1bGFyRXhwb25lbnRB
dHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZH
TmFtZXM6OnNwcmVhZE1ldGhvZEF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1h
dGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6c3RhcnRPZmZzZXRBdHRyKTsKKyAgICAgICAgYWRk
UXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnN0ZERldmlhdGlv
bkF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBT
VkdOYW1lczo6c3RpdGNoVGlsZXNBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmlt
YXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIpOworICAgICAgICBh
ZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6dGFibGVWYWx1
ZXNBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywg
U1ZHTmFtZXM6OnRhcmdldEF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFi
bGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6dGFyZ2V0WEF0dHIpOworICAgICAgICBhZGRRdWFsaWZp
ZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6dGFyZ2V0WUF0dHIpOworICAg
ICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6dHJh
bnNmb3JtQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0
ZXMsIFNWR05hbWVzOjp0eXBlQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0
YWJsZUF0dHJpYnV0ZXMsIFNWR05hbWVzOjp2YWx1ZXNBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlm
aWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyKTsKKyAg
ICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6Ondp
ZHRoQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJpYnV0ZXMs
IFNWR05hbWVzOjp4MUF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVB
dHRyaWJ1dGVzLCBTVkdOYW1lczo6eDJBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShh
bmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnhBdHRyKTsKKyAgICAgICAgYWRkUXVhbGlm
aWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZHTmFtZXM6OnhDaGFubmVsU2VsZWN0b3JB
dHRyKTsKKyAgICAgICAgYWRkUXVhbGlmaWVkTmFtZShhbmltYXRhYmxlQXR0cmlidXRlcywgU1ZH
TmFtZXM6OnkxQXR0cik7CisgICAgICAgIGFkZFF1YWxpZmllZE5hbWUoYW5pbWF0YWJsZUF0dHJp
YnV0ZXMsIFNWR05hbWVzOjp5MkF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1h
dGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6eUF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWRO
YW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1lczo6eUNoYW5uZWxTZWxlY3RvckF0dHIp
OworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVzLCBTVkdOYW1l
czo6ekF0dHIpOworICAgICAgICBhZGRRdWFsaWZpZWROYW1lKGFuaW1hdGFibGVBdHRyaWJ1dGVz
LCBYTGlua05hbWVzOjpocmVmQXR0cik7CiAgICAgfQorICAgIHJldHVybiBhbmltYXRhYmxlQXR0
cmlidXRlcy5nZXQobG9jYWxOYW1lKTsKK30KKworI2lmbmRlZiBOREVCVUcKK2Jvb2wgU1ZHRWxl
bWVudDo6aXNBbmltYXRhYmxlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNv
bnN0Cit7CisgICAgaWYgKFNWR0VsZW1lbnQ6OmFuaW1hdGFibGVBdHRyaWJ1dGVGb3JOYW1lKG5h
bWUubG9jYWxOYW1lKCkpID09IG5hbWUpCisgICAgICAgIHJldHVybiAhZmlsdGVyT3V0QW5pbWF0
YWJsZUF0dHJpYnV0ZShuYW1lKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICByZXR1cm4g
YW5pbWF0YWJsZUF0dHJpYnV0ZXMuY29udGFpbnMobmFtZSk7Citib29sIFNWR0VsZW1lbnQ6OmZp
bHRlck91dEFuaW1hdGFibGVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZhbHNlOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmlu
ZGV4IDliYzhkZjE1NmIzZGEwYzVjOGM3ODYyMjY4ZTMxOWEwNThmOTc3MGUuLmE0M2Y3M2Q4NzFm
NjJiNTcwODhmNmE2ZjM1NzU3YjljM2UyYmI4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApA
QCAtMTIyLDggKzEyMiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVS
ZXF1aXJlZEV4dGVuc2lvbnMoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0
ZW1MYW5ndWFnZSgpIHsgfQogCisgICAgc3RhdGljIFF1YWxpZmllZE5hbWUgYW5pbWF0YWJsZUF0
dHJpYnV0ZUZvck5hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAjaWZuZGVmIE5ERUJVRwotICAg
IHZpcnR1YWwgYm9vbCBpc0FuaW1hdGFibGVBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0OworICAgIGJvb2wgaXNBbmltYXRhYmxlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdDsKICNlbmRpZgogCiAgICAgTXV0YWJsZVN0eWxlUHJvcGVydGllcyogYW5pbWF0
ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCkgY29uc3Q7CkBAIC0xODQsNiArMTg1LDEwIEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBv
dmVycmlkZTsKIAorI2lmbmRlZiBOREVCVUcKKyAgICB2aXJ0dWFsIGJvb2wgZmlsdGVyT3V0QW5p
bWF0YWJsZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7CisjZW5kaWYKKwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdFbGVtZW50UmFyZURhdGE+IG1fc3ZnUmFyZURhdGE7CiAK
ICAgICBIYXNoU2V0PFNWR0VsZW1lbnQqPiBtX2VsZW1lbnRzV2l0aFJlbGF0aXZlTGVuZ3RoczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCA3NGNlNWQ2YzZmY2Vm
YmQ3OTYzODMzNmJmOTRiODViNmU1OTcxMjRhLi4xNDcwNWFhNTNjNTVhODRlNTdiNmQyY2FmZjhk
YmQzMDA4ZmE3MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCkBA
IC0xOTcsMTIgKzE5Nyw5IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6
Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpCiB9CiAKICNpZm5kZWYg
TkRFQlVHCi1ib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmlzQW5pbWF0YWJsZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdAorYm9vbCBTVkdTY3JpcHRFbGVtZW50OjpmaWx0
ZXJPdXRBbmltYXRhYmxlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0
CiB7Ci0gICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICByZXR1cm4gU1ZHRWxlbWVudDo6aXNBbmltYXRhYmxlQXR0cmlidXRlKG5h
bWUpOworICAgIHJldHVybiBuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cjsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCBmYjQyYzVjNmNhY2QyYWI0
ODJiZDVjMTlhNWUxYjk2MGQwZmExMzU4Li41NzJmNzlkZWZmMTQ1MzE0Yzg2YTM1ZmM4OTBiZmEw
OGExNGExZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTM3LDEw
ICszNyw2IEBAIGNsYXNzIFNWR1NjcmlwdEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgU1ZHRWxlbWVu
dAogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NjcmlwdEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJz
ZXIpOwogCi0jaWZuZGVmIE5ERUJVRwotICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGFibGVBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCi0KIHBy
aXZhdGU6CiAgICAgU1ZHU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCkBA
IC03OCw2ICs3NCwxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXZlRmlyZWRMb2Fk
RXZlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTY3JpcHRFbGVtZW50OjpoYXZlRmlyZWRM
b2FkRXZlbnQoKTsgfQogICAgIHZpcnR1YWwgVGltZXI8U1ZHRWxlbWVudD4qIHN2Z0xvYWRFdmVu
dFRpbWVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gJm1fc3ZnTG9hZEV2ZW50VGltZXI7IH0KIAorI2lm
bmRlZiBOREVCVUcKKyAgICB2aXJ0dWFsIGJvb2wgZmlsdGVyT3V0QW5pbWF0YWJsZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIEJF
R0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdTY3JpcHRFbGVtZW50KQogICAgICAg
ICBERUNMQVJFX0FOSU1BVEVEX1NUUklORyhIcmVmLCBocmVmKQogICAgICAgICBERUNMQVJFX0FO
SU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>