<?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>48797</bug_id>
          
          <creation_ts>2010-11-01 16:16:27 -0700</creation_ts>
          <short_desc>Respond to NP_GetProperty by sending a GetProperty message</short_desc>
          <delta_ts>2010-11-01 18:00:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>303035</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-01 16:16:27 -0700</bug_when>
    <thetext>Respond to NP_GetProperty by sending a GetProperty message</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303054</commentid>
    <comment_count>1</comment_count>
      <attachid>72593</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-01 16:30:25 -0700</bug_when>
    <thetext>Created attachment 72593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303058</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-01 16:32:27 -0700</bug_when>
    <thetext>Attachment 72593 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/Shared/Plugins/NPVariantData.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/Shared/Plugins/NPIdentifierData.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit2/Shared/Plugins/NPObjectProxy.cpp:144:  NPObjectProxy::NP_GetProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 3 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303075</commentid>
    <comment_count>3</comment_count>
      <attachid>72593</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-11-01 16:52:53 -0700</bug_when>
    <thetext>Comment on attachment 72593
Patch

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

&gt; WebKit2/Shared/Plugins/NPObjectProxy.cpp:40
&gt; +NPObjectProxy* NPObjectProxy::create(NPRemoteObjectMap* npRemoteObjectMap, uint64_t npObjectID)

Is it legal to pass 0 for the npRemoteObjectMap?

&gt; WebKit2/Shared/Plugins/NPObjectProxy.cpp:80
&gt; +        return false;

Should this nil-check m_npRemoteObjectMap?

&gt; WebKit2/WebKit2.xcodeproj/project.pbxproj:2613
&gt;  		};

Do you need to update the Visual Studio project file also?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303077</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-01 16:55:18 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 72593 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72593&amp;action=review
&gt; 
&gt; &gt; WebKit2/Shared/Plugins/NPObjectProxy.cpp:40
&gt; &gt; +NPObjectProxy* NPObjectProxy::create(NPRemoteObjectMap* npRemoteObjectMap, uint64_t npObjectID)
&gt; 
&gt; Is it legal to pass 0 for the npRemoteObjectMap?

No, I&apos;ll add an assert, I&apos;ll assert that npObjectID isn&apos;t null too while I&apos;m at it.

&gt; 
&gt; &gt; WebKit2/Shared/Plugins/NPObjectProxy.cpp:80
&gt; &gt; +        return false;
&gt; 
&gt; Should this nil-check m_npRemoteObjectMap?
&gt; 

Yes.

&gt; &gt; WebKit2/WebKit2.xcodeproj/project.pbxproj:2613
&gt; &gt;  		};
&gt; 
&gt; Do you need to update the Visual Studio project file also?

Nope, this code is Mac specific for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303085</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-11-01 16:59:03 -0700</bug_when>
    <thetext>Committed r71075: &lt;http://trac.webkit.org/changeset/71075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303126</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-01 18:00:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/71076 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
http/tests/websocket/tests/alert-in-event-handler.html
http/tests/websocket/tests/bad-handshake-crash.html
http/tests/websocket/tests/bufferedAmount-after-close.html
http/tests/websocket/tests/close-on-navigate-new-location.html
http/tests/websocket/tests/close-on-unload-and-force-gc.html
http/tests/websocket/tests/close-on-unload-reference-in-parent.html
http/tests/websocket/tests/close-on-unload.html
http/tests/websocket/tests/cross-origin.html
http/tests/websocket/tests/error-detect.html
http/tests/websocket/tests/frame-length-longer-than-buffer.html
http/tests/websocket/tests/frame-length-overflow.html
http/tests/websocket/tests/frame-length-skip.html
http/tests/websocket/tests/frame-lengths.html
http/tests/websocket/tests/handshake-challenge-randomness.html
http/tests/websocket/tests/handshake-error.html
http/tests/websocket/tests/handshake-fail-by-cross-origin.html
http/tests/websocket/tests/handshake-fail-by-no-cr.html
http/tests/websocket/tests/handshake-fail-by-sub-protocol-mismatch.html
http/tests/websocket/tests/httponly-cookie.pl
http/tests/websocket/tests/long-invalid-header.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72593</attachid>
            <date>2010-11-01 16:30:25 -0700</date>
            <delta_ts>2010-11-01 16:52:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48797-20101101163024.patch</filename>
            <type>text/plain</type>
            <size>30149</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
M2Y3MDRhMzhlNDVjODI1OTEyODVhZmNlMWZmZjUxYmFlYjk2ZGM3OC4uMWMzMTM1M2M0YTM1MWZi
N2Y0OTMyYzNlYWQ2YWFjMWRlYzViYzExMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSw2MSBAQAogMjAxMC0xMS0wMSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlc3BvbmQgdG8gTlBfR2V0UHJvcGVydHkgYnkg
c2VuZGluZyBhIEdldFByb3BlcnR5IG1lc3NhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Nzk3CisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0hhbmRsZU1lc3NhZ2UuaDoKKyAgICAgICAgKENvcmVJUEM6OmNhbGxNZW1iZXJGdW5jdGlvbik6
CisgICAgICAgIEFkZCBuZXcgc3luYyBtZXNzYWdlIG92ZXJsb2FkLgorCisgICAgICAgICogUGx1
Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICBJZiB0
aGUgbWVzc2FnZSBjbGFzcyBpcyBNZXNzYWdlQ2xhc3NOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciwg
cGFzcyBpdCB0byB0aGUgTlBSZW1vdGVPYmplY3RNYXAuCisKKyAgICAgICAgKiBTaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElk
ZW50aWZpZXJEYXRhLmg6CisgICAgICAgIEFkZCBOUElkZW50aWZpZXJEYXRhLCBhIENvcmVJUEMg
cmVwcmVzZW50YXRpb24gb2YgYW4gTlBJZGVudGlmaWVyLgorCisgICAgICAgICogU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUE9i
amVjdE1lc3NhZ2VSZWNlaXZlcjo6Z2V0UHJvcGVydHkpOgorICAgICAgICBBZGQgc3R1Yi4KKwor
ICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3NhZ2Vz
LmluOgorICAgICAgICBBZGQgR2V0UHJvcGVydHkuCisKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBPYmplY3RQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6TlBPYmplY3RQcm94eTo6TlBPYmplY3RQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5QT2JqZWN0UHJveHk6OmluaXRpYWxpemUpOgorICAgICAgICBOUE9i
amVjdFByb3h5IG5vdyB0YWtlcyBhbiBOUFJlbW90ZU9iamVjdE1hcCBpbiBpdHMgY3JlYXRlIGZ1
bmN0aW9uLgorCisgICAgICAgIChXZWJLaXQ6Ok5QT2JqZWN0UHJveHk6OmdldFByb3BlcnR5KToK
KyAgICAgICAgU2VuZCBhIEdldFByb3BlcnR5IG1lc3NhZ2UuCisKKyAgICAgICAgKFdlYktpdDo6
TlBPYmplY3RQcm94eTo6TlBfR2V0UHJvcGVydHkpOgorICAgICAgICBDYWxsIGdldFByb3BlcnR5
LgorCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOUFJlbW90ZU9iamVjdE1hcDo6Y3JlYXRlTlBPYmplY3RQcm94eSk6Cisg
ICAgICAgIFBhc3MgdGhlIE5QUmVtb3RlT2JqZWN0TWFwLgorCisgICAgICAgIChXZWJLaXQ6Ok5Q
UmVtb3RlT2JqZWN0TWFwOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICBGaW5kIHRo
ZSByaWdodCBtZXNzYWdlIHJlY2VpdmVyIGFuZCBkaXNwYXRjaCB0aGUgbWVzc2FnZSB0byBpdC4K
KworICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuY3BwOgorICAgICAgICAq
IFNoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaDoKKyAgICAgICAgQWRkIE5QVmFyaWFudERh
dGEsIHdoaWNoIHdpbGwgYmUgYSBDb3JlSVBDIHJlcHJlc2VudGF0aW9uIG9mIGFuIE5QVmFyaWFu
dC4KKyAgICAgICAgCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgIElmIHRoZSBt
ZXNzYWdlIGNsYXNzIGlzIE1lc3NhZ2VDbGFzc05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLCBwYXNz
IGl0IHRvIHRoZSBOUFJlbW90ZU9iamVjdE1hcC4KKworMjAxMC0xMS0wMSAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWlu
aWcuCiAKICAgICAgICAgQWRkIEFyZ3VtZW50Q29kZXIgc3BlY2lhbGl6YXRpb24gZm9yIFdURjo6
Q1N0cmluZwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3Nh
Z2UuaCBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKaW5kZXggM2E1
NjRmYjc4YjYyMDk2N2Q1OTk0NjEzYTZjZjkzN2U1ZDM0NjZjYy4uMjdlOTg2NGQxMjdmNzdiNzRk
MjM5MzNjYjkyYjQ4MDVkZjZjNDYyYyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFuZGxl
TWVzc2FnZS5oCkBAIC04NSw2ICs4NSwxMiBAQCB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25z
dCBBcmd1bWVudHMxPFAxPiYgYXJncywgQXJndW1lbnRzMTxSMT4mIHJlcGx5QXJncywgQwogICAg
IChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1bWVudDEp
OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5
cGVuYW1lIFIxLCB0eXBlbmFtZSBSMj4KK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czE8UDE+JiBhcmdzLCBBcmd1bWVudHMyPFIxLCBSMj4mIHJlcGx5QXJncywgQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbikKK3sKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1l
bnQxLCByZXBseUFyZ3MuYXJndW1lbnQxLCByZXBseUFyZ3MuYXJndW1lbnQyKTsKK30KKwogdGVt
cGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMj4K
IHZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czI8UDEsIFAyPiYgYXJncywg
QXJndW1lbnRzMCYsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CmRpZmYgLS1naXQgYS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAwNmE0ZjcyZDAxMTVkMTMy
ZmVmNTY3ZTQwMTJlOTc4YzNmNWY5YmUyLi4yMWE4NTBkYjhiYTgwZjFlODEyOThiODM2YmMyOTZh
YzMxYmNkOTVlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKQEAgLTk5LDEwICs5OSwxNSBAQCB2b2lkIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDbwogCiBD
b3JlSVBDOjpTeW5jUmVwbHlNb2RlIFdlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2Fn
ZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogcmVwbHkpCiB7Ci0gICAgaWYgKCFhcmd1bWVudHMtPmRlc3Rp
bmF0aW9uSUQoKSkKKyAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gYXJndW1lbnRzLT5kZXN0
aW5hdGlvbklEKCk7CisKKyAgICBpZiAoIWRlc3RpbmF0aW9uSUQpCiAgICAgICAgIHJldHVybiBk
aWRSZWNlaXZlU3luY1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwotICAgIAotICAgIGlmIChQbHVnaW5Db250cm9sbGVy
UHJveHkqIHBsdWdpbkNvbnRyb2xsZXJQcm94eSA9IG1fcGx1Z2luQ29udHJvbGxlcnMuZ2V0KGFy
Z3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKSkKKworICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXI+KCkpCisgICAgICAgIHJldHVy
biBtX25wUmVtb3RlT2JqZWN0TWFwLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOworCisgICAgaWYgKFBsdWdpbkNvbnRyb2xsZXJQ
cm94eSogcGx1Z2luQ29udHJvbGxlclByb3h5ID0gbV9wbHVnaW5Db250cm9sbGVycy5nZXQoZGVz
dGluYXRpb25JRCkpCiAgICAgICAgIHJldHVybiBwbHVnaW5Db250cm9sbGVyUHJveHktPmRpZFJl
Y2VpdmVTeW5jUGx1Z2luQ29udHJvbGxlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cywgcmVwbHkpOwogCiAgICAgcmV0dXJuIENvcmVJUEM6OkF1dG9tYXRpY1Jl
cGx5OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRh
LmNwcCBiL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmZlMjEyNzU2OTA2NjkyNmIxZjBiZjg3YjBmMDgwZjAyMDZlN2E1YgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKQEAg
LTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCisK
KyNpbmNsdWRlICJOUElkZW50aWZpZXJEYXRhLmgiCisKKyNpbmNsdWRlICJBcmd1bWVudERlY29k
ZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSWRlbnRpZmllclJlcC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK05QSWRlbnRpZmllckRhdGE6Ok5QSWRlbnRpZmllckRhdGEoKQor
ICAgIDogbV9pc1N0cmluZyhmYWxzZSkKKyAgICAsIG1fbnVtYmVyKDApCit7Cit9CisKKworTlBJ
ZGVudGlmaWVyRGF0YSBOUElkZW50aWZpZXJEYXRhOjpmcm9tTlBJZGVudGlmaWVyKE5QSWRlbnRp
ZmllciBucElkZW50aWZpZXIpCit7CisgICAgTlBJZGVudGlmaWVyRGF0YSBucElkZW50aWZpZXJE
YXRhOworCisgICAgSWRlbnRpZmllclJlcCogaWRlbnRpZmllclJlcCA9IHN0YXRpY19jYXN0PElk
ZW50aWZpZXJSZXAqPihucElkZW50aWZpZXIpOworICAgIG5wSWRlbnRpZmllckRhdGEubV9pc1N0
cmluZyA9IGlkZW50aWZpZXJSZXAtPmlzU3RyaW5nKCk7CisKKyAgICBpZiAobnBJZGVudGlmaWVy
RGF0YS5tX2lzU3RyaW5nKQorICAgICAgICBucElkZW50aWZpZXJEYXRhLm1fc3RyaW5nID0gaWRl
bnRpZmllclJlcC0+c3RyaW5nKCk7CisgICAgZWxzZQorICAgICAgICBucElkZW50aWZpZXJEYXRh
Lm1fbnVtYmVyID0gaWRlbnRpZmllclJlcC0+bnVtYmVyKCk7CisKKyAgICByZXR1cm4gbnBJZGVu
dGlmaWVyRGF0YTsKK30KKwordm9pZCBOUElkZW50aWZpZXJEYXRhOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZSht
X2lzU3RyaW5nKTsKKyAgICBpZiAobV9pc1N0cmluZykKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KG1fc3RyaW5nKTsKKyAgICBlbHNlCisgICAgICAgIGVuY29kZXItPmVuY29kZUludDMyKG1fbnVt
YmVyKTsKK30KKworYm9vbCBOUElkZW50aWZpZXJEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBOUElkZW50aWZpZXJEYXRhJiByZXN1bHQpCit7CisgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1faXNTdHJpbmcpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIAorICAgIGlmIChyZXN1bHQubV9pc1N0cmluZykKKyAgICAgICAgcmV0dXJu
IGRlY29kZXItPmRlY29kZShyZXN1bHQubV9zdHJpbmcpOworCisgICAgcmV0dXJuIGRlY29kZXIt
PmRlY29kZUludDMyKHJlc3VsdC5tX251bWJlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmggYi9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL05QSWRlbnRpZmllckRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzdlYTQ2YjFkY2JlMDJmYzMwNWUx
OTI4ZGFhMmNjNTgyMDZmY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTlBJZGVudGlmaWVyRGF0YV9oCisjZGVmaW5lIE5QSWRlbnRpZmllckRhdGFfaAorCisj
aWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWUu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsK
KyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQXJndW1lbnRFbmNvZGVyOwor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIENvcmVJUEMgcmVwcmVzZW50YXRpb24g
b2YgYW4gTlBJZGVudGlmaWVyLgorCitjbGFzcyBOUElkZW50aWZpZXJEYXRhIHsKK3B1YmxpYzoK
KyAgICBOUElkZW50aWZpZXJEYXRhKCk7CisgICAgCisgICAgc3RhdGljIE5QSWRlbnRpZmllckRh
dGEgZnJvbU5QSWRlbnRpZmllcihOUElkZW50aWZpZXIpOworCisgICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE5QSWRlbnRpZmllckRhdGEmKTsKKworcHJpdmF0ZToK
KyAgICBib29sIG1faXNTdHJpbmc7CisgICAgQ1N0cmluZyBtX3N0cmluZzsKKyAgICBpbnQgbV9u
dW1iZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQ
TFVHSU5fUFJPQ0VTUykKKyAgICAKKyNlbmRpZiAvLyBOUElkZW50aWZpZXJEYXRhX2gKZGlmZiAt
LWdpdCBhL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGIvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAKaW5k
ZXggYTlmYzA0Mjg3NzgzZTQwZDk4ZWEzODFlODUzYTA4MzhlNmI3Y2E1OC4uODU3NzVhMTdjZWJh
YzY5MGM0NjFiOWMzNDE0ODEzYWY4ZWI5NGQwYSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIk5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgiCiAKKyNpbmNsdWRlICJOUElkZW50
aWZpZXJEYXRhLmgiCiAjaW5jbHVkZSAiTlBSdW50aW1lVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKIApAQCAtNTMsNiArNTQsMTIgQEAgdm9pZCBOUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlcjo6ZGVhbGxvY2F0ZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9p
ZCBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcjo6Z2V0UHJvcGVydHkoY29uc3QgTlBJZGVudGlmaWVy
RGF0YSYgcHJvcGVydHlOYW1lRGF0YSwgYm9vbCYgcmV0dXJuVmFsdWUsIE5QVmFyaWFudERhdGEm
IHJlc3VsdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVyblZhbHVlID0gZmFs
c2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJ
Tl9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1l
c3NhZ2VSZWNlaXZlci5oIGIvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlci5oCmluZGV4IGQ2YWE0YjQ1NTVjYjU2NTgxYWYzN2ZlMjc4NTMzMWFiZGU5YTRmMDgu
LjdkODEzYTE2MDc4Y2VhMzhlOGY2MzZhMzIyYjVkNjJjY2I3NWY2M2YgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuaAorKysgYi9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmgKQEAgLTM1LDE5ICsz
NSwyNCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgTlBJZGVudGlmaWVyRGF0YTsK
K2NsYXNzIE5QVmFyaWFudERhdGE7CisKIGNsYXNzIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcik7CiAKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcj4gY3Jl
YXRlKE5QT2JqZWN0KiBucE9iamVjdCk7CiAgICAgfk5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyKCk7
CisKKyAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RNZXNz
YWdlUmVjZWl2ZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
OwogICAgIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlcihO
UE9iamVjdCogbnBPYmplY3QpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICBDb3Jl
SVBDOjpTeW5jUmVwbHlNb2RlIGRpZFJlY2VpdmVTeW5jTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopOwogICAgIHZvaWQg
ZGVhbGxvY2F0ZSgpOworICAgIHZvaWQgZ2V0UHJvcGVydHkoY29uc3QgTlBJZGVudGlmaWVyRGF0
YSYsIGJvb2wmIHJldHVyblZhbHVlLCBOUFZhcmlhbnREYXRhJiByZXN1bHQpOwogCiAgICAgTlBP
YmplY3QqIG1fbnBPYmplY3Q7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5tZXNzYWdlcy5pbiBiL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4KaW5kZXggMmE0NThmMzky
MGFmYjEwZjg1MWM3Zjk4NDNjZjBlM2Q5NWMxMWRiZi4uMTU4ZmNhYjY4ZjQxMGEwOGQwZDVhMjZi
MTM3ZmVmM2IwNzEwYWM5ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9i
amVjdE1lc3NhZ2VSZWNlaXZlci5tZXNzYWdlcy5pbgorKysgYi9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw5IEBA
CiBtZXNzYWdlcyAtPiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlciB7CiAgICAgIyBEZWFsbG9jYXRl
IHRoZSBOUE9iamVjdC4KICAgICBEZWFsbG9jYXRlKCkgLT4gKCkKKworICAgICMgR2V0IHRoZSBn
aXZlbiBwcm9wZXJ0eS4KKyAgICBHZXRQcm9wZXJ0eShXZWJLaXQ6Ok5QSWRlbnRpZmllckRhdGEg
cHJvcGVydHlOYW1lKSAtPiAoYm9vbCByZXR1cm5WYWx1ZSwgV2ViS2l0OjpOUFZhcmlhbnREYXRh
IHJlc3VsdCkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QT2JqZWN0UHJveHkuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5
LmNwcAppbmRleCA3YWU0ZTI2M2I0NDBkODc2YzMzOWI3Y2MyZGFjOGEwYTBiYjhkMjdiLi5iYzg3
YzNmNzMyMzYzNWViNWY5NjExNmU4MjU5YWNhOWRjNWFlMGMzIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCisrKyBiL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBPYmplY3RQcm94eS5jcHAKQEAgLTI3LDIxICsyNywyNyBAQAogCiAjaW5jbHVkZSAi
TlBPYmplY3RQcm94eS5oIgogCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTlBJZGVudGlmaWVyRGF0YS5oIgorI2luY2x1ZGUg
Ik5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOUFJlbW90ZU9i
amVjdE1hcC5oIgogI2luY2x1ZGUgIk5QUnVudGltZVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIk5Q
VmFyaWFudERhdGEuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotTlBPYmplY3RQcm94eSogTlBPYmplY3RQcm94eTo6Y3JlYXRlKHVpbnQ2NF90
IG5wT2JqZWN0SUQpCitOUE9iamVjdFByb3h5KiBOUE9iamVjdFByb3h5OjpjcmVhdGUoTlBSZW1v
dGVPYmplY3RNYXAqIG5wUmVtb3RlT2JqZWN0TWFwLCB1aW50NjRfdCBucE9iamVjdElEKQogewog
ICAgIE5QT2JqZWN0UHJveHkqIG5wT2JqZWN0UHJveHkgPSB0b05QT2JqZWN0UHJveHkoY3JlYXRl
TlBPYmplY3QoMCwgbnBDbGFzcygpKSk7Ci0gICAgbnBPYmplY3RQcm94eS0+aW5pdGlhbGl6ZShu
cE9iamVjdElEKTsKKyAgICBucE9iamVjdFByb3h5LT5pbml0aWFsaXplKG5wUmVtb3RlT2JqZWN0
TWFwLCBucE9iamVjdElEKTsKIAogICAgIHJldHVybiBucE9iamVjdFByb3h5OwogfQogCiBOUE9i
amVjdFByb3h5OjpOUE9iamVjdFByb3h5KCkKLSAgICA6IG1fbnBPYmplY3RJRCgwKQorICAgIDog
bV9ucFJlbW90ZU9iamVjdE1hcCgwKQorICAgICwgbV9ucE9iamVjdElEKDApCiB7CiB9CiAKQEAg
LTU0LDEyICs2MCwyOSBAQCBib29sIE5QT2JqZWN0UHJveHk6OmlzTlBPYmplY3RQcm94eShOUE9i
amVjdCogbnBPYmplY3QpCiAgICAgcmV0dXJuIG5wT2JqZWN0LT5fY2xhc3MgPT0gbnBDbGFzcygp
OwogfQogICAgIAotdm9pZCBOUE9iamVjdFByb3h5Ojppbml0aWFsaXplKHVpbnQ2NF90IG5wT2Jq
ZWN0SUQpCit2b2lkIE5QT2JqZWN0UHJveHk6OmluaXRpYWxpemUoTlBSZW1vdGVPYmplY3RNYXAq
IG5wUmVtb3RlT2JqZWN0TWFwLCB1aW50NjRfdCBucE9iamVjdElEKQogeworICAgIEFTU0VSVCgh
bV9ucFJlbW90ZU9iamVjdE1hcCk7CisgICAgbV9ucFJlbW90ZU9iamVjdE1hcCA9IG5wUmVtb3Rl
T2JqZWN0TWFwOworCiAgICAgQVNTRVJUKCFtX25wT2JqZWN0SUQpOwogICAgIG1fbnBPYmplY3RJ
RCA9IG5wT2JqZWN0SUQ7CiB9CiAKK2Jvb2wgTlBPYmplY3RQcm94eTo6Z2V0UHJvcGVydHkoTlBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSwgTlBWYXJpYW50KiByZXN1bHQpCit7CisgICAgTlBJZGVu
dGlmaWVyRGF0YSBwcm9wZXJ0eU5hbWVEYXRhID0gTlBJZGVudGlmaWVyRGF0YTo6ZnJvbU5QSWRl
bnRpZmllcihwcm9wZXJ0eU5hbWUpOworCisgICAgYm9vbCByZXR1cm5WYWx1ZSA9IGZhbHNlOwor
ICAgIE5QVmFyaWFudERhdGEgcmVzdWx0RGF0YTsKKyAgICAKKyAgICBpZiAoIW1fbnBSZW1vdGVP
YmplY3RNYXAtPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyOjpHZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVEYXRhKSwgTWVzc2FnZXM6Ok5QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyOjpHZXRQcm9wZXJ0eTo6UmVwbHkocmV0dXJuVmFsdWUsIHJlc3Vs
dERhdGEpLCBtX25wT2JqZWN0SUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIE5QQ2xhc3MqIE5QT2Jq
ZWN0UHJveHk6Om5wQ2xhc3MoKQogewogICAgIHN0YXRpYyBOUENsYXNzIG5wQ2xhc3MgPSB7CkBA
IC0xMTgsMTAgKzE0MSw5IEBAIGJvb2wgTlBPYmplY3RQcm94eTo6TlBfSGFzUHJvcGVydHkoTlBP
YmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotYm9vbCBOUE9iamVjdFByb3h5OjpOUF9HZXRQcm9wZXJ0eShOUE9iamVjdCosIE5QSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUsIE5QVmFyaWFudCogcmVzdWx0KQorYm9vbCBOUE9iamVjdFByb3h5
OjpOUF9HZXRQcm9wZXJ0eShOUE9iamVjdCogbnBPYmplY3QsIE5QSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUsIE5QVmFyaWFudCogcmVzdWx0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0b05QT2JqZWN0UHJveHkobnBPYmplY3QpLT5nZXRQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWUsIHJlc3VsdCk7CiB9CiAKIGJvb2wgTlBPYmplY3RQcm94eTo6
TlBfU2V0UHJvcGVydHkoTlBPYmplY3QqLCBOUElkZW50aWZpZXIgcHJvcGVydHlOYW1lLCBjb25z
dCBOUFZhcmlhbnQqIHZhbHVlKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9O
UE9iamVjdFByb3h5LmggYi9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaApp
bmRleCBmMjA5OTlkOWE0N2U5OTI0MDljNGU1NWI1MzMwYWE2NDgzZTFiYzNmLi5hNzkzZWUwMTNi
NzMyMTI1MzMwMGM5OWFjNDljYWEyODkzMjIzZDFlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuaAorKysgYi9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05Q
T2JqZWN0UHJveHkuaApAQCAtMzMsMTEgKzMzLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CitjbGFzcyBOUFJlbW90ZU9iamVjdE1hcDsKKwogY2xhc3MgTlBPYmplY3RQcm94eSA6IHB1Ymxp
YyBOUE9iamVjdCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTlBPYmplY3RQcm94eSk7CiAK
IHB1YmxpYzoKLSAgICBzdGF0aWMgTlBPYmplY3RQcm94eSogY3JlYXRlKHVpbnQ2NF90IG5wT2Jq
ZWN0SUQpOworICAgIHN0YXRpYyBOUE9iamVjdFByb3h5KiBjcmVhdGUoTlBSZW1vdGVPYmplY3RN
YXAqIG5wUmVtb3RlT2JqZWN0TWFwLCB1aW50NjRfdCBucE9iamVjdElEKTsKIAogICAgIHN0YXRp
YyBib29sIGlzTlBPYmplY3RQcm94eShOUE9iamVjdCopOwogICAgIApAQCAtNTEsNyArNTMsOSBA
QCBwcml2YXRlOgogICAgIE5QT2JqZWN0UHJveHkoKTsKICAgICB+TlBPYmplY3RQcm94eSgpOwog
Ci0gICAgdm9pZCBpbml0aWFsaXplKHVpbnQ2NF90IG5wT2JqZWN0SUQpOworICAgIHZvaWQgaW5p
dGlhbGl6ZShOUFJlbW90ZU9iamVjdE1hcCogbnBSZW1vdGVPYmplY3RNYXAsIHVpbnQ2NF90IG5w
T2JqZWN0SUQpOworCisgICAgYm9vbCBnZXRQcm9wZXJ0eShOUElkZW50aWZpZXIgcHJvcGVydHlO
YW1lLCBOUFZhcmlhbnQqIHJlc3VsdCk7CiAKICAgICBzdGF0aWMgTlBDbGFzcyogbnBDbGFzcygp
OwogICAgIHN0YXRpYyBOUE9iamVjdCogTlBfQWxsb2NhdGUoTlBQLCBOUENsYXNzKik7CkBAIC02
Niw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgTlBfRW51bWVyYXRlKE5QT2Jq
ZWN0KiwgTlBJZGVudGlmaWVyKiogaWRlbnRpZmllcnMsIHVpbnQzMl90KiBpZGVudGlmaWVyQ291
bnQpOwogICAgIHN0YXRpYyBib29sIE5QX0NvbnN0cnVjdChOUE9iamVjdCosIGNvbnN0IE5QVmFy
aWFudCogYXJndW1lbnRzLCB1aW50MzJfdCBhcmd1bWVudENvdW50LCBOUFZhcmlhbnQqIHJlc3Vs
dCk7CiAKKyAgICBOUFJlbW90ZU9iamVjdE1hcCogbV9ucFJlbW90ZU9iamVjdE1hcDsKICAgICB1
aW50NjRfdCBtX25wT2JqZWN0SUQ7CiB9OwogICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1hcC5jcHAgYi9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QUmVtb3RlT2JqZWN0TWFwLmNwcAppbmRleCBjNTI3MDhlNmNhZjYzYWM4MWZhMjk5OGIxZjU0
NTk0NDQ3YTRiZTE4Li42NmM3OTRhMmMwZDQ3YzRjYmI0NzA5MWFmNjYzNTcxMzM3Y2QyZGUxIDEw
MDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcAor
KysgYi9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBOUFJlbW90ZU9iamVjdE1hcDo6TlBSZW1vdGVPYmplY3RNYXAoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIAogTlBPYmplY3RQcm94eSogTlBSZW1vdGVPYmplY3RN
YXA6OmNyZWF0ZU5QT2JqZWN0UHJveHkodWludDY0X3QgcmVtb3RlT2JqZWN0SUQpCiB7Ci0gICAg
cmV0dXJuIE5QT2JqZWN0UHJveHk6OmNyZWF0ZShyZW1vdGVPYmplY3RJRCk7CisgICAgcmV0dXJu
IE5QT2JqZWN0UHJveHk6OmNyZWF0ZSh0aGlzLCByZW1vdGVPYmplY3RJRCk7CiB9CiAKIHVpbnQ2
NF90IE5QUmVtb3RlT2JqZWN0TWFwOjpyZWdpc3Rlck5QT2JqZWN0KE5QT2JqZWN0KiBucE9iamVj
dCkKQEAgLTU3LDYgKzU3LDE1IEBAIHVpbnQ2NF90IE5QUmVtb3RlT2JqZWN0TWFwOjpyZWdpc3Rl
ck5QT2JqZWN0KE5QT2JqZWN0KiBucE9iamVjdCkKICAgICByZXR1cm4gbnBPYmplY3RJRDsKIH0K
IAorQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBOUFJlbW90ZU9iamVjdE1hcDo6ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIHJlcGx5KQoreworICAgIE5QT2JqZWN0TWVzc2FnZVJlY2Vp
dmVyKiBtZXNzYWdlUmVjZWl2ZXIgPSBtX3JlZ2lzdGVyZWROUE9iamVjdHMuZ2V0KGFyZ3VtZW50
cy0+ZGVzdGluYXRpb25JRCgpKTsKKyAgICBpZiAoIW1lc3NhZ2VSZWNlaXZlcikKKyAgICAgICAg
cmV0dXJuIENvcmVJUEM6OkF1dG9tYXRpY1JlcGx5OworCisgICAgcmV0dXJuIG1lc3NhZ2VSZWNl
aXZlci0+ZGlkUmVjZWl2ZVN5bmNOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmggYi9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QUmVtb3RlT2JqZWN0TWFwLmgKaW5kZXggODE5N2RkYzEyODRlYmExZGJkYzAz
MDk2MWEzMTZlZWNhNjkxYTQ0Zi4uNDY5Mzc2YTUxYTk0MjU3ZDUwZTJjZTQ3OGMyNGY5ZTIwYTc5
YTZjZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFJlbW90ZU9iamVjdE1h
cC5oCisrKyBiL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBSZW1vdGVPYmplY3RNYXAuaApAQCAt
MjgsMTQgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCi1uYW1lc3Bh
Y2UgQ29yZUlQQyB7Ci0gICAgY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyOwpAQCAtNTMsNiArNTAsMTAgQEAg
cHVibGljOgogICAgIC8vIEV4cG9zZSB0aGUgZ2l2ZW4gTlBPYmplY3QgYXMgYSByZW1vdGUgb2Jq
ZWN0LiBSZXR1cm5zIHRoZSBvYmplY3RJRC4KICAgICB1aW50NjRfdCByZWdpc3Rlck5QT2JqZWN0
KE5QT2JqZWN0Kik7CiAKKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CisKKyAgICBDb3JlSVBDOjpTeW5jUmVwbHlNb2Rl
IGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBD
b3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiByZXBseSk7CisKIHByaXZhdGU6CiAg
ICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogbV9jb25uZWN0aW9uOwogCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUFZhcmlhbnREYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGIxZDQ4OWE4MjJjNTQxZTVkYWU3
OTFiMDBmY2ExMmViZWVjZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9TaGFyZWQvUGx1
Z2lucy9OUFZhcmlhbnREYXRhLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKworI2luY2x1ZGUgIk5QVmFyaWFudERhdGEuaCIKKwor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IE5QVmFyaWFudERhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgTlBWYXJpYW50RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE5QVmFyaWFudERhdGEmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5oIGIvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUFZhcmlhbnREYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzM0YWU5NzhjZmFjZGE3ZGQ1YmRmZDY5OWI3
OWU4Njk0Y2RlZTQ4NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
TlBWYXJpYW50RGF0YS5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5Q
VmFyaWFudERhdGFfaAorI2RlZmluZSBOUFZhcmlhbnREYXRhX2gKKworI2lmIEVOQUJMRShQTFVH
SU5fUFJPQ0VTUykKKworbmFtZXNwYWNlIENvcmVJUEMgeworICAgIGNsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKKyAgICBjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisvLyBUaGUgQ29yZUlQQyByZXByZXNlbnRhdGlvbiBvZiBhbiBOUFZhcmlhbnQuCisKK2Ns
YXNzIE5QVmFyaWFudERhdGEgeworcHVibGljOgorICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBOUFZhcmlhbnREYXRhJik7CisgICAgCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKKyAgICAKKyNl
bmRpZiAvLyBOUFZhcmlhbnREYXRhX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMjYyYjBiZWZiNjFkYWQ2Y2FmN2MwOTU0MjgxNzI5NmU3MjIzNzQxMC4u
Y2ExMDI5MjYwOGM4NTk1ZTRjYTczZTJiMDY1NDJiYjQxYjdiN2UyMiAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5LDYgKzg5LDEwIEBACiAJCTFBMkQ4
MkE5MTI3RjRFQUIwMDFFQjk2MiAvKiBOUFJlbW90ZU9iamVjdE1hcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUExRkEyNTExMjdBMEU0RjAwNTBFNzA5
IC8qIE5QUmVtb3RlT2JqZWN0TWFwLmggKi87IH07CiAJCTFBMkQ4NDM5MTI3RjY1RDUwMDFFQjk2
MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTJEODQzNzEyN0Y2NUQ1MDAx
RUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQkxQTJEODQzQTEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEyRDg0MzgxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJMUEyRDg0OEIxMjdGNkE0OTAwMUVCOTYyIC8qIE5QSWRlbnRpZmllckRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkQ4
NDg5MTI3RjZBNDkwMDFFQjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmggKi87IH07CisJCTFBMkQ4
NDhDMTI3RjZBNDkwMDFFQjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkQ4NDhBMTI3RjZBNDkwMDFFQjk2
MiAvKiBOUElkZW50aWZpZXJEYXRhLmNwcCAqLzsgfTsKKwkJMUEyRDg0QTMxMjdGNkFEMTAwMUVC
OTYyIC8qIE5QVmFyaWFudERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBMkQ4NEExMTI3RjZBRDEwMDFFQjk2MiAvKiBOUFZhcmlhbnREYXRhLmgg
Ki87IH07CisJCTFBMkQ4NEE0MTI3RjZBRDEwMDFFQjk2MiAvKiBOUFZhcmlhbnREYXRhLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkQ4NEEyMTI3
RjZBRDEwMDFFQjk2MiAvKiBOUFZhcmlhbnREYXRhLmNwcCAqLzsgfTsKIAkJMUEzMDA2NkUxMTEw
RjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMzAwNjZDMTExMEY0RjcwMDMxOTM3QyAvKiBS
ZXNwb25zaXZlbmVzc1RpbWVyLmggKi87IH07CiAJCTFBMzBFQUM2MTE1RDdEQTMwMDUzRTkzNyAv
KiBDb25uZWN0aW9uTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMzBFQUM1MTE1RDdEQTMwMDUzRTkzNyAvKiBDb25uZWN0aW9uTWFjLmNwcCAq
LzsgfTsKIAkJMUEzREQxRkQxMjVFNTlGMzAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzREQxRkMxMjVF
NTlGMzAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuY3BwICovOyB9OwpAQCAtNTk3LDYgKzYwMSwx
MCBAQAogCQkxQTJEODQxMTEyN0Y2NEU4MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTlBPYmplY3RNZXNzYWdlUmVj
ZWl2ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkQ4NDM3
MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5QT2JqZWN0TWVzc2Fn
ZVJlY2VpdmVyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyRDg0
ODkxMjdGNkE0OTAwMUVCOTYyIC8qIE5QSWRlbnRpZmllckRhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTlBJZGVudGlmaWVyRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTJEODQ4QTEyN0Y2QTQ5MDAxRUI5NjIgLyogTlBJZGVudGlmaWVyRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOUElkZW50aWZpZXJEYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyRDg0QTExMjdGNkFEMTAwMUVC
OTYyIC8qIE5QVmFyaWFudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TlBWYXJpYW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTJEODRBMjEy
N0Y2QUQxMDAxRUI5NjIgLyogTlBWYXJpYW50RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOUFZhcmlhbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUEzMDA2NkMxMTEwRjRGNzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTMwRUFDNTExNUQ3REEzMDA1M0U5Mzcg
LyogQ29ubmVjdGlvbk1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb25uZWN0aW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzREQx
RkMxMjVFNTlGMzAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmluZENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzQ3LDYgKzEzNTUsOCBAQAogCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMUEyRDg0OEExMjdGNkE0OTAwMUVCOTYyIC8qIE5QSWRlbnRpZmllckRhdGEuY3BwICov
LAorCQkJCTFBMkQ4NDg5MTI3RjZBNDkwMDFFQjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmggKi8s
CiAJCQkJMUExRkEzNUMxMjdBNDVCRjAwNTBFNzA5IC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQkxQTFGQTM1QjEyN0E0NUJGMDA1MEU3MDkgLyogTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXIuaCAqLywKIAkJCQkxQTJEODQxMTEyN0Y2NEU4MDAxRUI5NjIgLyogTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXIubWVzc2FnZXMuaW4gKi8sCkBAIC0xMzU0LDYgKzEzNjQsOCBAQAogCQkJ
CTFBMUZBMjgzMTI3QTEzQkMwMDUwRTcwOSAvKiBOUE9iamVjdFByb3h5LmggKi8sCiAJCQkJMUEx
RkEyNTIxMjdBMEU0RjAwNTBFNzA5IC8qIE5QUmVtb3RlT2JqZWN0TWFwLmNwcCAqLywKIAkJCQkx
QTFGQTI1MTEyN0EwRTRGMDA1MEU3MDkgLyogTlBSZW1vdGVPYmplY3RNYXAuaCAqLywKKwkJCQkx
QTJEODRBMjEyN0Y2QUQxMDAxRUI5NjIgLyogTlBWYXJpYW50RGF0YS5jcHAgKi8sCisJCQkJMUEy
RDg0QTExMjdGNkFEMTAwMUVCOTYyIC8qIE5QVmFyaWFudERhdGEuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gUGx1Z2luczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMjU3LDYgKzIy
NjksOCBAQAogCQkJCTFBMkQ4MkE3MTI3RjRFQUIwMDFFQjk2MiAvKiBOUE9iamVjdFByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTJEODJBOTEyN0Y0RUFCMDAxRUI5NjIgLyogTlBSZW1vdGVP
YmplY3RNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkQ4NDNBMTI3RjY1RDUwMDFFQjk2MiAv
KiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
QTJEODQ4QjEyN0Y2QTQ5MDAxRUI5NjIgLyogTlBJZGVudGlmaWVyRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUEyRDg0QTMxMjdGNkFEMTAwMUVCOTYyIC8qIE5QVmFyaWFudERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjU5Miw2ICsyNjA2LDggQEAKIAkJCQkxQTJEODJBNjEyN0Y0RUFCMDAx
RUI5NjIgLyogTlBPYmplY3RQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTJEODJBODEy
N0Y0RUFCMDAxRUI5NjIgLyogTlBSZW1vdGVPYmplY3RNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEyRDg0MzkxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMkQ4NDhDMTI3RjZBNDkwMDFF
Qjk2MiAvKiBOUElkZW50aWZpZXJEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMkQ4NEE0
MTI3RjZBRDEwMDFFQjk2MiAvKiBOUFZhcmlhbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDEzYmEyZDcxMjhhMTBmM2JhNzQ5Yjk0OTZiMzVjMDIxMjZhZjNkZDkuLjM4
MThhYTU2MGE1YjU1MzYzYjg4ZGE5YmUyMTA1ODkzMjE5NjJhNzUgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTgyLDkgKzgyLDEyIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sCiAKIENvcmVJUEM6OlN5bmNS
ZXBseU1vZGUgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiByZXBseSkKIHsKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyPigpKQorICAgICAgICByZXR1cm4gbV9ucFJl
bW90ZU9iamVjdE1hcC5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMsIHJlcGx5KTsKKwogICAgIGlmIChQbHVnaW5Qcm94eSogcGx1Z2luUHJveHkg
PSBtX3BsdWdpbnMuZ2V0KGFyZ3VtZW50cy0+ZGVzdGluYXRpb25JRCgpKSkKICAgICAgICAgcmV0
dXJuIHBsdWdpblByb3h5LT5kaWRSZWNlaXZlU3luY1BsdWdpblByb3h5TWVzc2FnZShjb25uZWN0
aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cywgcmVwbHkpOwotICAgIAorCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIENvcmVJUEM6OkF1dG9tYXRpY1JlcGx5OwogfQo=
</data>
<flag name="review"
          id="62874"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>